信息家电(3C或说是IA)对人们来说已经不再是一个陌生的名字了,它是利用电脑、电信和电子技术与传统家电相结合的创新产品, 是为数字化与网络技术更广泛地深人家庭生活而设计的新型家用电器。
要将它们与外部网络(如Internet)连接进行信息交互,利用家庭网关进行集中式管理无疑是一个理想的解决方案。家庭网关就是这样一种简单的、智能的、标准化的、灵活的整个家庭网络接口单元,它可以从不同的外部网络接收通讯信号,通过家庭网络传递信号给某个消费设备。但是,目前家庭网关在体系结构、功能分配等方面的标准还未确定,对其的研究正在如火如荼进行中。
本文采用SX52嵌入式网络单片机集成式开发系统主模块模拟家庭网关,并利用其外围扩展模块模拟信息家电,从而成功搭建了一个模拟家庭网关和信息家电交互的软硬件平台,这种利用一个单片机集成系统对家庭网关和信息家电进行模拟,为研究信息家电的内部体系结构以及家庭网关和信息家电功能分配提供了实验平台,同时大大节省了资源和费用。
2 相关理论研究
2.1信息家电
信息家电是所有能够通过网络系统交互信息的家电产品,也就是说信息家电是将数字技术和网络技术集成在电冰箱、洗衣机等传统家用电器上并以此为基础建立家庭网络环境,信息家电具有以下特点
(1)通过有线或无线方式相连,能相互识别并协同工作与网络化;
(2)能够遵循一定的协议,通过家庭网关或直接与外部网络进行信息交互;
(3)功能单一[1]集中并且使用简单;
(4)具有实时化、数字化与智能化的特点;
(5)应用嵌入式操作系统。根据这些特点,我们将其内部体系结构分为上下两大模块层,上层为软件模块,由上至下为应用层(如服务注册、应用协议解释等)、嵌入式操作系统层(如嵌入式Linux、WinCE等)、设备驱动层(如液晶显示屏驱动、触摸屏驱动等),下层为硬件模块,包括核心主板(包括嵌入式处理器芯片如S3C2410等) 、家电硬件及控制层(自带控制模块)、外围芯片(如RTL8019AS、Bluetooth等)。其中核心主板为主控制器,信息家电通过外围芯片与外界进行信息交互,在核心主板的控制下再与家电控制模块进行双向信息交流,从而实现对家电硬件的监控。这里提到的嵌入式操作系统在今后随着信息家电产品功能的增多增强,对其的使用是一种必然趋势,本文在有限资源的单片机上实现模拟系统就没有对其进行讨论。
2.2家庭网关
单个的信息家电也可以具有与Internet直接连接上网的功能,但是借助现有的计算机网络技术,将家庭内各种家电和设备连网,通过家庭网络为人们提供各种丰富、多样化、个性化、方便、舒适、安全和高效的服务,把所有的信息家电连接起来形成一个家庭网络,再把接入Internet的功能移至到家庭网关,由家庭网关承担起与Internet进行信息交互的责任,这不仅会减少信息家电的负载、降低成本,而且对家庭网络化也是一种促进,因为家庭网络内部可以使用不同的协议,从而更具灵活性。因此,实现家庭网络与外部信息的交换需要设计一个理想的家庭网关。家庭网关应具备的两个主要功能是:(1)作为家庭内部网络和外部网络连接的一种物理接口;(2)使住宅用户可以获得各种家庭服务(包括现有的服务和未来可能出现的服务,譬如经过授权能打开朋友家的影碟机进行影片观看等)的平台。
家庭网关接口的有效的解决方案,当前比较统一的观点是开发一个集中式网关,它将提供一个最有效的桥接外部网络和家庭网络或设备的解决方案。另外,以PC作为家庭网关,体积过大,环境适应能力差,而且还必须安装两个网络适配器(一个用于连接 Internet,一个用于连接内部网络),总的费用也比一台专用网关要高。因此,设计专用网关是完全有必要的。鉴于家庭网关的功能特点,其逻辑结构应如图1所示。
图1家庭网关逻辑结构
3 硬件选型
3.1 SX52的特点
如何利用单片机本身有限的资源对信息进行TCP/IP协议处理,使之变成可以在互联网上传输的IP数据包?目前有两种方案:一种是PC网关+专用网,缺点是要增加布线和第三方协议转换软件;另一种是32位MCU+RTOS,弊端是开发难,成本极高。而用软件方法实现网络协议比采用集成网络协议的芯片,具有节省空间、降低成本的优点,更重要的是可以随意配置甚至修改各种协议,且能通过软件升级方式跟随未来的发展。通过美国Ubicom公司的SX52微控器进行网络控制就具备这个优势,其主要特点有:(1)速度快,在100MHz频率下能达到100MIPS;(2)现成的网络协议模块供套用,可以通过虚拟外设功能来运行网络协议栈,例如TCP、IP、HTTP以及SMTP等;(3)强大的虚拟外设功能,即通过软件对I/O口进行灵活的配置,CPU执行虚拟软件模块就可以驱动普通的I/O口来模拟外设的功能,比如UART、SPI、IIC和FSK等。采用其成功的网络协议模块和一些适用于小型嵌入式系统的做法构筑现场控制是非常合适的做法。
3.2 SX52主要功能模块
3.2.1 CPU模块(包括在线下载 ISP 电路)
此模块实现开发系统板的系统控制,并实现网络接口控制,主要包含SX52BD。SX52BD为开发系统板主CPU,它是一款RISC指令集的高速8位单片机,片上带有4K×16 位的Flash存储器和262×8位的RAM。由于采用CPU并行流水线方式及单时钟周期指令,指令执行速度可达100MIPS。这款单片机可以广泛应用在需要网络支持的场合,尤其适合于需要远程监控的应用中。开发系统板所实现的网络协议(IP、ARP、DHCP、UDP、TCP、HTTP、SMTP)就是通过此芯片实现的。
3.2.2 网络接口模块
此模块实现了两种网络接口方式: 以太网接口和调制解调器接口, 主要包含RTL8019AS、以太网收发滤波器芯片、MAX232等。
3.2.3 用户试验区模块
主CPU的信号引脚都已经连接到用户试验区的周围,有5组共40条信号线。开发使用人员可以在试验区利用这些信号进行相应的外围电路扩展试验。
4 模拟系统的设计与实现
4.1 硬件设计与实现
本文选择SX52作为模拟实现信息家电和家庭网关交互的平台是非常合适的,因为我们利用其用户试验区模块扩展外围模块电路(如电冰箱遥控模块)模拟信息家电,以主模块模拟家庭网关,以实现通过远程终端(Web浏览器或者专用控制客户端)对信息家电的控制,本文只讨论利用专用控制客户端,通过串口通讯方式实现对家电的远程控制。在板上添加了红外遥控发射电路(主芯片CS5104)模拟电冰箱,能够实现对电冰箱的遥控功能,同时为了了解开发系统遥控效果,还添加了遥控接收电路(主芯片CS8206),可以响应发射电路的遥控信号。还添加了遥控接收端状态LED(9只)用于显示电冰箱状态。硬件构成框图如图2所示,本文只给出包含电冰箱模块的框图,添加其它模块类似。
图2 系统硬件构成框图
4.2 软件设计与实现
通过专用控制客户端控制信息家电,首先要定义控制协议,让从客户端发送过去的信息被家庭网关解包提取有效信息后能进行协议转换,把控制信息转化为控制命令发送给信息家电,以执行正确的操作,系统工作流程如下:
(1)开发系统板上电后初始化主芯片及各外围芯片。
(2)打开客户端程序如图3所示。
(3)根据需要配置控制电冰箱的各选项,点击“确定”后即启动开发板上的电冰箱模块,然后客户端程序发出的服务请求(包含连接家庭网关的认证请求),经过开发板上的RTL8019AS,再经SX52解释验证,如果验证成功,在SX52控制下把已经转换的请求信息发送给电冰箱遥控发射芯片,该芯片发送遥控信号遥控接收电路,通过相应的LED显示,从而响应远程控制请求。最后通过观看控制界面上的显示状态与开发板上相应LED显示是否相符(界面上表示温度的滑竿只设计了三个固定温度,在开发板上用三个LED分别显示),从而检验模拟系统运行成功与否。
图3 专用控制客户端界面
由于考虑到单片机的处理能力,定义单个字符传递控制信息不仅可以节省资源,而且可以缩短响应时间,满足更高的实时性要求。以对电冰箱模块的模拟为例,由客户端程序发送给网关的信息,由网关提取后转发给电冰箱模块,其中的控制协议具体实现如下:用e代表关闭,t代表设置温度(考虑到单片机的处理能力有限,只利用 “高中低”代表温度设定值),s代表启动/冻速(快速、标准、慢速,启动后默认为标准),m代表工作模式(省电模式和正常模式)。选择好各选项按“确定”后,就将控制信息以数据报的形式发送给家庭网关(SX52),家庭网关再进行解拆包,把来自客户端的有效控制信息提取出来,再转换成为模拟信息家电的电冰箱模块所能识别的形式,最后通过I2C总线发给电冰箱模块。后面相应的灯就按已经定义好的规律变亮或是变暗,表示温度的滑竿的状态也相应变化。
根据上面制定的协议,制作客户端和在相应的文件中进行代码添加和修改,再按以下的步骤完成最后的工作:
(1)制作客户端实现以上协议,并显示电冰箱的控制状态信息,页面外观如图3所示。
(2)修改i2c_uartdemo.src源文件,将其中的串口连接方式改为以太网连接方式,并添加电冰箱初始化代码、中断代码和协议转化模块。
(3)利用汇编/编程器软件SXKey52.exe将文件i2c_uartdemo.src下载到开发系统板,然后利用PC上运行的客户端程序(如图3所示)对开发板上的电冰箱硬件电路进行控制。
5 小 结
本文从研究家庭网关和信息家电出发,选择高性能的8位SX52单片机集成系统并进行软硬件裁剪,成功地利用外围硬件电路和虚拟外围及网络协议软件虚拟模块,搭建了模拟家庭网关和信息家电的嵌入式实验平台,为进一步研究家庭网关和信息家电内部结构以及二者之间的功能分配打下了坚实的基础。