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