1 系统体系结构
物联网智能家居系统如图1所示,它实际上是一个分布式测控系统。
它的上层管理网是以太网,用于在广阔的互联网范围内信息共享,其上连接有各种管理、存储及远程控制设备。
它的下层,不再以功能(环境、抄表、安防、电控等)切割分块,而是按信息流走向整合形成感知/控制网。感知网以多主或轮询的方式向上传送信息,而控制网则可采用一主多从方式向下传送控制命令。
在感知/测控网中,按媒体连接型式则有RS-485总线网、CAN总线网、ZigBee总线网、WiFi总线网等。
连接上、下层的是多个嵌入式通信服务器。通信服务器是智能家居中的核心模块,它在整个智能家居系统中不仅起到了上下信息传递的作用,而且进行数据融合、分类以及安全管理,是感知网的管理主机。
2 嵌入式通信服务器
嵌入式通信服务器是智能家居中的核心模块,选用的是NXP公司Cortex-M3系列中的LPC1768处理器。LPC1768处理器是一个低功耗,具有强大功能的32位ARM芯片。
LPC1768单片机内部包含有一个功能齐全的10/100Mbps以太网RMII接口控制器,它可以通过RMII接口(通常简化为媒体独立接口MID外接一个物理接口收发器(PHY),再接上网络变压器和RJ-45接口,就组成了一个完整的以太网通信接口,如图2所示。
PHY芯片选用美国国家半导体公司的DP83848,这是10/100 Mbps单路物理层器件功能,用于为LPC1768芯片提供物理层接口。
以太网MAC,通过RMII接口与片外PHY相连。如图2所示,LPC1768的以太网模块使用RMII(简化MII的媒体独立接口)来连接外部PHY芯片(DP83848)。其中有8根RMII的串行数据总线,还有2根MIIM(媒体独立接口管理)接口管理控制线,从而实现与片外以太网PHY之间的连接。DP83848的复位信号可以共用LPC1708的复位信号。
以太网RMII的引脚信号如下:
①ENET_TX_EN为输出发送数据使能;
②ENET_TXD[1:0]为输出发送数据,2位;
③ENET_RXD[1:0]为输入接收数据,2位;
④ENET_RX_ER为输入接收错误;
⑤ENET_CRS为输入载波侦听/数据有效;
⑥ENET_REF_CLK/ENET_RX_CLK为输入参考时钟用于外部PHY的媒体独立接口管理(MIIM)的信号;
⑦ENET_MDC为输出MIIM时钟;
⑧ENET MDIO为输入/输出MI数据输入和输出。
DB83848通过TD+、TD-、RD+、RD-经隔离变压器、RJ-45口输出,L-、R-驱动LED,指示输入、输出状态。
3 CAN接口及CAN感知网
在智能家居中采用CAN感知/控制子网,这里面有CAN-以太网关、CAN路由器、CAN感知/控制模块。由于CAN-以太网关和CAN路由器需要以太网控制器(MAC)和2个CAN控制器,所以CAN-以太网关、CAN路由器均由Cortex—M3的LPC1768来承担,而CAN感知/控制模块则由Cortex—M0的LPC11C12/24来承担。
3.1 CAN-以太网关、CAN路由器
如图3所示,LPC1768内部集成有CAN控制器,外接CAN收发器就构成了嵌入式通信服务器的CAN通信接口,所以能很方便地构成以太-CAN网关。又由于LPC1768内部集成有2个CAN控制器,因而它支持2个CAN子网,能很方便地构成CAN路由器。
LPC1768的CAN控制器支持控制局域网(CAN),提供了一个完整的CAN协议(遵循CAN规范V2.0B)实现方案,因而它能很方便地兼容/混用过去的SJA1000 CAN系统。
3.2 CAN总线感知/控制模块
CAN感知/控制模块均选用基于Cortex—M0的LPC11C14/24。LPC11C14内部集成有一个CAN控制器,而LPC11C24是在LPC11C14的基础上集成了一个CAN收发器TJF1051。采用LPC11C14/24比过去采用51单片机+TJF1050+SJA1000方式,不仅性能大大提高,而且占用PCB板面积大大减小,芯片材料成本减少了40%。
新旧系统混用最好都采用同样的CAN收发器。由于原CAN系统中CAN收发器芯片采用的是TJF1050,而TJF1051是与TJF1050高度兼容,因而以LPC11C14/24构成的CAN模块和采用51单片机+TJF1050+SJA1000的CAN模块高度兼容/混用。
4 RS-485接口及RS-485感知网
在原智能家居系统中有不少的感知网采用RS-485总线,而且采用的是80C51系列的9位多机通信方式。在新系统中选用Cortex—M0/M3后,也完全可兼容/混用原系统。LPC 11C14的CAN接口如图4所示。
4.1 LPC812M101FDH20的感知/控制网从机模块
LPC812M101FDH20是NXP Cortex—M0系列中的20引脚廉价芯片,它有16K闪存、4K SRAM和3个串口。如图5所示,LPC812M101FDH20通过开关矩阵分配引脚充当U0/U2/U3_TX D、U1/U2/U3_RXD、U1/U2/U3_RTS,连接MAX485即构成了RS-485通信接口。在软件中,通过CFG配置寄存器的第3、2位设置成10(9位通信模式),这就成了兼容于MCS-51的多机通信方式(即可进行软件地址检测和收发器方向控制的RS-485通信)。
由于LPC800系列微处理器串口的9位通信方式中的第9位仅能进行奇偶校验设置,不能人为设置1/0(地址/数据),所以它只能在RS-485感知/控制网中充当从机。
在充当从机使用中,先要将USART CTRL寄存器第2位(ADDRDET使能地址检测模式)设置为1,这时仅对主机发来的地址数据,产生一个接收数据中断。软件随后便检查接收地址数据,判断是否是本机地址。如果是,则软件会清零ADDRDET位,所有后续输入数据均会被正常接收处理。在一次轮询应答响应完后,再将USARTCTRL寄存器第2位(ADDRDET使能地址检测模式)设置为1,等待下次轮询本机。
LPC800的串口由于在设置波特率时,还可使用小数分频器,使其在各种晶振下均能获得精准波特率;同时,它采用3次采样接收,接收数据是3个样本“投票”中的2个,当有1个样本与其他不同时,会将USART状态寄存器第“15”位设置状态标志(接收噪声中断标志),从而大大降低了误码率。
4.2 LPC1768的感知/控制网主机模块
RS-485感知/控制网中的主机通常都是嵌入式通信服务器,所以选用Cortex—M3系列中的LPC1768作为感知/控制网中的主机。LPC1768虽有4个串口,但只有UART1具有RS-485模式。在这个模式中有3个专门用于RS-485通信的寄存器(控制寄存器、地址匹配寄存器、延时值寄存器)。
作为主机在轮询发送时,首先要将LPC1768的U1LCR线控制寄存器的1、0位设置成11(8位字符长度,相当于MCS-51的9位数据长度含TB8/RB8的通信);再视所发送的是轮询从机的地址还是数据,将U1LCR线控制寄存器第5、4位设成10(将第9奇偶校验位强制为1地址),或设成11(将第9奇偶校验位强制为0数据)。
作为主机在接收时,不再需要对自身地址匹配,所有的数据都必须接收。
通过U1RS485DLY延时值寄存器,可设置发送完最后一个停止位(移出TXFIFO)和DTR转为接收信号之间的延时(0~255个波特率时钟周期)。
5 ZigBee及WiFi接口
通过SPI接口,接入CC2530就构成了ZigBee接口。通过SPI接口,接入WiSmart EC32L12模块就构成了WiFi接口。
结语
采用NXP Cortex—M3/M0系列微处理器开发物联网智能家居系统,有以下几大优点:
①新系统的感知/控制网是32位系统,性能得到了极大地提高;
②Cortex—M3/M0系列ARM微处理器中都有一定的ROM API库,加块了开发速度,也减少了开发成本。
③集成度高,并有开关矩阵定义引脚,从而大大提高了硬件的适应性。
④智能家居24小时工作不断电,Cortex—M3/M0微处理器超低功耗设计,使新系统的待机功耗仅为旧系统的20%。