基于Linux内核修改的车载监控系统实时性研究

摘 要:针对以往车载监控系统存在较大延时的缺点,设计一种实时宽带车载监控系统。该系统通过在32位ARM微处理器中选用可抢占内核和O(1)调度器的Linux 2.6.13 操作系统,以直接修改Linux 内核的方式,从线程化中断、自旋锁可抢占两方面提高系统的实时响应性。测试表明,此系统的数据传输实时性和带宽可以满足车载监控的要求。

关键词:Linux; ARM微处理器; 线程化中断; 自旋锁; 实时响应性

中图分类号:TN919; TP914文献标识码:A

文章编号:1004-373X(2010)15-0173-04

Real-time Vehicle Monitoring System Based on Linux Kernel Modification

LIANG Zhong-hua1,WU Xiao-yun1, FENG Xing-le??1,2??

(1. School of Information Engineering, Chang’an University, Xi’an 710064, China; 2. Xi’an Research Institute of Navigation Technology, Xi’an 710068, China)

Abstract: A real-time wide-band vehicle monitoring system was designed in view of the long time delay of former vehicle monitoring system. The Linux2.6.13 kernel of O(1) scheduler and preemption in the 32 bits ARM microprocessor is selected. In order to improve real-time responsiveness, the kernel is modified directly by means of threaded interrupt and preemptive spin lock. It is demonstrated that the real-time performance and the band width of this system can satisfy the request of vehicle monitoring system.

Keywords: Linux; ARM microprocessor; threaded interrupt; preemptive spin lock; real-time responsiveness

0 引 言

随着信息化社会和公路交通的快速发展,车载监控系统已广泛应用于物流、公交、客运等方面,监控内容也由单纯的位置信息转变为实时在线的多媒体信息,这对系统的实时处理能力和传输带宽提出了更高的要求,选用高性能的嵌入式CPU成为目前高端车载监控系统的发展趋势,其中选择嵌入式操作系统又成为影响传输效率和实时性的重要因素。目前主流的商用实时嵌入式操作系统(如QNX ,VxWorks 和pSOS 等)由于价格昂贵、技术保密的特点而限制了它的广泛应用。而Linux操作系统具有开放代码,易于移植的优点,但由于其设计初衷是实现多任务/多用户功能,强调各任务共享资源的公平性,采用非抢占式的调度方法,所以无法满足实时系统的需求[1]。为了使Linux适应实时系统的要求,许多文献从内核构架、调度机制和抢占能力等方面对现有的Linux操作系统进行改良。文献[2]提出在Linux内核中插入抢占点的办法提高实时性,但该方法需要在很多模块中插入抢占点,实现复杂度很高;另外,若缺乏有效的机制保证抢占前后内核状态的一致性,特别是抢占点的插入位置选择不当可能使整个系统崩溃。文献[3]提出在Linux 内核基础上增加实时内核的双内核方式,该方法虽然实现了硬实时,但舍弃了Linux 固有的稳定性、可靠性、支持多种架构的优点,并且需要针对实时内核重新编写驱动程序。

本文以提高车载监控系统的实时性为出发点,通过线程化中断、自旋锁可抢占两方面对Linux内核进行修改,以基于ARM9内核的友善之臂mini2440开发平台,结合高性能的GPS模块和宽带GPRS通讯模块,设计了实时宽带车载监控系统,可以实现图像、声音、位置信息和报警等多任务的快速切换和高效队列管理,提高了系统的实时性。

1 车载监控系统的整体结构

车载监控系统的结构框图如图1所示。主要包括信