Lecture # 13
C:\>debug -o 378 0A -i 379 D0 -o 378 19 -i 379 48 Sending byte 9A C:\>debug -i 379 D7 -o 378 0A -i 379 4F -o 378 19 C:\>debug -o 378 0A -i 379 D0 -o 378 19 -i 379 48
0A=00001010 , Data line 4=0 (sent) D7=11010111 , BUSY=1 (recieved) 11010111 >> 3 = 00011010 00011010 & 00001111 = 00001010 = 0A , Data line 4 =0 (send for verification) D0 = 11010000 , BUSY=1 (received & verified)
09=00001001 , Data line 4 =0 Set Data line 4 to 1 00001001 | 00010000 = 00011001 = 19 ,(Sent to 378H) (Sent) 4FH=01001111 , BUSY=0 (Received) 01001111 << 1 = 1001111
Joining both nibbles Low Nibble 00011010 & 00001111 = 00001010 Hi Nibble 10011111 & 11110000 = 10010000 Whole byte 00001010 | 10010000 = 10011010 = 9A
int i= 0; char Buf[1024]; while (1) { ch = Buf [i]; if ((inport((*lpt) + 1)& 0x80) == 0) ch = ch & 0xEF; while((inport((*lpt) + 1) &0x80) == 0); } else ch = ch >> 4; ch = ch | 0x10; outport (*lpt, ch); i++; while((inport((*lpt) + 1) &0x80) == 80);
int i; while (1) { if ((inport(*lpt + 1)& 0x80) == 0x80) { x = inport ((*lpt) + 1); x = x >> 3; x = x & 0x0F; outport((*lpt), x); while((inport(*lpt + 1) &0x80) == 0x80); } else { y = inport ((*lpt) + 1); y = y << 1; temp = y; y = y | x;
temp = temp >> 4; \\ Move to Low Nibble temp = temp | 0x10;\\ Set D4 bit i++; outport (*lpt, temp);\\ Send for verification Buf [i] = y; while((inport((*lpt) + 1) &0x80) == 0); }
Serial Communication Advantages Disadvantages
Types Of Serial Communication Synchronous Asynchronous
Synchronous Communication Timing signal is used to identify start and end of a bit. LSB MSB 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1
Synchronous Communication Sampling may be edge triggered. Special line may be required for timing signal (requires another line). Or the timing signal may be encoded within the original signal (requires double the bandwidth).
Asynchronous Communication Does not use make use of timing signal. Each byte (word) needs to encapsulated in start and end bit.
Serial Communication using a UART Parity bit Start bit of next byte 0 1 2 3 4 5 6 7 8 1 5 – 8 bit 1, 1.5, 2 Stop bit Start bit 1.5 Stop bit
Sampling Rate Bit rate = 9600 A bit is sampled after = 1/9600 -- But start and end bits of a particular Byte cannot be recognized. -- So 1.5 stop bit (high) is used to encapsulate a byte. A start bit (low) at the start of Byte is used to identify the start of a Byte.
Sampling Rate -- Bit rate and other settings should be the same at both ends i.e. Data bits per Byte. (5 – 8 ) Parity check Parity Even/Odd No. of stop bits.
Sampling Rate A = 41H = 0100 0001 B Parity = Odd Data = 8 Stop bit =1 1/1300 sec Data bits Stop bit Start bit Odd parity A = 41H = 0100 0001 B Parity = Odd Data = 8 Stop bit =1 Data rate = 300 bits/sec
PC (DTE) RS – 232C Standard Modem Standard for physical dimensions of the connectors. RS – 232C Cable PC (DTE) (DCE) Modem Connected via serial port
RS – 232C Connectors and Signals DB25 (25 pin connector) 13 25 12 24 11 23 10 22 RI 9 21 CD 8 DTR 20 GND 7 19 DSR 6 18 CTS 5 17 RTS 4 18 RD 3 19 T X D 2 20 1 25 pin connector on PC
DTR (SHOULD REMAIN HIGH THROUGH OUT THE SESSION ) RI CD DTE DCE DTR PC MODEM DSR RTS CTS RxD TxD DTR (SHOULD REMAIN HIGH THROUGH OUT THE SESSION ) CTS (CAN BE USED FOR FLOW CONTROL )