蔡伯峰,王宜懷
(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 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節點測試平臺硬件架構
開發平臺中的開發板是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個內容布局固定的文件模板進行,就可方便快捷地完成節點應用工程開發。
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)