APP下载

智能家居基于Cortex- M3/M0的感知与控制子网设计

2014-07-02何铮周娜

单片机与嵌入式系统应用 2014年12期
关键词:收发器子网寄存器

何铮,周娜

(1.海南政法职业学院,海口570203;2.海口经济学院)

引 言

在感知/测控网中,按媒体连接型式则有RS-485总线网、CAN总线网、ZigBee总线网、WiFi总线网等。

图1 物联网智能家居系统

在真正的物联网智能家居系统中,不应当再按功能划分为各个独立的抄表网、环境网、电控网、安防网等,而只是按传输接口形式和信息流的走向,融合为感知/控制子网。对于具有多主竞争总线接口的模块(如CAN、ZigBee等),融合为感知/控制子网;而对众多仅具单主总线的RS-485模块,则按信息流的流向,融合成循环检测的感知子网和点控的控制子网。NXP Cortex-M3/M0系列ARM微处理器的优异性能,低廉的价格为这样的设计开发提供了良好的条件。

1 系统体系结构

物联网智能家居系统如图1所示,它实际上是一个分布式测控系统。

它的上层管理网是以太网,用于在广阔的互联网范围内信息共享,其上连接有各种管理、存储及远程控制设备。

它的下层,不再以功能(环境、抄表、安防、电控等)切割分块,而是按信息流走向整合形成感知/控制网。感知网以多主或轮询的方式向上传送信息,而控制网则可采用一主多从方式向下传送控制命令。

连接上、下层的是多个嵌入式通信服务器。通信服务器是智能家居中的核心模块,它在整个智能家居系统中不仅起到了上下信息传递的作用,而且进行数据融合、分类以及安全管理,是感知网的管理主机。

2 嵌入式通信服务器

嵌入式通信服务器是智能家居中的核心模块,选用的是NXP公司Cortex-M3系列中的LPC1768处理器。LPC1768处理器是一个低功耗,具有强大功能的32位ARM芯片。

LPC1768单片机内部包含有一个功能齐全的10/100 Mbps以太网RMII接口控制器,它可以通过RMII接口(通常简化为媒体独立接口MII)外接一个物理接口收发器(PHY),再接上网络变压器和RJ-45接口,就组成了一个完整的以太网通信接口,如图2所示。

图2 以太网接口电路

PHY芯片选用美国国家半导体公司的DP83848,这是10/100 Mbps单路物理层器件功能,用于为LPC1768芯片提供物理层接口。

以太网MAC,通过RMII接口与片外PHY相连。如图2所示,LPC1768的以太网模块使用RMII(简化MII的媒体独立接口)来连接外部PHY芯片(DP83848)。其中有8根RMII的串行数据总线,还有2根MIIM(媒体独立接口管理)接口管理控制线,从而实现与片外以太网PHY之间的连接。DP83848的复位信号可以共用LPC1768的复位信号。

以太网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路由器。

图3 LPC1768的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后,也完全可兼容/混用原系统。LPC11C14的CAN接口如图4所示。

图4 LPC11C14的CAN接口

4.1 LPC812M101FDH20的感知/控制网从机模块

LPC812M101FDH20是NXP Cortex-M0系列中的20引脚廉价芯片,它有16K闪存、4K SRAM和3个串口。如图5所示,LPC812M101FDH20通过开关矩阵分配引脚充当 U0/U2/U3_TXD、U1/U2/U3_RXD、U1/U2/U3_RTS,连接MAX485即构成了RS-485通信接口。在软件中,通过CFG配置寄存器的第3、2位设置成10(9位通信模式),这就成了兼容于MCS-51的多机通信方式(即可进行软件地址检测和收发器方向控制的RS-485通信)。

图5 LPC812M101FDH20的RS-485接口

由于LPC800系列微处理器串口的9位通信方式中的第9位仅能进行奇偶校验设置,不能人为设置1/0(地址/数据),所以它只能在RS-485感知/控制网中充当从机。

在充当从机使用中,先要将USART CTRL寄存器第2位(ADDRDET使能地址检测模式)设置为1,这时仅对主机发来的地址数据,产生一个接收数据中断。软件随后便检查接收地址数据,判断是否是本机地址。如果是,则软件会清零ADDRDET位,所有后续输入数据均会被正常接收处理。在一次轮询应答响应完后,再将USART CTRL寄存器第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%。

[1]广州周立功单片机发展有限公司.LPC1700系列微控制器用户手册,2010.

[2]广州周立功单片机发展有限公司.LPC11X/LPC11CX User manual,2012.

[3]广州周立功单片机发展有限公司.LPC800系列微控制器用户手册,2013.

猜你喜欢

收发器子网寄存器
一种简单子网划分方法及教学案例*
STM32和51单片机寄存器映射原理异同分析
Lite寄存器模型的设计与实现
光纤收发器故障排除经验谈
子网划分问题研究及应用
Virtex5 FPGA GTP_DUAL硬核两个收发器独立使用的实现
子网划分的简易方法
基于RocketIO 高速串行回环通信的实现
高速数模转换器AD9779/AD9788的应用
一种可重构线性反馈移位寄存器设计