吴侨,马维华,魏金文
随着信息技术尤其是近几年物联网技术的快速发展,人们正在不断地对“物”的智能化进行深入探究。而节能历来是社会关注的一大热门话题,因此如何做到办公楼宇有效的节能控制不仅符合当今社会节能化的需要和物联网发展的趋势,更成为公司减少开支的有效手段。而结合社会关注的节能话题,楼宇的智能化节能控制正成为研究的焦点。如何有效的在低成本的情况下实现楼宇的多功能智能节能监控正是本次设计的目的。
多功能网关节点的设计是楼宇节能控制系统的一个非常重要的组成部分,该节点负责与远程上位机通讯和采集终端节点的数据,担负着整个系统的管理和控制。终端节点并不具备以太网连接功能,由于各终端节点间是不需要直接进行的信息交互的,所以终端节点与中继网关节点的连接考虑采用RS485通讯协议的总线型网络结构,因此中继网关控制节点的设计关系到整个系统的稳定性。由于网关节点需要通过以太网与上位机实现通讯,实现远距离的控制与数据传输,因此该节点必须要实现TCP/IP协议。而这里主要采用LwIP作为TCP/IP协议栈的一种实现。LwIP是由瑞典计算机科学院提出的一个开源的轻量级TCP/IP协议栈,该协议栈主要是针对嵌入式领域资源有限的微处理器而提出的轻量型IP协议,很适合中低端的嵌入式系统使用。同时由于LPC1766资源相对丰富,为了充分利用资源,同时在网关节点集中了终端采集模块的部分功能,并且可以通过继电器对公司用电系统的直接控制,由此可见多功能智能楼宇节能控制系统的网关中继节点需要担负很重要的任务。整体系统设计,如图1所示:
图1 系统整体结构设计
中继节点的微处理器采用的是LPC1766,LPC1766是恩智浦公司推出的基于Cortex-M3内核的微控制器,集成10/100M Ethernet MAC,CAN通道.SPI接口,I2C接口,ADC转换模块等,拥有丰富的外围接口,适用于要求高度集成和低功耗的嵌入式场合,硬件设计主要包括以太网模块,RS485模块,传感器模块,继电器模块等。
为了充分利用LPC1766的资源,LPC1766完全可以兼顾终端节点的采集功能。因此,中继节点并不仅仅是实现数据的中继与协议的转换,它还实现了信息的采集,从而实现网关节点的多功能性。设计时中继网关节点上集成有温湿度传感器,这里采用了DHT11作为温湿度传感器,DHT11数字温湿度传感器是一款含有已校准熟悉信号输出的温湿度复合传感器,它采用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。DHT11供电电压为3-5.5V,湿度测量范围20-90%RH分辨率为1%RH,温度部分测量范围是0~50℃分辨率为1℃,参数可以符合楼宇节能控制的应用要求。DHT11与LPC1766之间的通信采用单总线的数据格式,DHT11的连接原理图,如图2所示:
图2 DHT11原理图
同时中继网关节点还集成有光敏电阻,光敏电阻采用典型的阻容电路作为光线传感器,输出信号经过调理后接入LPC1766的AD转换口,从而实现光线的采集。中继节点上还增加了3路继电器电路,从而实现对电灯,空调等办公用电设备的直接控制。为了保证总线上的电器隔离,继电器电路采用光电耦合器TLP781来控制继电器,引出的Con2引脚可以直接接到220V电压上控制楼宇电器的通断,从而中继节点也可以实现楼宇的节能控制,其中控制电灯的继电器电路原理图,如图3所示:
图3 继电器电路原理图
中继节点与终端节点的通讯采用有线的RS485进行通信。RS485是由EIA(Electronic Industries Association)为了弥补RS-232通信中所暴露的缺点制定的标准,采用差分平衡系统,提高了传输速率,增加了传输的距离,并且改进了电气特性是半双工主从模式的多机通信系统[1]。这里完全可以实现中继节点和终端采集节点的数据交互。终端节点考虑使用Cortex-M0。终端节点的设计除了有网关节点集成的基本的温湿度光线采集传感器和继电器电路同时还加入了更加丰富的功能,带有红外人体感应,烟雾传感器,并且集成有红外收发模块对空调进行集中的智能节能控制。整个节点设计完全考虑了在低成本的情况下实现楼宇的多功能节能控制。
LPC1766包含有功能齐全的10Mbps或100Mbps以太网MAC,因此这里需要外接物理接口收发器实现物理层的功能,这里选用DM9161AEP单芯片快速以太网PHY该芯片是10/100M自适应的以太网收发器。DM9161AEP通过可变电压的MII或RMII标准数字接口连接到LPC1766的MAC层,而LPC1766的以太网MAC只具有RMII接口,所以,以太网模块需要通过RMII和DM9161AEP连接。最后网络变压器采用HR601680来实现中继节点的以太网功能[2],如图4所示:
图4 网络模块示意图
软件开发环境为keil uvision4,设计分3各模块,分别是中继节点自身传感器继电器模块,与上位机通讯模块,与终端节点通讯模块。中继节点主要负责收集各终端节点的数据信息,然后传到上位机,上位机可以实时的观测到各个终端节点的采集数据,并且上位机可以通过人机交互界面发出指令。网关中继节点通过以太网收到指令后进行分析,然后自定义一个data_rec数据结构把信息转换为RS485数据包传递到相应的终端采集节点,终端节点接收到相应的控制信息后通过继电器,红外发送单元等来实现楼宇的节能控制。
温湿度传感器DHT11一次完整的通讯的数据传输为40bit,高位优先,数据传送的顺序为“8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和”校验和等于前四个字节数据相加的末八位。开始由LPC1766发送一开始信号,再由DHT11发送响应信号,形成握手后,DHT11开始传送数据,其中每一bit数据都以50us低电平开始,高电平的长短决定了数据时0还是1,当高电平为26us-28us时为逻辑0,当高电平维持70us则为逻辑1,这里采用定时器中断的方式来产生时间基准来判断逻辑电平。大约每4秒采集一次温湿度数据,经过校验比较后确认数据无误再通过以太网传到上位机,对于数据的准确性由校验值来确定,在实验过程中也可以使用逻辑分析仪根据DHT11的数据传输协议来对温湿度数据进行观测,观测结果,如图5所示:
图5 DHT实际测试温湿度时序图
将其结果与程序数据进行比较,确认程序的正确性。对于光线传感器,直接接入到微处理器的AD转换模块进行采样分析。这里我们可以设置一个阈值。当温湿度和光线超出阈值则通过MCU触发继电器模块进行直接的节能控制。
与终端采集节点的通讯是通过RS485方式来实现的,网关节点采用中断的方式接受终端采集节点的数据,当有数据送来时触发中断,接受RS485传送过来的数据,这里由于终端采集节点需要传输多种采集的信息,我们自行定义一个自定义数据结构来存放需要传输到上位机的数据。中继网关节点采用中断方式接受到终端采集节点的信息后,将数据以UDP报文格式进行封装并且发送到上位机,如图6所示:
图6 UDP数据流图
与上位机通讯采用LwIP协议栈来实现,这里考虑使用UDP协议,图六是LwIP协议中UDP数据流图。因为嵌入式系统资源有限,TCP传输相对开销较大,而UDP是简单和快速的,但同时也是无连接并且不可靠的[3][4]。UDP数据不可靠的缺点可以通过UDP的请求-应答应用来弥补,客户端发送一个报文后必须等待服务器的应答,而如果这时有数据包丢失了,客户将永远收不到服务器的应答报文,所以客户端就可以请求重发报文。这样我们就可以检测到丢失的数据报并且可以重新发送该数据报[5]。网络传输函数由udp_Init()负责创建UDP进程控制块绑定本地主机和设置回调函数,
Void udp_recv(struct udp_pcb*pcb,
void(*recv)(void*arg,struct udp_pcb*upcb,
struct pbuf*p,struct ip_addr *addr,u16_t port),
void*recv_arg)
udp_recv用来绑定回调函数,在回调函数中设置对接收到的UDP数据进行处理,回调函数中需要判断数据的目的地址,直接在回调函数中根据接收到的数据结构中的终端节点的地址来判定,如果是传给自己的数据,则送给CPU做相应的处理,如果数据是传送给终端节点的就把数据转换为RS485需要的数据格式转发到相应的终端节点上去。网关节点的数据处理流程图,如图7所示:
图7 网关节点数据转换流图
通过中继网关节点的控制,使得整个楼宇节能控制可以远程化,智能化,中继节点的设计本身也集成部分终端采集和控制功能,使得中继网关节点得以充分利用,通过实践测试证明系统可以可靠地运行,并且完成终端节点的远程控制。楼宇的用电控制实现了智能一体化,可以为公司节省一大笔开支。
[1]李朝青,刘艳玲,沈怡麟.单片机与PC机网络通信技术[M].北京航空航天大学出版社.2007(2)
[2]周立功.深入浅出Cortex-M3—LPC1700[M].广州致远电子有限公司.
[3]W.Richard Stevens.TCP/IP详解卷1[M]:协议.机械工业出版社.2009(11)
[4]北京瑞斯康达科技有限公司.嵌入式TCP/IP协议在ARM上的实现及其应用[J].微计算机应用.2005(11)
[5]Sergio Scaglia.嵌入式InternetTCP/IP基础、实现及应用[M].北京航空航天大学出版社.2008(10)