多總線控制的無線傳感器網(wǎng)絡(luò)
孔 源,,楊 艷,,王亞菲
來源:河北大學(xué)
摘要: 文章從系統(tǒng)各總線設(shè)計(jì)的角度開始了對(duì)基于ZigBee技術(shù)的無線射頻器件、時(shí)鐘器件、溫濕度傳感器以及RS232總線接口電路展開研究,,實(shí)現(xiàn)了多總線控制節(jié)點(diǎn)無線傳輸。
Abstract:
Key words :
自20世紀(jì)90年代開始,,無線傳感器網(wǎng)絡(luò)技術(shù)逐漸發(fā)展,,從GSM到Bluetooth,從無線ATM到無線局域網(wǎng),,以不同的方式,、不同的數(shù)據(jù)速率、在不同的距離上實(shí)現(xiàn)網(wǎng)絡(luò)連接和信息的及時(shí)傳遞,,擺脫了電線的束縛,,從而能夠在移動(dòng)中自由地實(shí)現(xiàn)信息的交換,。盡管如此,仍然要為工業(yè)現(xiàn)場(chǎng)安裝傳感器或開關(guān)的布信號(hào)線而困惑,。在實(shí)際應(yīng)用中依然存在著一些現(xiàn)有的網(wǎng)絡(luò)技術(shù)無法或者不能很好的工作的場(chǎng)合,,需要一種短距離、低數(shù)據(jù)傳輸速率,、低成本,、低功耗的無線網(wǎng)絡(luò)技術(shù)。ZigBee技術(shù)這種以低成本,、低功耗,、低數(shù)據(jù)傳輸速率、低復(fù)雜度為顯著優(yōu)點(diǎn)的短距離無線通信協(xié)議,,滿足了小型,、低成本的固定、便攜或移動(dòng)設(shè)備無線聯(lián)網(wǎng)的要求,。文章從系統(tǒng)各總線設(shè)計(jì)的角度開始了對(duì)基于ZigBee技術(shù)的無線射頻器件,、時(shí)鐘器件、溫濕度傳感器以及RS232總線接口電路展開研究,,實(shí)現(xiàn)了多總線控制節(jié)點(diǎn)無線傳輸,。
1 通信原理
無線傳感器網(wǎng)絡(luò)由一定數(shù)目的傳感器節(jié)點(diǎn)組成,以無線自組的方式構(gòu)成網(wǎng)絡(luò),。通常包括處理器模塊,、傳感器模塊、無線通信模塊和電源管理模塊,。傳感器節(jié)點(diǎn)的異構(gòu)性體現(xiàn)在節(jié)點(diǎn)的數(shù)據(jù)處理能力,、傳感數(shù)據(jù)種類、通信能力以及能源狀況等方面,。傳感器節(jié)點(diǎn)之間必須采用相同的無線通信網(wǎng)絡(luò)協(xié)議才能實(shí)現(xiàn)互聯(lián),。在ZigBee網(wǎng)絡(luò)協(xié)議棧中物理層負(fù)責(zé)數(shù)據(jù)的調(diào)制、發(fā)送與接收,,解決編碼調(diào)制技術(shù),、通信速率和通信頻段等問題。物理層之上為支持物理信道共享和廣播與多播的數(shù)據(jù)鏈路層協(xié)議和負(fù)責(zé)路由轉(zhuǎn)發(fā)和設(shè)備尋址的網(wǎng)絡(luò)層協(xié)議,,在此之上為與具體應(yīng)用緊密相關(guān)的應(yīng)用層協(xié)議,。在ZigBee協(xié)議棧中,每一層通過使用下層提供的服務(wù)完成自己的功能,,同時(shí)對(duì)上層提供服務(wù),,網(wǎng)絡(luò)里的通信在對(duì)等的層次上進(jìn)行。
2 硬件架構(gòu)
2 硬件架構(gòu)
多點(diǎn)的無線傳輸系統(tǒng)對(duì)傳輸提出了雙向通信的要求,,即主機(jī)和從機(jī)都可以進(jìn)行發(fā)射與接收,,并且相互之間協(xié)調(diào)有序,,不會(huì)產(chǎn)生沖突和干擾。因此系統(tǒng)分為發(fā)射子節(jié)點(diǎn)和接受主節(jié)點(diǎn)兩部分,,均采用單片機(jī)AT89C52做主控器件,。發(fā)射子節(jié)點(diǎn)通過單總線對(duì)溫度傳感器DSl8820和濕度傳感器DS2438進(jìn)行控制,采集溫,、濕度,;通過4個(gè)I/O口模擬SPI總線控制無線射頻器件QRF0400進(jìn)行數(shù)據(jù)的無線傳輸;通過2個(gè)I/O口模擬I2C總線對(duì)時(shí)鐘器件PCF8563進(jìn)行選時(shí)操作,。接受主節(jié)點(diǎn)通過無線射頻器件就行數(shù)據(jù)接收,,然后經(jīng)過MAX232電平轉(zhuǎn)換接入串口,按照RS232標(biāo)準(zhǔn)與上位機(jī)進(jìn)行信息交換,。
2.1 發(fā)射子節(jié)點(diǎn)
每一個(gè)發(fā)射子節(jié)點(diǎn)的主控器件經(jīng)過單總線接口控制溫,、濕度傳感器,都必須嚴(yán)格的按照單總線命令序列進(jìn)行操作,。首先進(jìn)行初始化,,以溫度傳感器DSl8820為例,初始化過程由主機(jī)發(fā)出的復(fù)位脈沖和從機(jī)響應(yīng)的應(yīng)答脈沖組成,。應(yīng)答脈沖使主機(jī)知道總線上有從機(jī)設(shè)備且準(zhǔn)備就緒,。當(dāng)主機(jī)檢測(cè)到應(yīng)答脈沖后,就可以發(fā)出ROM命令,。這些命令與各個(gè)從機(jī)設(shè)備的唯一64位ROM序列碼相關(guān),,當(dāng)單總線上連接多個(gè)從機(jī)設(shè)備時(shí),允許主機(jī)指定操作某個(gè)從機(jī)設(shè)備,。這些命令還使得主機(jī)可以檢測(cè)到總線上有多少個(gè)從機(jī)設(shè)備及其設(shè)備類型,或者有沒有設(shè)備處于報(bào)警狀態(tài),。最后發(fā)送操作命令,,通過ROM操作命令使得總線主機(jī)與總線上某些或某一從機(jī)設(shè)備確定了通信關(guān)系之后,主機(jī)發(fā)出的功能命令便可以驅(qū)動(dòng)從機(jī)設(shè)備進(jìn)行相應(yīng)的動(dòng)作,,當(dāng)需要進(jìn)行數(shù)據(jù)的傳輸時(shí),,從機(jī)設(shè)備會(huì)把主機(jī)要求的信息以串行傳輸?shù)姆绞剿偷絾慰偩€上,如圖l所示,。
對(duì)于時(shí)鐘器件(PCF8563)的控制,,使用2個(gè)I/O口模擬I2C總線的數(shù)據(jù)線(SDA)和時(shí)鐘線(SCL)對(duì)器件進(jìn)行讀寫控制,PCF8563的從屬器件地址是1010 A3A2A1A0,,然后按步驟完成I2C總線的初始化,,啟動(dòng)I2C總線,就可以自動(dòng)完成規(guī)定的選時(shí)操作,。每一個(gè)ZigBee節(jié)點(diǎn)都有一個(gè)唯一的64位IEEE地址,,并可以用這個(gè)地址在PAN(個(gè)域網(wǎng))中進(jìn)行通信,,但在從設(shè)備和網(wǎng)絡(luò)協(xié)調(diào)器建立連接后會(huì)為它分配一個(gè)16位短地址,此后可以用這個(gè)短地址在PAN內(nèi)進(jìn)行通信,。64位的IEEE地址是唯一的絕對(duì)地址,,而16位的短地址是相對(duì)地址。系統(tǒng)工作在24GHz高頻頻段,,網(wǎng)絡(luò)中的節(jié)點(diǎn)利用自身的無線收發(fā)設(shè)備交換信息,,當(dāng)相互之間不再彼此的通信范圍內(nèi)時(shí),可以借助其他中間節(jié)點(diǎn)中繼在同一個(gè)個(gè)域網(wǎng)里來實(shí)現(xiàn)多跳通信,。無線收發(fā)模塊是一射頻集成電路模塊(RFIC),,作為ZigBee無線網(wǎng)絡(luò)的物理層射頻前端實(shí)現(xiàn)無線數(shù)據(jù)的收發(fā)。QRF-0400是一個(gè)SPI總線控制的基于ZigBee技術(shù)的無線傳輸模塊,,集成了無線收發(fā)器件UZ2400,,線性功率放大器UP2202和一個(gè)寬帶低噪聲放大器UA2723。UZ2400內(nèi)置了射頻收發(fā)器工作在802.15.4標(biāo)準(zhǔn)的基帶濾波和MAC層的功能模塊,。由發(fā)射/接收FIFOs,,CSMA-CA控制器,超幀架構(gòu),,接收幀過濾器,,安全引擎和數(shù)字信號(hào)處理模塊等。對(duì)于無線傳輸器件的控制,,使用4個(gè)I/O口模擬SPI總線的主機(jī)輸出/從機(jī)輸入總線(MOSI),、主機(jī)輸入/從機(jī)輸出(MISO)、串行時(shí)鐘線(SCK),、低電平有效從機(jī)選擇線(SS)進(jìn)行接口仿真,。通過對(duì)QRF0400進(jìn)行讀寫地址命令,進(jìn)行初始化,,設(shè)置個(gè)域網(wǎng)標(biāo)示符,,配置IEEE地址,打開中斷等命令,。將采集的溫,、濕度數(shù)據(jù)無線傳輸。圖2為UZ2400內(nèi)部模塊結(jié)構(gòu),。
2.2 接收主節(jié)點(diǎn)
接收主節(jié)點(diǎn)接收各個(gè)發(fā)射子節(jié)點(diǎn)的數(shù)據(jù),,并進(jìn)行提取分類,然后通過RS232接口與上位機(jī)實(shí)現(xiàn)信息的人機(jī)溝通,。數(shù)字信號(hào)的傳輸隨著距離的增加和傳輸速率的提高,,在傳輸線上的反射、衰減、共地噪聲等影響將引起信號(hào)畸變,,從而影響通信距離,。選用RS232串行通信標(biāo)準(zhǔn)接口,通過增加驅(qū)動(dòng)以及增大信號(hào)的幅度,,使通信距離增大到15m,。由于單片機(jī)的串行發(fā)送總線和接收總線TXD和RXD是TTL電平,而PC機(jī)的COM1和COM2的RS232連接其實(shí)EIA電平,,因此單片機(jī)需加接MAX232器件進(jìn)行電平轉(zhuǎn)換,,如圖3所示。
3 軟件設(shè)計(jì)
在發(fā)送子節(jié)點(diǎn)上,,為了便于主控器件對(duì)傳感器的控制,,在單總線器件掛接到單總線網(wǎng)絡(luò)之前,有必要對(duì)單總線器件進(jìn)行預(yù)處理,,即對(duì)DSl8820和DS2438編寫其所屬節(jié)點(diǎn)的序號(hào),,這個(gè)序號(hào)是主控器件對(duì)某一傳感器所屬器件進(jìn)行區(qū)分的依據(jù)。該序號(hào)占用兩個(gè)字節(jié)的空間,,其中第一個(gè)字節(jié)用來區(qū)分器件是DSl8820還是DS2438,,為DSl8820分配該字節(jié)的值為00H,為DS2438分配的該字節(jié)的值為80H,。第二個(gè)字節(jié)作為每一個(gè)器件分配的序號(hào),。比如發(fā)射字節(jié)點(diǎn)l掛接有10個(gè)DSl8820、8個(gè)DS2438,,那么這10個(gè)DSl8820的序號(hào)從l到10,,8個(gè)DS2438的序號(hào)從l到8。對(duì)DSl8-820用寫暫存存儲(chǔ)器(4Eh)命令將OOH寫到DSl8820高速暫存存儲(chǔ)器的第2個(gè)字節(jié),,將1到20分別寫到這10個(gè)DSl8820高速暫存存儲(chǔ)器的第3個(gè)字節(jié),,對(duì)DS2438分配的序號(hào)用寫暫存存儲(chǔ)器(4Ehxxh)命令寫到DS2438存儲(chǔ)器第7頁第0個(gè)字節(jié),然后用復(fù)制暫存存儲(chǔ)器命令將其復(fù)制到非易失性EEPROM,,以免序號(hào)信息掉電丟失,。接收主節(jié)點(diǎn)單片機(jī)在讀回溫、濕度數(shù)據(jù)時(shí),,將各溫濕度傳感器的序號(hào)一并讀回,。
I2C總線上的受控器件必須分配地址,,PCF8563作為受控器件,,其設(shè)備地址在傳送開始后首先被傳送。按I2C總線規(guī)定SCL端為時(shí)鐘輸入端,,數(shù)據(jù)線SDA是雙向端,。PCF8563通過I2C總線進(jìn)行讀地址命令(A3H)和寫地址命令(A2H)實(shí)現(xiàn)對(duì)字節(jié)的讀,寫2種狀態(tài)。對(duì)于SPI總線,,主控器件與無線射頻器件通訊時(shí),,數(shù)據(jù)由MOSI輸出,MISO輸入,。數(shù)據(jù)在時(shí)鐘的上升或下降沿到來時(shí)由MOSI輸出,,在緊接著的下降或上升沿到來時(shí)由MISO讀入,這樣經(jīng)過8/16次時(shí)鐘的改變,,完成8/16位數(shù)據(jù)的傳輸,。接收主節(jié)點(diǎn)將接收正確的溫、濕度數(shù)據(jù)放入暫存器(SBUF)中,,設(shè)置相應(yīng)的波特率,,配置好相應(yīng)的特殊功能寄存器以查詢標(biāo)志位的方式向PC機(jī)發(fā)送數(shù)據(jù),如圖4所示,。
4 監(jiān)控軟件
主機(jī)用戶監(jiān)控軟件是用Delphi7.0開發(fā)完成,。由于Delphi的圖形界面豐富美觀、控件集成度好,、數(shù)據(jù)庫功能強(qiáng)大,、開發(fā)周期短、效率高,,因此比較適合于此管理軟件的開發(fā),。操作界面加載SPCOMM組件后可以通過PC機(jī)上的串口與單片機(jī)保持?jǐn)?shù)據(jù)通信。為了保證通信的可靠性,,建立了一個(gè)通信協(xié)議,。下位機(jī)向上位機(jī)發(fā)送一幀廣播命令($FF),上位機(jī)收到廣播命令后向下位機(jī)回復(fù)一個(gè)應(yīng)答幀(SEE),,只有在下位機(jī)收到應(yīng)答幀后才開始一幀一幀的將溫度數(shù)據(jù)傳輸?shù)缴衔粰C(jī),,否則將報(bào)警并再次發(fā)送廣播幀,如圖5所示,。
5 結(jié)束語
經(jīng)過現(xiàn)場(chǎng)多次實(shí)驗(yàn)證明,,多總線控制的無線傳感器可以有效地組成無線星型傳感器網(wǎng)絡(luò),將各個(gè)節(jié)點(diǎn)的采集溫,、濕度分時(shí)傳輸?shù)街鹘邮諜C(jī)上,,顯示到界面供人實(shí)時(shí)監(jiān)測(cè)預(yù)警,從而避免了復(fù)雜環(huán)境下不能人為作業(yè),。
通過主控器件多種線控制,,充分發(fā)揮了各個(gè)總線器件的優(yōu)點(diǎn),使得系統(tǒng)免受外界干擾,。需要注意的是系統(tǒng)在電源供電方面還存在問題,,如何降低功耗延長系統(tǒng)壽命是未來研究的方向,。
通過主控器件多種線控制,,充分發(fā)揮了各個(gè)總線器件的優(yōu)點(diǎn),使得系統(tǒng)免受外界干擾,。需要注意的是系統(tǒng)在電源供電方面還存在問題,,如何降低功耗延長系統(tǒng)壽命是未來研究的方向,。
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。