多總線(xiàn)控制的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)
對(duì)于時(shí)鐘器件(PCF8563)的控制,使用2個(gè)I/O口模擬I2C總線(xiàn)的數(shù)據(jù)線(xiàn)(SDA)和時(shí)鐘線(xiàn)(SCL)對(duì)器件進(jìn)行讀寫(xiě)控制,PCF8563的從屬器件地址是1010 A3A2A1A0,然后按步驟完成I2C總線(xiàn)的初始化,啟動(dòng)I2C總線(xiàn),就可以自動(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)利用自身的無(wú)線(xiàn)收發(fā)設(shè)備交換信息,當(dāng)相互之間不再彼此的通信范圍內(nèi)時(shí),可以借助其他中間節(jié)點(diǎn)中繼在同一個(gè)個(gè)域網(wǎng)里來(lái)實(shí)現(xiàn)多跳通信。無(wú)線(xiàn)收發(fā)模塊是一射頻集成電路模塊(RFIC),作為ZigBee無(wú)線(xiàn)網(wǎng)絡(luò)的物理層射頻前端實(shí)現(xiàn)無(wú)線(xiàn)數(shù)據(jù)的收發(fā)。QRF-0400是一個(gè)SPI總線(xiàn)控制的基于ZigBee技術(shù)的無(wú)線(xiàn)傳輸模塊,集成了無(wú)線(xiàn)收發(fā)器件UZ2400,線(xiàn)性功率放大器UP2202和一個(gè)寬帶低噪聲放大器UA2723。UZ2400內(nèi)置了射頻收發(fā)器工作在802.15.4標(biāo)準(zhǔn)的基帶濾波和MAC層的功能模塊。由發(fā)射/接收FIFOs,CSMA-CA控制器,超幀架構(gòu),接收幀過(guò)濾器,安全引擎和數(shù)字信號(hào)處理模塊等。對(duì)于無(wú)線(xiàn)傳輸器件的控制,使用4個(gè)I/O口模擬SPI總線(xiàn)的主機(jī)輸出/從機(jī)輸入總線(xiàn)(MOSI)、主機(jī)輸入/從機(jī)輸出(MISO)、串行時(shí)鐘線(xiàn)(SCK)、低電平有效從機(jī)選擇線(xiàn)(SS)進(jìn)行接口仿真。通過(guò)對(duì)QRF0400進(jìn)行讀寫(xiě)地址命令,進(jìn)行初始化,設(shè)置個(gè)域網(wǎng)標(biāo)示符,配置IEEE地址,打開(kāi)中斷等命令。將采集的溫、濕度數(shù)據(jù)無(wú)線(xiàn)傳輸。圖2為UZ2400內(nèi)部模塊結(jié)構(gòu)。本文引用地址:http://m.butianyuan.cn/article/162964.htm
2.2 接收主節(jié)點(diǎn)
接收主節(jié)點(diǎn)接收各個(gè)發(fā)射子節(jié)點(diǎn)的數(shù)據(jù),并進(jìn)行提取分類(lèi),然后通過(guò)RS232接口與上位機(jī)實(shí)現(xiàn)信息的人機(jī)溝通。數(shù)字信號(hào)的傳輸隨著距離的增加和傳輸速率的提高,在傳輸線(xiàn)上的反射、衰減、共地噪聲等影響將引起信號(hào)畸變,從而影響通信距離。選用RS232串行通信標(biāo)準(zhǔn)接口,通過(guò)增加驅(qū)動(dòng)以及增大信號(hào)的幅度,使通信距離增大到15m。由于單片機(jī)的串行發(fā)送總線(xiàn)和接收總線(xiàn)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ì)傳感器的控制,在單總線(xiàn)器件掛接到單總線(xiàn)網(wǎng)絡(luò)之前,有必要對(duì)單總線(xiàn)器件進(jìn)行預(yù)處理,即對(duì)DSl8820和DS2438編寫(xiě)其所屬節(jié)點(diǎn)的序號(hào),這個(gè)序號(hào)是主控器件對(duì)某一傳感器所屬器件進(jìn)行區(qū)分的依據(jù)。該序號(hào)占用兩個(gè)字節(jié)的空間,其中第一個(gè)字節(jié)用來(lái)區(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用寫(xiě)暫存存儲(chǔ)器(4Eh)命令將OOH寫(xiě)到DSl8820高速暫存存儲(chǔ)器的第2個(gè)字節(jié),將1到20分別寫(xiě)到這10個(gè)DSl8820高速暫存存儲(chǔ)器的第3個(gè)字節(jié),對(duì)DS2438分配的序號(hào)用寫(xiě)暫存存儲(chǔ)器(4Ehxxh)命令寫(xiě)到DS2438存儲(chǔ)器第7頁(yè)第0個(gè)字節(jié),然后用復(fù)制暫存存儲(chǔ)器命令將其復(fù)制到非易失性EEPROM,以免序號(hào)信息掉電丟失。接收主節(jié)點(diǎn)單片機(jī)在讀回溫、濕度數(shù)據(jù)時(shí),將各溫濕度傳感器的序號(hào)一并讀回。
評(píng)論