张娇
(西安石油大学光电油气测井与检测教育部重点实验室,陕西西安,710065)
移相器是一种用于改变信号的相位的器件,用于产生与输入信号存在相位差的同频信号,是相位计量,测试中常用仪器之一,广泛应用于航空、电网、通讯和仪表测量等方向[1]。不仅仅如此,在某些测量与控制电路中,也需要用到同频率而相位不一样的信号,以适应测量及控制的需要。本文提出了一种操作简单方便,可根据需要手动连续可变的数字移相器。采用了片上资源丰富的STM32F407作为主控单片机,可大大节省外部硬件连接,节约了成本,具有发展前景。
本系统组成主要分为3个部分,主控芯片STM32F407,4.3寸LCD显示屏,EC11回转编码器。整个系统的工作流程是由STM32F407的ADC采集外部信号,然后将信号数据存储至数据缓冲区,其中数据存储的过程采用的是ADC触发DMA的方式,即用ADC每次采集数据以后触发DMA,直接将数据送至缓冲区,并没有经过CPU处理,通过这种方式直接提高了系统的工作效率[2]。系统组成框图如图1所示。
在本设计中,首先由STM32F407内部ADC获取外部信号,然后将获取到的信号通过DMA送至数据缓冲区,在本次设计中,数据缓冲区的长度为4000,要发送的数据指针始终指向数据的原始序列的中位值,之后再将原始数据送至STM32F407内部DAC,由DAC输出移相信号。需要将信号左右移位的时候,只需要根据回转编码器的信号改变数据缓冲区的数据指针位置即可。这种移相方式的优点是实现简单,不需要过多的硬件[3]。
图1 数字移相器系统组成
移相的原理是对信号进行采样,把采样点存放在缓冲器中,当脉冲到来时,输出的采样点是当前时刻对应的前一个或者后一个采样点,从而达到移相的目的[4]。移相器主要由EC11回转型编码器和STM32F407芯片组成。信号输入到移相器中,顺时针和逆时针转动EC11回转型编码器便可改变输入波形的相位来移相。硬件电路如图2所示。
图2 系统的硬件电路
EC11编码器的A和B引脚需要外接两个10K的电阻作为上拉电阻给这两个引脚提供高电平,它的C引脚和E引脚接低电平,那么在旋转旋钮的时候就会产生脉冲来保证信号可以实现的相位调节。
整个系统软件的执行过程为:首先,对整个系统进行初始化,包括ADC,DMA,DAC,定时器,LCD显示屏等。初始化完成之后再在LCD显示屏上设置ADC采样频率。之后由ADC把信号采样数据通过DMA存至缓冲队列,在ADC的转换过程中,根据回转编码器的移相信号,DAC输出数据队列中的值,完成数字移相器的实现。系统软件流程图3如图所示。
整个数字移相器的关键就在于EC11回转编码器。EC11回转编码器是由一个中心有轴的光电码盘,其上有环形通和暗的刻线,有光电发射和接纳器件读取,取得四组正弦波信号组合成A、B、C、D,每个正弦波信号相差相位差,本设计只采样了A,B两路信号,将C信号作为了参考信号,叠加在A、B两相上。由于A、B亮相相差,能够经过比拟A相在前还是B相在前,借此判别编码器的正转和反转。经过编码器的正转和反转不同可以得到不同的脉冲,如表1所示。
本设计提出的基于STM32F407单片机可程控的数字移相器,采用回转编码器调整移相角度,数据采集和信号输出均利用STM32F407的片上A/D和D/A,可以节省成本。同时利用DMA存储数据,节省了CPU占用,提高了系统的工作效率。
图3 软件流程图
表1 输出脉冲与旋转方向的关系
参考文献
[1]孟献仪,杨朔.基于STC89C52的程控移相器的设计[J].电子制作,2016(23):11-13.
[2]叶爱华,赵明镜,程宜凡.基于单片机的数字移相技术[J].科技广场,2004(08):61-62.
[3]沈维聪,刘义菊.数字移相技术的分析和实现[J].电子产品世界,2001(10):38-39.
[4]邹立华,赵巍.基于单片机控制的数字移相器设计[J].自动化与仪器仪表,2003(03):46-47,49.