RTLinux在列车检测系统中的应用.pdf

上传人:asd****56 文档编号:70467111 上传时间:2023-01-19 格式:PDF 页数:4 大小:294.75KB
返回 下载 相关 举报
RTLinux在列车检测系统中的应用.pdf_第1页
第1页 / 共4页
RTLinux在列车检测系统中的应用.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《RTLinux在列车检测系统中的应用.pdf》由会员分享,可在线阅读,更多相关《RTLinux在列车检测系统中的应用.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第3 5 卷第l 期计算机工程2 0 0 9 年1 月场正3 5 7 厶JC o m p u t e rE n g i n e e r i n gJ a n u a r y2 0 0 9工程应用技术与实现文章编号tl 小 嗍4 2 8(2 0 0 9)0 1 m 2 3 枷3文献标识码:A中图分类号tT P 3 9 3R T L i n u x 在列车检测系统中的应用李华军1,王虑仁1 刘志刖2(1 电子科技大学计算机科学与工程学院,成都6 1 0 0 5 4;2 西南交通大学电气工程学院,成都6 1 0 0 3 1)摘要:在列车检测系统中,为了将各个部件的状态信息及时反馈给湿示终端,系统需要

2、有较高的实时性。针对L i n u x 作为实时应用操作系统的一些不足,文章提出采用实时性能较好的R T L i n u x 系统。在系统实现时,分为实时部分和非实时部分,实时部分丰要用在硬件数据采集和发送数据,非实时部分则利用L i n u x 现有的网络协议栈更方便地与显示终端通信。实际运行结果表明,该系统能够及时显示部件的工作状态,满足检测的要求。关健诃:实时操作系统;实时L i n u x;C A N 总线A p p l i c a t i o no fR T L i n u xi nT a i nD e t e c t i o nS y s t e mL IH u a-j u n l

3、,W A N GZ h o n g r e n l,L I UZ h i g a n 9 2(1 S c h o o lo f C o m p u t e r S c i e n c ea 1 1 d E n g i n e e r i n g,U n i v e r s i t y o fE l e c 仃o n i cS c i e n c ea 1 1 dT e c h n o I o g yo f C h i n a,C h e n g d u6 1 0 0 5 42 S c h o o lo fE l e c t r i c a lE n g i n e e r i n g,S o

4、u t h w e s tJ i a o t o n gU n i V e r s j t y C h e n g d u6 1()0 3 1)I A b s t r a c t lAg o()dd e t e c t i o ns y s t e ms h o u l dg e tw o r k i n gs t a t u e so fa J lc o m p o n e n t sa I l dt r a I l s f e rt l I e mt ot l l et e r f I l i n a li nt i m e。s om es y s t e mm u s th a v eg

5、 o o dr e a It i m ep e r f o r m a l l c e A l t h o u 曲L i n u xi s 锄e x c e l l e n to p e r a t i n gs y s t e m,i ti sn o ts u i t a b l ef o rf e a lt i m ea p p l i c a t i o n s,s o 山ed e t i o ns y s t e mi si m p l e m e n t e db a s e do nI r T l。i n u x,w h i c hh a sg o o dr c a lt i m

6、ep e 怕n n a n c e T h es y s t e mi sd i v i d e di n t ot w op a r c s,t t l er e a lt i m ep a r t 卸dt|l en o n-r e a lt j m eo n e T h er e a It i m ep a J tc o m m u n i c a t e sw 汕h a r d w a r c,c o l l e c t sa I l ds e n d sd a t a,a I l dm en o n r e a lt i m ep a ne x c h a I l g e sd a t

7、 ab e t w 咖t|l et e r n l i n a la n dt t I er e a lt i m ep a I t R e s u J ts h o w st t l es y s t e mh a sg【x)(1p e m m l a n c ea n dm e e t s 山er e q u i r e m e n t 1 K e yw o r d s lr e a Jt i m eo S;R T L i n u x;C A Nb u s标准L j n u x 对实时性能的支持不够理想,过长的中断反应时间和任务切换反应时间这2 个因素制约了其在实时领域的应用。实时“n u

8、 x(R T L i n u x)是基于标准L i n u x 的实时操作系统,通过简单而有效的方法,对标准L i n u x 实现了实时化,达到了很好的效果。本文描述的列车检测系统有效地使用了R T L i n u x 的实时性,完成C A N 总线数据的采集,同时也充分利用了标准L i n u x 的强大网络功能。1 标准L i n u x(2 4 内核)的实时性问题现有的L i n u x 是一个通用的操作系统,虽然它采用了许多技术来提高系统的运行和反应速度,但本质上不是一个实时操作系统,在应用中还存在诸多的不足”。2J。(1)进程调度:L j n u x 采用基于固定时问片的可变优先级

9、调度算法,对于处于就绪状态的任何进程,内核会在某个时候分给该进程一个时问片运行,即使同时有可以运行的高优先级进程,它也必须等到被凋度后才被执行,它是不可剥夺的内核。(2)中断:在系统调用中,为保护临界区资源,当“n u x处于内核临界区时,中断会被系统屏蔽,这就意味着如果当前进程正处于临界区,即使其优先级较低,也会延迟高优先级的中断请求。(3)时钟:L i n u x 为了提高系统的平均吞吐率,时钟中断为1 0 0H z,对于1 个周期性的实时任务,间隔要求小于1 0m s时,不能满足实时任务的需要。如果把时钟的间隔改小以满足周期性的实时任务的需要,由于“n u x 的进程切换比较费时,时钟中

10、断越频繁,花在中断处理上的时间就越多,系统的大部分时间就会调用进程调度程序进行进程调度而不能进行正常的处理。(4)同步:简单同步机制(互斥)不支持优先级继承又很可能导致优先级逆转。2R T L i n u x 实现及编程方法2 1R T L i n u x 实现原理R T L i n u x 没有采用霞写“n u x 内核代码的方法来解决L i n u x 实时性能不佳的问题,而是采用了更简单有效的解决方法。主要设计思想是:把一个小的可抢占的实时内核植入标准L i n u x 内核底层,对中断进行初始化处理。若中断是由实时任务产生,则交由实时内核处理,否则交由非实时内核处理。标准L i n u

11、 x 核心作为实时核心的一个进程同用户的实时进程一起调度,但只有没有实时任务要处理时,标准“n u x核心的进程才会被凋度,即L i n u x 核心进程的优先级最低,可被用户实时进程所抢占,这样用户程序的实时性完全由实时内核保证。R T L i n u x 有2 种中断:硬中断和软中断。软中断是标准L i n u x 内核中断。它的优点在于可无限制地使用L i n u x 内核调用。硬中断是安装实时“n u x 的前提。依赖于不同的系统,I 盯L i n u x 下硬中断的延迟是1 5“s,以这个高效的、可抢先的实时调度核心来全面接管中断,其系统结构见图l。作者简介:李华军(1 9 7 9

12、一),男,硕上研究生,主研方向:计算机网络与通信;王忠仁、刘志刚,教授收稿日期:2 I)()8 一0 4 2 lE-m 棚:m j g o o d g m a i l c o m 万方数据I n u x 进程IIL i n u x 进程I千千L i n u x 内核lIR T 进程十软件巾断十调度实时内核硬件巾断圈lR T L i 呷x 系统结构R T“n u x 将标准L i n u x 内核作为简单实时操作系统R T 0 s(子内核J 里优先权最低的线程来运行,可避免L i n u x 内核性能的问题。R T L i n u x 仿真了L i n u x 内核所看到的中断控制器。这样即使在

13、被c P u 中断同时L i n u x 内核请求被取消的情况下,关键的实时中断也能够保持激活。研究报告显示,这种方法在高速的处理器上能够获得低于1 0“s 的中断反应时间,其优势在于实时和非实时的线程是被分离的。关键的实时函数会在同定的R T O S 环境下运行,从而不受普通L i n u x内核的时间影响。2 2R T L i n u x 编程方法从l 冬fl 可以看出,R T L i n u x 拥有2 个内核。这就意味着有2 组单独的A P I,一个用于L i n u x 环境,另一个用于实时环境。此外,为保证实时进程与非实时L i n u x 进程能顺序进行数据交换,I 汀L i n

14、 u x 引入了R T-F I F 0 队列。R T-F I F 0 被L i n u x视为字符设备,最多可达1 5 0 个,分别命名为d e r r t f 0,d e V,r t f l,d e V n f 6 3。最大的R T _ F I F O 数量在可系统内核编译时设定。R T L i n u x 程序运行于用户空间和内核态空间。R 1 几i n u x提供了应用程序接口。借助这些A P l 函数将实时处珲部分编写成内核模块,并装载到R T L i n u x 内核中,运行于R T L i n u x的内核态。非实时部分的应用程序则在L i n u x 下的用户搴问中执行。这样可发

15、挥L j n u x 对网络和数据库的强大支持功能。3 系统设计该检测系统分为2 部分:实时部分和非实时部分。非实时部分在用户空间执行,称为用户部分。实时部分要尽可能简单,只包含直接与时间相关的代码由于硬件对时间的约束,低级的与硬件通信的代码一般也包含在实时部分。2 部分之间的通信采用数据缓冲区。(J)数据传送:由于数据量大,为提高数据在实时部分和非实时部分问快速流动,该系统采用共享内存的方式。在R T L i n u x 启动时,通过指定内核1 个M E M 参数决定内核可以使用的内存大小,空出来的内存空间用于实时任务和L i n u x进程进行通信,在R T L i n u x 任务中通过

16、,d e v m e m 设备在这段内存中寻址,L i n u x 进程也通过读取这段内存的数据获得实时任务提供的信息,以此完成实时任务和L i n u x 进程之间的通信。(2)控制信息传送:控制信息数据鼍较小,并且对时间要求较高,该系统采用了l m F I F O 的方式。l 弭F I F O 管道是在内核地址空问的。而在用户空间的L i n u x 进程将R T-F I F 0 当作设备而非系统调用,通过标准的设备操作接口来访I H j 它们。(3)数据同步:共享内存由实时部分和非实时部分共享,因此,可能出现数据的不一致性问题,为了使数据同步,该系统中采用了I n F I F 0 在2

17、部分之间进行协调。实时部分采用R i n g B u f f e r 来缓存数据,它有2 个指针,分别指示当前存放数据的位置和读出数据的位置。如果B u f f e r 中有新数据,则向R T-F I F 0 写入信息,告诉非实时部分来读数据。如果B u f f e r 满,则用新来的数据覆盖在B u f f e r 里最久没被读出的数据,尽管有数据损失,但更新的检测数据更能表示当前设备的状态,不会对系统造成影响。这里的同步是单向的,只是实时部分通知非实时部分有数据可读。3 1C A N 卡驱动c A N 卡驱动要工作在实时内核窄问,与通用的L i n u x驱动编程方法有根本不同,它采用R

18、T l i n u x 实时内核的A P I,包括申请中断、注册设备等|3 l。在该系统中,采用2 片c P c I 一7 8 4 l 的c A N 卡,共4 个c A N 口,分别为4 段c A NB u s服务,他们使用同一中断号,在注册设备时,同时也附带了各个c A N 口的属性信息。这样当有中断时,就可以根据这些信息来区分中断是哪个C A N 设备发送来的,然后进行不同的处理。另外,由于2 片c A N 卡采f l j 的是c P c I 电器接口,在编程接口上采用和P C I 一样的A P I,这样可以减少驱动编写的复杂度。驱动程序初始化流程见图2。圈2C A N 卡驱动初始化漉程3

19、 2 实时部分的实现当有实时任务需要处理时,R T L i n u x 运行实时任务。R T“n u x 将标准L i n u x 内核作为简单实时操作系统(R T O s)里优先权最低的线程来运行,从f i i 避开了L j n u x 内核性能的问题。R T L i n u x 仿真rL i n u x 内核所看到的中断控制器。这样即使在被c P u 中断、同时“n u x 内核请求被取消的情况下,关键的实时中断也能够保持激活。研究报告显示,该方法在高速的处理器上能够获得低于1 0”s 的中断反应时问,其优势在于实时和非实时的线程是被分离的。关键的实时函数会在固定的R T O s 环境下运

20、行,从而不受普通L i n u x 内核的时间影响。该系统中的实时部分采用内核实时线程来实现,作为实时任务来工作,保证了比较高的优先级和响应速度。由于其运行在实时内核,因此要保持简洁,不能有任何呵能引起资源竞争的操作。其主要功能是从控制信息的R F I F 0 或设备读出数据并放到缓冲区中,这个缓冲区是自己申请的循环缓冲区。由于控制信息优先级高,因此首先读取控制信息R F l F 0 中的数据,并将它们发送给c A N 没备;如果设备有一2 3 3 万方数据新数据来到,则将它们读到缓冲,如果缓冲区满,则直接覆盖最久没被非实时部分读出的数据,尽管有数据损失,但更新的检测数据更能表示当前设备的状态

21、,因此,不会对系统造成影响;把从设备接收到的数据放到缓冲后,它会向同步R T-F I F 0 中写入命令,这样非实时部分就能及时读到数据。实时任务流程图如图3 所示。N开始十r 开栉制信息R T H F O 和同步数据R T I l F o打开成功?YN初始化R i n g B u I l o r 及指钏从控制R T 十l o 中读控制数据并发送到c A N 总线上从设备读职数据B u f f e r 不满?Y把新数据放入B u I r c r把新数据覆盖最久没读出的数据向同步R TF I F o 巾写命令,通知非实时部分从共享内存巾读取数据失败。提尔用户圉3 实时任务流程3 3 非实时部分的

22、实现在该系统中,非实时部分有着承上启下的作用,主要完成3 方面的工作:(1)作为服务端,接受显示端的连接请求并完成连接的建立,该部分是使用s o c k e t 的I P c 技术I 引。数据的发送主要是推送模式,即只要实时部分有新的数据到来,它就向连接成功的客户端发送该数据,而不是根据终端的请求才发送,这样提高了终端数据更新的速度。(2)通过共享内存取得实时部分的数据,并对数据进行分析处理,精简数据量,根据终端的显示逻辑要求,将数据通过以太网发送给显示终端。这样,采集上来的大量数据放在服务端处理,减少了实时部分的压力,提高了实时部分的响应能力;同时,也减少了在以太网上传输的数据量,提高了通信

23、效率。(3)接收来自显示终端的控制信息。显示终端根据采集到的数据,显示部件工作的状态,操作人员根据这屿信息做出反应,发出控制操作,这屿信息由显示终端发给该系统的非实时部分。通过R T-F I F O,这些数据最终被发送到实时部分,通过c A N 设备发送到c A N 总线上完成控制操作,为了保证c A N 线:节点设备正确I=作,非实时部分对收到的控制信息进行缓存,然后继续发送九次,具体次数可根据实际环境设定。而最终设备的实际工作情况则会根据下次采集的数据在终端上显示。4 结束语本文分析了L i n u x 实时调度存在的不足及R T L i n u x 的实现原理和方法。经过测试,将R T

24、L i n u x 应用在列车检测系统中,取得了很好的性能。因此,L i n u x 的强大功能和R T L i n u x的实时性在实际应用开发中有着很好的前景。参考文献【1 L o V eR“n u x 内核设计与实现I M】陈莉君,康华,张波,译北京:机械工业出版社,2()()6 f 2】B o v e tDP c e s a t iM 深入理解L i n u x 内核f M】南京:东南大学出版社,2 0 0 6【3】R u b i n iA,c o r b e tJ,l(r o a h H a r t m a nG“n u x 设备驱动程序【M】魏永明,耿岳,钟书毅,译北京:中国电力m

25、 版社,2 0 0 6 4】s t e v e n swR u n i x 网络编程f M】施振川,译北京:清华大学出版社,1 9 9 9(上接第2 3 l 页)和r e g 文件将d l l 加入w i n c E,重新编译内核即町。也可在应用程序中通过动态注册驱动信息,实现驱动的动态加载。使用动态加载方式不必每次修改驱动都得编译内核,使驱动调试更为方便。5 结束语高速绣花机的设计关键足刺绣速度、运行噪声、产品品质、效率等多种因素的协同。本文在分析影响绣花机平稳运行等诸多因素的基础上,以A R M 9 处理器配合c P L D 构成为电机的主控制单元,基于w i n c E 5 o 实现,步

26、进电机流驱动控制。在工业绣花机项目中的验证表明,该方法在定位精度、加减速的平稳性、运行噪声方面有较好的作用,对高速绣花机的开发具有借鉴意义。一2 3 4 一参考文献【l】陈爱国,黄文玲,杨红红步进电机升降速曲线的研究机电产品开发与创新,2 0 0 3,1 6(2):4 7 4 9【2】郑灼,李兴根单片机控制的步进电机升降频规律及实现【J】微电机,1 9 9 9,3 2(4):2 9 3 1【3】张冬泉,谭南林,王雪梅等w i n d o w sC E 使用开发技术【M】北京:电子工业出版社,2 0 0 6【4】刘文杰张政,保原亮w i n d o w s c E N E T 环境F 的流接口驱

27、动程序开发科学技术与工程,2()【)6,6(2 0):3 3 5 7 3 3 5 9【5 1 何宗键w i n d o w sC E 嵌入式系统【M 1 北京:北京航空航天大学出版社,2 0 0 6 万方数据RTLinux在列车检测系统中的应用RTLinux在列车检测系统中的应用作者:李华军,王忠仁,刘志刚,LI Hua-jun,WANG Zhong-ren,LIU Zhi-gang作者单位:李华军,王忠仁,LI Hua-jun,WANG Zhong-ren(电子科技大学计算机科学与工程学院,成都,610054),刘志刚,LIU Zhi-gang(西南交通大学电气工程学院,成都,610031)

28、刊名:计算机工程英文刊名:COMPUTER ENGINEERING年,卷(期):2009,35(1)被引用次数:1次 参考文献(4条)参考文献(4条)1.Rubini A;Corbet J;Kroah-Hartman G;魏永明 耿岳 钟书毅 Linux设备驱动程序 20062.Bovet D P;Cesati M 深入理解Linux内核 20063.Love R;陈莉君;康华;张波 Linux内核设计与实现 20064.Stevens W R;施振川 Unix网络编程 1999 引证文献(1条)引证文献(1条)1.谭卫娟 嵌入式实时操作系统RTLinux的移植与开发期刊论文-大众科技 2010(12)本文链接:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁