【摘要】本論文主要內容是針對無線傳感器網絡的自組網絡的研究,提出了一種基于FPGA的高速運算處理的對等網絡節(jié)點的自組網絡的設計方法,用于構建WSN應用的專用設計IP核,適用于各種不同的WSN網絡層路由協(xié)議和各類不同的WSN應用場景。
【關鍵詞】FPGA無線傳感器網絡(WSN)自組網
無線傳感器網絡是一種低速的自組織移動ad hoc網絡,隨機分布的各個網絡節(jié)點通過相鄰節(jié)點間相互交換數(shù)據來實現(xiàn)整個網絡的路由功能。相鄰節(jié)點間相互通信要求節(jié)點能發(fā)現(xiàn)周圍節(jié)點和獲取周圍節(jié)點的相關信息PIB,用以接收其他節(jié)點發(fā)送的數(shù)據和選擇路由發(fā)送方向。
自組網就是無線傳感器網絡中節(jié)點間相互發(fā)現(xiàn),自主組織網絡上線的功能,在無線傳感器網絡中處于至關重要的位置,本設計采用FPGA在WSN的MAC層中實現(xiàn)自組網功能。
一、總體設計方案
無線傳感器網絡自組網的FPGA設計主要實現(xiàn)的功能包括:接收特定格式的自組網幀數(shù)據、轉發(fā)自組網幀報文、動態(tài)更新相鄰節(jié)點數(shù)據列表。
該無線傳感器網絡自組網的FPGA設計的總體結構如圖1所示。整個設計處于WSN的MAC層,向下接口為物理鏈路層PHY接口,向上的接口為網絡層Networks接口。PHY接口用于操作物理層的射頻芯片,完成通信信道的監(jiān)測和相關數(shù)據的收發(fā)。網絡層接口用于向網絡層提供路由選擇功能的鄰居節(jié)點信息列表。
自組網幀格式采用超幀的格式,其各數(shù)據段詳細說明如圖2所示。自組網幀報文的發(fā)送由一個發(fā)送節(jié)點和多個相鄰節(jié)點共同配合完成。首先發(fā)送節(jié)點發(fā)出超幀的頭部請求報文,相鄰節(jié)點在接到此報文后,采用隨機避退的方式在其后的任一應答時隙內發(fā)送應答信息,發(fā)送節(jié)點在每個應答時隙尾部都會反饋確認報文。
二、模塊設計方案
接收模塊初始化狀態(tài)為空閑等待狀態(tài)(IDLE),當從PHY接口接收到頭部請求報文,模塊將提取發(fā)送節(jié)點基本信息并發(fā)送給組網信息處理模塊,同時內部將產生一個小于N的偽隨機序列sequence,用于計數(shù)需要發(fā)送應答報文的間隙序號,并在相應間隙發(fā)送包含自身MAC地址和超幀序號信息的應答報文,隨后等待接收確認報文。如果確認報文中反饋的MAC地址為自身MAC地址則判斷為應答成功,重新進入等待頭部請求報文狀態(tài);反之,則判斷為應答失敗,再次產生一個小于等于N-sequence的偽隨機序列,用于再次發(fā)送應答報文。兩次應答后則無論是否應答成功都將進入等待頭部請求報文狀態(tài)。
接收模塊內部狀態(tài)機是接收模塊的核心,用于產生各個操作的控制信號。接收模塊狀態(tài)機的轉移圖如圖3所示。
接收模塊內部的偽隨機序列產生器如圖4所示,偽隨機序列的初始化種子采用亂序的內部時鐘計數(shù)器,由于各個節(jié)點的上電時間不同,因此產生的隨機序列也不同,從而避免各個節(jié)點應答時采用相同的退避序列。
發(fā)送模塊主要功能為發(fā)送超幀的頭部請求報文以及確認報文。頭部請求報文采用監(jiān)聽信道空閑固定時間段后,隨機避讓的方式發(fā)送。頭部請求報文中包含自身節(jié)點的MAC地址、網絡跳數(shù)和超幀序列號等基本信息。確認報文采用延遲固定應答時間間隙的方式發(fā)送確認報文,報文中嵌入當前時間間隙內收到的應答節(jié)點的MAC地址,如無則為缺省值,如果多次確認報文都無MAC地址則發(fā)送模塊會再次發(fā)送頭部請求報文。頭部請求報文的發(fā)送開啟信號由組網信息處理模塊發(fā)起。
組網信息處理模塊為本設計的核心控制模塊,主要功能為接收并處理接收模塊發(fā)來的數(shù)據信息,動態(tài)更新內部的相鄰節(jié)點信息列表和控制發(fā)送模塊的工作與停止。
2.3.1內部狀態(tài)機
處理模塊初始化狀態(tài)為接收等待狀態(tài),當接收到接收模塊發(fā)來的數(shù)據后首先進行相鄰節(jié)點信息更新,然后通過判斷超幀序列號的大小來決定是否轉發(fā),如果不需要轉發(fā)則回到等待狀態(tài),否則進入發(fā)送狀態(tài),發(fā)送完成則回到等待狀態(tài)。由于射頻芯片的SPI單串口操作,在發(fā)送狀態(tài)下,處理模塊需要將SPI接口轉換為由發(fā)送模塊控制,等待發(fā)送完成后,再轉換成由接收模塊控制。內部狀態(tài)轉移圖如圖5所示。
2.3.2相鄰節(jié)點信息列表更新
相鄰節(jié)點信息列表格式如表1所示,其中包含相鄰節(jié)點的MAC地址、超幀序列號、網絡跳數(shù)、節(jié)點有效標志位、節(jié)點剩余有效時間計數(shù)器和通信鏈路質量。處理模塊將接收到的相鄰節(jié)點的MAC地址通過HASH算法產生一個較短位數(shù)的索引地址,并將相鄰節(jié)點信息存入此索引地址的列表行中,同時置位有效狀態(tài)標志位和重置剩余有效時間。節(jié)點的剩余有效時間計數(shù)器在重置后逐漸遞減止到為0,然后清零有效標志位。
2.3.3處理模塊仿真測試結果
組網信息處理模塊的仿真測試結果如圖6所示,sys_clk為外部輸入時鐘分頻后的系統(tǒng)時鐘,rec_req為接口模塊的數(shù)據請求信號,處理模塊接收到數(shù)據,解析出相鄰節(jié)點的各個有效信息,并產生更新控制信號,完成has索引地址所對節(jié)點的信息的更新,然后產生發(fā)送控制信號,發(fā)送完成返回到等待狀態(tài)。
三、綜合結果
本設計采用硬件描述語言verilog設計完成,F(xiàn)PGA采用ALTERA公司的CYCLONE系列的EP1C3T114芯片,通過ALTERA公司的QUARTUS II軟件實現(xiàn)設計的仿真、綜合和下載測試,使用FPGA資源結果如表2所示。
四、結束語
本設計采用FPGA實現(xiàn)了無線傳感器網絡的自組網功能,完成了一個具有通用和可擴展的無線傳感器網絡應用的IP核,為WSN應用類ASIC芯片設計提供了可選擇的參考方案,將大大提高芯片的研發(fā)效率。