已阅读5页,还剩65页未读, 继续免费阅读
(控制理论与控制工程专业论文)用于dna杂交仪的嵌入式控制器.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 本控制器是由潮州凯普生物仪器有限公司委托开发,控制器为d n a 导流杂交 提供了一个可控的恒温环境。使用半导体制冷片( t e c ) 作为加热制冷的控温元件, 精确的温度控制是本控制器设计的难点,除此之外控制器还提供了多种速度选择 的排液系统,这是导流杂交必需的步骤。为了进一步提高控制器的安全性,控制 器还实现了对自身的故障检测和故障报警。通过友好的人机界面用户可以方便、 安全的操作和使用该控制器。 本文首先对项目的方案作了一个整体的描述,然后再详细描述控制器各个部 分的设计,并且还对控制器下一代产品的一些关键技术作了必要的探讨。 本论文中,第二章从整体上描述了系统的设计;第三章介绍嵌入式系统的基 本原理和设计思路,并描述了实时u c o s i i 在本系统中的应用;第四章是本系统的 重要部分,介绍了本系统是如何实现对恒温槽的高精度恒温控制;第五章介绍了 图形处理的实现,包括软件和硬件的实现,重点放在对u s b 接口的软硬件设计; 第六章介绍了以太网接口的实现和应用。最后一章介绍了人机界面的设计和实现。 关键字导流杂交;u c o s i i ;p i d ;嵌入式u s b ;嵌入式以太网;g u i a b s t r a c t a b s t r a c t t h ei n s t r u m e n ti sab i o i n s t r u m e n t a t i o nd e v e l o p e df o r t h eh y b r i b i 0 c o m p a n y t h ec o n t r o l e rc a np r o v i d ec o n t r o 1 a b l ec o n s t a n tt e m p e r a t u r e c o n d i t i o nf o rt h ed n ah y b r i d i z e u s e i n gt h et e ca sh e a t e ra n dc o o l e r ,h o w t oc o n t r o lt h e t e m p e r a t u r ea c c u r a t e l y ist h en o d u sw h e n d e s i g nt h e c o n t r o l e r a n d ,w i t h a l ,d i f f e r e n tg r a d eo ff l l o w i n gw a yf o rt h ef l u m ei s am u s ti nt h ed n ah y b r i d i z e t oe n h a n c et h es e c u r i t yo fu s i n gt h ec o n t r 0 1 e r , w eh a v er e a l i z e dt h es e l f f a i l u r ed e t e c ta n ds e l f f a i l u r ea l a r m w i t ht h e f r i e n d l yg r a p h i c su s e ri n t e r f a c e ,w ec a ne a s e l yu s et h ec o n t r o lt om a k e t h ed n ah y b r i d iz e t h ep a p e rf i r s tg i v eaw h 0 1 ed e s c r i p t i o nf o rt h ed e s i g no fc o n t r o l e r , t h e nd e s c r i p te a c hp a r to ft h ec o n t r 0 1 e r sd e s i g n b e s i d e s t h ep a p e r d i s c u s ss o m et e c h n i c a lc o r ei nt h eu p g r a d ep r o d u c t i o no ft h ec o n t r o l e r t h es e c o n dc h a p t e ro ft h et h e s i sw i l lg i v ea no u t l i n eo ft h ed e s i g n t h e ni nt h ef o l l o w i n gc h a p t e rt h ep a p e rw i l li n t r o d u c et h et h e o r ya n dt h e a p p l i c a t i o no ft h ee m b e do p e r a t i n gs y s t e m ,e s p e c i a l l yo ft h eu c o s i i t h e f o u r t hc h a p t e rist h ec o r eo ft h ep a p e r w ew i l lg e tk n o wh o wt oc o n t r o l t h e t e m p e r a t u r ea c c u r a t e l y , i n o l u d et h eh a r d w a r ea n d t h e s o f t w a r e r e a l i z a t i o n t h ef i f t hc h a p t e rd e a lw i t hi m a g em a n i p u l a t i o n ,b u tw em o s t l y d i s c u s st h er e a l i z a t i o no ft h eu s bi n t e r f a c e t h es i x t hc h a p t e rw er e f e r t 0t h ee m b e de t h e r n e ti n t e r f a c e f i n a l l y ,w ed i s c u s st h eg r a p h i c su s e r i n t e r f a c e ,w h i c hh e l pu s e r so p e r a t et h ec o n t r o l e re a s i l y k e y w o r d :t h r o u g h h y b r i d i z e :u c o s i i :p i d :e m b e du s bi n t e r f a c e :e m b e d e t h e r n e ti n t e r f a c e :g u i n 华南理工大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研 究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文 不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研 究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完 全意识到本声明的法律后果由本人承担。 储躲奄桐罐吼加洲月7 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 同意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权华南理工大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于 不保密口。 ( 请在以上相应方框内打“4 ”) 作者签名: 导师签名: 才冬阈面主 日期:h 肆( 月 日 日期:珈年f 月_ 7e t 第一章绪论 1 1 项目背景简介 第一章绪论 核酸( d n a ) 是生物之本,其中的遗传基因为决定生物之类别及其生存的机能的 不可缺者。所以如果我们能知道他们的详细顺序及结构,我们便不但能决定生物 的类别,还可以知道其生态与健康。为此,核酸的检测已成为各种生物以致诊断 人类疾病的适用方法。由于d n a 遗传基因多以双链互补的结构存在,因此测定其 中一条( 单链) 的顺序便能完全了解其中详细的遗传资料。同时也由於其双链的特 有互补结构,以利用其中任何一条单链的特别顺序作为探针,在芸芸众多不同的 d n a 分子中带出其特有的与此单链有互补顺序的基因,从而找出其存在与否,甚 至验查其顺序是否有突变。这种测试方法即为d n a 杂交法。 d n a 顺序的测定,d n a 微型晶片以及一般的基因研究工作,d n a 杂交法可以 说是必经的步骤。可是般的杂交方法不但用料多也非常费时。以d n a 微型晶片 为例,通常都要数小时才能完成,而“导流杂交”所需不过几分钟,用料也只以 毫升计,省时省料,又不必用上贵重仪器。 时间( 分) 图卜l 导流杂交与传统杂交动力学对比 f i g1 - 1c o m p a r i s o no ft h et h r o u g h - h y b r i d i z ea n dt h ed y n a m i c s - h y b r i d i z e 本项目研究的控制器正是基于“导流杂交”( 美国专利号5 7 4 1 6 7 4 ) 原理而设 计的一个应用于医疗、分子生物学的低密度基因检测平台。基于这一平台,可快 杂交信号强度 华南理工大学硕士学位论文 速进行核酸和蛋白杂交,简便而且成本低,适用用於科研机构、高等院校、医院 的科研、教学以及临床诊断,亦可以用於边远地区以及流行病疫区病原体的大量 筛选检测、司法指纹印迹鉴定等等。 、步骤 方法 杂交清洗显色总时间 导流杂交法 1 一1 5 m i n5 1 0 m i n1 1 0 m iy l7 - 3 5 m i n 传统杂交法 1 2 0 m if i - 过夜1 2 0 - 2 4 0 m i nl 1 0 m i l 2 2 4 0 m i n - 过夜 表卜1 导流杂交与传统杂交时效比较 d i a g r a m1 - 1c o m p a r i s o no ft h ee f f e c t “导流杂交”技术的基本原理是:将探针固定于膜纤维中,使目标分子主动 导流穿过固定有探针的薄膜并与互补探针相结合,形成复台物而被固定下来。未 被结合固定的分子穿过薄膜后被除去。因此,它加速了互补分子之间的相互作用, 将杂交时间从几个小时降低至几分钟,比传统杂交法省时几百倍。与传统杂交法 往往需要数小时甚至过夜杂交相比,导流杂交仅需几分钟。 传统杂交法导流杂交法 需要大量目的d n a 杂交液去覆盖杂交膜只需0 5 m l 目的d n a ,可提供较高浓 表面,大大限制了探针与目的d n a度的目的d n a 分子用于杂交,极 结合的速度。大的提高了杂交速度 目的d n a 只能与杂交膜表面的探针进行通过外力使目的的d n a 主动的导流穿 杂交反应,与杂交膜孔经内探针杂入杂交膜孔径中,反应速度非常 交必须自行渗透扩散进入后才能发快。 生,反应速度较慢。 杂交速度较慢,只是变性为单链d n a 的杂交速度非常快,杂交效率非常高。 目的分子复性的机率增加,从而降 低了杂交效率。 很难清洗残留于杂交膜孔径中的非特异通过外力引导清洗液穿过杂交膜孔 性结合,导致背景高、敏感度降低,径,背景干净、杂交清洗时间短。 杂交清洗时间较长。 表卜2 导流杂交与传统杂交方法比较 d i a g r a m1 - 2c o m p a r i s o no ft h em e t h o d 2 第一章绪论 d n a 杂交仪控制器为分子杂交提供了一个三维空间杂交的平台,比传统的二 维平面杂交提高了分子之间的相互作用力。 控制器需要为“导流杂交”提供封阻、温度控制、清洗等步骤。由于它可以调节、 控制杂交条件,因此可以广泛应用于传统的s o u t h e r nd n a 杂交、w e s t e r n 蛋白质 杂交、n o r t h e r nr n a 杂交、点杂交以及反相斑点杂交技术。 1 2 课题来源 企业委托技术开发项目,项目编号:d 8 1 0 8 6 0 3 。 1 3 课题目标 本文进行的设计是控制器的整体方案,控制器需要为“导流杂交”提供封阻、 温度控制、清洗等步骤,为使控制器做到进一步的智能化,还要对经“导流杂交” 得出的样本进行图像识别,得出检测结果。因此本系统需要实现恒温槽的温度控 制、排液速度控制,以及实现对样本的图像获取和处理。考虑到控制器应用于医 院、研究机构甚至是中学教学等,有多台控制器同时使用的场合,为实现网络化 以及方便计算机管理,控制器还要实现以太网接口。 1 4 研发内容 本课题的研发内容主要有以下几个方面: ( 1 ) 通过单片机实现对恒温槽的温度控制,导流杂交对对温度十分敏感, 因此需要实现相当精确温度控制,在本课题中,温度控制要求在o 1 的范围内。另外由于在“导流杂交”中需要提供2 0 至8 0 的恒温环 境,室温环境在2 5 左右,所以还必须实现控温元件的加热和制冷, 即不能选择仅能加热的控温元件。 ( 2 )为提高控制器的易用性和安全性,本项目需要实现控制器的故障检测 和故障报警。 ( 3 ) 为进一步做到智能化,引入图像识别系统,将原本由人眼识别的样本 结果改由计算机实现。 ( 4 ) 作为比较高档的生物仪器,人机界面的效果显得相当重要,在本课题 中要求使用彩色t f t 液晶实现控制器的人机界面。 ( 5 ) 通过单片机实现以太网接口。实际上工业以太网在已经工业上已经有 了不同程度的应用,基于以太网的优点和特点,以太网这种通信方式 3 华南理工大学硕士学位论文 在工业应用中已经扮演着越来越重要的角色。因此本课题在以太网通 信方面的研究也为工业以太网的一些实现方式提供了重要的参考。 本课题是已经即将投入生产的生物仪器,第一阶段的硬件和软件的设计已经 基本完成。 1 5 论文安排 图1 - 2 控制器实物图 f i g1 - 2t h ec o n t r o l e r 论文安排为:第一章主要介绍了课题的研究背景;第二章从整体上描述了系 统的设计;第三章介绍嵌入式系统的基本原理和设计思路,并描述了实时u c o s i i 在本系统中的应用;第四章是本系统的重要部分,介绍了本系统是如何实现对恒 温槽的高精度恒温控制;第五章介绍了图形处理的实现,包括软件和硬件的实现, 重点放在对u s b 接口的软硬件设计;第六章介绍了以太网接口的实现和应用。第七 章介绍了人机界面的设计和实现。 4 第二章系统设计概述 第二章系统设计概述 2 1 系统总体框图 根据系统的要求和分析,我们设计的d n a 杂交仪控制器框图如图1 所示。 图2 - 1 控制器系统总体框图 f i g2 - if r a m eo ft h ec o n t r o l e r 由于资金问题以及考虑到项目的开发周期,本课题分成了两个阶段。 第一阶段:实现控制器的基本功能,为“导流杂交”提供温度检测、温度控 制、多速度排液系统、故障检测、故障报警等功能。系统的框图如下: 5 华南理工大学硕士学位论文 故障检铡l r w m i 图2 - 2 第一阶段控制器设计的系统框图 f i g2 - 2t h ef i r s tp h a s eo ft h ec o n t r o l e r sf r a m e 第二阶段:进一步实现控制器的智能化,对“导流杂交”得出的样本进行图 像处理,得出检验结果,并增加以太网接口,使多台控制器可以联机使用。 对于第一阶段的研究现在基本完成,并已经进入小批量生产阶段。对于第二 阶段的研究现在已经有了初步的成果。在本文中对第一阶段的成果会更多的将重 点放在方案具体的实现,而对第二阶段的成果则会更侧重于方案的设计。 2 2 硬件设计总体方案及选择 2 2 1 温度控制系统主处理器的选择 在本系统中,我们选用了a t m e l 公司的a t m e g a 系列8 位高速单片机作为温 度控制系统的主处理器。选取这一系列的单片机主要是基于a t m e g a 系列单片机 的以下特点: ( 1 ) 先进的r i s c 精简指令集结构 1 3 3 条功能强大的指令大部分在单时钟周期内执行 6 j 墨 第二章系统设计概述 3 2x8 个通用工作寄存器+ 外设控制寄存器 工作在1 6m h z 下具有1 6 m i p s 的性能 片内带有执行时间为两个时钟周期的硬件乘法器 ( 2 ) 非易失性程序和数据存储器 1 2 8 k 字节在线可重复编程f l a s h ,擦写次数1 0 0 0 次 4 k 字节e e p r o m ,擦写次数1 0 0 ,0 0 0 次 4 k 字节内部s r a m 在线可编程s p i 接口 ( 3 ) j t a g ( 符合i e e es t d 1 1 4 9 1 标准) 接口 边界扫描能力和广泛的片内d e b u g 支持 通过j t a g 接口对f l a s h , e e p r o m , 熔丝位和加密位编程 ( 4 ) 外设特点 两个扩充的带预分频器和比较模式捕获模式的1 6 位定时计数器 6 通道2 到1 6 位精度p w m 8 通道1 0 位a d 转换 2 2 2 温度检测的方案选择 在本系中由于需要达到的控温要求为0 5 c ,所以对测温的精确度也要求很 高,分辨率要达到o 1 。所以在温度检测的方案选择上我们选择铂电阻作为温 度传感器,并使用工业上比较常角的三线制电桥电路。 2 2 3 控温元件的选择 考虑到恒温槽需要制冷和控温元件体积的缘故,我们选用一种新型的半导体 材料一一半导体致冷片( t e c ) 作为控温元件,它工作运转用直流电流,既可致 冷又可加热,通过改交直流电流的极性来决定在同一致冷片上实现致冷或加热。 半导体致冷片的优点和特点非常适合我们现在的系统,主要有: 1 、不需要任何致冷剂,可连续工作,没有污染源没有旋转部件,不会产生回 转效应,没有滑动部件是一种固体片件,工作时没有震动、噪音、寿命长,安装 容易。 2 、半导体致冷片具有两种功能,既能致冷,又能加热,致冷效率一般不高, 但致热效率很高,永远大于1 。因此使用一个片件就可以代替分立的加热系统和 致冷系统。 3 、半导体致冷片是电流换能型片件,通过输入电流的控制,可实现高精度的 7 华南理工大学硕士学位论文 温度控制,再加上温度检测和控制手段,很容易实现遥控、程控、计算机控制, 便于组成自动控制系统。 4 、半导体致冷片热惯性非常小,致冷致热时间很快,在热端散热良好冷端空 载的情况下,通电不到分钟,致冷片就能达到最大温差。 2 3 软件设计方案概述 在本系统中,考虑到整个系统的复杂性,使用u c o s i i 实时操作系统,编译器 使用i m a g e c r a f t 的i c c a v r 编译器,由于使用的是a t m e l 公司的a t m e g a l 2 8 单片机, 所以使用a t m e l a v rs t u d i o 集成开发环境。 一、i c c a v r 编译器简介 i m a g e c r a f t 的i c ca v r 是一种使用a n s i 标准c 语言来开发微控制器( m c u ) 程序的一个工具,它有以下几个主要特点: i c c a v r 是一个综合了编辑器和工程管理器的集成工作环境( i d e ) ,可在 w l n d 0 w s 9 x n t 下运行。 源文件全部被组织到工程之中,文件的编辑和工程的构筑也在这个环境中完 成。编译错误显示在状态窗口中,并且当你用鼠标单击编译错误时,光标会 自动跳转到编辑窗口中引起错误的那一行。这个工程管理器还能直接产生您 希望得到的可以直接使用的i n t e l h e x 格式文件,i n t e l h e x 格式文件可被 大多数的编程器所支持,用于下载程序到芯片中去。 i c c a v r 是一个3 2 位的程序支持长文件名。 二、集成开发环境a v rs t u d i o 简介 a v rs t u d i o 是a t m e l 公司提供的a v r 单片机的集成环境汇编级开发调试软 件,并且是免费软件。a v rs t u d i o 是个面向a v r 系列微处理器的c 和汇编程序 源级调试器和模拟器。它可以被应用在基于a v r 微处理器的系统的深入开发。 a t m e l a v rs t u d i o 集成开发环境( i d e ) ,包括了a v r a s s e m b l e r 编译器、a v r s t u d i o 调试功能、a v rp r o g 串行、并行下载功能和j t a gi c e 仿真等功能。 三、实时操作系统的选用 随着应用系统复杂程度的不断提高,对c p u 的处理能力的要求越来越高,在c p u 上开发程序的复杂度迫使用户选用一些嵌入式实时操作系统( r t o s ) ,同时使用 实时操作系统可大大缩短产品的开发周期。考虑到控制器整个系统的复杂性,我 们也使用了实时操作系统。实际上随着微处理器运算能力的迅速提升,使用实时 操作系统这种开发模式已经变得相当流行,商用的、免费的实时操作系统也是令 8 第二章系统设计概述 琳琳种种。在本系统中,我们选用u c o s i i 实时嵌入式操作系统。选用这一系统主 要是考虑到其以下的优点: 源代码全部公开。 可移植性:绝大部分源代码为a n s i c ,仅与微处理相关部分使用汇编语言, 因此可移植到许多微处理器。其要求为:微处理器有堆栈指针:c p u 内部 寄存器入栈出栈指令;c 编译器支持内嵌汇编或该c 语言可扩展连接汇编模 块;可实现开关中断操作。 可剪裁:靠条件编译实现,可以选择需要的系统服务,减少空间的浪费。 占先式:总是运行就绪条件下优先级晟高的任务。 多任务并行:可管理6 4 个任务,其中8 个保留给系统,用户任务最多可达 5 6 个。 可确定性:函数调用与服务执行时间具有可确定性。 功能强大的系统服务:有邮箱、消息队列、信息量控制,块大小固定内存 的申请与释放,时间相关函数等服务。 优秀的中断管理方式:中断嵌套层数可达2 5 5 层。 高度的稳定性与可靠性。 2 4 本章小结 本章主要对控制器的设计方案作一个整体的描述。通过本章的描述,可以从 整体上了解控制器的设计思路,方便对后面章节的理解。 9 华南理工大学硕士学位论文 第三章u c o s i i 嵌入式操作系统 在前后台系统中,任务没有优先级之分。应用程序是一个无限的循环,任务 函数按在代码中的顺序运行,处理相应的事务。时间相关性强的任务处理使用中 断机制,但是当系统比较复杂、中断资源有限时,中断程序只能将处理该任务的 信息条件准备好后返回。当程序按顺序没有执行到该任务时,该任务的执行必须 等待,所以将会造成任务每次的执行时间间隔不定,不能及时处理紧急事务,影 响系统的运行。这种情况在要求限定时间内周期性处理事务的系统中是不允许发 生的,而且只由应用者编写的复杂程序很可能会出现b u g 。嵌入式操作系统是实 时操作系统,运行于特定的硬件平台上,般包括处理器、存储器及外设器件和 i o 端口,包括操作系统软件,要求实时和多任务操作,用户可以在其基础上添加 应用程序。使用嵌入式操作系统的用户只需添加所需的任务到操作系统中即可, 既节省开发时间,又提高程序的可靠性。由于其独有的优势,这种系统目前正得 到越来越广泛的应用。 u c o s i i 是一种源码公开、可移植、可固化、可裁减、可剥夺的实时多任务操 作系统。特别适用于用户任务较多,而对实时性要求较严格的场合。在很多的处 理器上,u c o s i i 都得到了应用。 u c o s l l 内核是一个占先式内核,用户视任务的轻重缓急不同赋予任务不同的 优先级。一般来说,用户任务的实时性要求越高,则应赋予的优先级也越高;对 那些要求不甚严格的任务,赋予的优先级应低一些。对突发事件,像a d 采样后 的数据读取等,则应采用中断,实时响应,因而,中断享有最高的优先级。优先 级高的任务在进行调度时,优先得到资源,因而能及时进入运行态运行:优先级 低的得不到资源而进入就绪态,等待下一次任务调度。由于任务优先级的唯一性, u c o s i i 内核能在不同任务间井然有序地调度运行。u c o s i i 内核的功能强大,提供 了用于共享资源的信号灯,用于进程通信的消息队列和邮箱等,是一个比较全面 的系统。 在本系统中,使用u c o s i i 占先式实时操作系统,本章将会结合u c o s i l 讨论 控制器的软件设计。 3 1 实时系统概念 实时系统的特点是,如果逻辑和时序出现偏差将会引起严重后果的系统。有 两种类型的实时系统:软实时系统和硬实时系统。在软实时系统中系统的宗旨是 使各个任务运行得越快越好,并不要求限定某一任务必须在多长时间内完成。 繁三章u c o s 嵌入式撵捧系统 在硬实时系统中,各任务不仅要执行无误而且鬻做到准时。大多数实时系统 是二者的结合。实时系统的应用涵盖广涎的领域,而多数实时系统又是嵌入式的。 这爨跨羞诗箕秘建在系统两端,趸户看不劐毒令谤冀枫在系统爨鬻。 3 2u c o s ii 简介 u c o s i i 是豢予魏走缀黪捻占式实对多强务操终系统,趣含7 嶷辩杰按、糖务 管避、时间管瑷、任务闯避信同步( 傣譬量,邮箱,消息酞到) 和内存管理簿功 能。绝大部分代码用c 语言碍成,与硬件相关部分用汇编语言编写,而且它的源 代码是公开免费购。u c o s l l 是面向中小趔嵌入式系绞的,包含全部功能模块躲内 棱大约为1 0 k ,懿栗经遘裁减只镶蜜菝,豁谯码,囊霹缀缡至1 3 k 左右。r a m 瓣占羯 量与系统中的任务数有关,任务的堆栈娶占用大量的r a m 空间,堆栈的大小取决 于任务的局部变鼹、缓冲区大小及可能的中断嵌套胺数。应用稷序的时间精度由 系绫黠镑节拍决定,u c o s i i 甏要曩户提供髑期牲戆酵镑信号源,趱予实瑰对阙延 嚼和确认趣时。 3 3 多任务的并行实现 在一个复杂辩系统中,遴常会毒若干个任务耍丽时迸幸亍着,这些任务霄着错 综簸杂的关系,从而使系统变得复杂越来。操作系统正是处理这螳饱含着各种复 杂联系任务的平台。多任务运行的实现嶷际上是靠c p u ( 中央处壤单元) 在许多任 务之闽转换、测发。c p u 灵菇一令,轮器骚务子一系麓钰务串瓣菜一令。多经务 运行很像前后台系统,但后台任务有多个。多任务运行使c p u 的利用率得到激大 的发挥,并使戚阕程序模块化。在实时殿用中,多任务化的最大特点是,开发人 员w 以将缀复杂的应用程序蔟次纯。使髓多任务,纛耀程彦将更寮荔设计与缎护。 3 3 1u c o s l l 中任务并行的机制 一令程务,邈称露一令线莛,是一令楚荸豹程垮,该程痔霹辍认走c p u 完全 只属该程序自融。实时应用程序的设计过程,包括如何把问题分割成多个任务, 每个任务都是撼个应用的某一部分,每个任务被赋予一定的优先级,有它自融的 一爨c p u 寄存髅粒壹己豹棱窆闯 如强2 2 瑟云) 。 1 l 华南理工大学硕士学位论文 1 a s k 霉1t a s k 撑2 8 t k s n c k t a s k 撵n 图3 1 多任务 f i g3 - 1m u l t i t a s k 典型地、每个任务都是一个无限的循环。每个任务都处在以下5 种状态之一 的状态下,这5 种状态是休眠态,就绪态、运行态、挂起态( 等待某一事件发生) 和被中断态。( 参见图2 3 ) 休眠态相当于该任务驻留在内存中,但并不被多任务 内核所调度。就绪意味着该任务已经准各好,可以运行了,但由于该任务的优先 级比正在运行的任务的优先级低,还暂时不能运行。运行态的任务是指该任务掌 握了c p u 的控制权,正在运行中。挂起状态也可以叫做等待事件态w a i t i n g , 指该任务在等待,等待某一事件的发生,( 例如等待某外设的i o 操作,等待某共 享资源由暂不能使用变成能使用状态,等待定时脉冲的到来或等待超时信号的到 来以结束目前的等待,等等) 。最后,发生中断时,c p u 提供相应的中断服务, 原来正在运行的任务暂不能运行,就进入了被中断状态。图2 3 表示uc o s i i 中 一些函数提供的服务,这些函数使任务从一种状态变到另一种状态。 第三章u c o s 嵌入式操作系统 图3 - 2 任务的状态 f i g 3 - 2s t a t eo ft h et a s k s 在一个系统里,c p u 让若干个任务同时运行,但在同一时间内c p u 只是处理 其中一个任务。任务的并行实际上是通过任务切换和任务调度完成的,任务切换 其实质是实现c p u 寄存器内容切换。 当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态,即 c p u 寄存器中的全部内容。这些内容保存在任务的当前状况保存区,也就是任务 自己的栈区之中。( 见图2 2 ) 。入栈工作完成以后,就是把下一个将要运行的任 务的当前状况从该任务的栈中重新装入c p u 的寄存器,并开始下一个任务的运行。 这个过程就是任务切换。任务切换过程增加了应用程序的额外负荷。c p u 的内部 寄存器越多,额外负荷就越重。做任务切换所需要的时间取决于c p u 有多少寄存 器要入栈。基于这个原因在评价实时内核的性能时不应该以每秒钟能做多少次任 务切换来评价。 多任务系统中,内核负责管理各个任务,或者说为每个任务分配c p u 时间, 并且负责任务之间的通讯。内核提供的基本服务是任务切换。之所以使用实时内 核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务, 由实时内核来管理它们。内核本身也增加了应用程序的额外负荷,代码空间增加 r o m 的用量,内核本身的数据结构增加了r a m 的用量。但更主要的是,每个任务 要有自己的栈空间,这一块吃起内存来是相当厉害的。内核本身对c p u 的占用时 间一般在2 到5 个百分点之间。 多任务并行实现的另一个重要的过程就是调度。这是内核的主要职责之一, 就是要决定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。每个 华南理工大学硕士学位论文 任务根据其重要程度的不同被赋予一定的优先级。基于优先级的调度法指,c p t j 总是让处在就绪态的优先级最高的任务先运行。然而,究竟何时让高优先级任务 掌握c p u 的使用权,有两种不同的情况,这要看用的是什么类型的内核,是不可剥 夺型的还是可剥夺型内核。 当系统响应时间很重要时,要使用可剥夺型内核。因此,| lc o s i i 以及绝 大多数商业上销售的实时内核都是可剥夺型内核。最高优先级的任务一旦就绪, 总能得至i j c p u 的控制权。当一个运行着的任务使一个比它优先级高的任务进入了 就绪态,当前任务的c p u 使用权就被剥夺了,或者说被挂起了,那个高优先级的 任务立刻得到了c p u 的控制权。如果是中断服务子程序使一个高优先级的任务进 入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。 3 3 2 控制器软件设计中的任务划分 在嵌入式系统中,一个很重要的环节就是对任务的划分。在本系统中,主要 的任务划分如下: ( 1 ) 温度检测 ( 2 ) 温度控f l ;q p i d 计算 ( 3 ) g o i 处理 ( 4 ) 键盘处理 ( 5 ) 故障检测 ( 6 ) 故障处理 ( 7 ) 排水系统处理 ( 8 ) 用户程序记录 ( 9 ) 用户程序调用 其中,任务( 3 ) 的处理最为复杂,在实际的处理中还将任务( 3 ) 分为若干 个任务。 3 4 任务间的通讯 在嵌入式系统中,程序被划分为若干个任务并行运行,通常任务与任务之间 都存在着各种联系,这就涉及到任务之间的通讯。u c o s i i 提供了很好的任务通讯 机制。在控制器的软件设计中正是通过u c o s i i 提供的任务通讯机制使存在着各种 联系的任务并行起来。 “ 第三章u c o s 嵌入式操作系统 3 4 1 信号量 信号量是6 0 年代中期e d g s e rd i j k s t r a 发明的。信号量实际上是一种约定 机制,在多任务内核中酱遍使用信号量用于: 控制共享资源的使用权( 满足互斥条件) 标志某事件的发生 使两个任务的行为同步 信号像是一把钥匙,任务要运行下去,得先拿到这把钥匙。如果信号己被别 的任务占用,该任务只得被挂起,直到信号被当前使用者释放。换句话说,申请 信号的任务是在说:“把钥匙给我,如果谁正在用着,我只好等! ”信号是只有两 个值的变量,信号量是计数式的。只取两个值的信号是只有两个值0 和i 的量, 因此也称之为信号量。计数式信号量的值可以是0 到2 5 5 或0 到6 5 5 3 5 ,或0 到 4 2 9 4 9 6 7 2 9 5 ,取决于信号量规约机制使用的是8 位、1 6 位还是3 2 位。 一般地说,对信号量只能实旌三种操作:初始化( i n i t i a l i z e ) ,也可称作建 立( c r e a t e ) ;等信号( w a i t ) 也可称作挂起( p e n d ) ;给信号( s i g n a l ) 或发信号 ( p o s t ) 。信号量初始化时要给信号量赋初值,等待信号量的任务表( w a i t i n gl is t ) 应清为空。 想要得到信号量的任务执行等待( w a i t ) 操作。如果该信号量有效( 即信号量值 大于0 ) ,则信号量值减1 ,任务得以继续运行。如果信号量的值为0 ,等待信号 量的任务就被列入等待信号量任务表。多数内核允许用户定义等待超时,如果等 待时间超过了某一设定值时,该信号量还是无效,则等待信号量的任务进入就绪 态准备运行,并返回出错代码( 指出发生了等待超时错误) 。 任务以发信号操作( s i g n a l ) 释放信号量。如果没有任务在等待信号量,信号 量的值仅仅是简单地加1 。如果有任务在等待该信号量,那么就会有一个任务进 入就绪态,信号量的值也就不加1 。于是钥匙给了等待信号量的诸任务中的一个 任务。至于给了那个任务,要看内核是如何调度的。收到信号量的任务可能是以 下两者之一。 等待信号量任务中优先级最高的; 最早开始等待信号量的那个任务,即按先进先出的原则( f i f o ) 。 有的内核有选择项,允许用户在信号量初始化时选定上述两种方法中的一种。 但i ic o s 1 1 只支持优先级法。如果进入就绪态的任务比当前运行的任务优先级高 ( 假设,是当前任务释放的信号量激活了比自己优先级高的任务) 。则内核做任务 切换( 假设,使用的是可剥夺型内核) ,高优先级的任务开始运行。当前任务被挂 起。直到又变成就绪态中优先级最高任务。 华南理工大学硕士学位论文 计数式信号量用于某资源可以同时为几个任务所用。例如,用信号量管理缓 冲区阵列( b u f f e rp 0 0 1 ) ,如图2 1 2 所示。缓冲区阵列中共有1 0 个缓冲区,任务 通过调用申请缓冲区函数b u f r e q 0 向缓冲区管理方申请得到缓冲区使用权。当缓 冲区使用权还不再需要时,通过调用释放缓冲区函数b u f r e l ( ) 将缓冲区还给管 方。函数示意码如程序清单2 9 所示 一日。 图3 - 3 计数式信号量的用法 f i g3 - 3u s a g eo ft h es i g n a lf l a g 缓冲区阵列管理方满足前十个申请缓冲区的任务,就好像有1 0 把钥匙可以发 给诸任务。当所有的钥匙都用完了,申请缓冲区的任务被挂起,直到信号量重新 变为有效。缓冲区管理程序在处理链表指针时,为满足互斥条件,中断是关掉的( 这 一操作非常快) 。任务使用完某一缓冲区,通过调用缓冲区释放函数b u f r e l ( ) 将 缓冲区还给系统。系统先将该缓冲区指针插入到空闲缓冲区链表中( l i n k e dl i s t ) 然后再给信号量加1 或释放该信号量。这一过程隐含在缓冲区管理程序b u f r e q ( ) 和b u f r e l ( ) 之中,调用这两个函数的任务不用管函数内部的详细过程。 3 4 2 同步 可以利用信号量使某任务与中断服务同步( 或者是与另一个任务同步,这两个 任务间没有数据交换) 。如图2 1 3 所示。注意,图中用面旗帜,或称作一个标 志表示信号量。这个标志表示某一事件的发生( 不再是一把用来保证互斥条件的钥 匙) 。用来实现同步机制的信号量初始化成0 ,信号量用于这种类型同步的称作单 向同步( u n il a t e r a lr e n d e z v o u s ) 。一个任务做i o 操作,然后等信号回应。当 1 6 第三章u c o s 嵌入式擦撵系统 i o 操作完成,中断服务程序( 或另外一个任务) 发出信号,该任务得到信号膝继 续徒下执行。 酽p 一p 蚕3 - 4 热整号量搜锈务与孛羝溅务嚣步 f i g3 - 4s y n c h r o n i z a t i o no ft h et a s ka n dt h ei n t e r u p tb ys i g n a lf l a g 麴果内核支持计数式傣号量,信号嫩的值表示尚来褥到处理豹事 牛数。谤注 意,可髭会有一个良上的佼务在等德丽攀锌酶菠姿,戴这静祷撬下蠹孩会褴摇 以下原则之一发信号给相t 陂的任务: 发信号缭等待事件发生的任务中优先级最高豹任务 发壤号绘最先舞媲等褥事俘发生戆帮个 壬务 根据不同的应用,发信号以标识事件发生的中断服务绒任务也w 以是多个。 两个任务可以用两个倍峙量同步它们的行为。如图2 1 4 所示。这叫做双向同 步( b i l a t e r a lr e n d e z v o u s ) 。双向同步阅单向同步类议,只是蕊个任务要相纛同 步。 例如则程序清单2 1 0 中,运行到菜处的第一个任务发信号给第二个任务 l 2 2 1 0 ( 1 ) ,然后等待信母返回 l 2 1 0 ( 2 ) 。同样,当第二个任务运行到某一处 孵发筵孽绘纂今经务【2 。1 0 3 ) 】等特邀鞠售号 l 2 。| ( 4 ) 】。至魏,嚣令任务实瑗 了慝相同步。程任务与中断服务之间不髓使用双向阔步,因为程中断服务中不可 能等一个信号墩。 圈3 - 5 嚣个妊务恁信号囊嗣步缀此的行为 f i g3 - 5s y n c h r o n i z a t i o no ft h et w ot a s k s 华南理工大学硕士学位论文 3 4 3 消息邮箱 有时很需要任务间的或中断服务与任务间的通讯,这种信息传递通过任务间 的通讯机制实现。任务间信息的传递有两个途径:通过全局变量或发消息给另一 个任务。 用全局变量时,必须保证每个任务或中断服务程序独享该变量。中断服务中 保证独享的唯一办法是关中断。如果两个任务共享某变量,各任务实现独享该变 量的办法可以是关中断再开中断,或使用信号量( 如前面提到的那样) 。任务只能 通过全局变量与中断服务程序通讯,而任务并不知道什么时候全局变量被中断服 务程序修改了,除非中断程序以信号量方式向任务发信号或者是该任务以查询方 式不断周期性地查询变量的值。要避免这种情况,可以使用邮箱或消息队列。 消息邮箱是通过内核服务给任务发送消息的一种消息传递机制。典型的消息 邮箱是用一个指针型变量,通过内核服务,一个任务或一个中断服务程序把一则 消息( 即一个指针) 放到邮箱里去。同样,一个或多个任务可以通过内核服务接收 这则消息。发送消息的任务和接收消息的任务约定,该指针指向的内容就是那则 消息。 每个邮箱有相应的正在等待消息的任务列表,要得到消息的任务会因为邮箱 是空的而被挂起,且被记录到等待消息的任务表中,直到收到消息。一般地说, 内核允许用户定义等待超时,等待消息的时间超过了,仍然没有收到该消息,这 任务进入就绪态,并返回出错信息,报告等待超时错误。消息放入邮箱后,或者 是把消息传给等待消息的任务表中优先级最高的那个任务( 基于优先级) ,或者是 将消息传给最先开始等待消息的任务( 基于先进先出) 。图2 1 7 示意把消息放入邮 箱。用一个i 字表示邮箱,旁边的小砂漏表示超时计时器,计时器旁边的数字表 示定时器设定值,即任务最长可以等多少个时钟节拍( c l o c kt i c k s ) ,关于时钟节 拍以后会讲到。 内核一般提供以下邮箱服务: 邮箱内消息的内容初始化,邮箱里最初可以有,也可以没有消息 将消息放入邮箱( p o s t ) 等待有消息进入邮箱( p e n d ) 如果邮箱内有消息,就接受这则消息。如果邮箱里没有消息,则任务并不 被挂起( a c c e p t ) ,用返回代码表示调用结果,是收到了消息还是没有收到 消息。 消息邮箱也可以当作只取两个值的信号量来用。邮箱里有消息,表示资源可 以使用,而空邮箱表示资源已被其它任务占用。 1 8 第三章u c o s 嵌入式操作系统 。士 图3 - 6 消息邮箱 f i g3 - 6m e s s a g e 消息队列用于给任务发消息。消息队列实际上是邮箱阵列。通过内核提供的 服务,任务或中断服务子程序可以将一条消息( 该消息的指针) 放入消息队列。同 样,一个或多个任务可以通过内核服务从消息队列中得到消息。发送和接收消息 的任务约定,传递的消息实际上是传递的指针指向的内容。通常,先进入消息队 列的消息先传给任务,也就是说,任务先得到的是最先进入消息队列的消息,即 先进先出原则( f i f 0 ) 。然而1 1c o s i i 也允许使用后进先出方式( l i f o ) 。 像使用邮箱那样,当一个以上的任务要从消息队列接收消息时,每个消息队 列有一张等待消息任务的等待列表( w a i t i n gl i s t ) 。如果消息队列中没有消息, 即消息队列是空,等待消息的任务就被挂起并放入等待消息任务列表中,直到有 消息到来。通常,内核允许等待消息的任务定义等待超时的时间。如果限定时间 内任务没有收到消息,该任务就进入就绪态并开始运行,同时返回出错代码,指 出出现等
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 兰州小学教师招聘2022年考试真题及答案解析2
- 图书馆知识竞赛试题
- 幼师课件成品安全小卫士
- 幼儿园食品安全课件-1
- 针对内蒙古民歌保护与开发的几点思考
- 健康养生常识测试与答案详解
- 法律服务行业廉洁从业规范测试题库及答案解析
- 工人岗前培训测试题及答案参考
- T∕SAASS 275-2025 滨海轻度盐碱土壤多源固碳协同小麦增产提质施肥技术规程
- 教育心理学经典测试题及答案解析
- 金融危机教学课件
- 2025年建行专业考试题库
- 中建三局安装分公司电气工程工艺标准库
- GB/T 45846-2025标准大气
- GB/T 45800.2-2025全国一体化政务大数据体系第2部分:数据共享交换要求
- (2025)辐射安全与防护培训考试题库(含参考答案)
- 血症中医内科课件
- 五上语文《快乐读书吧-民间故事》知识点
- 专利基础知识讲座课件
- 中文版儿童睡眠习惯问卷CSHQ 含评分维度
- GB/T 3241.1-2025电声学倍频程和分数倍频程滤波器第1部分:规范
评论
0/150
提交评论