CN110069360B - 一种电机控制器数据的存储、读取方法及装置 - Google Patents
一种电机控制器数据的存储、读取方法及装置 Download PDFInfo
- Publication number
- CN110069360B CN110069360B CN201910324518.3A CN201910324518A CN110069360B CN 110069360 B CN110069360 B CN 110069360B CN 201910324518 A CN201910324518 A CN 201910324518A CN 110069360 B CN110069360 B CN 110069360B
- Authority
- CN
- China
- Prior art keywords
- data
- address
- reading
- target
- current
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Control Of Electric Motors In General (AREA)
Abstract
本申请公开了一种电机控制器数据的存储、读取方法及装置,包括S11依据数据读取请求,判断当前存储区域内的当前读取地址是否在允许范围内;S12若是则读取与当前读取地址对应的索引数据;S13校验索引数据是否有效;S14若否则将当前存储区域的下一存储区域作为新的当前存储区域,返回S11;S15若是则利用索引数据得到目标存储地址;S16判断目标存储地址是否在预设的允许范围内;S17若是则读取目标存储地址中存储的最新写入的目标数据;S18若否则将当前存储区域的下一存储地址作为新的目标存储地址,返回S16,直至当前存储区域的存储地址均不在允许范围内则返回S11;本申请多个存储区域提高数据存储的可靠性,通过存储区域的索引数据能够更快找到有效存储地址。
Description
技术领域
本发明涉及数据存储领域,特别涉及一种电机控制器数据的存储、读取方法及装置。
背景技术
汽车电机控制参数对新能源汽车电机控制起着至关重要的作用。通常,为有效精确地控制电机工作,控制算法需要获取系统中电机的参数。产业化的应用中,电机部分参数一般都存在一定的个体差异,并且某些参数在每次系统启动时需要以上次工作结束时的数据作为依据,如电机系统工作里程、转子估算温度等。因此需要控制系统自动获取相关参数,并将其存放于存储介质中。此后在车辆上电后,电机控制器从存储介质中获取参数。如果存储的数据受外界因素影响丢失或错误,汽车掉电后重新恢复电源后,电机控制器不能获取数据或获取了错误的控制参数,将严重影响电机控制的稳定性、可靠性。对车辆运行的安全性、舒适性造成不可估量的影响。
现有存储方法中,电机控制参数通常存储在固定地址存储区域。存取方式为:在控制器上电后,先读取存储介质中起始地址为A的数据,并根据其循环冗余校验算法(CyclicRedundancy Check,CRC)判断是否为最新写入数据,依次读取,直至找到最近写入数据为止。若需要重新写入电机控制参数,在获取到正确控制参数后,将此数据及其CRC校验值存放于数组,则将其写入起始地址为B的存储区域,以此类推,直至可用存储区域写满为止。此种方式在运行时,如果某一存储区域失效,纵然每次读取时发现其数据错误,但始终还是会向此错误存储区域写入数据,造成数据丢失;读取或写入操作时,为获取期望地址,需进行大量读取校验运算,占用了大量系统资源,在历史存储数据量较大或存储空间较充裕的情况下,更是对资源的浪费。
为此,需要一种可靠性更高更为高效的电机控制器数据的读取方法。
发明内容
有鉴于此,本发明的目的在于提供一种电机控制器数据的存储、读取方法及装置,提高数据的可靠性和读取效率。其具体方案如下:
一种电机控制器数据的读取方法,包括:
S11:依据数据读取请求,判断当前存储区域内的当前读取地址是否在预设的允许范围内;其中,初始默认选择主存储区域为当前存储区域,当前存储区域的首地址为当前读取地址;
S12:若是,则读取与当前读取地址对应的索引数据;
S13:校验所述索引数据是否有效;
S14:若否,则将当前存储区域的下一存储区域作为新的当前存储区域,返回S11;
S15:若是,则利用所述索引数据得到目标存储地址;
S16:判断所述目标存储地址是否在所述允许范围内;
S17:若是,则读取所述目标存储地址中存储的最新写入的目标数据;
S18:若否,则将当前存储区域的下一存储地址作为新的所述目标存储地址,返回S16,直至当前存储区域的存储地址均不在所述允许范围内,则返回S11返回S11。
可选的,所述读取所述目标存储地址中存储的最新写入的数据的过程,包括:
对所述目标数据进行校验,判断所述目标数据是否通过校验;
若否,则将所述目标存储地址的读取错误次数加1,并将所述目标存储地址的下一存储地址作为新的目标存储地址返回S16;
若是,则清空所述目标存储地址的读取错误次数,读取所述目标存储地址中存储的最新写入的数据。
可选的,所述对所述目标数据进行校验,判断所述目标数据是否通过校验的过程,包括:
对所述目标数据进行CRC校验,判断所述目标数据是否通过CRC校验。
可选的,所述校验所述索引数据是否有效的过程,包括:
对所述索引数据进行CRC校验,判断所述索引数据是否有效。
可选的,所述判断当前存储区域内的当前读取地址是否在预设的允许范围之后,还包括:
若当前存储区域内的全部读取地址均不在所述允许范围,则设置故障标识,并终止读取数据。
本发明还公开了一种电机控制器数据的存储方法,包括:
S21:判断是否存在故障标识;
S22:若否,则利用索引数据中记载的上一次存储地址,计算出本次的目标存储地址;
S23:若是,则初始化存储地址,选择默认存储地址为所述目标存储地址;
S24:判断所述目标存储地址的读取错误次数是否超过预设的阈值;
S25:若是,则将所述目标存储地址的下一个存储地址作为所述目标存储地址,返回S24;
S26:若否,则将待保存数据存储至所述目标存储地址,同时更新与所述目标存储地址对应的索引数据。
可选的,述判断所述目标存储地址的读取错误次数是否超过预设的阈值之后,还包括:
若全部存储地址的读取错误次数均超过预设的所述阈值,则返回S23。
可选的,所述将待保存数据存储至所述目标存储地址,同时更新与所述目标存储地址对应的索引数据的过程,包括:
将待保存数据和相应的CRC值均以数据段的形式写入所述目标存储地址;
将所述目标存储地址的起始地址信息和相应的读取失败标识作为索引数据写入与所述目标存储地址对应的目标存储区域的索引段。
本发明还公开了一种电机控制器数据的读取装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如前述的电机控制器数据的读取方法。
本发明还公开了一种电机控制器数据的存储装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如前述的电机控制器数据的存储方法。
本发明中,一种电机控制器数据的读取方法,包括S11:依据数据读取请求,判断当前存储区域内的当前读取地址是否在预设的允许范围内;其中,初始默认选择主存储区域为当前存储区域,当前存储区域的首地址为当前读取地址;S12:若是,则读取与当前读取地址对应的索引数据;S13:校验索引数据是否有效;S14:若否,则将当前存储区域的下一存储区域作为新的当前存储区域,返回S11;S15:若是,则利用索引数据得到目标存储地址;S16:判断目标存储地址是否在允许范围内;S17:若是,则读取目标存储地址中存储的最新写入的目标数据;S18:若否,则将当前存储区域的下一存储地址作为新的目标存储地址,返回S16,直至当前存储区域的存储地址均不在允许范围内,则返回S11。
本发明将存储地址划分为多个存储区域包括主存储区域和备份存储区域,每个存储区域对应多个存储地址,以存储多个数据,多个备份存储区域提高数据存储的可靠性,其中,存储区域中保存有记载所需数据的目标存储地址的索引数据,通过判断存储区域的索引数据可以提前判断出存储区域中是否所有的存储地址均失效,以快速的判断下一个存储区域,而无需逐个对每一个存储地址进行有效性的判断,提高了读取速度,能够更快找到有效存储地址。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种电机控制器数据的读取方法流程示意图;
图2为本发明实施例公开的一种存储数据结构图;
图3为本发明实施例公开的另一种电机控制器数据的读取方法流程示意图;
图4为本发明实施例公开的一种电机控制器数据的存储方法流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种电机控制器数据的读取方法,参见图1所示,该方法包括:
S11:依据数据读取请求,判断当前存储区域内的当前读取地址是否在预设的允许范围内。
具体的,汽车的电机控制器为实现对汽车的电机进行实时控制,会定期获取汽车电机的参数数据,每当需要获取时将会生成数据读取请求,以便从存储位置获取最新的电机数据,其中,数据读取请求可以通过程序执行数据读取函数来实现。
具体的,为确保存储地址中始终能够保存有可用的数据,预先将可用存储地址分为主存储区域和多个备份存储区域,备份存储区域用于保存历史数据,主存储区域用于随时更新最新数据,备份存储区域可以定时从主存储区域中拷贝最新的数据,也可以在数据存储至主存储区域的同时存储至备份存储区域;各存储区域相互独立,因此,各存储区域所保存的数据不一定完全相同,以此确保在丢失最新数据后,仍能够有历史数据使用;当主存储区域失效后,可以使用备份存储区域的数据,确保始终能够有数据供电机控制器控制电机,确保不会控制失效。
具体的,在读取数据时可以初始默认选择保存最新数据的存储区域,即可以初始默认选择主存储区域为当前存储区域,当前存储区域的首地址为当前读取地址,以确保能够从头检索数据,当然,根据实际应用情况可以自行设定初始默认存储区域。
其中,参见图2所示,每个存储区域可以包括索引段、数据段、空白段三部分;索引段内容包含数条当前和/或历史数据的存储起始地址、各存储地址读取错误计数和最近数据存储地址等索引数据;数据段包含当前数据和/或多条历史数据,每条数据最后一字节为循环冗余校验值;空白段可减小存储区域损坏对相邻数据的影响,内容可以为零。
具体的,存储地址为各设备和各程序的通用存储空间,所以其中不仅存储有电机控制器所需的电机参数,也保存有其他数据,所以会对存储地址预先进行划分,将存储空间分配给不同的数据和设备使用,可以通过设定各程序或各设备的访问权限来实现,相应的设备仅能在相应的权限内的存储地址中进行读写数据,以此确保各数据之间不会影响。
进一步的,由于在选择读取地址时,可能当前读取地址不满足要求需要转往下一个读取地址尝试进行读取,指针则会依次按照预设的步长移动至下一读取地址,为此,需要判断当前读取地址是否仍在允许范围内,即判断当前程序是否有权限访问当前读取地址,以防止移动至错误的读取地址读取错误的数据,所以判断当前存储区域内的当前读取地址是否在预设的允许范围。
S12:若是,则读取与当前读取地址对应的索引数据。
具体的,若当前读取地址在允许范围内,则可以从当前读取地址的索引段中读取出索引数据,以供后续使用。
可以理解的是,若当前存储区域不在预设的允许范围内,则将当前存储区域的下一存储区域作为新的当前存储区域,返回S11重新进行判断,直至全部存储区域的读取地址均不在预设的允许范围内,则证明全部数据丢失,无法读取数据,终止进程,同时可以添加故障标识,以便于后续存储数据时直接对存储地址进行初始化,避免再次向不可用的存储地址存储数据。
S13:校验索引数据是否有效。
具体的,为确保读取地址中存储有有效数据,预先校验索引数据是否有效,通过提前校验索引数据有效,可以避免对存储区域中存储地址进行长时间的依次检索是否有效的情况,例如,存储区域中全部存储地址失效时,通过在对索引数据校验后,便可以跳过该存储区域,而不再用对存储区域中失效的存储地址逐一进行校验是否失效,节省了大量的校验时间,提高了数据的读取效率。
其中,检验过程可以采用CRC校验算法进行校验,当然,也可以采用其它校验方法进行校验在此不做限定。
S14:若否,则将当前存储区域的下一存储区域作为新的当前存储区域,返回S11。
可以理解的是,索引数据无效表示当前存储区域内的存储地址均失效,无法从当前存储区域中读取有效的数据,因此,可以跳过当前存储区域,以下一备份存储区域作为新的当前存储区域,重新返回S11,以判断下一存储区域是否可以提取出有效数据,直至当前存储区域的索引数据有效,或当前存储区域不在预设的允许范围,则终止读取,其中,若当前存储区域已不在允许范围内,则表明下一个存储区域亦不在允许范围内,因此,无需继续判断,可以终止读取操作,添加故障标识。
S15:若是,则利用索引数据得到目标存储地址。
具体的,索引数据有效,则可以利用索引数据中记载的上一次写入最新数据时的目标存储地址,索引数据中预先记录了各数据段的起始地址和上一次写入的存储地址。
S16:判断目标存储地址是否在允许范围内;
S17:若是,则读取目标存储地址中存储的最新写入的目标数据;
S18:若否,则将当前存储区域的下一存储地址作为新的目标存储地址,返回S16,直至当前存储区域的存储地址均不在允许范围,则返回S11。
具体的,由于存储空间的分配可能发生变化,同时目标存储地址可能被检测出故障被移出可用范围,所以在得到目标存储地址后,仍需检测目标存储地址是否在预设的允许范围,若满足则可以从中读取目标存储地址中存储的最新写入的目标数据,实现数据的读取,由于数据是依次存储,因此,若不满足,则将当前存储区域的下一存储地址作为新的目标存储地址,以尝试读取次新的数据,返回16重新判断新的目标存储地址是否可以用。
其中,在目标数据可以为汽车电机的转子初始位置。
可见,本发明实施例将存储地址划分为多个存储区域包括主存储区域和备份存储区域,每个存储区域对应多个存储地址,以存储多个数据,多个备份存储区域提高数据存储的可靠性,其中,存储区域中保存有记载所需数据的目标存储地址的索引数据,通过判断存储区域的索引数据可以提前判断出存储区域中是否所有的存储地址均失效,以快速的判断下一个存储区域,而无需逐个对每一个存储地址进行有效性的判断,提高了读取速度,能够更快找到有效存储地址。
本发明实施例公开了一种具体的电机控制器数据的读取方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
具体的,为确保读取的数据准确,在读取数据时加入对数据的校验过程,同时为避免重复对已经损坏的存储地址重复写入数据,造成数据丢失,在对每个存储地址读取后,添加反映存储地址是否有效的标记,以供后续数据存储过程是判断存储地址是否可以继续使用,为此上述S17中读取目标存储地址中存储的最新写入的数据的过程,参见图3所示,可以具体包括S171至S173;
S171:对目标数据进行校验,判断目标数据是否通过校验。
具体的,对目标存储地址中的目标数据可以采用CRC校验的方法进行校验,当然,也可以采用其他校验类算法进行校验,在此不做限定,通过对目标数据进行校验可以得知目标存储地址中的目标数据是否正确可用。
S172:若否,则将目标存储地址的读取错误次数加1,并将目标存储地址的下一存储地址作为新的目标存储地址返回S16。
具体的,若目标数据校验失败,则增加目标存储地址的读取错误标记,以表明目标存储地址存储的数据出现过错误,例如,将目标存储地址的读取错误次数加1,以读取错误次数表明目标存储地址的存储情况,以供存储数据时,利用目标存储地址的读取错误标记判断是否超过预设的阈值,一旦超过,则可以表明目标存储地址中存储的数据总是无法被成功读取,说明目标存储地址可能损坏,无法正常存储数据,使得存储数据时能够跳过读取错误标记超过预设的阈值的存储地址。
具体的,若目标存储地址中的目标数据无法被读出,则可以依据目标存储地址按照预设的步长计算出下一相邻的存储地址作为新的目标存储地址,并重新返回S16判断新的目标存储地址是否在预设的允许范围,以继续尝试读取目标数据。
S173:若是,则清空目标存储地址的读取错误次数,读取目标存储地址中存储的最新写入的数据。
具体的,若成功读取了目标存储地址中的目标数据,则证明当前目标存储地址正常,能够有效的存储数据,为此,若目标存储地址之前有相应的读取错误标记可以清除读取错误标记,确保下次存储数据时,目标存储地址能够作为可用的存储地址作为备选,例如,读取错误标记为读取错误次数,若目标存储地址的读取错误次数已经超过预设的阈值,而本次从目标存储地址中成功读取了目标数据,则可以表明目标存储地址可能自我修复成功,此时便可以清除目标存储地址对应的读取错误次数,使其归零,以使目标存储地址有资格存储最新的数据。
此外,本发明实施例还公开了一种电机控制器数据的存储方法,参见图4所示,该方法包括:
S21:判断是否存在故障标识。
可以理解的是,可以首先判断本次需要写入的待保存数据与上电时读取的数据是否一致,一致则表明无需更新,不一致则进一步的判断是否存在故障标识,故障标识为在数据读取过程中,当全部存储地址不可用时生成的标识,若有故障标识存在,则证明全部存储地址失效,若此时再直接写入数据,则属于无用功,所以需要先判断是否存在故障标识确定存储地址的状态,再决定如何写入数据。
其中,在数据读取过程中生成的故障标识可以存储在RAM(Random AccessMemory,随机存取存储器)中。
S22:若否,则利用索引数据中记载的上一次存储地址,计算出本次的目标存储地址。
具体的,若不存在故障标识,则证明存储地址中至少存在一个正常可用的存储地址,为确保除最新数据外,还能有上一次的数据存储在存储地址中作为备份,利用存储区域中的索引数据中预先保存的上一次的存储地址,可以计算出本次的目标存储地址,例如,通过上一次存储时的存储区域的索引数据得到上一次的存储地址后,可以利用预先设定的各存储地址的间距即步长,利用上一次的存储地址的起始位置加上步长,则可以得到目标存储地址的起始地址,即计算出了目标存储地址。
S23:若是,则初始化存储地址,选择默认存储地址为目标存储地址。
具体的,若存在故障标识,则证明全部存储地址无法有效使用,因此可以对全部存储地址进行初始化,例如,格式化等操作,以使存储地址恢复正常,重新能够有效存储数据,初始化后,则可以将预先设定的默认存储地址作为目标存储地址,准备进行后续的数据存储。
S24:判断目标存储地址的读取错误次数是否超过预设的阈值。
具体的,虽然存储地址可能未全部失效,但部分存储地址可能已经失效,为此,可以通过在读取数据时建立的读取错误标识判断存储地址是否已经失效,预先设定相应的阈值,当目标存储地址的读取错误标识超过预设的阈值,则表明目标存储地址失效,若未超过,则仍可认为当前目标存储地址仍能使用,读取错误标识可以为读取错误次数,每次在读取存储地址的数据失败后,可以对读取错误次数+1,直至到达预设的阈值,则不再相应的存储地址中继续存储数据,例如,阈值为10,当读取错误次数大于等于10,则任务存储地址失效。
S25:若是,则将目标存储地址的下一个存储地址作为目标存储地址,返回S24。
具体的,若目标存储地址的读取错误标识超过阈值,则计算出当前目标存储地址的下一个存储地址作为新的目标存储地址,返回S24重新进行判断,直至找到可用的存储地址。
其中,下一个存储地址可以利用目标存储地址和固定步长计算得到,也可以利用索引数据和待保存数据的数据宽度计算得到。
S26:若否,则将待保存数据存储至目标存储地址,同时更新与目标存储地址对应的索引数据。
具体的,目标存储地址可用,则将待保存数据存储至目标存储地址,同时更新与目标存储地址对应的索引数据,索引数据中包括目标存储地址的起始位置,以供后续读取时能够利用索引数据查找到目标数据即此处的待保存数据。
需要说明的是执行S23后,可以不执行S24中对目标存储地址的读取错误标识的判断,因初始化后,全部存储地址均可用,且读取错误标识可以清空,因此,可以直接执行S26将待保存数据存储至目标存储地址,同时更新与目标存储地址对应的索引数据,当然,依次执行S24并不影响方案的实施。
可以理解的是,若全部存储地址的读取错误标识均超过预设的阈值,则返回S23,对存储地址进行初始化。
具体的,上述S26中将待保存数据存储至目标存储地址,同时更新与目标存储地址对应的索引数据的过程,可以具体包括S261和S262;其中,
S261:将待保存数据和相应的CRC值均以数据段的形式写入目标存储地址。
具体的,校验可以采用CRC校验算法,为此,在保存数据的同时需要保存数据的CRC至,将待保存数据和待保存数据相应的CRC值以数据段的形式写入目标存储地址,完成待保存数据的存储。
S262:将目标存储地址的起始地址信息和相应的读取失败标识作为索引数据写入与目标存储地址对应的目标存储区域的索引段。
具体的,为确保后续能够计算出待保存数据的目标存储地址,将目标存储地址的起始地址信息和相应的读取失败标识作为索引数据写入与目标存储地址对应的目标存储区域的索引段,以供后续读取数据时使用。
其中,待保存数据可以为汽车电机的转子初始位置。
可见,本发明实施例通过引入每个存储地址的读取错误标识,通过判断读取错误标识来规避失效的存储地址,避免重复将数据存储至失效的存储地址,提高了可靠性。
此外,本发明实施例还公开了一种电机控制器数据的读取装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序以实现如前述的电机控制器数据的读取方法。
另外,本发明实施例还公开了一种电机控制器数据的存储装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序以实现如前述的电机控制器数据的存储方法。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本发明所提供的技术内容进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种电机控制器数据的读取方法,其特征在于,包括:
S11:依据数据读取请求,判断当前存储区域内的当前读取地址是否在预设的允许范围内;其中,初始默认选择主存储区域为当前存储区域,当前存储区域的首地址为当前读取地址;
S12:若是,则读取与当前读取地址对应的索引数据;
S13:校验所述索引数据是否有效;
S14:若否,则将当前存储区域的下一存储区域作为新的当前存储区域,返回S11;
S15:若是,则利用所述索引数据得到目标存储地址;
S16:判断所述目标存储地址是否在所述允许范围内;
S17:若是,则读取所述目标存储地址中存储的最新写入的目标数据;
S18:若否,则将当前存储区域的下一存储地址作为新的所述目标存储地址,返回S16,直至当前存储区域的存储地址均不在所述允许范围内,则返回S11;其中,所述下一存储地址为所述当前存储区域中的所述目标存储地址的下一个存储地址。
2.根据权利要求1所述的电机控制器数据的读取方法,其特征在于,所述读取所述目标存储地址中存储的最新写入的数据的过程,包括:
对所述目标数据进行校验,判断所述目标数据是否通过校验;
若否,则将所述目标存储地址的读取错误次数加1,并将所述目标存储地址的下一存储地址作为新的目标存储地址返回S16;
若是,则清空所述目标存储地址的读取错误次数,读取所述目标存储地址中存储的最新写入的数据。
3.根据权利要求2所述的电机控制器数据的读取方法,其特征在于,所述对所述目标数据进行校验,判断所述目标数据是否通过校验的过程,包括:
对所述目标数据进行CRC校验,判断所述目标数据是否通过CRC校验。
4.根据权利要求1所述的电机控制器数据的读取方法,其特征在于,所述校验所述索引数据是否有效的过程,包括:
对所述索引数据进行CRC校验,判断所述索引数据是否有效。
5.根据权利要求1至4任一项所述的电机控制器数据的读取方法,其特征在于,所述判断当前存储区域内的当前读取地址是否在预设的允许范围之后,还包括:
若当前存储区域内的全部读取地址均不在所述允许范围,则设置故障标识,并终止读取数据。
6.一种电机控制器数据的存储方法,其特征在于,包括:
S21:判断本次需要写入的待保存数据与上电时读取的数据是否一致,一致则表明无需更新,不一致则判断是否存在故障标识;
其中,故障标识为在数据读取过程中,当全部存储地址不可用时生成的标识,数据读取的步骤包括:依据数据读取请求,判断当前存储区域内的当前读取地址是否在预设的允许范围内;其中,初始默认选择主存储区域为当前存储区域,当前存储区域的首地址为当前读取地址;若是,则读取与当前读取地址对应的索引数据;校验所述索引数据是否有效;若否,则将当前存储区域的下一存储区域作为新的当前存储区域,返回依据数据读取请求,判断当前存储区域内的当前读取地址是否在预设的允许范围内这一步骤;若是,则利用所述索引数据得到目标存储地址;判断所述目标存储地址是否在所述允许范围内;若是,则读取所述目标存储地址中存储的最新写入的目标数据;若否,则将当前存储区域的下一存储地址作为新的所述目标存储地址,返回判断所述目标存储地址是否在所述允许范围内这一步骤,直至当前存储区域的存储地址均不在所述允许范围内,则返回依据数据读取请求,判断当前存储区域内的当前读取地址是否在预设的允许范围内这一步骤;其中,所述下一存储地址为所述当前存储区域中的所述目标存储地址的下一个存储地址
S22:若否,则利用索引数据中记载的上一次存储地址,计算出本次的目标存储地址;
S23:若是,则初始化存储地址,选择默认存储地址为所述目标存储地址;
S24:判断所述目标存储地址的读取错误次数是否超过预设的阈值;
S25:若是,则将所述目标存储地址的下一个存储地址作为所述目标存储地址,返回S24;
S26:若否,则将待保存数据存储至所述目标存储地址,同时更新与所述目标存储地址对应的索引数据。
7.根据权利要求6所述的电机控制器数据的存储方法,其特征在于,所述判断所述目标存储地址的读取错误次数是否超过预设的阈值之后,还包括:
若全部存储地址的读取错误次数均超过预设的所述阈值,则返回S23。
8.根据权利要求6所述的电机控制器数据的存储方法,其特征在于,所述将待保存数据存储至所述目标存储地址,同时更新与所述目标存储地址对应的索引数据的过程,包括:
将待保存数据和相应的CRC值均以数据段的形式写入所述目标存储地址;
将所述目标存储地址的起始地址信息和相应的读取失败标识作为索引数据写入与所述目标存储地址对应的目标存储区域的索引段。
9.一种电机控制器数据的读取装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至5任一项所述的电机控制器数据的读取方法。
10.一种电机控制器数据的存储装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求6至8任一项所述的电机控制器数据的存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910324518.3A CN110069360B (zh) | 2019-04-22 | 2019-04-22 | 一种电机控制器数据的存储、读取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910324518.3A CN110069360B (zh) | 2019-04-22 | 2019-04-22 | 一种电机控制器数据的存储、读取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110069360A CN110069360A (zh) | 2019-07-30 |
CN110069360B true CN110069360B (zh) | 2023-03-21 |
Family
ID=67368479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910324518.3A Active CN110069360B (zh) | 2019-04-22 | 2019-04-22 | 一种电机控制器数据的存储、读取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110069360B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110474911B (zh) * | 2019-08-14 | 2023-05-23 | 深圳前海微众银行股份有限公司 | 终端可信性识别方法、装置、设备与计算机可读存储介质 |
CN110727450A (zh) * | 2019-10-11 | 2020-01-24 | 上海元城汽车技术有限公司 | 启动加载程序更新方法和装置 |
CN111045600B (zh) * | 2019-11-05 | 2023-02-21 | 北京新忆科技有限公司 | 向存储器写入数据的方法、装置及存储介质 |
CN111796967B (zh) * | 2020-06-30 | 2024-02-06 | 北京经纬恒润科技股份有限公司 | 数据读写控制方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593147A (zh) * | 2013-11-07 | 2014-02-19 | 华为技术有限公司 | 一种数据读取的方法及装置 |
JP2014041524A (ja) * | 2012-08-23 | 2014-03-06 | Nec Corp | 半導体記憶装置、ストレージ装置、半導体記憶装置制御方法、ストレージ制御方法、および、コンピュータ・プログラム |
CN104021806A (zh) * | 2014-05-16 | 2014-09-03 | 华为技术有限公司 | 一种数据处理的方法和设备 |
CN108563532A (zh) * | 2018-02-28 | 2018-09-21 | 深圳和而泰数据资源与云技术有限公司 | 数据处理方法及相关装置 |
CN109299018A (zh) * | 2018-08-15 | 2019-02-01 | 深圳拓邦股份有限公司 | 一种Flash存储器中历史数据的读取方法及装置 |
-
2019
- 2019-04-22 CN CN201910324518.3A patent/CN110069360B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014041524A (ja) * | 2012-08-23 | 2014-03-06 | Nec Corp | 半導体記憶装置、ストレージ装置、半導体記憶装置制御方法、ストレージ制御方法、および、コンピュータ・プログラム |
CN103593147A (zh) * | 2013-11-07 | 2014-02-19 | 华为技术有限公司 | 一种数据读取的方法及装置 |
CN104021806A (zh) * | 2014-05-16 | 2014-09-03 | 华为技术有限公司 | 一种数据处理的方法和设备 |
CN108563532A (zh) * | 2018-02-28 | 2018-09-21 | 深圳和而泰数据资源与云技术有限公司 | 数据处理方法及相关装置 |
CN109299018A (zh) * | 2018-08-15 | 2019-02-01 | 深圳拓邦股份有限公司 | 一种Flash存储器中历史数据的读取方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110069360A (zh) | 2019-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110069360B (zh) | 一种电机控制器数据的存储、读取方法及装置 | |
US8397017B2 (en) | Controller and data storage device | |
CN1808611B (zh) | 检测不准确数据的设备和方法 | |
CN103858107A (zh) | 安全恢复装置和方法 | |
KR20050069925A (ko) | 비휘발성 기억장치의 제어방법 | |
CN110286853B (zh) | 一种数据写入方法和装置、计算机可读存储介质 | |
CN102024502B (zh) | 闪存器件测试方法、装置及板卡和网络设备 | |
CN109240622B (zh) | 一种eeprom数据写入的方法及系统 | |
CN115793985B (zh) | 一种安全存储方法、装置、设备及存储介质 | |
CN108255414B (zh) | 固态硬盘访问方法及装置 | |
CN104282342A (zh) | 闪存装置、存储器控制器及闪存的控制方法 | |
EP3336702B1 (en) | Metadata recovery method and device | |
JPWO2009084071A1 (ja) | Raid制御装置及びraidシステム | |
CN110865906B (zh) | 一种电机初始位置角度存储方法、装置、车辆及存储介质 | |
CN111124760B (zh) | 一种基于uboot的嵌入式设备启动方法及装置 | |
US20180052635A1 (en) | Electronic control apparatus and information storage method for the same | |
CN110956284A (zh) | 一种产品信息的可靠性维护方法、系统、设备及存储介质 | |
US11868627B2 (en) | Method for operating a processing unit | |
JP2008117299A (ja) | 記憶媒体制御装置 | |
CN110764693B (zh) | 一种提高Nand flash数据稳定性的方法以及装置 | |
US20100251013A1 (en) | Method for processing bad block in redundant array of independent disks | |
CN108920210B (zh) | 一种加载存储控制软件的方法、系统及相关组件 | |
CN106844088B (zh) | 一种raid存储系统的数据发送方法及装置 | |
CN115904256B (zh) | 一种数据存储方法及存储器 | |
JP2002108721A (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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 401133 room 208, 2 house, 39 Yonghe Road, Yu Zui Town, Jiangbei District, Chongqing Patentee after: Deep Blue Automotive Technology Co.,Ltd. Address before: 401133 room 208, 2 house, 39 Yonghe Road, Yu Zui Town, Jiangbei District, Chongqing Patentee before: CHONGQING CHANGAN NEW ENERGY AUTOMOBILE TECHNOLOGY Co.,Ltd. |