随着人们对居住环境的舒适度、便捷性和安全性需求的日益提高,智能家居系统应运而生。智能家居系统的核心功能是实现家用设备运行状况的实时监测和传输,主要包括:安全防盗报警;火警、水电、煤气泄漏等实时监测和自动报警;室内温度、湿度、灯光自动调节和遥控等[1]。因此采集和传输各种设备的运行信息是保证智能家居系统正常运行的关键。MB90F462是Fujitsu公司生产的一款通用16位单片机,最小指令周期仅为62.5ns,适用于工业控制和高速实时数据处理等场合;同时,该芯片具有多功能定时器和多脉冲发生器,适用于交流感应电机和直流无刷电机的控制。本文利用MB90F462丰富的片内资源设计了一款智能家居系统的低速数据采集卡。
1 系统结构及功能概述
根据智能家居系统在线设备比较多的特点和方便控制的需求,数据采集卡应具有足够的输入、输出接口和远程通信功能。基于MB90F462的数据采集卡的系统结构如图1所示。系统按功能可分为以下几个模块:8路模拟量输入;8路数字量输入;GSM短信数据传输;RS-232、RS-485通信;GPRS数据传输;实时时钟;状态指示;EEPROM数据存储。
2 主要功能模块的设计
2.1 信号输入模块
在智能家居系统中,需要采集的数据信息包括空气温度、湿度、灯光的调节和水、电、煤气、烟、火等报警信息,按照信号的性质可分为模拟量数据和数字量数据两类。该数据采集卡可支持的输入电平有5V、3.3V、RS-232和RS-485接口。
MB90F462带有8路8/10位精度可选的A/D通道,可供输入8路传感器的模拟量信号。对于温度、湿度、灯光、水流量等信息,可通过相应的传感器将设备的实时数据通过A/D通道采集到管理中心。由于该系统数据量不大,软件设计采用查询的方式来检查各路A/D的采样完成标志,并读入数据至管理中心的计算机中。A/D采样需要设置的寄存器包括:ADER、ADCS1、ADCS0、ADCR1和ADCR0。A/D转换共有四种可选模式:单步转换模式1(运行时允许重复激活)、单步转换模式2(运行时不允许重复激活)、连续转换模式(运行时不允许重复激活)、停止转换模式(运行时不允许重复激活)。
对于设备的报警信息和一些特殊的开关量,利用MB90F462的8路外部中断对数字量输入信号进行触发或脉冲计数。由于外部中断和GPIO管脚是复用的,所以使用外部中断时必须设置相应的管脚为输入。每两个外部中断共用一个中断控制寄存器,使用外部中断时需要设置的寄存器有ICRXX、ENIR、ELVR和EIRR。中断信号的触发信号电平可以为高电平、低电平、上升沿或下降沿。使用外部中断之前和中断处理完成后要清除标志位。
2.2 短消息通信模块
为了更方便地服务于用户,智能家居系统采用GSM短消息(SMS)服务来实现远程报警和遥控功能,用户通过个人移动电话即可监测家用设备的实时状态和报警信息,同时还可通过发送短消息远程控制某个设备的开关。SIEMENS公司的GSM无线模块TC35具有可靠的数据、语音、短消息服务和传真四种数据传输功能。该模块的工作电压为3.3~5.5V,可以工作在900MHz和1800MHz两个频段,所在频段功耗分别为2W(900MHz)和1W(1800MHz)。TC35的数据接口采用串行异步收发,符合ITU-T RS-232接口电路标准,工作在CMOS电平。数据接口配置:8位数据位、1位停止位、无校验位,可以在300bps~115Kbps的波特率下运行,支持的自动波特率为4.8~115Kbps(14.4Kbps和28.8Kbps除外)[2]。
在进行短信通信之前,通过在/IGT管脚输出一电压下降沿激活GSM模块,待模块稳定之后,设置短信服务中心号码和数据格式,并进行短信收发、删除、查询等操作。
2.3 GPRS通信模块
与传统的GSM相比,GPRS通信的特点是终端可移动、接入时间短、传输速度快、按流量计费、可接入Internet网、时时在线[2]等。GPRS网络使用TCP/IP协议栈进行组网,可以实现与Internet网络的无缝连接,但是在传输时数据格式应该符合TCP/IP协议栈的数据包格式。GPRS网络为实现点对点通讯,在数据链路层上使用PPP协议,物理层上使用串口通信。因此,实现基于GPRS的数据传输系统时需要对数据进行打包,并需要在数据链路层上实现PPP协议[3]。基于TCP/IP专用模块的GPRS远程数据传输的流程如图3所示。
基于TCP/IP专用模块的移动终端主要由数据获取模块(数据采集卡)、数据打包模块和数据发送模块组成。数据打包模块采用ConnectOne公司生产的Iconnector模块,数据发送模块采用SIEMENS公司生产的具有GPRS功能的GSM手机模块MC35。在Iconnector内部的Flash中存储有Internet协议栈,支持PPP、IP、UDP、TCP、DNS、SMTP、POP3、HTTP、FTP、Telnet等几乎所有的网络协议。通过AT+i指令设置并控制Iconnector,以实现数据的打包。Iconnector有两个标准的RS-232串行接口,在标有Modem字样的一端与MC35相连接,在另外标有Device字样的一端与数据采集卡相连接。用于GPRS数据传输的AT+i指令如表2所示。
评论
查看更多