微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于AT89S52的MEMS陀螺信号采集与处理系统设计

基于AT89S52的MEMS陀螺信号采集与处理系统设计

时间:10-09 来源:3721RD 点击:

MEMS(Micro Electron Mechanical System)陀螺仪是一种可以精确测量物体方位的仪器,不仅成本低,体积小,重量轻,而且可以与微电子加工的电路实现集成,做到机电一体化。MEMS陀螺适用于汽车工业、惯性导航、计算机、机器人、军事等急需大量小型、廉价陀螺的应用领域,是国防、工业发展中必不可少的仪器。
但是,MEMS陀螺仪在实际应用中达不到需要的精度,为了提高陀螺仪系统工作性能和测量精度,对陀螺仪进行数据采集并减小误差是至关重要的。

ADIS16355惯性测量装置将三轴角速度感知与三轴加速度感知相结合,提供六自由度运动感知、嵌入式校准与传感器处理以及传感器-传感器交叉补偿,并大大提高信号稳定性(使用偏移稳定性为0.015 deg/sec),体积小于1立方英寸。ADIS16355是在整个温度范围内校准,具有卓越的偏压温度稳定性(0.005 deg/sec/°)。

ADISl6355提供一个串行外部接口SPI(Serial Peripheral Interface),通过SPI可以对芯片进行配置,获得运行状态与测量结果等,其对外部供电要求不高,内部自带高精度的稳压电路,外围电路较少[1]。

AT89S52单片机[2]是一种低功耗、高性能CMOS 8位微控制器,具有8 KB在系统可编程Flash存储器,使用美国ATMEL公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,同时,AT89S52带有ISP下载功能,它利用在线编程器替代昂贵的单片机仿真器编程器,既方便使用,又节省开发费用。

本文结合单片机对ADIS16355惯性传感器进行控制,将采集的数据实时存储并通过LCD1602进行显示,最后对系统进行测试,并分析了系统存在的误差。

1 ADIS16355芯片数据采集硬件设计

根据数据采集系统的需要,系统以AT89S52作为主控单元,外扩一片6264静态存储器作为数据存储器,并设计AT89S52与ADIS16355通信的SPI接口模块、LCD显示模块、键控模块和在线编程模块,系统硬件连接框图如图1所示。
\

1.1 主控模块

控制单片机AT89S52具有8 KB Flash,256 B RAM,32 bit的I/O口线,看门狗定时器,两个数据指针,3个16 bit定时器/计数器,一个六向量两级中断结构,全双工串行口,片内晶振及时钟电路等功能[3]。它与ADIS16355陀螺仪之间通过SPI接口相连。因为AT89S52单片机没有专门的SPI接口,只能通过软件模拟P2.0口为时钟信号线与陀螺仪的SPI接口SCLK引脚相连,P2.1口为主输出从输入MOSI与陀螺仪SPI接口的数据输人SDI引脚相连,P2.2口为主输入从输出MISO与陀螺仪SPI接口的数据输出SDO引脚相连,P2.3口为片选信号。P3.2、P3.3为中断引脚,分别与ADIS16355的DIO1和DIO2相连,为数据转换中断。

1.2 LCD显示模块

系统显示部分采用液晶LCD1602芯片,其特点是:功耗低、体积小、质量轻、显示质量高、数字式,采用标准的16脚接口和单片机连接简单,操作方便,能够同时显示16×2即32个字符,1602液晶模块内部的字符发生存储器(CGROM)存储了160个不同的点阵字符图形,方便显示控制器采集出的数据。

1.3 在线编程模块

系统设计了在线编程模块,利用STC-ISP编程烧录软件实时在线下载程序,大大方便了开发者,提高了系统研发效率。

1.4 SPI接口模块通信与配置

SPI是MOTOROLA公司提出的同步串行总线方式,是一种全双工、同步、串行数据接口标准总线,与其他串行总线相比,它具有电路结构简单、速度快、通信可靠等优点[4]。标准的SPI总线由4根信号线组成:时钟信号(SCLK)、主输入\从输出线(SDI)、主输出\从输入线(SDO)和片选信号(CS)。

系统中ADIS16355通过SPI接口与外部进行通信,需要外部设备MCU通过该接口对其内部各寄存器进行设置,图2所示是一个典型的写入控制寄存器命令的数据帧。由芯片资料[5]可知,DIN系列的首位是1,第二位是0,后面是目标寄存器的6 bit地址和8 bit数据命令,因为每一个写命令包含一个数据位,所以给整个16 bit寄存器空间写值时要求有两个数据帧。图3为ADIS16355读操作SPI时序图,由芯片资料[5]可知ADIS16355完成一次SPI通信包括16 bit数据,其中第1位是SPI传输的读写状态标识,第2位为0,紧跟着的6 bit是目标寄存器地址,最后8 bit是在写操作时将要写进寄存器的数据,如果是读操作则忽略,完成ADIS16355的一个读操作需要进行两次16 bit的SPI通信,其中第一次是写入将要读取的寄存器地址,该寄存器的内容将在第二次SPI通信出现在ADIS16355的DOUT信号线上,输入SPI的主设备。
\
本设计中控制器与ADIS16355进行SPI通信的每个数据帧为16 bit,而AT89S52的数据宽度为8 bit,所有内部寄存器和数据空间存储器都是8 bit宽度组成,作为主设备在其发出有效的SPI片选信号使能ADISl6355后,要对其自身的SPI数据寄存器进行两次写操作,才能在总线上完成一次16 bit数据传输。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top