徐小玲,刘 美,李绪政
(广东石油化工学院 广东 茂名 525000)
基于STM32的无线智能家居终端设计
徐小玲,刘 美,李绪政
(广东石油化工学院 广东 茂名525000)
做为新型的短距离无线通信技术,ZigBee以其低功耗、低速率以及自组网等优点进入了现代家居控制应用领域,可实现一种灵活的,独立的,低成本的智能家居系统搭建。文中以ZigBee为基础,利用CC2430与STM32处理器配合微型嵌入式系统搭建智能家居应用环境,实现智能家居系统终端设计。实验证明终端设计在实际系统中可靠、可行。关键词:STM32;ZigBee;RT-Thread RTOS;CC2430
随着电子技术的融合和家居自动化领域的扩大,各种智能系统的控制被提出,智能家居不再是一个科学社会的术语,智能家居通过蓝牙、互联网、短信服务等间接降低系统成本。不过大多数系统实现降低成本的解决方案不太可行。随着科技进步,而ZigBee无线通信技术也逐渐进入了控制领域[1]。实现例如能源管理系统的控制如照明、电源插头和暖通空调(采暖、通风和空调)系统设计;安全和监测系统如火灾探测和入侵检测警报和电子邮件通知;自动智能家居环境控制如保持房间一定的温度;语音切换功能和用户身份验证访问智能家居系统。
其中,基于ZigBee的芯片凭借ZigBee低廉,低功耗、自组网、无线数据通信的特点,智能家居应用程序可以远程控制和监测基于ZigBee的智能家居环境,它将通过互联网和网络服务器通信。再任何通过Wi-Fi或者3G/4G网络连接可以在用户设备上使用。可以实现很多以往控制领域无法实现的功能。近年来,常见的ZigBee技术的芯片普遍使用的是TI公司的无线收发芯片等。而普遍采用计算机软件连接CC2430网关实现控制终端功能,但不够灵活。其次,CC2430芯片[2-3]本身是面向低功耗的工业8位单片机,扩展能力不足,而且嵌套的ZigBee协议栈不适合进行控制终端软件开发。因此,本文提出了以ZigBee无线通信网络为基础,以STM32与CC2430搭建低成本控制终端作为上位机对网络中其它节点进行控制,同时通过互联网与上位机控制网络节点的方式,实现智能家居系统硬件搭建。
1.1STM32处理器
STM32[4]处理器是ST(意法半导体)公司基于ARM的Crotex-M3内核开发的一系列新型单片机。Crotex-M3内核是ARM公司为了满足高性能、低成本、低功耗的嵌入式应用而专门设计的新一代内核,采用了新一代ARM V7-M体系结构,具有门数少,中断延迟少,调试容易等特点。得益于该内核的优秀性能,STM32系列ARM处理器的价格比现有的市场的的16位处理器芯片还要便宜,但是性能却比ARM7还要强大,具有丰富的外设,多种引脚封装,以及多种容量选择,而且功耗极低,是ARM系列产品中功耗最低的,因此使用STM32处理器作为控制处理器是一套可靠的方案。本设计系统是采用STM32f103VC芯片[5],该芯片具有以上的特性,属于该系列中档芯片。
STM32处理器的硬件资源决定了它特别适合于微型嵌入式操作系统,主要因为它能满足很多微型嵌入式操作系统运行所需要的最基本条件:一个精确的独立系统内核时钟源以及足量的内存与FLASH。因此我们能很轻易地把现有的操作系统移植到这个平台上。事实上,随着STM32处理器的广泛的使用,很多嵌入式操作系统都已经开发了基于该芯片的系统分支,比如UCOS II,RT-Thread等,相关的移植工作只需要修改就可以适应硬件。
其次,一个可视化嵌入式系统控制平台可以在选择一个稳定的微型嵌入式操作系统的基础上,加入GUI界面、输入设备、TCP/IP协议等组件组成。本文设计的系统选用的是国内RT-Thread工作室自主开发的微型嵌入式实时操作系统RT-Thread RTOS。RT-Thread RTOS一个新生的操作系统,也是国内目前自主开发的最完善的嵌入式操作系统,它得到了来自全国嵌入式开发工程师的鼎力支持,为RT-Thread添砖加瓦,现在它已慢慢变成一个完善的、全功能的操作系统,包括文件系统,网络协议栈,图形界面组件等多个组件,并且所有组件都特别针对于RT-Thread内核进行了优化。该操作系统还特别注重与STM32处理器的版本,因此STM32版本是最稳定的,这也使得我们的设计趋于方便。此外RT-Thread还是一个动态原先级全抢占式优先级系统,很适合作为控制系统。
1.2网络硬件的设计
控制终端节点的硬件框图如图1所示。为了实现多种控制源通讯,把硬件设计划分为网络节点通讯模块、本地控制模块以及上位机控制模块。网络节点通讯模块实现网络中设备节点的设备信息采集与节点控制命令的发送。本地控制模块实现的是直接在控制终端硬件上操作网络中设备节点的功能。上位机控制模块是实现PC机与控制终端节点的互联,利用上位机软件实现对网络中的设备节点的控制[7]。
图1 控制终端节点硬件架构Fig.1 Hardware architecture of control terminal node
控制终端的网络节点通讯模块由CC2430与STM32F-103VC通过串口通信构成。CC2430相当于STM32F103VC在ZigBee网络中的网卡,网络中的所有与控制信息有关的数据都通过CC2430直接传输到STM32处理器,再由STM32进行处理与显示,同时也将STM32产生的控制命令传输给控制网络中的目标设备。STM32系列的串口硬件是具有DMA功能的全双工串口,而CC2430的串口也同样如此,因此STM32处理器可以利用DMA功能与CC2430无缝通讯,这样在多任务系统中能够很好的保证数据完整性并且避免了频繁的中断或者循环等待接收带来的负面影响。两个芯片分别具有自己独立的节本工作外围器件,正常工作时不会互相影响,这对于RF射频电路及其重要。
本地控制模块主要由键盘、触屏等常用手持设备的控制电路构成,并集成TFT液晶模块,结合软件实现对网络中设备节点的控制。触摸屏芯片为常用的TSC2046触摸芯片,与STM32f103VC的SPI1接口连接。键盘电路采用4×4电路结构并另外单独连出4个下拉独立键盘,实现全功能按键。TFT液晶模块采用16位总线驱动模式,配合其它的驱动电路工作。虽然STM32是一个32位处理器,但是它的管脚都是16位的,正好符合液晶模块的数据宽度。
上位机模块采用外围芯片与电路构成。其硬件原理图如图 2所示。STM32f103VC的 SPI2接口连接至网络芯片ENC28J60,再由ENC28J60连接RJ45网络接口,实现网络数据传输,可利用网络远程控制。而芯片的串口2通过MAX3232与PC机串口互联实现室内上位机控制。
ZigBee网络中的设备节点主要实现对普通家庭中常用的电器(例如灯光、电子门、空调等)的控制。其硬件原理图如图3所示。设备节点在通过ZigBee网络控制的同时也具有可手动控制的功能以防止设备掉线的弊端,此外还有相应的显示功能。但是相对于控制终端而言,设备节点要轻便的多,因为它只需要用CC2430搭载相应的控制模块以及控制输入与显示模块,因此成本也不会很高。节点设备采用LED演示,方便看到控制效果,按键电路没有给出。显示模块采用的基于SPI接口的12864黑白液晶屏,减少节点的功耗,尽量延长节点的电源的持续时间。
2.1控制终端节点软件
合理布置软件控制系统是控制终端节点的核心部分。由于是基于多控制方式的控制系统,各个控制方式需要进行并行处理,这样才能保证各种控制能够实时到位,在此,实时多任务系统RT-Thread RTOS就很好的保证了这一点[8]。由于控制方式是并行的,所以每种控制方式都需要单独建立一个线程,而图形显示界面也需要建立一个线程以防止显示界面混乱。CC2430与STM32的串口读取与发送分别建立了独立线程,由于STM32处理器的串口为全双工处理器,DMA硬件也区分接收与发送,因此可以把发送与接收独立分开,一个只负责接收,另一个负责发送,集成统一的串口通信协议,这样可以大大减小系统复杂度,而控制设备的在网状态则由这两个线程共同维护。因此至少需要建立7个线程。这7个线程需要访问同一片数据区域,也就是所有控制设备的信息存储块,所以也同时在软件中建立一个内存池,用于存放网络总控制设备的信息。具体架构如图4所示。本设计是利用RTThread的多线程与定时机制,建立了这7个线程,由STM32的串口2通信任务对设备数据块进行更新,同时利用操作系统的内核实现数据的互斥机制对其进行数据保护,以防止数据出错。此外为系统软件增加一条限定,那就是所有的控制设备的信息是以接收到的为准,除了串口2的数据接收线程,其它线程除了进行读取查询外不能进行任何修改操作,即使是控制命令也是在发给控制设备后由控制设备反馈信息再由串口2数据接收线程修改,这样最大程度上保证设备信息块信息完整性。
图2 控制终端节点上位机控制模块Fig.2 PC control module of control terminal node
控制终端节点的串口通信需要规定一个独立的串口通信协议,任何一方传输数据前需要有一个传输起始命令SOP,紧接着才是数据,而数据与控制命令必须具有固定的数据结构,这样才可以实现正确的控制,而且可以保证上位机在对信息读取时不用进行额外的修改,减少软件复杂度。同时为了保证串口传输的正确性,避免掉帧现象,需要在完整数据传输完后加入校验数据,可以采用8位异或算法。CC2430协调器是基于ZigBee协议栈2007的载体TIN抢占系YOS操作系统,该系统为轮询非统,不需要为每个控制方式设置线程,主要靠事件传递启动线程进行工作,由于只负责数据传输,软件结构很简单,其软件架构如图5所示。
2.2设备节点软件
设备节点的软件采用基于ZigBee协议栈2006的载体TINY OS操作系统,利用定时事件启动控制任务发送自己以及受控设备的状态,接收网络的控制事件,同时靠自身的键盘事件控制,实现手动以及远程控制方式。设备发送的网络数据包需要包括设备类型、网络地址、坐标、受控设备类型、传感器数据等。ZigBee协议栈自己包含了数据校验,可以保证网络数据的正确传输。其架构如图6所示。
图3 CC2430设备节点基础电路Fig.3 Basic circult of CC2430 device node
图4 控制终端节点STM32芯片软件系统架构Fig.4 Softwave system architecture of STM32 in control terminal node
2.3上位机软件及网络控制
上位机软件主要实现与STM32芯片的串口通信[9-10],需要一套独立的串口通信协议,可以使用CC2430与STM32相同的协议,实现最简化软件设计。通过读取控制终端中保存的控制设备的信息,利用界面显示并进行控制,控制方式经过软件内部转换成控制指令通过串口回传给STM32控制终端,再由STM32控制终端利用Zibgee网络发送给目标设备节点,实现上位机的对网络中设备节点的控制。采用此控制方式时需要将控制终端串口连接至计算机串口。
图5 控制终端节点CC2430芯片软件架构Fig.5 CC2430 chips software architecture of control terminal node
图6 设备节点CC2430软件架构Fig.6 CC2430 software architecture of device node
利用RT-Thread RTOS的TCP/IP协议栈,可以实现网络服务器功能。在TCP/IP任务中建立用户机制,实现用户利用用户名与密码远程登录控制终端,进行数据读取与控制命令。由于STM32系列芯片的FLASH与SRAM在完成以上任务分配后,可以用的空间并不充裕,无法实现将整个网页控制界面烧写至芯片的FLASH中,但是可以采用以客户端软件的方式编写联网上位机,直接通过网络连接至控制终端,读取数据并自行处理,再显示出来,实现远程控制。采用此控制方式需要用网线将控制终端连Internet[11]。
在完成上述软硬件架构的基础上,将各节点组网,进行实际控制实验。上位机控制线程通过串口调试助手连接,由人工发送命令以验证该功能。而多个设备节点均为控制LED灯的开关作为控制效果。实验结果证明,在对采集设备信息采集时间控制在3 s以上的情况下,可以很好的保证节点的在ZigBee网络中的网络通信正常通信而不受到阻塞[12]。在以10 ms为单位节拍运行系统内核的情况下,各个控制线程均能够完成自己的任务流程,芯片处理器不会因为过载而频繁出现短暂死机的现象,也证明了在减少中断源的情况下,内存池的数据能够得到很好的保护。实验结果证明了该设计在实际系统中可用。
文中利用STM32处理器搭载ZigBee网络通讯设备,结合嵌入式操作系统RT-Thread RTOS的实时多任务特点,建立了一个多控制方式的网络控制终端。创建一个家庭环境无线网络来控制和监测智能家居环境。该控制终端节点也可以针对不同领域的需求对其架构进行多样性开发,实现更复杂的功能,同样适用于其他较大的场合等。
[1]LIU Mei,FANG Pai-sheng,HU Ying-liang.The intelligent household system based on IOT and ZigBee[J].Journal of Guangdong University of Petrochemical Technology,2013,23(1):35-39.
[2]Xiao Chen,Fulin Yan.Wireless ultrasonic data transmission based on CC2430 chip[J].Test and Measurement,2009(2):339-342.
[3]Sujian Zhao,Naihai Wei,Hailan Li,et al.Design of the Wireless Sensor Nodes Based on CC2430[C]//Wireless Communications,Networking and Mobile Computing,2011 7th International Conference on,2011:1-4.
[4]A.Smeti,W.Chagra,M.Ksouri.Implementation of a Predictive controller on the STM32 board Control[C]//Decision and Information Technologies,2013 International Conference on,2013:250-253.
[5]Sizu Hou,Shengming Wu,Fengying Kong,et al.Design and realization of familiy intelligent interactive teminal based on STM32[C]//Systems and Knowledge Discovery,2012 9th International Conference on,2010:2170-2173.
[6]SUN Kai-ming,SHI Lei1,ZHEN Hai-tao,et al.The design of wireless gateway based on Cortex-M3 processor and CC2430 [J].Techniques of Automation and Applications,2011,30 (8):34-36.
[7]Wang Chao,Gao Feng,Jiang Yang.Design of smart home control system based on ZigBee[J].Journal of Yangtze University:Natural Science Edition,2011,10(8):69-73.
[8]LIU Jian-feng,LIU Ai-hua.The management system for laboratory equipment based on CC2530[J].Instrumentation Technology,2014,6:21-23,39.
[9]WU Yi,WU Tong,LIU Pai.Smart home system based on ZigBee and ARM[C]//Electronic Measurement&Instruments,2013 IEEE 11th International Conference on,2013:754-759.
[10]S.K.Korkua,K.Thinsurat.Design of ZigBee based on WSN for smart demand responsive home energy management system[C]//Communications and Information Technologies,2013 13th International Symposium on,2013:549-554.
[11]王利民,平,孙旭.远程控制的多路数字延迟脉冲发生器[J].现代应用物理,2013(4):330-334.
[12]胥嘉佳,许鸣.基于网关的ZigBee和WiFi互通设计[J].电子科技,2014(6):22-25.
Design of wireless smart home terminal based on STM32
XU Xiao-ling,LIU Mei,LI Xu-zheng
(Guangdong University of Petrochemical Technology,Maoming 525000,China)
ZigBee that is a kind of new short distance wireless communication technology has been used in the filed of modern home by the advantages of low power consumption,low rates and networking.It can realize a flexible,independent,and low cost of smart home system.Depending on this aspect,this paper try to build and achieve an application environment of smart home system by the chip CC2430 and STM32 embedded processor witch using the mirco embedded system.Experiments showed that the terminal design in the actual system is reliable and feasible.
STM32;ZigBee;RT-Thread RTOS;CC2430
TN92
A
1674-6236(2016)03-0176-05
2015-07-04稿件编号:201507042
2014年国家自然科学基金(61473331);广东省高等学校学科与专业建设专项资金科研类项目(2013KJCX0133);广东省高等学校高层次人才项目(粤财教[2013]246号152);2013年茂名市科技计划项目(201311)
徐小玲(1984—),女,福建建瓯人,硕士,讲师。研究方向:无线传感器网络。