资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2011-2-28,#,ARM,开发教程之基于,ARM,微处理器,TCP/IP,协议栈,LwlP,实现,0,引 言,1,硬件平台,2 TCP,IP,协议栈,LwIP,的移植,3,底层网络驱动的实现,4,上层,Socket,基本通信实现,5,结束语,0,引 言,随着嵌入式系统与网络的日益结合,越来越多的,嵌入式,设备需要实现,Internet,网络化,支持嵌入式设备接入网络,已成为嵌入式领域重要的研究方向。而目前嵌入式系统中大量应用低速处理器,受内存和速度限制,实现完整的,TCP,IP,协议较为困难,,LwIP,作为较为成熟的嵌入式,TCP,IP,协议栈受到了广泛的应用。,1,ARM,开发教程之,硬件平台,本通信系统的硬件平台由以下几个部分组成:,S3C2410,主,CPU,芯片控制嵌入式外围设备的存储、通信、保护、调试、显示等操作;,DSP,和,FPGA,负责信号数据的采集和处理;,CS8900A,负责网络数据的收发;其他部分还包括串口,RS232,的通信、,LCD,的数据显示、数据存储,FLASH,和,SDRAM,以及其他硬件控制等。本硬件通信平台的原理框图如图,1,所示。,嵌入式操作系统选用的是,cos,,,cos,作为目前市场上最小的嵌入式操作系统得到了广泛的应用,提供任务问通信、同步使用的信号量、邮箱和消息队列;具有良好的可裁剪性。,2 ARM,开发教程之,TCP,IP,协议栈,LwIP,的移植,LwIP,由几个模块组成,除,TCP,IP,协议的实现模块外,(IP,,,ICMP,,,UDP,,,TCP),,还有包括许多相关支持模块。这些支持模块包括:操作系统模拟层、缓冲与内存管理子系统、网络接口函数及一组,Internet,校验和计算函数。缓冲与内存管理子系统等大部分模块,LwIP,都已经独立出来,在移植的过程中不需要改动,我们只需要实现操作系统模拟层以及底层硬件驱动就可以正常工作。,操作系统模拟层存在的目的主要是为了方便,LwIP,的移植,它在底层操作系统,cos,和,LwIP,之间提供了一个接口。这样,我们在移植,LwIP,到一个新的目标系统时,只需修改这个接口即可。操作系统模拟层需要实现信号量操作函数、邮箱操作函数和线程操作函数三类。,为支持操作系统模拟层,还需要完成与,CPU,或编译器相关的定义,如数据类型、数据长度、字的高低位顺序等,这些应该与实现,C,OS-,时相一致。另外需要注意的是由于一个网络可能由不同的体系结构的,CPU,组成,其字节顺序可能有两种方式:,Little-endian,顺序和,Big-endian,顺序。需要注意字节顺序的相互匹配。,3 ARM,开发教程之底层网络驱动的实现,底层网络驱动的框架,LwIP,已经为我们实现了绝大部分,(,如图,2,所示,),,我们只需要在作者设计好的框架中完成与底层硬件相关的部分即可。即我们只需要实现与硬件相关的网卡初始化函数网络数据包发送函数和网络数据包接收函数。,本文所采用的底层网络芯片,CS8900A,是,C IRRU SLO G IC,公司生产的低功耗、性能优越的,16,位以太网控制器,功能强大。突出特点是使用灵活,其物理层接口、数据传输模式和工作模式等都能根据需要而动态调整,通过内部寄存器的设置来适应不同的应用环境。它的主要特点是符合,IEEE 802,3,以太网标准;片内带有,4K,字节的,RAM,来存储发送和接收数据;与主机之间的数据通讯方式有,I,O,模式、,Memory,模式和,DMA,模式,在电路设计时可根据具体情况灵活选择;带有传送、接收低通滤波的,10Base2T,连接端口;支持,10Base2,,,10Base5,和,10Base2F,的,AU I,接口;自动生成报头,自动进行,CRC,检验,冲突后自动重发;全双工和半双工可选模式。,CS8900A,初始化部分的主要内容如下:,软件复位,并检查复位完成标志是否置位;,设定,Memory,工作模式,使其,4K,内存地址映射到主机内存中;,设定临时使用的以太网物理地址,真实地址需要向权威机构申请;,设定接收帧的类型,至少要能接收广播;,确定数据的传送方向,一般设为全双工方式;,中断使能允许;,使能接收中断;,确定,CS8900A,的中断管脚号,根据硬件线路使用情况来确定;,接收发送使能。,其中需要说明的是由于,TCP,IP,通信非常频繁,在,ARM,中接收发送数据采用中断模式占用资源太多,因此本文采用的是查询方式,也可以保证数据的基本通信。,CS8900A,的数据发送基本流程如下:在收到由主机发来的数据报后,侦听网络线路。如果线路忙,它就等到线路空闲为止,否则,立即发送该数据帧。发送过程中,首先,它添加以太网帧头,(,包括先导字段和帧开始标志,),,然后,生成,CRC,校验码,最后,将此数据帧发送到以太网上。数据发送流程图如图,3,所示。,数据接收时,它将从以太网收到的数据帧在经过解码、去掉帧头和地址检验等步骤后缓存在片内。在,CRC,校验通过后,它会根据初始化配置情况,通知主机,CS8900A,收到了数据帧,然后传到主机的存储区中。,数据接收流程图如图,4,所示,:,4 ARM,开发教程之上层,Socket,基本通信实现,LwIP,已经实现了大部分的,Socket,网络连接函数,我们要实现,Socket,,的基本通信,只需要在此基础上通过调用其,Socket,网络连接函数实现简单的客户机服务器模式即可。仪器作为服务器方,主机作为客户机进行连接。实现结果如图,5,所示,发送程控命令,FREQ 300,,返回,FREQ 300,000000MHzOK,表示设置成功。,5,结束语,本系统已经在场强仪,AV3942,中使用,能够通过网络对其进行远程控制,实践证明,该系统简便实用,能够方便、灵活的实现各种通信系统的互联。,
展开阅读全文