一种采用AD2S1210实现LVDT到数字转换方法
2020-12-04陈大科
陈大科,颜 耀
(连云港杰瑞电子有限公司,江苏 连云港 222061)
0 引 言
旋转变压器和线性差动式位移传感器(LVDT)均是采用电磁感应原理实现角度和位置的测量,两者的主要区别是:旋转变压器的输出是一组幅值为sin/cos变换的信号,即信号电压的平方和是固定值;而LVDT传感器的输出是幅值为线性差分变化的信号[1],即信号电压的“和值”是固定值。
传统的LVDT到数字转换方式采用两步变换:首先通过AD698将LVDT的差分交流信号转换为直流信号,然后再通过A/D转换器转换为数字量。这种转换方法采用开环处理方式,抗干扰能力差。同时由于A/D转换器存在量化误差,当转换的数据不能精确地表示模拟信号时,会出现抖码(flickering)现象,即数据持续在±1bit之间切换,需要进行滤波处理[2]。旋转变压器到数字(R/D)转换的集成电路种类较多,有ADI公司的AD2S80、AD2S1210及多摩川AU6802等产品。其中AD2S1210的转换分辨率达到16位,具有可编程激励信号和串行数据接口,与同类电路相比,具有集成度高和外围电路简单的特点。
通过分析AD2S1210转换原理,推导出转换数据与LVDT位置量之间的三角函数关系,提出一种基于AD2S1210的LVDT信号到数字转换的方法。首先采用AD2S1210将LVDT信号转换为数字量,再通过FPGA对数字量进行三角函数变换,得到LVDT的位置量。由于AD2S1210内部的数字TypeⅡ型跟踪环路具有抗1LSB抖动电路,可以避免发生AD698转换电路中的抖码问题,因此,具有抗干扰能力强、精度高的优点。在机载设备中,AD2S1210已应用于的航向、航速系统的角度测量,本文的方法拓展了AD2S1210在机载驾驶杆、油门等位移信号的采集系统的应用。
1 LVDT传感器及R/D电路工作原理
两线式LVDT传感器的结构见图1(a),主要由两组线圈及一个可移动的铁心组成,通过铁心的移动,改变次级线圈的耦合输出信号电压[3]。输出信号见图1(b),其中机械零位(NULL)是指铁心处于中点位置,b是铁心最大位移值转换为对应的角度值。
图1 LVDT结构框图及输出信号
AD2S1210是一款专用的旋转变压器信号到数字转换电路,内部主要电路如图2所示。旋转变压器的模拟信号(sin、cos)经过Σ-Δ调制电路,产生1Bit的数据流信号。为了提高了转换精度,该数据流信号分别与正、余弦表中的数据相乘进行幅值调制,转换为16Bit的数字sinθ、cosθ信号。数字sinθ、cosθ信号与内部第二级积分器输出的数字角度信号φ,经过数字正/余弦乘法器及误差处理电路后,输出误差信号(e)为sin(θ-φ)。该误差信号经过相敏解调和积分后,形成新的数字角度φ,再反馈控制数字正/余弦乘法器,直到误差为0,实现旋转变压器信号到数字角度φ的转换。
图2 AD2S1210内部主要电路框图
AD2S1210内部包含两级积分器和补偿滤波器,因此整个电路构成一个TypeⅡ型跟踪环路。其特点是当输入信号以恒定速度变化时,跟踪转换的误差为零[4]。其中补偿滤波器由积分电路和微分电路级联方式实现,电路结构采用数据锁存延时和并行加法方式实现快速运算。例如,在12位分辨率下,补偿滤波器(C(z))为(1-az-1)/(1-bz-1),其中极点系数b为4085/4096,实现方式为锁存器的数据Y延时后与输入数据K并行相加:
(1)
由式(1)得到:
(2)
同时补偿滤波器的输出数据按比例反馈到第一级积分器中,通过1个LSB的迟滞,实现抗1LSB抖动。
由以上分析可以看出,LVDT输出信号电压的“差值”随LVDT的铁心位置呈线性变化[5],电压的“和值”是固定值。AD2S1210的输入是两路幅值呈正交关系的正弦、余弦变化信号[6]。因此,可以通过AD2S1210对LVDT信号转换,然后再通过三角函数换算,将AD2S1210的数据转换为LVDT的位置数据。
2 AD2S1210进行 LVDT信号转换方法
(3)
式中,ψ为LVDT传感器位置转换为对应的角度值,α为机械零位对应的值,k为比例系数。
(4)
调理后的信号如图3所示。
图3 LVDT调理信号
图3与图1(b)相比,信号变换范围为0到1 V,在机械零位(NULL)时电压为0.5 V。将式(4)中的VA作为AD2S1210的sinθ信号,VB作为cosθ信号。根据AD2S1210转换原理,输入的sinθ和cosθ信号,与内部环路中产生的数字角度φ的误差e为
e=sin(θ-φκ)=sinθcosφ-cosθsinφ
(5)
将式(4)代入式(5),得:
(6)
当转换结束时,误差信号e为0,而AD2S1210的转换结果为φ,因此由式(6)可以得到ψ为
(7)
即通过三角函数变换实现AD2S1210数据(数字角度φ)到LVDT的角度值(位置量ψ)转换。例如,当LVDT的位置在NULL点时,由图3可知,LVDT输出信号VA、VB为0.5 V,AD2S1210转换的结果(φ)为45°,由式(7)得LVDT传感器位置ψ为0°。设LVDT的测试范围等效为-90°~+90°,即b为90°,当采用13位偏移二进制数表示,机械零位为1000H,因此式(7)改为
(8)
当AD2S1210的转换分辨率设置为16位时,可以实现分辨率为13位LVDT转换。其中AD2S1210转换数据中的低14位数据用于转换为LVDT数据,最高两位数据作为溢出标志位。如图3所示,设定的LVDT传感器在测量范围为-b~+b内,输出VA、VB为0 V~1 V,当LVDT传感器超出设定测量范围时,如,当VA=1.05 V、VB=-0.05 V时,说明超过+b,并且对应AD2S1210转换的角度φ在第二象限。由式(6)得:
(9)
用二进制表示为0111 1101 1110 0111。其中最高两位为01,表示出现进位溢出。同样,当VA=-0.05 V、VB=1.05 V时,说明超过-b,并且φ在第四象限,角度为272.726°,用二进制表示为1100 0001 1011 0010。其中的高两位为11,表示出现借位溢出。
3 硬件电路实现
3.1 电路设计
LVDT到数字转换电路由三部分组成(见图4):信号调理、R/D转换及R/D数据到LVDT数据转换电路。
图4 LVDT到数字转换电路框图
图4中的R/D转换由AD2S1210实现,将调理电路的模拟信号转换为数字信号。同时,AD2S1210集成了频率可编程的正弦波激励信号源,可作为LVDT传感器的激励信号,简少了电路的外围元件。AD2S1210的分辨率、激励频率等参数配置可参考该芯片手册。由于FPGA能够并行地实现对AD2S1210配置和数据处理,硬件接口设置比DSP和MCU方便,电路中采用FPGA器件cyclone3 EP3C5M164I7实现AD2S1210数据到LVDT数据转换。该芯片具有400 k片上ROM,可采用查表或计算的方式实现数据转换。
3.2 数据转换方法
采用查表方式实现数据转换的方法较为简单,由图4看出,AD2S1210输出的低14位数据转换为LVDT的13位数据。 FPGA中查找表的设置为:输出数据宽度为13 bits,数据深度为16384。在ROM表中,输入(地址)是AD2S1210的转换结果φ,输出数据是按照(8)进行计算得到LVDT数据。用C语言生成mif文件的代码如下:
for(i=0;i<16384;i++)/*数据深度为16384*/
{ks=sin(3.141592*i/ 32768);
/*φ范围为0°~90°*/
kc=cos(3.141592*i/ 32768);
temp=(int)(((ks-kc)/(ks+kc)+1)*8192/2);
/*以十六进制输出地址和数据*/
fprintf(fp,“%x : %x; ”,i,temp);
}
采用cyclone3 EP3C5M164I7器件,生成的数据表占片内存储资源的54%。如果采用片上MEMORY存储资源较少的FPGA,可以采用如下的近似计算方式。首先计算转换数据φ在0到2047范围区间,即对应的角度(θ)在0°~11.25°范围内的正、余弦函数,近似计算方法如下:
(10)
其中系数B为20793,上述近似算法的正弦误差小于误差0.011°,余弦误差小于0.001°,能够保证转换精度。当数据φ大于2047时,即θ大于11.25°时,通过三角函数的和差变换计算sin(11.25°×N+θ)及cos(11.25°×N+θ),其中N为整数。因此需要预先计算sin(11.25°×N)、cos(11.25°×N)的值,再由AD2S1210数据φ的低11位(0°~11.25°范围),通过式(10)分别计算 cosφ和sinφ。最后,再通过式(8)计算LVDT的数值。采用cyclone3 EP3C5M164I7实现上述方法,约占用片上逻辑单元的64%。
4 试验结果
采用AD2S1210、cyclone3 EP3C5M164I7器件按图4搭建验证电路。LVDT传感器使用MEAS公司的R30A型传感器,其测角范围最大为-60°到+60°,线性度2%。设置AD2S1210产生2.5 kHz的激励信号,并将R30A传感器的位置信号转换为数字量,同时采用北大西洋公司生产的专用的LVDT/RDVT测试仪的测量值作为理论值。测试结果如表1所示。
表1 LVDT转换测量值
在表1中, 转换电路产生的LVDT数据的分辨率为13位,AD2S1210的最高两位数据作为LVDT的溢出标志位。由表1可以看出,转换误差在2个LSB以内,可以计算出转换的线性度为0.2‰,满足传感器的测试要求。目前常用的由AD698与A/D转换组合的LVDT信号到数字转换电路[7],转换的线性度达到0.5‰。并且本文的电路比AD698电路需要的元件少,电路调试简单,转换数据稳定。
5 结 语
目前LVDT信号到数字转换的专用解码芯片品种较少,并且外围电路复杂、抗干扰能力差。本文采用通用的R/D转换器AD2S1210和FPGA设计了一种LVDT到数字转换电路,其中AD2S1210的转换数据到LVDT数据的三角函数变换由FPGA实现。因此,本文的方法是一种数字解算方式的LVDT到数字转换,具有转换精度高、抗干扰能力强及电路结构简单的特点。
文中介绍了转换电路原理和设计方法,给出了查找表数据处理方式及近似计算方式的AD2S1210数据到LVDT数据转换方法和程序代码。试验结果表明,本文设计的LVDT到数字转换电路,在转换精度、线性度方面优于目前常用的AD698与A/D组合的转换方法。