基于蓝牙的智能家庭网关设计与实现

2012-11-09 11:52泰州市科技信息中心
泰州职业技术学院学报 2012年6期
关键词:驱动程序网关以太网

(1.泰州市科技信息中心;

2.泰州市高新技术创业服务中心,江苏泰州225300)

智能家庭网络是信息时代带给人们的又一个高科技产物,它利用计算机网络技术,将家庭内各种智能设备连网,通过家庭网关实现家庭内部信息与家庭外部信息的交换[1-2]。因此家庭网关是整个智能家庭网路的核心,通过家庭网关才能实现家庭内部多种智能设备之间的联网,以及从家庭内部到外部网络的互联,因此设计性价比高的家庭网关是实现智能家庭网路的关键。本文以ARM内核的处理器AT91RM9200为核心,结合蓝牙技术实现硬件平台,以具有强大网络功能的嵌入式操作系统μClinux为基础,构建家庭网关的软件平台,设计出一种实用的家庭网关,实现对家电电器的集中管理和远程控制。

1 家庭网关硬件结构

根据家庭网关的功能要求,本系统的硬件平台总体结构如图1所示,主要由以下五个模块组成:ARM920T内核的微处理器为核心的主控模块、针对Internet接入的以太网模块、存储模块、基于串口的蓝牙模块、公共电话网接口模块。

微控制器选用 atmel的 AT91RM9200,AT91RM9200是基于ARM920T核的高性能、低功耗32位处理器,时钟频率最高可达180MHz,片内集成了非常丰富的外围功能模块,非常适用于对功耗和成本有严格要求的嵌入式控制等方面的应用。考虑到设计周期和开发成本,系统直接选用恒颐公司的开发板H9200C-II。H9200C-II是基于AT91RM9200的最小系统板,超微型紧凑结构设计(70mm×45mm);板载 8M NOR FLASH、64M NAND FLASH、32M SDRAM;电路板间联结器采用100针*2的双排插针,连接可靠,抗震性强;多层板的布线工艺,稳定可靠。

AT91RM9200内部集成一个10M/100M的以太网控制器(MAC),具有MII和RMII两种网络接口,可以工作在半双工或全双工模式,控制器支持IEEE802.3 CSMA/CD协议,在主机与物理层(PHY)间以IEEE802.3u数据帧格式进行数据交换。虽然AT91RM9200内部没有提供物理层(PHY),但可以通过具有相同接口的以太网PHY芯片接入以太网,在本设计中使用具有MII接口的DM9161实现AT91RM9200和物理层的连接[3]。DM9161是一款10/100M自适应的以太网收发器,支持双绞线自适应,功耗低,集成度高,只要少量的外围元件芯片就可以工作。AT91RM9200与DM916l接口连接如图2所示。

蓝牙模块选用BT100-2型蓝牙模块,BT100-2采用BlueCore4 External蓝牙芯片,完全遵循蓝牙系统的数据和音频连接。采用USB或UART主设备接口,最高支持3Mbps的数据速率。音频接口支持PCM协议,模块和设备固件完全兼容蓝牙规范V2.0。BT100-2模块由于具有标准的串行口接口,因此和AT91RM9200可以直接通过串行口进行通信。当微控制器AT91RM9200需要和其它家电设备通信时,只需按照规定数据帧格式将数据通过串口发送给BT100-2蓝牙模块,然后由BT100-2模块中根据数据帧中的目的蓝牙地址,将数据传输到目的蓝牙模块。

为实现远程电话控制,本设计提供了公共电话网接口模块。模块由专用电话集成电路TEA1062和MT8880组成,TEA1062用来为TTS语音和拨号音的输出提供单独的输出口,MT8880用来完成DTMF信号、拨号音、忙音等信号的检测。语音操作提示采用单芯片TTS处理器SD178A,采用真人发音为样本,输出的语音真实、自然、可将汉字及ASCⅡ码转换为语音输出。SD178A可直接与AT91RM9200相连,如图3所示,图中RYD、SCLK和SDI用于与主控制器进行串行通信。

2 家庭网关软件设计

智能家庭网关是一个典型的嵌入式设备,因此选用开源的μClinux作为操作系统。μClinux是一种高度优化的、代码紧凑的嵌入式Linux版本,一款模块化的、可移植性强、易于配置的嵌入式操作系统,同时又具有Linux系统的高可靠性、网络功能强大、源码开放等特点[4-5]。μClinux通过裁剪和定制,编译后的目标文件只有在几百KB,因此完全可以移植到AT91RM9200中。

家庭网关的软件框架结构由三层组成,最底层由各类接口模块的驱动程序,由μClinux操作系统进行管理。中间层由web服务器以及网络通信协议构成,最顶层是整个家庭网关的控制系统软件,由各个模块的应用程序组成,各个模块的应用程序对硬件的控制是通过驱动程序来实现的。

2.1 驱动程序的设计

家庭网关主要包含有蓝牙模块,PSTN模块、以太网物理层芯片三个接口电路,针对这三个接口电路分别编写了以太网驱动、电话网接口驱动、蓝牙模块驱动等驱动程序,分别提供对其相应硬件的操作。

对于μClinux操作系统来说,所有的设备都以文件的形式管理,所以对设备的操作和对μClinux系统中的文件操作是一样的。只需为相应的设备编写几个基本函数并向VFS注册即可,一般都是在现成的驱动程序基础上针对特殊的硬件设备作相应的改动。

蓝牙模块、TTS语音芯片和AT91RM9200采用串口连接,直接修改嵌入式Linux内核的串口驱动程序。AT91RM9200共有5个串口。在μClinux内核源代码文件at91rm9200kd.h中,有个宏定义,表明了AT91RM9200的串口与内核中的串口驱动的对应关系,根据家庭网关的使用需要以及硬件的连接关系,对宏定义进行修改,就可以对实际硬件的串口进行操作。

以太网接口模块中使用DM9161和AT91RM9200连接,因此驱动程序设计就是针对DM9161的驱动。DM9161具有MII接口,在μClinux内核编译时选择μClinux下对于DM9161的驱动代码,编译生成的目标文件中就包含了以太网接口的驱动程序,使用时只需在上层应用程序调用Socket等μClinux的系统调用即可。

μClinux没有专门的电话网接口驱动,因此本设计为电话网专门编写了相关的驱动程序。考虑到是为上层电话控制应用程序提供硬件操作的,驱动程序采用字符设备驱动。根据电话网控制模块需要完成功能的分析,驱动模块包括振铃中断检测引脚、自动摘挂机引脚、电话音检测引脚、寄存器读写引脚、发音串口引脚、发音完成引脚等6个字符设备,如图4所示。这样在上层应用程序中需要使用这些设备之前,只要使用open函数打开相关的字符设备即可。

AT91RM9200通过MT8880与电话网进行数据通信,因此电话网控制模块的驱动程序需要包含有对MT8880内部寄存器进行读写的操作程序,MT8880内部有数据和状态寄存器,对这2个寄存器的判断在驱动函数通过变量count来区分是控制操作还是数据操作。具体的读写函数流程图见图5、6。

2.2 应用程序的设计

家庭网关的控制系统软件程序按照接口模块的不同进行划分,由三个模块化的程序实现对应三个接口模块的功能,三个模块的应用程序由主控模块进行控制。Internet控制模块通过驱动实现基于Web的网络服务功能。PSTN控制模块通过驱动实现电话的远程控制服务功能,并对家庭内的报警信息自动进行电话报警。而Bluetooth控制模块通过驱动负责在家庭网关和家庭内具有蓝牙接口的电器之间进行数据传递,发送和接收来自Internet控制模块和PSTN控制模块的蓝牙数据。考虑到实时性,为防止三个控制模块在运行时发生冲突,设计了主控模块用来对三个接口模块的应用程序进行调度管理,以及应用程序之间的数据传递。主控模块的流程图如图7所示。

3 结语

本文提出了一种基于蓝牙技术的无线智能家庭网关的设计和实现方案,实现了通过外部电话网络(PSTN网)对家用电器的远程控制,整个系统采用蓝牙无线通信,很好地克服了有线方式连线繁琐、安装复杂和维护困难等缺点,具有很好的通用性,满足了人们对家庭自动化和智能化的需求。

[1]施荣,徐平平.蓝牙技术在电力抄表中的应用[J].移动通信.2004,28(1):1-6.

[2]ChristosDouligeris.IntelligentHomeSystems[J].IEEECommu nieationsMagazine.1993,31(10):52-61.

[3]李永祥,周书民,王卡风,王子新,杨志刚.基于 LPC2366与DM9161嵌入式网络设计[J].微计算机信息,2010,(29):86-88.

[4]董国.uClinux的分析与移植[D].上海:华东师范大学,2004.

[5]马启杰.基于AT91RM9200的ARM-Linux移植[D].成都:电子科技大学,2007.

猜你喜欢
驱动程序网关以太网
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
阻止Windows Update更新驱动程序
信号系统网关设备的优化
计算机硬件设备驱动程序分析
谈实时以太网EtherCAT技术在变电站自动化中的应用
LTE Small Cell网关及虚拟网关技术研究
浅谈EPON与工业以太网在贵遵高速公路中的应用
应对气候变化需要打通“网关”
万兆以太网在连徐高速公路通信系统改造中的应用
一种实时高效的伺服控制网关设计