(电路与系统专业论文)基于arm和ucosⅡ的衍射仪高压控制系统研究与应用.pdf_第1页
(电路与系统专业论文)基于arm和ucosⅡ的衍射仪高压控制系统研究与应用.pdf_第2页
(电路与系统专业论文)基于arm和ucosⅡ的衍射仪高压控制系统研究与应用.pdf_第3页
(电路与系统专业论文)基于arm和ucosⅡ的衍射仪高压控制系统研究与应用.pdf_第4页
(电路与系统专业论文)基于arm和ucosⅡ的衍射仪高压控制系统研究与应用.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

(电路与系统专业论文)基于arm和ucosⅡ的衍射仪高压控制系统研究与应用.pdf.pdf 免费下载

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

文档简介

摘要 摘要 x 射线衍射仪目前被广泛应用于冶金、石油、化工、科研、航空航天、教学、 材料生产等诸多领域。而x 射线管是x 衍射仪的关键部件之一,x 射线被激发时 会产生两种谱线:特征谱线和连续谱线。x 射线管的工作状态决定能否产生符合 实验要求的x 射线特征谱线和连续谱线,这就要求我们对x 射线管的工作状态进 行精确控制。 本文根据x 射线管工作状态和衍射仪相关功能的要求,提出了基于a r m 和 u c o s i i 的衍射仪高压控制系统的设计方案,并在分析和研究的基础上,实现并验 证了该方案。该系统以a r m 为主控制芯片,结合c p l d 芯片,完成对x 射线管 工作状态的控制和其它相关功能的控制。由于多任务的需要,在a r m 的基础上引 入了嵌入式操作系统u c o s i i 。具体的,本文完成了相应原理图和印刷电路板的设 计。在a r m 7 芯片l p c 2 3 7 8 上,完成了嵌入式操作系统u c o s i i 的移植;在u c o s 操作系统上,通过对a r m 芯片编程,实现了对x 射线管的工作状态进行精确控 制,以及光闸、水循环等相关功能的控制。 上述系统己通过实际的安装调试。测试结果表明,该系统能够满足设计要求, 实现全部的预期功能,可完成对x 射线管的工作状态的精确控制,和衍射仪相关 功能的控制。 关键词: a r mu c o s i ic p l d x 射线衍射仪 a b s t r a c t a b s t r a c t x - r a yd i f f r a c t o m e t e ri sn o ww i d e l yu s e di nm a n yf i e l d ss u c ha sm e t a l l u r g y , p e t r o l e u m , c h e m i c a l ,s c i e n t i f i cr e s e a r c h , a e r o s p a c e ,t e a c h i n g ,m a t e r i a l sp r o d u c t i o n x - r a yt u b ei so n eo ft h ek e yc o m p o n e n t so fx - r a yd i f f r a c t o m e t e r w h e nx r a y sw e r e e x c i t e d ,i tw i l lp r o d u c et w od i f f e r e n ts p e c t r u m s ,c o n t i n u o u ss p e c t r u ma n dc h a r a c t e r i s t i c s p e c t r u m w h e t h e rt h ex r a yc h a r a c t e r i s t i cs p e c t r u ma n dc o n t i n u o u ss p e c t r u mc a l lm e e t t h ee x p e r i m e n t a lr e q u i r e m e n t si sd e c i d e db yt h ex - r a yt u b ew o r k i n gs t a t e s ot h a ti s w h y w en e e dt oh a v ep r e c i s ec o n t r o lo ft h es t a t eo f x - r a y t u b e t h i sp a p e rp r o p o s e das c h e m eo fd i f f r a c t i o ni n s t r u m e n th i 曲v o l t a g ec o n t r o l s y s t e mb a s e do na r ma n du c o s i i ,a c c o r d i n gt ox r a yt u b ew o r k i n gs t a t u sa n dt h e r e q u i r e m e n t so f j o b r e l a t e df u n c t i o n so fd i f f r a c t o m e t e r a n da f t e ra n a l y s i sa n dr e s e a r c h , w er e a l i z ea n dv a l i d a t et h es c h e m e i nt h i sp a p e ra r mw o r k sa st h em a i nc o n t r o lc h i p a n dc o m p l e t e st h ex - r a yt u b ew o r k i n gs t a t u sc o n t r o la n do t h e rr e l a t e dc o n t r o lf u n c t i o n s w i t ht h ec p l dc h i p b e c a u s eo fm a n yr e q u i r e dm i s s i o n , w eb r o u g h ti nt h ee m b e d d e d o p e r a t i n gs y s t e m u c o s i ib a s e do na r m i nt h i s p a p e r , w ec o m p l e t e d t h e c o r r e s p o n d i n gs c h e m a t i ca n dp r i n t e dc i r c u i tb o a r dd e s i g n w et r a n s p l a n te m b e d d e d o p e r a t i n gs y s t e mo f t h eu c o s i ib a s e do nl p c 2 37 8 w er e a l i z e dt h ep r e c i s ec o n t r o lo f t h ex - r a yt u b e ss t a t u sa sw e l la so p t i c a lg a t e s ,w a t e rc o n t r o la n do t h e rr e l a t e df u n c t i o n s b a s e do nu c o s i i w ea l s oc o m p l e t e dac p l dd e s i g no ft h ea u x i l i a r yf u n c t i o n t h es y s t e mh a sb e e nt h ea c t u a li n s t a l l e da n dd e b u g g i n g t e s tr e s u l t ss h o w e dt h a t t h es y s t e mc a l lm e e tt h ed e s i g nr e q u i r e m e n t sa n dt h ef u l lf u n c t i o n a l i t yo ft h es c h e m e w a sa c h i e v e d a n dp r e c i s ec o n t r o lo ft h es t a t eo f x - r a yt u b e sa n do t h e rr e l a t e df u n c t i o n s w e r ef u l f i l l e d k e y w o r d s :a r mu c o s - i ic p l dx - r a yd i f f r a c t o m e t e r 西安电子科技大学 学位论文独创性( 或创新性) 声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导 师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注 和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果; 也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明 并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切法律责任。 本人签名:鎏趱日期2 翻:三:i 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文 在解密后遵守此规定) 骺硼嚣一日期鲨l :! :! 日期蛰: 第一章绪论 第一章绪论 1 1 研究背景及意义 x 射线衍射仪是利用衍射原理,精确测定物质的晶体结构、组织及应力,精 确的进行物相分析、定性分析、定量分析的仪器。自1 8 9 6 年x 射线被发现以来, 可利用x 射线分辨的物质系统越来越复杂。从简单物质系统到复杂的生物大分子, x 射线已经为我们提供了很多关于物质静态结构的信息。此外,在各种测量方法 中,x 射线衍射方法具有不损伤样品、无污染、快捷、测量精度高、能得到有关 晶体完整性的大量信息等优点。由于晶体存在的普遍性和特殊性能及晶体在计算 机、航空航天、能源、生物工程等工业领域的广泛应用,人们对晶体的研究日益 深入,使得x 射线衍射分析成为研究晶体最方便、最重要的手段。x 射线衍射仪 已被广泛应用于冶金、石油、化工、科研、航空航天、教学、材料生产等领域。 x 射线管是x 衍射仪的关键部件。现在人们已经发现了许多的x 射线产生机 制,其中最为实用的能获得有足够强度的x 射线的方法仍是当年伦琴所采用的方 法,用阴极射线( 高速电子束) 轰击阳极( 靶) 的表面l lj 。x 射线管工作至少需要 一个低压电源和一个高压电源,分别用来产生对应x 线管的管电流和管电压。低 压电源用于给灯丝加热,使阴极产生电子。高压电源在两极之间产生加速电场。x 射线产生时,同时产生了连续光谱和特征光谱 2 1 。大多数晶体衍射实验都需要使用 单一波长的x 射线,也就是特征光谱。因为只要适当选择工作条件,就是提供准 确的管电压和管电流,一只x 射线管就可视为近似单色的辐射源。另外,x 射线 的强度,连续光谱的强度峰值和短波限等参数都要受到管电压和管电流的控制。 这就要求我们提供精确可调的管电压和管电流。 本文的主要任务就是设计并实现衍射仪高压控制系统,为x 射线管提供精确 的,可步进升降的管电压和管电流。该系统所控制的x 射线管的管电压的范围是 1 0 - - , 6 0 k v ,管电流的范围是5 - 8 0 m a 。该系统通过对输出频率的控制,经过频率电 压转换和频率电流转换,实现对管电压和管电流的控制。管电压和管电流的步进 级数是1 k v 和1 m a ,控制频率的步进级数都设为1 k h z ,步进频率可以根据系统 需要进行调整。同时,管电压和管电流要再次转换成频率,反馈回控制系统,控 制系统根据目标值对输出频率进行校准,所以该系统的精度可以达到1 。由于同 时,该系统还要求对衍射仪的许多相关外设如水冷、光闸、衍射仪门等进行灵活 地控制并对衍射仪的多种相关状态进行自检。为了便于管理系统的诸多任务,也 为了保障系统的实时性,本文引入了嵌入式操作系统u c o s i i 进行设计和控制。 2 基于a r m 和u c o s i i 的衍射仪高压控制系统研究与应用 1 2x 射线管的工作原理和控制方法 目前产生x 射线最实用的方法仍是当年伦琴所采用的方法,用阴极射线( 高 速电子束) 轰击对阴极( 靶) 的表面。x 射线管实际上是一只真空二极管,它有 两个电极:作为阴极的用于发射电子的灯丝( 钨丝) 和作为阳极的用于接受电子 轰击的靶( 又称对阴极) 。x 射线管供电部分至少包含有一个使灯丝加热的低压电 源和一个给两极施加高电压的高压发生器。由于总是受到高能量电子的轰击,阳 极会在短时间内产生大量热量,所以还需要强制冷却。 当灯丝被通电加热至高温时( 达2 0 0 0 ) ,大量的热电子产生,在极间的高 压作用下被加速,高速轰击到靶面上。高速电子到达靶面,运动突然受阻,其动 能部分转变为辐射能,以x 射线的形式放出,这种形式产生的辐射称为轫致辐射。 轰击到靶面上电子束的总能量只有极小一部分转变为x 射线能。因为轰击靶面电 子束的绝大部分能量都转化为热能,所以在工作时x 射线管的靶必须采取水冷进 行强制冷却,以免阳极阴极被加热至熔化,受到损坏。 x 射线谱可分为连续x 射线谱和特征x 射线谱两类。大多数晶体衍射实验都 需要使用单一波长的x 射线。特征谱线的存在,给晶体衍射实验带来极大的方便。 因为只要适当选择工作条件,一只x 射线管就可视为近似单色的辐射源。 1 2 1 连续x 射线谱 当用一定的电压加速电子而产生x 射线时,其连续x 射线谱有明显的短波限。 图1 1 表示钨靶在电流固定不变的条件下电压在2 0 5 0 k v 范围内变动时的强度分 布。短波限九可看成电子在轰击靶时,所具有的全部电子动能转化成x 射线光子 的情况。所以短波限与靶物质的种类无关,只受加速电压的影响。 图1 1 电压与x 射线谱的关系 第一章绪论 3 短波限丸与电子的加速电压有如下关系: 所以有: e v = 帆= 胁丸 丸= h c e v ( 卜2 ) 式l 1 和l - 2 中,e 为电子的电荷;h 为普朗克常量;c 为光速;为x 射线的振 动频率;波长a 的单位是a ( 埃) 。连续x 射线可看成电子轰击靶时只有部分电子动 能转化成x 射线光子的情况。由图1 1 可知以下几点: ( 1 ) 在连续x 射线强度分布中,其最大强度位于短波限的1 5 倍波长附近。 ( 2 ) 连续x 射线的强度分布1 分布随着电子加速电压的增加而增高。此外, 也跟管电流i 、靶元素的原子序数z 有关,靶的输入能量w 正比于管电流i 与加速 电压v ,而x 射线的转换率的关系式是: s z v( 卜3 ) 所以有: 10csw芘iv2z(1-4) 。: 显然,在一定的电压、电流下要获得高强度的x 射线可选用重元素的靶。 1 2 2 特征x 射线谱 ( 1 ) 特征x 射线的波长 对于构成靶物质的元素有特定值,特征x 射线可分为k ,l ,m 等系。各 系的波长按k l n c r s t 屯 e e s e r i ;3 r s t7 、斌殛一 竽” n r s t g n d i n n 。 4 秘象 一 p 豇 p f 0 j ”r 2 0 1 4黻0 7 0 一 一 - _ _ _ _ - _ 。一 0 2 0 1 1 $ p t 0 8 s _ 71 0 k 1 0 0 ;:i ,- = f , ;:; i :nrst2 i ; ;: ; 4 1 3r s 2 3 2 通信端口设计 图4 2 系统复位电路 目前,r s 2 3 2 是p c 机与通信工业中应用最广泛的一种串行接口。r s 2 3 2 被 定义为一种在低速率串行通讯中增加通讯距离的单端标准,该标准采取不平衡传 输方式,即所谓单端通讯。典型的r s 2 3 2 信号在正负电平之间摆动,发送数据时, 发送端驱动器输出正电平在+ 5 + 1 5 v 之间,负电平在5 1 5 v 电平之间。接收器 典型的工作电平在+ 3 + 1 2 v 与3 1 2 v 。r s 2 3 2 是为点对点( 即只用一对收、发 设备) 通讯而设计的,其驱动器负载为3 - - 7 k o ,传送距离最大为约1 5 米,所以 r s 2 3 2 适合本地设备之间的通信。删芯片l p c 2 3 7 8 的u a r t 控制器收发电平 为t t l ,所以须将其进行电平转换后方可与控制板之间实现正常通信。图4 3 为 r s 2 3 2 电平转换电路,该电路的核心为m a x 3 2 3 2 芯片。含有两个发送器接收器 第四章系统的硬件设计 的m a x 3 2 3 2 具有低功耗、高数据速率、增强型e s d 保护等特性,并采用专有的 低压差发送输出级,”0 v 至+ 55 v 供电时利用内部双电荷泵提供真正的r s 2 3 2 性能。 。铎事飞蒜: | _ 差耋| 囊j 、一j 晕笔 l 茸兰= 寸叫1i il _ j 专 卜 41 4 系统电源模块设计 图4 3 r s 2 3 2 通信接口电路 电子系统中的电源设计对该系统的整体设计至关重要。合理的电源设计是电 子系统安全、可靠、正常运行的基本保证。电源不仅需要为器件提供各种高性能 的功率输出,还包括选择合适的旁路、去耦电容,以滤除各种干扰信号,保证录 统稳定工作。本文中的电源设计是以5 v 电源作为输入,4 路33 v 电压作为输出。 5 v 电源经整流二极管d 6 0 0 1 和d 6 0 0 2 ,再经过简单的滤波电路( 去除交流噪声) 作为电源集成芯片s p x l l 7 m 3 33 的输入。 图4 4 系统电源模块电路 裔 麓 霎 2 6 基于a r m 和u c o s i i 的衍射仪高压控制系统研究与应用 4 2 1 逻辑链路 4 2c p l d 的硬件设计 a r m 的输出端口和输入端口并没有直接和外部电路直接相连,而是连接到 c p l d 的引脚上。另外考虑到系统扩展的需要,a r m 的一些未用资源也连接到 c p l d 引脚。系统的端口与c p l d 相连,在c p l d 的设计中我们需要把c p l d 的 外部引脚在内部通过程序连接起来。这样做的意义如下: 1 ) 可以充分、合理地使用系统资源; 2 ) 增强了设计的灵活性; 3 1 在进行印刷电路设计时,易于布局和布线; 4 ) 方便了该电路板的功能扩展和升级,并且提高了其通用性。 在设计该模块时,我们在q u a r t u s1 1 6 0 中采用原理图设计输入方式,即根据需求将 定义好的功能引脚相连接便可。在进行原理图设计过程中,一方面,我们将a r m 的大部分功能引脚和c p l d 相连。另一方面,再将系统的外围电路接口引脚和 c p l d 相连。这样,我们只需在q u a r t u s 环境中以软件方式更改c p l d 中的内部连 线,便可改变不同引脚之间的逻辑连线,从而实现不同的接口功能。 4 2 2 分频电路 根据需求,我们需要每隔一定时间间隔监控外部反馈时钟的频率、检测相关 状态引脚的电平,以便根据监控和检测结果进行频率校准、实现报警和相应的关 高压和关光闸动作。a r m 的定时器计数器和p w m 资源已经被全部分配,所以我 们采用外部中断方式来实现监控和检测。中断信号由c p l d 产生,每2 0 m s 产生一 次中断。c p l d 的外部时钟频率为2 0 m h z ,我们设计分频电路以产生5 0 h z 的中断 信号。分频电路的v e r i l o gh d l 实现代码如下: m o d u l ec l k _ g e n ( c l k _ i n ,c l k _ o u t ) ; i n p u tc l ki n ; 输入 o u t p u tr e ge l k _ o u t ; 输出 r e g 【1 9 :0 】c l k _ d i v ; 定义对输入时钟脉冲计数的寄存器变量 p a r a m e t e rc l kp a r = 2 0 d 1 9 9 9 9 9 ;定义分频系数,为5 0 h z 。 a l w a y s ( p o s e d g ec l ki n ) b e g i n i f ( c l k _ d i 、,= c l k _ _ p a r ) b e g i n c l ko u t = - c l ko u t ; 输出脉冲取反 第四章系统的硬件设计 c l k _ d i v = 2 0 o o ; 清零 e n d e l s e c l k d i v = c l k d i v + 2 0 b l ;对输入时钟脉冲计数的寄存器变量递增 e n d e n d m o d u l e 因为分频系数过大,所以在此不便于给出仿真结果f 16 ,1 7 1 。 4 2 3 延时切换电路 系统加电后,通常a r m 的g p i o 口在未初始化之前其初始电平为高。但是高 压产生电路板要求高压控制电路板的控制接口初始状态为低电平,如果为高,则 会产生误动作。因此,我们在c p l d 中增加延时电路,对其进行延时控制,从而 可以避免异常状态的产生。其实现的主要思想:在系统加电后,使得高压板所有 控制端口( 控制高压产生板) 输出均为低电平,经过一定时间延时,再将外围输出端 口和a r m 的相关控制引脚相连。经过系统调试,我们将延时时间设为0 5 s 。该电 路模块的v e r i l o gh d l 实现代码如下【1 8 1 9 】: m o d u l ed e l a y ( c l k ,s i n g a l _ h a , s i n g a l _ o u t ) ; i i l p u tc l k ; i n p u t 【7 :0 s i n g a l _ i n ; o u t p u tr e g 【7 :0 s i n g a l o u t ; p a r a m e t e rr u n _ i n t e r v a l = 2 5 d l0 0 0 0 0 0 0 ;延时时间 r e g 【2 4 :0 i n t e r v a l = 2 5 b 0 ; 记录定时脉冲个数的中间寄存器变量 a l w a y s ( p o s e d g ec l k ) b e g i n i f ( i n t e r v a l r u n _ i n t e r v a l ) b e g i n i n t e r v a l = i n t e r v a l + 1 0 1 ; s i n g a l _ o u t = 8 b 0 ; 低电平输出 e n d e l s e b e g i n s i n g a l o u t o s t c b s t k p t r ; 将所有处理器寄存器从新任务的堆栈中恢复出来; 执行中断返回指令; ) ( 3 ) o s i n t c t x s w ( ) o s i n t c t x s w ( ) 是中断级的任务切换函数,如果在i s r 中发现有高优先级的任 务到来,则在中断退出后并不返回被中断任务,而是直接调度就绪的高优先级任 务执行,其实现原理和任务级切换函数相同,只是它是在i s r 中被调用,所有的 寄存器都己被正确的保存到了被中断的任务堆栈之中,无需再保存寄存器内容。 第五章系统的软件设计与实现 v o i do s i n t c t x s w ( v o i d ) 调用用户定义的o s t a s k s w h o o k ( ) ; o s t c b c u r = o s t c b h i g h r d y ; o s p r i o c u r = o s p r i o h i g h r d y ; 得到需要恢复的任务堆栈指针:堆栈指= o s t c b h i g h r d y 一 o s t c b s t k p 仃; 将所有处理器寄存器从新任务的堆栈中恢复出来: 执行中断返回指令;) ( 4 ) o s t i c m s r ( ) 时钟中断处理函数,它的主要任务是负责处理时钟中断,调用系统实现的 o s t i m e t i c k ( ) 函数,如果有等待时钟信号的高优先级任务,则需要进行如上所述的 中断级任务切换。 5 1 2u c o s i i 的任务设计 1 功能要求 、 本系统要求完成的功能比较繁杂,但根据主要功能可划分为:和上位机通信 并识别命令有效性;根据命令开光闸和关光闸;根据命令输出步进精确频率脉冲 对电压和电流进行控制;根据采样频率对电压和电流进行校准;根据命令读取当 前电压和电流的控制频率;检测到故障分步骤切断电压和电流的控制频率并切断 继电器组。 表5 1 为衍射仪高压控制系统的指令表。如表5 1 所示,本系统从上位机接到 的命令为:开光闸命令s h o ;关光闸命令s h c ;开高压命令s k mk km m ;读 当前频率命令r k m ;高压切断命令s k m00 。其中s k mk km m 中的k k 是电压 对应的数值,m m 是电流对应的数值。 表5 1 衍射仪高压控制系统指令表 命令功能 s h o 开光闸指令 s h c 关光闸指令 s k mk km m开高压指令,其中k k 代表开高压时设定的电压值,取值范围 1 0 一- 6 0 ,m m 代表开高压时设定的电压值,取值范围5 8 0 r k m 读当前的电压和电流值,保留四位有效数字 s k m00 关闭高压指令 基于a r m 和u c o s i i 的衍射仪高压控制系统研究与应用 2 任务划分 对任务的划分要综合考虑到系统的功能需要和上位机的命令。根据系统功能 的需要,以及上位机发送的命令的不同,在本系统中一共建立了1 1 个任务: o t a s k s t a r t 系统启动任务,任务优先级4 ,主要完成系统的初始化,等待开光 闸命令并切断光闸。 o t a s k l关光闸任务,任务优先级5 ,等待关光闸命令并关闭光闸。 o t a s k 2读取频率任务,任务优先级6 ,等待读取频率命令,命令有效时输 出采样得到的电压和电流的频率。 t a s k 3开高压命令有效判定任务,任务优先级7 ,等待开高压命令,命令 有效时判断命令对应的电压电流频率是否超范围,以及是否满足功率要求。满足 要求时向t a s k 4 发送信号量。 o t a s k 4 开高压前判定任务,任务优先级8 ,等待t a s k 3 信号量,即开高压 命令有效时,分步骤完成定时器开启,故障输入线检测,水循环输入线检测,打 开相关继电器,检测输出电压电流的初始化控制频率是否在误差范围之内。满足 所有要求时向t a s k 5 发送信号量。 o t a s k 5 电压电流升降任务,任务优先级9 ,等待t a s k 4 的信号量,接到信 号量时,将命令中的电压和电流值对应频率和当前值做比较,然后完成电压的升 或降和电流的升或降。电压和电流的升降是通过向t a s k 7 t a s k l 0 发送信号量完成 的。 o t a s k 6故障切断任务,任务优先级1 0 ,出现故障时分步骤切断电压和电 流的控制频率,切断相关继电器,向上位机发送出错命令。 o t a s k 7升电压任务,任务优先级n ,等待t a s k 5 信号量,接到信号量时, 将电压对应频率从当前值步进升到目标频率。 o t a s k 8升电流任务,任务优先级1 2 ,等待t a s k 5 信号量,接到信号量时, 将电流对应频率从当前值步进升到目标频率。 o t a s k 9降电压任务,任务优先级1 3 ,等待t a s k 5 信号量,接到信号量时, 将电压对应频率从当前值步进降到目标频率。 o t a s k l 0降电流任务,任务优先级1 4 ,等待t a s k 5 信号量,接到信号量时, 将电流对应频率从当前值步进降到目标频率。 图5 2 为u c o s i i 软件设计部分的软件结构框图。u c o s i i 运行以后,首先运 行t a s k s t a r t 任务。t a s k s t a r t 任务先完成对系统的初始化,然后等待信号量,任务 被挂起。当串口中断程序接收到s h o 命令时,发送对应的信号量,t a s k s t a r t 执行 开光闸的操作。t a s k l 开始运行时先等待信号量,任务将自身挂起。当串口中断接 收到s h c 命令时,发送对应信号量。当t a s k l 接到对应信号量时,任务执行关光 第五章系统的软件设计与实现 3 5 闸操作。t a s k s t a r t ,t a s k l t a s k l 0 是按照优先级从高到低进行轮循,每个任务都 建立了自己对应的信号量。t a s k 2 任务运行时也是先通过发送信号量的方式将自身 挂起,串口中断接到r k m 命令发送对应的信号量,t a s k 2 接到信号量后读取从2 0 r n s 外中断中测量的高压和电流频率,并通过串1 2 1 发送到上位机。t a s k 3 也是发送信号 量将自己挂起,等待串口中断程序接收到s k m 命令,然后发送对应信号量。t a s k 3 接到对应信号量后,首先对s k m 命令中k k 和m m 对应的电压和电流频率是否超 范围进行检查,如过超范围则向上位机发送错误代码。如果正常,则进一步根据 输入端口p o w e rd o ,p o w e rd 1 的组合状态判断相应的功率是否符合要求,如 果正确,则向t a s k 4 发送信号量。t a s k 4 任务开始运行时,先等待对应信号量将自 身挂起,如果接到t a s k 3 发送对应的信号量,则运行开高压前的步骤,步骤如果顺 利进行完,则向t a s k 4 发送对应信号量。t a s k 5 任务开始运行时,先发送对应信号 量将自身挂起,接到t a s k 4 发送的信号量时,将目标电压电流值和实时电压电流值 进行比较,决定电压和电流的升降操作,并向t a s k 7 、t a s k 8 、t a s k 9 、t a s k l 0 发送 消息邮箱,消息邮箱内保存有目标值和实时值。t a s k 7 开始时等待邮箱,接到邮箱 后通过提高电压控制频率,完成步进升电压操作。t a s k 8 也是开始时等待邮箱,接 到邮箱后通过提高电流控制频率,完成步进升电流操作。t a s k 9 ,t a s k l 0 与t a s k 7 , t a s k 8 相似,分别接到邮箱后,完成步进降电压和电流的操作。如果,高压和电流 已经开启,系统再次接到s k m 命令的时候将先在t a s k 3 中检查命令的有效性,如 有效则跳过t a s k 4 ,直接在t a s k 5 中对高压和电流进行升降。如果系统在运行中出 现故障,则向t a s k 6 发送对应信号量,t a s k 6 将步进降低高压和电流控制频率到初 始值,再分步切断相应的继电器。 系统中最重要的两个中断是串口o 接收中断和外中断。外中断与c p l d 输出 的2 0 m s 脉冲相接。串口0 与主控板相接,通过主控板和上位机通信。串口中断判 断接收缓冲中字符串是否为命令,如果是命令则向相应任务发送信号量,通知相 应任务执行操作。外中断在2 0 m s 中通过计数器的计数值,计算实际电压和电流值 对应的频率。外中断也对输入端口的状态进行检查,通过更改控制电压和电流定 时器的匹配寄存器值来对频率进行校准。 在下文中将根据功能划分对系统进行详细论述。系统划分为串口通信模块、 光闸控制模块、电压电流控制模块、电压电流校准模块、故障切断模块、频率读 取模块。其中串口通信模块主要是串口初始化和串口中断处理。光闸控制模块包 括t a s k s t a r t ,t a s k l 。电压电流控制模块包括t a s k 3 t a s k 5 ,t a s k 7 一t a s k 9 。电压电 流校准模块主要在外中断中完成。故障切断模块主要是t a s k 6 。频率读取模块是主 要是t a s k 2 。 基于a r m 和u c o s i i 的衍射仪高压控制系统研究与应用 s h o 命令 ( t a s k s t a r t ) s h c 命令 ( t a s k l ) r k m 命令 ( t a s k 2 ) s 【m 命令有效 ( t a s k 3 ) 开高压前判定 ( t a s k 4 ) 升降电压和电流 ( t a s k 5 ) 故障切断 ( t a s k 6 ) 5 1 3u c o s i i 的中断管理 1 u c o s i i 的中断处理过程 图5 2 软件结构框图 升电压 ( t a s k 7 ) 升电流 ( t a s k s ) 降电压 ( t a s k g ) 降电流 ( t a s k l 0 ) ( 1 ) u c o s i i 的中断过程简介 u c o s i i 的中断处理是保证系统正常工作的一个重要环节,它的工作是使硬件 中断和操作系统进行连接。系统接收到中断请求后,如果c p u 处于开中断状态, 系统就会中止正在运行的当前任务,而按中断向量的指向去运行中断服务子程序, 当中断服务子程序运行完成后,系统会根据具体情况返回到被中止的任务继续运 行,或转向另一个中断优先级别更高的就绪态任务。 由于u c o s i i 是可剥夺型的内核,所以中断服务程序结束后,系统会根据实 际情况进行一次任务调度,如果有优先级更高的任务,就去执行优先级更高的任 第五章系统的软件设计与实现 3 7 务,而不一定要返回被中断了的任务。 ( 2 ) u c o s i i 的中断过程示意图 任务响应时间 中断请求 界段0 一 关中断 一鬻。 一临界段r 无高优名级任务 二二二 ;跳转到中断向量 或任节锁定 中断返回 保存c p u 寄存器内容口 | 口 恢复c p u 寄存器 关中断 通知内核进入i s r 0 s i n 胁吲) 口用户i s r 通知内核退出i s r :o s i 啦州) | e 二二 通知内核蚴弧鲫一, 遇刘一俄遐出1 3 k :u s l m e ) i ql l 中断响内- 二二 一中断响应叶l j i 旱毒誓霎霎军蚕 口恢复c p i j 寄存器 ;嘉冕藩魏转高优掣队u 三磊: ;则允许中断嵌套1 7 7 “l l ”i 中断返回 ;白 中断恢复 u l n a - s t 一 图5 3u c o s i i 的中断过程示意图 ( 3 ) u c o s i i 的具体中断过程 中断到来,如果被c p u 识别,c p u 将查中断向量表,根据中断向量表,获 得中断服务子程序的入口地址。 将c p u 寄存器的内容压入当前任务的任务堆栈中。 通知操作系统将进入中断服务子程序。即:调用o s i n t e n t e r ( ) 或o s i n t n e s t i n g 直接加l 。 i f ( o s i n t n e s t i n 乒1 ) o s t c b c u r - o s t c b s 仃p 仃= s p ; 如果是第一层中 断,则将堆栈指针保存到被中断任务的任务控制块中。 清中断源,否则在开中断后,这类中断将反复的打入,导致系统崩溃。 执行用户i s r 。 中断服务完成后,调用o s i n t e x i t ( ) 。如果没有高优先级的任务被中断服务 子程序激活而进入就绪态,那么就执行被中断了的任务,且只占用很短的时间。 恢复所有c p u 寄存器的值。 执行中断返回指令。 3 8 基于a r m 和u c o s i i 的衍射仪高压控制系统研究与应用 2 时钟节拍的建立 ( 中断服务子程序入口) , c p u 寄存器内容进栈 上 调用o s i n t e n t e r ( ) 通知系统:进入中断服务子程序 大n o o s t c b c u r - o s t c b s 伙p n = s p 一 清中断源的中断申请标志 0 开中断 0 运行i s r 0 调用o s i n t e x i t ( ) 通知系统:退出中断服务子程序 0 恢复c p u 寄存器内容 0 执行中断返回指令 图5 4u c o s i i 的中断过程流图 u c o s i i 需要用户提供周期性信号源,用于实现时间延时和确认超时。节拍率 应在每秒1 0 次到1 0 0 次之间,或者说1 0 到1 0 0 h z 。时钟节拍率越高,系统的额外 负荷就越重。时钟节拍的实际频率取决于用户应用程序的精度。时钟节拍源可以 是专门的硬件定时器,也可以是来自交流电源的信号。在本系统中使用l p c 2 3 7 8 的定时器0 来产生时钟节拍。 图5 5 为时钟节拍的建立过程。首先,对定时器0 进行初始化。然后,初始化 第五章系统的软件设计与实现 3 9 定时器0 的中断。初始化定时器0 时,定时器0 的匹配寄存器值是外设时钟f p c l k 和o s t i c k s p e r s e c 的除数。o s t i c k s p e r s e c 是u c o s - i i 中的一个全局 变量,表示每秒钟的时钟节拍数。当定时器0 的中断到来时,先清中断标志,再 调用o s t m a e t i c k ( ) 告诉操作系统时钟节拍,在o s t i m e t i c k ( ) 中操作系统会完成相 应操作。 初始化定时器0 上 初始化定时器0 的 中断 上 在定时器0 的中断中 调用o s t i m e t i c k ( ) 图5 5 时钟节拍建立过程图 以下为定时器0 的中断源程序: v o i d t m r t i c k l s r h a n d l e r ( v o i d ) t o i r = o x f f ; o s t i m e t i c k ( ) ; ) 3 串口接收中断 幸c l e a rt i m e r0i n t e r r u p t 拳c a l lu c o s - i i so s t i m e t i c k ( ) 在本系统中,串口接收字符采取中断方式。串口接收中断程序中有一个接收 缓冲区,每接收一个字符,就检查接收缓冲区中是否有上位机发来的命令。如果 有命令,则向相应任务发送信号量,使被挂起的任务得以继续运行,完成相应的 任务操作。下面在5 2 小节,串口通信模块中将会详细说明。 4 外中断 本系统的外中断设计是系统设计中非常重要的一部分。外中断的输入是c p l d 产生的2 0 m s 脉冲,从l p c 2 3 7 8 的e i n t 0 输入。外中断主要完成的功能是计算电 压和电流的输入频率,检查水循环的状态,检查衍射仪的门状态,对蜂鸣器进行 控制,根据电压和电流的输入频率对其输出控制频率进行校准。图5 6 为外中断 基于a r m 和u c o s i i 的衍射仪高压控制系统研究与应用 的功能框图。下面根据重要性将对计算高压和电流的输入频率和频率校准部分作 简要说明。 计算高压和大 电流输入频率 0 检查水循环状 态 上 检查衍射仪门 状态 0 蜂鸣器控制 0 频率校准 图5 6 外中断功能图 ( 1 ) 输入频率计算 本系统要做到同时计算电压和电流的输入频率。首先,使定时器2 和定时器3 工作在计数器方式。然后,使能2 0 m s 外中断。当中断到来时,首先将定时器2 和 定时器3 的计数值赋给全局变量,然后在中断程序中立即将两个计数器清零。再 将两个计数值乘以5 0 即为所需频率。也可以根据需要将频率的计算时间设为1 s , 就是进中断5 0 次才清零一次计数器,这样就不需要再乘5 0 了。以下为频率计算 的部分代码: v o i di r q _ _ e i n t 0 ( v o i d ) t 2 一t e m p = t 2 t c ; t 2 t c = o ; t 3 一t e m p = t 3 t c ; t 3 t c = 0 ; k v i n = t 2t e m p * 5 0 ; c a p 2 0 的输入频率值 m a i n = t 3 的输入频率值_ t e m p * 5 0 ; c a p 30 第五章系统的软件设计与实现 4 1 ( 2 ) 频率校准 频率校准就是当电压和电流的反馈频率超过允许的误差范围时,通过更改电 压和电流控制频率的办法,使反馈频率在误差允许的范围之内。本系统的实际允 许误差范围是士1 。频率校准部分在外中断程序中完成。频率校准的具体过程将在 5 5 小节,电压电流校准模块中详细论述。 5 2 串口通信模块 本系统包括三个串口:u a r t 0 、u a r t l 、u a r t 3 。它们分别与3 个r s 2 3 2 接 口相连。这三个r s 2 3 2 接口是:p o r tm a 矾o u t 、p o r tm a i n 、p o r tl c d 。 我们使用了u a r t 0 ,另外两个串口u a r t l 和u a r t 3 完成了初始化但没有使用, 仅用于系统扩展。 串口通信模块包括初始化函数u a r t 0i n i t ( ) 、串口中断处理程序 i r q _ u a r t 0 ( ) 、串口发送函数u a r t 0 _ s e n d s l r i n g ( ) 。 u

温馨提示

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

评论

0/150

提交评论