一种基于apb总线的多功能模式定时器电路的制作方法_2

文档序号:9546616阅读:来源:国知局
信号置为0,并产生中断输出信号;控制单元将匹配寄存器A、B的值分别送入内部缓冲器,缓冲器的输出值与计数器的当前计数值分别进行比较,在二者值相等时,若方向控制信号为0,将输出信号A、B置为低电平,若为1将输出信号A、B置为高电平,并产生中断输出信号。
[0016]本发明与现有技术相比的优点在于:
[0017]1、本发明的定时器设计了四种功能模式,能够产生各种频率的方波信号,以及频率和占空比可变的PWM信号,定时器工作在捕获模式时,还可以对输入的信号进行捕获,因此能满足各种控制系统对定时器的需求,
[0018]2、本发明的定时器工作快速PWM模式及相位与频率修正的PWM模式时,采用了两个独立匹配单元,进行独立的比较,输出频率相同而占空比不同的两路波形信号。控制单元对相关寄存器采用缓冲模式设计,增加了 3个缓冲器,保证了 PWM信号输出波形的连续性和完整性。
[0019]3、本发明的定时器工作在捕获模式时,对输入信号进行了滤波处理,可以滤除小于4个时钟周期的脉冲信号。
【附图说明】
[0020]图1是本发明定时器电路的逻辑框图;
[0021 ] 图2是APB接口模块框图;
[0022]图3是可配置寄存器组模块框图;
[0023]图4是预分配器模块框图;
[0024]图5是计数器模块框图;
[0025]图6是捕获模块逻辑框图;
[0026]图7是控制单元逻辑框图。
【具体实施方式】
[0027]如图1所示,本发明一种基于APB总线的多功能定时器电路,包括APB接口模块、可配置寄存器组、预分频器、计数器、捕获模块、及控制单元。通过APB接口对可配置寄存器组内寄存器的进行读/写操作,配置定时器的工作模式,进而控制整个定时器的工作过程。
[0028]如图2所示为APB接口模块框图,左侧的信号是模块与APB总线的连接信号,包括:片信号psel,使能信号pneable,读写控制信号pwrite,地址信号paddr,写数据信号pwdata,读数据信号prdata。模块右侧的输入信号包括:可配寄存器组的输出信号cntrol、pretop、cloadtop、cloada、cloadb、catchval,预分配器的当前计数值 preval,以及计数器的当前计数值cntval。APB接口作用是应答APB总线的读/写访问,转换为对定时器内部寄存器的读/写操作。在APB总线写周期,当信号psel、pneable、pwrite有效时,对paddr进行译码,产生对可配置寄存器组内寄存器写操作信号rwsel [5:0]、rwr及wdata。在APB总线读周期,当信号psel、pneable有效时,对paddr进行译码,选择对应的模块右侧输入信号,赋给信号prdata。
[0029]如图3所示为可配置寄存器组模块框图。可配置寄存器组包括6个可配置寄存器,包括控制寄存器、预置值寄存器、计数值Top寄存器、比较匹配寄存器A、比较匹配寄存器B、捕获值寄存器。当输入信号rwSel[0]与rwr为高电平时,把输入信号wdata的值赋给控制寄存器,该寄存器值输出到control信号,其中control [0]用于设置定时器的启动和关闭,为1时,定时器启动,为0时定时器关闭control [2:1]用于设置定时器的工作模式,00时为普通模式,01时为捕获模式,10时为快速PWM模式,11时为相位与频率修正PWM模式control [3]用于设置定时器处于捕获模式时采样沿的选择,1为上升沿采样,0为下降沿采样。当输入信号rwsel[l]与rwr为高电平时,把输入信号wdata的值赋给预置值寄存器,该寄存器的值输出到pretop信号,送入预分频器提供起始分频的预置值;当输入信号rwsel [2]与rwr为高电平时,把输入信号wdata的值赋给计数值Top寄存器,该寄存器的值输出到cloadtop信号,送入控制单元,在控制单元内与计数器当前计数值进行比较,产生计数器控制信号及定时器输出信号;当输入信号rwsel [3]与rwr为高电平时,把输入信号wdata的值赋给比较匹配寄存器A,该寄存器的值输出到cloada信号,送入控制单元与计数器的当前计数值进行比较,根据比较结果,产生定时器输出信号outa ;当输入信号rwsel [4]与rwr为高电平时,把输入信号wdata的值赋给比较匹配寄存器B,该寄存器的值输出到cloadb信号,送入控制单元与计数器的当前计数值进行比较,产生定时器输出信号outb ;当输入信号rwsel [5]与rwr为高电平时,把输入信号wdata的值赋给捕获值寄存器,作为捕获事件的参考值,当cwr信号有效时,把输入的计数器的当前计数值cntval赋给捕获值寄存器,为捕获事件发时的捕获值。
[0030]如图4所示为预分频器的模块框图。预分频器为减法计数器,当输入信号conrol [0]为1时,即定时器启动,预分频器开始工作,加载输入信号pretop的值,每个时钟周期作减1计数,当预分频器的计数值减到0时,产生一个时钟周期的Tick信号,并重新加载输入信号pretop的值,重新开始减1计数。预分频器的当前计数值输出到preval信号,送入可配置寄存器组。计数值从pretop的值减到0为一个计数周期,通过不断循环计数周期,预分频器不间断产生Tick信号。
[0031]如图5所示为计数器的模块框图,计数器为可加/减计数器。在接收的Tick信号有效时,若控制单元给出的direct1n信号为1时,作减1计数,为0时,作加1计数。接收到控制单元的cntclr清零信号后,计数器的计数值清零,重新开始计数。计数器的当前计数值输出到cntval信号,送入到控制单元和可配寄存器组。
[0032]如图6所示为捕获模块的逻辑框图。捕获模块包括滤波电路和边沿检测电路。由控制单元给出的catchen信号有效后,滤波电路开始工作。滤波电路对定时器输入信号cin进行抑噪处理,若cin的脉冲宽度大于4个时钟周期,则cin输出到cvalid信号,若输入信号cin的脉冲宽度小于4个时钟周期,则输入被作为毛刺滤掉了,cvaild信号的值保持不变。边沿检测电路对信号cvalid进行边沿采样,若输入信号control [3]为1时,作上升沿采样,为0时,作下降沿采样,采样到有效边沿时,产生一个时钟周期的脉冲信号,输出到信号catchin,送入控制单元。
[0033]如图7所示为控制单元的逻辑框图。控制单元为时序控制逻辑电路,控制整个定时器的工作,包括模式控制电路、输出控制电路、比较单元、2个匹配单元、3个缓冲器。控制单元的输入信号包括:可配置寄存器组输出control [2:0]、cloadtop、cloada、cloadb,计数器输出信号cntval,以及捕获模块的输出catchin。控制单元的输出信号包括两部分,一部分为送给定时器其他模块的控制信号cwr、catchen、cntclr、direct1n,其中cwr为捕获寄存器赋值信号,catchen捕获使能信号,cntclr为计数器清零信号,direct1n为计数器计数方向控制信号;另一部分为定时器电路的波形输出信号outa、outb和中断输出信号inta、intb、intc、intd。
[0034]当信号contrl[0]为1时,模式控制电路开始工作,根据信号contrl [2:1]判断电路的工作模式。
[0035]当contrl [2:1]为00时,定时器处于普通工作模式。模式控制电路将输出信号direct1n置为0。信号cloadtop直接送入到比较单元与信号cntval进行比较,若两个值相等,比较单元有效overflow信号,模式控制电路产生计数器清零信号cntclr ;输出控制电路将outa信号反向后输出,同时有效溢出中断信号inta。
[0036]当contrl [2:1]为01时,定时器处于捕获工作模式。模式控制电路将输出信号direct1n置为0,将捕获使能信号catchen置为1 (该信号在其他模式置为0),当检测到输入信号catchin有效时,产生捕获寄存器赋值信号cwr ;输出控制电路检测到输入信号catchin有效,有效捕获中断信号intb。
[0037]当contrl [2:1]为10时,定时器电路处于快速PW
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1