提高实时系统数据采集质量的研究
时间:04-09
来源:互联网
点击:
前向通道是实时系统的“入口”,即数据之源。对小型实时系统来说,其一般构成模型为:传感器、放大器、采集器(A/D)以及相关联的外围电路。这些器件乃至构成的电路的稳定性、线性度、抗干扰能力直接影响到数据的采集质量。如果不考虑成本,在系统设计时全部采用军用级芯片,情况会好些,但仍程度不同地存在上述问题;如果采用一般商用级芯片,问题就严重了。这就要求工程人员在系统设计时,无论是采用商用级、工业级芯片,还是采用军用级芯片,都应该从设计角度寻求、采取一些弥补措施,以提高数据采集质量,进而提高系统的可靠性和稳定性。
1 动态“零漂”补偿技术
前向通道中的传感器、放大器、A/D易受温度(导致温漂)、时间(导致时漂)等因素影响而引起系统“零位”动态变化,即所谓“零漂”。恰当地使用动态“零漂”补偿技术能够有效地抑制“零漂”带来的采集数据误差。图1为笔者在某炉温闭环控制系统中采用的动态“零漂”补偿实用电路。其中AD7503是单片集成的CMOS8选1多路模拟开关,其前7路分别接7个传感器,第8路S8接模拟地。公共输出端OUT通过R1电阻与放大器AD524输入端相连。A/D采用12位双积分ICL7109芯片。其补偿原理是:在单片机8031控制下,分时地对动态“零漂”及各路传感器进行采集、处理,最终得到不含“零漂”的有效采样净值参加插值运算。具体步骤如下:
(1)通过8031程控使AD7503开关SK接S8,即模拟地。
(2)延迟1ms,消除AD7503开关时间及电阻、电容放电时间带来的开关闭合过渡过程。这点应引起足够注意,只有在SK可靠接地之后才能进行“零位”采集;否则,如果在过渡过程进行“零位”采集,则会产生随机性误差,而且被测试的温度愈高,呈现的误差愈大,出现的概率愈频繁。但延迟时间也不能过长,过长会影响系统的实时速度。
过渡过程主要由R、C放电时间决定。
T=(R1+Ron)×C1=(220+170)×10×105×10-9=0.39ms
其中:
T:放电时间;
Ron:AD7503导通电阻。
图2是用示波器在放大器AD524输出端(管脚10)观察到的这一过程的波形图。
(3)启动A/D连续采样数次,然后求其算术平均值,记为x0(x0即动态“零漂”采样值):
(4)通过8031程控使AD7503开关SK接某一路传感器(例如传感器1端S1)。
(5)延迟1ms,消除电阻、电容充电带来的过渡过程。
(6)启动A/D连续采样数次,然后求其算术平均值,记为x1(x1即含有动态“零漂”的有效信号采样值):
(ti:当前采样值,n:采样次数)
(7)求有效信号采样净值y(即从上述有效信号采样值中滤掉“零漂”值)。按照理论x1≥x0,但实际由于在“零位”附近的有效信号采样值,很可能出现x10的现象。因而求有效信号采样净值y不能简单地使用公式y=x1-x0,而应按照下列关系式进行:
若x1≥x0 则y=x1-x0
否则 y=0
(8)使用y进行插值运算,最终求出实际温度值,并在数码管组成的显示器LED上进行显示。
此方法虽然编程(特别是用汇编语言或梯形语言编程)较复杂,但效果相当明显。
2 滤波技术
2.1 电容滤波器
电容滤波法是小型实时系统经常采用的一种廉价而有效的无源滤波技术。但在实际应用中,采用什么样的电容?电容容量应该选取多大?滤波电容接在靠近放大器输出一端还是接在靠近A/D输入一端效果好些?这些都是系统设计中要经常遇到的实际问题。笔者曾在某便携式巡检记录仪中使用美国MAXIM公司的MAX189串行、12位A/D芯片,它为8脚封装,实用电路如图3所示。使用PIC16C74单片机的SPI(串行外围接口)口进行全双工编程采集。按照MAXIM公司给出的典型应用电路,在MAX189模拟信号输入Ain端(管脚2)无图3中的滤波器,但实际应用时发现,按照典型应用电路进行采集误差很大。后在MAX189 Ain端接入如图3所示的低、高通滤波器(以下简称滤波器),收到了显著的效果。
根据笔者近几年的工程设计与实践,认为对电容滤波器,一般应选择耐压高、绝缘性好、温度系数小、自谐振频率高的电容。其容量要根据具体系统进行实验确定,既不能选择过大,也不能选择过小。过大会损伤有用信号,过小则达不到滤波效果。另外,在许多实用采集电路中,将滤波电容接在放大器的输出一端,笔者认为没有接在A/D输入一端效果好。
2.2 数字滤波
2.2.1 数字滤波方法
硬件滤波器只是提高实时系统数据采集质量的措施之一,它和其它任何滤波技术一样,很难彻底抑制各种干扰,因此很有必要进行数字滤波。经典的数字滤波方法较多,有算术平均值法、超值滤波法、比较取舍法、滑动算术平均法、竞赛评分法以及一阶低通滤波法等。究竟采用哪种滤波技术应视具体情况而定。笔者认为至少应考虑采集器A/D的类型。如果A/D属积分型,其对尖脉冲有较强的抑制能力,但转换速度慢,采用滑动滤波技术能够达到扬长避短的作用。滑动滤波技术的基本思想是:取长度为N的队列,把每次采样值放入队尾,同时扔掉队首的一个采样值,再求队列的算术平均值作为本次采集的最终有效值。这种数字滤波方法速度快,但对尖脉冲干扰抑制能力较差。笔者曾在某综合测试台湿度、温度监视系统设计中采用国产3位半双积分型5G14433采集器。为既能达到数字滤波的效果,又不影响系统实时速度,故使用上述的滑动滤波技术,收到了良好的效果。如果A/D为逐次比较式,一般转换速度快,但对尖脉冲抑制能力相对较弱,宜采用竞赛评分滤波法。
1 动态“零漂”补偿技术
前向通道中的传感器、放大器、A/D易受温度(导致温漂)、时间(导致时漂)等因素影响而引起系统“零位”动态变化,即所谓“零漂”。恰当地使用动态“零漂”补偿技术能够有效地抑制“零漂”带来的采集数据误差。图1为笔者在某炉温闭环控制系统中采用的动态“零漂”补偿实用电路。其中AD7503是单片集成的CMOS8选1多路模拟开关,其前7路分别接7个传感器,第8路S8接模拟地。公共输出端OUT通过R1电阻与放大器AD524输入端相连。A/D采用12位双积分ICL7109芯片。其补偿原理是:在单片机8031控制下,分时地对动态“零漂”及各路传感器进行采集、处理,最终得到不含“零漂”的有效采样净值参加插值运算。具体步骤如下:
(1)通过8031程控使AD7503开关SK接S8,即模拟地。
(2)延迟1ms,消除AD7503开关时间及电阻、电容放电时间带来的开关闭合过渡过程。这点应引起足够注意,只有在SK可靠接地之后才能进行“零位”采集;否则,如果在过渡过程进行“零位”采集,则会产生随机性误差,而且被测试的温度愈高,呈现的误差愈大,出现的概率愈频繁。但延迟时间也不能过长,过长会影响系统的实时速度。
过渡过程主要由R、C放电时间决定。
T=(R1+Ron)×C1=(220+170)×10×105×10-9=0.39ms
其中:
T:放电时间;
Ron:AD7503导通电阻。
图2是用示波器在放大器AD524输出端(管脚10)观察到的这一过程的波形图。
(3)启动A/D连续采样数次,然后求其算术平均值,记为x0(x0即动态“零漂”采样值):
(4)通过8031程控使AD7503开关SK接某一路传感器(例如传感器1端S1)。
(5)延迟1ms,消除电阻、电容充电带来的过渡过程。
(6)启动A/D连续采样数次,然后求其算术平均值,记为x1(x1即含有动态“零漂”的有效信号采样值):
(ti:当前采样值,n:采样次数)
(7)求有效信号采样净值y(即从上述有效信号采样值中滤掉“零漂”值)。按照理论x1≥x0,但实际由于在“零位”附近的有效信号采样值,很可能出现x10的现象。因而求有效信号采样净值y不能简单地使用公式y=x1-x0,而应按照下列关系式进行:
若x1≥x0 则y=x1-x0
否则 y=0
(8)使用y进行插值运算,最终求出实际温度值,并在数码管组成的显示器LED上进行显示。
此方法虽然编程(特别是用汇编语言或梯形语言编程)较复杂,但效果相当明显。
2 滤波技术
2.1 电容滤波器
电容滤波法是小型实时系统经常采用的一种廉价而有效的无源滤波技术。但在实际应用中,采用什么样的电容?电容容量应该选取多大?滤波电容接在靠近放大器输出一端还是接在靠近A/D输入一端效果好些?这些都是系统设计中要经常遇到的实际问题。笔者曾在某便携式巡检记录仪中使用美国MAXIM公司的MAX189串行、12位A/D芯片,它为8脚封装,实用电路如图3所示。使用PIC16C74单片机的SPI(串行外围接口)口进行全双工编程采集。按照MAXIM公司给出的典型应用电路,在MAX189模拟信号输入Ain端(管脚2)无图3中的滤波器,但实际应用时发现,按照典型应用电路进行采集误差很大。后在MAX189 Ain端接入如图3所示的低、高通滤波器(以下简称滤波器),收到了显著的效果。
根据笔者近几年的工程设计与实践,认为对电容滤波器,一般应选择耐压高、绝缘性好、温度系数小、自谐振频率高的电容。其容量要根据具体系统进行实验确定,既不能选择过大,也不能选择过小。过大会损伤有用信号,过小则达不到滤波效果。另外,在许多实用采集电路中,将滤波电容接在放大器的输出一端,笔者认为没有接在A/D输入一端效果好。
2.2 数字滤波
2.2.1 数字滤波方法
硬件滤波器只是提高实时系统数据采集质量的措施之一,它和其它任何滤波技术一样,很难彻底抑制各种干扰,因此很有必要进行数字滤波。经典的数字滤波方法较多,有算术平均值法、超值滤波法、比较取舍法、滑动算术平均法、竞赛评分法以及一阶低通滤波法等。究竟采用哪种滤波技术应视具体情况而定。笔者认为至少应考虑采集器A/D的类型。如果A/D属积分型,其对尖脉冲有较强的抑制能力,但转换速度慢,采用滑动滤波技术能够达到扬长避短的作用。滑动滤波技术的基本思想是:取长度为N的队列,把每次采样值放入队尾,同时扔掉队首的一个采样值,再求队列的算术平均值作为本次采集的最终有效值。这种数字滤波方法速度快,但对尖脉冲干扰抑制能力较差。笔者曾在某综合测试台湿度、温度监视系统设计中采用国产3位半双积分型5G14433采集器。为既能达到数字滤波的效果,又不影响系统实时速度,故使用上述的滑动滤波技术,收到了良好的效果。如果A/D为逐次比较式,一般转换速度快,但对尖脉冲抑制能力相对较弱,宜采用竞赛评分滤波法。
传感器 放大器 电路 CMOS 电阻 单片机 电容 示波器 显示器 LED 滤波器 PIC PLC 电压 低通滤波器 电流 DSP 相关文章:
- 多核及虚拟化技术在工业和安全领域的应用(05-23)
- 基于ARM核的AT75C220及其在指纹识别系统中的应用(05-24)
- 基于音频信号的轴承故障诊断方法(03-17)
- 采用信号调理IC驱动应变片电桥传感器(05-26)
- 基于nRF2401智能无线火灾监控系统设计(04-01)
- 家居安防无线监控报警系统(04-02)