(计算机系统结构专业论文)基于hc08微控制器的嵌入式实时操作系统fdcx08.pdf_第1页
(计算机系统结构专业论文)基于hc08微控制器的嵌入式实时操作系统fdcx08.pdf_第2页
(计算机系统结构专业论文)基于hc08微控制器的嵌入式实时操作系统fdcx08.pdf_第3页
(计算机系统结构专业论文)基于hc08微控制器的嵌入式实时操作系统fdcx08.pdf_第4页
(计算机系统结构专业论文)基于hc08微控制器的嵌入式实时操作系统fdcx08.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

(计算机系统结构专业论文)基于hc08微控制器的嵌入式实时操作系统fdcx08.pdf.pdf 免费下载

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

文档简介

图片目录 图1 - 1 嵌入式系统总体框架。9 图l - 2 操作系统的例子及其分类1 1 图1 - 3r t - l r n u x 结构图1 2 图2 - 1m c 6 8 h c 0 8g z l 6 微控制器系统结构框图1 5 图2 2m 6 8 h c 0 8g z l 6 的存储器地址分配1 7 图2 3m 6 8 h c 0 8g z l 6 的中断源及中断向量1 8 图2 - 4 中断时寄存器的保存顺序1 9 图2 - 5h c 0 8m c u 连入c a n 总线网络2 0 图2 - 6h c 0 8m c u 连入l i n 网络2 l 图3 - 1f d c x 0 8 分布式控制系统结构2 4 图4 - 1 任务的状态转移2 6 图4 2 任务现场的保存和恢复2 8 圈4 3 分配给用户任务的栈空间3 0 图4 - 4 任务建立后的数据结构3 l 图4 - 5 任务调度函数t a s k r e a l s c h e d 0 的应用场景3 2 图4 - 6 任务调度程序框图,3 3 图5 - 1f d c x 0 8 中信号量操作流程3 6 图5 - 2c a n 协议标准格式报文,3 7 图5 - 3 邮件的数据格式3 9 图5 _ 4 发信子程序框图4 1 图5 - 5c a n 接收中断处理程序4 2 图6 - 1 定时中断程序框图4 5 图7 - 1 中断处理程序框图4 8 3 表目录 表2 - l 几款实时操作系统的系统开销比较1 3 表8 - 1f d c x 0 8 中断处理编号4 6 4 摘要 近年来,嵌入式领域飞速发展,在工业、民用、军事、科研等各个方面的得 到了广泛的应用。但是嵌入式系统相对于通用计算机系统具有差异巨大,资源有 限,软硬件协同的特点。这些特点使得嵌入式系统应用开发难度大、效率低。 而采用嵌入式操作系统可以降低开发难度、提高开发效率。针对嵌入式系统 应用最广泛的控制领域,还需要为其加入实时性的支持。另外,目前在嵌入式的 控制系统中有相当多的是多机协作,通过各种总线相连的,如果嵌入式实时操作 系统能够加入对总线控制的支持则更能提升嵌入式软件的开发质量。 在这种背景下,我们尝试着开发出一套针对8 位微控制器的小型实时操作系统 f d c x 0 8 ,它能够支持c a n 和l 1 n 总线网络通讯。本文围绕作者在复旦大学嵌 入式系统实验室参与的操作系统研究项目,首先总结了关于嵌入式实时操作系统 的各方面知识与背景,在此基础上提出自己的设计思想,介绍并选择了f d c x 0 8 所运行的硬件环境,然后逐一分析了f d c x 0 8 的总体结构和各个组成模块,对 它们的实现过程进行了详细的说明。本论文最后总结和展望了f d c x 0 8 的使用 和改进方法。 关键诲t 嵌入式系统、实辩操作系统、h c 0 8 # 1 t 熊g c g 、任务调度 中图分类号:t p 3 5 k e y w o r d s :e m b e d d e d s y s t e m , r e a l t i m eo s , h c 0 8m i c r o c o n t r o l l e r , t a s ks c h e d u l e i nr e c e n ty e a r s ,e m b e d d e ds y s t e mh a sg o tar a p i dd e v e l o p m e n t i th a sb e e n a p p l i e di nt h ev a r i o u sf i e l d so fi n d u s t r y , c i v i l ,t h em i l i t a r y , t h es c i e n t i f i cr e s e a r c ha n d e r e h o w e v e r ,c o m p a r i n gw i t hg e n e r a lc o m p u t e rs y s t e m ,e m b e d d e ds y s t e mh a s f e a t u r e sl i k eh u g ed i f f e r e n c e ,l i m i tr e s o u r c e ,c o o p e r a t i o no fs o f t w a r ea n dh a r d w a r e t h e s em a k et h ed e v e l o p m e n to fe m b e d d e ds y s t e ma p p l i c a t i o nb e c o m ed i f f i c u l ta n d h a sl o we f f i c i e n c y t h eu s eo fe m b e d d e do p e r a t i o ns y s t e mc a l l d e c r e a s et h ed e v e l o p m e n td i f f i c u l t y a n di m p r o v et h ee f f i c i e n c y t o s u p p o r tt h ei n d u s t r yc o n t r o l l e rf i e l d , i nw h i c h e m b e d d e ds y s t e mi sa p p l i e dm o s t l y , t h eo p e r a t i o ns y s t e mn e e d st ob ea d d e dw i t ht h e s u p p o r to f r e a l t i m ef e a t u r e s w h a t sm o r e m a n ye m b e d d e de o n t r o is y s t e mi sm a d eo f an u m b e ro fm a c h i n e s ,a n dt h e yc a nc o o p e r a t eb a s e do nb u sc o m m u n i c a t i o n t h a t m e a n si tc a ni m p r o v et h eq u a l i t yo fe m b e d d e ds y s t e ms o f t - w a r ei ft h es u p p o r to fb u s c o m m u n i c a t i o ni sa d d e dt ot h eo p e r a t i o ns y s t e m u n d e rt h i sb a c k g r o u n d ,w et r yt od e v e l o pas e to fs m a l lr e a l - t i m eo p e r a t i o n s y s t e mc a l l e df d c x 0 8 ,e x e c u t i n go n8 - b i t sm i c r o c o n t r o l l e r i ts u p p o r t st h eb u s n e t w o r k sl i k ec a na n dl i n t h i st h e s i si sb a s e do nt h eo p e r a t i o ns y s t e mp r o j e c ti n f u d a nu n i v e r s i t y se m b e d d e ds y s t e ml a b ,w h i c ht h ea u t h o rp a r t i c i p a t e d f i r s ti t s u m m a r i z e st h eb a c k g r o u n da n dt h ek n o w l e d g eo fe m b e d d e dr e a l t i m eo p e r a t i o n s y s t e m b a s e do nt h a t ,i tb r i n g sf o r w a r dt h eo w nd e s i g ni d e a s i td e s c r i b e sa n ds e l e c t s t h ee n v i r o n m e n tt h ef d c x 0 8r u n n i n go n a n dt h e ni t a n a l y z e st h ew h o l es t r u c t u r e a n dt h es e p a r a t em o d u l eo f t h ef d c x 0 8 i nd e t a i li te x p l a i n st h ei m p l e m e n t so fa l lt h e p a r t s i nt h ee n d ,t h et h e s i ss u m m a r i z e sa n dl o o k sf o r w a r dt h ef e a t u r e sa n dt h e i m p r o v e m e n to ft h ef d c x 0 8 6 1 前言 当今,嵌入式系统在人们身边出现得越来越多,发挥的作用也越来越重要。 嵌入式系统的灵魂是“操作系统”,一个优秀的嵌入式实时操作系统能帮忙开发 人员构造出功能强大、性能优秀,运行稳定的嵌入式系统。 针对于处理速度较慢、资源受限的八位微控制器来说,它们主要完成的是简 单的控制作用或低通量的数据采集和分析工作,应用场合一般在工业控制等方 面。虽然在早期运行在其上的应用程序大都是单一顺序执行的软件,但在可靠性 和稳定性方面都跟程序工程师的经验与水平有着较大的关联,很难控制软件质 量,特别是当应用场合的处理环境较为复杂时,单一流程式的软件的开发工作更 会出现顾此失彼的状态。而如果引入操作系统中“任务”的概念后,可以使得开 发者从事务处理的逻辑角度来认识和开发应用程序,抛开了一些与硬件相关的细 节,不仅程序模块清晰明了,而且能大幅降低开发难度,开发起来更为直观,同 时可靠性与稳定性也大大增强了。 因此,有必要在此类八位单片机上运行起操作系统,以提高软件性能。此类 操作系统不同于那些运行在资源丰富的硬件平台上的嵌入式操作系统,它要求的 是提供最基本、最快速的任务调度工作,要求内核占用空间尽量的小,以留下足 够空间来供用户任务使用。我们依照此目标在八位单片机h c 0 8 上开发出一个小 型实时操作系统,它除了提供了基本的任务调度的功能外,还能扩展任务问消息 传递的途径,可以使得运行此系统的多台单片机通过总线通讯的方面传递任务间 的消息,更为适合工作在多主机相联的控制系统中,例如机器人控制系统中,因 此具有很强的实用性。 7 2 嵌入式系统与实时操作系统 本节将首先介绍嵌入式系统的体系结构和发展状况,然后针对构建嵌入式系 统的实时操作系统的功能、结构、性能等方面进行一个全面的介绍,并分析其特 点。 2 1 嵌入式系统 在研究嵌入式实时操作系统之前首先要明确什么是嵌入式系统。嵌入式系统 ( e m b e d d e ds y s t e m ) 是以应用为中心、以计算机技术为基础、软硬件可载剪、 适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。 它的应用场合非常广泛,从日用家电,工业控制,到医疗设备领域。相对于 传统计算机系统,嵌入式系统具有以下特点: 功能单一,在需求分析或系统设计的时候能够对处理器性能,存储器容 量,i o 带宽等有明确的需求指标: 对可靠性的要求与用户对被嵌入的应用系统的可靠性要求是一致的,通 常非常严格; 输入输出设备特殊,往往没有键盘和显示器等与人交互的设备。 通常来说,嵌入式系统由硬件和软件两部分组成,它们协同工作,由软件进 行总体控制和计算处理等逻辑任务,而硬件实现具体诸如用户交互、数据通信等 物理任务。 硬件部分包括:l 、嵌入式系统处理器;2 、相关支撑硬件。 嵌入式处理器作为程序运行的硬件载体,起着核心的作用。最常见嵌入 式系统处理器称为微控制器( m c u :m i c r o c o n t r o lu n i t ) ,即俗称的单 片机。它将个计算机系统的大部分组成部分集成在一块集成电路芯片 上。芯片除了微处理器内核用来进行运算处,还集成了存储器( r a m , f l a s h ) ,i o 部件( u a r t 、1 2 c 、c a n 等) ,从而能够构成一个满足应 用需求的计算机系统。 8 相关支撑硬件包括显示卡、l c d 屏、存储介质、通信设备、i c 卡或信 用卡读取设备等,这部分种类繁多,它总过总线与嵌入式处理器相联, 接受控制。 软件部分是应用系统的整个逻辑的实现,在网络应用中会包括各种网络协议 栈,在工业控制应用中会包括环境参数的捕获、状态机的转换,在人机交互的应 用中会包括如l c d 驱动、键盘驱动、g u i 系统等。嵌入式软件种类繁多,表现 形式也不一而足。在早期,嵌入式完成的功能较为单一,程序逻辑简单,但如今, 随着应用的越来越复杂,单一流程的程序已不能满足需要,因此需要操作系统的 帮助,以完成复杂的应用。而硬件条件的快速发展使得存储器越来越大,处理器 的主频越来越高,速度越来越快,这又进一步促使了嵌入式软件中操作系统的广 泛应用。 综上,一个通用的嵌入式软件硬件系统的框架如下图所示。 图2 - 1 嵌入式系统总体框架 例如,本文介绍的嵌入式实时操作系统f d c x 0 8 运行在f r e e s c a l e 公司( 原 m o t o r o l a 公司的半导体部门) 出品的h c 0 8 型号的微控制器上。后面还将专门介 绍此款单片机的体系结构。 9 2 2 操作系统与嵌入式实时操作系统 从计算机诞生起,人们就在不断寻找一种方法来使用户方便简单地使用它, 操作系统由此而生。操作系统是配置在计算机硬件上的第一层软件,是对硬件系 统的第一次扩充,它有效地控制和管理着计算机硬件系统和软件系统资源,方便 用户充分而有效地利用这些资源。 嵌入式实时操作系统是操作系统领域中的一个重要的组成部分,如上一节所 说,它也是构成一个嵌入式系统的核心之一。 但是在早期简单的嵌入式系统中,由于应用需求有限、硬件资源阻碍,并没 有操作系统。随着应用对象增多和应用对象复杂程序增长,使得相应的控制及管 理程序变得很复杂,增大了程序的设计和调试难度,可靠性也相应降低。现在, 随着嵌入式系统的发展,各种操作系统被越来越多地应用于嵌入式系统中,它们 能够显著提高软件开发的效率和质量。因此,对于新型的嵌入式系统,嵌入式操 作系统是必不可少的。它按其应用对象不同,分成如下几类: 面向信息家电和3 c 产品类:p a l m o s 、v i s o r 、h o p e n 、w i n d o w sc e 、 嵌入式l i n u x 工业与通信类:v x w o r k s 、v r t x 、q n x 、p s o s 单片机类:i r m x 、c m x 、u c o s 、f r e e r t o s 前两类的操作系统代码较大,超过百k 字节,一般较适合机顶盒之类的台 式嵌入式系统。而单片机类的嵌入式操作系统只有几千个字节,但功能有限,只 有一些简单的实时处理,多任务调度等功能。一般应用于由单片机构成的控制系 统。本文所要描述的f d c x 0 8 即属于此类。 另外,操作系统又从响应程序可分成两类:l 、实时操作系统;2 、非实时操 作系统。它们关键区别就在于“实时”两字。所谓实时,具有立即的含义,实时 性要求系统能及时的响应外部事件的请求,在许可的时间限制内完成以该事件的 处理,并控制相应的设备完成实时操作。通常来说,p c 机上运行的w i n d o w s 、 l i n u x 都是非实时操作系统,当机器没有及时响应了,也许等待一个不确定的时 间就好了,实在不行只需要重新启动机器也可以。但对于在特定场合下完成专用 任务的嵌入式系统来说,如果不能确定隔多长时间能响应是件非常严重的事情, 甚至会带来经济的损失、人员的伤亡,因此大多作为控制系统的嵌入式系统都是 需要保证实时性的,响应的时间间隔可以从几微秒到几秒,但一定要有个最坏情 况下的晌应时间限制,这个最长响应时间就是衡量实时系统性能的一个重要指 标。也有部分消费类电子产品中的嵌入式系统不需要保证实时性。 下图展示了操作系统的例子及其分类。 1 0 非实时操作 实时操作系 嵌入式操作系统 通用操作系统 图2 - 2 操作系统的例子及其分类 本文中所指的f d c x 0 8 主要应用的控制方面,因此是嵌入式实时操作系统。 综合来讲,作为操作系统的一个重要组成部分,嵌入式实时操作系统的特点 大致如下: ( 1 )整个系统所占的空间要小,这主要是由其应用领域所决定的。为了适 应嵌入式设备存储容量有限的特点。操作系统一般由微内核及一些可 以根据需要进行定制的系统模块组成,整体占用空间比较小,功能一 般比台式机上的操作系统弱。 ( 2 )实时性强。由于嵌入式系统大多用于和各种控制有关的系统,因而对 其实时性的要求一般比台式机要强。 ( 3 )专用性强。一般和硬件的联系比较紧密,都是针对各种特定用途而设 计,根据不同的应用而呈现多样化的形式。 ( 4 )应用广泛。广泛应用于各种航天飞行器控制系统、数字电视机、v c d 、 学习机、寻呼机、手持电话,p d a 、掌上p c 、电话系统、数字相机、 各种智能设备、仪器仪表等众多的军用和民用领域。 2 3 当前的嵌入式实时操作系统举例 目前,嵌入式操作系统的品种非常多,仅进行商业销售的就数以百以,更多 的科研用途的种类更是难以计数,其中较为流行的主要有:实时l i n u x 、v x w o r k s 、 p s o s y s t e m 、q n x 、i - t r o n 、u c o s 等。 目前各种嵌入式l i n u x 操作系统正迅速发展,已经形成了能与w i n d o w sc e 等嵌入式操作系统进行有力竞争的局面。嵌入式l i n u x 操作系统的迅速崛起,主 要由于人们对自由软件的渴望与嵌入式系统应用的特制性,要求提供系统源码层 次上的支持,而嵌入式l i n u x 正适应了这一需求,它不仅具有开放源代码,系 统内核小、效率高、内核网络结构完整,裁减后的系统很适于如信息家电等嵌入 式系统的开发。虽然l i n u x 本身并不是一个实时操作系统,但是对l i n u x 实时性 的研究工作一直在进行,目前已有各种实时l i n u x 系统出现了,最为著名的版本 是是新墨西哥科技大学( n e wm e x i c oi n s t i t u t e o ft e c h n o l o g y ) 的研究成果 r t - l i n u x ,它的基本思想是,为了在l i n u x 系统中提供对于硬实时的支持,它实 现了一个微内核的小的实时操作系统( 我们也称之为r t - l i n u x 的实时子系统) 而将普通l i n u x 系统作为一个该操作系统中的一个低优先级的任务来运行。 曾遁l i m 内引蜘憔务寅时住备当时任务 瑚吧i 加z 当时内拔 硬件 图2 3r t l i n u x 结构图 v x w o r k s 、p s o s y s t e m 、q n x 是传统嵌入式操作系统领域中应用最广泛、市 场占有率较具优势的几个系统。它们是专门为嵌入式微处理器设计的高模块化、 高性能的实时操作系统,广泛应用于高科技产品中,包括消费电子设备、工业自 动化、无线通信产品、医疗仪器、数字电视与多媒体设备,具有很好的安全性、 容错性以及系统灵活性。虽然它们都提供专有的a p 接口,但并不适用现在的 许多应用需要,迫切需要在系统级整合改造并支持应用特制的性能,即在定制的 或商品化的硬件上提供高性能和高可靠性系统服务,将操作系的功能和内存需求 定制成每个应用所需的系统,在此基础上来实现从简单的单个独立设备到复杂 的、网络化的、多处理器的嵌入式系统。 i - t r o n 虽然在其他国家知名度较低,但却是目前日本国内事实上的工业标 准,1 9 8 4 年日本成立t r o n 协会,各大计算机厂商、办公机器厂商大都参加了该 协会,并指定统一的标准和规范。在协会的组织下,共同研究开发出用于工业控 制的i - t r o n 。具有标准的实时内核适用于任何小规模的嵌入式系统,日本国内现 有很多基于该内核的产品,其中消费电器较多。 u c o s 是由j e a nl a b r o s s e 的编写的实时操作系统内核,它开放源代码,一 开始是作为一个带有学习性质的系统免费推出的,用来帮助读者学习实时内核的 1 2 基本概念,专门有介绍它的书籍出版发行,但同时由于它的非常稳定可靠的性能、 方便的移植性、合理的价格,它越来越多的运用到了当前的商业产品中。 下表比较了刚才所介绍的几款实时操作系统的系统开销。 系统名称r t l i n u xv x ,o r k s p s o s y s t e mq n x i t r a nu c o s 内核人小 5 0 0 1 0 0 0 k b1 6 4 8 8 k b2 5 4 0 k b3 2 6 4 k b1 0 2 0 k bl o 一2 0 k b 内存占用 2 0 0 3 0 0 k b6 2 0 b 之9 k bo 5 5 k b8 2 0 k b 1 3 k b 表2 1 几教实时操作系统的系统开销比较 1 3 3 h c 0 8 微控制器介绍 本文的操作系统内核是建立在f r e e s c a l e 公司( 原m o t o r o l a 半导体业务部门) 的m c 6 8 h c 0 8 系列微控制器芯片上的,简称为h c 0 8 。本节将介绍此芯片与操作 系统内核相关的体系结构和编程方法,以便后面更好的解释有关实时时钟、堆栈 保存、总线通信等系统服务。 h c 0 8 系列单片机采用模块式结构,该系统有多种型号的单片机产品,不同 型号的产品在内部模块的类型、数量、封装形式、存储器大小上有些不同,如 g p 3 2 内部有2 个定时器、3 2 k 的f l a s h ,而j l 3 则只有1 个定时器、4 k 的f l a s h 。 针对我们这套操作系统,因为支持c a n 总线的通信机制,因此我们选择内含c a n 总线接口的m c 6 8 h c 0 8g z l 6 型号的芯片作为典型平台进行具体介绍。 3 1 总体结构 图3 1 给出了m c 6 8 h c 0 8g z l 6 的系统结构框图。从图中我们可以看到 g z l 6 主要有如下的一些功能模块: 中央处理器模块c p u 0 8 ; 时钟发生器模块c g m 存储器模块m e m o r y ; 模数转换模块a d c ; 多功能定时器接口模块t i m l 和t i m 2 ; 串行通信接口s c i ; 串行外围器件扩展接口s p i ; c p u 正常工作监视模块c o p ; c a n 总线接口模块m s c a n 0 8 模块: 1 4 图3 - 1m c 6 8 h c 0 8g z l 6 微控制器系统结构框图 由这些功能模块组合使得此芯片具有比较强大和完备的处理能力,g z l 6 芯 片的特性包括: 高性能的m 6 8 h c 0 8 体系结构 最大内部总线频率可达8 m h z 1 6 k b 用户可编程f l a s h 1 k b 的o n - c h i p r a m 两个1 6 位,2 通道的定时器模块( t i m e r ) ,每个通道都可实现输入捕捉、 输出比较、p w m 功能 1 5 。9,暑黛崔鼍口叠皂罩,嚣正 时间基中断模块,提供系统时间基准 具有多种通信模块如c a n 、s c i 、s p i 等。 最多达3 1 个通用i o 口 低功耗设计,可进入休眠状态 3 2 中央处理器c p u 0 8 m 6 8 h c 0 8 单片机的中央处理器模块具有功能强、速度快的特点。内部总线 时钟频率高达8 m h z ,最小指令执行时间为1 2 5 n s ,最长的除法指令周期也只有 8 7 5 n s 。它内部包含有指令寄存器、译码器等控制逻辑、算术逻辑运算部件a l u 以及c p u 寄存器。从用户编程角度来看的结构如下图所示: 累加器a :累加器a 是一个特殊的通用寄存器,在算术运算中,a 即存 放一个操作数又保存操作数。 变址寄存器h x :1 6 位的变址寄存器由h ( 高8 位) 寄存器和x ( 低8 位) 寄存器组成,利用变址寄存器h x 可以实现对6 4 k 字节存储空间的 寻址。可以对i - i x 送数、增量、清零等操作。可以单独对8 位的h 和x 寄存器操作,也可以对1 6 位的h x 寄存器操作; 堆栈指针:1 6 位的堆栈指针指向下一次数据进栈的地址。进栈操作时先 数据进栈,然后s p 的内容减1 。实际使用时堆栈只能设在内部r a m 区 1 6 域。复位后s p 初值为f f 。 程序计数器p c :1 6 位的程序计数器p c 指出下一条要执行的指令的存放 地址。一般情况下每取出一个指令字节p c 自动加l 。使c p u 按地址顺 序执行程序。在执行跳转指令、调用子程序指令时对对p c 赋值,使c p u 跳到指定地址开始执行。 条件码寄存器c c r :条件码寄存器c c r 通常也称为程序状态字,存放 指令执行后的标志,有:溢出标志位v ;半进位标志h ;中断屏蔽位i ; 负数标志位n ;零标志位z :进位借位标志位c 。 这些寄存器都是在操作系统中任务切换时所需要保存的现场内容。 3 3 存储器分配 m c 6 8 h c 0 8g z l 6 单片机寻址范围可达6 4 k 字节,包括 1 5 ,8 7 2 字节用户可编程f l a s h 1 0 2 4 字节r a m 4 4 字节用户设置的向量地址 3 5 0 字节的监控r o m $ 0 0 0 0 $ 0 0 3 f $ 0 0 4 0 $ 0 4 3 f $ 0 4 4 0 $ o b f f $ 0 c 0 0 i o 设备寄存器( 6 4 字节) r a m 数据存储器( 5 1 2 字节) f l a s h 存储器( 1 5 8 7 2 字节) 监控r o m ( 3 5 0 字节) 用户中断向量表( 4 4 字节) 图3 - 2m 6 8 h c 0 8g z l 6 的存储器地址分配 1 7 一一 一一 一 一一一 一 一一 一 3 4 中断与现场保存 中断在操作系统中起到关键性的作用,是任务进行切换的方式,完成实时系 统的实时响应,因此要了解有关中断的过程及现场的保存方式。 m 6 8 h c 0 8g z l 6 包含了包括模数转换a d c ,串口通信s c i ,时间模块t i m , 时间基模块t b m ,键盘k e y b o a r d ,外部中断i r q l ,c a n 总线通信,软件中断 s w 在内的2 1 个中断。 这些中断的中断服务程序入口地址存放在4 4 字节用户设置的向量地址里, 每种中断都有一个优先级号,即为中断的向量号,向量号最小,越优先响应。中 断向量地址按向量号的排列依次递减,具体如下表所示: s o u r c e f l a gm a s k ( t 1 i n tr e 0 1 1 a o rv e c t o r n 均 p r b 哺一匐 a d d m i l s r d n o n e n 0 mn 0 n e 0 s f f f e - $ f f f f 洲j n s b u c t i o n n o n e n o n en o n e 0 $ 阡f c - 鑫f f f d f 翮n i r o fi m s k l i f l1 s f f f a - - $ f f f b c g mc h e n g e l h k p l l f p l l 忙i f 22 s p y f 8 _ 喜f f f 9 t i m ic h a r m 耐o c h o f c h 删ef f 3 3$ f f f b _ $ f f f 7 t i m l c h a n n e i1 c h l f c h l l el f - 44 $ f f f 4 s f f f 5 t l m lo v e r f l o w t o f 1 _ o i el f 6 6 $ f f f 2 - $ f f 舟 t i m 2 c h a n n e l0 c h o f c h o ei f b 6 $ f f f 呲f f f i t i c h a n m l1 c h l f c h l e i f 77 $ f f e e 5 f f e f t l 1 3 b r f l o w 1 d ft o 畦 i f 68 s f f e 瞄f f e d s p ir e o a l 怕i - f u l i s p f 簪 s p r 忙 s 尸io - 碉r n o w 0 计t f e r r f ei f 99 s f f e 瞄f f e b s p lm o d e f a u l t m o d fe r r 哐 s p ii r a n s 盯| t t e re m 脚 s p 丁es 朋e j f ,o1 0 s f f e 8 _ f f e 9 s c lr e c e i v e rd w r r u n o r o r l e s c in o i s ef l a g n f n e l e i f 11 1 $ f f e f f e 7 s c if r a m i n go r r o r f ef 日e s c ip a d 坤e r r o r p e p e 忙 s c fr e c v o r f u l s c r fs c r 哐 l f l 2 1 2s f f 芒4 - $ f f e 5 s c l i n p u l i d i ei d l el 哐 s c it m 腓m m 酣e m p t y s c t es c r e i f l 3 1 3$ f f f 殴4 f f e 3 s c i 奸a 倩m 1 锄i o nc o m l y , d et c t c 哐 k e y b o a r d n k e v fi m s l f l 41 4 s f f e o _ s f f e l d cc or l , a l o t lc o i t z p i e t o c o c o l e n l f l s1 5 i f f d e - s f f o f 可n m b a 自a t b ft 酬e l f l 61 6 $ f f d c 4 f f d d m s c a n 0 8r e o e k 帕r w a k 3 e u pw u p f w u 纠el f l 71 7 s f f d k f f d b r w r n i fr w f 州e t w r n i ft w r n i e r e r l fr e r r l e m s c a n 0 8e r t o t l f l 81 b铲f d e s f f d 9 t e f 珉i ft e r r e b o f f i fb o f f j e 叫r i fc ,r i e m s c a n 0 8 怕o 目蚶 r x f r x f i el f l 91 0 $ f f d 6 - s f f d 7 t x e 2t x e i e 2 m s c a n 0 8 t m n s m l t t e r t x e it x e i e li f 2 02 0 虾f d “f f d 5 t x e 0t x e i e o 至器l 嘧b r i 砒n t p h e n 。c n o t y n 龇b “由7 叼曲甘4 口o b d 咐呔衙训 。忡5 。”忙酷。刚h 。8 w 。喊d b “ 图3 - 3m 6 8 h c 0 8g z l 6 的中断源及中断向量 1 8 c p u 每执行完一条指令。如果条件码寄存器c c r 中的中断屏蔽位i = 0 , 按中断优先级次序查询所有的中断标志位,如果查到允许的中断请求源标志为 “1 ”,则响应该中断请求。中断过程如下: 1 将c p u 的部分寄存器( 程序寄存器p c 、变址寄存器的低位x 、累加寄 存器a 、程序状态字c c r ) 压入堆栈中,同时堆寄存器s p 的值相应的 改变( 减5 ) 。 2 设置c c r 中的中断屏蔽位i ,禁止再次产生中断。 3 根据中断向量号从中断向量表中查找到中断服务程序的地址,并赋给 p c ,从而跳转过去执行。 4 c p u 从中断入口地址开始执行中断服务程序,直至碰到返回指令r t i 为 止。r t i 指令会按中断时寄存器入栈的顺序依次从堆栈中弹出数据,恢 复中断前的现场。 寄存器的自动保存到堆栈顺序如下图所示: $ 0 0 0 0 o 之后sp 位 原sp 位置 图3 - 4 中断时寄存器的保存顺序 3 5 外围接口 与f d c x 0 8 相关的芯片外围接口主要有两个:l 、m s c a n 0 8 模块;2 、串 1 9 行通信接口s c i 。用来实现操作系统中远程信息通讯的功能 m s c a n 0 8 模块使程序员可以方便的实现c a n 总线协议,与其相应的有两 个芯片引脚c a n r x 和c a n t x ,只要在外围再加入一片电平转换的收发芯片,g z l 6 便可联入c a n 网络,如下图所示: 图3 5 h c 0 8 m c u 连入c a n 总线网络 s c i 模块提供的串行数据通讯格式是l i n 总线协议的基础,因此通过对s c i 的操作,能实现l i n 的通讯,为了提供l i n 网络所需的电平和信号,还需要加 入一个l i n 的物理接口( m c 3 3 3 9 9 ) 。 l i n n o d e1l i n n o d e2 l 1 n n o d e3 围3 - 6 h c 0 8 m c u 连入l i n 网络 4 1 功能简介 4 f d c x 0 8 操作系统的总体结构 f d c x 0 8 ( f u d a nd i s t r i b u t e dc o n t r o le x e c u t i v ef o rm c 6 8 h c 0 8 ) 是个适用于 m c 6 8 h c 0 8 微控制器的实时多任务操作系统,适用于多控制功能的实时应用场 合,可同时运行多至8 个任务,它支持c a n ( c o n t r o l a r e a n e t w o r k ) 和l i n ( l o c a l i n t e r c o n n e c tn e t w o r k ) 通讯。可用于分布式多机控制系统。使用f d c x 0 8 ,可使 应用软件结构清晰、编程调试方便、实时性强。f d c x 0 8 具有以下特点: 具有实时多任务执行能力,可支持8 个任务同时运行,采用优先级任务调 度方法。 支持任务间通信,并有信号量控制功能,可实现任务的同步和互斥操作。 支持c a n 和l i n 通讯,每个任务可与c a n 总线上各节点的指定任务进 行通讯也可与扩展节点( 通过l 矾) 的指定任务进行通讯。 实时性强,系统开销小。 具有实时时钟功能,可为各任务提供定时和超时计数服务。 支持m 6 8 h c 0 8 的各种中断,为各任务提供中断处理服务。 用户接口简单,通过系统调用为任务服务。 4 2 基本结构 作为一个简单的实时多任务操作系统,一般应包括调度、任务通讯管理、实 时时钟、中断处理等几个部分。 实时系统一般须完成多个功能,每个功能可由一个或几个任务实现。这许多 任务可并行运行,它们具有相对独立性。每个任务有三种状态:运行态、就绪态、 等待态。这三个状态之间的转换控制由操作系统的任务调度完成。 各个任务之间有各种横向关系,需进行通讯,包括通信、资源共享管理等。 这项工作由任务通讯管理完成。 任务在运行时,一般需定时或延迟操作,这项工作由实时时钟来完成一个 任务在需延迟时,把延迟值通知操作系统,然后停止运行。而实时时钟在该任务的 延迟时间到时,会自动叫醒该任务。 实时系统的实时响应一般均用中断来实现,许多输入输出功能也用中断来驱 动。中断在实时系统中十分重要,它是实时操作系统进行调度控制的基础。故操 作系统中专门有一个部分处理各种中断,并为用户任务提供中断服务。 f d c x 0 8 具有任务调度、任务通讯管理、实时时钟、中断处理等四个部分。 其中任务调度是它的核心部分,其他部分都需使用它来完成各种功能。用户任务 处于全部软件的最外层,它们与f d c x 0 8 的接口层用系统调用的方法来实现。 f d c x 0 8 的各部分简介如下: 4 j 2 1 任务调麦 任务调度管理构成应用系统的8 个任务,同时它也为用户提供如下服务 建立任务 删除任务 任务调度 4 2 2 。任务逯识管理 f d c x 0 8 允许任务之间以传递信息( m e s s a g e ) 的方式来交换数据。利用这 种方式可以实现同步操作,并可间接实现共享系统资源。它为用户提供如下服务: 信号量的p 、v 操作 向其他任务发送信息 等待信息 4 2 i 3 i 实时时钟 f d c x 0 8 使用单片机内部的硬件定时器模块,为系统中的每个任务提供了定 时、延时和超时计数功能。它为用户提供以下服务: 设置定时时间间隔 等待定时时间到 任务延时 等待事件超时返回 4 2 4 中断处理服务 f d c x 0 8 为各任务提供中断处理服务,包括如下功能: 初始化时为任务设置中断源 禁止某一中断 允许某一中断 等待中断 4 3 硬件工作环境 f d c x 0 8 可工作于任何m 6 8 h c 0 8 芯片。为了发挥操作系统的分布式消息传 递的性质( 通过c a n 和l i n ) ,故目前以m c 6 8 h c 0 8g z l 6 为例。它自带c a n 总线模块,而l i n 总线协议是基于标准串行通信接口( s c t ) 的数据格式,g z l 6 带有的s c i 也可以满足要求。由于g z l 6 两种通讯方式都支持,因此可以作为主 节点,而只使用到l i n 的扩展节点,由于不需要使用c a n ,为了节约成本( 带 c a n 模块的g z l 6 较为昂贵) ,在此使用m c 6 8 h c 0 8e y l 6 芯片。 利用f d c x 0 8 可以将一个分布式控制系统中的主节点( 使用g z l 6 芯片) 用 c a n 连接起来,同时主节点再通过l 1 n 总线网络来控制下层的子节点( 使用 e y l 6 芯片) 。整个分布式控制系统可为如下结构: c a n 总线 图4 - 1f d c x 0 8 分布式控制系统结构 c a n 总线的每个节点的任务可与本c a n 总线上的各个节点或其扩展节点的 指定任务进行通讯,也可与本身的l i n 扩展节点上的指定任务进行通讯。例如: a 可以和b ,c ,通讯,也可以和c 所在的l i n 网络上的c 1 ,c 2 通讯 a l 可以和a 、a 2 、a 3 通讯,也可以通过a 和b 、c 、e l 、c 2 、c 3 通讯 5 1 任务和任务状态 5 实时任务调度 任务是实时内核管理的程序单元,从宏观上来讲,多个任务是在并行运行, 但由于实际上只有一个处理机,所以从微观上看,某一时刻只能有一个任务在运 行。任务的运行是有条件的,是由任务调度程序负责协调工作,决定系统中有哪 一个任务可获得c p u ,哪一个任务应暂时退出运行态等。 f d c x 0 8 中的任务可能在以下五种状态之一,其状态转换图见图5 - l : 睡眠态:指任务驻留在程序空间,还没有被操作系统管理起来。 就绪态:任务一旦建立,就进入了就绪态,准备运行,可能同时有多个 任务都在就绪态。 运行态:当前处理机运转执行的任务所处状态。任何时刻只能有一个任 务处于运行态,这个任务的优先级应比所有就绪态的任务的优先级都高。 等待

温馨提示

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

评论

0/150

提交评论