电子爱好者.docx

上传人:小飞机 文档编号:2048902 上传时间:2023-01-04 格式:DOCX 页数:15 大小:174.49KB
返回 下载 相关 举报
电子爱好者.docx_第1页
第1页 / 共15页
电子爱好者.docx_第2页
第2页 / 共15页
电子爱好者.docx_第3页
第3页 / 共15页
电子爱好者.docx_第4页
第4页 / 共15页
电子爱好者.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《电子爱好者.docx》由会员分享,可在线阅读,更多相关《电子爱好者.docx(15页珍藏版)》请在三一办公上搜索。

1、电子爱好者 单片机 | 嵌入式 | FPGA | DSP | EDA | 电路 | 接口 | 技术交流社区 o 主页 o 技术交流 o 技术手册 o 相册 o 论坛 o 新闻聚合 o 帮助 主页 群组目录 电子设计竞赛波形发生器coldfly 发表于 七月 22nd, 2007o 未分类 关键词:SPCE061A单片机 波形发生器 单片机是实现各种控制策略和算法的载体。由台湾凌阳公司生产的SPCE系列单片机,因其功耗低,超小型,低成本,功能完整,非常适用于便携式仪表和就地式显示控制仪表,在国内越来越受到用户的重视和广泛的应用。SPCE061A单片机功能强大,其片内含有八路十位A/D转换器和两路

2、D/A转换器,该波形发生器运用单片机技术,通过巧妙的软件设计和简易的硬件电路,产生数字式的正弦波、方波、斜波等幅值可调的信号。信号频率,可通过键盘输入,并显示。与现有各类型波形发生器比较而言,产生的数字信号干扰小,输出稳定,可靠性高,特别是操作简单方便,人机界面友好,成本低,非常适合于物理实验室教学与实验使用。 SPCE061A单片机概述 SPCE061A是继unSP系列产品SPCE500A等之后凌阳科技推出的又一个16位结构的微控制器。目前有两种封装形式:84引脚的PLCC84封装和80引脚的LQFP80贴片封装。主要性能如下:16位mnSP微处理器;工作电压:VDD为2.43.6V(cpu

3、), VDDH为2.45.5V(I/O);CPU时钟:32768Hz49.152MHz ;内置2K字SRAM、内置32K FLASH;可编程音频处理;32位通用可编程输入/输出端口;32768Hz实时时钟,锁相环PLL振荡器提供系统时钟信号;2个16位可编程定时器/计数器(可自动预置初始计数值);2个10位DAC(数-模转换)输出通道;7通道10位电压模-数转换器(ADC)和单通道语音模-数转换器;声音模-数转换器输入通道内置麦克风放大器自动增益控制(AGC)功能;系统处于备用状态下(时钟处于停止状态)耗电小于2mA3.6V;具备触键唤醒的功能;14个中断源:定时器A / B,2个外部时钟源输

4、入,时基,键唤醒等;使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;具备异步、同步串行设备接口;具有低电压复位(LVR)功能和低电压监测(LVD)功能;内置在线仿真电路接口ICE(In- Circuit Emulator); 具有保密能力;具有WatchDog功能(由具体型号决定) 一、方案设计与论证 方案一: 本方案直接采用凌阳SPCE061A作为波形发生器。波形的具体产生是通过两路DAC来产生,凌阳SPCE061A在这方面的设计为我们提供了极大的方便,用它实现的好处在于,外围电路极其简单,另外在DAC的编程方面又提供及其便利的编程环境。外围电路的设计包括

5、三大部分,第一是键盘控制电路的设计,这里采用4*4键盘,由IOA的低八位进行控制,把键盘上的行和列分别接在IOA0IOA3和IOA4IOA7上,采用外部中断二来中断所显示波形,以便进入下一波形的编辑和输出,在波形输出的同时利用外部中断一来实现同步的频率调节。第二是显示电路的设计,这里为了在波形输出依然有显示,由于单片机的局限性这里采用通常的动态LED显示行不通,因为波形输出时要求CPU不停地为其服务而没有空闲来为LED进行不停更新,解决方案是采用带数据缓存器和驱动的LCD来提供显示,这样只占用八个I/O口即可完成设计要求,也可放弃适时显示功能采用LED显示,这里将提供两种显示方案。第三是滤波和

6、电压转换电路的设计,滤波采用低通滤波器,滤除DAC转换过程中形成的高频小锯齿波。另外由于凌阳SPCE061A单片机DAC输出为电流输出,为满足达到5V的电压输出,外接OP07运算放大器进行放大,加1千欧姆电阻进行电流信号到电压信号的转换。本设计的特点是全面采用数字电路方案,因而工作稳定可靠。利用单片机控制管理,使频率设置和占空比调整等操作可用键盘输入,十分方便。 方案二:本设计方案采用功能很强的大规模数字频率合成器MC145151和多波形宽频率范围信号发生器MAX038 等新器件产生波形和频率,控制与管理电路部分使用SPCE061A单片机以及键盘显示电路。MAX038是一个精密高频波形产生器。

7、它能产生频率高达20MHz的正弦波、三角波、方波等脉冲信号,其压控振荡器的频率分粗调和细调两层控制。在本电路中,用于粗调的控制电压(电流)由一个12位的DAC产生,使输出频率近似等于N倍基准频率。而细调电压则由数字锁相电路MC145151和环路滤波器MAX427产生,由锁相反馈环将频率fo = Nfr锁定。这种方案的优点是频率合成器工作更可靠,锁定更迅速。另外MAX038还包括占空比调整电路、波形同步电路、相位检测电路、波形切换开关和电压基准源等电路,所需外部元件少,使用很方便。控制和管理电路由SPCE061A单片机及外围电路组成。其主要用于对键盘输入的波形和频率选择等数据进行译码,计算出相应

8、的控制参数,控制频率合成器输出正确的信号,并将其频率和波形参数用LED显示出来。对于小型通用信号产生器而言,这是一个比较理想的设计方案。 方案比较: 第一种方案设计外围电路简单,能够满足电子大赛设计的要求,这里考虑到短时间内设计既要成型,采用第一种方案。第二种方案的设计比较完善,由于用到专门的波形发生芯片,产生的波形比较完美,但外围电路复杂,适合于作波形发生器的产品设计方案。 二、系统硬件电路设计 2.1电路方框图及说明 图1 整体框图 2.2各部分电路设计 2.2. 1滤波、放大及其电流到电压的转换电路 电路本系统采用二阶压控电压源低通滤波器,如图2所示。它由两节RC滤波器和同向放大电路组成

9、。其中同相放大实际上就是所谓的压控电压源,它的电压增益就是低通滤波器的通带电压增益,即: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)为二阶低通滤波器

10、传递函数的表达式。其中1/RC为特征频率,而 1/(3- Avf)为等效品质因数。截止频率为1/RC。通过设置R、C可调节带通到我们需要的范围。另外调节Rf可调节幅度到我们需要的范围。 2.2.2键盘控制电路电路 在单片机中所需按键较少,多采用独立式键盘。此种键盘结构简单,每只按键接单片机的一条I/O线,通过查询即可示别出每只按键的状态来。但由于本系统按键较多,在这里采用矩阵式排列键盘,如图3所示,这样可以合理应用硬件资源,把16只按键排列成4*4矩阵形式,用一个8位I/O口控制,如图所示。把键盘上的行和列分别接在IOA0IOA3和IOA4IOA7上。先置IOA0IOA3为带数据缓存器的高电平

11、输出,置IOA4IOA7为带下拉电阻的输管脚,此时若有键按下,取IOA4IOA7的数据将得到一个值,把此值保存下来,再置IOA4IOA7为带数据反相器的高电平输出,置IOA0IOA3为带下拉电阻的输入管脚,此时若键仍没弹起,取IOA0IOA3的数据将得到另一个值,把这两个值组合就可得知是哪个键按下了,再通过查表得到键值。 图3 按键控制电路 2.2.3显示电路电路 为了给广大单片机爱好者提供方便,在显示电路的设计方面提供两种方案,第一种是采用四个LCD进行适时显示,这是比较理想的方案,但由于LCD成本较高,这里还提供另一种方案,用六个LED进行显示,这种方案的缺点是不能适时显示,但也能满足一般

12、设计要求。 第一种方案采用四个LCD进行动态显示,轮流显示波形和频率,直接用SPCE061A驱动液晶显示器,要占用较多的I/O口,这里采用ICM7211M来驱动,这样不仅节省I/O口而且减化了编程。用数字代表各种波形,显示波形的粗调频率。用IOA9IOA10口作为位选控制, IOA8口作为ICM7211M的片选信号,IOA11IOA14作为数据线。数据线和位选线直接接凌阳SPCE061A单片机的I/O口即可。 图4 LCD显示电路 第二种方案采用六个共阴极数码管LED进行动态显示波形和频率,直接用SPCE061A直接驱动LED,两位提供波形显示,四位提供频率显示。用IOB8IOB13口作为位选

13、控制, IOA8IOA14口传输要显示的数据,数据线和位选线直接接凌阳SPCE061A单片机的I/O口即可,因为I/O口输出电流很小不会对LED造成损坏,它的电压值却足以驱动LED,这不像别的单片机还要外接驱动电路和电阻,采用凌阳SPCE061A单片机大大减化了设计过程和硬件电路。硬件电路如图5所示。 图5 LED显示电路 2.2.4语音播报电路的设计电路 凌阳的SPCE061A是16位单片机,具有DSP功能,有很强的信息处理能力,最高时钟可达到49M,具备运算速度高的优势等等,这为语音的播放、录放、合成及辨识提供了条件。另外SPCE061A单片机具有32k闪存,事先把所需要的语音信号录制好,

14、整个语音信号经凌阳SACM_S480压缩算法压缩只占有13.2K存储空间,对凌阳SPCE061A单片机的存储系统来说绰绰有余。凌阳SPCE061A单片机自带双通道DAC音频输出, DAC1、DAC2转换输出的模拟量电流信号分别通过AUD1和AUD2管脚输出, DAC输出为电流型输出,经LM396音频放大,即可驱动喇叭放音,放大电路如图6(只列出了DAC1,DAC2类似)。在DAC1、DAC2后面接一个简单的音频放大电路和喇叭就能实现语音播报功能,这为单片机的音频设计提供了极大方便,音频的具体功能主要通过程序来实现。 图6 音频放大电路 三、软件设计 3.1主程序流程图 由于使用凌阳SPCE06

15、1A使外围电路变得异常简单,整个波形发生器的主体任务落到了程序编写上。整个系统的软件设计方案如图7,采用外部中断二来中断所显示波形,以便进入下一波形的编辑和输出,在波形输出的同时利用外部中断一来实现同步的频率调节。波形的具体产生是通过两路DAC来产生,之所以采用这种方式,是因为凌阳SPCE061A在这方面的设计为我们提供了极大的方便,在DAC的编程方面又提供了及其便利的编程环境。用函数来产生波形是大多数设计者喜之不舍得设计方案,但在具体设计方面,因为函数在单片机的运算过程中占据了太多的时钟周期,这就给我们追求高频波形一个瓶颈,要怎样解决这个问题呢?这里我采用查表来实现,根据理论凌阳SPCE06

16、1A单片机可达到一百兆的要求,这就能充分满足题目设计要求了,然而,由于函数产生波形极其方便,凌阳SPCE061A单片机有提供了大量函数库,在设计过程中我在低频部分依然采用函数设计。另外,波形频率随CPU的频率而变法,凌阳SPCE061A单片机的32768的实时时钟经过PLL倍频电路产生系统时钟频率(Fosc),Fosc再经过分频得到CPU时钟频率(CPUCLK)可通过对P_SystemClock(写)($7013H)单元编程来控制,这就为我们设计提供了丰富的CPU时钟选择。默认的Fosc、CPUCLK分别为24.576MHz和Fosc/8。我们可以通过对P_SystemClock单元编程完成对

17、系统时钟和CPU时钟频率的定义,改变设置将可提供多种频率选择。在本设计中,波形编辑的第一部就是进行CPU频率选择,选择最高频和最低频作为粗调,在用键盘和中断进行微调,以便达到所需的频率及其幅值。下面将对各部分编程作详细说明。 图7 整体流程图 3.2分块程序流程 按键控制部份 在键扫描的过程中,先置IOA0IOA3为带数据缓存器的高电平输出,置IOA4IOA7为带下拉电阻的输入管脚,此时若有键按下,取IOA4IOA7的数据将得到一个值,把此值保存下来,再置IOA4IOA7为带数据反相器的高电平输出,置IOA0IOA3为带下拉电阻的输入管脚,此时若键仍没弹起,取IOA0IOA3的数据将得到另一个

18、值,把这两个值组合就可得知是哪个键按下了,再通过查表得到键值,跳转至相应程序段,执行输出相应波形或者编辑波形,从而达到控制波形的目的。整体按键过程如图8所示。 图8 按键控制流程图 正弦波形的形成 在设计之初,我一直都在尝试使用函数来计算输出波形,使用这种方法,在示波器上得到了很好的波形,但是在CPU时钟频率没调至最高的情况下,所得到的频率只是多少毫赫兹到几十赫兹之间,基本上没有实用价值。要达到更高的频率,就得另辟蹊径了。分析一下为什么频率上不去,主要原因在于,使用单片机进行正弦函数的运算时占去了不少时间,如果去掉这一计算过程波形的频率应该大有提高,另外就是CPU时钟频率没有调至最高,以及DA

19、C转换过程需要时间。为了达到更高的频率,首先就要免去单片机的计算负担,我使用的解决方法是人为计算出要输出的点,然后建一个表通过查表来进行输出,这样主要工作任务就落到了建表的过程中。这样做的好处在于,查表所耗费的时钟周期相同,这样输出的点与点之间的距离就相等了,输出的波形行将更趋于完美,当然更让我们感到的高兴的是它输出波形的频率将近达到了100K赫兹,能够满足我们设计的扩展要求了。为了实现频率的调整,我在一个正弦波周期里建了两百个点,如果我们隔一个取点的话,且在CPU时钟频率不改变的情形下,正弦波频率将相对于前面的频率提高将近一倍。这样我们就得到了解决频率调整的方法,首先进行CPU时钟频率选择,

20、再调整一个正弦函数一个周期输出的点数,幅度的调节是通过初始幅度设置再通过外部放大电路来调节,设计程序流程图如图所示。另外,由于函数产生波形及其方便,凌阳SPCE061A单片机又提供了大量函数库,在设计过程中我在低频部分依然采用函数设计,因为这更有利于数字幅度和频率的调节。设计程序流程图如图9和10所示。 图9 正弦波形查表形成流程图 图10 正弦函数计算形成波形流程图 三角波、锯齿波的形成三角波、锯齿波形成的原理同正弦波形成的原理大致相同,在这里将不做作详细介绍,其流程图如图11所示。 图11 三角波查表形成流程图 方波的形成和实现方波是我们最常用的一种波形,并且常常作为一种标准信号应用在各个

21、领域,凌阳SPCE061A提供了一种很好的方波发生机制,就是APWM调制,通过写入P_TimerA_Ctrl($700BH)单元的第69位,可选择设置APWM输出波形的脉宽占空比;同理,写入P_TimerB_Ctrl($700DH)单元的第69位,便可选择设置BPWM输出波形的脉宽占空比。我们可以将IOB8设置成同相输出端口,通过设置P_TimerA_Ctrl(写)($700BH)的第05位来选择TimerA的时钟源(时钟源A、B)。设置该单元的第69位(如图12所示),TimerA将输出不同频率的脉宽调制信号,即对脉宽占空比输出APWM进行控制。这里为了得到最标准的波形采用这种方式来实现标准

22、方波。如图12所示就是我们进行APWM调制的原理图。 图12 APWMO信号时序图 在某些应用领域由于各种干扰和响应的存在,实际电路往往存在各种信号缺陷和瞬变信号,为了满足各种需要我们还设计了有频率突变的方波,如图11所示。具体设计方案是采用不停的输出和停止输出某一幅度的值,在一个序列周期我们总共提供八位可变数值,因为在数据传输过程中一般是八位为一帧进行传输。通过键盘的编辑可以达到我们的需求。 图13 有频率突变的方波 显示和播报时间和路程的显示采用动态显示,显示子程序流程图如图14,语音播报采用凌阳SACM_S480语音播报,流程图如图15 。 图14 显示子程序流程图 图15 语音播报流程

23、图 其它 在按键控制的第6到第12个按键,都是用来改变和编辑波形参数的,这就为整个系统能输出各种波形提供了可能性,以及增加了它的实用性。另外还用外部中断一来进行同步调试,我们可在中断里写入各种参数,就可达到我们所要求的波形及其实现参数变化的目的。 四、系统测试及整机指标 五、总结 (1)能产生正弦波、方波、三角波、锯齿波几种周期性波形,并且可通过调节变形成其它相关波形。 (2)用键盘输入编辑可生成正弦波由基波及其谐波线性组合的波形,以及各次谐波单独的波形。 (3)输出波形的频率范围为100mHz100kHz;可以通过键盘输入粗调频率,通过外部中断一可同步调节频率,具有在低频部分调节步进小,在高频部分大的特点。 (4)输出波形幅度范围为05V(峰-峰值),可通过可变电阻任意调整调整。 (5)具有显示输出波形的类型、及其粗调频率和幅度的功能。 (6)具备语音提示波形和粗调频率的功能。整个系统其性能指标均达到了要求,还增添了其它特色。通过此次设计,让我感到了凌阳SPCE061A十六位单片机的方便性和灵活性,通过对凌阳SPCE061A单片机的使用,可以使编程技能快速提高,并且认识到很多新的算法和设计思想。 六、参考资料1、凌阳大学计划网站

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号