您当前的位置:五五电子网电子知识单片机-工控设备综合-其它基于单片机的简易信号源设计 正文
基于单片机的简易信号源设计

基于单片机的简易信号源设计

点击数:7779 次   录入时间:03-04 11:56:25   整理:http://www.55dianzi.com   综合-其它

    1. 引言

    信号发生器在教学、试验、测控等各个领域有十分广泛的应用,其输出信号的频率范围覆盖了各个频段,从甚低频到甚高频,操作方式也从手动旋钮到程控,产生的波形从传统的正(余)弦波和脉冲波形,发展到现在能产生各种任意波形。以前的信号发生器往往独占一个机箱,而现在的一些应用中,它只是一块插在计算机中的扩展卡,还有一些信号发生器设计成一个独立的小模块,通过RS-232C或RS-422,RS-485等串行总线和计算机连接。

    其实,在许多固定的控制应用中,只要求信号发生器产生单一波形,或可数的几个波形。如果仅仅要求产生单一的正(余)弦波或者脉冲波形,可以利用传统的振荡器电路。当信号频率有所选择时,问题仍然比较简单。但若产生的信号波形比较复杂时,电路的设计也同样变得很复杂。加之传统振荡器电路由于有较大的温度漂移,需要较长的预热时间,为达到较高的频率精度,需仔细调节电路各个参数。

    数字频率合成技术的采用,大大简化了信号发生器的设计。但在某些特定情况,需要的仅仅是几个单独的波形,这时我们可以使用单片机和DAC芯片,用十分简单的电路产生所需要的波形。

    2. 电路设计及编程考虑

    单片机简易信号发生器电路框图如图1,仅由一片AT89C2051单片机,一片DAC0832和由运放组成的低通滤波器组成。AT89C2051内部有 2KB的FLASH存储器,可以保存运行程序和波形参数,128字节的RAM可以用于存放波形参数。由于采用了数字合成技术,可以产生各种简单或复杂的波形。

    18.gif

    工作过程说明如下;(1)决定产生的信号波形;通电稳定工作以后,单片机首先读取P3.0和P3.1引脚信号,决定程序应跳转的地址。每个跳转地址有一个输出波形。(2)将保存在FLASH中的样本数据送往DAC0832,供其转换成模拟电压。

    首先应将波形参数转换成样本数据。假若每周期有N个样本数据,则第K个样本数据的计算方法为:
    DK=127(1+SIN(2πK/N)  K=0,1,2,……N-1

    由于在实际产生波形的过程中,数据由运行程序逐个取得送出,在产生周期波时是一个循环过程。因此必须考虑程序取数、送数、循环等操作的时间开销。对于 MCS51系列单片机,在晶振频率为12MHz时,每条指令的执行时间为1~2μs。为了使波形足够光滑,每周期的点数应尽可能多,这样要求单片机发送样本数据的速率尽量快。由于送数周期的限制,在增加样本点数时,输出信号频率会降低。同时从程序存储器空间取数时需要较长的时间,当样本数据的个数不多时,可以把样本数据先移到RAM中,程序执行时直接从RAM中取数送往DAC,就能增加发送样本数据的速率。

    下面以产生单一4800Hz正弦波为例,说明程序设计过程。参数N的计算见后面的说明。
 ORG    0000H
        MOV    R0,#0
        MOV    R1,#4
        MOV    R2,#124
        MOV    DPTR,#200H
        MOV    A,#0
MOVD:  MOVC    A,@A+DPTR  ;将样本数据从FLASH
        MOV    @R1,A  ;移到内部RAM中,
        INC    R0  ;可以减少送数时间
        INC R1
        MOV    A,R0
        DJNZ    R2,MOVD
        MOV    R0,#04
DOUT:  MOV    A,@R0  ;轮流送数到DAC
        MOV    P1,A
        INC  R0
        CJNE    R0,#128,DOUT
        MOV    P1,#128  ;从起点开始重新送样本数据
        MOV    R0,#04  ;
        SJMP  DOUT  ;送数循环结束
      ;
 ORG 0200H  ;样本数据表
 DB 0147
 DB 165
 …… 

    以上程序中,DOUT标号开始的一段循环程序送样本数据。该段循环程序指令经过精心选择,N个样本数据共用4条指令,执行时间为5μs。但对4800 Hz的信号频率,信号周期为208.3333μs,计算得到样本数据的个数N=208.3333/5=41.6667。由于样本数据的个数不能为小数,可以考虑采用4舍5入,以得到最接近的信号频率。因此取样本个数为42,但信号周期变为210μs,信号频率为4762Hz,频率误差很大,达不到使用要求。

    为此,可采用多周期综合技术。多周期综合的方法就是在计算样本数据时,将M个周期一并考虑。即N个样本数据代表了M个信号周期的波形,使每个周期的样本数与要求值最接近。计算公式如下:
DK=127(1+SIN(2лMK/N)    K=0,1,2,3……N-1

    为此,需合理确定N和M的值。

    M的值可如下确定;取单周期样本数据个数的小数部分,除1的结果既为M。对f0=4800Hz,可知M恰好等于3。

    下面计算N;已知每个样本数据需要5μs,样本周期数为3,信号频率为4800 Hz,则
            N=3/4800*1000000/5=125

    由此可知样本数据的计算公式:
    DK=127(1+SIN(6л/125))  K=0,1,2……124

    实用中,用该信号源产生了4800Hz正弦波,400Hz正弦波、480Hz正弦波和1000Hz方波四种波形。400Hz、480Hz正弦波和1000Hz方波的波形参数计算此处略。实测表明四种信号的频率误差都小于0.5Hz。

    如果信号频率比较低,样本数据很多,就不需要把样本数据先移到RAM中,而直接从FLASH中取得样本数据送往DAC。对正弦波来说,当每周期有20个以上的样本数据时,就有比较好的波形。对于矩形波来说,每周期只需要2个样本数据。

    3. 小结

    以上电路虽然简单,但有比较精确的波形。由于波形参数完全由软件预先设定,除了产生正弦波、方波以外,还能产生梯形波或sin(x)/x等形状复杂的波形。可以将电路设计成嵌入式结构,从而在一些工业生产现场得到应用。

    参考文献
1  余永权.ATMEL89系列(MCS-51兼容)FLASH单片机原理及应用.电子工业出版社.1997年
2 蒋焕文,孙续.电子测量.中国计量出版社.1988年
 




本文关键字:单片机  信号源  综合-其它单片机-工控设备 - 综合-其它