收藏 分销(赏)

基于Zigbee的智能开关的设计及其实现.docx

上传人:人****来 文档编号:2507777 上传时间:2024-05-30 格式:DOCX 页数:40 大小:1.42MB
下载 相关 举报
基于Zigbee的智能开关的设计及其实现.docx_第1页
第1页 / 共40页
基于Zigbee的智能开关的设计及其实现.docx_第2页
第2页 / 共40页
基于Zigbee的智能开关的设计及其实现.docx_第3页
第3页 / 共40页
基于Zigbee的智能开关的设计及其实现.docx_第4页
第4页 / 共40页
基于Zigbee的智能开关的设计及其实现.docx_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、基于Zigbee智能开关设计和实现摘 要多年来,智能家居是不停被大家提到热点话题,其能够提升家居安全性和舒适性,同时为用户提供了生活便利。除了其出色用户体验,智能家居还有利于实现居住环境节能环境保护,所以成为未来家居发展方向。本文首先提出了一个基于Zigbee技术智能家居系统,该系统由用户手机、网络服务器、网关和若干功效性子节点组成。在此系统架构下,本文针对功效性子节点中智能开关节点部分,从其硬件电路和软件程序两个角度分析了该类节点实现自动联网、断线自检、无线通讯等功效原理,并设计了一个含有以上功效智能开关节点设备。经过对节点调试,该设备成功实现了用户对智能开关当地、远程控制。该智能开关节点便

2、于安装、使用简单、出现故障后能够完成自检,经过长久测试证实,该节点在整个智能开关系统中能够正常稳定地运行。关键词:智能家居 远程控制 Zigbee CC2530 Design and Implementation of Smart Switch Based on ZigbeeAbstractSmart Home is a hot topic in recent years, which can enhance home security and comfort, while providing convenient life. In addition to its excellent user

3、 experience, smart home also contributes to energy saving and environmental protection of the living environment, thus becoming the future direction of home.This paper presents a technique based on Zigbee smart home system, the system consists of mobile phone users, network servers, gateways, and se

4、veral functional temper nodes. In this system architecture, this paper function temper intelligent switching node section, from hardware and software program analyzes the class two node network automatically, breaking the principle of self-test, wireless communications and other functions, and desig

5、n of the intelligent switching node apparatus having the above functions. By node debugging, the successful implementation of the local device, remote control user intelligent switches.The intelligent switch node is easy to install, simple to use, after a failure to complete the self-test, after a l

6、ong test proved that the node can be normal and stable operation throughout the intelligent switch system.Key Words: Smart Home;Long-distance Control;Zigbee;CC2530目 录1.绪论11.1 智能家居背景和意义11.2 智能家居研究现实状况11.3 智能开关概述22.系统方案设计42.1 课题设计目标42.2 课题设计方案52.3 Zigbee网络概述62.4 论文章节安排63.硬件电路设计83.1 微控制器最小系统设计83.2 触摸检测

7、电路设计113.3 继电器控制电路设计113.4 电源转换电路设计124.软件程序设计144.1 程序设计方案144.2 CC2530程序架构144.2.1 Z-stack协议栈154.2.2 操作系统抽象层154.3 底层程序设计164.3.1 设备组网入网164.3.2 串口配置164.4应用层程序设计184.4.1 通信协议设计184.4.2 远程控制程序设计204.4.3 当地控制程序设计204.4.4 用户查询和通信检验程序设计215.调试和分析225.1 调试方案225.2 底层调试235.3 应用层调试236.总结和展望256.1 总结256.2 展望25参考文件27附录28附录

8、一 系统原理图和PCB28附录二 系统实物图29附录三 系统关键代码30致谢341.绪论1.1 智能家居背景和意义智能家居概念前身最早能够追溯到上世纪80年代美国。建造于1984年“城市大厦”坐落于美国康乃迪克州哈特佛市。此项目对建筑中多种信息进行搜集和整合,发明出了世界上第一座“智能建筑”。该建筑关键功效包含:对大楼空调、电梯、智能照明设备等进行监控;提供语音通信、电子邮件和情报资料等方面信息服务。因为当初网络还未普及,传统智能家居多采取有线技术,布线复杂、造价昂贵、用户体验度很不好,所以在很长一段时间大家并不看好其发展。但伴随互联网技术发展,新一代基于无线通信智能家居利用移动互联网技术、智

9、能终端控制技术,使整个智能家居舒适度提升了上去,智能家居又重新回到了大家视野中。智能家居发明了一个新生活方法,这不仅不会影响用户正常生活,而且能够提升用户生活质量和工作效率。比如,上班之前只要按动遥控器上按键,家里电灯和电器就能全部关上,安全防范系统自动进入警戒状态;黄昏下班,用手机就能够遥控打开客厅里空调和浴室里热水器,回到家中就能够立即享受一个舒适热水澡。另外,智能家居还能衍生出很多新用途用于满足不一样人群需求。现在广泛利用于智能家居系统子节点设备包含智能开关、智能插座、智能窗帘、智能红外转发器等,所以使用前景十分宽广。1.2 智能家居研究现实状况1998年5月,新加坡举行了“98亚洲家庭

10、电器和电子消费品国际展览会”。此次展览会一大亮点,是经过在场内模拟“未来之家”,推出了新加坡模式家庭智能化系统。进入二十一世纪,中国很多传统家电厂商和新兴互联网厂商也主动在智能家居领域施展拳脚,期望分得一杯羹。中国海尔集团,已经在青岛东城建立了智能家居U-home系统;电商巨头京东,在6月底公布了智能家居发展战略;和此同时,小米企业和华润置业等地产商联合,也在对智能家居领域进行探索。现在,小米企业为智能家居生产商中领军企业,该企业最近成功将两款智能家居产品推向市场,分别为智能插座和智能插线板,这两款产品均采取了现在广泛使用WIFI技术,用户能够经过手机远程控制插座或插线板。插线板和插座全部配有

11、220V插口和USB插口,用户只关键点击手机上图标即可打开或关闭对应插口。除了利用WIFI通信外,应用于智能家居通信方案还有红外通信、Zigbee通信等。其中Zigbee技术能够在家庭中建立一个Zigbee局域网,并对覆盖于该局域网下若干智能家居子节点进行互联。Zigbee技术和WIFI技术相比,即使通信距离短、通信速率没有互联网通信快,但因为其应用于室内控制,对通信距离和通信速率要求较低,基础能满足家庭通信需要,而且其优点被深入放大:设备成本低,使用期间无额外通信费用产生;功耗低,一节干电池能够维持一个Zigbee模块正常运行六个月到十二个月,克服了大多数通信设备对不间断电源依靠性。1.3

12、智能开关概述和上述提及智能插座、智能插线板相比,智能开关在智能家居中使用得愈加普遍。家庭中控制照明设备开关从最初拉线开关、拇指开关,发展到现在常见按键开关,在安全性、可靠性、便利性上全部得到了更大提升。现在市场上智能开关除了有触摸开关、射频控制开关,还有免布线开关、单火线给电开关等,这类智能设备正向易安装和人性化方面继续发展。1.射频控制开关射频控制开关利用射频通信原理,可经过射频遥控器对家中开关进行单独控制或群控制,起到了一定便利性。该设备缺点在于射频信号通信距离较短,当有障碍物遮挡时,遥控灵敏度会降低。2.触摸开关触摸开关利用触摸传感器控制开关动作,在安全性和美观性上全部胜于按键开关。首先

13、,在外观上其略去了传统机械开关结构,开关面板仅包含一个触摸感应区域,造型更为一体。其次,因为没有机械开关间隙,该类开关能安全应用于浴室、厨房等环境。该类开关缺点在于触摸电路供电复杂,须对家庭原先电气线路进行改造。3.免布线开关免布线开关包含一个无需外部供电移动开关和一个220V供电控制器,当用户操作开关面板时,该移动开关能将环境中机械能、光能转化为电能,然后利用无线通信技术将触摸信号发送给控制器,最终控制器会对对应照明设备进行通电断电操作。该类开关优势在于降低了装修成本,免去家庭装修前期部分开关布线工程;在安置开关时,用户能够个性化选择开关位置,无需对家庭中照明线路进行改造;控制器能够配置成单

14、个开关控制多路照明设备,或多路开关控制同一照明设备,在卧室床头灯开关应用上使用广泛。和射频控制开关相比,该类开关遥控距离更远,当有障碍物遮挡时信号稳定。4.单火线给电开关单火线给电开关是替换传统面板开关成熟处理方案。传统开关在进行线路设计时,往往只引出了火线,然后再将各用电设备连接至零线上,所以家庭中原先开关盒引线仅包含了火线输入口和火线输出口。该单火线给电开关利用火线即可完成取电工作,优势在于无需对家庭线路进行改造、无需控制器即可控制家中照明设备,安装过程愈加便利。在处理供电问题后,该设备还可加入远程控制功效,深入提升开关智能性。 2.系统方案设计智能家居系统关键是建立用户和节点间双向通信关

15、系。本文提出智能家居通信策略和小米插座所使用不一样,在该系统方案中,负担通信任务设备包含手机、服务器、网关和若干节点设备,各设备之间关联图2-1所表示。手机和服务器、服务器和网关间通信在互联网中进行,网关和若干节点通信在Zigbee网络中进行,在该通信网络下,用户能够经过手机进行远程控制或在家中进行当地控制。图2-1 智能家居系统框图2.1 课题设计目标本文研究关键内容选择自智能家居系统中一个关键单元智能开关节点。该节点为了满足用户日常需求,不仅在功效上需要含有当地控制和远程控制功效,在使用过程中还需要考虑人性化原因。总结上述需求,该智能开关节点设计目标包含:1. 对于当地控制,用户能够经过实

16、体开关在家中对电气设备进行控制,此时手机上可同时接收到开关状态更新消息。2. 对于远程控制,用户能够经过手机软件对家中电气设备进行控制,同时能够监测家中电气设备状态。3. 为方便用户安装使用,该节点在首次开启时,网关能和节点自动配对,断电重启后能自动重连。4. 为确保通信质量,系统能自动检测网关和开关设备间连接状态,并能上报连接失败消息。5. 为了增强该智能开关设备兼容性,在对电路元器件进行选型时应考虑提升其带负载能力。2.2 课题设计方案对于当地控制功效处理方案,直接对开关节点设备进行编程即可实现。对于远程控制功效处理方案,则需要上述系统框图中提及各设备相互配合才能实现。首先,用户使用手机连

17、接互联网,在手机软件中输入操作指令会先发送至服务器,再由服务器发送至特定家庭网关中,最终和家庭中各节点进行Zigbee通信。其中网关关键在互联网通信和Zigbee通信之间起转发作用,在家庭网关接收到用户发来指令后,网关会和家庭中Zigbee设备进行通信并实现对应用户指令,如智能开启家中电气设备。其它设计目标可经过编写代码处理。在软件程序设计方面,该智能开关节点使用TI企业推出Z-stack协议栈进行编程。该节点全部功效实现,是依靠通信中数据包正确收发和单片机对数据包正确分析。开关控制信号和开关状态全部包含在对应数据包中,当接收到完整数据后,程序会依据通信协议分析该数据包含义,最终做出对应处理。

18、在该数据包中,一个字节数据就可控制8个照明设备,且发送数据包长度无限制,所以该智能开关节点含有灵活可扩展性。为了满足上述设计方案实现,在硬件电路设计方面,该智能开关节点包含一个电源转换电路模块,用于各个元器件供电;一个主控制器最小单元CC2530,用于建立Zigbee网络和实施对应程序操作;另外还包含三路触摸开关,分别控制三路家用电气设备,其硬件框图图2-2所表示。图2-2 智能开关节点硬件电路框图在触摸检测电路中,触摸开关采取电容式开关设计,并使用专门触摸开关检测芯片检测触摸开关状态;智能开关实施机构是继电器,其开关触点端和电气设备串联接入220V市电中;继电器电磁线圈端和一个三极管串联接入

19、5V直流电,其基极和CC2530单片机控制引脚相连。为了取得愈加好用户体验,在进行开关操作时触摸面板会有彩色灯光提醒:当进行开开启作时,触摸开关会由绿色变成红色;当进行断开动作时,触摸开关由红色变为绿色。在满足基础功效实现基础上,在实际使用中还要求智能开关系统设计简练,功耗小。该课题选择CC2530芯片,自带Zigbee通信功效且体积小,不管在技术上还是功耗上,全部能够满足智能家居配置要求,所以成为智能家居控制单元首选。除了对节点基础功效进行软件设计,在进行程序编写前还需进行其它配置,如选择网络拓扑结构、Zigbee通信方法等。在Zigbee网络拓扑结构选择上,该课题为了更方便地添加其它开关设

20、备,最终选择网型拓扑结构。考虑到家庭中有众多待检测和待控制设备,该课题通信方法既包含点对点通信,又包含广播通信。当网关对全部节点设备发送操作指令时,采取广播通信方法;当节点向网关上报设备信息时,采取点播通信方法。2.3 Zigbee网络概述智能家居系统本质是一个多节点网络,对于节点设备控制关键经过Zigbee模块之间通信实现。依据不一样Zigbee设备在网络中所饰演角色划分,包含协调器、路由器和设备终端。(1)协调器。一个Zigbee网络需要协调器来建立,在系统开启初始,协调器关键负责建立和配置网络。在网络建立后,协调器和路由器作用相同。(2)路由器。路由器是信息传输枢纽,其既能接收周围节点上

21、报信息,也能发送控制信息控制周围节点。(3)设备终端。设备终端作为整个网络末端,不能再延伸出节点,对整个网络建立和维护没有贡献,且本身只做接收信号功效,无法上报信息。终端不需要连续供电,在系统设计时可在需要它时和它通信,在其它时间终端能够处于休眠状态,能很好地延长使用寿命。在该智能家居系统中,网关用于建立Zigbee网络,其作为协调器使用。因为该智能开关节点在方案设计中已指出需要双向通信功效,所以为需要将开关节点作为路由器使用,依据以上分析,该系统不包含到设备终端。2.4 论文章节安排1. 绪论。关键介绍了智能家居背景、研究现实状况,并对现在智能开关中衍生出基础种类进行简明概述。2. 系统方案

22、设计。关键介绍了智能开关节点设计目标和设计方案,并简明介绍了Zigbee网络基础组成。3. 硬件电路设计。关键介绍了CC2530最小系统和智能开关电路设计,并对芯片选择和外设电路进行了分析。4. 软件程序设计。首先简明梳理了智能开关节点软件设计思绪,以后结合实际功效关键叙述了应用层软件设计。5. 调试和分析。首先简明分析了部分功效模块具体调试过程,以后关键叙述开关节点运行调试情况,并给出最终调试图片。6. 总结和展望。关键是对该课题在研究过程中碰到问题进行总结,并提出该作品不足之处和其它需要改善优化方面。3.硬件电路设计由智能开关节点硬件电路框图2-2可知,该节点硬件电路设计关键分为四个部分:

23、微控制器最小系统、触摸检测电路、继电器控制电路和负载部分,除此以外还有为各电路供电电源转换电路。智能开关节点硬件设计为了满足易安装、结构简单要求,应尽可能缩小设备体积。在实际使用中,该开关节点用于控制负载上火线通断,所以仅需在节点负载端引出对应端子和负载相连,本章关键介绍其它四部分电路。3.1 微控制器最小系统设计现在市场上主营三种Zigbee芯片,分别是:德州仪器CC2530 、飞思卡尔MC1321X系列和意法企业EM250。CC2530采取标准8051处理器,能够和2.4GHZZigbee无线收发电路配合工作。现在德州仪器提供Z-stack协议栈,且已经开放无偿下载,而其它几家企业情况以下

24、:飞思卡尔 Zigbee开发套件3个月自动失效,购置正版需要1200美元;EMBERR ZIGBEE 软件报价为10000美元。 另外CC2530是包含闪存存放器和Zigbee射频收发模块集成芯片,是真正单芯片处理方案。飞思卡尔芯片采取两个硅片和SIP技术共同包装,在大量生产情况下,肯定不及单芯片方案。总而言之,CC2530不管从性能上还是成本上全部含有极大优势,所以本课题最终选择德州仪器CC2530芯片作为主控芯片。该芯片包含128KB系统内可编程闪存,8KBRAM,含有在多种供电方法下数据保持能力。在外设电路上,该芯片含有5路DMA通道和21 个通用I/O 引脚CC2530芯片最小系统电路

25、示意图图3-1所表示,其外围电路包含时钟电路、复位电路和射频收发电路。图3-1 CC2530最小系统电路示意图1. 时钟电路在微处理器单元晶振接口两端跨接一个高速石英晶体振荡器,再并联电容和电阻组成谐振电路。因为石英晶体起振较慢,需要将晶体尽可能靠近OSC_IN和OSC_OUT两个引脚。32kHz晶振能为系统提供稳定时钟信号。具体电路见图3-2。图3-2 时钟电路2. 复位电路CC2530上20号RESET引脚为是复位引脚,当该引脚为低电平时单片机复位,该管脚接一个10K上拉电阻,以保持高电平状态。并联接入一个0.01uF电容能够起到滤波作用。具体电路见图3-3。图3-3 复位电路3. 射频收

26、发电路射频收发电路用于收发数据。在对天线设计中,即使PCB板印制天线能够降低电路板空间,但在设计过程中因为受板材介电常数,参考地大小,层叠间距等等原因影响,该课题最终选择外接天线。 为了增加信号接收发送可靠性,该课题选择CC2591芯片作为前端功率放大电路。依据德州仪器企业提供2.4GHz射频电路参考原理图,在天线设计上采取分离电容电感元件进行射频收发信号匹配电路,CC2530RF_P和RF_N管脚是一对差分输入输出信号。为了达成最好发送接收效果,外围电路参数应严格根据德州仪器企业官方提供经典参数值。具体电路见图3-4。图3-4 射频收发电路4. CCDebugger程序下载接口CC2530程

27、序下载需要外部仿真下载器CCDebugger,单片机和仿真器接线图3-5所表示。表3-1给出了下载器引脚名称:表3-1 CCDebugger接线说明1.GND地线6.SCLK下载时钟线P1.52.VDD设备电源线7.RESET复位线3.DC调试时钟线 P2.28MOSI数据输出线P1.64.DD调试数据线 P2.19.3.3V仿真器输出电压5.CSN下载片选 P1.410.MISO数据输入线P1.7CCDebugger提供两组接口,一组是SPI通信接口,最高传输速率能够达成50Mbps,用于分析数据和抓包使用。另外还提供程序下载接口,需要使用GND、VDD、RESET、DC和DD四个引脚。当仿

28、真器上指示灯由红变绿,表示仿真器检测到单片机,能够开始下载。图3-5 CCDebugger下载接口3.2 触摸检测电路设计该课题设计智能开关节点包含三路触摸开关。触摸开关设计起源于电容工作原理,触摸开关实际是一块金属电极。因为人是导体,当人手靠近金属电极时,在手指和金属电极之间会产生微弱电场,此时金属电极和人手便成为电容两极,用户在触摸过程中会改变原来电容容值。BS813A-1是触摸开关检测芯片,该芯片能感应到触摸区域电容改变从而识别用户是否操作了开关。C12、C13、C14三者功效相同,用于调整各路开关灵敏度,当该电容容值增大时,灵敏度变低,该芯片使用手册推荐选择容值范围为0-25pF。由电

29、路原理图3-6所表示,触摸信号检测引脚KEYX和输出响应信号OUTX依次对应,下面以触摸开关K1为例叙述硬件电路运行机制。当检测到用户触摸K1时,OUT1保持在高电平,松开后变为低电平,电平改变会引发单片机实施响应操作。对触摸开关K2或K3操作和此相同。触摸区域上方有一块塑料导光板,其将电极和人手隔离,6个发光二极管两两一组,由单片机控制。布线时,将发光二极管贴近导光板,能使面板展现不一样颜色便于用户分辨开关状态。下面以触摸开关K1为例叙述硬件电路运行机制,假设此时开关控制用电设备处于断电状态。当触摸开关操作一次,触摸开关背光灯由绿色变为红色,设备开启;当再进行一次操作,触摸开关背光灯由红色变

30、为绿色,设备断电。对触摸开关K2或K3操作时有相同现象,具体电路图3-7所表示。 图3-6 触摸检测电路 图3-7 灯光指示电路3.3 继电器控制电路设计继电器控制电路用于控制220V交流回路通断,是触摸检测电路实施机构,实施通断任务器件是继电器。HRS3FNH-S-DC5V继电器触点最大可承受250V交流电,额定电流可达10A,满足设计目标。线圈吸合触点所需电压为5V,所以增加S8050三极管作为开关管使用。并联在线圈两端二极管能为电感线圈提供泄放回路从而保护三极管。该系统中共包含三个继电器控制电路,分别用于控制三路负载。单片机输出引脚P1.6、P1.7、P2.0用于输出高低电平控制三极管,

31、其电平改变分别和K1、K2、K3相关。为预防开关在动作时产生电弧,该电路在继电器触点端并联了灭弧装置,该装置等效为一个RC串联电路。为预防电网电压波动损坏负载,须在负载端并联气体放电管、压敏电阻和瞬态抑制二极管,保护电压选择市电1.3至1.4倍。这三类原件均为过压保护原件,当电压过大时,其内阻会急剧减小造成短路效应,从而保护家庭用电设备。下面以触摸开关K1为例分析其电路原理,电路图3-8,其中Load表示负载。当开关K1按下时,P1.6置为高电平,三极管导通,此时触点间吸合;当再次按下K1时,P1.6为低电平,三极管关断,磁场消失使触点弹回,此时电路开路。因为线圈储能作用,线圈中电流使线圈和二

32、极管形成回路,该残余电流在回路阻抗中被消耗。对触摸开关K2或K3操作时,分析方法一致。图3-8 继电器控制电路3.4 电源转换电路设计电源转换电路是为单片机最小系统、触摸检测电路和继电器控制电路供电。依据实际需求,该智能开关节点需要以下两种电压:1. 5V直流电压:为触摸检测电路、继电器控制电路提供5V高电平。2. 3.3V直流电压:为CC2530最小系统和射频功率放大电路CC2591供电。由220V交流电转为5V直流电选择集成AC-DC模块电源HZ025S05。该方案无需外围电路且含有过温、过流、短路保护等功效,安全可靠。电路图图3-9所表示。为了更安全地确保各用电设备在极端情况下不会损坏,

33、在整流模块输入端并联了突波吸收器07D471K,突波吸收器又称为压敏电阻,当电压在正常范围内时,压敏电阻两端电阻极大,能达成十几兆欧姆。当有大尖峰电压出现时,电阻阻值会急剧变小,产生类似“短路”效果,从而起到吸收过大尖峰电压作用。考虑到电阻标称值和电阻实际值之间误差(1.1到1.2倍)、和交流电峰值和有效值之间偏差(1.4倍),最终选择压敏电阻吸收电压是额定电压2到2.2倍。经整流降压模块得到5V直流电压再经过LM1117转为3.3V直流电压。LM1117是常见低电压线性稳压器,稳压效果好且价格低廉,电路图图3-10所表示。图3-9 交流转直流降压模块 图3-10 降压线性稳压电路4.软件程序

34、设计系统方案设计章节已对课题设计目标中软件部分作了简明概括,本章将以程序分析为主,首先提出具体节点程序设计方案,再从组网入网开始,逐步梳理实现节点全部功效底层、应用层程序实施机制。4.1 程序设计方案在系统方案设计中已提及,该节点程序设计采取双向通信方案:首先,网关需要将数据转发至智能开关节点,使开关动作;其次,节点需要反馈目前开关状态,将信息立即上报至网关。经过梳理节点需要完成各项任务,图4-1描述了节点端程序运行步骤:在协议栈框架下,程序不停轮循检测图中三个判定条件。当触摸开关动作时,代表实施当地控制,此时无需经过通信步骤即可直接控制继电器动作;当接收到网关发来Zigbee数据包后,程序会

35、对数据包进行分析,判定用户具体实施何种操作,包含远程控制、检测开关状态和检测连接状态;当定时器中止到来,表示需要进行心跳数据包发送,该数据包用于检测通信是否正常。图4-1 程序设计步骤图4.2 CC2530程序架构为了提升代码实施效率,同时使程序更有条理,本课题使用Z-stack协议栈对智能开关节点进行软件开发,并引入了操作系统抽象层概念。4.2.1 Z-stack协议栈Z-stack协议栈是德州仪器企业提供一套配合CC2530芯片使用程序方案,德州仪器企业为了用户更方便地使用Zigbee,为用户预留了应用程序层,使用户能免去配置底层协议忧虑。图4-2 Z-stack协议层图4-2是协议栈协议

36、层框架。Z-stack协议栈将IEEE802.15.4协议和Zigbee联盟协议整合在一起,各协议层关键包含物理层、媒体访问控制层、网络层和应用层。德州仪器企业提供了模板工程代码,能够从官方网站无偿下载得到。打开工程后,各层协议全部在对应子文件夹中,在进行程序设计前,首先需要明确以下三个协议层:1. PHY层和MAC层:即物理层和媒体访问控制层。该协议层由IEEE 802.15.4标准定义。2. NWK层:用于组建Zigbee网络,由Zigbee联盟标准定义,用于提供建立网络,维护网络接口函数,支持四种网络拓扑方法。3. APL层:是协议栈最顶层,该层用于存放编程人员代码,实现用户需要功效。4

37、.2.2 操作系统抽象层OSAL是Operating System Abstract Layer开头字母缩写, OSAL模拟操作系统实施程序原理,将所实施任务依据优先级分级,单片机不停检测是否有任务需要实施,然后依据优先级再进行对应程序处理,这种实施程序方法称为轮询实施方法。和循环实施方法相比,轮循实施时考虑了任务之间优先级,这使得代码实施效率更高,运行更稳定。在OSAL下,整个程序实施步骤图4-3所表示。图4-3 操作系统抽象层运行步骤图4.3 底层程序设计节点底层程序设计关键为了处理智能开关节点在首次开启时自动配对问题,和利用串口进行程序调试。正确进行组网入网和串口配置是处理该问题关键。4

38、.3.1 设备组网入网系统运行时,网关会提议建立Zigbee网络步骤。第一步是确定一个信号稳定不受干扰信道,第二步是配置网络参数,包含网络号PANID,和16位网络地址等。这些配置在初始化过程中就已经完成,用户不需要做过多配置。在含有多个Zigbee网络环境下,网关要配置一个不一样于现存Zigbee网络网络号,而节点设备要正确加入该网络号所对应Zigbee网络中。为了实现这一目标,需要将程序代码中-DZDAPP_CONFIG_PAN_ID变量赋为0xFFFF,此时网关会预先扫描周围Zigbee网络网络号,然后分配一个不一样于周围网络号PANID,最终再使其它节点设备全部加入到该网络号所建立Zi

39、gbee网络中。按上述方法修改代码后,当设备进行首次开启配对,应先将各节点靠近网关,当确定完成网络号,且存至flash后,表示配对成功。当系统断电重启后,全部设备仍能加入之前设定好Zigbee网络中。4.3.2 串口配置串口是进行程序调试关键通道,在进行程序编写时,常常将串口作为单节点调试时调试工具。串口驱动程序包含三个步骤:初始化串口、登记任务号、调用串口收发函数。对于初始化串口和登记任务号,协议栈中有相关初始化函数供开发人员调用和配置,串口配置信息存放在结构体变量uartConfig中:typedef struct uint8 baudRate; bool flowControl; hal

40、UARTBufControl_t rx; halUARTBufControl_t tx;. . . . . .halUARTCfg_t;uartConfig.baudRate用于配置串口波特率,在该程序中选择波特率为115200 bit/s。uartConfig.flowControl用于配置流控制,在这里要关流控制。以后须对串口管脚RX/TX进行分配。最终调用MT_UartRegisterTaskID(task_id) 函数对串口事件登记任务号。MT_UartProcessZToolData( uint8 port, uint8 event )函数用于接收串口端发来数据。入口参数port代表

41、串口号,event表示调用该函数事件。串口数据接收步骤图图4-4。图4-4 串口数据接收步骤图首先程序不停检测串口接收数据缓冲区是否有数据,当有数据时,程序将接收到数据存放在定义好一个数组中,经过for语句按字节赋值给该数组单元,并统计接收字长。当接收到数据时,将定义标志位挂起,表示接收到了发来数据。当flag标志位置位后,程序依据统计字长分配内存空间,将接收到数据赋值给分配好内存空间中,该内存空间首地址存放在一个结构体指针变量pMsg中方便调用。最终登记任务,将串口接收到数据时间发往OSAL等候处,并清空指向pMsg数据,等候下次继续接收数据。对于从串口发送数据,须调用HalUARTWrit

42、e(uint8 port, uint8 *buf, uint16 len)函数。该函数入口参数分别为串口号、数据包内容和数据包长度。4.4应用层程序设计在本课题系统设计方案中已指出,应用层程序设计关键包含当地控制、远程控制、用户查询和断线自检。这些基础功效实现由协议栈中分配几类基础事件触发,事件间用switch语句分隔,关键有:1. AF_INCOMING_MSG_CMD:表示射频收发端接收到数据。该事件用于实施网关和节点间远程通信2. KEY_ CHANGE:表示芯片I/O口作为按键使用时,键值发生改变。该事件用于实施当地触摸开关控制程序。3. CMD_SERIAL_MSG:该事件表示芯片串

43、口收发端接收到数据。以上三类事件组成了应用层程序基础框架,各功效程序代码均在该框架下编写。因为节点需要时刻保持和网关通信,程序中关键包含了网关和节点间通信协议使用,该通信协议由程序设计者修订。本节首先将在该框架下介绍智能开关节点通信协议,并在该协议基础上介绍应用层程序实施步骤。4.4.1 通信协议设计通信协议是实现智能开关基础功效基础,所以首先需要计划好Zigbee数据包格式。Zigbee在通信过程中关键包含上行消息数据包、下行消息数据包和心跳数据包。1. 上行数据包上行数据包用于上报目前开关状态或开关子节点物理地址。数据包是长度为7字节十六进制数组,数据包格式以下表所表示。表4-1 上行数据

44、包指令表帧数1234567帧结构帧头数据长度设备短地址设备短地址命令字可变数据校验字数据0xFB0x010xXX0xXX0xXX0xXX0xXX1) 帧头为0xFB,代表该数据包为上行消息,该上行消息要上传至网关。2) 数据长度为可变数据长度,以字节计算,上行数据包可变数据为1字节。3) 设备短地址用于网关识别现在哪一个节点设备正在工作。设备短地址由网关分配,在组网时会对每一个节点分配一个短地址。该地址长度为2字节,从0x00起向后排,高八位在前,低八位在后。4) 命令字表示上行数据包含义。在实现当地控制任务时,该位为0x01,其它命令字含义见表4-2。表4-2 上行数据包命令字指令表上行数据

45、包命令字含义0x01节点上报开关状态,且此时是由触摸开关提议0x02节点上报该设备物理地址0x03节点上报开关状态,且此时是由用户远程提议。5) 可变数据用于表示开关信息,当为0x01,表示控制开关K1;0x02时,表示控制开关K2;当为0x03时,表示控制开关K3。6) 校验字用于检测数据包正确性。从最高位起,较高位和较低位进行异或运算,循环运算至最低位。2. 下行数据包下行数据包直接由网关发送至节点,数据包是长度为7字节十六进制数组,数据包指令表图所表示:表4-3 下行数据包指令表帧数1234567帧结构帧头数据长度目标地址目标地址命令字可变数据校验字数据0xFE0x010xFF0xFF0

46、xXX0xXX0xXX1) 帧头为0xFE,代表该数据包为下行消息。2) 目标地址为2个字节,当为0xFFFF时,表示通信方法为广播方法。3) 命令字表示该下行数据包含义。在实现远程控制任务时,该位为0x03。其它命令字数据含义见下表:表4-4 下行数据包命令字指令表下行数据包命令字含义0x01命令节点发送目前开关状态。0x02命令节点发送其物理地址。0x03命令节点设备实施开关动作可变数据和校验字数据规则和上行数据包一致,以下不再赘述。以控制开关K1为例,当可变数据为0x01时,表示控制开关K1指令。3. 心跳数据包心跳数据包用于检测子节点发送数据是否能由网关正确接收到。因为数据包内容无实际含义,为了方便使用,要求心跳数据包长度为四个字节,节点设备每隔5秒定时发送。数据包指令表如表4-5所表示。表4-5 心跳数据包指令表帧数1234数据0xFA0x000x010x024.4.2 远程控制程序设计远程控制程序实现了网关远程发送指令,命令节点实施对应操作功效。节点设备接收到数据包后,会依据下行数据命令字判定是否需要实施开关操作。若为开关操作,程序须深入分析可变数据,确定具体开关状态。远程操作开关代码须调用Operate(uint8 Operate

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服