CN113468008B - 安全控制器的检测方法、装置、设备及存储介质 - Google Patents

安全控制器的检测方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113468008B
CN113468008B CN202110791905.5A CN202110791905A CN113468008B CN 113468008 B CN113468008 B CN 113468008B CN 202110791905 A CN202110791905 A CN 202110791905A CN 113468008 B CN113468008 B CN 113468008B
Authority
CN
China
Prior art keywords
data
block
blocks
detection
control task
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.)
Active
Application number
CN202110791905.5A
Other languages
English (en)
Other versions
CN113468008A (zh
Inventor
姚郎贤
庄飞飞
王伦
刘主福
张俊鹏
李松卫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Yuejiang Technology Co Ltd
Original Assignee
Shenzhen Yuejiang Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Yuejiang Technology Co Ltd filed Critical Shenzhen Yuejiang Technology Co Ltd
Priority to CN202110791905.5A priority Critical patent/CN113468008B/zh
Publication of CN113468008A publication Critical patent/CN113468008A/zh
Application granted granted Critical
Publication of CN113468008B publication Critical patent/CN113468008B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请涉及一种安全控制器的检测方法、装置、设备及存储介质,该方法包括获取预先对存储单元的空间划分得到的至少两个分块;从至少两个分块中,确定当前待检测的目标分块;判断是否获取对设备的控制任务;若获取控制任务,控制设备执行与控制任务对应的控制操作,并在控制任务执行完毕后,执行对目标分块的检测。通过分块划分操作对存储单元分多次进行检测,并在每次检测目标分块前,确定是否存在控制任务,并当存在控制任务时,中断对目标分块的检测,而是控制设备执行与控制任务对应的控制操作,以此避免了一次性对存储单元进行检测时,不执行对设备的控制任务,导致的设备的运行存在安全隐患的问题。

Description

安全控制器的检测方法、装置、设备及存储介质
技术领域
本申请涉及工业机器人领域,尤其涉及一种安全控制器的检测方法、装置、设备及存储介质。
背景技术
随着机器人技术的不断发展,机器人广泛应用于工业领域的焊接、装配和搬运等各个方面。机器人为能够自主工作的智能机器,具体工作时,其能够与安全控制器进行通信,接受安全控制器的控制指令,从而响应于控制指令执行相应地动作。
为确保对机器人的安全控制,需要对安全控制器中的MCU(MicrocontrollerUnit,微控制单元)自检。相关技术中安全控制器在实现MCU自检时,安全控制器的线程一次性完成MCU所包含的FLASH(非易失性性存储单元)和RAM(Random Access Memory,随机存取存储器)等所有存储单元的检测。
然而,一次性对MCU所包含的所有存储单元进行检测,会使得MCU自检占用较长的时间,影响安全控制器对机器人的控制,存在安全隐患。
发明内容
本申请提供了一种安全控制器的检测方法、装置、设备及存储介质,用以解决相关技术中一次性对MCU所包含的所有存储单元进行检测,会使得MCU自检占用较长的时间,影响安全控制器对机器人的控制,存在安全隐患。
第一方面.提供一种安全控制器的检测方法,所述方法包括:
获取预先对存储单元的空间划分得到的至少两个分块;
从所述至少两个分块中,确定当前待检测的目标分块;
判断是否获取对设备的控制任务;
若获取所述控制任务,控制所述设备执行与所述控制任务对应的控制操作,并在所述控制任务执行完毕后,执行对所述目标分块的检测。
可选地,控制所述设备执行与所述控制任务对应的控制操作之前,还包括:
分别确定所述目标分块的优先级和所述控制任务的优先级;
确定所述目标分块的优先级低于所述控制任务的优先级。
可选地,所述存储单元包括非易失性存储单元;
执行对所述目标分块的检测,包括:
将所述非易失性存储单元划分为第一空间和第二空间,所述第一空间包括所述至少两个分块中的M个分块,所述第二空间包括所述至少两个分块中除所述M个分块外的分块;
对所述第一空间中存储的数据进行循环冗余校验运算,得到与所述第一空间对应的循环冗余校验运算结果;
将与所述第一空间对应的循环冗余校验运算结果存储至所述第二空间中;
对于所述M个分块中的第1个分块,对所述第1个分块中的数据进行循环冗余校验运算,得到与所述第1个分块对应的循环冗余校验运算结果,所述第1个分块为按照地址对所述M个分块排序后的首个分块;
执行循环冗余校验运算结果的传递过程:
对于所述M个分块中的第i个分块,确定与所述第i个分块相邻的第i-1个分块,i为大于1的正整数;
获取与所述第i-1个分块对应的循环冗余校验运算结果;
对与所述第i-1个分块对应的循环冗余校验运算结果和所述第i个分块中存储的数据进行循环冗余校验运算,得到与所述第i个分块对应的循环冗余校验运算结果;
判断所述第i个分块是否为按照所述地址对所述M个分块排序后的最后一个分块;
若是最后一个分块,判断与所述第i个分块对应的循环冗余校验运算结果与所述第一空间对应的循环冗余校验运算结果是否相同;
若相同,确定通过对所述非易失性存储单元的完整性校验;
若不是最后一个分块,更新i等于i+1后,返回执行循环冗余校验运算结果的传递过程。
可选地,所述存储单元包括随机存取存储单元;
执行对所述目标分块的检测,包括:
读取所述目标分块中的第一数据;
将所述第一数据写入预设的存储地址;
向所述目标分块中写入第二数据,以由所述第二数据覆盖所述第一数据;
读取所述目标分块中的当前数据;
判断所述当前数据是否为所述第二数据;
若所述当前数据为所述第二数据,从所述预设的存储地址中读取所述第一数据,并将所述第一数据写入所述目标分块,以由所述第一数据覆盖所述第二数据。
可选地,判断是否获取对设备的控制任务,包括:
判断是否获取与所述控制任务对应的任务中断信号;
确定接收到所述任务中断信号时,所述控制器接收到所述控制任务。
可选地,从所述至少两个分块中,确定当前待检测的目标分块,包括:
获取所述至少两个分块中各分块各自的检测标识,所述检测标识用于指示对应的分块已完成检测或未进行检测;
基于所述检测标识,从所述至少两个分块中确定未检测的剩余分块;
获取所述至少两个分块的检测顺序以及最近一次完成检测的分块;
基于所述检测顺序和所述最近一次完成检测的分块,从所述剩余分块中确定所述目标分块。
可选地,所述至少两个分块中各分块所占用的存储空间均小于预设的存储空间阈值。
第二方面.提供一种安全控制器的检测装置,包括:
获取模块,用于获取预先对存储单元的空间划分得到的至少两个分块;
确定模块,用于从所述至少两个分块中,确定当前待检测的目标分块;
判断模块,用于判断是否获取对设备的控制任务;
执行模块,用于在所述判断模块确定获取到所述控制任务时,控制所述设备执行与所述控制任务对应的控制操作,并在所述控制任务执行完毕后,执行对所述目标分块的检测。
第三方面.提供一种电子设备,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的安全控制器的检测方法。
第四方面.提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的安全控制器的检测方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的技术方案中,获取预先对存储单元的空间划分得到的至少两个分块;从至少两个分块中,确定当前待检测的目标分块;判断是否获取对设备的控制任务;若获取控制任务,控制设备执行与控制任务对应的控制操作,并在控制任务执行完毕后,执行对目标分块的检测。通过分块划分操作对存储单元分多次进行检测,并在每次检测目标分块前,确定是否存在控制任务,并当存在控制任务时,中断对目标分块的检测,而是控制设备执行与控制任务对应的控制操作,以此避免了一次性对存储单元进行检测时,不执行对设备的控制任务,导致的设备的运行存在安全隐患的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中安全控制器的检测方法的一种流程示意图;
图2为本申请实施例中安全控制器的检测方法的又一种流程示意图;
图3为本申请实施例中安全控制器的检测方法的又一种流程示意图;
图4为本申请实施例中安全控制器的检测方法的又一种流程示意图;
图5为本申请实施例中安全控制器的检测方法的又一种流程示意图;
图6为本申请实施例中安全控制器的检测装置的结构示意图;
图7为本申请实施例中电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的相关术语和概念进行介绍。
安全控制器,用于获取机器人伺服器所采集到的编码器数据,如获取机器人关节上的传感器数据,起到对机器人的安全监控功能。
伺服器,为机器人运动控制的执行单元,通常包括伺服电机和驱动器。
FLASH,非易失性存储单元,用于在没有电流供应地条件下长久保存数据。
RAM,随机存取存储器,通常作为操作***或其他正在运行中的程序的临时数据存储介质,一旦断电所存储的数据将随之丢失。
相关技术中,一次性对MCU所包含的所有存储单元进行检测,会使得MCU自检占用较长的时间,影响安全控制器对机器人的控制,存在安全隐患。
具体地,安全控制器在MCU自检过程中,若还没有完成检测,则不会去执行对机器人的控制监控任务,这样安全控制器就不能获取机器人的监控数据,也就不会基于监控数据去控制机器人,如不会控制机器人的运行速度、方向等,导致机器人就有可能超出预设作业范围,碰到附件的人或物体,存在安全隐患。
为了解决相关技术中一次性完成MCU中所有存储单元的检测所带来的影响安全控制器对机器人的控制的问题,本申请实施例提供一种安全控制器的检测方法;
如图1所示,该方法可以包括以下步骤:
S101、获取预先对存储单元的空间划分得到的至少两个分块。
本实施例中的存储单元可以为一个存储器,如FLASH或RAM,此时对存储单元进行划分指的是将该存储单元的存储空间划分为至少两个分块,每个分块对应存储空间中的一段连续空间地址。
当然,存储单元可以包括多个独立的子存储单元,每个子存储单元为一个存储器。此时当对存储单元的空间进行划分时,可以是对每个子存储单元的空间进行划分,如将每个子存储单元中的存储空间均划分为至少两个分块;也可以对一部分子存储单元进行划分,如仅对其中的一个子存储单元进行划分,或对至少两个子存储单元进行划分。
应理解,当仅对一个子存储单元进行划分时,划分得到的至少两个分块属于同一个子存储单元;而当对至少两个子存储单元进行划分时,每个子存储单元所划分出的分块的数量可以相同也可以不同,且在不同的子存储单元中的分块所占用的存储空间的大小可以相同也可以不同,本实施例对此不作具体限定。
本实施例中,为了在对分块检测时,将对设备的影响降到最小,需要尽量缩短分块检测的时间,因此设置至少两个分块中各分块所占用的存储空间均不大于预设的存储空间阈值。其中,存储空间阈值可以人为基于经验设置。
应用中,存储空间阈值可以按照字节来设定,如将存储空间阈值设为1KB,此时可以设置各分块所占用的存储空间均为1KB。
S102、从至少两个分块中,确定当前待检测的目标分块。
本实施例中可以为至少两个分块中的每个分块添加用于指示分块已完成检测或未进行检测的检测标识,因此当确定目标分块时,可以基于检测标识从至少两个分块中确定目标分块。
具体地,基于检测标识从指示两个分块中确定剩余分块,从剩余分块中确定目标分块。
应用中,当从剩余分块中确定目标分块时,可以随机从剩余分块中选择一个分块作为目标分块,当然为了节省时间,提高效率,还可以基于至少两个分块的检测顺序以及最近一次完成检测的分块确定目标分块,具体地,如图2所示,S102可以包括以下步骤:
S201、获取至少两个分块中各分块各自的检测标识,检测标识用于指示对应的分块已完成检测或未进行检测;
S202、基于检测标识,从至少两个分块中确定未检测的剩余分块;
S203、获取至少两个分块的检测顺序以及最近一次完成检测的分块;
S204、基于检测顺序和最近一次完成检测的分块,从剩余分块中确定目标分块。
本实施例中,可以依据存储地址的大小确定至少两个分块的检测顺序,具体地确定存储地址由小到大的顺序为检测顺序,此时目标分块对应的最小存储地址不小于最近一次完成检测的分块所对应的最大的存储地址;或确定存储地址由大到小的顺序为检测顺序,此时目标分块对应的最大存储地址不大于最近一次完成检测的分块所对应的最小存储地址。
应理解,由于每个分块对应存储空间中的一段连续空间地址,所以分块对应的最小存储地址为该段连续空间地址中的最小值,分块对应的最大存储地址为该段连续空间地址中的最大值。
在本申请另一实施例中,当存储单元包括多个存储器时,当至少两个分块可以分属于不同的存储器时,在对一个存储器中的分块设置检测标识时,可以结合存储器的属性设置分块的检测标识,从而使得不同的存储器中的分块,即使检测标识都用于指示已完成检测,但是检测标识本身却是不同的,这样,当确定目标分块时,可以先确定最近一次完成检测的分块所属的存储器,优先从该存储器所对应的剩余分块中确定目标分块,以此提高效率,节省时间。
应理解,当最近一次完成检测的分块所属的存储器中没有剩余分块时,即按照检测顺序来说,最近一次完成检测的分块为该存储器中的最后一个分块,此时可以从其它具有未进行检测的分块中按照检测顺序选择目标分块。
S103、判断是否获取对设备的控制任务,若是执行S104,否则执行对目标分块的检测。
本实施例中,控制任务包括但不限于对设备的监测任务。
应理解,对设备的控制任务可以由用户指示,如用户通过用户终端下发控制任务;或对设备的控制任务也可以由定时器定时触发,例如设置在预设时刻自动发送该控制任务。以上两种获取控制任务的方式仅是举例,本实施例对此不作具体限定。
应用中,发起控制任务的主体发起控制任务对应的请求事件时,安全控制器会收到与控制任务对应的任务中断信号,因此可以通过判断是否接收到任务中断信号,来确定是否接收到控制任务,具体地,在接收到任务中断信号时,确定接收到控制任务。
本实施例中的设备包括但不限于机器人,该机器人包括伺服器,安全控制器能够向伺服器传输控制参数,以使得伺服器依据控制参数控制机器人执行相应地动作,另外安全控制器还能获取伺服器所采集的编码器数据,从而实现对机器人的安全监控。
S104、控制该设备执行与控制任务对应的控制操作,并在控制任务执行完毕后,执行对目标分块的检测。
控制设备执行与控制任务对应的控制操作时,具体地,向设备发送与控制任务对应的控制指令,以使得接收该控制指令的设备能够响应于控制指令执行相应地动作。
应理解,当设备响应于控制指令执行相应地动作后,会返回执行指示结束的信息,此时执行对目标分块的检测。
应用中,在执行对目标分块的检测后,还可以更新目标分块的检测标识,将目标分块的检测标识由指示未进行检测的标识更新为已完成检测的标识。
应用中,在执行对目标分块的检测后,还可以将目标分块的检测结果与目标分块对应保存,以便查看。
本申请实施例提供的技术方案中,获取预先对存储单元的空间划分得到的至少两个分块;从至少两个分块中,确定当前待检测的目标分块;判断是否获取对设备的控制任务;若获取控制任务,控制设备执行与控制任务对应的控制操作,并在控制任务执行完毕后,执行对目标分块的检测。本实施例,通过分块划分操作对存储单元分多次进行检测,并在每次检测目标分块前,确定是否存在控制任务,并当存在控制任务时,中断对目标分块的检测,而是控制设备执行与控制任务对应的控制操作,以此避免了一次性对存储单元进行检测时,不执行对设备的控制任务,导致的设备的运行存在安全隐患的问题。
应用中,由于存储器中的某些数据比较重要,能够影响设备的安全运行,因此对于这些数据的存储空间要及时检测,对此在本申请的另一实施例中预先设置各个分块的优先级以及控制任务的优先级,当获取到控制任务后,确定目标分块的优先级和控制任务的优先级,并当目标分块的优先级不低于控制任务的优先级时,执行对目标分块的检测;否则,控制设备执行与控制任务对应的控制操作,并在控制任务执行完毕后,再执行对目标分块的检测。
以下分别以存储单元为FLASH和RAM为例,阐述执行对目标分块的检测的过程:
当存储单元为FLASH时,对存储单元执行完整性校验:
具体地,如图3所示,执行对目标分块的检测可以包括以下步骤:
S301、将FLASH划分为第一空间和第二空间,第一空间包括至少两个分块中的M个分块,第二空间包括至少两个分块中除M个分块外的分块;
本实施例中,第一空间存储的为待校验的原始数据,第二空间存储的校验运算结果,所以可以设置第一空间的空间大小大于第二空间的空间大小,此时第一空间中的分块的数量大于第二空间中的分块的数量。
S302、对第一空间中存储的数据进行循环冗余校验(CRC,Cyclic RedundancyCheck)运算,得到与第一空间对应的CRC运算结果;
应理解,此处第一空间中存储的数据指的是第一空间中存储的所有的数据。
S303、将与第一空间对应的CRC运算结果存储至第二空间中;
S304、对于M个分块中的第1个分块,对第1个分块中的数据进行CRC运算,得到与第1个分块对应的CRC运算结果,第1个分块为按照地址对M个分块排序后的首个分块;
S305、执行CRC运算结果的传递过程:
对于M个分块中的第i个分块,确定与第i个分块相邻的第i-1个分块,i为大于1的正整数;
获取与第i-1个分块对应的CRC运算结果;
对与第i-1个分块对应的CRC运算结果和第i个分块中存储的数据进行CRC运算,得到与第i个分块对应的CRC运算结果;
判断第i个分块是否为按照地址对M个分块排序后的最后一个分块;
若是最后一个分块,判断与第i个分块对应的CRC运算结果与第一空间对应的CRC运算结果是否相同;
若相同,确定通过对FLASH的完整性校验;
若不是最后一个分块,更新i等于i+1后,返回执行S305。
当存储单元为RAM时,对存储单元执行读/写校验:
具体地,如图4所示,执行对目标分块的检测可以包括以下步骤:
S401、读取目标分块中的第一数据;
S402、将第一数据写入预设的存储地址;
应用中,为了保证数据的安全性,在将第一数据写入预设的存储地址前,该预设的存储地址中没有存储数据。
S403、向目标分块中写入第二数据,以由第二数据覆盖第一数据;
S404、读取目标分块中的当前数据;
S405、判断当前数据是否为第二数据,若是执行S406;
S406、从预设的存储地址中读取第一数据,并将第一数据写入目标分块,以由第一数据覆盖第二数据。
其中,当当前数据不为第二数据时,说明目标分块的读/写验证未能通过,此时可以输出报警信息,以实现安全报警,如提示用户哪一个存储单元出现问题等。
应用中,通过向目标分块写入第二数据以及验证从目标分块读取的当前数据为第二数据,验证了目标分块能够正常读/写。
以下举例说明对存储单元的读/写校验:
设定目标分块中的第一数据为101,设定向目标分块中写入的数据为111,那么目标分块中的数据由101变为111,当从目标分块中读取的当前数据为111时,确定目标分块能够正常读/写;为了保证目标分块中原始数据(即第一数据)的安全,在确定目标分块能够正常读/写后,从预设的存储地址中读取101,并将101写入目标分块,以恢复目标分块中的原始数据。
以下以MCU中的存储单元为例,描述本申请的实现,需要说明的是此处的MCU位于安全控制器中,具体内容如下所示:
安全控制器的线程按照最小检测块,对MUC所包含的存储单元进行分块,即将存储单元按照最小检测块的大小分区域,得到存储单元对应的各个分块。其中,最小检测块可以按照字节KB来确定,如在最小检测块是1KB字节对应得存储区间,则可以将存储单元的存储地址从0-1KB对应的存储空间划分为存储单元的第一分块,将存储地址从1-2K对应的存储空间划分为存储单元的第二分块,如此类推,从而可以划分出存储单元对应的各个分块。其中,存储单元可以包含有FLASH、SRAM等存储设备。
随后,安全控制器的线程在***空闲时,可按照划分后的各个分块执行MCU自检任务,产生存储单元的各个分块对应的检测结果并记录,进而可以基于各个分块对应的检测结果生成存储单元的检测结果。
具体而言,在检测过程中,在检测存储单元的每一个分块之前,安全控制器的线程会先判断是否有接收到控制任务,若接收到控制任务,则需要判断控制任务的优先级是否高于MCU自检任务的优先级,若控制任务的优先级高于MCU自检任务的优先级,则会中断MCU自检任务,并将当前检测到的分块和对应的分块检测结果记录下来,随后执行优先级更高的控制任务(如监控任务),以在控制任务执行完,即***空闲时,再依据之前记录的分块继续执行MCU自检任务,即检测剩余还没有检测到的分块。其中,确定是否接收到其他任务可以通过是否接收到任务中断信号的方式来确定。在实际处理中,可以将自检任务的优先等级设置为最低等级。
例如,在检测存储单元的每一个分块之前,安全控制器的线程会先判断是否有获取到监控任务(监控任务是指监控机器人的任务,且监控任务的优先等级高于MCU自检任务的等级),若获取到监控任务,则会中断MCU自检任务,并将当前检测到的分块和对应的分块检测结果记录下来,随后在监控任执行完后,确定***空闲,再依据之前记录的分块继续执行MCU自检任务,即检测剩余还没有检测到的分块。其中,机器人的监控任务可以用于监测机器人在运行场景中的各个参数,如实时监测机器人的速度、力矩、姿态等一系列物理量参数,确保机器人的工作正常。
在执行MCU自检任务过程中,若检测到存储单元的某一个分块不能通过自检,则安全控制器的线程可以产生相应的报警信息,以实现安全报警,如提示用户哪一个存储单元出现问题等。
例如,针对FLASH,需要实现FLASH完整性检测,以避免FLASH存储的数据出现数据错乱的情形。具体的,需要对FLASH对应的分块进行完整性自检,若自检不通过,则可以确定该FLASH损坏,会出现FLASH存储数据错乱的问题,进而安全控制器基于该FLASH存储的数据无法实现对机器人的安全控制。
又如,针对MCU中所包含的RAM,需要对该RAM进行读写能力校验,以确保能够安全控制器能够通过该RAM实现数据的正确读写。具体的,需要对RAM对应的分块进行读写能力校验,若读写能力校验不通过,则可以确定该RAM损坏,进而安全控制器基于该RAM存储的数据无法实现对机器人的安全控制。
请参阅图5,图5为本申请实施例提供的一种安全控制器的检测方法的又一种流程示意图,该方法的具体实施可参见上述实施例的描述,重复之处不再赘述,该方法可以包括以下步骤:
S501、获取预先对存储单元的空间划分得到的至少两个分块;
S502、获取至少两个分块中各分块各自的检测标识,检测标识用于指示对应的分块已完成检测或未进行检测;
S503、基于检测标识,从至少两个分块中确定未检测的剩余分块;
S504、获取至少两个分块的检测顺序以及最近一次完成检测的分块;
S505、基于检测顺序和最近一次完成检测的分块,从剩余分块中确定目标分块;
S506、判断是否获取与控制任务对应的任务中断信号,若是,执行S507,否则执行对目标分块的检测;
S507、分别确定目标分块的优先级和控制任务的优先级;
S508、判断目标分块的优先级是否低于控制任务的优先级,若是执行S509,否则执行对目标分块的检测;
S509、控制该设备执行与控制任务对应的控制操作,并在控制任务执行完毕后,执行对目标分块的检测。
基于同一构思,本申请实施例中提供了一种安全控制器的检测装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图6所示,该装置主要包括:
获取模块601,用于获取预先对存储单元的空间划分得到的至少两个分块;
确定模块602,用于从至少两个分块中,确定当前待检测的目标分块;
判断模块603,用于判断是否获取对设备的控制任务;
执行模块604,用于在判断模块确定获取到控制任务时,控制设备执行与控制任务对应的控制操作,并在控制任务执行完毕后,执行对目标分块的检测。
可选地,该装置还用于:
控制设备执行与控制任务对应的控制操作之前分别确定目标分块的优先级和控制任务的优先级;
确定目标分块的优先级低于控制任务的优先级。
可选地,存储单元包括非易失性存储单元;
执行模块604用于:
将非易失性存储单元划分为第一空间和第二空间,第一空间包括至少两个分块中的M个分块,第二空间包括至少两个分块中除M个分块外的分块;
对第一空间中存储的数据进行CRC运算,得到与第一空间对应的CRC运算结果;
将与第一空间对应的CRC运算结果存储至第二空间中;
对于M个分块中的第1个分块,对第1个分块中的数据进行CRC运算,得到与第1个分块对应的CRC运算结果,第1个分块为按照地址对M个分块排序后的首个分块;
执行CRC运算结果的传递过程:
对于M个分块中的第i个分块,确定与第i个分块相邻的第i-1个分块,i为大于1的正整数;
获取与第i-1个分块对应的CRC运算结果;
对与第i-1个分块对应的CRC运算结果和第i个分块中存储的数据进行CRC运算,得到与第i个分块对应的CRC运算结果;
判断第i个分块是否为按照地址对M个分块排序后的最后一个分块;
若是最后一个分块,判断与第i个分块对应的CRC运算结果与第一空间对应的CRC运算结果是否相同;
若相同,确定通过对非易失性存储单元的完整性校验;
若不是最后一个分块,更新i等于i+1后,返回执行CRC运算结果的传递过程。
可选地,存储单元包括随机存取存储单元;
执行模块604用于:
读取目标分块中的第一数据;
将第一数据写入预设的存储地址;
向目标分块中写入第二数据,以由第二数据覆盖第一数据;
读取目标分块中的当前数据;
判断当前数据是否为第二数据;
若当前数据为第二数据,从预设的存储地址中读取第一数据,并将第一数据写入目标分块,以由第一数据覆盖第二数据。
可选地,判断模块603用于:
判断是否获取与控制任务对应的任务中断信号;
确定接收到任务中断信号时,控制器接收到控制任务。
可选地,确定模块602用于:
获取至少两个分块中各分块各自的检测标识,检测标识用于指示对应的分块已完成检测或未进行检测;
基于检测标识,从至少两个分块中确定未检测的剩余分块;
获取至少两个分块的检测顺序以及最近一次完成检测的分块;
基于检测顺序和最近一次完成检测的分块,从剩余分块中确定目标分块。
可选地,至少两个分块中各分块所占用的存储空间均小于预设的存储空间阈值。
基于同一构思,本申请实施例中还提供了一种电子设备,如图7所示,该电子设备主要包括:处理器701、存储器702和通信总线703,其中,处理器701和存储器702通过通信总线703完成相互间的通信。其中,存储器702中存储有可被处理器701执行的程序,处理器701执行存储器702中存储的程序,实现如下步骤:
获取预先对存储单元的空间划分得到的至少两个分块;
从至少两个分块中,确定当前待检测的目标分块;
判断是否获取对设备的控制任务;
若获取控制任务,控制设备执行与控制任务对应的控制操作,并在控制任务执行完毕后,执行对目标分块的检测。
上述电子设备中提到的通信总线703可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线703可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器702可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(Non-Volatile Memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器701的存储装置。
上述的处理器701可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的安全控制器的检测方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种安全控制器的检测方法,其特征在于,所述方法包括:
获取预先对存储单元的空间划分得到的至少两个分块;
从所述至少两个分块中,确定当前待检测的目标分块;
判断是否获取对设备的控制任务;
若获取所述控制任务,控制所述设备执行与所述控制任务对应的控制操作,并在所述控制任务执行完毕后,执行对所述目标分块的检测,包括:读取所述目标分块中的第一数据;将所述第一数据写入预设的存储地址;向所述目标分块中写入第二数据,以由所述第二数据覆盖所述第一数据;读取所述目标分块中的当前数据;判断所述当前数据是否为所述第二数据;若所述当前数据为所述第二数据,从所述预设的存储地址中读取所述第一数据,并将所述第一数据写入所述目标分块,以由所述第一数据覆盖所述第二数据。
2.根据权利要求1所述的方法,其特征在于,控制所述设备执行与所述控制任务对应的控制操作之前,还包括:
分别确定所述目标分块的优先级和所述控制任务的优先级;
确定所述目标分块的优先级低于所述控制任务的优先级。
3.根据权利要求1所述的方法,其特征在于,所述存储单元包括非易失性存储单元;
执行对所述目标分块的检测,包括:
将所述非易失性存储单元划分为第一空间和第二空间,所述第一空间包括所述至少两个分块中的M个分块,所述第二空间包括所述至少两个分块中除所述M个分块外的分块;
对所述第一空间中存储的数据进行循环冗余校验运算,得到与所述第一空间对应的循环冗余校验运算结果;
将与所述第一空间对应的循环冗余校验运算结果存储至所述第二空间中;
对于所述M个分块中的第1个分块,对所述第1个分块中的数据进行循环冗余校验运算,得到与所述第1个分块对应的循环冗余校验运算结果,所述第1个分块为按照地址对所述M个分块排序后的首个分块;
执行循环冗余校验运算结果的传递过程:
对于所述M个分块中的第i个分块,确定与所述第i个分块相邻的第i-1个分块,i为大于1的正整数;
获取与所述第i-1个分块对应的循环冗余校验运算结果;
对与所述第i-1个分块对应的循环冗余校验运算结果和所述第i个分块中存储的数据进行循环冗余校验运算,得到与所述第i个分块对应的循环冗余校验运算结果;
判断所述第i个分块是否为按照所述地址对所述M个分块排序后的最后一个分块;
若是最后一个分块,判断与所述第i个分块对应的循环冗余校验运算结果与所述第一空间对应的循环冗余校验运算结果是否相同;
若相同,确定通过对所述非易失性存储单元的完整性校验;
若不是最后一个分块,更新i等于i+1后,返回执行循环冗余校验运算结果的传递过程。
4.根据权利要求1所述的方法,其特征在于,所述存储单元包括随机存取存储单元。
5.根据权利要求1所述的方法,其特征在于,判断是否获取对设备的控制任务,包括:
判断是否获取与所述控制任务对应的任务中断信号;
确定接收到所述任务中断信号时,所述控制器接收到所述控制任务。
6.根据权利要求1所述的方法,其特征在于,从所述至少两个分块中,确定当前待检测的目标分块,包括:
获取所述至少两个分块中各分块各自的检测标识,所述检测标识用于指示对应的分块已完成检测或未进行检测;
基于所述检测标识,从所述至少两个分块中确定未检测的剩余分块;
获取所述至少两个分块的检测顺序以及最近一次完成检测的分块;
基于所述检测顺序和所述最近一次完成检测的分块,从所述剩余分块中确定所述目标分块。
7.根据权利要求1所述的方法,其特征在于,所述至少两个分块中各分块所占用的存储空间均小于预设的存储空间阈值。
8.一种安全控制器的检测装置,其特征在于,包括:
获取模块,用于获取预先对存储单元的空间划分得到的至少两个分块;
确定模块,用于从所述至少两个分块中,确定当前待检测的目标分块;
判断模块,用于判断是否获取对设备的控制任务;
执行模块,用于在所述判断模块确定获取到所述控制任务时,控制所述设备执行与所述控制任务对应的控制操作,并在所述控制任务执行完毕后,执行对所述目标分块的检测,包括:读取所述目标分块中的第一数据;将所述第一数据写入预设的存储地址;向所述目标分块中写入第二数据,以由所述第二数据覆盖所述第一数据;读取所述目标分块中的当前数据;判断所述当前数据是否为所述第二数据;若所述当前数据为所述第二数据,从所述预设的存储地址中读取所述第一数据,并将所述第一数据写入所述目标分块,以由所述第一数据覆盖所述第二数据。
9.一种电子设备,其特征在于,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现权利要求1-7任一项所述的安全控制器的检测方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的安全控制器的检测方法。
CN202110791905.5A 2021-07-13 2021-07-13 安全控制器的检测方法、装置、设备及存储介质 Active CN113468008B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110791905.5A CN113468008B (zh) 2021-07-13 2021-07-13 安全控制器的检测方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110791905.5A CN113468008B (zh) 2021-07-13 2021-07-13 安全控制器的检测方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113468008A CN113468008A (zh) 2021-10-01
CN113468008B true CN113468008B (zh) 2024-06-18

Family

ID=77880067

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110791905.5A Active CN113468008B (zh) 2021-07-13 2021-07-13 安全控制器的检测方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113468008B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108153611A (zh) * 2018-01-10 2018-06-12 芜湖美的厨卫电器制造有限公司 故障自检方法、故障自检装置、微控制器和可读存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI441184B (zh) * 2010-02-09 2014-06-11 Silicon Motion Inc 非揮發性記憶裝置及其資料處理方法
CN103455436B (zh) * 2013-09-23 2016-09-14 北京经纬恒润科技有限公司 一种ram检测方法及***
CN107765991B (zh) * 2016-08-19 2019-03-01 北京百度网讯科技有限公司 用于传输消息的方法和装置
CN109947842B (zh) * 2017-07-27 2021-06-18 杭州海康威视数字技术股份有限公司 分布式存储***中的数据存储方法、装置及***
CN108446560A (zh) * 2018-02-26 2018-08-24 深圳市元征科技股份有限公司 一种***检测方法、装置、终端设备及可读存储介质
CN111274219B (zh) * 2020-01-21 2023-12-08 浙江大华技术股份有限公司 数据存储方法及装置、存储介质、电子装置
CN112148218B (zh) * 2020-09-11 2023-12-22 北京浪潮数据技术有限公司 磁盘阵列的校验数据存储方法、装置、设备及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108153611A (zh) * 2018-01-10 2018-06-12 芜湖美的厨卫电器制造有限公司 故障自检方法、故障自检装置、微控制器和可读存储介质

Also Published As

Publication number Publication date
CN113468008A (zh) 2021-10-01

Similar Documents

Publication Publication Date Title
CN108508803B (zh) 多联机***通讯匹配方法和装置
CN102467440A (zh) 内存错误检测***及方法
WO2015103917A1 (zh) 无线路由设备管理方法和装置
CN111933199B (zh) 基于存储器的数据读写方法、装置及存储介质
CN110910249B (zh) 一种数据处理方法、装置、节点设备及存储介质
CN104932830B (zh) 信息处理方法及电子设备
CN113468008B (zh) 安全控制器的检测方法、装置、设备及存储介质
US9471451B2 (en) Implementing enhanced wear leveling in 3D flash memories
CN104346251A (zh) 半导体集成电路设备
CN103902419A (zh) 一种缓存测试方法及装置
JP5504604B2 (ja) Ram診断装置
US20240046720A1 (en) Vehicle-mounted information processing apparatus and vehicle-mounted information processing method
CN108628699B (zh) 一种基于ecc的flash数据异常处理方法及装置
US11726853B2 (en) Electronic control device
CN211236890U (zh) 栈溢出的检测装置和电子设备
CN114328080A (zh) 一种固件状态检测的方法及装置、电子设备
US10528467B2 (en) Information processing device and information processing method
CN106611619B (zh) 数据储存装置以及快闪存储器的检测方法
CN113051184A (zh) 一种数据读取的方法、装置、电子设备及存储介质
CN117707434B (zh) 一种Flash的数据写入方法、装置、车辆以及存储介质
KR102552666B1 (ko) 전자 장치 및 그것의 동작 방법
JP6317653B2 (ja) 自動車用電子制御装置及びデータ記憶方法
CN112327685B (zh) 出入仓库监控方法、装置、目标设备和存储介质
KR101779118B1 (ko) 메모리의 스택 관리 방법
JP6914430B2 (ja) メモリ診断装置及びメモリ診断方法

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