蔡伯峰,王宜懷
(1.蘇州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,蘇州215006;2.泰州職業(yè)技術(shù)學(xué)院)
WSCN節(jié)點(diǎn)開(kāi)發(fā)與測(cè)試平臺(tái)的研制*
蔡伯峰1,2,王宜懷1
(1.蘇州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,蘇州215006;2.泰州職業(yè)技術(shù)學(xué)院)
針對(duì)無(wú)線傳感器控制網(wǎng)絡(luò)(WSCN)應(yīng)用開(kāi)發(fā)難度大、周期長(zhǎng)等現(xiàn)狀,根據(jù)軟件工程和構(gòu)件設(shè)計(jì)的基本理論,提出一種基于KW01-ZigBee的通用WSCN節(jié)點(diǎn)開(kāi)發(fā)與測(cè)試平臺(tái)。通過(guò)平臺(tái)硬件架構(gòu)、硬軟件構(gòu)件、構(gòu)件化工程框架、測(cè)試樣例工程等關(guān)鍵要素的設(shè)計(jì)與應(yīng)用完成了整個(gè)研制過(guò)程。該平臺(tái)架構(gòu)清晰、開(kāi)發(fā)套件齊全、對(duì)外接口豐富、驅(qū)動(dòng)構(gòu)件完備、測(cè)試樣例工程設(shè)計(jì)科學(xué)。芯片溫度采集工程設(shè)計(jì)及平臺(tái)實(shí)際應(yīng)用的結(jié)果表明,使用平臺(tái)開(kāi)發(fā)WSCN節(jié)點(diǎn)工程方便快捷,能有效降低應(yīng)用開(kāi)發(fā)難度,提高開(kāi)發(fā)效率。
開(kāi)發(fā)與測(cè)試平臺(tái);KW01-ZigBee;WSCN節(jié)點(diǎn)
無(wú)線傳感器網(wǎng)絡(luò)(WSN)是由若干具有感知周?chē)h(huán)境信息的具有信息采集、處理和傳輸?shù)裙δ艿臒o(wú)線傳感器節(jié)點(diǎn)(WSN節(jié)點(diǎn)),以自組網(wǎng)、多跳路由方式構(gòu)成的網(wǎng)絡(luò)。無(wú)線傳感器控制網(wǎng)絡(luò)(WSCN)也是一種WSN,但其節(jié)點(diǎn)還具有控制功能,即控制其連接的終端設(shè)備。
隨著嵌入式軟硬件、傳感器、無(wú)線通信及芯片制造技術(shù)的飛速發(fā)展,物聯(lián)網(wǎng)技術(shù)已相對(duì)成熟,作為其核心的WSCN已滲入家居、醫(yī)療、航空等各種應(yīng)用領(lǐng)域。但WSCN是以MCU為基礎(chǔ),涉及到組網(wǎng)方案設(shè)計(jì)、節(jié)點(diǎn)架構(gòu)、底層硬件構(gòu)件設(shè)計(jì)、射頻通信電路設(shè)計(jì)、底層驅(qū)動(dòng)構(gòu)件設(shè)計(jì)、通信協(xié)議、應(yīng)用程序編程、操作系統(tǒng)融入、可重用性和可移植性等眾多知識(shí)和技術(shù),具有較高的技術(shù)門(mén)檻,這導(dǎo)致WSCN應(yīng)用開(kāi)發(fā)難度大、周期長(zhǎng),開(kāi)發(fā)的產(chǎn)品可維護(hù)性和可移植性差等問(wèn)題。如果能研制一款架構(gòu)清晰、對(duì)外引出所有接口、驅(qū)動(dòng)構(gòu)件完備的通用的WSCN節(jié)點(diǎn)開(kāi)發(fā)與測(cè)試平臺(tái),那么將會(huì)對(duì)WSCN應(yīng)用開(kāi)發(fā)提供極大的便利,將會(huì)降低開(kāi)發(fā)難度、提高開(kāi)發(fā)效率、縮短開(kāi)發(fā)周期,也能提高產(chǎn)品的可維護(hù)性和可移植性。
基于以上原因,有一些相關(guān)研究,如王平[1]等研究了物聯(lián)網(wǎng)開(kāi)發(fā)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn),張亞[2]等研究了氣象無(wú)線傳感網(wǎng)觀測(cè)節(jié)點(diǎn)設(shè)計(jì),范寧寧[3]等研究遠(yuǎn)程測(cè)控系統(tǒng)框架,石晶[4]等設(shè)計(jì)MQX下中斷程序開(kāi)發(fā)平臺(tái)。但這些研究針對(duì)的是嵌入式應(yīng)用開(kāi)發(fā)的特定方面,如硬件平臺(tái)、氣象節(jié)點(diǎn)開(kāi)發(fā)平臺(tái)、使用構(gòu)件組裝系統(tǒng)和中斷程序開(kāi)發(fā)平臺(tái)等,沒(méi)有從軟硬件整體架構(gòu)角度考慮,適用范圍有限,通用性不夠強(qiáng),實(shí)用性一般。
為此,本文研制了一種能用于教學(xué)、實(shí)驗(yàn)和產(chǎn)品開(kāi)發(fā)的通用實(shí)用的WSCN節(jié)點(diǎn)開(kāi)發(fā)與測(cè)試平臺(tái)。根據(jù)軟件工程對(duì)構(gòu)件設(shè)計(jì)的基本要求,通過(guò)將MCU的硬件最小系統(tǒng)、MCU提供的對(duì)外接口、硬件模塊驅(qū)動(dòng)等封裝成構(gòu)件,使得終端用戶(hù)通過(guò)直接使用構(gòu)件就可享用MCU提供的服務(wù);通過(guò)給出完備的驅(qū)動(dòng)構(gòu)件、固定的文件名和內(nèi)容及可修改文件的內(nèi)容模板、工程框架應(yīng)用方法步驟、帶有一定功能的通信協(xié)議,在此基礎(chǔ)上,終端用戶(hù)只要根據(jù)模板修改文件內(nèi)容并增加一些任務(wù)內(nèi)容,就能完成WSCN節(jié)點(diǎn)開(kāi)發(fā)。同時(shí),通過(guò)帶有多個(gè)測(cè)試樣例工程的測(cè)試平臺(tái)就能完成節(jié)點(diǎn)的測(cè)試。
本文從開(kāi)發(fā)板及硬軟件構(gòu)件設(shè)計(jì)使用、構(gòu)件化工程框架設(shè)計(jì)與應(yīng)用、測(cè)試樣例工程設(shè)計(jì)等方面進(jìn)行闡述。
1.1 WSCN開(kāi)發(fā)平臺(tái)
WSCN節(jié)點(diǎn)是以MCU為核心,通過(guò)MCU、外設(shè)模塊、MCU方程序等軟硬件的協(xié)調(diào)工作實(shí)現(xiàn)節(jié)點(diǎn)的信息采集、處理、傳輸和控制等功能。本文研制的開(kāi)發(fā)平臺(tái)用于開(kāi)發(fā)WSCN節(jié)點(diǎn)應(yīng)用工程,通過(guò)Kinetis Design Studio(KDS)等嵌入式集成開(kāi)發(fā)環(huán)境開(kāi)發(fā)MCU方應(yīng)用程序。開(kāi)發(fā)平臺(tái)采用如圖1所示的系統(tǒng)架構(gòu),由硬件平臺(tái)層和MCU方工程框架組成。MCU采用飛思卡爾公司的Sub-GHz芯片KW01[5],集成了基于ARM Cortex-M0+內(nèi)核微控制器KL26與SX1231-RF射頻模塊[6],性?xún)r(jià)比較高。
圖1 WSCN節(jié)點(diǎn)開(kāi)發(fā)平臺(tái)系統(tǒng)架構(gòu)
硬件平臺(tái)層是由KW01-ZigBee開(kāi)發(fā)板、下載程序到MCU的SWD寫(xiě)入器等組成的開(kāi)發(fā)套件,如圖2所示。
MCU方工程框架采用由硬件抽象層、軟件構(gòu)件層和應(yīng)用層組成的三層邏輯架構(gòu)。硬件抽象層包含的文件用于芯片上電復(fù)位啟動(dòng)和編譯鏈接。軟件構(gòu)件層包括底層驅(qū)動(dòng)構(gòu)件、應(yīng)用構(gòu)件和高層構(gòu)件。底層驅(qū)動(dòng)構(gòu)件是MCU硬件驅(qū)動(dòng)程序的封裝;應(yīng)用構(gòu)件指調(diào)用底層驅(qū)動(dòng)構(gòu)件和高層構(gòu)件完成特定功能的構(gòu)件,如light、電機(jī)開(kāi)關(guān)構(gòu)件等;高層構(gòu)件是指與MCU無(wú)關(guān)的軟件構(gòu)件,如排序、鏈表等。應(yīng)用層的用戶(hù)代碼包括用戶(hù)任務(wù)、主程序、中斷服務(wù)例程(ISR)。工程框架中融入MQXLite實(shí)時(shí)操作系統(tǒng)(RTOS)是為便于開(kāi)發(fā)功能復(fù)雜的WSCN應(yīng)用工程, MQXLite是MQX的簡(jiǎn)化版,可管理、調(diào)度、處理多任務(wù),可實(shí)現(xiàn)MQX的大部分功能[7],能滿(mǎn)足一般的應(yīng)用工程開(kāi)發(fā)需要,當(dāng)應(yīng)用工程不使用RTOS時(shí)無(wú)需包含MQXLite相關(guān)文件。
圖2 KW01-ZigBee開(kāi)發(fā)套件
1.2 WSCN測(cè)試平臺(tái)
WSCN測(cè)試平臺(tái)用于測(cè)試WSCN節(jié)點(diǎn)應(yīng)用工程,測(cè)試平臺(tái)硬件架構(gòu)如圖3所示,由待測(cè)WSCN節(jié)點(diǎn)、PC節(jié)點(diǎn)(測(cè)試輔助節(jié)點(diǎn))、PC機(jī)組成。待測(cè)節(jié)點(diǎn)與PC節(jié)點(diǎn)通過(guò)射頻(RF)通信,PC節(jié)點(diǎn)通過(guò)USB-TTL串口線與PC機(jī)相連。PC節(jié)點(diǎn)與待測(cè)節(jié)點(diǎn)采用相同的開(kāi)發(fā)板和工程框架。測(cè)試平臺(tái)設(shè)計(jì)了多個(gè)測(cè)試樣例工程以測(cè)試待測(cè)節(jié)點(diǎn)的基本功能。
圖3 WSCN節(jié)點(diǎn)測(cè)試平臺(tái)硬件架構(gòu)
開(kāi)發(fā)平臺(tái)中的開(kāi)發(fā)板是WSCN應(yīng)用工程測(cè)試、運(yùn)行的載體,也用于組網(wǎng)實(shí)驗(yàn)、科研等,MCU方工程框架用于為應(yīng)用程序開(kāi)發(fā)提供工程模板,以降低開(kāi)發(fā)難度、提高開(kāi)發(fā)效率。
2.1 KW01-ZigBee開(kāi)發(fā)板組成
開(kāi)發(fā)板是節(jié)點(diǎn)功能實(shí)現(xiàn)的基礎(chǔ),是MCU方程序運(yùn)行的載體。一個(gè)設(shè)計(jì)良好的開(kāi)發(fā)板應(yīng)該架構(gòu)清晰,使用維護(hù)方便,有利于應(yīng)用工程開(kāi)發(fā)。KW01-ZigBee開(kāi)發(fā)板由MCU及其外圍電路、RF前端電路、電源電路、小燈電路等模塊和各種接口組成,而MCU又由KL26(含Cortex-M0+內(nèi)核、各種硬件功能模塊如GPIO、UART、SPI、ADC、定時(shí)器、TSI、SPI、I4C等)和RF收發(fā)器組成。MCU 有128 KB Flash、16 KB RAM,具有無(wú)線電性能高傳輸距離遠(yuǎn)、數(shù)據(jù)傳輸速率快、處理能力強(qiáng)、超低功耗、適合野外工作等特點(diǎn)。
2.2 硬件構(gòu)件設(shè)計(jì)
構(gòu)件設(shè)計(jì)與使用是提高軟、硬件設(shè)計(jì)可重用性和可移植性的基礎(chǔ)和保障[8],直接使用構(gòu)件“組裝”系統(tǒng)能有效提高開(kāi)發(fā)效率。在KW01-ZigBee開(kāi)發(fā)板研制時(shí),將各個(gè)電路模塊設(shè)計(jì)成獨(dú)立的硬件構(gòu)件并提供了功能明確的接口。
硬件最小系統(tǒng)構(gòu)件由MCU方程序運(yùn)行所必須的最低規(guī)模的外圍電路組成,包括電源及其濾波電路、晶振電路、復(fù)位電路。RF前端電路構(gòu)件由選頻電路和濾波通路組成,用于連接KW01的射頻引腳RFIO(RF)和天線。小燈電路構(gòu)件由小燈和電阻組成,用于指示程序運(yùn)行情況。
KW01 MCU共有60個(gè)引腳,除硬件最小系統(tǒng)本身使用的引腳外,將MCU的其他輸入輸出引腳封裝成各種構(gòu)件,如SWD寫(xiě)入器接口、UART接口、對(duì)外接口等。對(duì)外接口構(gòu)件及其各個(gè)引腳默認(rèn)功能如圖4所示,實(shí)驗(yàn)、科研、開(kāi)發(fā)時(shí)可直接使用默認(rèn)功能,或根據(jù)表1選擇合適的引腳并按照KW01技術(shù)參考手冊(cè)[6]上的功能復(fù)用表進(jìn)行引腳功能復(fù)用。
表1 開(kāi)發(fā)板對(duì)外接口構(gòu)件引腳功能歸類(lèi)
工程開(kāi)發(fā)時(shí),將傳感器等外設(shè)模塊直接連接到相關(guān)接口構(gòu)件上,根據(jù)需要復(fù)用引腳功能,能極大提高開(kāi)發(fā)效率。
圖4 KW01-Zigbee開(kāi)發(fā)板對(duì)外接口構(gòu)件
2.3 底層驅(qū)動(dòng)構(gòu)件設(shè)計(jì)
編程時(shí)對(duì)MCU硬件模塊的操作是通過(guò)相應(yīng)的驅(qū)動(dòng)程序進(jìn)行的。為便于重用、移植和降低應(yīng)用開(kāi)發(fā)難度,硬件模塊驅(qū)動(dòng)程序必須封裝成底層驅(qū)動(dòng)構(gòu)件,供用戶(hù)直接調(diào)用。
以KW01的RF模塊為例,由于它具有初始化、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)、能量檢測(cè)等基本操作,按照構(gòu)件思想,可將它們封裝成獨(dú)立的功能函數(shù),但從實(shí)際使用出發(fā),還需封裝初始化參數(shù)設(shè)置、采用CSMA/CA機(jī)制發(fā)送數(shù)據(jù)、通道號(hào)設(shè)置等函數(shù)。由于對(duì)RF模塊的編程已涉及到對(duì)硬件底層寄存器操作,故可將這些函數(shù)存放在以構(gòu)件名命名的rf.c文件中,并按照構(gòu)件設(shè)計(jì)原則封裝,同時(shí)配以rf.h頭文件,以聲明函數(shù)原型及RF模塊基本信息如底層寄存器映射等。
頭文件是構(gòu)件操作指南,尤其是要充分設(shè)計(jì)好函數(shù)原型并給出詳細(xì)注釋,方便用戶(hù)使用。以RF發(fā)送數(shù)據(jù)幀函數(shù)為例,其功能是將緩沖區(qū)數(shù)據(jù)組幀后發(fā)出去,故需提供緩沖區(qū)地址和數(shù)據(jù)長(zhǎng)度,以及硬件過(guò)濾地址(是當(dāng)前工程中統(tǒng)一設(shè)置的節(jié)點(diǎn)硬件地址,據(jù)此過(guò)濾其他工程發(fā)送的數(shù)據(jù)包),這樣函數(shù)原型設(shè)計(jì)為:
按照RF_Send Data()設(shè)計(jì)方法設(shè)計(jì)的所有的RF驅(qū)動(dòng)程序函數(shù)原型見(jiàn)表2,其余構(gòu)件類(lèi)似。編程時(shí),先通過(guò)#include語(yǔ)句包含驅(qū)動(dòng)函數(shù)所在構(gòu)件的頭文件,再提供驅(qū)動(dòng)函數(shù)的出入口參數(shù)值,就可方便調(diào)用驅(qū)動(dòng)函數(shù)。
表2 KW01的RF構(gòu)件驅(qū)動(dòng)程序函數(shù)原型
2.4 MCU方構(gòu)件化工程框架設(shè)計(jì)與應(yīng)用
2.4.1 構(gòu)件化工程框架的設(shè)計(jì)與RF收發(fā)功能
根據(jù)軟件工程對(duì)工程框架必須滿(mǎn)足結(jié)構(gòu)清晰、文件安排合理,具有可移植和易修改的要求,以及構(gòu)件設(shè)計(jì)基本理論和三層邏輯架構(gòu)(見(jiàn)圖1)的設(shè)計(jì)思想,設(shè)計(jì)融入了MQXLite的構(gòu)件化工程框架AMQXFW(All-In-One MQX FrameWork)如圖5所示,本課題組的蔣建武[9]等已在“MQX-RTOS與NOS統(tǒng)一的工程框架構(gòu)建與應(yīng)用研究”一文對(duì)AMQXFW的設(shè)計(jì)過(guò)程做了詳細(xì)介紹,此處不再贅述。
圖5 工程框架及其文件文件夾說(shuō)明
AMQXFW共包含12個(gè)文件夾,個(gè)數(shù)和名稱(chēng)固定,其中09_MQXLiteapp是用戶(hù)編程的主要目錄。由于RF收發(fā)是WSCN節(jié)點(diǎn)基本功能,故在AMQXFW中包含實(shí)現(xiàn)RF收發(fā)功能的程序,包括中斷服務(wù)例程isr.c、RF發(fā)送task_rf_send.c、RF接收task_rf_recv.c,以及用于任務(wù)定義、登記、創(chuàng)建的01_app_include.h、02_task_templates.c、03_task_main.c等3個(gè)內(nèi)容布局固定的文件模板。
RF收發(fā)功能工作流程如圖6所示,當(dāng)PTC4引腳收到一幀數(shù)據(jù)時(shí)產(chǎn)生RF中斷,調(diào)用ISR進(jìn)行中斷處理[10],即從數(shù)據(jù)接收隊(duì)列取出數(shù)據(jù),并根據(jù)與RF接收任務(wù)對(duì)應(yīng)的事件置相應(yīng)的事件位(#define EVENT_RF_RECV ((1uL)<<(1))以啟動(dòng)RF接收任務(wù)task_rf_rev;在task_rf_ rev任務(wù)中,解析幀命令字節(jié),如果要立即通過(guò)RF回發(fā)數(shù)據(jù),則先組幀,再置RF發(fā)送事件位以啟動(dòng)RF發(fā)送任務(wù)task_rf_send,否則可通過(guò)自定義任務(wù)進(jìn)行;在task_rf_ send任務(wù)中,通過(guò)調(diào)用RF構(gòu)件的RFSendDataByCSMACA()函數(shù)將數(shù)據(jù)包發(fā)送給網(wǎng)關(guān)節(jié)點(diǎn)。其中,數(shù)據(jù)幀按照自行設(shè)計(jì)的實(shí)現(xiàn)難度低的SD-ZigBee通信協(xié)議要求設(shè)計(jì),格式見(jiàn)表3。
表3 數(shù)據(jù)幀格式
2.4.2 使用AMQXFW開(kāi)發(fā)應(yīng)用工程
開(kāi)發(fā)WSCN節(jié)點(diǎn)應(yīng)用工程可直接使用AMQXFW,工作流程如圖7所示,如果實(shí)際工程功能較簡(jiǎn)單,可以通過(guò)直接修改AMQXFW提供的各個(gè)任務(wù)、ISR等文件模板以完成節(jié)點(diǎn)開(kāi)發(fā);如果功能較復(fù)雜,也只需添加新的ISR和任務(wù)文件及相關(guān)代碼,并按照3個(gè)內(nèi)容布局固定的文件模板定義任務(wù)號(hào)、事件、任務(wù)棧、登記任務(wù)、創(chuàng)建任務(wù)、注冊(cè)ISR,就可完成節(jié)點(diǎn)開(kāi)發(fā)。
以芯片溫度采集工程為例,該工程可通過(guò)直接修改AMQXFW的task_rf_rev.c文件完成,即將圖6中“回發(fā)數(shù)據(jù)組幀”一節(jié)的代碼修改為:
圖6 RF收發(fā)功能工作流程
圖7 應(yīng)用工程開(kāi)發(fā)工作流程
如果要通過(guò)添加新任務(wù)的方式完成芯片溫度采集工程開(kāi)發(fā),那么可在09_MQXLiteapp中添加芯片溫度采集任務(wù)文件task_temp_ad.c,其采集溫度與組幀的代碼類(lèi)似于“回發(fā)數(shù)據(jù)組幀”的代碼,但需在代碼最后啟動(dòng)task_rf_ send任務(wù),再在task_rf_rev.c中置芯片溫度采集任務(wù)事件位(定義為:#define EVENT_TEMP_AD((1u L)<< (3)))以啟動(dòng)task_temp_ad任務(wù)。其余步驟只需按照3個(gè)內(nèi)容布局固定的文件模板進(jìn)行,就可方便快捷地完成節(jié)點(diǎn)應(yīng)用工程開(kāi)發(fā)。
WSCN節(jié)點(diǎn)開(kāi)發(fā)完成后必須通過(guò)測(cè)試平臺(tái)測(cè)試以確保其功能正常。通常,測(cè)試不可能在真實(shí)環(huán)境下進(jìn)行,會(huì)影響現(xiàn)行無(wú)線網(wǎng)絡(luò)正常運(yùn)行,況且也很難對(duì)問(wèn)題原因準(zhǔn)確定位。
3.1 測(cè)試平臺(tái)硬件架構(gòu)
為了盡量模擬真實(shí)環(huán)境,保證測(cè)試結(jié)果的準(zhǔn)確性,除待測(cè)WSCN節(jié)點(diǎn)外,還需另一個(gè)能與其進(jìn)行RF通信的測(cè)試輔助節(jié)點(diǎn),以便測(cè)試待測(cè)節(jié)點(diǎn)的RF無(wú)線收發(fā)等功能,本文將該節(jié)點(diǎn)稱(chēng)為PC節(jié)點(diǎn),它采用與WSCN節(jié)點(diǎn)相同的架構(gòu)。同時(shí),為了下發(fā)測(cè)試數(shù)據(jù)包和測(cè)試命令、顯示測(cè)試結(jié)果等,還需要上位機(jī)——PC機(jī)。PC節(jié)點(diǎn)與PC機(jī)串行通信,PC節(jié)點(diǎn)的功能是RF轉(zhuǎn)發(fā)來(lái)自PC機(jī)的命令或數(shù)據(jù)包、將RF接收的來(lái)自待測(cè)節(jié)點(diǎn)的數(shù)據(jù)轉(zhuǎn)發(fā)給PC機(jī)。
3.2 測(cè)試樣例工程設(shè)計(jì)
由于各待測(cè)節(jié)點(diǎn)都具有信息采集、處理、節(jié)點(diǎn)參數(shù)設(shè)置、RF收發(fā)和控制等共性功能,為全面測(cè)試其是否正常,按照4層架構(gòu)思路設(shè)計(jì)4個(gè)通用的樣例工程:①硬件層測(cè)試:PC節(jié)點(diǎn)檢測(cè)并測(cè)試待測(cè)節(jié)點(diǎn)基本的RF通信功能。②功能層測(cè)試:測(cè)試Flash讀寫(xiě)、串口、A/D、GPIO等硬件功能。③協(xié)議層測(cè)試:測(cè)試數(shù)據(jù)包收發(fā)情況。④應(yīng)用層測(cè)試:測(cè)試物理量采集情況(物理量封裝到幀的填充數(shù)據(jù)中)。由于各個(gè)樣例工程測(cè)試的內(nèi)容明確,所以既能保證測(cè)試結(jié)果的準(zhǔn)確性,又能快速定位問(wèn)題的原因,同時(shí)也方便了WSCN節(jié)點(diǎn)的開(kāi)發(fā)。
各個(gè)樣例工程均包含待測(cè)節(jié)點(diǎn)和PC節(jié)點(diǎn)MCU程序、PC端測(cè)試界面程序,通過(guò)這些程序的協(xié)同工作完成測(cè)試任務(wù),比如樣例工程4的整體執(zhí)行流程如圖8所示,測(cè)試界面如圖9所示。
圖8 樣例工程4整體執(zhí)行流程
圖9 物理量采集測(cè)試界面
因PC節(jié)點(diǎn)的功能是雙向轉(zhuǎn)發(fā)數(shù)據(jù)包,故對(duì)4個(gè)樣例工程而言其設(shè)計(jì)均一樣,采用的硬件架構(gòu)和WSCN節(jié)點(diǎn)相同,為此可采用與WSCN節(jié)點(diǎn)相同的工程框架和開(kāi)發(fā)方法開(kāi)發(fā)MCU程序,其硬件連接為:運(yùn)行指示燈連接于開(kāi)發(fā)板對(duì)外接口構(gòu)件的JP_Left-14,由KW01的PTD7控制、低電平燈亮。
串口0連接于UART0,由PTA1、PTA2作為收、發(fā)引腳。各樣例工程中待測(cè)節(jié)點(diǎn)的MCU程序開(kāi)發(fā)方法也與PC節(jié)點(diǎn)相同。由于PC端測(cè)試程序的功能是通過(guò)串口下發(fā)數(shù)據(jù)包(包含了測(cè)試命令)、顯示測(cè)試結(jié)果,因此可借助于C#的SerialPort控件收發(fā)數(shù)據(jù)包、通過(guò)窗體界面顯示結(jié)果,通過(guò)VS2013 C#完成窗體程序開(kāi)發(fā)。
本文針對(duì)WSCN應(yīng)用開(kāi)發(fā)現(xiàn)狀,研制了一款基于KW01-ZigBee的通用WSCN節(jié)點(diǎn)開(kāi)發(fā)與測(cè)試平臺(tái),先通過(guò)開(kāi)發(fā)平臺(tái)開(kāi)發(fā)節(jié)點(diǎn)工程,再通過(guò)配套的測(cè)試平臺(tái)對(duì)其測(cè)試。重點(diǎn)介紹了平臺(tái)的硬件架構(gòu)、硬件和軟件構(gòu)件設(shè)計(jì)與使用、AMQXFW工程框架模板的設(shè)計(jì)與應(yīng)用、測(cè)試樣例工程的設(shè)計(jì)。
目前該平臺(tái)已用于水質(zhì)監(jiān)測(cè)、舞臺(tái)燈光控制等多個(gè)系統(tǒng)的WSCN節(jié)點(diǎn)應(yīng)用工程開(kāi)發(fā)中,應(yīng)用結(jié)果表明,平臺(tái)能有效降低開(kāi)發(fā)技術(shù)難度和成本,縮短開(kāi)發(fā)周期,提高開(kāi)發(fā)效率60%以上。此外,本平臺(tái)還用于蘇大、泰職院等校物聯(lián)網(wǎng)等專(zhuān)業(yè)的實(shí)驗(yàn)教學(xué)中,師生反響良好。本文提出的研制方法對(duì)同類(lèi)平臺(tái)的設(shè)計(jì)具有很好的借鑒意義。
[1]王平,彭杰,嚴(yán)冬.780 MHz物聯(lián)網(wǎng)開(kāi)發(fā)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].重慶郵電大學(xué)學(xué)報(bào):自然科學(xué)版,2012,24(2): 153-158.
[2]張亞,羅希昌,陳浩,等.氣象無(wú)線傳感網(wǎng)觀測(cè)節(jié)點(diǎn)的設(shè)計(jì)與實(shí)現(xiàn)[J].氣象科技,2015,43(6):1046-1052.
[3]范寧寧,王宜懷,陳瑞杰.基于WSCN與E-Ethernet相結(jié)合的遠(yuǎn)程測(cè)控系統(tǒng)框架研究[J].現(xiàn)代電子技術(shù),2016,39(2): 53-57,61..
[4]石晶,王宜懷,蘇勇,等.基于ARM Cortex-M4的MQX中斷機(jī)制分析與中斷程序框架設(shè)計(jì)[J].計(jì)算機(jī)科學(xué),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統(tǒng)一的工程框架構(gòu)建與應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用與軟件,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.
蔡伯峰(副教授),研究方向?yàn)榍度胧脚c物聯(lián)網(wǎng)技術(shù)、軟件開(kāi)發(fā)等;王宜懷(教授),研究方向?yàn)榍度胧较到y(tǒng)、傳感網(wǎng)與智能控制等。
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
國(guó)家自然科學(xué)基金(61070169)資助,江蘇省高等職業(yè)院校國(guó)內(nèi)高級(jí)訪問(wèn)學(xué)者計(jì)劃資助項(xiàng)目(2015FX078)資助。
(責(zé)任編輯:楊迪娜2016-05-12)