基于单片机的专用信号发生器设计与应用

2019-04-15 17:38发布

一 前 言本文引用地址: http://www.21ic.com/app/mcu/201203/112517.htm在简易制导武器中,角位移传感器是姿态修正系统的敏感元件,用来测量弹体的角运动参数并以电信号形式给出三个信息。其中输出两路幅值相等相位相差90°的正弦信号作为弹体偏转测量的基准信号;另一路输出测角信号,该信号相对基准信号的相位反映角偏差的方向、幅值反映角偏差量。专用信号发生器就是模拟角位移输出信号的装置,用来进行后续解调电路以及功放电路的检测。它以单片机为核心,经过D/A转换和放大电路的处理,最后输出反应弹体姿态的基准信号和测角信号。二 数学模型的建立根据对输出信号性能指标的要求,基准信号幅值:A, 基准信号频率:f ,假设对A的精度要求为±0.01V,对f的要求为±10Hz,输出信号为正弦信号,可以建立模拟基准信号的数学表达式如下:25.gif其中幅值的大小可以通过放大电路部分进行调节。测角信号实时反映弹体的姿态,根据检测需要和角位移传感器的结构可以建立这一特定的Uc数学表达式为:26.gif其中幅值的大小可以通过放大电路进行调节,相角Ψ反映偏差的方向。三 方案设计信号发生器的设计任务就是产生三路信号,并且提供和主机通讯的软硬件接口。首先根据输出信号的频率和幅值进行编码,存储在单片机的ROM里,然后以一定的时间间隔依次将这些数字量送往 D/A进行转换输出,这样,只要循环不已的送数,在D/A的双极性输出端就可以得到信号波形。信号的输出时序受上位机控制。本设计采用AT89C4051组成一个最小的单片机系统。AT89C4051是Atmel公司的一款基于MSC51 内核的简化单片机,指令与标准的51单片机兼容,带有4K可重新编程片上程序存储器,128B的数据存储器,多达15条可编程I/O线,两个16位定时器 /计数器,片上模拟比较器,一个标准串行通讯口,内部带有振荡器和时钟电路。系统的硬件结构图如图1。27.gif
图1  硬件结构图3.1 时钟复位电路设计采用单片机片内的振荡器、上电复位和外部硬件看门狗电路。看门狗采用MAXIM公司的MAX706芯片,硬件电路如图2。 MAX706可以提供至少200ms宽度的复位脉冲,为使看门狗溢出有效必须把MAX706的WDO和MR连接起来,看门狗输入WDI连接4051的任何一个I/O端口都可。MAX706在程序运行期间监控整个系统的运行,喂狗程序必须在1.6秒之内使WDI引脚电平发生改变,否则MAX706将发出复位指令,使整个系统复位,看门狗时序如图3所示。 28.jpg3.2 单片机与D/A的接口电路设计D/A选用AD公司的AD7226。AD7226是具有8位精度的四通道D/A转换器,最小分辨电压约为4mV,可以满足设计的精度要求。每个通道都有一个输入锁存器,可以对输入的数字量进行锁存;输出端带有输出缓冲放大器。AD7226有一条写入控制线WR,两条地址线A0、A1,通过地址线可以选择不同的D/A转换通道。写入时序如图4所示。

29.jpg由于4051没有专门的地址和读写控制引脚,此处可以通过普通的I/O引脚参考AD7226的写入时序,利用软件进行时序模拟。可以通过改变延时的时间来改变输出的频率。图5是利用4051的P3.0、P3.1口作为A0、A1的地址线,P3.5作为WR的写入控制线的硬件参考电路,相应的示例程序如下:
     ……..       
    MOV  P1, A         ;P1口置数               
    MOV  P3, #0FCH    ;选择通道A       
    CLR   P3.5         ;置P3.5 低电平  
    SETB  P3.5         ;置P3.5 高电平,上升沿锁存数据
    LCALL  DELAY     ;调用延时子程序
     ……..31.gif
图5   单片机与D/A接口电路3.3 偏移电路设计AD7226的每一个通道都可以单独用来提供单极性或双极性的输出,要获得双极性的输出必须外加运算放大器和偏移电阻,输出电压的范围取决于参考电压的大小,如图6是在单极性电源供电情况下的双极性输出电路图,要注意偏移电阻的阻值匹配。32.gif
图6  AD7226双极性输出电路3.4 放大电路设计放大电路主要是对AD7226输出的双极性电压信号幅值进行处理,以达到使用的要求。放大电路的输入极增加一个一阶低通滤波器,以防止D/A输出的高频成分干扰;采用低频运放作为射随器以提高输入阻抗。放大电路部分如图7所示。     

33.gif      
图 7  放大电路(部分)四 信号发生器的软件设计4.1 信号编码在这里要注意 的取值范围是-1~ ,而不是-1~+1。取整时要按照四舍五入的原则以减少误差,表1是双极性输出时二进制编码表以及对应模拟输出电压。表 1  双极性输出偏移二进制码表
34.gif4.2 软件设计软件的任务是根据上位机的指令完成信号的控制和输出,编程语言采用8051汇编语言,整个程序由初始化模块、基准信号输出模块、测角及基准信号输出模块、中断模块、延时模块和喂狗模块组成。软件流程如图8所示。4.3 与上位机接口时序信号发生器采用中断的模式响应上位机的控制指令,其指令的时序如图9所示。系统上电后,上位机须发送清零指令,复位INT0、INT1为低电平,Uj1、Uj2、Uc输出为0。在INT0、INT1为低电平期间,可以发送基准信号输出指令INT0,输出基准信号Uj1、Uj2;在基准信号输出期间,即INT0为高电平期间,可以发送测角信号输出指令INT1,此时输出测角信号 Uc,Uj1、Uj2同步输出。当INT0变为低电平时,无论INT1为何种状态,三路信号输出都为0。发送基准信号和测角信号输出前必须保证INT0、 INT1有效复位低电平。在INT0为低电平期间,陀螺仪模拟器不响应任何INT1指令。如果发生不可预料的逻辑紊乱,可以通过复位INT0、INT1,再按照图9所示时序关系发送指令。35.gif
图 8   软件流程图36.gif
图 9  INT0、INT1工作时序五 结 论通过软件硬件的调试和检测,表明该模拟装置的硬件和软件系统能很好的工作,在系统的联调中能正确的模拟角位移传感器的基准信号和测角信号,满足设计的要求,已经在某产品的检测系统中获得了应用。