于 標(biāo), 繆德俊, 許 郡
(揚州職業(yè)大學(xué), 江蘇 揚州 225009)
無線傳感器網(wǎng)絡(luò)(WSN)是一種分布式網(wǎng)絡(luò),傳感器節(jié)點布置方便,廣泛應(yīng)用于工農(nóng)業(yè)生產(chǎn)、醫(yī)療衛(wèi)生、科技軍事等許多領(lǐng)域。[1]長期以來,實驗室安全問題一直是人們關(guān)注的重要問題。實驗室安全保障除實驗人員按操作規(guī)范工作外,另一個方面就是實驗室環(huán)境參數(shù)的科學(xué)檢測與及時報告。無線傳感器網(wǎng)絡(luò)組網(wǎng)靈活,覆蓋度高,成本低,將WSN技術(shù)用于實驗室環(huán)境監(jiān)測,可提高實驗室安全管理的信息化程度與實時性,具有現(xiàn)實意義與實用價值。干線式層次型網(wǎng)絡(luò)擴(kuò)展性好,路由明確。其網(wǎng)絡(luò)拓?fù)錇樾畔鬏攲优c數(shù)據(jù)采集層兩層,[2]適合于實驗室安全監(jiān)測網(wǎng)絡(luò)使用。實驗室安全環(huán)境檢測涉及多個方面,普通實驗室一般會考慮到用電管理、空氣質(zhì)量檢測、溫濕度檢測、防火報警、防淹水報警等安全問題。本文從普通實驗室情況出發(fā),設(shè)計了干線式層次型網(wǎng)絡(luò)路由協(xié)議,并對簇首節(jié)點進(jìn)行了分析設(shè)計。
實驗室的地理位置分布往往并不規(guī)律,一般情況下,各實驗室在同一幢樓內(nèi)是常見的一種布置。這種布置從幾何關(guān)系來講,是一維隊列關(guān)系。當(dāng)被測對象在地理上以隊列形式分布時,干線式層次型網(wǎng)絡(luò)是自然的選擇。當(dāng)相鄰被測對象相距較遠(yuǎn)時,可在二者之間增加中繼節(jié)點傳輸數(shù)據(jù),使數(shù)據(jù)傳輸層信號保持聯(lián)通。
圖1是干線式層次型網(wǎng)絡(luò)拓?fù)鋱D,是一棵沒有分支的有向樹。[3]干線式層次型網(wǎng)絡(luò)繼承了樹型結(jié)構(gòu)存儲信息的分布性與信息搜索的順序性特點。[4]簇首與成員是星型結(jié)構(gòu),簇首與成員的能量由直流穩(wěn)壓電源供給或人工更換電池,不存在能量均衡使用問題。簇首之間組成一條單向有向通路,實現(xiàn)遠(yuǎn)距離多跳數(shù)據(jù)傳輸。成員節(jié)點采集環(huán)境參數(shù),與簇首組成下層網(wǎng)絡(luò)。簇內(nèi)節(jié)點采用碼分制識別,成員與簇首的無線頻道地址互為收發(fā)配置地址,由簇首負(fù)責(zé)簇內(nèi)數(shù)據(jù)的傳輸。設(shè)有32個簇首組成上層網(wǎng)絡(luò),可對32個實驗室進(jìn)行數(shù)據(jù)檢測。預(yù)留3個中繼節(jié)點適應(yīng)不同傳輸距離的需要。干線式層次型無線傳感器網(wǎng)絡(luò)以事件驅(qū)動方式工作,[5]簇首可自主上傳數(shù)據(jù),也可被動上傳數(shù)據(jù)。管理人員通過數(shù)據(jù)終端查詢上傳的實驗室檢測數(shù)據(jù),也可由數(shù)據(jù)終端節(jié)點上傳數(shù)據(jù)至上位計算機(jī)查詢。
路由決定了數(shù)據(jù)傳輸?shù)穆窂?是無線傳感器網(wǎng)絡(luò)關(guān)鍵技術(shù)之一,涉及到網(wǎng)絡(luò)能量消耗、信息傳輸延遲等問題。[6]無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)是多跳傳輸方式,干線式層次型網(wǎng)絡(luò)數(shù)據(jù)的上行與下行路徑相同,路由計算簡明,數(shù)據(jù)傳輸速度快。定義干線式層次型網(wǎng)絡(luò)路由協(xié)議為:上行數(shù)據(jù),高編號簇首向低編號簇首發(fā)送數(shù)據(jù),對頻道接收地址遞減實現(xiàn)。下行數(shù)據(jù),低編號簇首向高編號簇首發(fā)送數(shù)據(jù),對頻道接收地址遞增實現(xiàn)。無線芯片nRF24L01自身具有地址ID識別功能,各傳感器節(jié)點共有同一個頻道,用碼分制識別個體是合理的選擇,消除了無線數(shù)據(jù)傳輸頻道競爭問題。
1.2.1 中繼節(jié)點頻道地址安排
中繼節(jié)點發(fā)送頻道,按1號中繼節(jié)點、2號中繼節(jié)點、3號中繼節(jié)點的順序依次為{9F,01,AA,AA,AA}、{9F,02,AA,AA,AA}、{9F,03,AA,AA,AA}。
中繼節(jié)點接收頻道,按1號中繼節(jié)點、2號中繼節(jié)點、3號中繼節(jié)點的順序依次為{9F,00,AA,AA,AA}、{9F,01,AA,AA,AA}、{9F,02,AA,AA,AA}。
1.2.2 數(shù)據(jù)終端節(jié)點頻道地址安排
數(shù)據(jù)終端節(jié)點發(fā)送頻道{9F,04,AA,AA,AA},數(shù)據(jù)終端節(jié)點接收頻道{9F,03,AA,AA,AA}。
1.2.3 簇首頻道地址安排
簇首接收頻道{ZZ,01,AA,AA,AA},其中ZZ為本機(jī)跳線確定的數(shù)據(jù)。簇首發(fā)送頻道{WW,01,AA,AA,AA},WW=ZZ-1。僅當(dāng)ZZ>1時,計算WW的值。當(dāng)ZZ=0時,該簇首發(fā)送頻道為{9F,00,AA,AA,AA},即第一級中繼節(jié)點。
1.2.4 成員頻道地址安排
成員接收頻道{ZZ,02,AA,AA,AA},成員發(fā)送頻道{ZZ,01,AA,AA,AA},其中ZZ為本機(jī)跳線確定的數(shù)據(jù)。成員發(fā)送頻道就是成員所在實驗室簇首的接收頻道,成員的識別,由簇首發(fā)給成員的數(shù)據(jù)幀中第二字節(jié)數(shù)據(jù)確定。
定義數(shù)據(jù)幀格式為16字節(jié)長,第一字節(jié)為命令字節(jié),F1為上行命令,F2為下行命令。上行命令是將實驗室的檢測數(shù)據(jù)傳送至數(shù)據(jù)終端,下行命令要求上傳某實驗室的檢測數(shù)據(jù),由數(shù)據(jù)終端發(fā)出。
1.3.1 數(shù)據(jù)上傳算法
①第i個簇首發(fā)F1命令數(shù)據(jù)幀,i∈(0,1,2…,31);
②第i-1個簇首轉(zhuǎn)發(fā)F1命令數(shù)據(jù)幀,i∈(0,1,2…,31);
③if(i-1=0)then(轉(zhuǎn)發(fā)1號中繼,轉(zhuǎn)④)else(轉(zhuǎn)②);
④if(命令字節(jié)=F1)then(轉(zhuǎn)發(fā)2號中繼,轉(zhuǎn)⑤)else(不響應(yīng));
⑤if(命令字節(jié)=F1)then(轉(zhuǎn)發(fā)3號中繼,轉(zhuǎn)⑥)else(不響應(yīng));
⑥if(命令字節(jié)=F1)then(轉(zhuǎn)發(fā)數(shù)據(jù)終端)else(不響應(yīng))。
1.3.2 數(shù)據(jù)下傳算法
①數(shù)據(jù)終端向3號中繼節(jié)點發(fā)(F2+簇首號)數(shù)據(jù)幀;
②if(命令字節(jié)=F2)then(轉(zhuǎn)發(fā)2號中繼,轉(zhuǎn)③)else(不響應(yīng));
③if(命令字節(jié)=F2)then(轉(zhuǎn)發(fā)1號中繼,轉(zhuǎn)④)else(不響應(yīng));
④if((命令字節(jié)=F2)&(i=簇首號))then(本簇接收)else(轉(zhuǎn)⑤);
⑤if((命令字節(jié)=F2)&(i≠簇首號))then(轉(zhuǎn)發(fā)數(shù)據(jù)幀,轉(zhuǎn)④)else(不響應(yīng))。
圖1為環(huán)境參數(shù)檢測與傳送無線傳感器網(wǎng)絡(luò),可作為實驗室安全監(jiān)測網(wǎng)絡(luò)使用,本文對該網(wǎng)絡(luò)的功能與實現(xiàn)進(jìn)行討論。簇首節(jié)點的功能有數(shù)據(jù)傳輸、實驗人員工號維護(hù)與使用、實驗室電源使用管理、實驗時長控制管理。成員節(jié)點的功能是檢測實驗室環(huán)境參數(shù),可以根據(jù)實驗室的需要選取。
簇首節(jié)點是一個實時多任務(wù)應(yīng)用電路,考慮到無線數(shù)據(jù)收發(fā)與實驗時長計時的實時性要求,防止多任務(wù)沖突產(chǎn)生,選擇雙CPU的控制單元架構(gòu)。設(shè)計有三個硬件單元:用電管理、數(shù)據(jù)傳輸與人機(jī)通道。用電管理單元對實驗通電權(quán)限授權(quán),實驗結(jié)束斷電監(jiān)測保護(hù)。數(shù)據(jù)傳輸單元選用nRF24L01收發(fā)一體無線芯片通信模塊實現(xiàn)。人機(jī)通道單元選用ZLG600A-T2射頻讀寫模塊、廉價的按鍵和LED數(shù)碼管電路組成,輸入與顯示實驗人員身份信息及相關(guān)提示信息。簇首電路的設(shè)計在實現(xiàn)電路功能的基礎(chǔ)上,應(yīng)考慮使用的便捷性與可靠性,其次是性價比的高低。圖2為簇首節(jié)點電路圖,選用STC15F2K60S2單片機(jī)。該型單片機(jī)具有雙串口、60KB的flash程序存儲器、1KB的EEPROM和2KB的外部SRAM,無需用戶擴(kuò)展外部存儲器。該單片機(jī)設(shè)計了雙數(shù)據(jù)指針寄存器DPTR與DPTR1,可方便處理表格數(shù)據(jù),為簇首軟硬件功能擴(kuò)展留下一定空間。
簇首除擔(dān)負(fù)用電管理的功能外,還負(fù)責(zé)本室內(nèi)成員節(jié)點數(shù)據(jù)上傳。為實現(xiàn)用電管理功能,人機(jī)通道應(yīng)用程序是必須完成的任務(wù)。程序功能好壞影響操作者使用的便捷性與正確性。圖3是人機(jī)通道程序流程圖。
2.2.1 按鍵程序設(shè)計
實驗教師工號輸入,密碼輸入及信息確認(rèn),均需按鍵操作完成。圖4為按鍵處理程序流程圖。
定義K1-K3分別為修改/移位、加1、確認(rèn)功能,實現(xiàn)對任一數(shù)據(jù)位的修改。在修改狀態(tài)下,K1作為移位功能鍵使用。移位操作與加1操作都與被選的數(shù)據(jù)位相關(guān),每一位數(shù)碼管顯示的數(shù)據(jù)均存放在其對應(yīng)的顯示緩沖區(qū)單元中,只要記下當(dāng)前被選數(shù)據(jù)位,就能確定待修改數(shù)據(jù)位,也就是閃爍顯示位。按鍵操作的靈敏性取決于按鍵掃描周期的長短。在按鍵處理的多任務(wù)應(yīng)用程序中,各任務(wù)執(zhí)行一遍的周期長短影響按鍵操作的靈敏性。理論與實踐均表明,各任務(wù)執(zhí)行時間越短按鍵操作越靈敏。
2.2.2 RFID射頻卡讀卡程序設(shè)計
在已具有某種應(yīng)用功能的電子產(chǎn)品上進(jìn)行二次開發(fā),是一種高效可靠的電子產(chǎn)品研發(fā)方法,本設(shè)計選用ZLG600A-T2型射頻讀卡模塊,定義為從機(jī),根據(jù)ZLG600A-T2 的接口協(xié)議與主機(jī)進(jìn)行電氣連接。通信的開始由ZLG600A-T2自動偵測主機(jī)波特率,與主機(jī)通信成功則發(fā)06H,主機(jī)配置模塊為自動讀卡模式。
2.2.3 顯示程序設(shè)計
顯示程序通用性要好,定義顯示緩沖區(qū)為24H~2AH。有顯示要求的任務(wù)程序,只需計算出待顯示數(shù)據(jù)在字形碼表中的偏移量,并存放在相應(yīng)顯示緩沖單元即可。圖5是7位LED閃爍顯示程序流程圖,閃爍位為可修改數(shù)據(jù)位。DISP為7位顯示程序,DISP-1為6位顯示程序。DISP-2通過調(diào)用DISP和DISP-1不同的次數(shù)獲得不同的閃爍效果,以實際調(diào)試情況確定。
干線式層次型網(wǎng)絡(luò)適合實驗室環(huán)境參數(shù)檢測與傳輸?shù)囊?具有組網(wǎng)靈活和擴(kuò)展性[7]等優(yōu)點。實驗室安全監(jiān)測無線傳感器網(wǎng)絡(luò)是提高實驗室信息化管理的重要手段,它完成了對實驗室的安全狀況進(jìn)行實時監(jiān)測與報警。干線式層次型網(wǎng)絡(luò)可以作為一種基礎(chǔ)網(wǎng)絡(luò),可在此基礎(chǔ)上組成大型實驗室安全監(jiān)測系統(tǒng)。干線式層次型網(wǎng)絡(luò)設(shè)計合理,便于工程實施,具有實用價值。