打造屬于自己的4G DTU:軟件篇——系統設計(5g dtu 應用)
選擇系統
4G DTU軟件基于FreeRTOS系統進行設計開發。
常用的嵌入式軟件架構有前后臺系統和RTOS系統,前后臺系統的優點是使用簡單易于理解,而缺點是后臺功能函數按順序執行,當某個功能占用CPU時間過長的時,會導致程序的實時性變差;RTOS系統的優點是可以將任務分成了不同等級,從而使任務按優先級獲得不同的CPU占用時間,而缺點是會占用一部分FLASH和RAM。
由于4G DTU主要用于數據交互,對本地數據和網絡數據處理的實時性要求較高,并且需對大塊的數據BUFFER進行管理,因此個人覺得選用RTOS系統進行軟件設計較為合適。嵌入式常用的RTOS系統有FreeRTOS和uC/OS,這兩個系統功能相當,但是FreeRTOS完全免費,商業應用無過多限制。
前后臺系統
RTOS系統
軟件分層
按不同的功能和接口對軟件進行分層、分文件設計,每個功能模塊封裝成為一個C和H文件,使工程層次清晰。這樣設計的優勢如下:
1、更換MCU或者其它硬件,只需更改硬件抽象層對應的文件,應用程序層不受影響;
2、功能模塊變動,只需升級相應的功能模塊,其他的模塊不受影響,應用程序層也不受影響;
3、便于以后代碼管理、模塊移植。
軟件分層
文件列表
任務劃分
FreeRTOS以任務調度的方式運行,高優先級的任務可獲得更多的CPU時間。4G DTU工程總共劃分了3個任務,vNetTask任務優先級最高,用來處理與云端服務器交互的數據;vCanBusTask任務用來與外部總線通信,將外部總線的數據進行處理交給vNetTask使用;vFuncTask任務優先級最低,用來處理配置信息、狀態指示等低實時性功能。
任務劃分
總結
以上為4G DTU項目軟件系統設計的一點心得體會,希望對讀者有所幫助。
限于水平,文中錯漏之處在所難免,敬請海涵[作揖]。