linux环境下的车辆多传感器数据采集系统设计_第1页
linux环境下的车辆多传感器数据采集系统设计_第2页
linux环境下的车辆多传感器数据采集系统设计_第3页
linux环境下的车辆多传感器数据采集系统设计_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、linux环境下的车辆多传感器数据采集系统设计基金项目:高等学校博士学科点专项科研基金(新教师)(编号:200802861061);江苏省自然科学基金(编号:BK2010239) 柯小路,李旭作者简介:柯小路(1990-),男,本科,主要研究方向:导航制导通信联系人:李旭(1975-),男,副教授,主要研究方向为汽车智能测控技术、智能车辆. E-mail: lixu.mail1.51.5高等学校博士学科点专项科研基金(新教师)(编号:200802861061);江苏省自然科学基金(编号:BK2010239)School of Instrument Science and Engineering

2、,Southeast University,Nanjing 210096;School of Instrument Science and Engineering,Southeast University,Nanjing 210096东南大学仪器科学与工程学院,南京 210096;东南大学仪器科学与工程学院,南京 210096210096;21009615952050116;1360146319915952050116苏省南京市玄武区四牌楼2号东南大学中心楼328;江苏省南京市玄武区四牌楼2号东南大学中心楼321xiyulanghua;lixu.mail柯小路(199

3、0-),男,本科,主要研究方向:导航制导;李旭(1975-),男,副教授,主要研究方向为汽车智能测控技术、智能车辆柯小路;李旭KE Xiaolu;LI Xu李旭1.51.51.51.51.51.51.51.51*|*期刊*|*李旭,张为公. 智能车辆导航技术的研究进展J. 机器人技术与应用,2007(4):24-27.2*|*期刊*|* 张飞舟,范越祖,孙先仿.车辆组合定位技术J.系统工程与电子技术,2000,22(6):32-35.3*|*期刊*|*徐田来,崔平远,崔祜涛. 车载多传感器组合导航系统设计与实现J. 2008,30(4):686-6914*|*专著*|*W. Richard S

4、tevens, Stephen A. Rago. UNIX环境高级编程M. 北京:人民邮电出版社,2006.5*|*期刊*|*刘兵,陈琛. Linux下的多线程编程J. 黑龙江科技信息,2008(1):56-57.|1|柯小路|KE Xiaolu|东南大学仪器科学与工程学院,南京 210096|School of Instrument Science and Engineering,Southeast University,Nanjing 210096|柯小路(1990-),男,本科,主要研究方向:导航制导|江苏省南京市玄武区四牌楼2号东南大学中心楼328|210096|xiyulanghua

5、15952050116*|2|李旭|LI Xu|东南大学仪器科学与工程学院,南京 210096|School of Instrument Science and Engineering,Southeast University,Nanjing 210096|李旭(1975-),男,副教授,主要研究方向为汽车智能测控技术、智能车辆|江苏省南京市玄武区四牌楼2号东南大学中心楼321|210096|lixu.mail13601463199linux环境下的车辆多传感器数据采集系统设计|Design of vehicular multi-sensor

6、 data acquisition system under linux development environment|高等学校博士学科点专项科研基金(新教师)(编号:200802861061);江苏省自然科学基金(编号:BK2010239)(东南大学仪器科学与工程学院,南京 210096)摘要:为给组合导航的数据融合提供基本保障,在linux环境下使用C语言和多线程技术构建了一个多传感器数据采集系统。详细介绍了系统的软硬件构成,对各线程的具体实现做了简要说明。最后给出了部分试验结果。试验测试表明,系统可以稳定及时地采集各路传感器的数据信息,能够满足组合导航的一般要求。关键词:组合导航;数据

7、采集;多线程中图分类号:U467.4Design of vehicular multi-sensor data acquisition system under linux development environmentKE Xiaolu, LI Xu(School of Instrument Science and Engineering,Southeast University,Nanjing 210096)Abstract: In order to ensure the correctness of the data fusion of integrated navigation, a

8、vehicular multi-sensor data acquisition system based on C language and multi-thread technology is designed under linux development environment. This paper introduces the hardware and software structure in detail, and gives a brief description of the threads realization. Finally,some experimental res

9、ults were shown. The experimental tests show that the system can acquire the information of each sensor steadily and timely, and that it can satisfy the requirement of integrated navigation.Key words: integrated navigation; data acquisition; multi-thread0 引言 随着交通与汽车工业的快速发展,全世界高速公路里程数及汽车保有量迅速增长,如何大幅提

10、高交通运输效率成为一个亟待解决的问题,日益受人们重视。而车辆的定位与导航则是解决这一问题的基础和核心。1 经过这些年的发展,目前已存在多种定位导航方式,但是每种方式都有自己的优点和不可避免的缺点。如DR 、INS短期精度高但长期有误差积累;GPS全天时,精度较高,但会因信号遮挡而失效。2-3 因此,目前最常用的方式是将多种导航方式组合起来,发挥各自的优点,互补不足,即组合导航方式。多种导航方式的组合,势必涉及多种传感器数据融合的问题。而进行数据融合的前提,是能够准确完整的采集各传感器的数据。因此,在linux环境下设计了这个多传感器数据采集系统,实现对车辆各路导航信息的同步采集。1 系统硬件设

11、备本车载数据信息采集系统采用了基于PC/104的嵌入式系统,它主要由PC/104主板、数据采集卡、车载多传感器模块、车载电源等组成。数据采集卡SysExpanModule TM /ADT680-AT是基于PC/104 的扩展板,具有12位分辨率、最高100KHz A/D采样率的16单端/8差分输入,4通道模拟量输出和24通道软件可编程的TTL/CMOS I/O。车载传感器包括电子罗盘、陀螺仪、GPS等。系统中,电子罗盘选用美国KVH公司的KVH C100型。它具有体积小、性能稳定可靠、寻北精度高、启动速度快的特点,内置自动校准软件,可对磁场变化而引起的误差进行修正,它提供的航向精度能达到0.5

12、度。陀螺仪采用的是星网迅达公司的XW VG 7100,该产品可测量三个轴的角速度和三个轴的加速度参数,可用于动态运动中的定位、导航和测量。它采用嵌入式加固设计,具有抗冲击、抗震动、防尘、耐温等特点。GPS接收机采用北斗星通公司的OEMV-1,它体积紧凑、功耗低,具有很强的接收能力,可在比较苛刻的条件下为用户提供高可靠性的三维坐标、三维速度、时间、卫星分布等信息,最高可设置20Hz频率输出。PC/104主机高速同步采集各传感器传送的各项导航数据,包括航向角,俯仰角,横滚角,三位位置,三位速度等,并将采集到的信息存储到PC/104的主机硬盘中。除转角测量仪(输出为电压信号,与数据采集卡相连)外,各

13、个传感器均通过串口与主机进行通信。2 系统软件设计2.1 系统软件框架在Linux(Fedora,内核2.6.21)环境下,所有的设备都用文件来表示,称之为特殊文件。所以如何处理来自多个设备的数据,就变成如何监视多个文件描述符的问题。这通常有以下几种方法:多进程、select函数,poll函数,带有轮询的无阻塞型I/O ,异步I/O 和多线程。4多进程占用资源相对较多;当设备较多时,使用select、poll函数,编程会比较复杂;带有轮询的无阻塞型I/O 及异步I/O的使用对编程要求也比较高;多线程与多进程类似,相对而言比较节约资源,通信更加方便。此外,多线程编程可以改善程序的结构,将一个复杂

14、的程序分成几个线程来实现,既方便理解,也便于修改;使得多CPU系统更加有效,每个CPU执行一个线程,实现真正的实时同步。4 经过比较,本系统设计中采用多线程方案。由于系统中共要采集三路串口数据信息和一路模拟量数据信息,所以需要四个子线程来分别进行处理。开发过程利用linux文本模式,软件使用vi编辑器和C语言编写,GCC编译器编译,GDB工具调试。系统的软件结构框图如图1所示: 图1 系统软件框架 Fig. 1 Software architecture of the system2.2 程序设计 程序共包含一个主线程和四个子线程,其中主线程只在开始时执行一次,负责打开各设备,并对设备进行初始

15、化设置,完成调度策略的和优先级的设置。完成后创建并启动各采集子线程,之后转入轮流执行各子线程,直到程序终止。2.2.1 主线程具体设计1 使用open函数打开设备(串口、adt),并设置为可读写、非阻塞模式;2 使用set_speed函数(自定义)设置串口波特率,set_Parity函数(自定义)设置串口的部分通信参数,如校验方式、数据位、停止位、流量控制等;还需屏蔽一些控制属性,如c_lflag中的ICANON、ECHO、ECHOE、ISIG,c_iflag 中的ICRNL、IGNCR、INLCR、IXON。如果不屏蔽这些属性,在接收数据时可能出现意料不到的错误。3 线程属性初始化,设置调度

16、策略和各线程优先级。由于数据采集的过程都比较短,而对实时性要求比较高,所以适合采用FIFO调度策略。考虑到GPS接收机精度较高,信息比较完整,数据比较精确,所以给予最高的优先级;IMU的数据信息也比较全面,所以给予次高优先级;电子罗盘信息与IMU有重合,故给予最低优先级;转角测量仪给予第三优先级。为保证数据采集的及时性,数据处理线程应在空闲时运行,故可使用分时调度策略。4 使用pthread_create函数创建各采集子线程,并开始执行。5 用pthread_join等待各线程结束,并回收线程资源。6 用pthread_attr_destroy函数销毁线程属性对象。2.2.2 子线程具体设计1

17、 三个串口采集数据线程实现方式类似,即不断循环利用read函数从接收缓冲区内读取数据,然后等待到一个数据包的长度,再进行相应的处理。处理的第一步是判断校验和,如果正确则进行下一步处理;如果不正确,则放弃本数据包,但是为了保证后期融合的数据完整,用前一次的数据作为本次测量。其流程图如图2-(1)所示。由于电子罗盘和GPS接收机输出的是ASC码,而陀螺仪输出的是二进制数据,所以在数据提取方面所采用的方法有所不同。对于ASC码,有多种方式提取其中的数据信息,程序中是使用sscanf函数,根据字符串的特点,提取出中间的数据信息。例如对于罗盘,数据在两个逗号之间,可用sscanf(buff,“%*,%,

18、”,buff)将方位角数据放到buff中。对于陀螺仪,输出是二进制数据,所以每个数据包的字节数固定,因此可以利用一套固定公式进行计算,再用fprintf函数将结果格式化输入文件中保存。2 模拟量采集线程的实现方式与串口不同。它首先要设置ADC的工作模式,电压范围,使用的输入端口等等。软件中设置的是定时触发模式,每0.1s启动一次转换,中断方式读取数据,不断循环执行。该线程的流程图如图2-(2)所示。 (1) 串口线程流程图 (2) A/D线程流程图图2 采集线程程序流程图Fig. 2 Program flow chart of acquisition threads3 系统试验测试 在系统的试验测试中,电子罗盘的输出频率是10Hz,陀螺仪的频率是40Hz,GPS接收机频率是10Hz,A/D采样频率是10Hz。为检验系统的性能,进行了多次的试车试验。图4所示为某次实验的部分数据绘制的曲线(数据采集完成后在windows下用matlab绘制)。图中的蓝色曲线是电子罗盘直接测量的方位角,红色曲线是由对陀螺仪测得的角速度积分所得到的方位角,从图中可以看出,两者基本吻合。 实验结果表明,系统能够准确完整的采集各路传感器的信息,具有较高的精确性和实时性。由于所使用的传感器之间具有比较强的信息互

温馨提示

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

评论

0/150

提交评论