嵌入式设计应用
摘要:基于常用的MEMS惯性器件微型加速度计,介绍一种采用ARM和FPGA架构来采集加速度数值的设计方案,微加速度计的模拟输出信号经A/D芯片转换后由FPGA进行处理和缓存,然后ARM接收FPGA的输出数据并对数据进行显示和存储.对如何用FPGA实现该数据采集系统的传输控制和数据缓存,以及FPGA与A/D转换芯片和ARM的接口设计给出了说明,实现了加速度数值的采集、传输、显示和存储,该方法配置灵活、通用性强,可以较好地移植到相关器件的数据采集系统中。
0 引言
加速度计是一种应用十分广泛的惯性传感器,它可以用来测量运动系统的加速度。目前的加速度计大多采用微机电技术(MEMS)进行设计和制造的微型加速度计,由于采用了微机电技术,其设计尺寸大大缩小,一个MEMS加速度计只有指甲盖的一小部分,MEMS加速度计具有体积小、重量轻、能耗低等优点。
随着微加速度计的应用越来越广泛,对于微加速度计的数据信号采集和存储变得极为重要。传统的数据采集方法多数是用单片机完成的,其编程简单、控制灵活,但缺点是控制周期长、速度慢,特别是对高速转换的数据来说,单片机的慢速度极大地限制了数据传输速度。而FPGA(现场可编程门阵列)具有单片机无法比拟的优势。FPGA时钟频率高,内部延时小,全部控制逻辑由硬件完成,速度快、效率高,适于大数据量的高速传输控制。在高速数据采集方面,FPGA有单片机无法比拟的优势,然而单片机的接口丰富,数据处理能力强,便于完成数据的显示和存储等操作。
综合单片机与FPGA的优点,这里介绍一种基于ARM和FPGA的微加速度计数据采集存储系统,结合MXR6150G/M加速度计传感器和TLC0820-A/D转换芯片,提供了一种配置灵活、通用性强的数据采集方案。
1 系统整体设计方案
图1是数据采集系统的总体结构框图,该系统主要由双轴加速度计、A/D转换器、FPGA和ARM处理器四大部分组成。双轴加速度计输出两路模拟信号,分别代表z轴与y轴的加速度值,通过A/D转换芯片把输入的两路模拟信号转换为8位的数字信号,FPGA接收来自A/D转换芯片的数字信号,并对数字信号进行处理,处理后的数据经过FPGA中的FIFO存储器缓存后由ARM处理器采取中断方式接收采集,采集到的数据可以通过串口通信在PC机上实时显示,也可以通过IDE接口存储到大容量硬盘。
2 系统硬件设计与实现
2.1 MXR6150G/M加速度计传感器
MXR6150G/M是无锡美新半导体公司生产的双轴加速度计传感器,它采用标准的亚微米CMOS工艺制造,可以测量从-5g~+5g(g为重力加速度)范围内的加速度信号,该加速度计是利用两路模拟电压反映加速度值的大小,当加速度计静止,加速度值为0时输出电压为1.50 V,电压输出灵敏度为150 mV/g。图2为此加速度计的外观顶视图,表1为加速度计的引脚描述,其中引脚7和引脚6分别输出x轴和y轴的加速度分量。实际加速度的值需要将x轴与y轴加速度的值进行合成得到,这可利用FPGA的并行计算处理来完成。
2.2 8位A/D转换芯片TLC0820
TLC0820是德州仪器公司(TI)推出的,采用先进LinCMOS工艺制造的A/D转换器,它由两个4位的闪速(FLASH)转换器,一个4位的数/模转换器,一个计算误差放大器,控制逻辑威廉希尔官方网站 和结果锁存威廉希尔官方网站 组成。它采用8位并行输出,并且不需要外部时钟和振荡元件,广泛应用于高速数据采集系统、工业控制和工厂自动化系统,其封装引脚如图3所示。引脚功能描述如下:ANLG IN为模拟输入;为片选,低有效;DO~D3,D4~D7为三态数据输出;为中断输出端,表示转换结束;MODE为方式选择输入;为溢出标志;为读输人端;REF-为参考电压下限值;REF+为参考电压上限值;VCC为电源电压;为写输入/读状态输出。
2.3 Altera-FPGA与ARM处理器
该系统的FPGA采用Altera FPGA公司的CycloneⅡ系列的EP2C35实现,EP2C35提供多达33 216个逻辑单元(LE),35个18×18位乘法器483 840 b的内部RAM块,专用外部存储器接口威廉希尔官方网站 ,4个锁相环(PLL)和高速差分I/O等功能。
该系统中采用的ARM处理器是Philips公司的LPC2210,是基于一个支持实时仿真和嵌入式跟踪的16/32位ARM7TDMI-S CPU的微控制器。 LPC2210的144脚封装、极低的功耗、两个32位定时器、八路lO位ADC,PWM输出以及多达九个外部中断使其特别适用于工业控制、医疗系统、访问控制和电子收款机等。通过配置,LPC2210最多可提供76个GPIO。由于内置了宽范围的串行通信接口,其也非常适合于通信网关、协议转换器以及其他各种类型的应用。
3 采集系统整体实施方案
3.1 FPGA控制A/D芯片进行加速度计数据采集
该加速度计是利用两路模拟电压输出来反映加速度值的大小,当加速度值为O时输出电压为1.50 V,电压输出灵敏度为150 mV/g,A/D转换器模拟输入电压范围为VCC±0.1 V,低于VREF- +(1/2)LSB或高于VREF+ -(1/2)LSB的模拟输入电压分别转换为00000000或1111111,系统中所加电压分别为VCC=VREF+=5 V,VREF-=GND=O V。TLC0820可通过MODE的设置工作在只读和读写两种方式。当MODE为低时,转换器为只读方式。在这种方式中,作为输出,且作为准备输出端;同时。当为低时,亦为低,表明器件忙,转换器在的下降沿开始转换,经过不到2.5μs转换完成,此时下降.为高阻,数据输出也由高阻变为有效的数据端,当数据读出后,变高,返回高,数据输出端返回到高阻态。当MODE为高时,转换器为读/写方式,作为写输出端。当和为低时,转换器开始测量输入信号,大约600 ns后返回高,转换器完成转换,在读写方式中,在上升沿开始转换。该实验采用读写方式来控制A/D芯片来读取加速度计的值,所需的控制信号由FPGA输出,相关的逻辑控制采用Verilog硬件描述语言进行编写,图4为QuartusⅡ中FPGA连接A/D芯片与ARM系统的顶层模块图。
由A/D转换输出转换后的8位数字信号,可以从QuartusⅡ内置的逻辑分析仪中读取,图5为通过QuartusⅡ软件内置逻辑分析仪查看读取数据值的截图。从图5中可以看出在读写方式中,在WR/RDY的上升沿开始启动转换,到INT的下降沿转换完成,转换时间可通过时间标尺计算出来,为24×40=960 ns,之后就可以通过RD的上升沿开始读取转换后的数据到数据总线中,如图5中的XDD以及YDD。因为单片机的处理速度一般都低于A/D转换芯片的速度,故将XDD与YDD的数据存储到FPGA中的FIFO中,FIFO便起到数据缓冲的作用,以备接下来单片机对数据进行读取。
3.2 ARM系统接收FPGA数据
图6为FPGA与ARM相连接部分的传输接口框图。ARM系统主要控制数据采集的启动和采集结束后对数据的显示和存储,在数据采集的过程中,ARM处理器系统读取FPGA中的数据,实际上是读取FIFO中的数据。FIFO的容量可以通过软件进行设置,它有两个状态显示信号,分别为ALFUL和EMPTY,ALFUL是指FIFO接近满,当ALFUL从低电平变为高电平后,ARM单片机系统就可以发送RDFIFO信号来读取FIFO中的数据输出端口的数据,当FIFO中的EMPTY信号从低电平变为高电平,表明FIFO中已无数据可读,ARM单片机就开始等待ALFUL的跳变进行下一次的读取。
3.3 加速度数据显示和存储
由ARM系统采集到的数据可通过串口线发送到上位机进行实时显示,也可以通过模拟IDE通信协议储存到IDE硬盘中。LPC2210通过串口线与上位机进行通信主要是应用ARM芯片LPC2210中的通用异步接收/发送装置UART0,而使用LPC2210的通用可编程I/O口,可以模拟产生IDE硬盘的读写时序,实现对存储设备的读写操作。这样可以实现加速度数据的显示和存储。
4 结语
这里介绍一种MEMS器件微加速度计的数据采集设计方案,结合当前应用广泛的处理芯片ARM和FPGA,给出了一种配置灵活、通用性强的数据采集方案。实验中可准确采集美新加速度计MXR6150G/M的加速度信号,采集到的信号既可以在上位机实时显示,又可以存储在IDE接口硬盘中,达到了数据显示和存储的目的。(
全部0条评论
快来发表一下你的评论吧 !