基于LwIP的熱插拔網(wǎng)絡嵌入式設計方法
發(fā)布時間:2021-08-15 16:03
本文從硬件設計、軟件架構(gòu)設計和采用狀態(tài)機設計的熱插拔網(wǎng)絡處理任務三個方面描述了一種基于LwIP的熱插拔網(wǎng)絡嵌入式設計與實現(xiàn)。網(wǎng)絡處理任務通過查詢連接狀態(tài)的方式,采用狀態(tài)機設計了熱插拔網(wǎng)絡子任務,實現(xiàn)了動態(tài)申請和釋放內(nèi)存,并在確保網(wǎng)絡可靠連接下進行UDP通信,同時提出了兩種軟件優(yōu)化方式,減少斷線重連等待對后臺系統(tǒng)任務輪詢的占用。
【文章來源】:單片機與嵌入式系統(tǒng)應用. 2020,20(04)
【文章頁數(shù)】:5 頁
【部分圖文】:
硬件設計框圖
在前臺程序中則通過中斷方式完成對異步事件的實時響應。前臺系統(tǒng)設計時將數(shù)據(jù)量較大且含有設備信號參數(shù)的網(wǎng)絡中斷設計為最高的搶占優(yōu)先級和響應優(yōu)先級,將用于分機內(nèi)部模塊之間通信的串口中斷為次之的搶占優(yōu)先級和響應優(yōu)先級,而將定時器中斷作為LwIP計時時鐘及內(nèi)部定時時鐘,設計為最低的搶占優(yōu)先級和響應優(yōu)先級。前后臺系統(tǒng)處理流程如圖2所示。3 熱插拔網(wǎng)絡處理任務設計
熱插拔網(wǎng)絡狀態(tài)機通過將“內(nèi)存申請”狀態(tài)和“網(wǎng)絡重連”狀態(tài)設計為兩個子任務,避免了內(nèi)存的重復申請。而在內(nèi)存釋放狀態(tài)下,則逆向地對LwIP初始化時注冊的函數(shù)及申請的空間進行釋放,以實現(xiàn)“純凈”的熱插拔網(wǎng)絡設計。首先調(diào)用sys_untimeout()函數(shù)以注銷超時鏈表,再調(diào)用netif_remove()以注銷網(wǎng)卡,該函數(shù)將禁用網(wǎng)卡并將當前網(wǎng)卡從網(wǎng)卡鏈表中注銷,最后再調(diào)用lwip_comm_mem_free()和ETH_Mem_Free()以分別徹底地釋放當前網(wǎng)卡下LwIP初始化時所申請的LwIP內(nèi)核空間及DMA空間。在網(wǎng)絡重連狀態(tài)下,將復位并重新配置MAC接口及PHY芯片,并查詢PHY芯片的連接狀態(tài)以嘗試重連。在正常連接及內(nèi)存釋放狀態(tài)下,均將輪詢處理UDP任務。網(wǎng)絡連接成功后UDP處理任務首先完成創(chuàng)建UDP控制塊、連接至遠端IP和端口、綁定本地IP和端口、注冊接收回調(diào)函數(shù)等初始化工作,隨后在確保網(wǎng)絡穩(wěn)定連接狀態(tài)下對UDP通信進行輪詢處理,而在網(wǎng)絡斷開連接或是初始化失敗情況下,UDP處理任務將釋放UDP初始化時所申請的內(nèi)存空間并斷開連接。采用狀態(tài)機設計的熱插拔網(wǎng)絡處理任務C語言實現(xiàn)代碼如下:圖4 熱插拔網(wǎng)絡的狀態(tài)機設計
【參考文獻】:
期刊論文
[1]基于STM32與Lwip協(xié)議棧的高效通信技術(shù)[J]. 李晨,蔣林,劉思平. 電子技術(shù)與軟件工程. 2019(19)
[2]STM32F407的雷達流速測量系統(tǒng)設計與實現(xiàn)方法[J]. 陳偉昌,楊躍,趙旭升,范光偉,林年旺. 單片機與嵌入式系統(tǒng)應用. 2019(08)
[3]STM32的焦距自適應激光清洗控制系統(tǒng)設計[J]. 晏強,沈玄. 單片機與嵌入式系統(tǒng)應用. 2019(03)
[4]基于LwIP協(xié)議棧的嵌入式網(wǎng)絡控制系統(tǒng)設計[J]. 張超,王志超,林巖. 單片機與嵌入式系統(tǒng)應用. 2019(02)
[5]基于STM32和PCL6045BL的經(jīng)編機電子橫移系統(tǒng)設計[J]. 郭偉軍,章國青,孫以澤. 電子技術(shù)應用. 2018(12)
[6]用STM32和ESP8266實現(xiàn)的可擴展物聯(lián)網(wǎng)系統(tǒng)[J]. 常欣,王琦. 單片機與嵌入式系統(tǒng)應用. 2018(12)
[7]嵌入式TCP/IP協(xié)議棧LWIP的內(nèi)部結(jié)構(gòu)探索與研究[J]. 孫樂鳴,江來,代鑫. 電子元器件應用. 2008(03)
碩士論文
[1]基于STM32和LwIP的無線傳感器網(wǎng)絡網(wǎng)關研究與應用[D]. 韓興會.西安工程大學 2018
本文編號:3344860
【文章來源】:單片機與嵌入式系統(tǒng)應用. 2020,20(04)
【文章頁數(shù)】:5 頁
【部分圖文】:
硬件設計框圖
在前臺程序中則通過中斷方式完成對異步事件的實時響應。前臺系統(tǒng)設計時將數(shù)據(jù)量較大且含有設備信號參數(shù)的網(wǎng)絡中斷設計為最高的搶占優(yōu)先級和響應優(yōu)先級,將用于分機內(nèi)部模塊之間通信的串口中斷為次之的搶占優(yōu)先級和響應優(yōu)先級,而將定時器中斷作為LwIP計時時鐘及內(nèi)部定時時鐘,設計為最低的搶占優(yōu)先級和響應優(yōu)先級。前后臺系統(tǒng)處理流程如圖2所示。3 熱插拔網(wǎng)絡處理任務設計
熱插拔網(wǎng)絡狀態(tài)機通過將“內(nèi)存申請”狀態(tài)和“網(wǎng)絡重連”狀態(tài)設計為兩個子任務,避免了內(nèi)存的重復申請。而在內(nèi)存釋放狀態(tài)下,則逆向地對LwIP初始化時注冊的函數(shù)及申請的空間進行釋放,以實現(xiàn)“純凈”的熱插拔網(wǎng)絡設計。首先調(diào)用sys_untimeout()函數(shù)以注銷超時鏈表,再調(diào)用netif_remove()以注銷網(wǎng)卡,該函數(shù)將禁用網(wǎng)卡并將當前網(wǎng)卡從網(wǎng)卡鏈表中注銷,最后再調(diào)用lwip_comm_mem_free()和ETH_Mem_Free()以分別徹底地釋放當前網(wǎng)卡下LwIP初始化時所申請的LwIP內(nèi)核空間及DMA空間。在網(wǎng)絡重連狀態(tài)下,將復位并重新配置MAC接口及PHY芯片,并查詢PHY芯片的連接狀態(tài)以嘗試重連。在正常連接及內(nèi)存釋放狀態(tài)下,均將輪詢處理UDP任務。網(wǎng)絡連接成功后UDP處理任務首先完成創(chuàng)建UDP控制塊、連接至遠端IP和端口、綁定本地IP和端口、注冊接收回調(diào)函數(shù)等初始化工作,隨后在確保網(wǎng)絡穩(wěn)定連接狀態(tài)下對UDP通信進行輪詢處理,而在網(wǎng)絡斷開連接或是初始化失敗情況下,UDP處理任務將釋放UDP初始化時所申請的內(nèi)存空間并斷開連接。采用狀態(tài)機設計的熱插拔網(wǎng)絡處理任務C語言實現(xiàn)代碼如下:圖4 熱插拔網(wǎng)絡的狀態(tài)機設計
【參考文獻】:
期刊論文
[1]基于STM32與Lwip協(xié)議棧的高效通信技術(shù)[J]. 李晨,蔣林,劉思平. 電子技術(shù)與軟件工程. 2019(19)
[2]STM32F407的雷達流速測量系統(tǒng)設計與實現(xiàn)方法[J]. 陳偉昌,楊躍,趙旭升,范光偉,林年旺. 單片機與嵌入式系統(tǒng)應用. 2019(08)
[3]STM32的焦距自適應激光清洗控制系統(tǒng)設計[J]. 晏強,沈玄. 單片機與嵌入式系統(tǒng)應用. 2019(03)
[4]基于LwIP協(xié)議棧的嵌入式網(wǎng)絡控制系統(tǒng)設計[J]. 張超,王志超,林巖. 單片機與嵌入式系統(tǒng)應用. 2019(02)
[5]基于STM32和PCL6045BL的經(jīng)編機電子橫移系統(tǒng)設計[J]. 郭偉軍,章國青,孫以澤. 電子技術(shù)應用. 2018(12)
[6]用STM32和ESP8266實現(xiàn)的可擴展物聯(lián)網(wǎng)系統(tǒng)[J]. 常欣,王琦. 單片機與嵌入式系統(tǒng)應用. 2018(12)
[7]嵌入式TCP/IP協(xié)議棧LWIP的內(nèi)部結(jié)構(gòu)探索與研究[J]. 孫樂鳴,江來,代鑫. 電子元器件應用. 2008(03)
碩士論文
[1]基于STM32和LwIP的無線傳感器網(wǎng)絡網(wǎng)關研究與應用[D]. 韓興會.西安工程大學 2018
本文編號:3344860
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3344860.html
最近更新
教材專著