Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Serial Communications Sending and receiving data between devices CE-2810 Dr. Mark L. Hornick 1 Serial Communications describes a general way in which two devices can send or receive data from one another To send or receive data, bits have to be moved around The term Serial indicates that the data bits are transmitted sequentially, one bit at a time Conversely, in parallel communication, multiple bits are transmitted simultaneously CE-2810 Dr. Mark L. Hornick 2 The physical signaling of serial data takes many forms USB (Universal Serial Bus) Firewire Bluetooth IR Ethernet RS-232 RS-422 RS-485 WiFi CS-280 Dr. Mark L. Hornick 3 Atmel Atmega32 USART Subsystem CS-280 Dr. Mark L. Hornick 4 USART overlaps PortD pins RXD pin is used to receive serial data Enabling the USART receiver overrides PD0 function TXD pin is used to transmit serial data Enabling the USART transmitter overrides PD1 function CE-2810 Dr. Mark L. Hornick 5 RS-232 on the SunRom board The SunRom board includes a RS-232 converter chip that converts the low-level signals of TXD/RXD to RS-232 voltages TXD/RXD: 0 to +5v RS-232: -15 to +15v The converter chip interfaces the Atmega32 to the 15-pin D-shell connector CE-2810 Dr. Mark L. Hornick 6 TTL vs RS-232 voltage levels TTL (transistor logic) signals v < 2 = logical 0 v > 3 = logical 1 2 < v < 3 = undefined RS-232 signals -15 < v < -3 = logical 1 +3 < v < +15 = logical 0 -3 < v < +3 = undefined CS-280 Dr. Mark L. Hornick Note that logic values appear to be inverted if RS-232 signals are viewed on an oscilloscope 7 Only 3 lines on the 15-pin connector are used for RS-232; Tx(2), Rx(3), and Ground(5) CS-280 Dr. Mark L. Hornick 8 Connection between two communicating serial devices The Tx (transmit) line of one device is connected to the Rx (receive) line of the second device Tx Tx Rx Rx CS-280 Dr. Mark L. Hornick 9 Asynchronous vs Synchronous In synchronous communications, the two communicating devices must keep their respective clock signals synchronized Even when no data is being sent, the two devices continuously exchange “sync” characters In asynchronous communications, the two devices maintain their own clocks Nothing is transmitted when there is nothing to send But a “handshake” has to be established whenever data needs to be transmitted – extra overhead The USART subsystem of the Atmega32 supports both modes, but we’ll only use the asynchronous mode. CE-2810 Dr. Mark L. Hornick 10 Asynchronous transmission of a byte of data Each byte of data is surrounded by “framing” bits, inserted by the USART LSB MSB 5,6,7,8, or 9 data bits Parity bit can be disabled (no parity bit) 1 or 2 stop bits CS-280 Dr. Mark L. Hornick 11 The Parity bit is an error checking mechanism used to detect data corruption Equal to 1 if the number of non-zero data bits is odd, (#data bits + parity bit = even number of bits) Equal to 1 if the number of non-zero data bits is even, (#data bits + parity bit = odd number of bits) The Parity is computed first on the transmitting end, and included as the Parity bit in the frame. The Parity is then recomputed on the receiving end, and the result is compared to the Parity bit value. If the Parity calculation on the receiving end does not match, the receiver knows data corruption occurred. This allows errors to be DETECTED, but does not provide a means of CORRECTION. CS-280 Dr. Mark L. Hornick 12 RS-232 signal transmission of the letter ‘K’ (ASCII 0x4C) CS-280 Dr. Mark L. Hornick 13 Speed metrics The speed of serial transmission is usually measured in bits-per-second This is called the baud rate Because of the overhead bits used in each frame, 2400 baud is NOT the same as 300 characters per second Since each character takes >8 bits to transmit The Atmega32 USART can be configured to operate between 2400 and 1M baud CS-280 Dr. Mark L. Hornick 14