基于时间触发嵌入式系统的设计与应用

最新更新时间:2013-12-13来源: 21IC关键字:时间触发  嵌入式系统 手机看文章 扫描二维码
随时随地手机看文章

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方式激活,当某任务需要运行时,使之处于就绪态等待被执行。该函数内容由具体任务而定。

4.4 调度器任务添加函数

该函数用来将任务添加到消息队列,以保证条件满足时被调用,函数如下所示:

 

 

{定义静态变量i;循环判断任务队列是否有空间;若无,报错返回;否则,添加任务;}

4.5 调度函数

刷新函数虽然能够直接激活任务,但若直接运行,长任务将破坏时标中断,这意味着所有的系统定时都将受到严重影响,造成许多任务不能被调度。因此,为了在长任务存在的情况下使调度器的可靠性最大化,分离刷新和调度这两个操作是必要的。

时间触发嵌入式系统采用的是FCFS算法,为了提高系统的响应速度,必须要求Durationtask

void SCH_Dispatch_Tasks(void){定义静态变量i;如果运行标志位大于0,则执行该任务;该标志位清零;如果是单次任务,则将其删除;}

4.6 调度器任务删除函数

void SCH_Delete_Task(const uint8task_id){定义 静态返回值;若指针函数为空,返回空闲代码;否则,对其延迟、周期、状态等变量清零;返回代码;}

5.应用实验

以电磁炉系统为例,进一步介绍基于AVR微控制器的时间触发嵌入式系统的具体应用。

电磁炉系统是一个复杂的嵌入式系统,如图2所示,AVR要处理大量的外围设备,为便于开发,将整个程序按照硬件及功能进行模块划分,各个功能模块之间通过传递消息的方式来完成多任务的处理。

 

 

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

 

 

其中每个任务的运行周期间隔时间是程序中设定的参数(周期应为4ms的倍数),具体执行时间由AVR Studio测得,均应小于设定时间片4ms,否则应用将出错,需重新设定时间片大小或再次分割功能模块。其中看门狗处理任务是唯一的抢占式任务。

6.结论

实验表明,以AVR微控制器为核心的控制系统,外围扩展功能强大、开发较简单,结合以时间触发理念为内核的操作系统,设计时一次只为一个任务分配空间,每个任务的存储开销只有8个字节,采用由C语言与汇编混合式编程,简单、安全,可预测性强,尤其适用于对成本和稳定性均有要求的中小企业。随着嵌入式系统的发展,基于AVR的时间触发嵌入式系统必然有着广阔的应用前景。

关键字:时间触发  嵌入式系统 编辑:探路者 引用地址:基于时间触发嵌入式系统的设计与应用

上一篇:理想的电压反馈型(VFB)运算放大器
下一篇:基于MATLAB GUI的数字信号处理仿真平台的设计

推荐阅读最新更新时间:2023-10-12 22:31

福华先进推新软件,助力保护嵌入式系统软件版权
当前市场上,软件被窜改盗用的事件层出不穷。如何防止软件被盗用,是软件及系统开发商最关心,也是最急待解决的问题。福华先进微电子推出一款用于认证及保护嵌入式系统软件版权的产品——AG-Tag,,正可提供完整的解决方案来处理这个难题。 AG-Tag所提供的安全机制,仅需透过I2C或SPI总线与嵌入式系统的CPU沟通,就可以对嵌入式系统中高价值的系统软件加以保护,成为软件的安全卫士。另外,只需在原本的软件內加入一小块软件,使其能与AG-Tag交换被加密的数据,就能完成软件保护的机制。 AG-Tag相应的开发平台FASP-8806已经完成,可提供完整的开发套件,方便客户缩短开发时程。
[焦点新闻]
ST与中南大学合作成立“嵌入式系统联合实验室”
微控制器全球市场领先供应商意法半导体,协同其增值分销商深圳市博巨兴实业,今天宣布与中南大学合作成立“ 嵌入式系统联合实验室”。三方将致力于提供设备和技术为工程师解决未来的挑战,通过激发创新能力扩展微控制器技术的潜在应用,透过与产业的链接加快研究成果投入市场,进而提升中国嵌入式系统设计产业的实力。 意法半导体将全力支持“嵌入式系统联合实验室”所需的设备和全部培训和技术咨询,包括提供先进的基于ARM CORTEX-M3的STM32 32位微控制器和开发工具、给予学生参与意法半导体实际开发项目的机会,以及相关技术人员给予定期的指导或问题解答。让未来的创新工程师熟悉最新的嵌入式系统产品及技术,提升将来在开发研究上的竞争力
[嵌入式]
基于Gene8310的嵌入式家庭服务机器人系统设计
1 引言 家庭服务机器人是机器人的发展方向,是我国进一步加强机器人技术研究的突破口。家庭服务机器人旨在将家庭成员从家居的繁琐家务中解放出来,给家庭成员提供帮助、娱乐等。 本文介绍的家庭服务机器人如图1所示。机器人身高140cm,行走驱动方式采取轮式差动驱动。胳膊是模拟肩关节、肘关节的三自由度结构,采用伺服电机作为关节执行机构。机器人上面安装了摄像头、麦克风接口、触摸液晶屏、超声波 图1 家庭服务机器人实物图 传感器。可以与家庭成员完成人机交互,回答家庭成员的提问问题。 本文设计的家庭服务机器人是基于Gene8310的嵌入式设备,在此基础上实现了自主移动、动作表演、人脸跟踪、语音交互、远程遥控
[单片机]
基于Gene8310的嵌入式家庭服务机器人系统设计
单片机应用于嵌入式系统设计方案
1 概述 随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌入式系统设计中的应用,单片机从4位、8位、16位到32位,其发展历程一直受到广大电子爱好者的极大关注。单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。 然而传统的单片机系统开发除了需要购置诸如仿真器、编程器、示波器等价格不菲的电子设备外,开发过程也较繁琐。如图1所示,用户程序需要在硬件完成的情况下才能进行联调,如果在调试过程中发现需修改硬件,则要重新制板。因此无论从硬件成本还是开发周期来看,其高风险、低效率的特性显露无遗。
[单片机]
单片机应用于<font color='red'>嵌入式系统</font>设计方案
嵌入式系统HAL原理与BSP的实现方法
随着计算机软硬件技术的快速发展,出现了越来越多的便携设备和智能设备。这些设备中通常包含控制用的CPU和相应的操作系统;这类特殊的计算机系统叫做嵌入式实时系统。嵌入式实时系统以其简洁高效等特点在计算机、通信等领域中广泛使用。 由于嵌入式实时系统应用环境的特殊性,因此在设计实现过程中存在着许多特殊问题。其中,操作系统及其他系统软件模块与硬件之间的接口形式是嵌入式实时系 统的主要特征和系统设计过程中的必需环节,也是影响嵌入式系统应用前景的关键问题。经过近些年的发展,随着通用嵌入式操作系统技术的日趋成熟和应用的不断 扩大,一种统一的接口形式得到广泛的认可和应用,这就是通常所说的板级支持包,即BSP。 1 嵌入式系统硬件抽象层的原理 1.1
[单片机]
<font color='red'>嵌入式系统</font>HAL原理与BSP的实现方法
基于时间触发嵌入式系统的设计与应用(1)
简介:本文设计了基于AVR微控制器的时间触发多任务调度器并应用于实际。该调度器使用传递消息(message)的方式使得微控制器在多个任务及设备间切换。 1.引言 近年来,嵌入式发展迅速,采用51单片机死循环的事件触发编程方式已逐渐不能满足企业对产品稳定性和安全性的要求。目前,嵌入式系统软件有VxWork、Linux、WinCE、μC/OS-II等,可出于成本和技术上的考虑,微控制器往往不会选取其进行设计。在实际应用中,往往会面临同时应付多外设、多任务的情况,则对它们的相互调度必不可少。时间触发嵌入式系统就是这样的简单实用的操作系统。 本文设计了基于AVR微控制器的时间触发多任务调度器并应用于实际。该调度器使用传递消息(
[单片机]
基于<font color='red'>时间</font><font color='red'>触发</font><font color='red'>嵌入式系统</font>的设计与应用(1)
基于32位低端嵌入式系统的图像采集模块
引言 目前,在嵌入式系统中,图像采集可以采用模拟摄像头、CCD图像传感器或CMOS数字图像传感器来实现。CMOS数字图像传感器由于其高性价比和直接输出数字图像数据而得到最为广泛的应用。MT9V011就是一个这样的CMOS数字图像传感器。本文将介绍MT9V011 CMOS数字图像传感器在一个低端ARM7处理器系统中的应用。 在低端嵌入式系统中增加图像采集系统 实时图像采集系统已经广泛应用于手机、PDA、实时监控系统等高端嵌入式系统中。在这类系统中,处理器具有以下特点:具有较高的处理速度可以实时处理采集回来的大量图像数据;具有较大的内存可以存放若干帧完整的图像数据;具有丰富的外设接口可以比较容易地扩展大容量的存储设备如CF卡、S
[嵌入式]
通信领域采用FPGA芯片嵌入式系统分析方案
1.引言 由于FPGA 良好的可编程性和优越的性能表现,当前液晶拼接屏幕采用FPGA 芯片的嵌入式系统数量呈现迅速增加的趋势,特别是在需要进行大规模运算的通信领域。目前FPGA 配置数据一般使用基于SRAM 的存储方式,掉电后数据消失,每次上电后都要重新写入。配置数据的写入方式有3 种,即使用JTAG 仿真器、使用专用芯片以及使用微处理器。JTAG仿真器的方式在调试的时候使用较多,能随时修改,但缺点是FPGA 芯片必须与电脑主机连接,失去了灵活性。使用专用芯片的方式可以将配置数据事先存储在非易失性存储介质中,为大规模升级提供了方便,但不利之处在于专用芯片往往价格较高,并且也必须采用特定的存储介质,提升了系统成本,而且
[嵌入式]
通信领域采用FPGA芯片<font color='red'>嵌入式系统</font>分析方案
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved