(电力电子与电力传动专业论文)vxworks下嵌入式数据采集与控制系统的研制.pdf_第1页
(电力电子与电力传动专业论文)vxworks下嵌入式数据采集与控制系统的研制.pdf_第2页
(电力电子与电力传动专业论文)vxworks下嵌入式数据采集与控制系统的研制.pdf_第3页
(电力电子与电力传动专业论文)vxworks下嵌入式数据采集与控制系统的研制.pdf_第4页
(电力电子与电力传动专业论文)vxworks下嵌入式数据采集与控制系统的研制.pdf_第5页
已阅读5页,还剩71页未读 继续免费阅读

(电力电子与电力传动专业论文)vxworks下嵌入式数据采集与控制系统的研制.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西北工业犬学硕士学位论文a b s t r a c t a b s i r a c l w i t ht h e d e v e l o p m e n t o f c o m p u t e rt e c h n o l o g y t h ep e r f o r m a n c eo ft h e e m b e d d e dm i c r op r o c e s s o rh a v eag r e a ti m p r o v e m e n t a n di tm a k e st h ee m b e d d e d s y s t e m h a v eaw i d e r a n g e o f a p p l i c a t i o n s i n m a n yf i e l d s t h e d e s i g n o ft h e c o n t r o l a n d p r o t e c t i o nu n i t p a r to fac e r t a i nk i n do fa i r c r a f tp o w e rs u p p l y i ss u c h a p p l i c a t i o no f e m b e d d e ds y s t e mi nd a t aa c q u i s i t i o na n dc o n t r o ls y s t e m t h eh a r d w a r ed e s i g no ft h ec o n t r o l a n d p r o t e c t i o nu n i t b a s e do np c 10 4b u s i n c l u d i n g t h e s e l e c t i o no fe m b e d d e dc o m p u t e r t h ed a t aa c q u i s i t i o nb o a r da n di t s s i g n a lc o n d i t i o nc i r c u i t s i sc o m p l e t e di nt h i sp r o j e c t t h es o f t w a r ed e s i g no f t h i sp r o j e c t w h i c hi sb a s e do n v x w o r k s i sa l s of i n i s h e d v x w o r k si so n eo fs u c h r t o s r e a l t i m e o p e r a t i o ns y s t e m t h a t h a v ea p r i o r i t y b a s e dp r e e m p t i v ek e r n e l t h i sp a p e r g i v e sad e t a i l e dd e s c r i p t i o no fv x w o r k s k e r n e l i n c l u d i n gt a s km a n a g e m e n t i n t e r r u p t a n d t i m i n gm a n a g e m e n t e r e t h i sp a p e rp a y sm o r ea t t e n t i o no nt h ed e v i c ed r i v e rm a n a g e m e n to fv x w o r k s a n dt h e r e l a t i o n s h i p b e t w e e nd e v i c ed r i v e ra n db s rt h ed e v i c ed r i v e ro fd a t a a c q u i s i t i o nb o a r da d t f 0 0 f o rv x w o r k si sa l s oc o m p l e t e di nt h i sp r o j e c t i no r d e rt o i m p r o v et h er e l i a b i l i t y o ft h e c o n t r o l a n d p r o t e c t i o nu n i t s o m e r e l i a b l em e a s u r e m e n t sb o t hi nh a r d w a r ea n ds o f t w a r ea r em e n t i o n e da tt h ee n do f t h i s p a p e r k e y w o r d s e m b e d e ds y s t e m v x w o r k s p c 1 0 4 r e a lt i m e o p e r a t i o ns y s t e m r t o s d e v i c ed r i v e r b o a r ds u p p o r tp a c k a g e b s p c o n t r o l a n d p r o t e c t i o nu n i t 曲北工业大学硕士学位论文 第一章绪论 第一章绪论 第一节本课题的选题背景及意义 机载用电设备在进行地面检查或维护时 需要使用专用的地面电源为其供 电 f d y 一2 型地面电源车是为某型飞机机载设备在进行地面调试 检查时提供电 功率而设计的专用地面电源 该电源车具有交 直流两个供电通道 分别将地 面市电3 8 0 v 5 0 h z 转换为单相1 1 5 v 4 0 0 h z 2 0 k v a 交流电和2 8 5 7 k w 直流电 该电源车具有体积小 噪音低 能量转换效率高 维护使用方便等特点 电源 车参照6 j b 5 4 9 进行设计和制造 其指标要求符合g j b l 8 1 和g j b 5 7 2 要求 为保证该地面电源车可靠工作 并对用电设备更好地徐护 在电源车内部 设有控制保护器 它能够结合操作控制台上的手动开关 实现对整个交 直流 变换器的建压和卸压控制 通过实时检测主功率电路中的电压 电流和频率是 否发生故障来实现对整个地面电源的控制和保护 控制保护器的设计是本文所 璎研究的重点 控制保护器的功能主要是控制和保护 过去主要采用分立元件或其它硬件 电路的方式来实现 随着计算机技术的不断发展 嵌入式微处理器性能的不断 提高 嵌入式系统乜得到越来越广泛的应用 将嵌入式系统及其设计方法引入 控制保护器的设计之中 不仅可以大大提高控制保护器的实时性和可靠性 减 小体积 节约成本 而且由于软件的可移植性强 可以在不改变系统硬件的基 础上 对控制保护器方便地进行升级换代 同时也大大缩短了系统设计与调试 的时间 提高了工作效率 第二节嵌入式系统特点 嵌入式系统是以应用为中心 以计算机技术为基础 软硬件可剪裁 适应 应用系统对功能 可靠性 成本 体积 功耗等严格要求的专用计算机系统 1 嵌入式系统多指深藏于工业系统 武器系统或一些机电仪表设备 消费电子类 西北工业大学硕士学位论文第一章鳍论 产品内部 完成一种或多科i 牛寺定功能的计算机系统 是软硬件的紧密结合体 类似于8 i s 的工作方式 具有软件代码小 高度自动化 响应速度快等特点 嵌入式计算机在物理结构上总是嵌入于宿主系统中作为整个系统的一部分 并不独立存在 在功能上 嵌入式计算机总是针对某种特定应用 一经编程 用户 一般不能再修改 因此 不难理解 有些计算机即使体积很小 如果单独用作编程 工具 巴不应归入嵌入式计算机范畴 而有些计算机虽然占有很大空间 但并不 独立 而是在一个更大的系统内执行一项或几项特定任务 这类计算机电应算作 嵌入式计算机一类 1 嵌入式系统是将先进的计算机技术 半导体技术以及电子技术和各行业的 具体应用相结合后的产物 所以就决定了它必然是一个技术密集 资金密集 商度分散 不断创新的知识集成系统 嵌入式计算机系统具有区别于通用计算 机系统的特点 专用的嵌入式c p u 嵌入式c p u 与通用型的c p u 的最大不同就是嵌入式c p u 大多工作在为特定 用户群设计的系统中 因而通常都具有低功耗 体积小 集成度高等特点 能 够把通用c p u 中许多由板卡完成的任务集成在若干个芯片内部 从而有利于嵌 入式系统设计趋于小型化 移动能力大大增强 与网络的耦合也越来越紧密 专用性和算法的唯一性 嵌入式系统总是被设计成为完成某一特定任务 一旦设计完成就不再改变 嵌入式系统和具体应用有机结合在一起 它的升级换代也和具体产品同步进行 因此嵌入式系统产品一旦进入市场 具有较长的生命周期 硬件与软件的互相依赖性 由于它的专用性决定了它的设计目标是单一的 硬件与软件的依赖性强 因而一般软硬件要进行共同设计 以求达到共同完成预定的功能 并满足性能 成本和可靠性的目标 嵌入式系统的硬件和软件都必须高效率地设计 量体裁 衣 去除冗余 力争在同样的硅片面积上实现更高的性能 系统对用户是透明的 用户在使用这种设备时只是按照预定的方式使用它 既不需要用户进行编 西北工业大学硕士学位论文第一章绪论 程 也不需要用户知道设备内计算机系统的设计细节 用户也不能改变 嵌入式计算机系统大多数是实时控制系统 系统配置专一 结构紧凑 坚固可靠 但一般来说资源 存储容量 速 度 有限 实际上 随着计算机技术的迅猛发展 嵌入式计算机除了在军事领域的应 用外 还渗透到民用各个领域之中 成为整个计算机家族一个重要成员 第三节本课题的主要研究内容 1 3 1 基于p c 1 0 4 的嵌入式系统设计 本论文以某型飞机地面电源车的控制保护器为例给出嵌入式数据采集与控 制系统的应用 该控制保护器的功能是实时检测单相交流1 1 5 v 输出通道上的稳 态交流电压 稳态交流电流 稳态频率和直流2 8 5 v 输出通道上的稳态直流电 压和电流 根据检测到的电压和电流值自动实现过压欠压 过频欠频以及过流 等各种故障时的保护 并能结合操作控制台上的手动开关 实现对整个交 直 流变换器的建压和卸压控制 该控制保护器的硬件设计主要是基于p c f 0 4 总线构建的 包括信号调理和 开关量的输入输出接口板 数据采集板和计算机板 数据采集板和计算机板采 用盛博公司的p c 1 0 4 总线产品 数据采集板为a d t 6 0 0 模块 计算机板为 s c m s u p e r d x 模块 控制保护器的软件设计采用基于v x w o r k s 的实时多任务操作系统 r t o s 之所以采用v x w o r k s 作为该控制保护器的软件设计平台 主要是因为控制保护 器需要同时监控地面电源车交流和直流两个通道 包括稳态电压 稳态电流以 及接收从调压控制器端发出的故障信号等 因而对系统的实时性和可靠性要求 很高 这就需要选用高性能的实时操作系统作为开发平台 而w i n d r i v e r 公司 的v x w o r k s 作为r t o s 领域内的一款高性能实时系统正越来越广泛的应用于航空 航天 电子通信等各种需要采用嵌入式系统设计的行业中 1 3 2 实时多任务操作系统v x w o r k s 的内核及结构分析 实时多任务操作系统是能在确定的时间内执行其功能 并对外部的异步事 西北工业犬学硕士学 论文 第一章绪论 件作也响应的计算机系统 多任务环境允许一个实时应用作为一系列独立任务 来运行 各任务有各自的线程和系统资源 v x w o r k s 可高度剪裁 保征系统能以较高的效率运行 v x w o r k s 实时操作系 统由4 0 0 多个相对独立的 短小精炼的目标模块组成 用户可根据需要选择适 当模块来裁剪和配置系统 这就有效地保证了系统的安全性和可靠性 系统的 链接器可按应用的需要自动链接 些目标模块 这样 通过目标模块之间的按 需组合 可得到许多满足功能需求的应用 v x w o r k s 的体系结构框图如图 1 所示 器p 墓 ij哼蜒卅棚共的戟忭 嵩幽幽曲 图1 1v x w o r k s 的体系结构 1 3 3 实时系统下设备驱动程序的开发 在目前多数操作系统中 用户必须通过驱动程序才能与设备进行交互 设 备驱动程序是系统内核的一部分 设备驱动程序为应用程序屏蔽了硬件的细节 这样在用户看来 硬件设备只是一个设备文件 应用程序可以像操作普通文件 一样对硬件设备进行操作 在v x w o r k s 下的设备驱动程序与板级支持包b s p 8 0 a r ds u p p o r tp a c k a g e 密切相关 b s p 向v x w o r k s 提供与硬件环境的基本接口 负责在加电时完成硬 件的初始化 为v x w o t k s 访问硬件驱动程序提供支持 并将v x w 0 1 k s 中与硬件 阿关的以及与硬件无关的软件进行集成 v x w o r k s 下的设备驱动程序的详细开 发过程及n t 6 0 0 的设备驱动程序的讨沦将在本文的第三章中给出 4 西北工业大学硕士学使论文第一章绪沦 1 3 4 嵌入式系统设计与开发过程 1 目标的定义与可行性研究 首先要对系统的实际用户和使用部门相关人员进行调查 了解对系统的看 法 再经过反复论证 明确整个系统的性质 目标和规模 2 需求分析 在这个阶段主要是明确目标系统必须具备哪些功能 然后给出系统逻辑模 型 通常用数据流图 数据字典和简要的算法描述表示系统的逻辑模型 在需 求分析阶段确定的系统逻辑模型 是以后设计和实现目标系统的基础 需求说 明过程给出系统功能需求 功能 输入 输出 外部接口需求 性能及诸如文 件 数据库安全等其他要求 系统设计 这个阶段需要解决的关键问题是如何实现目标系统 系统设计要制定实现 系统的详细计划 并进行任务分解 将系统分解成任务 并发进程 定义任务 间接口关系 系统设计时说明该系统如何被分解成多个任务 如何定义任务间 的关系 系统设计通常采用模块化程序设计方法 4 任务设计 任务设计阶段的实质就是把实现系统的方法具体化 设计出程序的详细规 格说明 包括必要的细节 按模块化方式设计每个任务 并定义出模块间接口 任务间接口定义好后 下一步要做的是建立每个任务的结构 一个任务代表一 个程序序列 画出每个任务的数据流图 然后使用结构化设计方法 从数据流 图导出任务的模块结构图 并且定义出各模块的接口 5 编码与代码测试 系统和任务设计完成后 就应该进行每个模块的详细设计 详细设计完成 后才可开始编码 编码与代码测试阶段的任务是完成每个模块的详细设计 编 码和单元测试 根据目标系统的性质和实际环境 选取一种或多种适当的程序 设计语言 把详细设计的结果翻译成用选定的语言书写的程序 并仔细测试编 写出的每一个模块 6 系统测试 西北工业大学硕士学位论文第一章绪论 系统测试包括集成测试和验收测试 集成测试是根据设计的软件结构 把 经单元测试的模块按某种选定的策略装配起来 在装配过程中对程序进行必要 的测试 验收测试则是按照需求说明书的规定 由用户对目标系统进行验收 测试整个系统或主要子系统 以验证功能指标的实现 7 系统维护 必要的系统维护能够使系统持久地满足用户的需要 通常维护活动可分为 四种情况 改正性维护 即诊断和改正在系统使用过程中发现的软件错误 适应性维护 修改程序以适应环境的变化 完善性维护 根据用户的要求改进或扩充软件使系统更完善 预防性维护 修改软件为将来的维护工作作预先准备 1 第四节论文所做的工作与章节安排 本文结合某型飞机地面电源车的控制保护器的设计 包括基于p c f 0 4 的嵌 入式系统硬件设计和基于v x w o r k s 下的嵌入式系统软件设计 给出了嵌入式系 统在数据采集与控制系统中的具体应用 论文的第一章为绪论部分 总结了本文所做的工作及研究的主要内容 并 对后面章节的主要内容作了一个大致的介绍 第二章为v x w o r k s 及其内核分析 实时操作系统v x w o r k s 的内核包括任务 管理 时间管理 中断管理 内存管理等 在这一章的后半部分对v x w o r k s 的 集成开发环境t o r n a d o 出有一个简单的介绍 实时应用的开发往往离不开良好 的集成开发环境 第三章涉及到v x w o r k s 下的 o 管理 特别是设备驱动程序的管理 a d t 6 0 0 在v x w o r k s 下的驱动程序的实现是完成控制保护器设计的关键 在这一章中 除 j 1 日 m l j 了i o 管理与设备驱动程序的关系之外 还结合v x w o r k s 的启动过程 指出了设备驱动程序与b s p 的关系 结合字符设备驱动程序的设计 完成了数 据采集板a d t 6 0 0 在v x w o r k s 下的设备驱动程序 第四章为基于p c 1 0 4 的嵌入式数据采集与控制系统的设计 第四章的开头 从控制保护器在电源车中的作用入手 分析控制保护器应达到的功能和要求 6 堕 些奎兰婴 堂丝堡兰翌二雯堕堡 从控制保护器在电源车中的作用入手 分析控制保护器应达到的功能和要求 然后给出控制保护器的总体设计方案 第二节给出了控制保护器的硬件设计 包括嵌入式计算机的选型及其硬件环境和信号调理电路的设计等 三四两节从 实时操作系统的软件设计入手 详细地给出控制保护器的各控制和保护功能的 实现 包括信号的采集 任务的划分 任务间的通信 中断处理以及各任务间 的逻辑与状态关系等 稳态参数的求取与数据处理的方法也在这两节给出 结束语部分放在本文的最后一章 主要从软硬件设计方面结合控制保护器 的设计对提高系统可靠性作了一个简要介绍 附录中给出了电源车相关技术指标和测试结果 西北工业大学硕士学位论文第二章实时操作系统v x w o r k s 概述 第二章实时操作系统y x w o r k s 概述 第一节嵌入式实时操作系统 随着计算机技术的发展 实时系统无论在技术上还是在应用领域中都取得 了辉煌的成就 尤其在近一二十年来 嵌入式实时操作系统得到了飞速发展 从支持八位微处理器 c p u 到1 6 位 3 2 位甚至6 4 位微处理器 从支持单一品 利咱口微处理器芯片到支持多品种的微处理器芯片 从只有实时内核到除了内核 外还提供其他功能模块 如高速文件系统 t c p i p 网络系统 多任务并发功能 等 当前实时系统的实现多为微内核体系结构 这使r t o s 的核心小巧而可靠 易于r o m 固化 并可模块化扩展 在微内核结构系统中 r t o s 服务模块在独立 的地址空间运行 所以不同模块的内存错误便被隔离开来 但这种设计也有弱 点 如进程间通信和上下文切换的开销将大大增加 相对于大型集成化内核系 统来说 它必须更多地进行系统调用来完成相同的任务 用来衡量系统实时性的参数包括 系统响应时间 生存时间 上下文切换时 间 中断延迟和吞吐量等 系统响应时间指系统发出处理要求到系统给出应答信号的时间 是计算机 识别一个外部事件到做出响应的时间 在控制应用中它是最重要的指标 如果 事件不能及时处理 系统可能就会崩溃 实时性不能单纯从绝对的响应时间长 短上来衡量 应当根据不同的对象在相对意义上进行评价 生存时间指数据有效等待的时间 在这段时间数据是有效的 上下文切换时间是指任务切换而使用的时间 中断延迟指计算机接收到中断信号到操作系统做出响应 并完成转入中断 服务程序的时间 吞吐量是指在一给定时间内 系统可以处理的事件总数 吞吐量可能是平 均响应时间的倒数 但它通常要小些 因为在每次响应后可能要一段时间进行 清理 这段时间称为恢复时间 丽北工业大学碗士学应论文第二章实时操作系统v x w o r k s 概述 通常r t o s 提供的服务至少包括 多任务 底层同步和互斥支持 进程调度 进程问通信 底层网络通信和中断处理 任务管理 事件管理 定时器管理 报文管理 循环队列管理 资源管理 固定存储块管理和自动掉电管理等 这 些功能模块比是标准的r t o s 所应具有的一般功能 另外 一些r t o s 系统还支持 图形界面 文件系统和分布式系统等等 不同进程在不同的地址空间独立运行 所有其它r t o s 服务都以协作的用户进程方式实现 为r t o s 设计的成熟和通用的功能模块可以以库函数的形式供其他人继续 使用 这类似于c 语言的结构化程序设计思想 在r t o s 基础之上可以很容易地 实现各种通信协议库函数 如为嵌入式t c p i p 协议栈设计的s o c k e t 库函数 这些函数包括s o c k e t 的创建 数据包的接收和发送等 大多数实时多任务操作系统都可以将源代码提供给用户 作为整个项目源程 序的一部分参加编译和汇编 并作为最终用户代码的一部分生成到目标机 上 r t o s 的出现 体现了一种新的系统设计思想和一个开放的软件框架 工程 师可以在不大量变动系统其他任务的情况下增加或去掉一个任务 在一个项目 开发过程中 可以有多个工程师同时进行系统的软件开发 各个工程师之间只 要制定好规程和协议即可 这样 既缩短了开发时间 又降低了最终软件产品 对于某个开发者个人的依赖性 3 第二节v x w o r k s 简介 v x w o r k s 是w i n d r i v e r 公司推出的一款商用实时操作系统 广泛应用在工 业自动化 通信等领域 具有小巧的内核 广泛的硬件支持和第三方软件开发 商支持等优点 v x w o r k s 系统提供多处理器问和任务问高效的信号灯 消息队 列 管道 网络透明的套接字 实时系统的另一关键特性是硬件中断处理 为 了获得最快速可靠的中断响应 v x w o r k s 系统的中断服务程序 s r 有自己的上 下文 v x w o r k s 操作系统的基本构成模块包括以下部分 7 1 高效的实时内核w i n d 9 西北工业大学硕士学位论文第二章实时操作系统v x w o r k s 概述 v x w o r k s 实时内核 w i n d 主要包括基于优先级的任务调度 任务同步和 通信 中断处理 定时器和内存管理 兼容实时系统标准p o s i x i o 系统 v x w o r k s 提供快速灵活的与a n s i c 相兼容的i o 系统 包括u n i x 的缓冲 i 和实时系统标准p o s i x 的异步i 0 v x w o r k s 包括以下驱动 网络 网络设备 以太网 共享内存 管道 任务问通信 r a m 驻留内存文件 s c s s c s i 硬盘 磁盘 磁带 键盘一p c x 8 6 键盘 b s p 仅支持x 8 6 显示器一p cx 8 6 显示器 b s p 仅支持x 8 6 磁盘 i d e 和软盘 b s p 仅支持x 8 6 并e l p c 格式的目标硬件 文件系统 v x w o r k s 的文件系统与m s d o s r t 一1 l r a m s c s i 等相兼容 网络特性 v x w o r k s 网络能与许多运行其它协议的网络进行通信 如t c p i p 4 3 b s d n f s u d p s n m p f t p 等 v x w o r k s 可通过网络允许任务存取文件到其它系统中 并对任务进行远程调用 虚拟内存 可选单元v x v m i v x v m i 主要用于对指定内存区的保护 如内存块只读等 加强了系统的健 忙性 共享内存 可选单元v m p v x m p 主要用于多处理器上运行的任务之间的共享信号量 消息队列 内存 块的管理 驻留目标工具 t o r n a d o 集成环境中 开发工具工作于主机侧 驻留目标外壳 模块加载 1 0 西北工业大学硕士学位论文第二章实时操作系统v x w o r k s 概述 和卸载 符号表都可进行配置 w i n d 基类 v x w o r k s 系统提供对c 的支持 并构造了系统基类函数 工具库 v x w o r k s 系统向用户提供丰富的系统调用 包括中断处理 定时器 消息 注册 内存分配 字符串转换 线性和环形缓冲区管理 以及标准a n s i c 程序 库 性能优化 v x w o r k s 系统通过运行定时器来记录任务对c p u 的利用率 从而进行有效 地调整 合理安排任务的运行 给定适宜的任务属性 目标代理 目标代理可使用户远程调试应用程序 板级支持包 板级支持包提供硬件的初始化 中断建立 定时器 内存映象等 v x w o r k s 仿真器 v x s i m 可选产品v x w o r k s 仿真器 能模拟v x w o r k s 目标机的运行 用于应用系统 的分析 第三节v x w o r k s 操作系统内核实现 v x w o r k s 内核 w i n d 的基本功能可以分为如下几大类 任务管理 事件和异步信号服务 信号量服务 消息队列服务 内存管理 中断服务程序 时钊t 管理和定时器服务 出错处理 1 l 四3 t 工 j k 大学硕士学位论文第二章实时操作系统v x w o r k s 概述 在以下各节中将对v x w o r k s 内核的各类功能分别进行描述 2 3 任务管理 任务是代码运行的一个映象 从系统的角度看 任务是竞争系统资源的最 小运行单元 任务可以使用或等待c p u i o 设备及内存空间等系统资源 并独 立于其它任务 与它们一起并发运行 v x w o r k s 内核使任务能快速共享系统的 绝大部分资源 同时有独立的上下文来控制个别线程的执行 2 3 1 1 任务结构 多任务设计能随时打断正在执行着的任务 对内部和外部发生的事件在确 定的时间里作出响应 v x w o r k s 实时内核w i n d 提供了基本的多任务环境 从表 面上来看 多个任务正在同时执行 实际上 系统内核根据某一调度策略让它 们交替运行 系统调度器使用任务控制块 t c b 的数据结构来管理任务调度功 能 任务控制块用来描述一个任务 每一任务都与一个t c b 关联 t c b 包括了 任务的当前状态 优先级 要等待的事件或资源 任务程序码的起始地址 初 始堆栈指针等信息 调度器在任务最初被激活时以及从休眠态重新被激活时 要用到这些信息 此外 t c b 还被用来存放任务的 上下文 c o n t e x t 任务的上下文就是当 一个执行中的任务被停止时 所要保存的所有信息 在任务被重新执行时 必 须要恢复上下文 通常 上下文就是计算机当前的状态 也即各个寄存器的内 容 如同在发生中断所要保存的内容一样 当发生任务切换时 当前运行的任 务的上下文被存入t c b 将要被执行的任务的上下文从它的t c b 中取出 放入 各个寄存器 于是转而执行这个任务 执行的起点是前次它在运行时被中止的 位置 一个任务的上下文包括 任务的执行点 电就是任务的程序计数器 c p u 寄存器和浮点计数器 动态变量和函数调用的堆栈 标准输入输出 s t d t n s t d o u t 和错误 s t d e r r 的t 0 分配 一个延时定时器 一个时间片定时器 西北工业大学硕士学位论文第二章实时操作系统v x w o r k s 概述 内核控制结构 信号处理器 调试和性能监视值 v x w o r k s 中 内存地址空间不是任务上下文的一部分 与w i n d o w s 不 同 v x w o r k s 操作系统的内存是线性的 所有的代码运行在同一地址空间 2 3 1 2 任务状态和状态迁移 实时系统的一个任务可有多种状态 其中最基本的状态有四种 就绪态 任务只等待系统分配c p u 资源 悬置态 任务需等待某些不可利用的资源而被阻塞 休眠态 如果系统不需要某一个任务工作 则这个任务处于休眠状态 延迟态 任务被延迟时所处状态 当系统函数对某一任务进行操作时 任务从一种状态迁移到另一状态 处 亍二任一状态的任务都可被删除 任务状态转换如图2 一l 所示 最高优先级任务正执行 t a s k l n o 图2 1v x w o r k s 任务状态转换图 状态转换调用函数 就绪态 r e a d y 一一 悬置态 p e n d s e m y a k e o m s g o r e c e i y e 就绪态 r e a d y 一一 延迟态 d e l a y t a s k d e i a y o 就绪态 r e a d y 一 休眠态 s u s p e n d t a s k s u s p e n d 0 悬置态 p e n d 一一 就绪态 r e a d y s e m g i v e m s g o s o n d 0 西北工业大学硕士学位沦文 第二章实时操作系统v x w o r k s 概述 悬置态 p e n d 一 休眠态 s u s p e n d t a s k s u 5 p e n d 0 延迟态 d e l h y 一 就绪态 r e a d y e k p l r e dd e l a y 延迟态 d el t y 一一 休眠态 s u s p e n d t a s k s u s d e n d o 休眠态 s u s p e n d 一 就绪态 r e a d y t e s k r e s u m e 秒以a s k a c t i 啪 e 伊 休眠态 s u s p e n d 一 悬置态 p e n d t a s k r e s u m ed 休眠态 s u s p e n d 延迟态 d e l a y t a s k r e s u m e0 2 3 1 3 任务调度策略 多任务调度须采用一种调度算法来分配c p u 给就绪态任务 w i n d 内核采用 基于优先级的抢占式调度算法作为它的缺省策略 同时它也提供了轮转调度往 基于优先级的抢占式调度 它具有很多优点 这种调度方法为每个任务指 定不同的优先级 没有处于悬置或体眠态的最高优先级任务将一直运行下去 当更高优先级的任务由就绪态进入运行时 系统内核立即保存当前任务的上下 文 切换到更高优先级的任务 图2 2 基于优先级的抢占式调度 w i n d 内核划分优先级为2 5 6 级 o 2 5 5 优先级0 为最高优先级 优先级2 5 5 为最低 当任务被刨建时 系统根据给定值分配任务优先级 然而 优先级眭王 可以是动态改变的 它们能在系统运行时被用户使用系统调用 t a s k p r i o f j t y s e t 0 来加以改变 但不能在运行时被操作系统所改变 轮转调度法分配给处于就绪态的每个同优先级的任务一个相同的执行时间 1 4 西北工业大学硕士学位论文 第二章实时操作系统v x w o r k s 概述 片 时问片的长度可由系统调用k e r n e l t i m e s l i c e 0 通过输入参数值来指定 很明显 每个任务都有一运行时间计数器 任务运行时每一时间滴答加1 一 个任务用完时间片之后 就进行任务切换 停止执行当前运行的任务 将它放 入队列尾部 对运行时间计数器置零 并开始执行就绪队列中的下 个任务 当运行任务被更高优先级的任务抢占时 此任务的运行时间计数器被保存 直 到该任务下次运行时 图2 3 基于时间片的轮转调度 z 3 1 4 抢占禁止 w i n d 内核可通过调用t a s k l o c k 和t a s k u n l o c k 来使调度器起作用和 失效 当一个任务调用t a s k l o c k 0 使调度器失效 任务运行时没有基于优先级 的抢占发生 然而 如果任务被阻塞或是悬置时 调度器从就绪队列中取出最 高优先级的任务运行 当设置抢占禁止的任务解除阻塞 再次开始运行时 抢 占又被禁止 这利一抢占禁止防止任务的切换 但对中断处理不起作用 2 3 1 5 异常处理 程序代码和数据的出错引起的异常 如非法命令 总线或地址错误 被零 除等 v x w o r k s 异常处理包 一般是将引起异常的任务休眠 保存任务在异常 出错处的状态值 内核和其它任务继续执行 用户可借助t o r n a d o 开发工具 查看当前任务j 状态 从而确定被休眠的任务 2 3 1 6 任务实现 西 i l l 业大学顼士学位论文第二章实时操作系统v x w o r k s 橇述 v x w o r k s 内核的任务管理提供了动态创建 删除和控制任务的功能 具体实 现通过如下一些系统调用 r n s k s p a m 0创建 产生并激活 新任务 t s k t n i 0初始化一个新任务 t n s k a c t i v e i f e 0激活一个已初始化的任务 f 爿s 趣2 册80由任务i d 号得到任务名 t n s k a 白m e t o i dr 由任务名得到任务i d 号 t n s k p r i o r i t v g e t0获得任务的优先级 t 锚 i s s h s p e n d e d 检查任务是露玻悬置 t n s k i s r e n c v0检查任务是否准备运行 t n s k t c b0得到一个任务控制块的指针 t n s k d e i e t e 0 中止指定任务并自由内存 仅任务堆栈和控制块 t a s 勃 奢0保护被调用任务 t n s k s u s p e n d o悬置一个任务 t n s k f e s u m e 0恢复一个任务 t i l s k f f e s t n r tf 重启一个任务 t n s k o e n y0延迟一个任务 2 3 2 通信 同步和互斥机制 v x w o r k s 支持各种任务间通信机剿 提供了多样的任务间通信方式 主要 有如下几秘 共享内存 主要是数据的共享 2 信号量 用于基本的互斥和任务同步 消息队列和管道 单c p u 的消息传送 4 s o c k e t 和远程过程调用 用于网络间任务消息传送 j 二进制信号 用于异常处理 在多处理器之间的任务可采用共享内存对象来实现任务闻通信 只是在系统配 置上有所不同 1 6 西北工业大学颐士学位呛文第二章实时操作系统v x w o r k s 概进 2 3 2 1 共享存储区 任务问通信的最简单的方法是采用共享存储区 也即相关的各个任务分享 属于它们的地址空间的同一内存区域 因为所有任务都存在于单 的线性地址 空闯 任务闽共享数据 全局变量 线淫队列 环形队列 链表 指针都可被 运行在不同上下文的代码所指向 2 3 2 2 互斥 当某一地址空闻用于数据交换时 为了避免冲突 对于内存的锁定是非常 重要的 两个或多个任务读写某些共享数据时 最后的结果取决于任务运行的 精确时序 有可能得到错误值 这样必须以某种手段确保当一个任务在使用一 个共享变量或文件时 其他任务不能做同样的操作 主要有关中断 抢占禁止 和用信号量锁定资源等方法 一般来说 关中断是最有效的解决互斥的方法 但这对于实时应用来说 它阻止系统对外部事件的响应 无法满足实时性的要 求 同样 中断延迟也是不能接受 2 3 2 3 信号量 v x w o r k s 信号量提供最快速的任务间通信机制 它主要用于解决任务间的互 斥和同步 针对不同类型的问题 有以下三种信号量 二进制信号量 最快最常用的信号量 用于同步或互斥 互斥信号量 为解决具有内在互斥问题 优先级继承 删除安全和递归等 情况丽优化的特殊的二进制信号量 计数器信号量 类似于二进制信号量 但随信号量释放次数的改变而改变 适合于一个资源的多个实例需要保护的情形 w i n d 信号量对于备种类型的信号量的控制提供了统一规范化的接口 仅创 建函数要特别指明信号量类型 s o 珊日c p e a f e 创建 产生并激活 一个二避制信号量 s e 删幻p t ep创建 产生并激活 一个互斥信号量 s c p t e 创建 产生并激活 制一个计数信号量 s 舱i e e d中正并释自复信号量 s e 埒 矗始f 获得信号量 西北工业大学硕士学位论文第二章实时操作系统v x w o r k s 概述 s 6 m 6 ir e 给出 释放 信号量 s e m f l u s h0解锁所有正等待某一信号量的任务 信号量在创建的时候 队列类型也就确定 等待一个信号量的任务可以按 优先级 s e m q p r i o r i t y 或按先进先出 s e m q f i f o 的顺序排队 2 3 2 4 消息队列 现实的实时应用由一系列互相独立又协同工作的任务组成 信号量为任务 问同步和联锁提供了高效方法 单处理器中任务间消息的传送采用消息消息队 列 消息机制使用一个被各有关进程共享的消息队列 任务之间经由这个消息 队列发送和接收消息 队列2 图2 4 任务间全双工信息传送 2 3 2 5 管道 管道使用v x w o r k s 的i o 系统 能提供一种灵活的消息传送机制 它是一 种由p i p e d r v 驱动程序管理的虚拟i o 设备 任务能调用标准的i o 函数打开 读出 写入管道 当任务试图从一个空的管道中读取数据 或向一个满的管道 中写入数据时 任务被阻塞 和消息队列类似 i s r 能向管道中写入信息 但 不能从中读取 象i o 设备一样 管道有一个消息队列所没有的优势一一调用 s e l e c t0 允许任务等待一系列i o 设备上的数据 w i n d 消息队列管理 m s g 眦 醐 p 创建 产生并激活 消息队列 1 1 1 s g w d e l e f p 0中止并自由信号量 钾q s o n d 0向消息队列发送消息 西北工业大学硕士学位论文第二章实时操作系统v x w o r k s 概述 m s g q f d e c e j v e0从消息队列接收消息 2 3 3 p 断管理 实时系统中硬件中断处理是至关重要的 因为它是以中断方式通知系统外 部事件的发生 为了快速响应中断 中断服务程序i s r 运行在特定的空间 不 同于其它任何任务 因此中断处理没有任务的上下文切换 中断函数 i n t c b i n e c t 将c 函数和中断向量联结 j 月t c b u n t0 得到当前中断套叠深度 7 t l e 憎l e e 0设置程序中断级别 i n t l o c k 0使中断禁止 i n t u n l o c k 0开中断 i n t v e c s e t 0设置异常向量 i n t v e c c e t0得到异常向量 所有的中断服务程序使用同一中断堆栈 它在系统启动时就已根据具体的 配置参数进行了分配和初始化 必须保证它的大小 以使它能满足最坏的多中 断情况 中断也有缺陷 i s r 不运行在常规的任务上下文 它没有任务控制块 对于i s r 的基本约束就是它们不能激活那些可能使调用程序阻塞的函数 例如 它不能获取信号量 因为如果该信号量不可利用 内核会试图让调用者切换到 悬置态 但是 i s r 能释放信号量 v x w o r k s 支持运行在中断级运行的中断服务程序直接与任务通信 v x w o r k s 提供的中断服务程序与任务通信的机制可以有下面几种方式 共享存储区和环形缓冲 中断服务程序可以与任务共享变量 缓冲和环形 缓冲 信号量 中断服务程序能够释放信号量 任务能够等待该信号量 消息队列 中断服务程序能够向消息队列发送消息 任务可以从消息队列 接收消息 如果队列已满 消息则被丢弃 管道 中断服务程序可以向管道写数据 任务可以从中读取 任务和中断 服务程序能够向共享的管道写数据 但如果管道已满 数据将被丢弃 西北工业大学硕士学位沧文 第二章实时操作系统v x w o r k s 概述 信号灯 中断服务程序能够通过发信号来通知任务 触发相应的信号处理 程序的异步调度 关于信号机制的详细说明 可参见3 4 节信号机制 一个i s r 通常与一个或多个任务进行通信 有直接的出有间接的作为输入 输出事务的一部分 这种通信的本质是驱动任务执行 从而处理中断和各种情 况 这与任务到任务的通信和同步基本相同 但是有两点不同 一个i s r 通常作为通信或同步的发起者 它通常返回一个信号量 向队列 发送一个信息包或事件给一个任务 i s r 很少作为信息的接收者 它不可以等 待接收信息包或事件 2 i s r 内的系统调用总是立即返回i s r 本身 例如 即使i s r 通过发送信息 包唤醒了一个很高优先级的任务 它也首先必须返回i s r 这是因为i s r 必须 先完成 v x w o r k s 看门狗定时器作为系统时钟中断服务程序的一部分 允许c 语言 函数指明某一时间延迟 一般来说 被看门狗定时器激活的函数运行在系统时 钟中断级 然而 如果内核不能立即运行该函数 函数被放入t e x c t a s k 工作队 列中 在t e x c t a s k 工作队列中的任务运行在最高优先级0 看门狗定时器调用函数 w d c r e at e 分配并初始化看门狗定时器 w d l e e t e 中止并解除看门狗定时器 w d s t 月r tp启动看门狗定时器 w d g l n c e 0取消当前正在计数的看门狗定时器 2 3 4 信号机制 v x w o r k s 支持软件信号机制 信号不同于信号量 信号可以异步地改变任 务控制流 任何任务和中断服务程序都可以向指定任务发信号 获得信号的任 务立即挂起当前的执行 在下次调度运行对转而执行指定的信号处理程序 信 号处理程序在信号接收任务的上下文中执行 使用该任务的堆栈 在任务阻塞 时 信号处理程序仍可被唤醒 信号机制适合于错误和异常处理 通常 信号处理程序可以作为中断处理 程序来看待 任何可能导致调用程序阻塞的函数都不能在信号处理程序中调用 西北工业大学硕士学位论文第二章实时操作系统v x w o r k s 概述 由于信号是异步的 很难预测当信号处理程序执行时 哪种资源是可用的 为 使系统安全起见 信号处理程序仅能调用那些能在中断处理程序中安全使用的 函数 否则可能导致系统出现死锁 2 3 5 时钟管理 时钟管理提供以下功能 维护系统日历时钟 在任务等待消息包 信号量 事件或内存段时的超时处理 以一定的时间间隔或在特定的时间唤醒或发送告警到一个任务 处理任务调度中的时间片轮转 这些功能都依赖于周期性的定时中断 离开实时时钟或定时器硬件就无法工作 时钟管理的系统调用有 t j c k a n n o u n c e0通知系统内核时钟 滴答 t i c k y e t 设定内核时钟计数器值 t i c k g e t 得到内核时钟计数器值 t l m e j 甜 e a t e0创建时钟 t l m e z k e t t i m e0获得时钟器给定值的当前剩余值 t i m e rs e t i m e0设定时钟值 t i m e rc o n n e c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论