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

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

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

2.2 串口通信的实现  本设计所采用的微惯性单元数据通过RS232串口输出,同时所使用的ARM开发板上也附有串口,因此完成数据采集必须通过串口通信。
  串口通信是仪器仪表设备通用的通信方式,它用于ASCII码的字符传输,主要由地线、发送和接收数据线3根数据线完成,其他线用于握手。
  串口通信的最重要的参数配置是:波特率、数据位和奇偶校验位,在进行串口通信时,必须正确设置参数。Linux中所有的设备一般位于/dev下,串口1和2的名称分别为/dev/ttyS0和/dev/ttyS1.通过对struct termios结构体的各成员值的设置来进行串口设置,如下:
  #include<termios.h>
  Struct termio
  {
  unsigned short c_iflag; /*输出控制模式标志*/
  unsigned short c_oflag; /*输出模式标志*/
  unsigned short c_cflag; /*控制模式标志*/
  unsigned short c_lflag; /*本地模式标志*/
  unsigned char c_line;  /*行标志*/
  unsigned char c_cc[NCC; /*控制字符*/
  };
  其中,c_cflag包含对数据传输率、字符大小、数据位、停止位、奇偶校验位和硬件流控的设置。
  串口配置主函数如下:
  int main(void)
  {
   int fd;
   int nread,i;
   char buff[512]="0";
   if((fd=open_port(fd,1))<0)
   {
    perror("open_port error");
    return;
   }
   if((i=set_opt(fd,38400,8,'N',1))<0)
   {
    perror("set_opt error");
    return;
   }
   printf("fd=%dn",fd);
    while(1)
   {
    while((nread = read(fd,buff,sizeof(buff)))>0)
   {
    if(buff==0xaa&&buff[i+1]==0x18);
    printf("header foundn ");
    }
   }
    close(fd);
    return;
  }
  串口波特率为9600b/s,数据位为8bit,无奇偶校验位,1bit停止位。对于串口的操作同读写文件,使用read、write函数。如上串口调通后,根据产品的解码进行数据的解算,其算法可表示为:
  IMU_meas.gyro=IMU_data.gyro*G_S/SCALAR;
  //陀螺仪输出数据解算,i取值1、2、3分别代表正交方向三路陀螺仪
  IMU_meas.acc=IMU_data.acc*A_S/SCALAR;  //加速度计输出数据解算,i取值1、2、3,分别代表三路加速度计
  本文忽略温度信息只考虑6路传感器信息,其中G_S为陀螺仪的角度范围,A_S为加速度计测量范围,scalar为常值215。
  2.3 数字低通滤波
  低通滤波属于经典滤波的范畴,它通过一定的运算关系改变输入信号频率成分的相对比例或滤除某些频率成分,对MEMS IMU进行滤波的目的就是尽量滤除信号中的各种噪声成分,因为MEMS IMU输出信号的有用成分基本位于低频段,加之实时性能的要求,这里只选择相比FIR滤波器阶次低得多的IIR滤波器3]。
  随机采集一组数据进行滤波说明,如图3为转台静止状态下y轴MEMS陀螺仪输出的5000点数据,采样频率为100Hz。
  
  为了确定滤波器的通带截止频率,对这组数据进行Yule Walker功率谱密度分析[5],为了获得较高的精度,此处取AR模型的阶数为30,功率谱密度分析结果如图4所示。
  
  从图4中可以看出陀螺仪输出信号中存在两个明显的尖峰,分别位于14.6Hz和28.5Hz处,所以通带的截止频率必须小于14.6Hz。这两个尖峰是指陀螺仪输出数据随机误差的正弦成分,由图中可知它们对陀螺仪输出数据的零点漂移起主导作用。考虑到过渡带宽的因素,截止频率的设置最大也应为7Hz左右。但这一滤波器的任务除了要滤除正弦成分外,也应该滤除大部分的近似白噪声统计特性的噪声成分,并且在没有噪声情况下陀螺仪的输出数据应为常数,所以截止频率设得越低越好。
继承事业,薪火相传
返回列表