×

时间触发嵌入式系统的设计方案

消耗积分:1 | 格式:rar | 大小:0.4 MB | 2017-10-17

分享资料个

1.引言
  近年来,嵌入式发展迅速,采用51单片机死循环的事件触发编程方式已逐渐不能满足企业对产品稳定性和安全性的要求。目前,嵌入式系统软件有VxWork、Linux、WinCE、μC/OS-II等,可出于成本和技术上的考虑,微控制器往往不会选取其进行设计。在实际应用中,往往会面临同时应付多外设、多任务的情况,则对它们的相互调度必不可少。时间触发嵌入式系统就是这样的简单实用的操作系统。
  本文设计了基于AVR微控制器的时间触发多任务调度器并应用于实际。该调度器使用传递消息(message)的方式使得微控制器在多个任务及设备间切换。
  2.AVR微控制器的结构特点
  AVR是目前使用以该系列的ATmega128为例说明,它采用哈佛结构,RISC指令集、低功耗、片上资源丰富的特点,极大简化了外围电路,使系统更加稳定可靠。其特点为嵌入式系统设计提供了良好的硬件保证。
  3.嵌入式两种触发方式的对比
  在嵌入式系统中,通常采用两种本质上不同的调度方式:事件触发和时间触发。事件触发方式往往使用多级中断来实现,其发生时间具有随机性;而时间触发方式由一个全局时钟驱动,系统的行为在功能与时间上都是确定的,即具有可预测性。
  3.1 事件触发方式存在的问题
  嵌入式系统开发人员有一种中断事件绝不会丢失的错误观念,这往往给开发的产品带来灾难性的后果。中断事件丢失在实际应用中是一个不争的事实,产生的原因有多方面,但无外乎内因和外因两种。外因指嵌入式系统外产生的原因,这里主要指中断源信号丢失或过于频繁;而内因又可分为硬件原因和软件原因,硬件原因主要由所用嵌入式器件的中断嵌套能力所致,软件原因主要由开发者编程时对任务中断优先级设置错误以及任务处理不当所致。
  例如,中断0是一个高优先级中断,而中断1是一个低优先级中断,则由高优先级中断激活的中断服务程序不能被低优先级的中断打断。于是,对第二个中断的响应将被延迟,甚至在一些情况下它有被完全忽略的可能。
  如果多个中断源可能在“随机的”时间间隔产生中断,则中断响应可能被遗漏。实际上,在同时有几个有效的中断源的情况下,几乎不可能创建程序代码来正确地处理所有可能的中断组合。并且同时处理多个事件不但增加了系统复杂性,而且降低了系统在所有情况下的行为预测能力。至于使用效率,Metzner讨论并得出结论:一个包含27个任务、采用RM调度算法的事件触发系统,CPU的实际利用率仅为18%.
  3.2 时间触发方式的优势
  在该系统中,设计人员能够通过仔细安排可控的顺序,保证一次只处理一个事件。它的可预测性使其成为安全相关的系统的首选。
  Kopetz首先提出:使用基于时间触发的合作式调度器会使得系统有非常好的可预测性。除可提高可靠性之外,使用该方式有助于减轻CPU的负荷及存储器的使用量。
  4.时间触发嵌入式系统的设计
  在该调度器中,定时器的设置被分离出来,并使之不依赖于编译器的数据类型以及处理器的位数,通过修改该部分可以轻松移植到多种硬件平台。系统整体方框图如图1所示:
  时间触发嵌入式系统的设计方案
  4.1 消息队列
  消息队列是调度器的核心,它是用户自定义的数据类型,包括了每个任务所需要的信息。尽量将其存储在DATA区,以供快速存取。
  对于基于时间触发的混合式调度器,使用如下的数据结构,对于每个任务存储器的开销仅为8个字节。即使是使用32位处理器,每个任务的开销也仅为14个字节。
  时间触发嵌入式系统的设计方案
  4.2 调度器定时器初始化函数
  该函数用来产生驱动调度器的定时时标。
  本文所选用AVR系列的ATmega128微控制器具有四个定时器(两个8位,两个16位),任一个都能用来驱动调度器,权衡考虑选用定时器0.
  void SCH_Init_T0(void){逐个删除各个任务;停止定时器0;设置时间大小函数;使能定时器0方式;启动定时器0;}
  注:在此期间不可开启总中断,即:
  SREG=0×80或SEI();调度器必须先设定一个默认的时间片,这并不是件简单的事。时间片过长会导致系统对交互行为的响应表现欠佳;时间片太短又会明显地增大调度器处理耗时,而留给任务运行的时间却很短。
  根据笔者经验,一个较为可取的时间片是略大于一次典型的交互所需要的时间,使大多数进程在一个时间片内完成。经反复尝试,时间片选择在1~5ms之间执行效率较高,这样既可满足响应速度的要求又能把任务执行的时间降到最低。该时间与任务个数和任务运行时间均有关,具体大小视情况而定。
  4.3 中断服务程序
  建议该函数由CTC方式激活,当某任务需要运行时,使之处于就绪态等待被执行。该函数内容由具体任务而定。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !