【电路“芯”说】单片机ADC扩展
早在几天前,我写了一篇关于单片机IO口扩展的文章,接着有网友和我来讨论关于ADC扩展的问题了,关于这个问题,这篇文章有详细的讨论。单片机ADC为何要扩展现在的主流MCU都内置了不止一个多通道的ADC,可以满足我们平时的简单应用,这些简单应用是指应用在一些对模拟量采集速度不高,精度能接受的场合下。但是对于一些高精度,高速度的情况下,外置的专用ADC芯片仍然是我们必须要选择的,哪怕以很高的金钱成本为代价。这些高速,高精度的外置ADC由于某些原因,内部的通道很少,因此如何去尽可能地使用这些宝贵的资源对我们来说确实是一个问题。需要采集多路高精度低速信号如果你使用外置ADC的目的仅仅是为了获得一个高精度的采样值,而对采样的速度要求不是很高的话,用继电器进行多路切换那是一个很明智的选择。比如,当你需要去监控多路温度的时候,由于温度终端采集对象的温度范围不确定,有可能到200多摄氏度,而且被采集温度处的接触面积有限,因此只能选用热电偶传感器做终端的传感器,因为热电偶传感器触电面积小,测温范围广,很适合上述要求。
那此时热电偶冷端的电信号采集就可以使用这种方案来做了,比如安捷伦数据采集器温度采集卡就是使用了上述的原理。
它将很多的测温线全部接入温度采集卡里面,而温度采集卡里面的ADC通道数量有限(一片四路的高精度ADC),而所接入的温度传感器热电偶线却有40根,对于这种应用,它将每根热电偶接入后先做模拟前置处理,然后将处理完成的信号接入到一个继电器上面,示意图如下。
具体工作流程是,先用逻辑选通电路打开第一路继电器,此时CH1的传感器信号经过模拟电路处理完成之后的电压通过继电器的选通就输入到了ADC_Chanel1进行AD转换,转换完成的电压存储下来。紧接着断开第一路继电器,打开第二路继电器,此时CH2的传感器信号经过模拟电路处理完成之后的电压经过第二路继电器输入到了ADC_Chanel1进行AD转换。循环此步骤,直到这10个通道全部循环一遍,第一轮AD采样就全部完成。接着再循环往复第二轮第三轮。因此当你在使用这个温度采集卡的时候,你会发现其内部的继电器“嗒嗒嗒”打开关闭的声音。这种方式的好处就是当你有一片高精度ADC需要采集多个通道的低速信号的时候很有用,电路结构简单,继电器价格低廉,电路板设计也没有难度。缺点就是由于继电器内部归根到底是机械部件在运动,因此使用寿命有限。模拟选通开关在面对一些高速的多路通道模拟电压采集时,以上的继电器方式显然不适用了,因为继电器切换的速度根本就无法满足模拟通道的切换速度。因此我们需要选用一些模拟通道切换速度更快的器件,而这个器件的最好选择就是双电压模拟开关。常用的型号有ADG509,但是这个芯片即将停产,因此取代的型号有ADGS1414D。ADGS1414D是一颗高速的模拟电压开关,其最大带宽可达150MHz。包含八个独立的单刀单掷开关。这些开关由一个串行外设接口 (SPI) 控制。SPI 具备可靠的错误检测功能,例如循环冗余校验码 (CRC) 错误检测、无效读/写地址检测以及 (SCLK) 计数错误检测。通过菊链模式可将多个 ADGS1414D 套件连接在一起。菊链模式可用最少数量的数字走线实现多套件配置。通过 ADGS1414D 的数字信号和电源路由可进一步提高通道密度。集成的无源组件消除了对外部无源组件的需求。ADGS1414D 适用于高密度开关应用,例如大型开关矩阵和扇出应用。在接通时,各个开关在两个方向上具有同等的传导性能,并且其输入信号范围可扩展至电源电压的水平。在断开状态下,达到电源电压水平的信号电平将被阻止。多功能引脚名称只能供其相关功能引用。
如果仅仅做一些对触发要求不高的多路高速电压信号采集时,只需要用这个芯片替换上述的继电器组即可实现要求。
采样保持器加模拟开关但是,有一些应用对于多路模拟信号的采集有同时采样的要求,那么上述的两种方案就都无法满足了。在很多的应用中,对于AD采样的需求是“多路同一时刻采样”。比如在做PMSM控制时的FOC算法,需要同时采集电机的电流电压,再如我做的微波行业,需要同一时刻去采集前向波和反向波检波后的包络信号,这种应用中,对同一时刻这个触发要求是很高的。比如,我们需要采集同一时刻微波的前向波和反向波包络时,其波形图如下所示:
为了应对以上的要求,必须在多路模拟开关之前对每一路信号增加一个采样保持器。采样-保持器(Sample/Hold)是能够完成以下任务的器件,简写为S/H。如果直接将模拟量送入AD转换器进行转换,则应考虑到任何一种AD 转换器都需要用一定的时间来完成量化及编码的操作。在转换过程中,如果模拟量产生变化,将直接影响转换精度。特别是在同步系统中,几个并联的参量需取自同一瞬时,而各参数的AD 转换又共享个芯片,所得到的几个量就不是同一时刻的值,无法进行计算和比较。所以要求输入到A/D 转换器的模拟量在整个转换过程中保持不变,但转换之后,又要求A/D 转换器的输入信号能够跟随模拟量变化。常用的采样保持器有AD783,它是一款高速单芯片采样保持放大器(SHA),0.01%采集时间典型值为250 ns。其保持模式总谐波失真经过全面测试,输入频率最高达100 kHz。AD783配置为单位增益放大器,并采用已获专利的自校正架构,能够将保持模式误差降至最小,并确保器件整个温度范围内都能提供高精度。该器件独立自足,无需外部器件或调整。
因此,对于同时采样要求比较高的时候,我们可以用下面的多路AD采样。
当采样保持信号到来时,采样保持器SH1的输入信号和SH2的输入信号都会被保持住,然后再去依次选通ADGS1414D的通道1和通道2进行AD转换,依次往复即可。当然上述的采样保持器的价格非常高,可以抵得上一片AD7606的价格了,使用时候要慎重。