CN114356647A - 一种eps系统数据编码及存储方法 - Google Patents
一种eps系统数据编码及存储方法 Download PDFInfo
- Publication number
- CN114356647A CN114356647A CN202210266483.4A CN202210266483A CN114356647A CN 114356647 A CN114356647 A CN 114356647A CN 202210266483 A CN202210266483 A CN 202210266483A CN 114356647 A CN114356647 A CN 114356647A
- Authority
- CN
- China
- Prior art keywords
- data
- byte
- index number
- coding
- address
- 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
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种EPS系统数据编码及存储方法,包括如下步骤:S1、数据字典查询和处理的实现;S2、4字节地址统一编码的实现;S3、CRC校验计算;将不同类型的数据进行统一编码,每个数据都分配四个字节的存储空间,四个字节的存储空间中包含数据的类型、索引号、校验码和16位的数据。同时对EPS控制器中所有需要与外部交互的数据进行统一编码,设计EPS数据字典,应用数据字典中定义的数据索引号作为数据在外部存储和内部解码时的依据。
Description
技术领域
本发明涉及EPS系统数据处理技术领域,特别是涉及一种EPS系统数据编码及存储方法。
背景技术
EPS系统在应用过程中需要将很多系统的关键数据存储于外部存储单元,这些数据包括EPS系统控制参数、状态参数和故障发生时的运行数据等。在现有使用中需要先定义好每一个变量在外部存储单元中存储的位置,以存储位置来识别不同的数据,同时在EPS控制器中按不同的位置读取数据,再查表分辨数据的类型,才能进行解码转换。
为了保证程序在不同产品类型移植时的可扩展性,通常在数据存储地址的分配上留有很大的富裕量,导致存储芯片的利用率较低,另外在产品需求变更,需要增加/删减/变更新的存储变量时需要完成大量的重新编码工作,工作效率非常低,为此我们提出一种EPS系统数据编码及存储方法。
发明内容
为了克服现有技术的不足,本发明提供一种EPS系统数据编码及存储方法,将不同类型的数据进行统一编码,每个数据都分配四个字节的存储空间,四个字节的存储空间中包含数据的类型、索引号、校验码和16位的数据。同时对EPS控制器中所有需要与外部交互的数据进行统一编码,设计EPS数据字典,应用数据字典中定义的数据索引号作为数据在外部存储和内部解码时的依据。
为解决上述技术问题,本发明提供如下技术方案:一种EPS系统数据编码,包括如下步骤:
S1、数据字典查询和处理的实现,包括外部表格的定义和内部软件编码实现两部分,其中外部表格的定义,根据应用程序的需要在EXCEL中单独定义,并可根据需要灵活添加或删减变量,内部软件需要根据外部的EXCEL表中定义的变量属性进行编程实现;
S2、4字节地址统一编码的实现,所有类型的数据都以4个字节存储,第一个字节存储数据变量的索引号,第二个字节存储数据状态和校验信息,第三、第四个字节分别存储数据的高字节和低字节;
S3、CRC校验计算,其信息字段和校验字段的长度任意选定。
本发明还提供如下技术方案:一种EPS系统数据存储方法,包括如下过程:
S1、MCU先根据需要存储的数据索引号查找数据字典映射表确定数据存储的地址;
S2、然后从内存地址中读取该索引号对应的数据,应用上述CRC校验计算的方式计算数据的CRC5校验码;
S3、之后按4字节地址统一编码的规则进行数据帧的编码;
S4、再根据数据索引号和外部EEPROM中数据存储的地址分配方法计算数据在AT24C32芯片中存储的地址;
S5、之后启动I2C通讯将数据写至AT24C32芯片中。
与现有技术相比,本发明能达到的有益效果是:
(1)本发明设计了统一的数据存储格式,并对EEPROM的地址进行了统一编码,提高了对EEPROM的利用率,降低了原材料成本;
(2)本发明提出了数据字典的定义和使用方法,极大的提高了EPS控制器软件设计的通用性,使不同型号的EPS控制器很方便的移植软件,并实现对交互数据的灵活定义;
(3)新存储格式中引入了CRC 校验的编码格式,对读取到的数据是否存在错误进行校验,保证了数据读写的可靠性;
(4)结合实际系统参数的使用范围和使用精度本发明对浮点数的存储数据长度进行了压缩,从而保证了所有数据有统一的存储格式,简化了软件编码的复杂度,提高了数据处理的效率。
附图说明
图1为本发明的四字节存储空间定义示意图;
图2为本发明的EPS数据字典定义示意图;
图3为本发明的数据存储全流程示意图;
图4为本发明的数据字典软件实现链表示意图;
图5为本发明的数据存储流程示意图;
图6为本发明的数据读取流程示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施例,进一步阐述本发明,但下述实施例仅为本发明的优选实施例,并非全部。基于实施方式中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得其他实施例,都属于本发明的保护范围。下述实施例中的实验方法,如无特殊说明,均为常规方法,下述实施例中所用的材料、试剂等,如无特殊说明,均可从商业途径得到。
实施例:
如图1-图6所示,一种EPS系统数据编码,包括如下步骤:
S1、数据字典查询和处理的实现,包括外部表格的定义和内部软件编码实现两部分,其中外部表格的定义,根据应用程序的需要在EXCEL中单独定义,并可根据需要灵活添加或删减变量,内部软件需要根据外部的EXCEL表中定义的变量属性进行编程实现;
S2、4字节地址统一编码的实现,所有类型的数据都以4个字节存储,第一个字节存储数据变量的索引号,第二个字节存储数据状态和校验信息,第三、第四个字节分别存储数据的高字节和低字节;
S3、CRC校验计算,其信息字段和校验字段的长度任意选。
一种EPS系统数据存储方法,包括如下过程:
S1、MCU先根据需要存储的数据索引号查找数据字典确定数据存储的地址;
S2、然后从内存中读取该索引号对应的数据,应用上述CRC校验计算的方式计算数据的CRC5校验码;
S3、之后按4字节地址统一编码的规则进行数据帧的编码;
S4、再根据数据索引号和外部EEPROM中数据存储的地址分配方法计算数据在AT24C32芯片中存储的地址;
S5、之后启动I2C通讯将数据写至AT24C32芯片中。
数据统一存储格式的设计:如图1所示,所有类型的数据都以4个字节存储,第一个字节存储数据变量的索引号,第二个字节存储数据状态和校验信息,第三、第四个字节分别存储数据的高字节和低字节。
第一个字节:表示存储的数据索引号,舍去全0和全1的状态,取有效范围1~254;
第二个字节包括三部分信息: bit23是校验状态位,0表示无CRC校验信息,1表示有CRC校验信息。校验状态位bit23为1时,bit20-bit16位存储第一字节和第三第四字节的CRC-5校验码,bit23为0时bit20-bi16位存储0;bit22-bit21位存储第三、第四字节数据的类型;
第三个和第四个字节分别存储数据的高8位和低8位,分别定义为数据存储的高字节和低字节,EPS控制器软件中使用的数据类型一共有四种:uint8、uint16、sint16、float。
浮点数压缩存储方法:数据类型是浮点数时,原浮点数在EPS系统的单片机中存储长度是32位,因为EPS系统中需要存储到外部存储单元的浮点数都是控制参数,控制参数的数值范围为-32~+32,精度为0.001,所以将浮点数的数值范围和存储精度降低,从而转换成16位存储的方式。本例中算法为:将浮点数放大1000倍后舍去小数位,转换成16位有符号整型数存储,读取时再进行数据解码的反变换。
数据字典的定义:数据字典是对EPS系统中需要与外部交互的数据进行标准格式的定义,从而作为EPS控制器内部软件编码和EPS外部存储单元存储的依据,EPS控制器应用的数据包括系统控制参数、状态参数、检测数据和过程数据等。本发明对EPS控制单元内所有需要进行外部交互的数据进行统一编码,设计相应的数据字典。
数据字典以数据的索引号作为定义数据检索和识别的唯一依据。数据字典中除索引号外,数据字典还定义了数据的其他属性:
外部EEPROM中数据存储的地址分配:EPS控制单元需要存储在外部EEPROM中的数据主要是:EPS系统的控制参数、状态参数、过程参数和故障详情等数据。本发明对数据存储的地址空间进行了统一规划,在不同的产品中移植时会具备非常高的通用性,同时对所分配地址块的具体数据不作限制,从而保证在使用时的可方便扩展。
本例使用AT24C32芯片进行外部存储,共计4K byte,地址从0x0000~0x0FFF,分配方式为:
其中0x0000~0x03FF共计1K byte的数据,用来存放数据字典中定义的外部交互变量,每个变量的存储空间为4byte,数据字典定义的最大变量数为254个,所以1K byte的空间足够存储全部的外部交互变量,每个变量的存储首地址为:
应用该方式,程序在使用过程中很方便的增加或删减不同的交互变量,变量之间的索引号不需要连续,只要数据交互的双方使用同一个数据字典即可;
0x0400~0x07FF共计1K byte的数据,作为预留,方便产品功能的扩充;
0x0800~0x09FF共计1K byte的数据,用作固定存储EPS控制器最早发生的故障,和故障发生时EPS系统运行的相关数据(以下称为故障详情)。每条故障详情包含32个变量,占4*32个字节。1K byte的数据共可存储8条故障;
0x0A00~0x0FFF共计1K byte的数据,用作循环存储EPS控制器在8条早期故障以后再发生的故障,累积可存储8条数据,超过8条之后覆盖掉本区间内早期的数据循环存储;
每条故障详情占4*32个字节,最大可记录32个不同的变量, 每条故障详情的首地址为:
每一个故障详情内部存储的内容由数据的索引号进行识别,所以不同的故障分别存储不同的变量,存储的顺序也随意指定。
(1)数据字典查询和处理的实现
数据字典在使用过程中包括外部表格的定义和内部软件编码实现两部分,外部的表格如图2所示,根据应用程序的需要在EXCEL中单独定义,并可根据需要灵活添加或删减变量。
本例中应用的数据字典定义表如图2所示,以下选取其中一个数据举例说明:
如上图中A相电流的索引号为19,变量名称为变量类型为int16,EPS控制器读取外部存储单元的数据时,根据读取到的数据索引号为19识别为A相电流,然后判断读取到的数据类型和控制器内部定义的数据类型是否一致,不一致则为通讯故障,如果一致再将读取的索引号、校验码及16位的数据进行CRC5算法的校验,校验通过则识别为读取到的A相电流存储数据准确。
内部软件需要根据外部的EXCEL表中定义的变量属性进行编程实现,其中每一个变量可定义成一个结构体,结构体数据的成员包括变量的索引ID、数据类型、读写属性、最大/最小值、当前值等组成,全部数据字典由包含该结构体变量的结构体数组组成。结构体数组成员的索引号不连续,另外再定义一个存储相应索引号的结构体成员地址的指针数组即字典ID索引数组,如下图所示。字典ID索引数组最大有255个成员,每个数组成员的下标号对应数据字典中不同变量的索引号,存储的地址即指向相应索引号的结构体成员。
(2)4字节地址统一编码的实现
数据统一存储格式的设计:如图1所示,所有类型的数据都以4个字节存储,第一个字节存储数据变量的索引号,第二个字节存储数据状态和校验信息,第三、第四个字节分别存储数据的高字节和低字节。
第一个字节:表示存储的数据索引号,舍去全0和全1的状态,取有效范围1~254;
如下图所示:第一个字节(bit31-bit24)存储的索引号为0b01000101,代表索引号为十进制69,通过数据字典查找到该索引号代表的数据为助力曲线输出。
第二个字节包括三部分信息: bit23是校验状态位,0表示无CRC校验信息,1表示有CRC校验信息。
bit22-bit21表示第三和第四字节存储数据的数据类型,如下图所示:
校验状态位bit23为1时,bit20-bi16位存储第一字节和第三第四字节的CRC-5校验码,bit23为0时bit20-bi16位存储0;
第三个和第四个字节分别存储数据的高8位和低8位,分别定义为数据存储的高字节和低字节,EPS控制器软件中使用的数据类型一共有四种:uint8、uint16、sint16、float,浮点数压缩存储方法的计算方式为:
数据读取时,对以上转换进行逆运算:
(3)CRC校验计算
CRC循环冗余校验是数据通信领域中常用的一种查错校验算法,其信息字段和校验字段的长度任意选定。本例中选择CRC-5校验算法,校验码计算的具体方法是:
将待存储数据的索引号(8位)+数据(16位)组成待校验数据二进制数据流,因为选定的特征多项式为6位,在待校验数据二进制数据流后面附加上6-1即5位的0,然后生成新的29位二进制数据流,用新生成的数据帧以模2除法的方式除上面的除数,得到的余数就是该帧的CRC5校验码。余数的位数一定只比除数位数少一位,也就是CRC5校验码位数是5位,如果前面位是0也不能省略。
将计算出来的CRC5校验码作为第二字节的bit20-bi16位数据进行存储。在数据读取时以同样的算法,以模2除法方式除以前面选择的除数,如果没有余数,则说明数据帧在传输的过程中没有出错。
(4)数据存储和读取的过程
EPS控制器数据存储过程:MCU先根据需要存储的数据索引号查找数据字典确定数据存储的地址,然后从内存中读取该索引号对应的数据,应用上述CRC校验计算的方式计算数据的CRC5校验码,之后按4字节地址统一编码的规则进行数据帧的编码,再根据数据索引号和外部EEPROM中数据存储的地址分配方法计算数据在AT24C32芯片中存储的地址,之后启动I2C通讯将数据写至AT24C32芯片中。
EPS控制器读取外部EEPROM数据的过程与上述过程相仿,由以下框图了解。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征之 “上”或之“下”包括第一和第二特征直接接触,也包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施条例的限制,上述实施条例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (2)
1.一种EPS系统数据编码,包括如下步骤:
S1、数据字典查询和处理的实现,包括外部表格的定义和内部软件编码实现两部分,其中外部表格的定义,根据应用程序的需要在EXCEL中单独定义,并可根据需要灵活添加或删减变量,内部软件需要根据外部的EXCEL表中定义的变量属性进行编程实现;
S2、4字节地址统一编码的实现,所有类型的数据都以4个字节存储,第一个字节存储数据变量的索引号,第二个字节存储数据状态和校验信息,第三、第四个字节分别存储数据的高字节和低字节;
S3、CRC校验计算,其信息字段和校验字段的长度任意选定。
2.一种EPS系统数据存储方法,包括如下过程:
S1、MCU先根据需要存储的数据索引号查找数据字典映射表确定数据存储的地址;
S2、然后从内存地址中读取该索引号对应的数据,应用上述CRC校验计算的方式计算数据的CRC5校验码;
S3、之后按4字节地址统一编码的规则进行数据帧的编码;
S4、再根据数据索引号和外部EEPROM中数据存储的地址分配方法计算数据在AT24C32芯片中存储的地址;
S5、之后启动I2C通讯将数据写至AT24C32芯片中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210266483.4A CN114356647B (zh) | 2022-03-18 | 2022-03-18 | 一种eps系统数据编码及存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210266483.4A CN114356647B (zh) | 2022-03-18 | 2022-03-18 | 一种eps系统数据编码及存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114356647A true CN114356647A (zh) | 2022-04-15 |
CN114356647B CN114356647B (zh) | 2022-06-21 |
Family
ID=81095123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210266483.4A Active CN114356647B (zh) | 2022-03-18 | 2022-03-18 | 一种eps系统数据编码及存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114356647B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116095184A (zh) * | 2023-03-07 | 2023-05-09 | 成都索贝视频云计算有限公司 | 一种结构化网络数据传输编码方法、设备及介质 |
CN117093510A (zh) * | 2023-05-30 | 2023-11-21 | 中国人民解放军军事科学院国防科技创新研究院 | 大小端通用的缓存行高效索引方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130151567A1 (en) * | 2011-12-08 | 2013-06-13 | Oracle International Corporation | Techniques for more efficient usage of memory-to-cpu bandwidth |
CN106775476A (zh) * | 2016-12-19 | 2017-05-31 | 中国人民解放军理工大学 | 混合内存系统及其管理方法 |
CN107068194A (zh) * | 2017-04-20 | 2017-08-18 | 聚辰半导体(上海)有限公司 | 一种应用在eeprom上的错误纠正编码及相应的eeprom |
CN107124396A (zh) * | 2017-03-16 | 2017-09-01 | 国网江苏省电力公司淮安供电公司 | 一种用于iec61850的goose报文机器数据的结构化处理的方法 |
CN109947481A (zh) * | 2017-12-21 | 2019-06-28 | 英特尔公司 | 用于处理分数倒数操作的装置和方法 |
CN110352404A (zh) * | 2017-03-03 | 2019-10-18 | 国际商业机器公司 | 通过基于内联解码的微操作扩展的比较字符串处理 |
CN111226496A (zh) * | 2017-10-13 | 2020-06-02 | 三星电子株式会社 | 用于在无线通信系统中传输和接收数据的方法和装置 |
CN114095035A (zh) * | 2021-11-04 | 2022-02-25 | 南京交通职业技术学院 | 一种依托云字典基于字节的无损压缩方法 |
-
2022
- 2022-03-18 CN CN202210266483.4A patent/CN114356647B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130151567A1 (en) * | 2011-12-08 | 2013-06-13 | Oracle International Corporation | Techniques for more efficient usage of memory-to-cpu bandwidth |
CN104040541A (zh) * | 2011-12-08 | 2014-09-10 | 甲骨文国际公司 | 用于更高效地使用存储器至cpu带宽的技术 |
CN106775476A (zh) * | 2016-12-19 | 2017-05-31 | 中国人民解放军理工大学 | 混合内存系统及其管理方法 |
CN110352404A (zh) * | 2017-03-03 | 2019-10-18 | 国际商业机器公司 | 通过基于内联解码的微操作扩展的比较字符串处理 |
CN107124396A (zh) * | 2017-03-16 | 2017-09-01 | 国网江苏省电力公司淮安供电公司 | 一种用于iec61850的goose报文机器数据的结构化处理的方法 |
CN107068194A (zh) * | 2017-04-20 | 2017-08-18 | 聚辰半导体(上海)有限公司 | 一种应用在eeprom上的错误纠正编码及相应的eeprom |
CN111226496A (zh) * | 2017-10-13 | 2020-06-02 | 三星电子株式会社 | 用于在无线通信系统中传输和接收数据的方法和装置 |
CN109947481A (zh) * | 2017-12-21 | 2019-06-28 | 英特尔公司 | 用于处理分数倒数操作的装置和方法 |
CN114095035A (zh) * | 2021-11-04 | 2022-02-25 | 南京交通职业技术学院 | 一种依托云字典基于字节的无损压缩方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116095184A (zh) * | 2023-03-07 | 2023-05-09 | 成都索贝视频云计算有限公司 | 一种结构化网络数据传输编码方法、设备及介质 |
CN116095184B (zh) * | 2023-03-07 | 2023-07-07 | 成都索贝视频云计算有限公司 | 一种结构化网络数据传输编码方法、设备及介质 |
CN117093510A (zh) * | 2023-05-30 | 2023-11-21 | 中国人民解放军军事科学院国防科技创新研究院 | 大小端通用的缓存行高效索引方法 |
CN117093510B (zh) * | 2023-05-30 | 2024-04-09 | 中国人民解放军军事科学院国防科技创新研究院 | 大小端通用的缓存行高效索引方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114356647B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114356647B (zh) | 一种eps系统数据编码及存储方法 | |
US5153591A (en) | Method and apparatus for encoding, decoding and transmitting data in compressed form | |
US6671694B2 (en) | System for and method of cache-efficient digital tree with rich pointers | |
US5442350A (en) | Method and means providing static dictionary structures for compressing character data and expanding compressed data | |
US5293616A (en) | Method and apparatus for representing and interrogating an index in a digital memory | |
US6865577B1 (en) | Method and system for efficiently retrieving information from a database | |
CN1278934A (zh) | 用于具有限制删除频率的存储器的存取控制 | |
JPS6254329A (ja) | フアイル装置へのデ−タの登録方法および検索方法 | |
CN108874987B (zh) | 表项管理方法、装置及交换芯片 | |
CN103345469B (zh) | 号码集合的存储、查询方法及其装置 | |
CN112988912B (zh) | 区块链数据存储方法及装置、电子设备 | |
CN112817538B (zh) | 数据处理的方法、装置、设备和存储介质 | |
CN112988761B (zh) | 区块链数据存储方法及装置、电子设备 | |
CN111930923A (zh) | 布隆过滤器系统及过滤方法 | |
CN105528183A (zh) | 一种存储数据的方法及存储设备 | |
CN112988909B (zh) | 区块链数据存储方法及装置、电子设备 | |
CN112988908B (zh) | 区块链数据存储方法及装置、电子设备 | |
CN112506811B (zh) | 基于固态硬盘内数据冷热划分的数据块动态分配方法、装置 | |
US3918027A (en) | Scanning and error checking apparatus for address development utilizing symmetric difference encoded data structure | |
US5262776A (en) | Process for use with lempel/gin encoding | |
CN112988910B (zh) | 区块链数据存储方法及装置、电子设备 | |
US7676651B2 (en) | Micro controller for decompressing and compressing variable length codes via a compressed code dictionary | |
US11822530B2 (en) | Augmentation to the succinct trie for multi-segment keys | |
CN109783024B (zh) | 数据存储处理方法及装置 | |
WO2020215951A1 (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 |