引言
当今社会逐渐入网络时代,因特网已成为重要的基础信息设施。目前,大部分网络终端仍以PC的形式出现,但是从计算机应用普及的情况看,嵌入式系统更为普及,过去大量的浩如烟海的8位/16位单片机的嵌入式设备,已经到了享受网络方便的时候了。近来的统计证明:PC机CPU的产量仅是MCU产量的1/100,并且由于MCU的成本低廉,应用非常普及。在工业测控、智能仪器、智能家庭领域,MCU应用系统已无处不在。在这些场合中,以MCU为核心的设备同样也需要解决接入因特网的问题。本文在分析嵌入式系统与常规计算机系统研发不同点的基础上,介绍一种新型家庭智能系统。
1 家庭智能系统的体系结构
家庭智能系统体系结构的总体框图如图1所示。从大的方面看,家庭智能系统可由三部分组成:家庭自动化外部接口模块、家庭自动化图像模块、家庭智能化内部无线收发与控制模块。未来的家庭中,多件家用电器与各种报警器将组成一个家庭的内部网,并通过内部网的网关接入因特网。一方面,内部网中的家电可以通过网关访问因特网上资源。如网络电视机每天早晨自动访问用户喜欢的某个电视台的网站,自动下载晚上的节目表。另一方面,用户可以在因特网任务一点通过浏览器对家里的家用电器与报警器进行远程控制。如用户出门在外,可以在外地上网,通过浏览器,启动家里的摄像机实时监察家里的安全。家庭自动化内部无线网模块要由消息处理模块和基于工频的无线收模块(NRF401)构成。它将成为Internet网的发展沃土,顺应“网络服务”向“网络应用”扩展的大潮。本文主要介绍嵌入式网关,以及如何在远程访问具有静态或动态IP地址嵌入式网关的技术。
2 嵌入式网关
目前,国内外嵌入式网关的设计有二种方案:种方案,是基于软件来实现TCP/IP协议栈;第二种是直接利用TCP/IP协议栈芯片。本文介绍的嵌入式网关采用第二种方案,它由W3100A、RTL8201、MCU组成,如图2所示。
图2中,DLC为数据链路控制,MAC为媒体访问控制,IP为网际协议,ICMP为因特网控制报文协议,TCP为传输控制协议,UDP为用户数据摄协议,DPRAM为双端口存储器。
种方案在大批量生产时,具有成本低的优点,因为用软件设计的TCP/IP协议栈,是一次投交多次使用;但开始投次比较大且设计复杂,因为需要实时操作系统的支持,而第二种方案,尽管在大指生产时成本高,因为每个智能设备都要嵌入TCP/IP协议栈芯片;但是在非大批量生产时具有投次比较大,设计简单、灵活的特点,因为不需要实时操作系统的支持。本文采用的TCP/IP协议栈芯片是W3100A.它有如下特点:首先,它自带TCP/IP协议栈(如TCP、UDP、Ipver.4、ICMP、ARP、DLC、MAC协议);其次,它能同时支持四个独立的连接通道,具有高速传输速率(如网关的MCU用Atmel 8951,那么网关的传输速率是200b/s;若用Intel386,那么网关的传输速率是3Mb/s)同时,它具有与MCU和物理层电路接口。从图2可以看到;W3100A除了具有上述特点外,还提供了Socket应用程序编程接口,为那种需要进行因特网连接的智能设备,提供了一种简便、廉价、高效的方案,只要将W3100嵌入智能设备就可以了。这样,大大减少了软件研发费用,减轻了MCU的工作量,同时便利该产品具有竞争力,并符合嵌入式系统设计原则:①价格。由于嵌入式设备对价格非常敏感,通常要求价廉质优,故在设计产品时,在满足功能要求的情况下尽量降低成本。②环境。在功能要求满足的同时,要考虑到该产品在恶劣环境下,能否正常工作,比如温度、电源功耗等等。③使用。用户在使用时,操作应尽量简单。
RTL8201是单口10/100Mb/s以太网收发器,超低耗和少于180mA/3.3V操作电压,支持全双工和半双工操作,提供一个LED显示器指示一个网络回环存在。由于上述的优点,该嵌入式网关可以用在IP电话、网络MP3、网络相机和工业控制总线上。图3是嵌入式网关的原理图。
3 软件设计思想
为了适应分组到达的随机性,系统必须具有能够从网络接口读取分组的能力,故本系统采用“软件中断”的机制。当一个分组到达时,产生一个硬件中断,设备驱动程序接收分组重置接口设备。在中断返回之前,设备驱动程序会通知硬件安排下一个较低优先级的中断;在此次硬件中断结束后,低优先级的中断会继续执行。下面结合“软件中断”的机制、动态主机配置协议(DHCP)和域名系统(DNS),来说明如何在远程访问具有静态或动态IP地址嵌入式网关的技术(主要说明如何在远程访问具有动态IP地址嵌入式网关的技术)。在介绍该技术前,先介绍几个概念。
当一台设置为自动获取IP地址的计算机在登录网络时,会向网络上发送“租”一个IP地址的请求,专门负责提供IP地址的DHCP服务器回应这个请求,为这台计算机提供一个空闲的IP地址。DHCP的主要用途是:通过服务器的伺服进程协助来控管各个主机(执行中的用户端)上不可缺少的网络连线参数。 (2)DNS DNS(Domain Name System,域名系统)是一种组织成域层次结构的计算机和网络服务命名系统,用于TCP/IP网络。它主要是通过用户亲切而友好的名称代替枯燥而难记的IP地址,以定位相应的计算机和相应服务。DNS就是完成在名称和IP地址之间的映射。对于动态分配IP,做一个DHCP程序来绑定用户网关的MAC地址和IP地址,然后再根据不同IP设定权限,防止IP地址盗用。 (3)HTTP协议的作用原理 WWW是以Internet作为传输媒介的一个应用系统,WWW网上基本的传输单位是Web网络。WWW的工作基于客户机/服务器计算模型,由Web浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信。HTTP协议是基础TCP/IP协议之上的协议,是Web浏览器来Web服务器之间的应用层协议,是通用的、无状态的、面向对象的协议。 本文介绍的嵌入式网关有很大的发展前途,它以以太网为通信媒介,利用嵌入式网关进行家庭内外信息交换;通过浏览器对家庭的各种信息进行实时、有效的管理和调度,为现代家庭生活提供智能服务。
(1)DHCP原理
根据上述HTTP协议的作用原理,本文实现了基于浏览器/嵌入式Web服务器模式的家庭智能系统。首先初始化W3100ATRTL8201,通过UDP传输DHCP报文,获取动态IP地址,再得到DNS服务器支持,由DNS服务器负责建立IP地址与域名(别名)映射;同时,创建进程负责IP地址与域名(别名)映射更新,确保通过别名就可以访问该嵌入式设备。初始化完成后,远程浏览器就可以进行TCP链接了。建立TCP链接后,服务器等待远程浏览器的请求,是一个被动的设备。当接收到建立TCP链接的请求后,来识别随后收到的来自远程客户机浏览器的数据包。通过软件中断,监听W3100A、等待、接受客户机连接到RTL8201后,在W3100A体现出来的标志;创建与Socket字相关联的输入流和输出流;然后读取客户机的请求信息。在用户登录前,远程浏览器必须获得存储在Flash内部的网页,由此才能进行登录和控制。GET为其请求数据包中的个词,表示这个请求是用来接收Web资源的。该服务器仅对HTTP请求的行Get/home.html/HTTP.1进行检查和解释。因为除了数据外,所有响应信息数据都是常量。服务器的响应数据包已经由程序定制好,存放在服务器中。响应的HTTP数据头和资源一起存放在Flash中。服务器与浏览器链接建立后,服务器检查接收的请求数据,然后调用8051内部的程序模块,将相应的home.html发送给远程浏览器。Web页的存储范围为0000H~7FF0H,大约32KB,而8字节的用户名和8字节的密码可以存放在外围Flash存储区未端。在处理浏览器提交的数据信息时,按照两个步骤进行程序设计。首先,服务器根据远程浏览器传送过来的数据信息,决定服务器的HTTP服务的方式。其实,将Web资源发送给远程浏览器或使用函数来处理浏览器提交的数据,并将此数据传递给消息处理模块。该消息处理模块根据所要控制设备类型查表,然后启动无线收发模块将表中的消息发送出去。每个智能设备根据此消息启动相应的操作,并借助于设计合理的数据结构和函数实现软件设计。上述过程可用图4和图5形象地说明。
结语