基于ARM的嵌入式TCP_IP协议栈的实现.pdf
《基于ARM的嵌入式TCP_IP协议栈的实现.pdf》由会员分享,可在线阅读,更多相关《基于ARM的嵌入式TCP_IP协议栈的实现.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 1994-2010 China Academic Journal Electronic Publishing House.All rights reserved.http:/基于ARM的嵌入式TCP?IP协议栈的实现王原丽,王丽(武汉理工大学 信息工程学院湖北 武汉430070)摘要:嵌入式系统是一种将底层硬件、实时操作系统和应用软件相结合的专用计算机系统,网络化是嵌入式系统的主要趋势之一。本文以Sam sung S3C44BOX芯片为核心的ARM开发板作为硬件平台,以C?OSII实时操作系统作为软件平台,针对C?OSII内核中不支持TCP?IP协议栈,无法适应嵌入式设备网络化需要的问题,本
2、文首先对标准的TCP?IP协议栈进行了分析,然后提出了简化实现一个基于ARM和C?OSII的嵌入式TCP?IP协议栈方案。关键词:嵌入式系统;TCP?IP;ARM;C?OSII内核中图分类号:TN 915104文献标识码:B文章编号:1004373X(2005)2210403I mplementation of Embedded TCP?IP Protocol Based on ARMWAN G Yuanli,WAN G L i(Information Engineering College,W uhan U niversity of Technology,W uhan,430070,Chin
3、a)Abstract:The embedded system is a custom ization computing system which is integrate w ith hardware,realti me operatingsystem and application software,it is one of hot trends making the embedded system networking1This paper makes the Sam sungS344B0X ARM board as the hardware platform andC?OSII sys
4、tem as software platform1In order to resolve the lack of TCP?IPstack inC?OS II kernel,this paper first analyzes standard TCP?IP stack,then presents a si mplified scheme to i mplement a newembedded TCP?IP stack,which is based on ARM processor andC?OSII system1Keyw ords:embedded system;TCP?IP;ARM;C?OS
5、II kernel收稿日期:20050726随着嵌入式系统与网络的日益结合,越来越多的嵌入式设备实现Internet网络化。在嵌入式实时操作系统中引入TCP?IP协议栈,以支持嵌入式设备接入网络,已成为嵌入式领域重要的研究方向。C?OSII是一种占先式、多任务、移植性强的免费公开源代码的实时操作系统,然而他只是一个实时的任务调度及通信内核,系统内核本身并没有集成TCP?IP协议栈,所以不能满足嵌入式设备联网的需要。为了使基于ARM和C?OSII的嵌入式系统能实现网络化,必须使用外挂的TCP?IP协议栈或者根据硬件平台和实际应用重新设计实现新的协议栈。由于TCP?IP协议比较复杂,而目前嵌入式系
6、统中大量应用低速处理器,受内存和速度限制,实现完整的TCP?IP协议较为困难,有必要将TCP?IP协议简化。1TCP?IP协议分析计算机网络是一个层次结构,其各层及其协议的集合,称为网络的体系结构。Internet上使用的参考体系是TCP?IP体系结构,结构如图1所示,他包括应用层、传输层、网络层和主机到网络接口4层。最底层为主机到网络接口层,他包括多种网络协议,如以太网协议(ETH)、光纤分布式数据接口协议(FDD I)、点到点链路协议(PPP)等。这些协议由硬件(如网络适配器)和软件(如网络设备驱动程序)共同实现,完成主机与各种网络的数据交换。图1TCP?IP体系结构第2层为网络层,他只有
7、一个网际协议(IP)。IP的主要功能是为不同网络的主机之间发送数据报的操作序列提供无连接服务。ARP(地址转换协议)是IP协议的一个附 属协议,他将IP地址转换为这个网络的链路层地址。ICM P(网际控制报文协议)总是与IP协议配置在一起,他运行在IP协议之上,发送一些控制信息,帮助Internet处理差错。第3层为传输层,他包括2个主要协议:传输控制协议(TCP)和用户数据报协议(UDP)。TCP提供一种面向连接的、可行的、有序的字节流服务。UDP提供不可行4嵌入式技术王原丽等:基于ARM的嵌入式TCP?IP协议栈的实现 1994-2010 China Academic Journal El
8、ectronic Publishing House.All rights reserved.http:/的数据报传送信息,并通过校验和来确保消息的正确性,但他没有流量控制,也不保证可行的、有序的传输。第4层为应用层,包含所有应用协议如Telnet(远程登陆),FTP(文件传输),FFTP(普通文件传输协议),SM TP(电子邮件),DNS(域名服务),HTTP(超文本传输协议)等。TCP?IP的层次结构中,各层实现对等层之间通信协议,彼此是相互独立的,上层仅能通过接口知道下层提供的服务,而不知道下层的具体实现,因而用户数据是逐层依次复制给下层完成网络通信的。2协议裁减方案标准的TCP?IP协议
9、栈对计算机处理器、存储器要求比较高,然而,嵌入式系统的计算资源和存储资源都非常有限,在这些嵌入式系统中实现标准的TCP?IP协议栈将占用大量系统资源,因此嵌入式TCP?IP必须进行简化和优化,尽可能做到代码精简、降低存储开销。211IP协议IP协议是TCP?IP的基础,为不同网络的主机之间发送数据报的操作序列提供无连接服务。通过在数据报前添加IP协议头,使每个数据报具有寻址能力。嵌入式系统只把IP作为传输工具,进行简化以完成主要的操作。得到IP包后,检验IP头部的版本、目的地址、校验和正确否,解析出协议类型字段,由此交给相应的高层协议处理。发送IP包时,将缓冲区内的源地址与目的地址互换,设置校
10、验和,然后交给下层协议处理。若不符合要求,则将此包丢弃。IP包最大可以为65 kB,可以分段传输,而在嵌入式系统里根本无法容纳如此大的数据包,因此一般不支持分段传输,对于分段的功能可以裁减不要。所以限制MCU发送和接收数据包的方式以避免分段传输,从而减少程序复杂度。212ICM P协议ICM P协议用于报告在数据报过程中的错误,IP协议是无连接的,他无法将报文和错误信息传到最初的主机,ICM P将状态信息和错误信息发送到发报文的主机。因此予以采用。213TCP协议在TCP协议中采用停止等待算法代替滑动窗口算法。这一方面是由于数据量小,对网络拥塞不会产生太大影响,从而可以裁减TCP的流量控制功能
11、;另一方面则是因为数据量小时,采用停止等待算法的传输效率和滑动窗口算法的效率差不多,因此采用简单停止等待算法代替复杂的滑动窗口算法,不但减少了实现难度,提高了处理速度,同时取消了TCP发送缓存区和接收缓存区,从而减少了占用存储空间。214其他协议ARP协议为32位IP地址到对应的48位以太网地址之间提供动态映射。嵌入式系统中仅响应ARP请求,发送ARP回答包。请求者广播出包含ARP请求的以太帧、目的以太网地址为全1的广播地址。本机收到后,由目的IP地址发现自己是目的主机,发送一个ARP回答。UDP协议是一种不可靠的传输协议,目前多用于语音和视频传输等流媒体应用中,考虑到嵌入式设备在工业控制等专
12、用领域中在网络传输的是重要的数据和命令,其传输的可行性可以通过TCP协议来保证,因此裁掉UDP协议。3嵌入式TCP?IP协议栈的实现311以太网接口协议该层实现了TCP?IP协议栈与底层网络驱动程序模块的隔离,使得TCP?IP协议栈的实现与底层硬件无关。一方面使得系统移植到其他硬件平台时只需对底层的中断控制系统进行修改而不需对TCP?IP协议栈进行修改,减少移植工作量;另一方面使得系统增加网络新功能时只需对TCP?IP协议栈进行修改而不需对底层的中断控制系统进行修改。该模块包含以太网初始化、数据包的接收和发送3个函数。(1)void EtherDevInit()以太网初始化函数,负责实现网络接
13、口层、以及下层的物理设备驱动程序的初始化,数据结构的初始化。(2)BOOL EtherOutput()以太网发送函数,根据上层类型、源MAC地址及目的MAC地址组成以太网发送数据包,调用网卡发送函数将该数据包发送到网卡控制芯片中。(3)void EtherInput()以太网接收函数,根据帧类型字段选择将该帧交给哪个上层协议模块处理。312ARP协议以太网的数据通信依赖于硬件MAC地址,因而需要系统实现IP地址到MAC地址的转换功能。ARP协议使得网络上的每个主机动态地建立一张IP地址和链路地址之间的映射表。在协议中使用结构体SARPEntry来保存地址映射。struct SARPEntryI
14、P_ADDR IPA ddr;BYTE EtherA ddrETHER_ADDR_L EN;?3 超时表示该地址无效,将地址映射从表中删除3?WORD ti me;协议中的函数声明如下,注意函数返回指针作为操作对象,即在协议内部实现零拷贝:void ARP Init()struct SM emHead DA TA3ARPQ uery()struct SM emHead DA TA3ARP Input()void ARPA ddEntry(struct SARPPacket DA TA3ARPPacket)5现代电子技术2005年第22期总第213期?嵌入式与单片机?1994-2010 Chin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM 嵌入式 TCP_IP 协议 实现
限制150内