DC-free line code for arbitrary data transmission
First Claim
1. A method of encoding data for transmission over a communications link comprising the steps of:
- obtaining a plurality of N data bits, where N is a positive integer;
forming a group of bits by including an indicator bit of known value to said N data bits in a predefined location within said group of bits;
determining whether said group of bits has a positive polarity such that said group of bits contains more logical one bits than logical zero bits or whether said group of bits has a negative polarity such that said group of bits contains less logical one bits than logical zero bits;
maintaining a cumulative polarity value of the bits previously transmitted over said communications link, said cumulative polarity value being positive when more logical one bits than logical zero bits have been transmitted and said cumulative polarity value being negative when less logical one bits than logical zero bits have been transmitted, said step of maintaining a cumulative polarity value comprising the steps of;
receiving said group of bits consisting of said plurality of N data bits and said indicator bit;
separating said group of bits into a plurality of subgroups of bits; and
for each of said subgroups of bits, incrementing or decrementing said cumulative polarity value by an appropriate number utilizing memory means having address input leads connected to receive each of said subgroups of bits, in sequence, and a data output port for providing an output signal indicating whether said cumulative polarity value should be incremented or decremented, and said appropriate number; and
forming a set of bits to be transmitted by inverting all bits within said group of bits when said group of bits has a polarity which is the same as said cumulative polarity, and not inverting the bits within said group of bits when said group of bits has a polarity which is the opposite of said cumulative polarity.
8 Assignments
0 Petitions
Accused Products
Abstract
Means and structure for encoding binary data ensures that, on average, the encoded data provides a balanced data stream having an equal number of logical one and logical zero bits. An indicator bit of known value is appended to N data bits, forming a group of N+1 bits. The polarity of this group is determined, i.e. whether the group contains more ones than zeros. The cumulative polarity of all bits sent over the communication link is also maintained. When the polarity of the group is the same as the cumulative polarity, all bits in the group are inverted and the inverted group is transmitted. Otherwise the bits in the group are transmitted in their original form. To decode the transmitted bits, the bit stream is framed to separate each series of N+1 bits. The value of the indicator bit on the receiver side of the communication link indicates whether the group has been inverted. If the group has been inverted, it is reinverted on the receiver side of the link to provide the N data bits in their original form. Conversely, if the group has not been inverted, it is not reinverted on the receiver side of the link to provide the N data bits in their original form. In alternative embodiments, additional bits are appended to the N data bits and the indicator bit in order to allow transmission of additional information.
-
Citations
18 Claims
-
1. A method of encoding data for transmission over a communications link comprising the steps of:
-
obtaining a plurality of N data bits, where N is a positive integer; forming a group of bits by including an indicator bit of known value to said N data bits in a predefined location within said group of bits; determining whether said group of bits has a positive polarity such that said group of bits contains more logical one bits than logical zero bits or whether said group of bits has a negative polarity such that said group of bits contains less logical one bits than logical zero bits; maintaining a cumulative polarity value of the bits previously transmitted over said communications link, said cumulative polarity value being positive when more logical one bits than logical zero bits have been transmitted and said cumulative polarity value being negative when less logical one bits than logical zero bits have been transmitted, said step of maintaining a cumulative polarity value comprising the steps of; receiving said group of bits consisting of said plurality of N data bits and said indicator bit; separating said group of bits into a plurality of subgroups of bits; and for each of said subgroups of bits, incrementing or decrementing said cumulative polarity value by an appropriate number utilizing memory means having address input leads connected to receive each of said subgroups of bits, in sequence, and a data output port for providing an output signal indicating whether said cumulative polarity value should be incremented or decremented, and said appropriate number; and forming a set of bits to be transmitted by inverting all bits within said group of bits when said group of bits has a polarity which is the same as said cumulative polarity, and not inverting the bits within said group of bits when said group of bits has a polarity which is the opposite of said cumulative polarity.
-
-
2. A method of encoding data for transmission over a communications link comprising the steps of:
-
obtaining a plurality of N data bits, where N is a positive integer; forming a group of bits by including an indicator bit of known value to said N data bits in a predefined location within said group of bits; determining whether said group of bits has a positive polarity such that said group of bits contains more logical one bits than logical zero bits or whether said group of bits has a negative polarity such that said group of bits contains less logical one bits than logical zero bits; maintaining a cumulative polarity value of at least said N data bits previously transmitted over said communications link, said cumulative polarity value being positive when more logical one bits than logical zero bits have been transmitted and said cumulative polarity value being negative when less logical one bits than logical zero bits have been transmitted; forming a set of bits to be transmitted by inverting all bits within said group of bits when said group of bits has a polarity which is the same as said cumulative polarity and not inverting the bits within said group of bits when said group of bits has a polarity which is the opposite of said cumulative polarity; and including an additional M bits, where M is a positive integer to said set of bits prior to transmission. - View Dependent Claims (3, 4, 5, 6, 7)
-
-
8. A method of encoding data for transmission over a communications link comprising the steps of:
-
obtaining a plurality of N data bits, where N is a positive integer; obtaining a plurality of M additional bits, where M is a positive integer; determining whether said plurality of N data bits have a positive polarity such that said N data bits contains more logical one bits than logical zero bits or whether said group of bits has a negative polarity such that said group of bits contains less logical one bits than logical zero bits; maintaining a cumulative polarity value of at least the N bits previously transmitted over said communications link, said cumulative polarity value being positive when more logical one bits than logical zero bits have been transmitted and said cumulative polarity value being negative when less logical one bits than logical zero bits have been transmitted, said step of maintaining a cumulative polarity value comprising the steps of; receiving said group of bits consisting of said plurality of N data bits; separating said group of bits into a plurality of subgroups of bits; and for each of said subgroups of bits, incrementing or decrementing said cumulative polarity value by an appropriate number utilizing memory means having address input leads connected to receive each of said subgroups of bits, in sequence, and a data output port for providing an output signal indicating whether said cumulative polarity value should be incremented or decremented, and said appropriate number; encoding said M additional bits in response to said polarity of said N data bits and said cumulative polarity, thereby forming a group of M encoded bits indicating whether said N data bits are to be inverted prior to transmission; and forming a set of bits to be transmitted consisting of said M encoded bits and N encoded bits formed by inverting all of said N data bits when said N data bits have a polarity which is the same as said cumulative polarity, and not inverting said N data bits when said N data bits have a polarity which is the opposite of said cumulative polarity. - View Dependent Claims (9, 10)
-
-
11. A method for the transmission of data over a communications link comprising the steps of:
-
obtaining a plurality of a N data bits, where N is a positive integer; forming a group of bits by including an indicator data bit of known indicator value to said N data bits in a predefined location within said group of bits; determining whether said group of bits has a positive polarity such that said group of bits contains more logical one bits than logical zero bits or whether said group of bits has a negative polarity such that said group of bits contains less logical one bits than logical zero bits; maintaining a cumulative polarity value of the bits previously transmitted over said communications link, said cumulative polarity value being positive when more logical one bits than logical zero bits have been transmitted and said cumulative polarity value being negative when less logical one bits than logical zero bits have been transmitted, said step of maintaining comprising the steps of; receiving said group of bits consisting of said plurality of N data bits and said indicator data bit; separating said group of bits into a plurality of subgroups of bits; and for each of said subgroups of bits, incrementing or decrementing said cumulative polarity value by an appropriate number, wherein said step of incrementing or decrementing is performed by memory means having address input leads connected to receive each of said subgroups of bits, in sequence, and a data output port for providing an output signal indicating whether said cumulative polarity value should be incremented or decremented, and said appropriate number; forming a set of bits to be transmitted by inverting all bits within said group of bits when said group of bits has a polarity which is the same as said cumulative polarity, and not inverting the bits within said group of bits when said group of bits has a polarity which is the opposite of said cumulative polarity; transmitting said set of bits over said communications link; receiving said set of bits; determining within said set of bits the location of said indicator bit; and when said indicator bit has the same value as said known indicator value, passing N bits as N data bits, where N is a positive integer, from said set of bits and, when said indicator bit has an opposite value as said known indicator value, inverting said N bits from said set of bits prior to passing said passing the inverted values as N data bits.
-
-
12. A method for the transmission of data over a communications link comprising the steps of:
-
obtaining a plurality of N data bits, where N is a positive integer; forming a group of bits by including an indicator data bit of known indicator value to said N data bits in a predefined location within said group of bits; determining whether said group of bits has a positive polarity such that said group of bits contains more logical one bits than logical zero bits or whether said group of bits has a negative polarity such that said group of bits contains less logical one bits than logical zero bits; maintaining a cumulative polarity value of the bits previously transmitted over said communications link, said cumulative polarity value being positive when more logical one bits than logical zero bits have been transmitted and said cumulative polarity value being negative when less logical one bits than logical zero bits have been transmitted; forming a set of bits to be transmitted by inverting all bits within said group of bits when said group of bits has a polarity which is the same as said cumulative polarity, and not inverting the bits within said group of bits when said group of bits has a polarity which is the opposite of said cumulative polarity; including an additional M bits, where M is a positive integer, to said set of bits prior to transmission; transmitting said set of bits over said communications link; receiving said set of bits; determining within said set of bits the location of said indicator bit; and when said indicator bit has the same value as said known indicator value, passing N bits as N data bits, where N is a positive integer, from said set of bits and, when said indicator bit has an opposite value as said known indicator value, inverting said N bits from said set of bits prior to passing said passing the inverted values as N data bits. - View Dependent Claims (13, 14)
-
-
15. An apparatus for encoding data to be transmitted comprising:
-
means for obtaining a plurality of N data bits, where N is a positive integer; means for forming a group of bits by including an indicator bit of known value to said N data bits in a predefined location within said group of bits; a group polarity sensor for determining whether said group of bits has a positive polarity such that said group of bits contains more logical one bits than logical zero bits or whether said group of bits has a negative polarity such that said group of bits contains less logical one bits than logical zero bits, said group polarity sensor comprising; a first current summing node associated with logical one bits; a second current summing node associated with logical zero bits; a plurality of current sources, each associated with a selected one of said N+1 bits forming said group of bits; a plurality of switch means, each associated with a selected one of said current sources, each said switch means connecting its associated current source to said first current summing node when its associated bit is a logical one and connecting its associated current source to said second current summing node when its associated bit is a logical zero; and a comparator for comparing the sum of the currents connected to said first current summing node with the sum of the currents connected to said second current summing node and providing an output signal indicating whether said group of N+1 bits contains more logical ones than logical zeros or less logical ones than logical zeros; a cumulative polarity sensor for maintaining a cumulative polarity value of the bits previously transmitted over said communications link, said cumulative polarity value being positive when more logical one bits than logical zero bits have been transmitted and said cumulative polarity value being negative when less logical one bits than logical zero bits have been transmitted; and a transmitter conditional inverter for forming a set of bits to be transmitted by inverting all bits within said group of bits when said group of bits has a polarity which is the same as said cumulative polarity, and not inverting the bits within said group of bits when said group of bits has a polarity which is the opposite of said cumulative polarity.
-
-
16. A method of encoding data for transmission over a communications link comprising the steps of:
-
obtaining a plurality of N data bits, where N is a positive integer; obtaining a plurality of M additional bits, where M is a positive integer; determining whether said plurality of N data bits have a positive polarity such that said N data bits contains more logical one bits than logical zero bits or whether said group of bits has a negative polarity such that said group of bits contains less logical one bits than logical zero bits utilizing a group of polarity sensor comprising; a first current summing node associated with logical one bits; a second current summing node associated with logical zero bits; a plurality of current sources, each associated with a selected one of said N bits forming said group of bits; a plurality of switch means, each associated with a selected one of said current sources, each said switch means connecting its associated current source to said first current summing node when its associated bit is a logical one and connecting its associated current source to said second current summing node when its associated bit is a logical zero; and a comparator for comparing the sum of the currents connected to said first current summing node with the sum of the currents connected to said second current summing node and providing an output signal indicating whether said group of N bits contains more than logical zeros than logical ones or less logical ones than logical zeros; maintaining a cumulative polarity value of at least the N bits previously transmitted over said communications link, said cumulative polarity value being positive when more logical one bits than logical zero bits have been transmitted and said cumulative polarity value being negative when less logical one bits than logical zero bits have been transmitted; encoding said M additional bits in response to said polarity of said N data bits and said cumulative polarity, thereby forming a group of M encoded bits indicating whether said N data bits are inverted prior to transmission; and forming a set of bits to be transmitted consisting of said M encoded bits and N encoded bits formed by inverting all of said N data bits when said N data bits have a polarity which is the same as said cumulative polarity, and not inverting said N data bits when said N data bits have polarity which is the opposite of said cumulative polarity. - View Dependent Claims (17, 18)
-
Specification