电子爱好者

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

电子爱好者单片机|嵌入式|FPGA|DSP|EDA|电路|接口|技术交流社区o主页o技术交流o技术手册o相册o论坛o新闻聚合o帮助主页»群组目录»电子设计竞赛波形发生器coldfly发表于七月22nd,2007o未分类关键词:SPCE061A单片机波形发生器单片机是实现各种控制策略和算法的载体。由台湾凌阳公司生产的SPCE系列单片机,因其功耗低,超小型,低成本,功能完整,非常适用于便携式仪表和就地式显示控制仪表,在国内越来越受到用户的重视和广泛的应用。SPCE061A单片机功能强大,其片内含有八路十位A/D转换器和两路D/A转换器,该波形发生器运用单片机技术,通过巧妙的软件设计和简易的硬件电路,产生数字式的正弦波、方波、斜波等幅值可调的信号。信号频率,可通过键盘输入,并显示。与现有各类型波形发生器比较而言,产生的数字信号干扰小,输出稳定,可靠性高,特别是操作简单方便,人机界面友好,成本低,非常适合于物理实验室教学与实验使用。SPCE061A单片机概述SPCE061A是继u'nSP系列产品SPCE500A等之后凌阳科技推出的又一个16位结构的微控制器。目前有两种封装形式:84引脚的PLCC84封装和80引脚的LQFP80贴片封装。主要性能如下:■16位m’nSP微处理器;■工作电压:VDD为2.4~3.6V(cpu),VDDH为2.4~5.5V(I/O);■CPU时钟:32768Hz~49.152MHz;■内置2K字SRAM、内置32KFLASH;■可编程音频处理;■32位通用可编程输入/输出端口;■32768Hz实时时钟,锁相环PLL振荡器提供系统时钟信号;■2个16位可编程定时器/计数器(可自动预置初始计数值);■2个10位DAC(数-模转换)输出通道;■7通道10位电压模-数转换器(ADC)和单通道语音模-数转换器;■声音模-数转换器输入通道内置麦克风放大器自动增益控制(AGC)功能;■系统处于备用状态下(时钟处于停止状态)耗电小于2mA@3.6V;■具备触键唤醒的功能;■14个中断源:定时器A/B,2个外部时钟源输入,时基,键唤醒等;■使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;■具备异步、同步串行设备接口;■具有低电压复位(LVR)功能和低电压监测(LVD)功能;■内置在线仿真电路接口ICE(In-CircuitEmulator);■具有保密能力;■具有WatchDog功能(由具体型号决定)一、方案设计与论证方案一:本方案直接采用凌阳SPCE061A作为波形发生器。波形的具体产生是通过两路DAC来产生,凌阳SPCE061A在这方面的设计为我们提供了极大的方便,用它实现的好处在于,外围电路极其简单,另外在DAC的编程方面又提供及其便利的编程环境。外围电路的设计包括三大部分,第一是键盘控制电路的设计,这里采用4*4键盘,由IOA的低八位进行控制,把键盘上的行和列分别接在IOA0~IOA3和IOA4~IOA7上,采用外部中断二来中断所显示波形,以便进入下一波形的编辑和输出,在波形输出的同时利用外部中断一来实现同步的频率调节。第二是显示电路的设计,这里为了在波形输出依然有显示,由于单片机的局限性这里采用通常的动态LED显示行不通,因为波形输出时要求CPU不停地为其服务而没有空闲来为LED进行不停更新,解决方案是采用带数据缓存器和驱动的LCD来提供显示,这样只占用八个I/O口即可完成设计要求,也可放弃适时显示功能采用LED显示,这里将提供两种显示方案。第三是滤波和电压转换电路的设计,滤波采用低通滤波器,滤除DAC转换过程中形成的高频小锯齿波。另外由于凌阳SPCE061A单片机DAC输出为电流输出,为满足达到5V的电压输出,外接OP07运算放大器进行放大,加1千欧姆电阻进行电流信号到电压信号的转换。本设计的特点是全面采用数字电路方案,因而工作稳定可靠。利用单片机控制管理,使频率设置和占空比调整等操作可用键盘输入,十分方便。方案二:本设计方案采用功能很强的大规模数字频率合成器MC145151和多波形宽频率范围信号发生器MAX038等新器件产生波形和频率,控制与管理电路部分使用SPCE061A单片机以及键盘显示电路。MAX038是一个精密高频波形产生器。它能产生频率高达20MHz的正弦波、三角波、方波等脉冲信号,其压控振荡器的频率分粗调和细调两层控制。在本电路中,用于粗调的控制电压(电流)由一个12位的DAC产生,使输出频率近似等于N倍基准频率。而细调电压则由数字锁相电路MC145151和环路滤波器MAX427产生,由锁相反馈环将频率fo=Nfr锁定。这种方案的优点是频率合成器工作更可靠,锁定更迅速。另外MAX038还包括占空比调整电路、波形同步电路、相位检测电路、波形切换开关和电压基准源等电路,所需外部元件少,使用很方便。控制和管理电路由SPCE061A单片机及外围电路组成。其主要用于对键盘输入的波形和频率选择等数据进行译码,计算出相应的控制参数,控制频率合成器输出正确的信号,并将其频率和波形参数用LED显示出来。对于小型通用信号产生器而言,这是一个比较理想的设计方案。方案比较:第一种方案设计外围电路简单,能够满足电子大赛设计的要求,这里考虑到短时间内设计既要成型,采用第一种方案。第二种方案的设计比较完善,由于用到专门的波形发生芯片,产生的波形比较完美,但外围电路复杂,适合于作波形发生器的产品设计方案。二、系统硬件电路设计2.1电路方框图及说明图1整体框图2.2各部分电路设计2.2.1滤波、放大及其电流到电压的转换电路电路本系统采用二阶压控电压源低通滤波器,如图2所示。它由两节RC滤波器和同向放大电路组成。其中同相放大实际上就是所谓的压控电压源,它的电压增益就是低通滤波器的通带电压增益,即:A0=Avf=1+Rf/R1图2滤波电路传递函数由图电路可知,运放同相端输入电压为:(1)而Vp(s)与Va(s)的关系为:Vp(s)=Va(s)/(1+sRC)(2)对于节点A,由节点电流法可得Vi(s)/R-Va(s)/R-[Va(s)-V0(s)]sC-Va(s)/R-Vp(s)/R=0(3)将式(1)、(2)和(3)连立求解,可得电路的传递函数为A(s)=V0(s)/Vi(s)=Avf/[1+(3-Avf)sRC+sRC*sRC](4)式(4)为二阶低通滤波器传递函数的表达式。其中1/RC为特征频率,而1/(3-Avf)为等效品质因数。截止频率为1/RC。通过设置R、C可调节带通到我们需要的范围。另外调节Rf可调节幅度到我们需要的范围。2.2.2键盘控制电路电路在单片机中所需按键较少,多采用独立式键盘。此种键盘结构简单,每只按键接单片机的一条I/O线,通过查询即可示别出每只按键的状态来。但由于本系统按键较多,在这里采用矩阵式排列键盘,如图3所示,这样可以合理应用硬件资源,把16只按键排列成4*4矩阵形式,用一个8位I/O口控制,如图所示。把键盘上的行和列分别接在IOA0~IOA3和IOA4~IOA7上。先置IOA0~IOA3为带数据缓存器的高电平输出,置IOA4~IOA7为带下拉电阻的输管脚,此时若有键按下,取IOA4~IOA7的数据将得到一个值,把此值保存下来,再置IOA4~IOA7为带数据反相器的高电平输出,置IOA0~IOA3为带下拉电阻的输入管脚,此时若键仍没弹起,取IOA0~IOA3的数据将得到另一个值,把这两个值组合就可得知是哪个键按下了,再通过查表得到键值。图3按键控制电路2.2.3显示电路电路为了给广大单片机爱好者提供方便,在显示电路的设计方面提供两种方案,第一种是采用四个LCD进行适时显示,这是比较理想的方案,但由于LCD成本较高,这里还提供另一种方案,用六个LED进行显示,这种方案的缺点是不能适时显示,但也能满足一般设计要求。第一种方案采用四个LCD进行动态显示,轮流显示波形和频率,直接用SPCE061A驱动液晶显示器,要占用较多的I/O口,这里采用ICM7211M来驱动,这样不仅节省I/O口而且减化了编程。用数字代表各种波形,显示波形的粗调频率。用IOA9—IOA10口作为位选控制,IOA8口作为ICM7211M的片选信号,IOA11—IOA14作为数据线。数据线和位选线直接接凌阳SPCE061A单片机的I/O口即可。图4LCD显示电路第二种方案采用六个共阴极数码管LED进行动态显示波形和频率,直接用SPCE061A直接驱动LED,两位提供波形显示,四位提供频率显示。用IOB8—IOB13口作为位选控制,IOA8—IOA14口传输要显示的数据,数据线和位选线直接接凌阳SPCE061A单片机的I/O口即可,因为I/O口输出电流很小不会对LED造成损坏,它的电压值却足以驱动LED,这不像别的单片机还要外接驱动电路和电阻,采用凌阳SPCE061A单片机大大减化了设计过程和硬件电路。硬件电路如图5所示。图5LED显示电路2.2.4语音播报电路的设计电路凌阳的SPCE061A是16位单片机,具有DSP功能,有很强的信息处理能力,最高时钟可达到49M,具备运算速度高的优势等等,这为语音的播放、录放、合成及辨识提供了条件。另外SPCE061A单片机具有32k闪存,事先把所需要的语音信号录制好,整个语音信号经凌阳SACM_S480压缩算法压缩只占有13.2K存储空间,对凌阳SPCE061A单片机的存储系统来说绰绰有余。凌阳SPCE061A单片机自带双通道DAC音频输出,DAC1、DAC2转换输出的模拟量电流信号分别通过AUD1和AUD2管脚输出,DAC输出为电流型输出,经LM396音频放大,即可驱动喇叭放音,放大电路如图6(只列出了DAC1,DAC2类似)。在DAC1、DAC2后面接一个简单的音频放大电路和喇叭就能实现语音播报功能,这为单片机的音频设计提供了极大方便,音频的具体功能主要通过程序来实现。图6音频放大电路三、软件设计3.1主程序流程图由于使用凌阳SPCE061A使外围电路变得异常简单,整个波形发生器的主体任务落到了程序编写上。整个系统的软件设计方案如图7,采用外部中断二来中断所显示波形,以便进入下一波形的编辑和输出,在波形输出的同时利用外部中断一来实现同步的频率调节。波形的具体产生是通过两路DAC来产生,之所以采用这种方式,是因为凌阳SPCE061A在这方面的设计为我们提供了极大的方便,在DAC的编程方面又提供了及其便利的编程环境。用函数来产生波形是大多数设计者喜之不舍得设计方案,但在具体设计方面,因为函数在单片机的运算过程中占据了太多的时钟周期,这就给我们追求高频波形一个瓶颈,要怎样解决这个问题呢?这里我采用查表来实现,根据理论凌阳SPCE061A单片机可达到一百兆的要求,这就能充分满足题目设计要求了,然而,由于函数产生波形极其方便,凌阳SPCE061A单片机有提供了大量函数库,在设计过程中我在低频部分依然采用函数设计。另外,波形频率随CPU的频率而变法,凌阳SPCE061A单片机的32768的实时时钟经过PLL倍频电路产生系统时钟频率(Fosc),Fosc再经过分频得到CPU时钟频率(CPUCLK)可通过对P_SystemClock(写)($7013H)单元编程来控制,这就为我们设计提供了丰富的CPU时钟选择。默认的Fosc、CPUCLK分别为24.576MHz和Fosc/8。我们可以通过对P_SystemClock单元编程完成对系统时钟和CPU时钟频率的定义,改变设置将可提供多种频率选择。在本设计中,波形编辑的第一部就是进行CPU频率选择,选择最高频和最低频作为粗调,在用键盘和中断进行微调,以便达到所需的频率及其幅值。下面将对各部分编程作详细说明。图7整体流程图3.2分块程序流程按键控制部份在键扫描的过程中,先置IOA0~IOA3为带数据缓存器的高电平输出,置IOA4~IOA7为带下拉电阻的输入管脚,此时若有键按下,取IOA4~IOA7的数据将得到一个值,把此值保存下来,再置IOA4~IOA7为带数据反相器的高电平输出,置IOA0~IOA3为带下拉电阻的输入

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功