一种片上定时器的制造方法

文档序号:8257233阅读:458来源:国知局
一种片上定时器的制造方法
【技术领域】
[0001]本发明属于计算机技术领域,涉及微控制器、处理器和SoC芯片中定时器外设的设计和制造,特别是一种片上定时器。
【背景技术】
[0002]自从微控制器问世以来,就以其片上集成了丰富的外设,以及灵活的应用和低廉的成本,而广泛应用于工业控制、智能仪器仪表和武器装备等领域。而定时器则是微控制器中最常用的外设之一,随着应用系统对微控制器处理事务能力及灵活度需求的不断提高,当前微控制器中所采用的通过软件方式进行定时效率较低,并有误差;片上集成的定时器通常仅支持简单、单一频率下的定时,计数与中断功能,以及较少的PWM输出选择,已经很难满足日益增长的需求,所以如何使微控制器中定时器功能更强大,使用更灵活是微控制器外设设计的重要内容。

【发明内容】

[0003]本发明解决的技术问题是:克服现有技术的不足,提供了一种广泛适用于微控制器、处理器及SoC的片上定时器。
[0004]本发明的技术解决方案是:一种片上定时器,包括:地址译码与读写逻辑、计数器模块、捕获比较器模块、数据总线输入输出逻辑、中断寄存器与中断控制逻辑,其中
[0005]地址译码与读写逻辑,接收地址总线ABUS〈15:0>发送的片上定时器中内部的寄存器地址、读写信号RW和系统时钟MCLK,进行译码后产生用于数据总线DBUS〈15:0>与内部寄存器总线Reg_D〈15:0>及Reg_Dn〈15:0>进行数据交换的控制信号Din_CTRL和Dout_CTRL并送至数据总线输入输出逻辑,产生读写中断寄存器的控制信号INTReg_10C送至中断寄存器与中断控制逻辑,产生读写16位计数器控制寄存器的控制信号CNTCR_10C送至16位计数器控制寄存器,产生读写16位计数器的控制信号CNT_10C送至16位计数器,产生读写16位捕获比较控制寄存器的控制信号CCCRx_10C,x = 0, 1,2分别送至16位捕获比较控制寄存器X,产生读写16位捕获比较寄存器的控制信号CCRx_10C分别送至16位捕获比较寄存器X ;
[0006]计数器模块包括16位计数器控制寄存器、时钟选择与分频逻辑、计数模式控制逻辑和16位计数器;
[0007]16位计数器控制寄存器,接收地址译码与读写逻辑发送的16位计数器控制寄存器读写信号CNTCR_10C,接收数据总线输入输出逻辑发送的内部寄存器总线信号Reg_D〈 15: 0> 和 Reg_Dn〈 15: 0>,在 CNTCR_10C 的控制下将 Reg_D〈 15: 0> 和 Reg_Dn〈 15: 0> 上的数据写入16位计数器控制寄存器,并输出计数器计数时钟源选择位CK_S[1:0]、时钟分频选择位CK_D[1:0]至时钟选择与分频逻辑用作输入时钟源的选择与时钟信号的分频,输出计数模式选择位Mode_S[l:0]至时钟选择与分频逻辑用作产生16位计数器计数时钟T_CLK和T_CLKN的门控信号、至计数模式控制逻辑用作产生16位计数器增减计数控制信号UP_DOWN与16位计数器清零信号SET_ZER0、同时还送至捕获比较器中的输出逻辑用作产生输出信号0UT_x,输出清零控制位T_CLR至时钟选择与分频逻辑用作时钟选择与分频的清零、至16位计数器做计数器的清零、同时还送至计数模式控制逻辑用作16位计数器增减计数控制信号UP_D0WN和16位计数器清零信号SET_ZER0的清零,输出计数器溢出中断使能位CNTIE至中断寄存器与中断控制逻辑用作产生中断请求信号IREQ ;接收中断寄存器与中断控制逻辑输出的计数器中断标志位CNTIFG并写入16位计数器控制寄存器中用于表示计数器溢出中断的挂起状态;
[0008]时钟选择与分频逻辑,接收计数时钟源选择位CK_S[1:0]、时钟分频选择位CK_D [1: O],根据计数时钟源选择位CK_S [1: O]从时钟源AsCLK、SuCLK、ExCLK中选择一个时钟,然后根据时钟分频选择位CK_D[1:0]对该时钟进行I或2或4或8分频,产生定时器工作时钟S_CLK后送至中断寄存器与中断控制逻辑与捕获比较器模块中的16位捕获比较控制寄存器X、捕获逻辑X、比较逻辑x、16位捕获比较寄存器X、输出逻辑X ;接收16位计数器控制寄存器发送的计数模式选择位Mode_S [1: O],接收16位计数器产生的计数器全零信号CNT_ZER0,产生16位计数器计数时钟T_CLK和T_CLKN并送至16位计数器用于计数器的计数时钟;接收16位计数器控制寄存器发送的清零控制位T_CLR信号对定时器工作时钟S_CLK进行清零;
[0009]计数模式控制逻辑,接收16位计数器控制寄存器输出的计数模式选择位Mode_S[1:O],接收16位计数器发送的计数器全零状态信号CNT_ZER0,产生16位计数器增减计数控制信号UP_D0WN与16位计数器清零信号SET_ZER0送至16位计数器用于16位计数器的增减计数与清零的控制;接收16位计数器控制寄存器发送的清零控制位T_CLR信号对计数器增减计数控制信号UP_D0WN和计数器清零信号SET_ZER0进行清零;
[0010]16位计数器,接收时钟选择与分频逻辑发送的16位计数器计数时钟T_CLK与T_CLKN,接收计数模式控制逻辑发送的计数器增减计数控制信号UP_D0WN和计数器清零信号SET_ZER0,根据计数器增减计数控制信号UP_D0WN进行增或减计数并根据SET_ZER0信号对计数器进行清零,输出计数器最高位进位信号CNT_Carry至中断寄存器与中断控制逻辑用于产生计数器溢出中断标志位CNTIFG,输出计数器全零状态信号CNT_ZER0至计数模式控制逻辑用作产生16位计数器增减计数控制信号UP_D0WN、同时还送至时钟选择与分频逻辑用作产生的16位计数器计数时钟T_CLK和T_CLKN的门控信号,产生计数值CNT〈15:0>送至16位捕获比较寄存器X用作捕获模式下发生捕获操作时记录当前计数值、同时还送至比较逻辑X用作在比较模式下和16位捕获比较寄存器输出的设定值CCRx〈15:0>进行比较产生比较相等信号EQU_x信号;接收16位计数器控制寄存器发送的T_CLR信号进行清零;
[0011]捕获比较模块,包括捕获比较器X,捕获比较器X包括16位捕获比较控制寄存器X、捕获逻辑X、比较逻辑X、16位捕获比较寄存器X、输出逻辑X,其中
[0012]16位捕获比较控制寄存器X,接收时钟选择与分频逻辑发送的定时器工作时钟S_CLK用于工作时钟;接收地址译码与读写逻辑发送的16位捕获比较控制寄存器读写信号CCCRx_10C,接收数据总线输入输出逻辑发送的内部寄存器总线信号Reg_D〈15:0>和Reg_011〈15:0>,在0(:0^_1(^的控制下将Reg_D〈15:0>和Reg_Dn〈15:0>上的数据写入16位捕获比较寄存器X中,输出捕获比较模式选择位Cx_Cpt_Cmp_S、捕获比较输入信号选择位Cx_IN_S [1: O]、捕获模式选择位Cx_Cpt_M[l: O]、同异步捕获选择位Cx_SAS_S至捕获逻辑x用于捕获控制,输出输出模式选择位Cx_0ut_M[2:0]、输出控制位Cx_Out_Ctrl至输出逻辑x用于产生输出信号OUT_x,输出捕获比较中断使能位Cx_CCIE至中断寄存器与中断控制逻辑用于产生中断请求信号IREQ ;接收中断寄存器与中断控制逻辑发送的Cx_CCIFG与Cx_CPTOVF并写入16位捕获比较控制寄存器中分别用于表示捕获比较中断的挂起状态和捕获溢出的状态;接收比较逻辑X发送的EQU_x信号,将捕获比较输入信号Cx_CC_in的值由EQU_x信号锁存到Cx_Cmp_in位;
[0013]捕获逻辑X,接收时钟选择与分频逻辑发送的定时器工作时钟S_CLK用于工作时钟;接收16位捕获比较控制寄存器发送的捕获比较选择位Cx_Cpt_Cmp_S,捕获比较输入信号选择位Cx_IN_S [1: O]、捕获模式选择位Cx_Cpt_M[l: O]、同异步捕获选择位Cx_SAS_S,并接收外部输入的两路输入信号IN_Ax和IN_Bx,在输入信号IN_Ax或IN_Bx变化的上升沿、下降沿或上升下降双边沿进行同步或异步捕获,将捕获到的输入信号电平存入Cx_CC_in位中后送至比较逻辑X,产生捕获信号Cpt_x并送至16位捕获比较寄存器X用于将当前计数值CNT〈15:0>写入16位捕获比较寄存器X,将捕获信号Cpt_x送至中断寄存器与中断控制逻辑用于产生捕获比较中断标志位Cx_CCIFGx、捕获溢出信号Cx_CPT0VF以及根据捕获比较中断使能Cx_CCIE产生中断请求信号IREQ ;
[0014]比较逻辑X,接收时钟选择与分频逻辑发送的定时器工作时钟S_CLK用于工作时钟;接收16位计数器发送的计数值CNT〈15:0>和16位捕获比较寄存器输出的设定值(:0^〈15:0>,判断计数值0见'〈15:0>与设定值CCRx〈15:0>,当两者相等时,输出状态信号EQU_X送至输出逻辑用于产生PWM信号、送至中断寄存器与中断控制逻辑用于产生捕获比较中断标志位Cx_CCIFG、同时还送至16位捕获比较控制寄存器用于将捕获比较输入信号Cx_CC_in的值由EQU_x信号锁存到Cx_Cmp_in位;
[0015]输出逻辑X,接收时钟选择与分频逻辑发送的定时器工作时钟S_CLK用于工作时钟;接收16位捕获比较控制寄存器输出的输出模式选择位Cx_0ut_M[2:0]、输出控制位Cx_0ut_Ctrl,接收16位计数器控制寄存器输出的计数模式选择位Mode_S[1:0],同时还接收比较逻辑X输入的EQU_x信号,产生PWM信号并通过0UT_x输出;
[0016]16位捕获比较寄存器X,接收时钟选择与分频逻辑发送的定时器工作时钟S_CLK用于工作时钟;当捕获比较器X配置为捕获模式时,接收地址译码与读写逻辑发送的16位捕获比较控制寄存器读写信号CCCRx_10C,接收捕获逻辑发送的捕获信号Cpt_x,同时还接收16位计数器输出的计数值CNT〈15:0>信号,当发生捕获时,在捕获信号Cpt_x的控制下将计数值CNT〈15:0>写入寄存器中,产生片上控制系统读16位捕获比较寄存器X状态信号Rd_Stx送至中断寄存器与中断逻辑中用于产生捕获溢出状态位Cx_CPT0VF,接收地址译码与读写逻辑发送的16位捕获比较寄存器X读写信号CCRx_10C,在捕获发生后读取16位捕获比较寄存器X的值时,将16位捕获比较寄存器X的值通过内部寄存器总线Reg_D〈15:0>送至数据总线输入输出逻辑后送至数据总线DBUS〈15:0>上;当捕获比较器X配置为比较模式时,接收地址译码与读写逻辑产生的16位捕获比较寄存器X读写信号CCRx_10C,在CCRx_10C的控制下将接收到的数据总线输入输出逻辑发出的内部寄存器总线信号Reg_D<15:0>和Reg_Dn〈15:0>写入16位捕获比较寄存器X,并将此时16位捕获比较寄存器的设定值CCRx〈15:0>送至比较逻辑X ;
[0017]数据总线输入输出逻辑,用于数据总线DBUS〈15:0>与内部寄存器的数据交换,接收地址译码与读写逻辑发出的数据总线输入信号Din_CTRL,当发生写操作时,在Din_CTRL的控制下将数据总线DBUS〈15:0>上的值经差分保持器以差分形式送至内部寄存器数据总线Reg_D〈15:0>和Reg_Dn〈15:0>后送至片上定时器中内部的寄存器;接收地址译码与读写逻辑发出的数据总线输出信号Dout_CTRL,当发生读操作时,在Dout_CTRL的控制下将片上定时器中内部的寄存器数据总线信号Reg_D〈15:0>经三态门送至数据总线DBUS〈15:0>上;
[0018]中断寄存器与中断控制逻辑,接收时钟选择与分频逻辑发送的定时器工作时#S_CLK用于中断逻辑工作时钟;接
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1