EIA 1969, Electronics Industry Association, cho truyền tin không đồng bộ và truyền qua mạng điện
thoại.
• Nhiều nhược điểm so với các chuẩn khác: tốc độ chậm, khoảng cách gần, single end signal - dễ nhiễu,
lượng bít không mang tin lớn... nhưng... • Rất thông dụng, có trong nhiều các thiết bị máy tính, máy điều khiển, máy đo ... và các vi điều khiển,
GPS, Gyro Compass, PLC, Switching System...
• Là cửa ngõ trao đổi thông tin giữa các hệ VXL không cùng chuẩn (số bit, bộ lệnh, tốc độ...)
1. FORMAT of FRAME: • 1 start bit = 0,
• 5/ 6/ 7/ 8 data bit, D0 - first, • [Parity bit - PE/ PO],
• 1/ 1,5/ 2 stop bit = 1s 2. Mô hình và cỏc tớn hiệu: • Cỏc tín hiệu truyền tin:
• TxD - Transmit Data: Serial data out + bit không mang tin • RxD - Receive Data: Serial data in + bit không mang tin • Signal Ground: 0 Volt. Reference for Single End Signals (Null modem protocols, X-On & X-Off)
• Modem handshaking signals (Low active): • -RTS - Request To Send, Out - DTE
• -CTS - Clear To Send, In
• -DTR - Data Terminal Ready, Out • -DSR - Data Set Ready, In
• Line status:
• -RI - Ring Indication, In
• -[D]CD - [data] Carrier Detect, In 3. Mức tín hiệu:
• Cỏc tín hiệu RS232 có mức áp:
• -3V .. -15V => mức logic 1, mark, so với Gnd • +3V .. +15V => mức logic 0, space
• Các vi mạch dùng để biến đổi:
• Motorola MC-1488 (TTL to 232) và MC-1489 (232 to TTL), 3 nguồn cấp :+5V, +12V, -12V
• MAX 232 - ICL 232: là RS232 'modem' ; Single Power Supply +5V. Bên trong cú cỏc bộ đổi
nguồn: Doubler và Inverter => +10V và -10V, Hình 5.25 4. Tốc độ truyền tin:
• Đơn vị tính là bps (bit per second)
• Các tốc độ RS-232 : 50, 75, 110, 150, 300, 600, 1.200, 2.400, 4.800 và 9.600 • Thêm: 19.200, 38.400, 57.600 và 115.200,
• Dùng quartz 1.8432 MHz
• 16 chu kỳ clock => truyền đợc 1 bit
• Thường trong các cổng truyền tin, tốc độ được tính theo: 1.8432 x 106 (Hz)
• Baud rate (bps) = --- 16 (m x 256 + n)
với n : low divisor, trong đó m: hi divisor, • Ví dụ: 9600bps => m=0, n=12
5. Khoảng cách :
• Tùy thuộc nhiều môi trường, cáp truyền, nhưng: • @ 9600 bps, L < 100'
• @ 19.200 bps, L<50' 6. Connector:
• D shell 9 hoặc 25 pin [DB9 hoặc DB25] connector 7. PC RS-232 ports
• So called: • RS 232C/ EIA • Communication port
• Asynchronous [Async] port • Serial port
• UART / Intel 8250,
• UART National Semiconductor 16450, 16550, 16550A • Properties:
• Port Comm1 Comm2 Comm3 Comm4 • BaseAddr 3F8h 2F8h 3E8h 2E8h • IRQ 4 3 Option Option
• UART Intel 8250 , KT VXL - MTV
• CS interface: 8bit data, IRQ (for Trans, Rec, Modem & Errors), -CS, -RD, -WR và Reg Select
lines.
• Modem Interface: -RTS, -CTS, -DTR, -DSR, -CD và -RI
• Control Registers (Line &Modem): để định format và chế độ hoạt động. • Divisor Latches: định tốc độ truyền (thu và phát)
• Status Registers (Line & Modem) đọc trạng thái, Errors để hoạt động polling và Int.
• UART NS 16550A:
• FIFO buffers for Rec và Trans 16 byte,
• Hoạt động: polling, interrupt [cú thờm] DMA Hoạt động của comm port
Setting: Chọn cổng/ format/ tốc độ/ mode • Selecting Port: BaseAddr:= Comm2; {$2F8}
• Format of character: (Line Control Register - BA+3) Vớdụ 9600, 8, N, 1:
Port[BaseAddr+3]:= 3; {$2FB}
• Baud rate: Access: DLAB bit @ LCR, Low Div và Hi Div. Khi setting baudrate, DLAB=1,
otherwise=0
Port[BaseAddr+3] := Port[BaseAddr+3] or $80; Port[BaseAddr+0] := 12; {Low divisor}
Port[BaseAddr+1] := 0; { Hi divisor }
Port[BaseAddr+3] := Port[BaseAddr+3] and $7F;
• Mode: Interrupt/ DMA? Hoạt động
• Transmitting: Line Status Register LSR, BA+5 • Sending 1 char:
Port[BA+0]:= char_send;
• Sending 1 packet n byte.
bit 5 (of LSR) = 1 => THRE (Trans Hold Reg Empty):
For i:= 1 to n do Begin
Repeat Until Port[BA+5] and $20 = $20; Port[BA+0]:= char[i]
End; {không cần kiểm tra TimeOut hoặc lỗi}
• Gửi 1 packet dùng Int?. Hoạt động Receiving
• Line Status Register LSR, BA+5, các bit/ cờ TT:
• b0 = 1 => data received, =0 khi CPU đọc Receice Buffer • b1 = 1 => OE, OverrunErr
• b2 = 1 => ParityErr • b3 = 1 => FramingErr • b4 = 1 => BreakInt • Và chú ý TimeOut
INTERRUPT SETTING
• IRQ 4 - Comm1, IRQ3 - Comm2.
• Enable Interrupt Register - IER, BA+1, 4 lowest bit. b(i) = 1 => Enable; b(i) = 0 => Disable.
• b0 : Thu xong 1 byte/ char • b1 : Phát xong 1 byte/ char
• b2 : 1 of 4 Errors of Receive Action • b3 : MODEM IRQ
• Interrupt Identification Register: BA+2, Đọc Reg này để biết nguồn ngắt, có 4 mắc ưu tiên cố định,
dùng b1 và b2:
• xxxxx11x Highest Prio., 1 of 4 lỗi thu • xxxxx10x Thu xong 1 char/ byte • xxxxx01x Phát xong 1 char/ byte
Chương 3
Thiết kế máy thu GPS 3.1. Sơ đồ khối