下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于FPGA的PWM与定时计数器IP核的设计 前言PWM是脉冲宽度调制(Pulse Width Modulation)的简称,在自动控制系统和计算机技术领域都有非常广泛的应用。在许多硬核式的嵌入式CPU中都有PWM和定时计数器模块的I/O口供用户使用,在交流检测、电机控制等实际应用系统中,PWM是整个系统的技术核心,在嵌入式操作系统中定时计数器也是不可缺少的部分。而在FPGA中的SOPC中,很多时候并没有提供这种模块供用户使用,因此设计出支持PWM输出的IP核具有很大的实用价值。针对市场上使用的FPGA情况,本文所提出的IP功能实现是基于Altera公司的cyclone II芯片,该功能模块不
2、仅可以作为独立的模块使用,而且可以嵌入到Altera公司提供的NIOS II处理器中,并通过NIOS II对该模块进行控制。HDL语言是一种通用性很强的语言,因此这个模块具有很高的移植性,不仅可以用于大多数的Altera芯片,而且对于其它公司生产的FPGA芯片同样适用。本设计中给出了模块与主系统的接口电路、功能逻辑电路以及外部输出端口。1 芯片功能描述本设计实现了PWM输出和定时器/计数器两大功能,IP核将根据内部寄存器的状态选择相应的工作模式完成系统的功能。(1)PWM工作模式。当IP工作在PWM模式下时,模块内部计数器将计算高低电平脉冲的时间长度(或者是脉冲个数),模块根据用户自定义的PW
3、M输出脉冲占空比,产生具有占空比可调的二进制信号,最后以脉冲的形式输出。(2)定时器/计数器工作形式。当IP工作在定时器模式下时,芯片内部的32位定时器/计数器模块开始计数时钟周期的个数,当时钟周期数达到内部寄存器的预设的数值,则产生一个中断信号。该信号可以被主系统识别,并产生相应的中断功能。定时/计数的模式有单一循环和连续循环两种方式,并有内部系统时钟源和外部时钟源供选择,工作方式与时钟源的选择通过置位控制寄存器相应的位来选择。不论芯片是工作在PWM模式下,还是工作在定时器/计数器模式,它都必须使用内部寄存器。如果内部寄存器的值达到了预设值后不再增加,那么芯片应采取单一循环计数方式;如果内部
4、寄存器的值达到了预设值后便复位,重新开始加1计数,那么芯片应采取连续循环计数方式。上述逻辑功能是通过AVALON交换结构与主系统端口进行连接。2 IP结构设计本设计的总体电路结构包含主系统电路接口、芯片内部寄存器区和数据缓存区、芯片内部组合逻辑电路模块和时序逻辑电路模块和独立的外部I/O端口4个主要的功能模块,如图1所示。图1 芯片总体结构图 2.1 设备接口电路主系统电路接口使用的是基于AVALON总线标准的SoC(System-on-Chip)电路互连接口规范,可以通过它与其他主系统(如NIOS II处理器)互连,共同组成功能更大的芯片。假设某个主系统设计需要应用本设计,完成PWM输出,或
5、者完成定时、计数功能,那么必须按下图所示的模型通过电路接口进行互连,这种互连结构由Quartus里的SOPC Builder自动完成,用户只需要定义从端口的接口逻辑。图2 电路系统的应用模型AVALON标准的SoC(System-on-Chip)电路互连接口规范定义了两种类型的接口:主设备接口和从设备接口。本设计使用的从设备接口。主设备和从设备按照下列步骤进行互连。(1)主设备利用主接口向本设计芯片发送数据和功能请求。(2)AVALON总线结构对主系统的数据进行翻译、打包,将其转换为接口标准所能识别的格式。(3)从设备接口交给从设备进行数据独立处理,并不向主系统返回数据。AVALON交换结构能
6、支持任何位宽度的总线(数据总线与地址总线的总和)。但为了能让IP有更好的移植性,使用的是32位的总线宽度。2.2寄存器描述寄存器是芯片电路实体区域与AVALON交换结构之间的缓冲区,这些寄存器的值联合起来确定芯片的工作方式和操作类型。本设计使用了4类寄存器:(1) PRTC_CNTR寄存器。PRTC_CNTR寄存器是芯片内部真正的计数寄存器,其存储的数值每经过一个有效的计数/定时时钟周期(由系统时钟或外部时钟端口的输入)后自动加1。为了实现计数、定时,系统还需要根据RPTC_CTRL寄存器其他控制位的值来实现。RPTC_CNTR寄存器是32位宽度的计数寄存器,若复位清零,则它重新从0开始向上加
7、1计数。(2)PRTC_HRC寄存器。PRTC_HRC寄存器是芯片内部引用寄存器(信号缓存器)的第二级输出,它具备以下两个功能:若寄存器用作引用寄存器,则它可以用于输出芯片PWM波形的高32位部分,也可以用于产生中断输出。若寄存器用作信号缓存器(也称为信号捕捉寄存器),则它在PTC_CAPT信号为高电平期间捕捉并缓存RPTC_CNTR寄存器的值。RPTC_CNTR寄存器是32位宽度的引用寄存器(信号缓存器),若芯片复位清零,则它的值复位为0。(3)PRTC_LRC寄存器。PRTC_LRC寄存器是芯片内部引用寄存器(信号缓存器)的第一级输出,它具备以下两个功能:若寄存器用作引用寄存器,则它可以用
8、于输出芯片PWM波形的低32位部分,也可以用于产生中断输出。若寄存器用作信号缓存器(也称为信号捕捉寄存器),则它在PTC_CAPT信号为低电平期间捕捉并缓存RPTC_CNTR寄存器的值。RPTC_CNTR寄存器也是32位宽度的引用寄存器(信号缓存器),若芯片复位清零,则它的值复位为0。(4)PRTC_CTRL寄存器。RPTC_CTRL寄存器是芯片内部的控制寄存器,它包含9bit控制位,通过写这些控制位执行不同的逻辑功能。2.3 IP内部逻辑设计芯片内部的电路模块包含了时钟分频模块、PWM输出与技术/定时器的引用比较模块以及中断发生器模块。利用这些电路模块,芯片提供了PWM输出和定时器/计数器这
9、两种工作模式,可以根据控制寄存器PRTC_CTRL的值来选取工作模式。其它的逻辑功能如对计数器里的数值的捕获进行缓存,定时计数器时钟的选择都是由控制寄存器的相应的位的设置来进行。(1)PWM输出模块。芯片复位信号不能输出脉冲波形。PWM模块由寄存器RPTC_HRC和RPTC_LRC、比较器以及RS触发器构成。寄存器RPTC_HRC存放的是输出脉冲高电平持续的时钟周期数,寄存器RPTC_LRC存放的是输出脉冲低电平持续的时钟周期数。(2)定时器/计数器模块。定时器/计数器模块由寄存器PRTC_LRC、寄存器RPTC_CNTR和寄存器捕捉模块构成。通过设置PRTC_LRC里的参数确定定时/计数时间
10、,输出结果由PRTC_LRC与RPTC_CNTR比较的结果来确定。2.4 逻辑功能仿真对模块的逻辑功能的仿真使用的是Quartus7.2版里自带的仿真工具,在编写好测试向量的波形文件后即可对输出功能是否复合设计要求进行验证。验证的结果是复合设计要求的,仿真图如图3所示。3 驱动程序设计要实现对IP硬件逻辑电路进行操作,也就是对参数进行在线操作或者是主设备对IP进行控制,则要编写逻辑电路的驱动程序。Nios II IDE为用户提供了设备驱动程序,也就是硬件抽象层(HAL)系统库,HAL应用程序接口(API)与ANSI C标准库综合在一起就形成了上层应用程序与下层硬件电路接口平台。设备驱动程序可以
11、概括一组描述设备的数据结构和控制设备行为的函数集合,函数就是用来实现设备的访问。驱动程序执行过程如图4所示:图4 设备驱动框图对IP模块进行驱动程序开发的过程如下:(1) 创建一个设备头文件,用于描述设备的寄存器和访问方法。在这个头文件中,要用清晰易懂的宏符号描述出设备的四个寄存器,并给出访问方法。头文件的文件名遵循“pwm_timer_regs.h” 的格式;用“IORD_”的形式定义寄存器的读访问方式;用“IOWR_”的形式定义寄存器的写访问方式;用“_MSK”的形式定义寄存器位的掩码;用“_OFST”的形式定义寄存器位的偏移位置。(2) 定义并实现设备驱动的功能。IDE中的各种设备都是一
12、个抽象的结构体,在SOPC中订制这个设备,只有在驱动中实例化,才能在内存空间中开辟一块内存空间,而对内存的控制的通过地址来实现的,通过这个地址和偏移地址就可以对IP模块的寄存器进行读写控制。设备实例化就可以按用户意图编写多种功能函数,这些函数在用户的应用程序中可以方便的调用。(3) 将设备驱动集成到HAL中。驱动程序开发完毕后,要把源程序文件放到约定的目录下,并为模块编写一个控制IDE软件编译连接Makefile文件,这样驱动程序才能编译到HAL系统库中。文件格式如下:C_LIB_SRCS+=pwm_timer_regs.cASM_LIB_SRCS += INCLUDE_PATH += 上面程序中,C_LIB_SRCS是放置欲编译的C文件,ASM_LIB_SRCS是欲编译的汇编文件,INCLUDE_PATH是要文件包含路径。完成以上步骤后,在SPOC Builder中添加该模块并定制到NIOS II处理器中,即可以在应该程序中对脉冲模块进行操作了。4 结语本文提出了一种基于FPGA的PWM/定时计数器的数字芯片设计思路,设计的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年义乌工商职业技术学院单招职业适应性测试题库必考题
- 2026年浙江经贸职业技术学院单招职业倾向性测试题库新版
- 2026年湘潭医卫职业技术学院单招职业适应性测试必刷测试卷必考题
- 2026年新疆阿克苏地区单招职业适应性考试题库附答案
- 2026年九江职业大学单招职业技能测试必刷测试卷及答案1套
- 2026年扎兰屯职业学院单招职业适应性测试题库及答案1套
- 2026年宁夏职业技术学院单招职业倾向性测试必刷测试卷及答案1套
- 2026年青海省海北藏族自治州单招职业倾向性考试必刷测试卷及答案1套
- 2026年兰州外语职业学院单招职业技能测试题库及答案1套
- 2026年厦门演艺职业学院单招职业倾向性考试必刷测试卷必考题
- 2024年山东省公务员考试申论(C卷)真题答案解析
- 2025广东惠州市政务服务和数据管理局编外人员招聘6人考试笔试参考题库附答案解析
- 建筑施工扣件式钢管脚手架安全技术规范JGJ130-
- 压力管道强度计算书
- 李冬梅:第一讲+高中信息技术新课标理念目标与实施
- 龙泉股份:淄博龙泉盛世物业有限公司审计报告
- 《建筑设计》课程思政教学案例(一等奖)
- 矿山工程工程量清单项目及计算规则
- 白鹿洞书院讲义
- T∕CIC 049-2021 水泥窑用固体替代燃料
- 北京市海淀区2021-2022学年七年级上学期期末考试地理试卷(Word版无答案)
评论
0/150
提交评论