《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > KW01-ZigBee無線傳感網(wǎng)應(yīng)用開發(fā)平臺(tái)的研制
KW01-ZigBee無線傳感網(wǎng)應(yīng)用開發(fā)平臺(tái)的研制
2017年電子技術(shù)應(yīng)用第3期
蔡伯峰1,2,,蔡偉達(dá)3,,王宜懷1
1.蘇州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州215006,; 2.泰州職業(yè)技術(shù)學(xué)院 信息技術(shù)學(xué)院,,江蘇 泰州225300;3.西北工業(yè)大學(xué) 航天學(xué)院,,陜西 西安710072
摘要: 為解決無線傳感網(wǎng)應(yīng)用開發(fā)難度大,、周期長(zhǎng)等問題,通過深入分析其產(chǎn)生原因和無線傳感網(wǎng)應(yīng)用開發(fā)技術(shù)的現(xiàn)狀,,按照軟件工程思想和構(gòu)件設(shè)計(jì)的基本理論,,提出了四層架構(gòu)的開發(fā)平臺(tái)模型。據(jù)此研制了一種架構(gòu)清晰,、對(duì)外接口豐富,、硬軟件構(gòu)件完備的基于KW01-ZigBee的無線傳感網(wǎng)應(yīng)用開發(fā)平臺(tái),從開發(fā)板及硬軟件構(gòu)件設(shè)計(jì),、工程框架設(shè)計(jì)等方面詳細(xì)論述了整個(gè)研制工程,。利用開發(fā)平臺(tái)開發(fā)的實(shí)例工程及運(yùn)行測(cè)試證明了研制的平臺(tái)正確實(shí)用且易于使用,,可以降低開發(fā)技術(shù)難度,提高開發(fā)效率,。
中圖分類號(hào): TP311
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2017.03.013
中文引用格式: 蔡伯峰,,蔡偉達(dá),王宜懷. KW01-ZigBee無線傳感網(wǎng)應(yīng)用開發(fā)平臺(tái)的研制[J].電子技術(shù)應(yīng)用,,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.
Design of KW01-ZigBee wireless sensor network application development platform
Cai Bofeng1,,2,Cai Weida3,,Wang Yihuai1
1.School of Computer Science and Technology,,Soochow University,Suzhou 215006,,China,; 2.College of Information and Technology,Taizhou Vocational and Technical College,,Taizhou 225300,,China; 3.School of Astronautics,,Northwestern Polytechnical University,,Xi′an 710072,China
Abstract: To solve the problems of great difficulty and long cycle in wireless sensor network (WSN) application development, through analyzing causes of these problems and present situation of WSN application development technology deeply, according to software engineering thought and the basic theory of component, a four-layer architecture development platform model was presented. According to the model, the paper designed a KW01-ZigBee-based WSN application development platform which had a clear architecture,rich external interface and complete hardware and software components. The design of development board,hardware and software components and the engineering framework were discussed in detail. The example engineering and its test result showed that the platform was correct, practical and easy to use, could reduce technical difficulty of development and improve development efficiency.
Key words : wireless sensor network,;design of development platform,;KW01-ZigBee;component design,;engineering framework

0 引言

    KW01是飛思卡爾公司2014正式推出的業(yè)內(nèi)首款Sub-GHz芯片,,是由基于ARM Cortex-M0+內(nèi)核的微控制器KL26與SX1231-RF射頻模塊組成[1]

    無線傳感網(wǎng)(Wireless Sensor Network,,WSN)已滲入到醫(yī)療,、家居、交通等各種領(lǐng)域,,但由于其應(yīng)用開發(fā)涉及到網(wǎng)絡(luò)架構(gòu)與方案,、節(jié)點(diǎn)、RF通信電路,、硬軟件構(gòu)件的設(shè)計(jì),,以及通信協(xié)議,、操作系統(tǒng)融入、程序編寫,、可重用和移植性等知識(shí)和技術(shù),,所以門檻較高,導(dǎo)致WSN應(yīng)用開發(fā)難度大,、周期長(zhǎng),、成本高,產(chǎn)品可維護(hù)性及移植性差,。為解決這一現(xiàn)狀,,茅正沖[2]等研究可配置嵌入式應(yīng)用程序設(shè)計(jì)模式,范寧寧[3]等研究測(cè)控系統(tǒng)框架,,曹敬瑜[4]等研究高效軟件構(gòu)件化框架,。但這些研究是通過設(shè)計(jì)構(gòu)件來開發(fā)應(yīng)用程序,并沒有設(shè)計(jì)出具有完整架構(gòu)的開發(fā)平臺(tái),。為此本文研制了一款基于KW01-ZigBee 的層次架構(gòu)清晰,、接口豐富、驅(qū)動(dòng)構(gòu)件完備的相對(duì)通用實(shí)用易用的WSN應(yīng)用開發(fā)平臺(tái),,極大方便了WSN應(yīng)用開發(fā),,將會(huì)降低開發(fā)難度、縮短開發(fā)周期,,并能增強(qiáng)產(chǎn)品的可維護(hù)性和可移植性,。

1 開發(fā)平臺(tái)建模

    WSN一般由若干個(gè)終端節(jié)點(diǎn)、帶路由功能的終端節(jié)點(diǎn),,以及多個(gè)網(wǎng)關(guān)節(jié)點(diǎn)(本文稱為PC節(jié)點(diǎn))組成,。本文研制的平臺(tái)用于WSN應(yīng)用工程各節(jié)點(diǎn)的開發(fā),采用如圖1所示的四層架構(gòu)平臺(tái)模型,。

qrs3-t1.gif

    硬件平臺(tái)層是由KW01-ZigBee開發(fā)板,、寫入器和用于連接網(wǎng)關(guān)節(jié)點(diǎn)與PC的USB-TTL串口線組成的開發(fā)套件。為減少設(shè)計(jì)成本并保證穩(wěn)定可靠的通信,,WSN中所有節(jié)點(diǎn)的開發(fā)板均相同,。

    MCU方工程框架用于開發(fā)應(yīng)用程序,由硬件抽象層,、軟件構(gòu)件層和應(yīng)用層組成,。硬件抽象層文件主要用于芯片上電復(fù)位和鏈接。軟件構(gòu)件層包括底層驅(qū)動(dòng)構(gòu)件,、應(yīng)用構(gòu)件和高層構(gòu)件,;應(yīng)用層的用戶代碼包括用戶任務(wù)、主程序和中斷服務(wù)例程(Interrupt Service Routine,,ISR),。為便于開發(fā)功能復(fù)雜的WSN應(yīng)用工程,,在框架中融入MQXLite實(shí)時(shí)操作系統(tǒng)(Real Time Operating System,RTOS),,用于管理,、調(diào)度、處理多任務(wù)[5,,6],。

2 開發(fā)板及硬件構(gòu)件設(shè)計(jì)

    開發(fā)板應(yīng)架構(gòu)清晰、使用和維護(hù)方便,,為此本文設(shè)計(jì)了KW01-ZigBee開發(fā)板,,硬件結(jié)構(gòu)框圖如圖2所示。KW01 MCU由KL26和RF收發(fā)器組成,,擁有16 KB SRAM,、128 KB Flash和UART、SPI,、IIC,、TSI、ADC,、定時(shí)器等模塊,具有無線電性能高,,傳輸速率快,、距離遠(yuǎn),處理能力強(qiáng),,超低功耗等特點(diǎn)[7],。

qrs3-t2.gif

    構(gòu)件是提高系統(tǒng)可重用性、可移植性的基礎(chǔ)和保障,,用于組裝系統(tǒng)可提高開發(fā)效率,。設(shè)計(jì)開發(fā)板時(shí)將各電路模塊設(shè)計(jì)成構(gòu)件并提供功能明確的接口,可極大方便用戶使用,。如硬件最小系統(tǒng)構(gòu)件由程序運(yùn)行所需最低規(guī)模外圍電路(如電源及濾波,、復(fù)位、晶振等電路)組成,;電源電路構(gòu)件用于將5 V輸入轉(zhuǎn)換為3.3 V供芯片使用,;RF前端電路構(gòu)件用于連接射頻引腳RFIO與天線。

    為便于實(shí)驗(yàn),、科研及應(yīng)用開發(fā),,將MCU除硬件最小系統(tǒng)引腳外的其他引腳封裝成各種構(gòu)件,如UART接口,、SWD寫入器接口,、電池接口,、對(duì)外接口等構(gòu)件。圖3中標(biāo)識(shí)的是引腳默認(rèn)功能,,可直接使用,,而其他功能的使用,可按照NXP官方網(wǎng)站給出的KW01技術(shù)參考手冊(cè)[1]上的功能復(fù)用表進(jìn)行引腳功能復(fù)用,。

qrs3-t3.gif

    工程開發(fā)時(shí),,將外設(shè)模塊連接到相應(yīng)接口構(gòu)件并根據(jù)需要復(fù)用引腳功能,可極大提高開發(fā)效率,。

3 底層驅(qū)動(dòng)構(gòu)件設(shè)計(jì)

    KW01包括RF,、GPIO、ADC等硬件模塊,,編程時(shí)通過驅(qū)動(dòng)程序操作對(duì)應(yīng)的硬件模塊,,但驅(qū)動(dòng)程序只有封裝成底層驅(qū)動(dòng)構(gòu)件才便于重用移植,也才能方便用戶直接使用,,從而降低應(yīng)用開發(fā)難度,。

    限于篇幅,本文僅介紹RF驅(qū)動(dòng)構(gòu)件設(shè)計(jì)過程,。按照構(gòu)件設(shè)計(jì)思想,,將RF模塊的初始化、接收數(shù)據(jù),、發(fā)送數(shù)據(jù),、檢測(cè)能量等基本操作封裝成獨(dú)立的功能函數(shù)即可,但從方便實(shí)際應(yīng)用出發(fā)還應(yīng)封裝帶參數(shù)初始化,、CSMA/CA機(jī)制發(fā)送數(shù)據(jù),、設(shè)置通道號(hào)等函數(shù)。由于它們都涉及到對(duì)RF硬件底層寄存器操作,,是底層驅(qū)動(dòng)函數(shù),,因此將其按構(gòu)件設(shè)計(jì)原則封裝,并集中存放在rf.c源文件中,,同時(shí)配以rf.h存放相關(guān)宏定義,、底層寄存器映射和驅(qū)動(dòng)函數(shù)原型聲明。在構(gòu)件設(shè)計(jì)中,,重點(diǎn)要設(shè)計(jì)好底層驅(qū)動(dòng)函數(shù)原型并給出詳細(xì)注釋,,方便用戶使用。例如RF接收數(shù)據(jù)函數(shù)的功能是從FIFO隊(duì)列中接收一幀數(shù)據(jù),,并返回接收成功與否標(biāo)志,,因此需提供數(shù)據(jù)緩沖區(qū)地址以存放接收的數(shù)據(jù),以及存放接收數(shù)據(jù)長(zhǎng)度的指針單元和硬件過濾地址(即當(dāng)前WSN應(yīng)用工程中節(jié)點(diǎn)的硬件地址,,用于過濾掉其他工程發(fā)送的數(shù)據(jù)包,,同一工程各節(jié)點(diǎn)硬件地址相同),。這樣函數(shù)原型設(shè)計(jì)為:

    //功能概要:RF接收數(shù)據(jù)幀

    //參數(shù)說明:plen:接收數(shù)據(jù)長(zhǎng)度指針,

    //pbuf:接收數(shù)據(jù)緩沖區(qū)首地址, hw_adr:硬件過濾地址

    //函數(shù)返回:=0,接收正常,=其他值,接收異常

    uint_8 RFReceiveFrame(uint_8* pbuf, uint_8* plen,uint_8 hw_adr);

4 MCU方工程框架設(shè)計(jì)

    MCU方工程框架用于為節(jié)點(diǎn)程序開發(fā)提供工程模板,,以降低開發(fā)難度,,提高開發(fā)效率。

4.1 工程框架設(shè)計(jì)的基本原則

    遵循軟件工程可復(fù)用,、可移植,、易理解、易維護(hù)的基本思想,,為縮短產(chǎn)品開發(fā)周期及提高開發(fā)效率打好基礎(chǔ)[8],;以構(gòu)件設(shè)計(jì)為基礎(chǔ),通過各種構(gòu)件的設(shè)計(jì)與應(yīng)用,,提高框架的可復(fù)用性,、可移植性,降低應(yīng)用開發(fā)難度[9],;目錄結(jié)構(gòu)合理分類,,按照文件內(nèi)容歸納整理、分類組織,,提高軟件產(chǎn)品的可維護(hù)性,。

4.2 工程框架的組織結(jié)構(gòu)

    根據(jù)軟件工程對(duì)工程框架必須滿足結(jié)構(gòu)清晰、文件安排合理,、具有可移植和易修改特點(diǎn)的要求,,以及以上設(shè)計(jì)原則和圖1四層架構(gòu)平臺(tái)模型的設(shè)計(jì)思想,構(gòu)建了如表1所示的樹形結(jié)構(gòu)統(tǒng)一MQXLite工程框架(All-in-one MQXLite FrameWork,,AMQXLFW)。

qrs3-b1.gif

4.3 AMQXLFW設(shè)計(jì)分析

    除開發(fā)環(huán)境特有的文件夾外,,工程框架包含的文件夾均相同,,表1是基于Kinetis開發(fā)環(huán)境(Kinetis Development Studio,KDS)包含的12個(gè)文件夾,,個(gè)數(shù)和名稱固定,。存放文件原則如下:

    01_Doc存放工程文檔,隨工程變化而更新,。02_CPU和03_MCU分別存放內(nèi)核,、芯片相關(guān)的上電復(fù)位啟動(dòng)文件,因內(nèi)核廠家只負(fù)責(zé)設(shè)計(jì)維護(hù)內(nèi)核及源代碼而不生產(chǎn)芯片,,故分開存放便于移植更新,。04_Linker_File存放提供程序代碼、中斷向量表,、常變量的存放地址的鏈接腳本,,隨開發(fā)環(huán)境修改,。充足完備的構(gòu)件可有效降低工程開發(fā)難度[10],05_Driver,、06_App_Component,、07_Soft_Component分類存放底層驅(qū)動(dòng)、應(yīng)用和高層構(gòu)件便于構(gòu)件融入,、更新,、移植,應(yīng)用和高層構(gòu)件的名稱和內(nèi)容封裝后不允許更改,。08_Source和09_MQXLite分別是無操作系統(tǒng)和有操作系統(tǒng)編程和調(diào)試的主要目錄,,08_Source中各文件名固定、內(nèi)容隨工程而修改,,includes.h包含所有構(gòu)件頭文件(有操作系統(tǒng)下使用01_app_include.h),,isr.c包含RF接收中斷isr_gpio_cd()等。09_MQXLite包含內(nèi)容見表2,,isr.c仍然有效,,因?yàn)橛?無操作系統(tǒng)時(shí)中斷處理流程一致,但main.c用來初始化并啟動(dòng)MQXLite,,app是按照MQXLite任務(wù)設(shè)計(jì)要求增加的目錄,,包含3個(gè)固定文件和若干用戶任務(wù)文件,其余文件夾文件從MQX或KDS安裝目錄提取,,對(duì)文中開發(fā)板不必修改,。

qrs3-b2.gif

4.4 使用框架開發(fā)的流程及優(yōu)越性

    有了工程框架,只要遵循圖4所示流程就能方便快速地開發(fā)MCU方程序,。不使用框架時(shí),,內(nèi)核和芯片文件可從廠商獲得,鏈接文件可由環(huán)境生成,,但工程中其余文件都需自己編寫,,還需移植操作系統(tǒng),開發(fā)難度大,、效率低,、周期長(zhǎng);使用框架時(shí),,只需修改或添加少量文件及代碼,,就可完成開發(fā)任務(wù),不同應(yīng)用間移植也很容易,。

qrs3-t4.gif

5 開發(fā)平臺(tái)的應(yīng)用實(shí)例

5.1 應(yīng)用實(shí)例的基本功能

    應(yīng)用實(shí)例工程的硬件架構(gòu)包括終端節(jié)點(diǎn),、PC節(jié)點(diǎn)和PC,PC節(jié)點(diǎn)與PC串口通信,終端節(jié)點(diǎn)與PC節(jié)點(diǎn)均采用KW01-ZigBee開發(fā)板,,通過RF通信,。實(shí)例的基本功能是:PC端下發(fā)采集芯片溫度命令數(shù)據(jù)包,經(jīng)串口傳給PC節(jié)點(diǎn),,再經(jīng)RF轉(zhuǎn)發(fā)給終端節(jié)點(diǎn),,收到后解幀,再通過KW01自帶溫度傳感器采集芯片溫度并組幀,,經(jīng)RF發(fā)給PC節(jié)點(diǎn)送PC顯示,。

5.2 MCU方程序開發(fā)

    根據(jù)終端節(jié)點(diǎn)要實(shí)現(xiàn)的功能,開發(fā)其MCU方程序只需設(shè)計(jì)1個(gè)ISR和3個(gè)任務(wù):(1)RF接收中斷:接收來自PC節(jié)點(diǎn)數(shù)據(jù)包,,并啟動(dòng)RF接收任務(wù),,數(shù)據(jù)幀格式可自行定義。(2)RF接收任務(wù):解析接收的數(shù)據(jù)包,,數(shù)據(jù)命令啟動(dòng)溫度采集任務(wù),,該任務(wù)文件已包含在框架中,只需根據(jù)任務(wù)文件中說明修改即可,。(3)芯片溫度采集任務(wù):通過AD通道采集芯片溫度并組幀,,再啟動(dòng)RF發(fā)送任務(wù)。(4)RF發(fā)送任務(wù):將包含芯片溫度的數(shù)據(jù)包通過RF發(fā)送給PC節(jié)點(diǎn),,由PC節(jié)點(diǎn)傳給PC端,。該任務(wù)文件已包含在框架中。

    然后,,在app中添加task_temp_ad.c,,其采集溫度與組幀的代碼如下:

    rf_sendBuf[0]=(uint_8)’T’;//幀頭

    rf_sendBuf[1]=57;//有效幀長(zhǎng)

    rf_sendBuf[2]=(uint_8)hd_adr;//硬件過濾地址

    //將下行幀的內(nèi)容復(fù)制到上行幀中

    for(i<=3;i<=58;i++) rf_sendBuf[i]= rf_revBuf[i];

    //調(diào)用KW01的ADC構(gòu)件ad_read()采集芯片的溫度

    ADResult=ad_read(26);//從通道號(hào)26采集AD值

    //物理回歸:根據(jù)芯片手冊(cè)上的公式計(jì)算出溫度值

    Vtmp=(ADResult*3 300)>>16;//電壓采樣值mV

    tmp=25-(Vtmp-706)/1.62;//計(jì)算溫度

    //計(jì)算溫度的整數(shù)和小數(shù)部分并封裝在幀尾前兩字節(jié)中

    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工作流程和框架模板就可快速完成終端節(jié)點(diǎn)MCU方程序開發(fā)。PC節(jié)點(diǎn)的MCU方程序開發(fā)類似,。

5.3 應(yīng)用實(shí)例運(yùn)行測(cè)試

    借助VS2013開發(fā)PC端程序和測(cè)試界面,,通過界面下發(fā)溫度采集命令,終端節(jié)點(diǎn)收到后將采集的芯片溫度封裝在應(yīng)答幀有效數(shù)據(jù)的最后兩個(gè)字節(jié)中,,通過RF送PC端顯示,。通過反復(fù)運(yùn)行測(cè)試,測(cè)試結(jié)果穩(wěn)定,;當(dāng)給芯片加熱或降溫時(shí),測(cè)試結(jié)果也相應(yīng)改變,。實(shí)例工程的開發(fā)和測(cè)試結(jié)果表明,,用本文研制的開發(fā)平臺(tái)能快速完成開發(fā)工作,工程任務(wù)運(yùn)行和調(diào)度正常,,穩(wěn)定性和實(shí)時(shí)性都能滿足工程要求,。

6 結(jié)論

    本文研制了一種能有效降低開發(fā)難度,提高開發(fā)效率的WSN應(yīng)用開發(fā)平臺(tái)。通過將MCU硬件最小系統(tǒng)和各種對(duì)外接口,、硬件底層驅(qū)動(dòng)設(shè)計(jì)為構(gòu)件供用戶使用,;通過給出編程框架模板、應(yīng)用方法等,,用戶只要根據(jù)具體工程適當(dāng)修改模板文件并增加任務(wù),,就能快速完成應(yīng)用開發(fā)。在后續(xù)研究中將繼續(xù)加強(qiáng)對(duì)接口的設(shè)計(jì)研究,,完善構(gòu)件庫,,優(yōu)化工程框架結(jié)構(gòu),以提升復(fù)用性和可移植性,。本文提出的研制方法對(duì)同類平臺(tái)的研制具有很好的借鑒作用,。

參考文獻(xiàn)

[1] NXP.MKW01Z128 Reference Manual Rev.2[DB/OL].(2014-03-01)[2016-08-20].http://www.nxp.com/.

[2] 茅正沖,葉臻,,黃芳,,等.基于構(gòu)件的可配置嵌入式應(yīng)用程序設(shè)計(jì)模式[J].計(jì)算機(jī)測(cè)量與控制,2015,,23(4):1432-1434,,1437.

[3] 范寧寧,王宜懷,,陳瑞杰.基于WSCN與E-Ethernet相結(jié)合的遠(yuǎn)程測(cè)控系統(tǒng)框架研究[J].現(xiàn)代電子技術(shù),,2016,39(2):53-57,,61.

[4] 曹敬瑜,,柴瑋巖,王博,,等.嵌入式分布計(jì)算環(huán)境下的高效軟件構(gòu)件化框架研究[J].兵工學(xué)報(bào),,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] 王宜懷,朱仕浪,,姚望舒.嵌入式實(shí)時(shí)操作系統(tǒng)MQX應(yīng)用開發(fā)技術(shù)[M].北京:電子工業(yè)出版社,,2014.

[9] 屈新懷,張先燏,,丁必榮.可控嵌入式構(gòu)件框架的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,,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,,蔡偉達(dá)3,王宜懷1

(1.蘇州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,,江蘇 蘇州215006,;

2.泰州職業(yè)技術(shù)學(xué)院 信息技術(shù)學(xué)院,江蘇 泰州225300,;3.西北工業(yè)大學(xué) 航天學(xué)院,,陜西 西安710072)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。