基于PGA302的海温及压力采集系统设计
2020-04-22刘鹏媛马游春
刘鹏媛,马游春,何 巧
(中北大学 仪器科学与动态测试教育部重点实验室,太原 030051)
随着传感器技术的不断发展进步,传感器已经在海洋探测中得到了广泛的应用,但是由于传感器所具有的频率响应、阶跃响应等动态特性以及漂移、重复性、精确度、灵敏度、分辨率、线性度等静态特性,当外界的因素改变或动荡时,将会造成传感器的自身特性出现不稳定的现象,会给其实际应用造成很大影响,导致测量的温度信号和压力信号出现极大的偏差,这就要求在实际测量中对这些不稳定因素进行补偿[1],以获得满足使用要求的信号。为了获得高精度的海温及压力信号,设计了一款基于PGA302的海温及压力采集系统[2]。
1 采集系统硬件设计
采集系统由FPGA主控模块、PGA302信号采集调理模块、Flash存储模块、时钟模块以及电源模块构成[3]。以AGLN250V2-CS81主控芯片为核心,传感器信号通过信号调节器PGA302完成采集和补偿调理工作,由FPGA控制将数据传输到Nor Flash中实现存储,当需要读取数据时,由串口与上位机通信,数据将在上位机中直观显示。系统总体框图如图1。
图1 系统总体设计框图
1.1 PGA302信号采集调理模块
选取系统的信号采集调理模块时,考虑到低功耗、高精度的设计要求。选用了TI公司的PGA302芯片。它是一种高精度、低漂移、低噪声、低功率、多功能的信号调节器。它提供2.5 V的桥激励电压。信号数据通过I2C数字接口进行访问,I2C接口也可以用来配置其他功能块。PGA302包含两个分开的模拟前端(AFE)链,可以同时采集两路传感信号:一路压力传感输入、另一路温度传感输入,通过模拟前端链进行放大和数字化,采集精度为16位,并进行线性化和温度补偿[4]。每个AFE链都有它自己的增益放大器,范围从1.33 V/V到200 V/V。PGA302提供电流源,该电流源可以为可选的外部温度传感提供高达 1 000 μA的电源。该电流源也可作为恒流桥激励。而且在该芯片集成电路内部具有内部温度传感器,该内部温度传感器可以被配置为温度传感器AFE链的输入。它具有小的封装尺寸,集成了用于电阻桥式传感的应用,以最小化PCB面积和简化整体应用设计。它的外围电路设计如图2所示。
1.2 存储模块
为解决现有的采集系统尺寸大、不易安装的问题,该系统选用MICRON公司的NOR Flash[5],型号为MT25QL128ABA,128MB存储,它的尺寸相对较小,是一种高性能多输入/输出串行闪存设备。具有两个额外的字节标识设备工厂选项来定义扩展设备ID,具有大容量的擦除功能、安全和写保护功能,具有高速SPI兼容总线接口、就地执行(XIP)功能、高级写保护机制和扩展地址访问。高性能的双和四输入/输出命令使得读取和编程操作的传输带宽拓宽两倍或四倍。相对于NAND Flash的可靠性要高[6]。
图2 PGA302外围电路
1.3 时钟模块
为了满足系统在海下长时间工作的设计要求,降低功耗,采用RX8900CE作为时钟模块。它是一款低功耗芯片,功耗为0.70 μA/3 V,通过I2C总线接口通信,RX8900CE具备多种功能:① 报警功能;② 固定时间周期定时器功能;③ 时间更新中断功能;④ 32.768 kHz输出功能。报警中断功能可以为指定日期、日、小时、分钟设置报警。该系统的设计中利用它的报警功能,通过寄存器的设置,使系统每天在指定的10 min时间内完成采集,超出设定的时间后,时钟模块INT引脚产生中断,系统随即进入睡眠状态,这样可以满足采集系统在水下工作1年的设计要求。电路原理如图3所示。
图3 RX8900电路原理
2 系统逻辑设计
PGA302通过I2C接口通信,I2C是一个串行通信接口,它通过一根数据线SDA,一根时钟线SCL进行通信。
2.1 PGA302数据写入
PGA302采集模块的数据写入操作的程序流程图如图4所示。
图4 PGA302数据写入操作流程图
操作的流程为:① 写入从机地址&0;② 判断是否产生ACK应答信号,如果没有产生则等待4个时钟周期,等待超时则重新开始写入;③ 写入寄存器地址;④ 判断是否产生ACK应答信号,如果没有产生则等待4个时钟周期,等待超时则重新开始写入;⑤ 写入寄存器需要配置的参数值;⑥ 判断是否产生ACK应答信号,如果没有产生则等待4个时钟周期,等待超时则重新开始写入。PGA302内部数据写入操作时序仿真如图5所示,程序设计满足预期要求。
图5 PGA302数据写入仿真时序图
2.2 PGA302数据读取
PGA302数据读取操作的流程为:① 写入从机地址&0;② 判断是否产生ACK应答信号,如果没有产生则等待4个时钟周期,等待超时则重新开始;③ 写入寄存器地址;④ 判断是否产生ACK应答信号,如果没有产生则等待4个时钟周期,等待超时则重新开始;⑤ 重复开始操作;⑥ 写入从机地址&1;⑦ 判断是否产生ACK应答信号,如果没有产生则等待4个时钟周期,等待超时则重新开始;⑧ 读取寄存器中的数据。PGA302数据读取操作时序仿真如图6所示,程序设计满足预期要求。
图6 PGA302数据读取仿真时序图
3 系统关键技术分析
在该系统的构建中,需要解决两个关键性的技术难题。第一是对系统功耗进行控制,延长系统工作时间,第二是能够使经过PGA302补偿后的传感器信号的精度在0.05%的量级。为了解决这两个方面的问题,提出了一种低功耗的方案及用到了PGA302内部集成的温度补偿和非线性校准功能[7]。
3.1 系统低功耗方案设计
3.1.1低功耗硬件设计
为了达到低功耗的要求,首先是芯片的选型,尽可能地选择使用低功耗芯片,其次在程序设计中尽可能地做到高效简洁重复可利用,这样可以减少不必要的电量损耗。选用IGLOO系列的FPGA,型号为AGLN250V2-CS81,FPGA按照工艺来分,可以分为SRAM架构和Flash架构,SRAM架构的FPGA因为掉电时无法保存数据,所以需要增加一个昂贵的配置芯片,同时产生的功耗也较大而该Flash构架的FPGA拥有单芯片、非易失性、上电即行、小尺寸等优点。本型号仅有55 mm大小,可以很大地节省PCB的空间,另外它具有独特的Flash*Freeze技术,允许用户在1μs内切换到睡眠模式,从而简化低功耗设计实现。Flash*Freeze(FF)引脚(低激活)是用于直接进入或退出flash*Freeze冻结模式的专用引脚,时序图如图7,在晶振的选择中,不同于以往的芯片选型,选择带有使能管脚的晶振,使能脚由FPGA控制,在FF管脚拉低时,使能端置低,晶振进入高阻状态,停止输出时钟。
图7 Flash*Freeze工作时序图
3.1.2低功耗逻辑研究设计
当PR引脚接收到/INT低电平信号,D触发器Q输出为低电平信号PWEN,连接FPGA的FF管脚,FPGA进入Flash*Freeze睡眠状态,控制FPGA的输出管脚APON、PRWEN为低电平,APON为电源转换芯片的使能控制端,当为低电平时变为高阻态,停止工作,信号采集调理器PGA302的电源管脚停止供电,当PRWEN为低电平时,时钟模块SG-210SCB停止输出8M时钟,保证系统在睡眠模式下尽可能地控制电源损耗。如图8所示。
图8 系统睡眠模式设计图
3.2 传感信号高精度补偿设计
PGA302采用三阶温度系数和压力输入的非线性校准的方式[8]。实现温度补偿和非线性校准算法,主要是建立线性和温度补偿系数表,在上位机软件中,选择校准模式为3压力、1温度,在页的底部点击开始按钮,将会依次更新压力所需的输出电压和DAC编码,利用电阻桥来模拟压力传感器进行校准过程[9],通过电阻桥设置窗口将电阻桥电阻设置为期望值。在实验中,使用5.085 0 K作为压力1的值,点击next,阵列将会自动由ADC读取的值填充,同理用 5.080 6 K、5.071 3 K作为压力2、3的值,完成压力的读取:点击继续,温度阵列将由PGA302的内部温度传感器读取的ADC值自动更新,点击校准,这将使用校准过程生成的数据来计算线性和温度补偿系数值[10],结果如表1所示。把获得的数据通过上位机软件写入PGA302内置的EEPROM存储器中,从而完成对压力传感器的校准。
表1 线性和温度补偿系数表
得到相应的线性和补偿系数之后由式(1)、式(2)、式(3)可得到经过补偿之后的信号[11],其中a0、b0分别为PADC的数字增益和数字偏置,a1、b1分别为TADC的数字增益和数字偏置。
P=a0(PADC+b0)
(1)
T=a1(TADC+b1)
(2)
OUTPUT=(h0+h1×T+h2×T2+h3×T3)
+(g0+g1×T+g2×T2+g3×T3)×P+
(n0+n1×T+n2×T2+n3×T3)×P2+
(m0+m1×T+m2×T2+m3×T3)×P3
(3)
4 系统性能测试
4.1 功耗测试
时钟模块RX8900完成定时器的计时工作,在设定的时间内系统处于采集状态,当达到设定的时间值后,RX8900会输出一个低电平信号,控制D触发器输出低电平信号,该信号连至FPGA的FF管脚,使FPGA进入冻结状态,系统进入睡眠模式,由此对系统进行睡眠和采集模式的切换,在两种不同的模式下测量系统的电流,结果如图9所示,可以得到系统在睡眠模式时的电流约为0.212 3 mA,在采集模式下的电流为5.576 5 mA,达到降低功耗的设计要求。
4.2 精度测试
4.2.1压力结果测试
在20 ℃、45 ℃、60 ℃ 3个温度条件下,分别测量0 kPa、3.6 kPa、7 kPa 3个压强值的输出电压,计算其补偿前后的误差值,如表2所示,可以看到压力信号得到了有效地补偿并且采集精度在0.03%以下。
图9 两种不同模式下测量电流
表2 补偿前后实验数据对比
4.2.2温度结果测试
选取4个不同的温度条件,使用外置的PT100温度传感器进行数据采集测试,通过上位机得到不同温度环境下的数字信号,由PT100温度传感器的特性可得到其测得的实际温度值如表3所示,可以看到采集的精度量级在0.05%,满足设计要求。
表3 温度测试结果
5 结论
为了实现在海洋探测中压力传感信号和温度传感信号的有效采集,对采集过程中信号出现的温度漂移等现象进行有效调理,得到准确的信号。不同于传统的硬件补偿方式,采用TI公司的PGA302作为信号调理单元,利用软件补偿的方法得到高精度的采集信号,在系统的构建中同时实现了低功耗的设计,能够使采集系统能长时间地海底作业,解决了普通的潮位仪电量损耗大的问题[12]。