基于fpga的多路pwm发生器设计内容摘要:

数来实现改变死区宽度。 多路 PWM 发生器的实现原理通过上面的设计可以实现单路的 PWM 的 FPGA 设计,利用 FPGA 来扩展 I/O 接口,可实现多路 PWM(脉宽调制)输出,在超声、电机控制等许多应用场合,需要产生多路频率,和脉冲宽度可调的 PWM 波形。 应用实现的单路的 PWM 的设计,可以推广到多路 PWM 设计,图 1-4 为多路 PWM 的系统原理框图。 通过一个主控 DSP 芯片内部计算产生输出生成 PWM 所需的频率、初始相位、占空比等参数,后级可并联数个 FPGA 内部又可以生成 8 路 PWM,通过级联FPGA,可以产生多路不同频率、占空比、初始相位的 PWM 信号,有较好的同步及一致性,对于需要多路 PWM 信号的系统实现有着很强的实用性。 初始 PWM 输出时钟脉宽信息字频率字初始相位字 相位延时计数器周期(频率)计数器脉宽(占空)计数器比较器图 1-4 多路 PWM 的系统原理图框图2 硬件电路设计 系统硬件的结构框图 使用 FPGA 与单片机相结合的方式构成 8 路 PWM 发生器的核心部分,这是一种从相位概念出发直接合成所需波形的一种新的全数字频率合成技术。 其中 FPGA 完成相位累加、波形地址查找及波形输出等功能,AT89S52 单片机实现频率控制字的输入和液晶显示部分。 FPGA 与单片机通过串行输入并行输出的方式进行通信。 本方案利用单片机输入数据控制字来控制 FPGA 软件实现脉冲波形宽度调制及频率的功能。 原理为:用单片机输入数字送入 FPGA 内部产生 PWM 波形,可以用 8 个发光二级管的亮度来表示脉冲宽度的大小;通过矩阵式键盘输入数据及对脉宽和频率大小的加减,从液晶显示器上可以清楚的观察到脉冲宽度和频率的大小,同时也可以从电机的转动速度的快慢来看出脉宽的大小。 根据实际要求和设计方案的论证,系统主要由 AT89S52 及相关的复位电路组成的单片机最小系统模块、FPGA 模块产生 8 路 PWM、液晶显示 LCD1602 显示模块和直流电机模块及电源模块、矩阵式键盘输入模块 6 部分电路组成。 综上述实际总体方案电路关系框图如图 21 所示:单片机AT89S52PWM 输出PWM 输出数据及控制信号数据及控制信号数据寄存器单路 PWM 发生器单路 PWM 发生器FPGA多个 FPGAFPGA/CPLD 8PWM波形单片机AT89S52LCD1602液晶显示矩阵式键盘直流电机电 源拨码开关图 21 硬件原理图 单片机最小系统模块 AT89S52 芯片介绍AT89S52 芯片结构图如图 22 图所示:图 22 AT89S52 芯片图AT89C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM) ,器件采用 ATMEL公司的高密度、非易失性存储技术生产,兼容标准 MCS51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,功能强大的 AT89C52 单片机可为您提供许多较复杂系统控制应用场合。 AT89C52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中断口,3 个 16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。 其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。 AT89C52 有 PDIP、PQFP/TQFP 及 PLCC 等三种封装形式,以适应不同产品的需求。 主要功能特性: 兼容 MCS51 指令系统 8k 可反复擦写(1000 次)Flash ROM 32 个双向 I/O 口 256x8bit 内部 RAM 3 个 16 位可编程定时/计数器中断 时钟频率 024MHz 2 个串行中断 可编程 UART 串行通道 2 个外部中断源 共 6 个中断源 2 个读写中断口线 3 级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能一些特殊口: RXD 串行输入口 TXD 串行输出口 INT0 外部中断 1 INT1 外部中断 2 T0 记时器 0 外部输入 T1 记时器 1 外部输入 WR 外部数据存储器写选通 RD 外部数据存储器读选通AT89C52 的管脚与 8052 基本相同 单片机电路设计本设计单片机主要是处理数字字并协调各个模块正常工作的部件。 AT89S52 单片机具有 4 个 8 路 I/O 口;本设计中主要是用了 P0 口显示模块的数据接口;P1 口作为矩阵式键盘数据输入控制,并用 P1 口的 P1P1P17 及复位口作为 USU 下载口;P2 口的 P2P2P23 位与 FPGA 通信,P24 位为霍尔传感器接口;P2P2P28 位作为液晶屏的使能接口;P3 口的 XXRST 位分别接复位、时钟晶振数据引脚;在此特别说明虽然 P0 内部没有上拉电阻,但是在本设计中只是做为液晶显示屏的数据总线或地址总线;在液晶显示屏模块上要用接上拉电阻。 At89S52 单片机接上相应的电源和时钟,组成单片最小系统系统如图 23 所示。 图 23 单片机最小系统 FPGA 开发板与单片机通信模块 EPlC3T144C8 芯片介绍主芯片 EPlC3T144C8:Altera Cyclone 系列 FPGA 是 A1tera 公司 2020 年 9 月份推出的,基于 1.5V, 工艺,Cyclone 是一个性价比很高的 FPGA 系列。 其中EPlC3T144 是 Cyclone 系列中的一员,共有 2910 逻辑单元,59904RAM bits,1 个PLLS,最多有 104 个用户 I/O,可以说这款 FPGA 的资源非常丰富,足够满足大型设计的需要。 本设计选用 Altera 公司的 Cyclone 系列芯片,芯片型号为 EPlC3T144C8,因为该芯片是 Altera 公司推出的低价格、高容量的 FPGA,其以较低的价格、优良的特性及丰富的片上资源在实际应用中被广泛的采用,这些都是其他同类产品无法相比的。 其芯片的总体框图如图 24 所示。 图 24 EPlC3T144C8 图(1)EPlC3T144C8 芯片的特点EPlC3T144C8 芯片的特点采用 内核电压, 工艺,与其他同类产品相比具有以下特点:①逻辑资源丰富,逻辑单元(LE)数量为 2910 个。 ②有 104 个可用 I/O 引脚,I/O 输出可以根据需要调整驱动能力,并具有压摆率控制、三态缓冲、总线保持等功能:整个器件的 I/0 引脚分为四个区,每个区可以独立采用不同的输入电压,并可提供不同电压等级的 I/0 输出。 ③多电压接口,支持 LVTTL,LVCMOS,LVDS 等 I/0 标准。 ④灵活的时钟管理,片内配有一个锁相环(PLL)电路,可以提供输入时钟的 1~32倍频或分频、156~417ps 相移和可变占空比的时钟输出,输出时钟的特性可直接在开发软件 Quartus II 里设定。 经锁相环输出的时钟信号既可以作为内部的全局时钟,也可以输出到片外供其它电路使用。 ⑤内有 SignalTap 嵌入式逻辑分析器,极大地方便了设计者对芯片内部逻辑进行检查,而不需要将内部信号输出到 I/O 管脚上。 (2)下载线电路 Altera 器件的编程连接硬件包括:ByteBlaster 并口下载电缆、ByteBlasterMV并口下载电缆、MasterBlaster 串口/USB 通信电缆、BitBlaster 串口下载电缆。 本设计采用了 ByteBlasterMV 串口下载电缆。 ByteBlasterMV 串口下载电缆采用两种下载模式:被动串行模式和 JTAG 仿真下载模式。 为了利用 ByteBlasterMV 并口下载电缆配置 系列 EPlC3T144,电源中应该连接上拉电阻,电缆的 VCC 脚连接到 电源,而器件的 VCC INT 引脚连到相应的 电源。 对于 PS 配置,器件的 VCC IO 引脚必须连到 或 电源。 对于 JTAG 在线配置和在线编程,电缆的 VCC 引脚必须连接 电源。 ByteBlasterMV 并口下载电缆与 PC 机相连的是 25 针插头,与 PCB 电路板相连的是 10 针插座。 数据从 PC 机并口通过 ByteBlasterMV 并口电缆下载到电路板。 (3)电源电路采用 LMl086 系列芯片为电路提供稳定的电源。 LMl086 是一系列工作在 负载电流下,最大输出电流为 的低输出电压控制器。 在本设计中用于为 FPGA 提供 和 电源电压,这是该芯片的主要特点。 74HC595 芯片介绍74HC595 是硅结构的 CMOS 器件,兼容低电压 TTL 电路,遵守 JEDEC 标准。 74HC595 是具有 8 位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器是分别的时钟。 数据在 SCHcp 的上升沿输入,在 STcp 的上升沿进入的存储寄存器中去。 如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(Ds) ,和一个串行输出(Q7’ ),和一个异步的低电平复位,存储寄存器有一个并行 8 位的具备三态的总线输出,当使能 OE(为低电平时) ,存储寄存器的数据输出到总线。 74HC595 芯片如图 25 所示。 8 位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。 图 25 74HC595 芯片(1)特点8 位串行输入 /8 位串行或并行输出存储状态寄存器,三种状态输出寄存器可以直接清除 100MHz 的移位频率(2)输出能力并行输出,总线驱动;串行输出;标准中等规模集成电路。 595 移位寄存器有一个串行移位输入(Ds) ,和一个串行输出(Q7’ ),和一个异步的低电平复位,存储寄存器有一个并行 8 位的,具备三态的总线输出,当使能 OE(为低电平时) ,存储寄存器的数据输出到总线。 (3)参考数据CPD 决定动态的能耗,PD=CPDVCCf1+∑(CLVCC2f0)f1=输入频率,CL=输出电容 ,f0=输出频率(MHz) ,Vcc=电源电压(4)引脚说明符号 引脚 描述Q0…Q7 15,1,7 并行数据输出GND 8 地Q7’ 9 串行数据输出MR 10 主复位(低电平)SHCP 11 移位寄存器时钟输入STCP 12 存储寄存器时钟输入OE 13 输出(低电平)有效DS 14 串行数据输入VCC 16 电源(5)功能输入 输出 功能SHCP STCP OE MR DS Q7’ Qn L ↓ L NC MR 为低电平时仅仅影响移位寄存器 ↑ L L L L 空移位寄存器到输出寄存器 H L L Z 清空移位寄存器,并行输出为高阻状态↑ L H H Q6 NC 逻辑高电平移入移位寄存器状态 0,包含所有的移位寄存器状态移入,例如,以前的状态 6(内部 Q6”)出现在串行输出位。 ↑ L H NC Qn’ 移位寄存器的内容到达保持寄存器并从并口输出↑ ↑ L H Q6’Qn’ 移位寄存器内容移入,先前的移位寄存器的内容到达保持寄存器并出。 (6)注释H=高电平状态L=低电平状态↑=上升沿↓=下降沿Z=高阻NC=无变化=无效当 MR 为高电平,OE 为低电平时,数据在 SHCP 上升沿进入移位寄存器,在 STCP 上升沿输出到并行端口。 (7)程序说明每当 spi_shcp 上升沿到来时,spi_ds 引脚当前电平值在移位寄存器中左移一位,在下一个上升沿到来时移位寄存器中的所有位都会向左移一位,同时 Q739。 也会串行输出移位寄存器中高位的值,这样连续进行 8 次,就可以把数组中每一个数(8 位的数)送到移位寄存器;然后当 spi_stcp 上升沿到来时,移位寄存器的值将会被锁存到锁存器里,并从 Q1~7 引脚输出。 其时序仿真波形图如图 26 所示。 图 26 74HC595 时序仿真波形 PFGA 电路设计PWM 技术最初是在无线电技术中用于信号的调制,后来在电机调速中得到了很好的应用。 在直流伺服控制系统中,通过专用集成芯片或中小规模数字集成电路构成的传统 PWM 控制电路往往存在电路设计复杂、体积大、抗干扰能力差以及设计困难、设计周期长等缺点,因此 PWM 控制电路的模块化、集成化已成为发展趋势。 它不仅可以使系统体积减小、重量减轻且功耗降低,同时可使系统的可靠性大大提高。 随着电子技术的发展,特别是 ASIC(专用集成电路)设计技术的日趋完善,数字化的EDA(电子设计自动化 )工具给电子设计带来了巨大变革,在电机控制等许多应用场合,需要产生多路频率和脉冲宽度可调的 PWM 波形,这可通过 FPGA 丰富的硬件资源和可以配置 I/ O 引脚来实现。 嵌入式系统中 FPGA 的应用。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。