嵌入式基于FRAM的海水深度记录仪电路设计
海洋的深度是海洋水体的一个重要参数。知道海洋的深度,就可防止海面航行的船只搁浅、触礁。潜艇在海底活动时,测量海洋深度可利用海底地形作屏障以避免被搜索,可使对方的讯号接收仪器收不到潜艇发出的噪音。在笔者所做的一个课题中,直升飞机从空中投掷测量仪器到海表面,仪器从海表面下沉至海底后,自动上浮至海水表面。该项目要求研制一个海水深度记录仪,记录上述过程中测量仪器在海水中的深度变化。测量仪器自动上浮至海面后,打捞并回放测量数据。深度数据要求每秒采样100次,具有非易失性。测量数据通过串口向PC机回放。
系统硬件设计
根据系统设计要求,海水的深度数据采集频率要求至少100Hz,连续采集时间为5分钟以上。以分辨率为12位的ADC计算,一次采集的数据量至少为2×100×5×60=60000B。针对系统数据采集量大、速度快、爆发性强的特点,采用如下总体设计方案:主控制器采用了高性能微控制器C8051F020。它具有与8051完全兼容的CIP-51微控制器内核,采用高速流水线结构(25MIPS),大多数指令执行时间为1~2时钟周期;具有64KB可在系统编程FLASH和大容量内部SRAM,具有外部存储器接口。非易失性存储器采用美国Ramtron公司的FM20L08铁电存储器。与其它类型的非易失性存储器相比,FRAM铁电存储器具有读写次数多、读写速度快、功耗低、无延时和不用擦除写操作的特点,在功能上可以完全替代SRAM。系统硬件框图如图1所示。
图1系统硬件框图
信号调理电路设计
信号调试电路如图2所示。
图2信号调理电路
虽然C8051F020内部有2.43V的基准电压源。但是测试结果表明其输出电压随温度波动较大,影响测量结果的准确性。为了提高测量精度,系统采用了Maxim公司的低温漂电压基准芯片 MAX6325,MAX6325是低温度系数(1ppm/°C)、低噪声(1.5mVp-p)的电压基准,它具有±0.02%初始精度,是高精度数据采集系统的理想选择。由于压力传感器的输出电压范围是DC1~5V,而MAX6325输出的电压基准是2.50V。因而必须对压力传感器输出电压进行衰减,以达到和基准电压的匹配。实现这个功能最简单的方法是直接用两个电阻进行分压,但是由于传感器具有一定的输出阻抗,直接匹配分压电阻相当于将传感器输出阻抗与这两个电阻并联,会造成输入A/D的采样电压不准确。正确的方法是在压力传感器的输出之后加一级运算放大器增加输入阻抗,再在运放的输出级并联分压电阻。考虑到系统只有5V电压并且传感器的输出电压在1~5V之间,同时也为了减少器件的数目,缩小占板面积,运算放大器选用了OPA340。 OPA340是单电源轨至轨输入和输出运算放大器。OPA340的工作电压可低至2.5V,它允许的最低输入为-500mV,最高输入为可高于电源 500mV。
数据存储电路设计
对于针对突发数据的记录仪、高速存储测试设备等,其数据的高速存储和掉电不丢失成为系统设计的关键,Ramtron公司推出的FM20L08铁电存储器弥补了现有铁电存储器存储量小的缺点,其数据存储量达1Mb(128KB),可完全代替标准异步静态随机存储器(SRAM),具有可随机读写芯片内任何一字节的特性。FM20L08非易失性铁电存储器可无限次读写,掉电后数据可保存10年,工作电压为3.3V。
最大功耗ftx电流为22mA,采用32引脚TSOP型封装。FM20L08增加了软件控制写保护功能,存储序列按地址排成8个区域,每个区域都能通过软件单独设置写保护。在对海水深度进行实时采集和记录时,为了更好地了解仪器在水中深度变化的过程,必须有高速的数据采集和大量的数据存储作保证。铁电存储器的高速写入和掉电数据不丢失特性完全适合此类情况,可以对物体在海水中的下降过程进行完整地记录。图3示出C8051F020与FM20L08的接口电路。
图3FM20L08与C8051F020的接口电路
C8051F020使用高位端口(P4~P7)与FM20L08进行接口。FM20L08新增内部电压监控器驱动 LVL(LowVoltageLockout)信号,它接至MCU的INT0,用于监控电源的供电情况,当电源电压下降到临界值以下时,LVL引脚输出低电压信号,显示电路处于写保护状态,在MCU的INT0中断服务程序中复位MCU,这样存储器可以自动阻止误读写和防止存储页面数据的破坏。 FM20L08的片选信号是由C8051F020的读写信号相与来控制的,只要读写信号任何一个变低,则片选信号有效。C8051F020的最大寻址空间为64K,而要求它能够访问128KB的地址空间,最简单有效的方法就是使用一个I/O位控制FM20L08的地址线A16。当A16为0是选择FRAM 的前半部分,当A16为1时,选择FRAM的后半部分。
在存储程序设计中,程序应首先判断仪器在下降时A/D的输入信号值是否大于门限值,只有输入信号值大于门限值才将数据存储在存储单元内,在测量仪器由海底上浮至将要接近海面时关闭铁电存储器,停止数据存储。