打造属于自己的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项目软件系统设计的一点心得体会,希望对读者有所帮助。
限于水平,文中错漏之处在所难免,敬请海涵[作揖]。