9th bit protocol


Thread Starter

Gianni Franchi

Anyone know something about 9th bit protocol ? about the specification and or where can i find something on the net?

Thank you in advance
I have seen people use the ninth bit as a frame sync in binary messages. A typical implementation would start a packet or message with a byte with the ninth bit set. This header byte also indicates the number of bytes in the packet, the last byte of which would typically be a checksum or CRC.

An extremely simple implementation I saw used the first byte as the checksum, the second as the 'node' address (it was for 485), the third as a
register address (128 read, 128 write), and the fourth as a data byte. The last three were subtracted from the checksum to yield zero. An
acknowledge/reply was generated in a similar fashion.

Come to think about it, not a bad way of bouncing about a few bytes at a time, allthougth I don't think any formal standard has been based on this
technique, in fact many microcontroller UARTS cannot do 9 bits so there is a drawback.
By my recollection, the 8051 data book didn't describe a complete protocol. I think you'll find that the UART has a 9-bit mode which basically means you can interrupt on each character received, or interrupt only on a character with the 9th bit set. This drastically reduced the interrupting overhead on a multidrop system (in that all bytes without the 9th bit set were ignored).

Typically the destination address was on this byte, and if the address matched the receiver, the
receiver would enable interrupt on all characters, receiving the entire message, then re-enabling the "interrupt on 9th bit" mode.

I don't recall any more protocol defined on the data sheet, but typically one would expect subsequent bytes to include sender address (if peer to peer), byte count of message, message data bytes, checksum for message.

I suppose in an error-free, master slave environment the protocol could be simply "9-th bit character specifies destination for subsequent characters", making all non-9th bit
characters data bytes.

In a message dated 1/20/00 11:22:24 AM Eastern Standard Time, [email protected] writes:
> Gianni,
> As far as I remember, it should be in any technical book on the Intel 8051
> (8031) micro controller.