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