版权归原作者所有,如有侵权,请联系我们

[科普中国]-嵌入式因特网

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

兴起

自从1976年Intel公司的MCS-48系列单片机问世以来,嵌入式系统得到了广泛的应用。在工业控制领域中,嵌入式系统的典型应用是:嵌入式系统作为下位机进行数据采集和控制,PC机作为上位机完成各种管理功能。由于单独的嵌入式系统功能有限,而且嵌入式系统的控制现场往往远离数据处理现场,所以人们开始利用各种局部总线技术如 CAN、RS-232、RS-485等,将多个嵌入式系统组成局域网,并且实现嵌入式系统的远程访问与控制。

为了加大PC机与嵌入式系统的通信距离,一种方法是采用电流环技术或者使用长线收发器,提高串行数据信号的强度,增加串行数据的传输距离。这种方法的缺点是通信距离有限、布线困难 。另一种方法是使嵌入式系统和PC机均通过MODEM接入网络 (专线网、公共电话网或无线网),二者通过拨号连接进行信息传输。这种方法的缺点是抗干扰能力差、传输速率不高。现在,嵌入式系统的远程访问和控制逐渐渗透到各个领域,如遥控家电、远程实验、产品的远程管理、诊断和升级等,并且要求具有更高的可靠性、安全性以及更长的通信距离和更大的控制范围,以上两种方法不能满足这些要求。现在人们将目光投向了因特网,因特网是世界上最大的计算机网际网,具有丰富的信息资源,它几乎覆盖全球,使世界各地的人们方便地进行通信。如果能使嵌入式系统置身于因特网,那么人们将会更加方便地对嵌入式系统进行远程访问与控制,甚至,嵌入式系统之间也可以进行对等通信 。 所以人们开始寻求嵌入式系统与因特网的连接方法,于是嵌入式因特网技术诞生了。嵌入式因特网 技术是近几年发展起来的,目前,许多公司都努力推出自己的嵌入式因特网解决方案和产品。例如, 美国iReady公司提出了完整的称作“Internet Tuner”的新一代非PC智能设备因特网连接方案,支持这种 技术的有Seiko、Sony和Sharp等国际著名公司。

嵌入式英特网的实现嵌入式系统接入因特网的方法总的来说有两种 ,其一是使嵌入式系统完全具备网络功能,直接与因特网相连。其二是使嵌入式系统通过网关间接与因特网相连,网关充当嵌入式系统与因特网的桥梁,网关通常是PC机或者高性能嵌入式网络服务器(高性能嵌入式网络服务器本身也是一种采用 了嵌入式因特网技术的嵌入式设备)。

嵌入式系统直接接入因特网这种方法的实质是在嵌入式系统中实现TCP/IP协议和其它相关的应用层协议如 HTFP、FrP和 SMTP等,使其可以在因特网上发送、接收IP包。下面介绍几种在嵌入式系统中实现网络协议的方法。

1、在单片机程序中实现网络协议

选择支持软件固化TCP/IP协议的微控制器 (MCU),用以太网控制器实现网络接口 (如图所示)可以使嵌入式系统接入因特网。系统可采用 16位或8位的MCU 。以太网控制芯片具有物理介质上的串行数据收发功能和MAC层的控制功能,实现了CSMA/CD协议。其他协议如 TCP/IP、HTTP、FTP等由 MCU 程序存储空间的代码实现 。由于协议占用了一定资源,所以要求提供大容量的程序存储空间。在实际开发过程中可以根据具体的应用需求简化 TCP/IP 协议,只提供一个 TCP/IP协议的一个子集即可。这种方法的优点是硬件成本低廉;缺点是软件设计复杂、开发难度大、开发周期长、对开发者的要求较高。

2、采用具有网络协议栈的嵌入式实时操作系统

现在越来越多的高性能嵌入式系统采用嵌入式实时操作系统 (RTOS,Real Time Operation System),嵌入式 RTOS功能强大,多数支持 TCP/IP等网络协议,如 VxWorks、pSOS和 Windows CE 等。VxWorks网络协议栈是一个与 BSD4.4兼容的实时 TCP/IP协议栈,支持 IP 、ICMP、IGMP、UDP、 TCP和 SNTP等协议以及 IP multicast、CIDR 和RFC-1323等最新因特网协议,并且提供套接字库。 pSOS系统包含了 TCP/IP管理部件pNA+、用户可 以调用 pNA+中丰富的函数,访问网络接口,操作套接字进行高级 TCP/IP网络编程 。Windows CE也提供了 TCP/IP协议栈,支持 Winsock和 IRSock网络编程 。采用具有网络协议栈的嵌入式 RTOS外加网络接口可以使嵌入式系统直接接入因特网。这种方法的优点是:系统功能强大,而且开发者不必自己实现 TCP/IP协议。缺点是:开发成本高,嵌入式RTOS价格昂贵,对MCU的性能要求较高,通常要求采用高档的 32位甚至64位的MCU,此外还要求开发者必须熟悉 RTOS和 TCP/IP协议。

3、采用网络芯片

网络芯片硬件固化了网络协议栈并且提供网络接口,是一个独立于MCU的专用芯片,它通过标准的 I/O接 口与大多数 MCU相连。网络芯片负责在因特网上发送、接收IP包。网络芯片的制造商一般提供相应的软件包,开发者可以调用 函数进行网络编程,使嵌入式系统在因特网上发送和接收数据。这种方法的优点是开发者不必考虑网络芯片的工作细节,只需编写应用程序和网络芯片的接口程序即可;缺点是网络芯片并不支持所有的MCU,而且价格比较贵,一般在干元以上。

嵌入式系统通过网关间接接入因特网这种方法的基本思路是:由网关实现各种复杂的网络协议,负责在因特网上发送 、接收 IP包,网 关与嵌入式系统之间采用轻量级协议进行通信 。下面介绍几种有代表性的方法 。

1、EMIT方法

EMIT是美国 emWare公司提出的8位和16位 MCU 接入因特网的技术 。EMIT技术主要由emMicro,emGateway和网络浏览器 3部分组成 (如图所示)。emMicro是嵌入在设备中的很小的网络服务器 ,它占用的应用存储空间为1到8kByte,这取决于 MCU、编程语言和开发工具的选择以及设计目标的差异。 EmGateway实现 了TCP/IP等因特网协议,可以运行在 PC机或高性能嵌入式服务器中。emGateway可以与多个 emMicro进行通信,采用的协议有 emNet、RS一485、RS一232、CAN或无线通信协议等,其中 emNet是 emWare公司提出的链路层协议。EmGateway可以完成各种复杂的工作,如身份验证、处理多用户请求和数据加密等。网络浏览器是用户对设备进行远程访问和控制的平台。用户通过浏览器向网关发出请求,然后由网关直接对设备进行状态查询或参数设置等操作。emWare 公司还推出了 EMIT 3.0软件包,提供了预先创建 的 java对象 (称作 emObject),使开发者可以创建 基于 Java Applet的图形用户接 口。Java Applet嵌入Web页面 ,在浏览器中运行 ,负责与 emGateway 进行实时通信 。EMIT 3.0还包含了 emMicro代码 (一些汇编和C源代码 ),使开发者可以把emMicro 嵌入设备中。EMIT方法借助 PC机强大的功能,降低了MCU性能的要求,减少了嵌入式系统软件的开发难度,但同时也增加了网关设计以及网关与浏览器通信的额外开销,而且也要求开发者熟悉 MCU的体系结构并具有一定的固件 (firmware)开发 验 。

2、Web芯片 (Webchip)方法

P&S DataCom 公司提出的WebChip方法原理与EMIT方法相似,只是将嵌入设备中的网络服务器 (emMicro)由芯片硬件完成。 Webchip是一个独立于MCU的专用网络接 口芯片,它通过SPI接 口与各种 MCU 相连。Webchip与 MCU 之间采用 MCUnet协议进行通信,通常只需简单的若干条指令就可实现交互。Webchip通过 MCUap协议与网关通信,支持 RS一232、RS一485、USB或 Modem等 物理接 口。这种方法对 MCU 的要求不高,支持 8位或 4位的 MCU。开发者不需了解 TCP/lP协议和相关接口,只需编写芯片接口程序,但是同EMIT方法一样也必须实现网关的设计以及浏览器与网关之间的通信。

3、Lonnetworks方法

1992年,Echelon公司提出了Lonnetworks技术, 基本思想是:将嵌入式设备以及PC机组成一个控制网 (Control Networking),所谓控制网就是把各种智能设备连接在一起,提供一个经济、可靠,根据控制需要优化的灵活的连网平台。控制网中的各个设备通过Lontalk协议进行对等通信。Lontalk协议是LonNetworks设备彼此通信的底层协议,支持许多通信媒体 ,如双绞线、光纤、同轴电缆和红外线等。Lontalk协议固化在Lonnetworks设备中的神经元芯片中。Echelon公司利用i.LON1000因特网服务器实现了控制网与因特网的连接,i.LON1000内置Web服务器 ,具有一个IP地址,同时与控制网和因特网相连 (如图所示),允许用户通过Web浏览器对控制网中各个设备进行状态查询、设备校准和故障检测等。这种方法实质也是一种基于网关的嵌入式因特网方法,因特网服务器充当了控制网与 因特网的网关 ,各种设备在控制网中通过专用的传 输层协议进行通信。由于控制网没有普及,相关技术还不够完善,所以用这种方法将嵌入式系统接入因特网实现复杂,成本较高。

基于网关的方法优点是:可以使低性能的嵌入式系统接入因特网,可 以在网关上完成各种复杂的处理,提高整个系统的安全性和可靠性 ,而且一个网关可以连接多个嵌入式设备,不必为每一个嵌入 式设备实现 TCP/IP协议和分配 IP地址。缺点是: 整个系统变得庞大,采用集中式控制模式,设备仍处于从属地位 ,很难实现设备的对等的通信。此外, MCU干差万别,没有惟一的轻量级协议和通用的接口适合所有的嵌入式系统,所 以每个设备开发商只能开发适合自己的应用。1