发明名称 一种片上定时器
摘要 一种片上定时器,包括计数器模块,捕获比较器模块,地址译码与读写逻辑,数据总线输入输出逻辑和中断寄存器与中断控制逻辑,其中计数器模块具有停止模式、增计数模式、连续计数模式、增减计数模式四种工作模式和三种计数时钟源可供选择,在捕获比较器模块设计了三个捕获比较器,最多可同时对三路不同事件发生的时间及高低电平进行捕获,并可根据配置产生定时中断,定时脉冲及输出八种模式的PWM信号,没有软件带来的误差,同时本发明定时器结构简单,易于与其他功能部件配合,方便扩展,便于在芯片上实现,提高了微控制器外设工作的灵活性。
申请公布号 CN104571263A 申请公布日期 2015.04.29
申请号 CN201410841846.8 申请日期 2014.12.30
申请人 北京时代民芯科技有限公司;北京微电子技术研究所 发明人 李林;车德亮;张奇荣
分类号 G06F1/04(2006.01)I;G06F13/24(2006.01)I 主分类号 G06F1/04(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 陈鹏
主权项 一种片上定时器,其特征在于包括:地址译码与读写逻辑、计数器模块、捕获比较器模块、数据总线输入输出逻辑、中断寄存器与中断控制逻辑,其中地址译码与读写逻辑,接收地址总线ABUS<15:0>发送的片上定时器中内部的寄存器地址、读写信号RW和系统时钟MCLK,进行译码后产生用于数据总线DBUS<15:0>与内部寄存器总线Reg_D<15:0>及Reg_Dn<15:0>进行数据交换的控制信号Din_CTRL和Dout_CTRL并送至数据总线输入输出逻辑,产生读写中断寄存器的控制信号INTReg_IOC送至中断寄存器与中断控制逻辑,产生读写16位计数器控制寄存器的控制信号CNTCR_IOC送至16位计数器控制寄存器,产生读写16位计数器的控制信号CNT_IOC送至16位计数器,产生读写16位捕获比较控制寄存器的控制信号CCCRx_IOC,x=0,1,2分别送至16位捕获比较控制寄存器x,产生读写16位捕获比较寄存器的控制信号CCRx_IOC分别送至16位捕获比较寄存器x;计数器模块包括16位计数器控制寄存器、时钟选择与分频逻辑、计数模式控制逻辑和16位计数器;16位计数器控制寄存器,接收地址译码与读写逻辑发送的16位计数器控制寄存器读写信号CNTCR_IOC,接收数据总线输入输出逻辑发送的内部寄存器总线信号Reg_D<15:0>和Reg_Dn<15:0>,在CNTCR_IOC的控制下将Reg_D<15:0>和Reg_Dn<15:0>上的数据写入16位计数器控制寄存器,并输出计数器计数时钟源选择位CK_S[1:0]、时钟分频选择位CK_D[1:0]至时钟选择与分频逻辑用作输入时钟源的选择与时钟信号的分频,输出计数模式选择位Mode_S[1:0]至时钟选择与分频逻辑用作产生16位计数器计数时钟T_CLK和T_CLKN的门控信号、至计数模式控制逻辑用作产生16位计数器增减计数控制信号UP_DOWN与16位计数器清零信号SET_ZERO、同时还送至捕获比较器中的输出逻辑用作产生输出信号OUT_x,输出清零控制位T_CLR至时钟选择与分频逻辑用作时钟选择与分频的清零、至16位计数器做计数器的清零、同时还送至计数模式控制逻辑用作16位计数器增减计数控制信号UP_DOWN和16位计数器清零信号SET_ZERO的清零,输出计数器溢出中断使能位CNTIE至中断寄存器与中断控制逻辑用作产生中断请求信号IREQ;接收中断寄存器与中断控制逻辑输出的计数器中断标志位CNTIFG并写入16位计数器控制寄存器中用于表示计数器溢出中断的挂起状态;时钟选择与分频逻辑,接收计数时钟源选择位CK_S[1:0]、时钟分频选择位CK_D[1:0],根据计数时钟源选择位CK_S[1:0]从时钟源AsCLK、SuCLK、ExCLK中选择一个时钟,然后根据时钟分频选择位CK_D[1:0]对该时钟进行1或2或4或8分频,产生定时器工作时钟S_CLK后送至中断寄存器与中断控制逻辑与捕获比较器模块中的16位捕获比较控制寄存器x、捕获逻辑x、比较逻辑x、16位捕获比较寄存器x、输出逻辑x;接收16位计数器控制寄存器发送的计数模式选择位Mode_S[1:0],接收16位计数器产生的计数器全零信号CNT_ZERO,产生16位计数器计数时钟T_CLK和T_CLKN并送至16位计数器用于计数器的计数时钟;接收16位计数器控制寄存器发送的清零控制位T_CLR信号对定时器工作时钟S_CLK进行清零;计数模式控制逻辑,接收16位计数器控制寄存器输出的计数模式选择位Mode_S[1:0],接收16位计数器发送的计数器全零状态信号CNT_ZERO,产生16位计数器增减计数控制信号UP_DOWN与16位计数器清零信号SET_ZERO送至16位计数器用于16位计数器的增减计数与清零的控制;接收16位计数器控制寄存器发送的清零控制位T_CLR信号对计数器增减计数控制信号UP_DOWN和计数器清零信号SET_ZERO进行清零;16位计数器,接收时钟选择与分频逻辑发送的16位计数器计数时钟T_CLK与T_CLKN,接收计数模式控制逻辑发送的计数器增减计数控制信号UP_DOWN和计数器清零信号SET_ZERO,根据计数器增减计数控制信号UP_DOWN进行增或减计数并根据SET_ZERO信号对计数器进行清零,输出计数器最高位进位信号CNT_Carry至中断寄存器与中断控制逻辑用于产生计数器溢出中断标志位CNTIFG,输出计数器全零状态信号CNT_ZERO至计数模式控制逻辑用作产生16位计数器增减计数控制信号UP_DOWN、同时还送至时钟选择与分频逻辑用作产生的16位计数器计数时钟T_CLK和T_CLKN的门控信号,产生计数值CNT<15:0>送至16位捕获比较寄存器x用作捕获模式下发生捕获操作时记录当前计数值、同时还送至比较逻辑x用作在比较模式下和16位捕获比较寄存器输出的设定值CCRx<15:0>进行比较产生比较相等信号EQU_x信号;接收16位计数器控制寄存器发送的T_CLR信号进行清零;捕获比较模块,包括捕获比较器x,捕获比较器x包括16位捕获比较控制寄存器x、捕获逻辑x、比较逻辑x、16位捕获比较寄存器x、输出逻辑x,其中16位捕获比较控制寄存器x,接收时钟选择与分频逻辑发送的定时器工作时钟S_CLK用于工作时钟;接收地址译码与读写逻辑发送的16位捕获比较控制寄存器读写信号CCCRx_IOC,接收数据总线输入输出逻辑发送的内部寄存器总线信号Reg_D<15:0>和Reg_Dn<15:0>,在CCCRx_IOC的控制下将Reg_D<15:0>和Reg_Dn<15:0>上的数据写入16位捕获比较寄存器x中,输出捕获比较模式选择位Cx_Cpt_Cmp_S、捕获比较输入信号选择位Cx_IN_S[1:0]、捕获模式选择位Cx_Cpt_M[1:0]、同异步捕获选择位Cx_SAS_S至捕获逻辑x用于捕获控制,输出输出模式选择位Cx_Out_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位;捕获逻辑x,接收时钟选择与分频逻辑发送的定时器工作时钟S_CLK用于工作时钟;接收16位捕获比较控制寄存器发送的捕获比较选择位Cx_Cpt_Cmp_S,捕获比较输入信号选择位Cx_IN_S[1:0]、捕获模式选择位Cx_Cpt_M[1:0]、同异步捕获选择位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_CPTOVF以及根据捕获比较中断使能Cx_CCIE产生中断请求信号IREQ;比较逻辑x,接收时钟选择与分频逻辑发送的定时器工作时钟S_CLK用于工作时钟;接收16位计数器发送的计数值CNT<15:0>和16位捕获比较寄存器输出的设定值CCRx<15:0>,判断计数值CNT<15:0>与设定值CCRx<15:0>,当两者相等时,输出状态信号EQU_x送至输出逻辑用于产生PWM信号、送至中断寄存器与中断控制逻辑用于产生捕获比较中断标志位Cx_CCIFG、同时还送至16位捕获比较控制寄存器用于将捕获比较输入信号Cx_CC_in的值由EQU_x信号锁存到Cx_Cmp_in位;输出逻辑x,接收时钟选择与分频逻辑发送的定时器工作时钟S_CLK用于工作时钟;接收16位捕获比较控制寄存器输出的输出模式选择位Cx_Out_M[2:0]、输出控制位Cx_Out_Ctrl,接收16位计数器控制寄存器输出的计数模式选择位Mode_S[1:0],同时还接收比较逻辑x输入的EQU_x信号,产生PWM信号并通过OUT_x输出;16位捕获比较寄存器x,接收时钟选择与分频逻辑发送的定时器工作时钟S_CLK用于工作时钟;当捕获比较器x配置为捕获模式时,接收地址译码与读写逻辑发送的16位捕获比较控制寄存器读写信号CCCRx_IOC,接收捕获逻辑发送的捕获信号Cpt_x,同时还接收16位计数器输出的计数值CNT<15:0>信号,当发生捕获时,在捕获信号Cpt_x的控制下将计数值CNT<15:0>写入寄存器中,产生片上控制系统读16位捕获比较寄存器x状态信号Rd_Stx送至中断寄存器与中断逻辑中用于产生捕获溢出状态位Cx_CPTOVF,接收地址译码与读写逻辑发送的16位捕获比较寄存器x读写信号CCRx_IOC,在捕获发生后读取16位捕获比较寄存器x的值时,将16位捕获比较寄存器x的值通过内部寄存器总线Reg_D<15:0>送至数据总线输入输出逻辑后送至数据总线DBUS<15:0>上;当捕获比较器x配置为比较模式时,接收地址译码与读写逻辑产生的16位捕获比较寄存器x读写信号CCRx_IOC,在CCRx_IOC的控制下将接收到的数据总线输入输出逻辑发出的内部寄存器总线信号Reg_D<15:0>和Reg_Dn<15:0>写入16位捕获比较寄存器x,并将此时16位捕获比较寄存器的设定值CCRx<15:0>送至比较逻辑x;数据总线输入输出逻辑,用于数据总线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>上;中断寄存器与中断控制逻辑,接收时钟选择与分频逻辑发送的定时器工作时钟S_CLK用于中断逻辑工作时钟;接收16位计数器发出的最高位进位信号CNT_Carry后产生计数器溢出中断标志位CNTIFG并送至16位计数器控制寄存器,接收计数器溢出中断使能位CNTIE后产生中断请求信号IREQ;接收捕获逻辑x发送的Cpt_x信号和比较逻辑x发送的EQU_x信号产生捕获比较中断标志位Cx_CCIFG并送至16位捕获比较控制寄存器x,接收捕获比较中断使能信号Cx_CCIE产生中断请求信号IREQ;接收16位捕获比较寄存器x发出的读状态信号Rd_Stx并根据Cpt_x信号产生捕获溢出状态信号Cx_CPTOVF后送至16位捕获比较控制寄存器x中;接收片上控制系统发出的中断应答信号IRACC清除中断标志位及中断请求信号IREQ。
地址 100076 北京市丰台区东高地四营门北路2号