1、问题根源:
NI的大部数据采集卡的模拟采集部分,都是由一个或多个多路复用器、模拟前端、可编程放大器和一个ADC组成。当进行多通道数据采集时,多路复用器分时切换至不同通道,将电信号经过前端调理后送往ADC进行模数转换,最终得到多个通道的采样值。因此,多路信号并不是同步采集的。
一个待测信号源,可以等效成一个电压源串联一个电阻RX,不同信号源内阻可能不一样;而数据采集卡,由于内部多路复用器(MUX、)ADC采样保持电容和寄生电容的存在,从通道输入的电压经过信号调理电路,最终稳定传输到ADC,需要一定的时间,这段时间通常叫“建立时间”,这一过程可以假想成板卡通道对地间存在微小的电容C,延迟是由于RX给C充放电需要时间造成的,这个电容很小,通常在pF级,多通道采集电路等效图如下:
图1. 多通道测量等效模型
当进行多通道数据采集时,多路复用器在不同的通道间进行切换,不同通道上的信号源对内部电容充电/放电,电压建立时间随RX的不同而不同,与此同时,ADC按照设定的采样速率进行采集,有可能电容C上的电压还未达到稳定值便被ADC进行了数模转换。假设一个测量任务同时测量AI0和AI1,R0很小,而R1很大,当MUX接到AI0时,C两端的电压很快与Source0相同;当MUX从AI0切换至AI1,此时电容C两端还保持Source0的电压,通过R1充电/放电逼近Source1,而R1很大,电容C两端电压还未建立完成,ADC进行了模数转换。这就造成了Source1的测量值与真实值之间的误差,并且AI1的测量值上叠加有AI0上的信号,这一现象被称为重像电压或者影子电压(Ghosting)。
在多通道测量时,涉及到一个概念,“扫描序列”,即遍历待测通道的顺序,同样是对AI0、AI1、AI2进行测量,每次采样过程先测AI0,然后AI1,最后AI2和AI0->AI2->AI1是不一样的扫描顺序,可以通过多次使用DAQmx Create Channel.vi对同一个Task加入待测通道,插入的顺序既是扫描顺序。
图2. 构建扫描序列
为了直观说明本文论述的现象和方法,本文作者搭建了如下实验平台。
图3. 实验平台
文中使用USB-6259进行数据采集,使用ElVIS II+输出正弦和直流信号,并通过串入电阻模拟信号源的内阻,接线表如下:
表1. 实验信号源及模拟通道对应关系
AI0
|
Source0, 2.5Sin(2π*100t), r=50
|
AI4
|
Source4,DC 4V,r = 0.1
|
AI1
|
Source1, 2.5Sin(2π*100t), r=470k
|
AI5
|
Source5,DC 4V,r = 100k
|
AI2
|
Source2, 1.25Sin(2π*100t),r=23.5k
|
AI6
|
Source6,DC 2V,r = 50k
|
AI3
|
Source3, DC -42.5mV , r=10k
|
AI7
|
Source7,AIGND
|
如果只用对AI5(信号源特性见表1)连接的进行测量,结果如图4所示,测量值与实际值相符。
图4. 只对Source5的测量结果,采样率100K,DIFF
若对AI0、AI5(信号源特性见表1)同时测量,扫描序列为AI5->AI0->AI5->AI0循环扫描,测量结果如下:
图5a. Source5(左)、Source0(右)同时测量,采样率10K,DIFF
图5b. Source5(左)、Source0(右)同时测量,采样率100K,DIFF
图5c. Source5(左)、Source0(右)同时测量,采样率500K,DIFF
图5复现了鬼影现象,随着采样率的提高,鬼影现象变得严重,源阻抗低的Source0并未受影响,而源阻抗大的Source5收到了严重的干扰。
当扫描序列中有一个通道没有接入任何信号,可以认为此通道接入了一个输入阻抗无穷大的信号源,因此电容C无法进行充电和放电,此时电容C两端的电压基本与上一通道一致,测量值并不是0V,而是接近上一扫描通道的测量值,这是鬼影现象的一个极端表现,因此应该避免在扫描序列中插入未连接信号的物理通道。
由上文不难得出,鬼影现象轻则造成测量值偏差,重则导致测量完全失真,其本质原因是等效电容和信号源内阻的存在,这一现象无法避免,但通过合理的技术手段可以减弱。减小鬼影现象的核心问题在于为电容C的暂态过程谋取更多的时间(增长建立时间);或者合理控制暂态过程的初始状态,在同样的时间内使C两端电压更接近真实值(减少电压建立所需时间)。
2、不同应用场景的性能改善方法。
1)当测量序列中有一个高阻抗的直流信号源时,若采样速率较低,可将直流信号源接入的通道放在扫描序列的第一个。
例如同时对Source0、Source5、Source6(信号源特性见表1)进行测量,不同的扫描序列,得到的结果将完全不同。
图6a.Source5(左)、Source0(中)、Source6(右)同时测量,采样率1000,DIFF
图6b. Source0(左)、Source5(中)、Source6(右)同时测量,采样率1000,DIFF
图6a中,扫描序列是AI5->AI0->AI6,结果还算理想,每个通道上的信号基本正常;而图6b中的序列是AI0->AI5->AI6,AI5上Source5的测量结果完全失真。由此可见,合理安排通道的采集顺序,能很大程度上改善测量结果。
2)在采样速率较低时,可以修改Convert Rate,降低复用器切换速度,延长放大器稳定可用时间。
上一个例子中,为何将高阻抗源放在扫描序列的第一个,能有如此作用?这就不得不提到一个关键的参数,AI Convert Rate。AE
KB 2XPE1QCW 对Convert Rate(通道转换速率)做了详细说明,从中不难得出,当进行多通道采集时,多路复用器开关在各个通道的停留时间,也就是允许信号源对内部电容C充电/放电的时间默认情况下是由驱动配置的。在每通道采样数Sample Rate低的时候,Convert Rate的计算方法是由ADC的最高转换速度(单通道采集时的最高Sample Rate),再加10µs的延时。当每通道采样(Sample Rate)不断提高,在到达某个频率的时候就无法满足10µs的额外延时了,在这种情况下,驱动程序使用循环(round robin)的通道采样方式,均匀的将采样点之间的延时分配在各个通道之间。这时,Convert Rate的计算方法就是将采样率乘以使用的通道数。
正因如此,当采样速率较低的时候,每进行一次采样,轮询扫描完一次采样序列,在启动下一次通道采样前,还有空余时间。例如USB-6259,最高采样速度1MS/s,ADC模数转换时间1us,在上面的例子中,每通道采样率1K,一共三个通道,每1000us内对所有通道采样一次即可,而每通道上消耗的时间为10us(额外延时)+1us(ADC转换时间),Convert Rate = 1/11us = 90909.1Hz(通过属性节点可以得到其真实值),三个通道一共需要33us,剩下的967us中,板卡如何工作呢?
当完成一次扫描后,在下一次扫描开始前,多路复用器会停在序列的第一个通道上,而不是最后一个,意味着这967us的时间可以用于内部电容C的暂态过程,放大器拥有更多的“建立时间”。因此在AI5->AI0->AI6的序列中,967us均将Source5接入板卡,而在AI0->AI5->AI6这个序列,Source5的接入时间只有11us,因此造成了图6所示的结果。
使用属性节点,可查看真实的Convert Rate,上面的例子中,实际Convert Rate如下如所示。
图7. Convert Rate
至此,不难发现,可以通过手动设置Convert Rate,多余的时间均分至每个通道,让各通道都有更多的时间用与放大器的电平建立时间,也就是更多的时间用于内部等效电容C的充放电过程,电容C上的电压就会更接近真实电压。
仍以上面的测量任务为例,同样是对Source0、Source5、Source6(信号源特性见表1)进行测量,扫描序列为AI0->AI5->AI6,使用默认Convert Rate和手动Convert Rate的测量结果如下:
图8a. Source0(左)、Source5(中)、Source6(右)同时测量,采样率1000,DIFF,Convert Rate=默认
图8b. Source0(左)、Source5(中)、Source6(右)同时测量,采样率1000,DIFF,Convert Rate=3000
图8可见,手动设置Convert Rate后,Source5的测量结果得到了很大的改善。然而,此方法只适用于低每通道采样速率时,此时驱动程序默认为每通道扫描时加入10us,也就是Convert Rate = 最高采样速率/11us时;随着每通道采样率变高,Convert Rate将会等于每通道采样数*通道数,此方法不再适用。同时,此方法对测量结果的改善程度受限于采样速率,采样速率越低,每次采样过程扫描序列完成后剩余的时间也就越多,可以均分到各通道的用于电压建立的时间也就越多,测量值也就越准确。
需要注意的是,手动设置Convert Rate是要遵循如下公式:
AI convert Rate >= AI Sampling Rate * Number of Channels
To be h
相关链接:
附件:
报告日期: 08/30/2015
最近更新: 09/01/2015
文档编号: 70T77BMX
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.