实时_多任务型嵌入式软件架构设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 传统的设计方法
在传统的设计中,普遍运用分时多任务操作系 统。由于单片机的指令执行只有一条线程,故一般 把事件按优先级排列,优先级高的用中断处理,其余 的在主循环中用查询标志的方式,顺序处理。
3. 实时多任务操作系统与分时多任务 操作系统
64 (总第 76 期) 2005·9·
http::////wwww.ciicmmaagg.c.coomm
本文提出的基于实时、多任务的嵌入式软件架 构是在单相多费率电能表中应用并测试通过的,所 以下面将以单相多费率电能表嵌入式软件架构设计 为例做一介绍。
http://www.cicma g.com
2005·9· (总第 76 期) 65
软件开发
中国集成电路 C I C
China lntegrated Circult
下面以单相多费率电能表的软件设计为例说明 该软件架构的实现。
电能计量:MCU 定时器定时的对脉冲输入信号 和脉冲方向信号进行扫描,判断脉冲输入和方向改 变,并将检测到的变化状态记录为标记,在事件系统 中进行处理。实时性由定时中断保证,及时记录状 态,并在小于 1 个脉冲周期的时间内进行处理。该系 统分处理块,每个处理块占用时间短,不会对其它系 统造成致命影响。
EEPROM 读 / 写:EEPROM 的读操作及时性强, 且占用时间短,故立即执行;写操作及时性不强,且 占用时间长,仅记录标记,在事件系统中进行。
红外 /RS- 485 通信:实时性方面,红外通信在定 时器定时中断里扫描位和发送位,RS- 485 通信在 SCI 中断里接收和发送字节;多任务方面,两种通信 的字节帧都是在主程序里进行判断和命令处理。
随着电脑编程技术的发展和软件设计水平的迅 速提高,以往仅仅使用流程图表述复杂的软件结构 的方法已难以胜任,软件架构设计(Software Struc- ture Design, SSD)越来越广泛地被用于复杂软件设 计。软件设计者如何设计软件架构,正确描述软件 功能和设计,确保软件运行的可靠性,是设计工程师 们需要解决的重要问题。
三、实时、多任务的嵌入式软件设计方案
1. 实时、多任务的基本概念
实时、多任务(Real Time & Multi- mission)是根 据软件系统的工作特性而言的。实时是指物理进程 的真实时间。实时操作系统是指具有实时性,能支 持实时控制系统工作的操作系统。首要任务是调度 一切可利用的资源完成实时控制任务,其次才着眼 于提高单片机系统的使用效率,重要特点是要满足 对时间的限制和要求。
一、引言
构,并给出了部分设计的实例。文章的最后给出了 新旧设计方法之间不同结果的对比。
科技不断发展,单片机已经越来越多地被应用 到电子产品中,其可编程控制性和低廉的价格使其 得到了广泛地应用。单片机实现的功能越来越复杂, 处理的事情越来越多,且要求实时性,这就使得单片 机的嵌入式软件越来越复杂。如何设计出使用较少 资源,从而占用较少程序空间,而且又能提高实时事 件处理能力,成为设计工作者面对的关键问题之一。
C I C 中国集成电路
China lnte gra te d Circult
软件开发
它们有明显的区别。具体的说,对于分时操作系 统,软件的执行在时间上的要求,并不严格,时间上 的错误,一般不会造成灾难性的后果。而对于实时 操作系统,主要任务是对事件进行实时的处理,虽然 事件可能在无法预知的时刻到达,但是软件上必须 在事件发生时能够在严格的时限内做出响应(系统 响应时间),即使是在尖峰负荷下,也应如此,系统 时间响应的超时就意味着致命的失败。另外,实时 操作系统的重要特点是具有系统的可确定性,即系 统能对运行情况的最好和最坏等的情况能做出精确 的估计。
表 1 资源使用量对比表
图一 功能与模块对应图
面,所有的数据保存都在很短的时间内在事件处理 系统里完成。
4. 与传统设计方法的结果对比
表 1 中给出了基于流程的传统设计方法和基于 架构的实时、多任务设计方法的软件在资源使用量
http://www.cicma g.com
(下转第 63 页)
2005·9· (总第 76 期) 67
本文结合单相多费率电能表嵌入式软件架构的 设计经验,提出了将架构设计在单片机软件设计中 加以应用。通过分析单片机承担的功能,做了一系 列的组合,从中推导、设计出实时、多任务型软件架
二、嵌入式软件及传统的设计方法
1. 嵌入式系统的概念
嵌入式系统是指操作系统和功能软件集成于计 算机硬件系统之中。简单的说就是系统的应用软件 与系统的硬件一体化,类似于 BIOS 的工作方式。具 有软件代码小,高度自动化,响应速度快等特点。特 别适合于要求实时的和多任务的体系。
软件开发
中国集成电路 C I C
China lntegrated Circult
实时、多任务型嵌入式软件架构设计
复旦大学专用集成电路与系统国家重点实验室 潘晓峰 沈磊
摘要:随着单片机的日益普及,其应用系统的设计越来越广泛地受到重视。单片机的应用系统设计,一 般来说包括硬件设计(Hardware)、软件设计(Firmware)、系统整合优化(System)等。对多任务,且要求实 时性的系统,嵌入式软件设计的好坏尤其重要,其结构的合理性和算法的先进性直接决定了单片机处 理事件的能力。文章结合单相多费率电能表的软件架构设计,提出了基于多任务的实时处理结构设计 方法,并在分析了功能的基础上,给出了一个实时、多任务型软件架构的设计实例。与基于指令功能设 计方法相比,该设计方法在节省资源方面有独到的优势。该设计方法不仅适用于基于事件的现代设计 方法,而且也适用于传统的流程图设计方法。
四、基于实时、多任务的 嵌入式软件架构设计
2. 实时操作系统的工作特性
实时操作系统中的任务(Task)等同于分时操 作系统中的进程(Process)的概念。系统中的任务有 四种状态:运 行(Executing),就 绪(Ready),挂 起 (Suspended),冬眠(Dormant)。
运行:获得 CPU 控制权和资源使用权。 就绪:进入任务等待队列。通过调度转为运行状 态。 挂起:任务发生阻塞,移出任务等待队列,等待 系统实时事件的发生而唤醒。从而转为就绪或运行。 冬眠:任务完成或错误等原因被清除的任务。也 可以认为是系统中不存在了的任务。 系统中只能有一个任务在运行状态。各任务按 级别通过时间片分别获得对 CPU 的访问权和资源
方面的对比。从表中可以看出, 新的方法仅在开始时的软件结 构规划比传统设计方法用了较 多时间,但在这之后的设计、调 试、更改以及硬件资源使用上 都更节省,花费的成本更小,且 维护方便。
5. 关于实时、多任务型嵌 入式软件架构设计的进一 步的讨论
本文介绍的实时、多任务 型嵌入式软件的架构设计方法 在最初使用时花费了较多的时 间来构建,并且修改了几次后 才定型。在设计过程中遇到的 最大的困难也是在开始的时候 设计和修改软件的架构,但在 这之后的设计和调试,以及调 试过程中对软件的修改都很容 易且快速,反复的机会非常少。 最大的得益,是在以后的软件 设计中,仅对软件架构和程序模块做了微小的调整, 就非常快速且高质量地完成了多个地区单相多费率 电能表的软件设计。软件的架构应该是随着系统及 其功能的不同而有不同,但这种设计思路和方法是 值得提倡和推广的,特别是在做多个类似产品设计 的公司,该方法可节省大量的资源并容易控制质量。
C I C 中国集成电路
China lnte gra te d Circult
制造
元件来控制外部信号,实现偏置电路,组成运算放 大器以及众多的功率放大器。如果按照以前,采用 3 到 5 微米的工艺制造技术,是能够对付 30 V 电源 电压的。如果再进一步在芯片内增加数字式功能线 路,也同样采用 3 ̄5 微米工艺来制作数字电路那么 这些器件所必须具有的面积,将难以被用户认同和 接受。
使用权。
3. 实时、多任务的实现方法
通常实现实时、多任务的方法有: ⑴ 使用多级处理系统,将单片机的捕获资源分 配给要求实时性的事件。如在单相多费率电能表嵌 入式软件设计中,电量脉冲采集和 RS- 485 通信接 收 / 发送分别由键盘中断和 SCI 串行口中断处理, 时间计时处理则由单片机的内部定时器中断处理, 其它事件在事件系统中处理。 ⑵ 程序模块化设计,模块按功能划分。程序模 块相对独立,功能简单,接口完整。程序的模块化设 计有助于功能的分配和多任务系统的构建,也可消 除程序内部的干扰。 ⑶ 设计很强的存储区保护功能。这是由于嵌入 式系统的软件结构已模块化,而为了避免在软件模 块之间出现错误的交叉作用,需要设计强大的存储 区保护功能,同时也有利于软件诊断。
数据保存:实时性方面,硬件秒中断中对时间进 行判断,当判断到如冻结日时记录标记;多任务方
66 (总第 76 期) 2005·9·
http::////wwww.ciicmmaagg.c.coomm
C I C 中国集成电路
China lnte gra te d Circult
图二 软件层次结构图
软件开发
3. 设计实现
如前所述,单相多费率电能表的软件必须要完 成硬件接口程序、应用处理程序和流程控制程序的 功能,故将其架构设计为 3 层结构,如图二所示。
底层为物理层,面向底层硬件,功能为硬件接口 及通信,向上接受控制层程序的调用,向下与硬件直 接接口。程序包括 MCU 硬件设置、I2C 接口时序、电 能脉冲扫描、红外接收信号扫描和发送信号输出等 程序。
中间层为控制层,功能为功能控制,向上接受应 用层程序的调用,向下调用物理层程序。程序包括 EEPROM 读 / 写控制、LCD 显示处理、电能脉冲计 量、通信字符处理、事件处理等程序。
上层为应用层,面向用户上层操作,所起的作用 为功能处理,向下调用控制层程序。包括 EEPROM 连读 / 连写功能、LCD 循显功能、电能数据和保存功 能、红外 /RS- 485 通信功能、时段费率功能、事件系 统等。
1. 设计思路
基于实时、多任务的嵌入式软件架构设计之所 以能达到分事件、实时处理多任务的要求,首先在于 充分熟悉所使用的微处理器的所有资源,并对需要 处理的各种事件进行分析,因此能针对各种运算对 应地采用不同的数据路径的结构;其次是程序设计 采用的不同类型的编程语言环境,充分运用不同类 型语言的编程思想和结构,而使得架构设计呈现样 性。
2. 架构设计Hale Waihona Puke Baidu备
首先,我们对微处理器和功能事件做一分析: 在单相多费率电能表中的微处理器,我们选用 了 Motorola MC68HC908JL8,该芯片具有以下功能: ● 最大 8MHz 内部总线频率; ● 8M Bytes Flash ROM 和 256Bytes RAM; ● 两个 16 位定时器,每个定时器可分为 2 个 通道,带 PWM 调制输出; ● 13 通道,8 位 ADC 转换; ● SCI 串行通信; ● 键盘中断等。 电力规约对单相多费率电能表的功能做了如下 主要规定: ● 电量计量及电能方向判断功能; ● 电量数据保存功能; ● LCD 循环信息显示功能; ● LED 时段信息和脉冲指示功能; ● 红外通讯和 RS- 485 通信功能; ● 硬件实时时钟功能; ● 时段费率功能;等 通过以上分析,可知 MCU 需要和 I2C、SCI、IRQ 和其它硬件信号接口,同时需要处理运行中的显示 切换、时间判断、数据校验保护等事件。 在软件架构设计前,先划分出各个功能模块并 对应使用的资源。功能与模块的划分及对应关系如 图一所示,程序模块分为 I2C 模块、LCD 显示模块、 电能计量模块、时段处理模块、通信系统模块、中断 定时模块和事件系统模块。 然后,将 MCU 的资源分配给各个模块使用: ● 定时器 1 通道 0,1- - > 红外通信 PWM 调制 信号发生; ● 定时器 2 通道 0- - > 内部定时,电量脉冲、 电能方向、编程按键等扫描定时; ● 定时器 2 通道 1- - > 红外通信接收和发送 扫描定时; ● SCI- - >RS- 485 通信接收和发送; ● KBI- - >1 秒中断;
相关文档
最新文档