Ghép nối hệ trung tâm với Thiết bị ngoại vi qua các tín
hiệu logic 1/0
- PARALLEL IN/OUT
- PORTS: PRINCIPLE, PPI, CENTRONICS/LPT
- PCMCIA, DUAL PORTED RAM.
- INTERCACING TO DEVICES: KEY PAD, LED,
TEXT PANEL, ENCODER, STEP MOTOR, .
- HI-POWER INTERFACE: RELAY, SCR, TRIAC,
POWER MOSFET, IGBT.
- SERIAL IN/OUT: SYNC, ASYNC,
- RS-232, RS-485, RS-422
- MODEM.
65 trang |
Chia sẻ: Mr Hưng | Lượt xem: 1063 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Quản trị mạng - Chương 5: Digital interfacing, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
. EIA/TIA (RS)-232C/V24
EIA/TIA 1969, Electronics (Telecommunication) Industry
Association, cho việc truyền tin không đồng bộ, [truyền qua
mạng điện thoại]. RS: Recommended Standard
Nhiều nhược điểm so với các chuẩn khác: tốc độ chậm, khoảng
không xa, single end signals - dễ nhiễu, tỷ lệ bít không mang tin
lớn. . . nhưng . . .
Rất thông dụng, có trong hầu hết các thiết bị số (máy tính, máy
điều khiển số, máy đo thông minh... và họ vi điều khiển, Global
PS, 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 độ...)
P&I Ch5-Digi In/Out 102
5.2. serial interface: 5.2.2. chuÈn EIA/TIA-232c/v24
5.2.2.1. FORMAT of FRAME/ CHARACTER:
1 start bit = 0, đương nhiên, thường không nhắc lại
5/ 6 / 7/ 8 data bit, D0 – first. 5 và 6 not use today
[Parity bit - PE/ PO] – ít dùng vì đã có kiểm soát chung bởi
giao thức
1/ 1.5/2 stop bit = 1s – thường dùng 1 bit
H. 5.23. RS-232 Frame trên đường truyền
52
P&I Ch5-Digi In/Out 103
5.2. Serial Interface: 5.2.2. RS232C/V24
5.2.2.2. MÔ HÌNH VÀ CÁC TÍN HIỆU:
P&I Ch5-Digi In/Out 104
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
Modem handshaking/ status signals (Low active):
-RTS : Request To Send, Out - DTE
-CTS : Clear To Send, In - DTE
-DTR : Data Terminal Ready, Out
-DSR : Data Set Ready, In
-RI : Ring Indication, In: báo chuông
-CD : [Data] Carrier Detect, In: mất sóng mang - đứt dây, mất điện
remote terminal....
53
P&I Ch5-Digi In/Out 105
5.2.2.3. MỨC TÍN HIỆU:
Các tín hiệu RS232 có mức áp:
-3V .. -15V => logic 1, so called 'Mark'
+3V .. +15V => logic 0, so called 'Space'
Các vi mạch dùng để biến đổi: 232 modems/ converters
Motorola MC-1488 (Driver: TTL to 232) và MC-1489 (Receiver:
232 to TTL), 3 nguồn cấp : +5V, +12V, -12V, cổ
Maxim 232 hoặc Intersil - ICL 232: là 232 '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
P&I Ch5-Digi In/Out 106
H. 5.25. MAXIM 232 IC
54
P&I Ch5-Digi In/Out 107
5.2.2.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, 1200, 2400, 4800
và 9600, BIOS support
Thêm: 19.200, 38.400, 57.600 và 115.200
Dùng Xtal (quartz, Thạch anh) 1.8432 MHz
16 chu kỳ clock => truyền (thu hoặc phát) được 1 bit
Thường trong các cổng truyền tin, tốc độ được tính theo:
1.8432 x 106
Baud rate (bps) = ------------------------- ;
16 (m x 256 + n)
m-n: số chia 16 bit, n : low divisior, m: hi divisior
P&I Ch5-Digi In/Out 108
5.2.2.5. KHOẢNG CÁCH :
Distance x baud rate product !
Tùy thuộc môi trường, cáp truyền, nhưng:
@ 9600 bps, L < 100‘ ~ 33m
@ 19.200 bps, L<50' ~ 16,5 m
5.2.2.6. CONNECTOR - JACK:
D shell 9 hoặc 25 pin [DB9 hoặc DB25] connector
Male - Female
55
P&I Ch5-Digi In/Out 109
5.2. serial interface: 5.2.3. PC's rs-232 ports
Tên gọi: so called:
RS 232C/ V24/ EIA 232
Communication port (Comm/ Com)
Asynchronous [Async] port
Serial port
UART Intel 8250/ National Semiconductor 16450, 16550,
16550A
Properties:
Ports Comm1 Comm2 Comm3 Comm4
BaseAddr 3F8h 2F8h 3E8h 2E8h
IRQ 4 3 Option Option
HRQ (Option)
P&I Ch5-Digi In/Out 110
5.2. serial interface: 5.2.3. PC RS232 ports
UART 8250, Universal Asynchronous Receiver-Transmitter (KT
VXL, tác giả MTV)
CS interface: 8bit data, IRQ (for Trans, Rec, Modem &
Errors), -CS, -RD, -WR và 3 Reg Select bits => 1 of 8
Modem Interface: RTS-CTS, DTR-DSR, CD và RI
Line [Modem] Control Registers : để định format of character
và chế độ hoạt động cho port và modem.
Divisor Latches: định tốc độ truyền (thu và phát)
Line [Modem] Status Registers đọc trạng thái, Errors để hoạt
động polling và Int.
UART NS 16550A: compatible 100% 8250
FIFO buffers for Rec và Trans 2x16 byte,
Hoạt động: polling, interrupt [có thêm] DMA
Tham khảo UART 16550A @ site: www.national.com
56
P&I Ch5-Digi In/Out 111
P&I Ch5-Digi In/Out 112
HOẠT ĐỘNG CỦA COMM PORT: SETTING &
TRANSCEIVE
SETTING/ INITIALIZING - KHỞI TẠO:
Selecting Port: BaseAddr:= $2F8 {Comm2}
Formats of character: (Line Control Register - BA+3) Vídụ
9600, 8(7), N(PE/ PO), 1(2):
Port[BaseAddr+3]:= 3; {8, n, 1, 3F8+3}
Baud rate Setting: DLAB (bit7 of LCR) = 1, nạp Low Div và
Hi Div. Khi setting baudrate, DLAB=1, otherwise=0
Port[BaseAddr+3] := Port[BaseAddr+3] or $80; {DLAB=1
only}
Port[BaseAddr+0] := 12; {xf8h, Low divisor, n}
Port[BaseAddr+1] := 0; { xf9h, Hi divisor , m}
Port[BaseAddr+3] := Port[BaseAddr+3] and $7F;{DLAB=0 !}
57
P&I Ch5-Digi In/Out 113
• Line Control Register: XFBh – BaseAddr+3
– b1, b0 : 11 10 01 00
– 8 7 6 5 data bit, 5 và 6 bit không dùng.
– b2 : 0 => 1 stop bit; 1 => 2 stop bit
– b3: 0 – non parity, 1: parity
– b4: (chỉ có nghĩa khi b3=1) 0=> PO, 1=> PE
– b5: 0: normal, 1: Stuck parity (PE)
– b6: Space Out: 0, normal, 1: space out
– b7: DLAB: divisor latch access bit. Dùng để truy
nhập số chia, định tốc độ truyền. 0: normal, 1: BA –
(XF8) low divisor, BA+1 (XF9) – hi divisor
– Ví dụ: 7, PE, 2 LCR = 0001 1110b 1Eh
P&I Ch5-Digi In/Out 114
1.8432 x 106 cps
• Công thức tính: Baud rate (bps) = --------------------- ;
16 (m x 256 + n)
n : low divisior, m: hi divisior
600 bps m=0, n = 192
1200 bps m=0, n= 96;
2400 bps m=0, n= 48
4800 bps m=0, n= 24
9600 bps: m=0, n= 12
19200 bps m=0, n= 6
38400 bps m=0, n= 3
57600 bps m=0, n = 2
115200 bps m=0, n= 1 max rate
Nạp cả m và n khi DLAB = 1
58
P&I Ch5-Digi In/Out 115
HOẠT ĐỘNG TRANS-CEIVING
Line Status Register LSR, BA+5, các bit/ cờ TT:
b0 = 1 => IBF data received, = 0 khi CPU đọc Receice Buffer,
RxR - xF8h
b1 = 1 => OE, Overrun Err, mất số liệu, bị sl sau đè lên
b2 = 1 => PE, Parity Err, Vd đặt PE, thu về số bit 1 lẻ
b3 = 1 => FE, Framing Err, sai stop bit, sai clock 2 phía
b4 = 1 => BI, BreakInt, t(space)> t(full char)
b5: THRE: Transmit Hold Reg Empty
b6: Data Transmitted
b7: Not Use
Và chú ý TimeOut !!!
Thủ tục thu 1 packet được mô tả Hình 5.26:
5.2. serial interface: 5.2.3. PC RS-232 ports
P&I Ch5-Digi In/Out 116
5.2. serial interface: 5.2.3. PC rs-232 ports
HOẠT ĐỘNG: POLLING, sau setting, thu;phát tin giống như song
song
Transmitting: Line Status Register LSR, BA+5
Sending 1 char: Thanh ghi giữ sl phát TxR, Base Addr+0
Port[BA+0]:= sent_char; ghi ra thanh ghi phát
Sending 1 packet n byte.
bit 5 (of LSR) = 1 => THRE (Trans Hold Reg Empty):
For i:= 1 to n do
Begin {0010 0000}
Repeat Until Port[BA+5] and $20 0; {test bit 5}
Port[BA+0]:= xau_ky_tu[i]
End;
{không cần kiểm tra TimeOut hoặc lỗi ?}
59
P&I Ch5-Digi In/Out 117
Hình 5.26. Lưu đồ Thu 1 packet qua Comm Port - Polling
P&I Ch5-Digi In/Out 118
Rec Proc Near ; Bien Cobao ket qua
mov bp, offset Tx_Buffer ; Init Array of Receiving
mov cx, n ; Init counter of Packet
Rec1: mov bx, TOC ; Init TOC, tre 1s
Rec2: call @delay ; delay khoang 50us
dec bx
jne Rec3
mov bl, 0FFh
mov Cobao, bl ; Loi Time Out
jmp Ketthuc
Rec3: mov dx, BaseAddr+5 ; Line Status Reg
in al, dx
test al, 00000001b ; IBF
je Rec2
60
P&I Ch5-Digi In/Out 119
mov dx, BaseAddr+0 ; Rx Register
in al, dx
mov [bp], al ; Cat ket qua
mov dx, BaseAddr+5 ; LSR
in al, dx
and al, 00011110b ; any error?
jne Rec31
inc bp ; next char
loop Rec1
mov bl, 0
mov Cobao, bl ; PERFECT RETURN
jmp Ketthuc
Rec31:test al, 00000010b ; Overrun Error?
je Rec4
mov bl, 1
mov Cobao, bl ; Loi 1
P&I Ch5-Digi In/Out 120
Rec4: test al, 00000100b
je Rec5
mov bl, 2
mov Cobao, bl ; Loi 2
Rec5: test al, 00001000b
je Rec6
mov bl, 3
mov Cobao, bl ; Loi 3
Rec6: mov bl, 4
mov Cobao, bl ; Loi 4
Ketthuc: ret
Rec Endp
61
P&I Ch5-Digi In/Out 121
INTERRUPT SETTING
IRQ 4 - Comm1, IRQ3 - Comm2.
Interrupt Enable Register - IER, BA+1, 4 lowest bit. b(i) = 1
=> Enable; b(i) = 0 => Disable.
b0 : Thu xong 1 byte/ char
b1 : TxR Empty
b2 : 1 of 4 Errors of Receive Action
b3 : MODEM IRQ
Interrupt Identification Register: BA+2, Đọc II Reg để 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
xxxxx00x hoặc của 1 of 4 modem HSK signals.
P&I Ch5-Digi In/Out 122
5.2. serial interface: 5.2.4. Hayes modems
Do Công ty Hayes Microcomputer Product Inc. giới thiệu vào đầu
80s, tốc độ 300...2400bps, over telephone line
Có bộ lệnh (command set) và trả lời (response set), được dùng như
các lệnh chuẩn AT (standard modem).
Tín hiệu:
TxD, RxD, Gnd,
CD, RI. [Thêm] DTR-DSR, [RTS-CTS]
Chế độ hoạt động: Command và Data (Online) Modes
Command Mode: modem nhận lệnh từ CS qua RS-232 port và
thực hiện lệnh - không truyền tin.
Khi thiết lập xong kết nối với remote modem => online mode
(data mode) và chỉ truyền tin, không nhận lệnh.
62
P&I Ch5-Digi In/Out 123
H×nh 5.27. Block diagram of Hayes Compatible Data-Fax Modem
P&I Ch5-Digi In/Out 124
Khi mất sóng mang (remote modem has hungup) trở về command
mode không disconnecting để đợi
guard time (default 1s)
Escape command: +++
Lệnh gửi từ máy tính: software hoặc gõ trực tiếp từ bàn phím qua
RS-232 port
Char gửi từ máy tính 1 trong 2 formats:
7,PE,1 hoặc
8,N,1
Khi truyền 110 bps => 2 stop bit
Khi nhận command, modem gửi về result code. Option:
Digit code - for controlling modem by software
Word code - for controlling modem by keyboard
63
P&I Ch5-Digi In/Out 125
RESULT CODES:
DIGIT Word Meaning
0 OK Cmmnd executed
1 CONNECT Connect @ 0..300bps
2 RING ring signal detected
3 NO CARRIER mất sóng mang
4 ERROR error in cmmnd line
5 CONNECT 1200
6 NO DIALTONE Không có quay số
7 BUSY Báo bận
8 NO ANSWER Không trả lời
10 CONNECT 2400
P&I Ch5-Digi In/Out 126
AT COMMAND SET: attention
Các lệnh bắt đầu bằng AT or at (not At or aT) để modem detects
tốc độ và format (ngoại trừ 2 lệnh '+++' và A/ - repeat last
Cmmnd ) và kết thúc: Enter (0ah,0dh)
Command line: có thể có hơn 1 lệnh, chỉ cần 1st có AT, cách
nhau dấu ' ' và không quá 40 char/cmmnd line.
Các lệnh và Tham số
ATDT 048692463 Dial using touch Tone
ATDP 048696125 Dial Pulse
ATT/ ATP default tone/ pulse
O end of C line, return O mode
; end of C line, stay C mode
after executing
@ wait for 5s hoặc silent
64
P&I Ch5-Digi In/Out 127
• VÝ dô:
• ATDT 9,3456789 Kết nối từ máy trong tổng đài
• ATXn Hayes Smartmodem compatible
• Other Commands:
• ATE0/ 1 Disable/ Enable Echo
• +++ Esc Char switch to command mode
• ATHn 0:On-Hook (hangup),1: Off-Hook
• ATLn 0/1/2/3 volume of speaker
• ATMn 0: speaker off, 1: on until DCD, 2: on
• ATNn 0: connect @ DTE rate, 1: auto rate negot.
• ATO return to O mode
• ATQn 0: result code En, 1: result code Dis
• ATVn 0: digit, 1: word
• ATZ hangup, reset to default settings
• A/ Repeat last command (re dial)
• Các modem đều có bộ lệnh riêng, Ref. User's Guide Man.
P&I Ch5-Digi In/Out 128
Case study: Adding a Comm to uC
• Init: 9600, 8, n, 1, P20=1 (P20 thay cho
Pij), TxBuff , RxBuff byte
• Transmitting a char:
– TxBuff = transmit byte
– Start bit: P20=0, delay 104 us
– For i=0 to 7 do (P20= TxBuff(i), delay 104 us)
– Stop bit: P20=1, delay 104us
• Receiving a char: khi nhận start bit,
ISR được gọi từ INT0:
– Delay 52us, If P20=1 then iret (not start) else
• For i= 0 to 7 do (RxBuff(i)=P20, delay 104us)
• If P20 = 0 then framing Error
• iret
65
P&I Ch5-Digi In/Out 129
BÀI TẬP CHƯƠNG 5 (1 OF 2)
Thiết kế mạch cổng INPUT có trạng thái vs H5.3
Mạch ghép nối, tín hiệu trạng thái báo ngắt – Disable/Enable
Xây dựng mạch ghép nối PC và PPI 8255 qua ISA bus
Theo hình 5.7, xây dựng mạch ghép nối n CA-LEDs and/or
keypad + chương trình điều khiển, với hệ Vi xử lý bất kỳ.
Theo hình 5.8 và 5.9, tạo 16 x (8x16) char box board và DD để
hiện 1 thông báo.
T/k Color Char board: 2 LED Green/Red => 4 color
Bài tập dài:
Nghiên cứu và lập trình vào ra LPT với SPP, EPP, ECP và
IEEE 1284 modes
Thiết kế giao thức và xây dựng ch/tr truyền file giữa 2 máy
tính qua LPT theo SPP và các mode trên
Tạo Bill board tiếng Việt 16 row-80 column
P&I Ch5-Digi In/Out 130
BÀI TẬP CHƯƠNG 5 (2 OF 2)
Xây dựng mạch ghép nối 2 encoders theo chiều X và Y để xác
định tọa độ của một động tử (positioner) - tỷ lệ length/count đã
cho (có thể dùng Timer 8254)
Ghép nối Step motor [và Encoder] để điều khiển 1 thiết bị như
máy khoan định vị bằng chương trình, máy cắt vải, giấy, máy
vẽ, khoan toạ độ, automobile ...
Xây dựng sơ đồ chi tiết để điều khiển các tải công suất lớn:
motor, gen-set field wild dc, ac (lò, đèn)
Thuần thục lập trình cho các cổng RS-232/V24 trong máy tính và
các thiết bị khác.
Truyền tin giữa máy tính và Embedded System (ES) qua RS-232:
chat & file
Truyền tin giữa 2 máy qua Hayes modem: chat & file
Các file đính kèm theo tài liệu này:
- ch05_6073.pdf