本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要 登录 才可以下载或查看,没有账号?注册会员
×
at89c4051应用电路, AT89C4051是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的只读Flash程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C4051可为您提供许多高性价比的应用场合。
本文设计了一种基于单片机的模拟角位移传感器输出信号的电子装置,它以单片机为核心,经过D/A转换和放大电路的处理,最后输出反应角位移的基准信号和测角信号。
关键词:角位移传感器 单片机D/A
在简易制导武器中,角位移传感器是姿态修正系统的敏感元件,用来测量弹体的角运动参数并以电信号形式给出三个信息。其中输出两路幅值相等相位相差90°的正弦信号作为弹体偏转测量的基准信号;另一路输出测角信号,该信号相对基准信号的相位反映角偏差的方向、幅值反映角偏差量。专用信号发生器就是模拟角位移输出信号的装置,用来进行后续解调电路以及功放电路的检测。它以单片机为核心,经过D/A转换和放大电路的处理,最后输出反应弹体姿态的基准信号和测角信号。
二 数学模型的建立
根据对输出信号性能指标的要求,基准信号幅值:A, 基准信号频率:f ,假设对A的精度要求为±0.01V,对f的要求为±10Hz,输出信号为正弦信号,可以建立模拟基准信号的数学表达式如下:
其中幅值的大小可以通过放大电路部分进行调节。
测角信号实时反映弹体的姿态,根据检测需要和角位移传感器的结构可以建立这一特定的Uc数学表达式为:
其中幅值的大小可以通过放大电路进行调节,相角Ψ反映偏差的方向。
三 方案设计
信号发生器的设计任务就是产生 三路信号,并且提供和主机通讯的软硬件接口。首先根据输出信号的频率和幅值进行编码,存储在单片机的ROM里,然后以一定的时间间隔依次将这些数字量送往 D/A进行转换输出,这样,只要循环不已的送数,在D/A的双极性输出端就可以得到信号波形。信号的输出时序受上位机控制。
本设计采用AT89C4051组成一个最小的单片机系统。AT89C4051是Atmel公司的一款基于MSC51 内核的简化单片机,指令与标准的51单片机兼容,带有4K可重新编程片上程序存储器,128B的数据存储器,多达条可编程I/O线,两个位定时器 /计数器,片上模拟比较器,一个标准串行通讯口,内部带有振荡器和时钟电路。系统的硬件结构图如图1。
图1硬件结构图
3.1 时钟复位电路设计
采用单片机片内的振荡器、上电复位和外部硬件看门狗电路。看门狗采用MAXIM公司的MAX706芯片,硬件电路如图2。 MAX706可以提供至少200ms宽度的复位脉冲,为使看门狗溢出有效必须把MAX706的WDO和MR连接起来,看门狗输入WDI连接4051的任何一个I/O端口都可。MAX706在程序运行期间监控整个系统的运行,喂狗程序必须在1.6秒之内使WDI引脚电平发生改变,否则MAX706将发出复位指令,使整个系统复位,看门狗时序如图3所示。
图2复位电路 图3看门狗时序图
3.2 单片机与D/A的接口电路设计
D/A选用AD公司的AD7226。AD7226是具有8位精度的四通道D/A转换器,最小分辨电压约为4mV,可以满足设计的精度要求。每个通道都有一个输入锁存器,可以对输入的数字量进行锁存;输出端带有输出缓冲放大器。AD7226有一条写入控制线WR,两条地址线A0、A1,通过地址线可以选择不同的D/A转换通道。写入时序如图4所示。
图4 AD7226写入时序
由于4051没有专门的地址和读写控制引脚,此处可以通过普通的I/O引脚参考AD7226的写入时序,利用软件进行时序模拟。可以通过改变延时的时间来改变输出的频率。图5是利用4051的P3.0、P3.1口作为A0、A1的地址线,P3.5作为WR的写入控制线的硬件参考电路,相应的示例程序如下:
……..
MOVP1, A ;P1口置数
MOVP3, #0FCH;选择通道A
CLR P3.5 ;置P3.5 低电平
SETBP3.5 ;置P3.5 高电平,上升沿锁存数据
LCALLDELAY ;调用延时子程序
……
图5 单片机与D/A接口电路
3.3 偏移电路设计
AD7226的每一个通道都可以单独用来提供单极性或双极性的输出,要获得双极性的输出必须外加运算放大器和偏移电阻,输出电压的范围取决于参考电压的大小,如图6是在单极性供电情况下的双极性输出电路图,要注意偏移电阻的阻值匹配。
图6AD7226双极性输出电路
3.4 放大电路设计
放大电路主要是对AD7226输出的双极性电压信号幅值进行处理,以达到使用的要求。放大电路的输入极增加一个一阶低通滤波器,以防止D/A输出的高频成分干扰;采用低频运放作为射随器以提高输入阻抗。放大电路部分如图7所示。
图 7放大电路(部分)
四 信号发生器的软件设计
4.1 信号编码
以产生为例,来说明如何对信号进行编码。
AD7226的每一个通道都能单独的配置成双极性输出,参考图6,以7226的通道A为例, 可以得到输出表达式:
如果取R1=R2,则有:
由于D/A输出双极性电压的范围是-VREF ~VREF(127/128),所以要把Uj1放大VREF倍,即对VREFUj1进行编码,然后通过放大电路处理,得到最终需要的Uj1。这样就有:
这里要注意 的取值范围是-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 软件流程图
图 9INT0、INT1工作时序
五 结 论
通过软件硬件的调试和检测,表明该模拟装置的硬件和软件系统能很好的工作,在系统的联调中能正确的模拟角位移传感器的基准信号和测角信号,满足设计的要求,已经在某产品的检测系统中获得了应用。
AT89C4051虽然是一个功能强大的单片机,但它只有20个引脚,15个外部双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,同时内含两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器(P1.0,P1.1为同相或反箱输入端),片内时钟电路。
同时AT89C4051的时钟频率可以为零,即具备可用软件设置的睡眠省电功能,系统的唤醒方式有RAM、定时/计数器、串行口和外中断口,系统唤醒后即进入继续工作状态。省电模式中,片内RAM将被冻结,时钟停止振荡,所有功能停止工作,直至系统被硬件复位方可继续运行。 |
|