论文研究-基于AVR的时间触发嵌入式系统设计 .pdf

所需积分/C币:7 2019-08-14 16:28:07 252KB .PDF
收藏 收藏
举报

基于AVR的时间触发嵌入式系统设计,邵峰,李铁鹰,本文给出了一种基于AVR微控制器和时间触发概念设计的嵌入式系统及其应用实例。该系统可以将控制精度控制在ms级,具有占存储单元少�
国武技论文在线 http://www.paper.edu.cn 停止定时器0: 设置时间大小函数;/独立出来以便修改时问片大小 使能定时器0方式;∥建议使用CTC方式,其它无目动加载 启动定时器0 注:在此期间不可开启总中断,即:SREG=0x80或SEIO; 其中 SCH MAX TASKS为用户自定义的消息队列的长度 需要强调的是:调度器必须先设定一个默认的时间片,这并不是件简单的事。时间片过 长会导致系统对交互行为的响应表现欠佳;时间片太短又会明显地增大调度器处理耗时,而 留给任务运行的时间却很短「7。 根据笔者经验,时间片选择在1~5ms以内执行效率较高,它与任务个数和任务运行时 间均有关,具体大小是情况而定。本文选择4ms为时间片。 如果有延时到期的仁务,则将其从消息队列 SCH task array中删除。对定时器相关的 操作涉及具体的平台,在不同平台上移植调庋器时需要修改这一部分。 43中断服务程序(刷新函数)的设计 该函数由定时器的CTC方式激活(与定时器初始化方式相对应)。当刷新函数确定某 个任务需要运行时,则这个任务的 State标志位加1,然后该任务被调度程序执行。典型的 刷新函数如下: # pragma interrupt handler SCH Update:16∥声明中断函数名与对应的中断向量号 void SCH Update(void) char Index; ∥ AVRCTO方式具有自动重载功能,故在此不用手动清除标志位。 for(Index =0; Index hSCH MAX TASKS; Index++) fif (sch task array[lndex ]. Task Rif (sCh task array Index Delay ==0) fif (sch task arraylIndex] Co op) i SCH task array[Index]. State+-1; j lse(* SCH task array[Index, tAsk0;∥立即运行 SCH task array[Index]. State-=1;∥避免时标米时,再次重新执行 if (SCh task array[Index ]. Period ==0) I SCH task array[Index]-pTask =0; 1j if(sCh task array Index]Period) ∥对于周期性的任务,本文采用重载任务定时器的方法来解决 SCH task array lIndex Delay=SCH task arraylIndex]. Period;33 else sch task arraylIndex Delay-=1;1 44调度器任务添加函数的设计 该函数用来将所需要的任务添加到消息队列上,以侏证它们条件满足时被调用,一个典 型的函数如下所小 uint8 SCH Add Task( void(code pFunction)O, const uint 16 delay, const uint16 period) {定义静态变量i 循坏判断任务队刎是否有空间; 若无,报错返回 否则,添加仁务; 国武技论文在线 http://www.paper.edu.cn 45调度函数的设计 刷新函数虽然能够直接激活任务,但是如果刷新函数直接运行函数,长任务将直运行, 时标中断被禁止,这意味着所有的系统定时都将受到严重影响,可能造成许多仼务不能被调 度执行的情形。因此,为了在长任务的情况下使调度器的可靠性最大化,分离刷新和调度操 作是必要的间。 注:时间触发嵌入式系统采用的是FCFS算法,每个合作式任务被执行的条件有两个: 1、该任务的延时 delay到了;2、当前运行的任务结束。 因此:为了提高系统的响应速度,必须要求 Duration< Tick interval。这样对于长任务 来说,我们常常需婁釆取以下两种方法使之满足条件。a、对任务进行分割;b、多处理器处 理。 其中:前者主要是把等待时间分离出去,并加一个检测部分(执行问隔时问较短),还 建立了数据缓冲区。对于数据传输程序,由于不必等待每一个字符被发送,因此这个过程将 非常快;后者则是将长任务交给高性能的处理器,这样执行时间将小于时标时间 除此之外,还可用超时的办法来解决。 void SCH Dispatch Tasks(void {定义静态变量 如果运行标志位人于0,则执行该仟务; 该标志位清零 如果是单次任务,则将其删除; 注:针对FCFS算法的特氐,可以将长任务分成若干个短任务,就像 Linux一个程序只做 件事的设计思想—一样7,然后将它们再放在消息队刎中分别进行调度执行,以提高调度器的 运行效率。 46调度器任务删除函数的设计 并不是所有的系统都需要,但有时需要从队列中删除任务,可以用下列函数来实现: void SCH Delete Task(const uint& task id) {定义静态返冋值 Return code 判读 tAsk的值,为0,则返同空闲代码 任务的延时 delay,周期参数 period和标志位均清零 返回返回代码 至此,调度函数作为主函数的唯一的死循环模块,加上其他相关函数,一个适用8位单 片机AVR的简单操作系统得以实现,并可轻松的应用于产品的开发设计中。 5应用实例 本文以在电磁炉系统中的应用为例,进·步介绍基于AVR的吋间触发嵌入式系统的应 用 山国武技论文在线 http:/www.paper.edu.cn A①D EEPROM 蜂咆器 AVR LCD 电拐 IGBT Watchdog 图1电磁炉系统模块框图 电磁炉系统是一个复杂的嵌入式系统,它的微控制器要处理大量的外围设备,如图1 所示,为了便于开发,将稈序按照硬件的功能划分模块,冬个模块之间通过传递消息的方式 来完成多任务的处理。系统程序流程图如图2所示,使用前面介绍的调度结构既方便了程序 的设计和维护,又解决了多个任务之间的调度问题。 系统上电 系统软硬件参数初始化 建立各任务参数 启动任务 任务调度 图2系统稈序流稈图 针对这个应用,模块入口函数数组 MSGMap,如表1所列,使用函数数组的方式可以 增强程序的扩展能力。如果有新的外设,只需在这甲添加对应的模块入口,并完成相应的模 块就可以增加系统的功能。 表1系统的各任务列表 MSGMapl]function 描述 周期 执行时间/s Key proms 键盐处理任务 4ms EEPROM ProMsg处理 EEPROM任务20ms < 3ms LCD ProMs g 处理显小任务 16ms Buzzer ProMs 处理蜂鸣器任务 20ms 0.Ims IGBT ProMsg 处理IGBT任务 500ms <lms Sample proms处現采样任务4ms 0.5 山国科技论文在线 http:/www.paper.edu.cn Surge ProMsg 电涌侏护处理 4ms <0.Ims Watchdog ProMs看门狗处理任务 16ms 注:在使用该函数数组前,需先结构化定义才好使用,相关内容请查看结构体与函数指 针 其中每个任务的运行周期间隔时间是通过多次实验后待出的参数(周期应为4的倍数) 执行时间是由Amel公司出品的 AVR StUdio软件测试而得到的。任务中电涌保护处理为抢 占式任务,该入∏参数由外部中断0触发。看门狗检测任务既可保证系统能够正常运行,又 要在出现死机的时候能够及吋的进行复位 6绪束语 随着嵌入式的发展,AVR微控制器以其独特的优势,必然在8位权中占有重要地位 时间触发嵌入式操作系统是一种内核小的操作系统,一次只为一个任务分配存储器,每个任 务的存储开销仅为8个字节,通常完仝有C语言实现,并且简单、安仝可靠,可预测性强。 随着嵌入式系统的发展,基于AVR的时间触发嵌入式系统必然有厂阔的应用前景。 参考文献 [1] Atmel 8-bit Microcontroller with 128K Bytes In-System Programmable Flash ATmega128/128L [Z]. Aug 2006 [2] Michael Pont J Patterns for Time-Triggered Embedded Systems: Building Reliable Applications with the 8051 Family of Microcontrollers [M. Addison Wesley, 2002: 135 136 [3] Kopetz H, Bauer G. The time triggered architecture [C]. Proceedings of the IEEE, 2003 [4] Alexander metzner. Predictable and Efficient Architectures for Real Time System Synthesis[ EB], 2005 [5] Michael Pont J, Mark P Banner. Designing embedded systems using patterns A case study [J]. Systems and Soft ware,2004,71(3)201213 6]朱风新,姚竹亭,基于AⅤR的时间触发嵌入式系统[J.工业控制计算机,2006(7):56-57 [7] Robert love,《 Linux内核设计与实现》「M].陈莉君,等译.北京:机械工业出版社,2006:31-32 [8]李奇,樊晓平.一种时间触发的多任务调度器设计[].单片机与嵌入式系统应用,2008(5):17-19 The Design of Time-Triggered Embedded System Based on the avr family of microcontrollers Shao feng, Li Tieyin College of Information Engineering, Taiyuan University of Technology, Taiyuan, PRC (030024) abstract An embedded system and its application is designed and introduced by using time-triggered system based on the AVR microcontroller. The control precision of the system can be controlled at ms level and the system is applicable to small-scale real time control systems and has good market prospects with less storage unit, good reliability, strong predictability, and high security Keyword APR Microcontroller Time- Triggered Embedded systems Hybrid schedulers 作着筒介 邵峰,男,1979年生,硕上研究生,主要研究方向是嵌入式系统软硬件廾发; 李铁鹰,男,1956年生,顸上生导师,教授,主要研究方向是电力电子技术与电机控制技 术。 6

...展开详情
试读 6P 论文研究-基于AVR的时间触发嵌入式系统设计 .pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    抢沙发
    一个资源只可评论一次,评论内容不能少于5个字
    • 至尊王者

      成功上传501个资源即可获取
    关注 私信 TA的资源
    上传资源赚积分,得勋章
    最新推荐
    论文研究-基于AVR的时间触发嵌入式系统设计 .pdf 7积分/C币 立即下载
    1/6
    论文研究-基于AVR的时间触发嵌入式系统设计 .pdf第1页
    论文研究-基于AVR的时间触发嵌入式系统设计 .pdf第2页

    试读已结束,剩余4页未读...

    7积分/C币 立即下载 >