为办理无线传感网运用开拓难度大、周期长等问题,通过深入剖析其产生缘故原由和无线传感网运用开拓技能的现状,按照软件工程思想和构件设计的基本理论,提出了四层架构的开拓平台模型。据此研制了一种架构清晰、对外接口丰富、硬软件构件完备的基于KW01-ZigBee的无线传感网运用开拓平台,从开拓板及硬软件构件设计、工程框架设计等方面详细论述了全体研制工程。利用开拓平台开拓的实例工程及运行测试证明了研制的平台精确实用且易于利用,可以降落开拓技能难度,提高开拓效率。
中文引用格式:蔡伯峰,蔡伟达,王宜怀. KW01-ZigBee无线传感网运用开拓平台的研制[J].电子技能运用,2017,43(3):55-58.

英文引用格式:Cai Bofeng,Cai Weida,Wang Yihuai. Design of KW01-ZigBee wireless sensor network application development platform[J].Application of Electronic Technique,2017,43(3):55-58.

❖
0 弁言
KW01是飞思卡尔公司2014正式推出的业内首款Sub-GHz芯片,是由基于ARM Cortex-M0+内核的微掌握器KL26与SX1231-RF射频模块组成[1]。
无线传感网(Wireless Sensor Network,WSN)已渗入到医疗、家居、交通等各种领域,但由于其运用开拓涉及到网络架构与方案、节点、RF通信电路、硬软件构件的设计,以及通信协议、操作系统融入、程序编写、可重用和移植性等知识和技能,以是门槛较高,导致WSN运用开拓难度大、周期长、本钱高,产品可掩护性及移植性差。为办理这一现状,茅正冲[2]等研究可配置嵌入式运用程序设计模式,范宁宁[3]等研究测控系统框架,曹敬瑜[4]等研究高效软件构件化框架。但这些研究是通过设计构件来开拓运用程序,并没有设计出具有完全架构的开拓平台。为此本文研制了一款基于KW01-ZigBee 的层次架构清晰、接口丰富、驱动构件完备的相对通用实用易用的WSN运用开拓平台,极大方便了WSN运用开拓,将会降落开拓难度、缩短开拓周期,并能增强产品的可掩护性和可移植性。
1 开拓平台建模
WSN一样平常由多少个终端节点、带路由功能的终端节点,以及多个网枢纽关头点(本文称为PC节点)组成。本文研制的平台用于WSN运用工程各节点的开拓,采取如图1所示的四层架构平台模型。
硬件平台层是由KW01-ZigBee开拓板、写入器和用于连接网枢纽关头点与PC的USB-TTL串口线组成的开拓套件。为减少设计本钱并担保稳定可靠的通信,WSN中所有节点的开拓板均相同。
MCU方工程框架用于开拓运用程序,由硬件抽象层、软件构件层和运用层组成。硬件抽象层文件紧张用于芯片上电复位和链接。软件构件层包括底层驱动构件、运用构件和高层构件;运用层的用户代码包括用户任务、主程序和中断做事例程(Interrupt Service Routine,ISR)。为便于开拓功能繁芜的WSN运用工程,在框架中融入MQXLite实时操作系统(Real Time Operating System,RTOS),用于管理、调度、处理多任务[5,6]。
2 开拓板及硬件构件设计
开拓板应架构清晰、利用和掩护方便,为此本文设计了KW01-ZigBee开拓板,硬件构造框图如图2所示。KW01 MCU由KL26和RF收发器组成,拥有16 KB SRAM、128 KB Flash和UART、SPI、IIC、TSI、ADC、定时器等模块,具有无线电性能高,传输速率快、间隔远,处理能力强,超低功耗等特点[7]。
构件是提高系统可重用性、可移植性的根本和保障,用于组装系统可提高开拓效率。设计开拓板时将各电路模块设计成构件并供应功能明确的接口,可极大方便用户利用。如硬件最小系统构件由程序运行所需最低规模外围电路(如电源及滤波、复位、晶振等电路)组成;电源电路构件用于将5 V输入转换为3.3 V供芯片利用;RF前端电路构件用于连接射频引脚RFIO与天线。
为便于实验、科研及运用开拓,将MCU除硬件最小系统引脚外的其他引脚封装成各种构件,如UART接口、SWD写入器接口、电池接口、对外接口等构件。图3中标识的是引脚默认功能,可直策应用,而其他功能的利用,可按照NXP官方网站给出的KW01技能参考手册[1]上的功能复用表进行引脚功能复用。
工程开拓时,将外设模块连接到相应接口构件并根据须要复用引脚功能,可极大提高开拓效率。
3 底层驱动构件设计
KW01包括RF、GPIO、ADC等硬件模块,编程时通过驱动程序操为难刁难应的硬件模块,但驱动程序只有封装成底层驱动构件才便于重用移植,也才能方便用户直策应用,从而降落运用开拓难度。
限于篇幅,本文仅先容RF驱动构件设计过程。按照构件设计思想,将RF模块的初始化、吸收数据、发送数据、检测能量等基本操作封装成独立的功能函数即可,但从方便实际运用出发还应封装带参数初始化、CSMA/CA机制发送数据、设置通道号等函数。由于它们都涉及到对RF硬件底层寄存器操作,是底层驱动函数,因此将其按构件设计原则封装,并集中存放在rf.c源文件中,同时配以rf.h存放干系宏定义、底层寄存器映射和驱动函数原型声明。在构件设计中,重点要设计好底层驱动函数原型并给出详细注释,方便用户利用。例如RF吸收数据函数的功能是从FIFO行列步队中吸收一帧数据,并返回吸收成功与否标志,因此需供应数据缓冲区地址以存放吸收的数据,以及存放吸收数据长度的指针单元和硬件过滤地址(即当前WSN运用工程中节点的硬件地址,用于过滤掉其他工程发送的数据包,同一工程各节点硬件地址相同)。这样函数原型设计为:
//功能概要:RF吸收数据帧
//参数解释:plen:吸收数据长度指针,
//pbuf:吸收数据缓冲区首地址, hw_adr:硬件过滤地址
//函数返回:=0,吸收正常,=其他值,吸收非常
uint_8 RFReceiveFrame(uint_8 pbuf, uint_8 plen,uint_8 hw_adr);
4 MCU方工程框架设计
MCU方工程框架用于为节点程序开拓供应工程模板,以降落开拓难度,提高开拓效率。
4.1 工程框架设计的基本原则
遵照软件工程可复用、可移植、易理解、易掩护的基本思想,为缩短产品开拓周期及提高开拓效率打好根本[8];以构件设计为根本,通过各种构件的设计与运用,提高框架的可复用性、可移植性,降落运用开拓难度[9];目录构造合理分类,按照文件内容归纳整理、分类组织,提高软件产品的可掩护性。
4.2 工程框架的组织构造
根据软件工程对工程框架必须知足构造清晰、文件安排合理、具有可移植和易修正特点的哀求,以及以上设计原则和图1四层架构平台模型的设计思想,构建了如表1所示的树形构造统一MQXLite工程框架(All-in-one MQXLite FrameWork,AMQXLFW)。
4.3 AMQXLFW设计剖析
除开拓环境特有的文件夹外,工程框架包含的文件夹均相同,表1是基于Kinetis开拓环境(Kinetis Development Studio,KDS)包含的12个文件夹,个数和名称固定。存放文件原则如下:
01_Doc存放工程文档,随工程变革而更新。02_CPU和03_MCU分别存放内核、芯片干系的上电复位启动文件,因内核厂家只卖力设计掩护内核及源代码而不生产芯片,故分开存放便于移植更新。04_Linker_File存放供应程序代码、中断向量表、常变量的存放地址的链接脚本,随开拓环境修正。充足完备的构件可有效降落工程开拓难度[10],05_Driver、06_App_Component、07_Soft_Component分类存放底层驱动、运用和高层构件便于构件融入、更新、移植,运用和高层构件的名称和内容封装后不许可变动。08_Source和09_MQXLite分别是无操作系统和有操作系统编程和调试的紧张目录,08_Source中各文件名固定、内容随工程而修正,includes.h包含所有构件头文件(有操作系统下利用01_app_include.h),isr.c包含RF吸收中断isr_gpio_cd等。09_MQXLite包含内容见表2,isr.c仍旧有效,由于有/无操作系统时中断处理流程同等,但main.c用来初始化并启动MQXLite,app是按照MQXLite任务设计哀求增加的目录,包含3个固定文件和多少用户任务文件,别的文件夹文件从MQX或KDS安装目录提取,对文中开拓板不必修正。
4.4 利用框架开拓的流程及优胜性
有了工程框架,只要遵照图4所示流程就能方便快速地开拓MCU办法式。不该用框架时,内核和芯片文件可从厂商得到,链接文件可由环境天生,但工程中别的文件都需自己编写,还需移植操作系统,开拓难度大、效率低、周期长;利用框架时,只需修正或添加少量文件及代码,就可完成开拓任务,不同运用间移植也很随意马虎。
5 开拓平台的运用实例
5.1 运用实例的基本功能
运用实例工程的硬件架构包括终端节点、PC节点和PC,PC节点与PC串口通信,终端节点与PC节点均采取KW01-ZigBee开拓板,通过RF通信。实例的基本功能是:PC端下发采集芯片温度命令数据包,经串口传给PC节点,再经RF转发给终端节点,收到后解帧,再通过KW01自带温度传感器采集芯片温度并组帧,经RF发给PC节点送PC显示。
5.2 MCU办法式开拓
根据终端节点要实现的功能,开拓其MCU办法式只需设计1个ISR和3个任务:(1)RF吸收中断:吸收来自PC节点数据包,并启动RF吸收任务,数据帧格式可自行定义。(2)RF吸收任务:解析吸收的数据包,数据命令启动温度采集任务,该任务文件已包含在框架中,只需根据任务文件中解释修正即可。(3)芯片温度采集任务:通过AD通道采集芯片温度并组帧,再启动RF发送任务。(4)RF发送任务:将包含芯片温度的数据包通过RF发送给PC节点,由PC节点传给PC端。该任务文件已包含在框架中。
然后,在app中添加task_temp_ad.c,其采集温度与组帧的代码如下:
rf_sendBuf[0]=(uint_8)’T’;//帧头
rf_sendBuf[1]=57;//有效帧长
rf_sendBuf[2]=(uint_8)hd_adr;//硬件过滤地址
//将下行帧的内容复制到上行帧中
for(i<=3;i<=58;i++) rf_sendBuf[i]= rf_revBuf[i];
//调用KW01的ADC构件ad_read采集芯片的温度
ADResult=ad_read(26);//从通道号26采集AD值
//物理回归:根据芯片手册上的公式打算出温度值
Vtmp=(ADResult3 300)>>16;//电压采样值mV
tmp=25-(Vtmp-706)/1.62;//打算温度
//打算温度的整数和小数部分并封装在帧尾前两字节中
rf_sendBuf[57]=(uint_8)tmp;
rf_sendBuf[58]=(uint_8)((tmp-(uint_8)tmp)10+0.5);
rf_sendBuf[59]=(uint_8)'D';//帧尾
别的步骤按图4事情流程和框架模板就可快速完成终端节点MCU办法式开拓。PC节点的MCU办法式开拓类似。
5.3 运用实例运行测试
借助VS2013开拓PC端程序和测试界面,通过界面下发温度采集命令,终端节点收到后将采集的芯片温度封装在应答帧有效数据的末了两个字节中,通过RF送PC端显示。通过反复运行测试,测试结果稳定;当给芯片加热或降温时,测试结果也相应改变。实例工程的开拓和测试结果表明,用本文研制的开拓平台能快速完成开拓事情,工程任务运行和调度正常,稳定性和实时性都能知足工程哀求。
6 结论
本文研制了一种能有效降落开拓难度,提高开拓效率的WSN运用开拓平台。通过将MCU硬件最小系统和各种对外接口、硬件底层驱动设计为构件供用户利用;通过给出编程框架模板、运用方法等,用户只要根据详细工程适当修正模板文件并增加任务,就能快速完成运用开拓。在后续研究中将连续加强对接口的设计研究,完善构件库,优化工程框架构造,以提升复用性和可移植性。本文提出的研制方法对同类平台的研制具有很好的借鉴浸染。
参考文献
[1] NXP.MKW01Z128 Reference Manual Rev.2[DB/OL].(2014-03-01)[2016-08-20].http://www.nxp.com/.
[2] 茅正冲,叶臻,黄芳,等.基于构件的可配置嵌入式运用程序设计模式[J].打算机丈量与掌握,2015,23(4):1432-1434,1437.
[3] 范宁宁,王宜怀,陈瑞杰.基于WSCN与E-Ethernet相结合的远程测控系统框架研究[J].当代电子技能,2016,39(2):53-57,61.
[4] 曹敬瑜,柴玮岩,王博,等.嵌入式分布打算环境下的高效软件构件化框架研究[J].兵工学报,2013,34(4):451-458.
[5] NXP.MQXLite RTOS reference manual[DB/OL].(2014-09-10)[2016-08-20].http://www.nxp.com/.
[6] CHOVANEC M,SARAFIN P.Real-time schedule for mobile robotics and WSN aplications[J].FedCSIS,2015(5):1199-1202.
[7] NXP.MKW01 development hardware reference manual[DB/OL].(2014-03-01)[2016-08-20].http://www.nxp.com/.
[8] 王宜怀,朱仕浪,姚望舒.嵌入式实时操作系统MQX运用开拓技能[M].北京:电子工业出版社,2014.
[9] 屈新怀,张先燏,丁必荣.可控嵌入式构件框架的研究与实现[J].打算机运用与软件,2014,31(2):14-16,85.
[10] YAHLALI M,CHOUARFIA A.Towards a software component assembly evaluation[J].IET Software,2015,9(1):1-6.
作者信息:
蔡伯峰1,2,蔡伟达3,王宜怀1
(1.苏州大学 打算机科学与技能学院,江苏 苏州215006;
2.泰州职业技能学院 信息技能学院,江苏 泰州225300;3.西北工业大学 航天学院,陕西 西安710072)
招聘信息








