Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Bit stuffing
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Practice in data transfers}} {{Use American English|date = March 2019}} {{no footnotes|date=March 2013}} In [[data transmission]] and [[telecommunications]], '''bit stuffing''' (also known—uncommonly—as '''positive justification''') is the insertion of non-information [[binary digit|bits]] into [[data]]. Stuffed bits should not be confused with [[overhead bit]]s. Bit stuffing is used for various purposes, such as for bringing [[bit stream]]s that do not necessarily have the same or rationally related [[bit rate]]s up to a common rate, or to fill [[Buffer (telecommunication)|buffers]] or [[Data frame|frames]]. The location of the stuffing bits is communicated to the receiving end of the [[data link]], where these extra bits are removed to return the bit streams to their original bit rates or form. Bit stuffing may be used to synchronize several channels before [[multiplexing]] or to rate-match two single channels to each other. Another use of bit stuffing is for [[run length limited]] coding: to limit the number of consecutive bits of the same value in the data to be transmitted. A bit of the opposite value is inserted after the maximum allowed number of consecutive bits. Since this is a general rule the receiver doesn't need extra information about the location of the stuffing bits in order to do the de-stuffing. This is done to create additional signal transitions to ensure reliable reception or to escape special reserved code words such as frame [[sync sequence]]s when the data happens to contain them. [[File:Bitstuffing en.svg|thumb|Bit stuffing in CAN after five equal bits]] Bit stuffing does not ensure that the payload is intact (''i.e.'' not corrupted by transmission errors); it is merely a way of attempting to ensure that the transmission starts and ends at the correct places. [[Error detection and correction]] techniques are used to check the frame for corruption after its delivery and, if necessary, the frame will be re-sent. ==Zero-bit insertion== The [[NRZI]] coding scheme transmits a 0 bit as a signal transition, and a 1 bit as no change. In this case, bit stuffing is most easily described as the insertion of a 0 bit after a long run of 1 bits. It was popularized by IBM's [[Synchronous Data Link Control|SDLC]] (later renamed [[HDLC]]), and is also used in Low- and full-speed [[USB]]. After a long sequence of 1 bits there would be no transitions in the transmitted data, and it would be possible for the transmitter and receiver clocks to lose synchronisation. By inserting a 0 after five (SDLC) or six (USB) consecutive 1 bits the transmitter guarantees a maximum of six (SDLC) or seven (USB) bit times between transitions. The receiver can synchronise its clock against the transitions to ensure proper data recovery. In SDLC the transmitted bit sequence "01111110" containing six adjacent 1 bits is the [[High-Level Data Link Control#Synchronous framing|Flag byte]]. Bit stuffing ensures that this pattern can never occur in normal data, so it can be used as a marker for the beginning and end of the frame without any possibility of being confused with normal data.<ref>Kevin R. Fall and W. Richard Stevens, ''TCP/IP Illustrated Volume 1: The Protocols'', Second Edition, Addison-Wesley, 2012, Kindle Edition loc 3505</ref> The main disadvantage of bit-stuffing is that the [[code rate]] is unpredictable; it depends on the data being transmitted. ''Source: from [[Federal Standard 1037C]] in support of [[MIL-STD-188]]'' ==See also== * [[Consistent Overhead Byte Stuffing]] ==References== {{reflist}} [[Category:Line codes]] [[Category:Synchronization]]
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:No footnotes
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Use American English
(
edit
)
Search
Search
Editing
Bit stuffing
Add topic