历史上的今天
今天是:2025年02月18日(星期二)
2020年02月18日 | 基于ATmega16的数字旋转变压器设计
2020-02-18 来源:eefocus
0 引言
在工业自动化领域中,经常要对被控对象的角位移进行测量并加以控制。这些领域中使用的传感器件主要是旋转变压器(简称旋变)。在自动化测试中,对旋变解码器的测试往往需要用到复杂而昂贵的测试设备。这些设备往往体积大,成本高。设计了一种以ATmega16为核心的数字旋变,既能满足旋变解码器测试的需要,又具备体积小,成本低的优点。实现对旋转变压器的仿真。
1 旋转变压器工作原理
旋转变压器也是一种变压器。和普通变压器不同,旋变的原边与副边的比例不是固定的,因此输出的电压比也不是常数。旋变是一种输出电压随转子转角变化的信号元件。当励磁绕组以一定频率的交流电压励磁时,输出绕组的电压幅值与转子转角成正余弦函数关系,或保持某一比例关系,或在一定转角范围内与转角成线性关系。旋转变压器的电气示意图如图1所示。

旋变的输入输出电压之间的有一定的函数关系。设旋变的激励频率为fsourse,激励的幅度为E。则激励信号电压随时间变化可以表示为:
通过检测这两组输出信号,解码器可以计算出旋变的位置信息。
2 系统硬件设计
系统主要由电源、单片机控制电路、数字可变电阻、调理电路、通信电路和反相电路构成。数字旋变原理如图2所示。当数字可变电阻在0~20 kΩ之间变化时,经过反相电路和调理电路,数字旋变输出与激励频率相同的正弦信号和余弦信号,进而把产生的信号提供给旋变解算单元。

当通信电路收到上位机数据时,单片机通过解析上位机的数据,分别设定两组数字可变电阻。激励信号经过数字可变电阻的分压后,得到了初步的处理,幅值产生了变化。单片机ATmega16通过判断要设定的角度是在哪个象限,决定是否对正弦信号或余弦信号进行反相。最后经过信号调理电路输出到解算系统。调理电路用于提高数字旋变的输出阻抗。
2.1 数字可变电阻的控制
AD5293是一种单通道,分辨率可达10 b的数字可变电阻。也就是说其电阻精度R0可达到:
R0=Rmax/1024
式中Rmax为AD5293的可调范围。AD5293的功能框图如图3所示。

其中VLOGIC连接控制电路的逻辑电平“1”,SCLK,SYNC,DIN,SDO和RDY为通信接口,本系统用ATmega16的SPI接口与之通信,对AD5293进行初始化和设置。ATmega16与AD5293的通信采用DAISY-CHAIN控制方式。采用这种方式可同时设置两个AD5293。DAISY-CHAIN连接方式如图4所示。
当采用DAISY-GHAIN控制方式时,串联起来的AD5293连到ATmega16的SPI总线。ATmega16通过SPI总线设置32位的移位寄存器,前16位用来设定U2,后16位用来设定U1,从而达到同时控制两个数字可变电阻的目的。在移位寄存器中的数据完全移出ATmega16前,必须保持
信号为低电平,移出后需要把该信号再拉高,以完成一次数据的传输。
数字可变电阻AD5293的A端和B端为数字电阻的固定端,W端为滑动端。在A端和B端加激励电压后,B端和W端就能输出与激励频率相同的正余弦信号。控制W端从而调节输出信号的幅值。AD5293外围电路如图5所示。

旋变一般都有变压比。系统模拟的旋变的变压比Q=0.5。为提高数字旋变的设定精度,在数字可变电阻前端串联一个20 kΩ的高精度电阻R29,从而使数字可变电阻的设定范围为0.20 kΩ,而不是可变范围的一半。根据实际模拟的旋变的变压比不同,可以串联其他阻值的高精度电阻,从而使数字可变电阻的可调范围为0~20 kΩ,以提高输出精度。
假设数字可变电阻的可调范围为Rmax,则串联的高精度电阻Rcon与变压比Q的关系为:
Rcon=Rmax/Q-Rmax
2.2 反相电路的设计
反相电路的设计采用模拟开关ADG1213,通过不同的开关组合,可以输出4种不同象限的正余弦信号。从而使数字旋变的仿真范围不局限于某个象限。正弦反相电路的原理图如图6所示。

其中XB_SIN1,SGND是经过数字可变电阻分压得到的模拟信号。1_Uisin1,1_Uisin2反相电路输出到调理电路的信号。AD1213的VSS接到数字旋变的-9 V电源,VDD接+9 V电源,从而保证只要通过的信号在-9~9 V范围之间,就不会被模拟开关“截断”。
当信号1_CTRL1为逻辑高电平时,D1,S1导通,D4,S4导通;当信号1_CTRL1为逻辑低电平时,D3,S3导通,D2,S2导通。
反相电路的输入输出如表1所示。

因此通过控制1_CTRL1信号的高低电平,即可达到输出信号反相的目的,余弦信号的反相与正弦类似。
3 系统软件设计
本系统所用的单片为ATmega16,该款单片机是一款高性能、低功耗的8位AVR徽处理器,性能优越。采用C语言编写单片机的控制程序,程序流程图如图7所示。

4 结语
根据旋转变压器的原理,从硬件和软件两个方面介绍了基于ATmega16单片机和AD5293数字可变电阻的数字旋变的设计方案。为了提高输出精度,在可变电阻硬件电路中,加入了高精度电阻,解决了因变压比引起的数字可变电阻不能使用全量程的问题。通过实际试验验证,该系统适用于旋变的仿真和解码器的自动化测试。
史海拾趣
|
在做2.4G射频识别时,发现有源射频识别系统的角度很难控制,尤其当标签距离识别设备小于10米时,角度基本上都是360。 在网上看到有些高人说,射频角度可以控制在15°...有谁有这方面的经验没有?如何有效控制有源射频的识别角度。 我的想法是这样 ...… 查看全部问答> |
|
向大家请教个问题:默认情况下,4G的内存,核心内存和用户态内存分别是2G,现在我写了一个驱动,需要更多的核心内存,因此想把核心内存调整的大些,应该如何做到呢? 另外,我还有个机器是8G内存,跑wxp64位系统,也想调整核心内存更 ...… 查看全部问答> |
|
将手机和PC机用USB相连: 当先将未开机的手机用USB线连到PC上,再打开手机时,从PC上向手机发送AT指令,手机能向PC返回OK;可是当先将手机开机,再将手机用USB线连接到PC机时,从PC上向手机发送AT指令,手机却不能向PC返回任何东西。不知以上是什么 ...… 查看全部问答> |
|
请问ioctl返回的地址是虚拟地址还是物理地址? 小弟在做dm6446上的resize,用ioctl返回的resize驱动中申请的buffer的地址是在用户空间是不能用的? 大家指教。 ioctl返回的地址问题?初学者,高人指点。… 查看全部问答> |
|
在platform Builder 5.0 下怎么用activesync和PDA相连 请教各位,我现在用platform builder 5.0编程,之后想在PDA上面运行。 PDA是用usb直接联在pc上面。 可是不知道怎么在 platform builder 修改环境,让它通过activesync之后 在pda上面运行。 请大家帮帮我 … 查看全部问答> |
|
data verification failed at address 0x0 ? 本帖最后由 dontium 于 2015-1-23 12:45 编辑 仿真器连接正常,我用了光盘里的一个例子,编译好后下载.out程序时出现 data verification failed at address 0x0, please verify target memoty and memory map 以上错误,请问这是什么原因,我用的 ...… 查看全部问答> |




