基于ADS1252的数据采集模块设计
扫描二维码
随时随地手机看文章
摘要:针对高精度数据采集模块广泛应用于高精度测量系统的需求,提出一种基于S3C451OB处理器,并以ADS1252为A/D转换器的高精度数据采集模块的设计方案。首先描述了ADS1252芯片特性;接着详细描述了数据采集模块电路的设计原理并给出了选用的主要芯片型号;最后详细描述了数据采集模块软件设计流程。目前已完成数据采集模块硬件和软件的设计,通过实验验证,此方案正确可行。
关键词:ADS1252;83C4510B;数据采集;高精度测量系统
现代医疗、地质、环境监测、工业过程控制往往需要对监测点进行高速高精度的数据采集,高精度的数据采集模块在其中得到广泛的应用。数据采集模块的设计决定着测量数据的精度和可靠性,因此它是构建高精度测量系统的基础。本文提出一种基于ARM7处理器S3C4510B和A/D转换器ADS1252构建的高精度数据采集模块的设计方案,并介绍了该方案的软硬件设计。
1 ADS1252芯片特性
ADS1252是美国BURR-BROWN公司推出的一款高精度、宽动态范围、采用单+5 V电源供电、具有24位分辨率的单通道A/D转换器。它采用差分输入方式,对于低电平电压信号接入非常有利;它采用4阶∑-△结构的调制器,可以得到宽动态范围和24位无差错编码;它内部有三阶数字滤波器,可以滤除电源波纹和其他干扰;它的数据输出率可随系统时钟的改变而改变,当数据输出速率达到最大40 kHz时,仍具有19位的分辨率;它提供一个2线同步串行接口,可以方便的与微处理器连接。所有这些特点使得ADS1252非常适合用做高精度数据采集模块的A/D转换器。
2 采集模块电路设计
本数据采集模块设计使用的微处理器是S3C4510B,它是三星公司针对网络应用而开发的一款性价比很高的ARM7TDMI内核的16/32位RISC微处理器,具有低成本和高性能的特点。本文以ADS1252测量电压为例说明采集模块电路的设计原理。S3C4510B与ADS1252的接口电路如图1所示:其中CPU_TOUT1信号对应于S3C4510B定时器1的溢出TOUT1引脚,主要为ADS1252工作提供系统时钟CLK;CPU_P1信号对应于S3C4510B的I/O端口P1引脚,主要为读取ADS1252的有效数据提供串行时钟SCLK;CPU_P2信号对应于S3C4510B的I/O端口P2引脚,主要用于检测ADS1252数据是否准备好以及读取有效数据DOUT而提供的串行数据引脚。
[!--empirenews.page--]
由于S3C4510B的I/O引脚的工作电压为3.3 V,而ADS1252的I/O引脚的工作电压为5 V,因此S3C4510B的CPU_TOUT1,CPU_P1,CPU_P2信号不能与ADS1252的CLK,SCLK,信号直接相连。74HC245芯片是8路总线收发器,在发送和接收两个方向上都具有正相三态总线兼容输出,并且其输入、输出的工作电压范围是0~VCC。本设计通过74HC245芯片使S3C4510B与ADSl252的I/O引脚的工作电压进行匹配,并使DIR=H且,令数据从A总线传送到B总线。
为了实现S3C4510B与ADS1252电气信号隔离,本设计选用6N137高速光耦,它是电子线路中隔离电压冲击及噪声串扰的优选器件,具有体积小、隔离效果好、价格便宜、便于安装等特点。
REF195是一款精密、微功耗、低温漂、高稳定性的基准电压源。本设计选用它为ADS1252提供5 V的基准电压。ADS1252的差分模拟输入V+,V-支持双极性输入,但本设计将V-引脚参考AGND,只允许单极性输入,因此ADS1252的电压测量范围为0~5 V。本设计在V+、V-之间并接5.1 V的齐纳二极管,当输入电压大于5.1 V时,可以把V+,V-两端的电压稳定在5.1 V,从而起到保护ADS1252的目的。
3 采集模块软件开发
采集模块软件的开发主要包括两个方面:ADS1252驱动和采集任务软件的开发。
3.1 ADS1252驱动的开发
由图2(a)可知,ADS1252的驱动开发主要包括I/O初始化、时钟初始化、ADS1252初始化、ADS1252读数据、校准数据。现分别介绍如下:
(1)I/O初始化:由于S3C4510B的I/O端口P1、P2既可用作输入口也可以用作输出口,因此必须通过软件对IOPMOD寄存器配置将P1设置为输出口,用于产生ADS1252的串行时钟;将P2设置为输入口,用于读取ADS1252的串行数据。
(2)时钟初始化:由于S3C4510B的I/O端口P17既可用作I/O口、也可用作定时器1的溢出TOUT1,因此必须通过软件对IOPCON寄存器配置将P17设置为定时器1的溢出TOUT1;接着通过软件对TMOD寄存器配置将定时器1设置为触发工作模式;
最后通过软件对TDATA1寄存器配置产生ADS1252工作所需的时钟频率。
(3)ADS1252初始化:当ADS1252工作在某个频率f(t=1/f),首先通过软件对P1端口置1使SCLK引脚保持高电平的时间TReset满足4TDRDY≤ TReset<20TDRDY(TDRDY=384t),那么ADS1252就会进入复位的状态。接着通过软件对P1端口置0使SCLK引脚变为低电平,此时ADS1252开始工作,它的串行数据引脚首先会进入Mode,接着进入DOUT Mode模式,之后在这两种模式之间交替切换。
(4)ADS1252读数据:当对ADS1252进行初始化后,此时软件通过对P2端口的轮询检测上升沿。一旦检测到上升沿,表明ADS1252进入 Mode,该模式的持续时间。当软件延时后,ADS1252进入DOUT Mode,该模式持续时间TDOUT=348t。在DOUT Mode期间,软件对P1端口产生一个脉冲,即可从P2端口读取到1位的数据。同理,即可获取其余23位的数据。软件必须保证在TDOUT时间内读完24位数据,否则ADS12 52将会进入下一个数据转换周期。
(5)校准数据:采集数据必须经过校准参数K,B的调整才能匹配实际值。其中采集电路的校准原理是采用两个恒定电压作为基准,通过原始的采集数据和高精度电压表实测电压,进行比较计算,从而得出校准参数K,B。
3.2 采集任务软件的开发
VxWorks是美国风河公司开发的一款具有微内核、高性能、可裁剪的嵌入式实时操作系统。本采集模块软件是基于VxWorks5.5操作系统进行开发的,为了满足数据采集的实时性,采集任务被分配了最高的优先级。由图2(b)可知,采集任务软件的开发主要包括采集数据、数据平滑处理、数据转发、任务休眠。现分别介绍如下:
(1)采集数据:调用ADS1252驱动程序对电压进行多次采集。
(2)数据平滑处理:除了在硬件上采取必要的抗干扰措施外,很有必要对多次的采集数据进行软件滤波,但必须考虑因此造成的延时。在保证测量精度和实时性要求的前提下,在软件处理上采取去掉最大、最小值,然后取平均的算法。
(3)数据转发:采集任务除了对数据进行采集以及平滑处理外,还必须将数据定时转发到它的订阅者,如通信模块、显示模块等。
(4)任务休眠:调用操作系统的taskDelay()函数,采集任务交出对CPU的控制权,以便让其他任务得到运行的机会。
[!--empirenews.page--]
4 软硬件调试
当数据采集模块的硬件和软件设计完毕,需要对它进行软硬件的调试以验证其设计的正确性。数据采集模块软硬件调试按以下步骤依次进行:
(1)ADS1252驱动调试:运行ADS1252驱动程序,首先用示波器监测ADS1252的CLK引脚,观察时钟频率的测量值是否与设定值一致。当CLK时钟频率设置正确,接着用示波器监测ADS1252的SCLK与引脚,观察这两个引脚的时序是否正确。
最主要保证串行时钟是发生在 Mode之后,否则将会读取到错误的数据。
(2)校准数据计算:在ADS1252驱动工作正常的前提下,首先用直流可调稳压源对ADS1252的差分输入端分别输出1 V,4 V的电压,将ADS1 252采集的电压分别记为VS1,VS2,同时将高精度电压表测量的电压分别记为VM1,VM2。接着通过对VS1,VS2,VM1,VM2的比较计算,得出校准参数K,B。
(3)采集任务调试:当校准参数计算完毕,启动采集任务对实时电压数据进行采集。在0~5 V的范围内,用直流可调稳压源对ADS1252的差分输入端输出从低至高的电压,此时采集任务通过printf()函数将采集电压输出到控制台。通过对比用高精度电压表测量的电压值,可以计算出ADS1252的采集电压误差,从而判断采集精度是否满足要求。
5 实验结果
现使用广东省电子技术研究所研制的GE/FC1燃料电池测试系统对质子交换膜燃料电池(Proton Exchange Membrane Fuel Cell,PEMFC)工作所需的氢气及氧气的流量、压力、湿度控制到合适值,然后进行电流扫描测试。在测试期间,用基于ADS1252的数据采集模块对电流扫描测试过程PEMFC的电压、电流的动态变化数据进行记录;同时用安捷伦数字万用表测量PEMFC电压、电流的某些特征值。
由于实验用的PEMFC采用单片Nation膜(截面积为2 cm×2 cm)组装,其开路电压不超过1.5 V。首先通过测试系统控制PEMFC氢气及氧气流量分别为0.1 SLPM,0.07 SLPM;控制PEMFC氢气及氧气背压均为0.05 MPa;控制PEMFC氢气及氧气的露点温度、气体温度分别为65℃,70℃。然后测试系统以1 mA的起始电流,按10 mA/s的增量对该PEMFC进行放电,并以“结束电流≥10 A”或“结束电压≤1 mV”为条件结束测试。
为了检测10 A范围的电流,本数据采集模块通过检测0.5 Ω测流电阻的电压来间接计算出电流值。本数据采集模块测量PEMFC的极化曲线如图3所示,并且通过比较特征电压电流的采集值及实际值,计算出电压电流的采集精度均满足±(0.5‰RD+0.5‰FS),其中RD表示当前读数值,FS表示满刻度值。
6 结论
目前已完成基于ADS1252的数据采集模块软硬件的设计及调试,并成功将软件移植到VxWorks 5.5操作系统上运行。通过实时采集PEMFC电流扫描测试过程中的电压、电流数据的实验,表明基于ADS1252的数据采集模块具有较高的采集速度和采集精度。长期严格的测试表明本数据采集模块的软硬件工作稳定可靠。