首页> 中国专利> 一种与8位微处理器应用系统连接的计数器IP核及其实现计数器计数控制的方法

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

摘要

一种与8位微处理器应用系统连接的计数器IP核,包括数据输入输出与命令字分解存储控制模块,脉冲12分频器,计数处理控制模块,计数器溢出标志控制模块和输入门控选择控制模块;本发明应用FPGA设计计数器IP核硬连接控制电路,计数器IP核有14个16位计数器,其中12个能够组成6个32位计数器,一个命令字设置工作模式,滤波基准时钟脉冲倍数的参数设置,另一个命令字控制工作状态;本发明除8位微处理器对计数器进行功能和状态设置、计数参数传输、读计数当前值的操作之外,每个16位/32位计数器还具有自动重新装载计数参数功能,不占用8位微处理器程序执行时间;能够满足数量众多计数器计数与计数控制系统的需求。

著录项

  • 公开/公告号CN105117357A

    专利类型发明专利

  • 公开/公告日2015-12-02

    原文格式PDF

  • 申请/专利权人 广西科技大学;

    申请/专利号CN201510376781.9

  • 发明设计人 柯宝中;侯丽;蔡启仲;潘绍明;

    申请日2015-06-30

  • 分类号

  • 代理机构柳州市荣久专利商标事务所(普通合伙);

  • 代理人张荣玖

  • 地址 545006 广西壮族自治区柳州市东环路268号

  • 入库时间 2023-12-18 12:40:40

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-16

    授权

    授权

  • 2015-12-30

    实质审查的生效 IPC(主分类):G06F13/20 申请日:20150630

    实质审查的生效

  • 2015-12-02

    公开

    公开

说明书

技术领域

本发明涉及一种与8位微处理器应用系统连接的计数器IP核及其实现计数器计数控制的方法,尤其涉及一种基于FPGA并行处理的特点,应用FPGA设计硬连接电路组成的能够与8位微处理器应用系统连接的计数器IP核及其实现计数器计数控制的方法。

背景技术

在大规模计数控制或其它需要应用众多计数器的8位微处理器应用系统中,将使用大量的计数器,扩展计数器个数有三种实现方式:第一种方式是应用微处理器中的一个计数器的计数值作为基准计数值,采用计数中断方式编程,设置基准计数值的倍数变量,该计数值倍数变量也是扩展计数器的标识变量,编程方法主要有2种,第1种方法是执行一次计数器中断服务函数计数值倍数变量加1,并与设置的基准计数值的倍数值比较,如果计数值倍数变量已达到设置的基准计数值的倍数值,对计数值倍数变量清0,然后执行该扩展计数器计数值溢出的程序;或专门设置一个扩展计数器的标识变量,当计数值倍数变量已达到设置的基准计数值的倍数值时,对计数值倍数变量清0,置1计数器的标识变量,在主函数的程序中判断该计数器的标识变量是否为“1”,如果是,则清0该计数器的标识变量,执行一次该扩展计数器计数值溢出的处理函数;第二种方式是微处理器与计数器扩展芯片连接,目前计数器芯片主要有82C54,可以扩展3个16位计数器;

以上二种实现方式存在如下不足之处:

1.应用基准计数器的计数中断方法,CPU响应和退出基准计数器中断服务程序占用CPU运行时间;基准计数值越小,计数器系统需要扩展的计数器越多,将占用CPU运行时间越长,对其它程序模块的执行速度产生严重的影响;

2.第二种方式采用微处理器外扩专用计数器芯片,所需的计数器越多,外扩专用计数器芯片就越多,8位微处理器应用系统的电路规模就越大;

第三种方式是采用不可编程的硬件计数,其每个计数器用独立的硬件电路实现;采用这种方式实现计数功能,所需的计数器越多,电路规模就越大,且维护工作量大。

发明内容

本发明的目的在于充分应用FPGA的并行处理功能,提供一种基于FPGA的与8位微处理器应用系统连接的计数器IP核及其实现计数器计数控制的方法,计数器IP核内部有14个16位计数器,能够应用12个16位计数器设置成为6个32位计数器,每个16位计数器或32位计数器能够输出计数溢出信号,能够编程设置门控信号控制计数器的工作,计数器的工作模式,选择四种计数输入脉冲的滤波参数,该计数器IP核只需要经过初始化编程的两条命令设置每个计数器的工作运行方式,每个计数器计数值溢出时,能够自动重新装载计数参数,计数过程不占用8位微处理器程序执行的时间,能够实现对数量多达14个16位计数器或6个32位计数器的计数与计数控制等优点,以克服已有计数方式实现技术所存在的不足。

为解决上述技术问题,本发明采取的技术方案是:一种与8位微处理器应用系统连接的计数器IP核,其特征在于:该计数器IP核包括数据输入输出与命令字分解存储控制模块,脉冲12分频器,计数处理控制模块,计数器溢出标志控制模块,输入门控选择控制模块;

所述数据输入输出与命令字分解存储控制模块与8位微处理器应用系统、计数处理控制模块、计数器溢出标志控制模块和输入门控选择控制模块连接;

所述脉冲12分频器还与8位微处理器应用系统和计数处理控制模块连接;

所述计数处理控制模块还与8位微处理器应用系统、计数器溢出标志控制模块和输入门控选择控制模块连接;

所述数据输入输出与命令字分解存储控制模块在输入的片选信号为低电平的条件下,如果写信号有效,按照8位微处理器应用系统给定的计数器或计数器命令字的地址,获得计数器运行的工作模式分频倍数编码命令字,状态控制命令字,16位计数器或32位计数器的计数参数,并按照计数参数、计数器编号、工作模式分频倍数编码和状态控制分别予以存储和输出,还输出写工作模式分频倍数编码命令字信号、写状态控制命令字信号和写计数器参数信号;如果读信号有效向8位微处理器应用系统传输计数器实时计数值;

所述脉冲12分频器对8位微处理器应用系统的时钟脉冲进行分频,其输出作为计数处理控制模块的计数器计数控制操作的滤波基准时钟脉冲;

所述计数处理控制模块在写工作模式分频倍数编码命令字信号的作用下,按照计数器编号存储该计数器的工作模式,滤波基准时钟分频倍数的编码值;在写状态控制命令字信号的作用下,按照计数器编号存储该计数器的状态控制信号;在写计数器参数信号的作用下,按照计数器编号存储该计数器的计数参数;所述计数处理控制模块在计数器IP核外部输入的计数处理控制运行时钟脉冲CLKⅡ的作用下,控制计数处理控制模块的运行,按照脉冲12分频器输出的一个滤波基准时钟脉冲周期完成所有已启动计数器的一次处理,包括每个计数器的状态控制处理,工作模式的判断处理,当滤波基准时钟的个数达到一个16位/32位计数器所设置的滤波基准时钟倍数值时,从计数器IP核外部读入该计数器的计数输入信号,进行一次滤波处理,如果判断是一次有效地计数脉冲,则对该计数器的实时计数参数值进行加1操作,产生溢出时,对实时计数参数值自动重装载计数参数,并输出溢出标志信号;在数据输入输出与命令字分解存储控制模块输入的片选信号为低电平的条件下,如果读信号有效,按照8位微处理器应用系统给定的计数器的地址,直接读出该计数器的实时计数参数值经数据输入输出与命令字分解存储控制模块传输到8位微处理器应用系统的数据总线,16位计数器的实时计数参数需要分时两次予以读出,32位计数器的实时计数参数需要分时四次予以读出;在8位微处理器应用系统输出的复位信号作用下,停止所有计数器的计数操作;

所述计数器溢出标志控制模块输出16位/32位计数器的高电平为有效的溢出信号;计数处理控制模块输出的16位计数器的溢出信号由低电平变换为高电平时,存储该计数器溢出标志为高电平;如果该计数器溢出标志为高电平,清溢出标志由高电平转换为低电平,存储该计数器溢出标志为低电平;在写工作模式分频倍数编码命令字信号的作用下,计数器溢出标志控制模块按照寄存器编号存储32位计数器工作模式的信息,封锁该32位计数器低16位的溢出信息保持为低电平;

所述输入门控选择控制模块在写工作模式分频倍数编码命令字信号作用下,按照计数器编号存储该计数器的工作模式,根据该计数器工作模式所确定的门控功能要求和输入的门控电平,控制输入门控选择控制模块输出的门控信号。

其进一步技术方案是:所述数据输入输出与命令字分解存储控制模块包括8位双向数据选通三态门组,读写信号控制模块,计数参数寄存器,计数器编号寄存器,工作模式滤波编码寄存器,状态控制寄存器;

所述8位双向数据选通三态门组分别与8位微处理器应用系统、读写信号控制模块、计数参数寄存器、计数器编号寄存器,工作模式滤波编码寄存器,状态控制寄存器和计数处理控制模块连接;

所述读写信号控制模块还与8位微处理器应用系统、计数参数寄存器、计数器编号寄存器,工作模式滤波编码寄存器,状态控制寄存器、计数处理控制模块、计数器溢出标志控制模块和输入门控选择控制模块连接;

所述计数参数寄存器还与计数处理控制模块连接;

所述计数器编号寄存器还与8位微处理器应用系统、计数处理控制模块、计数器溢出标志控制模块和输入门控选择控制模块连接;

所述工作模式滤波编码寄存器还与8位微处理器应用系统、计数处理控制模块、计数器溢出标志控制模块和输入门控选择控制模块连接;

所述状态控制寄存器还与8位微处理器应用系统、计数处理控制模块和计数器溢出标志控制模块连接;

所述数据输入输出与命令字分解存储控制模块的读写信号控制模块在片选信号为低电平的条件下,如果写信号有效,发出8位双向数据选通三态门组写信号,选通8位微处理器应用系统数据总线的数据输入;产生写计数器编号信号,并判断8位微处理器应用系统地址总线输入的地址值,如果是计数器参数的地址值,将该地址值写入计数器编号寄存器,产生写计数器参数信号,将数据总线的8位数据写入计数参数寄存器;如果是计数器命令字地址,将数据总线的第2位~第5位数据写入计数器编号寄存器,命令字地址是0EH或0FH,设置第3位计数器编号值S3为0,否则设置为1;如果是命令字低8位地址,则命令字是工作模式分频倍数编码命令字,产生写工作模式分频倍数编码命令字信号,将数据总线的第0位、第1位、第6位和第7位写入工作模式分频倍数编码寄存器;如果是命令字高8位地址,则命令字是状态控制命令字,产生写状态控制命令字信号,将数据总线的第0位、第1位和第7位写入状态控制寄存器;如果读信号有效,发出8位双向数据选通三态门组读信号,将计数处理控制模块的计数器IP核内部输出数据总线的数据传输到8位微处理器应用系统的数据总线。

其更进一步技术方案是:所述计数处理控制模块包括计数器计数控制操作模块,地址选通控制Ⅰ,8位计数参数双端口存储器,地址选通控制Ⅱ,8位计数实时参数双端口存储器,地址选通控制Ⅲ,4位工作模式分频倍数编码双端口存储器,地址选通控制Ⅳ,3位状态控制双端口存储器,4位计数滤波参数移位存储器;

所述计数器计数控制操作模块分别与脉冲12分频器、计数器溢出标志控制模块、输入门控选择控制模块、地址选通控制Ⅰ、8位计数参数双端口存储器、地址选通控制Ⅱ、8位计数实时参数双端口存储器、地址选通控制Ⅲ、4位工作模式分频倍数编码双端口存储器、地址选通控制Ⅳ、3位状态控制双端口存储器,4位计数滤波参数移位存储器,计数器IP核外部输入的计数输入信号和计数处理控制运行时钟脉冲CLKⅡ连接;

所述地址选通控制Ⅰ还与数据输入输出与命令字分解存储控制模块和8位计数参数双端口存储器连接;

所述8位计数参数双端口存储器还与数据输入输出与命令字分解存储控制模块和8位计数实时参数双端口存储器连接;

所述地址选通控制Ⅱ还与8位微处理器应用系统、数据输入输出与命令字分解存储控制模块和8位计数实时参数双端口存储器连接;

所述8位计数实时参数双端口存储器还与数据输入输出与命令字分解存储控制模块连接;

所述地址选通控制Ⅲ还与数据输入输出与命令字分解存储控制模块和4位工作模式分频倍数编码双端口存储器连接;

所述4位工作模式分频倍数编码双端口存储器还与数据输入输出与命令字分解存储控制模块连接;

所述地址选通控制Ⅳ还与数据输入输出与命令字分解存储控制模块和3位状态控制双端口存储器连接;

所述3位状态控制双端口存储器还与数据输入输出与命令字分解存储控制模块、8位微处理器应用系统的复位信号连接;如果输入的复位信号为有效的复位信号,复位3位状态控制双端口存储器,停止所有计数器的计数。

其再进一步技术方案是:所述计数器溢出标志控制模块包括非门,M0工作模式位寄存器组,溢出清零脉冲控制器,与非门Ⅰ,D触发器Ⅰ,与门Ⅰ,与非门Ⅱ,D触发器Ⅱ,与非门Ⅲ,D触发器Ⅲ,与门Ⅱ,与非门Ⅳ,D触发器Ⅳ,与非门Ⅴ,D触发器Ⅴ,与门Ⅲ,与非门Ⅵ,D触发器Ⅵ,与非门Ⅶ,D触发器Ⅶ,与非门Ⅷ,D触发器Ⅷ,与门Ⅳ,与非门Ⅸ,D触发器Ⅸ,与非门Ⅹ,D触发器Ⅹ,与门Ⅴ,与非门Ⅺ,D触发器Ⅺ,与非门Ⅻ,D触发器Ⅻ,与门Ⅵ,与非门ⅩⅢ,D触发器ⅩⅢ,与非门ⅩⅣ,D触发器ⅩⅣ;

所述非门的输入端与数据输入输出与命令字分解存储控制模块的状态控制寄存器的M0输出端连接,输出端与M0工作模式位寄存器组的一个输入端连接;

M0工作模式位寄存器组的另三个输入端分别与8位微处理器应用系统的复位信号输出端、数据输入输出与命令字分解存储控制模块的读写信号控制模块的写工作模式滤波编码命令字信号输出端和计数器编号寄存器的计数器编号输出端连接,输出端分别与门Ⅰ、与门Ⅱ、与门Ⅲ、与门Ⅳ、与门Ⅴ、与门Ⅵ的一个输入端连接;

溢出清零脉冲控制器的三个输入端分别与数据输入输出与命令字分解存储控制模块的读写信号控制模块的写状态控制命令字信号输出端、状态控制寄存器的清溢出标志输出端和计数器编号寄存器的计数器编号输出端连接,输出端分别与非门Ⅰ、与非门Ⅱ、与非门Ⅲ、与非门Ⅳ、与非门Ⅴ、与非门Ⅵ、与非门Ⅶ、与非门Ⅷ、与非门Ⅸ、与非门Ⅹ、与非门Ⅺ、与非门Ⅻ、与非门ⅩⅢ、与非门ⅩⅣ的一个输入端连接;输出端还与D触发器Ⅰ、D触发器Ⅱ、D触发器Ⅲ、D触发器Ⅳ、D触发器Ⅴ、D触发器Ⅵ、D触发器Ⅶ、D触发器Ⅷ、D触发器Ⅸ、D触发器Ⅹ、D触发器Ⅺ、D触发器Ⅻ、D触发器ⅩⅢ和D触发器ⅩⅣ的数据输入端连接;

与非门Ⅰ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅰ的时钟信号输入端连接;

D触发器Ⅰ的数据输出端和与门Ⅰ的另一个输入端连接;

与门Ⅰ的输出端作为16位计数器0的溢出标志输出信号与8位微处理器应用系统连接;

与非门Ⅱ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅱ的时钟信号输入端连接;

D触发器Ⅱ的数据输出端作为16位计数器1/32位计数器0的溢出标志输出信号输出端与8位微处理器应用系统连接;

与非门Ⅲ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅲ的时钟信号输入端连接;

D触发器Ⅲ的数据输出端和与门Ⅱ的另一个输入端连接;

与门Ⅱ的输出端作为16位计数器2的溢出标志输出信号与8位微处理器应用系统连接;

与非门Ⅳ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅳ的时钟信号输入端连接;

D触发器Ⅳ的数据输出端作为16位计数器3/32位计数器1的溢出标志输出信号输出端与8位微处理器应用系统连接;

与非门Ⅴ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅴ的时钟信号输入端连接;

D触发器Ⅴ的数据输出端和与门Ⅲ的另一个输入端连接;

与门Ⅲ的输出端作为16位计数器4的溢出标志输出信号与8位微处理器应用系统连接;

与非门Ⅵ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅵ的时钟信号输入端连接;

D触发器Ⅵ的数据输出端作为16位计数器5/32位计数器2的溢出标志输出信号输出端与8位微处理器应用系统连接;

与非门Ⅶ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅶ的时钟信号输入端连接;

D触发器Ⅶ的数据输出端作为16位计数器6的溢出标志输出信号输出端与8位微处理器应用系统连接;

与非门Ⅷ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅷ的时钟信号输入端连接;

D触发器Ⅷ的数据输出端和与门Ⅳ的另一个输入端连接;

与门Ⅳ的输出端作为16位计数器7的溢出标志输出信号与8位微处理器应用系统连接;

与非门Ⅸ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅸ的时钟信号输入端连接;

D触发器Ⅸ的数据输出端作为16位计数器8/32位计数器3的溢出标志输出信号输出端与8位微处理器应用系统连接;

与非门Ⅹ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅹ的时钟信号输入端连接;

D触发器Ⅹ的数据输出端和与门Ⅴ的另一个输入端连接;

与门Ⅴ的输出端作为16位计数器9的溢出标志输出信号与8位微处理器应用系统连接;

与非门Ⅺ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅺ的时钟信号输入端连接;

D触发器Ⅺ的数据输出端作为16位计数器10/32位计数器4的溢出标志输出信号输出端与8位微处理器应用系统连接;

与非门Ⅻ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器Ⅻ的时钟信号输入端连接;

D触发器Ⅻ的数据输出端和与门Ⅵ的一个输入端连接;

与门Ⅵ的输出端作为16位计数器11的溢出标志输出信号与8位微处理器应用系统连接;

与非门ⅩⅢ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器ⅩⅢ的时钟信号输入端连接;

D触发器ⅩⅢ的数据输出端作为16位计数器12/32位计数器5的溢出标志输出信号输出端与8位微处理器应用系统连接;

与非门ⅩⅣ的另一个输入端与计数处理控制模块的溢出标志输出端连接,输出端与D触发器ⅩⅣ的时钟信号输入端连接;

D触发器ⅩⅣ的数据输出端作为16位计数器13溢出标志输出信号输出端与8位微处理器应用系统连接。

相关的另一技术方案是:一种与8位微处理器应用系统连接的计数器IP核用于计数器计数控制的方法,它是运用本发明上述的一种与8位微处理器应用系统连接的计数器IP核来实现计数器计数控制操作的方法;

所述计数器计数控制操作的具体步骤为:

s101:清滤波基准时钟脉冲的倍数u数组存储单元、移位v数组存储单元,计数器编号值j;

s102:滤波基准时钟脉冲下降沿触发程序执行1次;

s103:判断计数器编号值j是否等于或大于1EH,如果j的值等于或大于1EH,则进入步骤s104,否则进入s105;

s104:设置计数器编号值j=00H,返回步骤s102;

s105:判断计数器编号值j是否等于0EH或者0FH,如果j的值等于0EH或者0FH,则进入步骤s106,否则进入步骤s107;

s106:设置计数器编号值j=10H,进入步骤s107;

s107:判断启/停信号是否等于0,如果启/停信号=0,该计数器停止计数工作,进入步骤s108,否则进入步骤s111;

s108:判断清计数当前值是否等于0,如果清计数当前值=0,则进入步骤s109,否则进入步骤s110;

s109:清该计数器计数当前值存储单元的值,进入步骤s110;

s110:计数器编号值j加2,返回步骤s103;

s111:该计数器的滤波基准时钟脉冲的倍数加1:u(j)=u(j)+1,进入步骤s112;

s112:判断该计数器工作模式,如果工作模式M1M0=10,门控16位计数器,进入步骤s113;如果工作模式M1M0=00,无门控的16位计数器,进入步骤s118;如果工作模式M1M0=01,无门控的32位计数器,进入步骤s114;如果工作模式M1M0=11,则选择门控的32位计数器,进入步骤s115;

s113:判断该16位计数器的门控信号是否为0,如果门控信号等于0则返回步骤s110,否则进入步骤s118;

s114:判断该32位计数器编号值j的低2位是否等于00,如果等于00则进入步骤s131,否则返回步骤s110;

s115:判断该32位计数器编号值j的低2位是否等于00,如果等于00则进入步骤s116,否则返回步骤s110;

s116:判断该32位计数器的门控信号是否为0,如果门控信号等于0则进入步骤s117,否则进入步骤s131;

s117:计数器编号值j加4,返回步骤s103;

s118:判断该16位计数器的滤波参数的编码,如果滤波参数的编码为F2F1=00,进入步骤s122;如果滤波参数的编码为F2F1=01,则进入步骤s119;如果滤波参数的编码为F2F1=10,则进入步骤s120;如果滤波参数的编码为F2F1=11,则进入步骤s121;

s119:判断该16位计数器的滤波基准时钟脉冲的倍数u(j)的值是否等于100,如果u(j)=100,则进入步骤s122,否则返回步骤s110;

s120:判断该16位计数器的滤波基准时钟脉冲的倍数u(j)的值是否等于1000,如果u(j)=1000,则进入步骤s122,否则返回步骤s110;

s121:判断该16位计数器的滤波基准时钟脉冲的倍数u(j)的值是否等于10000,如果u(j)=10000,则进入步骤s122,否则返回步骤s110;

s122:设置该16位计数器的滤波基准时钟脉冲的倍数u(j)的值等于0,进入步骤s123;

s123:读入该16位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的第0位,进入步骤s124;

s124:判断该16位计数器v(j)的第0位是否与第1位数据相等,如果相等,进入步骤s125,否则返回步骤s110;

s125:判断该16位计数器v(j)的第2位是否与第3位数据相等,如果相等,进入步骤s126,否则返回步骤s110;

s126:判断该16位计数器v(j)的第0位是否与第3位数据相等,如果不相等,进入步骤s127,否则返回步骤s110;

s127:判断该16位计数器v(j)的第0位是否等于0,如果等于0,表示该16位计数器的计数输入端产生了一个有效地计数脉冲,进入步骤s128,否则返回步骤s110;

s128:读出该16位计数器的16位计数当前值并加1,结果存储在该16位计数器16位计数当前值存储单元,进入步骤s129;

s129:判断该16位计数器的计数值是否产生溢出,如果产生溢出则进入步骤s130,否则进入返回步骤s110;

s130:重新装载该16位计数器的16位计数参数,返回步骤s110;

s131:判断该32位计数器的滤波参数的编码,如果滤波参数的编码为F2F1=00,进入步骤s135;如果滤波参数的编码为F2F1=01,则进入步骤s132;如果滤波参数的编码为F2F1=10,则进入步骤s133;如果滤波参数的编码为F2F1=10,则进入步骤s134;

s132:判断该32位计数器的滤波基准时钟脉冲的倍数u(j)的值是否等于100,如果u(j)=100,则进入步骤s135,否则返回步骤s117;

s133:判断该32位计数器的滤波基准时钟脉冲的倍数u(j)的值是否等于1000,如果u(j)=1000,则进入步骤s135,否则进入步骤s117;

s134:判断该32位计数器的滤波基准时钟脉冲的倍数u(j)的值是否等于10000,如果u(j)=10000,则进入步骤s135,否则进入步骤s117;

s135:设置该32位计数器的滤波基准时钟脉冲的倍数u(j)的值等于0,进入步骤s136;

s136:读入该32位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的第0位,进入步骤s137;

s137:判断该32位计数器v(j)的第0位是否与第1位数据相等,如果相等,进入步骤s138,否则返回步骤s117;

s138:判断该32位计数器v(j)的第2位是否与第3位数据相等,如果相等,进入步骤s139,否则返回步骤s117;

s139:判断该32位计数器v(j)的第0位是否与第3位数据相等,如果不相等,进入步骤s140,否则返回步骤s117;

s140:判断该32位计数器v(j)的第0位是否等于0,如果等于0,表示该32位计数器的计数输入端产生了一个有效地计数脉冲,进入步骤s141,否则返回步骤s117;

s141:读出该32位计数器的32位计数当前值并加1,结果存储在该32位计数器的32位计数当前值存储单元,进入步骤s142;

s142:判断该32位计数器的计数值是否产生溢出,如果产生溢出则进入步骤s143,否则返回步骤s117;

s143:重新装载该32位计数器的32位计数参数,返回步骤s117。

由于采用以上结构,本发明之一种与8位微处理器应用系统连接的计数器IP核及其实现计数器计数控制的方法具有以下有益效果:

1.与8位微处理器应用系统连接,编程控制便利

本发明的计数器IP核可以直接与8位微处理器应用系统连接,对计数器IP核中的每个计数器进行功能设置时,8位微处理器只需要向计数器IP核发送1个命令字即可确定该计数器的工作模式,计数滤波基准时钟脉冲的滤波参数;发送另一个命令字启动该计数器的计数工作,以及是否清该计数器的溢出标志和是否清计数当前值;对于一个16位计数器,分时传输高8位和低8位计数参数;对于一个32位计数器,分四次传输32位计数参数;8位微处理器还可以按照计数器的地址直接读出该计数器的实时计数值,编程控制计数器便利。

2.适合数量众多计数器计数与计数控制的系统需求

本发明的计数器IP核内部有14个16位计数器,根据计数应用的需要设置命令字可以将2个16位计数器组成32位计数器,能够设置组成6个32位计数器,还能够设置选择四种计数滤波基准时钟脉冲的滤波参数;计数产生计数溢出信号时,本发明的计数器IP核能够自动重新装载计数参数,能够满足数量众多计数器计数与计数控制的系统需求。

3.FPGA并行处理计数,计数器IP核性价比高

本发明除8位微处理器对计数器进行功能设置、计数参数传输、软件清计数溢出标志,读出计数当前值,以及需要清计数当前值的操作之外,将不占用8位微处理器的程序执行时间;应用FPGA设计硬连接电路组成的计数器IP核能够重构成为7个16位计数器,能够设置组成3个32位计数器;本发明的一种与8位微处理器应用系统连接的计数器IP核及其实现计数器计数控制的方法能够选择四种计数滤波基准时钟脉冲的滤波参数,实现对计数输入脉冲的滤波,自动重新装载计数参数,占用8位微处理器的程序执行的时间大为减少,将其用于开发数量众多计数器计数与计数控制的系统,可获很高的性价比。

下面结合附图和实施例对本发明之一种与8位微处理器应用系统连接的计数器IP核及其实现计数器计数控制的方法的技术特征作进一步的说明。

附图说明

图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核的计数器计数控制操作程序流程图。

图10-1:本发明实施例二之一种与8位微处理器应用系统连接的计数器IP核的计数器计数控制操作程序流程图(与实施例一不同部分)。

图中:

Ⅰ—8位微处理器应用系统,Ⅱ—数据输入输出与命令字分解存储控制模块,Ⅲ—脉冲12分频器,Ⅳ—计数处理控制模块,Ⅴ—计数器溢出标志控制模块,Ⅵ—输入门控选择控制模块;

1—8位双向数据选通三态门组,2—读写信号控制模块,3—计数参数寄存器,4—计数器编号寄存器,5—工作模式滤波编码寄存器,6—状态控制寄存器,7—非门,8—M0工作模式位寄存器组,9—溢出清零脉冲控制器,10—与非门Ⅰ,11—D触发器Ⅰ,12—与门Ⅰ,13—与非门Ⅱ,14—D触发器Ⅱ,15—与非门Ⅲ,16—D触发器Ⅲ,17—与门Ⅱ,18—与非门Ⅳ,19—D触发器Ⅳ,20—与非门Ⅴ,21—D触发器Ⅴ,22—与门Ⅲ,23—与非门Ⅵ,24—D触发器Ⅵ,25—与非门Ⅶ,26—D触发器Ⅶ,27—与非门Ⅷ,28—D触发器Ⅷ,29—与门Ⅳ,30—与非门Ⅸ,31—D触发器Ⅸ,32—与非门Ⅹ,33—D触发器Ⅹ,34—与门Ⅴ,35—与非门Ⅺ,36—D触发器Ⅺ,37—与非门Ⅻ,38—D触发器Ⅻ,39—与门Ⅵ,40—与非门ⅩⅢ,41—D触发器ⅩⅢ,42—与非门ⅩⅣ,43—D触发器ⅩⅣ,44—计数器计数控制操作模块,45—地址选通控制Ⅰ,46—8位计数参数双端口存储器,47—地址选通控制Ⅱ,48—8位计数实时参数双端口存储器,49—地址选通控制Ⅲ,50—4位工作模式分频倍数编码双端口存储器,51—地址选通控制Ⅳ,52—3位状态控制双端口存储器;53—4位计数滤波参数移位存储器。

文中缩略语说明:

FPGA-FieldProgrammableGateArray,现场可编程门阵列;

RD-Read信号,读信号;

CS-ChipSelect信号,片选信号;

WR-Write,写信号;

RST-Reset,复位信号;

AB-AddressBus,地址总线;

DB-DataBus,数据总线;

CLK-Clockpulse,时钟脉冲;

TF-计数值溢出标志输出信号;

GATE-门控输入信号;

M0-16/32位计数器编码,M0为“0”,16位计数器;M0为“1”,32位计数器;

M1-门控方式编码,M1为“0”,无门控输入信号控制计数器;M1为“1”,门控输入信号控制计数器;

DB_1-计数器IP核内部输入数据总线;

DB_2-计数器IP核内部输出数据总线;

RD_1-8位双向数据选通三态门组读信号;

RD_2-实时计数值读信号;

WR_1-8位双向数据选通三态门组写信号;

WR_2-写工作模式滤波编码命令字信号;

WR_3-写状态控制命令字信号;

WR_4-写计数器参数信号;

WR_5-写计数器编号信号;

CLKⅠ-时钟脉冲;

CLKⅡ-计数处理控制运行时钟脉冲;

C0~C13-计数器IP核的14个16位计数器的计数输入信号,其中C0、C2、C4、C7、C9、C11分别对应32位计数器0~5的计数输入信号;

S0、S1、S2-第0位、第1位、第2位计数器编号值;

S3-第3位计数器编号值;

GATE0~13-16位计数器0~13的门控输入信号,其中GATE1、GATE3、GATE5、GATE8、GATE10、GATE12分别对应32位计数器0~5的门控输入信号;

TF0~13-16位计数器0~13的计数值溢出标志输出信号,其中TF1、TF3、TF5、TF8、TF10、TF12分别对应32位计数器0~5的计数值溢出标志输出信号;

D触发器-Dataflip-flop;

D-Datainput,D触发器数据输入端;

Q-Dataoutput,D触发器数据输出端;

CP-ClockPulseinput,时钟信号输入端。

具体实施方式

一种与8位微处理器应用系统连接的计数器IP核:

如图1所示,该计数器IP核包括数据输入输出与命令字分解存储控制模块Ⅱ,脉冲12分频器Ⅲ,计数处理控制模块Ⅳ,计数器溢出标志控制模块Ⅴ,输入门控选择控制模块Ⅵ;

所述数据输入输出与命令字分解存储控制模块Ⅱ与8位微处理器应用系统Ⅰ、计数处理控制模块Ⅳ、计数器溢出标志控制模块Ⅴ和输入门控选择控制模块Ⅵ连接;

所述脉冲12分频器Ⅲ还与8位微处理器应用系统Ⅰ和计数处理控制模块Ⅳ连接;

所述计数处理控制模块Ⅳ还与8位微处理器应用系统Ⅰ、计数器溢出标志控制模块Ⅴ和输入门控选择控制模块Ⅵ连接;

所述数据输入输出与命令字分解存储控制模块Ⅱ在输入的片选信号为低电平的条件下,如果写信号有效,按照8位微处理器应用系统Ⅰ给定的计数器或计数器命令字的地址,获得计数器运行的工作模式分频倍数编码命令字,状态控制命令字,16位计数器或32位计数器的计数参数,并按照计数参数、计数器编号、工作模式分频倍数编码和状态控制分别予以存储和输出,还输出写工作模式分频倍数编码命令字信号、写状态控制命令字信号和写计数器参数信号;如果读信号有效向8位微处理器应用系统Ⅰ传输计数器实时计数值;

所述脉冲12分频器Ⅲ对8位微处理器应用系统Ⅰ的时钟脉冲进行分频,其输出作为计数处理控制模块Ⅳ的计数器计数控制操作的滤波基准时钟脉冲;

所述计数处理控制模块Ⅳ在写工作模式分频倍数编码命令字信号的作用下,按照计数器编号存储该计数器的工作模式,滤波基准时钟分频倍数的编码值;在写状态控制命令字信号的作用下,按照计数器编号存储该计数器的状态控制信号;在写计数器参数信号的作用下,按照计数器编号存储该计数器的计数参数;所述计数处理控制模块Ⅳ在计数器IP核外部输入的计数处理控制运行时钟脉冲CLKⅡ的作用下,控制计数处理控制模块Ⅳ的运行,按照脉冲12分频器Ⅲ输出的一个滤波基准时钟脉冲周期完成所有已启动计数器的一次处理,包括每个计数器的状态控制处理,工作模式的判断处理,当滤波基准时钟的个数达到一个16位/32位计数器所设置的滤波基准时钟倍数值时,从计数器IP核外部读入该计数器的计数输入信号,进行一次滤波处理,如果判断是一次有效地计数脉冲,则对该计数器的实时计数参数值进行加1操作,产生溢出时,对实时计数参数值自动重装载计数参数,并输出溢出标志信号;在数据输入输出与命令字分解存储控制模块Ⅱ输入的片选信号为低电平的条件下,如果读信号有效,按照8位微处理器应用系统Ⅰ给定的计数器的地址,直接读出该计数器的实时计数参数值经数据输入输出与命令字分解存储控制模块Ⅱ传输到8位微处理器应用系统Ⅰ的数据总线,16位计数器的实时计数参数需要分时两次予以读出,32位计数器的实时计数参数需要分时四次予以读出;在8位微处理器应用系统Ⅰ输出的复位信号作用下,停止所有计数器的计数操作;

所述计数器溢出标志控制模块Ⅴ输出16位/32位计数器的高电平为有效的溢出信号;计数处理控制模块Ⅳ输出的16位计数器的溢出信号由低电平变换为高电平时,存储该计数器溢出标志为高电平;如果该计数器溢出标志为高电平,清溢出标志由高电平转换为低电平,存储该计数器溢出标志为低电平;在写工作模式分频倍数编码命令字信号的作用下,计数器溢出标志控制模块Ⅴ按照寄存器编号存储32位计数器工作模式的信息,封锁该32位计数器低16位的溢出信息保持为低电平;

所述输入门控选择控制模块Ⅵ在写工作模式分频倍数编码命令字信号作用下,按照计数器编号存储该计数器的工作模式,根据该计数器工作模式所确定的门控功能要求和输入的门控电平,控制输入门控选择控制模块Ⅵ输出的门控信号。

为了适合数量众多计数器计数与计数控制的系统需求,根据不同的计数应用的需要,设置命令字封装组成不同的位数的计数器IP核,因此,有如下的几种实施方式:例如可以将2个16位计数器组成32位计数器,最多能够设置组成6个32位计数器,还能够设置选择四种计数基准时钟脉冲的分频倍数等等;以下分述如下。

实施例一:

一种能够设置组成6个32位计数器的与8位微处理器应用系统连接的计数器IP核A,(以下简称:计数器IP核A):

如上所述,如图1所示,该计数器IP核A包括数据输入输出与命令字分解存储控制模块Ⅱ,脉冲12分频器Ⅲ,计数处理控制模块Ⅳ,计数器溢出标志控制模块Ⅴ,输入门控选择控制模块Ⅵ;该计数器IP核A有48个引脚,其封装图参见图2;

如图3所示,所述数据输入输出与命令字分解存储控制模块Ⅱ包括8位双向数据选通三态门组1,读写信号控制模块2,计数参数寄存器3,计数器编号寄存器4,工作模式滤波编码寄存器5,状态控制寄存器6;

所述8位双向数据选通三态门组1分别与8位微处理器应用系统Ⅰ、读写信号控制模块2、计数参数寄存器3、计数器编号寄存器4,工作模式滤波编码寄存器5,状态控制寄存器6和计数处理控制模块Ⅳ连接;

所述读写信号控制模块2还与8位微处理器应用系统Ⅰ、计数参数寄存器3、计数器编号寄存器4,工作模式滤波编码寄存器5,状态控制寄存器6、计数处理控制模块Ⅳ、计数器溢出标志控制模块Ⅴ和输入门控选择控制模块Ⅵ连接;

所述计数参数寄存器3还与计数处理控制模块Ⅳ连接;

所述计数器编号寄存器4还与8位微处理器应用系统Ⅰ、计数处理控制模块Ⅳ、计数器溢出标志控制模块Ⅴ和输入门控选择控制模块Ⅵ连接;

所述工作模式滤波编码寄存器5还与8位微处理器应用系统Ⅰ、计数处理控制模块Ⅳ、计数器溢出标志控制模块Ⅴ和输入门控选择控制模块Ⅵ连接;

所述状态控制寄存器6还与8位微处理器应用系统Ⅰ、计数处理控制模块Ⅳ和计数器溢出标志控制模块Ⅴ连接;

所述数据输入输出与命令字分解存储控制模块Ⅱ的读写信号控制模块2在片选信号为低电平的条件下,如果写信号有效,发出8位双向数据选通三态门组1写信号,选通8位微处理器应用系统Ⅰ数据总线的数据输入;产生写计数器编号信号,并判断8位微处理器应用系统Ⅰ地址总线输入的地址值,如果是计数器参数的地址值,将该地址值写入计数器编号寄存器4,产生写计数器参数信号,将数据总线的8位数据写入计数参数寄存器3;如果是计数器命令字地址,将数据总线的第2位~第5位数据写入计数器编号寄存器4,命令字地址是0EH或0FH,设置第3位计数器编号值S3为0,否则设置为1;如果是命令字低8位地址,则命令字是工作模式分频倍数编码命令字,产生写工作模式分频倍数编码命令字信号,将数据总线的第0位、第1位、第6位和第7位写入工作模式分频倍数编码寄存器5;如果是命令字高8位地址,则命令字是状态控制命令字,产生写状态控制命令字信号,将数据总线的第0位、第1位和第7位写入状态控制寄存器6;如果读信号有效,发出8位双向数据选通三态门组1读信号,将计数处理控制模块Ⅳ的计数器IP核内部输出数据总线的数据传输到8位微处理器应用系统Ⅰ的数据总线。

如图4所示,所述计数处理控制模块Ⅳ包括计数器计数控制操作模块44,地址选通控制Ⅰ45,8位计数参数双端口存储器46,地址选通控制Ⅱ47,8位计数实时参数双端口存储器48,地址选通控制Ⅲ49,4位工作模式分频倍数编码双端口存储器50,地址选通控制Ⅳ51,3位状态控制双端口存储器52,4位计数滤波参数移位存储器53;

所述计数器计数控制操作模块44分别与脉冲12分频器Ⅲ、计数器溢出标志控制模块Ⅴ、输入门控选择控制模块Ⅵ、地址选通控制Ⅰ45、8位计数参数双端口存储器46、地址选通控制Ⅱ47、8位计数实时参数双端口存储器48、地址选通控制Ⅲ49、4位工作模式分频倍数编码双端口存储器50、地址选通控制Ⅳ51、3位状态控制双端口存储器52,4位计数滤波参数移位存储器53,计数器IP核外部输入的计数输入信号和计数处理控制运行时钟脉冲CLKⅡ连接;

所述地址选通控制Ⅰ45还与数据输入输出与命令字分解存储控制模块Ⅱ和8位计数参数双端口存储器46连接;

所述8位计数参数双端口存储器46还与数据输入输出与命令字分解存储控制模块Ⅱ和8位计数实时参数双端口存储器48连接;

所述地址选通控制Ⅱ47还与8位微处理器应用系统Ⅰ、数据输入输出与命令字分解存储控制模块Ⅱ和8位计数实时参数双端口存储器48连接;

所述8位计数实时参数双端口存储器48还与数据输入输出与命令字分解存储控制模块Ⅱ连接;

所述地址选通控制Ⅲ49还与数据输入输出与命令字分解存储控制模块Ⅱ和4位工作模式分频倍数编码双端口存储器50连接;

所述4位工作模式分频倍数编码双端口存储器50还与数据输入输出与命令字分解存储控制模块Ⅱ连接;

所述地址选通控制Ⅳ51还与数据输入输出与命令字分解存储控制模块Ⅱ和3位状态控制双端口存储器52连接;

所述3位状态控制双端口存储器52还与数据输入输出与命令字分解存储控制模块Ⅱ、8位微处理器应用系统Ⅰ的复位信号连接;如果输入的复位信号为有效的复位信号,复位3位状态控制双端口存储器52,停止所有计数器的计数。

如图5所示,所述计数器溢出标志控制模块Ⅴ包括非门7,M0工作模式位寄存器组8,溢出清零脉冲控制器9,与非门Ⅰ10,D触发器Ⅰ11,与门Ⅰ12,与非门Ⅱ13,D触发器Ⅱ14,与非门Ⅲ15,D触发器Ⅲ16,与门Ⅱ17,与非门Ⅳ18,D触发器Ⅳ19,与非门Ⅴ20,D触发器Ⅴ21,与门Ⅲ22,与非门Ⅵ23,D触发器Ⅵ24,与非门Ⅶ25,D触发器Ⅶ26,与非门Ⅷ27,D触发器Ⅷ28,与门Ⅳ29,与非门Ⅸ30,D触发器Ⅸ31,与非门Ⅹ32,D触发器Ⅹ33,与门Ⅴ34,与非门Ⅺ35,D触发器Ⅺ36,与非门Ⅻ37,D触发器Ⅻ38,与门Ⅵ39,与非门ⅩⅢ40,D触发器ⅩⅢ41,与非门ⅩⅣ42,D触发器ⅩⅣ43;

所述非门7的输入端与数据输入输出与命令字分解存储控制模块Ⅱ的状态控制寄存器6的M0输出端连接,输出端与M0工作模式位寄存器组8的一个输入端连接;

M0工作模式位寄存器组8的另三个输入端分别与8位微处理器应用系统Ⅰ的复位信号输出端、数据输入输出与命令字分解存储控制模块Ⅱ的读写信号控制模块2的写工作模式滤波编码命令字信号输出端和计数器编号寄存器4的计数器编号输出端连接,输出端分别与门Ⅰ12、与门Ⅱ17、与门Ⅲ22、与门Ⅳ29、与门Ⅴ34、与门Ⅵ39的一个输入端连接;

溢出清零脉冲控制器9的三个输入端分别与数据输入输出与命令字分解存储控制模块Ⅱ的读写信号控制模块2的写状态控制命令字信号输出端、状态控制寄存器6的清溢出标志输出端和计数器编号寄存器4的计数器编号输出端连接,输出端分别与非门Ⅰ10、与非门Ⅱ13、与非门Ⅲ15、与非门Ⅳ18、与非门Ⅴ20、与非门Ⅵ23、与非门Ⅶ25、与非门Ⅷ27、与非门Ⅸ30、与非门Ⅹ32、与非门Ⅺ35、与非门Ⅻ37、与非门ⅩⅢ40、与非门ⅩⅣ42的一个输入端连接;输出端还与D触发器Ⅰ11、D触发器Ⅱ14、D触发器Ⅲ16、D触发器Ⅳ19、D触发器Ⅴ21、D触发器Ⅵ24、D触发器Ⅶ26、D触发器Ⅷ28、D触发器Ⅸ31、D触发器Ⅹ33、D触发器Ⅺ36、D触发器Ⅻ38、D触发器ⅩⅢ41和D触发器ⅩⅣ43的数据输入端连接;

与非门Ⅰ10的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅰ11的时钟信号输入端连接;

D触发器Ⅰ11的数据输出端和与门Ⅰ12的另一个输入端连接;

与门Ⅰ12的输出端作为16位计数器0的溢出标志输出信号与8位微处理器应用系统Ⅰ连接;

与非门Ⅱ13的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅱ14的时钟信号输入端连接;

D触发器Ⅱ14的数据输出端作为16位计数器1/32位计数器0的溢出标志输出信号输出端与8位微处理器应用系统Ⅰ连接;

与非门Ⅲ15的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅲ16的时钟信号输入端连接;

D触发器Ⅲ16的数据输出端和与门Ⅱ17的另一个输入端连接;

与门Ⅱ17的输出端作为16位计数器2的溢出标志输出信号与8位微处理器应用系统Ⅰ连接;

与非门Ⅳ18的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅳ19的时钟信号输入端连接;

D触发器Ⅳ19的数据输出端作为16位计数器3/32位计数器1的溢出标志输出信号输出端与8位微处理器应用系统Ⅰ连接;

与非门Ⅴ20的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅴ21的时钟信号输入端连接;

D触发器Ⅴ21的数据输出端和与门Ⅲ22的另一个输入端连接;

与门Ⅲ22的输出端作为16位计数器4的溢出标志输出信号与8位微处理器应用系统Ⅰ连接;

与非门Ⅵ23的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅵ24的时钟信号输入端连接;

D触发器Ⅵ24的数据输出端作为16位计数器5/32位计数器2的溢出标志输出信号输出端与8位微处理器应用系统Ⅰ连接;

与非门Ⅶ25的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅶ26的时钟信号输入端连接;

D触发器Ⅶ26的数据输出端作为16位计数器6的溢出标志输出信号输出端与8位微处理器应用系统Ⅰ连接;

与非门Ⅷ27的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅷ28的时钟信号输入端连接;

D触发器Ⅷ28的数据输出端和与门Ⅳ29的另一个输入端连接;

与门Ⅳ29的输出端作为16位计数器7的溢出标志输出信号与8位微处理器应用系统Ⅰ连接;

与非门Ⅸ30的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅸ31的时钟信号输入端连接;

D触发器Ⅸ31的数据输出端作为16位计数器8/32位计数器3的溢出标志输出信号输出端与8位微处理器应用系统Ⅰ连接;

与非门Ⅹ32的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅹ33的时钟信号输入端连接;

D触发器Ⅹ33的数据输出端和与门Ⅴ34的另一个输入端连接;

与门Ⅴ34的输出端作为16位计数器9的溢出标志输出信号与8位微处理器应用系统Ⅰ连接;

与非门Ⅺ35的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅺ36的时钟信号输入端连接;

D触发器Ⅺ36的数据输出端作为16位计数器10/32位计数器4的溢出标志输出信号输出端与8位微处理器应用系统Ⅰ连接;

与非门Ⅻ37的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器Ⅻ38的时钟信号输入端连接;

D触发器Ⅻ38的数据输出端和与门Ⅵ39的一个输入端连接;

与门Ⅵ39的输出端作为16位计数器11的溢出标志输出信号与8位微处理器应用系统Ⅰ连接;

与非门ⅩⅢ40的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器ⅩⅢ41的时钟信号输入端连接;

D触发器ⅩⅢ41的数据输出端作为16位计数器12/32位计数器5的溢出标志输出信号输出端与8位微处理器应用系统Ⅰ连接;

与非门ⅩⅣ42的另一个输入端与计数处理控制模块Ⅳ的溢出标志输出端连接,输出端与D触发器ⅩⅣ43的时钟信号输入端连接;

D触发器ⅩⅣ43的数据输出端作为16位计数器13溢出标志输出信号输出端与8位微处理器应用系统Ⅰ连接。

该计数器IP核A的计数器与命令地址编码表参见附表一《与8位微处理器应用系统连接的计数器IP核A的计数器与命令地址编码表》;工作模式分频倍数编码命令字参见附表二《计数器IP核A的工作模式分频倍数编码命令字一览表》;状态控制命令字参见附表三《计数器IP核A的状态控制命令字一览表》。

该与8位微处理器应用系统连接的计数器IP核A的计数器计数控制操作程序流程图参见图9-1~图9-3;

所述的一种与8位微处理器应用系统连接的计数器IP核来实现计数器计数控制操作的方法中,所述计数器计数控制操作的具体步骤为:

s101:清滤波基准时钟脉冲的倍数u数组存储单元、移位v数组存储单元,计数器编号值j;

s102:滤波基准时钟脉冲下降沿触发程序执行1次;

s103:判断计数器编号值j是否等于或大于1EH,如果j的值等于或大于1EH,则进入步骤s104,否则进入s105;

s104:设置计数器编号值j=00H,返回步骤s102;

s105:判断计数器编号值j是否等于0EH或者0FH,如果j的值等于0EH或者0FH,则进入步骤s106,否则进入步骤s107;

s106:设置计数器编号值j=10H,进入步骤s107;

s107:判断启/停信号是否等于0,如果启/停信号=0,该计数器停止计数工作,进入步骤s108,否则进入步骤s111;

s108:判断清计数当前值是否等于0,如果清计数当前值=0,则进入步骤s109,否则进入步骤s110;

s109:清该计数器计数当前值存储单元的值,进入步骤s110;

s110:计数器编号值j加2,返回步骤s103;

s111:该计数器的滤波基准时钟脉冲的倍数加1:u(j)=u(j)+1,进入步骤s112;

s112:判断该计数器工作模式,如果工作模式M1M0=10,门控16位计数器,进入步骤s113;如果工作模式M1M0=00,无门控的16位计数器,进入步骤s118;如果工作模式M1M0=01,无门控的32位计数器,进入步骤s114;如果工作模式M1M0=11,则选择门控的32位计数器,进入步骤s115;

s113:判断该16位计数器的门控信号是否为0,如果门控信号等于0则返回步骤s110,否则进入步骤s118;

s114:判断该32位计数器编号值j的低2位是否等于00,如果等于00则进入步骤s131,否则返回步骤s110;

s115:判断该32位计数器编号值j的低2位是否等于00,如果等于00则进入步骤s116,否则返回步骤s110;

s116:判断该32位计数器的门控信号是否为0,如果门控信号等于0则进入步骤s117,否则进入步骤s131;

s117:计数器编号值j加4,返回步骤s103;

s118:判断该16位计数器的滤波参数的编码,如果滤波参数的编码为F2F1=00,进入步骤s122;如果滤波参数的编码为F2F1=01,则进入步骤s119;如果滤波参数的编码为F2F1=10,则进入步骤s120;如果滤波参数的编码为F2F1=11,则进入步骤s121;

s119:判断该16位计数器的滤波基准时钟脉冲的倍数u(j)的值是否等于100,如果u(j)=100,则进入步骤s122,否则返回步骤s110;

s120:判断该16位计数器的滤波基准时钟脉冲的倍数u(j)的值是否等于1000,如果u(j)=1000,则进入步骤s122,否则返回步骤s110;

s121:判断该16位计数器的滤波基准时钟脉冲的倍数u(j)的值是否等于10000,如果u(j)=10000,则进入步骤s122,否则返回步骤s110;

s122:设置该16位计数器的滤波基准时钟脉冲的倍数u(j)的值等于0,进入步骤s123;

s123:读入该16位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的第0位,进入步骤s124;

s124:判断该16位计数器v(j)的第0位是否与第1位数据相等,如果相等,进入步骤s125,否则返回步骤s110;

s125:判断该16位计数器v(j)的第2位是否与第3位数据相等,如果相等,进入步骤s126,否则返回步骤s110;

s126:判断该16位计数器v(j)的第0位是否与第3位数据相等,如果不相等,进入步骤s127,否则返回步骤s110;

s127:判断该16位计数器v(j)的第0位是否等于0,如果等于0,表示该16位计数器的计数输入端产生了一个有效地计数脉冲,进入步骤s128,否则返回步骤s110;

s128:读出该16位计数器的16位计数当前值并加1,结果存储在该16位计数器16位计数当前值存储单元,进入步骤s129;

s129:判断该16位计数器的计数值是否产生溢出,如果产生溢出则进入步骤s130,否则进入返回步骤s110;

s130:重新装载该16位计数器的16位计数参数,返回步骤s110;

s131:判断该32位计数器的滤波参数的编码,如果滤波参数的编码为F2F1=00,进入步骤s135;如果滤波参数的编码为F2F1=01,则进入步骤s132;如果滤波参数的编码为F2F1=10,则进入步骤s133;如果滤波参数的编码为F2F1=10,则进入步骤s134;

s132:判断该32位计数器的滤波基准时钟脉冲的倍数u(j)的值是否等于100,如果u(j)=100,则进入步骤s135,否则返回步骤s117;

s133:判断该32位计数器的滤波基准时钟脉冲的倍数u(j)的值是否等于1000,如果u(j)=1000,则进入步骤s135,否则进入步骤s117;

s134:判断该32位计数器的滤波基准时钟脉冲的倍数u(j)的值是否等于10000,如果u(j)=10000,则进入步骤s135,否则进入步骤s117;

s135:设置该32位计数器的滤波基准时钟脉冲的倍数u(j)的值等于0,进入步骤s136;

s136:读入该32位计数器的计数输入端的值,v(j)左移一位,计数输入值进入v(j)的第0位,进入步骤s137;

s137:判断该32位计数器v(j)的第0位是否与第1位数据相等,如果相等,进入步骤s138,否则返回步骤s117;

s138:判断该32位计数器v(j)的第2位是否与第3位数据相等,如果相等,进入步骤s139,否则返回步骤s117;

s139:判断该32位计数器v(j)的第0位是否与第3位数据相等,如果不相等,进入步骤s140,否则返回步骤s117;

s140:判断该32位计数器v(j)的第0位是否等于0,如果等于0,表示该32位计数器的计数输入端产生了一个有效地计数脉冲,进入步骤s141,否则返回步骤s117;

s141:读出该32位计数器的32位计数当前值并加1,结果存储在该32位计数器的32位计数当前值存储单元,进入步骤s142;

s142:判断该32位计数器的计数值是否产生溢出,如果产生溢出则进入步骤s143,否则返回步骤s117;

s143:重新装载该32位计数器的32位计数参数,返回步骤s117。

实施例二:

一种能够设置组成3个32位计数器的与8位微处理器应用系统连接的计数器IP核B,(以下简称:计数器IP核B):

该计数器IP核有7个16位计数器,其中6个能够组成3个32位计数器;所述计数器溢出标志控制模块Ⅴ的溢出标志输出信号TF0~13变换为溢出标志输出信号TF0~7,所述输入门控选择控制模块Ⅵ的门控输入信号GATE0~13变换为门控输入信号GATE0~7,参见图1;图2的计数器IP核的封装图变换为图6的计数器IP核的封装图,计数器IP核的62个引脚变换为42个引脚;所述数据输入输出与命令字分解存储控制模块Ⅱ的读写信号控制模块2的第4位计数器编号值S3与计数器编号寄存器4的连接线予以删除,参见图7;图5的计数器溢出标志控制模块Ⅴ的电路框图变换为图8的计数器溢出标志控制模块Ⅴ的电路框图;图9-1~图9-3的计数器计数控制操作程序流程图的s105和s106操作步骤予以删除,步骤s103变换为:判断计数器编号值j是否等于或大于1EH,如果j的值等于或大于1EH,则进入步骤s104,否则进入s107;其修改部分参见图10-1;其余部分同实施例一的图9-2~图9-3,不再列出。

附表一的计数器IP核的计数器与命令地址编码图变换为附表四的计数器IP核的计数器与命令地址编码图;附表二的工作模式滤波编码命令字的D5位S3变换为保留位(参见附表五);附表三的工作模式滤波编码命令字的D5位S3变换为保留位(参见附表六)。

实施例三:

一种与8位微处理器应用系统连接的计数器IP核,图1中的脉冲12分频器Ⅲ确定了计数器IP核的每个计数器输入计数脉冲的滤波基准时钟,将脉冲12分频器Ⅲ变换为50分频器Ⅲ,适应8位微处理器的时钟频率大于12MHz的情况。

实施例四:

一种与8位微处理器应用系统连接的计数器IP核,图1中的脉冲12分频器Ⅲ确定了计数器IP核的每个计数器输入计数脉冲的滤波基准时钟,将脉冲12分频器Ⅲ变换为100分频器Ⅲ,适应8位微处理器的时钟频率大大的大于12MHz的情况。

附表一:实施例一《与8位微处理器应用系统连接的计数器IP核A的计数器与命令地址编码表》

附表二:实施例一《计数器IP核A的工作模式分频倍数编码命令字一览表》:

附表三:实施例一《计数器IP核A的状态控制命令字一览表》

附表四:实施例二《与8位微处理器应用系统连接的计数器IP核B的计数器与命令地址编码表》

附表五:实施例二《计数器IP核B的工作模式分频倍数编码命令字一览表》

附表六:实施例二《计数器IP核B的状态控制命令字一览表》

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号