一种与8位微处理器应用系统连接的计数器ip核及其实现计数器计数控制的方法_2

文档序号:9396823阅读:来源:国知局
处理控制模块的溢出标志输出端连接,输出端与D触 发器IV的时钟信号输入端连接; D触发器IV的数据输出端作为16位计数器3/32位计数器1的溢出标志输出信号输出 端与8位微处理器应用系统连接; 与非门V的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触 发器V的时钟信号输入端连接; D触发器V的数据输出端和与门III的另一个输入端连接; 与门III的输出端作为16位计数器4的溢出标志输出信号与8位微处理器应用系统连 接; 与非门VI的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触 发器VI的时钟信号输入端连接; D触发器VI的数据输出端作为16位计数器5/32位计数器2的溢出标志输出信号输出 端与8位微处理器应用系统连接; 与非门W的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触 发器W的时钟信号输入端连接; D触发器W的数据输出端作为16位计数器6的溢出标志输出信号输出端与8位微处理 器应用系统连接; 与非门VID的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触 发器VID的时钟信号输入端连接; D触发器VID的数据输出端和与门IV的另一个输入端连接; 与门IV的输出端作为16位计数器7的溢出标志输出信号与8位微处理器应用系统连 接; 与非门IX的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触 发器IX的时钟信号输入端连接; D触发器IX的数据输出端作为16位计数器8/32位计数器3的溢出标志输出信号输出 端与8位微处理器应用系统连接; 与非门X的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触 发器X的时钟信号输入端连接; D触发器X的数据输出端和与门V的另一个输入端连接; 与门V的输出端作为16位计数器9的溢出标志输出信号与8位微处理器应用系统连 接; 与非门XI的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触 发器XI的时钟信号输入端连接; D触发器XI的数据输出端作为16位计数器10/32位计数器4的溢出标志输出信号输出 端与8位微处理器应用系统连接; 与非门ΧΠ 的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触 发器ΧΠ 的时钟信号输入端连接; D触发器ΧΠ 的数据输出端和与门VI的一个输入端连接; 与门VI的输出端作为16位计数器11的溢出标志输出信号与8位微处理器应用系统连 接; 与非门XIII的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D 触发器XIII的时钟信号输入端连接; D触发器XIII的数据输出端作为16位计数器12/32位计数器5的溢出标志输出信号输 出端与8位微处理器应用系统连接; 与非门XIV的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D 触发器XIV的时钟信号输入端连接; D触发器XIV的数据输出端作为16位计数器13溢出标志输出信号输出端与8位微处 理器应用系统连接。
[0008] 相关的另一技术方案是:一种与8位微处理器应用系统连接的计数器IP核用于计 数器计数控制的方法,它是运用本发明上述的一种与8位微处理器应用系统连接的计数器 IP核来实现计数器计数控制操作的方法; 所述计数器计数控制操作的具体步骤为: SlOl :清滤波基准时钟脉冲的倍数u数组存储单元、移位V数组存储单元,计数器编号 值j ; sl〇2 :滤波基准时钟脉冲下降沿触发程序执行1次; sl03 :判断计数器编号值j是否等于或大于1EH,如果j的值等于或大于1EH,则进入步 骤sl04,否则进入sl05 ; sl〇4 :设置计数器编号值j=00H,返回步骤sl02 ; sl05 :判断计数器编号值j是否等于OHl或者(FH,如果j的值等于OHl或者(FH,则进 入步骤s 106,否则进入步骤s 107 ; sl〇6 :设置计数器编号值j=10H,进入步骤sl07 ; sl〇7 :判断启/停信号是否等于0,如果启/停信号=0,该计数器停止计数工作,进入步 骤sl08,否则进入步骤sill ; sl08 :判断清计数当前值是否等于0,如果清计数当前值=0,则进入步骤sl09,否则进 入步骤sllO ; sl〇9 :清该计数器计数当前值存储单元的值,进入步骤sllO ; sllO :计数器编号值j加2,返回步骤sl03 ; sill :该计数器的滤波基准时钟脉冲的倍数加 I :u(j)= u(j)+l,进入步骤sll2 ; sll2 :判断该计数器工作模式,如果工作模式MlMO=IO,门控16位计数器,进入步 骤sll3 ;如果工作模式MlMO=OO,无门控的16位计数器,进入步骤sll8 ;如果工作模式 MlMO=Ol,无门控的32位计数器,进入步骤sll4 ;如果工作模式MlMO=Il,则选择门控的32 位计数器,进入步骤sll5; sll3 :判断该16位计数器的门控信号是否为0,如果门控信号等于0则返回步骤sllO, 否则进入步骤sll8 ; sll4 :判断该32位计数器编号值j的低2位是否等于00,如果等于00则进入步骤 sl31,否则返回步骤sllO ; sll5 :判断该32位计数器编号值j的低2位是否等于00,如果等于00则进入步骤 sll6,否则返回步骤sllO ; sll6 :判断该32位计数器的门控信号是否为0,如果门控信号等于0则进入步骤sll7, 否则进入步骤sl31 ; sll7 :计数器编号值j加4,返回步骤sl03 ; sll8 :判断该16位计数器的滤波参数的编码,如果滤波参数的编码为F2F1=00,进入 步骤sl22 ;如果滤波参数的编码为F2F1=01,则进入步骤sll9 ;如果滤波参数的编码为 F2F1=10,则进入步骤sl20 ;如果滤波参数的编码为F2F1=11,则进入步骤sl21 ; sll9 :判断该16位计数器的滤波基准时钟脉冲的倍数u(j)的值是否等于100,如果 u (j) =100,则进入步骤sl22,否则返回步骤sllO ; sl20 :判断该16位计数器的滤波基准时钟脉冲的倍数u (j)的值是否等于1000,如果 u (j) =1000,则进入步骤sl22,否则返回步骤sllO ; sl21 :判断该16位计数器的滤波基准时钟脉冲的倍数u (j)的值是否等于10000,如果 u (j) =10000,则进入步骤sl22,否则返回步骤sllO ; sl22 :设置该16位计数器的滤波基准时钟脉冲的倍数u(j)的值等于0,进入步骤 sl23 ; sl23:读入该16位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的 第0位,进入步骤sl24 ; sl24 :判断该16位计数器V (j)的第0位是否与第1位数据相等,如果相等,进入步骤 sl25,否则返回步骤sllO ; sl25 :判断该16位计数器V (j)的第2位是否与第3位数据相等,如果相等,进入步骤 sl26,否则返回步骤sllO ; sl26 :判断该16位计数器V (j)的第0位是否与第3位数据相等,如果不相等,进入步 骤sl27,否则返回步骤sllO ; sl27 :判断该16位计数器V (j)的第0位是否等于0,如果等于0,表示该16位计数器 的计数输入端产生了一个有效地计数脉冲,进入步骤sl28,否则返回步骤sllO ; sl28 :读出该16位计数器的16位计数当前值并加1,结果存储在该16位计数器16位 计数当前值存储单元,进入步骤sl29 ; sl29 :判断该16位计数器的计数值是否产生溢出,如果产生溢出则进入步骤sl30,否 则进入返回步骤SllO ; sl30 :重新装载该16位计数器的16位计数参数,返回步骤SllO ; sl31 :判断该32位计数器的滤波参数的编码,如果滤波参数的编码为F2F1=00,进入 步骤sl35 ;如果滤波参数的编码为F2F1=01,则进入步骤sl32 ;如果滤波参数的编码为 F2F1=10,则进入步骤sl33 ;如果滤波参数的编码为F2F1=10,则进入步骤sl34 ; sl32:判断该32位计数器的滤波基准时钟脉冲的倍数u(j)的值是否等于100,如果 u (j) =100,则进入步骤sl35,否则返回步骤si 17 ; sl33:判断该32位计数器的滤波基准时钟脉冲的倍数u(j)的值是否等于1000,如果 u (j) =1000,则进入步骤sl35,否则进入步骤si 17 ; sl34:判断该32位计数器的滤波基准时钟脉冲的倍数u(j)的值是否等于10000,如果 u (j) =10000,则进入步骤sl35,否则进入步骤si 17 ; sl35:设置该32位计数器的滤波基准时钟脉冲的倍数u(j)的值等于0,进入步骤 sl36 ; sl36:读入该32位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的 第0位,进入步骤sl37 ; sl37 :判断该32位计数器V (j)的第0位是否与第1位数据相等,如果相等,进入步骤 sl38,否则返回步骤sll7 ; sl38 :判断该32位计数器V (j)的第2位是否与第3位数据相等,如果相等,进入步骤 sl39,否则返回步骤sll7 ; sl39 :判断该32位计数器V (j)的第0位是否与第3位数据相等,如果不相等,进入步 骤sl40,否则返回步骤sll7 ; sl40 :判断该32位计数器V (j)的第0位是否等于0,如果等于0,表示该32位计数器 的计数输入端产生了一个有效地计数脉冲,进入步骤sl41,否则返回步骤sll7 ; sl41 :读出该32位计数器的32位计数当前值并加1,结果存储在该32位计数器的32 位计数当前值存储单元,进入步骤sl42 ; sl42:判断该32位计数器的计数值是否产生溢出,如果产生溢出则进入步骤sl43,否 则返回步骤sll7 ; sl43 :重新装载该32位计数器的32位计数参数,返回步骤sll7。
[0009] 由于采用以上结构,本发明之一种与8位微处理器应用系统连接的计数器IP核及 其实现计数器计数控制的方法具有以下有益效果: 1.与8位微处理器应用系统连接,编程控制便利 本发明的计数器IP核可以直接与8位微处理器应用系统连接,对计数器IP核中的每 个计数器进行功能设置时,8位微处理器只需要向计数器IP核发送1个命令字即可确定 该计数器的工作模式,计数滤波基准时钟脉冲的滤波参数;发送另一个命令字启动该计数 器的计数工作,以及是否清该计数器的溢出标志和是否清计数当前值;对于一个16位计数 器,分时传输高8位和低8位计数参数;对于一个32位计数器,分四次传输32位计数参数; 8位微处理器还可以按照计数器的地址直接读出该计数器的实时计数值,编程控制计数器 便利。
[0010] 2.适合数量众多计数器计数与计数控制的系统需求 本发明的计数器IP核内部有14个16位计数器,根据计数应用的需要设置命令字可以 将2个16位计数器组成32位计数器,能够设置组成6个32位计数器,还能够设置选择四 种计数滤波基准时钟脉冲的滤波参数;计数产生计数溢出信号时,本发明的计数器IP核能 够自动重新装载计数参数,能够满足数量众多计数器计数与计数控制的系统需求。
[0011] 3. FPGA并行处理计数,计数器IP核性价比高 本发明除8位微处理器对计数器进行功能设置、计数参数传输、软件清计数溢出标志, 读出计数当前值,以及需要清计数当前值的操作之外,将不占用8位微处理器的程序执行 时间;应用FPGA设计硬连接电路组成的计数器IP核能够重构成为7个16位计数器,能够 设置组成3个32位计数器;本发明的一种与8位微处理器应用系统连接的计数器IP核及 其实现计数器计数控制的方法能够选择四种计数滤波基准时钟脉冲的滤波参数,实现对计 数输入脉冲的滤波,自动重新装载计数参数,占用8位微处理器的程序执行的时间大为减 少,将其用于开发数量众多计数器计数与计数控制的系统,可获很高的性价比。
[0012] 下面结合附图和实施例对本发明之一种与8位微处理器应用系统连接的计数器 IP核及其实现计数器计数控制的方法的技术特征作进一步的说明。
【附图说明】
[0013] 图1 :本发明之一种与8位微处理器应用系统连接的计数器IP核的电路结构框 图; 图2 :本发明实施例一之一种与8位微处理器应用系统连接的计数器IP核的封装图; 图3 :本发明实施例一之一种与8位微处理器应用系统连接的计数器IP核的数据输入 输出与命令字分解存储控制模块的电路框图; 图4 :本发明实施例一之一种与8位微处理器应用系统连接的计数器IP核的计数处理 控制模块的电路框图; 图5 :本发明实施例一之一种与8位微处理器应用系统连接的计数器IP核的计数器溢 出标志控制模块的电路框图; 图6 :本发明实施例二之一种与8位微处理器应用系统连接的计数器IP核的封装图; 图7 :本发明实施例二之一种与8位微处理器应用系统连接的计数器IP核的数据输入 输出与命令字分解存储控制模块的电路框图; 图8 :本发明实施例二之一种与8位微处理器应用系统连接的计数器IP核的计数器溢 出标志控制模块的电路框图; 图9-1~图9-3 :本发明实施例一之一种与8位微处理器应用系统连接的计数器IP核 的计数器计数控制操作程序流程图。
[0014] 图10-1 :本发明实施例二之一种与8位微处理器应用系统连接的计数器IP核的 计数器计数控制操作程序流程图(与实施例一不同部分)。
[0015] 图中: I 一 8位微处理器应用系统,II一数据输入输出与命令字分解存储控制模块,III一 脉冲12分频器,IV -计数处理控制模块,V -计数器溢出标志控制模块,VI -输入 门控选择控制模块; 1一8位双向数据选通
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1