CN112559298A - 电能表的内存监测方法、装置、系统和存储介质 - Google Patents
电能表的内存监测方法、装置、系统和存储介质 Download PDFInfo
- Publication number
- CN112559298A CN112559298A CN202110190962.8A CN202110190962A CN112559298A CN 112559298 A CN112559298 A CN 112559298A CN 202110190962 A CN202110190962 A CN 202110190962A CN 112559298 A CN112559298 A CN 112559298A
- Authority
- CN
- China
- Prior art keywords
- electric energy
- energy meter
- address
- upper computer
- memory device
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R35/00—Testing or calibrating of apparatus covered by the other groups of this subclass
- G01R35/04—Testing or calibrating of apparatus covered by the other groups of this subclass of instruments for measuring time integral of power or current
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种电能表内存监测方法、装置、系统和计算机可读存储介质。该方法包括:通过上位机获取上位机上的编译器的基地址和电能表处理器读写数据的变量名存储地址;再根据预设的仿真内存地址、基地址以及变量名存储地址计算电能表处理器的读写数据位于仿真内存设备上的映射地址并将该映射地址发送至电能表处理器,供电能表处理器读写数据,在数据读写进行预设时间段后,上位机基于上述映射地址对仿真内存设备进行监测。采用本方法能够在不占用电能表真实内存的情况下,实现将电能表真实内存指定到外部仿真内存设备上运行,上位机能够从外部仿真内存设备上实时获取数据对外部仿真内存设备进行监测,也就实现了上位机对电能表真实内存的监测。
Description
技术领域
本申请涉及电力设备测试技术领域,特别是涉及一种电能表内存监测方法、装置、系统和计算机可读存储介质。
背景技术
电能表是用来测量电能的仪表,当把电能表接入被测电路时,电能表处理器中的程序开始运行,程序在运行的过程中,会产生例如是电压、电流、功率等数据,这些运行数据由处理器中的内存进行存储,处理器以及上位机等设备可以从上述内存中读取到电能表的各项运行数据,该运行数据为判断电能表的运行情况提供了可靠的依据,所以该内存的运行情况对电能表的整体运行情况存在较大的影响,针对电能表中内存的监测变得十分有必要。
目前对于监测电能表中内存的方法是在电能表的处理器中内置一段监测代码,定时去查询读取内存中的数据,以实现对内存的监测,但是该监测代码会占用电能表内存的存储空间,监测效果较差。
发明内容
基于此,有必要针对上述技术问题,提供一种能够对电能表内存进行监测方法、装置、系统和计算机可读存储介质。
本申请实施例的第一方面提供了一种电能表内存的监测方法,应用于电能表内存监测系统,该系统包括上位机、电能表处理器和用于模拟电能表真实内存的仿真内存设备,该方法包括:
上位机获取上位机上的编译器文件,该编译器文件包括上位机上的编译器的基地址和数据变量名存储文件;其中,该数据变量名存储文件包括电能表处理器的读写数据的变量名存储地址;
上位机根据预设的仿真内存设备的仿真内存地址、编译器的基地址以及变量名存储地址,计算电能表处理器的读写数据位于仿真内存设备上的映射地址;
上位机将映射地址发送至电能表处理器,供电能表处理器进行数据读写;
在数据读写进行预设时间段后,上位机基于映射地址对仿真内存设备进行监测。
在其中一个实施例中,上位机根据预设的仿真内存设备的仿真内存地址、编译器的基地址以及变量名存储地址,计算电能表处理器的读写数据位于仿真内存设备上的映射地址,包括:
上位机对仿真内存地址以及变量名存储地址进行地址求和运算,得到第一地址;
上位机将上述第一地址与编译器的基地址进行地址求差运算得到映射地址。
在其中一个实施例中,上述数据变量名存储文件为.map文件,上位机获取上位机上的编译器文件,包括:
上位机从编译器文件中获取编译器的基地址以及.map文件;
上位机对.map文件进行解析得到变量名存储地址。
在其中一个实施例中,上述.map文件还包括:变量名、与该变量名对应的数据量以及存储与该变量名对应数据的文件名。
在其中一个实施例中,上述上位机基于映射地址对仿真内存设备进行监测,包括:
上位机通过微处理器(Advanced RISC Machine,简称ARM)从仿真内存设备的映射地址上读取数据,以对上述仿真内存设备进行监测。
在其中一个实施例中,上述仿真内存设备通过可变静态存储控制器(FlexibleStatic Memory Controller,简称FSMC)总线与电能表处理器的FSMC接口连接。
本申请实施例的第二方面提供了一种电能表内存监测装置,应用于电能表内存监测系统,该系统包括上位机、电能表处理器和用于模拟电能表真实内存的仿真内存设备,该装置包括:
获取模块,用于获取上位机上的编译器文件,编译器文件包括上位机上的编译器的基地址和数据变量名存储文件;其中,数据变量名存储文件包括电能表处理器的读写数据的变量名存储地址;
计算模块,用于根据预设的仿真内存设备的仿真内存地址、编译器的基地址以及变量名存储地址,计算电能表处理器的读写数据位于仿真内存设备上的映射地址;
发送模块,用于将映射地址发送至电能表处理器,供电能表处理器进行数据读写;
监测模块,用于在数据读写进行预设时间段后,基于映射地址对仿真内存设备进行监测。
本申请实施例的第三方面提供了一种电能表内存监测系统,该系统包括上位机、电能表处理器以及用于模拟电能表真实内存的仿真内存设备,仿真内存设备的第一端口与电能表处理器通信连接,仿真内存设备的第二端口与上位机通信连接,上位机与电能表处理器通信连接;
上述电能表处理器,用于对电力数据进行计量以及提供电力数据的访存接口;
上述仿真内存设备,用于模拟电能表的真实内存;
上述上位机,用于执行上述任一项电能表内存监测方法的步骤。
在其中一个实施例中,上述系统还包括ARM,上位机通过ARM与仿真内存设备的第二端口通信连接。
本申请实施例的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一项的电能表内存监测方法。
上述电能表内存监测方法、装置、系统和计算机可读存储介质,本申请实施例通过上位机获取上位机上的编译器文件,该编译器文件包括上位机上的编译器的基地址和数据变量名存储文件;其中,该数据变量名存储文件包括电能表处理器的读写数据的变量名存储地址;然后,上位机根据预设的仿真内存设备的仿真内存地址、编译器的基地址以及变量名存储地址,计算电能表处理器的读写数据位于仿真内存设备上的映射地址并将该映射地址发送至电能表处理器,供电能表处理器进行数据读写,在数据读写进行预设时间段后,上位机基于上述映射地址对仿真内存设备进行监测。本申请实施例通过上位机中从编译器中获取编译器的基地址和变量名存储地址,然后根据预设的仿真内存设备的仿真内存地址、编译器的基地址以及变量名存储地址,计算得到电能表处理器的读写数据位于仿真内存设备上的映射地址,以实现仿真内存设备对电能表真实内存的模拟,那么电能表处理器与真实内存之间的数据交互就可以等同于电能表处理器与仿真内存设备之间的数据交互,电能表处理器运行程序时,能够从仿真内存设备上进行数据的读写,又由于上位机与仿真内存设备的连接关系,使得上位机能够实时从仿真内存设备中读取数据,对电能表仿真内存设备的监测,该监测方法不需要在电能表处理器中内置监测代码,也就不会占用电能表内存的存储空间,进而对电能表的正常运行没有影响。同时,测试人员能够通过上位机实时的查询仿真内存设备的运行情况,也就是说,能够实时的掌握电能表真实内存的运行状况,其监测效果较好。
附图说明
图1为一个实施例中电能表内存监测应用系统图;
图2为一个实施例中电能表内存监测方法的流程示意图;
图3为另一个实施例中电能表内存监测方法的流程示意图;
图4为数据变量名存储文件的内容片段图;
图5为另一个实施例中电能表内存监测方法的流程示意图;
图6为一个实施例中仿真内存装置的结构图;
图7为一个实施例中电能表内存监测装置的结构框图;
图8为另一个实施例中电能表内存监测装置的结构框图。
附图标记说明:
100、电能表处理器; 200、仿真内存设备; 201、时序模拟单元;
202、仿真内存单元; 300、上位机; 400、ARM;
500、电能表内存监测装置;501、获取模块; 5011、获取单元;
5012、解析单元; 502、计算模块; 503、发送模块;
504、监测模块。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的电能表内存监测方法,可以应用于如图1所示的应用系统环境中。该系统包括:电能表处理器100、仿真内存设备200以及上位机300。其中,电能表处理器100通过FSMC总线与仿真内存设备200进行通信,仿真内存设备200通过FSMC总线与上位机300进行通信。可选的,该系统还包括:ARM400,仿真内存设备200还可以是通过FSMC总线与ARM400进行通信,ARM400再与上位机300进行通信。其中,上位机300可以但不限于是各种计算机、笔记本电脑、平板电脑、独立的服务器或者是多个服务器组成的服务器集群来实现。
电能表是用来测量电能的仪表,当把电能表接入被测电路时,电能表处理器中的程序开始运行,程序在运行的过程中,会产生例如是电压、电流、功率等数据,这些运行数据由电能表处理器中的内存进行存储,电能表处理器以及上位机等设备可以从上述内存中读取到电能表的各项运行数据,该运行数据为判断电能表的运行情况提供了可靠的依据,所以该内存的运行情况对电能表的整体运行情况存在较大的影响,所以就产生了对电能表内存监测的需求。
目前对于监测电能表中内存的方法是在电能表的处理器中内置一段监测代码,定时去查询读取内存中的数据,以实现对内存的监测,但是该监测代码会占用电能表内存的存储空间,监测效果较差,所以本申请实施例提供了一种新的电能表内存监测方法,具体步骤如下:
在一个实施例中,如图2所示,图2为一种电能表内存监测方法的流程示意图,该方法应用于电能表内存监测系统,可以理解的是,该方法也可以应用于电能表内存监测系统中的上位机、电能表处理器或者仿真内存设备。下面,本申请实施例以该方法应用于电能表内存监测系统中的上位机进行举例说明。该方法包括以下步骤:
步骤S202,上位机获取上位机上的编译器文件,编译器文件包括上位机上的编译器的基地址和数据变量名存储文件;其中,数据变量名存储文件包括电能表处理器的读写数据的变量名存储地址。
具体地,上位机上有能够对电能表处理器中运行程序进行编译的编译器,上位机用于发送指令,该指令可以是用于从上位机的编译器上获取文件的指令,可以是用于指示编译器进行编译的指令,可以是用于从仿真内存设备上读取数据的指令,还可以是用于从电能表处理器中读取数据的指令等。
编译器是将一种语言(通常为高级语言)翻译为另一种语言(通常为地基语言)的程序,其将汇编或者高级计算机语言源程序作为输入,翻译成目标语言机器代码的等价程序以方便计算机能直接进行解读或者运行。编译器可以包括本地编译器和交叉编译器,本申请实施例可以是为上位机设置一本地编译器,该本地编译器用于对运行程序进行编译生成能够被上位机解读或者运行的代码,该运行程序可以是电能表处理器中全部的运行程序,还可以是电能表处理器中的部分运行程序。
上述编译器编译生成的代码中可以包括数据变量名存储文件,该数据变量名存储文件相当于电能表真实内存存储数据的索引,该数据变量名存储文件中包括变量名存储地址,上位机或者电能表处理器能够根据该变量名存储地址从电能表真实内存中读取到对应的数据。目前对电能表真实内存监测的方法是在电能表的处理器中内置一段监测代码,上位机定时去查询读取电能表真实内存中的数据,以实现对电能表真实内存的监测。但是该方法中的监测代码会占用电能表真实内存的存储空间,导致其监测效果差,所以本申请实施例将电能表真实内存指定到外部仿真内存设备上进行监测,具体实现方式为将仿真内存设备的仿真内存地址映射到电能表的真实内存上,即进行地址映射,在进行地址映射时需要获取变量名存储地址,还需要获取编译器的基地址,该编译器的基地址是编译器在编译的过程中分配的地址,上位机可以直接从编译器中读取到该编译器的基地址。地址映射的具体过程参见下述步骤S204至步骤S206。
本申请实施例通过上位机发送指令给上位机上的编译器以对电能表处理器中的运行程序进行编译,得到包含变量名存储地址的数据变量名存储文件,再从编译器中读取到编译器的基地址,为后续计算电能表处理器的读写数据位于仿真内存设备上的映射地址提供数据支持,上述数据获取的方式不需要经过复杂的过程,能有效提高对电能表真实内存进行监测的效率。
步骤S204,上位机根据预设的仿真内存设备的仿真内存地址、编译器的基地址以及变量名存储地址,计算电能表处理器的读写数据位于仿真内存设备上的映射地址。
具体地,在进行地址映射操作时,需要计算电能表处理器的读写数据位于仿真内存设备上的映射地址,即需要计算电能表真实内存位于仿真内存上的映射地址,上述步骤中已获取了编译器的基地址以及变量名存储地址。还需要获取仿真内存设备的仿真内存地址,该仿真内存地址是上位机预设的,在电能表内存监测开始时,上位机会为仿真内存设备设置仿真内存地址,然后在上位机读取了编译器的基地址以及变量名存储地址后,根据编译器的基地址、变量名存储地址以及仿真内存地址,可以计算得到电能表处理器的读写数据位于仿真内存上的映射地址。该计算可以是地址之间进行加减、地址偏移等运算,本实施例对地址之间的计算方式并不做限定,只要仿真内存上的映射地址可以模拟电能表的真实内存地址即可。
本申请实施例提供的电能表内存监测方法,该方法通过编译器的基地址、变量名存储地址以及仿真内存地址,计算得到电能表处理器的读写数据位于仿真内存上的映射地址,以将仿真内存设备的仿真内存地址映射到电能表的真实内存中,就可以实现将电能表中的真实内存指定到外部仿真内存设备上进行监测,该过程不需要占用电能表真实内存的存储空间,读写数据方便,监测效果好。
步骤S206,上位机将映射地址发送至电能表处理器,供电能表处理器进行数据读写。
具体地,上位机经过上述的计算得到了电能表的处理器的读写数据位于仿真内存设备上的映射地址,然后将该映射地址发送给电能表处理器,供电能表进行数据读写,即电能表处理器的程序在运行时从仿真内存设备上读取数据,对于运行过程中产生的数据也存储在仿真内存设备中。也就是说,本实施例将电能表处理器与电能表真实内存的数据交互转换成电能表处理器与仿真内存设备的数据交互。进一步地,上位机能够实时从仿真内存设备中读取数据,实现了上位机对仿真内存设备的的监测,又由于仿真内存设备是对电能表真实内存的仿真,所以实现了上位机对电能表真实内存的监测。
本申请实施例提供的电能表内存监测方法,该方法通过上位机将上述计算得到的映射地址发送给电能表的处理器,将电能表处理器与电能表真实内存的数据交互转换成电能表处理器与仿真内存设备的数据交互,上位机能够实时从仿真内存设备上读取数据,以对该仿真内存设备进行监测,又由于仿真内存设备是对电能表真实内存的仿真,也就是说,实现了上位机对电能表真实内存的监测。该数据读取的过程便捷,对电能表处理器的正常运行没有影响,监测效果好。
步骤S208,在数据读写进行预设时间段后,上位机基于映射地址对仿真内存设备进行监测。
具体地,在电能表处理器与仿真内存设备进行了一段时间的交互后,仿真内存设备中存储有处理器程序运行过程中产生的各种数据,该数据可以是存储在仿真内存设备的堆内存地址中,可以是存储在仿真内存设备的栈内存地址中,还可以是存储在仿真内存设备的静态存储地址中。因为栈内存地址中存储的数据是由编译器自动分配的,所以本申请实施例中的上位机可以只对堆内存地址以及静态存储地址中的数据进行监测。在进行内存监测时,上位机从仿真内存设备的映射地址中读取数据,读取数据可以是在预设时间段后实时的进行读取,在上位机在读取到数据后,可以是根据该映射地址中的数据量判断内存的使用情况,还可以是继续从电能表处理器中获取数据,将两种数据进行比对,判断数据是否存储正确等。
本申请实施例提供的电能表内存监测方法,该方法通过上位机根据上述映射地址从仿真内存设备中获取数据以对仿真内存设备进行监测,也就是说对电能表真实内存进行监测,上位机能够实时获取数据,对电能表真实内存进行实时监测,测试人员能够通过上位机实时的查询仿真内存设备的运行情况,也就是说,能够实时的掌握电能表真实内存的运行状况,其监测效果较好。
上述电能表内存监测方法、装置、系统和计算机可读存储介质,本申请实施例通过上位机获取上位机上的编译器文件,该编译器文件包括上位机上的编译器的基地址和数据变量名存储文件;其中,该数据变量名存储文件包括电能表处理器的读写数据的变量名存储地址;然后,上位机根据预设的仿真内存设备的仿真内存地址、编译器的基地址以及变量名存储地址,计算电能表处理器的读写数据位于仿真内存设备上的映射地址并将该映射地址发送至电能表处理器,供电能表处理器进行数据读写,在数据读写进行预设时间段后,上位机基于上述映射地址对仿真内存设备进行监测。本申请实施例通过上位机中从编译器中获取编译器的基地址和变量名存储地址,然后根据预设的仿真内存设备的仿真内存地址、编译器的基地址以及变量名存储地址,计算得到电能表处理器的读写数据位于仿真内存设备上的映射地址,以实现仿真内存设备对电能表真实内存的模拟,那么电能表处理器与真实内存之间的数据交互就可以等同于电能表处理器与仿真内存设备之间的数据交互,电能表处理器运行程序时,能够从仿真内存设备上进行数据的读写,又由于上位机与仿真内存设备的连接关系,使得上位机能够实时从仿真内存设备中读取数据,以进行对电能表仿真内存设备的监测,该监测方法不需要在电能表处理器中内置监测代码,也就不会占用电能表内存的存储空间,进而对电能表的正常运行没有影响。同时,测试人员能够通过上位机实时的查询仿真内存设备的运行情况,也就是说,能够实时的掌握电能表真实内存的运行状况,其监测效果较好。
在其中一个实施例中,如图3所示,图3为另一种电能表内存检测方法的流程示意图,本实施例涉及的是上位机如何计算仿真内存设备上的映射地址的一种可选的实现过程。在上述实施例的基础上,上述S204可以包括如下步骤:
步骤S2041,上位机对仿真内存地址以及变量名存储地址进行地址求和运算,得到第一地址;
步骤S2042,上位机将上述第一地址与编译器的基地址进行地址求差运算得到映射地址。
示例性地,如图4所示,图4为电能表处理器运行程序经过编译器编译后得到的数据变量名存储文件的一个片段,从该片段中能够获取变量名为gucs_MsgApplied的变量名存储地址为0x20000078,上位机从编译器中获取到的编译器的基地址例如为0x20000000,上位机设置的仿真内存地址例如为0x80000000,则根据以下公式,计算得到第一地址:
第一地址=0x80000000+0x20000078;
然后根据以下公式,计算得到映射地址:
映射地址=第一地址-0x20000000。
本申请实施例提供的电能表内存监测方法,通过简单的加减运算得到电能表处理器的读写数据位于仿真内存设备上的映射地址,使得上位机对数据的处理更加容易,结果输出更快,进而能够提高对电能表监测内存的效率。
在其中一个实施例中,如图5所示,图5为另一种电能表内存检测方法的流程示意图,本实施例涉及的是当上述数据变量名存储文件为.map文件时,上位机获取上位机上的编译器文件的一种可选的实现过程。在上述实施例的基础上,上述S202可以包括如下步骤:
步骤S2021,上位机从编译器文件中获取编译器的基地址以及.map文件;
步骤S2021,上位机对.map文件进行解析得到变量名存储地址。
具体地,上位机可以直接从编译器中读取编译器的基地址,参见图4的示例,该基地址例如可以是0x20000000。数据变量名存储文件可以是.map文件,该.map文件可以是一个具有.map格式的文件,.map文件是通过编译器对电能表处理器500中的运行程序编译后得到,该编译器例如可以是IAR软件。上位机从编译器上获取了该.map文件后,对该.map文件进行解析得到变量名存储地址,例如该变量名存储地址可以为:0x20000078、0x00028800、0x2000000b8、0x2000000e4、0x200000e0等。可选的,.map文件还包括:变量名、与该变量名对应的数据量以及存储与该变量名对应数据的文件名。也就是说,上位机在对该.map文件进行解析后,可以获得变量名、变量名存储地址、变量名对应的数据量以及存储变量名对应数据的文件名。若上位机要从电能表真实内存中读取该变量名对应的数据,那么上位机就可以先根据变量名存储地址从电能表真实内存中找到存储变量名对应数据的文件,然后从该文件中找到该变量名,就可以读取该变量名对应的数据。
本申请实施例提供的电能表内存监测方法,通过上位机给编译器发送指令,指示编译器对电能表处理器中需要编译的程序进行编译,然后上位机可以直接从编译器中获取编译器的基地址以及变量名存储地址,以为后续计算电能表处理器的读写数据位于仿真内存设备上的映射地址提供数据支持,上述数据只需要上位机从编译器中直接获取,不需要上位机经过复杂的计算、处理等过程,数据获取容易,能有效提高对电能表真实内存进行监测的效率。
在其中一个实施例中,上述上位机基于映射地址对仿真内存设备进行监测,包括:
上位机通过ARM从仿真内存设备的映射地址上读取数据以对上述仿真内存设备进行监测。
具体地,上位机与仿真内存设备进行数据交互可以是通过ARM实现,ARM能够接收上位机的指令,根据上位机的指令完成不同的操作,ARM与仿真内存设备的一个接口连接,从该接口中读取仿真内存设备中的数据,然后再将获取的数据上传给上位机。ARM还可以根据上位机的指令对仿真内存设备中的数据进行修改等操作,以进一步对该电能表真实内存的性能进行监测。其中,ARM可以通过DL/T645、modbus等协议与上位机进行通讯。
本申请实施例提供的电能表内存监测方法,通过ARM实现上位机与仿真内存设备之间的数据交互,ARM的体积小、功耗低、成本低,对于上位机下达的指令执行速度快,且寻址方式灵活简单,能够根据上位机提供的映射地址,快速的找到目标数据,能够进一步提高电能表内存监测的效率。
在其中一个实施例中,如图6所示,上述仿真内存设备通过FSMC总线与电能表处理器的FSMC接口连接。
具体地,该仿真内存设备可以是一现场可编程逻辑门阵列(Field ProgrammableGate Array,简称FPGA)仿真基板,FPGA仿真基板包括时序模拟单元和仿真内存单元,时序模拟单元用于模拟仿真内存单元的读写时序。仿真内存单元用于仿真电能表真实内存,电能表真实内存的仿真基于FPGA技术,通过在该仿真基板上内置电能表真实内存的运行程序实现,电能表处理器上设置有FSMC接口,FSMC接口用于外接各种存储芯片,该接口通过FSMC总线与FPGA仿真基板的一个端口连接,电能表处理器通过访问该端口,从仿真内存单元中读写数据。
本申请实施例提供的电能表内存监测方法,通过FSMC总线实现仿真内存设备与电能表处理器的FSMC接口连接,FSMC总线的传输速率高,使得电能表处理器通过FSMC总线从仿真内存上读写数据的速度快,所以能够提高电能表内存监测的效率。
应该理解的是,虽然图2、图3和图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图3和图5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种电能表内存监测装置500,应用于电能表内存监测系统,该系统包括电能表处理器100、仿真内存设备200和上位机300,该装置包括:获取模块501、计算模块502、发送模块503以及监测模块504,其中:
获取模块501,用于获取上位机300上的编译器文件,编译器文件包括上位机300上的编译器的基地址和数据变量名存储文件;其中,数据变量名存储文件包括电能表处理器100的读写数据的变量名存储地址;
计算模块502,用于根据预设的仿真内存设备200的仿真内存地址、编译器的基地址以及变量名存储地址,计算电能表处理器100的读写数据位于仿真内存设备200上的映射地址;
发送模块503,用于将映射地址发送至电能表处理器100,供电能表处理器500进行数据读写;
监测模块504,用于在数据读写进行预设时间段后,基于映射地址对仿真内存设备200进行监测。
在其中一个实施例中,上述计算模块502,具体用于对仿真内存地址以及变量名存储地址进行地址求和运算,得到第一地址,并将该第一地址与编译器的基地址进行地址求差运算得到映射地址。
在其中一个实施例中,如图8所示,提供了另一种电能表内存监测装置500,该获取模块501包括获取单元5011和解析单元5012,
上述获取单元5011,用于从编译器文件中获取编译器的基地址以及.map文件;
解析单元5011,用于对上述.map文件进行解析得到变量名存储地址。
在其中一个实施例中,上述.map文件还包括:变量名、与该变量名对应的数据量以及存储与该变量名对应数据的文件名。
在其中一个实施例中,上述监测模块504,具体用于通过ARM400从仿真内存设备200的映射地址上读取数据以对上述仿真内存设备200进行监测。
在其中一个实施例中,上述仿真内存设备200通过FSMC总线与电能表处理器100的FSMC接口连接。
关于电能表内存监测装置的具体限定可以参见上文中对于电能表内存监测方法的限定,在此不再赘述。上述电能表内存监测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中本申请实施例还提供了一种电能表内存监测系统,可以参见上述图1所示,该系统包括上位机300、电能表处理器100以及用于模拟电能表真实内存的仿真内存设备200,仿真内存设备200的第一端口与电能表处理器100通信连接,仿真内存设备200的第二端口与上位机300通信连接,上位机300与电能表处理器100通信连接;
上述电能表处理器100,用于对电力数据进行计量以及提供电力数据的访存接口;
上述仿真内存设备200,用于模拟电能表的真实内存;
上述上位机300,用于执行上述任一项电能表内存监测方法的步骤。
具体地,该电能表内存检测系统用于执行上述的电能表内存监测方法,其中仿真内存设备200设置有两个读写端口,第一端口与电能表处理器100通信连接,第二端口与上位机300通信连接,同时上位机300还与电能表处理器100通信连接。仿真内存设备200设置两个读写端口可以实现电能表处理器100从仿真内存设备200中读写数据以及上位机300通过ARM400从仿真内存设备200中读写数据的过程的相互独立,两边读写数据不影响。电能表处理器100访存接口可以是一个FSMC接口,电能表处理器100可以通过该FSMC接口将存储数据写入外设,也可以被外设读取数据,还可以从外设中读取数据。
可选的,如图1所示,该系统还包括ARM400,上位机300通过ARM400与仿真内存设备200的第二端口连接。
具体地,仿真内存设备200的第二端口可以是通过FSMC总线与ARM400连接,以使仿真内存设备200通过ARM400与上位机300进行通讯,使用ARM400的宜处参见上述描述,在此不做赘述。在此,需要说明的是,上位机300与仿真内存设备200还可以通过其它通讯装置或者设备进行通讯,本申请对此不作限定。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取上位机上的编译器文件,该编译器文件包括上位机上的编译器的基地址和数据变量名存储文件;其中,该数据变量名存储文件包括电能表处理器的读写数据的变量名存储地址;
根据预设的仿真内存设备的仿真内存地址、编译器的基地址以及变量名存储地址,计算电能表处理器的读写数据位于仿真内存设备上的映射地址;
将映射地址发送至电能表处理器,供电能表处理器进行数据读写;
在数据读写进行预设时间段后,基于映射地址对仿真内存设备进行监测。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对仿真内存地址以及变量名存储地址进行地址求和运算,得到第一地址,并将该第一地址与编译器的基地址进行地址求差运算得到映射地址。
在一个实施例中,上述数据变量名存储文件为.map文件,因此计算机程序被处理器执行时还实现以下步骤:从编译器文件中获取编译器的基地址以及.map文件并对.map文件进行解析得到变量名存储地址。
在一个实施例中,上述.map文件还包括:变量名、与该变量名对应的数据量以及存储与该变量名对应数据的文件名。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过ARM从仿真内存设备的映射地址上读取数据以对上述仿真内存设备进行监测。
在一个实施例中,上述仿真内存设备通过FSMC总线与电能表处理器的FSMC接口连接。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种电能表内存监测方法,其特征在于,应用于电能表内存监测系统,所述系统包括上位机、电能表处理器和用于模拟电能表真实内存的仿真内存设备,所述方法包括:
所述上位机获取所述上位机上的编译器文件,所述编译器文件包括所述上位机上的编译器的基地址和数据变量名存储文件;其中,所述数据变量名存储文件包括所述电能表处理器的读写数据的变量名存储地址;
所述上位机根据预设的所述仿真内存设备的仿真内存地址、编译器的基地址以及所述变量名存储地址,计算所述电能表处理器的读写数据位于所述仿真内存设备上的映射地址;
所述上位机将所述映射地址发送至所述电能表处理器,供所述电能表处理器进行数据读写;
在所述数据读写进行预设时间段后,所述上位机基于所述映射地址对所述仿真内存设备进行监测。
2.根据权利要求1所述的方法,其特征在于,所述上位机根据预设的所述仿真内存设备的仿真内存地址、编译器的基地址以及所述变量名存储地址,计算所述电能表处理器的读写数据位于所述仿真内存设备上的映射地址,包括:
所述上位机对所述仿真内存地址以及所述变量名存储地址进行地址求和运算,得到第一地址;
所述上位机将所述第一地址与所述编译器的基地址进行地址求差运算得到所述映射地址。
3.根据权利要求1所述的方法,其特征在于,所述数据变量名存储文件为.map文件,所述上位机获取所述上位机上的编译器文件,包括:
所述上位机从所述编译器文件中获取所述编译器的基地址以及所述.map文件;
所述上位机对所述.map文件进行解析得到所述变量名存储地址。
4.根据权利要求3所述的方法,其特征在于,所述.map文件还包括:变量名、与该变量名对应的数据量以及存储与该变量名对应数据的文件名。
5.根据权利要求1所述的方法,其特征在于,所述上位机基于所述映射地址对所述仿真内存设备进行监测,包括:
所述上位机通过微处理器ARM从所述仿真内存设备的所述映射地址上读取数据,以对所述仿真内存设备进行监测。
6.根据权利要求1所述的方法,其特征在于,所述仿真内存设备通过可变静态存储控制器FSMC总线与所述电能表处理器的FSMC接口连接。
7.一种电能表内存监测装置,其特征在于,应用于电能表内存监测系统,所述系统包括上位机、电能表处理器和用于模拟电能表真实内存的仿真内存设备,所述装置包括:
获取模块,用于获取所述上位机上的编译器文件,所述编译器文件包括所述上位机上的编译器的基地址和数据变量名存储文件;其中,所述数据变量名存储文件包括所述电能表处理器的读写数据的变量名存储地址;
计算模块,用于根据预设的所述仿真内存设备的仿真内存地址、编译器的基地址以及所述变量名存储地址,计算所述电能表处理器的读写数据位于所述仿真内存设备上的映射地址;
发送模块,用于将所述映射地址发送至所述电能表处理器,供所述电能表处理器进行数据读写;
监测模块,用于在所述数据读写进行预设时间段后,基于所述映射地址对所述仿真内存设备进行监测。
8.一种电能表内存监测系统,其特征在于,所述系统包括:上位机、电能表处理器和仿真内存设备,所述仿真内存设备的第一端口与所述电能表处理器通信连接,所述仿真内存设备的第二端口与所述上位机通信连接,所述上位机与所述电能表处理器通信连接;
所述电能表处理器,用于对电力数据进行计量以及提供所述电力数据的访存接口;
所述仿真内存设备,用于模拟电能表的真实内存;
所述上位机,用于执行上述权利要求1-6任一项所述电能表内存监测方法的步骤。
9.根据权利要求8所述的系统,其特征在于,所述系统还包括ARM,所述上位机通过所述ARM与所述仿真内存设备的第二端口通信连接。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的电能表内存监测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110190962.8A CN112559298B (zh) | 2021-02-20 | 2021-02-20 | 电能表的内存监测方法、装置、系统和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110190962.8A CN112559298B (zh) | 2021-02-20 | 2021-02-20 | 电能表的内存监测方法、装置、系统和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112559298A true CN112559298A (zh) | 2021-03-26 |
CN112559298B CN112559298B (zh) | 2021-07-06 |
Family
ID=75034384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110190962.8A Active CN112559298B (zh) | 2021-02-20 | 2021-02-20 | 电能表的内存监测方法、装置、系统和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559298B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120072792A1 (en) * | 2010-09-17 | 2012-03-22 | Kabushiki Kaisha Toshiba | Memory tester and compiler which matches a test program |
CN103067100A (zh) * | 2012-12-19 | 2013-04-24 | 云南电力试验研究院(集团)有限公司电力研究院 | 智能电能表通信接收性能测试系统及方法 |
CN108241559A (zh) * | 2016-12-26 | 2018-07-03 | 迈普通信技术股份有限公司 | 内存测试方法及装置 |
CN110490229A (zh) * | 2019-07-16 | 2019-11-22 | 昆明理工大学 | 一种基于spark和聚类算法的电能表检定误差诊断方法 |
CN111045880A (zh) * | 2019-12-17 | 2020-04-21 | 湖南长城银河科技有限公司 | 芯片测试方法、验证系统及存储介质 |
CN111581084A (zh) * | 2020-04-28 | 2020-08-25 | 南方电网数字电网研究院有限公司 | 基于智能电表操作系统的进程测试方法和装置 |
CN112131098A (zh) * | 2020-08-07 | 2020-12-25 | 国家电网有限公司 | 一种用于对电能表软件进行测试的方法及系统 |
CN112363884A (zh) * | 2020-12-08 | 2021-02-12 | 吉林大学 | 一种国产操作系统内存性能测试方法及系统 |
-
2021
- 2021-02-20 CN CN202110190962.8A patent/CN112559298B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120072792A1 (en) * | 2010-09-17 | 2012-03-22 | Kabushiki Kaisha Toshiba | Memory tester and compiler which matches a test program |
CN103067100A (zh) * | 2012-12-19 | 2013-04-24 | 云南电力试验研究院(集团)有限公司电力研究院 | 智能电能表通信接收性能测试系统及方法 |
CN108241559A (zh) * | 2016-12-26 | 2018-07-03 | 迈普通信技术股份有限公司 | 内存测试方法及装置 |
CN110490229A (zh) * | 2019-07-16 | 2019-11-22 | 昆明理工大学 | 一种基于spark和聚类算法的电能表检定误差诊断方法 |
CN111045880A (zh) * | 2019-12-17 | 2020-04-21 | 湖南长城银河科技有限公司 | 芯片测试方法、验证系统及存储介质 |
CN111581084A (zh) * | 2020-04-28 | 2020-08-25 | 南方电网数字电网研究院有限公司 | 基于智能电表操作系统的进程测试方法和装置 |
CN112131098A (zh) * | 2020-08-07 | 2020-12-25 | 国家电网有限公司 | 一种用于对电能表软件进行测试的方法及系统 |
CN112363884A (zh) * | 2020-12-08 | 2021-02-12 | 吉林大学 | 一种国产操作系统内存性能测试方法及系统 |
Non-Patent Citations (1)
Title |
---|
张威等: "基于指针映射集的动态内存故障测试方法研究", 《计算机学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112559298B (zh) | 2021-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10310822B1 (en) | Method and system for simulating a control program | |
CN103136107A (zh) | 一种嵌入式程序动态分配内存的变量调试方法 | |
CN105183592B (zh) | 用于支持性能分析的方法和装置 | |
US20130024646A1 (en) | Method and Simulator for Simulating Multiprocessor Architecture Remote Memory Access | |
CN104407980A (zh) | 移动应用自动化测试装置和方法 | |
US8997066B2 (en) | Emulating pointers | |
CN103235756A (zh) | 一种面向嵌入式系统分区应用程序软件的仿真测试方法 | |
CN103995500A (zh) | 控制器、信息处理装置及程序 | |
CN112068852B (zh) | 基于国产服务器的开源软件安装方法、系统及设备和介质 | |
WO2013002979A2 (en) | Debugging in a multiple address space environment | |
CN107533473B (zh) | 用于仿真的高效波形生成 | |
EP2706459A1 (en) | Apparatus and method for validating a compiler for a reconfigurable processor | |
CN109086176A (zh) | 一种基于fio的ssd稳态测试方法、装置、设备及存储介质 | |
CN105204986A (zh) | 产品的自动化测试方法、服务器及移动设备 | |
US20100280817A1 (en) | Direct pointer access and xip redirector for emulation of memory-mapped devices | |
CN104809063A (zh) | 分布式系统的测试方法及装置 | |
CN107515803A (zh) | 一种存储性能测试方法和装置 | |
US9703573B1 (en) | Interposer for dynamic mapping of API calls | |
CN111459814A (zh) | 自动化测试用例生成方法、装置及电子设备 | |
CN112559298B (zh) | 电能表的内存监测方法、装置、系统和存储介质 | |
CN103560934A (zh) | 一种电力猫生产测试方法及装置 | |
CN110737509B (zh) | 热迁移处理方法及装置、存储介质和电子设备 | |
CN109344083B (zh) | 一种程序调试方法、装置、设备及可读存储介质 | |
Engblom et al. | Testing Embedded Software using Simulated Hardware | |
CN111258838B (zh) | 验证组件生成方法、装置、存储介质及验证平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230410 Address after: Full Floor 14, Unit 3, Building 2, No. 11, Middle Spectra Road, Huangpu District, Guangzhou, Guangdong 510700 Patentee after: China Southern Power Grid Digital Grid Technology (Guangdong) Co.,Ltd. Address before: Room 86, room 406, No.1, Yichuang street, Zhongxin Guangzhou Knowledge City, Huangpu District, Guangzhou City, Guangdong Province Patentee before: Southern Power Grid Digital Grid Research Institute Co.,Ltd. |