苏兵
(广州白云工商高级技工学校计算机系,广东广州510450)
本设计的家庭网关是整个家庭网络的枢纽,所有家电设备都连接在上面,由它集中控制。主要实现以下四方面功能:
(1)Internet接入功能。所有家庭内部的信息家电通过这个网关接入Internet。
(2)语音网关功能。能打IP电话。
(3)管理信息家电。家庭网络内家电的添加、删除、配置都可以在这上面来完成。
(4)远程监控功能。通过在网关上设置Web服务器,可以通过Internet远程监控家庭内部的信息家电。
根据图1将连接家庭内部网络和Internet网络的家庭网关抽象为站点,将家庭内部的被控对象(智能电冰箱、智能空调等)抽象为节点。
站点是通过Internet访问家庭内部网络的驿站,它可以将来自互联网络的各种信息通过协议转换的方法传递到家庭内部网络,而具备此项功能的站点通常称为家庭网关。
节点负责对单个家用电器实施控制,使其按照人的要求正常运行,同时以特定的通讯协议将本地信息传送到家庭网关,接受来自家庭网关的指令以改变现在的运行状况。
由于家庭网关可以将家庭内部的信息发布到Internet上,那么可以在网络的另一端在一台安装了监控软件的PC上对家庭网络实施监视与控制。
MCF5272微处理器是Motorola公司生产的高集成的ColdFire微处理器。在设计下一代互联网设备、LAN电话系统、低端网络控制、工业控制、图像设备,摩托罗拉的MCF5272的高性能及通用性都能满足嵌入式系统设计和应用要求。
Motorola嵌入式处理器MCF5272,具有较好的处理能力的同时也支持蓝牙上层协议栈、终端的接入控制、话路交换等功能。图2描述了家庭网关的硬件结构。
家庭网关的软件体系可分为三个层次:
通过内核的系统调用实现用户需要的应用服务。包括远程监控系统、信息家电管理系统等。
提供进程控制、文件系统管理、内存管理、中断和中断处理、网络协议栈等。
包括通用的硬件驱动程序,如蓝牙模块、串口、USB设备、以太网、FOMFS文件和本系统的一些特殊的硬件驱动程序,如LCD、VoIP、DSL等[3]。
家庭网关软件结构如图3所示:
图3 家庭网关软件结构
将蓝牙技术集成到各种数字设备中的方式有两种:一种是单微控制器方式,即所有的蓝牙低层传输协议(包括蓝牙射频、基带与链路控制器、链路管理器)与高层传输协议包括逻辑链路控制与适配协议、串口仿真协议、服务发现协议、网络协议等)以及用户应用程序集成到一个模块当中,整个处理过程由一个微处理器来完成;另一种是双微控制器方式,即蓝牙协议与用户应用程序分别由主机控制器和主机来实现(低层传输协议一般通过蓝牙硬件模块实现,模块内部嵌入式的微处理称为主机控制器;高层传输协议和用户应用程序在个人计算机或嵌入式的单片机、DSP等上运行,称为主机),主机和主机控制器之间通过标准的物理总线接口(如通用串行总线USB、串行端口RS232)来连接[1]。连接模型如图4所示。
图4 蓝牙主机—主机控制器连接模型
在蓝牙的主机—主机控制器连接模型中,HCI作为蓝牙软件协议堆栈中软硬件之间的接口,提供了一个控制基带与链路控制器、链路管理器、状态寄存器等硬件的统一接口。当主机和主机控制器通信时,HCI层以上的协议在主机上运行,而HCI层以下的协议由蓝牙主机控制器硬件来完成,它们通过HCI传输层进行通信。主机和主机控制器中都有HCI,它们具有相同的接口标准。主机控制器中的HCI解释来自主机的信息并将信息发向相应的硬件模块单元,同时还将模块中的信息(包括数据和硬件/固件信息)根据需要向上转发给主机。
主机—主机控制器模式的设计在很大程度上可以降低产品的成本同时设计难度也小很多,这种方式可以应用在家庭网关上。但是对于信息家电来说它的控制芯片往往是固化了产商的程序,用户一般不能在上面添加自己的程序。所以这种模式不能用于信息家电上(将来蓝牙通信协议可能会被固化到信息家电中作为一种标准通信接口,那样家庭网络内的通信就很容易实现了),只能采用第一种模式,将所有的协议集成在一个模块里,这个模块提供标准的USB接口或RS232接口。将这个蓝牙模块插在家电的标准通信接口上即可构成蓝牙家电。
为了使嵌入式家庭网关能与家庭网络内的各嵌入式终端进行通讯,在研究参考了国内外相关资料的基础上,本文设计了家庭网络通讯协议。
链路层的帧格式为:帧头+命令包字节数+命令包+帧尾。具体说明如表1所示。
表1 数据帧格式
命令包的格式为:地址码+命令属性+命令串+校验和,具体描述如表2所示。
表2 命令包格式
其中地址码(即家电ID)由产品类别码(1字节)+产品序列码(l字节)共2个字节组成,产品类别码代表家电的种类,产品序列码表示同一个家庭中一个产品类别码的不同家电的编码,初始值为00H。ID=0000H为广播地址,每台家电或设备都必须执行其中的指令。产品序列码为可变的,家居组网后可由网关重新分配[2]。产品类别的具体定义类似表3。
表3 设备类别码定义参数
当发送大数据量时,大数据量包的格式为:地址码+0EFH+总帧数+帧序号+数据+校验和。格式具体描述如表4。
表4 大数据量包格式
5.3.1 发信方的处理
发信方在发出一个数据包后,2S内未收到目标收信方的任何应答,应重发,十次发送不成功,则放弃。
5.3.2 家居设备与嵌入式家庭网关之间的通讯
网关使用命令属性42H读工作状态,每10S轮询一遍设备的工作状态,在每个循环中应加入查询新家电信息编码的命令包。
5.3.3 ID的处理
ID初始值设为XX00H,XXH为家电设备类别码,固定不变,00H为家电序列码,可动态分配,家电在每次登陆网关时,将重新分配家电ID,平时家电ID将保存在EEPROM中,只有在恢复初始设置时,重新变为XX00H。
有关通讯的数据,应根据不同的型号,做出不同的定义。
网关在轮询过程的每个循环中加入查询新家电信息编码的命令包,命令属性E1。家电在收到E1命令后,如果已注册则不作处理,如果未注册则发回产品信息编码,命令属性El,命令包为12字节产品编码+4字节校验。网关接收到家电的信息编码后,发送分配家电ID命令,命令属性E2。家电在接受到分配ID命令后,返回注册成功,命令属性为E3[3]。
网络家电的MCU中应存放表示该类产品类型的信息编码。每个具体的产品编码由七段共24位10进制数组成(只取部分信息),具体格式如下:
规则:2-3-3-2-1-8-5(24位,分七段表示具体的设备条形码)
各段具体说明如表5所示:
表5 产品编码
用设备类型的信息码即可表示出该设备的型号,将这一编码信息存放到网络家电的EEPRO中。其中用一个字节的二进制码代表两位十进制数。网关将根据这一信息自动建立起该型号网络家电的控制指令及ID。
在接入Internet上的任意一台计算机上通过浏览器就可以访问家庭网关,在浏览器中输入家庭网关的IP地址首先进入一个登录界面,进行用户验证,之后进入管理主界面,可以查询家居系统的当前状态、控制信息家电的运行等操作。图5为远程控制界面的截图。
本文设计了家庭网络控制系统模型,对家庭网关的硬件结构和软件结构进行了分析和设计,通过对一个基于MCF5272微处理器的嵌入式Linux操作系统的构造方法,对家庭网络通信协议,以及对家庭网络内部的蓝牙无线通信的实现方案进行了分析和设计,最终以B/S模式来完成远程监控服务的设计。
[1]R.Shepherd.Bluetooth wireless technology in the home[J].Electronics and Communication Engineering Journal,2001.7:78-80.
[2]周明天,汪文勇.TCP/IP网络原理与技术[M].北京:清华大学出版社,1993.
[3]Klaus Wehrle,Frank Pahlke,Hartmut Ritter.LINUX内核中网络协议的设计与实现[M].北京:清华大学出版社,2006.