STM32L152和S14432的無(wú)線(xiàn)網(wǎng)絡(luò )系統設計
4.3 數據發(fā)送和接收
數據發(fā)送模塊負責將數據包發(fā)送出去。當接收到發(fā)送指令時(shí),首先通過(guò)SPI清空射頻芯片的發(fā)送FIFO,然后向發(fā)送FIFO里寫(xiě)入需要發(fā)送的數據。打開(kāi)射頻芯片發(fā)送完成中斷并禁止其他所有中斷。微控制器使能射頻芯片的發(fā)送功能,數據開(kāi)始無(wú)線(xiàn)發(fā)送。將IRQ引腳拉高,并等待無(wú)線(xiàn)發(fā)送完成中斷。如果數據發(fā)送成功,則NIRQ變低電平。
數據接收模塊負責接收數據包。當接收到微控制器的接收指令時(shí),首先通過(guò)SPI清空射頻芯片的接收FIFO。打開(kāi)前導碼接收、幀同步中斷和接收包數據有效中斷,并關(guān)閉其他中斷。準備好開(kāi)始接收。若引腳NIRQ變?yōu)榈碗娖?,且讀取到接收包數據有效中斷位,通過(guò)SPI讀取接收FIFO中的數據,關(guān)閉接收功能。發(fā)送和接收程序流程如圖5所示。本文引用地址:http://dyxdggzs.com/article/155878.htm
4.4 系統管理機制
無(wú)線(xiàn)網(wǎng)絡(luò )由主節點(diǎn)和從節點(diǎn)組成,是一個(gè)以主節點(diǎn)為根中心的樹(shù)形拓撲。整個(gè)網(wǎng)絡(luò )的管理是通過(guò)各節點(diǎn)中的網(wǎng)絡(luò )管理模塊完成的。無(wú)線(xiàn)網(wǎng)絡(luò )采用LEPS(Link Estimation and Parent Selection)協(xié)議。LEPS協(xié)議是TinyOS系統的多跳路由協(xié)議。它通過(guò)節點(diǎn)之間的鄰居信息交換
機制,考慮鏈路質(zhì)量,建立到中心節點(diǎn)的最短通信路徑。
從節點(diǎn)分為不同級別的父節點(diǎn),只向自己的父節點(diǎn)發(fā)送信息,通過(guò)父節點(diǎn)逐級向上傳到主節點(diǎn)。從節點(diǎn)路由表中擁有自己子節點(diǎn)的編號地址。父節點(diǎn)處于網(wǎng)絡(luò )的中心是最高級的父節點(diǎn),它的路由表中擁有整個(gè)網(wǎng)絡(luò )節點(diǎn)的編號和地址。主節點(diǎn)的數據由其子節點(diǎn)逐級傳向各從節點(diǎn)。
無(wú)線(xiàn)網(wǎng)絡(luò )分為拓撲結構的建立、路由維護和數據通信3個(gè)階段。在拓撲結構的建立階段,所有的節點(diǎn)周期性地廣播自己的路由信息,節點(diǎn)根據跳數和鏈路質(zhì)量信息建立最短條數路由,建立路由表。網(wǎng)絡(luò )將進(jìn)行定期的維護,在維護的過(guò)程中,節點(diǎn)將再次對父節點(diǎn)做出評估,刷新路由表。在數據通信階段,路由協(xié)議為數據傳遞提供行進(jìn)路徑。在完成組網(wǎng)后,若向網(wǎng)絡(luò )中增加節點(diǎn),則只需要對網(wǎng)絡(luò )進(jìn)行維護更新,更新路由表即可。
4.5 父節點(diǎn)選擇
所有從節點(diǎn)的數據都是通過(guò)父節點(diǎn)傳送到主節點(diǎn)的。父節點(diǎn)性能是路由協(xié)議的核心部分。父節點(diǎn)的選擇決定于鏈路質(zhì)量和跳數。
鏈路質(zhì)量是兩節點(diǎn)間的雙向鏈路通信質(zhì)量。以?xún)上噜徆濣c(diǎn)A、B為例。在網(wǎng)絡(luò )廣播信息中,節點(diǎn)A向節點(diǎn)B發(fā)送多組數據,則B節點(diǎn)的接收成功率為:
協(xié)議進(jìn)一步采用加權唯一平均的方法計算最終的鏈路質(zhì)量估計值,進(jìn)而減小鏈路質(zhì)量評估的抖動(dòng)。令新的鏈路估計值為NEWEST,所占比例為μ=25%,則原先的作戰比例為(1-μ),最終的鏈路質(zhì)量估計值為:
跳數HOPNU為節點(diǎn)到主節點(diǎn)的總共轉發(fā)次數。在網(wǎng)絡(luò )中,由于鏈路質(zhì)量的原因,節點(diǎn)的父節點(diǎn)可能丟失。在進(jìn)行父節點(diǎn)選取時(shí),為了保證父節點(diǎn)的質(zhì)量,通常選用SEDEST>0.1,RCVEST>0.1和EST>0.16的鏈路質(zhì)量,這樣不至于鏈路質(zhì)量過(guò)低而不穩定。然后在相鄰節點(diǎn)中先判斷跳數最小,再判斷鏈路通信質(zhì)量選擇父節點(diǎn)。
結語(yǔ)
本系統采用的STM32L152主控芯片和SI4432無(wú)線(xiàn)收發(fā)芯片都屬于低功耗高集成芯片,降低了系統的功耗。其中STM32L152是Cortex-M3微控制器,提高了系統的性能;主節點(diǎn)帶有硬件備份提高了系統的可靠性;LPES路由協(xié)議技術(shù)提高系統的通信效率,使系統拓展方便。本系統適合于工業(yè)現場(chǎng)數據采集、小區數據采集、醫院病房監控、農業(yè)現場(chǎng)數據采集等一些短距離的通信應用。功能模塊化和網(wǎng)絡(luò )可拓展化,使系統便于功能的更新和節點(diǎn)的拓展。
評論