0 引 言
随着嵌入式系统与网络的日益结合,越来越多的嵌入式设备需要实现Internet网络化,支持嵌入式设备接入网络,已成为嵌入式领域重要的研究方向。而目前嵌入式系统中大量应用低速处理器,受内存和速度限制,实现完整的TCP/IP协议较为困难,LwIP作为较为成熟的嵌入式TCP/IP协议栈受到了广泛的应用。
1 硬件平台
本通信系统的硬件平台由以下几个部分组成:S3C2410主CPU芯片控制嵌入式外围设备的存储、通信、保护、调试、显示等操作;DSP和FPGA负责信号数据的采集和处理;CS8900A负责网络数据的收发;其他部分还包括串口RS232的通信、LCD的数据显示、数据存储FLASH和SDRAM以及其他硬件控制等。本硬件通信平台的原理框图如图1所示。
嵌入式操作系统选用的是μcosⅡ,μcosⅡ作为目前市场上最小的嵌入式操作系统得到了广泛的应用,提供任务问通信、同步使用的信号量、邮箱和消息队列;具有良好的可裁剪性。
2 TCP/IP协议栈LwIP的移植
LwIP由几个模块组成,除TCP/IP协议的实现模块外(IP,ICMP,UDP,TCP),还有包括许多相关支持模块。这些支持模块包括:操作系统模拟层、缓冲与内存管理子系统、网络接口函数及一组Internet校验和计算函数。缓冲与内存管理子系统等大部分模块LwIP都已经独立出来,在移植的过程中不需要改动,我们只需要实现操作系统模拟层以及底层硬件驱动就可以正常工作。
操作系统模拟层存在的目的主要是为了方便LwIP的移植,它在底层操作系统μcosⅡ和LwIP之间提供了一个接口。这样,我们在移植LwIP到一个新的目标系统时,只需修改这个接口即可。操作系统模拟层需要实现信号量操作函数、邮箱操作函数和线程操作函数三类。
为支持操作系统模拟层,还需要完成与CPU或编译器相关的定义,如数据类型、数据长度、字的高低位顺序等,这些应该与实现μC/OS-Ⅱ时相一致。另外需要注意的是由于一个网络可能由不同的体系结构的CPU组成,其字节顺序可能有两种方式:Little-endian顺序和Big-endian顺序。需要注意字节顺序的相互匹配。