RE: rs232 endianness on PPC

2 messages, 2 authors, 2006-07-06 · open the first message on its own page

RE: rs232 endianness on PPC

From: Antonio Di Bacco <hidden>
Date: 2006-07-02 10:05:53

PowerPC is neither byte swapped nor bit swapped.
When transmitting on a network card the most significant byte is transmitted 
first, and, inside the byte, the most significant bit is sent first.
RS232 is an exception: LSB is sent first.

RE: rs232 endianness on PPC

From: Walter L. Wimer III <hidden>
Date: 2006-07-06 16:06:30

On Sun, 2006-07-02 at 12:10 +0200, Antonio Di Bacco wrote:
PowerPC is neither byte swapped nor bit swapped.
When transmitting on a network card the most significant byte is transmitted 
first, and, inside the byte, the most significant bit is sent first.
FYI, the *bit*-order on a network actually depends on the layer 2
network standard that you happen to be communicating over.  Ethernet /
IEEE 802.3 is *least significant* bit first on the wire.  SLIP and
asynchronous PPP (since they go over RS232) are also least-significant
bit first.  IBM Token-Ring / IEEE 802.5 was most-significant bit first
on the wire.

IETF protocols such as IP, TCP, UDP, etc., etc., etc., only specify the
*byte* order, which is most-significant *byte* first.

Generally speaking, a network device driver programmer need only worry
about getting the *byte* order correct.  The network interface hardware
generally takes care of the *bit* order.  (An exception to this can be
drivers and interface hardware for some low-speed "networks" such as I2C
or Dallas 1-Wire.  These may be very primitive and require software
"bit-banging" where the driver software must explicitly shift bits out
of a byte and transmit them one bit at a time.  Clearly in these cases,
the driver must transmit the bits in the correct order based on the
appropriate standard (e.g. I2C, Dallas 1-Wire, etc.).)



Cheers,

Walt Wimer
TimeSys Corporation
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help