在全国大学生智能车竞赛中,有组别是通过电磁导航完成赛道循迹。今年(第十五届)有增加了通过 人工智能完成电磁 导航的组别。这些组别的基础都需要能够对由工字型电感所检测到赛道交变磁场信号进行精确测量。虽然磁场有可能会受到各种环境 磁场屏蔽 的影响,发生变化,或者由 信号发生器的原因引起磁场变化 ,但对检测到的交流磁场信号进行精密幅度测量是为后面应用打下基础。
在之前,通过博文讨论了一些检测20kHz交流磁场信号幅值的方法,包括:
灵活高效的电磁信号的检测方法,可以提高实际工程应用中的 电磁定位 的精度。
本文提到的 TPF111 芯片原本是是一款专门针对消费类应用而设计的低成本视频重构滤波器。它本身是对输入信号进行2倍(6dB)的视频放大的功能。如果通过电容耦合,可以实现对信号钳位的功能,也就是能够将信号的最低值进行钳位到200mV左右。利用这个特点,可以实现对于输入交流信号的幅值的测量。
下图是TPF111内部对输入信号中视频同步(行同步、场同步)电平(信号的最低电平)进行钳位的结构示意。如果输出信号通过电容耦合到输入端,那么有内部的电平比较和MOS管放电回路的作用,会使得信号的最低电平维持在一个固定的电位上。
▲ TPF111同步头钳位电路
如果输入是一个正弦信号。它的最低电平被维持在Vclamp上,那么输出电压的平均值就等于E+Vclamp。因此由输出信号的直流分量,减去固定的Vclamp,就可以得到对应信号的幅度E的大小。这就是TPF111完成正弦信号检波的基本原理。
▲ 信号底部钳位之后对应的直流分量
关于TPF111的基本功能实验可以参考博文: TPF111视频信号放大器研究 中的结果。
为了验证TPF111的上述对正弦信号幅度检波的效果,需要建立一个幅值可以通过程序控制的20kHz交流信号源。这样可以测量TPF111检波的输入输出之间的关系。
在之前的博文中,给出了一些基本的交流信号源的实现方法,主要包括:
(1)使用交流信号源。在一般的交流信号源设备中,都具有对输出信号幅度控制的功能。比如在 如何使用万用表测量随机噪声 介绍的 DS345信号源。但是这类信号源改变输出幅值缺少外部编程接口。
(2)使用机械变阻器。当然,普通的电位器可以改变信号的幅值,但同样缺少可编程接口。在博文 机械变阻器 中介绍了使用步进电机控制电位器的方式。但这种方法只能是大体给出信号变化的方向,缺少精确设定的方法。
(3)使用数字电位器。在之前的博文 X9C102,X9C103, X9C104 以及 AD5272数字变阻器 中介绍了两类数字电位器、变阻器。但由于寄生电容的影响,使得这类器件对于信号的频率有限制。
(4)使用DAC来改变交流信号的幅值。本实验中的20kHz交流信号源借用了在博文 DAC8830可以当做电位器来使用吗? 所给出的方法。
▲ 多种电解电容的极性标示
直接使用DAC8830改变交流信号的幅值,由于DAC8830输出阻抗的影响,还需要外部增加运放来提高DAC8830输出带负载的能力。下面使用 OPA4377 作为DAC8830 输出缓冲,便可以带动后面的各种对交流输出信号的检波负载。
▲ 基于DAC8830的可变幅值信号源实验电路板
stm32cmd(‘set 7fff’)
下面是使用DAC8830所获得的输出幅值可调的20kHz的信号源。它的输出有OPA4377进行缓冲,提高了带负载的能力。
▲ 利用DAC8830输出不同幅度的交流信号
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY -- by Dr. ZhuoQing 2020-06-20
#
# Note:
#============================================================
from headm import *
from tsmodule.tsvisa import *
from tsmodule.tsstm32 import *
#------------------------------------------------------------
gifid = 5
#------------------------------------------------------------
printf(meterval())
tspgiffirst(gifid)
step = 100
for i in range(step):
setnum = int(0xffff * i / step)
stm32cmd('set %x'%setnum)
time.sleep(.2)
tspgifappend(gifid)
printf('\a')
#------------------------------------------------------------
# END OF FILE : TEST1.PY
#============================================================
下面三张图分别显示了DAC8830设定数值与输出交流信号实测幅值之间的关系。可以看到在大范围、小范围,设定数值与输出电压幅值之间具有线性关系。只是在数值比较小的时候,输出交流信号幅值会有一定的波动和非线性。
▲ 设置数值与输出交流信号电压
▲ 设置数值与输出交流信号电压
▲ 设置数值与输出交流信号电压
利用TPF111U设计带有电容耦合的放大电路,如下图所示。可以看到TPF111封装很小,这就减少了检波方案所占用的电路板的尺寸。
▲ 实验TPF111U原理图和实验电路板
注意: TPF111U的封装是SC70
下图显示了输入信号与TPF111输出信号之间的关系。可以看到输出信号是对输入信号进行了两倍(6dB)的放大。而且输出信号的最低值在这个过程中都基本上维持不变,表明了TPF111对于最低点为的钳位功能。
当输入信号的幅度超过的TPF111工作电压的一半的时候,输出信号就会出现饱和失真。
▲ TPF111U输出与输入信号之间的关系
当输入交流信号为0:V时,TPF111输出的偏置电压为:0.437V。这就是Vclamp。
下面通过DAC8830加入信号幅度可变的20kHz交变信号。通过万用电压的直流档测量TPF111的输出直流分量。下图显示了输入交流信号的有效值与输出信号直流分量之间的关系。
输入信号有效值小杨说0.85V时,输出与输入之间基本上呈现线性关系。当输入信号超过0.85V,输出电压变缓,这是由于输入信号峰值过大,使得TPF111出现饱和造成的。
▲ 输入交流信号与TPF111U输出直流信号之间的关系
下面将输入信号小于0.5V时,输入输出之间的关系绘制出来,可以看到输出的电压基本上与输入之间呈现增量线性的关系。消除了使用二极管进行检波时的死区的影响。
▲ 输入交流信号与TPF111U输出直流信号之间的关系
对于信号小于0.05V的时候,信号输出呈现比较缓慢的趋势。下面对于信号小杨说0.01V时的曲线进行放大。可以看到,虽然这部分的信号呈现更多的非线性,但仍然没有明显的死区。这就表明使用TPF111检波有更强的灵敏性。
▲ 输入交流信号与TPF111U输出直流信号之间的关系
TPF111原本是用于视频放大的电路,本文探讨了利用它的低电平钳位功能来对输入正弦交流信号进行检波。通过实际信号的测量,表明使用TPF111输出的直流分量来检测输入正弦波的幅值,基本上没有死区的影响,检波灵敏度很高。在高频检波 博文中介绍使用单电源运放LMV321进行半波放大来进行检波,相比之下使用TPF111检波有着更大的线性范围。
由于TPF111的输出有一个固定的直流分量,所以需要预先采集保存这个直流电压数值。在最终的测量结果中将该分量减除,才能够获得与输入交流信号幅值成正比的幅值信息。