??? 我们已经进入了网络时代,网站、电子商务总是在各种媒体上反复出现。但是,网络终端不仅仅以PC的形式出现,也会以嵌入式系统方式出现在网络上,如联网的蜂窝移动电话,掌上电脑、电视、汽车电子、安防系统、无人售货机、电表、游戏机和空调等等。下面从几个方面介绍嵌入式互联网的应用。
emWareTM互联网设计和网关
??????? emWare的设计概念比较有突破性。由于目前嵌入应用中绝大多数是建立在8位和16位平台上,他们的资源非常有限,大部分工作于Tiny模式下,另一方面TCP/IP协议栈要求的资源又非常多,比如TCP/IP报文可能达到64KB长度,并且网络硬件的MTU必须不少于500多字节。有鉴于此,emWare设计了一个网关,把网络应用的复杂度放到了浏览器一方。(相同的设计理念,WAP手机把网络应用的复杂度摆到了WAP代理/网关) 最妙的是,该网关软件可以在客户端PC,也可以在服务器端PC。而运行在服务器时,又起者集线器的功能,可以连接各种现场总线。目前,他们已经设计了Windows95/NT/CE版本的网关,还没有支持WAP。总的来说,他们的设计给低端微处理器的互联网的应用带来的好处有:资源要求少,制造成本低,通信带宽少。他们称这种技术为EMITTM。
?EMIT(Embedded Micro Internet Technology):嵌入式微型互联网技术包括(见图1):
· EMIT支持的硬件和相应的软件;
· emGateway网关软件,也是该设计的核心设计;
· 浏览器客户软件,如网景;
· EMIT访问库提供各种元件。
?图1? EMIT嵌入式微型互联网
??????? emWare公司利用了emGateway网关软件作为PC互联网和各种工业实时控制总线间通信的桥梁,同时提供了一些客户化的辅助设计软件,针对不同的微处理器设计了嵌入式的服务器(根据厂商提供的数据:在标准80C51微控制器上仅仅占用1K ROM和30字节的RAM),同时也提供了不少范例的C语言代码,一些工业界常用的MCU几乎都支持。对于人机界面还加入了针对Java的支持。对于通信方式,不仅仅支持RS232,RS485,还提供了针对以太网射频通信和MODEM的AT指令集的支持。
灵活的连接方式
??? 基本的连接方式如下,此时网关软件在服务器一端提供与各个器件的通讯管理,互联网服务和HTTP连接(图2)。此时客户端也可以利用命令行模式对器件进行控制管理,相应函数由访问库提供。
图2 网关在服务器一侧
图3的直接连接方式则为调试等环境提供客户到器件的直接连接以排除网络的不确定因素。连接方式可以是串行口或者是MODEM连接方式。
?图3 供调试用直接连接方式
??? 多组访问方式为不同的EMIT器件组同时访问互联网提供了方便,不同的器件组可以通过MODEM,射频方式等等各种方式连接到网关,再通过网关联系网络。对于无人售货机公司检查分布在不同楼层、不同楼宇、不同街区甚至不同城市的机器带来了极大的方便,机器可以分组连接到中心局后,通过网关连接互联网。这种应用模式下,每个城市的ISP可以在拨号服务器旁设立emGateway网关主机,为当前大规模的嵌入式互联网应用打下基础。
图4 多组访问式EMIT网
??????? emWare的设计是比较特殊的,也相当开放。得到不少公司的支持,可口可乐公司就使用这种技术用于无人售货机的管理。目前也有国内采用它的设计,做成一个单独的网络协处理器,叫WebChip。事实上,是把网络功能独立于原来的微控制器,把软件调用变成了硬件多控制器间的通讯,有些多此一举的嫌疑。
Rabbit2000TM以太网Modem
??? 以太网的规格中,没有对于主处理器的处理能力的规定。但是,运算能力越多总是越好。以前我也看过AMD公司的Net186演示(US Software的实验基于这块评估板),但是,该公司的以太网方案更加让我感到惊奇。Rabbit2000是一枚8位微控制器,内核为改进的Z180,寻址能力为1MB。在该公司提供的以太网Modem(该产品可以让其他控制器可以通过串口连接到10M以太网)的设计中,该微处理器配合Realtek公司的NE2000兼容以太网控制器和一些存储器,组成了一个真正的8位网络单片机。在该公司提供的程序中,不但给出了基于Socket的低层API,还演示了HTTP/FTP/Telenet/POP3/SMTP的应用,甚至还有给浏览器的Cookie。
?于是我仔细看了现在的嵌入式以太网设计,发现其设计的最小工作模式是:
* 总线扩展型微处理器或者微控制器,从8位到64位都可以;
* 由于协议栈和应用的需要,存储器寻址空间必须在1MB以上,所以微控制器必须工作在扩展模式下;
* 以太网与控制器的接口可以是DMA或者是I/O口模式,这样不具备DMA方式的大量微控制器可以使用在嵌入式以太网中了;
* 其典型的设计是:微控制器+RAM+ROM+以太网控制器+接口电路+TCP/IP,所需硬件成本在200元人民币以下。目前我已经开始在16位微控制器中设计加入以太网的设计。
互联网与移动通信
??? 互联网不仅仅是通过固定网络的连接,无线应用逐渐走进嵌入环境。Nokia公司把其WAP服务器和开发套件在网站上无偿公布。许多无线应用也越来越成熟。现在可供选择的技术有:GSM / FLEX / CDPD / CDMA / PHS / DECT / IEEE802无线局域网等。但是在不同的地区、不同的应用场合,设计者的选择是不同的。笔者有幸看过Nokia的GSM Card Phone的应用报告,发现基于GSM的设计非常多。另外,我十分欣赏该公司的产品,以其早期产品5110来说,是一个普及型产品,同样支持中文短消息和内置调制解调器接口。当然还有其他更加公开的公司如西门子的产品,直接可以透过红外和Win98通讯。根据有关资料,笔者也写了一部分C源代码在一些个人网站上传播,并且开始设计相应的嵌入式应用:可使用中国电信电话卡的公用移动电话,进行汽车防盗、全球定位、e-mail转发,短消息嵌入式服务等。
??? 通过GSM/GPRS网络,我们可以非常容易的建立如下连接:短消息,主叫识别,9600数据传输,传真等。而这一切建立在简单的串行通讯和AT指令集之上。典型的C语句如下:
printf ("ATD%s\r\n", number);
gets (response);
??? 当然其协议的构成还是比较复杂的。以GSM网络的协议看,有十几大类的指令集,并且由于不同接入设备的不同,有不同的版本区别。其中,依然有一些秘密的网络监控指令没有公开。
??? 利用现有的移动电话网络的设计,成本低廉而且功能强大。符合基本业务的有主叫识别,转移,等待;补充业务有短消息和数据服务等。这一切都是嵌入式移动网络的良好平台。多种业务的相对集中让移动设备上的嵌入网络设计更加独特,可以产生更加多的应用实例。日韩许多厂商(CellVic,DoCoMo)都推出了基于公共移动网络平台的应用设备。
利用开放资源的设计
??? 尽管嵌入式设计中操作系统不一定是必须的,但是对于一个好的设计来说则是必须的。国内相当一部分嵌入式应用工程师不太熟悉嵌入式操作系统,但是一个RTOS在现代的嵌入设计中占有越来越重要的位置。为此我推荐大家可以测试一下各种RTOS的评估版,另外还可以学习一下Linux以及嵌入式版本。
??????? Linux是开放的资源,不仅仅是微软所谓的“开放平台”,更是开放源代码的操作系统,是一种“每个螺丝都是自己制造的机器”。利用Linux,我们可以体会一个操作系统是怎样构成许多功能模块的:服务器软件,客户端软件,路由器构成,TCP/IP协议栈,数据库,以太网驱动等等与网络相关的代码不再是少数人少数公司拥有的财富。甚至连针对不同主流CPU的编译器也是免费的。事实上,Linux已经有了许多嵌入系统的版本。在许多的网站上,纷纷展出了基于各种嵌入式实时Linux的商品,如三星的YOPY-PDA和CDMA手机等等,出于开放的初衷(GPL协议),他们当中还有一部分提供应用场合的SDK(Software Development Kit,软件开发套件)。注:利用开放资源的设计中的SDK的含义是:许多供应商把软件开发套件分为DDK和SDK,DDK指Driver Development Kit,SDK指Software Development Kit。DDK给低层驱动程序开发者使用,而SDK是给高层应用程序开发者使用。这样的好处是各个层次的开发者只需要知道自己的范围,根据自己需要
??? 当嵌入式Linux成为潮流时,我们不仅要回顾前不久的“女娲”和“维纳斯”操作系统之争——有那个必要吗?除去商业宣传的考虑,如果仅仅是需要一个浏览器和一个过得去的操作系统,有必要以每台20美元的价格采购他们的平台吗?当然微软的平台不仅仅是操作系统核心,还捆绑了一些应用程序。如果使用嵌入式Linux,成本是多少?网络时代为每一个嵌入系统设计工程师提供了机会,设计者不必总是在底层调试一些没有堆栈的廉价微控制器或者每天反复调试汇编级代码,同样可以有自己的发行版。
??? 更重要的是,Linux的开发不同于微软的“教堂”式开发模式,也不同与现在国内的“作坊”式开发模式,是所谓的“集市”开发模式。她使全球的工程师利用网络为一个项目开发。这种模式是值得借鉴的。中国更加应该好好利用这个自由软件。■