多總線控制的無線傳感器網(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ù)庫(kù)功能強(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)在電源供電方面還存在問題,如何降低功耗延長(zhǎng)系統(tǒng)壽命是未來研究的方向。
通過主控器件多種線控制,充分發(fā)揮了各個(gè)總線器件的優(yōu)點(diǎn),使得系統(tǒng)免受外界干擾。需要注意的是系統(tǒng)在電源供電方面還存在問題,如何降低功耗延長(zhǎng)系統(tǒng)壽命是未來研究的方向。
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。