- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于FPGA的双通道旋转变压器测角系统
0引言
旋转变压器是一种电磁感应式传感器,用来测量旋转物体的转轴角位移和角速度,它由定子和转子组成。其中定子绕组作为变压器的原边,接受励磁电压,转子绕组作为变压器的副边,通过电磁耦合得到感应电压。为了提高测量精度,采用双通道旋转变压器。双通道旋转变压器采用单相定子激磁、两相定子感应输出。在激磁绕组加上激磁电压Uref后,在粗轴的定子绕组中感应出正余弦电压Uc_sin,Uc_cos,在精轴的定子绕组中也感应出正余弦电压Uf_sin,Uf_cos。
AD2S82A和AD2S80A是美国模拟器件公司(ANALOG Devices Inc)生产的分解器数字转换器(简称RDC)。AD2S8X系列RDC可将转角转换成与转角成比例的数字量,它实质上是一种特殊的模数转换器。
AD2S82A和AD2S80A都属于AD2S8X系列中的产品,是一种单片式、分辨率可变RDC。在制造过程中它采用BiMOS工艺,使用双极性高精度线性电路,因此具有精度高、性能稳定及可靠性高等特点。
FPGA是可编程逻辑器件(PLD)的第四代产品,内部具有独立的I/O接口和逻辑单元CLB。使用灵活,适用性强,特别适用于复杂逻辑的设计,FPGA芯片是系统提高系统集成度和可靠性的最佳选择之一。
1 总体设计方案
系统总体框图如图1所示,采用集成芯片AD2S82A和AD2S80A,分别作为旋转变压器粗码盘和精码盘输出信号的解码器,将旋转变压器输出的模拟量转换成与之对应的数字量。然后将它们送入FPGA中进行误差补偿和数据组合,再在FPGA中对误差补偿后的二进制角度值,通过分段查表转换为以度分秒显示的角度值。
2 硬件电路设计
2.1 硬件电路框图
该硬件电路框图如图2所示,FPGA芯片作为系统的设计核心,对其他电路模块进行控制,同时在FPGA中实现误差补偿和数据组合和角度转换。
2.2 驱动及A/D转换模块
驱动电路主要采用集成芯片MAX038CPP,用其来产生正弦波,由于该正弦波电流很小,不能用其直接驱动旋转变压器,还要对其进行功率放大。功率放大电路主要采用集成芯片OPA541AM。
把驱动电路产生的正弦波作为双通道旋转变压器的激励信号,加到其定子绕组上,于是在其粗通道转子绕组上产生正弦波和余弦波,将它们送入AD2S82A,对其进行解码。同时,将旋转变压器精通道转子绕组产生的正弦波和余弦波送入AD2S80A,也进行解码。
通过AD2S82A和AD2S80A的片选端口,可以选择它们各自的分辨率10 b,12 b,14 b,16 b,与其对应的最高跟踪速度为1 040 r/s,260 r/s,65 r/s,16 125 r/s。由于它们将旋转变压器式信号转换成自然二进制代码,是采用一种比率式跟踪方法,输出数字角只与输入正余弦信号的比值有关,而与绝对值无关,因此具有较高的噪音抑制能力,可以减小旋转变压器远距离传输带来的误差。这里AD2S82A和AD2S-SOA都选择12位输出。
当AD2S82A和AD2S80A正处于运算过程当中时,会在它们各自的BUSY端口,产生一个繁忙信号。用FPGA对这两个繁忙信号进行检测,当两芯片有一块处在运算过程当中时,FPGA发出一个禁止信号,送入AD2S82A和AD2S80A各自的INHIBIT端口,禁止这时读取两芯片的转换数据。这样即能使两芯片工作同步,又能防止误读转换结果。
2.3 FPGA误差补偿和数据组合模块
当双通道旋转变压器粗码盘和精码盘的极数比值为1:32时,旋转变压器旋转1圈,这时粗轴相当于转了1圈,而精轴相当于旋转了32圈,也即粗轴旋转1圈相当于转过360°,而精轴旋转1圈只转过了11.25°(360°/32)。所以,精轴解码后的数字角最高位Q1代表5.625°(11.25°/2),相当于粗轴的P6位。解码后的粗轴和精轴各个位的权重如表1所示。
来源:维库开发网 [p]
由于粗轴的后几位肯定不如放大32倍之后的精轴的数字准确,所以粗精数字角组合的原则是,粗精轴都输出12位数字角,但粗轴只取高5位(P1~P5),而精轴取全12位(Q1~Q12)。
由于旋转变压器在转动时,粗码盘和精码盘之间存在各种各样的误差,粗精通道对应位可能不同是变化。即存在粗通道数据变化后,精通道对应位的数据还没有变化,同样也存在精通道数据变化,而粗通道对应位的数据还没有变化,因此还要对解码后的数据进行误差补偿。
通过表1可以看出,粗通道和精通道对应的位只有P6和Q1,它们都代表5°37’30"。当P6和Q1变化不同步时,就要进行误差补偿。采用VHDL语言编写误差补偿模块,在FPGA中实现误差补偿,其程序流程图如图3所示。
2.4 角度值转换模块
误差补偿后的角度值,是以二进制显示的角度,即如表1所示的R1~R17,不同的位代表的角度值不同。为了方便显示和后续电路运算,还要对二进制角度值进行转换,将其转换为以度分秒显示的角度值。直接按各个位的权重进行转换,涉及到多次乘法和除法运算,影响整个电路的速度。通过查表可以避开免乘法和除法运算,但是直接查表需要很大的ROM空间,这里采用分段查表法,把误差补偿后的数据分成整度数的位R1~R3和带分秒的位R4~R17,其中R4~R17按度分秒分别进行查表,再将查到的整度数和R1~R3查到的整度数做加法运算。这样可以将ROM空间减小到原来的大约1/8。
3 仿真验证
现将误差补偿、数据组合、角度转换3个模块进行仿真。仿真是基于Altera公司的EP2C35F484C6型FGPA,仿真中建立了3种情况的测试平台,仿真结果如图4所示。
仿真的时钟周期为10 nS,dbl~dbl8为FPGA的输入信号,其中dbl为最高位。db的高6位dbl~db6为AD2S82A的输出(P1~P6),db的其他位db7~dbl8为AD2S80A的输出(Ql~Q12),db_outl~db_out17为误差补偿后的数据,再用db_outl~db_outl7去分段查表。图4中deg为度数输出,min为分数输出,sec为秒数输出。
从仿真结果可以看出,当db6(P5)和db7(Q1)不同时,就要进行误差补偿。误差补偿后的数据再通过分段查表,就可以得到正确的以度分秒显示的角度值。
4 结语
提出并建立了一种基于FPGA的双通道旋转变压器测角系统。该方案的主要特点是充分利用了FPGA丰富的硬件资源,将复杂的数学运算和控制运算用硬件来实现,大大提高了转换的速率和整个系统的稳定性。该方案也可以轻松地移植到更多极对数的旋转变压器或感应同步器上,可进一步提高转换的精度。