嵌入式实时操作系统在测控系统中的应用研究.pdf
2 0 1 0 年第6 期计算机与现代化J I S U A N J IY U A N D A I H U A总第1 7 8 期文章编号:1 0 0 6-2 4 7 5(2 0 1 0)0 6-0 1 5 3-0 3嵌入式实时操作系统在测控系统中的应用研究李正民,姬晓阳,陈京育(郑州大学信息工程学院,河南郑州4 5 0 0 0 1)摘要:针对嵌入式在工业应用中的实时性问题本文结合实时性操作系统u C O S I I 和当前应用最广泛的A R M 微处理器。设计一个测控系统。在处理器上移植该实时操作系统编写多任务程序对实时操作系统在系统中相关问题进行研究。结果表明,系统运行的实时,I 生能够满足测控领域需求。关键词:A R M;实时性;操作系统;调度中图分类号:T P 3 1 1 5 2文献标识码:Ad o l:1 0 3 9 6 9 j i s s n 1 0 0 6-2 4 7 5 2 0 1 0 0 6 0 4 4R e s e a r c ho nE m b e d d e dR e a l-t i m eO p e r a t i n gS y s t e mA p p l i c a t i o n si nM e a s u r e m e n ta n dC o n t r o lS y s t e mL IZ h e n g-m i n,J IX i a o-y a n g,C H E NJ i n g y u(S c h o o lo fI n f o r m a t i o nE n g i n e e r i n g,g h e n g z h o uU n i v e r s i t y,Z h e n g z h o u4 5 0 0 0 1,C h i n a)A b s t r a c t:A i m i n ga tt h ep r o b l e mo fr e a l t i m ei ni n d u s t r y,b a s e dO Nr e a l t i m eo p e r a t i n gs y s t e mu C O S I Ia n dA R Mw h i c hi sam i-c r o p r o c e s s o ru s e dw i d e l y。t h i sp a p e rd e s i g n sam e a s u r e m e n ta n dc o n t r o ls y s t e m T h ep a p e rs u c c e e d so np o r t i n gt h e0 3t oA R Ma n dr e s e a r c h e st h er e a l-t i m eO Si nt h es y s t e mb yw r i d n gm u l t i p l e p r o g r a m m i n g T h er e s u l ts h o w st h a tt h es y s t e m 啪b eu s e di ni n d u s t r yi nt e r mo fr e a l t i m e K e yw o r d s:A R M;r e a l t i m e;o p e r a t i n gs y s t e m;s c h e d u l i n gO引言随着计算机及电子电路的发展,嵌入式产品深入到生活的方方面面,工业领域同样离不开嵌人式技术的发展。当前的测控系统中更是少不了嵌入式的应用,然而,测控系统的实时性要求也越来越高,嵌入式的开发不仅需要考虑从提高芯片的处理能力方面来满足系统的需求,还要在系统的软件方面对测控系统的处理能力进行提高。本文基于嵌入式操作系统对嵌入式系统的实时性进行研究。1 嵌入式实时操作系统传统的嵌入式系统在软件设计时没有使用操作系统,而是将应用程序设计成一个死循环,系统轮流处理事件。对实时性要求高的则使用中断来处理中断事件,这种设计方法简单、代码少、事件处理单一、处理事件在时问的响应上不能满足要求。随着处理器结构和处理速度的提高,各种各样的嵌入式操作系统广泛应用到实际开发中来。与此同时,对实时性要求较高的操作系统也得到了越来越多的关注。1 1 嵌入式实时性操作系统特点嵌入式操作系统除了具有通用操作系统的一般特点外,在小巧、实时性、可裁剪、可固化代码、稳定性强、弱交互性、具备统一接口等方面有突出表现。实时内核主要实现任务管理、定时器管理、存储器管理、任务间通讯与同步、中断管理功能。实时系统要对外来的事件在限定的时间内做出反应,当然这个限定时间的范围是根据实际需要来定的。根据系统响应时的紧迫性,系统分为软实时和硬实时两种。1 2 常用实时操作系统国内外应用最为广泛的实时操作系统主要有收稿日期:2 0 1 0-0 2-2 5基金项目:国家自然科学基金资助项目(6 0 4 7 2 0 4 4)作者简介:李正民(1 9 5 3),男,河南新乡人,郑州大学信息工程学院副教授,硕士生导师,硕士,研究方向:计算机系统结构;姬晓阳(1 9 8 3-),男,河南西平人,硕士研究生,研究方向:嵌人式系统应用;陈京育(1 9 8 2),男,河南洛阳人,硕士研究生,研究方向:嵌入式系统应用。万方数据计算机与现代化2 0 1 0 年第6 期V x W o r k s、u C l i n u x、u C O S I I、e C o s 等。这些实时性操作系统有着各自的特点在开发过程中可以根据具体需求选择相应的操作系统。V x W o r k s 操作系统是美国W i n dR i v e rS y s t e m 公司于1 9 8 3 年设计开发的一种实时操作系统。具有良好的持续发展能力、高性能内核以及友好的用户开发环境,在实时操作系统领域中占据重要的位置。它以其良好的可靠性和卓越的实时性被广泛地应用在通讯军事航天等高精技术及实时性要求极高的领域中。它是一种功能最全的可以获得独立于处理器的实时操作系统,带有一个相当小的微内核。但是由于v x-W o r k s 是一款代码不公开并且需要支付高额费用,另一些开发者望而却步。u C O S I I 同样是一个微内核结构,仅仅提供给用户一个内核,和必备的任务管理等基本功能。而大量的核外结构,如I O 驱动则需要用户自己开发。u C O S I I 是一个开源的微型嵌入式操作系统,具有多任务、实时性强和容易移植的特点,广泛应用于各种控制系统。该系统通过了美国航空管理局认证,大部分代码是C 语言编写,与C P U 相关部分采用汇编编写。基于u C O S I I 上述特点,本文选用该系统作为研究实时操作系统的对象。其他一些常用的嵌入式实时操作系统的具体特点本文不再赘述,可参考其他文献了解详细内容。2 硬件平台生产A R M 处理器的厂商比较多,本文选用三星公司生产的高性能处理器$3 C 2 4 4 0 A,采用A R M 9 2 0 T内核主频4 0 0 M H z,最高可达5 5 3M H z,具有非常丰富的片上功能。该处理器集成L E D 专用D M A 的L C D控制器,支持最大4 K 色S T N 和2 5 6 K 色T F T;还具有S D R A M 控制片选逻辑,具有3 路U R A T、2 路S P I、I I C总线接口、主从U S B 等接口。系统采用了L M 9 5 0 7 1数字温度传感器,具有很高的灵敏度,最小分辨温度为0 0 3 1 2 5,带有S P I 接口,可满足多种场合需求。系统的硬件结构如图l 所示。图1 硬件总体结构3系统移植嵌入式操作系统在不同硬件平台的移植性主要取决于硬件平台的体系结构和操作系统自身的硬件平台相关性。u C O S I I 具有微内核结构,在可移植性方面有着特别突出表现,只需要改动少量的代码即可在各种硬件平台上运行,在S 3 C 2 4 4 0 上移植u C O S I I 主要进行以下方面的工作。本文移植使用的集成开发环境是针对A R M 处理器的A D S1 2。首先需要设置代码存储的加载位置,系统启动是从0 地址开始执行的,代码段中第一个要执行的代码的存储域和加载域都被设为O;在A D S 开发环境中对存储域和加载域的设置,有时是通过编译器选项中简单的设置,大多则是利用专门的s c a t t e r 文件来指定的。一般要指定程序的加载域、堆和栈段、异常段。然后就是系统的启动代码,O S I n i t()是u C o S I l 操作系统运行的初始化函数,在系统初始化前还要对C P U 进行初始化S y s i n i t(),目的是设置基本的运行环境。实时操作系统U C O$移植的主要工作是对O S C P U h、O S C P U A a s m、0 s _ C P U C C 三个与硬件相关部分代码的定义和修改:O S C P U h 文件主要包含与编译器相关的数据类型定义、堆栈类型定义,宏定义和函数的说明;O S C P U C C 包含O S T a s k l i n t()和另外的5 个钩子函数,钩子函数可以没有内容只需要声明,其中用来添加自己所需要的功能,由系统函数调用;O S C P U A a s m 中包含与移植相关4 个汇编函数O S S m a H i g h R d y(),O S C t r x S w(),O S I n t C t x S w(),O S T i c k l S R()。O S C P U h 中涉及到两个宏定义,是用来描述进人临界状态所完成的操作。当进行响应的处理后,再返回到之前的状态。系统提供了3 种进入和退出I I 缶界状态方法,一般A R M 处理器的临界处理是第三种方法。在程序中定义为#d d i n eO S C R l l r I C A L M E T H O D 3。进入和退出临界状态时将调用两个处理函数来保存和返回处理器的状态。4 系统应用将u C O S I I 操作系统应用在实际开发中,主要是编写任务代码和相应的外围设备驱动代码,本文按照硬件部分的温控系统设计和编写各任务程序。为了满足整个系统的需求,把系统划分成各个功能模块。也即是各个任务模块,主要是时钟节拍任务、显示任务、温度采集任务、温度数据处理及存储任务、加热控制任务。万方数据2 0 1 0 年第6 期李正民等:嵌入式实时操作系统在测控系统中的应用研究1 5 5其中显示任务是通过l E D 显示屏幕,显示当前各个测量点的温度以及机器运行的状态和参数;温度采集任务是通过S P I 接口连接多个温度传感器,实时对需要监控的环境进行温度测量,该任务在其它测控系统中可以为湿度、压力、烟雾等类型的传感器采集数据;加热任务是对环境需要温度控制时,给该任务发出需要的信号命令;存储任务是用来把实际运行过程中测量的数据和日志存储到存储器中,以便在需要的时候读出使用。系统各个任务执行框架如图2 所示。图2 任务执行结构图系统启动创建各个任务主函数为:i n tm a i n(v o i d)S y s i n i t();硬件环境初始化搴O S I n i t();:l t t 系统初始化宰以下为创建各个任务函数O S T a s k C r e a t e(T a s k S w i t c h,(v o i d 宰)0,&T a s k S t k l S t k-L e n g h l 一1】,T a s k S w i t e h P r i o);O S T a s k C r e a t e(T a s k C l o c k,(v o i d 幸)0。&T a s k S t k S&L e n g h 2一I ,T a s k C l o e k P r i o);O S T a s k C r e a t e(T a s k L C D,(v o i d 拳)O,&T a s k S t k l S&L e n g h 31 ,L C D P f i o);O S T a s k C r e a t e(T a s k C o n t r o l,(v o i d 幸)0,&T a s k S t k S t k-u,c,h 4-1】,T a s k C l o e k P r i o);O S T a s k C r e a t e(T a s k s t o r e,(v o i d 堆)0,&T a s k S t k S t k L e n g h 5 1】,T a s k S t o r e P f i o);O S T a s k C r e a t e(T a s k C l o c k,(v o i d)0,&T a s k S l(S t k-U s h 6 1 ,T a s k C l o e k P f i o);O S S t a r t();开始多任务的调度r e t u r nO;任务函数中L C D 任务中包v o i dL e d l n i t(v o i d)、L e dp r i n f f()、L e d D i s p l a y()等许多需要驱动L C D 显示的驱动函数。温度采集函数中主要是循环采集各个测量点的当前温度并不断地处理判断是否要触发那种控制命令,并把需要存储的温度值发送给存储任务。其中与系统中普通工作任务不同的是任务T a s k S w i t c h(),该任务的优先级是这些任务中最低的一个,它的功能是用来i|爿度其他各个任务的,这样可以使各个任务不是单纯地依靠优先级进行渊度,这样做的好处是,有些任务的实肘性要求比较高,比如说控制任务,在自动化工业控制中如果操作的指令得不到及时响应将会造成严重的后果。显示任务的优先级要低些,一个时间周期的调度次数可适当减少。5结束语基于工业对实时性的需求,本文以源代码开放的嵌入式实时操作系统u C O S I I 为例,对操作系统在A R M 9 平台上的移植过程进行了详细的阐述,通过设计的温控系统的各个任务函数进行了相应测试,并根据温控设备的实际需求给出了相应的改进策略,给工业领域中实际的应用带来一定的参考价值。参考文献:1】罗雷嵌入式实时操作系统及应用开发 M 北京:北京航空航天大学出版社,2 0 0 5:1 舢 2 吴旭光,何军红嵌入式操作系统原理与应用 M】北京:化学工业出版社,2 0 0 7:】-9 1 3 S a r m u n gE l e e t r o i c sC o 1 a d$3 C 2 4 4 0M i e r o c o n t r o l l e rU s e r sg a n u a l Z S a m s m 唱E l e c t r o n i c sC o 1 a d,2 0 0 4:1-4 2 4 N a t i o n a lS e m i c o n d u c t o rC o r p o r a t i o n L M 9 5 0 7 11 3-B i tP l u sS P U M I C R O W I R ET e m p e r a t u r eS e n s o r Z N a t i o n a lS e l I l i c o n d u c t o rC o r p o r a t i o n,2 0 0 5:I-1 3 5 周立功A R M 嵌入式系统基础教程(第2 版)f M 北京:北京航空航天大学出版社,2 0 0 8 6 杜春雷A R M 体系结构与编程 M 北京:清华大学出版社,2 0 0 3 7 王慧娇,董荣胜,蔡国勇,等嵌入式实时操作系统在A R M 处理器上的实现 J 计算机与现代化,2 0 0 5(3):1 2 0 1 2 3 8 郑清交,江树仁,叶欣基于A R M 9 处理器$3 C 2 4 4 0 的T I r I L C M 驱动平台的设计和实现 J】现代显示,2 0 0 9(7):1 5 1 9 9】李正军计算机测控系统设计与应用 M 北京:机械工业出版社,2 0 0 4:7 1 6 7 4 1 1 0】罗志伟,张艳贞基于单片机的远程温度测控系统研究 J 厦门理工学院学报,2 0 0 9,1 7(2):2 5-2 9 1 1 马明建数据采集与处理技术(第2 版)M 西安:西安交通大学出版社。2 0 0 5:l-9 1 2】J e a nJL a b r o s s e 嵌入式实时操作系式u C O S-1 I(第2版)M 北京:北京航空航天大学出版社,2 0 0 3 1 3 杨宗德,张兵u C O S 1 1 标准教程 M 北京:人民邮电出版社,2 0 0 9:2 1 3-2 3 8 1 4 吴永明,罗海据u C O S 中任务调度与监控机制改进 J 计算机工程,2 0 0 9,3 5(1 2):2 6 6-2 6 8 万方数据嵌入式实时操作系统在测控系统中的应用研究嵌入式实时操作系统在测控系统中的应用研究作者:李正民,姬晓阳,陈京育,LI Zheng-min,JI Xiao-yang,CHEN Jing-yu作者单位:郑州大学信息工程学院,河南,郑州,450001刊名:计算机与现代化英文刊名:COMPUTER AND MODERNIZATION年,卷(期):2010(6)参考文献(14条)参考文献(14条)1.吴旭光;何军红 嵌入式操作系统原理与应用 20072.罗雷 嵌入式实时操作系统及应用开发 20053.Samsung Electronics Co.Ltd S3C2440 Microcontroller Users Manual 2004(1-42)4.吴永明;罗海据 uC/OS-II中任务调度与监控机制改进期刊论文-计算机工程 2009(12)5.杨宗德;张兵 uC/OS-II标准教程 20096.Jean J Labrosse 嵌入式实时操作系式uC/OS-II 20037.马明建 数据采集与处理技术 20058.罗志伟;张艳贞 基于单片机的远程温度测控系统研究期刊论文-厦门理工学院学报 2009(02)9.李正军 计算机测控系统设计与应用 200410.郑清交;江树仁;叶欣 基于ARM9处理器S3C2440的TFT-LCM驱动平台的设计和实现期刊论文-现代显示 2009(07)11.王慧娇;董荣胜;蔡国勇 嵌入式实时操作系统在ARM处理器上的实现期刊论文-计算机与现代化 2005(03)12.杜春雷 ARM体系结构与编程 200313.周立功 ARM嵌入式系统基础教程 200814.National Semiconductor Corporation LM95071 13-Bit Plus SPI/MICROWIRE Temperature Sensor 2005 本文链接:http:/