CN105302226A - 一种基于apb总线的多功能模式定时器电路 - Google Patents
一种基于apb总线的多功能模式定时器电路 Download PDFInfo
- Publication number
- CN105302226A CN105302226A CN201510728974.6A CN201510728974A CN105302226A CN 105302226 A CN105302226 A CN 105302226A CN 201510728974 A CN201510728974 A CN 201510728974A CN 105302226 A CN105302226 A CN 105302226A
- Authority
- CN
- China
- Prior art keywords
- value
- signal
- register
- timer
- counter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
一种基于APB总线的多功能模式定时器电路,本发明通过APB接口挂接在SoC电路内部APB总线上;定时器包括APB接口模块、可配置寄存器组、预分频器、计数器、捕获模块及控制单元。通过配置,定时器可分别工作在普通模式、捕获模式、快速PWM模式及相位与频率修正的PWM模式等四种模式下。定时器工作快速PWM模式及相位与频率修正的PWM模式时,采用了两个独立的匹配单元,可以进行独立的比较,输出两路频率相同而占空比不同的波形信号;定时器相关寄存器采用缓冲模式设计,保证了输出波形完整性和连续性。定时器在捕获模式下,可以对输入信号进行捕获,对输入信号进行了抑噪处理,小于4个系统时钟周期的电平抖动都将被滤除。
Description
技术领域
本发明属于电路设计领域,用于SoC芯片设计,涉及一种基于APB总线的多功能模式定时器电路。
背景技术
随着设计工艺的发展,IC设计水平的不断提高,使得片上SoC的设计成为目前一种主流技术,并成为未来IC设计发展的必然趋势。SoC的设计从整个系统性能要求出发,把微处理器、总线结构、存储器模块、模拟/数字IP等集成到单个芯片上,并且各个功能模块采用标准的总线协议进行连接。一般SoC芯片内部都配有定时器模块,因此本发明设计了一种基于APB总线的多功能定时器电路,用于采用APB总线的SoC设计中,具有易于集成和可重用性。目前SoC芯片中集成的定时模块一方面功能模式单一,另一方面若产生的PWM信输出频率发生改变时,不能够产生完整的波形,因此目前的定时器已不能满足各种控制系统对定时器的需求。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供的一种基于APB总线多功能模式定时器电路,用一个定时器实现了4种功能模式;定时器内部设计了两个独立的匹配单元,每个比较单元具有独立的管脚进行波形输出,因此可以同时输出两路波形信号;定时器的控制逻辑相关寄存器采用了缓冲模式,增加了3个缓冲器,保证了输出的PWM信号连续性和完整波性;为了便于系统对定时器的控制,定时器在条件满足时,能够产生4类中断请求信号。
本发明的技术方案是:一种基于APB总线的多功能模式定时器电路,包括APB接口模块、可配置寄存器组、预分频器、计数器、捕获模块及控制单元;
APB接口:APB接口与定时器外部的APB总线连接,应答APB总线的读写访问,转换为对定时器内部寄存器的读写操作;在APB总线写周器,APB接口输出写操作信号到可配置寄存器组;在APB总线读周期,APB接口接收可配置寄存器组输出、预分频器的输出及计数器的输出,选择对应的数据送到APB总线上;
可配置寄存器组:接收APB接口输出的写信号、控制单元输出的捕获赋值信号、计数器输出信号及预分频器输出信号;包括控制寄存器、预置值寄存器、比较匹配寄存器A、比较匹配寄存器B、计数值Top寄存器、捕获值寄存器6个可配置寄存器;其中控制寄存器用于设置定时器的工作模式、启动和关闭、输入信号捕获时边沿的选择;预置值寄存器提供预分频器起始分频的预置值;比较匹配寄存器A、比较匹配寄存器B的值分别送入控制单元,在控制单元内与计数器的当前计数值分别进行比较,控制单元根据比较结果分别产生定时器输出信号A、定时器输出信号B及中断输出信号;计数值Top寄存器送入控制单元,用于设置计数器计数的最大值;捕获值寄存器用于在捕获事件发生时,存放计数器的计数值;
预分频器:接收可配置寄存器组输出的定时器启动信号,加载可配置寄存器组输出的预置值寄存器的值,每个时钟周期作减1计数,当计数值减到0时,产生一个时钟周期的脉冲信号Tick,重新加载预置值寄存器的值,重新开始;
计数器:接收控制单元输出的方向控制及清零信号,以及接收预分频器的脉冲信号Tick;在Tick有效时,若方向控制信号为1时,作减1计数,若方向控制信号为0时,作加1计数;当计数器收到清零信号时,计数值置为0,重新开始计数;
捕获模块:接收控制单元输出的捕获使能信号,并监测外部输入信号,当检测到外部输入信号有效的上升沿或下降沿,产生捕获有效信号,送入控制单元;
控制单元:控制单元接收可配置寄存器组输出信号、计数器输出信号、捕获模块捕获有效信号;所述的控制单元为时序控制逻辑电路,控制整个定时器的工作;设置定时器的工作模式,产生计数器的方向控制及清零信号;在捕获模式时,产生捕获寄存器赋值信号、捕获使能信号,在其他模式下,把计数器的计数值与可配置寄存器组中相关寄存器的值进行比较,产生定时器输出信号A、定时器输出信号B及中断输出信号;
定时器通过配置分为工作在普通模式、捕获模式、快速PWM模式及相位与频率修正的PWM模式四种模式;
在普通模式下,定时器输出1路频率可调的方波信号;在该模式下,定时器工作流程如下:通过APB接口对可配置寄存器组内寄存器进行配置,设置控制寄存器的值将定时器置于普通模式,设置预置值寄存器的值、计数值top寄存器的值,启动定时器;定时器启动后,预分频器开始工作,加载预置值寄存器的值,每个时钟周期减1计数,当计数值减到0时,产生一个时钟周期的Tick脉冲信号,并重新加载预置值寄存器的值,重新开始减1计数;计数器从0开始加1计数,每检测到一次Tick信号有效,计数器的计数值加1;控制单元把计数器的当前计数值与计数值top寄存器的值进行比较,在二者的值相等时,将定时器输出信号A进行反向后输出,产生中断信号和计数器清零信号;计数器检测到控制单元输出的清零信号有效,将计数器的计数值设置为0,重新开始计数;
在捕获模式下,定时器不输出波形信号,而是对定时器的输入信号进行捕获;在该模式下,定时器工作流程如下:通过APB接口对可配置寄存器组内寄存器进行配置,设置控制寄存器的值将定时器置于捕获模式,设置预置值寄存器的值,启动定时器;定时器启动后,预分频器开始工作,加载预置值寄存器的值,每个时钟周期作减1计数,当计数值减到0时,产生一个时钟周期的Tick脉冲信号,并重新加载预置值寄存器的值,重新开始减1计数;计数器从0开始加1计数,每检测到一次Tick信号有效,计数器的计数值加1,计数器的计数值达到最大值后,从0开始重新计数;控制单元将输出的捕获使能信号有效,捕获模块开始工作;捕获模块先对定时器输入信号进行抑噪处理,所有的小于4个时钟周期的电平变化都被作为毛刺滤掉了,当检测到输入信号的有效边沿时,产生捕获有效信号;控制单元检测到捕获有效信号有效时,产生捕获赋值信号和中断输出信号;可配置寄存器组检测捕获赋值信号有效时,将计数器的当前计数值写入到捕获值寄存器;
在快速PWM模式,定时器输出2路频率和占空比均为可调的PWM波形;在该模式下,定时器工作流程如下:通过APB接口对可配置寄存器组内寄存器进行配置,设置控制寄存器的值将定时器置于快速PWM模式,设置预置值寄存器的值、计数值top寄存器的值、比较匹配寄存器A的值、比较匹配寄存器B的值,启动定时器;定时器启动后,预分频器开始工作,加载预置值寄存器的值,每个时钟周期减1计数,当计数值减到0时,产生一个时钟周期的Tick脉冲信号,并重新加载预置值寄存器的值,重新开始减1计数;计数器从0开始加1计数,每检测到一次Tick信号有效,计数器的计数值加1;控制单元把计数值top寄存器的值送入内部的缓冲器,缓冲器的输出值与计数器的当前计数值进行比较,在二者的值相等时,控制单元将输出信号A、B置为高电平、有效中断输出信号及计数器清零信号;控制单元将匹配寄存器A、B的值分别送入内部缓冲器,缓冲器的输出值与计数器的当前计数值分别进行比较,若两个值相等,分别将输出信号A、B置为低电平,并产生中断信号;计数器检测到控制单元输出的清零信号有效,将计数值设置为0,重新开始计数;
在相位与频率修正PWM模式下,定时器输出2路相位与频率均可调的PWM信号;在该模式下,定时器工作流程如下:通过APB接口对可配置寄存器组内寄存器进行配置,设置控制寄存器的值将定时器置于相位与频率修正PWM模式,设置预置值寄存器的值、计数值top寄存器的值、比较匹配寄存器A的值、比较匹配寄存器B的值,启动定时器;定时器启动后,预分频器开始工作,加载预置值寄存器的值,每个时钟周期减1计数,当计数值减到0时,产生一个时钟周期的Tick脉冲信号,并重新加载预置值寄存器的值,重新开始减1计数;在该模式下,计数器采用双斜坡的方式工作,每检测到一次Tick信号有效,控制单元输出的方向控制信号为0时,计数器加1计数,为1时,计数器减1计数;控制单元先将方向控制信号置为0,把计数值top寄存器的值送入内部的缓冲器,缓冲器的输出值与计数器的当前计数值进行比较,在二者的值相等时,控制单元将方向控制信号置为1;在方向控制信号为1期间,冲计数器的当前计数值与0,进行比较,在二者值相等时,控制单元将计数方向控制信号置为0,并产生中断输出信号;控制单元将匹配寄存器A、B的值分别送入内部缓冲器,缓冲器的输出值与计数器的当前计数值分别进行比较,在二者值相等时,若方向控制信号为0,将输出信号A、B置为低电平,若为1将输出信号A、B置为高电平,并产生中断输出信号。
本发明与现有技术相比的优点在于:
1、本发明的定时器设计了四种功能模式,能够产生各种频率的方波信号,以及频率和占空比可变的PWM信号,定时器工作在捕获模式时,还可以对输入的信号进行捕获,因此能满足各种控制系统对定时器的需求,
2、本发明的定时器工作快速PWM模式及相位与频率修正的PWM模式时,采用了两个独立匹配单元,进行独立的比较,输出频率相同而占空比不同的两路波形信号。控制单元对相关寄存器采用缓冲模式设计,增加了3个缓冲器,保证了PWM信号输出波形的连续性和完整性。
3、本发明的定时器工作在捕获模式时,对输入信号进行了滤波处理,可以滤除小于4个时钟周期的脉冲信号。
附图说明
图1是本发明定时器电路的逻辑框图;
图2是APB接口模块框图;
图3是可配置寄存器组模块框图;
图4是预分配器模块框图;
图5是计数器模块框图;
图6是捕获模块逻辑框图;
图7是控制单元逻辑框图。
具体实施方式
如图1所示,本发明一种基于APB总线的多功能定时器电路,包括APB接口模块、可配置寄存器组、预分频器、计数器、捕获模块、及控制单元。通过APB接口对可配置寄存器组内寄存器的进行读/写操作,配置定时器的工作模式,进而控制整个定时器的工作过程。
如图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。
如图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[1]与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赋给捕获值寄存器,为捕获事件发时的捕获值。
如图4所示为预分频器的模块框图。预分频器为减法计数器,当输入信号conrol[0]为1时,即定时器启动,预分频器开始工作,加载输入信号pretop的值,每个时钟周期作减1计数,当预分频器的计数值减到0时,产生一个时钟周期的Tick信号,并重新加载输入信号pretop的值,重新开始减1计数。预分频器的当前计数值输出到preval信号,送入可配置寄存器组。计数值从pretop的值减到0为一个计数周期,通过不断循环计数周期,预分频器不间断产生Tick信号。
如图5所示为计数器的模块框图,计数器为可加/减计数器。在接收的Tick信号有效时,若控制单元给出的direction信号为1时,作减1计数,为0时,作加1计数。接收到控制单元的cntclr清零信号后,计数器的计数值清零,重新开始计数。计数器的当前计数值输出到cntval信号,送入到控制单元和可配寄存器组。
如图6所示为捕获模块的逻辑框图。捕获模块包括滤波电路和边沿检测电路。由控制单元给出的catchen信号有效后,滤波电路开始工作。滤波电路对定时器输入信号cin进行抑噪处理,若cin的脉冲宽度大于4个时钟周期,则cin输出到cvalid信号,若输入信号cin的脉冲宽度小于4个时钟周期,则输入被作为毛刺滤掉了,cvaild信号的值保持不变。边沿检测电路对信号cvalid进行边沿采样,若输入信号control[3]为1时,作上升沿采样,为0时,作下降沿采样,采样到有效边沿时,产生一个时钟周期的脉冲信号,输出到信号catchin,送入控制单元。
如图7所示为控制单元的逻辑框图。控制单元为时序控制逻辑电路,控制整个定时器的工作,包括模式控制电路、输出控制电路、比较单元、2个匹配单元、3个缓冲器。控制单元的输入信号包括:可配置寄存器组输出control[2:0]、cloadtop、cloada、cloadb,计数器输出信号cntval,以及捕获模块的输出catchin。控制单元的输出信号包括两部分,一部分为送给定时器其他模块的控制信号cwr、catchen、cntclr、direction,其中cwr为捕获寄存器赋值信号,catchen捕获使能信号,cntclr为计数器清零信号,direction为计数器计数方向控制信号;另一部分为定时器电路的波形输出信号outa、outb和中断输出信号inta、intb、intc、intd。
当信号contrl[0]为1时,模式控制电路开始工作,根据信号contrl[2:1]判断电路的工作模式。
当contrl[2:1]为00时,定时器处于普通工作模式。模式控制电路将输出信号direction置为0。信号cloadtop直接送入到比较单元与信号cntval进行比较,若两个值相等,比较单元有效overflow信号,模式控制电路产生计数器清零信号cntclr;输出控制电路将outa信号反向后输出,同时有效溢出中断信号inta。
当contrl[2:1]为01时,定时器处于捕获工作模式。模式控制电路将输出信号direction置为0,将捕获使能信号catchen置为1(该信号在其他模式置为0),当检测到输入信号catchin有效时,产生捕获寄存器赋值信号cwr;输出控制电路检测到输入信号catchin有效,有效捕获中断信号intb。
当contrl[2:1]为10时,定时器电路处于快速PWM模式。模式控制电路将输出信号direction置为0。输入信号cloadtop送到缓冲器T,缓冲器T的输出cloadtop_t送入到比较单元,与输入信号cntval进行比较,若两个值相等,比较单元有效overflow信号。模式控制电路检测到overflow信号有效,产生计数器清零信号cntclr,产生3个缓冲器的加载信号bload。信号cloada、cloadb值分别送入缓冲器A、B,缓冲器输出信号cloada_b、cloadb_b与输入信号cntval在匹配单元A、B内分别进行比较,若两个值相等,匹配单元A、B有效输出信号matcha、matchb。输出控制电路检测到matcha有效,将输出outa置为低电平,有效匹配中断信号intc,检测到matchb有效,将输出outb置为低电平,有效匹配中断信号intd。输出控制电路检测到overflow信号有效,将输出outa、outb置高电平,同时有效溢出中断信号inta。
当contrl[2:1]为11时,定时器电路处于相位与频率修正PWM模式。模式控制电路将输出信号direction置为0,输入信号cloadtop送到缓冲器T,缓冲器T的输出cloadtop_t送入到比较单元,与输入信号cntval进行比较,若两个值相等,将信号direction置为1,在direction信号为1期间,cntval的值与0进行比较,若两个值相等,则比较单元有效overflow信号。模式控制电路检测到overflow信号有效,产生3个缓冲器的加载信号bload。信号cloada、cloadb值分别送入缓冲器A、B,缓冲器输出信号cloada_b、cloadb_b与信号cntval在匹配单元A、B内分别进行比较,若两个值相等,匹配单元A、B有效信号matcha、matchb。输出控制电路检测到matcha有效,有效匹配中断信号intc,若信号direction为0时,输出outa置为低电平,若信号direction为高1时,将输出outa置高电平;输出控制电路检测到matchb有效,有效匹配中断信号intd,若信号direction为0时,输出outb置为低电平,若信号direction为高1时,将输出outb置高电平。输出控制电路检测到overflow信号有效,将有效溢出中断信号inta。
定时器可分别工作在普通模式、捕获模式、快速PWM模式及相位与频率修正的PWM模式下,在每种模式下定时器的具体工作过程为:
在普通模式下,定时器输出方波信号。设置控制寄存器的值control[2:1]为00,设置预分频器预置值寄存器pretop的值,设置计数值top寄存器cloadtop的值,设置定时器控制寄存器control[1]为1,则定时器开始工作。预分频器从pretop的值,开始减1计数,预分频器溢出时(即当前计数值preval等于0),产生一个时钟周期Tick脉冲信号,重新加载pretop的值,重新开始计数。控制单元将输出信号direction置为0,计数器作加法计数,每检测到一次Tick信号有效,计数器的计数值加1。控制单元把计数器的当前计数值cntval与colaodtop进行比较,若二者的数值相等,有效overflow信号,将输出管脚outa进行反向输出,有效溢出中断信号inta,有效计数器清零信号cntclr。计数器检测到信号cntclr有效,将计数值自动置为0,重新开始计数。
在捕获模式下,定时器不输出波形信号,而是对定时器输入信号cin进行捕获。设置控制寄存器的值control[2:1]为01,设置预分频器预置值寄存器pretop的值,设置定时器控制寄存器control[1]为1,则定时器开始工作。预分频器从pretop的值,开始减1计数,预分频器溢出时(即当前计数值preval等于0),产生一个时钟周期Tick脉冲信号,重新加载pretop的值,重新开始计数。控制单元将输出信号direction置为0,计数器作加法计数,每检测到一次Tick信号有效,计数器的计数值加1,计数器的计数值达到最大值后,从0重新开始计数。控制单元将捕获使能信号catchen置为1,捕获模块开始工作。捕获模块先对定时器输入信号cin进行抑噪处理,所有的小于4个时钟周期的电平变化都被作为毛刺滤掉了,当检测到cin的有效边沿时,产生捕获有效信号catchin。当控制单元检测到信号catchin有效时,则有效捕获赋值信号cwr,有效捕获中断信号intb。可配置寄存器组检测到信号cwr有效时,将计数器的当前计数值cntval保存至捕获值寄存器中。
在快速PWM模式下,可以输出频率和占空比均可调的PWM波形。设置控制寄存器的值control[2:1]为10,设置预分频器预置值寄存器pretop值,设置计数值top寄存器cloadtop的值,设置定时器控制寄存器control[1]为1,则定时器开始工作。预分频器从pretop的值,开始作减1计数,当预分频器溢出时(即当前计数值preval等于0),产生一个时钟周期Tick脉冲信号,重新加载pretop的值,重新开始计数。控制单元将输出信号direction置为0,计数器作加法计数,采用单斜坡的方式工作,每检测到一次Tick信号有效,计数器的计数值加1。控制单元把计数器的计数值top寄存器的值cloadtop置入缓冲器,缓冲器的输出值与计数器的当前计数值cntval进行比较,若两个值相等,有效overflow信号、计数器清零信号cntclr、3个缓冲器的加载信号bload。控制单元将匹配寄存器A的值送入缓冲器A,缓冲器的输出值与计数器的当前计数值cntval进行比较,若两个值相等,将输出outa置为低电平,有效匹配中断信号intc。控制单元将匹配寄存器B的值送入缓冲器B,缓冲器的输出值与计数器的当前计数值cntval进行比较,若两个值相等,将输出outb置为低电平,有效匹配中断信号intd。在overflow信号有效时,控制单元将输出outa、outb置为高电平,同时有效溢出中断信号inta。计数器检测到信号cntclr有效,计数值自动置为0,重新开始计数。比较匹配寄存器A、B和计数值top寄存器在该模式下使用双缓冲模式,控制单元内部的设计了3个缓冲器,对这3个寄存器的读和写都将直接改变对应寄存器的值,而不会立即影响缓冲器的值,在overflow信号有效时(即bload信号有效),缓冲器的值被更新,这样保证了在计数器一个计数周期内,定时器能输出连续的完整波形。
在相位与频率修正的PWM模式下,定时器能够输出相位与频率均可调的PWM信号。设置控制寄存器的值control[2:1]为11,设置预置值寄存器pretop的值,设置计数值top寄存器的cloadtop值,设置定时器控制寄存器control[1]为1,则定时器开始工作。预分频器从pretop的值开始作减1计数,当预分频器溢出时(即当前的计数值preval等于0),产生一个时钟周期Tick脉冲信号,重新加载pretop的值,重新开始计数。在该模式下,计数器采用双斜坡的方式工作,每检测到一次Tick信号有效,若控制单元输出信号direction为0时,计数器加1计数,为1时,计数器减1计数。控制单元先将信号direction置为0,将计数值top寄存器cloadtop的值置入缓冲器,缓冲器输出值与计数器当前计数值cntval进行比较,若两个值相等,将信号direction置为1,在direction信号为1期间,计数器当前计数值cntval与0进行比较,若两个值相等,将信号direction置为0,有效overflow信号、溢出中断信号inta、3个缓冲器的加载信号bload。控制单元将匹配寄存器A送入缓冲器,缓冲器输出值与计数器的当前计数值cntval进行比较,若两个值相等,有效匹配中断信号intc,若信号direction为0时,将输出outa置为低电平,若信号direction为高1时,将输出outa置高电平。控制单元将匹配寄存器B送入缓冲器,缓冲器输出值与计数器的当前计数值cntval分别进行比较,若两个值相等,有效匹配中断信号intd,若信号direction为0时,将输出outb置为低电平,若信号direction为高1时,将输出outb置高电平。与快速PWM模式相同,比较匹配寄存器A、B和计数值top寄存器也采用双缓冲模式,控制单元内部的设计了3个缓冲器,对这3个寄存器的读和写都将直接改变对应寄存器的值,而不会立即影响缓冲器的值,在overflow信号有效时(即bload信号有效),缓冲器的值被更新,这样保证了在计数器一个计数周期内,定时器能输出连续的完整波形。
Claims (1)
1.一种基于APB总线的多功能模式定时器电路,其特征在于:包括APB接口模块、可配置寄存器组、预分频器、计数器、捕获模块及控制单元;
APB接口:APB接口与定时器外部的APB总线连接,应答APB总线的读写访问,转换为对定时器内部寄存器的读写操作;在APB总线写周器,APB接口输出写操作信号到可配置寄存器组;在APB总线读周期,APB接口接收可配置寄存器组输出、预分频器的输出及计数器的输出,选择对应的数据送到APB总线上;
可配置寄存器组:接收APB接口输出的写信号、控制单元输出的捕获赋值信号、计数器输出信号及预分频器输出信号;包括控制寄存器、预置值寄存器、比较匹配寄存器A、比较匹配寄存器B、计数值Top寄存器、捕获值寄存器6个可配置寄存器;其中控制寄存器用于设置定时器的工作模式、启动和关闭、输入信号捕获时边沿的选择;预置值寄存器提供预分频器起始分频的预置值;比较匹配寄存器A、比较匹配寄存器B的值分别送入控制单元,在控制单元内与计数器的当前计数值分别进行比较,控制单元根据比较结果分别产生定时器输出信号A、定时器输出信号B及中断输出信号;计数值Top寄存器送入控制单元,用于设置计数器计数的最大值;捕获值寄存器用于在捕获事件发生时,存放计数器的计数值;
预分频器:接收可配置寄存器组输出的定时器启动信号,加载可配置寄存器组输出的预置值寄存器的值,每个时钟周期作减1计数,当计数值减到0时,产生一个时钟周期的脉冲信号Tick,重新加载预置值寄存器的值,重新开始;
计数器:接收控制单元输出的方向控制及清零信号,以及接收预分频器的脉冲信号Tick;在Tick有效时,若方向控制信号为1时,作减1计数,若方向控制信号为0时,作加1计数;当计数器收到清零信号时,计数值置为0,重新开始计数;
捕获模块:接收控制单元输出的捕获使能信号,并监测外部输入信号,当检测到外部输入信号有效的上升沿或下降沿,产生捕获有效信号,送入控制单元;
控制单元:控制单元接收可配置寄存器组输出信号、计数器输出信号、捕获模块捕获有效信号;所述的控制单元为时序控制逻辑电路,控制整个定时器的工作;设置定时器的工作模式,产生计数器的方向控制及清零信号;在捕获模式时,产生捕获寄存器赋值信号、捕获使能信号,在其他模式下,把计数器的计数值与可配置寄存器组中相关寄存器的值进行比较,产生定时器输出信号A、定时器输出信号B及中断输出信号;
定时器通过配置分为工作在普通模式、捕获模式、快速PWM模式及相位与频率修正的PWM模式四种模式;
在普通模式下,定时器输出1路频率可调的方波信号;在该模式下,定时器工作流程如下:通过APB接口对可配置寄存器组内寄存器进行配置,设置控制寄存器的值将定时器置于普通模式,设置预置值寄存器的值、计数值top寄存器的值,启动定时器;定时器启动后,预分频器开始工作,加载预置值寄存器的值,每个时钟周期减1计数,当计数值减到0时,产生一个时钟周期的Tick脉冲信号,并重新加载预置值寄存器的值,重新开始减1计数;计数器从0开始加1计数,每检测到一次Tick信号有效,计数器的计数值加1;控制单元把计数器的当前计数值与计数值top寄存器的值进行比较,在二者的值相等时,将定时器输出信号A进行反向后输出,产生中断信号和计数器清零信号;计数器检测到控制单元输出的清零信号有效,将计数器的计数值设置为0,重新开始计数;
在捕获模式下,定时器不输出波形信号,而是对定时器的输入信号进行捕获;在该模式下,定时器工作流程如下:通过APB接口对可配置寄存器组内寄存器进行配置,设置控制寄存器的值将定时器置于捕获模式,设置预置值寄存器的值,启动定时器;定时器启动后,预分频器开始工作,加载预置值寄存器的值,每个时钟周期作减1计数,当计数值减到0时,产生一个时钟周期的Tick脉冲信号,并重新加载预置值寄存器的值,重新开始减1计数;计数器从0开始加1计数,每检测到一次Tick信号有效,计数器的计数值加1,计数器的计数值达到最大值后,从0开始重新计数;控制单元将输出的捕获使能信号有效,捕获模块开始工作;捕获模块先对定时器输入信号进行抑噪处理,所有的小于4个时钟周期的电平变化都被作为毛刺滤掉了,当检测到输入信号的有效边沿时,产生捕获有效信号;控制单元检测到捕获有效信号有效时,产生捕获赋值信号和中断输出信号;可配置寄存器组检测捕获赋值信号有效时,将计数器的当前计数值写入到捕获值寄存器;
在快速PWM模式,定时器输出2路频率和占空比均为可调的PWM波形;在该模式下,定时器工作流程如下:通过APB接口对可配置寄存器组内寄存器进行配置,设置控制寄存器的值将定时器置于快速PWM模式,设置预置值寄存器的值、计数值top寄存器的值、比较匹配寄存器A的值、比较匹配寄存器B的值,启动定时器;定时器启动后,预分频器开始工作,加载预置值寄存器的值,每个时钟周期减1计数,当计数值减到0时,产生一个时钟周期的Tick脉冲信号,并重新加载预置值寄存器的值,重新开始减1计数;计数器从0开始加1计数,每检测到一次Tick信号有效,计数器的计数值加1;控制单元把计数值top寄存器的值送入内部的缓冲器,缓冲器的输出值与计数器的当前计数值进行比较,在二者的值相等时,控制单元将输出信号A、B置为高电平、有效中断输出信号及计数器清零信号;控制单元将匹配寄存器A、B的值分别送入内部缓冲器,缓冲器的输出值与计数器的当前计数值分别进行比较,若两个值相等,分别将输出信号A、B置为低电平,并产生中断信号;计数器检测到控制单元输出的清零信号有效,将计数值设置为0,重新开始计数;
在相位与频率修正PWM模式下,定时器输出2路相位与频率均可调的PWM信号;在该模式下,定时器工作流程如下:通过APB接口对可配置寄存器组内寄存器进行配置,设置控制寄存器的值将定时器置于相位与频率修正PWM模式,设置预置值寄存器的值、计数值top寄存器的值、比较匹配寄存器A的值、比较匹配寄存器B的值,启动定时器;定时器启动后,预分频器开始工作,加载预置值寄存器的值,每个时钟周期减1计数,当计数值减到0时,产生一个时钟周期的Tick脉冲信号,并重新加载预置值寄存器的值,重新开始减1计数;在该模式下,计数器采用双斜坡的方式工作,每检测到一次Tick信号有效,控制单元输出的方向控制信号为0时,计数器加1计数,为1时,计数器减1计数;控制单元先将方向控制信号置为0,把计数值top寄存器的值送入内部的缓冲器,缓冲器的输出值与计数器的当前计数值进行比较,在二者的值相等时,控制单元将方向控制信号置为1;在方向控制信号为1期间,冲计数器的当前计数值与0,进行比较,在二者值相等时,控制单元将计数方向控制信号置为0,并产生中断输出信号;控制单元将匹配寄存器A、B的值分别送入内部缓冲器,缓冲器的输出值与计数器的当前计数值分别进行比较,在二者值相等时,若方向控制信号为0,将输出信号A、B置为低电平,若为1将输出信号A、B置为高电平,并产生中断输出信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510728974.6A CN105302226B (zh) | 2015-10-30 | 2015-10-30 | 一种基于apb总线的多功能模式定时器电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510728974.6A CN105302226B (zh) | 2015-10-30 | 2015-10-30 | 一种基于apb总线的多功能模式定时器电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105302226A true CN105302226A (zh) | 2016-02-03 |
CN105302226B CN105302226B (zh) | 2018-01-16 |
Family
ID=55199599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510728974.6A Expired - Fee Related CN105302226B (zh) | 2015-10-30 | 2015-10-30 | 一种基于apb总线的多功能模式定时器电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105302226B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760330A (zh) * | 2016-02-22 | 2016-07-13 | 中国兵器工业集团第二四研究所苏州研发中心 | 一种带apb接口的多路频率采集电路 |
CN105790737A (zh) * | 2016-03-14 | 2016-07-20 | 深圳市博巨兴实业发展有限公司 | 一种超级timer |
CN106374893A (zh) * | 2016-09-22 | 2017-02-01 | 北方电子研究院安徽有限公司 | 一种嵌入式SoC系统中通用死区可配置PWM波生成电路 |
CN107358978A (zh) * | 2017-06-15 | 2017-11-17 | 西安微电子技术研究所 | 一种兼容定时和性能计数的可配置装置 |
CN111581149A (zh) * | 2020-04-24 | 2020-08-25 | 希翼微电子(嘉兴)有限公司 | 可重构地址重映射低功耗多功能定时器 |
CN111697949A (zh) * | 2020-06-19 | 2020-09-22 | 西安微电子技术研究所 | 一种面向多元信号产生和检测的控制系统及控制方法 |
CN115097901A (zh) * | 2022-08-22 | 2022-09-23 | 苏州聚元微电子股份有限公司 | 具有变频计数特性的多模式时基单元系统及计数控制方法 |
CN116436588A (zh) * | 2023-04-17 | 2023-07-14 | 北京中科昊芯科技有限公司 | 一种高精度信号捕获量测的装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6263450B1 (en) * | 1998-10-09 | 2001-07-17 | Celestica North America Inc. | Programmable and resettable multifunction processor timer |
CN101344875A (zh) * | 2008-08-15 | 2009-01-14 | 北京中星微电子有限公司 | 一种片上集成系统SoC的APB总线桥 |
CN102457268A (zh) * | 2010-10-15 | 2012-05-16 | 北京德威特电力系统自动化有限公司 | 32位捕获寄存器的实现方法 |
CN104571263A (zh) * | 2014-12-30 | 2015-04-29 | 北京时代民芯科技有限公司 | 一种片上定时器 |
CN204595839U (zh) * | 2014-12-30 | 2015-08-26 | 珠海欧比特控制工程股份有限公司 | 基于apb接口的通用定时器模块ip核 |
-
2015
- 2015-10-30 CN CN201510728974.6A patent/CN105302226B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6263450B1 (en) * | 1998-10-09 | 2001-07-17 | Celestica North America Inc. | Programmable and resettable multifunction processor timer |
CN101344875A (zh) * | 2008-08-15 | 2009-01-14 | 北京中星微电子有限公司 | 一种片上集成系统SoC的APB总线桥 |
CN102457268A (zh) * | 2010-10-15 | 2012-05-16 | 北京德威特电力系统自动化有限公司 | 32位捕获寄存器的实现方法 |
CN104571263A (zh) * | 2014-12-30 | 2015-04-29 | 北京时代民芯科技有限公司 | 一种片上定时器 |
CN204595839U (zh) * | 2014-12-30 | 2015-08-26 | 珠海欧比特控制工程股份有限公司 | 基于apb接口的通用定时器模块ip核 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760330A (zh) * | 2016-02-22 | 2016-07-13 | 中国兵器工业集团第二四研究所苏州研发中心 | 一种带apb接口的多路频率采集电路 |
CN105760330B (zh) * | 2016-02-22 | 2019-03-19 | 中国兵器工业集团第二一四研究所苏州研发中心 | 一种带apb接口的多路频率采集电路 |
CN105790737A (zh) * | 2016-03-14 | 2016-07-20 | 深圳市博巨兴实业发展有限公司 | 一种超级timer |
CN106374893B (zh) * | 2016-09-22 | 2019-06-04 | 北方电子研究院安徽有限公司 | 一种嵌入式SoC系统中通用死区可配置PWM波生成电路 |
CN106374893A (zh) * | 2016-09-22 | 2017-02-01 | 北方电子研究院安徽有限公司 | 一种嵌入式SoC系统中通用死区可配置PWM波生成电路 |
CN107358978B (zh) * | 2017-06-15 | 2020-06-23 | 西安微电子技术研究所 | 一种兼容定时和性能计数的可配置装置 |
CN107358978A (zh) * | 2017-06-15 | 2017-11-17 | 西安微电子技术研究所 | 一种兼容定时和性能计数的可配置装置 |
CN111581149A (zh) * | 2020-04-24 | 2020-08-25 | 希翼微电子(嘉兴)有限公司 | 可重构地址重映射低功耗多功能定时器 |
CN111697949A (zh) * | 2020-06-19 | 2020-09-22 | 西安微电子技术研究所 | 一种面向多元信号产生和检测的控制系统及控制方法 |
CN111697949B (zh) * | 2020-06-19 | 2023-02-07 | 西安微电子技术研究所 | 一种面向多元信号产生和检测的控制系统及控制方法 |
CN115097901A (zh) * | 2022-08-22 | 2022-09-23 | 苏州聚元微电子股份有限公司 | 具有变频计数特性的多模式时基单元系统及计数控制方法 |
CN116436588A (zh) * | 2023-04-17 | 2023-07-14 | 北京中科昊芯科技有限公司 | 一种高精度信号捕获量测的装置 |
CN116436588B (zh) * | 2023-04-17 | 2024-04-16 | 北京中科昊芯科技有限公司 | 一种高精度信号捕获量测的装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105302226B (zh) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302226A (zh) | 一种基于apb总线的多功能模式定时器电路 | |
CN103440216B (zh) | 一种通过i2c从设备调试mcu的芯片及方法 | |
US8719613B2 (en) | Single-wire serial interface with delay module for full clock rate data communication between master and slave devices | |
CN105760330B (zh) | 一种带apb接口的多路频率采集电路 | |
US11016525B1 (en) | Clock control circuit and clock control method | |
WO2013059987A1 (zh) | 降低动态功耗的方法和电子设备 | |
CN106489109A (zh) | 一种单片机系统和用于单片机系统的复位方法 | |
CN104571263A (zh) | 一种片上定时器 | |
CN103716031B (zh) | 无极性rs485接口电路实现转换速率增强的方法及电路 | |
CN104714907A (zh) | 一种pci总线转换为isa和apb总线设计方法 | |
CN103684698A (zh) | 数据信号的处理方法和装置 | |
CN103744322B (zh) | 一种控制信号生成电路 | |
CN104063223A (zh) | 一种fpga实现软件编程器件可控看门狗功能的方法 | |
CN109783933A (zh) | 一种ahb总线访问片上sram的桥接方法 | |
CN103064477A (zh) | 一种服务器主板设计方法 | |
CN103401743A (zh) | 一种i2c总线消除干扰信号的方法和装置 | |
CN106445854A (zh) | 支持串行接口透明传输的方法及系统 | |
CN108153511A (zh) | 一种星载定长数字信号的毛刺滤除方法 | |
CN103412615A (zh) | 一种用于uart接口芯片的无毛刺自适应时钟切换方法 | |
CN210693808U (zh) | 一种pwm信号电平持续时间检测电路 | |
CN104168524A (zh) | 数字功放设备的控制电路及其控制方法 | |
CN103198695B (zh) | 一种基于cpld或fpga的多通道信号灯状态检测器 | |
CN106917679A (zh) | 一种发动机爆震信号处理方法、装置及发动机 | |
CN105224481A (zh) | Pwm在输入模式下传输数据的实现方式 | |
CN102999961A (zh) | 一种维根码数据的采集方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180116 Termination date: 20201030 |