CN109871001B - Method for calibrating large data volume of engine - Google Patents

Method for calibrating large data volume of engine Download PDF

Info

Publication number
CN109871001B
CN109871001B CN201910168831.2A CN201910168831A CN109871001B CN 109871001 B CN109871001 B CN 109871001B CN 201910168831 A CN201910168831 A CN 201910168831A CN 109871001 B CN109871001 B CN 109871001B
Authority
CN
China
Prior art keywords
array
calibration
address
final value
engine
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
CN201910168831.2A
Other languages
Chinese (zh)
Other versions
CN109871001A (en
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.)
ISOFT INFRASTRUCTURE SOFTWARE CO Ltd
Original Assignee
ISOFT INFRASTRUCTURE SOFTWARE 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 ISOFT INFRASTRUCTURE SOFTWARE CO Ltd filed Critical ISOFT INFRASTRUCTURE SOFTWARE CO Ltd
Priority to CN201910168831.2A priority Critical patent/CN109871001B/en
Publication of CN109871001A publication Critical patent/CN109871001A/en
Application granted granted Critical
Publication of CN109871001B publication Critical patent/CN109871001B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The invention provides a method for calibrating large data volume of an engine, which is provided with an unmodifiable address array, and a modifiable mark array, a modifiable final value array and a modifiable pointer array. And taking the array serial number of the address information of the current calibration quantity in the address array as a first position serial number, and taking the array serial number of the calibration numerical value in the final value array as a second position serial number. And assigning the address of the final value array corresponding to the second position sequence number to the address information corresponding to the first position sequence number in the mark array, and assigning the second position sequence number to the value corresponding to the first position sequence number in the pointer array to finish the calibration operation of the current calibration quantity. The function of calibrating the large data volume of the engine controller is realized, and the definition of tens of thousands of calibration quantities can be supported in practical use: the total number of ten thousand calibration quantities is calibrated on line, and the required RAM space is about 43K. For engine controller manufacturers, a large amount of cost is reduced in large-scale mass production.

Description

Method for calibrating large data volume of engine
Technical Field
The invention relates to the field of data calibration, in particular to a method for calibrating large data volume of an engine.
Background
With the development of the automobile industry, the data volume for calibrating the engine module is larger and larger. The whole engine calibration is an important link in the development process of new vehicle types, and comprises whole vehicle emission calibration, drivability calibration and three-high calibration (high temperature, high cold and plateau), and through development tests, the vehicle meets national emission regulations, the comfort and smoothness of the vehicle are comprehensively improved, and the maximum power performance is exerted while the normal operation in various extreme environments is ensured.
There are two general calibration protocol stacks in the market at present:
the first Protocol is a CAN Calibration Protocol (CCP), which is an ECU (Electronic Control Unit) Calibration Protocol based on a CAN bus, and the Calibration amount is stored in a RAM (Random Access Memory) space of a chip by using a Memory mapping method and is mapped to a FLASH space.
Another is XCP (Universal Measurement and Calibration Protocol), where "X" means that the Protocol can run on multiple transport layers.
At present, the calibration function of big data required by similar engine controllers in the prior art cannot be met in a software level, so that a large enough RAM space is required to store calibration data in the actual calibration process, but the currently mainstream automobile-grade chip does not have RAM space more than megaly. In the face of this situation, only the external expansion chip can be selected to meet the storage requirement, but this way increases a lot of cost, which is unacceptable for most manufacturers.
Disclosure of Invention
In view of the above problems in the prior art, a method for calibrating a large data volume of an engine is provided.
The specific technical scheme is as follows:
a method for calibrating large data volume of an engine is applied to an engine controller, a plurality of calibration quantities are obtained from the engine controller in advance, and initial values of all the calibration quantities are stored in a first storage area in a memory;
presetting an unmodifiable address array for storing the address information of the calibration quantity in the memory according to the sequence of the address information from small to large;
presetting a modifiable tag array, wherein the content stored in the tag array is the same as the address array;
presetting a final value array for storing a calibrated value of the calibrated quantity after calibration; and
presetting a pointer array for storing the storage position of the calibration quantity in the final value array;
taking one calibration quantity in the final value array as a current calibration quantity, and performing calibration operation comprises the following steps:
s1, obtaining an array serial number of the address information of the current calibration quantity in the address array as a first position serial number;
s2, obtaining a serial number of the array of the calibration value in the final value array as a second position serial number;
s3, replacing the address information corresponding to the first position sequence number in the mark array by the address corresponding to the second position sequence number in the final value array;
s4, replacing the value corresponding to the first position sequence number in the pointer array with the second position sequence number;
and respectively carrying out calibration operation according to the steps S1-S4 on all the calibration quantities in the final value array so as to finish the calibration of the engine controller.
Preferably, in step S4, the initial value of the second position number is 0, and after the calibration operation of the current calibration amount is completed, the value of the second position number is updated by the sum of the current value of the second position number and the data length of the current calibration amount.
Preferably, after the step S4 is executed, a method for switching the calibration amount is further provided, a working page and a reference page are provided in advance, and the method specifically includes a step of switching from the working page to the reference page:
step A1, when a user switches from the working page to the reference page, caching data in the tag array;
and step A2, assigning the data in the address array to the tag array so as to present the uncalibrated data to the reference page.
Preferably, the method for scaling amount switching further comprises a step of switching from the reference page to the working page:
and B1, when the user switches from the reference page to the working page, restoring the data in the tag array cached before back to the tag array so as to present the calibrated data to the working page.
Preferably, the final value array is stored in a second storage area, and the initial state of the final value array is empty.
Preferably, the array length of the pointer array is the number of the scalar quantity in the final value array, and the initial state of the pointer array is null.
Preferably, the tag array is stored in the second storage area.
The technical scheme has the following advantages or beneficial effects:
according to the technical scheme, the function of large data volume calibration for the engine controller is realized by the method for calibrating the large data volume of the engine, and the definition of tens of thousands of calibration quantities can be supported in actual use: the total number of ten thousand calibration quantities is calibrated on line, and the required RAM space is about 43K. For an engine controller manufacturer, a large amount of cost is reduced in mass production, and the addition of the CCP or XCP standard protocol is completely supported, so that a user can use the XCP or CCP standard command flow for calibration.
Drawings
FIGS. 1-3 are schematic flow chart steps illustrating an embodiment of a method for calibrating a large data volume of an engine according to the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be obtained by a person skilled in the art without inventive efforts based on the embodiments of the present invention, shall fall within the scope of protection of the present invention.
It should be noted that the embodiments and features of the embodiments may be combined with each other without conflict.
The present invention will be further described with reference to the following figures 1-3 and specific examples, but is not intended to be limiting.
In a preferred embodiment of the present invention, based on the above problems in the prior art, a method for calibrating a large data volume of an engine is provided, which is applied to an engine controller, and is configured to obtain a plurality of calibration volumes from the engine controller in advance, and store initial values of all the calibration volumes in a first storage area of a memory;
presetting an unmodifiable address array for storing the address information of the calibration quantity in the memory according to the sequence of the address information from small to large;
presetting a modifiable mark array, wherein the content stored in the mark array is the same as the address array;
presetting a final value array for storing a calibrated value of the calibrated quantity; and
presetting a pointer array for storing the storage position of the calibration quantity in the final value array;
taking one calibration amount in the final value array as the current calibration amount, and performing calibration operation, as shown in fig. 1, including the following steps:
s1, obtaining an array serial number of the address information of the current standard quantity in an address array as a first position serial number;
s2, obtaining a serial number of a array with the calibration value positioned in the final value array as a second position serial number;
s3, replacing the address information corresponding to the first position serial number in the mark array by the address corresponding to the second position serial number in the final value array;
s4, replacing the value corresponding to the first position sequence number in the pointer array with the second position sequence number;
and (5) respectively carrying out calibration operation according to the steps S1-S4 aiming at all the calibration quantities in the final value array so as to finish the calibration of the engine controller.
According to the technical scheme, all initial values of the calibration quantity acquired from the engine controller are stored in a first storage area of a memory, and an unalterable address array Map _ addrFlash, an amendable mark array addrMapCur, a final value array addrMapBuf and a pointer array addrMapInd are set.
And writing the calibration value of the calibration quantity to be calibrated in the current calibration operation into the final value array addrMapBuf by the user, and taking one calibration quantity in the final value array addrMapBuf as the current calibration quantity. And taking the array serial number of the address information of the current calibration quantity in the address array Map _ addrFlash as a first position serial number, and taking the array serial number of the calibration numerical value in the final value array addrMapBuf as a second position serial number.
Assigning the address of the final value array addrMapBuf corresponding to the second position sequence number to the address information of the mark array addrMapCur corresponding to the first position sequence number, and covering the address information of the initial value of the calibration quantity stored in the original mark array addrMapCur with the address information of the calibrated final value array addrMapBuf storing the calibration value. And assigning the second position sequence number to the value corresponding to the first position sequence number in the pointer array, namely finishing the calibration operation of the current calibration quantity.
And then, calibrating all the calibration quantities in the final value array according to the process to finish the calibration of the engine controller. The function of calibrating the large data volume of the engine controller is realized, and the definition of tens of thousands of calibration quantities can be supported in practical use: the total number of ten thousand calibration quantities is calibrated on line, and the required RAM space is about 43K. For engine controller manufacturers, a large amount of cost is reduced in large-scale mass production.
Furthermore, the method completely supports adding on CCP or XCP standard protocol, users can use XCP or CCP standard command flow to carry out calibration, and the flushing operation and the data uploading operation are realized by using XCP/CCP standard protocol.
In a preferred embodiment, in step S4, the initial value of the second position number is 0, and after the calibration operation of the current calibration amount is completed, the value of the second position number is updated by the sum of the current value of the second position number and the data length of the current calibration amount.
As a preferred embodiment, as shown in fig. 2, after step S4 is executed, a method for switching the calibration amount is further provided, a working page and a reference page are provided in advance, and the method specifically includes a step of switching from the working page to the reference page:
a1, caching data in a tag array when a user switches from a working page to a reference page;
and step A2, assigning the data in the address array to the tag array so as to present the uncalibrated data to a reference page.
As a preferred embodiment, as shown in fig. 3, the method for calibrating amount switching further comprises a step of switching from the reference page to the working page:
and step B1, when the user switches from the reference page to the working page, restoring the data in the mark array cached before back to the mark array so as to present the calibrated data to the working page.
In the technical scheme, after the calibration quantity is calibrated, the working page is in a state, when a user needs to switch from the working page to the reference page, data of the addrMapCur mark array at the moment are cached, and then the value in the address array Map _ addrFlash is assigned to the addrMapCur mark array.
After the switching to the reference page is finished, under the condition that a working page is needed, the data cached before is assigned to the tag array addrMapCur again, and then the switching from the reference page to the working page can be finished.
By modifying the data in the tag array addrMapCur, when the engine controller is in a working page state, the data stored in the tagged tag array addrMapCur is the address information stored in the tagged value of the tagged quantity, and the engine controller can access and find the tagged quantity of the tagged quantity according to the address information only by the tag array addrMapCur when the engine controller works.
When the page is switched to the reference page, the data stored in the tag array addrMapCur is a numerical value in the address array Map _ addrFlash, that is, the memory can be accessed to find the initial value of the calibration quantity according to the address information by the tag array addrMapCur.
In a preferred embodiment, the final value array is stored in a second storage area, and the initial state of the final value array is empty.
In the above technical solution, the length of the final value array addrMapBuf can be set according to requirements.
Further, the second storage area is an area in the random access memory.
In a preferred embodiment, the array length of the pointer array is the number of scalar quantities in the final value array, and the initial state of the pointer array is null.
As a preferred embodiment, the tag array is stored in the second storage area.
In summary, the present invention provides a method for calibrating a large data volume of an engine, which, based on the above technical solution, further, takes a specific implementation as an example,
assume that the quantities quoted in memory are:
calibration amount 1: ceh _ cMIN, oxa0300000, size: 2;
calibration amount 2: ceh _ cMax, oxa0300002, size 2;
calibration amount 3: ceh _ cVPT, oxa0300004, size: 2;
for the following calibration amounts:
then, each scalar quantity generates a sequence number starting from 0 in a macro-defined manner according to the address size, which is exemplified as follows:
#define CALIDX_Ceh_cMin 0
#define CALIDX_Ceh_cMax 1
#define CALIDX_Ceh_cVPT 3
based on the above solution, further, taking a specific embodiment as an example, a calibration quantity Ceh _ cMax is obtained from the engine controller for calibration, and the value is to be changed to 11:
as can be seen from the above, the address of Ceh _ cMax is 0xa0300002, so that the same address information in the Map _ addrFlash array is that the serial number of the address array Map _ addrFlash is 1, that is, the first position serial number value is 1.
Since Ceh _ cMax is at the head of the final value array addrMapBuf, addrMapBuf [0] =11 is assigned,
assuming that the head address of the final value array addrMapBuf is 0xD000D000, addrMapCur [1] =0xD000D000,
since the Ceh _ cMax is located at the first position of the final value array addrMapBuf, namely the corresponding second position serial number is 0, assigning addrMapInd [1] =0;
the calibration amount Ceh _ cMax completes the calibration operation, and since the Ceh _ cMax is 2 bytes in size, the value of the second location number is increased by 2, i.e., the second location number is changed to 2.
Then, a calibration quantity Ceh _ cMIN is obtained for calibration, and the value is changed to be 2:
from the above, it can be known that the Ceh _ cMin address is 0xa0300000, so that the same address information in the Map _ addrFlash array is located in the Map _ addrFlash array with the serial number of 0, that is, the first position serial number value is 0;
since the second position number is changed to 2, addrMapBuf [2] =2 is assigned;
since the Ceh _ cMin has a size of 2 and occupies two bytes, the address where Ceh _ cMin starts to be stored in addrMapBuf is 0xD000D002, and addrMapCur [0] =0xD000D002;
similarly, since the scalar quantity Ceh _ cMin has a size of 2, occupies two byte positions, and the second position number is changed to 2, addrMapInd [0] =2.
While the invention has been described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.

Claims (6)

1. A method for calibrating large data volume of an engine is applied to an engine controller and is characterized in that a plurality of calibration volumes are obtained from the engine controller in advance, and initial values of all the calibration volumes are stored in a first storage area in a memory;
presetting an unmodifiable address array for storing the address information of the calibration quantity in the memory according to the sequence of the address information from small to large;
presetting a modifiable tag array, wherein the content stored in the tag array is the same as the address array;
presetting a final value array for storing a calibrated value of the calibrated quantity after calibration; and
presetting a pointer array for storing the storage position of the calibration quantity in the final value array;
taking one calibration quantity in the final value array as a current calibration quantity, and performing calibration operation comprises the following steps:
s1, obtaining an array serial number of the address information of the current calibration quantity in the address array as a first position serial number;
s2, obtaining a serial number of the array of the calibration numerical value in the final value array as a second position serial number;
s3, replacing the address information corresponding to the first position sequence number in the mark array by the address corresponding to the second position sequence number in the final value array;
s4, replacing the value corresponding to the first position sequence number in the pointer array with the second position sequence number;
respectively carrying out calibration operation according to the steps S1-S4 on all the calibration quantities in the final value array so as to finish the calibration of the engine controller;
the final value array is stored in a second storage area, the initial state of the final value array is empty, and the second storage area is an area in the random access memory.
2. The method for calibrating large data volume of engine according to claim 1, wherein in step S4, the initial value of the second position number is 0, and after the calibration operation of the current calibration volume is completed, the value of the second position number is updated by the sum of the current value of the second position number and the data length of the current calibration volume.
3. The method for calibrating the large data volume of the engine according to claim 1, wherein after the step S4 is executed, a method for calibrating quantity switching is further provided, a working page and a reference page are provided in advance, and the method specifically comprises a step of switching from the working page to the reference page:
step A1, when a user switches from the working page to the reference page, caching data in the tag array;
and step A2, assigning the data in the address array to the tag array so as to present the uncalibrated data to the reference page.
4. A method of engine mass calibration as recited in claim 3, wherein said method of calibration amount switching further comprises a step of switching from said reference page to said active page:
and B1, when the user switches from the reference page to the working page, restoring the data in the tag array cached before back to the tag array so as to present the calibrated data to the working page.
5. The method of calibrating a large amount of data for an engine of claim 1, wherein said array length of said array of pointers is the number of said calibration amounts in said final array of values, and said array of pointers is initially empty.
6. A method of engine mass calibration as set forth in claim 1 wherein said array of markers is stored in said second memory area.
CN201910168831.2A 2019-03-06 2019-03-06 Method for calibrating large data volume of engine Active CN109871001B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910168831.2A CN109871001B (en) 2019-03-06 2019-03-06 Method for calibrating large data volume of engine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910168831.2A CN109871001B (en) 2019-03-06 2019-03-06 Method for calibrating large data volume of engine

Publications (2)

Publication Number Publication Date
CN109871001A CN109871001A (en) 2019-06-11
CN109871001B true CN109871001B (en) 2023-04-18

Family

ID=66919953

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910168831.2A Active CN109871001B (en) 2019-03-06 2019-03-06 Method for calibrating large data volume of engine

Country Status (1)

Country Link
CN (1) CN109871001B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110287153B (en) * 2019-06-29 2021-05-18 潍柴动力股份有限公司 Method and device for detecting A2L standard quantity address range conflict
CN110825444B (en) * 2019-09-19 2023-10-20 潍柴动力股份有限公司 Pin configuration method of electronic control unit

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003233632A (en) * 2002-02-07 2003-08-22 Sanyo Electric Co Ltd Integrated circuit device including pointer circuit, design method for the integrated circuit and design support device
CN102446138A (en) * 2011-09-19 2012-05-09 清华大学 Method for calibrating MAP data of single chip system
CN103176812A (en) * 2011-12-26 2013-06-26 联创汽车电子有限公司 Method for covering and solidifying off-line calibration data
CN105264500A (en) * 2014-04-14 2016-01-20 华为技术有限公司 Data transmission method and apparatus
CN106127786A (en) * 2016-07-04 2016-11-16 大连理工大学 The Fast Calibration of a kind of complicated connected region feature and extracting method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4215063C2 (en) * 1991-05-10 1999-11-25 Intel Corp Device and method for changing pages in a non-volatile memory
US7213041B2 (en) * 2004-10-05 2007-05-01 Unisys Corporation Saving and restoring an interlocking trees datastore
CN104199787B (en) * 2014-08-28 2017-08-11 北京经纬恒润科技有限公司 A kind of method and system for realizing demarcation page handoff functionality
CN107015914B (en) * 2016-01-28 2020-12-22 长城汽车股份有限公司 Data calibration method and system
CN105868129B (en) * 2016-03-24 2018-12-28 安徽师范大学 Embedded system demarcate when working page and refer to page switching method
CN109359061A (en) * 2018-10-11 2019-02-19 上海英恒电子有限公司 A kind of scaling method, device, equipment and storage medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003233632A (en) * 2002-02-07 2003-08-22 Sanyo Electric Co Ltd Integrated circuit device including pointer circuit, design method for the integrated circuit and design support device
CN102446138A (en) * 2011-09-19 2012-05-09 清华大学 Method for calibrating MAP data of single chip system
CN103176812A (en) * 2011-12-26 2013-06-26 联创汽车电子有限公司 Method for covering and solidifying off-line calibration data
CN105264500A (en) * 2014-04-14 2016-01-20 华为技术有限公司 Data transmission method and apparatus
CN106127786A (en) * 2016-07-04 2016-11-16 大连理工大学 The Fast Calibration of a kind of complicated connected region feature and extracting method

Also Published As

Publication number Publication date
CN109871001A (en) 2019-06-11

Similar Documents

Publication Publication Date Title
CN102792285B (en) For the treatment of the apparatus and method of data
CN1914598B (en) Semiconductor device and method for activating the same
US6505105B2 (en) Electronic control unit calibration
CN109871001B (en) Method for calibrating large data volume of engine
TWI544334B (en) Data storage device and operating method thereof
CN101038783B (en) Semiconductor memory, memory system, and operation method of memory system
CN102968378B (en) A kind of method of random memory, Apparatus and system
CN101479805A (en) Flash memory device and a method for using the same
CN104346293A (en) Data access method, module, processor and terminal device for hybrid memory
CN101334758A (en) Device and method for embedded system expanding memory space
CN103412829B (en) Expand the method and device of MCU program address space
CN115168247B (en) Method for dynamically sharing memory space in parallel processor and corresponding processor
US20050005057A1 (en) [nonvolatile memory unit with page cache]
EP2362954A2 (en) Method and apparatus for data storage and access
CN102446138B (en) Method for calibrating MAP data of single chip system
CN103632185A (en) Covering film intelligent card with extended functions
EP2764439B1 (en) Mapping persistent storage
US20070271439A1 (en) Method and device for managing a memory access look-up table
CN110334034B (en) Mapping table dynamic loading method and device, computer equipment and storage medium
US11755211B2 (en) Overhead reduction in data transfer protocol for NAND memory
CN107861887B (en) Control method of serial volatile memory
CN106547625B (en) Memory allocation method and device of financial terminal
CN106095338A (en) The erasable implementation method of a kind of memory chip and realize system
CN116737613A (en) Mapping table management method and memory
KR20050110006A (en) Memory management in a data processing system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Wang Qin

Inventor after: Zhang Xiaoxian

Inventor after: Zhou Peng

Inventor after: Zhu Li

Inventor after: Wu Lianren

Inventor before: Wang Qin

Inventor before: Zhang Xiaoxian

Inventor before: Zhu Li

Inventor before: Wu Lianren

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant