本帖最后由 paulhyde 于 2014-9-15 09:25 编辑
介绍一种基于凌阳公司SPCE061A单片机的多功能信号发生器,并对其信号产生原理,以及生成信号的数据计算进行了详细介绍.该信号发生器结构简单,成本低,具有较高实用价值.
关键词:信号发生器;单片机;SPCE061A Design and Implement of Multifunctional Signal Generator Based SPCE061A
ZHANG Licai
(College of Information and Control, Xian University of Architecture and Technology, Xian, 710055, China ) Abstract: In this paper, a kind of multifunctional signal generator based SPCE061A of Sunplus company is introduced in detail. Its work principle and the data calculation of signal is detailed introduction. The construction of the generator is simple, the cost is low, and have the higher and practical value.
Key words: signal generator; single-chip computer; SPCE061A
1 引言
信号发生器是科研及工程实践中最重要的仪器之一,以往多用硬件组成,系统结构比较复杂,可维护性和可操作性不佳.随着计算机技术的发展,信号发生器的设计制作越来越多的是用计算机技术,种类繁多,价格,性能差异很大.本位介绍一种基于凌阳公司SPCE061A单片机设计的信号发生器,其特点是系统结构简单,成本低,使用方便,实用价值高.基本性能如下:
①可以产生正弦波,方波,三角波,锯齿波等几种周期性信号;
②可以用键盘编辑生成正弦波,方波,三角波这三种信号的线性组合.
③增加外部存储器后可以方便的是现信号存储功能,即有记忆功能系统可以实现的功能;
④信号存储功能可存储掉电前用户编辑的信号和设置;
⑤可实现用键盘编辑产生任意信号.
2 硬件电路设计
2.1 SPCE061A[1]单片机简介
SPCE061A的结构框图如图1所示.
SPCE061A的CPU为16位微处理器,其内部含有8个寄存器,4个通用寄存器Rl~R4,1个程序计数器PC,1个堆栈指针SP,1个基址指针BP,1个段寄存器SR,通用寄存器R3和R4结合组成一个32位寄存器MR,MR可以作为乘法运算和内积运算的目标寄存器.
内嵌2kB的SRAM和32kB闪存FLASH ROM.系统时钟由锁相环(PLL)振荡器为系统提供一个实时时钟的基频(32768Hz),然后将基基频进行倍频,调整至49.152MH2,40.96MHz,32.768MHz,24.576MHz或20.480MHz.系统默认的PLL自激振荡频率为24.576MHz.系统时钟频率(Fosc)和CPU时钟频率(CPUCLK)可通过编程来控制.默认的Fosc,CPUCLK分别为24.576MHz和Fosc/8.通过对32768Hz实时时钟源分频而提供了多种实时时钟中断源.
低电压监测和低电压复位低电压监测功能可以提供系统内电源电压的使用情况.可通过编程来控制,系统默认的电压监测低限为2.4V.4级电压监测低限:2.4V,2.8V,3.2V和3.6V.
SPCE061A具有2种中断方式:快速中断请求FIQ中断和中断请求IRQ中断.中断控制器可处理3种FIQ中断和14种IRQ中断,以及1个由指令BREAK控制的软中断.
系统具有2个可编程口:A口和B口.A口既是具有可编程唤醒功能的普通I/O口,又可与ADC的多路LINE IN输入共用,B口除了具有普通I/O口的功能外,在特定的管脚上还可以完成一些特殊的功能.I/O口兼容5VTTL逻辑电平.
SPCE06lA提供2个16位的定时器/计数器:TimerA和TimerB.TimerA为通用计数器;TimerB为多功能计数器.时基信号,来自于32768Hz实时时钟,通过频率选择组合而成.此外,时基信号发生器还可以直接生成2Hz,4Hz,1024Hz,2048Hz以及4096Hz的时基信号,为中断系统提供各种实时中断源信号.
SPCE06lA有8个10位模数转换通道,其中7个通道用于将模拟量信号转换为数字量信号,可直接通过引线(IOA[0~6])输入.另外有一个通道只作为语音输入通道,通过内置有自动增益控制放大器的麦克风通道(MIC IN)输入.SPCE06lA为音频输出提供了2个10位的数模转换器(输出为电流型),即DACl和DAC2.DACl,DAC2转换输出的模拟量电流信号分别通过AUDl和AUD2管脚输出.
串行设备接口串行输入输出端口SIO提供了1个1位的串行接口,用于与其他设备进行数据通讯.在SPCE061A内通过IOB0和IOBl这2个端口实现与设备进行串行数据交换功能.
更为可贵的是,厂家提供的开发环境支持C语言和汇编语言程序设计,以及C语言和汇编语言的混合编程,大大方便了用户的程序设计,提高了系统开发效率,降低了开发成本.
3 信号发生的原理
3.1 信号发生电路原理
信号发生电路原理框图如图2所示.该信号发生器采用SPCE06lA芯片作为系统的CPU,配以少量的外围接口芯片,构成单片机的最小控制系统.5V电源经二极管降压后得到3.6V电压用作单片机电源.人机对话部分用A口组成键盘及数码管显示(图中略去未画);信号输出部分用SPCE06lA提供的2个10位的数模转换器,即DACl和DAC2,以及外部运放电路组成.
①多功能信号发生器可产生正弦波,方波,三角波和由用户编辑的特定信号.信号的发生方法有两种:一是采用硬件,二是采用软件.如果采用硬件方法.可以使频率范围做得很大,然而为了配合智能化设置,其幅度,频率的调整,仍然要利用软件驱动I/O口进行切换,对于信号发生器来说,输出的信号种类较多,采用硬件的方法会使硬件电路相当复杂,并且调试也很困难.故障率也会大大增加.本设计中采用软,硬件相结合方法,可节约大量的硬件电路,信号的种类,频率完全由软件通过D/A变换来产生,幅度调整由可以用数字量控制的硬件电路实现.在高频端采用软件压缩的方法,可以得到较好的效果.
信号生成过程如下:
将生成信号的数据写入DAC1后,数字量转换为模拟量经DAC1引线端输出,输出电流加在电阻R9上形成信号电压,信号电压经运放U2A组成的跟随器输入数字电位器DP1(MAX5400)[2]的高端,数字电位器DP1将分压后信号输入由运放U2C组成的跟随器后输入由运放U2D组成的运算放大器放大后输出.由于单片机的DAC只能输出电流,在电阻R9上形成的信号电压始终≥0,要输出正反相信号需调整信号信号的电平,为此,利用DAC2输出电流加在电阻R8上形成偏置电压,经由运放U2A组成的反相器形成负偏置电压(Vr)后,加在输出放大器U2D输入端,达到调整输出信号电平的目的.
②输出信号幅度的调节方式:在0~5V的(峰~峰值)范围,要实现步进0.1V,如果完全使用软件实现,失真会非常严重.因为10位输出按0.1V步进,则峰~峰值最小为0.1V;又因为D/A数字最大为1023,输出对应5V,则0.1对应数字20,在这个很小的范围内,输出各种信号失真会很大.为了减小失真度,将信号峰~峰值固定对应数字1023,而其中参考电压由DAC2提供,以实现步进幅度为0.1V要求的硬件原理.低电压输出时信号时,这里使用数字电位器DP1的是调整输出信号的信号,数字电位器DP1产生的偏差通过输入DAC1的数字量进行修正,为此需要检测输出信号与期望值的偏差,所以系统中将数字电位器分压信号反馈给SPCE061A的模数转换通道(IOA0),借以检测输出信号是否达到规定要求.实验测量信号电压可实现0.02V幅度步进.信号电平调整原理如图3所示.图3(a)为数字电位器分压信号,图3(b) DAC2提供的由反相器U2A形成的负偏置电压(Vr),图3(c)为输出放大器U2D放大后的输出信号.系统中运放采用一片TI公司的4运放芯片TLC2254[3],该芯片为rail-to-rail型低功耗运放,可以提供-5V~+5V摆幅输出.
为使输出信号得到进一步改善,在输出端再加1级RC低通滤波器,以实现输出信号的平滑.
3.2 信号分析与计算
(1)正弦波信号计算
由于信号都是周期性的,所以只要设计出一个完整周期的正弦波.在信号输出部分,采用了10位的D/A变换器,其最大输出值为1023.为了与D/A变换器相适应,在2π一个周期内,将其输出信号的幅值,角频率量化,如图3(a)所示,将正弦波向上平移,使其最低点为0,而且对于奇函数,其傅里叶级数只能用正弦项表示,即有
f(k)=512sinkω0 (0≤k≤512)
y(k)=512+f(k)
式中ω0=2π/1024.由此可以求出1024个离散值,形成数据表,以备计算驱动程序调用.
(3)三角波的计算
三角波信号形成原理如图4所示,按DAC满幅输出计算三角波的上升沿和下降沿的N个DAC输出的小阶梯,由于阶梯很小从宏观上看它可以近似成三角波波信号,如图4中实线所画的波形.阶梯之间的时间间隔t1,t2由定时器TimerA 的定时值决定通过改变t1和t2的值来改变三角波信号上升沿和下降沿的时间T1,T2从而改变三角波信号的频率.
(4)方波信号的计算
方波计算比较简单,只需根据给出高电平时间t1和低电平t2时间,分别用定时器计时即可实现.
以上计算所的数据(10位有效数据)在写入DAC寄存器时,要写入DAC数据寄存器的高10位.因为,SPCE06lA的DAC数据寄存器中只有高10为有效,低6位无意义.
3.3 系统主要程序流程框图
主程序流程如图5所示.
4 结论
由于采用硬件数字电位器分压和软件修正的措施,结合具有较高性能价格比的单片机SPCE061A,使系统输出的信号电压的精度较高,而且简化了电路结构.此多功能信号发生器操作简单,显示直观,可同时查看信号类型,频率和幅值.总体性能优于传统的信号发生器,有很好的发展前景.
另外,利用SPCE061A的串行接口可以方便地与计算机进行通信,接收计算机的指令,进而可以组成测控,测量一体化系统.利用麦克风通道(MIC IN)输入语音信号,DACl,DAC2输出语音信号,可实现简单的人机语音对话功能,使人机接口更加人性化.
参考文献
1.北阳电子内部资料,2002,4
2.美信IC数据手册, www.maxim-ic.com.cn
3.德州仪器公司IC数据手册, www.ti.com.cn
|