Arm+fpga组成的计数器装置的制作方法

文档序号:6448883阅读:503来源:国知局
专利名称:Arm+fpga组成的计数器装置的制作方法
技术领域
本实用新型涉及一种计数器装置,特别涉及一种可编程控制器(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控制模块I、FPGA计数器模块III、存储器模块II、SDRAM掉电保护模块VI、电源模块V以及双口 RAM模块IV ;ARM控制模块I分别与上述存储器模块II、FPGA 计数器模块III、双口 RAM模块IV、SDRAM掉电保护模块VI及电源模块V连接,以嵌入式ARM微处理器为控制核心,构建嵌入式实时操作系统,进行多任务管理和通信管理,实现对装置中各个模块信息的处理和控制;存储器模块II用于存储操作系统及系统程序的目标代码映像文件、执行用户程序的处理信息、以及为计数器装置数据的处理和通信提供空间;双口 RAM 模块IV分别与FPGA计数器模块III和ARM控制模块I连接,以实现ARM控制模块I与FPGA 计数器模块III之间的数据传输;FPGA计数器模块III用于判断计数器的类型,实施与计数设定值的比较及计数运算,通过对双口 RAM模块IV的读写控制,将计数器的状态传送至ARM控制模块I ;SDRAM掉电保护模块VI与FPGA计数器模块III连接,用于避免在电源切换过程中存储器内容的变化,并应用其中的电源为动态参数存储器供电;电源模块V为上述ARM控制模块I、存储器模块II、FPGA计数器模块IILSDRAM掉电保护模块VI及双口 RAM模块IV提供变压电源。由以上方案可见,本实用新型以嵌入式ARM微处理器为控制模块,FPGA为计数处理模块构成ARM+FPGA计数器装置,采用FPGA实现计数器的各种处理操作,无论计数器装置中的计数器数量多少与否,其占用嵌入式ARM微处理器执行用户程序的时间都非常少, 因此,可以应用于开发可编程控制器以及大规模的计数器;同时,由于对计数器的操作,如 计数功能控制、计数器状态设置等,均由FPGA计数器模块III完成,不占用PLC用户程序执行的时间,大大提高了计数器装置的反应速度;无论计数器处于何种运行状态,ARM控制模块 I对每个同类型的计数器所执行指令的操作次数是基本相同的,减少了执行有关计数器指令时对PLC用户程序执行周期变化的影响。其进一步技术方案是该ARM+FPGA组成的计数器装置中的SDRAM掉电保护模块VI 包括相互连接的SDRAM计数器动态参数存储器和SDRAM掉电保护电路,该SDRAM掉电保护模块VI在电源切换过程中应用SDRAM掉电保护电路的电源为SDRAM计数器动态参数存储器供电,以避免SDRAM计数器动态参数存储器内容发生变化。由以上方案可见,由于计数器装置中的计数动态参数由SDRAM计数器动态参数存储器进行存储,计数操作由FPGA计数器模块III处理,该FPGA计数器模块III从双口 RAM模块 IV中接收ARM控制模块I发出的控制处理指令以进行循环操作,因此,计数器的数量只受 SDRAM计数器动态参数存储器、计数器软触头位单元和双口 RAM模块IV中容量和地址线的限制,只要增加SDRAM计数器动态参数存储器、计数器软触头位单元和双口 RAM模块IV中的存储器容量,以及增加地址线的根数,计数器的个数可以成倍数的增加,其计数器装置设置的计数器数量能够达到数百个乃至千余个,且不需要在ARM控制模块I的方法中编制计数参数的处理过程,只是将每个计数器作为普通存储单元进行读写和判断操作,本实用新型适合需要数量众多计数器计数与计数控制的系统需求,以及对计数精度要求很高的系统, 尤其适应于PLC控制系统。其更进一步技术方案是ARM控制模块I包括嵌入式ARM微处理器、人机交互电路、控制电路、复位电路和JTAG调试接口电路;嵌入式ARM微处理器作为ARM控制模块I的控制核心,分别与上述人机交互电路、控制电路、复位电路和JTAG调试接口电路连接,进行多任务管理和通信管理,以实现对上述各电路的信息处理和控制;人机交互电路用于执行系统的控制命令、控制参数的输入以及系统各种参数的人机界面控制;控制电路用于系统数据采集及控制驱动;复位电路为系统电路提供复位信号JTAG调试接口电路提供调试接口,该接口与外接电路相连,以实现编程装置对ARM控制模块I的软硬件调试。由以上方案可见,ARM控制模块I对于PLC用户程序使用的每个计数器,当程序执行某个计数器软元件输出指令时,首先由嵌入式ARM微处理器判断该计数器的类型、所处的工作状态,然后从双口 RAM模块IV将该计数器参数存储单元中的内容读入ARM控制模块 I中并设置运行状态标志,再传输到双口 RAM模块IV的该计数器参数存储单元中,PLC用户程序执行时,相当于将每个计数器只进行读写和判断操作;当PLC用户程序执行应用某个计数器软触头信息进行处理时,只需要从双口 RAM模块IV中读取该计数器软触头的位存储单元内容,如此,大大提高了运行速度。其更进一步技术方案是FPGA计数器模块III包括计数器控制器、计数器软触头位单元和FPGA内部总线;计数器控制器是FPGA计数器模块III的控制核心,其通过FPGA内部总线分别与计数器软触头位单元、SDRAM掉电保护模块VI以及双口 RAM模块IV连接,并通过双口 RAM模块IV与ARM控制模块I连接;计数器控制器从ARM控制模块I获取计数器的运行状态、类型、参数信息、复位信息以及计数实时参数读取命令,根据上述计数器的运行状态、各类信息及参数进行判断并进行相应处理、并将计数器处理的结果状态传输给双口 RAM 模块IV ;计数器软触头位单元模块为计数器软触头状态的存放空间,可实现字寻址和位寻址。由以上方案可见,本实用新型采用FPGA进行计数器功能处理,计数器控制器从 ARM控制模块I获得计数器运行和计数设置参数的信息或复位信息,然后据此对计数器的运行实施计数控制,其结果再传输到双口 RAM模块该计数器参数存储单元中,PLC用户程序执行时,相当于将每个计数器只进行读、写和判断操作;另一方面,计数器的计数运行操作、 计数器软触头状态的设置由FPGA计数器模块完成,不占用PLC用户程序执行的时间,提高了装置的反应速度。其更进一步技术方案是,存储器模块II包括分别与ARM控制模块I连接的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计数器结构示意图。图中I —ARM控制模块,II 一存储器模块,III-FPGA计数器模块,IV—双口 RAM模块, V—电源模块,VI— 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控制模块I、FPGA计数器模块III、存储器模块II、电源模块V、双口 RAM模块 IV及SDRAM掉电保护模块VI ;ARM控制模块I分别与上述存储器模块II、FPGA计数器模块 III、双口 RAM模块IV及电源模块V连接,以嵌入式ARM微处理器为控制核心,构建嵌入式实时操作系统,进行多任务管理和通信管理,实现对装置中各个模块信息的处理和控制;存储器模块II用于存储操作系统及系统程序的目标代码映像文件、执行用户程序的处理信息、 以及为计数器装置数据的处理和通信提供空间;双口 RAM模块IV分别与FPGA计数器模块 III和ARM控制模块I连接,以实现ARM控制模块I与FPGA计数器模块III之间的数据传输; FPGA计数器模块III用于判断计数器的类型,实施与计数设定值的比较及计数运算,通过对所述双口 RAM模块IV的读写控制,将计数器的状态传送至ARM,该模块以计数器控制器31为核心,实现计数器的类型判断、增计数器的加1运算、增/减可控计数器的加1或减1、计数动态参数值与计数设置值的大小比较,增/减可控计数器的计数参数处理为补码运算,计数功能控制、计数器软触头位单元32的字寻址和位寻址读、写功能、SDRAM计数器动态参数存储器61的读、写功能,双口 RAM模块IV的读、写功能;电源模块V为上述ARM控制模块I、 存储器模块II、FPGA计数器模块III及双口 RAM模块IV提供变压电源;SDRAM掉电保护模块VI 与FPGA计数器模块III连接,该SDRAM掉电保护模块VI包括相互连接的SDRAM计数器动态参数存储器和SDRAM掉电保护电路,SDRAM掉电保护模块VI应用SDRAM掉电保护电路的电源为SDRAM计数器动态参数存储器供电,以避免在电源切换过程中SDRAM计数器动态参数存储器内容发生变化。其中,该计数器装置的具体结构为ARM控制模块I包括嵌入式ARM微处理器11、人机交互电路12、控制电路13、复位电路14和JTAG调试接口电路15,参见图2,嵌入式ARM微处理器11作为控制核心,分别与人机交互电路12、控制电路13、复位电路14和JTAG调试接口电路15连接,进行多任务管理和通信管理,以实现对各组成电路的信息处理和控制;人机交互电路12完成系统的控制命令和控制参数的输入和系统各种参数的人机界面控制;控制电路13完成ARM控制模块I 的数据采集与控制驱动;复位电路14为系统电路提供复位信号;JTAG调试接口电路15提供调试接口与外接电路相连实现编程装置对ARM控制模块I的硬件和软件的调试。嵌入式 ARM微处理器11在对PLC用户程序的编译阶段,将每个增计数器的1个计数设置值和每个增/减可控计数器的2个补码计数设置值传送给双口 RAM模块IV,检测计数器实时计数值读取指令,按照编译出现这类指令出现的先后顺序将该计数器的编号传输给双口 RAM模块 IV,计数器顺序编号包含在编译后的计数器实时计数值读取指令中;在PLC用户程序的执行过程中,执行计数器软元件处理指令时,ARM控制模块I将该计数器的得电或失电、增/ 减可控计数器是增计数还是减计数的控制信息传输给双口 RAM模块IV,执行计数器软元件复位指令时,ARM控制模块I将该计数器的复位或不复位信息传输给双口 RAM模块IV,执行读取计数器触头信息时,ARM控制模块I直接从双口 RAM模块IV中读取该计数器的触头状态信息,执行实时计数值读取指令时,ARM控制模块I直接从双口 RAM模块IV中读取该计数器的动态计数参数。存储器模块II包括分别与ARM控制模块I连接的Nor FLASH存储器21、Nand FLASH22存储器和SDRAM存储器23,其结构示意图见图2 ;Nor FLASH存储器21、Nand FLASH 存储器22和SDRAM存储器23分别通过系统数据总线、地址总线和控制总线与ARM控制模块I的嵌入式ARM微处理器11连接,实现ARM微处理器11对各个存储器的操作控制,Nor FLASH存储器21用于存储操作系统及系统程序的目标代码映像文件,Nand FLASH存储器 22用于存放执行用户程序,SDRAM存储器23用于存放计数器装置的处理和通信信息,并为系统运行和通信数据处理提供空间。双口 RAM模块IV通过ARM控制模块I的一组数据总线XI、地址总线Zl和控制总线 Yl与ARM控制模块I的嵌入式ARM微处理器11连接,通过FPGA内部总线的数据总线X2、 地址总线Z2和控制总线Y2与FPGA计数器模块III连接;双口 RAM模块IV是ARM控制模块I 与FPGA计数器模块III之间数据传输的桥梁,用户能够实现ARM控制模块I和FPGA计数器模块III同时对双口 RAM模块IV进行读写操作;图5是双口 RAM模块IV中的存储器结构示意图。[0041 ] SDRAM掉电保护模块VI包括SDRAM计数器动态参数存储器61和SDRAM掉电保护电路62,SDRAM计数器动态参数存储器61通过FPGA内部总线与FPGA计数器模块III连接, SDRAM掉电保护电路62在系统电源失电瞬间使SDRAM计数器动态参数存储器61的片选端为高电平,避免在电源切换过程中SDRAM计数器动态参数存储器61的内容发生变化,并将 SDRAM掉电保护电路62的电源为SDRAM计数器动态参数存储器61供电;在计数器装置复位和PLC用户程序重新启动运行时,ARM控制模块I将对非保持型计数器的FPGA的SDRAM 计数器动态参数存储器61中的存储单元清零。FPGA计数器模块III包括计数器控制器31、计数器软触头位单元32和FPGA内部总线,其具体电路结构参见图3,计数器控制器31是FPGA计数器模块III的控制核心,计数器控制器31通过FPGA内部总线与计数器软触头位单元32、SDRAM掉电保护模块VI以及双口 RAM模块IV连接,并通过双口 RAM模块IV与ARM控制模块I连接。其中FPGA内部总线由32位数据总线X2,地址总线Z2及控制总线Y2组成,控制总线Y2 包括计数器的读、写、模块片选控制,双口 RAM模块IV与FPGA内部总线相连接,双口 RAM模块IV的模块片选独立设置与FPGA计数器控制模块III连接,计数器软触头位单元32和SDRAM 掉电保护模块VI都是10根地址线与计数器控制器31连接,控制总线Y2的读、写和模块片选线与计数器控制器31、计数器软触头位单元32、SDRAM掉电保护模块VI和双口 RAM模块 IV连接。计数器软触头位单元32是32位字长存储单元组成的计数器软触头存储器,参见图4,该单元占用2个模块地址,1个是32位字单元寻址的模块地址,另1个是软触头位单元的位模块寻址,计数器软触头位单元模块32可以实现字寻址和位寻址的功能。计数器控制器31通过双口 RAM模块IV从ARM控制模块I获得计数器运行状态、类型及参数信息、复位信息、以及计数实时参数读取命令;计数器控制器31处理计数器的结果状态也传输给双口 RAM模块IV,计数器控制器31在工作时钟脉冲的作用下,计数器控制器31依据计数器这些状态进行判断,依据判断结果进行处理,如果某个增计数器处于未被使用或已完成一次计数操作并继续处于得电状态,计数器控制器31对该增计数器不作任何处理;如果处于失电状态,设置该增计数器的D27位值为“0”,为增计数器软线圈由失电转化为得电时作好计数的准备;如果处于复位状态,复位该增计数器在计数器软触头位单元32中的位单元为“0”,清SDRAM计数器动态参数存储器61中该增计数器的D30、D27和 D26^D0单元内容;如果处于计数状态,计数器控制器31对SDRAM计数器动态参数存储器61 的该增计数器存储单元内容与双口 RAM模块IV中的该增计数器的计数设置参数进行比较判断,如果SDRAM计数器动态参数存储器61中该计数器的计数参数等于或大于双口 RAM模块IV中的该增计数器的计数设置参数时,置位该增计数器在计数器软触头位单元32中的位单元为“1”,设置计数工作标志D27为“1” ;如果小于,SDRAM计数器动态参数存储器61 中该增计数器的计数参数进行加1操作,设置计数工作标志D27为“1”;如果该计数器为失电状态,且非复位状态,设置计数工作标志D27为“0”;如果判断计数器为增/减计数器型, 其判断处理过程与增计数器的判断处理过程基本相同,不同之处在于每个增/减计数器有两个计数设置值,一个是增计数设置值,一个是减计数设置值,对应有增计数动态参数和减计数动态参数,这些值都是用补码表示,其判断比较和计数也都是补码运算;对2种类型计数器的读取判断处理操作是一个一个计数器循环进行,每循环操作一次,将计数器软触头位单元32的状态传输到双口 RAM模块IV中,根据双口 RAM模块IV需要传输计数器实时计数值的计数器编号的顺序将SDRAM计数器动态参数存储器61的实时计数参数传输给双口 RAM 模块IV的计数器实时计数值存储区;计数器控制器处理计数器的结果状态也传输给双口 RAM模块IV ;计数器控制器在工作时钟脉冲的作用下,依据计数器的状态进行判断,依据判断结果进行处理如果某个增计数器处于未被使用或已完成一次计数操作并继续处于得电状态,计数器控制器对该增计数器不作任何处理;如果处于失电状态,设置该增计数器的D27 为“0”,为增计数器软线圈由失电转化为得电时作好计数的准备;如果处于复位状态,复位该增计数器在计数器软触头位单元中的位单元为“0”,清SDRAM计数器动态参数存储器中该增计数器的D30、D27和D26 D0单元内容;如果处于计数状态,计数器控制器对SDRAM计数器动态参数存储器的该增计数器存储单元内容与双口 RAM模块IV中的该增计数器的计数设置参数进行比较判断,如果SDRAM计数器动态参数存储器中该增计数器的计数参数等于或大于双口 RAM模块IV中的该增计数器的计数设置参数时,置位该增计数器在计数器软触头位单元中的位单元为“ 1 ”,设置计数工作标志D27为“ 1 ” ;如果小于,SDRAM计数器动态参数存储器中该增计数器的计数参数进行加1操作,设置计数工作标志D27为“1”;如果该增计数器为失电状态,且非复位状态,设置计数工作标志D27为“0”;如果判断计数器为增/ 减计数器型,其判断处理过程与增计数器的判断处理过程基本相同,不同之处在于每个增/ 减计数器有两个计数设置值,一个是增计数设置值,一个是减计数设置值,对应有增计数动态参数和减计数动态参数,这些值都是用补码表示,其判断比较和计数也都是补码运算;对2种类型计数器的读取判断处理操作是一个一个计数器循环进行,每循环操作一次,将计数器软触头位单元的状态传输到双口 RAM模块IV中,根据双口 RAM模块IV需要传输计数器实时计数值的计数器编号的顺序将SDRAM计数器动态参数存储器的实时计数参数传输给双口 RAM模块IV的计数器实时计数值存储区;根据双口 RAM模块IV需要传输计数器实时计数值的计数器编号的顺序将SDRAM计数器动态参数存储器61的实时计数参数传输给双口 RAM模块IV的计数器实时计数值存储区。由上可见,由于计数器装置中的计数动态参数由SDRAM计数器动态参数存储器进行存储,计数操作由FPGA计数器模块III处理,该FPGA计数器模块III从双口 RAM模块IV中接收ARM控制模块I发出的控制处理指令进行循环操作,(处理计数器输出指令、复位指令的结果及FPGA计数器控制器处理计数的结果状态进行读取、判断,依据判断结果进行处理, 或设置计数器软触头状态,或读出SDRAM计数器动态参数存储器中的该计数器动态参数进行加1/减1计数,判断和处理,其中增/减可控计数器对计数参数的处理为补码运算,或不需要作任何处理,这是循环操作处理过程;)因此,计数器的数量只受SDRAM计数器动态参数存储器、计数器软触头位单元和双口 RAM容量和地址线的限制,只要增加SDRAM计数器动态参数存储器、计数器软触头位单元和双口 MM的容量,以及地址线的根数,计数器的个数可以成倍数的增加,其计数器装置设置的计数器数量能够达到数百个,乃至千余个,而且不需要在ARM控制模块的程序中编制计数参数的处理程序,只是将每个计数器作为普通存储单元进行读写和判断操作,适合需要数量众多计数器计数与计数控制的系统需求,以及对计数精度要求很高的系统,尤其适应于PLC控制系统。而且,ARM控制模块执行计数器输出指令时,只需要判断计数器是处于得电还是失电状态,并将其状态传输给双口 RAM ;执行计数器复位指令时,只需要判断计数器是复位还是不复位,并将其状态传输给双口 RAM ;执行应用计数器软触头指令时,从双口 MM中读取该计数器的软触头状态;增计数器的加1运算、增/减可控计数器的加1或减1、计数动态参数值与计数设置值的大小比较,增/减可控计数器的计数参数处理为补码运算,计数功能控制、计数器软触头位单元状态的设置均由FPGA计数器模块完成,不占用PLC用户程序执行的时间;大大提高了计数器装置的反应速度;无论计数器处于何种运行状态,本计数器装置中ARM控制模块执行每个增计数器输出指令的操作次数相同,执行每个增/减可控计数器输出指令的操作次数相同,减少了执行有关计数器指令时对PLC用户程序执行周期变化的影响。组成的计数器装置实施例二参见图6、图7、图8,本实施例的计数器装置结构与实施例一中的基本类似,不同之处在于实施例一中的双口 RAM模块IV与FPGA计数器模块III分别独立设置,而本实施例中的双口 RAM模块IV是嵌入FPGA计数器模块III中,以构成带双口 RAM模块的FPGA计数器模块III’,参见图8,本实施例之ARM+FPGA组成的计数器装置,以嵌入式ARM微处理器为控制核心、以FPGA进行计数处理,包括ARM控制模块I、SDRAM掉电保护模块VI,存储器模块 II、FPGA计数器模块III,、电源模块V,ARM控制模块I以嵌入式ARM微处理器为控制核心, 构建嵌入式实时操作系统,进行多任务管理和通信管理,实现对装置中各模块及其信息的处理和控制;存储器模块II用于存储操作系统及系统程序的目标代码映像文件、执行用户程序的处理信息、以及为计数器装置数据的处理和通信提供空间;FPGA计数器模块III’包括嵌入的双口 RAM模块IV和FPGA计数器模块III,FPGA计数器模块III以计数器控制器31为核心,实现计数器的类型判断、增计数器的加1运算、增/减可控计数器的加1和减1、计数动态参数值与计数设置值的大小比较,增/减可控计数器的计数参数处理为补码运算,计数功能控制、计数器软触头位单元32的字寻址和位寻址读、写功能、SDRAM计数器动态参数存储器61的读、写功能,双口 RAM模块IV的读、写功能;双口 RAM模块IV分别与FPGA计数器模块III和ARM控制模块I连接,以实现ARM控制模块I与FPGA计数器模块III之间的数据传输;电源模块V为ARM控制模块I、存储器模块II、FPGA计数器模块III,、双口 RAM模块IV及 SDRAM掉电保护模块VI提供变压后的电源;SDRAM掉电保护模块VI与FPGA计数器模块III’连接,SDRAM掉电保护模块VI包括相互连接的SDRAM计数器动态参数存储器61和SDRAM掉电保护电路62,该SDRAM掉电保护模块VI可避免在电源切换过程中SDRAM计数器动态参数存储器61的内容发生变化,并将SDRAM掉电保护电62的电源为SDRAM计数器动态参数存储器61供电。本实施例的工作原理与实施例一相同,此处不再赘述。ARM+FPGA组成的计数器装置实施例一是本实用新型的最佳实施例之一,作为本实用新型之ARM+FPGA组成的计数器装置实施例一和实施例二的一种变换,也可以在该计数器装置中不设置SDRAM掉电保护电路62,同样也可实现本实用新型的目的。作为本实用新型之ARM+FPGA组成的计数器装置实施例一和实施例二的另一种变换,该计数器装置中还可以不设置SDRAM掉电保护电路62,SDRAM计数器动态参数存储器61 的功能由FPGA计数器模块III来实现,该变换同样也可实现本实用新型的目的。
权利要求1.一种ARM+FPGA组成的计数器装置,其特征在于该计数器装置是以嵌入式ARM微处理器为控制核心、以FPGA进行计数处理,包括ARM 控制模块(I )、存储器模块(II)、FPGA计数器模块(III)、SDRAM掉电保护模块(VI)、电源模块 (V)以及双口 RAM模块(IV);所述ARM控制模块(I )分别与上述存储器模块(II)、FPGA计数器模块(III)、双口 RAM 模块(IV)、SDRAM掉电保护模块(VI)及电源模块(V )连接,以嵌入式ARM微处理器为控制核心,构建嵌入式实时操作系统,进行多任务管理和通信管理,实现对装置中各个模块信息的处理和控制;所述存储器模块(II)用于存储操作系统及系统程序的目标代码映像文件、用户程序的处理信息、以及为计数器装置数据的处理和通信提供空间;所述双口 RAM模块(IV)分别与所述FPGA计数器模块(III)和所述ARM控制模块(I )连接,以实现所述ARM控制模块(I )与所述FPGA计数器模块(III)之间的数据传输;所述FPGA计数器模块(III)用于判断计数器的类型,实施与计数设定值的比较及计数运算,通过对所述双口 RAM模块(IV)的读写控制,将计数器的状态传送至所述ARM控制模块 (I);所述SDRAM掉电保护模块(VI)与所述FPGA计数器模块(III)连接,用于避免在电源切换过程中存储器内容的变化,并应用其中的电源为动态参数存储器供电;所述电源模块(V)为上述ARM控制模块(I )、存储器模块(II)、FPGA计数器模块(III)、 SDRAM掉电保护模块(VI)及双口 RAM模块(IV)提供变压电源。
2.如权利要求1所述一种ARM+FPGA组成的计数器装置,其特征在于所述SDRAM掉电保护模块(VI)包括相互连接的SDRAM计数器动态参数存储器和SDRAM 掉电保护电路,该SDRAM掉电保护模块(VI)在电源切换过程中应用所述SDRAM掉电保护电路的电源为所述SDRAM计数器动态参数存储器供电,以避免所述SDRAM计数器动态参数存储器内容发生变化。
3.如权利要求2所述一种ARM+FPGA组成的计数器装置,其特征在于所述ARM控制模块(I )包括嵌入式ARM微处理器、人机交互电路、控制电路、复位电路和JTAG调试接口电路;所述嵌入式ARM微处理器作为ARM控制模块(I )的控制核心,分别与上述人机交互电路、控制电路、复位电路和JTAG调试接口电路连接,进行多任务管理和通信管理,以实现对上述各电路的信息处理和控制;人机交互电路用于执行系统的控制命令、控制参数的输入以及系统各种参数的人机界面控制;控制电路用于系统数据采集及控制驱动; 复位电路为系统电路提供复位信号;JTAG调试接口电路提供调试接口,该接口与外接电路相连,以实现编程装置对所述 ARM控制模块(I )的软硬件调试。
4.如权利要求2所述一种ARM+FPGA组成的计数器装置,其特征在于所述FPGA计数器模块(III)包括计数器控制器、计数器软触头位单元和FPGA内部总线; 所述计数器控制器是所述FPGA计数器模块(III)的控制核心,其通过所述FPGA内部总线分别与所述计数器软触头位单元、所述SDRAM掉电保护模块(VI)以及所述双口 RAM模块连接 IV连接,并通过所述双口 RAM模块(IV)与所述ARM控制模块(I )连接;所述计数器控制器从所述ARM控制模块(I )获取计数器的运行状态、类型、参数信息、 复位信息以及计数实时参数读取命令,根据上述计数器的运行状态、各类信息及参数进行判断并进行相应处理、并将计数器处理的结果状态传输给所述双口 RAM模块(IV);所述计数器软触头位单元模块为计数器软触头状态的存放空间,可实现字寻址和位寻址。
5.如权利要求2所述一种ARM+FPGA组成的计数器装置,其特征在于所述存储器模块(II)包括分别与所述ARM控制模块(I )连接的Nor FLASH存储器、 Nand FLASH存储器和SDRAM存储器;所述Nor FLASH存储器用于存储操作系统及系统程序的目标代码映像文件; 所述Nand FLASH存储器用于存放执行用户程序;所述SDRAM存储器用于存放计数器装置的处理和通信信息,并为系统运行和通信数据处理提供空间。
6.如权利要求1 5中任意一项所述一种ARM+FPGA组成的计数器装置,其特征在于 所述FPGA计数器模块(III)与所述双口 RAM模块(IV)分别独立设置。
7.如权利要求1 5中任意一项所述一种ARM+FPGA组成的计数器装置,其特征在于 所述双口 RAM模块(IV)嵌入所述FPGA计数器模块(III)中,构成带双口 RAM模块(IV)的FPGA计数器模块(III,)。
专利摘要本实用新型提供一种以ARM微处理器为控制核心、FPGA为计数处理的计数器装置,包括ARM控制模块、存储器模块、FPGA计数器模块、双口RAM模块、SDRAM掉电保护模块、电源模块。ARM控制模块以ARM微处理器为控制核心,对各模块处理和控制;双口RAM模块分别与FPGA计数器模块和ARM控制模块连接,实现两模块的数据传输;FPGA计数器模块以计数器控制器为核心,完成增计数器和增/减计数器判断、计数处理及实时计数参数传输;电源模块提供工作电源,SDRAM掉电保护模块对计数动态参数掉电保护;本实用新型计数操作不占用PLC用户程序执行时间,可实现不同类型和数量的计数器。
文档编号G06M1/00GK202120300SQ20112023177
公开日2012年1月18日 申请日期2011年7月2日 优先权日2011年7月2日
发明者丁秋笛, 付杰, 吴笔迅, 李克俭, 罗功坤, 蔡启仲 申请人:广西工学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1