历史上的今天
今天是:2025年02月28日(星期五)
2020年02月28日 | 基于时间触发嵌入式系统的设计与应用(3)
2020-02-28 来源:eefocus
简介:本文设计了基于AVR微控制器的时间触发多任务调度器并应用于实际。该调度器使用传递消息(message)的方式使得微控制器在多个任务及设备间切换。
5.应用实验
以电磁炉系统为例,进一步介绍基于AVR微控制器的时间触发嵌入式系统的具体应用。
电磁炉系统是一个复杂的嵌入式系统,如图2所示,AVR要处理大量的外围设备,为便于开发,将整个程序按照硬件及功能进行模块划分,各个功能模块之间通过传递消息的方式来完成多任务的处理。

针对该应用,可设计功能模块:MSGMap[],该数组由各个功能模块组成,具体子函数如表1所列,使用函数数组的方式可以增强程序的扩展能力。如果有新的外设,只需在这里添加对应的模块入口,并完成相应的模块就可以增加系统的功能。

其中每个任务的运行周期间隔时间是程序中设定的参数(周期应为4ms的倍数),具体执行时间由AVR Studio测得,均应小于设定时间片4ms,否则应用将出错,需重新设定时间片大小或再次分割功能模块。其中看门狗处理任务是唯一的抢占式任务。
6.结论
实验表明,以AVR微控制器为核心的控制系统,外围扩展功能强大、开发较简单,结合以时间触发理念为内核的操作系统,设计时一次只为一个任务分配空间,每个任务的存储开销只有8个字节,采用由C语言与汇编混合式编程,简单、安全,可预测性强,尤其适用于对成本和稳定性均有要求的中小企业。随着嵌入式系统的发展,基于AVR的时间触发嵌入式系统必然有着广阔的应用前景。
史海拾趣
|
我现在遇到一个奇怪的问题,如果我将电路中的某个信号赋值给一个输出管脚的话,那么整个电路的逻辑都不对了。(如果不输出的话,通过其它管脚观察时逻辑是正确的) 大家有没有碰到过这种情况?是怎么回事?请高手指点! 注:我是在quartus8.1中用 ...… 查看全部问答> |
|
CPU为32位ARM芯片 Nand flash芯片为三星K9F1G08X0M (X8),有效存储128M + 4M OOB 地址分配如下面所示: IO0 IO1 IO2 ...… 查看全部问答> |
|
公司用捷联的猫传输数据,终端用的33600md,公司总部用捷联的列架猫,终端的猫自动拨号,与列架猫建立连接后(v22bis协议,2400速率,异步),传输终端的数据。每次都是刚开始传输的时候比较正常,但逐渐数据就会延迟,延迟有时可达3分钟,但进入mo ...… 查看全部问答> |
|
全国硬件工程师实训基地系信息产业部电子教育与考试中心指定的硬件工程师独家教育机构,有着多年的IT业培训经验,与诸多IT企业有着密切联系,经过两年多的精心策划特推出PCB设计工程师,单片机设计工程师,嵌入式系统工程师职业培训,详情请百度搜索\"单 ...… 查看全部问答> |
|
我最近使用W77E58,使用了看门狗复位,原先使用正常,但在其他与看门狗无关的地方作了一些程序修改,之后看门狗工作就不正常了,正常喂狗时没什么问题,但我一停止喂狗后,程序会停下来,只不过它没有从头开始.就死在那里了,不知道为什么,哪位帮帮我.我的看 ...… 查看全部问答> |
|
我在使用uC/OSII的时候遇到一些问题:使用ICCAVR专业版6.31编译的时候出现如下的信息:C:\\icc\\bin\\imakew -f MainController.mak iccavr -o MainController -LC:\\icc\\lib\\ -g -uc ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 现在看到很多智能吸尘器(如:KV8,Deepoo等)都带有自动充电功能。 现在想询问一下,是怎样让吸尘器自动找到充电座,然后准确对接的,对这个问题很是困惑,没有一个好的解决方案。 ...… 查看全部问答> |
|
用MSP430G2553做了一个控制板,一个TM1640芯片用作显示,两个595用作显示和继电器控制,但就是过不了群脉冲测试,群脉冲一打上去,显示全乱了,触摸按键也不灵光了,一不打,就好了,我不知道问题出在哪?附件为原理图。… 查看全部问答> |




