危險(xiǎn)品倉庫的復(fù)合無線傳感器節(jié)點(diǎn)設(shè)計(jì)
2 復(fù)合傳感器節(jié)點(diǎn)軟件設(shè)計(jì)
2.1 復(fù)合傳感器節(jié)點(diǎn)操作系統(tǒng)的選擇
本課題選用TinyOS操作系統(tǒng),其程序采用模塊化設(shè)計(jì),所以它的程序核心往往都很小(一般來說核心代碼和數(shù)據(jù)大概在400字節(jié)左右),能夠突破傳感器存儲(chǔ)資源少的限制,這能夠讓TinyOS很有效地運(yùn)行在無線傳感器網(wǎng)絡(luò)上并去執(zhí)行相應(yīng)的管理工作等。TinyOS本身提供了一系列的組件,可以很方便地編制程序,用來獲取和處理傳感器的數(shù)據(jù)并通過無線網(wǎng)絡(luò)來傳輸信息。
2.2 復(fù)合傳感器驅(qū)動(dòng)程序設(shè)計(jì)
復(fù)合傳感器驅(qū)動(dòng)程序由3部分組成:傳感器接口定義文件、傳感器接口配置文件、傳感器接口實(shí)現(xiàn)文件,如表1所列。本文引用地址:http://m.butianyuan.cn/article/162265.htm
傳感器接口定義文件聲明了傳感器與外界的接口。提供的命令函數(shù)和事件函數(shù)包括read()命令函數(shù)和readDone()事件函數(shù),如表1中所述。其中命令函數(shù)由接口提供者實(shí)現(xiàn),事件函數(shù)由調(diào)用接口者實(shí)現(xiàn)。傳感器接口配置文件定義了要實(shí)現(xiàn)SHT接口需要哪些組件。傳感器接口
實(shí)現(xiàn)文件具體實(shí)現(xiàn)SHT接口和傳感器驅(qū)動(dòng)。
2.3 復(fù)合傳感器節(jié)點(diǎn)數(shù)據(jù)通信設(shè)計(jì)
復(fù)合傳感器節(jié)點(diǎn)數(shù)據(jù)通信協(xié)議為分發(fā)式、收集式。其中分發(fā)式用來傳遞指令和參數(shù)給所有傳感器節(jié)點(diǎn);收集式用來收集所有傳感器節(jié)點(diǎn)采集到的數(shù)據(jù)。因此定義了如圖7所示的結(jié)構(gòu)體來存儲(chǔ)需要分發(fā)的指令和收集的數(shù)據(jù)。這些數(shù)據(jù)只能通過相應(yīng)的接口才能獲取,從而保證了數(shù)據(jù)的安全性。
2.3.1 分發(fā)式
匯聚節(jié)點(diǎn)將新定義好的控制指令和參數(shù)裝入數(shù)據(jù)包后,分發(fā)組件調(diào)用Send接口將該包發(fā)送至各個(gè)節(jié)點(diǎn)。節(jié)點(diǎn)收到包后,會(huì)做出相應(yīng)的調(diào)整并反饋當(dāng)前狀態(tài)信息給應(yīng)用程序。分發(fā)式網(wǎng)絡(luò)協(xié)議工作原理如圖8所示。
分發(fā)式協(xié)議中用到的組件包括:DisseminationC(分發(fā)協(xié)議的控制部分)、DisseminatorC(分發(fā)協(xié)議進(jìn)行數(shù)據(jù)分發(fā)和接收的部分)、BcastSenderC(向網(wǎng)絡(luò)中廣播數(shù)據(jù))。
分發(fā)式協(xié)議中用到的接口包括:StdControl(對(duì)分發(fā)協(xié)議進(jìn)行控制)、DisseminationUpdate(將上層傳來的命令進(jìn)行分發(fā))、Send(廣播)。
2.3.2 收集式
匯聚節(jié)點(diǎn)需要收集各節(jié)點(diǎn)采集到的數(shù)據(jù)時(shí)調(diào)用收集式協(xié)議,應(yīng)用程序通過AMSend接口將收集消息傳給AMRadio組件,當(dāng)AM Radio組件經(jīng)Receive接口收到數(shù)據(jù)包后由Packet接口打開并取出相關(guān)值由應(yīng)用程序處理。收集式網(wǎng)絡(luò)協(xié)議工作原理如圖9所示。
收集式協(xié)議中用到的組件包括:CollectionC(CTP協(xié)議)、PoolC(數(shù)據(jù)緩沖池)、QueueC(數(shù)據(jù)緩沖隊(duì)列),收集式協(xié)議中用到的接口包括:Packet(對(duì)Packet進(jìn)行操作)、Receive(接收數(shù)據(jù))、AMSend(發(fā)送數(shù)據(jù))。
評(píng)論