CN202120300U - Arm+fpga组成的计数器装置 - Google Patents
Arm+fpga组成的计数器装置 Download PDFInfo
- Publication number
- CN202120300U CN202120300U CN2011202317713U CN201120231771U CN202120300U CN 202120300 U CN202120300 U CN 202120300U CN 2011202317713 U CN2011202317713 U CN 2011202317713U CN 201120231771 U CN201120231771 U CN 201120231771U CN 202120300 U CN202120300 U CN 202120300U
- Authority
- CN
- China
- Prior art keywords
- counter
- module
- fpga
- arm
- sdram
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn - After Issue
Links
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
本实用新型提供一种以ARM微处理器为控制核心、FPGA为计数处理的计数器装置,包括:ARM控制模块、存储器模块、FPGA计数器模块、双口RAM模块、SDRAM掉电保护模块、电源模块。ARM控制模块以ARM微处理器为控制核心,对各模块处理和控制;双口RAM模块分别与FPGA计数器模块和ARM控制模块连接,实现两模块的数据传输;FPGA计数器模块以计数器控制器为核心,完成增计数器和增/减计数器判断、计数处理及实时计数参数传输;电源模块提供工作电源,SDRAM掉电保护模块对计数动态参数掉电保护;本实用新型计数操作不占用PLC用户程序执行时间,可实现不同类型和数量的计数器。
Description
技术领域
本实用新型涉及一种计数器装置,特别涉及一种可编程控制器(PLC)的计数器装置。
背景技术
随着科学技术的不断发展,可编程控制器(以下简称PLC)作为一种专为工业环境应用而设计的电子系统,愈来愈广泛地被应用。在PLC的应用系统中,使用量较大的是计数周期大于PLC用户程序扫描周期的计数器,即普通计数器,这种普通计数器的分类方法常有两种,从停电是否保存计数值的角度来分类,分为保持型计数器和非保持型计数器;从计数方向的角度,分为增计数器和增/减可控计数器,增/减可控计数器是处于增计数还是处于减计数由指定的特殊寄存器状态来控制,计数器属于哪种类型则由事先设计好的计数器编号确定,每个计数器有一个软触头与该计数器编号对应,如果计数器的当前计数值与计数器设置值相等则计数器停止计数,计数器的软触头处于动合状态,直到对计数器进行复位,计数器的软触头恢复常态,计数器在其他状态下其软触头处于常态。
通常,上述计数器是通过如下方法来实现:PLC用户程序执行某一个计数器软元件输出指令时,首先根据输出指令给定的计数器编号判断是增计数器还是增/减可控计数器,对于增/减可控计数器需要判断是处于增计数状态还是减计数状态,依据计数器的受控情况还需进一步判断计数器是处于失电还是得电状态,如果处于得电状态,需要判断计数条件是否满足,如果计数条件不满足,PLC用户程序可以不对该计数器作任何操作,如果计数条件满足需要将该计数器的计数动态参数单元中的值进行加1或减1计算,然后与该计数器的设置值进行比较,如果计数动态值小于/大于设置值,设置已得电计数的标志,如果相等,则设置该计数器软触头单元状态为“1”,如果处于失电状态,清得电计数的标志;PLC用户程序在执行某一个计数器的复位指令时,需要进行以下操作:清该计数器得电计数的标志,清该计数器的软触头单元内容为“0”,以及清该计数器动态参数单元内容。
PLC执行计数器输出指令时,若计数器处于得电且计数条件满足,进行加1/减1操作之后与计数器计数的设置值相等时需要较多的操作,具体为:根据输出指令给定的计数器编号判断计数器类型的步骤需要一到二次;需要判断一次得电或失电的状态;如果是得电状态还需要判断是否满足计数条件,若满足计数条件需要加1一次/减1一次,需要判断一次是否等于设置值,如果计数动态值等于设置值,还需设置该计数器软触头单元状态为“1”;PLC完成执行输出命令的操作,需要判断四次/五次,加1/减1一次,设置位单元状态一次,共计需要操作八次/九次。操作最少次数的是继电器得电不满足计数的状态,只需判断二次/三次,增/减可控计数器的加1和减1操作采用补码,其计数动态参数值与计数设置值大小的比较应用补码进行比较,或将补码转换成原码再进行比较。
执行计数器复位指令时,清标志二次,清数据一次或清数据二次;计数器在各种运行状态下,其执行计数器指令操作步数不一样,在PLC用户程序中,计数器使用的数量越多,则PLC用户程序的执行周期时间变化越大,执行计数器输出指令占用时间也越长,导致影响PLC用户程序的执行速度,延长了PLC用户程序的执行周期。
发明内容
本实用新型的目的在于提供一种执行速度快、能实现对数量众多的计数器进行计数控制的ARM+FPGA组成的计数器装置,以克服上述已有技术的不足之处。
为实现上述目的,本实用新型所采用的技术方案为:
一种ARM+FPGA组成的计数器装置,是以嵌入式ARM微处理器为控制核心、以FPGA进行计数处理,包括:ARM控制模块Ⅰ、FPGA计数器模块Ⅲ、存储器模块Ⅱ、SDRAM掉电保护模块Ⅵ、电源模块Ⅴ以及双口RAM模块Ⅳ;ARM控制模块Ⅰ分别与上述存储器模块Ⅱ、FPGA计数器模块Ⅲ、双口RAM模块Ⅳ、SDRAM掉电保护模块Ⅵ及电源模块Ⅴ连接,以嵌入式ARM微处理器为控制核心,构建嵌入式实时操作系统,进行多任务管理和通信管理,实现对装置中各个模块信息的处理和控制;存储器模块Ⅱ用于存储操作系统及系统程序的目标代码映像文件、执行用户程序的处理信息、以及为计数器装置数据的处理和通信提供空间;双口RAM模块Ⅳ分别与FPGA计数器模块Ⅲ和ARM控制模块Ⅰ连接,以实现ARM控制模块Ⅰ与FPGA计数器模块Ⅲ之间的数据传输;FPGA计数器模块Ⅲ用于判断计数器的类型,实施与计数设定值的比较及计数运算,通过对双口RAM模块Ⅳ的读写控制,将计数器的状态传送至ARM控制模块Ⅰ;SDRAM掉电保护模块Ⅵ与FPGA计数器模块Ⅲ连接,用于避免在电源切换过程中存储器内容的变化,并应用其中的电源为动态参数存储器供电;电源模块Ⅴ为上述ARM控制模块Ⅰ、存储器模块Ⅱ、FPGA计数器模块Ⅲ、SDRAM掉电保护模块Ⅵ及双口RAM模块Ⅳ提供变压电源。
由以上方案可见,本实用新型以嵌入式ARM微处理器为控制模块,FPGA为计数处理模块构成ARM+FPGA计数器装置,采用FPGA实现计数器的各种处理操作,无论计数器装置中的计数器数量多少与否,其占用嵌入式ARM微处理器执行用户程序的时间都非常少,因此,可以应用于开发可编程控制器以及大规模的计数器;同时,由于对计数器的操作,如:计数功能控制、计数器状态设置等,均由FPGA计数器模块Ⅲ完成,不占用PLC用户程序执行的时间,大大提高了计数器装置的反应速度;无论计数器处于何种运行状态,ARM控制模块Ⅰ对每个同类型的计数器所执行指令的操作次数是基本相同的,减少了执行有关计数器指令时对PLC用户程序执行周期变化的影响。
其进一步技术方案是:该ARM+FPGA组成的计数器装置中的SDRAM掉电保护模块Ⅵ包括相互连接的SDRAM计数器动态参数存储器和SDRAM掉电保护电路,该SDRAM掉电保护模块Ⅵ在电源切换过程中应用SDRAM掉电保护电路的电源为SDRAM计数器动态参数存储器供电,以避免SDRAM计数器动态参数存储器内容发生变化。
由以上方案可见,由于计数器装置中的计数动态参数由SDRAM计数器动态参数存储器进行存储,计数操作由FPGA计数器模块Ⅲ处理,该FPGA计数器模块Ⅲ从双口RAM模块Ⅳ中接收ARM控制模块Ⅰ发出的控制处理指令以进行循环操作,因此,计数器的数量只受SDRAM计数器动态参数存储器、计数器软触头位单元和双口RAM模块Ⅳ中容量和地址线的限制,只要增加SDRAM计数器动态参数存储器、计数器软触头位单元和双口RAM模块Ⅳ中的存储器容量,以及增加地址线的根数,计数器的个数可以成倍数的增加,其计数器装置设置的计数器数量能够达到数百个乃至千余个,且不需要在ARM控制模块Ⅰ的方法中编制计数参数的处理过程,只是将每个计数器作为普通存储单元进行读写和判断操作,本实用新型适合需要数量众多计数器计数与计数控制的系统需求,以及对计数精度要求很高的系统,尤其适应于PLC控制系统。
其更进一步技术方案是: ARM控制模块Ⅰ包括嵌入式ARM微处理器、人机交互电路、控制电路、复位电路和JTAG调试接口电路;嵌入式ARM微处理器作为ARM控制模块Ⅰ的控制核心,分别与上述人机交互电路、控制电路、复位电路和JTAG调试接口电路连接,进行多任务管理和通信管理,以实现对上述各电路的信息处理和控制;人机交互电路用于执行系统的控制命令、控制参数的输入以及系统各种参数的人机界面控制;控制电路用于系统数据采集及控制驱动;复位电路为系统电路提供复位信号;JTAG调试接口电路提供调试接口,该接口与外接电路相连,以实现编程装置对ARM控制模块Ⅰ的软硬件调试。
由以上方案可见,ARM控制模块Ⅰ对于PLC用户程序使用的每个计数器,当程序执行某个计数器软元件输出指令时,首先由嵌入式ARM微处理器判断该计数器的类型、所处的工作状态,然后从双口RAM模块Ⅳ将该计数器参数存储单元中的内容读入ARM控制模块Ⅰ中并设置运行状态标志,再传输到双口RAM模块Ⅳ的该计数器参数存储单元中,PLC用户程序执行时,相当于将每个计数器只进行读写和判断操作;当PLC用户程序执行应用某个计数器软触头信息进行处理时,只需要从双口RAM模块Ⅳ中读取该计数器软触头的位存储单元内容,如此,大大提高了运行速度。
其更进一步技术方案是:FPGA计数器模块Ⅲ包括计数器控制器、计数器软触头位单元和FPGA内部总线;计数器控制器是FPGA计数器模块Ⅲ的控制核心,其通过FPGA内部总线分别与计数器软触头位单元、SDRAM掉电保护模块Ⅵ以及双口RAM模块Ⅳ连接,并通过双口RAM模块Ⅳ与ARM控制模块Ⅰ连接;计数器控制器从ARM控制模块Ⅰ获取计数器的运行状态、类型、参数信息、复位信息以及计数实时参数读取命令,根据上述计数器的运行状态、各类信息及参数进行判断并进行相应处理、并将计数器处理的结果状态传输给双口RAM模块Ⅳ;计数器软触头位单元模块为计数器软触头状态的存放空间,可实现字寻址和位寻址。
由以上方案可见,本实用新型采用FPGA进行计数器功能处理,计数器控制器从ARM控制模块Ⅰ获得计数器运行和计数设置参数的信息或复位信息,然后据此对计数器的运行实施计数控制,其结果再传输到双口RAM模块该计数器参数存储单元中,PLC用户程序执行时,相当于将每个计数器只进行读、写和判断操作;另一方面,计数器的计数运行操作、计数器软触头状态的设置由FPGA计数器模块完成,不占用PLC用户程序执行的时间,提高了装置的反应速度。
其更进一步技术方案是,存储器模块Ⅱ包括分别与ARM控制模块Ⅰ连接的Nor FLASH存储器、Nand FLASH存储器和SDRAM存储器;Nor FLASH存储器用于存储操作系统及系统程序的目标代码映像文件;Nand FLASH存储器用于存放执行用户程序;SDRAM存储器用于存放计数器装置的处理和通信信息,并为系统运行和通信数据处理提供空间。
由以上方案可见,采用Nor FLASH存储器、Nand FLASH存储器和SDRAM存储器分别存储代码映像文件、存放处理信息和提供处理空间,计数器装置在运行时只需要从相应的存储器中读数据或写数据,避免由于各种操作集中在某一存储器而造成的数据冲突情况,从而提高了计数器装置的运行速度。
附图说明
图1是本实用新型之ARM+FPGA组成的计数器装置第一实施例的系统结构框图;
图2是本实用新型之ARM+FPGA组成的计数器装置第一实施例的电路结构框图;
图3是本实用新型之ARM+FPGA组成的计数器装置第一实施例的FPGA计数器模块的结构框图;
图4是本实用新型之ARM+FPGA组成的计数器装置第一实施例的计数器参数32位字长单元结构示意图;
图5是本实用新型之ARM+FPGA组成的计数器装置的双口RAM模块的存储区分配示意图;
图6是本实用新型之ARM+FPGA组成的计数器装置第二实施例的系统结构框图;
图7是本实用新型之ARM+FPGA组成的计数器装置第二实施例的电路结构框图;
图8是本实用新型之ARM+FPGA组成的计数器装置第二实施例的FPGA计数器结构示意图。
图中:
Ⅰ—ARM控制模块,Ⅱ—存储器模块,Ⅲ—FPGA计数器模块,Ⅳ—双口RAM模块,Ⅴ—电源模块,Ⅵ—SDRAM掉电保护模块;
11—嵌入式ARM微处理器,12—人机交互电路,13—控制电路,14—复位电路,15—JTAG调试接口电路;
21—Nor FLASH存储器,22—Nand FLASH存储器,23—SDRAM存储器;
31—计数器控制器,32—计数器软触头位单元;
51—电压转换电路,52—外部电源;
61—SDRAM计数器动态参数存储器,62—SDRAM掉电保护电路;
其余编号意义参见说明书实施例。
下面结合实施例及其附图对本实用新型作进一步说明。
具体实施方式
组成的计数器装置实施例一
参见图1,该计数器装置是以嵌入式ARM微处理器为控制核心、以FPGA进行计数处理,包括ARM控制模块Ⅰ、FPGA计数器模块Ⅲ、存储器模块Ⅱ、电源模块Ⅴ、双口RAM模块Ⅳ及SDRAM掉电保护模块Ⅵ;ARM控制模块Ⅰ分别与上述存储器模块Ⅱ、FPGA计数器模块Ⅲ、双口RAM模块Ⅳ及电源模块Ⅴ连接,以嵌入式ARM微处理器为控制核心,构建嵌入式实时操作系统,进行多任务管理和通信管理,实现对装置中各个模块信息的处理和控制;存储器模块Ⅱ用于存储操作系统及系统程序的目标代码映像文件、执行用户程序的处理信息、以及为计数器装置数据的处理和通信提供空间;双口RAM模块Ⅳ分别与FPGA计数器模块Ⅲ和ARM控制模块Ⅰ连接,以实现ARM控制模块Ⅰ与FPGA计数器模块Ⅲ之间的数据传输;FPGA计数器模块Ⅲ用于判断计数器的类型,实施与计数设定值的比较及计数运算,通过对所述双口RAM模块Ⅳ的读写控制,将计数器的状态传送至ARM,该模块以计数器控制器31为核心,实现计数器的类型判断、增计数器的加1运算、增/减可控计数器的加1或减1、计数动态参数值与计数设置值的大小比较,增/减可控计数器的计数参数处理为补码运算,计数功能控制、计数器软触头位单元32的字寻址和位寻址读、写功能、SDRAM计数器动态参数存储器61的读、写功能,双口RAM模块Ⅳ的读、写功能;电源模块Ⅴ为上述ARM控制模块Ⅰ、存储器模块Ⅱ、FPGA计数器模块Ⅲ及双口RAM模块Ⅳ提供变压电源;SDRAM掉电保护模块Ⅵ与FPGA计数器模块Ⅲ连接,该SDRAM掉电保护模块Ⅵ包括相互连接的SDRAM计数器动态参数存储器和SDRAM掉电保护电路,SDRAM掉电保护模块Ⅵ应用SDRAM掉电保护电路的电源为SDRAM计数器动态参数存储器供电,以避免在电源切换过程中SDRAM计数器动态参数存储器内容发生变化。
其中,该计数器装置的具体结构为:
ARM控制模块Ⅰ包括嵌入式ARM微处理器11、人机交互电路12、控制电路13、复位电路14和JTAG调试接口电路15,参见图2,嵌入式ARM微处理器11作为控制核心,分别与人机交互电路12、控制电路13、复位电路14和JTAG调试接口电路15连接,进行多任务管理和通信管理,以实现对各组成电路的信息处理和控制;人机交互电路12完成系统的控制命令和控制参数的输入和系统各种参数的人机界面控制;控制电路13完成ARM控制模块Ⅰ的数据采集与控制驱动;复位电路14为系统电路提供复位信号;JTAG调试接口电路15提供调试接口与外接电路相连实现编程装置对ARM控制模块Ⅰ的硬件和软件的调试。嵌入式ARM微处理器11在对PLC用户程序的编译阶段,将每个增计数器的1个计数设置值和每个增/减可控计数器的2个补码计数设置值传送给双口RAM模块Ⅳ,检测计数器实时计数值读取指令,按照编译出现这类指令出现的先后顺序将该计数器的编号传输给双口RAM模块Ⅳ,计数器顺序编号包含在编译后的计数器实时计数值读取指令中;在PLC用户程序的执行过程中,执行计数器软元件处理指令时,ARM控制模块Ⅰ将该计数器的得电或失电、增/减可控计数器是增计数还是减计数的控制信息传输给双口RAM模块Ⅳ,执行计数器软元件复位指令时,ARM控制模块Ⅰ将该计数器的复位或不复位信息传输给双口RAM模块Ⅳ,执行读取计数器触头信息时,ARM控制模块Ⅰ直接从双口RAM模块Ⅳ中读取该计数器的触头状态信息,执行实时计数值读取指令时,ARM控制模块Ⅰ直接从双口RAM模块Ⅳ中读取该计数器的动态计数参数。
存储器模块Ⅱ包括分别与ARM控制模块Ⅰ连接的Nor FLASH存储器21、Nand FLASH22存储器和SDRAM存储器23,其结构示意图见图2;Nor FLASH存储器21、Nand FLASH存储器22和SDRAM存储器23分别通过系统数据总线、地址总线和控制总线与ARM控制模块Ⅰ的嵌入式ARM微处理器11连接,实现ARM微处理器11对各个存储器的操作控制,Nor FLASH存储器21用于存储操作系统及系统程序的目标代码映像文件,Nand FLASH存储器22用于存放执行用户程序,SDRAM存储器23用于存放计数器装置的处理和通信信息,并为系统运行和通信数据处理提供空间。
双口RAM模块Ⅳ通过ARM控制模块Ⅰ的一组数据总线X1、地址总线Z1和控制总线Y1与ARM控制模块Ⅰ的嵌入式ARM微处理器11连接,通过FPGA内部总线的数据总线X2、地址总线Z2和控制总线Y2与FPGA计数器模块Ⅲ连接;双口RAM模块Ⅳ是ARM控制模块Ⅰ与FPGA计数器模块Ⅲ之间数据传输的桥梁,用户能够实现ARM控制模块Ⅰ和FPGA计数器模块Ⅲ同时对双口RAM模块Ⅳ进行读写操作;图5是双口RAM模块Ⅳ中的存储器结构示意图。
SDRAM掉电保护模块Ⅵ包括SDRAM计数器动态参数存储器61和SDRAM掉电保护电路62,SDRAM计数器动态参数存储器61通过FPGA内部总线与FPGA计数器模块Ⅲ连接, SDRAM掉电保护电路62在系统电源失电瞬间使SDRAM计数器动态参数存储器61的片选端为高电平,避免在电源切换过程中SDRAM计数器动态参数存储器61的内容发生变化,并将SDRAM掉电保护电路62的电源为SDRAM计数器动态参数存储器61供电;在计数器装置复位和PLC用户程序重新启动运行时,ARM控制模块Ⅰ将对非保持型计数器的FPGA的SDRAM计数器动态参数存储器61中的存储单元清零。
FPGA计数器模块Ⅲ包括计数器控制器31、计数器软触头位单元32和FPGA内部总线,其具体电路结构参见图3,计数器控制器31是FPGA计数器模块Ⅲ的控制核心,计数器控制器31通过FPGA内部总线与计数器软触头位单元32、SDRAM掉电保护模块Ⅵ以及双口RAM模块Ⅳ连接,并通过双口RAM模块Ⅳ与ARM控制模块Ⅰ连接。
其中:
FPGA内部总线由32位数据总线X2,地址总线Z2及控制总线Y2组成,控制总线Y2包括计数器的读、写、模块片选控制,双口RAM模块Ⅳ与FPGA内部总线相连接,双口RAM模块Ⅳ的模块片选独立设置与FPGA计数器控制模块Ⅲ连接,计数器软触头位单元32和SDRAM掉电保护模块Ⅵ都是10根地址线与计数器控制器31连接,控制总线Y2的读、写和模块片选线与计数器控制器31、计数器软触头位单元32、SDRAM掉电保护模块Ⅵ和双口RAM模块Ⅳ连接。
计数器软触头位单元32是32位字长存储单元组成的计数器软触头存储器,参见图4,该单元占用2个模块地址,1个是32位字单元寻址的模块地址,另1个是软触头位单元的位模块寻址,计数器软触头位单元模块32可以实现字寻址和位寻址的功能。
计数器控制器31通过双口RAM模块Ⅳ从ARM控制模块Ⅰ获得计数器运行状态、类型及参数信息、复位信息、以及计数实时参数读取命令;计数器控制器31处理计数器的结果状态也传输给双口RAM模块Ⅳ,计数器控制器31在工作时钟脉冲的作用下,计数器控制器31依据计数器这些状态进行判断,依据判断结果进行处理,如果某个增计数器处于未被使用或已完成一次计数操作并继续处于得电状态,计数器控制器31对该增计数器不作任何处理;如果处于失电状态,设置该增计数器的D27位值为“0”,为增计数器软线圈由失电转化为得电时作好计数的准备;如果处于复位状态,复位该增计数器在计数器软触头位单元32中的位单元为“0”,清SDRAM计数器动态参数存储器61中该增计数器的D30、D27和D26~D0单元内容;如果处于计数状态,计数器控制器31对SDRAM计数器动态参数存储器61的该增计数器存储单元内容与双口RAM模块Ⅳ中的该增计数器的计数设置参数进行比较判断,如果SDRAM计数器动态参数存储器61中该计数器的计数参数等于或大于双口RAM模块Ⅳ中的该增计数器的计数设置参数时,置位该增计数器在计数器软触头位单元32中的位单元为“1”,设置计数工作标志D27为“1”;如果小于,SDRAM计数器动态参数存储器61中该增计数器的计数参数进行加1操作,设置计数工作标志D27为“1”;如果该计数器为失电状态,且非复位状态,设置计数工作标志D27为“0”;如果判断计数器为增/减计数器型,其判断处理过程与增计数器的判断处理过程基本相同,不同之处在于每个增/减计数器有两个计数设置值,一个是增计数设置值,一个是减计数设置值,对应有增计数动态参数和减计数动态参数,这些值都是用补码表示,其判断比较和计数也都是补码运算;对2种类型计数器的读取判断处理操作是一个一个计数器循环进行,每循环操作一次,将计数器软触头位单元32的状态传输到双口RAM模块Ⅳ中,根据双口RAM模块Ⅳ需要传输计数器实时计数值的计数器编号的顺序将SDRAM计数器动态参数存储器61的实时计数参数传输给双口RAM模块Ⅳ的计数器实时计数值存储区;
计数器控制器处理计数器的结果状态也传输给双口RAM模块Ⅳ;
计数器控制器在工作时钟脉冲的作用下,依据计数器的状态进行判断,依据判断结果进行处理:如果某个增计数器处于未被使用或已完成一次计数操作并继续处于得电状态,计数器控制器对该增计数器不作任何处理;如果处于失电状态,设置该增计数器的D27为“0”,为增计数器软线圈由失电转化为得电时作好计数的准备;如果处于复位状态,复位该增计数器在计数器软触头位单元中的位单元为“0”,清SDRAM计数器动态参数存储器中该增计数器的D30、D27和D26~D0单元内容;如果处于计数状态,计数器控制器对SDRAM计数器动态参数存储器的该增计数器存储单元内容与双口RAM模块Ⅳ中的该增计数器的计数设置参数进行比较判断,如果SDRAM计数器动态参数存储器中该增计数器的计数参数等于或大于双口RAM模块Ⅳ中的该增计数器的计数设置参数时,置位该增计数器在计数器软触头位单元中的位单元为“1”,设置计数工作标志D27为“1”;如果小于,SDRAM计数器动态参数存储器中该增计数器的计数参数进行加1操作,设置计数工作标志D27为“1”;如果该增计数器为失电状态,且非复位状态,设置计数工作标志D27为“0”;如果判断计数器为增/减计数器型,其判断处理过程与增计数器的判断处理过程基本相同,不同之处在于每个增/减计数器有两个计数设置值,一个是增计数设置值,一个是减计数设置值,对应有增计数动态参数和减计数动态参数,这些值都是用补码表示,其判断比较和计数也都是补码运算;
对2种类型计数器的读取判断处理操作是一个一个计数器循环进行,每循环操作一次,将计数器软触头位单元的状态传输到双口RAM模块Ⅳ中,根据双口RAM模块Ⅳ需要传输计数器实时计数值的计数器编号的顺序将SDRAM计数器动态参数存储器的实时计数参数传输给双口RAM模块Ⅳ的计数器实时计数值存储区;根据双口RAM模块Ⅳ需要传输计数器实时计数值的计数器编号的顺序将SDRAM计数器动态参数存储器61的实时计数参数传输给双口RAM模块Ⅳ的计数器实时计数值存储区。
由上可见,由于计数器装置中的计数动态参数由SDRAM计数器动态参数存储器进行存储,计数操作由FPGA计数器模块Ⅲ处理,该FPGA计数器模块Ⅲ从双口RAM模块Ⅳ中接收ARM控制模块Ⅰ发出的控制处理指令进行循环操作,(处理计数器输出指令、复位指令的结果及FPGA计数器控制器处理计数的结果状态进行读取、判断,依据判断结果进行处理,或设置计数器软触头状态,或读出SDRAM计数器动态参数存储器中的该计数器动态参数进行加1/减1计数,判断和处理,其中增/减可控计数器对计数参数的处理为补码运算,或不需要作任何处理,这是循环操作处理过程;)因此,计数器的数量只受SDRAM计数器动态参数存储器、计数器软触头位单元和双口RAM容量和地址线的限制,只要增加SDRAM计数器动态参数存储器、计数器软触头位单元和双口RAM的容量,以及地址线的根数,计数器的个数可以成倍数的增加,其计数器装置设置的计数器数量能够达到数百个,乃至千余个,而且不需要在ARM控制模块的程序中编制计数参数的处理程序,只是将每个计数器作为普通存储单元进行读写和判断操作,适合需要数量众多计数器计数与计数控制的系统需求,以及对计数精度要求很高的系统,尤其适应于PLC控制系统。而且,ARM控制模块执行计数器输出指令时,只需要判断计数器是处于得电还是失电状态,并将其状态传输给双口RAM;执行计数器复位指令时,只需要判断计数器是复位还是不复位,并将其状态传输给双口RAM;执行应用计数器软触头指令时,从双口RAM中读取该计数器的软触头状态;增计数器的加1运算、增/减可控计数器的加1或减1、计数动态参数值与计数设置值的大小比较,增/减可控计数器的计数参数处理为补码运算,计数功能控制、计数器软触头位单元状态的设置均由FPGA计数器模块完成,不占用PLC用户程序执行的时间;大大提高了计数器装置的反应速度;无论计数器处于何种运行状态,本计数器装置中ARM控制模块执行每个增计数器输出指令的操作次数相同,执行每个增/减可控计数器输出指令的操作次数相同,减少了执行有关计数器指令时对PLC用户程序执行周期变化的影响。
组成的计数器装置实施例二
参见图6、图7、图8,本实施例的计数器装置结构与实施例一中的基本类似,不同之处在于:实施例一中的双口RAM模块Ⅳ与FPGA计数器模块Ⅲ分别独立设置,而本实施例中的双口RAM模块Ⅳ是嵌入FPGA计数器模块Ⅲ中,以构成带双口RAM模块的FPGA计数器模块Ⅲ’,参见图8,本实施例之ARM+FPGA组成的计数器装置,以嵌入式ARM微处理器为控制核心、以FPGA进行计数处理,包括:ARM控制模块Ⅰ、SDRAM掉电保护模块Ⅵ,存储器模块Ⅱ、FPGA计数器模块Ⅲ’、电源模块Ⅴ,ARM控制模块Ⅰ以嵌入式ARM微处理器为控制核心,构建嵌入式实时操作系统,进行多任务管理和通信管理,实现对装置中各模块及其信息的处理和控制;存储器模块Ⅱ用于存储操作系统及系统程序的目标代码映像文件、执行用户程序的处理信息、以及为计数器装置数据的处理和通信提供空间;FPGA计数器模块Ⅲ’包括嵌入的双口RAM模块Ⅳ和FPGA计数器模块Ⅲ,FPGA计数器模块Ⅲ以计数器控制器31为核心,实现计数器的类型判断、增计数器的加1运算、增/减可控计数器的加1和减1、计数动态参数值与计数设置值的大小比较,增/减可控计数器的计数参数处理为补码运算,计数功能控制、计数器软触头位单元32的字寻址和位寻址读、写功能、SDRAM计数器动态参数存储器61的读、写功能,双口RAM模块Ⅳ的读、写功能;双口RAM模块Ⅳ分别与FPGA计数器模块Ⅲ和ARM控制模块Ⅰ连接,以实现ARM控制模块Ⅰ与FPGA计数器模块Ⅲ之间的数据传输;电源模块Ⅴ为ARM控制模块Ⅰ、存储器模块Ⅱ、FPGA计数器模块Ⅲ’、双口RAM模块Ⅳ及SDRAM掉电保护模块Ⅵ提供变压后的电源;SDRAM掉电保护模块Ⅵ与FPGA计数器模块Ⅲ’连接,SDRAM掉电保护模块Ⅵ包括相互连接的SDRAM计数器动态参数存储器61和SDRAM掉电保护电路62,该SDRAM掉电保护模块Ⅵ可避免在电源切换过程中SDRAM计数器动态参数存储器61的内容发生变化,并将SDRAM掉电保护电62的电源为SDRAM计数器动态参数存储器61供电。
本实施例的工作原理与实施例一相同,此处不再赘述。
ARM+FPGA组成的计数器装置实施例一是本实用新型的最佳实施例之一,作为本实用新型之ARM+FPGA组成的计数器装置实施例一和实施例二的一种变换,也可以在该计数器装置中不设置SDRAM掉电保护电路62,同样也可实现本实用新型的目的。
作为本实用新型之ARM+FPGA组成的计数器装置实施例一和实施例二的另一种变换,该计数器装置中还可以不设置SDRAM掉电保护电路62,SDRAM计数器动态参数存储器61的功能由FPGA计数器模块Ⅲ来实现,该变换同样也可实现本实用新型的目的。
Claims (7)
1.一种ARM+FPGA组成的计数器装置,其特征在于:
该计数器装置是以嵌入式ARM微处理器为控制核心、以FPGA进行计数处理,包括:ARM控制模块(Ⅰ)、存储器模块(Ⅱ)、FPGA计数器模块(Ⅲ)、SDRAM掉电保护模块(Ⅵ)、电源模块(Ⅴ)以及双口RAM模块(Ⅳ);
所述ARM控制模块(Ⅰ)分别与上述存储器模块(Ⅱ)、FPGA计数器模块(Ⅲ)、双口RAM模块(Ⅳ)、SDRAM掉电保护模块(Ⅵ)及电源模块(Ⅴ)连接,以嵌入式ARM微处理器为控制核心,构建嵌入式实时操作系统,进行多任务管理和通信管理,实现对装置中各个模块信息的处理和控制;
所述存储器模块(Ⅱ)用于存储操作系统及系统程序的目标代码映像文件、用户程序的处理信息、以及为计数器装置数据的处理和通信提供空间;
所述双口RAM模块(Ⅳ)分别与所述FPGA计数器模块(Ⅲ)和所述ARM控制模块(Ⅰ)连接,以实现所述ARM控制模块(Ⅰ)与所述FPGA计数器模块(Ⅲ)之间的数据传输;
所述FPGA计数器模块(Ⅲ)用于判断计数器的类型,实施与计数设定值的比较及计数运算,通过对所述双口RAM模块(Ⅳ)的读写控制,将计数器的状态传送至所述ARM控制模块(Ⅰ);
所述SDRAM掉电保护模块(Ⅵ)与所述FPGA计数器模块(Ⅲ)连接,用于避免在电源切换过程中存储器内容的变化,并应用其中的电源为动态参数存储器供电;
所述电源模块(Ⅴ)为上述ARM控制模块(Ⅰ)、存储器模块(Ⅱ)、FPGA计数器模块(Ⅲ)、SDRAM掉电保护模块(Ⅵ)及双口RAM模块(Ⅳ)提供变压电源。
2.如权利要求1所述一种ARM+FPGA组成的计数器装置,其特征在于:
所述SDRAM掉电保护模块(Ⅵ)包括相互连接的SDRAM计数器动态参数存储器和SDRAM掉电保护电路,该SDRAM掉电保护模块(Ⅵ)在电源切换过程中应用所述SDRAM掉电保护电路的电源为所述SDRAM计数器动态参数存储器供电,以避免所述SDRAM计数器动态参数存储器内容发生变化。
3.如权利要求2所述一种ARM+FPGA组成的计数器装置,其特征在于:
所述ARM控制模块(Ⅰ)包括嵌入式ARM微处理器、人机交互电路、控制电路、复位电路和JTAG调试接口电路;
所述嵌入式ARM微处理器作为ARM控制模块(Ⅰ)的控制核心,分别与上述人机交互电路、控制电路、复位电路和JTAG调试接口电路连接,进行多任务管理和通信管理,以实现对上述各电路的信息处理和控制;
人机交互电路用于执行系统的控制命令、控制参数的输入以及系统各种参数的人机界面控制;
控制电路用于系统数据采集及控制驱动;
复位电路为系统电路提供复位信号;
JTAG调试接口电路提供调试接口,该接口与外接电路相连,以实现编程装置对所述ARM控制模块(Ⅰ)的软硬件调试。
4.如权利要求2所述一种ARM+FPGA组成的计数器装置,其特征在于:
所述FPGA计数器模块(Ⅲ)包括计数器控制器、计数器软触头位单元和FPGA内部总线;所述计数器控制器是所述FPGA计数器模块(Ⅲ)的控制核心,其通过所述FPGA内部总线分别与所述计数器软触头位单元、所述SDRAM掉电保护模块(Ⅵ)以及所述双口RAM模块连接Ⅳ连接,并通过所述双口RAM模块(Ⅳ)与所述ARM控制模块(Ⅰ)连接;
所述计数器控制器从所述ARM控制模块(Ⅰ)获取计数器的运行状态、类型、参数信息、复位信息以及计数实时参数读取命令,根据上述计数器的运行状态、各类信息及参数进行判断并进行相应处理、并将计数器处理的结果状态传输给所述双口RAM模块(Ⅳ);
所述计数器软触头位单元模块为计数器软触头状态的存放空间,可实现字寻址和位寻址。
5.如权利要求2所述一种ARM+FPGA组成的计数器装置,其特征在于:
所述存储器模块(Ⅱ)包括分别与所述ARM控制模块(Ⅰ)连接的Nor FLASH存储器、Nand FLASH存储器和SDRAM存储器;
所述Nor FLASH存储器用于存储操作系统及系统程序的目标代码映像文件;
所述Nand FLASH存储器用于存放执行用户程序;
所述SDRAM存储器用于存放计数器装置的处理和通信信息,并为系统运行和通信数据处理提供空间。
6.如权利要求1~5中任意一项所述一种ARM+FPGA组成的计数器装置,其特征在于:
所述FPGA计数器模块(Ⅲ)与所述双口RAM模块(Ⅳ)分别独立设置。
7.如权利要求1~5中任意一项所述一种ARM+FPGA组成的计数器装置,其特征在于:
所述双口RAM模块(Ⅳ)嵌入所述FPGA计数器模块(Ⅲ)中,构成带双口RAM模块(Ⅳ)的FPGA计数器模块(Ⅲ’)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011202317713U CN202120300U (zh) | 2011-07-02 | 2011-07-02 | Arm+fpga组成的计数器装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011202317713U CN202120300U (zh) | 2011-07-02 | 2011-07-02 | Arm+fpga组成的计数器装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN202120300U true CN202120300U (zh) | 2012-01-18 |
Family
ID=45461349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011202317713U Withdrawn - After Issue CN202120300U (zh) | 2011-07-02 | 2011-07-02 | Arm+fpga组成的计数器装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN202120300U (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102254218A (zh) * | 2011-07-02 | 2011-11-23 | 广西工学院 | Arm+fpga组成的计数器装置及其实现方法 |
CN102681477A (zh) * | 2012-03-09 | 2012-09-19 | 深圳市汇川控制技术有限公司 | 一种plc多路ab相高速计数的控制系统和方法 |
CN103279790A (zh) * | 2013-05-31 | 2013-09-04 | 刘腾飞 | 产品产量计数系统 |
CN105137903A (zh) * | 2015-06-29 | 2015-12-09 | 山东超越数控电子有限公司 | 一种在SocFPGA上实现PLC运行环境的方法 |
CN113296433A (zh) * | 2021-04-28 | 2021-08-24 | 成都秦川物联网科技股份有限公司 | 一种单片机复位方法 |
-
2011
- 2011-07-02 CN CN2011202317713U patent/CN202120300U/zh not_active Withdrawn - After Issue
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102254218A (zh) * | 2011-07-02 | 2011-11-23 | 广西工学院 | Arm+fpga组成的计数器装置及其实现方法 |
CN102254218B (zh) * | 2011-07-02 | 2014-02-26 | 广西工学院 | Arm+fpga组成的计数器装置及其实现方法 |
CN102681477A (zh) * | 2012-03-09 | 2012-09-19 | 深圳市汇川控制技术有限公司 | 一种plc多路ab相高速计数的控制系统和方法 |
CN103279790A (zh) * | 2013-05-31 | 2013-09-04 | 刘腾飞 | 产品产量计数系统 |
CN105137903A (zh) * | 2015-06-29 | 2015-12-09 | 山东超越数控电子有限公司 | 一种在SocFPGA上实现PLC运行环境的方法 |
CN113296433A (zh) * | 2021-04-28 | 2021-08-24 | 成都秦川物联网科技股份有限公司 | 一种单片机复位方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN202120300U (zh) | Arm+fpga组成的计数器装置 | |
CN101655708B (zh) | 车辆智能搬运器及其控制系统和控制方法 | |
CN103984275B (zh) | 一种基于fpga的通用工业运动控制系统及基于该运动控制系统的控制方法 | |
CN102254218A (zh) | Arm+fpga组成的计数器装置及其实现方法 | |
CN103226344B (zh) | 一种运动控制片上系统 | |
CN204667101U (zh) | 一种变频器控制器 | |
CN102323786A (zh) | Arm+fpga组成的定时器装置及其实现方法 | |
CN204585226U (zh) | 一种应用在机械手上的多轴运动控制器 | |
CN103941649A (zh) | 多轴运动卡控制系统的控制方法 | |
CN201716564U (zh) | 高性能可编程控制器专用处理器体系结构 | |
CN103926928A (zh) | 一种模块动态调度的机器人控制器 | |
CN105446166B (zh) | 数控系统机床环境仿真仪 | |
CN102156410A (zh) | 智能人机交互设备 | |
CN107305363A (zh) | 多轴运动控制器 | |
CN101702144A (zh) | 一种dma控制器的控制装置及控制方法 | |
CN103645887B (zh) | 双指令多浮点操作数加/减、乘、除运算控制器 | |
CN105373109B (zh) | 一种Delta机器人驱控系统 | |
CN102339037B (zh) | 多轴数控系统 | |
CN203697011U (zh) | 机器人中的io复用电路 | |
CN203133571U (zh) | 数控系统的双核处理控制电路 | |
CN101477355A (zh) | 一种用于微型切割机的数控系统 | |
CN201167335Y (zh) | Profibus-DP总线串口服务器 | |
CN103645886B (zh) | 多浮点操作数加/减、乘、除运算控制器 | |
CN204576487U (zh) | 并行计算多任务设备 | |
CN201383099Y (zh) | 车辆智能搬运器及其控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
AV01 | Patent right actively abandoned |
Granted publication date: 20120118 Effective date of abandoning: 20140226 |
|
RGAV | Abandon patent right to avoid regrant |