Method for reducing the probability of undetected errors on large messages over a black channel - Patents.com
The method uses deterministic functions and seed values to generate reference data for error detection, addressing undetected errors on large messages over black channels, ensuring reliable and safe data transmission in critical systems.
Patent Information
- Application Number
- JP2025514542
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-09-13
- Filing Date
- 2023-09-13
- Publication Date
- 2025-10-01
AI Technical Summary
Existing communication systems face challenges in accurately detecting errors on large messages transmitted over unreliable 'black channels', which can lead to undetected errors and potential operational failures in safety-critical systems.
A method involving communication modules that generate and utilize reference data based on deterministic functions and seed values to calculate bit error rates, allowing for active monitoring and autonomous fault detection, transitioning systems to safe modes when error thresholds are exceeded.
This approach reduces the probability of undetected errors by actively monitoring communication links, ensuring timely system responses to faults, thereby enhancing the reliability and safety of data transmission in critical applications.
Smart Images

Figure 2025532527000001_ABST
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Provisional Application No. 63 / 406,130, filed September 13, 2022, which is incorporated by reference in its entirety.
[0002] This application is related to U.S. Patent Application No. 17 / 192,657, filed March 4, 2021, and U.S. Patent Application No. 18 / 081,833, filed December 15, 2022, each of which is incorporated by reference in its entirety.
[0003] The present invention relates generally to the field of communications integrity, and more particularly to a new and useful method for reducing the probability of undetected errors on large messages over black channels within the field of communications integrity. [Brief explanation of the drawings]
[0004] [Figure 1] FIG. 1 is a flow chart representation of the method. [Figure 2] FIG. 2 is a flow chart representation of one variation of the method. [Figure 3] 3A, 3B, and 3C are a flow chart representation of one variation of the method. [Figure 4] 4A and 4B are a flow chart representation of one variation of the method. DETAILED DESCRIPTION OF THE INVENTION
[0005] The following description of embodiments of the invention is not intended to limit the invention to these embodiments, but rather to enable those skilled in the art to make and use the invention. The variations, configurations, implementations, exemplary implementations, and examples described herein are optional and are not limited to only the variations, configurations, implementations, exemplary implementations, and examples they describe. The invention described herein can include any and all permutations of these variations, configurations, implementations, exemplary implementations, and examples.
[0006] 1. Method As shown in Figures 1, 2, 3A, 3B, and 3C, method S100 includes, in a first communication module, accessing a first set of data in a first data stream from a first device in block S102, generating a first set of reference data based on a first deterministic function and a first seed value in block S114, generating a first message including the first set of data and the first set of reference data in block S120, and transmitting the first message to a second communication module via a first communication link in block S122.
[0007] The method also includes, in the second communication module, receiving a first message from the first communication module via the first communication link in block S130; extracting a first set of reference data from the first message in block S132; generating a second set of reference data based on a first deterministic function and a first seed value in block S140; calculating a first amount of bit errors in the first set of reference data based on the second set of reference data in block S142; calculating a first bit error rate of the first communication link based on the first amount of bit errors in block S154; generating a second message indicating a failure in response to the first bit error rate exceeding a first bit error rate threshold for the first data stream in block S156; and transmitting the second message to the second device in block S160.
[0008] 1.1 Variation: Detected Bit Error Rate Below Threshold As shown in Figures 1, 2, 3A, 3B, and 3C, one variation of method S100 includes, in a first communications module, accessing a first set of data in a first data stream from a first device in block S102, generating a first set of reference data based on a first deterministic function and a first seed value in block S114, generating a first message including the first set of data and the first set of reference data in block S120, and transmitting the first message to a second communications module via a first communications link in block S122.
[0009] This variation of method S100 also includes, in a second communication module, receiving a first message from the first communication module via a first communication link in block S130, extracting a first set of reference data from the first message in block S132, generating a second set of reference data based on a first deterministic function and a first seed value in block S140, calculating a first amount of bit errors in the first set of reference data based on the second set of reference data in block S142, defining a total amount of reference data in a first window of messages including the first message from the first communication module via the first communication link in block S146, calculating a total amount of bit errors in the total amount of reference data in the first window of messages based on the first amount of bit errors in block S148, and calculating a first bit error rate of the first communication link based on the total amount of bit errors in the first window set of messages and the total amount of reference data in block S150.
[0010] This variation of method S100 further includes, in block S156, generating a second message including the first set of data and the first bit error rate in response to the first bit error rate falling below a first bit error rate threshold for the first data stream, and, in block S160, transmitting the second message to the second device.
[0011] 1.2 Variation: Message window As shown in FIGS. 1, 2, 3A, 3B, and 3C, one variation of method S100 includes, at a receiver communication module, receiving a first message from a transmitter communication module over a communication link in block S130, the first message including a set of sensor data in a data stream from a first sensor device and a first set of reference data based on a deterministic function and a seed value; extracting the first set of reference data from the first message in block S132; generating a second set of reference data based on the deterministic function and the seed value in block S140; and calculating a first amount of bit errors in the first set of reference data based on the second set of reference data in block S142. In block S146, defining a total amount of reference data in a first window of messages including a first message from a first communication module over the first communication link; in block S148, calculating a total amount of bit errors in the total amount of reference data in the first window of messages based on the first amount of bit errors; in block S150, calculating a bit error rate of the first communication link based on the total amount of bit errors and the total amount of reference data in the first window of messages; in block S158, generating a second message indicating a fault in response to the bit error rate exceeding a bit error rate threshold for the data stream; and in block S160, transmitting the second message to the second device.
[0012] 2. Application Generally, the blocks of method S100 may be executed by a first communications module (e.g., a transmitter module) to receive data in a data stream from a source device, access a deterministic function (e.g., a pseudo-random bit pattern generator) configured to generate reference data for the data stream, generate the first reference data based on the deterministic function and a seed value (e.g., a serial number of the receiver module, a public key of the receiver module), generate a first message including the data in the data stream and the first reference data, and transmit the first message to a second communications module via a communications link (e.g., a black channel exhibiting an unpredictable path and / or amount of nodes).
[0013] Further, the blocks of method S100 may be executed by a second communication module (e.g., a receiver module) to receive a first message including data in the data stream and first reference data, access a deterministic function and a seed value, generate second reference data based on the deterministic function and the seed value, and characterize a bit error rate of the communication link based on a difference between the first reference data and the second reference data.
[0014] Thus, the blocks of method S100 may be executed by the communication modules to generate equivalent reference data at each communication module that executes a predefined deterministic function and a seed value, and to actively monitor the bit error rate of the communication link from the transmitter module to the receiver module based on the reference data transmitted over the communication link. Thus, by enabling the communication modules to independently generate equivalent reference data, the communication modules may transmit a single copy of the reference data over the communication link rather than multiple copies of the reference data from which the bit error rate is calculated, thereby reducing the total amount of data transmitted over the communication link.
[0015] 2.1 Controlling Acts Further, the blocks of method S100 may be executed by the receiver module to calculate a reliability level of the bit error rate, generate a second message specifying the data in the data stream, the bit error rate of the communication link, and / or the reliability level of the bit error rate, and send the second message to a destination device to process the data in the data stream based on the bit error rate and the reliability level.
[0016] More particularly, the blocks of method S100 may be executed by the receiver module to detect that a bit error rate of the communication link has exceeded a bit error rate threshold for the data stream, and in response to detecting that the bit error rate of the communication link has exceeded the bit error rate threshold for the data stream, generate a second message indicating a fault and including a command to transition the operating mode of the destination device to a degraded operating mode (or safe state).
[0017] Thus, the receiver module can autonomously perform functional safety operations on behalf of the destination device in response to detecting a bit error rate for the communication link that exceeds a bit error rate threshold for the data stream.
[0018] 2.2 Variations As described herein, method S100 is performed by a communications module including two redundant controllers and a third controller to perform a redundancy verification process on received messages and calculate a bit error rate and / or reliability level based on reference data included in the received messages. However, a communications module implementing additional redundant controllers (e.g., a total of four, eight, or sixteen redundant controllers) may similarly perform the blocks of method S100 to perform a redundancy verification process on received messages with each redundant controller and calculate a bit error rate and / or reliability level based on reference data included in the received messages.
[0019] As described herein, method S100 is performed by two communication modules to transmit multiple simultaneous data streams over a communication link, perform a separate diagnostic procedure for each data stream to calculate a bit error rate of the communication link for the data stream, and perform control actions based on each bit error rate. However, the two communication modules can similarly perform the blocks of method S100 to transmit a set of simultaneous data streams over a communication link, perform a diagnostic procedure for one data stream in the set of simultaneous data streams (e.g., the data stream exhibiting the highest bit rate) to calculate a bit error rate representative of the communication link, and perform control actions for each data stream based on the bit error rate.
[0020] 3. Terminology Generally, a "data message" as used herein refers to a message that contains a set of data in a data stream.
[0021] Generally, a "diagnostic message" as used herein refers to a message that includes a set of data in a data stream and a set of reference data.
[0022] Generally, a "window of messages" as used herein refers to a group of messages within a population of messages.
[0023] Generally, "bit error rate" as used herein refers to a metric that represents the amount of detected bits received in error relative to the total number of bits transmitted (e.g., within a window of a diagnostic message).
[0024] In general, "residual bit error rate" as used herein refers to a metric that represents the likelihood that a received bit will exhibit error-free detection as an erroneous bit.
[0025] Generally speaking, the "confidence level" of a bit error rate refers to the likelihood that the bit error rate is accurate.
[0026] 4. System Generally, as shown in Figure 1, a system may include a first node (or "first device"), a first communication module communicatively coupled to the first node, a communication network, a second node (or "second device"), and a second communication module communicatively coupled to the second node. The system may include additional nodes and / or communication modules communicatively coupled thereto.
[0027] In one implementation, a first set of devices can include a first device (or “source device”) communicatively coupled to a first communication module (or “transmitter module”), and a second set of devices can include a second device (or “destination device”) communicatively coupled to a second communication module (or “receiver module”). In this implementation, the source device can generate data for the destination device (e.g., safety state information, command data, control data, sensor data, status information) and transmit the data to the destination device via the transmitter module, a communication network, and the receiver module. More specifically, the source device can generate and output data to the transmitter module, and the transmitter module can transmit a message including the data over the communication network. The receiver module can then receive the message and output the data to the destination device.
[0028] 4.1 Devices In general, a source device can include a device that generates data and / or outputs data to a destination device, and a destination device can include any device that receives data and / or is a target for data. The destination device can perform an action based on the data (or absence of data).
[0029] In one example, the source device may include a remotely operated forklift that generates a series of heartbeat signals in the data stream and outputs the series of heartbeat signals to a destination device, such as a remote base station. More specifically, the remotely operated forklift may generate and output the heartbeat signals to a first communication module (as a transmitter module), which generates and transmits a first message including the heartbeat signal over a communication network. A second communication module (as a receiver module) may receive and output the first message to the remote base station. In response to detecting the heartbeat signal within the threshold time period, the remote base station may continue monitoring for subsequent heartbeat signals.
[0030] However, in response to detecting the absence of a heartbeat signal within a threshold time period, the remote base station (as a source device) can issue a command for the remote operated forklift (as a destination device) to transition to a safe state (e.g., emergency stop, power down). In particular, the remote base station can generate and output the command to the second communication module (as a transmitter module), which then generates and transmits a second message including the command over the communication network. The first communication module (as a receiver module) can receive and output the second message to the remote operated forklift, which can then transition to the safe state in response to detecting the command.
[0031] In another example, the device (e.g., source device, destination device) may include a sensor (e.g., radar sensor, lidar sensor, ultrasonic sensor, infrared camera), machine, robot, vehicle (e.g., autonomous vehicle, semi-autonomous vehicle), control system, emergency stop system (e.g., line break sensor, emergency stop button), and / or industrial system (e.g., manufacturing system, agricultural system, construction system, power system, transportation system), etc.
[0032] 4.2 Communication Module In general, a communications module may include a set of resources, such as a set of controllers and / or a set of processors, volatile memory (e.g., RAM), non-volatile memory (e.g., flash storage), a set of network interfaces (e.g., wireless local area network interfaces, wired local area network interfaces, Bluetooth network interfaces), and / or input / output interfaces. Additionally, the communications module may further include firmware, an operating system (or kernel), a set of applications, and / or logic.
[0033] In one implementation, the communication module can include a first controller (e.g., a first safety controller, a first safety microcontroller), a second controller (e.g., a second safety controller, a second safety microcontroller), a third controller (e.g., a security controller, an application processor), and a communication bus. The communication bus can support two-way communication between the first controller and the second controller, two-way communication between the first controller and the third controller, and two-way communication between the second controller and the third controller.
[0034] In another implementation, the first controller may include an arithmetic logic unit (hereinafter "ALU"), a volatile memory (e.g., random access memory or "RAM"), and a non-volatile memory (e.g., flash memory). The ALU may perform arithmetic and logic operations based on computer instructions executed by the first controller. The RAM may temporarily store data retrieved from storage for performing calculations. The flash memory may store data and / or instructions programmed into the first controller. The first controller may further include an input / output interface, an internal bus, and / or an internal oscillator. The first controller may include fewer or additional components.
[0035] The second controller may include similar (e.g., similar, equivalent) components as the first controller. For example, the first controller and the second controller may be redundant controllers that each include equivalent components.
[0036] Additionally, the third controller may include similar (e.g., similar, equivalent) components as the first controller. The third controller may further include a network interface (or set of network interfaces) for communicating over a communications network.
[0037] 4.2.1 Safety functionality In one implementation, the communication module can perform safety-critical diagnostic and control functions. For example, the communication module can include hardware and / or software that meets functional safety standards (e.g., IEC 61508, ISO 13849, ISO 26262).
[0038] More particularly, the communications module may include a safety subsystem configured to issue commands to transition a device (or group of devices) from a first operating mode (e.g., a fully functional operating mode) to a second operating mode (e.g., a degraded operating mode, a safe state) and / or perform functional safety operations, such as communications integrity encapsulation, such as that described in U.S. Patent Application No. 18 / 081,833.
[0039] 4.3 Communication Networks In general, the communication network can include any transmission medium (e.g., the Internet, a wired communication channel, a wireless communication channel) between the first communication module and the second communication module. In one example, the network can include a direct network connection between the first communication module and the second communication module. In another example, the network can include a set of interstitial relay devices (e.g., electronic relays, routers, gateways) between the first communication module and the second communication module.
[0040] 4.3.1 Communication Links In general, a communication module may include a set of network interfaces for communicating data with other communication modules, nodes, devices, etc. The communication module may establish and maintain a set of communication links based on the set of network interfaces.
[0041] In one implementation, the first communication module can include a first set of network interfaces. The first communication module can establish and maintain a set of communication links with the second communication module over a communication network based on the first set of network interfaces. The first communication module can communicate (e.g., send, receive) data with the second communication module over the set of communication links (or a subset of the communication links in the set of communication links).
[0042] In another implementation, the first communication module (and the second communication module) may establish and maintain this set of communication links according to a set of communication technologies and / or protocols, such as Ethernet, 802.11, Worldwide Interoperability for Microwave Access (WiMAX), 3G, 4G, 5G, Long Term Evolution (LTE), Digital Subscriber Line (DSL), Asynchronous Transfer Mode (ATM), InfiniBand, PCI Express Advanced Switching, Bluetooth, Near Field Communications (NFC), Industrial, Scientific, Medical (ISM), Wireless, Multiprotocol Label Switching (MPLS), Transmission Control Protocol / Internet Protocol (TCP / IP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), Simple Mail Transfer Protocol (SMTP), and / or File Transfer Protocol (FTP).
[0043] In one example, the first communication module includes a Wi-Fi network interface and an LTE interface. In this example, based on these network interfaces, the first communication module establishes a Wi-Fi communication link and an LTE communication link with the second communication module. The first communication module then transmits data to (and receives data from) the second communication module via the Wi-Fi communication link and / or the LTE communication link.
[0044] In another example, the first communication module includes a first LTE interface and a second LTE interface, and in this example, the first communication module establishes a first LTE communication link with the second communication module based on the first LTE interface and establishes a second LTE communication link with the third communication module using the second LTE interface.
[0045] In one implementation, a first communication module can establish a communication link with a second communication module, the communication link being characterized by a black channel that exhibits an unpredictable path through the set of gap relay devices and / or an unpredictable amount of gap relay devices in the set of gap relay devices.
[0046] In another implementation, the first communication module can establish a communication link with the second communication module by establishing a communication session based on a particular communication protocol. Additionally or alternatively, the first communication module can establish a communication link with the second communication module based on a network interface configuration (e.g., operating frequency).
[0047] 5. Data communication In general, a first communications module (e.g., a transmitter module) may receive a set of data (e.g., safety information, status information, command data, input data, sensor data) in a data stream from a source node (e.g., a source device), access configuration information and / or policies associated with the data stream, generate a message including the set of data, and transmit the message to a destination node (e.g., a destination device) over a communications network in accordance with the policy via a communications link between the transmitter module and a second communications module (e.g., a receiver module) communicatively coupled to the destination node. More specifically, the first communications module may access a policy defining a set of target conditions for the data stream (e.g., a target bit error rate below a bit error rate threshold, a target reliability level for the target bit error rate above a reliability level threshold, a residual error rate below a residual error rate threshold), and transmit a message exhibiting metrics corresponding to the set of target conditions over the communications link.
[0048] The second communication module may receive a message including a set of data in a data stream from the first communication module via a communication link, validate the message and / or the set of data in the message, and output the set of data to a destination node.
[0049] Thus, the transmitter module transmits messages between the source node and the destination node over a communication link that exhibit metrics corresponding to a set of target conditions (e.g., requirements) for a data stream, such as a data stream containing safety-critical data, so that the system can meet functional safety standards and thereby mitigate safety and / or security vulnerabilities that may lead to operational downtime, intellectual property theft, and / or work product destruction.
[0050] 5.1 Data Streams Block S102 of method S100 recites accessing a first set of data in a first data stream from a first device.
[0051] In one implementation, in block S102, the transmitter module may receive (or access) a set of data in a data stream from a source device. More specifically, the transmitter module may receive the set of data at a controller (e.g., an application processor) of the transmitter module. Additionally or alternatively, the transmitter module may receive the set of data at a first redundant input of a first controller (e.g., a first safety controller) of the transmitter module and / or at a second redundant input of a second controller (e.g., a second safety controller) of the transmitter module.
[0052] In one example, during a first time period, the transmitter module receives a first set of sensor data (e.g., analog values, digital values) in a data stream from the sensor device. The transmitter device can then receive a second set of data in the data stream from the sensor during a second time period that follows the first time period.
[0053] In another example, during a first time period, the transmitter module receives a first set of video data in the video data stream captured by a first optical sensor of the remote-controlled forklift, and during a second time period that follows the first time period, the transmitter module receives a second set of video data in the video data stream captured by the first optical sensor of the remote-controlled forklift.
[0054] In this example, the transmitter module receives a first set of video data and / or a second set of video data in a video stream exhibiting a bit rate (e.g., 500 kilobits per second, 1000 megabits per second, 3000 megabits per second).
[0055] 5.2 Data Classes In general, a transmitter module can receive sets of data in a data stream from a source device, where the data stream (or set of data) is characterized by a particular data class in a set of data classes. The transmitter module can transmit the sets of data in the data stream to a receiver module communicatively coupled to a destination module. The receiver module can then output these sets of data to a destination node.
[0056] In one implementation, the transmitter module can receive from the sending device a data stream characterized by a first data class in a set of data classes that represents a safety-critical data class. For example, the transmitter module can receive a first data stream including safe state information that represents a safe state of an emergency stop device that commands a set of machines in a factory to immediately stop operating, the first data stream characterized by the first data class.
[0057] In another implementation, the transmitter module can receive a data stream from the source device characterized by a second data class in the set of data classes, representing a real-time command critical data class. In one example, the transmitter module receives a second data stream including a command for a robot to pour molten metal into a mold in response to detecting that the temperature of the molten metal has exceeded a threshold, the second data stream being characterized by the second data class. In another example, the transmitter module receives a third data stream including a video data stream from a remotely operated forklift moving across a work site, the third data stream being characterized by the second data class.
[0058] In another implementation, the transmitter module can receive a data stream from the source device characterized by a third data class in the set of data classes, representing a command-critical data class. For example, the transmitter module can receive a fourth data stream including non-real-time instructions to an agricultural robot for controlling humidity in a greenhouse according to temperatures detected throughout the year, the fourth data stream characterized by the third data class.
[0059] In another implementation, the transmitter module can receive a data stream from the source device characterized by a fourth data class in the set of data classes, representing an information data class. For example, the transmitter module can receive a fifth data stream including status information representing a battery level of a machine, the fifth data stream being characterized by the fourth data class.
[0060] 5.3 Data Classification Block S104 of method S100 recites classifying the first data stream into a first data class based on the first set of video data.
[0061] In general, the transmitter module can classify a set of data in a data stream into a particular data class in a set of data classes. Additionally or alternatively, the transmitter module can classify a data stream into a particular data class.
[0062] In one implementation, in block S104, the transmitter module may classify the data stream into a data class based on the format of the data stream, the content of the data stream, indicators within the data stream, and / or other data from the source node that outputs the data stream.
[0063] In one example, in response to receiving a first set of data in a first data stream from a first source device, the transmitter module detects safety state information in the first set of data and classifies the first data stream into a first data class representing a safety-critical data class in the set of data classes based on the safety state information. More specifically, the transmitter module detects an encoded state indicator (or a set of encoded state indicators) representing a safety state of the first source device and classifies the first data stream into the first data class based on the encoded state indicator.
[0064] In another example, in response to receiving a second set of data in a second data stream from the first source device, the transmitter module detects video data in the second set of data representing a video data stream from a remotely operated forklift traversing a work site and classifies the second data stream into a second data class in the set of data classes representing a real-time control critical data class based on the video data. Alternatively, the transmitter module can classify the second data stream into a fourth data class in the set of data classes representing an information data class based on the video data.
[0065] Additionally or alternatively, the transmitter module may detect another indicator (e.g., a flag, code, header) in the set of data in the data stream and classify the data stream into a particular data class in the set of data classes based on the indicator.
[0066] In another implementation, the transmitter module can classify the data stream into a data class based on information related to the source device and / or the destination device. In one example, the transmitter module classifies the data stream into a data class based on a first address of the source device and / or a second address of the destination device. In another example, the transmitter module classifies the data stream into a data class based on a first device type of the source device and / or a second device type of the destination device. In yet another example, the transmitter module classifies the data stream into a data class based on a first operating mode of the source device and / or a second operating mode of the destination device.
[0067] 5.4 Configuration Profiles Generally, the Transmitter module can access a configuration profile for a data stream. More particularly, the Transmitter module can access a configuration profile that includes policies that define a set of target conditions for communicating the data stream and / or messages containing data from the data stream.
[0068] In one implementation, in response to receiving a first set of data in a first data stream from a first source device, the transmitter module may access a first configuration profile including a first policy defining a first set of target conditions for the first data stream. For example, the transmitter module may access the first policy defining a first set of target conditions for each message including data from the first data stream, such as a target bit error rate (or “detected bit error rate”) falling below a bit error rate threshold, a target reliability level for the detected bit error rate exceeding a reliability level threshold, a target residual bit error rate (or “undetected bit error rate”) falling below a residual bit error rate threshold, etc. Additionally or alternatively, the transmitter module may access a first policy defining a bit error rate threshold, a reliability level threshold, and / or a residual bit error rate threshold.
[0069] 5.4.1 Data Class-Based Configuration Profiles Block S106 of method S100 recites accessing a first policy associated with a first data class, the first policy defining a first bit error rate threshold.
[0070] In one implementation, in block S106, the transmitter module can access a policy based on a data class of the data stream. More specifically, the transmitter module can identify the data class of the data stream based on the format of the data stream, the content of the data stream, an indicator within the data stream, and / or other data from a source device that outputs the data stream. The transmitter module can access a policy in a set of policies that corresponds to the data class of the data stream.
[0071] In one example, in response to classifying the first data stream into a first data class (e.g., a safety-critical data class), the transmitter module accesses a first policy corresponding to the first data class and defining a first set of target conditions associated with the first data class. In this example, the transmitter module accesses the first policy defining the first set of target conditions including: a first target latency being below a first latency threshold (e.g., 25 milliseconds), a first target bit error rate being below a first bit error rate threshold (e.g., 0.001%), a first target reliability level of the first target bit error rate being below a first reliability level threshold (e.g., 99.9%), a first target signal strength being above a first signal strength threshold, a first target power consumption (e.g., power consumption per message) being below a first power consumption threshold, a first target monetary cost (e.g., monetary cost per message) being below a first monetary cost threshold, etc.
[0072] In another example, in response to classifying the second data stream into a second data class (e.g., a control-critical data class), the transmitter module accesses a second policy corresponding to the second data class and defining a second set of target conditions associated with the second data class. In this example, the transmitter module accesses the second policy defining the second set of target conditions, including a second target latency being below a second latency threshold (e.g., 200 milliseconds), a second target error rate being below a second bit error rate threshold (e.g., 0.01%), a second target reliability level of the second target bit error rate being below a second reliability level threshold (e.g., 99.9%), a second target signal strength being above a second signal strength threshold, a second target power consumption being below a second power consumption threshold, and a second target monetary cost being below a second monetary cost threshold.
[0073] 5.4.2 Stream ID-Based Configuration Profiles In one implementation, the transmitter module can access a configuration profile based on an identifier (or "stream ID") of a data stream. For example, the transmitter module can detect a stream ID included in the data stream and access a configuration profile associated with the stream ID and including policies that define a set of target conditions for the data stream. More specifically, the transmitter module can access a set of data in the data stream that includes the stream ID of the data stream.
[0074] Thus, the system can implement a unique configuration file for each data stream, thereby allowing each configuration file to define a specific set of target conditions (e.g., requirements) for the data stream.
[0075] Additionally or alternatively, the transmitter module may access a configuration profile based on the stream ID of the data stream, where the configuration profile defines other information related to the data stream, such as the bit rate (e.g., transmission bit rate) of the data stream, a deterministic function for generating reference data for the data stream, etc.
[0076] 5.4.3 Configuration Profiles Based on Operational Mode In one implementation, the transmitter module can access a configuration profile in a set of configuration files based on the operating mode of the source device and / or the destination device.
[0077] More specifically, the transmitter module may detect a stream ID included in the data stream and access a subset of configuration profiles associated with the stream ID, where each configuration profile in the subset of configuration profiles corresponds to an operating mode of the source device and / or an operating mode of the destination device. In response to detecting the operating mode of the source device and / or the operating mode of the destination device, the transmitter module may access a configuration file in the subset of configuration files that corresponds to the detected operating mode.
[0078] For example, a transmitter module communicatively coupled to a remotely operated forklift drone may detect a stream ID for a data stream representing a video feed to a remote base receiver and access a subset of configuration profiles associated with the stream ID, including a first configuration profile for a first operating mode of the remotely operated forklift (e.g., a fully functional operating mode exhibiting a first maximum speed of 10 miles per hour) and a second configuration profile for a second operating mode of the remotely operated forklift (e.g., a degraded operating mode exhibiting a second maximum speed of 1 mile per hour). During a first time period, the transmitter module may access the first configuration profile defining a first set of target conditions (e.g., a first bit error rate threshold, a first reliability level threshold) in response to detecting the first operating mode of the remotely operated forklift (e.g., based on a first status message from the remotely operated forklift). However, during a second time period that follows the first time period, in response to detecting a second operating mode of the remotely operated forklift (e.g., based on a second status message from the remotely operated forklift), the transmitter module may access a second configuration profile that defines a second set of target conditions (e.g., a second bit error rate threshold that exceeds the first bit error rate threshold, a first reliability level threshold).
[0079] Thus, the system may implement a unique configuration file for each data stream and for each operating mode of the source and / or destination device, thereby enabling each configuration file to define the appropriate set of requirements corresponding to the operating mode.
[0080] 5.5 Message Creation In general, the transmitter module can generate messages (or packets) containing a set of data in a data stream based on a set of target conditions and / or a set of requirements defined in a configuration profile for the data stream.
[0081] For example, the transmitter module may access a configuration profile defining a set of requirements for a data stream, including a source authentication requirement, an encryption requirement, a redundant frame requirement, an error code correction requirement, a variable encoding requirement, a periodicity requirement, and a latency requirement, and generate a message based on this set of requirements. In this example, the transmitter module may generate a message including source authentication information (e.g., a signature), encryption session information (e.g., an encryption key, an encryption seed), and a set of redundancy signals representing a set of data for the data stream. The set of redundancy signals may include a first signal including a set of data encoded using a first encoding scheme, a timing reference (e.g., a sequence number, a timestamp), and a first error detection value (e.g., a first cyclic redundancy check (CRC) value, a first Turbo code, a first Viterbi code), and a second signal including a set of data encoded using a second encoding scheme, a timing reference, and a second error detection value (e.g., a second CRC value, a second Turbo code, a second Viterbi code).
[0082] Thus, the transmitter module can generate messages according to the configuration profile of the data stream, thereby maintaining the security and / or integrity requirements of the data stream and the overall system while communicating this data stream across an unreliable communication network.
[0083] 5.5.1 Data Integrity In one implementation, the communication module calculates the residual bit error rate (R ) of a message protected by an error detection value (e.g., a CRC value, a Turbo code, a Viterbi code) based on Equation 1. CRC) can be calculated, where P e corresponds to the probability of a bit error, n corresponds to the amount of bits transmitted, r corresponds to the bit length of the error detection value, and d min corresponds to the Hamming distance (eg, the amount of error bits guaranteed to be detected) of the error detection polynomial (eg, CRC polynomial). TIFF2025532527000002.tif17170
[0084] In another implementation, the communication module calculates the residual bit error rate (Λ(P e )) can be calculated, where P e corresponds to the probability of bit error per message, v corresponds to the amount of messages per hour, and b corresponds to the amount of receiving stations (e.g., receiver modules). Λ(P e )=R(P e )×v×b (Equation 2)
[0085] Generally, based on functional safety standards (e.g., IEC 61784), the communication module may be configured to reset the bit error rate to a predefined first value (e.g., 10 -2 ) corresponding to P e The residual bit error rate (eg, per message, per hour) of the communication link can be calculated based on:
[0086] Alternatively, in response to detecting a bit error rate exhibiting a second value that is less than the first value, the communications module may determine a P corresponding to the second value for Equation 1 and / or Equation 2. e For example, the communication module can detect the bit error rate based on active measurements of network performance.
[0087] Therefore, by actively detecting the bit error rate of the communication link as the detected bit error rate, the communication module can calculate the residual bit error rate based on the detected bit error rate rather than based on a predefined bit error rate that exceeds the detected bit error rate. Thus, the communication module can simplify the implementation of CRC protection for longer messages (e.g., messages including video data, messages including data in a data stream that exhibits a relatively high bit rate) according to Equation 1.
[0088] 6. Characterizing the Active Communication Link Generally, as shown in Figures 1, 2, and 3A, a transmitter module can access a set of data (e.g., safety information, status information, command data, input data, sensor data) in a data stream from a source device, generate a message (e.g., as a "data message") that includes the set of data, and transmit the message to a destination device over a communication network via a communication link between the transmitter module and the receiver module. The transmitter module can generate and transmit a set of messages that include the set of data in the data stream to the receiver module.
[0089] Additionally, for a subset of messages in the set of messages, the transmitter module and receiver module may communicate a message including a set of data in the data stream and reference information (e.g., as a “diagnostic message”) to perform active measurement of network error performance for the communication link.
[0090] More specifically, the transmitter module may generate a first set of reference data (e.g., based on a deterministic function), encapsulate the reference data in a message including a set of data (e.g., sensor data) in the data stream, and transmit the message including the set of data and the reference data to the receiver module over a communication link.
[0091] Thus, the transmitter module can combine the set of data in the data stream with the set of reference data into a single message and transmit the message over the communication link to the receiver module. Thus, the transmitter module can improve the accuracy of performance measurements by ensuring that the set of data in the data stream and the set of reference data are transmitted over the same communication link according to the same network conditions.
[0092] 1, 2, 3B, and 3C, the receiver module may receive a message from the transmitter module over the communication link, generate a second set of reference data (e.g., based on a deterministic function), and calculate a bit error rate of the message based on a difference between the first set of reference data and the second set of reference data included in the message. Further, the receiver module may calculate a bit error rate of the communication link based on a total amount of bit errors in a total amount of reference data within a group (or “window”) of messages from the transmitter module to the receiver module over the communication link.
[0093] Thus, the receiver module may generate a second set of reference data equivalent to the first set of reference data, verify the first set of reference data transmitted over the communication link based on the second set of reference data, and calculate a bit error rate of the communication link based on a difference between the second set of reference data and the first set of reference data. Thus, by enabling the transmitter module and the receiver module to generate equivalent reference data (e.g., based on a predefined deterministic algorithm), the system may transmit a single copy of the reference data over the communication link rather than multiple copies of the reference data from which to calculate the bit error rate, thereby reducing the total amount of data transmitted over the communication network.
[0094] 6.1 Data Access and Stream Identification In one implementation, in block S102, the transmitter module may access a first set of data in a first data stream from a first device, the first set of data including a first identifier (e.g., a stream ID) of the first data stream.
[0095] Additionally or alternatively, in response to accessing the first set of data exhibiting a particular data type (or content), the transmitter module may classify the first data stream into a data class in the set of data classes based on the particular data type (or content) in block S104. For example, in response to accessing the first set of data including a first set of video data, the transmitter module may classify the first data stream into a first data class based on the first set of video data.
[0096] In response to accessing the first set of data, the transmitter module may access a first configuration profile associated with the first data stream based on the first set of data including the first identifier and / or a data type or content (e.g., a set of video data). More specifically, the transmitter module may access a first configuration profile that defines a policy defining a set of target conditions for communicating the first data stream and / or messages including data from the first data stream, a bit rate for the first data stream, a first frequency (e.g., 30 messages per second, 60 messages per second) at which to generate and transmit data messages for the first data stream (e.g., messages including a set of data in the data stream), a second frequency (e.g., 15 messages per second, 30 messages per second) at which to generate and transmit diagnostic messages for the first data stream (e.g., messages including a set of data in the data stream and a set of reference data), a deterministic function for generating reference data for the first data stream, a bit error rate threshold for the first data stream, a confidence level threshold for the bit error rate threshold for the first data stream, and / or other information related to the first data stream.
[0097] 6.2 Diagnostic Message Frequency Block S108 of method S100 recites defining a first frequency based on a bit rate of the first data stream.
[0098] Generally, the transmitter module can generate and transmit a set of messages containing the data in the data stream (or “data messages”) to the receiver module according to a particular frequency based on the bit rate of the data stream (e.g., a first frequency, 30 messages per second, 60 messages per second).
[0099] In one implementation, the transmitter module can define a first frequency at which to generate and transmit a set of messages, each message in the set of messages including a set of data in the first data stream. For example, the transmitter module can define the first frequency based on a bit rate of the first data stream and / or a first frequency specified in a first configuration profile for the first data stream. The transmitter module can define a set of messages to be generated and transmitted by the transmitter module to the receiver module, each message in the set of messages being generated and transmitted at the first frequency (e.g., during a first time period).
[0100] In another implementation, in block S106, the transmitter module can define a second frequency at which to generate the diagnostic message including the set of data in the first data stream and the set of reference data. In one example, the transmitter module defines the second frequency at which to generate the diagnostic message based on (e.g., proportional to) the bit rate of the first data stream defined in the first configuration profile. In another example, the transmitter module defines the second frequency at which to generate the diagnostic message based on (e.g., corresponding to) the second frequency defined in the first configuration profile. The transmitter module can define a set of diagnostic messages (e.g., a subset of messages in the set of messages) to be generated and transmitted by the transmitter module to the receiver module, where each message in the set of diagnostic messages is generated and transmitted at the second frequency (e.g., during a first time period).
[0101] For example, the transmitter module may define a first frequency corresponding to 60 messages per second for generating and transmitting the set of messages, define a second frequency corresponding to 10 messages per second for generating the set of diagnostic messages (i.e., a subset of messages in the set of messages), define a set of messages (i.e., 60 messages), where each message in the set of messages is generated and transmitted at the first frequency during a first time period having a duration of 1 second, and define a set of diagnostic messages (i.e., 10 messages), where each message in the set of diagnostic messages is generated and transmitted at the second frequency during the first time period having a duration of 1 second. In this example, during the first time period, the transmitter module generates and transmits a set of messages representing a first amount of 60 messages, and the set of messages includes a set of diagnostic messages representing a second amount of 10 messages. More specifically, during a first time period, the transmitter module generates and transmits a set of messages, where every sixth message in the set of messages is characterized by a diagnostic message and includes a set of reference data.
[0102] 6.3 Primary Reference Data Blocks of method S100 recite that in response to accessing a first set of data including a first identifier of a first data stream, in block S110, a first deterministic function is accessed based on the first identifier of the first data stream, and in block S112, a first seed value including a second identifier of a second communication module.
[0103] Block S114 of method S100 recites generating a first set of reference data based on a first deterministic function and a first seed value.
[0104] In one implementation, in block S110, the transmitter module may access a deterministic function to generate reference data for the first data stream. More particularly, the transmitter module may access the deterministic function in response to accessing a first configuration profile that defines the deterministic function based on a first identifier.
[0105] In one example, the transmitter module accesses a deterministic function that includes a pseudo-random bit pattern.
[0106] In another example, the transmitter module accesses a deterministic function configured to generate a set of reference data exhibiting bit lengths based on a bit rate of the first data stream and / or a bit error rate threshold associated with the first data stream.
[0107] In another implementation, in block S112, the transmitter module may access a seed value for the deterministic function. In one example, the transmitter module accesses a seed value that includes (or represents) a first identifier (e.g., serial number, public key) of the transmitter module. In another example, the transmitter module accesses a seed value that includes (or represents) a second identifier (e.g., serial number, public key) of the receiver module. The transmitter module may access a seed value that includes (or represents) other information, such as a data value, a timing reference for the message (e.g., sequence number, timestamp), etc.
[0108] In another implementation, in block S114, the transmitter module may generate a first set of reference data based on a deterministic function and a seed value. More specifically, the transmitter module may generate the first set of reference data exhibiting a bit length based on a bit rate of the first data stream and / or a bit error rate threshold associated with the first data stream.
[0109] Thus, by generating a set of reference data exhibiting a bit length based on the bit rate and / or bit error rate threshold of the first data stream, the system module can thereby transmit a sufficient (e.g., statistically significant) amount of reference bits for characterizing the communication link and / or for calculating the bit error rate at a resolution below the bit error rate threshold (e.g., according to Equation 1 and / or Equation 2).
[0110] 6.4 Generating and Sending Diagnostic Messages Blocks of method S100 include, in block S120, generating a first message including a first set of data and a first set of reference data, and, in block S122, transmitting the first message to a second communication module via a first communication link.
[0111] In one implementation, in block S120, the transmitter module may generate a first message including the first set of data in the first data stream and the first set of reference data. More specifically, the transmitter module may generate the first message in the first set of diagnostic messages, each message in the first set of diagnostic messages being generated during a first time period at the second frequency defined in block S108.
[0112] Additionally, the transmitter module may generate a first message further including a first identifier of the first stream. In one example, the transmitter module generates the first message further including the first identifier of the first stream in the first set of data. In one example, the transmitter module generates the first message further including the first identifier of the first stream in a stream ID field of the first message.
[0113] In another implementation, the transmitter module may generate a first error detection value (e.g., a first CRC value, a first checksum value, a first Turbo code, a first Viterbi code) based on the first set of data in the first data stream in block S116, and generate a second error detection value (e.g., a second CRC value, a second checksum value, a second Turbo code, a second Viterbi code) based on the first set of reference data in block S118. In block S120, the transmitter module may generate a first message including the first set of data, the first error detection value, the first set of reference data, and the second error detection value.
[0114] In another implementation, in block S122, the transmitter module transmits a first message to the receiver module over a first communication link.
[0115] 6.6 Receiving and verifying diagnostic messages The blocks of method S100 include receiving a first message from a first communication module via a first communication link in block S130, extracting a first set of reference data from the first message in block S132, and validating the first set of reference data based on a second error detection value in block S134.
[0116] In one implementation, the receiver module may receive a first message from the transmitter module via a first communication link in block S130 and extract a first set of reference data from the first message in block S132.
[0117] Further, the receiver module can extract a first set of data and / or a first identifier for the first data stream from the first message. The receiver module can access a first configuration profile for the first data stream based on the first identifier, the first configuration profile defining a deterministic function, a policy defining a set of target conditions for communicating the first data stream and / or messages including data from the first data stream, a bit rate for the first data stream, a deterministic function for generating reference data for the first data stream, a bit error rate threshold for the first data stream, a confidence level threshold for the bit error rate threshold for the first data stream, etc.
[0118] In another implementation, the receiver module may validate the first set of data based on a first error detection value and validate the first set of reference data based on a second error detection value in block S134.
[0119] 6.7 Secondary Reference Data The blocks of method S100 include, in response to receiving a first message, accessing a first deterministic function based on a first identifier of the first data stream in block S136, accessing a first seed value including a second identifier of the second communication module in block S138, and generating a second set of reference data based on the first deterministic function and the first seed value in block S140.
[0120] In general, the receiver module may implement the methods and techniques described above to generate the second set of reference data based on a deterministic function and a seed value.
[0121] In one implementation, the receiver module may access a deterministic function defined in a first configuration profile based on a first identifier of the first data stream in block S136, access a seed value (e.g., an identifier of the transmitter module, an identifier of the receiver module) in block S138, and generate a second set of reference data based on the deterministic function and the seed value in block S140. More specifically, the receiver module may generate the second set of reference data exhibiting a bit length based on a bit rate of the first data stream and / or a bit error rate threshold associated with the first data stream.
[0122] 6.8 Bit Error Rate Characterization Blocks of method S100 include, in block S142, calculating a first amount of bit errors in the first set of reference data based on the second set of reference data, and, in block S150, calculating a first bit error rate of the first communication link based on the first amount of bit errors.
[0123] Block S144 of method S100 recites defining a quantity of messages in a first window of messages based on a first frequency.
[0124] In one implementation, in block S142, the receiver module may calculate a first amount of bit errors in the first set of reference data based on the second set of reference data. For example, the receiver module may aggregate the amount of bit errors based on a bit-by-bit comparison of the first set of reference data and the second set of reference data in the first message.
[0125] In another implementation, the receiver module can store the first amount of bit errors in a first configuration profile. For example, the receiver module can associate the first amount of bit errors with the first message (e.g., based on an identifier of the first message, based on a sequence number of the first message) and store the first amount of bit errors associated with the first message in the first configuration profile.
[0126] In another implementation, in block S150, the receiver module may calculate a first bit error rate for the first communication link based on a first amount of bit errors. More specifically, the receiver module may calculate the first bit error rate based on a total amount of bit errors including the first amount of bit errors and a total amount of reference data within a first window of messages (e.g., a window of diagnostic messages) that includes the first message.
[0127] In one implementation, in block S144, the transmitter module can define the amount of messages in the first window of messages. In one example, the transmitter module defines the amount of messages in the first window of messages based on a frequency at which a diagnostic message (e.g., a message including a set of data in the data stream and a set of reference data) is generated and transmitted for the first data stream. In another example, the receiver module defines the amount of messages in the first window of messages based on a bit error rate reliability level of the first communication link, as described below.
[0128] In another implementation, the receiver module may, in block S146, define a total amount of reference data (e.g., a total amount of bits of reference data) in a first window of messages that includes a first message from a first communication module over a first communication link, and, in block S148, calculate a total amount of bit errors in the total amount of reference data in the first window of messages based on the first amount of bit errors. More specifically, for each message in the window of messages, the receiver module may access a first configuration profile that stores an amount of bit errors in the message and integrate the amount of bit errors in the message into the total amount of bit errors.
[0129] The receiver module may then calculate a first bit error rate based on the total amount of bit errors and the total amount of reference data in the first window of the message in block S150. For example, the receiver module may calculate a first bit error rate corresponding to a ratio of the total amount of bit errors to the total amount of reference data in the first window of the message.
[0130] Thus, the receiver module can define a sliding window of transmitted messages, aggregate a total amount of reference bits within the sliding window of transmitted messages and a total amount of bit errors in the total amount of reference bits, and calculate a bit error rate based on the total amount of bit errors and the total amount of reference bits within the sliding window of transmitted messages. Thus, the receiver module can perform real-time diagnostics of the communication link that are indicative of the time-varying performance of the communication link while minimizing masking of bursts of bit errors within a long history of error-free data transmission.
[0131] In one implementation, the receiver module can calculate a total amount of bit errors and calculate a first bit error rate in response to receiving, via a first communication link from the transmitter module, an amount of diagnostic messages corresponding to an amount of messages defined for a first window of messages.
[0132] 6.9 Trust Levels Block S152 of method S100 recites calculating a first reliability level for the first bit error rate based on the first bit error rate, the total amount of bit errors, and the total amount of reference data in the first window of the message.
[0133] Generally, in block S152, the receiver module may calculate a first bit error rate reliability level for the first communication link.
[0134] In one implementation, in block S152, the receiver module may calculate a first confidence level for the first bit error rate based on a first bit error rate threshold, a total amount of bit errors, and a total amount of reference data in a first window of the message. More specifically, the receiver module may calculate the confidence level CL based on Equation 3, where N corresponds to the total amount of reference data (bits), E corresponds to the total amount of bit errors (e.g., the total amount of detected bit errors), and BER t corresponds to the target bit error rate (or bit error rate threshold). TIFF2025532527000003.tif17170
[0135] Accordingly, the receiver module may calculate a first confidence level that represents a likelihood that the first bit error rate is accurate. Thus, in response to the first confidence level exceeding a confidence level threshold (e.g., 99.9%), the receiver module may calculate a probability of bit errors for the communication link based on (e.g., corresponding to) the bit error rate and calculate a residual bit error rate based on the probability of bit errors, such as based on Equation 1 and / or Equation 2.
[0136] 6.10 Residual Bit Error Rate Block S154 of method S100 recites calculating a first residual bit error rate for the first data stream based on the first bit error rate.
[0137] In one implementation, in block S154, the receiver module may calculate a residual bit error rate of the first communication link based on the first bit error rate. More specifically, the receiver module may calculate a residual bit error rate of the first data stream based on the first bit error rate in response to the first reliability level exceeding a first reliability level threshold (e.g., 99.9%) defined in the first configuration profile. For example, the receiver module may calculate the residual bit error rate based on Equation 1 and / or Equation 2.
[0138] 6.11 Output Messages Generally, in blocks S156, S158, and S160, the receiver module may generate a second message including the set of data and transmit the second message to the destination device.
[0139] In one implementation, in blocks S156 and S158, the receiver module may generate a second message including the first set of data in the first data stream, the first bit error rate, the first reliability level, and / or the residual bit error rate. Additionally, the receiver module may generate the second message further including a first identifier of the first data and / or other information related to the first data stream.
[0140] In another implementation, the receiver module can generate a first score representing performance of the first communication link based on the first bit error rate, the first bit error rate threshold, the first reliability level, and / or the first reliability level threshold. In this implementation, the receiver module can generate a second message further including the first score.
[0141] The receiver module may transmit the second message to the destination device in block S160.
[0142] Thus, the receiver module can fuse a set of data in the data stream with a set of metrics (e.g., bit error rate, reliability level, residual bit error rate, score) that represent the trustworthiness of the set of data, thereby enabling the destination device to detect that the set of data meets (or does not meet) a set of requirements specific to the destination device based on the set of metrics.
[0143] 6.12 Subsequent diagnostic messages The transmitter and receiver modules may repeat this process for subsequent sets of data in the first data stream and for subsequent messages between the transmitter and receiver modules.
[0144] For example, the receiver module may access a second set of data in the first data stream, generate a third set of reference data based on a deterministic function and a seed value, generate a third message including the second set of data and the third set of reference data, and transmit the third message to the receiver module via the first communications link.
[0145] In this example, the transmitter module may receive a third message from the transmitter module via the first communications link, extract a third set of reference data from the subsequent message, generate a fourth set of reference data based on a deterministic function and a seed value, define a second amount of messages in a second window of messages including the first message and the third message from the transmitter module via the first communications link, define a second total amount of reference data in the second window of messages, calculate a second amount of bit errors in the third set of reference data based on the fourth set of reference data, calculate a second total amount of bit errors in the second total amount of reference data in the second window of messages based on the second amount of bit errors, and calculate a second bit error rate of the first communications link based on the second total amount of errors.
[0146] Further, the receiver module may calculate a second reliability level for the first bit error rate based on the first bit error rate threshold, the second total amount of bit errors, and the second total amount of reference data in the second window of the message.
[0147] Further, the receiver module can calculate a second residual bit error rate based on the second bit error rate. More particularly, the receiver module can calculate the second residual bit error rate based on the second bit error rate in response to the second reliability level exceeding the first reliability level threshold.
[0148] The receiver module may generate a fourth message including a second set of data in the first data stream, a second bit error rate, a second reliability level, a first identifier of the first data, and / or other information related to the first data stream. The receiver module may then transmit the fourth message to the destination device.
[0149] 7. Controlling Acts Blocks of method S100 recite generating a second message indicating a fault in block S158 in response to the first bit error rate exceeding a first bit error rate threshold for the first data stream, and transmitting the second message to a second device in block S160.
[0150] In general, the receiver module may calculate a first bit error rate and perform an action (or set of actions) based on the first bit error rate and a bit error rate threshold for the data stream.
[0151] In one implementation, in block S150, the receiver module may calculate a first bit error rate.
[0152] In another implementation, in response to the first bit error rate falling below a first bit error rate threshold for the first data stream, the receiver module may generate a second message representing the functional status of the first communication link in block S156. More particularly, in response to the first bit error rate falling below the bit error rate threshold for the first data stream, the first reliability level exceeding the reliability level threshold for the first data stream, and the first residual bit error rate falling below the residual bit error rate threshold for the first data stream, the receiver module may generate the second message representing the functional status of the first communication link.
[0153] Alternatively, in response to the first bit error rate exceeding a first bit error rate threshold for the first data stream, the receiver module may generate a second message indicating a fault in block S158. More specifically, in response to the first bit error rate exceeding a bit error rate threshold for the first data stream, the first reliability level falling below a reliability level threshold for the first data stream, and / or the residual bit error rate falling below a residual bit error rate threshold for the first data stream, the receiver module may generate a second message indicating a fault condition of the first communication link, the source device, and / or the destination device.
[0154] In another implementation, in block S160, the receiver module can transmit the second message to the destination device. Additionally or alternatively, the receiver module can transmit the second message to the source device and / or another receiver (e.g., a receiver module, a device, a zone controller).
[0155] 7.1 Changing the operating mode Generally, the receiver module can issue a command to the destination device (or source device) to transition to a particular operating mode (e.g., a degraded operating mode) in response to detecting that the bit error rate has fallen below a bit error rate threshold. More specifically, the receiver module can detect the operating mode of the source device and / or the destination device, access a configuration profile for the data stream based on the detected operating mode, where the configuration profile defines a threshold, calculate a bit error rate for the communication link, and issue a command in response to the bit error rate exceeding the bit error rate threshold defined in the configuration profile.
[0156] In one implementation, in block S158, the receiver module may generate a second message including a command (or signal) to transition the destination device from the first operating mode to the second operating mode in response to the first bit error rate exceeding a bit error rate threshold for the first data stream, the first reliability level falling below a reliability level threshold for the first data stream, and / or the residual bit error rate falling below a residual bit error rate threshold for the first data stream.
[0157] In one example, the receiver module generates a second message including a first command (or signal) to transition the destination device from a first operating mode (e.g., a fully functional operating mode, a degraded operating mode) to a second operating mode representing a safe state (e.g., deactivation, power down, de-fueling).
[0158] In another example, the receiver module generates a second message that includes a second command (or signal) to transition the destination device from a fully functional mode of operation to a degraded mode of operation.
[0159] In another implementation, in block S160, the receiver module may send a second message to the destination device.
[0160] Additionally or alternatively, in block S158, the receiver module may perform the methods and techniques described above to generate a second message including a command (or signal) to transition the source device from the first operating mode to the second operating mode in response to the first bit error rate exceeding a bit error rate threshold for the first data stream, the first reliability level falling below a reliability level threshold for the first data stream, and / or the residual bit error rate falling below a residual bit error rate threshold for the first data stream.
[0161] The receiver module may transmit the second message to the source device in block S160. More specifically, the receiver module (i.e., the second communication module) may transmit the second message to the source device via the transmitter module (i.e., the first communication module).
[0162] Further, in response to receiving a subsequent diagnostic message from the transmitter module, the receiver module may issue a command to the destination device (or the source device) to transition from the second operating mode (e.g., a degraded operating mode, a safe state) to the first operating mode (e.g., a fully functional operating mode) in response to the second bit error rate falling below a bit error rate threshold for the first data stream (e.g., a second bit error rate threshold corresponding to the second operating mode), the second reliability level exceeding a reliability level threshold for the first data stream (e.g., a second reliability level threshold corresponding to the second operating mode), and the second residual bit error rate falling below a residual bit error rate threshold for the first data stream (a second residual bit error rate threshold corresponding to the second operating mode).
[0163] 7.3 Diagnostic Message Frequency In general, the transmitter module and receiver module may cooperate to increase the frequency of diagnostic messages in response to the bit error rate reliability level falling below a reliability level threshold for the data stream.
[0164] In one implementation, in response to the first reliability level falling below a reliability level threshold for the first data stream, the receiver module may send a signal (e.g., a message) to the transmitter module representing a command to define a third frequency, above the second frequency, at which to generate and transmit diagnostic messages.
[0165] In this implementation, in response to receiving a signal from the receiver module, the transmitter module can define a third frequency and define a second set of diagnostic messages (e.g., a second subset of messages in the second set of messages) to be generated and transmitted by the transmitter module to the receiver module, wherein each message in the second set of diagnostic messages is generated and transmitted at the third frequency (e.g., during a second time period that comes after the first time period).
[0166] For example, the transmitter module may define a first frequency corresponding to 60 messages per second for generating and transmitting the second set of messages, a third frequency corresponding to 20 messages per second for generating the second set of diagnostic messages (i.e., a second subset of messages in the second set of messages), a second set of messages (i.e., 60 messages) generated and transmitted at the first frequency during a second time period in which each message in the second set of messages has a duration of 1 second, and a second set of diagnostic messages (i.e., 20 messages) generated and transmitted at the third frequency during a first time period in which each message in the second set of diagnostic messages has a duration of 1 second. In this example, during the second time period, the transmitter module generates and transmits the second set of messages having a third amount of 60 messages, the second set of messages including the second set of diagnostic messages having a fourth amount of 20 messages. More specifically, during a second time period, the transmitter module generates and transmits a second set of messages, where every third message in the second set of messages is characterized by a diagnostic message and includes a set of reference data.
[0167] The transmitter module may perform the methods and techniques described above to access a second set of data in the first data stream, generate a third set of reference data based on a seed value, generate a third message in the second set of diagnostic messages, where the third message includes the second set of data and the third set of reference data, and transmit the third message to the receiver module via the first communication link.
[0168] The receiver module may perform the methods and techniques described above to receive a second message from the transmitter module via the first communication link, generate a fourth set of reference data based on a deterministic function and a seed value, extract the third set of reference data from the third message, define a second window of messages representing an amount of messages based on a third frequency and including the first message and the third message, define a second total amount of reference data within the second window of messages, and calculate a second amount of bit errors in the third set of reference data based on the fourth set of reference data. The receiver module may calculate a second total amount of bit errors in the second total amount of reference data within the second window of messages based on the second amount of bit errors, and calculate a second bit error rate of the first communication link based on the second total amount of errors. Further, the receiver module may calculate a second reliability level for the first bit error rate based on the first bit error rate threshold, the second total amount of bit errors, and the second total amount of reference data in the second window of the message, and in response to the second reliability level exceeding the first reliability threshold for the first data stream, generate a fourth message including a second command to transition the second device from the second operating mode to the first operating mode, and transmit the fourth message to the destination device (and / or the source device).
[0169] Thus, the system may accelerate the amount of reference bits transmitted over the first communications link in response to the confidence level of the detected bit error rate falling below the confidence level threshold, thereby enabling the system to more quickly update the confidence level of the detected bit error rate that exceeds the confidence level threshold.
[0170] 8. Redundant Controllers Generally, as shown in Figures 1, 4A, and 4B, each controller in the transmitter module can generate a separate copy of the set of reference data, and each controller in the receiver module can verify a copy of the set of reference data.
[0171] In one implementation, in block S114, the transmitter module may generate a first set of reference data based on a deterministic function and a seed value.
[0172] In another implementation, in block S170, a first controller (e.g., a first safety controller) in the transmitter module may generate a first signal including (or representing) a first set of reference data. Further, the first controller may generate a first error detection value (e.g., a first CRC value, a first Turbo code, a first Viterbi code) based on the first set of reference data, and generate a first signal including the first set of reference data and the first error detection value.
[0173] In another implementation, a second controller (e.g., a second safety controller) in the transmitter module may generate a third set of reference data based on the deterministic value and the seed function in block S172 and generate a second signal including (or representing) the third set of reference data in block S174. More specifically, the second controller may generate the third set of reference data representing the complement (or reciprocal) of the first set of reference data. Furthermore, the first controller may generate a second error detection value (e.g., a second CRC value, a second Turbo code, a second Viterbi code) based on the third set of reference data and generate a second signal including the third set of reference data and the second error detection value.
[0174] In one implementation, in block S120, a transmitter module (e.g., a first application processor in the transmitter module) may generate a first message including a first set of data in the first data stream, a first signal, and a second signal. Further, the third controller may generate a third error detection value (e.g., a cumulative CRC value, a cumulative Turbo code, a cumulative Viterbi code) based on the first set of data in the first data stream, the first signal, and the second signal, and generate a first message including the first set of data in the first data stream, the first signal, the second signal, and the third error detection value.
[0175] In this implementation, the transmitter module may transmit a first message to the receiver module over a first communication link in block S122.
[0176] In one implementation, in response to receiving a first message from the transmitter module, the receiver module (e.g., a second application processor in the receiver module) can validate the first message based on a third error detection value, separate the first signal and the second signal from the first message, output the first signal to a third controller (e.g., a third safety controller) in the receiver module, and output the second signal to a fourth controller (e.g., a fourth safety controller) in the receiver module.
[0177] The transmitter module may generate a second set of reference data based on the deterministic function and the seed value in block S140.
[0178] In another implementation, the third controller may extract a first set of reference data from a first signal in the first message in block S132 and calculate a first amount of bit errors in the first set of reference data based on the second set of reference data in block S142. Further, the third controller may validate the first signal based on the second error detection value.
[0179] In another implementation, the fourth controller may extract a third set of reference data from the second signal in the first message in block S176, generate a fourth set of reference data representing the complement of the second set of reference data in block S178, and calculate a second amount of bit errors in the third set of reference data based on the fourth set of reference data in block S180. Additionally, the fourth controller may validate the second signal based on the second error detection value.
[0180] The transmitter module may then, in block S150, perform the methods and techniques described above to calculate a first bit error rate for the first communication link based on the first amount of bit errors and the second amount of bit errors.
[0181] Thus, the receiver module can perform redundant verification and diagnosis of messages, thereby ensuring a higher level of certainty in the accuracy of each verification process and the corresponding bit error characterization.
[0182] 9. Multiple Source Data Streams In general, the system is capable of implementing the methods and techniques described above to communicate multiple simultaneous data streams over a first communication link and perform separate diagnostic procedures for each data stream.
[0183] In one implementation, the transmitter module can access a second set of data in a second data stream from the source device (e.g., a data stream representing a battery level of a remotely operated forklift), generate a third set of reference data based on a second deterministic function and a second seed value, generate a third message including the second set of data and the third set of reference data, and transmit the third message to the second communication module over the first communication link. More specifically, the transmitter module can generate the third set of reference data based on a bit rate of the second data stream and / or a second bit error rate threshold associated with the second data stream, wherein the third set of reference data exhibits a bit length based on the bit rate of the second data stream and / or the second bit error rate threshold associated with the second data stream.
[0184] In another implementation, the receiver module may receive a third message from the first communication module via the first communication link, extract a third set of reference data from the third message, generate a fourth set of reference data based on a second deterministic function and a second seed value, calculate a second amount of bit errors in the third set of reference data based on the fourth set of reference data, and calculate a second bit error rate of the first communication link based on the second amount of errors. In response to the second bit error rate falling below a second bit error rate threshold (e.g., 0.1%) for the second data stream, the receiver module may generate a fourth message representing a functional status of the first communication link for the second data stream and transmit the fourth message to a destination device.
[0185] Thus, by generating a third set of reference data exhibiting a bit length based on the bit rate of the second data stream and / or a second bit error rate threshold associated with the second data stream, the system module can thereby transmit a sufficient (e.g., statistically significant) amount of reference bits for characterizing the communication link specific to the requirements of the second data stream and / or for calculating a second bit error rate at a resolution below the second bit error rate threshold (e.g., according to Equation 1 and / or Equation 2).
[0186] 10. Conclusion The systems and methods described herein may be embodied and / or implemented, at least in part, as a machine configured to receive a computer-readable medium storing computer-readable instructions. The instructions may be executed by a computer-executable component integrated with an application, applet, host, server, network, website, communication service, communication interface, hardware / firmware / software element of a user computer or mobile device, wristband, smartphone, or any suitable combination thereof. Other systems and methods of the present embodiments may be embodied and / or implemented, at least in part, as a machine configured to receive a computer-readable medium storing computer-readable instructions. The instructions may be executed by a computer-executable component integrated with devices and networks of the types described above. The computer-readable medium may be stored on any suitable computer-readable medium, such as RAM, ROM, flash memory, EEPROM, optical device (CD or DVD), hard drive, floppy drive, or any suitable device. The computer-executable component may be a processor, although any suitable dedicated hardware device may (alternatively or additionally) execute the instructions.
[0187] As those skilled in the art will recognize from the above detailed description, and from the figures and claims, modifications and variations can be made to the embodiments of the invention without departing from the scope of the invention, which is defined in the appended claims.
Claims
1. In the first communication module, accessing a first set of data in a first data stream from a first device; generating a first set of reference data based on a first deterministic function and a first seed value; generating a first message comprising said first set of data and said first set of reference data; transmitting said first message to a second communication module via a first communication link; In the second communication module, receiving the first message from the first communication module via the first communication link; extracting said first set of reference data from said first message; generating a second set of reference data based on said first deterministic function and said first seed value; calculating a first amount of bit errors in said first set of reference data based on said second set of reference data; calculating a first bit error rate for the first communications link based on the first amount of bit errors; generating a second message indicating a fault in response to the first bit error rate exceeding a first bit error rate threshold for the first data stream; sending said second message to a second device; A method comprising:
2. calculating the first bit error rate; - defining a total amount of reference data within a first window of messages, including the first message from the first communication module via the first communication link; calculating a total amount of bit errors in said total amount of reference data in said first window of a message based on said first amount of bit errors; calculating said first bit error rate based on said total amount of bit errors in said first window of messages and said total amount of reference data; The method of claim 1 , comprising:
3. In the first communication module, accessing a second set of data in the first data stream; generating a third set of reference data based on said first deterministic function and said first seed value; generating a third message comprising said second set of data and said third set of reference data; sending said third message to said second communication module via said first communication link; In the second communication module, receiving the third message from the first communication module via the first communication link; extracting said third set of reference data from said third message; and generating a fourth set of reference data based on said first deterministic function and said first seed value; - defining a second total amount of reference data within a second window of messages, comprising the first message and the third message from the first communication module via the first communication link; calculating a second amount of bit errors in said third set of reference data based on said fourth set of reference data; calculating a second amount of bit errors in said second amount of reference data within said second window of a message based on said second amount of bit errors; calculating a second bit error rate for the first communications link based on the second amount of errors; generating a fourth message indicative of a functional status of the first communication link for the first data stream in response to the second bit error rate falling below the first bit error rate threshold for the first data stream; and sending said fourth message to said second device; The method of claim 2 further comprising:
4. said first bit error rate threshold; said total amount of bit errors; and the total amount of reference data in the first window of messages; ● calculating a first reliability level for the first bit error rate based on the further comprising generating the first messages comprises generating the first messages in a first set of diagnostic messages, each message in the first set of diagnostic messages being generated at a first frequency during a first time period; in response to the first reliability level falling below a first reliability level threshold for the first data stream; - defining a second set of diagnostic messages from the first communication module to the second communication module via the first communication link, wherein each message in the second subset of diagnostic messages is generated during a second time period that follows the first time period and at a second frequency that is greater than the first frequency; accessing a second set of data in the first data stream; generating a third set of reference data based on said first seed value; generating a third message in said second set of diagnostic messages, said third message comprising said second set of data and said third set of reference data; transmitting said third message to said second communication module via said first communication link; The method of claim 2 further comprising:
5. said first bit error rate threshold; said total amount of bit errors; and the total amount of reference data in the first window of messages; ● calculating a first reliability level of the first bit error rate based on the further comprising generating the first messages includes generating the first messages in a first set of diagnostic messages, wherein each message in the first set of diagnostic messages is generated during a first time period at a first frequency; generating said second message comprises: the first bit error rate exceeds the first bit error rate threshold for the first data stream; and the first reliability level falls below a first reliability level threshold for the first data stream; generating the second message including a command to transition the first device from a first mode of operation to a second mode of operation in response to the The method of claim 2 , comprising:
6. calculating a first residual bit error rate for the first data stream based on the first bit error rate; generating said second message comprises: the first bit error rate exceeds a first bit error rate threshold for the first data stream; and the first residual bit error rate exceeds a first residual bit error rate threshold for the first data stream; generating the second message indicative of the fault in response to The method of claim 1 , comprising:
7. generating the first messages includes generating the first messages in a first set of diagnostic messages, wherein each message in the first set of diagnostic messages is generated during a first time period at a first frequency; - in the first communication module, defining the first frequency based on a bit rate of the first data stream; in said second communication module, defining an amount of messages in said first window of messages based on said first frequency; The method of claim 2 further comprising:
8. In the first communication module, - in response to accessing the first set of data including a first identifier of the first data stream, accessing the first deterministic function based on the first identifier of the first data stream; accessing the first seed value comprising a second identifier of the second communication module; In the second communication module, - in response to receiving the first message, accessing the first deterministic function based on the first identifier of the first data stream; accessing the first seed value comprising the second identifier of the second communication module; The method of claim 1 further comprising:
9. accessing the first set of data includes accessing the first set of data including a first set of video data captured by a first optical sensor of the first device; classifying said first data stream into a first data class based on said first set of video data; accessing a first policy associated with said first data class, said first policy defining said first bit error rate threshold; The method of claim 1 further comprising:
10. accessing the first set of data includes accessing the first set of data including a first set of video data captured by a first optical sensor of the first device; generating the second message includes generating the second message including a command to transition the first device to a secure state; The method of claim 1.
11. generating the first message; generating, in a first controller in said first communications module, a first signal comprising said first set of reference data; the second controller in the first communication module, generating a third set of reference data representing the complement of said first set of reference data; generating a second signal including said third set of reference data; generating said first message comprising said first set of data, said first signal and said second signal; Including, extracting the first set of reference data includes extracting, at a third controller in the second communications module, the first set of reference data from the first signal in the first message; calculating the first amount of bit errors includes, at the third controller, calculating the first amount of bit errors in the first set of reference data based on the second set of reference data; a fourth controller in the second communication module; extracting said third set of reference data from said second signal in said first message; generating a fourth set of reference data representing the complement of said second set of reference data; calculating a second amount of bit errors in said third set of reference data based on said fourth set of reference data; further comprising calculating the first bit error rate includes calculating the first bit error rate of the first communications link based on the first amount of bit errors and the second amount of bit errors; The method of claim 1.
12. In the first communication module, accessing a second set of data in a second data stream from the first device; and generating a third set of reference data based on a second deterministic function and a second seed value; generating a third message comprising said second set of data and said third set of reference data; sending said third message to said second communication module via said first communication link; In the second communication module, receiving the third message from the first communication module via the first communication link; extracting said third set of reference data from said third message; and generating a fourth set of reference data based on said second deterministic function and said second seed value; calculating a second amount of bit errors in said third set of reference data based on said fourth set of reference data; calculating a second bit error rate for the first communications link based on the second amount of errors; generating a fourth message indicative of a functional status of the first communication link for the second data stream in response to the second bit error rate falling below a second bit error rate threshold for the second data stream; and sending said fourth message to said second device; The method of claim 1 further comprising:
13. by the first communication module; generating a first error detection value based on the first set of data in the first data stream; generating a second error detection value based on said first set of reference data; further comprising generating the first message; said first set of data; the first error detection value; and said first set of reference data; the second error detection value; and generating the first message including: validating, by the second communication module, the first set of reference data based on the second error detection value; The method of claim 1 further comprising:
14. generating the second message; said first set of data; the first bit error rate; and a command for transitioning the second device from a first operating mode to a second operating mode; generating the second message including: The method of claim 1.
15. generating said first set of reference data; based on said first deterministic function and said first seed value, - exhibiting a bit length based on the bit rate of the first data stream and the first bit error rate threshold; generating the first set of reference data; The method of claim 1.
16. In the first communication module, accessing a first set of data in a first data stream from a first device; generating a first set of reference data based on a first deterministic function and a first seed value; generating a first message comprising said first set of data and said first set of reference data; transmitting said first message to a second communication module via a first communication link; In the second communication module, receiving the first message from the first communication module via the first communication link; extracting said first set of reference data from said first message; generating a second set of reference data based on said first deterministic function and said first seed value; calculating a first amount of bit errors in said first set of reference data based on said second set of reference data; - defining a total amount of reference data within a first window of messages, including the first message from the first communication module via the first communication link; calculating a total amount of bit errors in said total amount of reference data in said first window of a message based on said first amount of bit errors; calculating a first bit error rate for the first communications link based on the total amount of bit errors in the first window set of messages and the total amount of reference data; in response to the first bit error rate falling below a first bit error rate threshold for the first data stream; the first set of data; the first bit error rate; generating a second message including: sending said second message to a second device; A method comprising:
17. In the first communication module, accessing a second set of data in the first data stream; generating a third set of reference data based on a first deterministic function and the first seed value; generating a third message comprising said second set of data and said third set of reference data; sending said third message to said second communication module via said first communication link; In the second communication module, receiving the third message from the first communication module via the first communication link; extracting said third set of reference data from said third message; and generating a fourth set of reference data based on said first deterministic function and said first seed value; - defining a second total amount of reference data within a second window of messages, comprising the first message and the third message from the first communication module via the first communication link; calculating a second amount of bit errors in said third set of reference data based on said fourth set of reference data; calculating a second amount of bit errors in said second amount of reference data within said second window of a message based on said second amount of bit errors; calculating a second bit error rate for the first communications link based on the second amount of errors; generating a fourth message indicating a failure in response to the second bit error rate exceeding the first bit error rate threshold for the first data stream; sending said fourth message to said second device; 17. The method of claim 16, further comprising:
18. said first bit error rate threshold; said total amount of bit errors; and the total amount of reference data in the first window of messages; calculating a first confidence level of the first bit error rate based on generating the first messages includes generating the first messages in a first set of diagnostic messages, wherein each message in the first set of diagnostic messages is generated during a first time period at a first frequency; generating said second message comprises: the first bit error rate falls below the first bit error rate threshold for the first data stream; and the first reliability level falls below a first reliability level threshold for the first data stream; generating the second message in response to the second message including a command to transition the second device from the first mode of operation to the second mode of operation.
17. The method of claim 16.
19. in response to the first reliability level falling below a first reliability level threshold for the first data stream; In the first communication module, - defining a second set of diagnostic messages from the first communication module to the second communication module via the first communication link, wherein each message in the second subset of diagnostic messages is generated during a second time period that follows the first time period and at a second frequency that is greater than the first frequency; accessing a second set of data in the first data stream; generating a third set of reference data based on said first seed value; generating a third message in said second set of diagnostic messages, said third message comprising said second set of data and said third set of reference data; In the second communication module, receiving the third message from the first communication module via the first communication link; extracting said third set of reference data from said third message; and generating a fourth set of reference data based on said first seed value; from the first communication module via the first communication link; ■ including the first message and the third message; ■ indicating the amount of the message based on the second frequency; Defining a second window of messages; defining a second amount of reference data within said second window of messages; calculating a second amount of bit errors in said third set of reference data based on said fourth set of reference data; calculating a second amount of bit errors in said second amount of reference data within said second window of a message based on said second amount of bit errors; calculating a second bit error rate for the first communications link based on the second amount of errors; the first bit error rate threshold; a second total amount of bit errors; and the second total amount of reference data in the second window of messages; calculating a second reliability level for the first bit error rate based on the circle; generating a fourth message including a second command to transition the second device from the second mode of operation to the first mode of operation in response to the second reliability level exceeding the first reliability threshold for the first data stream; sending said fourth message to said second device; 20. The method of claim 18, further comprising:
20. In the receiver communication module, receiving a first message from a transmitter communication module via a communication link, said first message comprising: a set of sensor data in a data stream from a first sensor device; a first set of reference data based on a deterministic function and a seed value; receiving a first message including: extracting the first set of reference data from the first message; and generating a second set of reference data based on the deterministic function and the seed value; - calculating a first amount of bit errors in the first set of reference data based on the second set of reference data; - defining a total amount of reference data within a first window of messages, the first window including the first message from the first communication module over the first communication link; - calculating a total amount of bit errors in the total amount of reference data within the first window of a message based on the first amount of bit errors; calculating a bit error rate for the first communications link based on the total amount of bit errors within the first window set of messages and the total amount of reference data; generating a second message indicating a fault in response to the bit error rate exceeding a bit error rate threshold for the data stream; and sending said second message to a second device; A method comprising:
Citation Information
Patent Citations
Receiving quality estimation apparatus, wireless communication system, and receiving quality estimation method
JP2007006462A
Protected communication links with improved protective markings
JP2010537466A
System and method for internal networking, data optimization and dynamic frequency selection in a vehicular environment
US20140215491A1
Variable rate coding for enabling high performance communication
US20160173220A1
Device and method for prioritization of data for intelligent discard in a communication network
US20180139145A1