基于Zigbee和串口的通用傳感器收發(fā)方法
【專利摘要】本發(fā)明提供一種基于Zigbee和串口的通用傳感器收發(fā)方法,采用Zigbee傳輸機(jī)制,在沒有通信設(shè)施基礎(chǔ)的情況下,Zigbee通過自組織網(wǎng)絡(luò),通過多跳傳輸,將傳感器數(shù)據(jù)發(fā)送到Sink節(jié)點(diǎn);包括數(shù)據(jù)采集過程、數(shù)據(jù)發(fā)送過程、控制管理過程;相對于傳統(tǒng)的單點(diǎn)采集傳感器數(shù)據(jù),該方法能夠支持多種傳感器,具有自組織網(wǎng)絡(luò)、電源管理、穩(wěn)定性好、無需依賴既有的通信網(wǎng)絡(luò)、支持網(wǎng)絡(luò)管理、數(shù)據(jù)截取等特點(diǎn),可廣泛應(yīng)用于遠(yuǎn)程醫(yī)療,野外作戰(zhàn),突發(fā)災(zāi)害,軍事訓(xùn)練,個(gè)人保健以及其他沒有通信設(shè)施支持的監(jiān)測場景中。
【專利說明】基于Zigbee和串口的通用傳感器收發(fā)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于Zigbee和串口的通用傳感器收發(fā)方法,屬于無線傳感器網(wǎng)絡(luò)領(lǐng)域。
【背景技術(shù)】
[0002]目前傳感器的使用越來越普遍,各行各業(yè)都是用到了傳感器來采集必要的數(shù)據(jù),以幫助工作、生產(chǎn)、遠(yuǎn)程健康監(jiān)護(hù)、現(xiàn)代醫(yī)療等。特別是在沒有通信設(shè)施的情況下,收發(fā)模塊發(fā)送傳感器數(shù)據(jù)的準(zhǔn)確和及時(shí)顯得尤為重要。
[0003]現(xiàn)代傳感器種類越來越豐富,收發(fā)模塊的通用性也是必不可少的。遠(yuǎn)程健康監(jiān)護(hù)、野戰(zhàn)、煤礦等環(huán)境下,固定的收發(fā)模塊必須能夠同時(shí)兼容多種傳感器的收發(fā)。但目前收發(fā)模塊未能實(shí)現(xiàn)各類傳感器的通用性,這使得上述環(huán)境中各類傳感器的采集數(shù)據(jù)的收發(fā)存在著較大的不便。
[0004]在某些特定的情況下,電量的使用也將是無線傳感器網(wǎng)絡(luò)重要的一環(huán),如煤礦安全、野戰(zhàn)、土壤監(jiān)測、氣體監(jiān)測等環(huán)境下不能更換電池,而且也必須要保證長時(shí)間的對傳感器供電,以保證才傳感器的實(shí)用性。因此,該問題也是在傳感器進(jìn)行采集、收發(fā)數(shù)據(jù)時(shí)予以考慮并解決的問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是提供一種基于Zigbee和串口的通用傳感器收發(fā)方法,在沒有通信設(shè)施基礎(chǔ)的情況下,能夠采集多種支持串口通信的傳感器數(shù)據(jù),解決現(xiàn)有技術(shù)中存在的上述問題。
[0006]以各種環(huán)境下多點(diǎn)協(xié)同采集傳感器數(shù)據(jù)為應(yīng)用背景,本發(fā)明設(shè)計(jì)了一種基于Zigbee和串口的通用傳感器收發(fā)模塊。相對于傳統(tǒng)的單點(diǎn)采集傳感器數(shù)據(jù),本發(fā)明設(shè)計(jì)了基于Zigbee多跳自組織網(wǎng)絡(luò)的通用傳感器收發(fā)模塊,支持多種傳感器。Zigbee網(wǎng)絡(luò)有效的將多跳數(shù)據(jù)協(xié)同發(fā)送到Sink節(jié)點(diǎn),Sink節(jié)點(diǎn)收到數(shù)據(jù)后,直接發(fā)送到電腦的數(shù)據(jù)庫,上層軟件將根據(jù)數(shù)據(jù)庫數(shù)據(jù)進(jìn)行分析。此方法具有自組織網(wǎng)絡(luò)、電源管理、穩(wěn)定性好、無需依賴既有的通信網(wǎng)絡(luò)、支持網(wǎng)絡(luò)管理、數(shù)據(jù)截取等特點(diǎn),可廣泛應(yīng)用于遠(yuǎn)程醫(yī)療,野外作戰(zhàn),突發(fā)災(zāi)害,軍事訓(xùn)練,個(gè)人保健以及其他沒有通信設(shè)施支持的監(jiān)測場景中。
[0007]本發(fā)明的技術(shù)解決方案是:
[0008]一種基于Zigbee和串口的通用傳感器收發(fā)方法,采用Zigbee傳輸機(jī)制,Zigbee通過自組織網(wǎng)絡(luò),通過多跳傳輸,將傳感器數(shù)據(jù)發(fā)送到Sink節(jié)點(diǎn);包括數(shù)據(jù)采集過程、數(shù)據(jù)發(fā)送過程、控制管理過程;
[0009]數(shù)據(jù)采集過程:傳感器采集數(shù)據(jù)后,將采集數(shù)據(jù)以數(shù)組形式發(fā)送給處理器;
[0010]數(shù)據(jù)發(fā)送過程:處理器將傳感器編號賦值到存放采集數(shù)據(jù)的數(shù)組中,處理器對接收到的采集數(shù)據(jù)進(jìn)行處理后,Zigbee子模塊經(jīng)過多跳網(wǎng)絡(luò)轉(zhuǎn)發(fā)至Sink節(jié)點(diǎn),Sink節(jié)點(diǎn)收到數(shù)據(jù)后再發(fā)送到服務(wù)器處理;
[0011]控制管理過程=Zigbee子模塊對接收到Sink節(jié)點(diǎn)發(fā)送來的命令數(shù)據(jù)進(jìn)行存儲,并將該數(shù)據(jù)發(fā)送給處理器,處理器接收后,依據(jù)命令表及相應(yīng)的函數(shù)進(jìn)行執(zhí)行Sink發(fā)來的命令,處理器將執(zhí)行后的結(jié)果按照數(shù)據(jù)發(fā)送步驟進(jìn)行發(fā)回。
[0012]進(jìn)一步地,數(shù)據(jù)采集過程具體為:
[0013]S101、接通電源,處理器和傳感器均啟動工作;
[0014]S102、處理器通過串口 O發(fā)送啟動命令Oxaa Oxyy Oxzz到傳感器,在通過串口 O發(fā)送一個(gè)字節(jié)數(shù)據(jù)的時(shí)候led燈組的Iedl會亮滅一次;
[0015]S103、傳感器接受到命令后,采集數(shù)據(jù)并且發(fā)送到處理器串口 I ;
[0016]S104、傳感器建立一個(gè)數(shù)組a[n],處理器每收到傳感器的一個(gè)數(shù)據(jù)都會產(chǎn)生一次中斷,收到的收據(jù)依次放到a[l]到a[n_l],在通過串口 O接收一個(gè)字節(jié)數(shù)據(jù)的時(shí)候led燈組的led2會亮滅一次;
[0017]S105、設(shè)立一個(gè)標(biāo)志flag,并且賦置為假;如果所有接受數(shù)據(jù)n_l次,將flag設(shè)置為真;
[0018]S106、每產(chǎn)生一次中斷,接收一次數(shù)據(jù),處理器都開始檢查flag標(biāo)志是否為真,如果為真,則數(shù)據(jù)不進(jìn)行丟棄,否則丟棄數(shù)組中的數(shù)據(jù)。
[0019]進(jìn)一步地,在步驟S103中,采集數(shù)據(jù)并且發(fā)送到Msp430F149處理器串口 I是通過Msp430F149處理器的RXBUFl來不斷的接受數(shù)據(jù),每接收一次數(shù)據(jù),都會產(chǎn)生一次中斷,中斷內(nèi)將數(shù)據(jù)依次存儲在a[l]到a[n_l]中。
[0020]進(jìn)一步地,數(shù)據(jù)發(fā)送過程具體為:
[0021]S201、處理器開始檢查數(shù)組a中的數(shù)據(jù),如果a[2]到a[n_l]數(shù)據(jù)均為0,認(rèn)為是無效數(shù)據(jù),直接丟棄;
[0022]S202、數(shù)組a數(shù)據(jù)有效的情況下,將傳感器編號賦值到a[0]中;
[0023]S203、處理器通過BL1551電源管理子模塊中使得Zigbee子模塊供電,這時(shí)Zigbee子模塊正常工作;
[0024]S204、串口 O與Zigbee子模塊相連,處理器使能自己的串口 0,使Zigbee子模塊與處理器進(jìn)行通信;
[0025]S205、通用傳感器收發(fā)模塊開始依次產(chǎn)生中斷發(fā)送數(shù)組a,每次發(fā)送一個(gè)字節(jié)的數(shù)據(jù),在通過串口 I發(fā)送一個(gè)字節(jié)數(shù)據(jù)的時(shí)候led燈組的led3會亮滅一次;
[0026]S206, Zigbee子模塊依次從處理器收到數(shù)據(jù),通過自組織網(wǎng)絡(luò)發(fā)送到Sink節(jié)點(diǎn);
[0027]S207、設(shè)立一個(gè)標(biāo)志flagl,并且賦值為假。當(dāng)發(fā)送數(shù)據(jù)η次后,將fIagl賦值為真;
[0028]S208、每發(fā)送一次數(shù)據(jù),通用傳感器收發(fā)模塊均開始檢查flag標(biāo)志,如果為真,則通過BL1551電源管理子模塊關(guān)閉Zigbee的電源,否則重新進(jìn)行傳送。
[0029]進(jìn)一步地,在步驟S201中,處理器開始檢查數(shù)組a中的數(shù)據(jù)時(shí),判斷為無效數(shù)據(jù),是通過在傳感器數(shù)據(jù)設(shè)定時(shí),如果出現(xiàn)錯(cuò)誤,就全部傳O數(shù)據(jù)。
[0030]進(jìn)一步地,在步驟S204中,處理器使能自己的串口 O是通過設(shè)置處理器的P35 口為0x10的方式來設(shè)置為串口通信方式,使處理器與Zigbee子模塊進(jìn)行正常通信。
[0031]進(jìn)一步地,控制管理過程具體為:
[0032]S401、處理器以設(shè)定頻率對Zigbee子模塊進(jìn)行供電,Zigbee子模塊接收Sink節(jié)點(diǎn)發(fā)來數(shù)據(jù);
[0033]S402、Zigbee子模塊對接收到Sink節(jié)點(diǎn)發(fā)送來的數(shù)據(jù)進(jìn)行存儲;
[0034]S403、將存儲下來的數(shù)據(jù)依次發(fā)送到串口,在通過串口 I發(fā)送一個(gè)字節(jié)數(shù)據(jù)的時(shí)候led燈組的led4會亮滅一次;
[0035]S404、處理器串口 I產(chǎn)生中斷,依次將數(shù)據(jù)取回到設(shè)定好的數(shù)組b中;
[0036]S405、處理器檢查數(shù)組b[0]中的數(shù)據(jù)是否與本節(jié)點(diǎn)的節(jié)點(diǎn)號相同,若不相同則丟棄不進(jìn)行處理,否則跳轉(zhuǎn)到命令表;
[0037]S406、處理器根據(jù)命令表及相應(yīng)的函數(shù)進(jìn)行執(zhí)行Sink發(fā)來的命令;
[0038]S407、處理器將執(zhí)行后的結(jié)果按照發(fā)送步驟進(jìn)行發(fā)回。
[0039]進(jìn)一步地,在步驟S406中,處理器在收到Sink節(jié)點(diǎn)數(shù)據(jù)并確認(rèn)是發(fā)送給自己時(shí),將會與事先存儲在內(nèi)存中的數(shù)據(jù)進(jìn)行比對,比對成功后會立即根據(jù)索引跳轉(zhuǎn)到相應(yīng)的函數(shù)執(zhí)行。
[0040]進(jìn)一步地,還包括電源管理過程:處理器控制Zigbee子模塊接通或關(guān)閉電源;采用紐扣電池供電,使用Msp430F149低功耗處理器,并且加上BL1551電源管理芯片對電源進(jìn)行動態(tài)管理,有效的控制電量的消耗。
[0041]電源管理過程具體為:
[0042]S301、Zigbee子模塊的Vcc引腳接在BL1551電源管理子模塊上,BL1551電源管理子模塊接在處理器上Px引腳上;
[0043]S302、在通用傳感器收發(fā)模塊接通電源之后,處理器對Px引腳發(fā)出高電平,這樣Zigbee子模塊將接通電源;
[0044]S303、處理器對Px引腳發(fā)出低電平,這樣Zigbee子模塊將關(guān)閉電源。
[0045]本發(fā)明的有益效果是:在沒有通信設(shè)施基礎(chǔ)的情況下,該方法能夠采集多種支持串口通信的傳感器數(shù)據(jù)。通過Zigbee網(wǎng)絡(luò)將數(shù)據(jù)傳送到Sink節(jié)點(diǎn),具有動態(tài)自組織網(wǎng)絡(luò),降低了模塊之間的耦合性,有效的增強(qiáng)了網(wǎng)絡(luò)的健壯性。并且提供電源管理模塊,有效控制模塊電源的消耗,為模塊長時(shí)間的工作提供了有效的保證。
【專利附圖】
【附圖說明】
[0046]圖1是實(shí)施例中通用傳感器收發(fā)模塊的結(jié)構(gòu)說明圖;
[0047]圖2是實(shí)施例中的局域網(wǎng)絡(luò)圖;
[0048]圖3是是傳感器發(fā)送的數(shù)據(jù)格式的說明示意圖;
[0049]圖4是實(shí)施例中數(shù)據(jù)采集過程的流程示意圖;
[0050]圖5是數(shù)組a的數(shù)據(jù)格式的說明示意圖;
[0051]圖6是實(shí)施例中數(shù)據(jù)發(fā)送過程的流程示意圖;
[0052]圖7是實(shí)施例中電源管理過程的流程示意圖;
[0053]圖8是通用傳感器收發(fā)模塊中Msp430F149處理器與BL1551電源管理子模塊和Zigbee子模塊之間的連接圖;
[0054]圖9是實(shí)施例中控制管理過程的流程示意圖;
[0055]圖10是實(shí)施例中模塊Msp430F149處理器對Zigbee模塊供電的時(shí)序圖;
[0056]圖11是實(shí)施例中數(shù)組b的數(shù)據(jù)格式的說明示意圖;
[0057]圖12是實(shí)施例中命令表的說明示意圖。
【具體實(shí)施方式】
[0058]下面結(jié)合附圖詳細(xì)說明本發(fā)明的優(yōu)選實(shí)施例。
[0059]實(shí)施例方法采用Zigbee傳輸機(jī)制,在沒有通信設(shè)施基礎(chǔ)的情況下,Zigbee通過自組織網(wǎng)絡(luò),通過多跳傳輸,將傳感器數(shù)據(jù)發(fā)送到Sink節(jié)點(diǎn)。實(shí)施例方法,相對于傳統(tǒng)收發(fā)模塊,通用傳感器收發(fā)模塊之間具有動態(tài)組網(wǎng)的特點(diǎn)。每個(gè)節(jié)點(diǎn)既是相互獨(dú)立的,又是相互聯(lián)系的。某一個(gè)或多個(gè)節(jié)點(diǎn)由于電量耗盡或者異常都不會影響到其它節(jié)點(diǎn)的工作,同時(shí)增加節(jié)點(diǎn)也同樣不會影響到系統(tǒng)的正常工作,這既增加了系統(tǒng)的靈活性,也增加了系統(tǒng)的健壯性。
[0060]實(shí)施例提供了基于串口通信標(biāo)準(zhǔn)的收發(fā)方法,只要傳感器支持串口數(shù)據(jù)收發(fā)就能夠在本模塊上面工作。本方法中的通用傳感器收發(fā)模塊不僅可以在復(fù)雜環(huán)境的情況下工作,也可以在沒有任何通信設(shè)施的情況下工作,這就確保了本發(fā)明通用傳感器收發(fā)模塊能夠使用的范圍較廣,能夠適應(yīng)大部分情況下的工作。
[0061]實(shí)施例方法中假設(shè)傳感器有體溫傳感器、脈搏傳感器、二氧化碳傳感器這三種傳感器。在缺乏通信設(shè)施的環(huán)境下,假設(shè)有sink節(jié)點(diǎn)A,四個(gè)通用傳感器收發(fā)模塊B、C、D、E ;通用傳感器收發(fā)模塊結(jié)構(gòu)見附圖1,局域網(wǎng)絡(luò)圖見附圖2,傳感器發(fā)送的數(shù)據(jù)格式見附圖3。
[0062]數(shù)據(jù)采集流程如圖4所示,步驟如下:
[0063]S101、按下電源開關(guān),模塊接通電源,通用傳感器收發(fā)模塊中Msp430F149處理器和傳感器均啟動工作。
[0064]S102、通用傳感器收發(fā)模塊中Msp430F149處理器通過串口 O發(fā)送啟動命令OxfOOxcOOxbO到傳感器,再通過串口 O發(fā)送一個(gè)字節(jié)數(shù)據(jù)的時(shí)候,led燈組的Iedl會亮滅一次。
[0065]S103、傳感器接受到命令后,采集數(shù)據(jù)并且發(fā)送到模塊Msp430F149處理器串口 I。
[0066]S104、傳感器建立一個(gè)數(shù)組a[4],模塊Msp430F149處理器每收到傳感器的一個(gè)數(shù)據(jù)都會產(chǎn)生一次中斷,收到的收據(jù)依次放到a[l]到a[3],a數(shù)組的數(shù)據(jù)格式見附圖5,在通過串口 O接收一個(gè)字節(jié)數(shù)據(jù)的時(shí)候led燈組的led2會亮滅一次。
[0067]S105、設(shè)立一個(gè)標(biāo)志flag,并且賦置為假。如果接收數(shù)據(jù)3次,將flag設(shè)置為真。
[0068]S106、每產(chǎn)生一次中斷,接收一次數(shù)據(jù),通用傳感器收發(fā)模塊中Msp430F149處理器都開始檢查flag標(biāo)志是否為真,如果為真,則數(shù)據(jù)不進(jìn)行丟棄,否則丟棄數(shù)組中的數(shù)據(jù)。
[0069]數(shù)據(jù)發(fā)送流程如圖6所示,步驟如下:
[0070]S201、通用傳感器收發(fā)模塊中Msp430F149處理器開始檢查數(shù)組a中的數(shù)據(jù),如果a[2]到a[3]數(shù)據(jù)均為0,可認(rèn)為是無效數(shù)據(jù),直接丟棄。
[0071]S202、數(shù)組a數(shù)據(jù)有效的情況下,將傳感器編號賦值到a[0]中。
[0072]S203、通用傳感器收發(fā)模塊中Msp430F149處理器通過BL1551電源管理子模塊使得Zigbee子模塊供電,這時(shí)Zigbee子模塊就可以正常的進(jìn)行工作。
[0073]S204、串口 O與Zigbee子模塊相連,通用傳感器收發(fā)模塊中Msp430F149處理器使能自己的串口 O,這樣Zigbee子模塊就可以與通用傳感器收發(fā)模塊中Msp430F149處理器進(jìn)行通信。
[0074]S205、模塊開始依次產(chǎn)生中斷發(fā)送數(shù)組a,每次發(fā)送一個(gè)字節(jié)的數(shù)據(jù),在通過串口I發(fā)送一個(gè)字節(jié)數(shù)據(jù)的時(shí)候led燈組的led3會亮滅一次。
[0075]S206,Zigbee子模塊依次從通用傳感器收發(fā)模塊中Msp430F149處理器收到數(shù)據(jù),通過自組織網(wǎng)絡(luò)發(fā)送到Sink節(jié)點(diǎn)。
[0076]S207、設(shè)立一個(gè)標(biāo)志flagl,并且賦值為假。當(dāng)發(fā)送數(shù)據(jù)η次后,將flagl賦值為真。
[0077]S208、每發(fā)送一次數(shù)據(jù),模塊均開始檢查flag標(biāo)志,如果為真,則通過BL1551電源管理子模塊關(guān)閉Zigbee的電源,否則重新進(jìn)行傳送。
[0078]電源管理流程如圖7所示,步驟如下:
[0079]S301、Zigbee子模塊的Vcc引腳接在BL1551電源管理子模塊上,而BL1551電源管理子模塊接在通用傳感器收發(fā)模塊中Msp430F149處理器上P31引腳上,連接圖見附圖8。
[0080]S302、在通用傳感器收發(fā)模塊接通電源之后,通用傳感器收發(fā)模塊中Msp430F149處理器可以對P31引腳發(fā)出高電平,這樣Zigbee子模塊就將接通電源。
[0081]S303、通用傳感器收發(fā)模塊中Msp430F149處理器可以對P31引腳發(fā)出低電平,這樣Zigbee子模塊就將關(guān)閉電源。
[0082]控制管理流程如圖9所示,步驟如下:
[0083]S401、通用傳感器收發(fā)模塊中Msp430F149處理器以0.1秒頻率對Zigbee子模塊進(jìn)行供電,Zigbee子模塊供電時(shí)間圖見附圖10,這樣Zigbee子模塊就可以有接收Sink節(jié)點(diǎn)發(fā)來數(shù)據(jù)的能力。
[0084]S402、當(dāng)Zigbee子模塊接收到Sink節(jié)點(diǎn)發(fā)送的來的數(shù)據(jù),立即先存儲下來。
[0085]S403、將存儲下來的數(shù)據(jù)依次發(fā)送到串口,在通過串口 I發(fā)送一個(gè)字節(jié)數(shù)據(jù)的時(shí)候led燈組的led4會亮滅一次。
[0086]S404、通用傳感器收發(fā)模塊中Msp430F149處理器串口 I產(chǎn)生中斷,依次將數(shù)據(jù)取回到設(shè)定好的數(shù)組b中,數(shù)組b數(shù)據(jù)格式見附圖11。
[0087]S405、通用傳感器收發(fā)模塊中Msp430F149處理器檢查數(shù)組b [O]中的數(shù)據(jù)是否與本節(jié)點(diǎn)的節(jié)點(diǎn)號相同,若不相同則丟棄不進(jìn)行處理,否則跳轉(zhuǎn)到命令表,命令表見附圖12。
[0088]S406、通用傳感器收發(fā)模塊中Msp430F149處理器根據(jù)命令表及相應(yīng)的函數(shù)進(jìn)行執(zhí)行Sink發(fā)來的命令。
[0089]S407、通用傳感器收發(fā)模塊中Msp430F149處理器將執(zhí)行后的結(jié)果按照發(fā)送步驟進(jìn)行發(fā)回。
【權(quán)利要求】
1.一種基于Zigbee和串口的通用傳感器收發(fā)方法,其特征在于,米用Zigbee傳輸機(jī)制,Zigbee通過自組織網(wǎng)絡(luò),通過多跳傳輸,將傳感器數(shù)據(jù)發(fā)送到Sink節(jié)點(diǎn);包括數(shù)據(jù)采集過程、數(shù)據(jù)發(fā)送過程、控制管理過程; 數(shù)據(jù)采集過程:傳感器采集數(shù)據(jù)后,將采集數(shù)據(jù)以數(shù)組形式發(fā)送給處理器; 數(shù)據(jù)發(fā)送過程:處理器將傳感器編號賦值到存放采集數(shù)據(jù)的數(shù)組中,處理器對接收到的采集數(shù)據(jù)進(jìn)行處理后,Zigbee子模塊經(jīng)過多跳網(wǎng)絡(luò)轉(zhuǎn)發(fā)至Sink節(jié)點(diǎn),Sink節(jié)點(diǎn)收到數(shù)據(jù)后再發(fā)送到服務(wù)器處理; 控制管理過程=Zigbee子模塊對接收到Sink節(jié)點(diǎn)發(fā)送來的命令數(shù)據(jù)進(jìn)行存儲,并將該數(shù)據(jù)發(fā)送給處理器,處理器接收后,依據(jù)命令表及相應(yīng)的函數(shù)進(jìn)行執(zhí)行Sink發(fā)來的命令,處理器將執(zhí)行后的結(jié)果按照數(shù)據(jù)發(fā)送步驟進(jìn)行發(fā)回。
2.如權(quán)利要求1所述的基于Zigbee和串口的通用傳感器收發(fā)方法,其特征在于,數(shù)據(jù)采集過程具體為: . 5101、接通電源,處理器和傳感器均啟動工作; . 5102、處理器通過串口O發(fā)送啟動命令Oxaa Oxyy Oxzz到傳感器,在通過串口 O發(fā)送一個(gè)字節(jié)數(shù)據(jù)的時(shí)候led燈組的Iedl會亮滅一次; . 5103、傳感器接受到命令后,采集數(shù)據(jù)并且發(fā)送到處理器串口I ; . 5104、傳感器建立一個(gè)數(shù)組a[n],處理器每收到傳感器的一個(gè)數(shù)據(jù)都會產(chǎn)生一次中斷,收到的收據(jù)依次放到a[l]到a[n_l],在通過串口 O接收一個(gè)字節(jié)數(shù)據(jù)的時(shí)候led燈組的led2會亮滅一次; .5105、設(shè)立一個(gè)標(biāo)志flag,并且賦置為假;如果所有接受數(shù)據(jù)η-1次,將flag設(shè)置為真; .5106、每產(chǎn)生一次中斷,接收一次數(shù)據(jù),處理器都開始檢查flag標(biāo)志是否為真,如果為真,則數(shù)據(jù)不進(jìn)行丟棄,否則丟棄數(shù)組中的數(shù)據(jù)。
3.如權(quán)利要求2所述的基于Zigbee和串口的通用傳感器收發(fā)方法,其特征在于:在步驟S103中,采集數(shù)據(jù)并且發(fā)送到Msp430F149處理器串口 I是通過Msp430F149處理器的RXBUFl來不斷的接受數(shù)據(jù),每接收一次數(shù)據(jù),都會產(chǎn)生一次中斷,中斷內(nèi)將數(shù)據(jù)依次存儲在a [I]到 a[n-l]中。
4.如權(quán)利要求2所述一種基于Zigbee和串口的通用傳感器收發(fā)方法,其特征在于,數(shù)據(jù)發(fā)送過程具體為: . 5201、處理器開始檢查數(shù)組a中的數(shù)據(jù),如果a[2]到a[n_l]數(shù)據(jù)均為0,認(rèn)為是無效數(shù)據(jù),直接丟棄; . 5202、數(shù)組a數(shù)據(jù)有效的情況下,將傳感器編號賦值到a[0]中; . 5203、處理器通過BL1551電源管理子模塊中使得Zigbee子模塊供電,這時(shí)Zigbee子模塊正常工作; .5204、串口O與Zigbee子模塊相連,處理器使能自己的串口 0,使Zigbee子模塊與處理器進(jìn)行通信; . 5205、通用傳感器收發(fā)模塊開始依次產(chǎn)生中斷發(fā)送數(shù)組a,每次發(fā)送一個(gè)字節(jié)的數(shù)據(jù),在通過串口 I發(fā)送一個(gè)字節(jié)數(shù)據(jù)的時(shí)候led燈組的led3會亮滅一次; . 5206、Zigbee子模塊依次從處理器收到數(shù)據(jù),通過自組織網(wǎng)絡(luò)發(fā)送到Sink節(jié)點(diǎn); .5207、設(shè)立一個(gè)標(biāo)志flagl,并且賦值為假。當(dāng)發(fā)送數(shù)據(jù)η次后,將flagl賦值為真; . 5208、每發(fā)送一次數(shù)據(jù),通用傳感器收發(fā)模塊均開始檢查flag標(biāo)志,如果為真,則通過BL1551電源管理子模塊關(guān)閉Zigbee的電源,否則重新進(jìn)行傳送。
5.如權(quán)利要求4所述一種基于Zigbee和串口的通用傳感器收發(fā)方法,其特征在于:在步驟S201中,處理器開始檢查數(shù)組a中的數(shù)據(jù)時(shí),判斷為無效數(shù)據(jù),是通過在傳感器數(shù)據(jù)設(shè)定時(shí),如果出現(xiàn)錯(cuò)誤,就全部傳O數(shù)據(jù)。
6.如權(quán)利要求4所述一種基于Zigbee和串口的通用傳感器收發(fā)方法,其特征在于:在步驟S204中,處理器使能自己的串口 O是通過設(shè)置處理器的P35 口為OxlO的方式來設(shè)置為串口通信方式,使處理器與Zigbee子模塊進(jìn)行正常通信。
7.如權(quán)利要求1-6任一項(xiàng)所述一種基于Zigbee和串口的通用傳感器收發(fā)方法,其特征在于,控制管理過程具體為: . 5401、處理器以設(shè)定頻率對Zigbee子模塊進(jìn)行供電,Zigbee子模塊接收Sink節(jié)點(diǎn)發(fā)來數(shù)據(jù); .5402、Zigbee子模塊對接收到Sink節(jié)點(diǎn)發(fā)送來的數(shù)據(jù)進(jìn)行存儲; . 5403、將存儲下來的數(shù)據(jù)依次發(fā)送到串口,在通過串口I發(fā)送一個(gè)字節(jié)數(shù)據(jù)的時(shí)候led燈組的led4會亮滅一次;. . 5404、處理器串口I產(chǎn)生中斷,依次將數(shù)據(jù)取回到設(shè)定好的數(shù)組b中; .5405、處理器檢查數(shù)組b[0]中的數(shù)據(jù)是否與本節(jié)點(diǎn)的節(jié)點(diǎn)號相同,若不相同則丟棄不進(jìn)行處理,否則跳轉(zhuǎn)到命令表; . 5406、處理器根據(jù)命令表及相應(yīng)的函數(shù)進(jìn)行執(zhí)行Sink發(fā)來的命令; . 5407、處理器將執(zhí)行后的結(jié)果按照發(fā)送步驟進(jìn)行發(fā)回。
8.如權(quán)利要求7所述一種基于Zigbee和串口的通用傳感器收發(fā)方法,其特征在于:在步驟S406中,處理器在收到Sink節(jié)點(diǎn)數(shù)據(jù)并確認(rèn)是發(fā)送給自己時(shí),將會與事先存儲在內(nèi)存中的數(shù)據(jù)進(jìn)行比對,比對成功后會立即根據(jù)索引跳轉(zhuǎn)到相應(yīng)的函數(shù)執(zhí)行。
9.如權(quán)利要求1所述一種基于Zigbee和串口的通用傳感器收發(fā)方法,其特征在于,還包括電源管理過程:處理器控制Zigbee子模塊接通或關(guān)閉電源;電源管理過程具體為: . 5301、Zigbee子模塊的Vcc引腳接在BL1551電源管理子模塊上,BL1551電源管理子模塊接在處理器上Px引腳上; .5302、在通用傳感器收發(fā)模塊接通電源之后,處理器對Px引腳發(fā)出高電平,這樣Zigbee子模塊將接通電源; .5303、處理器對Px引腳發(fā)出低電平,這樣Zigbee子模塊將關(guān)閉電源。
【文檔編號】G08C17/02GK104318740SQ201410547252
【公開日】2015年1月28日 申請日期:2014年10月15日 優(yōu)先權(quán)日:2014年10月15日
【發(fā)明者】徐佳, 楊文峻, 徐小龍, 蔣凌云, 李千目, 王賡, 王震 申請人:南京郵電大學(xué)