引言
在电子工程设计与测试中,常常需要一些复杂的、具有特殊要求的信号,要求其波形可任意产生,频率方便可调。通常的信号产生器难以满足要求,市场上出售的任意信号产生器价格昂贵。结合实际需要,我们设计了一种任意波形发生器。电路设计中充分利用MATLAB的仿真功能,将希望得到的波形信号在MATLAB中完成信号的产生、抽样和模数转换,并将得到的数字波形数据存放在数据存储器中,通过单片机和CPLD控制,将波形数据读出,送入后向通道进行A/D转换和放大处理后得到所需的模拟信号波形。利用上述方法设计的任意波形发生器,信号产生灵活方便、功能扩展灵活、信号参数可调,实现了硬件电路的软件化设计。具有电路结构简单、实用性强、成本低廉等优点。
任意波形发生器的设计思想,是利用MATLAB的强大仿真功能,方便、快捷的生成给定频率、周期、脉宽的任意波形数据;并将数据预存在数据存储器中。在单片机控制下,利用CPLD电路产生地址读出数据,送入D/A转换电路,得到所需的任意波形信号。系统结构框图如图1;图中分频电路和地址发生器由CPLD实现。
图1 系统框图
电路设计及实现
单片机控制电路
单片机采用AT89C52芯片,通过软件编程产生所要求的控制信号。主要的控制参数包括:信号周期、脉宽;分频电路的开始信号、地址发生器的复位信号;E2PROM的选通信号;D/A转换电路的选通信号。在具体电路中,端口P1.0控制分频电路的启动、P1.1控制地址发生器的清零,P2.0控制28C256和AD7545的选通信号。单片机工作在定时器0方式,软件设计利用C语言实现。流程图如图2所示。
图2 软件流程图[page]
波形数据生成
MATLAB作为一款优秀的数学工具软件,具有强大的运算功能;可以方便的产生各种信号波形,在软件中实现波形信号的产生、抽样和模数转换。设计的任意波形发生器,数据存储器选用28C256芯片,信号波形通过MATLAB仿真产生;得到的波形数据存放在数据存储器28C256中。具体设计中,我们要求产生周期为200ms,脉宽为5ms的单/调频混合信号,其中单频信号的脉宽为4ms,频率为30KHz;调频信号的脉宽为1ms,频率为30KHz_35KHz。在MATLAB中设定抽样率为500KHz,得到了2500个波形数据。这些混合波形数据在烧录入数据存储器的过程中,由于波形数据较多,直接用手工录入数据存储器中不仅费时且容易出错。为克服这一弊端,通过MATLAB编程的方法将产生的波形数据按照HEX文件的INTEL格式存放,然后将这些波形数据整批次烧录入数据存储器中。采用上述方法,波形数据生成简单,快捷;可根据需要在软件程序中方便地修改信号参数;无需改动硬件电路即可实现信号参数的功能扩展。
CPLD逻辑设计
分频电路采用两片74HC163实现。通过分频电路,将12MHz的晶振标准频率分频后,得到500KHz的抽样频率,作为地址发生器的时钟。分频电路的工作由单片机控制。
地址发生器电路由3片74HC163组成,时钟频率为500KHz,有分频电路提供;和预存的波形数据抽样频率相一致,以实现数据的无失真读出。 电路设计中,采用ALTRA公司的EPM7128AETC100-10芯片,在MAX+PLUSⅡ开发环境中完成分频缏泛偷刂贩⑸鞯缏返纳杓啤;贑PLD的电路设计,可以省去大部分的中小规模集成电路和分离元件;使得电路具有集成度高、工作速度快、编程方便、价格低廉的显著优点。通过CPLD和数据预生成的信号实现方法,无需改变硬件电路,即可实现信号参数的任意调整;同时外围电路十分简单,为工程调试和应用带来了方便。
D/A转换电路
D/A转换电路的实现如图3所示。 电路中,AD7545将波形数据转换为模拟信号;LF353进行信号滤波和整形。
图3 D/A转换电路
结语
采用上述方法设计的任意波形发生器,通过软件和硬件结合,充分发挥MATLAB强大的仿真功能,尽可能的减少了硬件开销。根据实际需要,可产生正弦波、三角波、锯齿波、方波等多种波形,可以产生线性调频信号(LFM),单频脉冲信号(CW),余弦包络信号以及他们之间的组合信号等多种波形参数;满足了工程需要。该任意波形发生器已应用于在研项目“水中运动目标轨迹测量”中,效果良好。
关键字:CPLD 单片机 波形发生器
引用地址:
基于CPLD和单片机的任意波形发生器设计
推荐阅读最新更新时间:2024-03-16 13:12
51单片机RS485程序源码与proteus仿真图
单片机-485-PC串口通信.jpg (106.21 KB, 下载次数: 21) 下载附件 保存到相册 2018-3-26 01:45 上传 单片机源程序如下: #include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit P12=P1^2; char code str = you are the best! nr ; main() { uint j; TMOD=0x20; TL1=0xfd;TH1=0xfd; SCON=0x50; PCON &= 0xef; TR1=1; IE=
[单片机]
一场MCU厂商的低功耗跃进竞技赛:ULPBench成为发力点
近日一系列的新品发布,为我们展示出微控制器产业的最新发展趋势,即迎合与物联网领域紧密联系并飞速发展的电源产业和移动设备市场。基于EEMBC协会去年提出的ULPBench 电能标准,MCU厂商已经踊跃的投身于这场跃进游戏,新产品不断刷新测试结果,行业的领导地位也在不停的交替。 这一系列的反应,很像一场市场游戏,当厂商需要提高自身技术用以节省功耗时,开发者将会成为最后的赢家。 在过去,低功耗的MCU往往意味着低性能,但各厂商正努力通过提供越来越强大的MCU来适应低功耗应用,进而对这种关系发起挑战。但是对开发者而言,却面临着如何评价MCU厂商的成果的问题。传统的规格,例如在mW/MHz情况下的工作电流,和睡
[单片机]
PIC系列单片机与MCS-51系列单片机的区别
应该说有三个主要特点: (1)总线结构:MCS-51的总线结构是冯-诺依曼型 计算机在同一个存储空间取指令和数据 两者不能同时进行;而PIC的总线结构是哈佛结构 指令和数据空间是完全分开的 一个用于指令 一个用于数据 由于可以对程序和数据同时进行访问 所以提高了数据吞吐率。正因为在PIC系列单片机中采用了哈佛双总线结构,所以与常见的微控制器不同的一点是:程序和数据总线可以采用不同的宽度。数据总线都是8位的,但指令总线位数分别位12、14、16位。 (2)流水线结构:MCS-51的取指和执行采用单指令流水线结构 即取一条指令 执行完后再取下一条指令;而PIC的取指和执行采用双指令流水线结构 当一条指令被执行时 允许下一条指令同时
[单片机]
意法发布PC版MCU Finder选型工具
意法半导体(ST)发布其在PC版MCU Finder之选型工具,便于嵌入式开发人员在ST MCU应用开发使用的桌面环境中直接查看STM32和STM8微控制器的相关信息。那就请您跟随eeworld存储技术小编的脚步,来详细的了解下意法发布PC版MCU Finder选型工具。 延用意法深受欢迎的手机版MCU Finder选型工具ST-MCU-FINDER功能,PC版MCU Finder为用户提供便捷的选型工具、自行维护文档和ST MCU开发者社群链接。 新的PC版应用软件选型工具支持Windows、macOS和Linux 三大操作系统,让嵌入式开发人员能够在计算机上整合所有MCU资源,包括数据和工具,方便查看与提升效率。
[手机便携]
PICl6LF874单片机在电容测量模块中的应用
摘要:为提高电容测量精度,针对电容式传感器的工作原理设计了基于PICl6LF874单片机电容测量模块。简单阐述了电容测量电路的应用背景和国内外研究现状,介绍了美国Microchip公司PICl6LF874单片机的特性。电容式传感器输出的动态微弱电容信号通过PS02l型电容数字转换器把模拟量数据转换成数字量数据,所测数据由PICl6LF874单片机应用程序进行处理、显示和保存。实验结果表明,固定电容标称值为lO~20 pF的测量值相对误差在l%以内,同时也可知被测电容容值越大,测量值和标称值相对误差越小。 关键词:PICl6LF874;电容传感器;PS02l;测试 电容式传感器已广泛应用于工业、医学、军事等领城。但目前大部分电
[单片机]
MSP430单片机的热敏电阻温度测量
测量温度一般采用热敏电阻做传感器,测量的方法有R—V转换电压测量法和R—F转换频率测量法。这两种方法的电路复杂且成本高,电路中很多元器件直接影响测量精度。本文论述一种类R—F转换频率的测量法,用NE555定时器和热敏电阻等器件构成振荡器,由MSP430单片机的捕获功能来捕获多谐振荡器输出信号的高低电平并计数,热敏电阻Rt与捕获高低电平时的计数值的差值成正比关系。该方法电路简单、成本低,系统流程框图如图1所示。 1 负温热敏电阻 PT一25E2热敏电阻温度阻值变化曲线如图2所示。PSB型负温热敏电阻由Co、Mn、Ni等过渡金属元素的氧化物组成,经高温烧成半陶瓷,利用半导体毫微米的精密加工工艺,采用玻璃管封装,耐温性好,可
[单片机]
51单片机计时器和中断
计时器,中断 ############################ EX0(IE.0),外部中断0允许位; ET0(IE.1),定时/计数器T0中断允许位; EX1(IE.2),外部中断0允许位; ET1(IE.3),定时/计数器T1中断允许位; ES(IE.4),串行口中断允许位; EA (IE.7), CPU中断允许(总允许)位。 初始化对定时计数器操作: 第一步: 对TMOD赋值,以确定T0,T1的工作方式 第二部: 计算初值,写入TH0,TL0或者TH1,TL1 第三步: 中断方式,对IE赋值开放中断 第四步: 使TR0或者TR1置位,启动定时计数器工作方式是定时或者计数 TMOD: 低4位控制T
[单片机]
一文详解80C51单片机的指令集
数据传送类指令 数据传送是单片机最基本的操作。数据传送的一般功能是将源操作数传送到指令所指定的目的操作数,指令执行后,源操作数不变。 数据传送类指令一般不影响标志位。数据传送类指令共29条,可以分为两大类。一是采用MOV操作符,称为一般传送指令,共16条;二是采用非MOV操作符,称为特殊传送指令,共13条。 一般传送指令的 汇编 指令格式为: MOV是传送指令的操作助记符。其功能是将源操作数传送到目的操作数,源操作数内容不变。 该类指令的助记符,操作数,功能,字节数及执行时长(机器周期数),按目的操组数归类如下。 1)内部8位数据传送指令 内部 RAM 区是数据传送最活跃的区域,8位内部数据传送指令共15条,用于 单片机
[单片机]