پاسخ : uIP یک پشتهٔ TCP/IP خوب برای AVR
خب الان میخوایم از این کتابخونه استفاده کنیم
بعد از دانلود uIP-0.9_ENC28J60_v2.0.zip و خارج کردن آن از حالت فشرده 22 تا فایل خواهیم داشت که من در حدی که متوجه شدم توضیحشون میدم براتون :
1 و 2 : app.c و app.h : این 2 تا فایل که یکی هدر و دیگری کد برنامه هست ، یه برنامه نمونه هست که برای نمونه اینجا به هر کانکشن جدید Welcome و برای هر دستور OK رو برمیگردونه
3 و 4 : ax88796.c و ax88796.h : ما کاری به این فایل ها نداریم ولی درایور این چیپ هستند که ما استفاده نمیکنیم
5 : compiler.h : یه سری تعریف هایی که استفاده شده توی برنامه رو اینجا به صورت ماکرو تعریف کرده
6 و 7 : delay.c و delay.h : هم آمده برای تاخیر های استفاده شده تابع نوشته ، توی این فقط باید حواسمون به مقدار فرکانس CPU باشه که تو زمان بندی ها مشکل پیش نیاد
8 و 9 : enc28j60.c و enc28j60.h : این 2 تا فایلی هستند که برای ارتباط میکرو با ENC28J60 نیاز داریم
توی هدر باید پایه هایی که برای ارتباط SPI با این IC استفاده میکنید رو مشخص کنید :
[code=c]// ENC28J60 PINS CONFIGURATION
#define ENC28J60_CONTROL_PORT PORTB
#define ENC28J60_CONTROL_DDR DDRB
#define ENC28J60_CONTROL_CS 4
#define ENC28J60_SCK_PIN 7
#define ENC28J60_MISO_PIN 6
#define ENC28J60_MOSI_PIN 5
#define ENC28J60_SS_PIN 4
//[/code]
بقیه چیزاشو هنوز وقت نکردم در بیارم ولی چیز زیادی که نیاز به دونستن باشه برای کاربر نداره میکرو میدونه و ENC28J60
10 : main.c که متن اصلی برنامه هست که بعدا توضیح میدم
11 و 12 : nic.c و nic.h :
[code=html5]/************************************************** ***************************
* Module Name: NIC Driver Interface for uIP-AVR Port
*
* Created By: Louis Beaudoin (www.embedded-creations.com)
*
* Original Release: November 16, 2003
*
* Module Description:
* Provides three functions to interface with a NIC driver
* These functions can be called directly from the main uIP control loop
* to send packets from uip_buf and uip_appbuf, and store incoming packets to
* uip_buf
*
*
************************************************** ***************************/[/code]
یه ماژوله که باید توی برنامه main صدا زده بشه و وضیفشم ارسال و دریافت اطلاعات هست
چیزی که توی هدر این فایل مهمه
[code=c]#define NIC_CHOICE ENC28J60[/code]
هست که باید چیپی که استفاده میکنید رو انتخاب کنید تا توابع و تعاریف مربوط به همون IC استفاده بشه
13 و 14 : rtl8019.c و rtl8019.h : این 2تا هم بربوط به یه IC دیگه هست که باز ما باش کاری نداریم
15 و 16 : uip.c و uip.h :
[code=html5]/**
* \file
* Header file for the uIP TCP/IP stack.
* \author Adam Dunkels <adam@dunkels.com>
*
* The uIP TCP/IP stack header file contains definitions for a number
* of C macros that are used by uIP programs as well as internal uIP
* structures, TCP/IP header structures and function declarations.
*
*/[/code]
این فایل ها فایل هایی از پشته TCP/IP هستند که باید در برنامه اصلی فراخوانی شوند
یه سری کارای مهم میکنه ولی ما بش کار نداریم و فقط ازش استفاده میکنیم
17 و 18 : uip_arch.c و uip_arch.h :
[code=html5]/**
* \file
* Declarations of architecture specific functions.
* \author Adam Dunkels <adam@dunkels.com>
*/[/code]
یه سری تعریف که بازم بشون کار نداریم و فقط استفاده میکنیم
19 و 20 : uip_arp.c و uip_arp.h :
[code=html5]/**
* \file
* Macros and definitions for the ARP module.
* \author Adam Dunkels <adam@dunkels.com>
*/[/code]
یه سری تعریف و ماکرو برای ماژول ARP هست که قسمتی از uIP هست
Address Resolution Protocol
http://en.wikipedia.org/wiki/Address...ution_Protocol
21 : uipopt.h : که فایل مهمی هست و ما باش زیاد کار داریم
[code=html5]/**
* \file
* Configuration options for uIP.
* \author Adam Dunkels <adam@dunkels.com>
*
* This file is used for tweaking various configuration options for
* uIP. You should make a copy of this file into one of your project's
* directories instead of editing this example "uipopt.h" file that
* comes with the uIP distribution.
*/[/code]
توی این فایل تنظیمات IP ، MAC ، Netmask ، آدرس روتر و ... رو میشه تنظیم کرد
و فایل 22 : VERSION.h : که هیچی نیست فقط یه سری اطلاعات در مورد نویسنده ها و کتابخونه ها هست ( همشون کامنت هستند )
تا اینجا فایل های کتابخونه رو یاد گرفتیم در ادامه نحوه استفاده کردن و کامپایل برنامه رو یاد خواهیم گرفت
خب الان میخوایم از این کتابخونه استفاده کنیم
بعد از دانلود uIP-0.9_ENC28J60_v2.0.zip و خارج کردن آن از حالت فشرده 22 تا فایل خواهیم داشت که من در حدی که متوجه شدم توضیحشون میدم براتون :
1 و 2 : app.c و app.h : این 2 تا فایل که یکی هدر و دیگری کد برنامه هست ، یه برنامه نمونه هست که برای نمونه اینجا به هر کانکشن جدید Welcome و برای هر دستور OK رو برمیگردونه
3 و 4 : ax88796.c و ax88796.h : ما کاری به این فایل ها نداریم ولی درایور این چیپ هستند که ما استفاده نمیکنیم
5 : compiler.h : یه سری تعریف هایی که استفاده شده توی برنامه رو اینجا به صورت ماکرو تعریف کرده
6 و 7 : delay.c و delay.h : هم آمده برای تاخیر های استفاده شده تابع نوشته ، توی این فقط باید حواسمون به مقدار فرکانس CPU باشه که تو زمان بندی ها مشکل پیش نیاد
8 و 9 : enc28j60.c و enc28j60.h : این 2 تا فایلی هستند که برای ارتباط میکرو با ENC28J60 نیاز داریم
توی هدر باید پایه هایی که برای ارتباط SPI با این IC استفاده میکنید رو مشخص کنید :
[code=c]// ENC28J60 PINS CONFIGURATION
#define ENC28J60_CONTROL_PORT PORTB
#define ENC28J60_CONTROL_DDR DDRB
#define ENC28J60_CONTROL_CS 4
#define ENC28J60_SCK_PIN 7
#define ENC28J60_MISO_PIN 6
#define ENC28J60_MOSI_PIN 5
#define ENC28J60_SS_PIN 4
//[/code]
بقیه چیزاشو هنوز وقت نکردم در بیارم ولی چیز زیادی که نیاز به دونستن باشه برای کاربر نداره میکرو میدونه و ENC28J60
10 : main.c که متن اصلی برنامه هست که بعدا توضیح میدم
11 و 12 : nic.c و nic.h :
[code=html5]/************************************************** ***************************
* Module Name: NIC Driver Interface for uIP-AVR Port
*
* Created By: Louis Beaudoin (www.embedded-creations.com)
*
* Original Release: November 16, 2003
*
* Module Description:
* Provides three functions to interface with a NIC driver
* These functions can be called directly from the main uIP control loop
* to send packets from uip_buf and uip_appbuf, and store incoming packets to
* uip_buf
*
*
************************************************** ***************************/[/code]
یه ماژوله که باید توی برنامه main صدا زده بشه و وضیفشم ارسال و دریافت اطلاعات هست
چیزی که توی هدر این فایل مهمه
[code=c]#define NIC_CHOICE ENC28J60[/code]
هست که باید چیپی که استفاده میکنید رو انتخاب کنید تا توابع و تعاریف مربوط به همون IC استفاده بشه
13 و 14 : rtl8019.c و rtl8019.h : این 2تا هم بربوط به یه IC دیگه هست که باز ما باش کاری نداریم
15 و 16 : uip.c و uip.h :
[code=html5]/**
* \file
* Header file for the uIP TCP/IP stack.
* \author Adam Dunkels <adam@dunkels.com>
*
* The uIP TCP/IP stack header file contains definitions for a number
* of C macros that are used by uIP programs as well as internal uIP
* structures, TCP/IP header structures and function declarations.
*
*/[/code]
این فایل ها فایل هایی از پشته TCP/IP هستند که باید در برنامه اصلی فراخوانی شوند
یه سری کارای مهم میکنه ولی ما بش کار نداریم و فقط ازش استفاده میکنیم
17 و 18 : uip_arch.c و uip_arch.h :
[code=html5]/**
* \file
* Declarations of architecture specific functions.
* \author Adam Dunkels <adam@dunkels.com>
*/[/code]
یه سری تعریف که بازم بشون کار نداریم و فقط استفاده میکنیم
19 و 20 : uip_arp.c و uip_arp.h :
[code=html5]/**
* \file
* Macros and definitions for the ARP module.
* \author Adam Dunkels <adam@dunkels.com>
*/[/code]
یه سری تعریف و ماکرو برای ماژول ARP هست که قسمتی از uIP هست
Address Resolution Protocol
http://en.wikipedia.org/wiki/Address...ution_Protocol
21 : uipopt.h : که فایل مهمی هست و ما باش زیاد کار داریم
[code=html5]/**
* \file
* Configuration options for uIP.
* \author Adam Dunkels <adam@dunkels.com>
*
* This file is used for tweaking various configuration options for
* uIP. You should make a copy of this file into one of your project's
* directories instead of editing this example "uipopt.h" file that
* comes with the uIP distribution.
*/[/code]
توی این فایل تنظیمات IP ، MAC ، Netmask ، آدرس روتر و ... رو میشه تنظیم کرد
و فایل 22 : VERSION.h : که هیچی نیست فقط یه سری اطلاعات در مورد نویسنده ها و کتابخونه ها هست ( همشون کامنت هستند )
تا اینجا فایل های کتابخونه رو یاد گرفتیم در ادامه نحوه استفاده کردن و کامپایل برنامه رو یاد خواهیم گرفت
دیدگاه