無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的硬件平臺(tái)可擴(kuò)展研究
控制MCU負(fù)責(zé)和多個(gè)數(shù)據(jù)檢測(cè)及處理模塊進(jìn)行通信,主要實(shí)現(xiàn)數(shù)據(jù)通信和尋址。也負(fù)責(zé)和無(wú)線通信模塊通信,包括將采集得到的數(shù)據(jù)通過(guò)無(wú)線通信模塊發(fā)送出去或接收其他節(jié)點(diǎn)發(fā)送過(guò)來(lái)的數(shù)據(jù)。控制MCU主要是控制和調(diào)度各模塊的工作,其I2C地址是預(yù)先設(shè)定并已知的。在設(shè)計(jì)中,可采用MSP430F5438單片機(jī)作為主控MCU。使用I2C接口來(lái)連接控制MCU和多個(gè)數(shù)據(jù)檢測(cè)及處理模塊,彼此之間的連線,只有電源線、地線、時(shí)鐘線和數(shù)據(jù)線4根線,可以實(shí)現(xiàn)觸發(fā)、尋址和數(shù)據(jù)傳輸。這樣的一個(gè)接口上可以掛接多個(gè)模塊,支持多主工作,而且它們都是即插即用的。每個(gè)檢測(cè)模塊可以測(cè)量幾種物理量,當(dāng)實(shí)際需要實(shí)現(xiàn)多種功能時(shí),可以掛接多個(gè)這樣的模塊來(lái)達(dá)到要求,實(shí)現(xiàn)節(jié)點(diǎn)的可擴(kuò)展。
3 接口的數(shù)據(jù)格式
每個(gè)數(shù)據(jù)檢測(cè)及處理模塊只有掛接在I2C接口下時(shí),才能獲得電源。當(dāng)檢測(cè)模塊插上去之后,首先檢測(cè)模塊將自己作為主機(jī)發(fā)送自己的I2C地址給控制MCU,這樣控制MCU將知道掛接在總線接口上的每個(gè)檢測(cè)模塊的地址,當(dāng)它需要與某個(gè)檢測(cè)模塊通信時(shí),可以通過(guò)該地址進(jìn)行尋址。檢測(cè)模塊同樣可以對(duì)控制MCU發(fā)起中斷。I2C協(xié)議允許總線上接入多個(gè)器件,并支持多主工作,由于I2C總線具有總線仲裁機(jī)制,所以總線永遠(yuǎn)只有一對(duì)主機(jī)和從機(jī)在進(jìn)行通信,不會(huì)引起錯(cuò)亂。而且I2C總線的應(yīng)答機(jī)制也可以保證進(jìn)行穩(wěn)定的數(shù)據(jù)傳輸。每個(gè)檢測(cè)模塊的傳感微處理器的狀態(tài)圖如圖4所示。本文引用地址:http://butianyuan.cn/article/156501.htm
數(shù)據(jù)傳輸遵循I2C協(xié)議,其數(shù)據(jù)格式采用面向?qū)ο笙⒌姆椒?,使用基本?lèi)的ID和實(shí)例ID來(lái)組成對(duì)象檢測(cè)模塊ID,分析數(shù)據(jù)時(shí)可以明白數(shù)據(jù)針對(duì)的是哪個(gè)檢測(cè)模塊。而控制MCU的類(lèi)ID和實(shí)例ID均設(shè)置為0。具體的數(shù)據(jù)對(duì)象消息格式如圖5所示。
字節(jié)0為除去自身外的整個(gè)對(duì)象消息的字節(jié)總數(shù)。一般該數(shù)值不超過(guò)255。當(dāng)一個(gè)對(duì)象消息的長(zhǎng)度超過(guò)255時(shí),須將整個(gè)消息切耕成多個(gè)字節(jié)數(shù)小于255具有同樣格式的子幀,字節(jié)1為幀協(xié)議位,用來(lái)說(shuō)明子幀的情況。字節(jié)2,3為類(lèi)的ID號(hào),可以定義多個(gè)不同屬性的基本類(lèi)。字節(jié)4,5為具體對(duì)象即檢測(cè)模塊的ID號(hào),可以在基本類(lèi)上實(shí)現(xiàn)多種不同的對(duì)象,具有自身獨(dú)特的屬性和功能。字節(jié)6,7為功能命令,比如對(duì)某個(gè)通道進(jìn)行采集。后面的字節(jié)為數(shù)據(jù)部分,比如采集得到的傳感器數(shù)據(jù)和單位等。當(dāng)數(shù)據(jù)部分的長(zhǎng)度不是16位的倍數(shù)時(shí),將在最后加一個(gè)字節(jié)去填補(bǔ),使其長(zhǎng)度為16位的倍數(shù),但該字節(jié)的內(nèi)容是毫無(wú)意義的,也不計(jì)入消息的長(zhǎng)度中,只是為了方便數(shù)據(jù)的傳送。具有對(duì)象消息格式的
數(shù)據(jù)可以在任何接口之間進(jìn)行發(fā)送,由于數(shù)據(jù)包具有對(duì)象的具體ID,所以接收方能夠知道數(shù)據(jù)包針對(duì)的對(duì)象。因此無(wú)論在控制MCU與傳感微處理器之間是使用I2C接口,還是使用SPI接口,以及在主控MCU與無(wú)線通信模塊的SPI接口之間,這樣的數(shù)據(jù)格式都將能夠很好的對(duì)數(shù)據(jù)進(jìn)行處理。
4 結(jié)語(yǔ)
無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的分布式體系結(jié)構(gòu)設(shè)計(jì)改變了節(jié)點(diǎn)的傳統(tǒng)結(jié)構(gòu),其軟硬件實(shí)現(xiàn)了數(shù)據(jù)檢測(cè)及處理模塊的即插即用,并且在一個(gè)I2C接口下面,可以掛接多個(gè)這樣的模塊,支持多主工作,使得整個(gè)節(jié)點(diǎn)的功能更加完善。節(jié)點(diǎn)各個(gè)模塊之間相互分工,彼此之間獨(dú)立工作,通過(guò)標(biāo)準(zhǔn)接口進(jìn)行通信,數(shù)據(jù)格式標(biāo)準(zhǔn)化,達(dá)到多智能體結(jié)構(gòu),實(shí)際應(yīng)用中可以根據(jù)需求來(lái)進(jìn)行自由配置,高效靈活地針對(duì)不同應(yīng)用實(shí)現(xiàn)新的硬件系統(tǒng),實(shí)現(xiàn)節(jié)點(diǎn)硬件平臺(tái)的可擴(kuò)展。
評(píng)論