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

文档序号:9546616阅读:806来源:国知局
一种基于apb总线的多功能模式定时器电路的制作方法
【技术领域】
[0001]本发明属于电路设计领域,用于SoC芯片设计,涉及一种基于APB总线的多功能模式定时器电路。
【背景技术】
[0002]随着设计工艺的发展,1C设计水平的不断提高,使得片上SoC的设计成为目前一种主流技术,并成为未来1C设计发展的必然趋势。SoC的设计从整个系统性能要求出发,把微处理器、总线结构、存储器模块、模拟/数字IP等集成到单个芯片上,并且各个功能模块采用标准的总线协议进行连接。一般SoC芯片内部都配有定时器模块,因此本发明设计了一种基于APB总线的多功能定时器电路,用于采用APB总线的SoC设计中,具有易于集成和可重用性。目前SoC芯片中集成的定时模块一方面功能模式单一,另一方面若产生的PWM信输出频率发生改变时,不能够产生完整的波形,因此目前的定时器已不能满足各种控制系统对定时器的需求。

【发明内容】

[0003]本发明解决的技术问题是:克服现有技术的不足,提供的一种基于APB总线多功能模式定时器电路,用一个定时器实现了 4种功能模式;定时器内部设计了两个独立的匹配单元,每个比较单元具有独立的管脚进行波形输出,因此可以同时输出两路波形信号;定时器的控制逻辑相关寄存器采用了缓冲模式,增加了 3个缓冲器,保证了输出的PWM信号连续性和完整波性;为了便于系统对定时器的控制,定时器在条件满足时,能够产生4类中断请求信号。
[0004]本发明的技术方案是:一种基于APB总线的多功能模式定时器电路,包括APB接口模块、可配置寄存器组、预分频器、计数器、捕获模块及控制单元;
[0005]APB接口:APB接口与定时器外部的APB总线连接,应答APB总线的读写访问,转换为对定时器内部寄存器的读写操作;在六?8总线写周器,APB接口输出写操作信号到可配置寄存器组;在六?8总线读周期,APB接口接收可配置寄存器组输出、预分频器的输出及计数器的输出,选择对应的数据送到APB总线上;
[0006]可配置寄存器组:接收APB接口输出的写信号、控制单元输出的捕获赋值信号、计数器输出信号及预分频器输出信号;包括控制寄存器、预置值寄存器、比较匹配寄存器A、比较匹配寄存器B、计数值Top寄存器、捕获值寄存器6个可配置寄存器;其中控制寄存器用于设置定时器的工作模式、启动和关闭、输入信号捕获时边沿的选择;预置值寄存器提供预分频器起始分频的预置值;比较匹配寄存器A、比较匹配寄存器B的值分别送入控制单元,在控制单元内与计数器的当前计数值分别进行比较,控制单元根据比较结果分别产生定时器输出信号A、定时器输出信号B及中断输出信号;计数值Top寄存器送入控制单元,用于设置计数器计数的最大值;捕获值寄存器用于在捕获事件发生时,存放计数器的计数值;
[0007]预分频器:接收可配置寄存器组输出的定时器启动信号,加载可配置寄存器组输出的预置值寄存器的值,每个时钟周期作减1计数,当计数值减到0时,产生一个时钟周期的脉冲信号Tick,重新加载预置值寄存器的值,重新开始;
[0008]计数器:接收控制单元输出的方向控制及清零信号,以及接收预分频器的脉冲信号Tick ;在Tick有效时,若方向控制信号为1时,作减1计数,若方向控制信号为0时,作加1计数;当计数器收到清零信号时,计数值置为0,重新开始计数;
[0009]捕获模块:接收控制单元输出的捕获使能信号,并监测外部输入信号,当检测到外部输入信号有效的上升沿或下降沿,产生捕获有效信号,送入控制单元;
[0010]控制单元:控制单元接收可配置寄存器组输出信号、计数器输出信号、捕获模块捕获有效信号;所述的控制单元为时序控制逻辑电路,控制整个定时器的工作;设置定时器的工作模式,产生计数器的方向控制及清零信号;在捕获模式时,产生捕获寄存器赋值信号、捕获使能信号,在其他模式下,把计数器的计数值与可配置寄存器组中相关寄存器的值进行比较,产生定时器输出信号A、定时器输出信号B及中断输出信号;
[0011]定时器通过配置分为工作在普通模式、捕获模式、快速PWM模式及相位与频率修正的PWM模式四种模式;
[0012]在普通模式下,定时器输出1路频率可调的方波信号;在该模式下,定时器工作流程如下:通过APB接口对可配置寄存器组内寄存器进行配置,设置控制寄存器的值将定时器置于普通模式,设置预置值寄存器的值、计数值top寄存器的值,启动定时器;定时器启动后,预分频器开始工作,加载预置值寄存器的值,每个时钟周期减1计数,当计数值减到0时,产生一个时钟周期的Tick脉冲信号,并重新加载预置值寄存器的值,重新开始减1计数;计数器从0开始加1计数,每检测到一次Tick信号有效,计数器的计数值加1 ;控制单元把计数器的当前计数值与计数值top寄存器的值进行比较,在二者的值相等时,将定时器输出信号A进行反向后输出,产生中断信号和计数器清零信号;计数器检测到控制单元输出的清零信号有效,将计数器的计数值设置为0,重新开始计数;
[0013]在捕获模式下,定时器不输出波形信号,而是对定时器的输入信号进行捕获;在该模式下,定时器工作流程如下:通过APB接口对可配置寄存器组内寄存器进行配置,设置控制寄存器的值将定时器置于捕获模式,设置预置值寄存器的值,启动定时器;定时器启动后,预分频器开始工作,加载预置值寄存器的值,每个时钟周期作减1计数,当计数值减到0时,产生一个时钟周期的Tick脉冲信号,并重新加载预置值寄存器的值,重新开始减1计数;计数器从0开始加1计数,每检测到一次Tick信号有效,计数器的计数值加1,计数器的计数值达到最大值后,从0开始重新计数;控制单元将输出的捕获使能信号有效,捕获模块开始工作;捕获模块先对定时器输入信号进行抑噪处理,所有的小于4个时钟周期的电平变化都被作为毛刺滤掉了,当检测到输入信号的有效边沿时,产生捕获有效信号;控制单元检测到捕获有效信号有效时,产生捕获赋值信号和中断输出信号;可配置寄存器组检测捕获赋值信号有效时,将计数器的当前计数值写入到捕获值寄存器;
[0014]在快速PWM模式,定时器输出2路频率和占空比均为可调的PWM波形;在该模式下,定时器工作流程如下:通过APB接口对可配置寄存器组内寄存器进行配置,设置控制寄存器的值将定时器置于快速PWM模式,设置预置值寄存器的值、计数值top寄存器的值、比较匹配寄存器A的值、比较匹配寄存器B的值,启动定时器;定时器启动后,预分频器开始工作,加载预置值寄存器的值,每个时钟周期减1计数,当计数值减到0时,产生一个时钟周期的Tick脉冲信号,并重新加载预置值寄存器的值,重新开始减1计数;计数器从0开始加1计数,每检测到一次Tick信号有效,计数器的计数值加1 ;控制单元把计数值top寄存器的值送入内部的缓冲器,缓冲器的输出值与计数器的当前计数值进行比较,在二者的值相等时,控制单元将输出信号A、B置为高电平、有效中断输出信号及计数器清零信号;控制单元将匹配寄存器A、B的值分别送入内部缓冲器,缓冲器的输出值与计数器的当前计数值分别进行比较,若两个值相等,分别将输出信号A、B置为低电平,并产生中断信号;计数器检测到控制单元输出的清零信号有效,将计数值设置为0,重新开始计数;
[0015]在相位与频率修正PWM模式下,定时器输出2路相位与频率均可调的PWM信号;在该模式下,定时器工作流程如下:通过APB接口对可配置寄存器组内寄存器进行配置,设置控制寄存器的值将定时器置于相位与频率修正PWM模式,设置预置值寄存器的值、计数值top寄存器的值、比较匹配寄存器A的值、比较匹配寄存器B的值,启动定时器;定时器启动后,预分频器开始工作,加载预置值寄存器的值,每个时钟周期减1计数,当计数值减到0时,产生一个时钟周期的Tick脉冲信号,并重新加载预置值寄存器的值,重新开始减1计数;在该模式下,计数器采用双斜坡的方式工作,每检测到一次Tick信号有效,控制单元输出的方向控制信号为0时,计数器加1计数,为1时,计数器减1计数;控制单元先将方向控制信号置为0,把计数值top寄存器的值送入内部的缓冲器,缓冲器的输出值与计数器的当前计数值进行比较,在二者的值相等时,控制单元将方向控制信号置为1 ;在方向控制信号为1期间,冲计数器的当前计数值与0,进行比较,在二者值相等时,控制单元将计数方向控制
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1