您当前的位置:五五电子网电子知识单片机-工控设备源码-程序uIP在51单片机上的移植 正文
uIP在51单片机上的移植

uIP在51单片机上的移植

点击数:7663 次   录入时间:03-04 11:51:34   整理:http://www.55dianzi.com   源码-程序

  uIP其主要是为8位和16位系统设计的,程序在编写时就考虑到了移植问题。uIP的主要文件包括uip.c和uip_arp.c。
  
  (1)移植的基本过程。
  
  针对所用编译器的类型更改定义数据类型,底层RTL8019AS芯片的驱动和实现应用层代码,系统定时器接口等。下面分别予以说明。
  
  数据类型的定义:

  typedefunsignedcharu8_t;typedefunsignedshortu16_t;typedefunsignedshortuip_stats_t;由于KeilC编译器默认情况下的编译模式为small,变量的定义在内部RAM中,编译时编译模式应改为Large,即变量的定义在XDATA中。
  
  (2)RTL8019AS的驱动。
  
  主要包括以下内容。
  
  ①etherdev_init()完成系统上电初始化,包括设定RTL8019的物理地址和IP地址等,设定收发缓冲区的位置和大小等。
  
  ②etherdev_send()完成数据的发送。
  
  ⑨etherdev_read()完成以太网数据的接收。底层网络设备驱动程序与uIP协议栈通过两个全局变量实现接口:变量uip_buf为收发缓冲区的首地址;uip_len为收发的数据长度。
  
  etherdev_send函数将uip_buf里的uip_len长度的数据发送到以太网上。recv函数将接收到数据存储到uip_buf中,同时返回uip—len的值。
  
  ④etherdev_timerO_isr()定时器1中断函数为系统提供时钟定时。
  
  51系列单片机一般有2或3个定时器,本移植中选用定时器1产生定时时间,为ip_perioDIC()函数的执行提供基准,另外还对ARP表项,TCP连接超时等提供时间基准。
  
  RTL8019AS初始化、收发包的详细过程在12.6节中已经详细介绍过,在此不再赘述。移植后的文件如下:

移植文件

  uIP的设置在uipopt.h头文件中。在该文件中用户根据具体的实际条件设置uIP的IP地址,MAC地址,网络掩码,网关地址。另外还包括可建立的最大连接数,端口是否启动UDP协议功能等,在具体的应用中可以参考uIP的说明文档,其中都有详细的说明。




本文关键字:单片机  源码-程序单片机-工控设备 - 源码-程序

《uIP在51单片机上的移植》相关文章>>>