基于CPLD和单片机的任意波形发生器设计

发布者:名字太长了吗最新更新时间:2012-07-23 来源: 21ic 关键字:CPLD  单片机  任意波形发生器 手机看文章 扫描二维码
随时随地手机看文章
    引言

    在电子子工程设计与测试中,常常需要一些复杂的、具有特殊要求的信号,要求其波形可任意产生,频率方便可调。通常的信号产生器难以满足要求,市场上出售的任意信号产生器价格昂贵。结合实际需要,我们设计了一种任意波形发生器。电路设计中充分利用MATLAB的仿真功能,将希望得到的波形信号在MATLAB中完成信号的产生、抽样和模数转换,并将得到的数字波形数据存放在数据存储器中,通过单片机和CPLD控制,将波形数据读出,送入后向通道进行A/D转换和放大处理后得到所需的模拟信号波形。利用上述方法设计的任意波形发生器,信号产生灵活方便、功能扩展灵活、信号参数可调,实现了硬件电路的软件化设计。具有电路结构简单、实用性强、成本低廉等优点。

    任意波形发生器的设计思想,是利用MATLAB的强大仿真功能,方便、快捷的生成给定频率、周期、脉宽的任意波形数据;并将数据预存在数据存储器中。在单片机控制下,利用CPLD电路产生地址读出数据,送入D/A转换电路,得到所需的任意波形信号。系统结构框图如图1;图中分频电路和地址发生器由CPLD实现。

    电路设计及实现

    单片机控制电路

    单片机采用AT89C52芯片,通过软件编程产生所要求的控制信号。主要的控制参数包括:信号周期、脉宽;分频电路的开始信号、地址发生器的复位信号;E2PROM的选通信号;D/A转换电路的选通信号。在具体电路中,端口P1.0控制分频电路的启动、P1.1控制地址发生器的清零,P2.0控制28C256和AD7545的选通信号。单片机工作在定时器0方式,软件设计利用C语言实现。流程图如图2所示。

    波形数据生成

    MATLAB作为一款优秀的数学工具软件,具有强大的运算功能;可以方便的产生各种信号波形,在软件中实现波形信号的产生、抽样和模数转换。设计的任意波形发生器,数据存储器选用28C256芯片,信号波形通过MATLAB仿真产生;得到的波形数据存放在数据存储器28C256中。具体设计中,我们要求产生周期为200ms,脉宽为5ms的单/调频混合信号,其中单频信号的脉宽为4ms,频率为30KHz;调频信号的脉宽为1ms,频率为30KHz_35KHz。在MATLAB中设定抽样率为500KHz,得到了2500个波形数据。这些混合波形数据在烧录入数据存储器的过程中,由于波形数据较多,直接用手工录入数据存储器中不仅费时且容易出错。为克服这一弊端,通过MATLAB编程的方法将产生的波形数据按照HEX文件的INTEL格式存放,然后将这些波形数据整批次烧录入数据存储器中。采用上述方法,波形数据生成简单,快捷;可根据需要在软件程序中方便地修改信号参数;无需改动硬件电路即可实现信号参数的功能扩展。 [page]

    CPLD逻辑设计

    分频电路采用两片74HC163实现。通过分频电路,将12MHz的晶振标准频率分频后,得到500KHz的抽样频率,作为地址发生器的时钟。分频电路的工作由单片机控制。

    地址发生器电路由3片74HC163组成,时钟频率为500KHz,有分频电路提供;和预存的波形数据抽样频率相一致,以实现数据的无失真读出。     [page]

   

电路设计中,采用ALTRA公司的EPM7128AETC100-10芯片,在MAX+PLUSⅡ开发环境中完成分频缏泛偷刂贩⑸鞯缏返纳杓啤;贑PLD的电路设计,可以省去大部分的中小规模集成电路和分离元件;使得电路具有集成度高、工作速度快、编程方便、价格低廉的显著优点。通过CPLD和数据预生成的信号实现方法,无需改变硬件电路,即可实现信号参数的任意调整;同时外围电路十分简单,为工程调试和应用带来了方便。  

    D/A转换电路

    D/A转换电路的实现如图3所示。 电路中,AD7545将波形数据转换为模拟信号;LF353进行信号滤波和整形。

 图3  D/A转换电路

    结语

    采用上述方法设计的任意波形发生器,通过软件和硬件结合,充分发挥MATLAB强大的仿真功能,尽可能的减少了硬件开销。根据实际需要,可产生正弦波、三角波、锯齿波、方波等多种波形,可以产生线性调频信号(LFM),单频脉冲信号(CW),余弦包络信号以及他们之间的组合信号等多种波形参数;满足了工程需要。该任意波形发生器已应用于在研项目“水中运动目标轨迹测量”中,效果良好。

关键字:CPLD  单片机  任意波形发生器 引用地址:基于CPLD和单片机的任意波形发生器设计

上一篇:气体泄漏超声检测系统的研究与设计
下一篇:AD736在机车信号智能监测中的应用

推荐阅读最新更新时间:2024-03-30 22:27

基于PowerPC440GP型微控制器的嵌入式系统设计
1 引言 PowerPC440GP是IBM公司推出的高性能32位RISC嵌入式处理器,片上集成了PowerPC440内核及各种丰富的外围设备接口资源,最高速度可达500 MHz,适合应用在嵌入式产品诸如交换机、路由器、网络服务器等台式设备中。本文针对该处理器的特点提出一种针对网络服务器的较为通用的应用系统设计方案,并对此方案的关键软硬件技术进行讨论。 2 PowerPC440GP的特点与性能 128位处理器局部总线(PLB)可提供峰值为4.2GB/s的读写能力,用来访问PCI,DDR SDRAM等高性能设备,采用36位地址路径,能提供64 GB内存寻址能力。 32位片上外围设备总线(0PB)连接串口、以太网口、外部总线
[单片机]
基于PowerPC440GP型<font color='red'>微控制器</font>的嵌入式系统设计
基于51单片机蓝牙模块控制风扇运行实现的经验
本次设计实现是在智能手机上,通过蓝牙控制器 软件,控制风扇的开、关、正传、反转。单片机最小系统 模块是整个设计的核心,通过单片机程序控制蓝牙信 息的接收、发送和电机的启动、停止、左转、右转。整个 设计采用两节 4.5 V 电池供电,电机驱动电压为 9 V, 单片机模块和蓝牙模块经过电压转换到 5 V。 对于单片机的选择,设计采用 AT89C51 单片机,工作稳定,使用简单,无需设计复位电路便可工作,还 可以作为开发板使用,程序下载和仿真方面不需要特 定的程序仿真设备,在较短时间内,即可通过单片机 本身的串口实现程序下载,对于程序容量和基本控制 方面,AT89C51 单片机都能满足设计要求 。 电机驱动,采用 L9110 驱
[单片机]
学习STM32单片机,要理解它的堆栈
学习STM32单片机的时候,总是能遇到 “堆栈” 这个概念。对于了解一点汇编编程的人,就可以知道,堆栈是内存中一段连续的存储区域,用来保存一些临时数据。堆栈操作由 PUSH、POP 两条指令来完成。而程序内存可以分为几个区:栈区(stack)、堆区(Heap)、全局区(static)、字符常量区、程序代码区。 栈,用于存放局部变量,局部数组等; 堆,用于malloc申请内存空间; 全局静态区,用于保存全局变量和静态变量; 字符常量区,用于保存字符串等; 代码区,用于保存程序的二进制代码。 程序编译之后,全局变量,静态变量已经分配好内存空间。在函数运行时,程序需要为局部变量分配栈空间,当中断来时,也需要将函数指针入栈,保护现
[单片机]
学习STM32<font color='red'>单片机</font>,要理解它的堆栈
51单片机 (2)流水灯实验
一、控制一/多灯亮灭 汇编实现 ;注释 LOOP: ;SETB P1.1 ;(1)熄灭灯 MOV P1,#0FFH; LCALL DELAY ;(2)延时一段时间 ;CLR P1.1 ;(3)点亮灯 MOV P1,#0FDH; LCALL DELAY ;(4)延时一段时间 AJMP LOOP ;(5)跳转到第一句LOOP处 ;以下子程序 DELAY: MOV R7,#250 ; D1: MOV R6,#250 ; D2: DJNZ R6,D2 ;R6=R6-1;IF(R6!=0) GOTO D2; DJNZ R7,D1 ;
[单片机]
51单片机蜂鸣器播放小星星两只老虎欢乐颂
里面自带有小星星,两只老虎和欢乐颂和生日快乐歌四首曲子。也可以自己加入自己想要的曲子。通过修改简谱数据表就能实现。每首歌都有两个数据表一个存储简谱(在简谱数据表中高音低音具有以下的转换方式:其中,1~7,表示中音的1-7,1+6~7—+6表示低音的1~7,1+13~7+13表示高音的1~7),一个存储每个音符的节拍值。0.5表示半拍,1表示1拍,注释中有。如果想要加入的曲子有十六分音符的话就不行,因为这个程序不支持 单片机源程序如下: #include reg52.h /*反复输出1~7七个音阶*/ typedef unsigned int u16; typedef unsigned char u8; sbit beep=
[单片机]
PIC单片机开发的经验、技巧总结分享
由美国Microchip公司生产的PIC系列单片机,由于其超小型、低功耗、低成本、多品种等特点,已广泛应用于工业控制、仪器、仪表、通信、家电、玩具等领域,本文总结了作者在PIC单片机开发过程中的一些经验、技巧,供同行参考。 1 怎样进一步降低功耗 功耗,在电池供电的仪器仪表中是一个重要的考虑因素。PIC16C××系列单片机本身的功耗较低(在5V,4MHz振荡频率时工作电流小于2mA)。为进一步降低功耗,在保证满足工作要求的前提下,可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如PIC16C××在3V,32kHz下工作,其电流可减小到15μA),但较低的工作频率可能导致部分子程序(如数学计算)需占用较多的时间。在这种情
[单片机]
PIC<font color='red'>单片机</font>开发的经验、技巧总结分享
单片机做显示器信号发生器
  在 维修 显示器 时,一般都是接 电脑 主机,经常拔插信号线很不方便。本文介绍的显示器信号发生器就可以替代电脑主机,给显示器一个信号,在维修时能显示各种信号,而且体积很小,携带在外维修也很方便。   我做的这个显示器信号发生器是在国外网站www.alexm.times.lv/vga_tester.htm看到的,电路原理图见下图,   PCB图见下图。主要是用单片机PICl6F84A来输出信号,74HCl64用来显示编码。一般 市场 上销售的彩显信号发生器都在130到200多元,而这个电路整个成本不到40元。   主要器件PICl6F84A市场价在12元左右,一些单片机网站都可以买到。 数码 管是共阳单管,VG
[单片机]
用<font color='red'>单片机</font>做显示器信号发生器
二代身份证智能采集器研究与开发
0 引 言 随着二代身份证的换发工作的推进,我国需要使用二代身份证的领域越来越广泛。由于二代身份证件是射频智能卡,可以通过二代身份证阅读器来读取身份信息,这为提高工作效率和录入信息的准确度提供了条件,但是二代证阅读器在银行、电信、邮政等行业推广使用仍有很大障碍。这是因为这些行业的业务终端一般都使用非windows操作系统的终端,但是二代证阅读器生产厂家提供的只是windows系统下的SDK开发包,使用户无法在这些行业进行二次开发。即便是windows系统,有些行业也不希望因为使用二代证阅读器而改动自己软件系统。基于这样情况,我们设计开发了二代身份证智能采集器,可以有效解决这个问题。二代身份证智能采集器是配合第二代居民身份证阅读器在
[单片机]
二代身份证智能采集器研究与开发
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved