Chuẩn RS-232c/v24

Một phần của tài liệu Thiết kế mạch định vị GPS sử dụng SIM548C có full code (Trang 91 - 96)

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' (adsbygoogle = window.adsbygoogle || []).push({});

• @ 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 (adsbygoogle = window.adsbygoogle || []).push({});

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

Một phần của tài liệu Thiết kế mạch định vị GPS sử dụng SIM548C có full code (Trang 91 - 96)