孫健
(貴陽(yáng)學(xué)院 電子與通信工程學(xué)院,貴州貴陽(yáng) 550005)
無(wú)線傳感網(wǎng)絡(luò)(WSN)由大量低成本微型低功耗傳感節(jié)點(diǎn)布置在測(cè)控范圍內(nèi)組成,通過(guò)無(wú)線通信技術(shù)組成網(wǎng)絡(luò)系統(tǒng)。目前相當(dāng)數(shù)量的無(wú)線傳感網(wǎng)絡(luò)應(yīng)用對(duì)于傳感器節(jié)點(diǎn)數(shù)量需求有限、對(duì)于節(jié)點(diǎn)的組網(wǎng)方式也并無(wú)特殊的要求,但對(duì)于成本十分的敏感。針對(duì)此需求設(shè)計(jì)了一種基于星形拓?fù)涞臒o(wú)線傳感網(wǎng)絡(luò)中心節(jié)點(diǎn)控制器[1-2]。
傳感網(wǎng)絡(luò)采用星形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示,網(wǎng)絡(luò)中所有無(wú)線傳感器節(jié)點(diǎn)都與中心節(jié)點(diǎn)可進(jìn)行雙向通信、節(jié)點(diǎn)與節(jié)點(diǎn)之間不進(jìn)行數(shù)據(jù)傳送。
圖1 短距離無(wú)線傳感網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖
由于傳感器節(jié)點(diǎn)與中心節(jié)點(diǎn)通信面臨碰撞問(wèn)題,節(jié)點(diǎn)相互間存在干擾會(huì)使得節(jié)點(diǎn)同中心間的通信無(wú)法進(jìn)行,從而降低了無(wú)線信道的使用效率同時(shí)也會(huì)加大節(jié)點(diǎn)功耗。針對(duì)碰撞問(wèn)題節(jié)點(diǎn)控制器采用載波監(jiān)聽(tīng)多址接入與沖突避免(CSMA/CA)協(xié)議來(lái)避免沖突提高信道的使用效率,控制器工作過(guò)程如下:
中心節(jié)點(diǎn)發(fā)出SCAN幀通知傳感器節(jié)點(diǎn)上傳數(shù)據(jù)或當(dāng)傳感器節(jié)點(diǎn)有數(shù)據(jù)需要向中心節(jié)點(diǎn)發(fā)送時(shí)首先偵聽(tīng)信道上是否有信號(hào)傳輸,如有信號(hào)傳輸則采用退避算法進(jìn)行延時(shí)后再進(jìn)行偵聽(tīng)。如節(jié)點(diǎn)偵聽(tīng)到信道空閑則向中心節(jié)點(diǎn)發(fā)送請(qǐng)求發(fā)送幀(RTS),中心節(jié)點(diǎn)在接收到RTS幀以后回發(fā)一個(gè)允許發(fā)送數(shù)據(jù)幀(Clear To Send),其他節(jié)點(diǎn)在接收到RTS幀和CTS幀后根據(jù)退避算法進(jìn)行延時(shí)避讓。節(jié)點(diǎn)在接收到CTS幀后進(jìn)行數(shù)據(jù)幀(DATA)的發(fā)送,如節(jié)點(diǎn)在一定時(shí)間內(nèi)若未收到CTS幀則執(zhí)行退避延時(shí)算法后再次發(fā)送RTS。中心節(jié)點(diǎn)在接收到DATA幀后向節(jié)點(diǎn)發(fā)送確認(rèn)幀(ACK),如節(jié)點(diǎn)在規(guī)定時(shí)間內(nèi)為收到ACK幀則重新發(fā)送DATA幀而不必再次進(jìn)行延時(shí)[3-4]。
中心節(jié)點(diǎn)需要更通知傳感節(jié)點(diǎn)發(fā)送新數(shù)據(jù)時(shí),首先完成當(dāng)前數(shù)據(jù)傳送,而后發(fā)送SCAN幀通知傳感節(jié)點(diǎn)上傳數(shù)據(jù)。SCAN幀中的第15到第8位為特征位;第7位為集體接收控制位,為‘1’所有節(jié)點(diǎn)接收、為‘0’指定節(jié)點(diǎn)接收,接收節(jié)點(diǎn)ID由第6到第0位決定。本設(shè)計(jì)的SCAN幀格式如表1所示。
RTS幀不僅是發(fā)送給中心節(jié)點(diǎn)進(jìn)行信道預(yù)約同時(shí)也告知其他節(jié)點(diǎn)本節(jié)點(diǎn)要進(jìn)行數(shù)據(jù)傳輸,其他節(jié)點(diǎn)應(yīng)執(zhí)行退避算法。RTS幀中的第15到第8位為特征位;第7位為預(yù)留位,第6到第0位為發(fā)送RST幀的傳感器節(jié)點(diǎn)ID。RTS幀格式如表2所示。
CTS幀為傳感器節(jié)點(diǎn)數(shù)據(jù)發(fā)送允許幀,如傳感器節(jié)點(diǎn)在發(fā)出RTS幀收沒(méi)有接受到CTS幀,則在一定延時(shí)后重新發(fā)送RTS幀。CTS幀中的第15到第8位為特征位;第7位為數(shù)據(jù)發(fā)送允許位,為‘1’允許,第6到第0位為允許發(fā)送數(shù)據(jù)傳感器節(jié)點(diǎn)ID。CTS幀格式如表3所示。
表1 SCAN幀格式
表2 RTS幀格式
表3 CTS幀格式
表5 DATA幀格式
表4 ACK幀格式
圖2 傳感器節(jié)點(diǎn)控制器頂層原理圖
傳感器節(jié)點(diǎn)接收到CTS幀后先與本節(jié)點(diǎn)ID比較,如ID為本節(jié)點(diǎn)且數(shù)據(jù)發(fā)送允許則向中心節(jié)點(diǎn)發(fā)送DATA幀。DATA幀第23到第16位為特征位,第15位為預(yù)留位,第14到第8位為發(fā)送節(jié)點(diǎn)ID,第7到第0位為數(shù)據(jù)信息。DATA幀格式如表4所示。
在DATA幀發(fā)送后,如中心節(jié)點(diǎn)正確接收到DATA幀則回復(fù)一個(gè)ACK幀通知數(shù)據(jù)發(fā)送節(jié)點(diǎn)數(shù)發(fā)送成功,如在一定時(shí)間內(nèi)未收到DATA幀中心節(jié)點(diǎn)會(huì)重新發(fā)送CTS幀告知節(jié)點(diǎn)重新發(fā)送DATA幀[5]。DATA幀格式如表5所示。
圖3 序列信號(hào)檢查器功能仿真波形圖
圖4 數(shù)據(jù)接收器功能仿真波形圖
圖5 狀態(tài)機(jī)功能仿真波形圖
圖6 延時(shí)計(jì)數(shù)器功能仿真波形圖
控制器設(shè)計(jì)硬件描述語(yǔ)言采用VHDL,邏輯控制采用有限狀態(tài)機(jī)FSM(Finite State Machine)進(jìn)行。狀態(tài)設(shè)計(jì)如下:S0為初始態(tài)檢測(cè)是否有針對(duì)本節(jié)點(diǎn)SCAN幀或者檢查到傳感器有數(shù)據(jù)需要發(fā)送則進(jìn)入S1態(tài);S1狀態(tài)檢測(cè)信道是否空閑如信道空閑則發(fā)送RTS進(jìn)入S2,如信道繁忙則延時(shí)退避一定時(shí)間后再檢測(cè)信道是否繁忙;S2檢測(cè)是否有針對(duì)本節(jié)點(diǎn)的CTS如檢測(cè)到則進(jìn)入S3;S3檢測(cè)信道是否繁忙如信道空閑則發(fā)送DATA幀進(jìn)入S4;S4檢測(cè)是否有針對(duì)本節(jié)點(diǎn)的ACK如有則進(jìn)入S0,若在規(guī)定時(shí)間內(nèi)沒(méi)有收到ACK則進(jìn)入S3。
圖2中SCAN、RTS、CTS與ACK模塊分別用于檢查SCAN幀、RTS幀、RTS幀與ACK幀特征字,這幾個(gè)模塊的原型為sequence_detector 針對(duì)不同的特征字檢測(cè)只需在模塊內(nèi)填入相應(yīng)的特征字符即可。對(duì)各模塊的功能仿真采用Modelsim 6.5 se軟件進(jìn)行sequence_detector模塊的功能仿真圖如圖3、4所示。
Data_receive模塊用于接收幀中的ID值并送入狀態(tài)機(jī),其功能仿真圖如圖4所示。
WSN_FSM模塊為狀態(tài)機(jī)控制各部分協(xié)調(diào)工作,其功能仿真圖如圖5所示。
time_delay模塊在狀態(tài)機(jī)的控制下用于于延時(shí)計(jì)時(shí),其功能仿真圖如圖6所示。
sequence_sent模塊用于發(fā)送RTS幀,與DATA幀,其功能仿真圖如圖7所示。
圖7 序列信號(hào)輸出器功能仿真波形圖
通過(guò)功能仿真?zhèn)鞲衅鞴?jié)點(diǎn)控制器的設(shè)計(jì)得到了驗(yàn)證,為近距離無(wú)線傳感網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)打下了基礎(chǔ)。使用VHDL語(yǔ)言進(jìn)行的設(shè)計(jì)可以在較大的程度上做到平臺(tái)無(wú)關(guān)性,如需求量大還可生產(chǎn)專(zhuān)用集成電路(ASIC)進(jìn)一步降低價(jià)格。該控制器的設(shè)計(jì)也可為物聯(lián)網(wǎng)感知層的設(shè)計(jì)提供參考。
[1]劉敏鈺,吳泳,伍衛(wèi)國(guó).無(wú)線傳感網(wǎng)絡(luò)(WSN)研究[J].微電子學(xué)與計(jì)算機(jī),2005,22(7):58-61.
[2]曾偉,徐明偉,吳建平.網(wǎng)絡(luò)拓?fù)淠P褪鲈u(píng)[J].計(jì)算機(jī)應(yīng)用研究,2005,(7):1-4,8.
[3]鄭朝霞,鄒雪城,姜天杰,杜鵑. WSN中CSMA_CA協(xié)處理器的軟硬協(xié)同設(shè)計(jì)[J].固體電子學(xué)研究與進(jìn)展,2009,29(1):132-137.
[4]路麗君.基于CSMA/CA的無(wú)線網(wǎng)絡(luò)多播協(xié)議的排隊(duì)性能分析[D].蘭州:蘭州理工大學(xué),2010:2-4.
[5]胡代榮.基于無(wú)線自組網(wǎng)的自動(dòng)抄表系統(tǒng)的研究[D].大連:大連海事大學(xué),2010:27-29.