基于单片机的专用信号发生器设计与应用
扫描二维码
随时随地手机看文章
一 前 言
在简易制导武器中,角位移传感器是姿态修正系统的敏感元件,用来测量弹体的角运动参数并以电信号形式给出三个信息。其中输出两路幅值相等相位相差90°的正弦信号作为弹体偏转测量的基准信号;另一路输出测角信号,该信号相对基准信号的相位反映角偏差的方向、幅值反映角偏差量。专用信号发生器就是模拟角位移输出信号的装置,用来进行后续解调电路以及功放电路的检测。它以单片机为核心,经过D/A转换和放大电路的处理,最后输出反应弹体姿态的基准信号和测角信号。
二 数学模型的建立
根据对输出信号性能指标的要求,基准信号幅值:A, 基准信号频率:f ,假设对A的精度要求为±0.01V,对f的要求为±10Hz,输出信号为正弦信号,可以建立模拟基准信号的数学表达式如下:
其中幅值的大小可以通过放大电路部分进行调节。
测角信号实时反映弹体的姿态,根据检测需要和角位移传感器的结构可以建立这一特定的Uc数学表达式为:
其中幅值的大小可以通过放大电路进行调节,相角Ψ反映偏差的方向。
三 方案设计
信号发生器的设计任务就是产生三路信号,并且提供和主机通讯的软硬件接口。首先根据输出信号的频率和幅值进行编码,存储在单片机的ROM里,然后以一定的时间间隔依次将这些数字量送往 D/A进行转换输出,这样,只要循环不已的送数,在D/A的双极性输出端就可以得到信号波形。信号的输出时序受上位机控制。
本设计采用AT89C4051组成一个最小的单片机系统。AT89C4051是Atmel公司的一款基于MSC51 内核的简化单片机,指令与标准的51单片机兼容,带有4K可重新编程片上程序存储器,128B的数据存储器,多达15条可编程I/O线,两个16位定时器 /计数器,片上模拟比较器,一个标准串行通讯口,内部带有振荡器和时钟电路。系统的硬件结构图如图1。
图1 硬件结构图
3.1 时钟复位电路设计
采用单片机片内的振荡器、上电复位和外部硬件看门狗电路。看门狗采用MAXIM公司的MAX706芯片,硬件电路如图2。 MAX706可以提供至少200ms宽度的复位脉冲,为使看门狗溢出有效必须把MAX706的WDO和MR连接起来,看门狗输入WDI连接4051的任何一个I/O端口都可。MAX706在程序运行期间监控整个系统的运行,喂狗程序必须在1.6秒之内使WDI引脚电平发生改变,否则MAX706将发出复位指令,使整个系统复位,看门狗时序如图3所示。
3.2 单片机与D/A的接口电路设计
D/A选用AD公司的AD7226。AD7226是具有8位精度的四通道D/A转换器,最小分辨电压约为4mV,可以满足设计的精度要求。每个通道都有一个输入锁存器,可以对输入的数字量进行锁存;输出端带有输出缓冲放大器。AD7226有一条写入控制线WR,两条地址线A0、A1,通过地址线可以选择不同的D/A转换通道。写入时序如图4所示。
由于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 ;调用延时子程序
……..
图5 单片机与D/A接口电路
3.3 偏移电路设计
AD7226的每一个通道都可以单独用来提供单极性或双极性的输出,要获得双极性的输出必须外加运算放大器和偏移电阻,输出电压的范围取决于参考电压的大小,如图6是在单极性电源供电情况下的双极性输出电路图,要注意偏移电阻的阻值匹配。
图6 AD7226双极性输出电路
3.4 放大电路设计
放大电路主要是对AD7226输出的双极性电压信号幅值进行处理,以达到使用的要求。放大电路的输入极增加一个一阶低通滤波器,以防止D/A输出的高频成分干扰;采用低频运放作为射随器以提高输入阻抗。放大电路部分如图7所示。
图 7 放大电路(部分)
四 信号发生器的软件设计
4.1 信号编码
在这里要注意 的取值范围是-1~ ,而不是-1~+1。取整时要按照四舍五入的原则以减少误差,表1是双极性输出时二进制编码表以及对应模拟输出电压。
表 1 双极性输出偏移二进制码表
4.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所示时序关系发送指令。
图 8 软件流程图
图 9 INT0、INT1工作时序
五 结 论
通过软件硬件的调试和检测,表明该模拟装置的硬件和软件系统能很好的工作,在系统的联调中能正确的模拟角位移传感器的基准信号和测角信号,满足设计的要求,已经在某产品的检测系统中获得了应用。
参考文献:
【1】 胡汉才 著 单片机原理及其接口技术 清华大学出版社 1995年6月
【2】 陈大钦 著 模拟电子技术基础 高等教育出版社 1999年7月
【3】 汤钰鹏 等著 MCS-51系列单片机应用及其接口技术 人民邮电出版社 2003年6月