《电子技术应用》
您所在的位置:首页 > 通信与网络 > 业界动态 > 嵌入式Internet体系结构研究

嵌入式Internet体系结构研究

2009-09-02
作者:阙建荣

  摘  要: 研究了目前嵌入式Internet技术的二种典型体系结构,在此基础上分析和研究了嵌入式TCP/IP协议栈的特点及其实现方法。

  关键词: 嵌入式Internet  体系结构  嵌入式TCP/IP协议栈

 

  嵌入式Internet是一种将嵌入式设备接入Internet的技术。利用该技术可将Internet从PC机延伸到8位、16位、32位单片机,并实现基于Internet的远程数据采集、远程控制、自动报警、上传下载数据文件、自动发送Email等功能,大大扩展了Internet的应用范围。网络专家预测,将来在Internet上传输的信息中,有70%的信息来自小型嵌入式系统。嵌入式Internet将会产生比PC机时代多成百上千倍的瘦服务器和超级嵌入式瘦服务器。这些瘦服务器将与人们所能想到的各种物理信息、生物信息相联接,通过Internet网自动地、实时地、方便地、简单地提供给需要这些信息的对象。

  嵌入式Internet的技术正在不断发展,新技术、新产品层出不穷,从底层硬件技术到顶层软件所提供的解决方案都在不断的完善。但从根本上讲,嵌入式设备要接入Internet,它必须支持TCP/IP通信协议,这是不能选择的。由于嵌入式系统是以计算机技术为基础、软硬件可裁剪并对成本、体积、功耗有严格要求的专用系统,它对TCP/IP通信协议的支持有其自身的特点,这些特点也决定了嵌入式Internet的体系结构。

1  嵌入式Internet的体系结构

  目前,很多研究机构和企业提出了许多有关嵌入式设备连入Internet的解决方案。从嵌入式设备对TCP/IP通信协议的支持方式和体系结构分析,可以把这些解决方案归纳为以下二种。

1.1 基于网关的体系结构

  嵌入式设备要支持TCP/IP通信协议,所需要的计算资源和存储资源相当可观。而目前大多数的嵌入式设备其计算资源和存储资源是有限的,不能直接支持TCP/IP协议栈。于是就出现了一种基于网关的结构。这种结构的核心思想就是,采用桌面计算机或高性能嵌入式处理器作为网关,支持TCP/IP协议栈并运行Internet服务程序(通常是Web Server)。网关和嵌入式设备之间则通过一些标准的轻量级总线(RS232、RS485等)和私有通信协议(由解决方案提供商提供)进行通信。用户通过网络浏览器访问网关上运行的服务器实现对这些嵌入式设备的远程访问和控制,从而实现嵌入式设备连入Internet。

  emWare公司开发的嵌入式微Internet网络技术(Embedded Micro Internetworking Technology,EMIT)就是这种体系结构的典型应用。EMIT由emNet和emGateway二部分组成,如图1所示。emNet协议运行在MCU内部,是为嵌入式系统和其他网络(如RS485、IR、RF和电力线等)进行联接的网络协议。同时,emNet使得集成emMicro的嵌入式系统能够和嵌入式微控制器网关emGateway进行有效的通信。嵌入式微控制器网关(即emGateway)运行在计算机、TV机顶盒或专用的家用电器服务器中,它是嵌入式设备和Internet之间联接的桥梁。应用系统运行MCU内的emNet,通过emGateway连入Internet。

 

  Webchip是一种使嵌入式电子设备和家用电器与网络方便联接的实用解决方案(图2)。它也是基于网关的体系结构应用的一个典型实例。Webchip是独立于各种微控制器的专用网络接口芯片。它通过标准的输入、输出口与各种MCU相连。MCU通过Webchip与网关联接即可接收并执行经由Internet远程传来的命令或将数据交给Webchip发送出去。MCU应用系统通过Webchip网络芯片与Gateway联接,再连入Internet。基于Webchip的嵌入式Internet体系结构最终还是要通过网关连入Internet,它只不过是用硬件代替软件实现的方式屏蔽了底层的通信机制和网关的交互过程,可以说是EMIT体系结构的一个变种。

 

  基于网关的体系结构的最大优点就是网关中的一个IP地址可以联接多个嵌入式设备。但它需要PC机做网关,因而增加了整个系统的成本。

1.2 直连的体系结构

  让嵌入式设备连入Internet的最直接方法就是让嵌入式系统本身支持完整TCP/IP协议栈。要支持TCP/IP通信协议,所需要的计算资源和存储资源相当可观。因此这种让嵌入式设备本身支持完整的TCP/IP协议栈直接连入Internet的结构只适用于那些高档的嵌入式处理器,如32位的ARM、SH3、MIPS等。而对那些低档的8位和16位嵌入式系统,这个方案显然行不通。

  要让那些低档的8位和16位嵌入式系统支持TCP/IP协议栈而直接连入Internet,可行的办法就是针对嵌入式系统的特点对传统的TCP/IP协议栈进行裁剪。让这些嵌入式设备支持一种轻量级的TCP/IP协议栈而直接连入Internet。基于Webit的嵌入式Internet直连结构就是这一体系结构典型的应用实例。

  Webit是国内某公司研制开发的用于嵌入式系统接入Internet的一个实用产品,它将MCU和以太网控制器集成到一块小板卡上,将它内置到嵌入系统中就可以完成嵌入式系统与Internet网的联接,如图3所示。Webit有自己的IP地址,有很高的集成度。它将协议处理部分独立出来,使开发人员省去了网络部分的设计,可将主要精力放在应用系统本身。

Webit实际上是个嵌入式瘦Web服务器。其中运行的TCP/IP协议栈是经过裁剪了的。嵌入式Internet直连体系结构无需网关,发布比较灵活,开发成本相对较低,但需要独立的IP地址。

 

  相对于技术和应用比较成熟的基于网关的体系结构,嵌入式Internet直连结构还需要不断完善。从这种体系结构的特点可以看出,实现这种体系结构的关键问题就是如何针对嵌入式系统的特点及其具体的应用场合对传统的TCP/IP协议栈进行裁剪,以得到适合于嵌入式Internet直连结构的嵌入式TCP/IP协议栈,这也正是近年来研究的热点。

2 嵌入式TCP/IP协议栈的特点及其实现方法

  和嵌入式系统面向特定的应用一样,分析嵌入式TCP/IP协议栈的特点和对传统的TCP/IP协议栈进行简化也要针对特定的系统环境和应用背景。离开了特定的系统环境和应用背景来讨论嵌入式TCP/IP协议栈的特点和对TCP/IP协议栈进行简化是没有意义的。这里所讨论的嵌入式TCP/IP协议栈是针对那些低档的8位和16位嵌入式系统能支持嵌入式Internet直连体系结构而提出的。

  低档嵌入式系统中一般没有多任务操作系统支持,嵌入式TCP/IP协议栈直接面对硬件。MCU中的程序结构一般是顺序执行和硬件中断相配合的方式。由于嵌入式处理器的时钟频率低,地址、数据总线窄,所以对一个IP包的处理要花很多的时间。如果采用中断处理方式,势必影响其他中断和任务的执行。当系统中有实时数据采集、串口通信中断、键盘中断等实时任务时,则会造成很大的冲突。设计时需要合理划分中断处理程序,将无实时要求和费时的嵌入式TCP/IP协议栈的处理放在主程序顺序循环中。对网络接口控制芯片采用查询式,即在其他中断任务的执行间隙处理嵌入式TCP/IP协议栈,以牺牲响应速度来换取系统可靠性(图4)。由于处理不及时可能会发生溢出、丢包等,这可依靠TCP协议本身的机制来保证可靠传输。

 

  缓冲区方案的选择对TCP/IP协议栈的性能影响很大。8位或16位嵌入式系统中存储空间一般只有几十字节,在设计嵌入式TCP/IP协议栈时,不但要考虑协议栈本身的大小,还要考虑缓冲区的设置。一个最大的以太网包的大小超过1500个字节,嵌入式系统一般只能提供几十字节的空间,并要被各个协议所用。所以只能申请一个能存放一个最大以太网包的缓冲区来存放接收到的数据包,收到一包处理一包,其存储地址是固定的,而不是动态分配的。同时这个缓冲区还要作为发送包时的缓冲区用。在大多数应用中,嵌入式TCP/IP协议栈用于嵌入式瘦服务器,其接收包的类型一般为系统状态配置包、控制动作命令包、通信控制包等,包中装载的数据较少。而嵌入式瘦服务器发回给客户的数据包中含有一些嵌入式瘦服务器的实时状态信息或网页,包中装载的数据较多,可以通过精心设计,使这些数据能用一个以太网包发送出去。

  在IP层,根据嵌入式系统特定的应用背景,可以对其通信环境做出一些假设。只考虑一般的情况,例如:如果数据包经过最大传输单元(MTV)不同的物理网络,则IP层必须支持数据包的分片和重装。但现有的网络一般都支持以太网,因此可以不考虑IP数据包的分片和重装,这在一般情况下是可行的。因此嵌入式TCP/IP协议栈中的IP层协议可以把路由、分片、重装等功能裁减掉。

  TCP/IP协议栈中的TCP协议实现面向连接的、端到端的可靠通信协议。它采用了许多机制来保证传输的可靠性,例如通过确认ACK和定时器来判断是否有必要重发;通过序列号来解决通信时的丢失、重复、失序等问题。前面提到嵌入式TCP/IP协议栈一般用于嵌入式瘦服务器。TCP有限状态机只需要实现服务器端的TCP有限状态机即可。在发送数据包时可以采用“发送—停止—等待—确认—发送”的方式,不实现滑动窗口协议。由于每次只缓冲和发送一个包,接受一包处理一包,不必考虑流量控制和拥塞控制。在一般的应用场合,和嵌入式TCP/IP协议栈通信的是完整的TCP/IP协议栈。当这些嵌入式瘦服务器发送的包丢失后,对方收不到确认包,认为自己所发的包丢失,超时重发,而嵌入式瘦服务器此时再响应,仍然可以保证可靠性。因此嵌入式TCP/IP协议栈的TCP协议可以不实现超时重发机制。嵌入式TCP/IP协议栈中TCP协议处理流程如图5所示。

 

  嵌入式TCP/IP协议栈接口的设计一般不遵循BSD Socket接口标准,而采用基于事件驱动的程序模型。应用程序(协议)用一个C函数实现。当一个事件到达时(如一个新的连接请求到达,一个新的数据包到达一个已经建立的连接等),应用程序(协议)就会被调用,并由应用程序根据所发生的事件做出处理。嵌入式TCP/IP协议栈与传统TCP/IP协议栈的区别如表1所示。

 

3  结束语

  随着嵌入式Internet技术的不断发展,将来可能会出现新的嵌入式Internet解决方案。但有一点是不能选择的:嵌入式系统要接入Internet则最终要通过TCP/IP通信协议的支持,不管这种支持是直接的还是间接的。同时TCP/IP协议栈解决的是个通信问题,对TCP/IP通信协议的研究和简化不会因为嵌入式系统性能的提高而变得没有意义。将来,也许会用轻量级TCP/IP协议栈取代目前一些标准的轻量级通信协议(如RS-232等)而成为嵌入式设备和网关之间进行通信的一种解决方案。

 

参考文献

1  吕京建.嵌入式因特网技术的兴起与前景.今日电子,2000;增刊7~10

2  彭少熙.家庭网络中的嵌入式Internet方案.电子技术应用,2001;(10)

3  黎明.Webchip智能Internet网络接口芯片及其应用.力源电子工程,2000;(2)

4  李明,廖静秋.嵌入式TCP/IP协议栈的研究与开发.计算机工程与应用,2002;(16)

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。