Modulating signal level transitions to increase data throughput over communication channels

An encoder for modulating data on level transitions of a signal transmitted on a wired communication channel to increase channel data throughput, comprising a circuitry configured for receiving a signal transmitted by a transmitting communication node, the signal carries a message to one or more receiving communication nodes connected to a wired communication channel, calculating a respective delay period consisting of a number of delay time units encoding one or more data items, delaying one or more transitions of a waveform level of the signal by the respective delay period to modulate the signal to carry the data item(s) and transmitting the modulated signal to one or more of the receiving communication nodes having a decoder configured for demodulating the modulated signal.

BACKGROUND

The present invention, in some embodiments thereof, relates to increasing data throughput of wired, optical and wireless communication channels, and, more specifically, but not exclusively, to increasing data throughput of wired communication channels by modulating data on level transitions of transmitted messages signals.

Wired communication channels, for example, serial interconnections (e.g. RS-232, RS-422, RS-485, etc.), Controller Area Network (e.g. CAN, CANopen, CAN-FD, Single-Wire-CAN etc.), Local Interconnect Network (LIN), Ethernet, IO-Link, Serial Peripheral Interface (SPI), I2C, KNX, M-Bus, Modbus, Profibus, 10Base-T1L, 10Base-T1S, MIL-STD-1553, NRZ, RZ, Manchester line coding based communication protocols and/or optical (fiber optics, laser based), and/or the like are widely deployed in a plurality infrastructures, platforms and/or the like used by a plurality of systems, applications and/or services ranging from automotive and vehicular networks, through industrial infrastructures and medical environments to military systems.

The common and widespread use of such wired communication channels may be contributed to several benefits and advantages they present. First, due to the early adoption of such wired communication channels many industries, infrastructures, platforms and applications have historically built on these communication channels as their underlying communication infrastructure.

Moreover, the wired communication channels may be significantly more robust compared to wireless communication channels which may be subject to interference, jamming, limited coverage and/or the like.

Furthermore, the wired communication channels may be significantly more secure compared to the wireless communication channels which may easily intercepted, manipulated, attacked and/or compromised by malicious parties.

SUMMARY

According to a first aspect of the present invention there is provided an encoder for modulating data on level transitions of a signal transmitted on a wired communication channel to increase channel data throughput, comprising a circuitry configured for:Receiving a signal transmitted by a transmitting communication node. The signal carries a message to one or more receiving communication nodes connected to a wired communication channel.Calculating a respective delay period consisting of a number of delay time units encoding one or more data items.Delaying one or more transitions of a waveform level of the signal by the respective delay period to modulate the signal to carry the one or more data items.Transmitting the modulated signal to one or more of the receiving communication nodes having a decoder configured for demodulating the modulated signal.

According to a second aspect of the present invention there is provided a method of modulating data on level transitions of a signal transmitted on a wired communication channel to increase channel data throughput, comprising:Receiving a signal transmitted by a transmitting communication node. The signal carries a message to one or more receiving communication nodes connected to a wired communication channel.Calculating a respective delay period consisting of a number of delay time units encoding one or more data items.Delaying one or more transitions of a waveform level of the signal by the respective delay period to modulate the signal to carry the one or more data items.Transmitting the modulated signal to one or more of the receiving communication nodes having a decoder configured for demodulating the modulated signal.

According to a third aspect of the present invention there is provided a decoder for demodulating data encoded on level transitions of a signal transmitted on a wired communication channel to increase channel data throughput, comprising a circuitry configured for:Receiving a modulated signal from an encoder connected to a wired communication channel. The modulated signal carries a message generated by a transmitting communication node.Synchronizing a local sampling clock to a sampling clock of the transmitting communication node extracted from the modulated signal.Demodulating the modulated signal to extract one or more data items carried by the modulated signal. The one or more data items are extracted by determining, based on the local sampling clock. A number of delay time units applied to delay one or more transitions of a waveform level of the modulated signal. The number of delay time units encodes the one or more data items.Outputting the one or more extracted data items.

According to a fourth aspect of the present invention there is provided a method of demodulating data encoded on level transitions of a signal transmitted on a wired communication channel to increase channel data throughput, comprising:Receiving a modulated signal from an encoder connected to a wired communication channel. The modulated signal carries a message generated by a transmitting communication node.Synchronizing a local sampling clock to a sampling clock of the transmitting communication node extracted from the modulated signal.Demodulating the modulated signal to extract one or more data items carried by the modulated signal. The one or more data items are extracted by determining, based on the local sampling clock. A number of delay time units applied to delay one or more transitions of a waveform level of the modulated signal. The number of delay time units encodes the one or more data items.Outputting the one or more extracted data items.

Encoding the additional data items in the level transitions of the message signals' waveforms may allow constructing an overlaying communication link over the wired communication channel. Such an overlaying communication link may significantly increase the data throughput of the communication protocol utilized by the wired communication channel without affecting utilization of the wired communication channel. Specifically, no additional bandwidth is required for transmitting the additional data items since the bandwidth required for transmitting the modulated signals is similar to the bandwidth required for transmitting a corresponding non-modulated signal. The increased data throughput may be of special interest for enhancing legacy wired communication channels inherently suffering a limited throughput.

In a further implementation form of the first, second, third and/or fourth aspects, each of the encoder circuitry and the decoder circuitry is implemented in one or more forms, for example, a hardware circuit, an integrated circuit (IC), a semiconductor intellectual property core (IP core), a software module and/or a combination of at least two members thereof. Supporting a wide diverse range of implementation forms may provide great flexibility in designing, integrating, applying and/or deploying the encoder and/or decoder circuitries for different wired communication channels, buses and/or interfaces which may each present different requirement, imitations and/or challenges. Using the different implementation forms may allow adjusting and customizing the circuitry(s) according to the exact characteristics specific to each wired communication channel. Supporting the wide diverse range of implementation forms may thus increase adoption of the level transitions signal modulation in a plurality of applications, platforms and market segments.

In a further implementation form of the first, second, third and/or fourth aspects, one or more of the encoded data items are used for transmitting additional data in addition to data of the message to increase a data throughput of the wired communication channel. Increasing the data throughput of the underlining base wired communication channel may allow transferring significantly increased data volumes over the same infrastructure without increasing utilization of the wired communication channel and with minimal effect on the operational characteristics of the wired communication channel. This may be of particular interest to legacy wired communication channels utilizing communication protocols with inherently limited data throughput capacities.

In a further implementation form of the first, second, third and/or fourth aspects, one or more of the encoded data items are used for transmitting additional protocol data related to a communication protocol utilized by the wired communication channel for enhancing the communication protocol. Using additional data items to transmit protocol related data may allow enhancing the communication protocol utilized over the wired communication channel without increasing utilization and/or exceeding valid operational characteristics of the wired communication channel and/or the communication protocol.

In a further implementation form of the first, second, third and/or fourth aspects, one or more of the encoded data items are used for authenticating the transmitting communication node as originator of the message. Using the additional data items to transmit authentication data in order to apply an authentication protocol for the transmitting nodes may significantly increase security in the wired communication channel environment. This may be of specific interest for wired communication channels in which such authentication protocol are not feasible and/or may incur major overhead.

In a further implementation form of the first, second, third and/or fourth aspects, one or more of the encoded data items are used for authenticating the message. Using the additional data items to transmit authentication data in order to apply an authentication protocol for the transmitted messages may significantly increase security in the wired communication channel environment. This may be of specific interest for wired communication channels in which such authentication protocol are not feasible and/or may incur major overhead.

In a further implementation form of the first, second, third and/or fourth aspects, one or more of the encoded data items are used for transmitting error detection and correction data calculated for data of the message. Using the additional data items to transmit error correction codes (ECC) may significantly improve integrity of the transmitted data and may thus significantly increase robustness and immunity of the wired communication channel and the utilized communication protocol to interference such as, for example, noise, cross-talk, radiation and/or the like.

In a further implementation form of the first, second, third and/or fourth aspects, one or more of the encoded data items are used for transmitting update data for one or more of: a software update and a firmware update. Using the additional data items for software and/or firmware updates may allow field upgrades which may be highly data intensive and hence may not be feasible and/or may incur major overhead in legacy wired communication channels and protocols typically limited with respect to their data throughput.

In a further implementation form of the first, second, third and/or fourth aspects, the delayed level transition(s) are preceded by at least some non-delayed level transitions used by the decoder of one or more of the receiving communication nodes for synchronizing to the sampling clock of the signal. It is essential for the decoder to synchronize its local clock to the sampling clock of the encoder and of the transmitting communication node in order to correctly demodulate and decode the modulated signal. The non-delayed level transitions allow the decoder to recover the sampling clock from the modulated and hence synchronize its local sampling clock to the sampling clock of the transmitting communication node.

In an optional implementation form of the first, second, third and/or fourth aspects, one or more pilot signal transmitted by the encoder are used for calibrating the modulation between the encoder and the decoder. The encoder may apply one or more encoding settings which the decoder must be familiar with in order to correctly demodulate and decode the modulated signal. The pilot signals may be used to transfer theses encoding settings to the decoder. This may further allow dynamically adjusting the encoding setting(s) in real-time and using the pilot signal(s) to update the decoder about the adjusted encoding setting(s).

In a further implementation form of the first, second, third and/or fourth aspects, a duration of each delay time unit is adapted according to one or more operational parameters of a communication protocol utilized by the wired communication channel, the one or more operational parameters are members of a group consisting of: a frequency, an edge rise time of the one or more level transition, an edge fall time of the one or more level transition, a propagation time, a jitter, a clock drift and/or an interference. Adapting the encoding settings, specifically the delay time unit according to the operational parameter(s) of the communication protocol may ensure compliance of the modulated signal with the communication protocol. This may be particularly essential in case there are legacy communications nodes connected to the wired communication channel since such legacy communication nodes may be sensitive to deviation(s) from the communication protocol operational parameter(s) which may lead to operational degradation and potentially to operation failure of the legacy communication nodes.

In a further implementation form of the first, second, third and/or fourth aspects, a maximum number of delay time units applied to delay one or more of the level transitions is adapted according to one or more operational parameters of a communication protocol utilized by the wired communication channel, the one or more operational parameters are members of a group consisting of: a frequency, an edge rise time of the one or more level transition, an edge fall time of the one or more level transition, a propagation time, a jitter, a clock drift and/or an interference. Adapting the encoding settings, specifically the maximum number of delay time units according to the operational parameter(s) of the communication protocol may ensure compliance of the modulated signal with the communication protocol. This may be particularly essential in case there are legacy communications nodes connected to the wired communication channel since such legacy communication nodes may be sensitive to deviation(s) from the communication protocol operational parameter(s) which may lead to operational degradation and potentially to operation failure of the legacy communication nodes.

In an optional implementation form of the first, second, third and/or fourth aspects, one or more of the delayed level transitions are applied in one or more segments of the waveform. The segment(s) is defined according to a communication protocol utilized by the wired communication channel. Limiting the alterations of the level transitions to the defined segments may allow avoiding alterations of critical segment(s) of the modulated signal thus maintaining high signal integrity for these critical segment(s).

In a further implementation form of the first, second, third and/or fourth aspects, the delay period applied to the delayed level transition(s) is functionally transparent to legacy communication nodes connected to the wired communication channel and having no decoder. In some scenarios, communication nodes equipped with the encoder(s) and decoder(s) of the modulated signals may be deployed in environments in which legacy communication nodes are also present. Modulating the modulated signals such that the delayed level transition(s) are functionally transparent to the legacy communication nodes may be essential to maintain proper operation of the legacy communication nodes which may be sensitive to alterations of signals deviating from the operational parameter(s) of the communication protocol utilized by the wired communication channel.

In an optional implementation form of the first, second, third and/or fourth aspects, null modulation is applied to the modulated signal by constructing the delay period to include zero delay time units for all level transitions in the waveform of the signal. It may be highly desirable to avoid modulation of at least some signals transmitted by one or more transmitting communication nodes, specifically for critical messages. The modulation may therefore be disabled by using zero delay time units such that the modulated signal is substantially similar to a corresponding non-modulated signal.

In an optional implementation form of the first, second, third and/or fourth aspects, one or more segments of the waveform are scrambled to replace data encoded in the scrambled segment(s) with alternative data. Scrambling at least some segments of the modulated signal by, for example, applying a different coding scheme may significantly increase the number of level transitions and hence increase the number of data items which may be encoded in the modulated signal.

In an optional implementation form of the first, second, third and/or fourth aspects, one or more encoded data items are paired with at least some data of the message to make one or more of the encoded data items decodable based on the at least some message data. Pairing the encoded data item(s) with the message data may allow encrypting the message data and/or the additional data items since each of them may not be decoded separately. Moreover, by coupling the message data and the additional data items, at least part of the modulated signal may be scrambled with no extra effort, cost and/or resources.

In a further implementation form of the first, second, third and/or fourth aspects, the decoder circuitry is configured for outputting a recovered version of the modulated signal for extracting data of the message. The decoder recovers, from the modulated signal, the original message transmitted by the transmitting communication node in addition to decoding the additional data items encoded in the modulated signal.

In a further implementation form of the first, second, third and/or fourth aspects, the synchronizing is done according to sampling of at least some non-delayed level transitions of the waveform preceding the level transition(s). It is essential for the decoder to synchronize its local clock to the sampling clock of the encoder and of the transmitting communication node in order to correctly demodulate and decode the modulated signal. The non-delayed level transitions allow the decoder to recover the sampling clock from the modulated and hence synchronize its local sampling clock to the sampling clock of the transmitting communication node.

In a further implementation form of the first, second, third and/or fourth aspects, the synchronizing is done according to sampling of at least some predefined delayed level transitions of the waveform preceding the one or more level transitions. Each of the at least some predefined delayed level transitions is delayed by a predefined delay period. As described for the non-delayed level transitions, it is essential for the decoder to synchronize its local clock to the sampling clock of the encoder and of the transmitting communication node. The predefined delayed level transitions may therefore be used by the decoder (which is familiar with the delay value of the predefined delayed level transitions) to recover the sampling clock from the modulated in order to synchronize its local sampling clock to the sampling clock of the transmitting communication node.

DETAILED DESCRIPTION

The present invention, in some embodiments thereof, relates to increasing data throughput of wired communication channels, and, more specifically, but not exclusively, to increasing data throughput of wired communication channels by modulating data on level transitions of transmitted messages signals.

According to some embodiments of the present invention, there are provided devices, systems, methods and computer program products for modulating a message signal transmitted over a wired communication channel to encode additional data items (symbols) in level transitions of the message signal to create an overlaying communication link over the wired communication channel.

One or more of a plurality of communications nodes connected the wired communication channel, for example, a serial interconnection (e.g. RS-232, RS-422, RS-485, etc.), a CAN bus (e.g. CAN, CANopen, CAN-FD, etc.), a LIN, an Ethernet link, an IO-Link, an SPI, an I2C, a Modbus, a Profibus and/or the like may communicate with each other by exchanging messages over the wired communication channel.

At least some of the communications nodes may be associated with an encoder and/or a decoder adapted to modulate and demodulate respectively the modulated signals. The encoder and/or the decoder may be implemented, utilized and/or facilitated by one or more hardware components (e.g. a circuit, a component, etc.), logic elements (e.g. a core, an Intellectual Property (IP) core), software modules (e.g. a process, a script, an application, an agent, a utility, a service, a daemon, a tool, etc.). The encoder and/or the decoder may be independent devices bridging the communication nodes to the wired communication channel and/or integrated in one or more other devices. However, the encoder and/or the decoder may be integrated in one or more circuits, components and/or devices, for example, a communications node, a PHY adapted to condition the messages signals, a connector and/or the like.

The encoder of a transmitting communication node may modulate the message signal received from its associated transmitting communication node to create the modulated signal by delaying one or more of the level transitions in the message signal waveform to encode one or more of the additional data items.

The encoder may delay each delayed level transition by a delay period consisting of a number of delay time units mapping a respective one of the additional data items (symbols). As such each delay period encodes a respective data item (symbol), for example, a delay period consisting of a first number of delay time units (e.g. 0) may map a first data item (e.g. “00”), a delay period consisting of a second number of delay time units (e.g. 1) may map a second data item (e.g. “01”), a delay period consisting of a third number of delay time units (e.g. 2) may map a third data item (e.g. “10”), a delay period consisting of a fourth number of delay time units (e.g. 3) may map a fourth data item (e.g. “11”) and so on. Of course a plurality of other mapping schemes may be applied.

The encoder may transmit the modulated signal in which one or more of the level transitions are delayed to one or more receiving communication nodes connected to the wired communication channel.

The encoder may avoid delaying at least some level transitions of the modulated signal waveform, specifically at the beginning of the modulated signal to support the decoder in synchronizing its local sampling clock to the sampling clock of the encoder (and hence to the sampling clock of the originating communication node) by recovering the clock from the modulated signal.

After synchronizing its local sampling clock by recovering the clock from the modulated signal, the decoder associated with each receiving communication node may demodulate the received modulated signal by measuring the delay period applied to each delayed level transition to identify the number of delay time units applied to delay the level transition and extract the mapped data item according to the mapping scheme.

The decoder may create a recovered version of the modulated signal which corresponds to the message signal originally generated by the transmitting communication node.

The decoder may output the recovered message signal and the additional data item(s) extracted from the level transition(s) of the modulated signal.

Optionally, the encoder transmits to the decoder(s) one or more pilot signals preceding the modulated signal. The pilot signal(s) may include calibration information that may be used by the decoder to calibrate and adjust according to one or more encoding setting applied by the encoder.

The duration of the delay time units and the maximum number of delay time units by which the encoder may delay each of the delayed level transitions may be adapted and/or predefined according to one or more operational parameters of the communication protocol utilized by the wired communication channel, specifically timing parameters, for example, a frequency, an edge rise time of level transition, an edge fall time of the at least one transition, a propagation time, a jitter, a clock drift and an interference.

Evidently it may be highly desirable to have a large set of delay periods in order to map a large set of additional data items (symbols) and hence increase the amount of additional data that may be overlaid on the message signal. However, the duration of the delay time units may be set, configured and/or adapted to be sufficiently long to sustain sufficient resolution to allow the decoder to distinguish between consecutive delay time units and properly measure the delay period to demodulate the modulated signal. The duration and/or maximum number of the delay time units may be further adapted to provide an optimal tradeoff between the number of data items which may be mapped by the number of delay time units and the resolution of the delay time units while maintaining the timing parameter(s) of the communication protocol.

Optionally, the encoder dynamically adapts in real-time the duration and/or maximum number of delay time units according to one or more of the operational parameters of the communication protocol detected in real time, for example, the frequency, the jitter, the propagation delay and/or the like. The encoder may report the selected encoding settings, the duration and/or maximum number of the delay time units to the decoder through one or more of the pilot signals to maintain compatibility between the encoder and the decoder demodulating the modulated signals.

Optionally, the encoder applies null modulation in which each delayed level transition is delayed by zero delay time units such that the modulated signal is substantially similar to the non-modulated signal received from the transmitting communication node. The null modulation may be applied, for example, by modulating each of the level transitions with a zero delay period. In another example, the encoder may be turned off while the communication node directly transmits over the wired communication channel.

The signal modulation to create the overlaying communication link over the wired communication channel by encoding the additional data items in the level transitions of the message signals may present significant benefits and advantages.

First, by encoding the additional data items in the waveforms of the message signals, the data throughput of the communication protocol utilized by the wired communication channel may be significantly increased without affecting utilization of the wired communication channel. For example, no additional bandwidth is required for transmitting the additional data items since the bandwidth required for transmitting the modulated signals is similar to the bandwidth required for transmitting a corresponding non-modulated signal. The operational parameters of the communication protocol used for transmitting the modulated signals are also maintained similar to those used for transmitting the non-modulated signals. The increased data throughput may be of special interest for enhancing legacy wired communication channels which may have limited throughput.

Moreover, adapting the duration and/or maximum number of the delay time units according to the communication protocol timing parameters may ensure that the overall delay period applied to each level transition in the modulated signals does not violate the timing parameters defined by the communication protocol. Since violating the timing parameter(s) may significantly degrade the integrity of the modulated signals waveform and may lead to communication failures, fully complying with the timing parameter(s) of the communication protocol may ensure the integrity of the modulated signals.

Furthermore, since the timing parameters of the communication protocol are maintained, legacy devices which do not have the encoder and/or the decoder may connect and communicate over the wired communication channel. While the overlaid communication link comprising the additional data items is transparent to them, the legacy devices may still decode the modulated signals to extract the message data encoded in the modulated signals.

In addition, dynamically adapting the duration and/or maximum number of the delay time units according to the communication protocol timing parameter(s) detected in real time may further improve compliance with the communication protocol in the detected operation conditions which may vary between deployments of the wired communication channel. Such dynamic adjustment of the duration and/or maximum number of the delay time units may also allow for optimizing the amount of additional data items that may be encoded in each level transition while maintaining compliance with the communication protocol timing parameters.

The overlaying communication link constructed of the additional data items may be used for a plurality of applications which may improve and/or add features to the communication protocol utilized by the wired communication channel. This may be of particular benefit for enhancing legacy wired communication channels which may be limited in their capabilities, feature set and/or operational characteristics. For example, the overlaying communication link may be used for increasing the throughput of data transfer over the wired communication channel. In another example, the overlaying communication link may be used to support error detection and correction in the message data by adding Error Correction codes (ECC) for one or more of the messages in the additional data item(s). In another example, the overlaying communication link may be used for message originator authentication by including an identifier uniquely assigned to each transmitting communication node and/or by adding a cipher hash key generated using one or more industry standard cryptographic authentication methods (e.g. HMAC, CMAC, etc.) in the additional data item(s) to identify and authenticate the originator of the transmitted message(s). In another example, the overlaying communication link may be used for security by encrypting the additional data items to perform secured hidden communication layer. In another example, symmetric and/or asymmetric encryption key distribution can be performed inside the additional data items. Moreover, a private-public key scheme may be employed using the additional data items to validate both the originating communication node of the message(s) as well as the messages validity, i.e. verify the message content is genuine and has not been altered since transmitted by the originator. In another example, the overlaying communication link may be used for software and/or firmware upgrades by transmitting software update elements using the additional data item(s) modulated in one or more messages. As software/firmware updates may require transferring a large volume of data, the limited throughput of the communication channel may be insufficient. The overlaying communication link may therefore enable and/or significantly improve the software and/or firmware upgrade.

Also applying null modulation by turning off the encoder (and hence the decoder which is not needed since the signal transmitted over the wired communication channel is not modulated) may reduce power consumption. This may be of particular benefit in cases when no additional data items need to be modulated in the signals of the messages transmitted over the wired communication channel, for example, in case the bandwidth of the wired communication channel is sufficient, in case no additional functionality (e.g. ECC, authentication, encryption, etc.) is required and/or the like. Moreover, some messages message segment(s), message signals and/or the like may be sensitive and vulnerable to alterations in the signal timing, specifically to delays in the level transitions. To verify compliance and/or integrity of such sensitive messages and/or signals, null modulation may be applied to these sensitive messages and/or signals.

Referring now to the drawings,FIG. 1is a flowchart of an exemplary process of modulating level transitions of a message signal transmitted on a wired communication channel to encode the message additional data, according to some embodiments of the present invention.FIG. 2is a flowchart of an exemplary process of demodulating level transitions of a message signal received on a wired communication channel to decode additional data encoded in the message, according to some embodiments of the present invention.

An exemplary process100may be executed by an encoder to modulate additional data on level transitions of a waveform of a message signal transmitted over a wired communication channel. Each additional data item (symbol) is encoded in the message signal by delaying one of the level transitions of the signal waveform by a delay period calculated to encode the respective data item in a respective number of predefined delay time units. As such, one data item may be encoded in each modulated level transition of the message signal. An exemplary process200may be executed by a decoder to demodulate the additional data encoded on level transitions of a waveform of a message signal transmitted over a wired communication channel.

Reference is also made toFIG. 3AandFIG. 3B, which are schematic illustrations of exemplary embodiments of a system for modulating and demodulating level transitions of a message signal transmitted on a wired communication channel to transfer additional data in the message, according to some embodiments of the present invention. Exemplary systems300A and300B for encoding and decoding additional data items modulated on level transitions in the message signal waveform transmitted over a wired communication channel302may be deployed in a plurality of communication environments, platforms, infrastructures and/or applications such as, for example, vehicular (e.g. vehicles, drones, etc.), industrial, military, medical and/or the like. The wired communication channel302, for example, a bus, a point-to-point interconnection, a point-to-multipoint interconnection, a multi-drop interconnection and/or the like may support full-duplex protocols, half-duplex protocols and/or a combination thereof. The wired communication channel302may support a wide range of wired communication protocols, for example, serial (e.g. RS-232, RS-422, RS-485), CAN (e.g. CAN, CANopen, CAN-FD, etc.), LIN, Ethernet, IO-Link, SPI, I2C, Modbus, Profibus, MIL-STD-1553 and/or the like.

The embodiments300A and300B present conceptual deployments of a unidirectional message flow from the encoder320to the decoder322and should not be construed as limiting since other deployments (some of which are described herein after) may be apparent to a person skilled in the art.

System embodiment300A may include a transmitting communication (comm.) node310coupled with an encoder320adapted to execute the process100and a receiving communication node312coupled with a decoder322adapted to execute the process200.

The encoder320may be connected as “buffer” (man-in-the-middle) between the transmitting communication node310and the wired communication channel302. The connection between the encoder320and the transmitting communication node310may be similar to the wired communication channels302. The transmitting communication node310may therefore maintain physical interface and operation as if it is connected directly to the wired communication channel302without the encoder320placed in between.

The encoder320may receive a message signal transmitted by the transmitting communication node310where the received signal is not modulated. The encoder320may generate a modulated signal in which additional data item(s) (symbol(s)) are encoded in one or more of the signal level transitions. The message(s) modulated by the encoder320are transmitted to the decoder322over a wired communication channel302. The decoder322may receive the modulated signal transmitted over the wired communication channel302and demodulate the modulated signal to decode the additional data item(s) encoded in the signal level transition(s). The decoder322may output the demodulated signal to the receiving communication node312.

As described for the encoder320, the decoder322may be connected as “buffer” between the receiving communication node312and the wired communication channel302. The decoder322connects to the receiving communication node312through a connection similar to the wired communication channel302. The receiving communication node312may therefore maintain the physical interface and operation as if it is connected directly to the wired communication channels302without the decoder322connected in between.

Optionally, the encoder320communicates with the transmitting communication node310for transferring data and/or control/status information. For example, the transmitting communication node310may communicate with the encoder320to transfer data to be modulated on a message signal. In another example, the transmitting communication node310may communicate with the encoder320to configure the encoder320according to one or more operational parameters.

The communication between the encoder320and the transmitting communication node310may be established over the connection between the encoder320and the transmitting communication node310which follows the physical connection and protocol of the wired communication channel302. For example, the encoder320may be assigned a unique address and/or message type which the transmitting communication node310may use to transmit messages to the encoder320. Such messages may not be forwarded by the encoder320to the wired communication channel302. For example. assuming the wired communication channel302is a CAN bus, the encoder320may be assigned a dedicated special Package Identifier (PID) which is not intended for transmission over the CAN bus. The transmitting communication node310may transfer data intended for the encoder320by transmitting messages assigned with the PID assigned to the encoder320. The encoder320receiving such messages may identify the message's PID matches its own (the encoder320) PID and may decode the message for its own use while avoiding transmitting the message over the CAN bus.

Optionally, the encoder320communicates with the transmitting communication node310through one or more dedicated side channels330, for example, a serial bus, an SPI bus, an I2C bus and/or the like.

Optionally, as described for the encoder320, the decoder322communicates with the receiving communication node312for transferring data and/or control/status information. Similarly to as described for the encoder320, the decoder may communicate with the receiving communication node312through their primary connection which follows the physical connection and protocol of the wired communication channel302. Optionally, as described for the encoder320, the decoder322communicates with the receiving communication node312through one or more dedicated side channels332such as the dedicated side channel330.

Optionally, the encoder320and/or the decoder322communicate through their respective dedicated side channels with one or more other devices other than the transmitting communication node310and/or the receiving communication node312. For example, the encoder320connected to another device may receive from the other device data to be modulated on messages transmitted by the transmitting communication node310. In another example, the decoder322connected to another device may transmit to the other device data modulated on messages directed to the receiving communication node312.

System embodiment300B includes the encoder320which is connected to the wired communication channel302as a “listener”, i.e. in parallel to the transmitting communication node310such that both the encoder320and the transmitting communication node310connect directly to the wired communication channel302. In such case, the transmitting communication node310may communicate with the encoder320through the side channel(s)330to provide message data as well as additional data items to be modulated with the message data. The side channel(s)330may be further used for transferring control/status information between the transmitting communication node310and the encoder320.

Similarly, the decoder322may be connected to the wired communication channel302as a “listener”, i.e. in parallel to the receiving communication node312such that both the decoder322and the receiving communication node312connect directly to the wired communication channel302. In such case, the receiving communication node312may decode the receive message while the decoder320decode only the additional data items modulated on the message signal. The decoder322may optionally transmit the decoded additional data items to the receiving communication node312and/or to one or more other devices through the side channel(s)332. The side channel(s)332may be further used for transferring control/status information between the receiving communication node312and the decoder322.

As evident, in system deployment300B the encoder320and/or the decoder322may be disabled and/or turned off without affecting transmission between the transmitting communication node312and the receiving communication node312. This may be desired for one or more purposes, for example, reduce system power consumption, increase system integrity and/or the like.

Connecting the encoder320and/or the decoder322to the wired communication channel302as a “listener” as described in the embodiment300B may have some limitations. First, such a connection may apply for communication channels and protocols which are tolerant to additional loads connected to the wired communication channel302, for example, open collector type buses, such as, for example, CAN bus, I2C bus, SPI bus and/or the like. Other communication channels, for example, point-to-point channels such as, for example, Ethernet, serial bus (e.g. RS-232, RS-422, etc.) do not allow adding additional loads and the encoder320or the decoder322may therefore not be connected a “listeners”.

Moreover, as implied by the term open-collector, the wired communication channels protocols that do support the “listener” connection are characterized by the low level voltage (“0”) being the dominant level that is actively driven by the transmitting communication node(s)310driven on the wired communication channel302while the high level voltage (“1”) is recessive meaning that it is not actively driven by the transmitting communication node(s)310but rather pulled to the high level voltage by a passive component. This means that the actual voltage level detected on the wired communication channel302is the result of an AND logic operation of all the loads (transmitters) connected to the wired communication channel302. Therefore, in case the encoder320is connected to the wired communication channel320in parallel to the transmitting communication node310as a “listener”, the encoder320may only modulate the additional data items on “0” to “1” level transitions. The inability to modulate the “1” to “0” level transitions may thus reduce the transfer rate of the additional data items. However, the specific implementation of the encoder320and/or the decoder322as a “buffer” or a “listener” may depend on overall system requirements and feasible tradeoffs.

Some systems and/or communication channel deployments may employ a combination of the encoder320and decoder322connections and deployments described in the embodiments300A and300B. For example, a certain system may include one or more transmitting communication nodes310connected to the wired communication channel302through an encoder320connected as a “buffer” (300A) while one or more receiving communication nodes312may be connected directly to the wired communication channel302with a decoder322connected to the wired communication channel302in parallel as a “listener” (300B). In another example, a certain system may include one or more transmitting communication nodes310connected to the wired communication channel302through an encoder320connected as a “buffer” (300A) while one or more other transmitting communication nodes310are connected directly to the wired communication channel302with an encoder320connected to the wired communication channel302in parallel as a “listener” (300B).

Reference is also made toFIG. 4AandFIG. 4B, which are schematic illustrations of exemplary wired communication channel deployments for modulating additional data on level transitions of a message signal transmitted on a wired communication channel, according to some embodiments of the present invention.

Exemplary wired communication channel deployments400A,400B and400C present communication nodes402communicating over a wired communication channel such as the wired communication channel302. It should be noted that for completeness each of the communication nodes402is associated with an encoder such as the encoder320and a decoder such as the decoder322. This however, should not be construed as limiting since one or more of the communication nodes402may be associated with only an encoder320or only a decoder322. For example, a transmit-only communication node402may be associated with only an encoder320while a receive-only communication node402may be associated with only a decoder322. Moreover, the exemplary wired communication channel deployments400A,400B and400C present a “buffer” implementation in which the encoder320and the decoder322are placed between the communication nodes402and the wired communication channel302. However, other connection implementation such as the “listener” and/or a combination of the “buffer” connection and “listener” connection may be applied to one or more of the wired communication channel deployments400A,400B and400C.

The exemplary wired communication channel deployment400A includes a point-to-point full-duplex wired communication channel302A connecting between two communication nodes402each coupled with an encoder320and a decoder322. Each of the communication nodes402may perform as a transmitting communication node such as the transmitting communication node310and/or as a receiving communication node such as the receiving communication node312. Moreover, since the wired communication channel302A supports full-duplex operation, the two communication nodes402may simultaneously transmit messages to each other.

An exemplary wired communication channel deployment400B includes a point-to-point half-duplex wired communication channel302B connecting between two communication nodes402each coupled with a codec404comprising an encoder320and a decoder322. Each of the communication nodes402may perform as the transmitting communication node310and/or as the receiving communication node312. However, since the wired communication channel302B supports half-duplex operation, only one of the two communication nodes402may acquire ownership of the wired communication channel302B at any given time for transmitting a message to the other communication node402.

An exemplary wired communication channel deployment400C includes a multi-point (multi-drop) wired communication channel302C connecting a plurality of communication nodes402each coupled with a codec404comprising an encoder320and a decoder322. Optionally, one or more of the communication nodes402may be a receive-only device and may optionally include only the decoder322rather than the codec404. Similarly, one or more of the communication nodes402may optionally be a transmit-only device and may optionally include only the encoder320rather than the codec404. Each of the communication nodes402(having the encoder320) may perform as the transmitting communication node310and/or as the receiving communication node312. However, since the wired communication channel302C is a multi-point connection, only one of the two communication nodes402may acquire ownership of the wired communication channel302C at any given time for transmitting a message to one or more of the other communication nodes402.

The codec404, encoder320and/or the decoder322may be implemented, utilized and/or facilitated by one or more hardware components, logic elements, software modules and/or a combination thereof.

Reference is now made toFIG. 5A,FIG. 5BandFIG. 5C, which are schematic illustrations of exemplary embodiments of a codec implementation for modulating additional data on level transitions of a message signal transmitted on a wired communication channel, according to some embodiments of the present invention.

Exemplary implementations500A,500B,500C,500D and500E present implementations of a codec such as the codec404associated with a communication node such as the communication node402for transmitting and/or receiving modulated signals over a wired communication channel such as the wired communication channel302. This however, should not be construed as limiting since the same implementations, concepts, methodologies and/or techniques may be applied for implementing a separate encoder such as the encoder320and/or separate decoder such as the decoder322. Moreover, the implementations of the codec404presented in500A,500B,500C,500D and500E may be applied for various deployments of the a wired communication channel such as the wired communication channel302, for example, the wired communication channel302A, the wired communication channel302B, the wired communication channel302C and/or the like. Furthermore, the exemplary implementations500A,500B,500C,500D and500E present a “buffer” implementation in which the codec404is placed between the communication node402and the wired communication channel302. However, other connection implementation such as the “listener” and/or a combination of the “buffer” connection and “listener” connection may be applied to one or more of the exemplary implementations500A,500B,500C,500D and/or500E.

In some deployments of the wired communication channel302a PHY502is coupled to one or more communication nodes such as the communication node402for conditioning one or more parameters of the signals transmitted over the wired communication channel302, for example, a voltage level, a current drive, impedance and/or the like. While in some scenarios the PHY502may be integrated in one or more of the communication node402, the PHY502may be implemented as separate hardware component, for example, a circuit, a component, an Integrated Circuit (IC) and/or the like.

As shown at500A, a codec404A such as the codec404may be implemented by one or more software modules, for example, a process, a script, an application, an agent, a utility, a tool and/or the like each comprising a plurality of program instructions stored in a non-transitory medium and executed by one or more processors, for example, a processor510of the communication node402. In such case, on the transmitting path, the signal of the message generated by the communication node402is internally (inside the communication node402) modulated by the codec404A and the communication node402transmits the modulated signal over the wired communication channel302, optionally through the PHY502(if exists). On the receiving path, the signal received from the wired communication channel302, optionally through the PHY502(if exists) is the modulated signal which is internally demodulated by the codec404A.

As shown at500B, a codec404B such as the codec404may be implemented by one or more logic elements, for example, a core, an Intellectual Property (IP) core and/or the like implemented in one or more ICs and optionally integrated with one or more other ICs, specifically in the communication node402. As described for500A, the signal transmitted and/or received by the communication node402is the modulated signal.

As shown at500C, a codec404C such as the codec404may be implemented by one or more logic elements, for example, a core, an IP core and/or the like implemented in one or more ICs and optionally integrated with one or more other ICs, specifically in the PHY502. In such case, on the transmitting path, the message signal transmitted by the communication node402is a non-modulated signal, i.e. the pre-modulated signal which is modulated by the codec404C to produce the modulated signal transmitted from the PHY502over the wired communication channel302. On the receiving path, the signal received by the PHY502from the wired communication channel302is the modulated signal which is demodulated by the codec404C to produce the non-modulated signal, i.e. the demodulated signal transmitted to the communication node402.

As shown at500D, a codec404D such as the codec404may be implemented by one or more hardware components, for example, a circuit, a component, an IC, an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Digital Signals Processor (DSP) and/or the like located between the communication node402and the wired communication channel302. In such case, on the transmitting path, the message signal transmitted by the communication node402is the non-modulated signal, i.e. the pre-modulated signal which is modulated by the codec404D to produce the modulated signal transmitted over the wired communication channel302. On the receiving path, the signal received from the wired communication channel302is the modulated signal which is demodulated by the codec404C to produce the demodulated signal (non-modulated signal) transmitted to the communication node402.

As shown at500E, a codec404E such as the codec404may be implemented by one or more hardware components, for example, a circuit, a component, an IC, an ASIC, an FPGA, a DSP and/or the like located between the communication node402and the PHY502connected to the wired communication channel302. In such case, on the transmitting path, the message signal transmitted by the communication node402is the non-modulated signal, i.e. the pre-modulated signal which is modulated by the codec404E to produce the modulated signal transmitted by the PHY502over the wired communication channel302. On the receiving path, the signal received from the wired communication channel302through the PHY502is the modulated signal which is demodulated by the codec404E to produce the demodulated signal (non-modulated signal) transmitted to the communication node402.

As shown at500F, a codec404F such as the codec404may be implemented by one or more hardware components, for example, a circuit, a component, an IC, an ASIC, an FPGA, a DSP and/or the like located between the PHY502and the wired communication channel302. In such case, on the transmitting path, the message signal transmitted by the communication node402and conditioned by the PHY502is the non-modulated signal, i.e. the pre-modulated signal which is modulated by the codec404F to produce the modulated signal transmitted over the wired communication channel302. On the receiving path, the signal received from the wired communication channel302is the modulated signal which is demodulated by the codec404E to produce the demodulated signal (non-modulated signal) transmitted to the communication node402via the PHY502.

Reference is made once again toFIG. 1.

As shown at102, the process100starts with the encoder302receiving a signal specifically the pre-modulated signal from the transmitting communication node310. The signal generated by the transmitting communication node310has a waveform encoding data of a message to be transmitted over the wired communication channel302to one or more receiving communication nodes320.

As shown at104, the encoder302calculates one or more delay periods each associated with a respective level transition of the signal waveform such that the encoder delays the respective level transition by the calculated delay period.

Each delay period consists of a number of delay time units which maps a respective data item (symbol) to be encoded in the message signal waveform. The mapping of the number of delay time units to data items is predefined. For example, zero delay units may map a first data item, for example, “00”, one delay unit may map a second data item, for example, “01”, two delay units may map a third data item, for example, “10”, three delay units may map a fourth data item, for example, “11” and so on. Other mapping schemes may of course be applied for mapping data items to the number of delay time units.

The duration of the delay time units may be adapted according to one or more operational parameters of the communication protocol utilized by the wired communication channel302, specifically timing parameters, for example, a frequency, an edge rise time of level transition, an edge fall time of the at least one transition, a propagation time, a jitter, a clock drift and an interference.

The maximum number of delay time units applied by the encoder320for calculating the delay period(s) may also be adapted according to one or more of the operational parameters of the communication protocol utilized by the wired communication channel302. Naturally the larger the maximum number of delay time units, the higher the number of data items (symbols) which may be mapped by the number delay time units. For example, assuming the encoder320applies linear mapping, in case the maximum number of delay time units is two then three data items may be mapped. In another example, assuming the maximum number of delay time units is three then four data items may be mapped (log24=2 bits of information per symbol).

Adapting the duration and/or maximum number of the delay time units according to the timing parameters may be done to ensure that the overall delay period applied to the level transition(s) does not violate the timing parameters defined by the communication protocol. Such timing parameter(s) violation may significantly degrade the integrity of the signal waveforms in which the level transition(s) are delayed and may lead to communication failures. While the encoder320and/or the decoder322may be adapted to sustain such violation, legacy communication node(s) which do not have the decoder322may suffer major communication degradation.

Moreover, the duration of the delay time units may be adapted to sustain sufficient resolution to distinguish consecutive delay time units from each other in order to allow the decoder320to properly demodulate the delayed level transition(s) and correctly identify the number of delay time units applied to each level transition and extract the respective encoded data item accordingly.

The duration and/or maximum number of the delay time units may be further adapted to provide an optimal tradeoff between the number of data items which may be mapped by the number of delay time units and the resolution of the delay time units.

Optionally, the encoder320dynamically adapts in real-time the duration and/or maximum number of delay time units according to one or more of the operational parameters of the communication protocol. For example, the encoder320may detect in real-time a relatively high jitter in the signals transmitted over the wired communication channel302. In such case the encoder320may increase the duration of the delay time units and/or reduce the maximum number of delay time units according to the detected jitter in order to prevent violation of the timing parameters defined by the communication protocol. In another example, the encoder320may detect in real-time the signals are transmitted over the wired communication channel302in a relatively low frequency. In such case the encoder320may reduce the duration of the delay time units and/or increase the maximum number of delay time units according to the detected frequency in order to increase the number of mapped data items and hence increase the data throughput achievable by the additional data items while complying (not violating) with the timing parameters defined by the communication protocol.

In order to maintain compatibility between the encoder320and the decoder322with respect to the encoding setting(s), for example, the duration and/or the maximum number of the delay time units, the encoder320may transmit one or more pilot message signals to the decoder322for calibration. The pilot signal(s) may include calibration information, specifically encoding settings, for example, the selected duration and/or maximum number of delay time units thus allowing the decoder322to calibrate and adjust itself to synchronize with the operation mode of the encoder320. Using the pilot message signals may further allow dynamically adjusting the encoding setting(s) in real-time and using the pilot signal(s) to update the decoder about the adjusted encoding setting(s).

As shown at106, the encoder302modulates the signal received from the transmitting communication node310with the data items (symbols) by delaying one or more of the level transition of the signal waveform by the respective delay period calculated for the level transition to encode the mapped data items.

While generating the modulated signal, the encoder320may avoid delaying at least some level transitions in the modulated signal waveform to support the decoder322in synchronizing its local sampling clock with the sampling clock used by the encoder320to generate the modulated signal and hence synchronize with the sampling clock of the transmitting communication node310from which the pre-modulated signal originates. For example, the encoder320may avoid delaying one or more initial level transitions in the beginning of the modulated signal to allow the decoder to first synchronize its local clock. In another example, the encoder320may avoid delaying one or more level transitions in one or more predefined segments of the modulated signal. The decoder322may be configured to identify the predefined segment(s) of the modulated signal and use the non-delayed level transition(s) in this segment(s) to synchronize its local clock.

Optionally, the encoder320delays one or more level transitions in the modulated signal with a predefined delay period which is reported and/or configured in the decoder322.

Optionally, the encoder320modulates the signal by delaying only level transitions located at certain segments of the signal waveform while avoiding delaying level transitions in other segments of the signal waveform. The waveform segments in which the encoder320applies the delays may be predefined according to the communication protocol utilized on the wired communication channel. For example, the encoder320may apply the delays only for level transitions in the waveform encoding a data payload of the message while avoiding applying the delays to level transitions in protocol reserved segments (fields), for example, a header, a multi-access arbitration segment, a message identifier and/or the like. This may improve integrity of the communication protocol since in case of violation of the communication protocol timing parameters at worst only user data may be lost while protocol related data which is compliant with the communication protocol timing parameters is not affected thus preventing unrecoverable communication errors. In another example, the encoder320may avoid applying the delays to level transitions in one or more of the pilot signals, i.e. waveform segments of the signal which may be transmitted to support the decoder322to calibrate its decoding operation according to encoding settings reported by the encoder320and/or the like.

Reference is now made toFIG. 6, which is a schematic illustration of an exemplary message signal waveform modulated to encode additional data in the message signal, according to some embodiments of the present invention. A waveform602of an exemplary signal transmitted by a transmitting communication node such as the transmitting communication node310comprises a bit stream encoding data of a message to be transmitted over a wired communication channel such as the wired communication channel302. Pulse duration of each bit in the bit stream is T. The waveform602includes several level transitions TR, for example, TR1, TR2, TR3, TR4, TR5and TR6.

The waveform602may include one or more pilot signals, i.e. segments, for example, calibration data, synchronization pattern(s) and/or the like.

An encoder such as the encoder320may delay one or more of the level transitions TR by the delay period(s) calculated by the encoder320to encode respective data item(s). A waveform604presents a waveform of a modulated signal corresponding to the waveform602of the signal transmitted by the transmitting communication node310. As seen, the encoder320delays each of the level transitions TR1, TR2, TR3, TR4, TR5and TR6by a respective delay period610encoding a respective mapped data item (symbol).

For example, designating δT as the duration of each delay time unit, the encoder320delays the level transitions TR1by a delay period610A consisting of two delay time units δT such that the level of the waveform604transitions at TR1′. In another example, the encoder320delays the level transitions TR2by a delay period610B consisting of zero delay time units δT such that the level of the waveform604transitions at TR2′. In another example, the encoder320delays the level transitions TR3by a delay period610C consisting of one delay time unit δT such that the level of the waveform604transitions at TR3′. In another example, the encoder320delays the level transitions TR4by a delay period610D consisting of zero delay time units δT such that the level of the waveform604transitions at TR4′. In another example, the encoder320delays the level transitions TR5by a delay period610E consisting of one delay time unit δT such that the level of the waveform604transitions at TR5′. In another example, the encoder320delays the level transitions TR6by a delay period610F consisting of two delay time units δT such that the level of the waveform604transitions at TR6′.

Assuming the encoder320applies the linear mapping for mapping the additional data items to the number of delay time units, the mapping may be as follows: 0δT (zero delay time units) encodes the data item “00”,1δT (one delay time unit) encodes the data item “01” and2δT (two delay time units) encodes the data item “10”. The encoder320therefore encodes the data item “10” in the level transition TR1′, the data item “00” in the level transition TR2′, the data item “01” in the level transition TR3′, the data item “00” in the level transition TR4′, the data item “01” in the level transition TR5′ and the data item “10” in the level transition TR6′.

In another data items mapping example, the encoder320may use a recursive function to perform a modular integration of the data items. Applying this mapping, the encoder320may sum the data-items, calculate the data items modulo (with the maximal data item value plus 1) and delay the respective level transition by the resulting number of delay units. For the exemplary modulated signal604, the encoder320may compute delay periods Sj={0, 2, 0, 1, 0, 1, 2} derived from encoding the following additional data items Sj′={0, 2, 2, 1, 3, 1, 1} (The recursive mapping function in this case would be S0=0, Sj=mod(Sj-1+Sj′, 2symbol size in bits). This data items mapping scheme may simplify the implementation of the decoder322and may present improved performance in terms of error immunity.

As seen from the waveforms602and604, while the bit stream of the message may encode 9 bits, the additional data items encoded in the level transitions may include 6 level transitions each mapping one of four data items (symbols) {00,01,10,11} that may be mapped by three delay time periods thus allowing encoding of up to 12 bits. The modulation of the signal may therefore significantly increase the data encoded in the modulated signal while imposing no utilization impact to the wired communication channel302.

Reference is made once again toFIG. 1.

As shown at108, the encoder302transmits the modulated signal over the wired communication channel320to one or more receiving communication nodes312.

The modulated signal transmitted by the encoder320includes one or more level transitions which are not delayed at the beginning of the modulated signal waveform to support the decoder322in synchronizing its local sampling clock with the sampling clock used by the encoder320to generate the modulated signal and hence in synchronizing with the sampling clock of the transmitting communication node310from which the pre-modulated signal originates.

The delay periods applied by the encoder320to generate the modulated signal are transparent to legacy communication nodes such as the communication node402which do not have the decoder322. The legacy communication nodes402therefore decode and interpret the received modulated signal as if the modulated signal was the non-modulated signal such that the legacy communication nodes402may decode the message and its encoded data while completely oblivious to the additional data item(s) encoded in the level transitions of the modulated signal.

Optionally, the encoder320transmits one or more of the pilot signals to report of one or more encoding settings to support the decoder322in calibrating the decoding operation according to encoding setting.

Optionally, the encoder320applies null modulation to one or more signal waveforms such that no delay periods are applied to any of the level transitions in the waveform. For example, assuming the encoder320is connected as the “buffer” between the transmitting communication node310and the wired communication channel302. In such case, for each of the level transitions, the encoder320may calculate a constant delay period consisting of zero delay time units such that all the level transitions of the modulated signal waveform follow the level transitions of the pre-modulated signal waveform received from the transmitting communication node310. In another example, assuming the encoder320is connected to the wired communication channel302as the “listener” in parallel to the transmitting communication node310. In such case the encoder320may be simply disabled, turned off and/or the like while the transmitting communication node310transmits the message(s) over the wired communication channel302.

Optionally, the encoder320scrambles/whitens one or more segments of the pre-modulated signal waveform by replacing the data encoded in the segment(s) with alternative data. One or more of these segments may be scrambled to encode the data according to a different coding scheme in order to increase the number of level transitions and hence increase the number of data items which may be encoded in the modulated signal.

The encoder320may report the data rate settings to the decoder322through one or more of the pilot signals which may optionally be non-modulated and moreover transmitted in the data rate originally set for the wired communication channel302.

Optionally, the encoder320pairs (couples) the data encoded in the original pre-modulated signal with the data items encoded in the level transitions of the modulated signal. Coupling the message data with the additional data items encoded in the level transitions may have some major advantages. First, in case the data is encrypted, the message data and/or the additional data items may not be decoded separately. A receiver (or interceptor) of the modulated signal must have be familiar (i.e. decode) both the message data and the additional data items in order to decrypt the message data and the additional data items. Moreover, by coupling the message data and the additional data items, at least part of the modulated signal may be scrambled with no extra effort, cost and/or resources (e.g. computation resources, storage resources, computing time, etc.). The coupling method may optionally be by XOR'ing the pre-modulated signal bit values or/and length with the modulated symbols prior to the modulation process.

Reference is now made toFIG. 7, which is a schematic illustration of an exemplary circuit for encoding additional data in level transitions of a message signal where the additional data is paired with the message data, according to some embodiments of the present invention. An exemplary logic circuit700may be applied by an encoder such as the encoder320for pairing the additional data items encoded in the level transitions of the modulated signal with the message data carried by the pre-modulated signal received from a transmitting communication node such as the transmitting communication node310. The logic circuit700implements a minimal delay modulator comprising an edge detection circuit, a down counter708and a gating D-FlipFlop710for gating the pre-modulated signal until a “reached_zero” signal outputted from the down counter rises. The down counter708receives the sampling clock of the transmitting communication node310and a “data_item_mapping_value” which maps an additional data item to be modulated in the detected level transition of the pre-modulated signal. The “data_item_mapping_value” maps the additional data item according to the selected encoding mapping scheme. The edge detection circuit constructed of a first D-FlipFlop702, a second D-FlipFlop704and a XOR gate706is configured to detect level transitions (edge) in the waveform of the pre-modulated signal and upon detection of a transition the edge detection circuit switches its output “reset” signal to logic high to resets the down counter708. On reset, the down counter708loads a new “data_item_mapping_value” and starts counting down from the loaded “data_item_mapping_value” to zero to create the delay period consisting of the number of delay time units mapped by the “data_item_mapping_value”. When the down counter708reaches zero it switches its “reached_zero” output signal to a high level. Once the “reached_zero” signal rises, the pre-modulated signal propagates out of the gating D-FlipFlop710thus creating the modulated signal delayed by the appropriate delay period and outputted from the encoder320.

Reference is made once again toFIG. 2.

A shown at202, the process200starts with the decoder322receiving the modulated signal transmitted over the wired communication channel302from the encoder320.

The decoder322may optionally receive one or more of the pilot signals from the encoder320which may report of one or more of the encoding setting applied by the encoder320for encoding the modulate signal.

A shown at204, the decoder322synchronizes its local sampling clock to the sampling clock of the encoder320and hence to the sampling clock of the transmitting communication node310by extracting (recovering) the sampling clock from the modulated signal. The decoder332may apply one or more methods for extracting the sampling clock of the transmitting communication node310from the modulated signal. For example, the decoder322may extract the modulated signal sampling clock based on one or more level transitions of the modulated signal which are not delayed, specifically, but not limited to, at the beginning of the modulated signal waveform. In another example, the decoder322may extract the modulated signal sampling clock based on one or more level transitions of the modulated signal which are delayed by the predefined delay period.

The decoder322may apply one or more clock recovery techniques as known in the art, for example, a Phase-Locked Loop (PLL), a Delay-Locked Loop (DLL) and/or the like for extracting the clock form the modulated signal to synchronize the local sampling clock of the decoder322to the sampling clock of the encoder320.

A shown at206, the decoder322demodulates the modulated signal to extract the additional data item(s) encoded in one or more of the level transitions of the modulated signal waveform. The decoder322demodulates the modulated signal by detecting the number of delay time units applied to delay one or more of the level transitions of the modulated signal and extract the additional data item(s) according to the mapping of the number of delay time units to the data items (symbols). The decoder322may apply one or more techniques for detecting the number of delay time units applied to delay the level transition(s) of the modulated signal.

For example, the decoder322may measure a time period between each (current) level transition and a preceding level transition to determine the number of delay time units applied to the current level transition. Measuring this time period may be performed to measure the delay period which may later be processed to extract the number of delay time units applied by the encoder320to the level transition. The decoder322may use the encoding settings provided by the encoder320to determine the mapping of the number of delay time units to the additional data items (symbols) applied by the encoder320. In case of the linear mapping, the decoder322may apply the formulation presented in equation 1 below to determine the number of delay time units applied to each level transition.

Symboli⁡(N)=round⁡(mmod⁡(D⁡(N),T)δ⁢⁢T)⁢⁢Symbol⁡(N)=∑n=0N⁢Symboli⁡(N)Equation⁢⁢1Where δT is the duration of each delay time unit, T is the pulse duration of each transmitted bit (nominal bit time), D(N) is the N'th measured time-delay and N is the level transition index.Notes:(1) In this formulation and throughout the document “mmod(x)” denotes a modified modulo. The operation if formulated as follows:

mmod⁡(N,T)={mod⁡(N,T)mod⁡(N,T)<T2mod⁡(N,T)-Totherwise⁢⁢mod⁡(N,T)=N-T·⌊NT⌋(2) In the current and following examples, in cases where Symboli(N) exceeds the minimal/maximal symbol levels, it can be truncated to the minimal/maximal value respectively. For example, for 2 bit symbols, the symbol values are in the range of [0 . . . 3]. If the resulting number is negative, the resulting number may be truncated to 0, and if the value exceeds 3 the resulting number may be truncated to 3.

In another example, in the case of the recursive mapping, the decoder322may apply the formulation presented in equation 2 below to extract the data units from the stream.

Where Smax=2Slen, Slenis the length of a data item (symbol), i.e. number of bits of the data item, N is the level transition index, δT is the duration of each delay time unit, D(N) is the N'th measured time-delay and T is the pulse duration of each transmitted bit (nominal bit time).

In another example, the decoder332may measure a time period between one or more reference points, for example, a most recent un-delayed level transition and each of one or more succeeding level transitions to determine the number of delay time units applied to the succeeding level transition(s). The decoder322may apply the formulation presented in equation 3 below to determine the number of delay time units applied to each level transition.

Where δT is the duration of each delay time unit and T is the pulse duration of each transmitted bit (nominal bit time), D(N) is the N'th measured time-delay and N is the level transition index.

Reference is now made toFIG. 8, which is a schematic illustration of an exemplary message signal waveform demodulated to decode additional data encoded in the message signal, according to some embodiments of the present invention. Waveforms802and804of an exemplary modulated signal received by a decoder such as the decoder322from an encoder such as the encoder320correspond to the waveform604of the modulated signal transmitted by the encoder320over a wired communication channel such as the wired communication channel302.

Waveform802presents an exemplary waveform that can be decoded by decoder322by applying the linear mapping for determining the number of delay time units applied to each level transition as formulated in equation 1. The calculation is presented in equation 4 below.

In case the recursive mapping is applied to the modulated signal by the encoder320, the decoder322may extract the additional data items from the waveform802as formulated in equation 2. The calculation is presented in equation 5 below for Slen=2, i.e. the number of bits per data item (symbol) is 2.

Waveform804presents a decoding flow of the decoder322applying the second method for determining the number of delay time units applied to each level transition as formulated in equation 2. The calculation is presented in equation 6 below.

In case the encoding of the additional data item(s) is paired with the message data, the decoder may recover both the additional data item(s) encoded in the modulated signal and the a recovered version of the modulated signal corresponding to the original pre-modulated signal generated by the transmitting communication node310.

Reference is now made toFIG. 9, which is a schematic illustration of an exemplary circuit for decoding additional data from level transitions of a message signal where the additional data is paired with the message data, according to some embodiments of the present invention. An exemplary logic circuit900may be applied by a decoder such as the decoder322to perform time measurements needed for decoding a modulated signal comprising data items encoded in the level transitions of the modulated signal. The logic circuit900configured to count time delays between consecutive level transitions in the waveform of the received modulated signal contains an edge detector circuit and an up counter circuit908. The edge detector circuit constructed of a first D-FlipFlop902, a second D-FlipFlop904and a XOR gate906is configured to receive the modulated signal as input and synchronize detected level transitions (edges) in the waveform of the modulated signal with the sampling clock of the decoder322recovered from the modulated signal. The up-counter908receiving the sampling clock of the decoder322may increment its internal count value every clock cycle (CC) of the sampling clock. The up counter908also receives an “in_bit_time_cc” signal which represents the number of clock cycles (CC) of a single bit duration (nominal bit time), i.e. T, the pulse duration. When the count value exceeds the number of CC per pulse duration the count value wraps around to form a modulo counter. Once an edge is detected, the edge detector circuit outputs a “count_value_valid” signal which indicates that a “count_value” outputted by the up-counter908is valid and indicates the delay count (in terms of CC) between the previously detected transition (edge) and the current edge. The “count_value_valid” signal also resets the up-counter908to start counting the delay count until the next edge. The “count_value” may be further analyzed to extract the actual additional data-items from the modulated signal.

Reference made once again toFIG. 2.

As shown at208, the decoder332may output the additional data item(s) extracted from the modulated signal.

The decoder322may further output (e.g. transmit, provide, forward, etc.) a recovered version of the demodulated signal, i.e. the demodulated signal to the receiving communication node312which may decode the demodulated signal to extract the message data.

The decoder332may output the additional data item(s) encoded in the modulated signal level transition(s) to one or more devices either integrated and/or separated from the decoder332. For example, the decoder332may transmit, forward, provide and/or the like the additional data item(s) to the receiving communication node312. In another example, the decoder332may output the additional data item(s) for one or more goals, objectives and/or applications.

In one exemplary use case, the signal modulation to encode the additional data items by delaying the level transitions of the signal waveform may be used for increasing the throughput of data transmitted over the wired communication channel302. Moreover, while increasing the data throughput by transmitting the modulated signal requires similar utilization of the communication channel302as when requires for transmitting the non-modulated signal. This means that no alterations such as, for example, increased data rate, increased frequency, additional transmissions and/or the like are required to the communication protocol utilized on the wired communication channel302to significantly increase the data throughput.

In another exemplary use case, the signal modulation to encode the additional data items by delaying the level transitions of the signal waveform may be used for adding protocol related data to enhance the communication protocol utilized by the wired communication channel302, for example, adding protocol related control/status information, adding features to enhance the communication protocol and/or the like.

In another exemplary use case, the signal modulation to encode the additional data items by delaying the level transitions of the signal waveform may be used for authenticating the originating transmitting communication node310. For example, each of the legitimate (valid, genuine) communication nodes402capable of performing as the transmitting communication node310and transmit messages over the wired communication channel302may be assigned a unique identifier. The encoder320associated with each of such communication nodes402may therefore encode the identifier of its associated communication nodes402in the modulated signal(s) transmitted over the wired communication channel302. Recipients of the modulated signal, i.e. one or more other communication node402performing as receiving communication nodes310may validate the encoded identifier to verify the message(s) is received from a legitimate communication node402.

In another exemplary use case, the signal modulation to encode the additional data items by delaying the level transitions of the signal waveform may be used for message authentication and encryption of the message data. The message data coupled with the additional data items may be encrypted using one or more encryption keys such that the message data cannot be deciphered without having the respective encryption key(s). For example, a private-public key scheme may be employed using the additional data items to validate both the originating communication node of the message(s) as well as the messages validity, i.e. verify the message content is genuine and has not been altered since transmitted by the originator.

In another exemplary use case, the signal modulation to encode the additional data items by delaying the level transitions of the signal waveform may be used for error detection and correction in the message data. The additional data item(s) may be used to include ECC information for the message data such that the decoder322decoding the modulated signal and extracting the ECC information may apply ECC to the message data using the ECC information.

In another exemplary use case, the signal modulation to encode the additional data items by delaying the level transitions of the signal waveform may be used for software and/or firmware upgrades and/or updates. The throughput of the wired communication channel302which may be limited may be insufficient for transferring software update data and/or may require extended time for transferring large volumes of software update data. The additional data item(s) may therefore be used to include the software update data elements to enable and/or to significantly reduce the time required for the software and/or firmware upgrade.

It is expected that during the life of a patent maturing from this application many relevant systems, platforms, methods and computer programs will be developed and the scope of the terms wired communication channels and communication protocols are intended to include all such new technologies a priori.

As used herein the term “about” refers to ±10%.

The word “exemplary” is used herein to mean “serving as an example, an instance or an illustration”. Any embodiment described as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments and/or to exclude the incorporation of features from other embodiments.