新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > 基于MATLAB的蓄电池充放电监测系统

基于MATLAB的蓄电池充放电监测系统

作者:时间:2012-03-07来源:网络收藏

3.1 MCU程序
为协调各个功能的实现,本文参考了多任务调度算法和时间片轮转算法。多任务调度算法,是按照实际要求将单片机要实现的功能划分成多个任务模块,并规定优先级别,由一个任务调度模块统一控制执行顺序。CPU的控制权按不同优先级分配给不同的任务模块,各个模块分别在自己的执行时间内访问CPU,形成微观上轮流执行,宏观上并发运行的多任务效果,如图3所示。

本文引用地址:http://www.eepw.com.cn/article/177783.htm

c.jpg


中的几个任务对时间要求比较敏感,单纯使用多任务调度不能满足需求。结合时间片轮转算法,在任务分配时考虑时间限制,并将任务区分优先级。优先级高的任务先执行。为保证采样周期的稳定,A/D转换和启动温度转换的优先级较高,串口发送晚几十毫秒不会造成不良影响,所以优先级较低。程序简要流程如图4所示。

d.jpg


其中,任务调度模块包含各任务的时间信息,如A/D转换0.1s一次,启动温度检测1s一次,读温度则40ms一次,串口发送0.1s一次。若任务中包含多个子功能快,借鉴有限状态机(FSM)算法,每次执行一个子功能,直到本任务执行完成。



评论


相关推荐

技术专区

关闭