WSCN节点开发与测试平台的研制*

2016-11-26 08:17:54蔡伯峰王宜怀
单片机与嵌入式系统应用 2016年10期
关键词:样例架构构件

蔡伯峰,王宜怀

(1.苏州大学计算机科学与技术学院,苏州215006;2.泰州职业技术学院)

WSCN节点开发与测试平台的研制*

蔡伯峰1,2,王宜怀1

(1.苏州大学计算机科学与技术学院,苏州215006;2.泰州职业技术学院)

针对无线传感器控制网络(WSCN)应用开发难度大、周期长等现状,根据软件工程和构件设计的基本理论,提出一种基于KW01-ZigBee的通用WSCN节点开发与测试平台。通过平台硬件架构、硬软件构件、构件化工程框架、测试样例工程等关键要素的设计与应用完成了整个研制过程。该平台架构清晰、开发套件齐全、对外接口丰富、驱动构件完备、测试样例工程设计科学。芯片温度采集工程设计及平台实际应用的结果表明,使用平台开发WSCN节点工程方便快捷,能有效降低应用开发难度,提高开发效率。

开发与测试平台;KW01-ZigBee;WSCN节点

引 言

无线传感器网络(WSN)是由若干具有感知周围环境信息的具有信息采集、处理和传输等功能的无线传感器节点(WSN节点),以自组网、多跳路由方式构成的网络。无线传感器控制网络(WSCN)也是一种WSN,但其节点还具有控制功能,即控制其连接的终端设备。

随着嵌入式软硬件、传感器、无线通信及芯片制造技术的飞速发展,物联网技术已相对成熟,作为其核心的WSCN已渗入家居、医疗、航空等各种应用领域。但WSCN是以MCU为基础,涉及到组网方案设计、节点架构、底层硬件构件设计、射频通信电路设计、底层驱动构件设计、通信协议、应用程序编程、操作系统融入、可重用性和可移植性等众多知识和技术,具有较高的技术门槛,这导致WSCN应用开发难度大、周期长,开发的产品可维护性和可移植性差等问题。如果能研制一款架构清晰、对外引出所有接口、驱动构件完备的通用的WSCN节点开发与测试平台,那么将会对WSCN应用开发提供极大的便利,将会降低开发难度、提高开发效率、缩短开发周期,也能提高产品的可维护性和可移植性。

基于以上原因,有一些相关研究,如王平[1]等研究了物联网开发平台的设计与实现,张亚[2]等研究了气象无线传感网观测节点设计,范宁宁[3]等研究远程测控系统框架,石晶[4]等设计MQX下中断程序开发平台。但这些研究针对的是嵌入式应用开发的特定方面,如硬件平台、气象节点开发平台、使用构件组装系统和中断程序开发平台等,没有从软硬件整体架构角度考虑,适用范围有限,通用性不够强,实用性一般。

为此,本文研制了一种能用于教学、实验和产品开发的通用实用的WSCN节点开发与测试平台。根据软件工程对构件设计的基本要求,通过将MCU的硬件最小系统、MCU提供的对外接口、硬件模块驱动等封装成构件,使得终端用户通过直接使用构件就可享用MCU提供的服务;通过给出完备的驱动构件、固定的文件名和内容及可修改文件的内容模板、工程框架应用方法步骤、带有一定功能的通信协议,在此基础上,终端用户只要根据模板修改文件内容并增加一些任务内容,就能完成WSCN节点开发。同时,通过带有多个测试样例工程的测试平台就能完成节点的测试。

本文从开发板及硬软件构件设计使用、构件化工程框架设计与应用、测试样例工程设计等方面进行阐述。

1 总体设计

1.1 WSCN开发平台

WSCN节点是以MCU为核心,通过MCU、外设模块、MCU方程序等软硬件的协调工作实现节点的信息采集、处理、传输和控制等功能。本文研制的开发平台用于开发WSCN节点应用工程,通过Kinetis Design Studio(KDS)等嵌入式集成开发环境开发MCU方应用程序。开发平台采用如图1所示的系统架构,由硬件平台层和MCU方工程框架组成。MCU采用飞思卡尔公司的Sub-GHz芯片KW01[5],集成了基于ARM Cortex-M0+内核微控制器KL26与SX1231-RF射频模块[6],性价比较高。

图1 WSCN节点开发平台系统架构

硬件平台层是由KW01-ZigBee开发板、下载程序到MCU的SWD写入器等组成的开发套件,如图2所示。

MCU方工程框架采用由硬件抽象层、软件构件层和应用层组成的三层逻辑架构。硬件抽象层包含的文件用于芯片上电复位启动和编译链接。软件构件层包括底层驱动构件、应用构件和高层构件。底层驱动构件是MCU硬件驱动程序的封装;应用构件指调用底层驱动构件和高层构件完成特定功能的构件,如light、电机开关构件等;高层构件是指与MCU无关的软件构件,如排序、链表等。应用层的用户代码包括用户任务、主程序、中断服务例程(ISR)。工程框架中融入MQXLite实时操作系统(RTOS)是为便于开发功能复杂的WSCN应用工程, MQXLite是MQX的简化版,可管理、调度、处理多任务,可实现MQX的大部分功能[7],能满足一般的应用工程开发需要,当应用工程不使用RTOS时无需包含MQXLite相关文件。

图2 KW01-ZigBee开发套件

1.2 WSCN测试平台

WSCN测试平台用于测试WSCN节点应用工程,测试平台硬件架构如图3所示,由待测WSCN节点、PC节点(测试辅助节点)、PC机组成。待测节点与PC节点通过射频(RF)通信,PC节点通过USB-TTL串口线与PC机相连。PC节点与待测节点采用相同的开发板和工程框架。测试平台设计了多个测试样例工程以测试待测节点的基本功能。

图3 WSCN节点测试平台硬件架构

2 WSCN节点开发平台的研制

开发平台中的开发板是WSCN应用工程测试、运行的载体,也用于组网实验、科研等,MCU方工程框架用于为应用程序开发提供工程模板,以降低开发难度、提高开发效率。

2.1 KW01-ZigBee开发板组成

开发板是节点功能实现的基础,是MCU方程序运行的载体。一个设计良好的开发板应该架构清晰,使用维护方便,有利于应用工程开发。KW01-ZigBee开发板由MCU及其外围电路、RF前端电路、电源电路、小灯电路等模块和各种接口组成,而MCU又由KL26(含Cortex-M0+内核、各种硬件功能模块如GPIO、UART、SPI、ADC、定时器、TSI、SPI、I4C等)和RF收发器组成。MCU 有128 KB Flash、16 KB RAM,具有无线电性能高传输距离远、数据传输速率快、处理能力强、超低功耗、适合野外工作等特点。

2.2 硬件构件设计

构件设计与使用是提高软、硬件设计可重用性和可移植性的基础和保障[8],直接使用构件“组装”系统能有效提高开发效率。在KW01-ZigBee开发板研制时,将各个电路模块设计成独立的硬件构件并提供了功能明确的接口。

硬件最小系统构件由MCU方程序运行所必须的最低规模的外围电路组成,包括电源及其滤波电路、晶振电路、复位电路。RF前端电路构件由选频电路和滤波通路组成,用于连接KW01的射频引脚RFIO(RF)和天线。小灯电路构件由小灯和电阻组成,用于指示程序运行情况。

KW01 MCU共有60个引脚,除硬件最小系统本身使用的引脚外,将MCU的其他输入输出引脚封装成各种构件,如SWD写入器接口、UART接口、对外接口等。对外接口构件及其各个引脚默认功能如图4所示,实验、科研、开发时可直接使用默认功能,或根据表1选择合适的引脚并按照KW01技术参考手册[6]上的功能复用表进行引脚功能复用。

表1 开发板对外接口构件引脚功能归类

工程开发时,将传感器等外设模块直接连接到相关接口构件上,根据需要复用引脚功能,能极大提高开发效率。

图4 KW01-Zigbee开发板对外接口构件

2.3 底层驱动构件设计

编程时对MCU硬件模块的操作是通过相应的驱动程序进行的。为便于重用、移植和降低应用开发难度,硬件模块驱动程序必须封装成底层驱动构件,供用户直接调用。

以KW01的RF模块为例,由于它具有初始化、发送数据、接收数据、能量检测等基本操作,按照构件思想,可将它们封装成独立的功能函数,但从实际使用出发,还需封装初始化参数设置、采用CSMA/CA机制发送数据、通道号设置等函数。由于对RF模块的编程已涉及到对硬件底层寄存器操作,故可将这些函数存放在以构件名命名的rf.c文件中,并按照构件设计原则封装,同时配以rf.h头文件,以声明函数原型及RF模块基本信息如底层寄存器映射等。

头文件是构件操作指南,尤其是要充分设计好函数原型并给出详细注释,方便用户使用。以RF发送数据帧函数为例,其功能是将缓冲区数据组帧后发出去,故需提供缓冲区地址和数据长度,以及硬件过滤地址(是当前工程中统一设置的节点硬件地址,据此过滤其他工程发送的数据包),这样函数原型设计为:

按照RF_Send Data()设计方法设计的所有的RF驱动程序函数原型见表2,其余构件类似。编程时,先通过#include语句包含驱动函数所在构件的头文件,再提供驱动函数的出入口参数值,就可方便调用驱动函数。

表2 KW01的RF构件驱动程序函数原型

2.4 MCU方构件化工程框架设计与应用

2.4.1 构件化工程框架的设计与RF收发功能

根据软件工程对工程框架必须满足结构清晰、文件安排合理,具有可移植和易修改的要求,以及构件设计基本理论和三层逻辑架构(见图1)的设计思想,设计融入了MQXLite的构件化工程框架AMQXFW(All-In-One MQX FrameWork)如图5所示,本课题组的蒋建武[9]等已在“MQX-RTOS与NOS统一的工程框架构建与应用研究”一文对AMQXFW的设计过程做了详细介绍,此处不再赘述。

图5 工程框架及其文件文件夹说明

AMQXFW共包含12个文件夹,个数和名称固定,其中09_MQXLiteapp是用户编程的主要目录。由于RF收发是WSCN节点基本功能,故在AMQXFW中包含实现RF收发功能的程序,包括中断服务例程isr.c、RF发送task_rf_send.c、RF接收task_rf_recv.c,以及用于任务定义、登记、创建的01_app_include.h、02_task_templates.c、03_task_main.c等3个内容布局固定的文件模板。

RF收发功能工作流程如图6所示,当PTC4引脚收到一帧数据时产生RF中断,调用ISR进行中断处理[10],即从数据接收队列取出数据,并根据与RF接收任务对应的事件置相应的事件位(#define EVENT_RF_RECV ((1uL)<<(1))以启动RF接收任务task_rf_rev;在task_rf_ rev任务中,解析帧命令字节,如果要立即通过RF回发数据,则先组帧,再置RF发送事件位以启动RF发送任务task_rf_send,否则可通过自定义任务进行;在task_rf_ send任务中,通过调用RF构件的RFSendDataByCSMACA()函数将数据包发送给网关节点。其中,数据帧按照自行设计的实现难度低的SD-ZigBee通信协议要求设计,格式见表3。

表3 数据帧格式

2.4.2 使用AMQXFW开发应用工程

开发WSCN节点应用工程可直接使用AMQXFW,工作流程如图7所示,如果实际工程功能较简单,可以通过直接修改AMQXFW提供的各个任务、ISR等文件模板以完成节点开发;如果功能较复杂,也只需添加新的ISR和任务文件及相关代码,并按照3个内容布局固定的文件模板定义任务号、事件、任务栈、登记任务、创建任务、注册ISR,就可完成节点开发。

以芯片温度采集工程为例,该工程可通过直接修改AMQXFW的task_rf_rev.c文件完成,即将图6中“回发数据组帧”一节的代码修改为:

图6 RF收发功能工作流程

图7 应用工程开发工作流程

如果要通过添加新任务的方式完成芯片温度采集工程开发,那么可在09_MQXLiteapp中添加芯片温度采集任务文件task_temp_ad.c,其采集温度与组帧的代码类似于“回发数据组帧”的代码,但需在代码最后启动task_rf_ send任务,再在task_rf_rev.c中置芯片温度采集任务事件位(定义为:#define EVENT_TEMP_AD((1u L)<< (3)))以启动task_temp_ad任务。其余步骤只需按照3个内容布局固定的文件模板进行,就可方便快捷地完成节点应用工程开发。

3 WSCN节点测试平台的研制

WSCN节点开发完成后必须通过测试平台测试以确保其功能正常。通常,测试不可能在真实环境下进行,会影响现行无线网络正常运行,况且也很难对问题原因准确定位。

3.1 测试平台硬件架构

为了尽量模拟真实环境,保证测试结果的准确性,除待测WSCN节点外,还需另一个能与其进行RF通信的测试辅助节点,以便测试待测节点的RF无线收发等功能,本文将该节点称为PC节点,它采用与WSCN节点相同的架构。同时,为了下发测试数据包和测试命令、显示测试结果等,还需要上位机——PC机。PC节点与PC机串行通信,PC节点的功能是RF转发来自PC机的命令或数据包、将RF接收的来自待测节点的数据转发给PC机。

3.2 测试样例工程设计

由于各待测节点都具有信息采集、处理、节点参数设置、RF收发和控制等共性功能,为全面测试其是否正常,按照4层架构思路设计4个通用的样例工程:①硬件层测试:PC节点检测并测试待测节点基本的RF通信功能。②功能层测试:测试Flash读写、串口、A/D、GPIO等硬件功能。③协议层测试:测试数据包收发情况。④应用层测试:测试物理量采集情况(物理量封装到帧的填充数据中)。由于各个样例工程测试的内容明确,所以既能保证测试结果的准确性,又能快速定位问题的原因,同时也方便了WSCN节点的开发。

各个样例工程均包含待测节点和PC节点MCU程序、PC端测试界面程序,通过这些程序的协同工作完成测试任务,比如样例工程4的整体执行流程如图8所示,测试界面如图9所示。

图8 样例工程4整体执行流程

图9 物理量采集测试界面

因PC节点的功能是双向转发数据包,故对4个样例工程而言其设计均一样,采用的硬件架构和WSCN节点相同,为此可采用与WSCN节点相同的工程框架和开发方法开发MCU程序,其硬件连接为:运行指示灯连接于开发板对外接口构件的JP_Left-14,由KW01的PTD7控制、低电平灯亮。

串口0连接于UART0,由PTA1、PTA2作为收、发引脚。各样例工程中待测节点的MCU程序开发方法也与PC节点相同。由于PC端测试程序的功能是通过串口下发数据包(包含了测试命令)、显示测试结果,因此可借助于C#的SerialPort控件收发数据包、通过窗体界面显示结果,通过VS2013 C#完成窗体程序开发。

结 语

本文针对WSCN应用开发现状,研制了一款基于KW01-ZigBee的通用WSCN节点开发与测试平台,先通过开发平台开发节点工程,再通过配套的测试平台对其测试。重点介绍了平台的硬件架构、硬件和软件构件设计与使用、AMQXFW工程框架模板的设计与应用、测试样例工程的设计。

目前该平台已用于水质监测、舞台灯光控制等多个系统的WSCN节点应用工程开发中,应用结果表明,平台能有效降低开发技术难度和成本,缩短开发周期,提高开发效率60%以上。此外,本平台还用于苏大、泰职院等校物联网等专业的实验教学中,师生反响良好。本文提出的研制方法对同类平台的设计具有很好的借鉴意义。

[1]王平,彭杰,严冬.780 MHz物联网开发平台的设计与实现[J].重庆邮电大学学报:自然科学版,2012,24(2): 153-158.

[2]张亚,罗希昌,陈浩,等.气象无线传感网观测节点的设计与实现[J].气象科技,2015,43(6):1046-1052.

[3]范宁宁,王宜怀,陈瑞杰.基于WSCN与E-Ethernet相结合的远程测控系统框架研究[J].现代电子技术,2016,39(2): 53-57,61..

[4]石晶,王宜怀,苏勇,等.基于ARM Cortex-M4的MQX中断机制分析与中断程序框架设计[J].计算机科学,2013,40 (6):41-44,79.

[5]LeeJ,Lee I,Park,Jubong,et al.A sub-GHz low-power wireless sensor node with remote power-up receiver:Proceedings of the 2013 IEEE Radio Frequency Integrated Circuits Symposium,2013[J].Microwave Magazine IEEE,2013: 79-82.

[6]NXP.MKW01Z128 Reference Manual Rev.2[EB/OL]. (2014-03-01)[2016-05-01].http://www.nxp.com/.

[7]NXP.MQXLite RTOS Reference Manual[EB/OL].(2013-09-10)[2016-05-01].http://www.nxp.com/.

[8]Yahlali M,Chouarfia A.Towards a software component assembly evaluation[J].IET Software,2015,9(1):1-6.

[9]蒋建武,王宜怀.MQX-RTOS与NOS统一的工程框架构建与应用研究[J].计算机应用与软件,2016,33(4):215-217, 234.

[10]Giovani G,Sebastian F.Tracing and recording interrupts in embedded software[J].Journal of Systems Architecture, 2012,58(9):372-385.

蔡伯峰(副教授),研究方向为嵌入式与物联网技术、软件开发等;王宜怀(教授),研究方向为嵌入式系统、传感网与智能控制等。

Design of Development and Test Platform for WSCN Node

Cai Bofeng1,2,Wang Yihuai1

(1.School of Computer Science and Technology,Soochow University,Suzhou 215006,China; 2.Taizhou Vocational and Technical College)

Aiming at the questions of the wireless sensor network(WSCN)such as the development is difficult and the cycle is long,a development and test platform of WSCN node based on KW01-ZigBee is designed according to the basic theory of software engineering and component design.Through the design and application of hardware architecture,hardware and software components,component-based engineering framework and test sample projects,the entire design process is finished.The platform has clear structure,rich external interfaces,complete driving components,scientific test sample projects.The experimental results show that using the platform to develop application is easy,and it can effectively reduce the difficulty of development,and improve the efficiency of the development.

development and test platform;KW01-ZigBee;WSCN node

TP311

A

国家自然科学基金(61070169)资助,江苏省高等职业院校国内高级访问学者计划资助项目(2015FX078)资助。

(责任编辑:杨迪娜2016-05-12)

猜你喜欢
样例架构构件
样例复杂度与学习形式对不同数量样例学习的影响
基于FPGA的RNN硬件加速架构
样例呈现方式对概念训练类别表征的影响
心理学探新(2022年1期)2022-06-07 09:15:40
功能架构在电子电气架构开发中的应用和实践
汽车工程(2021年12期)2021-03-08 02:34:30
“样例教学”在小学高年级数学中的应用
LSN DCI EVPN VxLAN组网架构研究及实现
电信科学(2017年6期)2017-07-01 15:45:17
建筑构件
国际木业(2016年8期)2017-01-15 13:55:22
建筑构件
国际木业(2016年12期)2016-12-21 03:13:28
建筑构件
国际木业(2016年3期)2016-12-01 05:04:52
建筑构件
国际木业(2016年1期)2016-12-01 05:04:09