新闻中心

EEPW首页 > EDA/PCB > 设计应用 > NiosⅡ系统Avalon总线PWM设计

NiosⅡ系统Avalon总线PWM设计

作者:时间:2011-12-06来源:网络收藏

的构建过程中,SoPC Builder开发环境集成了许多常用类型的设备模型,供开发者调用。在日新月异的嵌入式设计中开发环境所集成的接口设备是非常有限的,有时无法满足开发者的需要,SoPC Builder开发工具允许用户依据规则扩展自己的所需设备,完成的设计和开发,开发者按照总线规范将设备驱动程序集成到SoPC Builder的硬件抽象层(HAL)中,在SoPC Builder环境下加载使用,方便了用户开发一个自定制的片上系统。本文通过在Ⅱ嵌入式系统内部集成了基于总线的脉冲宽度调制()从外设,介绍了自定制设备的过程。将其应用在嵌入式智能小车监控系统,为采用 II处理器的开发者提供了一些方法和建议。

本文引用地址:http://www.eepw.com.cn/article/190938.htm

1定制基于Avalon总线的用户外设介绍

NiosⅡ的Avalon总线不同于其他微处理器的固定外设,Nios Ⅱ的外设是可以任意定制的,这使得用户可以根据具体的应用需求而定制。所有的Nios Ⅱ系统外设都是通过Avalon总线与NiosⅡ软核相连,从而进行数据交换。因此对于用户定义的外设必须遵从该总线协议才可与Nios Ⅱ之间建立联系。

Avalon信号接口定义了一组信号类型片选、读使能、写使能、地址、数据等,用于描述主从外设上基于地址的读写接口。外设使用准确的信号与其内核逻辑进行接口,并删除会增加不必要开销的信号。

在Nios Ⅱ系统中一个自定义设备由如下几部分组成:
  (1)硬件文件:用HDL语言编写的描述自定义设备元件逻辑的硬件描述文件。
  (2)软件文件:用C语言编写的设备寄存器文件以及设备的驱动程序文件。
  (3)设备描述文件(Ptf):本文件描述了设备的结构,包含SoPC Builder配置以及将其集成到系统中时所需要的信息。本文件由SoPC Builder根据硬件文件以及软件文件自动生成。

2基于NiosⅡ系统的设计

是利用数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于从测量、通信到功率控制与变换的许多领域中。实际上PWM是一种对模拟信号电平进行数字编码的方法,通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电或者完全有,或者完全无。电压或电流源是以一种通或断的重复脉冲序列被加到模拟负载上。通即是直流供电被加到负载上,断即是供电被断开。只要带宽足够,任何模拟值都可以使用PWM进行编码。

2.1硬件设计

硬件文件指的是HDL文件,由以下几个模块组成:
  逻辑模块:描述设备的逻辑功能;
  寄存器映射模块:为内部逻辑模块和Avalon总线提供了通信接口;
  Avalon总线接口模块:使Avalon总线访问寄存器从而完成相应的逻辑功能。

2.1.1 逻辑结构

对于自定义的PWM也是由以上几部分模块组成。PWM按照以下要求设计:
(1)任务逻辑按一个简单时钟进行同步操作。
(2)任务逻辑使用32位计数器为PWM提供一个一定范围的周期和占空比,最大周期可设为232个clk。
(3)可以使用微控制器来设置PWM的周期和占空比的值,因此要提供一个可对寄存器进行读写的接口和控制逻辑。
(4)定义寄存器来存储PWM周期和占空比的值。
(5)微控制器可以通过控制寄存器的禁止位关闭PWM输出。

PWM任务逻辑的结构图如图1所示。

76.jpg

PWM任务逻辑由输入时钟(clock)、输出信号端口(pwm_out)、使能位、32位计数器以及一个32位比较电路组成。clk作为32位计数器的时钟信号,32路比较电路比较32位计数器的当前值与占空比设定寄存器(Duty Cycle Value Register)中的值来决定pwm_out的输出为高或低。当当前计数器中的值小于或等于占空比寄存器中的值时,pwm_out输出低电平,否则输出高电平。PWM周期设定寄存器(Modulo_n ValueRegister)用来设置pwm_out的信号周期,当当前计数器的值等于周期设定寄存器中的设定时,产生一个复位信号来清除计数器中的值。使能控制寄存器(EnableControl Register)能使时钟信号有效或无效,即控制计数器是否计数,从而保持pwm_out输出保持当前不变。

PWM内部包括使能控制寄存器(Enable ControlRegister)、周期设定寄存器(Modulo_n Value Register)以及占空比设定寄存器(Duty Cycle Value Register),如图1所示。设计中将各寄存器映射成Avalon从端口地址空间内一个单独的偏移地址。每个寄存器都能进行读/写访问,软件可以读回寄存器中的当前值。表1是PWM寄存器以及偏移地址列表。

77.jpg

PWM的Avalon接口需要一个简单的从端口,该端口使用Avalon总线信号完成寄存器的读/写传输。PWM与Avalon总线接口所需的信号如表2所示。

78.jpg

2.1.2 硬件设计文件与仿真

PWM硬件设计文件包含表3所示的三个Verilog编写的HDL文件。

79.jpg

pwm_tasK_logic.v完成PWM的逻辑功能,图2是此文件在QuartusⅡ环境下的仿真波形。

80.jpg

图2中:clock_divide信号设定PWM输出周期的时钟数,dutv_cycle信号设定一个周期内PWM输出低电平的时钟个数,两个信号设定值决定PWM信号的占空比和周期。

pwm相关文章:pwm原理



上一页 1 2 下一页

关键词: Avalon Nios PWM 系统

评论


相关推荐

技术专区

关闭