Method and system for processing coherent data
By dividing the coherent data into two separate CAN frames and applying the same coherent number, the problem of data transmission delay or error in the CAN bus is solved, and the correct matching and output of the data is achieved, improving the stability of the system.
Patent Information
- Application Number
- CN202010985059.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-09-19
- Filing Date
- 2020-09-18
- Publication Date
- 2025-02-28
- Estimated Expiration
- 2040-09-18
AI Technical Summary
In the controller local area network (CAN) bus, coherent data exceeds the maximum data capacity of a single CAN frame, resulting in delays or errors in data transmission, affecting the normal operation of the system.
By dividing the coherent data into two separate frames and applying the same coherent number, ensure that the frames match and output to the downstream logic. The method includes selecting the same coherent number in the sending module and determining the frame matching situation in the receiving module through the buffer and the alignment module.
The coherent data exceeding the CAN frame data capacity is effectively processed, which reduces delays and errors, ensures correct data matching and output, and improves the stability and reliability of the system.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a method and a system for processing coherent data. Background Art
[0002] The Controller Area Network (CAN) bus is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each other in applications without a host computer. It is a message-based protocol that was originally designed for multiple wires in cars to save copper, but can also be used in many other environments.
[0003] A modern car may have as many as seventy electronic control units (ECUs) for various subsystems. Typically the largest processor is the engine control unit. Others are used for the transmission, airbags, anti-lock brake system / ABS, cruise control, electric steering, audio system, power windows, doors, mirror adjustment, battery and charging systems for hybrid / electric vehicles, etc. Some of these form independent subsystems, but communication between others is essential. A controller or subsystem may need to control an actuator or receive feedback from a sensor. The Controller Area Network (CAN) standard was designed to facilitate information communication between controllers, i.e. sensor information read by one controller can be shared with other controllers. A key advantage is that interconnection between different vehicle systems can allow a wide range of safety, economic and convenience features to be implemented using software alone, features that would add cost and complexity if these were "hardwired" using traditional automotive electronics.
[0004] In a Controller Area Network (CAN) bus, data is communicated via frames. A frame has a maximum data capacity. Coherent data, i.e. data that is obtained simultaneously and should be processed coherently, may exceed the maximum data capacity of a CAN frame.
[0005] Therefore, it is desirable to provide methods, systems, and computer-readable storage media for processing coherent data that exceeds the data capacity of a CAN frame. In addition, it is desirable to provide such methods, systems, and computer-readable storage media to overcome delays or errors in data transmission over a CAN bus. In addition, other desirable features and characteristics will become apparent from the following detailed description and the appended claims, taken in conjunction with the accompanying drawings and introduction. Summary of the invention
[0006] A method, system and computer readable storage medium for processing coherent data are provided. In one embodiment, the method for processing coherent data includes dividing the coherent data into two separate frames. In addition, the method includes applying the same coherence number to the two separate frames and sending a signal including the two separate frames to a receiving module. The method also includes determining whether the two separate frames match based on the same coherence number. When the two separate frames match, the method outputs the two separate frames to downstream logic.
[0007] In the method, applying the same coherence number to the two separated frames may include selecting the same coherence number from a bit-limited rolling counter value. In addition, applying the same coherence number to the two separated frames may occur simultaneously with sending a signal including the two separated frames to the receiving module. In some embodiments, the same coherence number is selected based on the time of signal transmission. In other embodiments, the method includes obtaining coherence data with the transmitting module, such as by reading or sampling sensor or input data, and selecting the same coherence number based on the time when the coherence data is obtained, i.e., the time when the sensor or input data is sampled or read.
[0008] In certain embodiments, the method further includes reading or sampling vehicle sensor data from a vehicle sensor using a transmitting module within the vehicle, wherein the vehicle sensor data is coherent data; transmitting the coherent data to a receiving module within the same vehicle; processing the coherent data from two separate frames for downstream logic; and operating the vehicle based on the downstream logic; wherein the transmitting module divides the coherent data into two separate frames, applies the same coherence number to the two separate frames, and sends a signal including the two separated frames to the receiving module; and wherein the receiving module determines whether the two separated frames match based on the same coherence number, and outputs the two separated frames to the downstream logic when the two separated frames match.
[0009] The method may also include adding two separated frames to a buffer filled with a selected number of recently received frames, and when the two separated frames do not match, identifying a selected frame from the two separated frames, and searching the buffer for a matching frame from the recently received frames, such as by selecting a matching frame based on a coherence number. In such an embodiment, the method may further include identifying a matching frame from the recently received frames, and outputting the selected frame and the matching frame to downstream logic. In certain embodiments, the method may further include confirming that the recently received frames do not include a matching frame, and setting a coherence error indication. In addition or alternatively, this method may also include analyzing the recently received frames to identify an expected coherence number or coherence number range. In certain embodiments, the coherence number of each of the two separated frames is compared with an expected coherence number or coherence number range.
[0010] In another embodiment, a system for processing coherent data is provided. The system includes a communication network coupled by a communication bus, a transmission module configured to transmit a signal including coherent data divided between two separate CAN frames and applying the same coherence number to the two separate CAN frames, a receiving module including a buffer for storing a selected number of recently received frames, and an alignment module for matching frames based on the coherence number of each frame. In some embodiments, the system also includes downstream logic configured to receive matched frames from the alignment module.
[0011] In the system, the transmitting module can be configured to select the same coherence number from the bit-limited rolling counter value. In addition, the transmitting module can be configured to apply the same coherence number to two separate CAN frames while transmitting the signal to the receiving module. In addition, the transmitting module can be configured to select the same coherence number based on the time when the signal is transmitted. Alternatively, the transmitting module can be configured to select the same coherence number based on the time when the coherence data is obtained, i.e., the time when the sensor or input data is sampled or read.
[0012] In some embodiments, the alignment module may be configured to search the buffer to find a matching frame from the most recently received frames. In addition, the alignment module may be configured to set a coherence error indication when the most recently received frames do not include a matching frame.
[0013] Additionally, in the system, the alignment module may be configured to analyze a most recently received frame to identify an expected coherence number or range of coherence numbers and compare the coherence number of each of the two separated frames to the expected coherence number or range of coherence numbers.
[0014] Another embodiment includes a non-transitory computer-readable storage medium having program instructions embedded therein, the program instructions being readable by a processor to cause the processor to perform a method for processing coherent data, the method comprising dividing the coherent data into two separate frames, applying the same coherence number to the two separate frames, transmitting a signal including the two separate frames to a receiving module, determining whether the two separate frames match based on the same coherence number, and outputting the two separate frames to downstream logic when the two separate frames match. In some embodiments, the same coherence number is selected from a bit limit rolling counter value.
[0015] This summary is provided to introduce some concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] The present subject matter will be described below in conjunction with the following drawings, wherein like numerals represent like elements, and wherein:
[0017] Figure 1 is a schematic diagram of a system for processing coherent data according to an embodiment of the present invention;
[0018] Figure 2 is a flow chart illustrating a method for processing coherent data according to one or more embodiments. DETAILED DESCRIPTION
[0019] The following detailed description is merely illustrative in nature and is not intended to limit the embodiments of the methods, systems, and computer-readable storage media for processing coherent data described herein. As used herein, the word "exemplary" means "used as an example, instance, or illustration". Any embodiment described as exemplary herein is not necessarily to be construed as being preferred or advantageous over other embodiments. In addition, it is not intended to be bound by any express or implied theory presented in the preceding technical field, background technology, summary of the invention, or the following detailed description. It should be understood that in all the drawings, corresponding figure numerals represent similar or corresponding components and features. As used herein, the term module refers to a processing circuit, which may include an application-specific integrated circuit, an electronic circuit, a processor (shared, dedicated, or grouped) and a memory, a combinational logic circuit, and / or other suitable components that execute one or more software or firmware programs and / or provide the functions.
[0020] The embodiments of this article may be described below with reference to the schematic diagram or flow chart of the method, system, device or apparatus that can adopt programming and computer program products.It should be understood that the combination of the frame and frame illustrated schematically or in the flow chart can be implemented by programming instructions including computer program instructions.These computer program instructions can be loaded onto a computer or other programmable data processing device (such as a controller, a microcontroller or a processor) to produce a machine, so that the instructions executed on the computer or other programmable data processing device create instructions for implementing the functions specified in the flowchart block or multiple blocks.These computer program instructions can also be stored in a computer-readable memory, which can instruct a computer or other programmable data processing device to operate in a particular manner, so that the instructions stored in the computer-readable memory produce products including instructions for implementing the functions specified in the flowchart block or multiple blocks.Computer program instructions can also be loaded onto a computer or other programmable data processing device, so that a series of operating steps are performed on a computer or other programmable device, thereby generating a computer-implemented process, so that the instructions executed on a computer or other programmable device provide steps for implementing the functions specified in the flowchart block.Programming instructions can also be stored in and / or implemented by electronic circuits, including integrated circuits and application-specific integrated circuits used in combination with sensor devices, devices and systems.
[0021] As described herein, methods, systems, and computer-readable storage media for processing data in a controller area network (CAN) are provided. More specifically, the coherent data processing scheme described herein provides for processing an amount of data greater than the limit of a single CAN frame. Specifically, embodiments herein provide for segmenting coherent data into two or more independent CAN frames, and successfully sending and receiving such CAN frames while eliminating or reducing mismatches in coherent data due to frame delays. As a result, the systems and methods described herein can ensure that the coherent data processed by downstream logic is the same set as that sent by the original control module.
[0022] When a set of data transmitted from a device exceeds the capacity of a single CAN network frame, the data is transmitted in multiple separate frames close to each other. Between the variation in CAN transmit times and the execution rate of the receiving device logic, these separate frames may not be processed as the same set or pair expected by the transmitter. When the data in two frames is coherent, it is necessary to ensure that each frame received is correctly paired for use by downstream logic.
[0023] Sending a timestamp in each frame of data will quickly lead to a bit overflow on a CAN frame. Therefore, the embodiments described herein do not send timestamps together with data frames. Instead, the embodiments described herein use coherence numbers instead of timestamps. In an exemplary embodiment, the coherence numbers are selected from a limited range of values that roll over each time the bit register is filled. Therefore, each coherence number is a bit-limited rolling number that is used to verify the time point at which the message is sent from the sending module. In the exemplary embodiment of this article, the sending module simultaneously assigns coherence numbers to CNA frames and sends CAN frames including the coherence numbers.
[0024] In addition, in the embodiments described herein, the receiving module that receives the CAN frame adopts an alignment process. In certain embodiments, the exemplary receiving module includes a buffer for storing a specified limited number of recently received messages (frames). The buffer is a storage mechanism for storing recent message history so that the alignment process can extract information from it. The alignment process uses the output from the buffer to evaluate the coherence number associated with the unique frame to intelligently process them through the host controller according to the intention of the transmitting controller.
[0025] The exemplary receiving module further applies an algorithm that uses the coherence numbers to align any mismatched data received from the transmitting module. The algorithm can utilize existing diagnostic data and can be utilized by downstream diagnostics. This allows the buffer and alignment algorithm to be easily integrated into existing software loops.
[0026] Using upstream diagnostic information, the alignment process and buffers use processing power only under ideal conditions. The alignment process sends its own diagnostic information downstream to prevent its data from being processed under misaligned conditions.
[0027] Therefore, when the CNA frames on the receive module are not aligned, valid data pairs can be cascaded within the buffer to make accurate control decisions. In the event that the buffer does not contain a valid data pair, downstream diagnostics that rely on that data will be suspended until valid data can be paired. Poor alignment will trigger a diagnostic trouble code and can alert the service technician to a specific fault that has occurred.
[0028] As described further herein, the coherent data on separate frames may be offset such that parallel processing of the coherent data is inhibited.
[0029] Therefore, a system and method is provided having an algorithm that provides strictly coherent data when two or more frames containing such coherent data are received from a controller area network. In an exemplary embodiment, a rolling counter value (e.g., 0 to 15), a storage buffer, and a set of algorithms are used to diagnose and realign the data from the separated frames when a drift in the rolling counter value between frames is encountered. The data is then provided to downstream application software in a coherent form.
[0030] While other systems may discard data that is found to be irrelevant, the embodiments described herein provide for matching data sets to create pairs or groups of frames that retain coherent data. Thus, safety-critical information that must be used consistently can be packaged into independent CAN frames. As a result, the embodiments described herein meet network security protection requirements while maintaining the fidelity of safety-critical information.
[0031] Figure 1 A schematic diagram of a motor vehicle 70 is provided, which includes a system 100 for processing coherent data 10, such as a controller area network. As shown, the coherent data 10 is initially received or generated by a transmitting module 20 and is divided into two separate and different controller area network (CAN) frames or data sets 11 and 12. Although two frames are shown, it should be understood that the coherent data 10 can be divided into a greater number of frames as needed. In some embodiments, the transmitting module 20 samples or reads sensor or input data to obtain the coherent data 10.
[0032] In an exemplary embodiment, the transmission module 20 obtains the relevant data 10 in the form of vehicle sensor data from the vehicle sensor 60. The exemplary vehicle sensor 60 monitors the operating condition or performance of the vehicle component 65. The vehicle 70 may include various sensors 60 for providing or obtaining information from the corresponding vehicle component 65. For example, the sensor 60 may include a transmission shift position sensor, a transmission output speed sensor, a wheel speed sensor, a crank position sensor, a cam position sensor, a brake pedal position sensor, an accelerator pedal position sensor, or other sensors commonly used in automobiles.
[0033] exist Figure 1In the example, after the coherent data 10 is divided into CAN frames 11 and 12, the CAN frames 11 and 12 are sent from the sending module 20 and are assigned a coherent number 15 at the same time. In an exemplary embodiment, the CAN transceiver or CAN transmission logic 25 in the sending module 20 of the controller area network 100 assigns the coherent number 15 and sends the CAN frames 11 and 12. The coherent number 15 is stored in each frame. The coherent number 15 represents a timestamp. For example, the coherent number is assigned to 0 from time = 0 to time = 20ms, the coherent number is assigned to 1 from time = 20ms to time = 40ms, and the coherent number is assigned to 2 from time = 40ms to time = 60ms, and so on, until the rolling counter is reset, for example, from 15 back to 0. In some embodiments, the coherent number is set based on the time when the sensor or input data is sampled or read by the sending module 20. In other embodiments, the coherent number is set based on the time when the frame is sent.
[0034] CAN frames 11 and 12 communicate in a communication network coupled by a communication bus, such as Figure 1 As shown by the arrow in the middle. Figure 1 As shown, CAN frames 11 and 12 are received by receiving module 30 and placed in buffer 35 within coherence and input data processing module 45. A selected number of recently received CAN frames 06, 07, 08, and 09 are also stored in buffer 35. In an exemplary embodiment, frames 06, 08, and 11 contain the same set of information, which changes dynamically over time. Similarly, frames 07, 09, and 12 contain the same set of information, which changes dynamically over time.
[0035] In the buffer 35, the coherence numbers 15 of the CAN frames 11 and 12 are compared. Assuming that no delays or errors are encountered in the process of assigning coherence numbers, sending CAN frames 11 and 12, and receiving CAN frames 11 and 12, the coherence numbers 15 of the CAN frames should be the same, i.e., matched. When the coherence numbers 15 of the CAN frames match, the data in the CAN frames 11 and 12 are sent to the downstream controller logic 50.
[0036] However, if the coherence number 15 of the CAN frames 11 and 12 do not match, the receiving module 30 searches the buffer 35 using the alignment module 40 within the coherence and input data processing module 45. The following table provides an example of the alignment process when receiving a pair of CAN frames 11 and 12 (i.e., data sets A and B) with a coherence number of 15 (i.e., coherence A and coherence B).
[0037]
[0038] In Table 1, at time = 0ms, the first frame 11 or data set A is received as set 0 with a coherence number (coherence A) of 0, and the second frame 12 or data set B is received as set 0 with a coherence number (coherence B) of 0. Because the coherence numbers of the CAN frames are all 0, data sets A and B can be output to the downstream controller logic at time = 0ms. Similarly, at time = 50ms, the first frame 11 or data set A is received as set 1 with a coherence number (coherence A) of 1, and the second frame 12 or data set B is received as set 1 with a coherence number (coherence B) of 1. Because the coherence numbers of the CAN frames are all 1, data sets A and B can be output to the downstream controller logic at time = 50ms. As shown in Table 1, data sets A and B in each time period match and can be output to the downstream controller logic as output data sets A and B.
[0039]
[0040] In Table 2, at time = 0ms, the first frame 11 or data set A is received as set 0 with a coherence number (coherence A) of 0, and the second frame 12 or data set B is received as set 1 with a coherence number (coherence B) of 1. Due to the mismatch in the coherence numbers of the CAN frames, data sets A and B are not output together to the downstream controller logic at time = 0ms. The alignment module is then used to search the buffer for a match with the coherence number of either data set. Assuming that the earlier received data set B, such as data set B at time = -50ms (not shown in Table 2), has a coherence number of 0, then data set A (set 0) from time = 0ms and data set B (set 0) from time = -50ms are matched by the alignment module and output together as output data sets A and B to the downstream controller logic
[0041] Similarly, data set A (set 1) from time = 50ms and data set B (set 1) from time = 0ms will be matched by the alignment module and output together to the downstream controller logic; data set A (set 2) from time = 100ms and data set B (set 2) from time = 50ms will be matched by the alignment module and output together to the downstream controller logic; data set A (set 3) from time = 150ms and data set B (set 3) from time = 100ms will be matched by the alignment module and output together to the downstream controller logic; and data set A (set 4) from time = 200ms and data set B (set 4) from time = 150ms will be matched by the alignment module and output together to the downstream controller logic. It can be seen that the transmission of each data set B to the downstream controller logic is delayed by at least 50ms to wait for the arrival of the matching corresponding data set A.
[0042]
[0043] In Table 3, at time = 0 ms, the first frame 11 or data set A is received as set 0 with a coherence number (coherence A) of 0, and the second frame 12 or data set B is received as set 2 with a coherence number (coherence B) of 2. Due to the mismatch in the coherence numbers of the CAN frames, data sets A and B are not output together to the downstream controller logic at time = 0 ms. The alignment module is then used to search the buffer for a match with the coherence number of either data set. Assuming that the earlier received data set B, such as data set B at time = -100 ms (not shown in Table 3), has a coherence number of 0, then data set A (set 0) from time = 0 ms and data set B (set 0) from time = -100 ms are matched by the alignment module and output together as output data sets A and B to the downstream controller logic
[0044] At time = 50ms, the first frame 11 or data set A is received as set 1 with a coherence number (coherence A) of 1, and the second frame 12 or data set B is received as set 3 with a coherence number (coherence B) of 3. Due to the mismatch in the coherence numbers of the CAN frames, data sets A and B are not output together to the downstream controller logic at time = 50ms. The alignment module is then used to search the buffer to find a match with the coherence number of either data set. Assuming that the earlier received data set B, such as data set B at time = -50ms (not shown in Table 3), has a coherence number of 1, then data set A (set 1) from time = 50ms and data set B (set 1) from time = -50ms are matched by the alignment module and output together as output data sets A and B to the downstream controller logic.
[0045] Similarly, data set A (set 2) from time = 100ms and data set B (set 2) from time = 0ms will be matched by the alignment module and output together to the downstream controller logic; data set A (set 3) from time = 150ms and data set B (set 3) from time = 50ms will be matched by the alignment module and output together to the downstream controller logic; data set A (set 4) from time = 200ms and data set B (set 4) from time = 100ms will be matched by the alignment module and output together to the downstream controller logic. It can be seen that the transmission of each data set B to the downstream controller logic is delayed by at least 100ms to wait for the arrival of the matching corresponding data set A.
[0046]
[0047] Table 4 shows that restrictions can be placed on the search for data set matching. Specifically, the system can be set to search for a match in the buffer only within the two most recently received frames. Therefore, in Table 4, at time = 0 ms, the first frame 11 or data set A is received as set 0 with a coherence number (coherence A) of 0, and the second frame 12 or data set B is received as set 3 with a coherence number (coherence B) of 3. Due to the mismatch in the coherence numbers of the CAN frames, data sets A and B are not output together to the downstream controller logic at time = 0 ms. The alignment module is then used to search the buffer for a match with the coherence number of either data set, but only within the two most recently received frames, for example, at t = -50 and t = -100. Assuming that data set A with a coherence number of 3 is not found from time = -50 to time = -100, and data set B with a coherence number of 0 is not found from time = -50 to time = -100, the alignment module generates a coherence error indication, i.e., indicating that a coherence failure is pending, and no new data sets are output to the downstream controller logic. In this case, the last valid data set or equivalent, such as "Set 15" in Table 4, can be output to the downstream controller logic.
[0048] After receiving Dataset A as Set 1 and Dataset B as Set 4 at time = 50ms, the alignment module searches the buffer for a match with the coherence number of either data set, but only within the last two most recently received frames. Assuming that no Dataset A with a coherence number of 4 is found from time = 0 to time = -50, and no Dataset B with a coherence number of 1 is found from time = 0 to time = -50, the alignment module again generates a coherence error indication, or indicates that a coherence failure is pending, and no new data sets are output to the downstream controller logic. Likewise, the last valid data set or equivalent, such as "Set 15" in Table 4, can be output to the downstream controller logic.
[0049] This process is repeated for time = 100 ms, and the alignment module may set a diagnostic distress code (DTC) after no match is found and a coherence error indication is generated for the third consecutive frame period. In some embodiments, the alignment module is programmed to set a DTC after receiving three consecutive frame periods without finding a match within a defined search frame (other restrictions may also be selected).
[0050] When a DTC is set, the output data is set to invalid, so the downstream controller logic does not use any received data sets because the data therein is not confirmed to be generated by the sending module at the same time. The downstream controller logic in the receiving module can continue to use the last verified coherent data pair received from the sending module for a limited period of time, such as data set 15 in Table 4, until the use of such data is prohibited for safety or functional reasons.
[0051]
[0052]
[0053] Table 5 shows the processing of a single repeated or delayed frame. The data sets received at time = 0 ms, time = 50 ms, time = 100 ms, and time = 200 ms are arranged in pairs and processed as described above with respect to Table 1. However, at time = 150 ms, the first frame 11 or data set A is received as set 3 with a coherence number (coherence A) of 3, and the second frame 12 or data set B is received as set 2 with a coherence number (coherence B) of 2. Within the specified range, there is no match for coherence number 3, and data set A at time = 100 ms is set to data set 2 with a coherence number of 2. Therefore, the alignment module pairs data set A at time = 100 ms with data set B at time = 150 ms and allows the output of these data sets to remain unchanged.
[0054]
[0055]
[0056] Table 6 shows the processing of two repeated or delayed frames. The data sets received at time = 0 ms, time = 50 ms, and time = 100 ms are arranged in pairs and processed as described above with respect to Table 1. However, at time = 150 ms, the first frame 11 or data set A is received as set 3 with a coherence number (coherence A) of 3, and the second frame 12 or data set B is received as set 2 with a coherence number (coherence B) of 2. Within the specified range, there is no match for coherence number 3, and data set A at time = 100 ms is set to data set 2 with a coherence number of 2. Therefore, the alignment module pairs data set A at time = 100 ms with data set B at time = 150 ms and allows the output of these paired data sets to continue unchanged.
[0057] Furthermore, at time = 200 ms, the first frame 11 or data set A is received as set 4 with a coherence number (coherence A) of 4, and the second frame 12 or data set B is received as set 2 with a coherence number (coherence B) of 2. There is no match of coherence number 4 within the specified range, and data set A at time = 100 ms is set to data set 2 with a coherence number of 2. Therefore, the alignment module pairs data set A at time = 100 ms with data set B at time = 200 ms, and continues to allow the output of these paired data sets to continue.
[0058]
[0059]
[0060] Table 7 shows the processing of three repetitive or delayed frames. The data sets received at time = 0 ms and time = 50 ms are arranged in pairs and processed as described above with respect to Table 1. However, at time = 100 ms, the first frame 11 or data set A is received as set 2 with a coherence number (coherence A) of 2, at time = 150 ms, the first frame 11 or data set A is received as set 3 with a coherence number (coherence A) of 3, and at time = 200 ms, the first frame 11 or data set A is received as set 4 with a coherence number (coherence A) of 4; and at times = 100 ms, 150 ms and 200 ms, the second frame 12 or data set B is received as set 1 with a coherence number of 1. Within the specified range, the coherence numbers 2, 3 or 4 do not match, and the data set A at time = 50 ms is set to 1 with a coherence number (coherence A) of 1. Therefore, the alignment module pairs dataset A at time = 50 ms with dataset B at time = 100 ms, dataset B at time = 150 ms, and dataset B at time = 200 ms, and allows the output of these paired datasets to continue.
[0061] As shown in Table 7, the alignment module generates a coherence error indication at a time = 200ms after the third consecutive failure to find a matching coherence number, indicating that a coherence failure is pending. In other embodiments, the coherence error indication may be indicated after one such failure, or after any determined number of such failures. After the coherence error indication is generated in the third consecutive frame period (or other specified period), the alignment module may set the DTC. When the DTC is set, the output data is set to invalid, so the downstream controller logic does not use any received data set because the data therein is not confirmed to be generated simultaneously by the sending module. The downstream controller logic in the receiving module can continue to use the last verified coherent data pair received from the sending module, such as data set 1 in Table 7, for a limited time period until the use of such data is prohibited for safety or functional reasons.
[0062]
[0063]
[0064] Table 8 shows the data processing for a random loss of one frame. Data sets received at time = 0 ms, time = 50 ms, time = 150 ms, and time = 200 ms are aligned in pairs and processed as described above with respect to Table 1. However, at time = 100 ms, the first frame 11 or data set A is received as set 2 with a coherence number of 2, while the second frame 12 or data set B is received as a bad data set with a coherence number of 0. The alignment module identifies data set B as a bad data set. Specifically, the alignment module identifies a pattern established by previously received pairs of data sets and may define one or more specific numbers that may be expected to be received. When a number outside the expected number range (e.g., 0) is received, the alignment module identifies the number as reflecting a bad data set and does not seek to find a pair for the bad data set. Instead, the alignment module may seek a pair for the coherence number 2. After no pair is found within the specified frame range, the alignment module allows the output of the previously matched pair including set 1 to continue without updating. As shown, the alignment module generates a coherence error indication, i.e., an indication that a coherence failure is pending. After receiving the matched data set at time = 150 ms, the alignment module removes the coherence error indication.
[0065]
[0066]
[0067] Table 9 illustrates processing data with multiple randomly lost frames. The data sets received at time = 0 ms and time = 50 ms are aligned in pairs and processed as described above with respect to Table 1. However, at time = 100 ms, the first frame 11 or data set A is received as set 2 with a coherence number of 2, while the second frame 12 or data set B is received as a bad data set with a coherence number of 0. As described above, the alignment module identifies data set B as a bad data set. Therefore, the alignment module can only look for pairs with a coherence number of 2. After no pairing is found within the specified frame range, the alignment module allows the output of the previously matched pairing including set 1 to continue without updating. As shown in the figure, at time = 100 ms, the alignment module generates a coherence error indication, indicating that a coherence failure is pending.
[0068] In Table 9, at time = 150 ms, the first frame 11 or data set A is received as set 3 with a coherence number of 3, while the second frame 12 or data set B is received as a bad set with a coherence number of 15. Again, 15 is outside the expected range of values and is identified by the alignment module as a bad coherence number. The alignment module can look for a match for the coherence number 3 of data set A. After not finding a match within the specified frame range, the alignment module allows the output of the previously matched pairing including set 1 to continue without updating. As shown, the alignment module continues to generate a coherence error indication, i.e., indicating that a coherence failure is pending.
[0069] At time = 200ms, the first frame 11 or data set A is received as set 4 with a coherence number of 4, and the second frame 12 or data set B is received as a bad set with a coherence number of 12. Again, 12 is outside the expected value range and is identified as a bad coherence number by the alignment module. The alignment module can look for a match with a coherence number of 4 for data set A. After no match is found within the specified frame range, the alignment module allows the output of the pairing that included the previous match of set 1 to continue without updating. In addition, based on a user-selected limit of three consecutive frame periods, when the third group of frames does not include a paired or pairable data set, the alignment module sets a DTC and the output data is set to invalid. As described above, other limits for setting DTCs and setting output data to invalid can be defined or selected.
[0070]
[0071]
[0072] Table 10 shows the processing of three repeated or delayed frames similar to Table 7 above. However, Table 10 shows the use of an external CAN fault indication, i.e., indicating Figure 1 The CAN 100 is faulty.
[0073] As shown in the embodiment of Table 10, the receiving module receives or may be expected to receive data sets A and B. If the receiving module does not receive a new data set, the receiving module may communicate to the alignment module that no new data has been received. For example, the receiving module may communicate that no new frame 12 / data set B has been received, i.e., data set B is stale data. As a result, the system generates an external CAN fault indication, and certain functions of the processing may be suspended.
[0074] Reference now Figure 2 , a flow chart of an exemplary method 200 for processing coherent data is provided. At action block 212, sensor or input data is obtained as coherent data, such as by sampling or reading by a sending module. For example, a vehicle sensor can monitor a property of a vehicle component or at a vehicle component, and the sending module can sample or read the sensor data. At action block 214, the coherent data is divided into two or more separate CAN frames, each CAN frame being assigned a coherent number. The coherent number can be selected based on the time when the coherent data is obtained or based on the time when the frame is sent. At action block 216, the CAN frame is sent from the sending module to the receiving module.
[0075] At action block 222, an incoming CAN frame including a coherent number is received. The method 200 then determines whether the CAN bus is faulty at query 224. If the CAN bus is faulty, then at action block 226, the method stops processing incoming data for downstream logic. If the bus is not faulty, then at action block 228, the method fills the buffer with the incoming CAN frame.
[0076] The method continues at query 230 where it is determined whether the most recently received CAN frames have coherence numbers that match each other. If the coherence numbers of the two most recently received CAN frames match, the method 200 determines at query 232 whether a coherence fault is active and the frames are presenting a stuck state. If so, then at action block 234, the method maintains the coherence fault as active. If not, then at action block 236, the paired CAN frames are output to downstream logic.
[0077] If it is determined at query 230 that the most recently received CAN frame does not have a matching coherence number, the method 200 determines at query 240 whether the coherence number of frame 1 precedes the coherence number of frame 2. If the coherence number of frame 1 precedes the coherence number of frame 2, the method continues to query 242 to determine whether the frame 1 buffer contains a data set with a coherence number that matches the coherence number of frame 2. In addition, query 242 checks that the order of the frame 1 buffer also contains a coherence number order that reflects an obsolete or increased value within a defined range, for example, if the earliest buffer data contains a coherence number of 5, but the next most recent buffer data contains a coherence number of 4, then there is no valid coherence number order. If the frame 1 buffer does contain a data set with a coherence number that matches the coherence number of frame 2, then at action block 244, the method 200 pairs the frames with matching coherence numbers. Thereafter, at action box 236, the paired frames are output to downstream logic.
[0078] If it is determined at query 242 that the frame 1 buffer does not contain a data set having a coherence number that matches the coherence number of frame 2, then at action block 246, method 200 generates a coherence error indication, ie, sets a coherence fault as pending.
[0079] If it is determined at query 240 that the coherence number of frame 1 is not before the coherence number of frame 2, then the method continues at query 248 to determine whether the frame 2 buffer contains a data set with a coherence number that matches the coherence number of frame 1. In addition, query 248 checks that the order of the frame 2 buffer also contains a coherence number order that reflects stale or increased values within a defined range, for example, if the earliest buffer data contains a coherence number of 5, but the next most recent buffer data contains a coherence number of 4, then there is no valid coherence number order. If the frame 2 buffer does contain a data set with a coherence number that matches the coherence number of frame 1, then at action block 244, the method 200 pairs the frames with matching coherence numbers. Thereafter, at action box 236, the paired frames are output to downstream logic.
[0080] If it is determined at query 248 that the frame 2 buffer does not contain a data set having a coherence number that matches the coherence number of frame 1, then at action block 246 the method 200 generates a coherence error indication, ie, indicating that a coherence failure is pending.
[0081] The method 200 may continue after outputting the paired frames at action block 236 by processing the coherent data from the two separate frames in downstream logic at action block 252. At action block 256, the method includes operating the vehicle based on the processing of the coherent data by the downstream logic.
[0082] As described herein, a method, system and computer readable storage medium for processing coherent data are provided. In an embodiment, the coherent data is divided into two or more separated frames for transmission. The same coherent number is applied to the frame pair or frame group that stores the coherent data. After transmitting the frame, the receiving module can determine whether the received frame stores the coherent data based on the coherent number applied to the frame. The embodiments herein provide for processing the coherent data in the case of delay or error in the transmission and reception of the frame.
[0083] Although at least one exemplary aspect has been presented in the foregoing detailed description, it should be understood that there are a large number of variations. It should also be understood that one or more exemplary aspects are merely examples and are not intended to limit the scope, applicability, or configuration of the claimed subject matter in any way. On the contrary, the foregoing detailed description will provide a convenient roadmap for those skilled in the art to implement the exemplary aspects of this subject matter. It should be understood that various changes may be made to the functions and arrangements of the elements described in the exemplary aspects without departing from the scope of the subject matter set forth in the appended claims.
Claims
1. A method for processing coherent data, the method comprising: Dividing coherent data into two separate frames, the coherent data being data that exceeds the maximum data capacity of the CAN frame and is acquired at the same time and should be coherently processed, including reading or sampling vehicle sensor data from a vehicle sensor using a transmitting module in the vehicle; applying the same coherence number to the two separated frames, wherein the same coherence number is selected from a bit-limited rolling counter value, applying the same coherence number to the two separated frames while transmitting a signal including the two separated frames to a receiving module, the same coherence number being selected based on a time when the signal is transmitted, the transmitting module may be configured to select the same coherence number based on a time when the signal is transmitted, or the transmitting module may be configured to select the same coherence number based on a time when the coherent data is obtained, i.e., a time when the sensor or input data is sampled or read; Determining whether the two separated frames match based on the same coherence number, comparing the coherence numbers of the two separated CAN frames in the buffer, and if no delay or error is encountered in the process of allocating the coherence number, sending the two separated CAN frames, and receiving the two separated CAN frames, the coherence numbers of the CAN frames are the same, that is, matched; as well as When the two separated frames match, the two separated frames are output to downstream logic.
2. The method according to claim 1, further comprising: The vehicle sensor data is coherent data; processing coherent data from two separate frames in downstream logic; and Processing operations vehicles based on downstream logic; wherein the sending module of the electronic control unit of the vehicle divides the coherent data into two separate frames, applies the same coherence number to the two separated frames, and sends a signal including the two separated frames to a receiving module; wherein the receiving module is a component of the electronic control unit; and wherein the receiving module determines whether the two separated frames match based on the same coherence number, and when the two separated frames match, outputs the two separated frames to downstream logic.
3. The method according to claim 1, further comprising: adding the two separated frames to a buffer filled with a selected number of most recently received frames; and When the two separated frames do not match, a selected frame is identified from the two separated frames and the buffer is searched for a matching frame from the most recently received frames.
4. The method according to claim 3, further comprising: identifying a matching frame from the most recently received frames and outputting the selected frame and the matching frame to downstream logic; Alternatively, it is confirmed that the most recently received frame does not include a matching frame and a coherence error indication is set.
5. The method of claim 3, further comprising analyzing the most recently received frame to identify an expected coherence number or coherence number range, wherein: The coherence number of each of the two separated frames is compared to the expected coherence number or coherence number range.
6. A system for processing coherent data, the system comprising: a communication network coupled by a communication bus; a transmitting module configured to transmit a signal including coherent data divided between two separate controller area network (CAN) frames and applying the same coherence number to the two separate CAN frames, the coherent data being data that exceeds a maximum data capacity of the CAN frame and that is acquired simultaneously and should be processed coherently, including reading or sampling vehicle sensor data from a vehicle sensor using the transmitting module within the vehicle; a receiving module including a buffer for storing a selected number of most recently received frames; and The alignment module is used to match frames based on the coherence number of each frame. In the buffer, the coherence numbers of two separated CAN frames are compared. If no delay or error is encountered in the process of allocating coherence numbers, sending two separated CAN frames, and receiving two separated CAN frames, the coherence numbers of the CAN frames are the same, that is, matched.
7. The system of claim 6, further comprising downstream logic configured to receive the matched frames from the alignment module, wherein: The transmitting module is configured to select the same coherence number from the bit-limited rolling counter value based on the time when the coherence data is obtained; The transmitting module is configured to apply the same coherence number to two separate CAN frames while transmitting the signal to the receiving module; The alignment module is configured to search the buffer for a matching frame from among said most recently received frames; and The alignment module is configured to set a coherence error indication when the most recently received frames do not include a matching frame.
Citation Information
Patent Citations
CAN node, and communication method of communication system including CAN node
US20100150176A1
Method of sequentially authenticating can packets using divided macs and apparatus for implementing the same
US20160099926A1