首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ARM-Linux的微惯性单元数据采集与处理[图]

基于ARM-Linux的微惯性单元数据采集与处理[图]

微机械惯性器件是集微型精密机械、微电子学、半导体集成电路等新技术于一身的世界前沿新技术。随着微电子技术的发展,目前微机械惯性器件凭借其价格低、可靠性高、尺寸小、重量轻等特点引起了国内惯性技术及微电子技术领域的广泛关注。以陀螺仪和加速度计为核心部件的惯性导航系统已成为现代飞机、大型舰只和潜艇的一种重要导航设备,在其他一些民用领域中也有着十分广泛和重要的应用。以惯性系统为基础发展起来的惯性测量和惯性定位系统,可以用于大地测量、地图绘制、海洋调查、地球物理勘探、管道铺设选线、石油钻井定位和机器人等需要大范围测量及精确定位的场合[1]。  本文在嵌入式Linux环境下使用ARM9开发板实现了对IMU输出数据的采集和动态显示,为进一步的工程应用打下基础。
  1 微惯性测量单元IMU
  微惯性测量单元由6个传感器组成,包括3个微机械陀螺仪和3个微机械加速度计,配置在立方体的3个正交平面上。其基本原理为古典的牛顿力学原理,由三根轴的陀螺确定载体的姿态,安装在三根轴上的加速度计测出载体的加速度值,积分得到速度,再积分得到位移[1,2]。
  本文所采用的惯性测量单元为XW-IMU5200。它以DSP为核心处理器,采用16bit高精度多通道并行A/D转换。其A/D转换器的采样率至少是惯性传感器带宽的4倍,能够保持惯性传感器的固有频率。6路并行采集通道可实时接收加速度计和陀螺仪以及温度传感器的信号,保证了数据采集的一致性。图1所示为本文所采用的XW-IMU5200的外观。
  
  XW-IMU5200内部有一个0.8μs的计时器。计时器计数从0~216,然后开始新的周期(高位溢出后继续)。每个数据周期中,在读取内部计时器之前和之后,分别对两组惯性测量数据进行采样,然后将得到的数据做数字滤波并封装;惯性测量数据、计时器数据、温度数据通过XW-IMU5200的RS232口送出。
  如图2所示,Ti是周期的起点。从Ti到Ti1为0.1ms,实现第一组数据的采样;从Ti1到Ti2为1ms,读取内部计时器;从Ti2到Ti3为0.1ms ,实现第二组数据的采样;从Ti3到Ti4进行滤波并封装数据,对IMU为1.8ms, 对IMU而言,最大数据输出速率约为100Hz,波特率为115200b/s。
  
  XW-IMU5200的测量数据包为19bit,其定义如表1所示,数据为Little Endian格式,即低位(LSB)字节在先。
  
  2 Arm-linux环境下的MEMS IMU数据采集实现
  2.1 交叉编译环境的建立
  本设计所采用的ARM9开发板为S3C2440处理器,内嵌Linux系统。
  因嵌入式开发一般需要在PC机上进行,需要在宿主机建立交叉编译环境,以下给出建立交叉编译环境的步骤:
  (1)安装linux环境;
  (2)下载交叉编译文件包 cross-2.95.3.tar.bz2;
  (3)建立交叉编译环境目录 /usr/local/arm/;
  (4)复制安装包到目录下,在此目录下解包文件,命令为:tar jxvf cross-2.95.3.tar.bz2;
  (5)配置环境变量,修改bashrc文件,在文件最后一行添加环境变量,代码为export。
  PATH=/usr/local/arm/2.95.3/bin: $PATH,保存退出后重启Linux。
  至此,交叉编译环境建立完成。
继承事业,薪火相传
返回列表