IP Library Granted Patent US 12,200,086
Granted Patent B2
US 12,200,086 · App. 17/638,097 · Granted Jan 14, 2025

Method for compressing can-bus data

Inventors: Eyal Kamir (Ganei Tikva, IL); Alexander Fok (Rehovot, IL); Liran Zwickel (Or Yehuda, IL)
Assignee: ENIGMATOS LTD.
H04L69/04G06F13/36H04L12/40H04L67/12H04L69/22H04L2012/40215H04L2012/40273
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,200,086
App. No.
17/638,097
Granted
Jan 14, 2025
Kind
B2
Abstract

A method for compressing a flow of CAN-bus messages, which comprises: (A) during a training stage: (a) determining at least one series-type pattern; (b) defining a compressed series-type command for each of said patterns, each command comprising parameters of: (b.1) a timestamp of a first message; (b.2) a message-ID; (b.3) a type of pattern; (b.4) an indication of a field within the messages; (b.5) a parameter value at the first message; (b.6) period between messages; and (b.7) number of messages; (B) during a compression stage: (c) dividing a record of CAN-bus messages into groups of a same message-ID; (d) within each group, finding messages of a same pattern; (e) for each series, forming a compressed command in a form as defined with values for at least several parameters; and (C) during a decompression stage: (f) using the series-type compressed commands to reconstruct the content of the series of messages.

Claims (48)

1. A method, comprising:

during a training stage:

determining and assigning an index to at least one function-type pattern within a training flow of messages, each of the at least one function-type pattern spanning data values that appear in a data field of a sequential series of Controller Area Network (CAN-bus) messages having a same message-ID;

defining a function-type compressed command for each of said function-type patterns, each function-type compressed command comprising a message-ID of the series, an index of the respective function-type pattern, a parameter for a value indication at a message in the series, a period between messages of the series, and a number of messages in the series;

during a compression stage:

dividing a record of a flow of CAN-bus messages into groups, each group relating to messages having a same message-ID;

within each group, finding one or more series of messages of a same function-type pattern, each series spanning at least 5 messages;

for each series of messages that is found, forming said function-type compressed command in a form as defined in the training stage, said function-type compressed command comprising values for at least several of the parameters as defined for that function-type compressed command during the training stage; and

during a decompression stage:

using said function-type compressed command to reconstruct at least a portion of content of a respective series of messages, wherein said function-type compressed command populates respective values within a respective data field or a portion thereof of each individual of said reconstructed messages.

2. The method of claim 1 , wherein the function-type pattern appears within a data field of the message or within a portion thereof.

3. The method of claim 2 , wherein a function is a counter function or a data-field cyclic redundancy check (CRC) function causing respectively a function-type pattern of values to appear within one or more data fields or portion thereof of consecutive messages of a same message ID, and wherein the decompression stage populates said values within respective one or more data fields of the reconstructed series of messages.

4. The method of claim 1 , wherein the function-type pattern is a constant value appearing within a data field of a message or within a portion thereof, and wherein during the decompression stage said function-type compressed command populates said constant value within the respective data field of the reconstructed series of messages.

5. The method of claim 4 , wherein the training stage further comprises:

determining a plurality of constant values that statistically repeat a plurality of times in one or more data fields of messages or portions thereof;

sequentially indexing constant values that most commonly appear; and

wherein each constant-type command during the compression stage contains an index of one or more of the constant values rather than a respective constant value itself.

6. The method of claim 1 , further comprising:

a step of indexing all the IDs in the training flow of the CAN-bus messages in sequential order; and

during the compression stage inclusion within each function-type compressed command the index of the ID, rather than a true message-ID as originally appears on the CAN-bus.

7. The method of claim 1 , further comprising an inclusion within the function-type compressed command of one or more delay indications relative to an expected timestamp based on a known period between function-type compressed commands in that respective series.

8. The method of claim 1 , further comprising one or more compressed commands for introducing one or more specific values within one or more data fields of individual reconstructed messages.

9. The method of claim 1 , wherein a plurality of said function-type compressed commands reconstruct a single CAN-bus message.

10. The method of claim 1 , wherein a different function-type compressed command is assigned for each function-type pattern, rather than indicating the index of the function-type pattern as a parameter value within the function-type compressed command.

11. The method of claim 1 , wherein the decompression of the function-type compressed commands uses metadata that is conveyed from a compression location to a decompression location within a header.

12. The method of claim 11 , wherein the header's metadata contains one or more of: indexing information of the message-IDs, indexing information of constants, and details about specific functions behavior thereby to enable a decompression side to convert the function-type compressed command to values within one or more data fields of different reconstructed messages.

13. The method of claim 1 , wherein said defining of the function-type compressed command further comprises an indication of a data field or a portion thereof within the messages where the function-type pattern appears.

14. The method of claim 1 , wherein each function-type command further comprises a timestamp of a message in the sequential series.

15. A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform operations comprising:

during a training stage:

determining and assigning an index to at least one function-type pattern within a training flow of messages, each function-type pattern spanning data values that appear in a data field of a sequential series of Controller Area Network (CAN-bus) messages having a same message-ID;

defining a function-type compressed command for each of said function-type patterns, each function-type compressed command comprising a message-ID of the series, an index of the respective function-type pattern, a parameter for a value indication at a message in the series, a period between messages of the series, and a number of messages in the series;

during a compression stage:

dividing a record of a flow of CAN-bus messages into groups, each group relating to messages having a same message-ID;

within each group, finding one or more series of messages of a same function-type pattern, each series spanning at least 5 messages;

for each series of messages that is found, forming said function-type compressed command in a form as defined in the training stage, said function-type compressed command comprising values for at least several of the parameters as defined for that function-type compressed command during the training stage; and

during a decompression stage:

using said function-type compressed command to reconstruct at least a portion of content of a respective series of messages, wherein said function-type compressed command populates respective values within a respective data field or a portion thereof of each individual of said reconstructed messages.

16. A computer system with a memory storing instructions and a processor configured to execute the instructions to perform a method, comprising:

during a training stage:

determining and assigning an index to at least one function-type pattern within a training flow of messages, each function-type pattern spanning data values that appear in a data field of a sequential series of Controller Area Network (CAN-bus) messages having a same message-ID;

defining a function-type compressed command for each of said function-type patterns, each function-type compressed command comprising a message-ID of the series, an index of the respective function-type pattern, a parameter for a value indication at a message in the series, a period between messages of the series, and a number of messages in the series;

during a compression stage:

dividing a record of a flow of CAN-bus messages into groups, each group relating to messages having a same message-ID;

within each group, finding one or more series of messages of a same function-type pattern, each series spanning at least 5 messages;

for each series of messages that is found, forming said function-type compressed command in a form as defined in the training stage, said function-type compressed command comprising values for at least several of the parameters as defined for that function-type compressed command during the training stage; and

during a decompression stage:

using said function-type compressed command to reconstruct at least a portion of content of a respective series of messages, wherein said function-type compressed command populates respective values within a respective data field or a portion thereof of each individual of said reconstructed messages.

Assignments (2)
SECURITY INTEREST Recorded Nov 16, 2023
From: ENIGMATOS LTD.
To: SHAYKE AVIZARIM UMAARACHOT STERIO LARECHEV LTD.
Reel/Frame 065590/0016 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2022
From: KAMIR, EYAL; FOK, ALEXANDER; ZWICKEL, LIRAN
To: ENIGMATOS LTD.
Reel/Frame 059149/0573 →
Continuity (3)
Provisional Application 63026162 · May 18, 2020
Provisional Application 62893192 · Aug 29, 2019
Related Publication 20220303362A1 · Sep 22, 2022
References Cited (14)
US 10701102B2 · Zeng · 2020 [cited by examiner]
US 20090300039A1 · Stengelin · 2009 [cited by examiner]
US 20170092018A1 · Throop et al. · 2017 [cited by applicant]
US 20180241852A1 · Maluf · 2018 [cited by examiner]
US 20190141133A1 · Rajan et al. · 2019 [cited by applicant]
US 20190385057A1 · Litichever · 2019 [cited by examiner]
US 20200053112A1 · Torisaki · 2020 [cited by examiner]
US 20210274010A1 · Stein · 2021 [cited by examiner]
US 20220159098A1 · Stein · 2022 [cited by examiner]
US 20230275877A1 · Harel · 2023 [cited by examiner]
CN 105099843 · 2015 [cited by applicant]
An Adaptive Data-Reduction Protocol for the Future In-Vehicle Networks. Sae Technical Paper Series (Retrieved on Oct. 26, 2020). Retrieved from the Internet: https://pdfs.semanticscholar.org/5adc/ea0ccf267f64bfbce16365d… [cited by applicant]
Memory-aware Online Compression of CAN Bus Data for Future Vehicular Systems. (Retrieved on Oct. 26, 2020). Retrieved from the Internet: https://pure.au.dk/portal/files/194854433/main.pdf; Yazdani, N. et al., Jul. 20, 2… [cited by applicant]
International Search Report and Written Opinion issued on Oct. 28, 2020 in International Patent Application No. PCT/IL2020/050939 (9 pages, in English). [cited by applicant]
Cited By (1)
US 12,425,494