溫室中無線執(zhí)行器節(jié)點(diǎn)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引言
溫室監(jiān)控系統(tǒng)建立的最終目的是為了獲取溫室環(huán)境的數(shù)據(jù)信息,監(jiān)控溫室的正常運(yùn)行,并通過分析數(shù)據(jù)得到作物生長與環(huán)境變化的規(guī)律。傳統(tǒng)的多點(diǎn)環(huán)境參數(shù)監(jiān)控系統(tǒng)一般都是通過有線通信(如RS-485 總線)的方式把環(huán)境參數(shù)數(shù)據(jù)傳送到監(jiān)控中心的。有線通信的一個(gè)無法回避的問題是需要布線,它使系統(tǒng)的設(shè)計(jì)、安裝及維護(hù)等的復(fù)雜度大幅提高,同時(shí)使系統(tǒng)的成本也大大增加,而且如果某一節(jié)點(diǎn)損壞有可能導(dǎo)致整個(gè)通信網(wǎng)絡(luò)癱瘓。由于溫室大棚占地面積大,采用傳統(tǒng)的有線監(jiān)控系統(tǒng)除了通信設(shè)備之間的物理線路連接還需要供電線路的支持。而采用無線技術(shù)后,系統(tǒng)精簡了通信和供電線路的鋪設(shè),方便了系統(tǒng)的維護(hù)和擴(kuò)展,對(duì)提高溫室的生產(chǎn)管理水平具有重要的意義。對(duì)于本設(shè)計(jì)而言,采用無線通信技術(shù)可以有效的解決采用有線通信所存在的問題,而且具有成本更低、不需要布線、可以任意增加或減少測(cè)量節(jié)點(diǎn)、維護(hù)方便等優(yōu)點(diǎn)。
1 系統(tǒng)組成及工作過程
無線溫室監(jiān)控系統(tǒng)由無線測(cè)量節(jié)點(diǎn)與執(zhí)行器節(jié)點(diǎn)、匯聚節(jié)點(diǎn)和后臺(tái)管理系統(tǒng)三層組成,如圖1 所示。測(cè)量節(jié)點(diǎn)采集數(shù)據(jù)并通過匯聚節(jié)點(diǎn)將數(shù)據(jù)轉(zhuǎn)發(fā)給后臺(tái)管理系統(tǒng)。測(cè)量節(jié)點(diǎn)由51 兼容的射頻SoC 芯片nRF9E5 來實(shí)現(xiàn);執(zhí)行器節(jié)點(diǎn)采用基于ARM®CortexTM-M3 的微控制器LMS3S1968 和無線收發(fā)器nRF905 組成;匯聚節(jié)點(diǎn)采用處理能力更強(qiáng)的ARM9 和無線收發(fā)器nRF905 組成。
溫室中,大量的測(cè)量節(jié)點(diǎn)采用分散布撒的方式擺放于溫室中,負(fù)責(zé)采集監(jiān)控區(qū)域的環(huán)境信息,并通過多跳的傳輸方式將數(shù)據(jù)發(fā)送到匯聚節(jié)點(diǎn);匯聚節(jié)點(diǎn)既負(fù)責(zé)數(shù)據(jù)的收集上傳,又系統(tǒng)中各個(gè)節(jié)點(diǎn)發(fā)送控制命令,還要通過Internet 網(wǎng)絡(luò)與后臺(tái)管理系統(tǒng)進(jìn)行通信,由后臺(tái)管理系統(tǒng)控制溫室的環(huán)境參數(shù)和傳感器節(jié)點(diǎn)的管理。各個(gè)溫室內(nèi)的節(jié)點(diǎn)相互獨(dú)立,某個(gè)溫室中的某個(gè)節(jié)點(diǎn)出現(xiàn)故障不會(huì)影響到其他節(jié)點(diǎn)的正常工作。
2 主要器件介紹
2.1 基于ARM Cortex-M3 的LM3S1968 微控制器
LM3S1968是Texas Instruments 公司生產(chǎn)的Stellaris®系列、基于ARM®Cortex™-M3的微控制器。該Stellaris®系列芯片能夠提供高效的性能、廣泛的集成功能以及按照要求定位的選擇,適用于各種關(guān)注成本并明確要求具有的過程控制以及連接能力的應(yīng)用方案。
LM3S1968 微控制器是針對(duì)工業(yè)應(yīng)用方案而設(shè)計(jì)的,包括遠(yuǎn)程監(jiān)控、電子販?zhǔn)蹤C(jī)、測(cè)試和測(cè)量設(shè)備、網(wǎng)絡(luò)設(shè)備和交換機(jī)、工廠自動(dòng)化、HVAC 和建筑控制、游戲設(shè)備、運(yùn)動(dòng)控制、醫(yī)療器械、以及火警安防。其主要特性有32 位RISC 性能、采用與Thumb®兼容的Thumb-2 指令集以獲取更高的代碼密度、高達(dá)256KB 的單周期Flash 和64KB 的單周期SRAM、4 個(gè)通用定時(shí)器模塊、2 個(gè)SSI 模塊、2 個(gè)I2C 模塊、采樣速率為1000000 次/秒的8通道10 位A/D 轉(zhuǎn)換、3 個(gè)獨(dú)立集成的模擬比較、3 個(gè) PWM 發(fā)生器模塊、2 個(gè)QEI 模塊、多達(dá)52 個(gè)GPIO、片內(nèi)低壓差穩(wěn)壓器等。
[!--empirenews.page--]
2.2 無線收發(fā)芯片nRF905
nRF905是挪威Nordic 公司的產(chǎn)品,是真正的單片無線射頻收發(fā)器,工作在433/ 868/915MHz 的ISM 頻段。它由頻率合成器、功率合成器、晶體振蕩器和調(diào)制器組成,外圍元件少,不用外加聲表面振蕩器,天線可采用PBC 環(huán)形天線或單端鞭狀天線,發(fā)射功率最大為10dBm,接收靈敏度為-100dBm。
nRF905 采用Nordic 公司的VLSI ShockBurst 技術(shù)。ShockBurst 技術(shù)使nRF905 能夠提供高速的數(shù)據(jù)傳輸而不需要昂貴的高速M(fèi)CU 來進(jìn)行數(shù)據(jù)處理/時(shí)鐘覆蓋。通過將與RF 協(xié)議有關(guān)的高速信號(hào)處理放到芯片內(nèi),nRF905 提供給應(yīng)用的微控制器一個(gè)SPI 接口,速率由微控制器自己設(shè)定的接口速度決定。在ShockBurst RX 模式下,地址匹配(AM)和數(shù)據(jù)就緒(DR)信號(hào)通知MCU 一個(gè)有效地地址和數(shù)據(jù)包已經(jīng)各自接收完成。在ShockBurst TX 模式下,nRF905 自動(dòng)產(chǎn)生前導(dǎo)碼和CRC 校驗(yàn)碼,數(shù)據(jù)準(zhǔn)備就緒(DR)信號(hào)通知MCU 數(shù)據(jù)傳輸已經(jīng)完成??傊@意味著降低MCU 的存儲(chǔ)器需求也就是降低MCU 成本,同時(shí)又縮短軟件開發(fā)時(shí)間。
nRF905 有兩種活動(dòng)(RX/TX)模式和兩種節(jié)電模式。活動(dòng)模式為ShockBurst RX 和ShockBurst TX。節(jié)電模式為掉電和SPI 編程、Standby 和SPI 編程。nRF90 工作模式由TRX_CE、TX_EN、PWR_UP 的設(shè)置來設(shè)置,如表1 所示。
3 無線執(zhí)行器節(jié)點(diǎn)結(jié)構(gòu)與設(shè)計(jì)
溫室環(huán)境參數(shù)的控制是由后臺(tái)管理系統(tǒng)通過 Internet 發(fā)送控制命令到匯聚節(jié)點(diǎn),再由匯聚節(jié)點(diǎn)通過多跳傳輸?shù)綗o線執(zhí)行器節(jié)點(diǎn),由無線執(zhí)行器節(jié)點(diǎn)根據(jù)控制命令來控制相應(yīng)的控制對(duì)象。無線執(zhí)行器節(jié)點(diǎn)主要有LM3S1968 微控制器、光照強(qiáng)度控制、通風(fēng)控制、溫度控制、灑水控制、CO2 濃度控制、施肥控制和nRF905 無線收發(fā)等模塊,如圖2 所示。
3.1 LM3S1968 與nRF905 的電路設(shè)計(jì)
LM3S1968 提供了兼容SPI 的2 個(gè)SSI 接口,故可以將LM3S1968 中的一個(gè)SSI 接口設(shè)置成SPI 接口形式,從而方便與nRF905 進(jìn)行數(shù)據(jù)傳輸。除了SPI 接口與LM3S1968 連接外,nRF905 還有一些引腳需要與LM3S1968 連接,這些引腳是:TX_EN 引腳為TX 和RX 模式選擇、TRX_CE 引腳為使能芯片發(fā)射或接收、PWR_UP 引腳為芯片上電、uPCLK 引腳為由晶體振蕩器分頻的輸出時(shí)鐘、CD 引腳為載波檢測(cè)、AM 引腳為地址匹配、DR 引腳為接收或發(fā)射數(shù)據(jù)完成,它們分別與LM3S1968 的引腳PE3、PE2、PE1、PE0、PF5、PF7 和PG6連接,如圖3 所示。其中,在nF905 工作前,由LM3S1968 通過引腳PE1 發(fā)出高電平信號(hào)給nF905 上電,之后通過PE2 和PE3 發(fā)出TRX_CE 和TX_EN 信號(hào)來確定nF905 的工作模式。LM3S1968 通過PF5、PF7 和PG6 來接收nF905 的狀態(tài)信號(hào),從而LM3S1968 確定后續(xù)工作。
[!--empirenews.page--]
3.2 軟件設(shè)計(jì)
(1)μC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng)
隨著無線傳感器網(wǎng)絡(luò)的廣泛應(yīng)用,節(jié)點(diǎn)構(gòu)成的變化是巨大的。因此無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)上的嵌入式操作系統(tǒng)必須具備好的移植性。與通用的操作系統(tǒng)相比,嵌入式操作系統(tǒng)具有如下一些特征:小巧、實(shí)時(shí)性、可裁減性、固化代碼、穩(wěn)定性。針對(duì)不同的處理器類型,存儲(chǔ)器容量和實(shí)時(shí)性需求,有不同的嵌入式操作系統(tǒng)。UCB 為Mica 系列傳感器網(wǎng)絡(luò)產(chǎn)品開發(fā)了一套微型的操作系統(tǒng)TinyOS;清華大學(xué)也開發(fā)出了一種靈活的低成本無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn) FLOWS,它的單片機(jī)采用TI 公司的MSP430,移植了uC/OS-II 操作系統(tǒng),無線傳輸芯片采用NRF905。
μC/OS-II 是一個(gè)簡單、高效的源碼公開的嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)核。其大多數(shù)函數(shù)調(diào)用和服務(wù)的執(zhí)行時(shí)間具有可確定性;具有可搶占的實(shí)時(shí)多任務(wù)調(diào)度系統(tǒng)功能,而且提供了用于任務(wù)間同步、互斥、通信的系統(tǒng)服務(wù)。這些功能可以根據(jù)不同需求進(jìn)行裁減,它的最小化內(nèi)核能編譯到2 KB,目前已經(jīng)被移植到x86、ARM、PowerPC、MIPS 等眾多體系結(jié)構(gòu)上。基于短小精悍、可移植性強(qiáng)的特點(diǎn),μC/OS-II 很適用于無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)芯片。相比較于TinyOS,uC/OS-II 提供了更加完善的任務(wù)調(diào)度和任務(wù)通信機(jī)制,并且采用標(biāo)準(zhǔn)的C 語言設(shè)計(jì),從而可以更加方便的移植與調(diào)試。
(2)μC/OS-II 在LM3S1968 上的移植
LM3S1968 片上具有高達(dá)256KB 的單周期Flash 和64KB 的單周期SRAM,因此,不需要外擴(kuò)存儲(chǔ)器就可以滿足μC/OS-II 代碼對(duì)容量的要求。
μC/OS-II 在LM3S1968 上的移植,由用戶層、中間件層、μC/OS-II 源碼層、μC/OS-II移植層和驅(qū)動(dòng)庫層等五個(gè)層次組成。
①用戶層的User 目錄存放用戶代碼與設(shè)置。其中Main.C 文件是用戶編寫任務(wù)的地方,如通風(fēng)控制、光照強(qiáng)度控制等任務(wù);Main.H 定義任務(wù)的堆棧大小、優(yōu)先級(jí)等。OS_CFG.H是μC/OS-II 的配置文件,用戶可根據(jù)需要修改其內(nèi)容。Includes.H 是總的頭文件,除μC/OS-II的源碼外,所有“.C”的文件都包含它,這樣用戶所需的頭文件和其它聲明只需在Includes.H中聲明一次就行了。
②中間件層的Middleware 目錄存放用戶自己編寫的中間件,如Uart0.C、Uart0.H 串口通信中間件等。
③μC/OS-II 源碼層的μC/OS-II Source 目錄存放μC/OS-II 的源代碼(除uCOS_II.C 外的全部“.C”和“.H”的文件)。用戶只要把源碼復(fù)制到此目錄,不需對(duì)源碼作任何的修改。
④μC/OS-II 移植層的μC/OS-II Ports 目錄存放μC/OS-II 基于LM3S1968 的移植代碼,包括OS_CPU_C.C、OS_CPU_A.ASM 和OS_CPU.H 等三個(gè)必要的文件,用戶應(yīng)根據(jù)處理器來改寫這三個(gè)文件,使之能夠移植到相應(yīng)的處理器上。Target 目錄中的Startup 文件是LM3S1968 的啟動(dòng)代碼和中斷向量表,用戶要在其中加入需要的中斷服務(wù)函數(shù)的首地址;Target.C 和Target.H 提供LM3S1968 初始化函數(shù)targetInit()和其它外設(shè)控制函數(shù)。
⑤驅(qū)動(dòng)庫層是直接面向硬件目標(biāo)板的層。一般來說,除μC/OS-II 外,其它代碼都要直接或間接通過它訪問硬件。
3.3 后臺(tái)管理系統(tǒng)、匯聚節(jié)點(diǎn)及節(jié)點(diǎn)間的通信
后臺(tái)管理系統(tǒng)與節(jié)點(diǎn)的通信途徑為:后臺(tái)管理系統(tǒng)←→Internet←→匯聚節(jié)點(diǎn)←→測(cè)量節(jié)點(diǎn)或執(zhí)行器節(jié)點(diǎn)。后臺(tái)管理系統(tǒng)以IP 數(shù)據(jù)包形式通過Internet 傳送到匯聚節(jié)點(diǎn)的數(shù)據(jù)包括目標(biāo)節(jié)點(diǎn)編號(hào)、控制命令。測(cè)量節(jié)點(diǎn)和執(zhí)行器節(jié)點(diǎn)采取統(tǒng)一編號(hào)方式,控制命令為要求測(cè)量節(jié)點(diǎn)上傳采樣數(shù)據(jù),或要求執(zhí)行器節(jié)點(diǎn)執(zhí)行命令要求的動(dòng)作(即控制設(shè)備的啟動(dòng)或停止)或要求執(zhí)行器節(jié)點(diǎn)上傳該節(jié)點(diǎn)控制設(shè)備的運(yùn)行狀態(tài)。
匯聚節(jié)點(diǎn)與測(cè)量節(jié)點(diǎn)/執(zhí)行器節(jié)點(diǎn)之間采用多跳路由的通信方式,由于監(jiān)控區(qū)域內(nèi)的節(jié)點(diǎn)眾多,采用統(tǒng)一的數(shù)據(jù)格式有利于節(jié)點(diǎn)間的通信,數(shù)據(jù)格式如下:
其中,Preamble 為引導(dǎo)字節(jié),BroAddr 為廣播地址(為0xFF),F(xiàn)inal-No 為數(shù)據(jù)傳輸?shù)哪繕?biāo)節(jié)點(diǎn)編號(hào),Middle-No 為中間節(jié)點(diǎn)編號(hào),Source-No 為提供數(shù)據(jù)的源節(jié)點(diǎn)編號(hào),CtrlData為控制命令,Data 1…Data n 為需發(fā)送或接收的有效數(shù)據(jù),CRC 為校驗(yàn)碼。
nRF905 處于發(fā)射模式時(shí),Preamble 和CRC 由nRF905 自動(dòng)加載,BroAddr 和中間所有數(shù)據(jù)由微控制器按順序送入射頻模塊 nRF905。接收模式時(shí),nRF905 先接收一數(shù)據(jù)包,分別驗(yàn)證Preamble、BroAddr 和CRC 正確后,再將所有數(shù)據(jù)送入微控制器處理,由軟件比較地址,進(jìn)行相應(yīng)處理。
4 結(jié)語
本設(shè)計(jì)基于無線通信技術(shù)、電子技術(shù)和計(jì)算機(jī)技術(shù),,采用基于ARM® Cortex™-M3 的LMS3S1968 微控制器和無線收發(fā)芯片nRF905 設(shè)計(jì)了無線執(zhí)行器節(jié)點(diǎn)。系統(tǒng)集成度高、性能穩(wěn)定、可靠性高、實(shí)用性強(qiáng)。溫室監(jiān)控系統(tǒng)由后臺(tái)終端根據(jù)測(cè)量節(jié)點(diǎn)的測(cè)得數(shù)據(jù)進(jìn)行決策,以此控制執(zhí)行器節(jié)點(diǎn)執(zhí)行任務(wù),系統(tǒng)可以比較方便的擴(kuò)展通信節(jié)點(diǎn)容量,實(shí)現(xiàn)較大區(qū)域的溫濕度及光照度的監(jiān)控??梢杂糜谵r(nóng)業(yè)溫室等對(duì)溫濕度和光照度控制要求比較嚴(yán)格的行業(yè)。