摘要: 通过对TCP/IP协议的分析,结合嵌入式系统的特点,挑选出一套精简、实用的TCP/IP协议子集,并详细介绍各协议层的实现过程。为嵌入式网络系统的开发提供一个较为简单且可行的思路。
关键词:嵌入式系统,以太网,TCP/IP协议, UDP, ARP
1、引言
嵌入式网络系统就是在嵌入式设备上实现了网络互联功能的系统,一般要求嵌入式设备在软件上支持TCP/IP协议栈,实现有关的以太网通信协议。如何实现TCP/IP协议是嵌入式网络系统的关键技术之一,在嵌入式系统中应用TCP/IP协议的关键是,如何设计出精简、高效的TCP/IP协议子集,以此来减少对系统资源的占用。
目前使用广泛的TCP/IP协议栈有LWIP(Light Weight)、uIP、Linux IP等,这些协议栈具有一定的通用性,包含的协议内容比较全,同时也比较复杂。具体在移植到应用系统的时候要考虑的问题较多,各个库文件和全局变量相互交叉引用,若要针对特定系统进行精简,则牵一发而动全身,尤其是存储器的管理及上层协议与底层网络驱动的接口是两个最大的移植难题。
为了能对TCP/IP协议有较深的了解,又利于后期进行深入研究,我们在实现一具体的Internet网络报警系统时,进行自主的嵌入式TCP/IP协议开发。下文所介绍的TCP/IP协议系统由于精简而利于实现,且无需进行内存管理,适合传送数据量不大的嵌入式系统。在实现时,只要根据相应的数据帧格式,在各层完成相应的功能即可。非常适合研究学习之用,为嵌入式网络系统的开发提供一个较为可行且简单的思路。
2、协议的分析与选择
众所周知,TCP/IP是一个协议族,是几百种网络协议的集合。通用计算机系统有足够的资源支持通信协议在内核实现,但是嵌入式系统则不同,因为其CPU处理能力和系统存储能力都受到成本限制,充分利用资源、提高系统性价比是开发嵌入式应用的根本特点。所以要对TCP/IP协议进行精简以适应嵌入式系统。
下面我们以实际的Internet网络报警系统为例,设计一个较为精简的TCP/IP协议子系统。此系统采用32位ARM结构的三星S3C440BX处理器,加SMSC公司的以太网控制芯片LAN91C113,以及另外一些外围芯片组成。此系统要求经Internet传送一些现场采集的报警数据到远程站点,要求实时性好、传输速度快,但每次传输的数据量很少,只是简单的报警信息。根据这些要求,再经详细分析TCP/IP各协议层实现的功能,精简出的协议子集如图1:
层次
需要实现的协议
应用层
无
传输层
UDP
网络层
IP、ICMP中的PINg响应协议
链路层
ARP应答协议