基于uCOS-II的网络通信设计与实现

(整期优先)网络出版时间:2010-10-20
/ 2

基于uCOS-II的网络通信设计与实现

刘晓刘勇

刘晓重庆通信学院

刘勇大连理工大学

【摘要】本题目采用以S3C44B0X作为主处理器的EDUKIT-III硬件平台,系统的软件平台采用嵌入式uCOS-II操作系统。该操作系统已经被成功地移植到了ARM处理器上,并且在uCOS-II上移植了嵌入式TCP/IP协议栈LwIP,同时实现了开发平台上网卡cs8900a的驱动程序。

【关键词】嵌入式系统uCOS-IIcs8900a协议栈

【中图分类号】TP39【文献标识码】A【文章编号】1674-4810(2010)10-0018-02

一uCOS-II实时操作系统

uCOS-II是专门为嵌入式应用设计的实时操作系统内核,它具有以下几个优点:源代码公开,代码结构清晰,注释详尽,可移植性好,可方便裁减,最多可以开启60个任务。对uCOS-II的移植实际上是对与处理器有关的代码进行重写或修改。移植工作包括以下几个内容:基本的配置和定义(OS_CPU.h)、移植OS_CPU_C.C标准C代码文件、移植OS_CPU_A.ASM汇编代码文件。

二嵌入式协议栈LwIP

LwIP是TCP/IP协议栈的一种实现。LwIP的主要目的是减少存储器利用量和代码尺寸,使LwIP适合应用于小的、资源有限的处理器如嵌入式系统。为了减少处理器和存储器要求,LwIP可以通过不需任何数据拷贝的API进行裁减。

完成LwIP在uCOS-II上的移植就是要调用uCOS-II的函数实现系统的初始化、任务的同步、时间管理和内存管理几个部分的功能。(1)uCOS-II系统相关头文件的修改是为了与CPU相关的定义相匹配,修改例如字节的长度、字的高低位顺序的定义等;(2)利用uCOS-II操作系统的函数完成LwIP中信号量、消息队列、定时器和线程创建等功能的封装。

三网络设备的驱动实现

本设计中使用的网卡芯片是在ARM嵌入式开发与应用实验平台EDUKIT-III上集成的网卡芯片cs8900a。

在LwIP中有多个网络接口,每个网络接口对应了一个网络结构structnetif。这个结构定义了网络接口的属性、收发函数等。可以调用netif->input()和netif->output()进行以太网数据包的接收、发送操作。

四Ping测试

在本设计中PC机IP设置为“192.192.192.36”,网关设为

“192.192.192.1”,将目标板的IP设置为“192.192.192.200”,网关设置为“192.192.192.1”,二者在同一个子网中,并且目标板的MAC为“00-06-98-01-7e-8f”。

将目标板与PC机用网线相连,使用PowerICEForARM(仿真器)将编译好的程序下载到目标板的RAM中,运行源程序,在目标板上初始化uCOS-II、协议栈、网卡驱动。

此时由于PC机与目标板没有进行过网络通信,所以在PC机本地的ARP缓存中没有目标板的IP地址-MAC地址映射关系。在PC机上打开命令行界面,执行命令“arp-a”可以看见,PC机的本地ARP缓存中没有目标板的IP-MAC地址映射关系(192.192.192.200与00-06-98-01-7e-8f)。

.

图1Ping之前PC机的ARP缓存

此时在PC机命令行界面中运行命令“ping192.192.192.200”之后,再键入命令“arp-a”观察此时PC机的ARP缓存,可以发现目标板的IP地址-MAC地址映射关系(192.192.192.200与00-06-98-01-7e-8f)已经写入了PC机的ARP缓存。

.

图2Ping之后PC机的ARP缓存

Ping的过程中,由于PC机上ARP缓存中没有目标板的IP地址-MAC地址映射关系,所以PC机首先在网络上广播ARP消息,在发送的ARP包中含有目标板的IP地址和PC机的IP地址、MAC地址,当目标板接收到这个ARP包时,它会和自己的IP地址比较,发现一致后会发送给PC机一个ARP回复,这个ARP回复包将目标板的IP地址作为源IP地址,将PC机的IP地址作为目的地址,同时含有目标板的MAC地址。这样当PC机收到这个回复后,会将目标板的IP地址、MAC地址取出加入到本地的IP-MAC地址映射表中,这样有了这个地址映射表,就可以在PC机和目标板之间进行正常的网络通信。

五结论

在本设计中,对于协议栈中ICMP等其他网络通信协议并没有进行相关的研究和设置,所以Ping结果是不通的,但是PC机上ARP缓存的成功建立说明PC机和目标板的基本网络通信已经成功,目标板接收、发送网络数据包的功能已经实现,底层的软硬件平台已经搭建,为通信功能的完善和进一步的网络应用奠定了基础。

在本设计中,目标板对于ARP消息的接收和发送功能已经实现,可以在PC机上成功构建目标板的IP-MAC地址映射关系,实现了基本的网络通信功能,为下一步的网络通信奠定了基础。

参考文献

[1]黄燕平.uCOS-IIARM移植要点详解[M].北京:北京航空航天大学出版社,2005

[2]焦海波、刘健康.嵌入式网络系统设计[M].北京:北京航空航天大学出版社,2008

[3]AdamDunkels.DesignandImplementationoftheLWIPTCP/IPStack[M].SwedishInstituteofComputerScience,February20,2001