Bài gi ng môn h c: K thu t ghép n i máy tính ỹ
ả
ậ
ọ
ố
ng v k thu t ghép n i máy tính
ậ
ườ
Bài m đ u ở ầ Ch ng 1Đ i c ươ ề ỹ 1.1Yêu c u trao đ i tin c a máy vi tính đ i v i môi tr ủ ầ
ố ố ớ i đi u hành ề
ụ
ớ ớ
3 ạ ươ ổ 1.1.1.Yêu c u trao đ i tin v i ng 1.1.2.Yêu c u trao đ i tin v i thi 1.1.3.Yêu c u trao đ i tin trong m ng máy tính
ổ ổ ổ
ầ ầ ầ
ườ t b ngoài thông d ng ế ị ạ
t b ngoài (TBN)
1.2D ng và các lo i tin trao đ i gi a máy vi tính và thi
ổ
ạ
ữ
ế ị
1.3Vai trò nhi m v và ch c năng c a kh i ghép n i (KGN)
ố
ố
ủ
ứ
ố
ế
ng đi u khi n s
ệ
ể ố
ổ
ể
ệ ố
ố
ủ
1.4C u trúc chung c a m t kh i ghép n i ủ ấ ố ộ ng trình ph c v trao đ i tin cho kh i ghép n i 1.5Ch ổ ố ụ ụ ươ ng 2Giao ti p v i tín hi u t Ch ươ ệ ươ ớ 2.1Khái ni m tín hi u analog và h đo l ệ ệ 2.2Chuy n đ i tín hi u s sang t ng t ươ ộ
ọ ề
2.3Chuy n đ i tín hi u t
ể
ổ
ố
- s ADCs: ự ố ộ ủ
ủ ụ
ế ộ ổ
ắ
ộ
ở ộ
ắ ể ỉ
4.5.1.M t s đ c đi m c a Card ISA 4.5.2.Gi ố
ố
4 ...................................................... 4 .............................................. ng bên ngoài 4 ............................................................................... 4 ................................................................. 4 ............................................................................... 4 ......................................... ạ 1.2.1.D ng tin (s ) 4 ............................................................................................................................. ố ạ 1.2.2.Các lo i tinạ 5 ................................................................................................................................ 5 ............................................................ ệ ụ 1.3.1.Vai trò 5 ........................................................................................................................................ 1.3.2.Nhi m vệ 5 .................................................................................................................................. ụ 6 ................................................................................................................................. 1.3.3.Ch c năng ứ 7 ........................................................................................... 8 .................................................................... ố 9 ........................................................................ ng t ự 9 ............................................................. ề ườ DACs 9 ................................................................................. ự 2.2.1.Các tham s chính c a m t DAC 10 ..................................................................... 11 ........................................................................ 2.2.2.DAC chia đi n tr (Resistive Divider DACs) ệ ở 2.2.3.DAC tr ng s nh phân (Binary Weighted DACs) 11 ................................................................. ị ố 12 ....................................................................... 2.2.4.DAC đi u bi n đ r ng xung (PWM DACs) ế ộ ộ 12 ................................................................................... ng t ệ ươ 13 ........................................................................................... 2.3.1.Các tham s chính c a m t ADC ủ 14 ............................................................... Ch ng 3Th t c trao đ i tin c a máy vi tính ổ ươ 3.1Các ch đ trao đ i tin c a máy vi tính 14 ......................................................................................... ủ ổ 3.2Trao đ i tin ng t vi x lý 15 ............................................................................................................... ử 15 .......................................................................................... 3.2.1.Các lo i ng t c a máy vi tính PC ắ ủ ạ 3.2.2.X lý ng t c ng trong IBM - PC: 18 .......................................................................................... ắ ứ ử 3.2.3.L p trình x lý ng t c ng: 21 ..................................................................................................... ử ắ ứ ậ 24 ...................................................................................................... 3.3Trao đ i tin tr c ti p kh i nh ớ ự ế ố ổ 24 ................................................................................................................. 3.3.1.C ch ho t đ ng: ạ ộ ơ ế 3.3.2.Ho t đ ng c a DMAC: 24 .......................................................................................................... ủ ạ ộ 3.3.3.Chip đi u khi n truy nh p b nh tr c ti p DMAC 8237 (Direct Memory Access ớ ự ế ậ ể ề 25 Controller) ........................................................................................................................................ Ch ng 4Rãnh c m m r ng 31 ......................................................................................... ươ ắ 4.1Đ t v n đ 31 ..................................................................................................................................... ề ặ ấ 31 4.2Bus PC ............................................................................................................................................. 4.3Bus ISA (16 bit) 32 .............................................................................................................................. 4.4Bus PCI 32 ........................................................................................................................................... 33 .................................................................................................... 4.5Ghép n i qua khe c m m r ng ở ộ ố 33 ............................................................................................ ủ ộ ố ặ 33 ................................................................................. i mã đ a ch và k t n i Bus d li u ế ố ữ ệ ị ả 5.1Kh i ghép n i song song đ n gi n 35 ................................................................................................ ả ơ 36 ............................................................................... 5.2Các vi m ch đ m, ch t (74LS245, 74LS373) ệ
ạ
ố
1
ạ ạ
ệ ố
ệ
5.3Vi m ch PPI 8255A ớ
ề
ạ 5.3.1.Gi 5.3.2.Các l nh ghi và đ c các c ng và các thanh ghi đi u khi n ể ổ 5.3.3.Các t 5.3.4.Ghép n i 8255A v i MVT và TBN
5.4Ghép n i song song qua c ng máy in
ổ
ố ớ
ấ
ổ
ố ế
ổ
ổ ổ
ộ
ữ
5.2.1.Vi m ch đ m 74LS245: 36 ......................................................................................................... 36 ......................................................................................................... 5.2.2.Vi m ch ch t 74LS373: 37 ........................................................................................................................ 37 i thi u chung ..................................................................................................................... 38 .................................................. ọ ệ 38 ................................................................................................................... đi u khi n ể ừ ề 42 ........................................................................................ ớ ố 46 ............................................................................................ 5.4.1.Gh i thi u chung 46 .................................................................................................................... ệ 47 5.4.2.C u trúc c ng máy in ............................................................................................................. 5.4.3.Các thanh ghi c a c ng máy in: 49 ............................................................................................. ủ ổ 51 .................................................................................................. 5.4.4.EPP - Enhanced Parallel Port 6.1Đ t v n đ 57 ..................................................................................................................................... ặ ấ ề 6.2Yêu c u và th t c trao đ i tin n i ti p: 57 ....................................................................................... ủ ụ ầ 6.2.1.Yêu c u: ầ 57 ................................................................................................................................. 6.2.2.Trao đ i tin đ ng b : Synchronous 58 ........................................................................................ ộ ồ 58 ........................................................................ 6.2.3.Trao đ i tin không đ ng b - Asynchronous: ồ 59 .......................................................................... 6.3Truyên thông nôi tiêp s dung giao diên RS-232: ́ ử 59 .......................................................................................... 6.3.1.Qua trinh truyên môt byte d liêu: 60 6.3.2.Công nôi tiêp RS 232 .............................................................................................................. 77 Tài li u tham kh o: ......................................................................................................... ệ
ả
2
̀ ́ ̣ ̣ ́ ̀ ̀ ̣ ̣ ̉ ́ ́
Bài m đ u
ở ầ
3
Ch
ng 1: Đ i c
ng v k thu t ghép n i máy tính
ươ
ạ ươ
ề ỹ
ố
ậ
Ch
ng 1
Đ i c
ng v k thu t ghép n i máy tính
ươ
ạ ươ
ề ỹ
ố
ậ
ng bên ngoài
1.1 Yêu c u trao đ i tin c a máy vi tính đ i v i môi tr ủ
ố ớ
ổ
ầ
ườ
1.1.1. Yêu c u trao đ i tin v i ng
i đi u hành
ầ
ổ
ớ
ườ
ề
Ng i d ng ch ) và s ề ườ ầ ư ệ ướ ạ
i s d ng) máy vi tính (MVT) c n đ a l nh (d ấ ữ ữ
ố i đi u hành b m vào các phím c a bàn phím nh ng mã ữ c truy n vào b nh c a MVT và đ ng th i hi n th lên màn hình các ch ồ ề ớ ủ ườ ộ ủ ị ề ể ờ
1.1.2. Yêu c u trao đ i tin v i thi
t b ngoài thông d ng
ầ
ổ
ớ
ế ị
ụ
i đi u hành (ng ườ ử ụ li u thông qua bàn phím. Khi ng ệ c t o ra và đ đ ượ ạ ượ và con s đã b m. ấ ố
Các thi t b đ a tin vào ế ị ư
Các thi t b đ a tin ra ế ị ư
Các b nh ngoài ộ ớ
Yêu c u trao đ i tin v i thi t b ngoài khác ầ ổ ớ ế ị
ệ ệ ộ ệ
ậ ệ ấ ự ả ậ ầ ệ ế ệ
ề ạ ữ ẵ ơ
ề
ể
ầ
t đ , áp xu t, l c, dòng đi n, vv ) Trong h đo v t lý, MVT c n nh n các tin v t lý( nhi ậ ầ ộ d i d ng tín hi u đi n thông qua d u dò b phát hi n (detector ), c m bi n (sensor ), b ộ ướ ạ chuy n đ i (tranducer ). H n n a MVT còn nh n các tin v tr ng thái s n sàng hay b n c a ậ ủ ậ ể các thi Trong h đo - đi u khi n, MVT c n: ổ t b đo. ế ị ệ
Nh n tin v s li u đo, v tr ng thái thi t b đo ề ố ệ ề ạ ậ ế ị
Đ a tin v s ch p nh n trao đ i tin v i thi ổ ớ
ư ấ t b ngoài, v l nh đi u khi n các c c u ơ ấ ể ề ệ ề ế ị t b đóng ng t m ch đi n, vv ) ệ ạ ế ị ở ắ
ề ự ấ ch p hành (Các đ ng c servo, các van đóng m , các thi ộ và các thông s k thu t cho thi ố ỹ ậ ơ ậ t b . ế ị
Trong các h l u tr và bi u di n tin, MVT c n đ a tin ra đ : ể ễ ầ ư ệ ư ữ ể
, đĩa t , băng gi y và đĩa compac L u tr trên băng t ữ ư ừ ừ ấ
ể ướ ạ ả i d ng b ng s li u, d ng đ th trên gi y c a máy v hay ồ ị ấ ủ ố ệ ẽ ạ
1.1.3. Yêu c u trao đ i tin trong m ng máy tính
ạ
ầ
ổ
Bi u di n k t qu đo d ễ ế trên màn hình c a thi ả t b đ u cu i. ế ị ầ ủ ố
ộ ớ ề
t b ngoài nh : các thi ườ ử ụ ố ổ ư i s d ng m ng, v i nhi u máy ạ t b nh ngoài, các ế ị ớ ớ
M t máy tính trong m ng c n trao đ i tin v i nhi u ng ề ầ t b đ u cu i, các thi ế ị ầ ế ị t b l u tr và bi u di n tin. ạ vi tính khác, v i nhi u thi ớ thi ễ ữ ế ị ư ề ể
1.2 D ng và các lo i tin trao đ i gi a máy vi tính và thi
t b ngoài (TBN)
ổ ữ
ạ
ạ
ế ị
1.2.1. D ng tin (s ) ố ạ
4
ươ
ng v k thu t ghép n i máy tính ướ ạ
ố ứ
ỉ
i trao đ i tin v i nhi u d ng khác nhau nh d ng s , d ng ký t
, d ng t
ng t
ố ạ
ư ạ
ự ạ
ươ
ự ,
ề ỹ i d ng s v i các m c logic 0 và 1 ạ
ậ ố ớ ề
ế ị
Ch ng 1: Đ i c ạ ươ MVT ch trao đ i tin d ổ t b ngoài l Thi ớ ạ d ng âm t n hình sin tu n hoàn ầ ạ
ổ ầ
1.2.2. Các lo i tinạ
• MVT đ a ra thi t b ngoài m t trong 3 lo i tin: ư ế ị ộ ạ
Tin v đ a ch : Đó là các tin c a đ a ch TBN hay chính xác h n, là đ a ch thanh ghi ỉ ơ ị ỉ
ề ị ủ ỉ ố đ m c a kh i ghép n i đ i di n cho TBN ệ ố ạ ủ ị ệ
ể ề ể ể ố
ư i yêu c u hành đ ng, Tin v l nh đi u khi n: Đó là các tín hi u đ đi u khi n kh i ghép n i hay TBN nh ệ ộ ề t b , đ c ho c ghi m t thanh ghi, cho phép hay tr l ế ị ọ ố ả ờ ề ệ ở ầ ặ ộ
đóng m thi vv
t b ngoài ề ố ệ ố ệ ầ ư ế ị
Tin v s li u: Đó là các s li u c n đ a ra cho thi • Máy tính nh n tin vào t TBN v m t trong hai lo i tin: ề ộ ừ ạ ậ
Tin v tr ng thái c a TBN: Đó là tin v s s n sàng hay yêu c u trao đ i tin, v tr ng ề ạ ề ự ẵ ề ạ ầ ổ
ủ i c a TBN thái sai l ỗ ủ
Tin v s li u: Đó là các s li u c n đ a vào MVT ố ệ ầ ư ề ố ệ
1.3 Vai trò nhi m v và ch c năng c a kh i ghép n i (KGN)
ứ
ụ
ủ
ố
ố
ệ
1.3.1. Vai trò
Ngu n ồ phát
Ngu n ồ phát
Ngu n ồ nh nậ
Ngu n ồ nh nậ
ữ Kh i ghép n i n m gi a MVT và TBN đóng vai trò bi n đ i và trung chuy n tin gi a ố ằ ữ ế ể ố ổ
MVT
TBN
Ngu n ồ phát
Ngu n ồ phát
Ngu n ồ nh nậ
Ngu n ồ nh nậ
Ghép n i đ
ng
Ghép n i đ
ng
ố ườ
ố ườ dây MVT
dây TBN
V trí và vai trò c a kh i ghép n i ố ủ
ố
ị
1.3.2. Nhi m vệ
ụ
chúng
ng là m c TTL (0V – 5V) trong khi TBN có nhi u m c khác
ứ
ứ
ề
ng cao h n (± 15V, ± 48V)
nhau, thông th
ấ
ệ ủ ườ
5
• Ph i h p v m c và công su t tín hi u ố ợ ề ứ ệ - M c tín hi u c a MVT th ườ ứ ơ
Ch
ề ỹ
ố
ạ ươ ấ ườ
ng 1: Đ i c ươ - Công su t đ - Th ườ
ng v k thu t ghép n i máy tính ậ ng dây MVT nh , TBN l n ỏ ớ ạ
ng dùng các vi m ch 3 tr ng thái ạ
• Ph i h p v d ng tin: ố ợ ề ạ
ổ ủ ườ ng là song song, cua TBN đôi khi là n i ti p ố ế
ố ợ ề ố ộ ổ
Trao đ i tin c a MVT th • Ph i h p v t c đ trao đ i tin • Ph i h p v ph ng th c trao đ i tin ố ợ ề ươ ứ ổ
Đ đ m b o trao đ i tin m t cách tin c y gi a MVT và TBN, c n có KGN và cách trao ữ ầ ậ ả
ộ nh t đ nh. ổ đ i tin di n ra theo trình t ổ ể ả ễ ự ấ ị
• ở ướ
(1) MVT đ a l nh d kh i đ ng TBN hay kh i đ ng KGN (2) MVT đ c tr l ng ở ộ ạ ả ờ ẵ ế
ủ i tr ng thái Vi c trao đ i tin do máy tính kh i x ổ ể ở ộ i s n sàng trao đ i hay tr ng thái s n sàng c a TBN. N u có tr ng ạ ớ ệ ư ệ ọ ẵ ẵ ọ ạ ạ ổ ế ổ
ờ (3) MVT trao đ i khi đ c th y tr ng thái s n sàng thái s n sàng m i trao đ i tin, n u không, ch và đ c l ạ ẵ ấ ổ ọ
Vi c trao đ i tin do TBN kh i x ng: ổ ệ
, MVT có th kh i đ ng TBN ở ướ ẵ ở ộ ể ờ
• (1) Đ gi m th i gian ch đ i tr ng thái s n sàng c a TBN ờ ợ ạ ụ ủ ễ ệ ệ ệ
ể ả r i th c hi n nhi m v khác. Vi c trao đ i tin di n ra khi: ự ồ ắ ủ ổ ắ (2) TBN đ a yêu c u trao đ i tin vào b ph n x lý ng t c a KGN, đ đ a yêu c u ng t ậ ể ư ư ử ầ ầ ổ ộ
ồ (3) N u có nhi u TBN đ a yêu c u đ ng th i, KGN s p x p theo u tiên đ nh s n, r i ờ ư ề ế ắ ẵ ồ ị ng trình cho MVT ư ầ
ầ ổ
ch ươ ế đ a yêu c u trao đ i tin cho MVT ư ầ ậ ẵ ư ệ
ậ ậ ạ ệ ổ ậ
ế ư
ứ
•
ậ
Ch c năng nh n tín hi u ( listener) ỉ ừ
TBN
ị ạ
ệ MVT ừ MVT
ể ừ
MVT
1.3.3. Ch c năng ứ - Nh n thông báo đ a ch t ậ - Nh n thông báo tr ng thái t ậ - Nh n l nh đi u khi n t ề ậ ệ - Nh n s li u t ậ ố ệ ừ
•
ệ
ứ ỉ
ủ
ị ệ
ủ
ạ
- - - -
Ch c năng ngu n tín hi u (talker) ồ Phát đ a ch cho kh i ch c năng c a TBn ứ ố Phát l nh cho TBN Phát yêu c u hay tr ng thái c a TBN cho MVT Phát s li u cho TBN hay cho MVT
•
ầ ố ệ ứ
ề
ể
Nói chung KGN th
ng có đông th i hai ch c năng trên, đ c bi
Ch c năng đi u khi n (Controler) ứ
ườ
ặ
ờ
ệ
t khi ghép n i v i nhi u TBN ố ớ
ề
6
(4) MVT nh n yêu c u , s a so n trao đ i và đ a tín hi u xác nh n s n sàng trao đ i ổ ử (5) KGN nh n và truy n tín hi u xác nh n cho TBN (6) TBN trao đ i tin v i KGN và KGN trao đ i tin v i MVT (n u đ a tin vào) ớ (7) MVT trao đ i tin v i TBN qua KGN (n u đ a tin ra) ổ ế ư ề ớ ớ ổ ổ
Ch
ng 1: Đ i c
ng v k thu t ghép n i máy tính
ươ
ạ ươ
ề ỹ
ố
ậ
ố
ủ
ớ
ườ
C u trúc chung c a m t h ghép n i máy tính ấ ộ ệ C u trúc đ ủ ấ B t c KGN nào cũng n i v i MVT và TBN theo các nhóm sau ấ ứ ỉ c gi
ể ọ
ườ ệ
ạ ớ
ầ
ỉ
ị
ng dây l nh
ườ
ng dây vi
ế ể
ế
ọ
ng dây c a KGN v i MVT ố ớ ng dây đ a ch A ị ả ượ ệ ệ ườ ạ ổ ứ
t cho KGN. ả
ề ệ ộ
ọ ộ
ữ
ả ự ạ ộ ch c ph i h hành đ ng gi a MVT và KGN, đ m b o s ho t đ ng
Nhóm đ 0 - An - Các tín hi u này đ i mã trong các KGN đ ch n các TBN c n liên l c v i MVT - T p h p các tín hi u này t o thành bus đ a ch (address bus) ạ ợ ậ Nhóm đ - Đ ng dây đ c, đ ườ - Đ ng dây h i tho i t ườ ữ ị
ỏ
ừ
ầ
ắ
ấ
ậ
ấ MVT ra KGN) : yêu c u ng t INTR và ch p ầ
ệ
ể ờ
t đ truy n l nh đ c (RD) hay vi ố ợ nh p nhàng, tin c y gi a chúng nh : ư ậ H i - tr l i ả ờ Yêu c u (t KGN vào MVT) và ch p nh n (t ừ nh n ng t INTA ắ ậ - Đ ng dây l nh đi u khi n KGN hay TBN ề ườ Nhóm đ ng dây nh p th i gian ị Nhóm đ ng dây đi n áp ngu n ồ ệ
ườ ườ
1.4 C u trúc chung c a m t kh i ghép n i ố ủ
ộ
ố
ấ
- A A n 0
i mã Gi ả đ a ch - ỉ ị l nhệ
L nh ệ đ cọL nhệ tế vi Các l nh ệ ch n chíp ọ
W R W R
P h ố
i
P h ố
Yêu c u (INTR)
ầ
X lý ng t ắ
ử
h ợ p
Đ ư ờ n g
Xác nh n (INTA) ậ
Đ ư ờ n g
L nh đ c ọ
ệ
Yêu c u Aầ
d â y
đ ư ờ n g
d â y m á y
Yêu c u Bầ
Thanh ghi tr ng thái
ạ
t h i ế
d â y
t
đi u khi n A
ề
ể
b ị
t h i ế
L nh ệ tế vi
đi u khi n B
ề
ể
c m ấ ng tắ
t
Thanh ghi đi u khi n ể
ề
b ị
n g o à i
- DO DO n 0
i h ợ p đ ư ờ n g d â y m á y t í n h
- DO DO n 0
t í n h ( S y s t e m b u s )
n g o à i
Thanh ghi đ m vi t ệ
ế
L nh vi
ệ
t ế
DI
- DI n 0
- DI DI n 0
Thanh ghi đ m đ c ọ ệ
L nh đ c ọ
ệ
S đ kh i kh i ghép n i ố
ơ ồ ố
ố
ố ợ ườ
ng dùng vi m ch chuy n m c, vi
ứ
ệ
ớ
ườ
ứ
ể
ạ
Kh i ph i h p đ ố - ố ợ ạ
ng dây MVT Ph i h p m c và công su t tín hi u v i bus MVT. Th ấ m ch công su t ấ
7
ng v k thu t ghép n i máy tính
Ch
ề ỹ
ậ
ạ ươ
ố ổ
ng dây khi không có trao đ i tin i mã đ a ch - l nh: Nh n các tín hi u t
ậ
ị
ỉ
ọ ỉ ệ h p thành các tín hi u đ c, ghi và ch n chíp cho t ng thi
ị ể ổ ợ
ố ị bus đ a ch , các tín hi u đ c, ghi, ch t đ a ệ t b c a KGN ừ
ệ ừ ọ
ế ị ủ
ệ
ọ
ng 1: Đ i c ươ - Cô l p đ ậ ườ Kh i gi ả ố ch (ALE), … đ t ỉ và TBN.
ể
ế ộ
ổ
ầ
ố ệ ố ệ
ử
ư
ư
ầ
ầ
ổ
ố
Các thanh ghi đ mệ - Thanh ghi đi u khi n ch đ ề - Thanh ghi tr ng thái hay yêu c u trao đ i cuatr TBN ạ - Thanh ghi đ m s li u ghi ệ - Thanh ghi đ m s li u đ c ọ ệ Kh i x lý ng t ắ ố ử - Ghi nh n, che ch n yêu c u trao đ i tin c a TBN. X lý u tiên và đ a yêu c u vào MVT ủ ậ Kh i phát nh p th i gian -
ố bên trong KGN hay cho TBN. Đôi khi đ đ ng b , kh i
ể ồ
ị ờ
ở
ộ
bus máy tính
ộ ồ
ừ
ồ
ắ ờ Phát nh p th i gian cho hành đ ng còn nh n tín hi u nh p đ ng h (clock) t ị ệ t b ngoài ế ị ệ
ế
ấ
ị ậ Kh i đ m thi ố ệ - Bi n đ i m c tín hi u, công su t và bi n đ i d ng tin ổ ạ ổ ế ứ Kh i đi u khi n : Đi u khi n ho t đ ng c a kh i nh phát nh p th i gian, ch đ ho t đ ng ư ủ ề ố
ạ ộ
ạ ộ
ế ộ
ể
ề
ể
ố
ờ
ị
1.5 Ch
ươ
ng trình ph c v trao đ i tin cho kh i ghép n i ố ổ
ụ ụ
ố
ng vi ỗ ố ầ ươ ố ổ ườ ế ằ t b ng
Assembly) và khi s d ng, ng M i kh i ghép n i c n có m t ch ử ụ ng trình ph c v trao đ i tin ( thông th ộ i dùng c n viêt ch ầ ườ ng trình ng d ng. ứ ụ ụ ươ ụ
ng trình ph c v trao đ i tin, c n có các thao tác sau: V i ch ớ ươ ụ ụ ầ ổ
Kh i đ ng KGN ở ộ
Ghi che ch n và cho phép ng t ắ ắ
Đ c tr ng thái TBN ạ ọ
Ghi s li u ra ố ệ
8
Đ c tin s li u ố ệ ọ
Ch
ng t
ươ
ng 2: Giao ti p tín hi u t ế
ệ ươ
ự
Ch
ng 2
Giao ti p v i tín hi u t
ng t
ươ
ế ớ
ệ ươ
ự
2.1 Khái ni m tín hi u analog và h đo l
ng đi u khi n s
ệ
ệ
ệ
ườ
ể ố
ề
ố ử ươ
ậ ợ ề i. Tuy nhiên h u h t các tín hi u trong th gi ế ớ ệ ầ
ử ố
ng t ươ ự
ệ ng pháp s trong x lý thông tin và đi u khi n đang ngày càng hi u d ng ệ ở ạ ươ ng ượ c t b ADC (Analog to Digital Converter) c th c hi n b ng các thi ng đ ể i là tín hi u i th c l ự ạ b ng ph (analog). Do đó b t kỳ h th ng nào mu n x lý các tín hi u th c t ệ ự ế ằ thành d ng s và ng ố ạ ổ ằ ế ệ ố ể ệ ấ ả ượ ế ị ự
Vi c s d ng ph ệ ử ụ qu và thu n l ả ng t t ự ươ pháp s thì nó ph i có kh năng chuy n đ i các thông tin t ả ố l i. Thao tác đó th ườ ạ và DAC (Digital to Analog Converter).
ng t b ng ph ng pháp s Hình 2.1: Mô hình h th ng x lý tín hi u t ệ ố ệ ươ ử ự ằ ươ ố
ươ ố
ng t ươ ằ ộ
ể
H th ng x lý tín hi u t ử s đ ự ẽ ượ ử ng t ộ ệ ng pháp s nh các b vi x ờ ố ệ ố ờ ộ c chuy n ng ể
ẽ ượ (DAC). ng t ng pháp s nói chung là m t h lai, trong đó b ng ph ng t ự ằ ệ ươ ệ ố ử c truy n, l u tr , hay x lý b ng ph s li u t ử ữ ư ề ố ệ ươ c chuy n thành tín hi u s nh b chuy n ph i đ lý s . TR c khi s lý, tín hi u t ể ng t ự ả ượ ệ ươ ướ ố đ i tín hi u t ượ ạ i c l sang s (ADC). K t qu c a phép x lý s đ ả ủ ệ ươ ế ố ổ thành d ng t ệ ố ươ ạ ự nh b chuy n đ i tín hi u s thành t ổ ử ng t ươ ự ờ ộ ự ể
2.2 Chuy n đ i tín hi u s sang t
ng t
DACs
ể ổ
ệ ố
ươ
ự
ươ
ặ
ể DAC ng t ự i mã. Nó gi i mã tín ả ự ở ầ đ u ng t ệ ươ
ủ
ư
ể
ạ
Hình 2.2: B ng giá tr chân lý c a m t DAC ị
ủ
ả
ộ
9
M t b chuy n đ i tín hi u s thành t ệ ố ể ộ ộ ổ là m t d ng đ c bi t c a m t b gi ộ ộ ả ệ ủ ộ ạ hi u s đ u vào và chuy n thành tín hi u t ệ ố ầ ra. B ng chân lý c a nó có th có d ng nh sau: ả
ố
ộ
Gi
i thích
2.2.1. Các tham s chính c a m t DAC ủ Tham số Đ n vơ ị
ố
ị ệ
ử
ộ
ả i
ề
ể
ạ
ị
Bit
Đ phân gi (revolution)
ộ
ố
ả Đây là s bit mà DAC x lý. N u DAC có n bit thì giá tr đi n áp ế ỗ đ u ra có th phân thành n tr ng thái có giá tr cách đ u nhau. M i ầ ng ng v i m t mã s đ u vào. S bit n càng cao thì giá tr t ố ầ ị ươ ứ DAC có đ phân gi ộ
i càng l n ớ
ớ ả
ứ
ệ
ấ
ỏ
ể ượ ử ụ c s d ng
V
i đi n áp tham Gi ệ ả chi u (Vref) FSR ế
Ch ra m c đi n áp l n nh t và nh nh t có th đ ấ ớ bên ngoài nh đi n áp tham chi u t ế ừ
ỉ ư ệ
ng t
ữ
ươ
ệ
ự ế ớ ầ
ự
ộ ệ ự ở ầ ng 0V khi đ u mã bù hai vào là 0 đ
mV
ầ
đ u ra th c t ượ ư
v i đ u ra lý ầ c đ a vào thanh ghi đ u
Sai s phân c c đi m ể ố không
Là đ l ch gi a đi n áp t t ưở vào
ộ
ệ
ổ
ộ
ng trong tr
ổ
ự ế ớ ộ v i đ ổ ng h p đ u vào s thay đ i
ữ ộ ưở
ườ
ị ệ ợ ầ ị ố ề
ự
ữ
ộ
LSB hay %Vref
Đ phi tuy n vi phân ế (Non-Linearity, Differential - DNL)
Là đ chênh l ch gi a đ thay đ i giá tr đi p áp ra th c t thay đ i đi n áp ra lý t ố ệ m t bit LSB , hay d thay đ i gi a hai giá tr s k nhau ổ VD: +/- 1 LSB; +/- 0.001% FSR
ộ
ấ
ố ớ
ữ ầ
ể
ẳ
ố
ể
ớ ườ ấ ủ
ữ ạ ừ
ị ớ
ố
LSB
ể
ố
Là sai s l n nh t gi a đ u ra v i đ ng th ng n i gi a đi m 0 và đi m toàn thang (giá tr l n nh t c a thang đo) ngo i tr sai s đi m không và sai s toàn thang VD: +/-1 LSB typ.; +/- 4 LSB's max.
i đ u ra t
ự
ng t
l n nh t và nh nh t mà
ộ
ữ
ị ươ
ự ớ
ấ
ấ
ỏ
ả ầ ả
ụ ể
ấ
V
Là đ chênh l ch gi a giá tr t ệ DAC c th đó cung c p VD: -3V to +3V, Bipolar Mode
ỏ
ệ
ệ ố ầ
ấ ủ
ả
ả ượ c
ậ
V
Là đi n áp nh nh t c a tín hi u s đ u vào DAC đ m b o đ nh n là m c logic “1” ứ VD: 2.4 V min.
Đ phi tuy n tích phân ế (Non-Linearity, Integral - INL) hay độ chính xác t ố ng đ i ươ (Relative Accuracy) ng t Gi ươ hay gi i toàn thang Analog Output Range or Full-Scale Range M c đi n áp logic cao ệ ứ đ u vào ầ Logic Input Voltage, Vih (Logic "1")
ớ
ấ ủ
ệ ố ầ
ượ
ậ c nh n
ệ ứ
V
Logic Input Voltage, Vil (Logic "0")
Là đi n áp l n nh t c a tín hi u s đ u vào DAC mà đ là m c logic “0" VD: : 0.8 V max
ng cho
ệ
ể
ể
ồ
ấ ươ
ệ
V
Là d i đi n áp có th dùng đ làm ngu n cung c p d ả DAC VD: +4.75V min.; +5.0V typ.; +13.2V max.
ệ
ả
ệ
ể ử ụ
ấ
V
Là d i đi n áp có th s d ng làm ngu n cung c p âm cho DAC ồ VD: -13.2V min.; -5V typ.; -4.75V max.
ứ
ng c a DAC:
ả
ệ
ứ
ươ
ủ
V
Là d i đi n áp có th s d ng cho m c logic d ể ử ụ VD: +4.75V min.; +5.0V typ.; +13.2V max.
ệ
ng c a DAC
ả
ệ
ươ
ủ
V
Là d i đi n áp có th s d ng cho m c logic d ứ ể ử ụ VD: -13.2V min.; -5V typ.; -4.75V max.
Đi n áp ngu n d ồ ươ ng Analog Positive Power Supply (+Vs) Đi n áp ngu n âm ồ Analog Negative Power Supply (-Vs) Đi n áp m c logic ệ d ngươ Logic Positive Power Supply (+VL) Đi n áp m c logic âm ứ Logic Negative Power Supply (-VL)
10
ng t
ươ
ng 2: Giao ti p tín hi u t ế
ự
Ch 2.2.2. DAC chia đi n tr (Resistive Divider DACs)
ệ ươ ở
ệ
là ki u DAC đ n gi n nh t. DAC ki u này s ệ ể ả ấ
DAC theo ph ỗ ng pháp chia đi n tr có l ươ ệ ở ắ ố ế ị ệ
ệ ố đ u vào xác đ nh tín hi u đi n áp nào đ ơ ộ ậ ệ ể ể ạ ị ở ớ ầ ộ ữ ệ
ử ẽ d ng m t chu i đi n tr m c n i ti p v i nhau đ t o ra m t t p các giá tr đi n áp cách đ u ề ụ nhau gi a +Vref và –Vref. ượ ố ớ ộ c n i v i b khu ch đ i thông qua các các b chuy n m ch. Tín hi u s ể ộ ế ạ ạ
ặ ả ớ
ư đ phân gi ả
M c dù ph ươ ộ ở ở
ng pháp chia đi n tr có th d hi u, nh ng nó tr nên kém hi u qu v i các ở ệ ệ ể ễ ể ở ấ i c a DAC đòi h i tăng g p i cao. M i bit thêm vào cho b DAC có đ phân gi ỏ ả ủ ộ ỗ ộ i 4095 đi n tr và 4096 đôi s đi n tr và công t c. Ví d nh v i DAC 12 bit thì ph i c n t ệ ả ầ ớ ụ ư ớ ắ ố ệ công t c.ắ
2.2.3. DAC tr ng s nh phân (Binary Weighted DACs)
ọ
ố
ị
Hình 2.3: DAC chia đi n trệ ở
i 6 hay 7 bit, ki n trúc thang đi n tr th ộ ả ủ ạ ớ ở ườ ế ệ ộ ng cho m t
ph Khi đ phân gi ươ ng pháp hi u qu h n ệ i c a DAC đ t t ả ơ
Ph ng i ích chính là chúng ti t ki m di n tích vi m ch. Ch ng h n nh ươ ệ ế ạ ẳ ư
ạ m t DAC 9 bit ch c n 1 đi n tr và 1 công t c thêm vào so v i DAC 8 bit pháp này cho ta l ợ ệ ỉ ầ ệ ớ ắ ở ộ
11
Hình 2.4: DAC tr ng s nh phân ọ ố ị
2.2.4. DAC đi u bi n đ r ng xung (PWM DACs) ộ ộ
ế
ề
Ph ộ ộ ế
ng pháp DAC đi u bi n đ r ng xung (Pulse width modulation – PWM) là ph ng pháp s , s d ng r t ít m ch t ươ ấ ơ ố ử ụ ử ụ ươ ư ấ ạ ầ ả ng ươ ươ ng
ề pháp r t đ n gi n và h u nh hoàn toàn s d ng ph tự
PWM đi u ch nh đi n áp đ u ra s d ng chu i xung t n s cao v i đ r ng xung có th ớ ộ ộ ầ ố ỗ ỉ ể ầ
ử ụ c đ thay đ i công su t đ u ra thay đ i đ ề ổ ượ ể ấ ầ ệ ổ
l n thì đi n áp đ u ra càng g n v i đi n áp t i đa (VOH) c a DAC, và ớ ệ ầ ố ủ
i thi u (VOL) i đ dài xung ng n nh t t ng Đ dài xung càng ộ c l ượ ạ ộ ệ ấ ươ ứ ớ ng ng v i đi n áp t ớ ầ ệ ể ắ ố
c đ a qua m t b loc thông th p đ t o tín hi u analog Tín hi u đ u ra s đ ầ ẽ ượ ư ộ ộ ể ạ ệ ệ ấ
Hình 2.5: DAC đi u bi n đ r ng xung ế ộ ộ ề
ạ i cao, b i vì đ có đ phân gi ể ượ ả ở ộ
DAC d ng PWM cũng khó thu đ ề ề ả ỗ ỉ
i ả ầ cao, DAC ph i đi u ch nh chu i xung theo các kho ng th i gian r t nh . Đi u đó yêu c u ph i có m t xung clock (master clock) v i t n c DAC v i đ phân gi ớ ộ ờ ả ể ề ớ ầ s r t cao đ đi u khi n đ r ng xung ỏ ộ ộ ố ấ ấ ể ả ộ
ộ ầ ụ ớ
ờ ấ ả ư
ệ ả ấ Ví d v i DAC 16 bit, c n có đ phân gi ả ộ ọ ườ ằ ể ạ ầ ng t ấ ủ
ng t ề ầ ộ ộ ấ ứ ụ
ộ ộ ạ ầ ố
c v i công ngh hi n nay i theo th i gian b ng 1/65536 l n chu kỳ chu i ỗ ầ ự ầ ố , t n s xung. Vì xung tín hi u còn ph i đ a qua b l c thông th p đ t o ra tín hi u t ệ ươ ệ xung đòi h i ph i g p nhi u l n ( thông th ng là g p 100 l n) t n s cao nh t c a tín hi u ầ ố ỏ đ u ra. Do đó m t b DAC 16 bit cho các ng d ng x lý âm thanh có băng thông t ử ự ầ ươ 20kHz c n có m t b t o xung clock có t n s là 65536 x 100 x 20000 = 131 GHz. Rõ ràng ầ r ng t n s này là không th đ t đ ầ ố ằ ể ạ ượ ớ ệ ệ
ng t
- s ADCs:
2.3 Chuy n đ i tín hi u t ể ổ
ệ ươ
ự ố
Gi ng t ộ ử ể ử ự ằ
sang s (analog-to-digital converter - ADC). Hình d ng t
12
vào đ x lý b ng các b x lý s là ng dùng đ đ a tín hi u t i pháp th ố ể ư ệ ươ ườ ả ướ dùng b chuy n đ i tín hi u t i ệ ươ ổ ố ể ộ là m t ví d cho m t b ADC đ n gi n. Đ u vào cho b này là hai tín hi u: m t tín hi u tham ơ ộ ộ ự ả ụ ệ ệ ầ ộ ộ ộ
ng t
ươ ế
ng 2: Giao ti p tín hi u t ệ ươ ế ệ ầ
ộ ầ
ự ể
ễ ể ổ ộ ừ mã d ng s ạ ố
Ch chi u (reference) và tín hi u c n chuy n đ i. Nó có m t đ u ra bi u di n m t t 8 bit. T mã này vi x lý có th đ c và hi u đ
2.3.1. Các tham s chính c a m t ADC
ủ
ố
ộ
c ể ượ ể ọ ừ ử
Gi Tham số Đ n vơ ị ả
i thích ộ ộ ế ả ủ i ộ ả ố ố ạ Bits Đ phân gi Resolution
n , i c a nó là 2 N u m t ADC có n bit, thì đ phân gi có nghĩa là s tr ng thái hay s mã có th s d ng đ ể ể ử ụ ả i chia đ u vào analog. S bit càng cao thì đ phân gi ộ ố c nhi u tr ng thái càng l n và càng phân bi ạ
ầ ớ ề
ỗ ố ng đ ệ ố ế ị ừ ượ ọ ớ ộ ệ
Sai s tuy n tính vi ế phân Non-Linearity, Differential (DNL) Bits (with no missing codes) t đ ệ ượ V i m i ADC, tín hi u s bi n đ i theo t ng bit LSB. ổ ộ c g i là đ Đ chênh l ch gi a các giá tr lý t ưở ữ phi tuy n vi phân . ế Example of an Actual Spec: 10 Bits min
ộ ố ể ộ ườ ố ớ ố ừ i đi m toàn thang. Sai s l n nh t c a m t ộ c g i là đ sai s tích ộ ượ ọ ng th ng n i t ẳ ấ ủ ố ẳ LSB
Sai s tuy n tính tích ế phân Non-Linearity, Integral (INL) Hàm truy n c a m t ADC là m t đ ề ủ đi m “0” t ớ ể ng th ng này đ mã s v i đ ố ớ ườ phân c a ADC ủ Example of an Actual Spec: +/- 2 LSB's max
ng t ị ươ ự ớ l n nh t và nh ấ ỏ ộ ấ ứ ữ ụ ể V
Là đ chênh l ch gi a giá tr t ệ nh t ng v i ADC c th ớ VD:0V to +10 V, Unipolar Mode; -5V to +5V, Bipolar Mode
ờ ầ ế ể ộ ầ t đ ADC hoàn thành m t l n
µsec ng D i đi n áp t ươ ả ệ ả đ u vào hay d i t ự ầ toàn thang (Analog Input Range or Full-Scale Range) Th i gian chuy n ể ờ đ iổ (Conversion Time) Th i gian c n thi chuy n đ i ổ ể VD: 15 µsec min.; 25 µsec typ.; 40 µsec max.
ng cho ệ ể ử ụ ồ ươ ồ V Ngu n nuôi d ươ ng (+ Power Supply - V+) D i đi n áp có th s d ng làm ngu n nuôi d ả ADC VD: +4.5V min.; +5.0V typ.; +7.0V max.
13
ệ ể ử ụ ồ ồ V Ngu n nuôi âm - Power Supply (V-) D i đi n áp có th s d ng làm ngu n nuôi âm cho ả ADC VD: -12.0V min.; -15V typ.; -16.5V max.
Ch
ng 3
Th t c trao đ i tin c a máy vi tính
ươ
ủ ụ
ủ
ổ
3.1 Các ch đ trao đ i tin c a máy vi tính
ế ộ
ủ
ổ
ổ ế ị ủ ớ
S trao đ i tin đ
ế ộ ươ ể
ổ ượ
ạ ệ
ề
ổ
Ch đ trao đ i tin c a MVT v i thi Trao đ i tin theo ch đ ch t b ngoài ng trình c VXL đi u khi n theo m t trong hai lo i l nh sau ộ ế ộ • ự
Các l nh vào (IN) hay ra (OUT). ệ
Các l nh chuy n(MOV) gi a thanh ghi A và thanh ghi đ m s li u c a KGN có đ a ch ố ệ ủ ữ ể ệ ị ỉ
•
Trao đ i tin tr c ti p kh i nh
ớ ị
ự ế
ố
ớ
ệ nh xác đ nh. ổ
Sau khi VXL đ ở ộ ự ể ề
tr ng thái đi n tr ượ ủ c kh i đ ng, s trao đ i tin hoàn toàn do KGN đi u khi n thay cho VXL ề cao (VXL b cô l p). Lúc này, KGN đi u ổ ệ ậ ị
và các c a vào ra c a VXL ở ạ khi n m i ho t đ ng c a kh i nh M và KGN, c th là: ớ ố ở ụ ể ạ ộ ử ọ ủ ể
Phát đ a ch cho kh i nh ho c TBN. ặ ố ớ ị ỉ
Phát l nh đ c (RD) hay ghi (WR) s li u. ố ệ ệ ọ
Các s li u đ c, ghi đ c trao đ i gi a kh i nh M va TBN thông qua các thanh ghi ượ ữ ổ ố ớ
ng trình, có th trao đ i tin theo m t trong ba ph
ng pháp sau:
ế ộ ươ ươ
ng trình ể
ổ
ộ
ươ
ỏ ạ
ng trình
1.
Th t c trao đ i tin trong ch đ ch ủ ụ ổ ch đ trao đ i tin theo ch ổ Ở ế ộ - Trao đ i đ ng b ổ ồ - Trao đ i không đ ng b hay h i tr ng thái (Polling) ổ ộ - Trao đ i theo ng t ch ươ ổ Trao đ i đ ng b ổ ồ
ộ ồ ắ ộ
ầ
ớ
Ch
ng trình
ươ
ở ộ ổ
ệ
ổ
ng pháp trao đ i tin này ch
ề ố ệ
ươ
ổ
c th c hi n khi:
ẵ i TBN có s n Sau khi kh i đ ng TBN, MVT không c n quan tâm t sàng trao đ i tin hay không mà đ a luôn các l nh trao đ i tin ( đ c ọ ư vào, ghi ra hay truy n s li u ). Ph ỉ đ ượ
ự
ổ
ệ ẵ
- TBN luôn s n sàng trao đ i tin. - T c đ trao đ i tin c a MVT và TBN luôn phù h p nhau ho c TBN ổ
ủ
ặ
ợ
Trao đ i ổ tin
trao đ i tin nhanh.
ố ộ ổ
Ch
ng trình
ươ
Đánh giá: - - Nh
ể
ố ậ
ờ ị ấ
ể c đi m: Thi u tin c y, b m t tin vì có th có
ổ
ỏ ạ
ổ
2. Trình t
u đi m: Nhanh, không t n th i gian ch đ i ờ ợ Ư ể ượ s c làm TBN ch a s n sàng trao đ i. ự ố Trao đ i không đ ng b hay h i tr ng thái (Polling) ự
ổ
ế ư ẵ ộ ồ ư ể
trao đ i di n ra nh sau: ễ - MVT đ a tin đi u khi n TBN. ề - MVT ch và ki m tra tr ng thái s n sàng trao đ i tin ạ ể
ư ờ
ẵ
ổ
S
TBN đã s n sàng ? ẵ
ằ
c a TBN b ng cách: ủ ề ạ ọ
ủ
ẵ
o Đ c tin v tr ng thái s n sàng c a TBN.
Đ
Trao đ i tinổ
14
ố ệ ọ đ m c a KGN. ủ ệ
Ch
ươ
ủ ụ
ng 3: Th t c trao đ i tin c a máy vi tính ổ
i đ c và ki m tra tr ng thái s n sàng.
ư
ế
ạ ọ
ể
ẵ
ạ
ủ o Ki m tra tr ng thái s n sàng. N u ch a, MVT l ẵ
ạ ớ
ng pháp trao đ i này th c hi n khi t c đ trao đ i tin c a TBN ch m so v i MVT
ể - MVT trao đ i tin v i TBN. ổ Ph ự
ươ
ổ
ố ộ
ủ
ệ
ậ
ổ
ớ
t ch c TBN đã s n sàng.
ế
ẵ
ắ c đi m: T n th i gian s d ng MVT.
ỉ ờ t b đo l ế ị
u đi m: Tin c y, ch trao đ i khi bi ậ Ư ể ượ ố ể s có m t thi ả ử
ố ớ
ườ
ộ
ổ ử ụ ng đ ượ ệ ố ể ư
ể
ể
ộ
ộ
ế ạ
c ghép n i v i máy tính. Nó có nhiêm v thu nhi ế ị ữ ệ ẵ ề
t đ t ệ ộ ừ ụ ạ t b này có m t thanh ghi tr ng ể ng trình đi u khi n s có nhi m v ể ẽ
ạ ộ ủ ẽ ượ ặ
ể ọ
ệ
ụ
t tr ng thái ho t đ ng c a nó, khi nào d li u s n sàng đ máy tính có ươ ng trình nh sau:
t b này. Ta có đo n ch
thi
c đ t lên 1. Ch ươ ạ
ế ị
ư
Đánh giá: - - Nh Ví d : Gi ụ m t đi m đo và chuy n thành tín hi u s đ đ a vào máy tính. Thi thái StatusReg 8 bit cho bi th đ c vào thì bit S5 c a thanh ghi này s đ ủ liên t c đ c d li u nhi t đ t ệ ộ ừ ụ ọ ữ ệ Begin
While ((StatusReg and 20H) = 20H) do Begin
Đ c d li u và th c hi n các tác v liên quan ệ
ọ ữ ệ
ự
ụ
End;
End.
3.2 Trao đ i tin ng t vi x lý
ử
ổ
ắ
Ch
ng trình
ươ
c đi m c a các ượ ụ ắ ủ ể
ph Ph ươ
ng trình nào ng pháp trao đ i tin này kh c ph c nh ươ ổ ng pháp trên. Trình t nh sau: ự ư (1) MVT đang th c hi n chu i l nh c a m t ch ệ ỗ ệ ư ủ ộ ươ
p h ụ c
đó.
C h ư ơ n g
Ng tắ
ổ (2) TBN có yêu c u trao đ i tin, s g i tín hi u yêu c u trao đ i ẽ ử ệ ầ ầ
t r ì n h
ắ
v ụ n g ắ
t
c o n
ổ tin ( yêu c u ng t INTR) ầ ụ ể ậ (3) MVT (c th là VXL ) đ a tín hi u ch p nh n (xác nh n ư ệ ấ ậ
ng t INTA)
ắ (4) Ch ươ ể ắ
ng trình ng trình con trao đ i tin cho ị ắ ứ ươ ổ ươ ụ
ng trình chính b ng t, MVT chuy n sang ch con ph c v ng t t c là ch ụ TBN đã yêu c u.ầ
3.2.1. Các lo i ng t c a máy vi tính PC ắ ủ
ạ
(5) Ch ng trình chính lai ti p t c th c hi n ch b ng t. ươ ế ụ ệ ở ỗ ị ắ ự
Ng
ắ
i ta chia ng t thành hai lo i: ng t c ng và ng t m m ạ
ắ ứ
ề
ắ
ạ
ắ ứ : còn g i là ng t ngoài vì do nguyên nhân bên ngoài. VXL có các l ọ i vào này, ch Ng t c ng ắ ắ ệ ố ươ ố i ệ ng trình VXL đang th c hi n ự • Các lo i ng t ắ ườ • vào dành cho ng t ngoài. Khi có tín hi u vào l s b d ng. ẽ ị ừ
c ắ
ượ : Khi có ng t này, VXL ị ắ ệ ỉ ệ ự ệ ỉ
ữ ề ị
15
Ng t NMI ( Non maskable Interrupt) - Ng t không che đ ắ d ng ch ng trình sau l nh đang th c hi n, thanh ghi đ a ch l nh (IP) và thanh ghi ch ươ ừ c l u gi th flag đ ượ ư ị ả ng t ngoài ti p theo và không có b y. Mu n cho phép hay không cho phép ng t này s y ế ắ ể ấ , 2 bit IF (Interrupt Flag) va TF (Trap Flag) b xoá v 0 đ c m ắ ẫ ố
i vào ng t tr i vào ể ắ ố ộ ắ ướ c khi đ a vào l ư ố
c cho phép hay c m ng t b ng cách l p hay xoá bit IF c a thanh ghi
ắ ằ
ấ
ậ
ra, chúng ta dùng m t triger (flip – flop) đ m c l ng t NMI. ắ
ở ệ
ậ ng đ
ủ flag. L p b i l nh STI (Set Interrupt), xoá b i l nh CLI (Clear Interup) ầ
ượ ở ệ c n i v i l ượ ố ớ ố
i ra yêu c u ng t c a vi m ch x lý u tiên ng t (8214, ạ
ắ ủ
ư
ử
ắ
o Th
ườ 8259).
Ng t INTR: ắ o Ng t này đ ắ
Ng t reset : ắ
ệ
ệ
ệ
t sau:
ươ ắ ặ t khi th c hi n l nh (ng t logic) và ng t c a h ệ ự ệ ặ ố ng trình) do VXL g p các ắ ủ ệ ắ ề
ặ
ặ
ố
ệ
ớ
ướ
ng trình do ng
i dung ch
ộ c (vector 1) ươ
ườ
ươ
ng trình s d ng đ nh ử ụ
ị
ệ ừ ừ c (Vect
3)
tr
ắ ắ o Chia m t s cho 0 ộ ố o Tràn n i dung thanh ghi hay b nh ộ o Th c hi n t ng b o Đi m d ng ( Break point) ch ơ
ự ể ướ ắ ủ ệ ề
ắ
ủ - Ng t c a h đi u hành: đó là các ng t do h đi u hành quy đ nh đ ph c v trao đ i tin c a
ụ ụ
ệ ề
ể
ổ
ị
các TBN (bàn phím, máy in, vv) nh INT 10, INT 16, INT 21, .v.v..)
ư
• ề : (hay ng t bên trong do l nh c a ch Ng t m m ủ ắ l nh gây ra ng t ho c tình hu ng đ c bi ệ ệ ặ ắ ệ đi u hành. - Ng t do l nh: đó là ng t khi th c hi n các l nh CALL, HLT, INT ự ắ - Ng t logic hay các ngo i tr : x y ra khi g p các tình hu ng đ c bi ạ ừ ả
• Ng t c a MVT – PC (8086, 80286 ) ắ ủ
ượ
Các ng t không hoàn toàn đ ắ ụ ụ ọ ề
t b ngoài. H VXL 8086 cung c p 256 c liên k t v i các thi ắ ấ ế ị ế ớ ng t, đa ph n trong s chúng là ch đ ph c v nh ng t ph n m m. H 8086 có m t b ng ộ ả ỉ ể ọ ắ ầ ư ng trình ph c v ng t. M i đ a ch là 4 byte. vecter ng t gi ụ ụ ắ ố đ a ch c a các ch ỉ ủ ầ ỗ ị ữ ị ươ ắ ỉ
Trong các máy PC, ch có 15 ng t dành cho ph n c ng và 1 ng t không che đ ầ ứ ỉ ượ
ắ c s d ng cho các ng t ph n m m và các b x lý ngo i l . B x lý ngo i l ạ ệ ộ ử ắ
nh ISR nh ng x lý các ng t khi xu t hi n l ng t ề ử ấ ươ ự ư
c. Ph n còn ầ là các ạ ệ ắ i. Ví d nh vector ng t i này VXL ệ ỗ ạ ệ
ấ đây. ươ ụ ư ệ ỗ i chia cho 0). Khi xu t hi n l ỉ ư ở ị ệ
-
Non-Maskable IRQ (Parity Errors)
-
ắ ầ ộ ử ắ ư Divide by Zero (l ỗ ự IRQ ng trình có đ a ch l u Common Uses
Exception Handlers Non-Maskable IRQ Exception Handlers Hardware IRQ0 Hardware IRQ1 Hardware IRQ2 Hardware IRQ3
System Timer Keyboard Redirected Serial Comms. COM2/COM4
16
l i đ ạ ượ ử ụ ng trình t ch ươ đ a ch c a ngo i l đ u tiên gi ầ ỉ ủ ữ ị nh y sang đ a ch 0000:0000 và th c hi n ch ị ỉ ả INT (Hex) 00 - 01 02 03 - 07 08 09 0A 0B
Ch
ươ
ng 3: Th t c trao đ i tin c a máy vi tính ổ
ủ ụ
ủ
Serial Comms. COM1/COM3 Reserved/Sound Card Floppy Disk Controller Parallel Comms.
-
Real Time Clock Redirected IRQ2 Reserved Reserved PS/2 Mouse Math's Co-Processor Hard Disk Drive Reserved
0C 0D 0E 0F 10 - 6F 70 71 72 73 74 75 76 77 78 - FF
Hardware IRQ4 Hardware IRQ5 Hardware IRQ6 Hardware IRQ7 Software Interrupts Hardware IRQ8 Hardware IRQ9 Hardware IRQ10 Hardware IRQ11 Hardware IRQ12 Hardware IRQ13 Hardware IRQ14 Hardware IRQ15 Software Interrupts
-
• ủ ụ ử ứ ươ
ng chình đ a vào chân yêu c u ng t (INTR), quá Th t c x lý (đáp ng) ng t ch ắ Khi có m t tin hi u yêu c u ng t ch ươ ệ ộ ắ ầ ng trình ư ầ ắ
trình ng t ch ng trình đ c di n ra theo các b c sau: ắ ươ ượ ễ ướ
tin v tr ng thái c a VXL lúc có tín hi u yêu c u ng t và n i ch ng trình b L u gi ư ữ ề ạ ủ ệ ắ ầ ơ ươ ị
gián đo n.ạ
VXL g i tín hi u xác nh n hay cho phép ng t – INTA và đ c vector ng t. ử ệ ắ ắ ậ ọ
ng trình ph c v ng t. Chuy n sang ch ể ươ ụ ụ ắ
ng trình chính b ng t và ti p t c th c hi n ch ng trình đó. ở ề ỗ ươ ế ụ ị ắ ự ệ ươ
ng trình: Tr v ch ch • L u gi ư ữ tin v ch b ng t ch ề ỗ ị ắ ươ
ỗ ệ ể
tin v n i b ng t ch i không. N u có yêu c u, VXL ti n hành l u tr ầ ề ơ ị ế ế ắ
ờ
ỏ ệ
- Thanh ghi c Flag FR (Flag Register) - Con tr l nh IP(Instruction Pointer) - Thanh ghi đo n l nh CS (Code Segment register) ạ ệ • G i tín hi u cho phép (xác nh n ) ng t và đ c vector ng t:
ư ư ỉ ữ ị ở ớ ị ỉ ắ cu i m i chu trình l nh, VXL 8086 ( cũng nh 80286) ki m tra xem có yêu c u ng t ầ Ở ố nào g i t ng trình ươ ử ớ ( dùng l nh PUSH vào vùng nh ngăn x p mà đ a ch ch th b i thanh ghi SP). ế ệ Các tin đó là:
ử ọ ệ ậ ắ ắ
ị ư ữ ề ị ắ ủ ử
ổ ứ ắ ạ
Sau khi đã l u tr tin v v trí b ng t c a ch ươ ủ ắ ắ ắ ươ ứ
ậ ng trình chính, VXL g i tín hi u xác nh n ệ ch c ng t và t o vector ng ng c a KGN vào thanh ghi ch a ứ ủ c đ a ch đ u tiên c a ỉ ầ ị ắ ể ế ượ ử ụ ộ ọ ỉ
17
ng t INTA (Interrupt Acknowledge) cho KGN c a TBN. Tuỳ cách t ng t, VXL s d ng tín hi u này đ đ c vector ng t t ủ ệ A. VXL đ c n i dung c a ô nh có đ a ch là vector ng t đ bi t đ ớ ch ể ọ ị ng trình trao đ i tin). ng trình con ph c v ng t ( ch ủ ụ ụ ắ ươ ươ ổ
• Th c hi n ch ự ệ ươ ng trình con ph c v ng t ụ ụ ắ
ươ ớ ị
ắ ằ ng trình con này, có l nh tr v (RET - return) đ VXL ti p t c th c hi n ch ế ng trình mà đ a ch l nh đ u tiên n m trong ô nh có đ a ch là vector ng t. K t ươ ng ị ỉ ế ụ ầ ở ề ỉ ệ ệ ự ệ ể
Đó là ch thúc ch ươ trình chính.
• Ti p t c th c hi n ch ng trình chính: ế ụ ự ệ ươ
ở ề ặ ệ ủ ụ ọ ồ
ươ ế ch ng t ch ươ ệ ằ ớ
ớ ở ỗ c l ắ ượ ạ ớ ậ ả
ị Sau khi g p l nh tr v (RET), VXL ti n hành đ c và h i ph c các tin c a VXL lúc b ế ng trình (b ng l nh POP các ô nh ngăn x p). ng trình đã ghi nh ng t ch ắ Qua trình đ c ra này x y ra ng i v i quá trình ghi vào (theo quy lu t LIFO – Last In First ọ Out) và n i dung c a: ộ ủ
Thanh ghi con tr l nh (IP) tr v đ l ch (offset) c a đ a ch l nh ti p theo c a ủ ủ ị ỏ ệ ỉ ệ ế
ch ng trình chính b ng t trong m ng nh l nh (CS). ươ ị ắ ớ ệ ỏ ề ộ ệ ả
Thanh ghi m ng l nh (CS) v đ a ch đo n đ u tiên c a vùng nh dành cho ch ỉ ề ị ủ ạ ầ ớ ươ ng
ệ trình chính b ng t. ả ị ắ
3.2.2. X lý ng t c ng trong IBM - PC:
ắ ứ
ử
Thanh ghi flag lúc b ng t ch ng trình. ị ắ ươ
INTR: Interrupt Request NMI: NonMaskable Interrupt /INTA: Interupt Acknowledge
VXL 80x86 có 3 chân dùng cho ng t c ng đó là: ắ ứ
INTR nh ng không che đ
ng t
c b ng l nh
INTR là tín hi u đ u vào yêu c u ng t c a VXL và nó có th che hay cho phép thông qua ể ệ ầ
ượ ằ
ươ
ự
ệ
ắ ủ ầ l nh CLI (Clear Interrupt) và STI (Set Interrupt) ệ NMI t ư
c kích ho t t bên ngoài b ng cách n i vào đi n áp 5V vào chân ể ượ ạ ừ ệ ằ ố
INTR và NMI có th đ ng ng c a VXL. ủ t ươ ứ
Nh v y VXL ch có kh năng ph c v m t yêu c u ng t c ng t TBN. Đ m r ng kh ỉ ư ậ ể ở ộ ả
ụ ụ ắ ắ ứ ử ừ ắ ứ ầ ạ ượ ậ
ả c PIC ể ở ố
18
ng ng t c ng lên đ n 64 ụ ụ ộ năng ph c v ng t ngoài IBM - PC s d ng thêm vi m ch x lý ng t c ng l p trình đ ử ụ (Programmable Interrupt Controller) 8259. S d ng PIC 8259 n i vào chân INTR có th m ử ụ r ng s l ộ ố ượ ắ ứ ế
Ch
ươ
ng 3: Th t c trao đ i tin c a máy vi tính ổ
ủ ụ
ủ
RAM
ROM
System bus
INT
KGN8
KGN1
Interrupt Controller
/INTA
INT R VXL
. . .
. . .
IR0
IR7
Reset
NMI
C ch th c hi n ng t c ng
ế ự
ắ ứ
ơ
ệ
19
• Vi m ch x lý ng t 8259 ử ạ ắ
S đ kh i: ơ ồ ố
INT
A 0
D
– D 7
0
Logic đi u khi n ề
ể
B đ m ộ ệ d li u ữ ệ
A 0
0
A
Logic đ c/ghi ọ
0 A
0
Gi i ả quy t ế u tiên ư (PR)
Thanh ghi yêu c u ầ ng tắ
Thanh ghi ph c v ụ ụ (ISR)
A 0
IR . . . . IR
n
Đ ư ờ n g
ộ
B so sánh và n i t ng ố ầ
d â y
Thanh ghi che ng t (IMR)
ắ
n ộ
CAS 0 CAS 1 CAS 2
i
A
0
S đ kh i 8259
ơ ồ ố
ố
ầ
ề
ị
ọ
ỉ ọ ạ
ố ố ố
: Các l i vào yêu c u ng t ắ : Các bit s li u (2 chi u) ố ệ : Đ a ch ch n thanh ghi l nh ệ : Ch n vi m ch (chip select) : L i vào l nh ghi ệ : L i vào l nh đ c ọ ệ : L i vào m c n i t ng ắ ố ầ : Trong ch đ không đ m, n u ế ộ
ế
ệ
SP = 1 thì 8259 là chủ
Các chân: IR0 – IR7 (Chân 18 – 25) D0 – D7 (Chân 11 – 4) A0 (chân 27) CS (Chân 11) WR (chân 2) RD ( chân 3) CAS0 – 2 (Chân 12,13,15) SP (chân 16) (Master).
SP = 0 thì là t
(Slave)
ớ
ậ
: L i vào xác nh n ng t ắ : L i ra yêu c u ng t ch
ng trình
INTA (chân 26) INT (chân 17)
ố ố
ắ
ầ
ươ
C u trúc PIC 8259
ấ
Thanh ghi yêu c u ng t IRR (Interrupt Request Register): đ ghi tám m c ng t(IR0 – ứ ể ắ ắ ầ
IR7) t TBN. ừ
Thanh ghi “Ng t đang ph c v ” ISR (In Service Register): ghi m c ng t đang s d ng. ụ ụ ử ụ ứ ắ ắ
20
Thanh ghi m t n ng t IMR (Interrupt Mask Register). ặ ạ ắ
Ch
ng 3: Th t c trao đ i tin c a máy vi tính ổ
ủ ụ
ủ
ươ M ch logic gi
i quy t u tiên PR (Priority Resolver) ạ ả ế ư
Kh i logic đi u khi n: x lý ng t, đ a yêu c u (INT) và xác nh n ng t (INTA) ắ ư ử ể ề ậ ắ ầ ố
ng dây s li u: đ đ m ghi vào các thanh ghi và đ m đ c các s li u t ố ệ ừ ố ệ ể ệ ệ ọ B đ m đ ộ ệ
ườ các thanh ghi.
Logic đi u khi n đ c/ghi: t o các tín hi u ghi và đ c các thanh ghi đ m. ể ệ ệ ề ạ ọ ọ
B đ m n i t ng/so sánh: đ ch n các vi m ch 8259 t ể ọ ố ầ ộ ệ ạ ớ trong m t vi m ch 8259 ch . ủ ạ ộ
Đ i v i IBM - PC, 2 PIC đ ượ ử ụ ắ ứ
ầ c s d ng đ m r ng ra 15 ng t c ng. PIC1 đ qu n lý đ u ng IRQ2 ?lên PIC1 qua đ c n i t ng ố ớ ắ ể ả ườ
ế ắ ặ ộ ị
INT
IRQ0 IRQ1
INT R MPU
Pri PIC
IRQ3 :
:
IR0 IR1 IR2 IR3 :
/ INTA
IRQ7
IR7
/ INTA
CAS0-2
Port A0H
INT
IRQ8 IRQ9
IR0 IR1 IR2
Sec PIC
IRQ1 0
:
:
CAS0-2
IR7
IRQ1 5
/ INTA
S đ ghép n i n i t ng PIC trong IBM - PC
ố ố ầ
ơ ồ
ậ
ắ ứ
ử
c đ nh v t
ỉ
ượ c
3.2.3. L p trình x lý ng t c ng: Trong máy IBM - PC có 2 PIC đ ị ạ ượ ị kh i t o b i BIOS, do đó ta ch c n quan tâm t
i 2 l nh khi làm vi c v i chúng.
ở ạ
ỉ ầ
ở
i các đ a ch là PIC1 - 20H, PIC2 - A0H. Các PIC đ ớ
ệ ớ
ị ệ
ể ở ộ vào ng t IRQ0 - 7, PIC2 dành cho IRQ8 - 15. PIC2 đ ượ ố ầ (Do đó n u ta ch n ng t IRQ2 thì toàn b IRQ 8 - 15 cũng b che. Port 20H
ệ ứ ừ ộ ề ể ể
đi u khi n OCW1 đ thi ắ ế t l p vi c che ng t N u ế ậ ng ng v i ng t đó v 0. T đi u khi n OCW1 ề ớ ệ ừ ề ươ ứ ể ắ
L nh th nh t tác đ ng vào t ấ mu n che ng t nào thì ta xoá bit t ắ ố i đ a ch base + 1. c g i t đ ỉ ượ ử ớ ị
ứ ệ ế
ệ ệ c g i t ượ ử ớ c g i t ượ ử ớ i PIC khi k t thúc i PIC b ng cách ghi ằ
L nh th 2 là l nh End of Interrupt (EOI). L nh này đ ệ ng trình con x lý ng t đ reset PIC. L nh EOI đ ch ắ ể ử ươ giá tr 20H vào thanh ghi có đ a ch base. ị ị ỉ
Th c hi n ch
ự
ệ
ươ
ng trình x lý ng t; ử
ắ
21
Trong ngôn ng C ta có th th c hi n m t ch ng trình x lý ng t b ng khai báo ể ự ữ ệ ộ ươ ắ ằ ử
void interrupt myISR()
ỏ ỏ ế ươ ị ỉ ớ ng trình ISR c a ta n m trong b nh . ộ
ươ
ư
ộ
void interrupt myISR() /* Interrupt Service Routine (ISR) */
{ disable();
/* Body of ISR goes here */
oldhandler();
outportb(0x20,0x20); /* Send EOI to PIC1 */
enable();
}
ng trình con x lý ng t.
ộ
ộ
ị
ươ
ử
ắ
void interrupt yourisr() đ nh nghĩa m t hàm là m t ch
c đ t vào b ng vector ng t, và đ ị ỉ ằ ủ c g i khi có ng t. ắ ượ ọ trong đó yourisr là con tr tr đ n đ a ch mà ch ắ t b ng C nh sau: ẽ ượ ặ ng trình ISR vi Đ a ch này sau đó s đ Khung c a m t ch ủ ả ế ằ
ạ ừ ắ ứ
disable(); xoá c ng t làm cho các ng t c ng khác (ngo i tr ng t NMI) không th c hi n ệ ự ờ ử c. Và đ tránh tr ng trình x lý ể ắ ơ ẽ ắ ườ ươ ắ ợ
ng trình ISR g m các l nh mà ta mu n th c hi n khi yêu c u ng t đ
c kích
ắ ươ
ươ
ủ
ệ
ầ
ể ệ ắ ng h p các ng t khác có đ u tiên cao h n s ng t ch ộ ư ầ ậ ố ự ự ệ ệ đ ượ ng t c a chúng ta. Tuy v y vi c này có th không c n th c hi n. ắ ủ Ph n thân c a ch ồ ầ ho t. ạ
Các c ng ho c các thi ổ ặ t b ngoài có th ng t VXL b i r t nhi u lý do, vd nh nh n đ ở ấ ể
ế ị ộ ệ ề ả ọ ươ
t nguyên nhân gây ra ng t c a thi ư ậ ạ ng ng. ắ m t byte, time-out, tràn b đ m, vv. Khi đó ch ộ c a KGN đ bi ủ ể ế ắ ủ ượ c ng trình ISR ph i đ c thanh ghi tr ng thái t b , và có nh ng thao tác t ữ ươ ứ ế ị
Đôi khi ngoài ch ng trình x lý ng t c a ta, h th ng còn m t s ch ng trình th ử ươ ộ ố ươ
ượ ệ
i ch ươ ươ
ng trình ISR
ỏ
ả
ế
t là ta k t thúc ch ế
ươ
ng trình con ISR, ta ph i báo cho PIC bi i PIC t
ng ng.
ng trình ISR cũ. Trong tr ườ ng c kích ho t khi có ng t đó. Vì v y sau khi th c hi n xong các thao tác c a ủ ự ự ng trình ISR cũ (n u có). Th c ế ng h p này là ườ ạ ng trình ISR c a chúng ta ph i có l ệ ắ ủ ắ ả i đ a ch c a ch ỉ ủ ệ ố ậ i g i t ờ ọ ớ ươ ủ ỏ ỏ ớ ị ọ ợ ệ
c khi thoat kh i ch ử ệ
ươ ớ
ươ ứ
trú khác cũng đ mình, ch hi n b ng l nh g i con tr tr t ằ oldhandle() Tr ướ b ng cách g i l nh EOI t ằ
Ch ươ ở ạ ể
c th c thi ph i có m t ch ả ự ng trình sau s kh i t o và qu n lý ch ả ở ạ ộ ươ ươ ng trình đ kh i t o và qu n ả ừ ạ ng trình con myISR mà ta v a t o.
#include
#define INTNO 0x0B /* Interupt Number - See Table 1 */
void main(void)
{
oldhandler = getvect(INTNO); /* Save Old Interrupt Vector */
setvect(INTNO, myISR); /* Set New Interrupt Vector Entry */
outportb(0x21,(inportb(0x21) & 0xF7)); /* Un-Mask (Enable) IRQ3 */
22
ng trình con ISR mu n đ ố ượ ạ ẽ t chúng ta s d ng ng t IRQ3 thi ươ lý nó. Đo n ch Gi ế ử ụ ả ắ
Ch
ng 3: Th t c trao đ i tin c a máy vi tính ổ
ủ ụ
ủ
ươ /* Set Card - Port to Generate Interrupts */
/* Body of Program Goes Here */
/* Reset Card - Port as to Stop Generating Interrupts */
outportb(0x21,(inportb(0x21) | 0x08)); /* Mask (Disable) IRQ3 */
setvect(INTNO, oldhandler); /* Restore old Interrupt Vector Before Exit */
}
Tr ướ ắ ớ
c khi thay th đ a ch c a ch ế ị ắ ỉ ủ ụ ể ể ng trình ISR m i vào b ng vector ng t , ta ph i l u ả ư ả ằ ng trình. Th c hi n b ng i sau khi thoát kh i ch ự ươ ệ ỏ
oldhandler = getvect(INTNO); /* Save Old Interrupt Vector */
ố ệ ủ
ắ
trong đó INTNO là s hi u c a vector ng t ta mu n l u. ng trình ISR m i c a ta vào b ng l nh Sau đó ta cài ch
ố ư ệ
ớ ủ
ươ
ằ
setvect(INTNO, myISR); /* Set New Interrupt Vector Entry */
Ng t c ng ta mu n s d ng ph i đ
c cho phép b ng l nh
ố ử ụ
ắ ứ
ả ượ
ệ
ằ
outportb(0x21,(inportb(0x21) & 0xF7)); /* Un-Mask (Enable) IRQ3 */
ươ vector ng t cũ, đ ta có th ph c h i l ồ ạ l nh ệ
ự ệ ứ ừ
ế ườ ấ ng tuỳ theo t ng ng d ng, vd ế t ự ệ ụ ế
ng trình chính ta luôn ph i khôi ph c l
c khi thoát kh i ch
i vector ng t cũ.
ả
ắ
ụ ạ
setvect(INTNO, oldhandler); /* Restore old Interrupt Vector Before Exit */
23
i s d ng, v.v. Khi có b t kỳ s ki n liên quan đ n thi ng trình con ISR. ng trình chính ti p t c th c hi n bình th ế ụ ườ ử ụ ươ ớ ở Ph n thân ch ươ ầ nh x lý đ ho , giao ti p v i ng ạ ư ử đ ng b i ch b đ u đ ự ộ ị ề ượ ử Tr ươ ướ ồ c x lý t ỏ
3.3 Trao đ i tin tr c ti p kh i nh
ự ế
ố
ổ
ớ
Data Bus
HOLD
DREQ
MEMORY
DMAC
Disk Controller
VXL
HLDA
DACK
Address Bus
Control Bus (IOR, IOW, MEMR, MEMW)
Ho t đ ng c a DMAC
ạ ộ
ủ
3.3.1. C ch ho t đ ng:
ơ ế
ạ ộ
VXL kh i t o TBN ở ạ
TBN kh i x ở ướ ở ng vi c truy n s li u b ng cách s d ng các thông tin cung c p b i ử ụ ệ ấ ằ
VXL thông qua quá trình kh i t o ề ố ệ ở ạ
TBN th c hi n vi c truy n s li u b ng cách truy n tr c ti p gi a TBN và b nh ề ố ệ ằ ự ế ự ữ ệ ề ộ ớ
3.3.2. Ho t đ ng c a DMAC:
ạ ộ
ủ
thông qua s đi u khi n c a b đi u khi n DMA (DMAC) ể ủ ộ ề ể ệ ự ề
Kh i t o ướ ở ạ : Tr ạ ộ ươ ư ả
ở ạ ẽ ầ
c khi đ a DMAC vào ho t đ ng, Ph i có ch ế ể ố ữ ệ ng trình kh i t o cho nó. ở ạ t đ ho t đ ng. Đó là các thông ạ ộ ố c kh i d li u, chi u đ c/ghi d li u, s ề ỉ ắ ầ ủ ố ữ ệ ữ ệ ư ị ướ ọ
Quá trình kh i t o s cung c p cho DMAC thông tin c n thi ấ tin nh : đ a ch b t đ u c a kh i d li u, kích th hi u c ng c a TBN. ệ ổ ủ
• Ho t đ ng: ạ ộ
b nh ra TBN. Xét tr ố ữ ệ ừ ộ ớ ợ ề
ứ ệ ằ
(1) B c 1: TBN yêu c u DMA b ng cách đ t tín hi u DREQ lên m c cao ặ (2) B c 2: DMAC đ t tín hi u m c cao vào chân HRQ (Hold Request) g i tín hi u yêu ử ệ ứ ệ
t DMAC c n s d ng bus.
ế
ng h p truy n m t kh i d li u t ộ ườ ầ ướ ướ ặ c u treo bus cho VXL, báo cho VXL bi ầ (3) B c 3: VXL k t thúc chu kỳ bus hi n t ướ ứ ả ờ ở i, chuy n các c ng ghép n i v i bus sang chân HDLA ứ ố ớ ở ằ
24
ế ệ ạ m c tr kháng cao và tr l ầ ( Hold Acknoledge) báo cho DMAC đ ượ ầ ử ụ ổ ể i yêu c u DMA b ng tín hi u m c cao ệ c quy n s d ng bus ề ử ụ
Ch
ươ
ng 3: Th t c trao đ i tin c a máy vi tính ổ
ủ ụ
ủ
(4) B c 4: DMAC kích ho t tín hi u DACK báo cho TBN bi ề t nó s b t đ u đi u ẽ ắ ầ ệ ế
ạ khi n vi c truy n d li u. ệ
ặ ị
ỉ ủ
ệ
ạ
ớ
ỉ ủ ổ
ặ ị
ữ ệ
ể
ạ
ị ế
ị ạ
ỉ ữ ệ ỉ i khi giá tr đ m b ng 0. ị ế
ả ặ ạ
ằ
ớ
b nh t ề ữ ệ ắ ầ ư ị (5) B c 5: DMAC b t đ u truy n d li u t ề ữ ệ ừ ộ ớ ớ ố ữ ệ ủ ữ ệ ừ ộ
ướ ể i TBN nh sau: ướ o DMAC đ t đ a ch c a byte đ u tiên c a kh i d li u lên bus đ a ch ỉ ầ b nh lên bus d li u o Kích ho t tín hi u /MEMR đ đ c byte d li u t ữ ệ ể ọ o Đ t đ a ch c a c ng TBN lên bus đ a ch ị o Kích ho t tín hi u IOW đ ghi byte d li u đang có trên bus d li u ra TBN ệ o Gi m giá tr đ m và tăng giá tr đ i ch i quá trình trên cho t o L p l
ề (6) Sau khi quá trình DMA k t thúc, DMAC xoá giá tr HRQ xu ng m c th p, tr quy n ứ ế ấ ả ố ị
3.3.3. Chip đi u khi n truy nh p b nh tr c ti p DMAC 8237 (Direct Memory
ớ ự ế
ể
ề
ậ
ộ
Access Controller)
đi u khi n bus cho VXL. ề ể
b ệ ruyền d li u th ữ ệ eo 3 ki u: kể i uể dọc (t ừ ộ nh ra thi ớ ế ị t b
ngo i vi), ki u ghi (t DMAC 8237 có th ể th c hi n t ạ ạ ự t b ngo i vi ế ị ừ thi ể đ nế bộ nhớ) và ki uể kiểm tra.
ề Kh i Timing and Control (đ nh th i và đi u ố ờ ị • khi n):ể
ị ạ ờ
ề ượ ể ồ
T o các tín hi u đ nh th i và đi u khi n cho bus ngoài c đ ng b v i xung ộ ớ i đa là 5 ố ệ ầ ư ố
ệ (external bus). Các tín hi u này đ clock đ a vào DMAC (t n s xung clock t MHz).
Kh i Priority encoder and rotating priority ố • logic (mã hoá u tiên và quay m c u tiên): ứ ư ư
ư ư
ư ư ố ị ẽ
ứ ư ấ
ứ ư ấ
ư
ạ
DMAC 8237A có 2 mô hình u tiên: mô hình u tiên c đ nh (fixed priority) và mô hình u tiên quay (rotating ố ị priority). Trong mô hình u tiên c đ nh, kênh 0 s có ấ m c u tiên cao nh t còn kênh 3 có m c u tiên th p nh t. Còn đ i v i mô hình uu tiên quay thì m c uu tiên ứ ố ớ ư khi kh i d ng gi ng nh mô hình u tiên c đ nh nh ng ở ộ ố ị ố khi yêu c u DMA t c ph c v thì ụ ụ ầ s đ ẽ ượ ặ ư i m t kênh nào dó đ ượ ộ c đ t xu ng m c u tiên th p nh t. ấ ứ ư ấ ố
Gi
c truy xu t và lo i ho t đ ng c n th c hi n).
ẽ ượ
ệ
ị
ạ ộ
ự
ệ
ấ
ạ
ầ
25
Kh i Command Control (đi u khi n l nh): ể ệ ề ố • i mã các thanh ghi l nh (xác đ nh thanh ghi s đ ả
• Các thanh ghi:
26
DMAC 8237A có t t c 12 lo i thanh ghi n i khác nhau: ấ ả ạ ộ
Ch
ng 3: Th t c trao đ i tin c a máy vi tính ổ
ủ ụ
ủ
ươ •
Ch c năng các chân c a 8237A: ủ ứ
CLK (Input): tín hi u xung clock c a m ch. Tín hi u này th ng đ 8284 sau ủ ệ ệ ạ ườ c l y t ượ ấ ừ
khi qua c ng đ o. ổ ả
CS (Input): th ng đ ườ c n i v i b gi ượ ố ớ ộ ả i mã đ a ch . ỉ ị
RESET (Input): kh i d ng 8237A, đ c n i v i ngõ RESET c a 8284. Khi Reset thì thanh ở ộ ủ
ghi m t n đ c l p còn các ph n sau b xoá: ặ ạ ượ ậ ầ ượ ố ớ ị
Thanh ghi l nhệ
Thanh ghi tr ng thái ạ
Thanh ghi yêu c uầ
Thanh ghi t mạ
Flip-flop d u/cu i (First/Last flip-flop) ố ầ
ể ạ ủ ấ ợ ế ị t b
ố ớ ngo i vi hay b nh ch m. READY (Input): n i v i READY c a CPU đ t o chu kỳ đ i khi truy xu t các thi ạ ớ ậ ộ
HLDA (Hold Acknowledge)(Input): tín hi u ch p nh n yêu c u treo t CPU ệ ầ ậ ấ ừ
DRQ0 – DRQ3 (DMA Request)(Input): các tín hi u yêu c u treo t thi t b ngo i vi ệ ầ ừ ế ị ạ
DB0 – DB7 (Input, Output): n i đ n bus đ a ch và d li u c a CPU ữ ệ ủ ố ế ỉ ị
IOR , IOW (Input, Output): s d ng trong các chu kỳ d c và ghi ử ụ ọ
ế ế
vào hay dùng đ báo cho m t kênh bi t là d li u đã chuy n xong EOP (End Of Process)(Input,Output): b t bu c DMAC k t thúc quá trình DMA n u là ngõ ộ ắ ữ ệ ể ế ể ộ
(Terminal count – TC), th ng dùng nh yêu c u ng t đ CPU k t thúc quá trình DMA. ườ ắ ể ư ế ầ
ậ ọ
bit đ a ch th p. ể ứ A0 – A3 (Input, Output): ch n các thanh ghi trong 8237A khi l p trình hay dùng đ ch a 4 ị ỉ ấ
A4 – A7 (Output): ch a 4 bit đ a ch ỉ ứ ị
HRQ (Hold Request)(Output): tín hi u yêu c u treo đ n CPU ệ ế ầ
DACK0 – DACK3 (DMA Acknowledge)(Output): tín hi u tr i yêu c u DMA cho các ệ l ả ờ ầ
kênh.
AEN (Output): cho phép l y đ a ch vùng nh c n trao đ i ổ ị ớ ầ ấ ỉ
ADSTB (Address Strobe)(Output): ch t các bit đ a ch cao A8 – A15 ch a trong các chân ứ ố ỉ ị
DB0 – DB7
MEMR , MEMW (Output): dùng đ d c / ghi b nh . ớ ể ọ ộ
• Các thanh ghi n i:ộ
27
Các thanh ghi n i trong DMAC 8237A đ c truy xu t nh các bit đ a ch th p A0 – A3 ộ ượ ỉ ấ ấ ờ ị
Bit đ a ch ỉ ị R/W? Ch n ch c năng ứ ọ Đ aị chỉ
X0 X1 A3 A2 A1 A0 0 0 1 0 0 0 0 0 ớ kênh 0 R/W R/W Thanh ghi đ a ch b nh kênh 0 ỉ ộ Thanh ghi đ m t ừ ị ế
X2 0 0 1 0 Thanh ghi đ a ch b nh kênh 1 R/W ỉ ộ ớ ị
X3 0 0 1 1 Thanh ghi đ m t kênh 1 R/W ế ừ
X4 0 1 0 0 Thanh ghi đ a ch b nh kênh 2 R/W ỉ ộ ớ ị
X5 0 1 0 1 Thanh ghi đ m t kênh 2 R/W ế ừ
X6 0 1 1 0 Thanh ghi đ a ch b nh kênh 3 R/W ỉ ộ ớ ị
X7 0 1 1 1 Thanh ghi đ m t kênh 3 R/W ế ừ
X8 1 0 0 0 R/W Thanh ghi tr ng thái / l nh ạ ệ
X9 1 0 0 1 W Thanh ghi yêu c u ầ
XA 1 0 1 0 W Thanh ghi m t n cho m t kênh ặ ạ ộ
XB 1 0 1 1 W Thanh ghi ch đ ế ộ
1 1 0 0 XC Xoá flip-flop đ u/cu i W ầ ố
1 1 0 1 W/R ọ XD Xoá toàn b các thanh ghi / đ c ộ
1 1 1 0 W thanh ghi t m ạ XE Xoá thanh ghi m t n ặ ạ
1 1 1 1 XF W Thanh ghi m t n ặ ạ
Đ a ch các thanh ghi n i dùng ghi / đ c đ a ch : ỉ ộ ọ ị ị ỉ
Kênh A3 A2 A1 A0 Thanh ghi R/W?
0 ỉ ệ
ệ ộ ế
1 ỉ ệ
ộ ế ệ
2 ỉ ệ
28
ộ ế ệ / IOR 1 0 1 0 1 0 1 0 1 0 1 0 / IOW 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 Đ a ch c s và đ a ch hi n hành ỉ ơ ở ị Đ a ch hi n hành ỉ ệ B đ m c s và b đ m hi n hành ơ ở B đ m hi n hành ệ Đ a ch c s và đ a ch hi n hành ỉ ơ ở ị Đ a ch hi n hành ỉ ệ B đ m c s và b đ m hi n hành ơ ở B đ m hi n hành ệ Đ a ch c s và đ a ch hi n hành ỉ ơ ở ị Đ a ch hi n hành ỉ ệ B đ m c s và b đ m hi n hành B đ m hi n hành W R W R W R W R W R W R ị ị ộ ế ộ ế ị ị ộ ế ộ ế ị ị ộ ế ộ ế ơ ở ệ
Ch
ng 3: Th t c trao đ i tin c a máy vi tính ổ
ủ
ươ 3
ỉ ệ W R W R
ộ ế ệ
ủ ụ 0 1 0 1
1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 Đ a ch c s và đ a ch hi n hành ỉ ơ ở ị Đ a ch hi n hành ỉ ệ B đ m c s và b đ m hi n hành B đ m hi n hành ị ị ộ ế ộ ế ơ ở ệ
Đ a ch các thanh ghi tr ng thái và đi u khi n: ạ ề ể ị ỉ
A3 A2 A1 A0 Thanh ghi /IOR
/ IOW 0 1 1 1 0 0 0 0 1 0 0 Ghi thanh ghi l nh ệ 0 Đ c thanh ghi tr ng thái ạ ọ
0 1 0 0 1
0 1 0 1 1 1 Ghi thanh ghi yêu c u ầ 0 Ghi thanh ghi m t n ặ ạ
0 1 0 1 1 1 Ghi thanh ghi ch đ ế ộ
0 1 1 0 1 0 Xoá flip-flop đ u/cu i ầ ố
0 1 1 0 1 1 Xoá t t c các thanh ghi n i ấ ả ộ
1 1 1 0 0 1
ỉ ệ
0 1 1 1 1 1 1 1 1 0 0 Đ a ch c s và đ a ch hi n hành ị 0 Đ a ch hi n hành ỉ ơ ở ỉ ệ
ộ ế ơ ở 0 1 1 1 1 1 ị ị B đ m c s và b đ m hi n ệ ộ ế hành
1 1 1 1 0 1 B đ m hi n hành ộ ế ệ
M ch 8237A-5 ch a 4 kênh trao đ i d li u DMA v i m c u tiên l p trình đ ổ ữ ệ ứ ậ ượ
ề ả ỗ ộ ớ ể ứ ư ề c. 8237A- ể
29
5 có t c đ truy n 1 MBps cho m i kênh và 1 kênh có th truy n 1 m ng có đ dài 64 KB. Đ có th s d ng m ch DMAC 8237A, ta c n t o tín hi u đi u khi n nh sau: ầ ạ ư ệ ề ể ạ ạ ố ộ ể ử ụ
Tín hi u đi u khi n cho h th ng làm vi c v i DMAC 8237A ệ ớ ệ ố ề ệ ể
8237A dùng đ c m các tín hi u đi u khi n t ể ấ ể ừ ề ệ ắ CPU khi DMAC đã n m ừ
Tín hi u AEN t ệ quy n đi u khi n bus. ề ề ể
TK: [1] DIRECT MEMORY ACCESS (69)
30
Ch
ươ
ng 4: Rãnh c m m r ng ắ
ở ộ
Ch
ng 4
Rãnh c m m r ng
ươ
ở ộ
ắ
4.1 Đ t v n đ
ặ ấ
ề
Khi bàn lu n v c u trúc máy tính ta th ng đ c p đ n các c u trúc bus, các đ ề ấ ườ ấ
ườ ể ệ ế ở ộ ề ậ ắ ộ ạ ề ể
ậ ữ ệ ủ ể ắ ở ộ ể ả ạ
ẫ ng d n ằ bus nh bus d li u, bus đi u khi n , v.v. Các rãnh c m m r ng là m t d ng th hi n b ng ư ph n c ng c a bus trên b n m ch chính, trên đó có th c m thêm các card m r ng đ thay ầ ứ đ i ho c nâng c p c u hình c a máy tính. ặ ổ ấ ấ ủ
ạ ờ ủ ề ể ậ ỹ
ớ ự ượ ử ụ ở ộ ể ế ế
ắ c đ n nay đã có đ n 8 ki u bus m r ng đ ừ ướ ự ạ ữ ệ ở ộ ử ồ ố ờ
S ra đ i c a các lo i rãnh c m m r ng g n li n v i s phát tri n c a k thu t máy ắ ủ ự tính. T tr c s d ng cho máy tính cá nhân. ở ộ Vi c phân lo i các bus m r ng d a trên s các bit d li u mà chúng x lý đ ng th i. Đó là ệ các bus:
ắ
- Bus PC (Còn g i là ISA 8 bit) ọ - Bus ISA (16 bit) - Bus PC/MCIA (16 bit) - Bus VESA local (32bit) - Bus SCSI (16/ 32 bit) - Bus EISA (32 bit) - Bus MCA (32 bit) - Bus PCI (32/ 64 bit) - Bus AGP (32/ 64 bit)
4.2 Bus PC
ạ ệ
ượ
ụ ấ ọ ủ ộ
ầ ậ ộ ị
ố ớ ắ
ở ộ ắ ộ
ữ ệ
Bus PC là lo i bus xu t hi n trên máy tính ạ PC/XT đ u tiên nên đ c g i luôn là bus PC. Lo i bus này t n d ng ki n trúc c a b VXL Intel 8088, ế ỉ nên có m t bus d li u 8 bit và ngoài và bus đ a ch ữ ệ 20 bit. Rãnh c m n i v i bus PC có 62 chân cho m ch in 2 phép c m vào m t card m r ng làm t ừ ạ ề c truy n m t. Vì trên bus này có 8 bit d li u đ ượ ặ đ ng th i nên bus PC còn đ c g i là bus PCI 8 bit ồ ượ ọ ờ
c c đ nh 4.77 T c đ truy n c a bus PC đ ề ủ ộ ố ượ ố ị ở
MHz
ộ Đ i v i bus ISA 8 bit ta c n quan tâm đ n m t ố ớ ế ầ
Article I. Sơ đ chân khe c m ISA 8 ồ bit Article II. PhÝ a m¹ch in GND Reset + 5V IRQ2 - 5V DREQ2 - 12V Dù tr÷ + 12V GND /MEMW /MEMR /IOW /IOR /DACK3 DERQ3 /DACK1 DREQ1 /DACK0 CLK IRQ7 IRQ6 IRQ5 IRQ4 IRQ3 /DACK2 TC ALE + 5V OSC GND
Article III. PhÝ a linh kiÖn /IOCHCK D7 D6 D5 D4 D3 D2 D1 D0 /IOCHRDY AEN A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B11 B12 B13 B14 B15 B16 B17 B18 B19 B20 B21 B22 B23 B24 B25 B26 B27 B28 B29 B30 B31
A01 A02 A03 A04 A05 A06 A07 A08 A09 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27 A28 A29 A30 A31
ng tín hi u chính sau: ệ s đ ố ườ TÝn hiÖu
Híng
A0 - A19
I/O
D0 - D7
I/O
M« t¶ 20 ®êng tÝn hiÖu ®Þa chØ dïng ®Ó ®Þnh ®Þa chØ cho bé nhí vµ c¸c thiÕt bÞ ngo¹i vi 8 ®êng tÝn hiÖu t¹o thµnh BUS d÷ liÖu cho vi xö lý, bé nhí vµ c¸c thiÕt bÞ ngo¹i vi
31
Reset
Out
/IOW
Out
/IOR
Out
AEN
Out
Sau khi bËt m¸y tÝnh hoÆc sau khi khëi ®éng l¹i, ®êng dÉn Reset sÏ kÝch ho¹t trong thêi gian ng¾n ®Ó ®a card ®· ®îc c¾m vµo ®Õn mét tr¹ng th¸i ban ®Çu x¸c ®Þnh. Input/Output/Write: TÝn hiÖu nµy sÏ kÝch ho¹t khi truy nhËp ghi lªn mét card më réng. Møc thÊp chØ ra r»ng c¸c d÷ liÖu cã gi¸ trÞ ®ang chê ®Ó ®a ra ë bus d÷ liÖu. C¸c d÷ liÖu ®îc ®ãn nhËn b»ng sên tríc Input/Output/Read: Møc thÊp cña ®êng dÉn ®Þa chØ nµy b¸o hiÖu sù truy nhËp ®äc trªn mét card më réng. Trong thêi gian nµy c¸c d÷ liÖu cã gi¸ trÞ cÇn ph¶i s¾p xÕp ®Ó sau ®ã ®îc ®ãn nhËn b»ng sên tríc Address Enable §êng dÉn ®iÒu khiÓn AEN dïng ®Ó ph©n biÖt chu tr×nh truy nhËp DMA vµ chu tr×nh truy nhËp bé vi xö lý. ë møc cao DMA gi¸m s¸t qua bus ®Þa chØ vµ bus d÷ liÖu. §êng dÉn cã hiÖu lùc ë møc thÊp. §êng dÉn nµy cÇn ph¶i ®îc sö dông cho qu¸ tr×nh gi¶i m· ®Þa chØ bëi card më réng.
4.3 Bus ISA (16 bit)
ể ự
ạ ủ ặ ộ
ng thích v i bus PC, các nhà thi ử ế ế ể ớ ươ ả ổ
ộ ổ ớ ắ ư ậ ứ ị
ắ ữ ệ ữ ệ ố ư ộ ị
Công ty máy tính IBM đã phát tri n bus ISA dùng trong máy tính AT d a trên b VXL 80286. Đi m m nh c a bus này là có th cho phép cùng m t lúc x lý ho c trao đ i v i 16 bit ể ứ t k đã b xung rãnh c m th 2 d li u. Đ đ m b o tính t ể ả ữ ệ th ng hàng v i rãnh c m PC 8 bit, trên đó có ch a 8 bit d li u và 4 bit đ a ch . Nh v y bus ỉ ớ ẳ ISA có m t bus d li u 16 bit và m t bú đ a ch 24 bit. Gi ng nh bus PC, nó s d ng tóc đ ộ ử ụ ỉ đ ng h c đ nh 8.33 MHz ồ ộ ồ ố ị
Do cách t ổ ứ ẫ ắ ộ ộ
ệ ố ớ ầ ắ ổ ế ể ệ ấ
ủ ch c rãnh c m nh v y nên m t card PC v n có th c m vào m t khe c m c a t đ i v i h u h t các ế ự ế ệ vi c ệ ượ ử ụ
ể ắ ư ậ bus ISA. Card ISA r t ph bi n b i vì chúng th hi n tính năng u vi ư ở ng dùng ghép n i. Các linh ki n đ c s d ng trên card đ u r t r , cho nên trên th c t ề ấ ẻ ố ứ ra là công ngh đã qua th thchs và đáng tin c y. ghép n i b ng các card m r ng ISA t ậ ỏ ố ằ ở ộ ử ệ
4.4 Bus PCI
Công ty Intel đã xây d ng nên m t tiêu chu n ghép n i m i có tên là bus c c b PCI ả ự ụ ộ ộ ố ớ
(Peripheral Componel Interconnection - K t n i các thành ph n ngo i vi) hay th ng g i t t là ế ố ầ ạ ươ ọ ắ
bus PCI, đ dùng cho b x lý Pentium. Bus này cho phép truy nh p r t nhanh t i b nh , b ậ ấ ộ ử ể ớ ộ ớ ộ
đi u khi n đĩa, card âm thanh, card đ ho . Vi m ch ghép n i dùng cho bus này là chip PCI ể ề ạ ạ ồ ố
82430 cho phép ghép n i tr c ti p v i bus. ố ự ế ớ
M t s đ c đi m chính: ộ ố ặ ể
ề ữ ệ - Bus PCI truy n d li u b ng t c đ c a đ ng h h th ng cho phép truy n d li u ề ữ ệ ằ ố ộ ủ ồ ồ ệ ố
v i t c đ cao h n nhi u so v i bus ISA. ớ ố ộ ề ơ ớ
32
- Có th ho t đ ng v i 64 bit - T c đ t i đa đ t đ c là 264 Mbyte/s ể ạ ộ ố ộ ố ớ ạ ượ
Ch
ươ
ng 4: Rãnh c m m r ng ắ
ở ộ
- Rãnh c m PCI có m t đ chân cao h n do v y khong t ng thích v i các card ISA. ậ ộ ậ ắ ơ ươ ớ
4.5 Ghép n i qua khe c m m r ng
ở ộ
ố
ắ
4.5.1. M t s đ c đi m c a Card ISA
ộ ố ặ
ủ
ể
Kích th c l n nh t c a các card ISA 8 bit là: ướ ớ ấ ủ
Chi u cao: 106,7 mm (hay 4.2 inch) ề
Chi u dài 333.5 mm ( hay 13.13 inch) ề
Chi u dày - k c linh ki n - 12.7 mm (hay 0.5 inch) ể ả ệ ề
ng tín hi u c a khe c m b trí c 2 phía, vì v y card m r ng bao gi ở ộ ả ậ ắ ố ờ ả cũng ph i
4.5.2. Gi
ả
i mã đ a ch và k t n i Bus d li u ữ ệ
ế ố
ị
ỉ
Các đ ườ là b n m ch in 2 m t. ạ ả ệ ủ ặ
Đ i v i máy PC vùng đ a ch 300 - 31FH đ ố ớ ượ ự ở ộ c d tính đ dành riêng cho card m r ng ể
c m thêm vào. Các đ ắ ườ ng đ a ch s d ng đ i v i vùng này là A0 - A9. ố ớ ị ị ỉ ỉ ử ụ
ứ ậ ữ ệ ố ư ộ ế ề ng t ị
ể máy tính. Do đó, trên card m ề ố ị ữ
Trên m t card m r ng th ườ ng t ự c trao đ i d ổ ướ ộ ộ ả ụ ạ ị ỉ
c thi ỉ ủ ị
ở ộ
i mã. Khi đ ng có nhi u kh i ch c năng nh b bi n đ i t ự ố /s ổ ươ ố DAC, kh i xu t nh p d li u s , đi u khi n hi n th , .v.v. . ể ẩ ở i nh ng đ a ch khác nhau t ừ ỉ i mã đ a ch . B gi i mã đ a ch có nhiêm v so sánh đ i ch trên ỉ ị ỉ ộ ả ủ c cho các kh i ch c năng c a t l p tr ứ ố ướ ế ậ ượ ỉ c kích ng ng s đ ẽ ượ ố ấ ớ ố ươ ứ ố c kích ho t, kh i đ u ra c a b gi ạ ượ ủ ộ ả ạ
33
ở ộ ộ ADC, b bi n đ i s - t ổ ố ươ ộ ế Các kh i này đ ượ ố r ng ph i có thêm m t b gi ả ộ bus đ a ch c a máy tính v i các đ a ch đã đ ị ớ card m r ng. Khi đ a ch đó có s th ng nh t v i kh i nào thì kh i t ự ố ị ỉ ng tín hi u logic t ho t thông qua m t đ ệ ộ ườ đó m i có th ti n hành s trao đ i thông tin v i máy tính. ổ ự ừ ầ ớ ể ế ớ
1
2
3
4
5
6
D
D
Q? 74245
19 1
G DIR
18 17 16 15 14 13 12 11
D0 D1 D2 D3 D4 D5 D6 D7
B1 B2 B3 B4 B5 B6 B7 B8
D0 D1 D2 D3 D4 D5 D6 D7
Q?
2 3 4 5 6 7 8 9
A09 A08 A07 A06 A05 A04 A03 A02
A1 A2 A3 A4 A5 A6 A7 A8
MC74F245
1 2 3
A B C
C
C
A0 A1
A31 A30
6 4 5
G1 G2A G2B
15 14 13 12 11 10 9 7
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
VCC
U? NAND
SN74LS138
U?
/IOR
B14
/IOW
B13
NAND
RESET
B02
U? NAND
Q?
AEN
1
19
A11
/G
/(P=Q)
Q?
B
B
A2 A3 A4 A5 A6 A7 A8 A9
2 4 6 8 11 13 15 17
3 5 7 9 12 14 16 18
1 2 3 4 5 6 7 8
16 15 14 13 12 11 10 9
A29 A28 A27 A26 A25 A24 A23 A22
P0 P1 P2 P3 P4 P5 P6 P7
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
74HC688
SW DIP-8
R? RES2
VCC
i mã đ a ch 74HC688 so sánh các đ ẫ ố ị ỉ
A
A
ỉ ướ ủ ể
Title
ị t l p tr ế ậ ố ứ ệ ấ ộ
Size
Number
Re vision
ở ộ ặ i mã còn ph i quan tâm đ n đ ườ ế ệ ả ả
B
Da te:
23-Apr-2004
Sheet of
File:
C:\My Docume nts\NTL\Protel Prj\Ghepnoi.ddb
Drawn By:
t CPU hay DMAC đang chi m quy n s d ng bus. Khi tín hi u này ề ử ụ ế
5
6
1
3
2
4
c s d ng các bus. Tín hi u AEN đ c đ a t ng d n đ a ch A2 - A9 xem có th ng nh t v i ấ ớ ặ c c a card m r ng b ng chuy n m ch DIP. 74HC688 so sánh các c p ạ ấ ở ẽ ạ ng tín hi u AEN (Address ENable). ở ứ m c ủ i đ u vào /G c a ệ ượ ư ớ ầ ế ở ộ ệ
i mã ho t đ ng. B gi ườ ộ ả đ a ch đã thi ằ ỉ ị bit xem có gi ng nhau không. Khi các c p đ ng nh t thi s t o ra m t tín hi u m c th p ồ đ u ra. Ngoài ra khi gi ầ Đ ng này cho bi ườ th p thì card m r ng m i đ ớ ượ ử ụ ấ 74HC688 đ cho phép b gi ộ ả ạ ộ ể
ng tín hi u A0, A1, IOR, IOW cũng đ ườ ệ ằ
Các đ ớ ộ ả i mã 74HC138 đ t o thành các đ ể ạ ế i mã b ng cách k t ườ ng ạ ổ
c s d ng trong b gi ượ ử ụ h p v i các IC c ng logic AND, OR và vi m ch gi ợ ả đi u khi n đ c ghi cho t ng kh i ch c năng trên card ừ ề ể ọ ứ ố
B gi ồ ậ ể
ộ ẫ ắ ộ ệ ườ ở ộ ớ
ng d n d li u c a rãnh c m PC v i các đ ườ ấ
ố ng. Nó có ch a 8 vi m ch đ m v i các l ớ
ướ ề ằ ẫ
ưở ng d n bus d li u theo 2 h c chuy n t ờ ậ ệ ướ ể ừ ữ ệ
ả ả ả ơ
ữ ệ ủ ư ừ
34
i mã logic đ ng th i đ m nh n vai trò đi u khi n b đ m bus 2 chi u 74HC245. ề ề ờ ả ộ ả ng d n c a card m r ng. B này n i các đ ẫ ủ ữ ệ ủ ố ng d n d li u không Cách ghép n i này r tquan tr ng, nh v y mà các m c tín hi u trên đ ườ ẫ ữ ệ ứ ọ ệ ữ i ra 3 tr ng thái đ trao đ i thông tin gi a b nh h ứ ể ổ ố ạ ị ả ạ c xác đ nh b ng chân các đ ng. H ng truy n d li u đ ữ ệ ị ượ ườ ữ ệ ng d li u cho phép qu n B sang A. Vi c chuy n h DIR: DIR = 0, d li u đ ả ữ ệ ượ ể ướ ệ ộ ệ lý đ n gi n b ng tín hi u /IOR. Ta có th n i tr c ti p ra chân DIR. Qua đó đ m b o b đ m ể ố ự ế ệ ằ ch cho phép d li u đ a vào t ệ bên ngoài đ a lên bus d li u c a máy tính khi PC th c hi n ự ữ ệ ư m t quá trình truy nh p đ c (/IOR = 0) ỉ ộ ậ ọ
Ch
ng 5: Ghép n i trao đ i tin song song
ươ
ố
ổ
Ch
ng 5
ươ
Ghép n i trao đ i tin song song ổ
ố
5.1 Kh i ghép n i song song đ n gi n
ố
ơ
ố
ả
C a vào đ n gi n ử ồ ộ ộ ả
TBN vào đ ả : G m m t b gi ừ ể ư i mã đ a ch - l nh và các c a vào 3 tr ng thái đ đ a ử 0 - Dn) thanh ghi đ m s li u t ườ ệ ạ ng dây s li u (D ố ệ ỉ ệ ị ố ệ ừ
- A
A 0
n
i mã đ a
ị
Gi ả chỉ
RD
D 0
DI
0
D 1
DI
1
DI
D 2
2
D 3
DI
3
ả
ơ
ơ tr c ti p s li u song song t ự ế ố ệ c a MVT ủ
ơ ồ ử ả : Cũng có b gi ố ệ ư
S đ c a vào đ n gi n ộ ả ừ
ị ố
i mã đ a ch - l nh, nh ng có thêm các thanh ghi ư ể MVT. L i ra có th có thêm s đ 3 tr ng thái đ cô
ỉ ệ ể
ơ ồ
ạ
• C a ra đ n gi n ơ ch t s li u ra đ ghi s li u đ a ra t ể l p TBN v i bus c a MVT ủ ậ
ử ố ố ệ ớ - A
A 0
n
Gi
i mã đi
ả
ch ạ ỉ
WR
DO
D Q
0
D 0
C
DO
D Q
1
D 1
C
DO
D Q
2
D 2
C
DO
D Q
3
D 3
C
C a ra đ n gi n không có đ i tho i ạ
ử
ả
ố
ơ
35
5.2 Các vi m ch đ m, ch t (74LS245, 74LS373)
ố
ệ
ạ
5.2.1. Vi m ch đ m 74LS245:
ệ
ạ
Inputs
Function
Outputs
B bus DIR A bus Output Input Input Output High Impedance
L H X
A = B B = A Z
G L L H
ạ ể ệ ề
ườ ề ạ
ệ (VXL 8086). Vi m ch này có 2 đ m ch ho t đ ng, khi /G ạ ộ Vi m ch 74LS245 cho tín hi u vào ra 2 chi u dùng đ đ m s li u trong máy tính PC/XT ố ệ ng đi u khi n chính, tín hi u /G là tín hi u cho phép vi ệ ể m c cao, các chân d li u c a vi m ch ạ ở ạ ệ tr ng thai tr kháng cao. ở ữ ệ ủ ở ứ ạ
c truy n t A sang B, ữ ề ị ượ ề ừ
5.2.2. Vi m ch ch t 74LS373:
ạ
ố
B sang A c truy n t ng Tín hi u DIR xác đ nh chi u truy n d i u. DIR = 1 d liêu đ c l ượ ạ ệ ề i, khi DIR = 0 d li u đ ữ ệ ượ ữ ệ ề ừ
ồ ạ ạ ạ ạ ố ổ
ạ ố ữ ứ ỉ
ể ệ
ủ ủ
36
ườ ng Vi m ch bao g m các vi m ch ch t và các vi m ch c ng 3 tr ng thái. Vi m ch này th c dùng đ ch t đ a ch trong máy PC/XT và ch t d liêu trong các ng d ng ghép n i máy đ ể ố ị ượ ố ạ ng tín hi u đi u khi n là /OE và LE. Tín hi u /OE là tín hi u cho phép ho t tính. Có 2 đ ườ tr ng thái tr kháng cao. Tín đ ng c a vi m ch. Khi /OE ạ ộ ng. Đ i v i 74LS373, khi hi u LE là tín hi u cho phép ch t, tín hi u này tích c c ệ ề ệ m c cao, các c ng c a vi m ch ổ ở ứ ố ạ ở ạ m c d ự ở ứ ươ ụ ệ ở ố ớ ệ ệ
ổ
ệ ượ ư ứ c đ a ra c ng Q. Khi LE chuy n sang m c ể ổ
ng 5: Ghép n i trao đ i tin song song ố m c cao, tín hi u đ a vào t c ch t l c ng Q đ
c ng D đ ừ ổ i.
Ch ươ LE ở ứ th p, tín hi u ấ
ệ ở ổ ư ượ ố ạ
5.3 Vi m ch PPI 8255A
ạ
5.3.1. Gi
i thi u chung
ớ
ệ
Vi m ch vào ra song song l p trình đ ậ
ạ ế ạ ượ ạ ượ ậ ả
ạ ộ ể ả ớ
ườ ụ ấ ố
c PPI (Programable Parallel Interface) 8255 do hãng c đ ghép Intel ch t o. Ngoài kh năng cho phép t o m t giao di n song song l p trình đ ệ ể ộ n i v i máy tính, nó còn có th ho t đ ng v i các ch đ khác nhau và kh năng l p xoá bit ậ ế ộ ố ớ c a C cho đ i tho i. Vi m ch 8255 này r t thông d ng, th ng có trong các máy tính PC/XT, ạ ạ ử t b trao đ i tin khác. PC/AT và các thi ổ ế ị
§iÒu khiÓn nhãmA
8
i
Cæng A 8
PA
- PA 0
7
D
- D 7 0
IO
4
i
Cæng C nöa cao 4
PA
- PA 7
4
i
h g c ä ® §Öm c sè i g « liÖu l n Ó h k u Ò Đ
IO
RD
4
§iÒu khiÓn nhãmB
Cæng C nöa thÊp 4
WR A
1
- PA PA 3
0
A 0
IO
Reset
8
Cæng B 8
PA
- PA 0
7
CS
IO
ủ
ề
ề ố ệ t: t c là b gi
i mã đ a ch l nh cho các thanh ghi đ m và thanh
S¬ ®å khèi cña PPI 8255A
Vi m ch g m ồ : ộ ệ ộ
ữ ỉ ệ
ế ứ
ộ ả
ể ể
ọ
ị
ạ - B đ m s li u đ trao đ i tin v s li u hai chi u gi a PPI và bus c a máy tính. ố ệ ổ - B logic đi u khi n đ c vi ệ ề ể
ng trình kh i phát ng trình kh i phát
ệ ệ
ặ ặ
ươ ươ
ở ở
ầ ử ử ử
đi u khi n c a C có th đ
c dùng
ể ử
ể ượ
ghi đi u khi n. ề Ph n ghép n i v i TBN có : ố ớ C a A: thanh ghi đ m s li u (8 bit), vào ho c ra tuỳ theo ch ố ệ C a B: thanh ghi đ m s li u (8 bit), vào ho c ra tuỳ theo ch ố ệ C a C: Chia làm 2 n a, cao và th p ấ ử Tuỳ theo ch đ s d ng cho b i t ế ộ ử ụ - Trao đ i s li u vào ho c ra ổ ố ệ
ở ừ ề ặ
37
ch đ xác l p và xoá t ng bit
- Đi u khi n ho c đ i tho i v i TBN và VXL khi c a A và B ạ ớ
ặ ố
ử
ể
ở ế ộ
ừ
ậ
ch đ 1 và 2
ề PCi ề
- Đi u khi n ho c đ i tho i v i TBN và VXL khi c a A và B ạ ớ
ử
ể
ở ế ộ
Các m ch đi u khi n n i b : Có các kh i đi u khi n (nhóm A, nhóm B) các c a A, B và C. ề
ử
ể
ể
ề
ạ
ố
ặ ố ộ ộ
5.3.2. Các l nh ghi và đ c các c ng và các thanh ghi đi u khi n ể ổ
ề
ệ
ọ
V i t ỉ ị ệ ớ ổ ợ ệ ạ ọ
ệ ề ể
ệ
ệ
ể
ạ
ọ ch đ 0, không đ c tr ng thái.
ặ ch đ 1 và 2, còn
h p các tín hi u đ a ch (A0, A1), chon vi m ch (CS), và các l nh đ c ghi (RD, WR) ư ử ề ng dây s li u, các c a và thanh ghi đi u ử ọ ể ố ệ ố ệ ườ ự ữ ạ
ạ ạ ở ế ộ
ở ế ộ
ạ
ọ
WR
A1
A0
LÖnh (cña VXL)
CS
RD
§äc cæng A §äc cæng B §äc cæng C
ChiÒu di chuyÓn sè liÖu (víi VXL) Cæng A -> D0 - D7 Cæng B -> D0- D7 Cæng C -> D0- D7 Kh«ng cã gi¸ trÞ D0 - D7 -> Cæng A D0 - D7 -> Cæng B D0 - D7 -> Cæng C D0 - D7 -> Thanh ghi ®iÒu khiÓn Kh«ng cã trao ®æi d÷ liÖu
0 0 1 1 0 0 1 1 X
0 1 0 1 0 1 0 1 X
0 0 0 0 0 0 0 0 1
0 1 1 0 1 1 1 1 X
1 1 1 1 0 0 0 0 X
Ghi cæng A Ghi cæng B Ghi cæng C Thanh ghi ®iÒu khiÓn Tr¹ng th¸i ®iÖn trë cao
c a VXL, ta có các l nh ghi đ c khác nhau cho các c a (A, B, C ) và thanh ghi đi u khi n nh ủ b ng 3.2, t o ra s di chuy n s li u gi a đ ả khi n.ể Nh v y, vi m ch 8255 có đ c đi m là không có l nh đ c thanh ghi tr ng thái mà dùng l nh đ c ọ ư ậ c a C khi vi m ch ử
Các l nh c a 8255A
ủ
ệ
5.3.3. Các t
ừ ề
đi u khi n ể
Control Word (Tõ ®iÒu khiÓn) D7 D6 D5 D4 D3 D2 D1 D0
Mode – Flag 1 = Active
T đi u khi n thi ừ ề ể ế ậ t l p ch đ : ế ộ
Nhãm B Cæng C thÊp 1 = Lèi vµo 0 = Lèi ra
Cæng B 1 = Lèi vµo 0 = Lèi ra
Cæng A 1 = Lèi vµo 0 = Lèi ra
Mode 1 = Mode 1 0 = Mode 0
Mode 00 = Mode 0 01 = Mode 1 0X = Mode 2
38
Nhãm A Cæng C cao 1 = Lèi vµo 0 = Lèi ra
Ch
ươ ổ T đi u khi n l p xoá bit:
ng 5: Ghép n i trao đ i tin song song ừ ề
ố ể ậ
X
X
X
D 7
D 3
D 2
D 1
D 0
C l p/xoá
ờ ậ
0: xoá 1: l pậ
0: L p xóa bit
ậ
PC
000PC
0
1
BitD C
2
5
D D 1 3 2 010PC 3 101PC
011PC 4 110PC
001P 100PC 111
6
7
T ĐI U KHI N L P XOÁ BIT C A VI M CH 8255
Ừ Ề
Ủ
Ậ
Ạ
Ể
A
, A
, CS
D
WR, RD
0
1
- D 7
0
• Ch đ 0 ế ộ
8255A
Port C
Port B
Port A
I/O
I/O
I/O
I/O
PC
- PC
PC
- PC
PB
- PB
- PA
0
3
4
7
0
PA 0
7
Ch đ này còn đ
c g i là ch đ vào ho c ra c s vì:
7 ượ ọ
ớ ế ộ
ế ộ ử ủ ử ặ
đi u khi n ch đ ghi vào thanh ghi đi u khi n ể
ặ ơ ở c s d ng đ c l p v i nhau ộ ậ ượ ử ụ ể ừ ề
ề
ể ượ
ượ ố
ư
ệ
ạ
ố
ườ
ử
ể
7
ế ộ - Các c a A, B, và 2 n a c a c a C đ ử - Các c a có th là c a vào ho c ra tuỳ t ử ử S li u ra đ - c ch t ố ệ ố - S li u vào không đ ố ệ ả - Không có tín hi u đ i tho i v i VXL cũng nh TBN. N u mu n có tín hi u đ i tho i, ph i ế ố ng là c a C) đ các l p lên 1 và sau đó là xoá v 0 b ng ằ ề ậ đi u khi n v i D i c a c a C b i t ớ ể
ở ừ ề
ủ ử
ậ
ộ
ch đ ra.
t l p
ế ậ ở ế ộ
ừ
c ch t ố ạ ớ ệ dùng các bit c a c a nào đó ( th ủ ử cách ghi s li u ho c b ng cách xác l p/ xoá m t bit PC ố ệ = 0. Khi đó c ng C ph i thi ổ - L p xoá t ng bit c a c ng PC -
ủ ử ậ
ặ ờ ệ
ả
ớ
ố
ặ ằ ả ủ ổ ậ i ta có th dùng các bit PC ch đ 0, ng Ở ế ộ ể ậ ể ườ đ đi u khi n ho c đ i tho i v i TBN. Mu n v y ph i ghi l ể ề ạ ớ ặ i đi u khi n ch đ . ghi đi u khi n c a 8255A sau khi đã ghi l ế ộ ể ề
ề i c a c a C đ l p (đ t lên 1) và xoá (xoá v 0) i l nh v i D7 = 0 vào thanh ố ề
ể ể ủ
ờ
39
PC
PC
PC
PC
PC
PC
PC
PC
Port B
Port A
0
1
2
3
4
5
6
7
I/O
I/O
A
STB
IBF
I/O I/O
C a vào
IBF
STB
ử
A
A
B
B
B R T N
R T N
I
• Ch đ 1: ế ộ
PB
- PB
I
0
7
PA 0
- PA 7
C a raử
I/O
I/O
ACK
OBF
OBF
A
A
B
ACK B
Đ i tho i c a B
ạ ử
ố
Đ i tho i c a A
ạ ử
ố
Ch đ này còn g i là ch đ vào ra có đ i tho i v i các bit c a C. Chia thành 2 nhóm. ạ ớ ế ộ ế ộ ử ọ ố
Nhóm A g m c a A đ trao đ i s li u và n a C cao (PC ổ ố ệ ử ử ể ồ ạ ớ 3 – PC7) đ đ i tho i v i ể ố
VXL và TBN.
Nhóm B g m c a B đ trao đ i s li u và n a C th p (PC ổ ố ệ ử ử ể ấ ồ ạ ớ 0 – PC2) đ đ i tho i v i ể ố
VXL và TBN.
Chi u và ch đ 1 c a c a A và B do t ề ừ ề ạ đi u khi n quy t đ nh, còn các tín hi u đ i tho i ế ị ể ệ ố
ủ ử PCi còn ph thu c chi u c a vào hay ra c a c a A, B ế ộ ộ ề ử ủ ử ụ
B: tín hi u yêu c u ng t ch
ng trình cho B PC0 luôn là tín hi u ra INTR ệ ệ ầ ắ ươ
A: tín hi u yêu c u ng t ch
ng trình cho A PC3 luôn là tín hi u ra INTA ệ ệ ầ ắ ươ
B và xác nh n /ACK ậ ế
PC2 luôn là tín hi u vào, nh n các tín hi u yêu c u STB ệ ệ ầ ậ ế t
ả
B c a thi ủ b ngoài cho c a B chung cho c 2 chi u vào hay ra. Còn n a A, n u là c a vào, PC ị nh n /STB ậ ra.
t b ngoài và PC ề 6 nh n /ACK c a thi ử ử 4 ử t b ngoài n u c a A là c a ế ử ế ị ử A c a thi ủ ế ị ủ ậ
i c a c a C là vào hay ra tuỳ t ạ ủ ử ừ ề đi u khi n ch đ ể ế ộ Các bit còn l Ch đ ra: ế ộ
M i khi d li u đ ổ ệ
ỗ ể ế ữ ệ ọ ạ
ọ
c ghi ra c ng, tín hi u /OBF ữ ệ ượ chuy n sang m c tích c c 0 đ thông báo cho TBN ứ ể ự c ch t c ng ra và s n sàng cho bi t d li u đã đ ẵ ố ở ổ ượ TBN đ c. Khi đ c đ c d li u, TBN kích ho t tín ọ ượ ữ ệ t đã đ c d li u, khi đó tín hi u /ACK cho bi ữ ệ ế đ ng chuy n v m c cao. hi u /OBF đ ể ề ứ c t ượ ự ộ ệ ệ
t d li u đã đ /OBF (Output Buffer Full): Là tín hi u raệ ố c ch t ượ ế ữ ệ
40
thông báo cho TBN bi c ng ra A ho c B. ở ổ ặ
C ng A: Ch đ 1, chi u ra ế ộ
ổ
ề
Ch
ng 5: Ghép n i trao đ i tin song song
ố
ổ
TBN làm cho chân OBF chuy n lên ệ ậ ể
ươ /ACK (Acknowledge): Tín hi u xác nh n báo v t m c cao. Tín hi u này thông báo cho 8255 bi
ề ừ t TBN đã nh n d li u. ứ ế ệ ậ ữ ệ
ng dùng đ ng t VXL m i khi TBN g i l INTR: Tín hi u này thông th ệ ườ ể ắ ử ạ ỗ ệ i tín hi u
/ACK
INTE (Interrupt Enable): Bit n i, dùng đ cho phép hay c m tín hi u INTR. ể ệ ấ ộ
c liên k t v i PC6 n u c ng A ho t đ ng ch đ ra. PC4 n u ượ ế ổ ế ớ ạ ộ ở ế ộ ế ở
- INTEA đ ch đ vào ế ộ
ủ ổ ế ớ ề - INTEB liên k t v i PC2 v i c chi u ra và vào c a c ng B ớ ả
Ch đ vào:
ế ộ
ậ ệ ố
ấ
ộ TBN vào 8255 s đ ẽ ượ
/STB: Chân nh n tín hi u xung ch t. Khi có m t xung m c th p tác đ ng vào chân này, ứ ộ d li u đ a t ố ở c ch t ữ ệ ư ừ c ng vào. ổ
ệ ự
IBF: Khi tín hi u /STB tích c c tín hi u IBF c chuy n sang m c cao, báo cho TBN
ệ ứ ể t 8255 đã ch t d li u
c ng vào. Tín ọ ấ
ẽ ở ề ứ ố ở ổ ệ
s đ ẽ ượ bi ố ữ ệ ở ổ ế hi u này s tr v m c th p khi VXL đ c tín ệ hi u đang ch t c ng (khi tín hi u /RD tích ệ c c)ự
ắ ệ ự
ệ
C ng A: Ch đ 1, chi u vào ế ộ
ổ
ề
INTR: Tín hi u ng t VXL, tích c c khi /STB chuy n sang m c cao. Khi có tín hi u /RD tín hiêi\ ự ẽ
Port B
PC
PC
PC
PC
PC
PC
PC
PC
Port A
0
1
2
3
4
5
6
7
I/O
I/O
STB
A
ACK A
A R T N
ứ ể này s thôi tích c c. ụ • Ch đ 2: ế ộ
PB
- PB
I
PA 0
0
7
I/O (Ch đ 0) Đ i tho i (Ch đ 1)
ế ộ ế ộ
ạ
ố
IBF
OBF
- PA 7 (2 chi u)ề
A
A
ử
tho i 2 chi u
C a B có th ch ể ở ế đ 0 ho c 1 ặ ộ
C a A ở ế ộ ố ử ạ
ch đ đ i ề
ử ỉ
ệ Ch đ này ch dùng cho c a A v i vào ra hai chi u và các bit PC3 – PC7 dùng làm tín hi u ể ặ ch đ 0 ho c 1, chi u vào hay ra có th đ t ề ớ ạ ộ ề ế ộ ể ặ ở
41
ế ộ ạ ử đi u khi n. ừ ề ể h i tho i. C a B lúc này có th ho t đ ng ộ b ng t ằ
t l p:
ch đ 0. C ng A vào, B ra, C cao vào, C th p ra.
ấ
ổ
đi u khi n là 98H ể
ế ậ ở ế ộ ị ủ ừ ề
ở ế ộ
ch đ 1, vào. C ng A ho t đ ng ổ
ạ ộ
ở ế ộ
ấ ch đ 0, ra. C ng C cao ra, c ng C th p
ổ
ổ
ổ
đi u khi n: 87H ho c 86H
• thi ả
ể
ặ
Ví d :ụ t ta c n thi Gi ầ ế PPI ho t đ ng ạ ộ -> Ta có giá tr c a t C ng B ho t đ ng ạ ộ không quan tâm - > Giá tr t ị ừ ề
• T tr ng thái ừ ạ
ườ ng khi s d ng 8255 ử ụ ở ế ộ ươ ề
ch đ 1 và 2, ta th ng trình. Tuy nhiên ta có th s dung ph ươ ườ ươ ạ
t đ ể ế ượ ủ ị
ạ ỉ ủ ủ ạ ạ ọ ị
c các thông tin sau: ng dùng ph ể ng pháp đi u khi n Thông th ằ ng pháp h i vòng tr ng thái b ng b ng ng t ch ể ử ỏ ắ ằ ỉ ổ cách đ c c ng C đ bi c tr ng thái ho t đ ng c a 8255. Do đó ta có th coi đ a ch c ng ể ạ ộ ọ ổ C trong ch đ 1 và 2 là đ a ch c a thanh ghi tr ng thái c a 8255. Đ c thanh ghi tr ng thái ế ộ t đ này, ta có th bi ể ế ượ
A) hay B (INTRB)
A=1, IBFB=1)
Có yêu c u ng t ch ng trình đ trao đ i tin c a các c a A (INTR ầ ắ ươ ử ủ ể ổ
Các thanh ghi đ m s li u vào đã có s li u (IBF ố ệ ố ệ ệ
A = 0, /OBFB = 0)
Các thanh ghi đ m ra đã có s li u (/OBF ố ệ ệ
Ho c riêng v i ch đ 2, khi có ng t x y ra, ta c n ph i đ c t tr ng thái đ bi ả ọ ừ ạ ầ ớ ặ
c d li u hay đã g i đ ể ế ượ c t đ c d li u đ có các ượ ữ ệ ử ượ ữ ệ ể
5.3.4. Ghép n i 8255A v i MVT và TBN
ố
ớ
ng ng. ắ ả ế ộ nguyên nhân gây ra ng t là do 8255 đã nh n đ ậ ắ ho t đ ng t ạ ộ ươ ứ
ng trình v i VXL và TBN nh hình d S đ ghép n i c a vào ra theo ch ố ử ươ ư ớ ướ
i. PPI 8255A ng dây ơ ồ ữ ữ ể ườ
8
D
– D 7
0
7
INTR
INTR AINTR
8
B
– PA
PA 0
7
RD WR Reset
– D D 0 RD WR RST
VXL
TBN
PC
8255 A
A 0 A 1
8
PA
– PA 7
0
A
- A n
2
đ t gi a VXL và TBN, đóng vai trò trung chuy n tin gi a VXL và TBN qua các đ ặ c a MVT và TBN. ủ
Gi i mã ả đ a ch ỉ ị
CS
Ghép n i 8255A v i MVT và TBN
ớ
ố
42
Ch
ng 5: Ghép n i trao đ i tin song song
ố
ươ •
Ph n ghép n i v i MVT ầ
ổ ố ớ
Các tín hi u v s li u (data bus) D0 – D7, đ a ch th p (A0,A1), l nh đ c (RD), l nh ệ ọ ỉ ấ
ệ ghi (WR) đ i vào t ề ố ệ c n i th ng v i các l ẳ ớ ượ ố ệ ị ng ng c a PPI 8255A ươ ứ ủ ố
2 – An)
Tín hi u /CS (Chip Select) c a PPI đ ủ ệ c n i v i b gi ượ ố ớ ộ ả i mã các đ a ch cao (A ị ỉ
c a VXL ủ
A , INTRB) c a 8255 đ
Các tín hi u ra yêu c u ng t ch c n i vào l ệ ầ ủ ượ ố ố i
vào INTR c a VXL qua m t vi m ch logic OR ủ ắ ộ ng trình (INTR ươ ạ
• Ph n ghép n i v i thi t b ngoài: ố ớ ầ ế ị
Tuỳ thu c lo i TBN, s bit c a đ ủ ườ ạ ộ ố ng dây s li u và ph ố ệ ươ ng th c trao đ i tin mà ta có ổ ứ
cách m c đ ng dây khác nhau. ắ ườ
ề ể
ng dây PA, PB, PC đ u đ ề ượ ẳ c dùng đ trao đ i s li u ho c tin v ặ ổ ố ệ ch đ này ọ Ở ế ộ ự ớ ườ ạ ể ộ
Ch đ 0: Ba đ ế ộ đi u khi n và tr ng thái m t cách bình đ ng v i nhau và tuỳ ý l a ch n. ề có th :ể
ổ ố ệ ữ ạ ầ ố ỉ - Không c n đ i tho i gi a 8255 và TBN, ch có trao đ i s li u trên 1 trong 3
c ngổ
ế ầ ề ề ử ụ ủ ể ạ ọ - N u c n tin v đi u khi n hay đ c tr ng thái c a TBN ta s d ng thêm các
c a khác cho m c đích này ngoài c a trao đ i s li u ổ ố ệ ử ử ụ
Ch đ 1: Ch có hai c a A,B trao đ i s li u đ c l p nhau, còn các đ ỉ ế ộ ườ
ủ ng PCi c a ng này có chi u và vai ổ ố ệ ử ộ ậ trên. Các đ ở ề ườ
ử c a PC đ dùng đ h i tho i cho các c a A,B ể ộ ử trò xác đ nh do đó không th thay đ i. ể ị ạ ể ổ
Ch đ 2: Ch cho c a PA v i s li u vào/ra hai chi u. Các bit c a PC cũng có vai trò ớ ố ệ ử ủ ề ỉ
và chi u xác đ nh ế ộ ề ị
các ch đ b t tay (đ i tho i), gi a 8255 và TBN ch trao đ i hai tín hi u h i đáp mà Ở ế ộ ắ ữ ệ ạ ố ỏ ổ ỉ
t b ngoài:
ộ ố ứ
ụ
ớ
ố
ế ị
thôi M t s ng d ng ghép n i 8255 v i thi
• M ch ghép n i 8255 ch đ 0: ạ ố ở ế ộ
ớ Ở ớ ổ ố
- s qua c ng PB có chi u vào. C ng C đ ng t ự ổ ố ổ
ố i thi u cách ghép n i 8255 v i máy in qua c ng PA có chi u ra, và ghép n i hình 4.x gi ề ệ v i m t b bi n đ i t c dành cho các tín ớ ượ ề ổ ươ ộ ộ ế hi u đ i tho i. Trong đó: ạ ệ ố
N a C th p là c a vào, đ c tr ng thái c a máy in và ADC ử ử ủ ạ ấ ọ
ậ ạ - PC0 cho tr ng thái máy in b n (busy)
ủ - PC1 cho tín hi u ACK c a máy in ệ
ủ ệ - PC2 Cho tín hi u EOC (End of Convertion) c a ADC
N a C cao đ đ a ra các tin v đi u khi n ể ề ề ể ư ử
43
ố ữ ệ ư ệ - PC4 đ a ra tín hi u ch t d li u cho máy in
– PA
8
ư ệ
7
D
– D 7
0
7
INTR
0
Máy in
/ACK Busy
PC PC
1
Data Strobe
PC
RD WR Reset
– D D 0 RD WR RST
4
PB
– PB
VXL
0
7
8255 A
A 0 A 1
EOC
ADC
PC
3
Start
A
PC
- A n
2
5
- PC5 đ a ra tín hi u Start cho ADC. PA 0
Gi i mã ả đ a ch ỉ ị
CS
Ghép n i 8255A v i MVT và TBN
ch đ 0
ố
ớ
ở ế ộ
•
ch đ 1:
Ghép n i 8255 ố
ở ế ộ
8
– D
D 0
7
3
0
INTR
PC PC
0 PA
Máy in
RD WR Reset
/ACK Busy
– D D 7 RD WR RST
Data Strobe
VXL
0
A A
8255 A
1
PB
ADC
- A
EOC Start
A 2
n
i mã Gi ả đ a ch ỉ ị
CS
Ghép n i 8255A v i MVT và TBN
ch đ 1
ố
ớ
ở ế ộ
ươ
ng trình trao đ i tin cho 8255A ổ
Ch Tuỳ theo cách m c và TBN, ch
ng trình c n có các kh i l nh c b n sau:
ầ
ắ
ươ
1.
ỉ ấ
ừ ề
c xác đ nh b i: ị
đi u khi n này đ ể
Kh i t o ớ ừ ề
ơ ả ể ủ ượ
ớ ị ở
ủ
ế ộ ủ ề
2.
ố ệ ở ạ : đó là lênh ghi vào thanh ghi đi u khi n c a 8255 v i đ a ch th p A0, ề A1 = 11 t đi u khi n. Các bit t i t ể - Ch đ c a các c a ử - Chi u (vào/ra) c a các c a ử ầ ư ộ
ể : C n đ a n i dung c a các bit cho các c a dùng đ đi u khi n
ề
ể ề ả
ủ ố
ế t
ạ
ầ
ng h p
ợ ở ế ộ
ư
ể
ộ
ậ ư
3.
:
ạ
Đi u khi n TBN ử ủ ể ch đ 1,2 các bit nay là các bit PC i c a đ i tho i, ta không c n ph i vi TBN. N u ế ở ế ộ ch đ 0 ta có th dùng m t trong hai cách sau: l nh đ a giá tr ra n a. Còn tr ườ ữ ị ệ i c a c a PC - L p/ xoá t ng bit PC ủ ử ừ - Đ a tin ra các bit c a các c a ử ủ Đ c và ki m tra tr ng thái ể ọ - Các l nh đ c vào ệ
ọ
44
Ch
ng 5: Ghép n i trao đ i tin song song
ươ
ổ
ố
ạ
ế ử
ủ
ể
ể
ị
o Thanh ghi tr ng thái n u c a dùng ch đ 1, 2 ế ộ ch đ 0 dùng đ ghi tr ng thái c a TBN. o M t c a b t kỳ ạ ở ế ộ ộ ử ấ - L nh và logic (AND) đ ch n các bit không c n ki m tra ầ ể ắ - L nh so sánh (CMP) v i các giá tr 1 c a bit đó ủ ớ - L nh tr v v trí có l nh đ c tr ng thái n u k t qu so sánh không đúng tr ng thái ế ệ
ở ề ị
ế
ạ
ả
ạ
ọ
ệ ệ ệ c n xét ầ
4.
ổ ố ệ : Trao đ i s li u
ể ố ệ
ủ
- Đ a s li u vào (IN đv VXL h 86) hay chuy n s li u MOV (c a VXL 8085) - Đ a s li u ra (OUT ) hay chuy n s li u MOV
ọ ể ố ệ
ư ố ệ ư ố ệ
45
5.4 Ghép n i song song qua c ng máy in
ố
ổ
5.4.1. Gh i thi u chung
ệ
ớ
ng đ ổ ệ ượ ử ụ ấ
ườ ổ ậ ề ệ ộ ơ
C ng máy in là giao di n th ả ơ i thi u v thi ể ầ ố ế ị
ụ ể t b ph n c ng thêm vào. C ng này cho phép đ a vào t ớ ổ ể ứ ề ư ạ ườ ề
ng báo tr ng thái và 8 đ ổ ng đi u khi n, 5 đ ườ ấ ư ấ ể ầ ở
ố c s d ng nhi u nh t trong các ng d ng ghép n i ớ máy tính đ n gi n, do tính ph c p và đ n gi n trong vi c ghép n i và đi u khi n c ng v i ố ả i 13 bit và yêu c u t ầ ứ ề ườ ng đ a ra 12 bit song song, trong đó có 4 đ ư d li u. Trong h u nh b t kỳ PC nào ta cũng có th tìm th y c ng máy in ầ phía sau. Đ u ữ ệ n i này có d ng DB 25 chân (gi c cái – female). ố ạ ắ
ổ ượ ư ẩ ầ
5 ch đ ho t đ ng c a c ng máy in nh sau: Các c ng song song g n đây đ ế ộ ạ ộ ẩ ư
c chu n hoá theo chu n IEEE 1284 đ a ra năm 1994. ẩ ủ ổ ả ng thích (Compatibility mode) Chu n này mô t 1. Ch đ t ế ộ ươ
2. Ch đ Nibble ế ộ
3. Ch đ Byte ế ộ
4. Ch đ EPP ế ộ
5. Ch d ECP ế ộ
ượ ỉ
ế ộ ố ộ
ế ộ ớ ở ữ ệ ư ả ề ế ộ ư
ủ ổ ử ụ ế ộ
lâu. Ch đ này ch cho c bi Ch đ c s (hay còn g i là Centronics mode) đ t d n t ế ế ừ ọ ữ ệ phép đ a d li u theo m t chi u ra (output), v i t c đ t i đa 150kB/s. Mu n thu d li u ộ ố ớ ố (input) ta ph i chuy n sang ch đ Nibble hay Byte. Ch đ Nibble có th cho phép đ a vào 4 ể ể ế ộ bit song song m t l n. Ch đ Byte s d ng tính năng song song hai h ng c a c ng máy in ướ ộ ầ đ đ a vào m t byte. ể ư ộ
Đ đ a ra m t byte ra máy in ( ho c các thi ả t b khác) trong ch đ c s , ph n m m ph i ế ộ ơ ở ế ị ề ầ ặ
ự
c sau: ổ
ể ư th c hi n các b ệ (1) Vi ấ ứ ữ ệ (2) Ki m tra máy in có b n không, n u máy in b n, nó s không ch p nh n b t c d li u t d li u ra c ng máy in (ghi vào thanh ghi d li u) ữ ệ ẽ ộ ướ ế ữ ệ ể ấ ậ ậ
46
ậ ế nào, do đó d li u ghi ra lúc đó s b m t ẽ ị ấ ữ ệ
Ch
ng 5: Ghép n i trao đ i tin song song
ố
ươ (3) N u máy in không b n, đ t chân Strobe (chân 1) xu ng th p (m c 0), đ báo v i máy
ổ ậ
ứ ế ể ấ ố ớ
in là đã có d li u trên đ ữ ệ ề ặ ườ
ng truy n ( chân 2 - 9) (4) Sau đó ch 5 microgiây và đ t chân Strobe lên cao (m c 1). ặ ứ ờ
ế ị ợ
t b ngoài. ả Ch đ m r ng (EPP) và nâng cao (ECP) s d ng các thi ệ ạ ớ ế ị ể ố
ệ ạ ế ậ ự ắ ậ ạ
ợ ệ
ể ớ ố ố ế ộ
5.4.2. C u trúc c ng máy in
ấ
ổ
t b ph n c ng tích h p thêm ế ộ ở ộ ầ ứ ử ụ ầ vào đ th c hi n và qu n lý vi c đ i tho i v i thi ch đ này đ cho ph n ể ự Ở ế ộ t l p s b t tay thích h p. Do đó c ng ki m tra tr ng thái máy in b n, t o xung strobe và thi ể ứ ch c n s d ng m t l nh vào ra đ trao đ i d li u nên giúp tăng t c đ th c hi n. Khi đó ộ ệ ộ ự ổ ữ ệ ỉ ầ ử ụ c ng này có th đ a d li u ra v i t c đ 1 – 2 MB/s. Ngoài ra ch đ ECP còn h tr s ỗ ợ ử ộ ể ư ữ ệ ổ d ng kênh DMA và có thêm b đ m FIFO. ụ ộ ệ
ẩ ạ ầ ố
ư ạ
Chu n IEEE 1284 đ a ra 3 đ u n i dùng cho c ng máy in. D ng A (DB25) có th th y ổ ng th y ấ ở t h n và có thêm 2 đ ể ấ ở ạ máy in, và d ng C, 36 chân, gi ng d ng ố ng tín hi u dành cho các ệ ố ơ ạ ườ ệ ộ
h u h t các máy PC, d ng B (36 chân) th ườ ầ B nh ng nh h n, có các thu c tính đi n t thi ế ỏ ơ ư t b đ i m i sau này. ớ ế ị ờ
Tªn M« t¶ Híng (In/Out) Thanh ghi
Byte ®îc in
§êng d÷ liÖu D0 - D7
X¸c nhËn (Acknowledge) M¸y in bËn HÕt giÊy ( Paper Empty) Lùa chän ( Select ) Tù n¹p giÊy ( Auto Feed) Lçi §Æt l¹i m¸y in
Sè hiÖu ch©n (DB25) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 nStrobe Data 0 Data 1 Data 2 Data 3 Data 4 Data 5 Data 6 Data 7 nAck Busy Paper-Out / Paper-End Select nAuto-Linefeed nError / nFault nInitialize nSelect-Printer / nSelect-In
18 - 25 Ground In/Out Control Data Out Data Out Data Out Data Out Data Out Data Out Data Out Data Out Status In Status In Status In In Status In/Out Control In Status In/Out Control In/Out Control Gnd
47
nXXXX: TÝch cùc ë møc thÊp
B ng s đ chân c a c ng máy in
ủ ổ
ơ ồ
ả
ng các m c logic TTL. Tín hi u ra c a c ng máy in th ủ ổ ệ ườ ở ứ
Address 378h - 37Fh 278h - 27Fh Cæng LPT 1 LPT 2
ư ổ ỉ ị ỉ ộ
bàng d ị i: nh Khi kh i đ ng BIOS gán đ a ch cho các c ng máy in và l u thông tin đ a ch này trong b ớ ở ị ở ộ đ a ch cho ỉ ướ ở
Đ a ch b t đ u ỉ ắ ầ ị Mô tả
0000:0408 Đ a ch c b n c ng LPT1 ỉ ơ ả ổ ị
0000:040A Đ a ch c b n c ng LPT2 ỉ ơ ả ổ ị
0000:040C Đ a ch c b n c ng LPT3 ỉ ơ ả ổ ị
0000:040E Đ a ch c b n c ng LPT4 ỉ ơ ả ổ ị
#include
void main(void) { unsigned int far *ptraddr; /* Pointer to location of Port Addresses */ unsigned int address; /* Address of Port */ int a;
ptraddr=(unsigned int far *)0x00000408;
for (a = 0; a < 3; a++) { address = *ptraddr; if (address == 0)
printf("No port found for LPT%d \n",a+1);
else
printf("Address assigned to LPT%d is
%Xh\n",a+1,address); *ptraddr++; } }
48
Ch ng trình ví d đ c thông tin đ a ch c a các c ng máy in có trong máy tính: ươ ụ ọ ỉ ủ ổ ị
Ch
ng 5: Ghép n i trao đ i tin song song
ươ
ổ
ố
5.4.3. Các thanh ghi c a c ng máy in:
ủ ổ
1. Thanh ghi d÷ liÖu (Data Register)
§Þa chØ Tªn Read/Write Sè hiÖu bit Base + 0
Write
Data Port
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
M« t¶ Data 7 Data 6 Data 5 Data 4 Data 3 Data 2 Data 1 Data 0
ị ọ ổ
Đ a ch c s (Base address) th ườ
ữ ệ ng g i là c ng d li u (Data port) hay Thanh ghi d li u ữ ệ ng s d ng đ đ a d li u ra các chân tín hi u ( Chân 2 – 9). Thanh ghi ệ c giá tr mà ghi ra ẽ ườ ể ư ữ ệ ế ọ ữ ệ ở ổ ử ụ ỉ ị
ượ c ng này. ỉ ơ ở (Data Register) th này th g n nh t. N u c ng máy in là hai chi u thì ta có th thu gi ầ ng là thanh ghi ch ghi. N u ta đ c d li u ể c ng này ta s thu đ li u vào t ừ ổ ườ ấ ế ổ ữ ệ ề
2. Thanh ghi tr¹ng th¸i ( Status Register):
Tên ị
Đ a ch ỉ Base + 1 Status Port Read/Write Read Only
S hi u bit ố ệ Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Mô tả Busy Ack Paper Out Select In Error IRQ (Not) Reserved Reserved
Thanh ghi tr ng thái là thanh ghi ch đ c. B t kỳ d li u nào vi t ra c ng này đ u b b ạ ữ ệ ề ấ ổ
c t o b i 5 đ ổ ỉ ọ ườ ệ ớ ộ
ượ ạ ể ự ằ ạ
chân 11, bit 7 s có giá tr logic 0. T ầ ng t ự ớ ươ ẽ ế ệ ở ộ ị
49
ị ỏ ế qua. C ng tr ng thái đ ng tín hi u vào (Chân 10, 11, 12, 13, 15), m t bit ạ tr ng thái ng t IRQ và 2 bit đ dành. Chú ý r ng bit 7 (Busy) là đ u vào tích c c th p, nghĩa là ấ ắ khi có m t tín hi u +5V v i bit 2 (nIRQ) n u có giá tr 1 có nghĩa là không có yêu c u ng t nào xu t hi n. ệ ắ ấ ầ ị
3. Thanh ghi ®iÒu khiÓn ( Control Register):
Tªn Read/Write Sè hiÖu bit M« t¶ §Þa chØ
Base + 2 Control Read/Write Port
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Unused Unused Enable Bi-Directional Port Enable IRQ Via Ack Line Select Printer Initialize Printer (Reset) Auto Linefeed Strobe
c d đ nh là ch ghi. Khi m t máy in đ ỉ ộ ố ớ ượ
ượ ự ị c s d ng. Đó là các đ c n i v i máy tính, 4 ng Strobe, Auto Linefeed, Inittialize và ẽ ượ ử ụ ề
đ ườ Select Printer, t ườ ng Initialize. Thanh ghi đi u khi n đ ể ng đi u khi n s đ ấ ả ề ề ể t c đ u là đ u ra đ o tr đ ầ ừ ườ ả
ế ộ ề ắ ộ
chi u. Đ t bit 5 cho phép thu đ li u vào qua đ ng Data 0 – 7. ể ữ ệ ặ
Bit 4 và 5 là các bit đi u khi n n i. Bit 4 cho phép ng t và bit 5 cho phép ch đ vào ra 2 ề ườ 4. Thanh ghi ®iÒu khiÓn më réng ECR (Extended Control Register ):
§Þa chØ Function
Bit Base + 402H 7:5
50
Selects Current Mode of Operation 000 Standard Mode 001 Byte Mode 010 Parallel Port FIFO Mode 011 ECP FIFO Mode 100 EPP Mode 101 Reserved 110 FIFO Test Mode 111 Configuration Mode 4 ECP Interrupt Bit 3 DMA Enable Bit ECP Service Bit 2 FIFO Full 1 FIFO Empty 0
Ch
ng 5: Ghép n i trao đ i tin song song
ươ
ố
ổ
5.4.4. EPP - Enhanced Parallel Port
̃ ượ ́ ở ự ̉ ́ ́ ́ ̃
̉ ̀ ́ ́ ̉ ̀ ́ ̀ ̉
ờ ̀ ự ữ ́ ̉ ̀ ́ ̣ ́
́ ữ ́ ử ưở ớ ̉ ̀ ̀ ́ ̉ ́ ́ ̉ ́ ̣ ́ ̀ ̀ ̃ ̀
ng t c noi đên trong phân sau. EPP co tôc đô truyên d liêu theo tiêu chuân la t 500KB/s t ̀ ừ ữ ́ ́ ̀ ́ ́ ̣ ̀ ̣ ̉
̀ ̀ ́ ́ ́ ̣ ̀ ̣ ́ ̉ ̣ ́ ̣ ́ ́ ̣
ư ́ ́ ́ ̣ ̣ ̉ ̣ ̣ ̉ ̀ ̀ ́ ́ ́ ̣
c thiêt kê b i s liên kêt gi a cac hang Intel, Xircom Công song song nâng cao (EPP) đa đ ữ c thiêt kê theo chuân va sau đo la chuân IEEE & Zenith Data Systems. Công EPP ban đâu đ ượ ́ 1284 ra đ i năm 1994. EPP co hai chuân: EPP 1.7 va EPP 1.9. Co môt vai s khac nhau gi a cac i cac thao tac x ly cua thiêt bi. Vân đê nay se con chuân nay ma chung co nh ng anh h ớ đ i ượ 2MB/s. Điêu nay cho phep cac thiêt bi phân c ng tai cac công tao ra tin hiêu băt tay (tin hiêu ứ ư ̉ stroble, đê phân mêm x ly chung, vi du nh cua moc nôi, hôi thoai) chăng han nh tin hiêu ử Centronics.
EPP đ c s dung rông rai h n ECP. EPP khac v i ECP ̃ ơ ượ ử ớ ̣ ̣ ́ ̃ ̉ ́ ́ ́
̀ ữ ̣ ̀ ̉ ̀ ̀ ̉ ́ ̉ ́ ̀ ́ ̣ ̣ ̣
́ ự ́ ̀ ̣ ̀ ́ ̣ ̣ ̣ ̣ ̣ ́ ̣ ́ ́ ̀
̀ ̀ ̀ ̉ ̣ ́ ̣ ̣ ́ ̀ ́ ̣ ̣ ̀ ̉
chô công EPP phat ra cac tin ở no t hiêu điêu khiên va điêu khiên tât ca qua trinh truyên d liêu t i thiêt bi ngoai vi. Bên canh ́ ớ ̣ ừ đo thi ECP lai yêu câu thiêt bi ngoai vi co s “hôi thoai” tr lai b i môt tin hiêu moc nôi. Điêu ̣ ở ở nay la không mêm deo cho viêc thiêt lâp môt liên kêt logic va nh vây cân co môt bô điêu khiên ̀ ư ̣ chuyên dung hoăc môt chip ngoai vi ECP. ̣ ̣ ̣ ̣
• EPP Hardware Properties (cac đăc tr ng phân c ng EPP) ̀ ứ ư ́ ̣
ng ng) đ ươ ứ ̣ ́ ̣ ̣ ̣ ́ ́ ̣ ́ ́ ́ ́
Khi s dung chê đô EPP, môt tâp cac tac vu khac nhau (co tên t ử ng dây tin hiêu. Cac tin hiêu nay đ ̃ ườ ượ ử ́ ̣ ́ ́ ̣ ̀ ̉ ̉ ́ ̣ ́
̀ ́ ̉ ̉ ̀ ̉ ̀ ́ ̀ ̣ ̀ ̀ ́
ả ̀ ́ ́ ̉ ̉ ̃ ́ ́ ̀ ̣ ̀ ́ ̉ ́ ̀
c săp xêp trên c chi ra trong bang 4. Chung s dung cac tên môi đ ượ chung trong SPP va EPP trong cac bang mô ta vê công song song va cac tai liêu. Điêu nay co thê ̉ ̣ ở lam cho no rât c ng nhăc đê chi ro chinh xac nh ng gi đang x y ra. Măc du tât ca cac tai liêu ữ ́ ứ đây đêu se s dung tên theo EPP. ̃ ử ̀ ̣
Pin
SPP Signal
EPP Signal IN/OUT Function
ấ
ứ
ể ệ
1
Strobe
Write
Out
ứ ỉ
2-9
Data 0-7
Data 0-7
n d
M c th p th hi n m t chu kỳ ghi, m c cao ộ ch đ nh là đang đ c ọ ị In-Out Data Bus. Hai chi uề ắ
s ệ ở ườ
ươ ng
ấ
10
Ack
Interrupt
In
11
Busy
Wait
In
Interrupt Line. Ng t xu t hi n c a xung ủ Used for handshaking. A EPP cycle can be started when low, and finished when high.
12
Spare
In
Spare - Not Used in EPP Handshake
13
Paper Out / End Select
Spare
In
m c th p, ch đ nh là đang truy n d
ề
ữ
ấ
ỉ
ị
14
Auto Linefeed Data Strobe Out
15 16
Error / Fault Initialize
In Out
Spare - Not Used in EPP Handshake Khi ở ứ li u (data) ệ Spare - Note used in EPP Handshake Reset - Tích c c th p
ự
ấ
17
Select Printer
Out
Khi
m c th p, ch đ nh đang truy n đ i ch
ở ứ
ề
ạ
ấ
ỉ
ị
ỉ
Spare Reset Address Strobe Ground
18-25 Ground
GND
Ground
Bang 1 S xăp xêp cac chân cua EPP.
ự
51
̉ ́ ́ ́ ̉
Cac tin hiêu Paper Out, Select va Error không đ ượ ́ ́ ̣ ̀ ́ ̣ ̣ ́ ́ ̣ ́
c s dung tuy y theo s đinh nghia cua ng ̉ ượ ử ườ ử ự ̉ ́ ́ ̣ ̀ ́ ̣ ̀ ́ ̣ ̃ ̉ ̣
c tin hiêu nay co thê đ ́ ượ ̉ ượ ̣ ́ ̉ ́ ̣ ̀ ́ ́ ̣ ̣ ́ ̉ ̀ ́
̀ ờ ừ ́ ́ ̣ ̉ ̣ ́ ́ ́ ̀ ́ ̀ ̀ ̀ ́
c xac đinh trong tâp cac tin hiêu băt tay i s dung. cua EPP. Cac tin hiêu nay co thê đ Trang thai cua cac đ c xac đinh tai bât ky th i điêm nao theo s xăp ự xêp tin hiêu cua thanh ghi trang thai. Đang tiêc la không co đâu ra th a. Điêu nay co thê tr nên ̉ ở ph c tap cho viêc xac đinh trang thai tai môt th i điêm nao đo cua cho ky truyên/nhân thông tin. ờ ứ ̣ ̣ ́ ̣ ̣ ́ ̣ ̣ ̉ ̀ ́ ̉ ̀ ̀ ̣
Ch đ EPP có m t t p các thanh ghi m i, trong đó có 3 thanh ghi đã có t
ộ ậ
ế ộ
ớ
ừ
ch đ SPP ế ộ
• Các thanh ghi trong ch đ EPP ế ộ
Address
Port Name
Read/Write
Base + 0 Base + 1 Base + 2 Base + 3 Base + 4 Base + 5 Base + 6 Base + 7
Data Port (SPP) Status Port (SPP) Control Port (SPP) Address Port (EPP) Data Port (EPP) Undefined (16/32bit Transfers) Undefined (32bit Transfers) Undefined (32bit Transfers)
Write Read Write Read/Write Read/Write - - -
• Quá trình b t tay c a EPP ắ ủ
Theo trinh t ự ự ử ̀ ̣ ̣ ̀ ̀ ̣ ̣ ́ ̉
ữ băt tay cua EPP. Do phân c ng lam tât ca moi viêc nên cac tin hiêu băt tay nay chi đ ̀ ứ ́ ̉ ̀ ́ ̉ ̣ ̣ ́ ́ ̣ ́ ̀
c s dung cho phân mêm nh trong tr ượ ử ư ̣ ̉ ́ ̀ ̣ ̀ ̀
̀ ứ ở ̉ ̣ ̣ ̀ ̀ ̀ ̉ ̀ ̣ ̣ ́ ̀
th c hiên môt chu ky truyên d liêu h p khi s dung EPP, chung ta phai theo ợ th t c ̉ ượ ứ ự ng s dung cho phân c ng cua chung ta ma không đ ườ ử h p v i SPP. Đê kh i tao cho môt chu ky EPP, phân mêm chi cân th c hiên môt thao tac vao/ra ự ợ đê kh i tao cho thanh ghi EPP. Chi tiêt vê vân đê nay se noi cu thê sau. ớ ở ̉ ̣ ́ ̀ ́ ̀ ̀ ̃ ́ ̣ ̉
EPP Data Write Cycle
1.
Ch
ng trình ghi d li u vào thanh ữ ệ
ghi d li u EPP (Base+4)
ươ ữ ệ
2.
c xoá v 0. (Cho bi
ế t
ề ượ đang có m t thao tác ghi)
/Write đ ộ
3.
c đ t lên đ
ượ
ặ
ườ
ề ng truy n
D li u đ ữ ệ d li u (2 – 9).
ữ ệ
4.
/Data Strobe đ
ạ
c kích ho t n u ế ượ ắ m c th p (S n sàng b t ấ
ẵ
ở ứ
/Wait đang đ u m t chu kỳ m i)
ộ
ớ
ầ
5.
ờ
ệ
ậ
ể
hi n b i /Wait chuy n sang m c cao
Máy tính ch tín hi u xác nh n th ể
ứ
ở
ệ
Hinh 1. Enhanced Parallel Port Data Write Cycle.
̀
6.
Ng ng kích ho t /Data Strobe ạ
ừ
7.
Chu kỳ ghi d li u EPP k t thúc
ữ ệ
ế
Quá trình g i đ a ch EPP (Address Write Cycle)
ử ị
ỉ
52
Ch
ng 5: Ghép n i trao đ i tin song song
ươ
ố
ổ
ng trình ghi giá tr đ a ch
ươ
ị
ỉ
1.
ị v othnh ghi đ a ch EPP (Base+3)
Ch ầ
ỉ
ị
/Write đ
c xoá v 0. (Cho bi
t qúa
ượ
ề
ế
2.
trình ghi)
c đ t lên đ
ặ
ườ ng
3.
Giá tr đ a ch đ ỉ ượ ị ị truy n d li u (2 – 7). ữ ệ
ề
ượ
4.
ạ c kích ho t m c th p (S n sàng ẵ ấ
/Address Strobe đ n u /Wait đang ở ứ ế b t đ u) ắ ầ
ờ
ệ
5.
ứ
ớ
ặ
ậ Máy tính ch tín hi u xác nh n v ng v i /Wait đ t lên m c cao (TBN ứ đã đ c đ a ch xong)
ọ
ị
ỉ
Hinh 2. Enhanced Parallel Port Address Write Cycle.
Tín hi u /Address Strobe ng ng tích
ừ
ệ
6.
c cự
̀
Chu kỳ g i đ a ch EPP ử ị
ỉ
7.
EPP Chu kỳ đ c d li u
ữ ệ
ọ
ng trình ra l nh đ c thanh ghi d
ươ
ọ
ệ
ữ
1.
li u EPP (Base+4)
Ch ệ
ượ
2.
/Data Strobe đ ấ ở ứ
c kích ho t n u /Wait m c th p(S n sàng m t chu kỳ ẵ
ạ ế ộ
đang m i)ớ
ậ
3.
Máy tính ch tín hi u xác nh n (/Wait ệ chuy n sang m c cao)
ở ứ
ể
c đ c t
ượ
ọ ừ
ệ các chân tín hi u
4.
D li u đ ữ ệ c a c ng ủ ổ
Ng ng kích ho t tín hi u /Data Strobe
ừ
ệ
ạ
5.
K t thúc chu kỳ đ c d li u
ọ ữ ệ
ế
6.
Hinh 3. Enhanced Parallel Port Data Read Cycle.
̀
EPP Address Read Cycle
53
to
start
nAddr Strobe
1. Program reads EPP Address Register (Base+3) 2. nAddr Strobe is asserted if Wait is Low (OK cycle) 3. Host waits for Acknowledgment by high going nWait 4. Data is read from Parallel Port Pins 5. is de-asserted 6. EPP Address Read Cycle Ends
Hinh 4. Enhanced Parallel Port Address Read Cycle.
̀
́: Nêu s dung EPP 1.7 (tr
ướ
ữ
c IEEE 1284) tin hiêu Strobes cho d liêu va đia ử c dung đê xac nhân s băt đâu cua môt chu ky rôi cua trang thai đ i. ́ ợ ̉ ượ m c thâp. Ca EPP 1.7 va EPP 1.9 chuyên tin
̀ ợ ở ứ
́ ̣ ́ ̣ ̣ ̀ ̣ ̉ ́ ̀ ̉ ́ ̣ ́ ̀ ̉ ̣ ̀ ̃ ̉ ̣ ̃ ̉ ́ ̀ ̣ ́ ̉ ̀ ̉ ́
Chu ý chi co thê đ ự EPP 1.9 se chi băt đâu môt chu ky đ i hiêu đ i (strobe) lên m c cao đê kêt thuc chu ky. ứ
ợ
54
̣ ̉ ́ ́ ̀
Ch
ng 5: Ghép n i trao đ i tin song song
ươ
ổ
ố
• Các thanh ghi s d ng trong ch đ EPP ử ụ ế ộ
Công EPP cung co môt tâp cac thanh ghi m i. Tuy nhiên co 3 thanh ghi la đa co tr c trong ́ ướ ớ ̉ ̃ ́ ̣ ̣ ́ ́ ̀ ̃
công song song chuân. Bang sau cho thây cac thanh ghi đa co va cac thanh ghi m i. ̉ ̉ ̉ ́ ́ ̃ ́ ̀ ́
Port Name
ớ Read/Write
Address Base+0 Data Port (SPP) Base+1 Status Port (SPP) Base+2 Control Port (SPP) Base+3 Address Port (EPP) Base+4 Data Port (EPP) Base+5 Undefined (16/32bit Transfers) Base+6 Undefined (32bit Transfers) Base+7 Undefined (32bit Transfers)
Write Read Write Read/Write Read/Write - - -
Bang 2: EPP Registers
̉
ư ́ ̉ ́ ̀ ̀ ́ ̣ ́ ̣ ̉ ̉
̀ ứ ử ̉ ̃ ̀ ́ ̀ ́ ́ ̣ ̣ ́
̉ ư ữ ư ữ ̣ ̣ ̉ ́ ́ ̣ ̣
́ ử ̀ ợ ́ ớ ̀ ử ́ ̃ ́ ̣ ́ ̣ ́ ̣ ́
́ ậ ̉ ̉ ̉ ́ ́ ̉ ́ ̀ ̉
Nh ta co thê thây, 3 thanh ghi đâu la giông hêt cac thanh ghi trong tâp thanh ghi cua công ̉ ư ữ song song chuân va ch c năng cung la giông. Vi thê nêu ta s dung môt EPP ta co thê đ a d liêu ra thanh ghi d liêu (Base+0) theo kiêu giông nh ta co thê đ a d liêu ra nêu s dung SPP (Standard Parallel Port). Nêu ta đa kêt nôi v i môt may in va s dung chê đô phu h p, sau đo ta phai kiêm tra xem công co b n không, tiêp theo ta co thê bao (strobe) va kiêm (Ack) tra thông qua viêc ghi/đoc thanh ghi điêu khiên va trang thai. ̣ ̣ ̀ ̉ ̀ ̣ ́
Nêu muôn truyên thông v i môt thiêt bi t ̣ ươ ệ ớ ả ́ ́ ̀ ̣ ́ ́ ́ ̉
̀ ổ ữ ̣ ̣ ̣ ̣ ̉
nh vây, nêu muôn g i môt đia chi t ự ư ̣ ́ ử ươ ̉ ớ ́ ̉ ́ ́ ̣ ́ ̀ ́ ́ ̣ ̣
ng thich EPP thì tât ca công vi c ta ph i làm là g i d liêu ra thanh ghi d liêu EPP (EPP Data Register) tai đia chi Base+4 va c ng máy in se ̃ ử ữ sinh ra tât ca cac tin hiêu băt tay cân thiêt. T ́ i thiêt ng t bi, ta s dung thanh ghi đia chi EPP (EPP Address Register) tai đia chi Base+3. ử ̣ ̣ ̣ ̉ ̣ ̣ ̉
ỉ ̉ ̀ ́ ̉ ̣ ̀
̣ ữ ặ ộ ̉ ́ ̣ ̣ ́
ớ ̣ ̀ ̣ ̀ ́ ̣
̉ ư ườ ươ ầ ́ ́ ̣ ́ ̣ ̀ ́ ̀ ̀
Ca thanh ghi đ a ch (Address Register) va d li u (Data Register) đêu co thê đoc va ghi, do ị ̀ ữ ệ ả đó đê đoc d liêu t thiêt bi ta có th s dung cùng m t thanh ghi. m c dù, card may in ph i ̣ ừ ể ử ệ Data Strobe ho c ặ Address Strobe đâu ra. Thiêt bi ngoài kh i phát môt chu ky đoc v i tín hi u ở v n co thê đ a ra tin hiêu yêu c u đ c qua đ ng trinh ng tin hiêu yêu câu ngăt va ISR (ch ọ ẫ con phuc vu ngăt) s th c hiên công viêc đoc. ́ ẽ ự ̣ ̣ ̣ ̣ ̣
̉ ự ữ ́ ớ ̉ ̣ ́ ́ ̣ ́ ̉ ̉ ̀ ̣ ̉
ờ ự ́ ̀ ̀ ̣ ́ ̣ ̣ ̣
̃ ượ ̣ nWait la không đ ườ ở ̀ ̉ ́ ̀ ́ ̣ ̣ ̉ ́
Công trang thai co môt sô thay đôi nho. Bit 0 la đê d tr đôi v i tâp thanh ghi cua SPP thi c lâp khi xuât hiên môt Time-out EPP. S kiên đây no la Bit Time-out EPP. Bit nay se đ c xac nhân tr lai trong khoang 10us (gia tri ng tin hiêu ượ c xac nhân. Cac tin hiêu ̀ ̣ ̃ ượ ̀ ̀ ̣ ̀ ̉ ́ ̉ ́ ̣ ̣ ́ ̣ ́ ́ ̣
gi nay xay ra khi đ nay tuy thuôc vao công khac nhau) cua tin hiêu IOR hoăc IOW đa đ IOR va IOW la cac tin hiêu đoc va ghi thiêt bi (I/O Read va I/O Write) trên bus ISA. ̀ ̀ ́ ́ ̣ ̣ ̀ ́ ̣ ̀
̀ ờ ̀ ờ ự ́ ̣ ́ ̉ ́ ́ ̉ ̉ ̣
̀ ợ ̣ ̀ ̣ ̉ ̉ ̉ ̣ ́ ̣ ̀ ̉ ́ ́ ̣ ̣
̣ ữ ư ̀ ̉ ̣ ̀ ̉ ́ ́ ̀ ̀ ̀
55
Chê đô EPP co gian đô th i gian rât giông v i gian đô th i gian cua bus ISA. Khi th c hiên ớ ̣ môt chu ky đoc, công phai đam nhân trach nhiêm điêu khiên phu h p cac tin hiêu hôi thoai Read/Write va tra lai d liêu nh trong chu ky bus cua ISA. Tât nhiên qua trinh nay không đông th i v i chu ky bus ISA, vi thê công s dung tin hiêu điêu khiên IOCHRDY (I/O Channel ờ ớ ử ̀ ̀ ́ ̉ ̣ ́ ̣ ̀ ̉
ờ ̉ ́ ̣ ́ ̀ ̀ ̀
ng t ượ ̉ ưở ̀ ́ ̣ ́ ̀ ̣ ̣ ́ ̀ ́ ́
nhân đ ượ ờ ượ ̣ ̣ ̀ ́ ̀ ̀ ̃ ̉ ̃ ̣ ̣ ́ ̣ ́ ̣
́ ượ ự ̀ ́ ̀ ̉ ̣ ̀ ̣ ́ ́ ̉ ̣ ̣ ̀
ờ ế ̣ ̉
ệ ử ự ạ ̀ ờ ̀ ̣ ̀ ̣ ̣ ̉ ̉
ta co ́ Ready) trên bus ISA đê cho biêt trang thai đ i cho đên khi hoan thanh chu ky bus. Bây gi ́ ợ ́ c băt đâu nêu nh không co thiêt ng răng nêu môt qua trinh đoc hoăc ghi EPP đ thê t ư bi ngoai vi nao nôi vao thi se ra sao? Công se không bao gi c môt tin hiêu xac nhân (nWait) vi thê ma đê co đ c môt yêu câu cho trang thai đ i, may tinh phai th c hiên môt vong ́ ợ lăp kiêm tra. , do đó nó duy trì vi c g i tín hi u yêu c u và ch k t thúc tr ng thái “wait”, và ầ ệ máy tính s b treo. Vi vây ma EPP th c hiên môt kiêu kiêm tra watchdog ma th i gian time out ẽ ị la xâp xi 10uS. ̀ ́ ̉
Ba thanh ghi: Base+5, Base+6 va Base+7 co thê đ ̉ ượ ử ̀ ́ ̣ ́ ́ ̣
ữ ư ̉ ̃ ợ ̣ ́ ́ ́ ̀ ̀ ́ ̉ ̀ ̉ ́ ́ ̀ ̉
ờ ̉ ́ ̉ ̀ ̣ ̣ ̣ ̉ ́ ̀ ̣
ữ i công song song se đ c chia thanh cac byte va đ ̀ ượ ử ượ ớ ̉ ̀ ́
c s dung cho cac thao tac đoc/ghi 32 bits d liêu nêu nh công co hô tr cho no. Điêu nay co thê lam giam cac thao tac vao/ra cua ta. Công song song co thê chi truyên d liêu 8 bits tai môt th i điêm cho nên bât ky môt word 16 c g i qua 8 bits hay 32 bits đ ̃ ượ (đ c ghi t ng) d liêu cua công song song. ườ ữ ̣ ̉ ̉
• L p trình c ng máy in trong ch đ EPP. ế ộ ậ ổ
̣ ờ ̉ ́ ́ ̀ ̣ ́ ́ ́ ̉ ́ ̣ ́
nh ng gi? EPP chi co 2 thanh ghi chinh va môt c trang thai time-out, chung ta co thê thiêt lâp chung ữ ̀
Tr c khi ta co thê băt đâu bât ky môt chu ky EPP băng viêc đoc va ghi t ướ ữ ớ ́ ̉ ́ ̀ ́ ̀ ̣ ̀ ̀ ̣ ̣ ̀ ̣
̉ ượ ̀ ̣ ̉ ̀ ̉ ́ ̀ ̣ ́ ́ ́ ́ ̣ ̀ ̣ ̉
̣ ̉ ̀ ̉ ́ ́ ́ ̣
ở ̀ ̣ ́ ́ ̣ ̀ ̉ ̀
ự ở ứ ự ướ ́ ̣ ́ ́ ̣ ̀ ̣ ̣ ̀ ̀ ̣ ̣ ̣ ̀
ở ́ ̀ ̣ ̣ ́ ̉ ́ ́ ̣ ̀ ̀ ̣ ́
i thanh ghi d liêu ́ c câu hinh môt cach đung đăn cho chê đô lam viêc cua no. va thanh ghi đia chi thi công phai đ do, công EPP cân phai co cac tin hiêu nAddress Strobe, nData Strobe, nWrite trong trang thai t ́ ự ̉ trang thai không tich c c ( m c cao - high level). Môt vai công yêu câu ta phai va nReset c khi th c hiên môt chu ky bus EPP. Vi vây nhiêm vu đâu tiên cua thiêt lâp cac tin hiêu nay tr ̉ chung ta la kh i tao môt cach thu công cac tin hiêu nay băng viêc s dung cac thanh ghi cua ̉ SPP. Cu thê la ghi gia tri xxxx 0100 t ̣ ử i thanh ghi điêu khiên đê kh i tao. ớ ở ̣ ̉ ̀ ́ ̣ ̀ ̉ ̉ ̣
Trên môt vai card, nêu công song song đ ượ ượ ̣ ̀ ́ ̉ ̣ ́ ̣ ̣ ̀ ̣ ̀
biêt phai đăt công vao chê đô h p lê tr c. Vi vây no se t c đăt trong chê đô ng ̃ ự ̉ ự ượ ̃ ̣ ̀ ̣ ́ ́ ̉ ̣ ̉ ̀ ́
ử ̣ ̣ ́ ̉ ̀ ̉ ́ ̉ ̀ ̣ ̣ ̀ ́
ng trinh. c lai, thi môt chu ky ghi EPP se không thê th c hiên đ c ̣ ợ ̣ ướ khi s dung EPP. Xoa bits 5 cua thanh ghi điêu khiên co thê lam cho viêc lâp trinh tr nên thu vi ở h n ma không lam pha v s phat triên ch ơ ́ ỡ ự ươ ̀ ̀ ́ ̉ ̀
ượ ̉ ̀ ̣ ̉ ́ ̉ ̉ ̉ ́
c lâp, công EPP co thê không đam bao đung ca chu ky đia chi va chu ừ ̉ ́ ̣ ̀ ̣ ́ ̣ ̉ ̀ ̣ ̉ ̀
56
ch c năng cua no. Môt s kiên chung la luôn luôn đoc gia tri 0FFh t ky d liêu. Bit nay nên đ c xoa đê cac thao tac đ c tin cây va no phai luôn đ c kiêm tra. Bit time-out cua EPP The EPP: Khi bit nay đ ứ ̀ ữ ̣ ự ượ ́ ượ ượ ̣ ̀ ́ ̉ ́ ̣ ̀ ́ ̉ ̉
Ch
ng 6: Ghép n i trao đ i tin n i ti p
ươ
ố ế
ố
ổ
Ghép n i trao đ i tin n i ti p
Ch
ng 6
ươ
ố ế
ố
ổ
6.1 Đ t v n đ
ặ ấ
ề
- Qua c ng n i ti p có th ghép n i chu t, modem ngoài, máy in, b bi n đ i A/D, các thi
ố ế
ộ ế
ể
ố
ộ
ổ
ế ị t b
đo l
ữ M t trong nh ng k thu t ghép n i đ ỹ ố ượ ử ụ c s d ng r ng rãi là k thu t ghép n i TBN qua ỹ ậ ậ ố ộ
ề ươ c truy n n i ti p nhau trên m t đ
ộ ườ
ố ế ng pháp truy n thông tin (d li u) theo ki u n i ti p. ể ng dây duy nh t. T i m t th i đi m ờ
ữ ệ ấ
ể ộ
ạ
ỉ
các bit d li u đ ữ ệ ch có m t bit d li u đ ộ
ng dây, có th s d ng m t đ
ng dây. ườ
ườ ầ
ể
ư
ộ ườ ề
ậ
ậ
ề ề ẩ
ể ử ụ ố ộ ề
ố ế
ự
ẩ
- Các cách ghép n i này s d ng ph ử ụ ố ố ế ượ ề c truy n trên đ ữ ệ ượ ề - Truy n thông n i ti p có u đi m là c n ít đ ng đ ể ế ố ng đ nh n. Thông tin thu nh n là tin c y, tuy nhiên t c đ truy n là ch m. truy n, m t đ ậ ể ộ ườ - Chu n RS232 đ ứ ượ ộ
ệ
ậ c xây d ng thành chu n chính th c dành cho truy n thông n i ti p, do EIA (Electronic Industries Association) năm 1962. ả
ệ ệ ử ớ ố ộ ự ạ
ẩ
-
ớ ố ộ
ỏ ơ ả
ộ ố
ề ẩ
ờ
hi p h i các nhà công nghi p đi n t Chu n này cho phép truy n v i t c đ c c đ i 19.600 bit/s v i kho ng cách nh h n 20 m Sau đó ra đ i m t s chu n nh RS422, RS449, RS485 có t c đ truy n và kho ng cách cho ề phép xa h n. Vd: RS422: T c đ truy n 10Mbit/s, kho ng cách >1000m
ư ố ộ
ề
ả
ơ
ộ c ng n i ti p ố ế ổ ổ ng, … ườ
6.2 Yêu c u và th t c trao đ i tin n i ti p:
ố ế
ủ ụ
ổ
ầ
6.2.1. Yêu c u: ầ
Khi kho ng cách gi a hai thi ả ươ
ẽ t b trao đ i tin là r t l n, vi c s d ng ph ấ ớ ế ị ố
ố ườ ề ề
ộ ươ ớ
ố ế
ệ ệ
ạ ả ố ậ ớ ả ộ ơ
ề ng pháp truy n ệ ử ụ ổ ữ ng dây đ ng th i cũng khó khăn trong vi c ệ tin song song s đòi h i chi phí t n kém v đ ờ ỏ ồ ề ườ kho ng cách xa và yêu c u v ề ng truy n. Do đó v i vi c truy n tin ch ng nhi u trên đ ầ ở ả ệ ớ ễ ố ế c s d ng. Truy n thông n i ti p ng pháp truy n tin n i ti p đ t c đ không l n thì ph ề ượ ử ụ ố ế ề ố ể c n thêm công đo n gia công tín hi u đ chuy n tín hi u song song thành tín hi u n i ti p đ ệ ể ệ ể ầ n i nh n. Vi c gia công tín g i đi, sau đó ph i chuy n t tín hi u n i ti p thành song song ố ế ử ệ ở ơ ể ừ hi u này cũng t n m t kho n chi phí nh ng cũng gi m h n nhi u so v i truy n thông song ề ề ư ả ệ song.
ư ́ ́ ̣ ̀ ́ ́ ́ ́ ́ ̉ ̀ ́ ̣ ́ ̣ ́ ́
́ ớ ư ̣ ữ ̉ ́ ̀ ́ ́ ̀ ̃ ̣ ̣ ́
i bên nhân va bên nhân co thê hiêu đ ̣ ượ ử ớ ̉ ượ ữ ̉ ữ ̀ ̉ ̣ ̀ ̣ ́ ̉ ̣ ́ ̀ ̀
̣ ử ứ ̃ ̀ ̀ ̀ ̣ ̣ ̣ ̀ ̀ ̣ ̀
ữ ng phap truyên thông không đông bô do đ c g i t ữ i ph ơ ớ ượ ́ ̀ ̃ ́ ̣ ́ ̀ ̀ ̣ ̀
Cac thiêt bi đâu cuôi trong liên kêt nôi tiêp co thê la cac loai thiêt bi khac nhau nh ng chung ́ phai thông nhât v i nhau vê cac quy tăc vê giao th c cung nh đinh dang d liêu. S thông nhât ự ứ c d liêu đo. Phân nay nay đam bao d liêu đ ́ se trinh bay vê đinh dang d liêu va giao th c truyên d liêu s dung trong truyên thông nôi c dung trong tiêp, va se chu trong h n t ươ chuân RS232 cua công nôi tiêp COM ̉ ̉ ̉ ́ ́
ờ ữ ượ ̀ ́ ́ ̣ ̣ ̉ ̉ ́ ̣ ̣ ̀ ̀ ́
c truyên tuân t ườ ̣ ̀ ̣ ́ ́ ̣ ̣
Trong truyên tin nôi tiêp, tai môt th i điêm chi co môt bit d liêu đ ̉ ử ̀ ự ng riêng biêt hoăc co thê s dung chung môt đ ướ nhau. Môt liên kêt gi a hai bên co thê s dung hai đ ữ ữ ̉ ử ̉ ̀ ̣ ̣ ́ ̣ ̣ ̉ ̀
ng vao cac th i điêm khac nhau. Viêc truyên thông s e dung chung môt đ ̣ ườ ử ̣ ườ ướ ờ ̉ ̀ ́ ̉ ́ ̣ ̀ ̣
ợ ử ướ ́ ̣ ̉ ̣ ̀ ̀ ́ ̀ ̣
ng goi la truyên ban song công (Half-duplex) con tr ng cho phep truyên đông th i ca hai h ng tin hiêu riêng cho hai h ướ ờ ́ ̣ ́ ̀ ̀ ̉ ̣
ườ ướ ́ ử ̀ ̀ ̉ ́ ́ ́ ́ ̣ ̣
57
c truyên đi va cac bit ng d liêu d liêu đ ữ ượ ữ ng d liêu đê truyên đê truyên theo hai h ng theo ca hai h ng h p s dung hai tin hiêu cho ca hai h đ ̀ c goi la ng thi đ ̀ ượ ườ truyên song công đây đu (Full-duplex). Trong may tinh PC, liên kêt nôi tiêp s dung dang Full- duplex.
́ ̣ ́ ̣ ̉ ́ ̀ ́ ́ ́ ̀ ́ ̣ ̀ ̀ ́ ̣
̣ ử ữ ̀ ́ ̀ ̉ ̀ ̣ ̀ ̣ ́ ̣ ̀ ̉ ́ ̣
ươ ử ̀ ̀ ̣ ̃ ́ ́ ̀ ́ ́ ̀ ̀ ̀
̣ ử ̀ ̀ ̀ ̣ ̃ ̣ ̀ ́ ̣
6.2.2. Trao đ i tin đ ng b : Synchronous ồ
ổ
ộ
Co môt tin hiêu phai co trong truyên tin nôi tiêp đo la tin hiêu xung đông hô (clock). Tin hiêu nay giup điêu khiên dong d liêu. Bên g i va bên nhân s dung tin hiêu nay đê quyêt đinh khi ử ng phap truyên thông nôi tiêp la truyên thông đông bô nao g i va nhân môi bit. Co hai ph (Synchronous) va truyên thông không đông bô (Asynchronous). V i môi loai thi cach s dung ớ tin hiêu clock la khac nhau. ́ ̣ ̀ ́
Trong truyên thông đông bô, hai bên truyên thông s dung chung môt đ ̣ ườ ̀ ̀ ̣ ̀ ̣ ́ ̣
ở ượ ̣ ở ́ ̣ ̀ ́ ̣ ̣ ́ ̣ ́ ̀ ̣ ́ ̣
̀ ̣ ̀ ́ ̉ ́ ̀ ́ ̉ ̣ ́ ̣ ̀ ́ ̣ ̃ ̀ ̃
́ ự ượ ứ ờ ̀ ́ ̣ ̣ ̣ ̉ ̉ ́ ̣ ̉ ́ ̣
ử ̣ ̃ ̣ ̉ ́ ̉ ́ ̣ ̀ ̀ ̣
ự ́ ữ ̣ ̣ ̃ ̣ ́ ̉
̣ ườ ậ ầ ồ ̉ ́ ́
i khi xuât hiên s thâp lên cao. Truy n đ ng b bên nh n không c n ph i bi ộ i tín hi u đ ng b phát trên đ ng tin hiêu clock. ử c phat ra b i môt bên hoăc b i môt thiêt bi phat xung đông bô riêng. Tin hiêu Tin hiêu nay đ đông bô nay co thê co tân sô thay đôi hoăc co môt chu ky không xac đinh. Nghia la môi bit c xac đinh tai môt th i điêm khi co s thay đôi m c tin hiêu cua tin hiêu clock. truyên đi đ ́ i. Thi Bên nhân cung s dung s thay đôi m c đo đê xac đinh khi nao thi đoc bit d liêu g i t ̣ ử ớ ữ ứ n lên cua xung clock hay la s thay du nh bên nhân se chôt d liêu g i t ̀ ự ử ớ t tr đôi m c tin hiêu t ế ướ ố ộ c t c đ ả ề ̣ ừ ng dây đ ng b . trao đ i tin mà ch c n qua tâm t ộ ồ ư ứ ổ ỉ ầ ườ ệ ớ ồ ộ
Truyên thông đông bô rât h u ich khi truyên ̀ ở ̀ ̀ ̣ ́ ̉ ́ ̀ ́ ́ ̀
ớ ́ ̣ ̣ ̉ ́ ̣ ̀ ̀ ̣ ̀ ̉
́ ữ ớ ng tin hiêu clock, nh vây cân môt đ ̣ ườ ư ̣ ́ ̀ ̉ ́ ́ ̣ ̀ ̀
̣ ườ ng truyên. khoang cach gân b i no cho phep truyên ở thông v i tôc đô cao. Tuy vây v i khoang cach xa, viêc truyên thông đông bô la không kha thi ơ ng dây thêm vao, h n do no đoi hoi co thêm môt đ n a se dê bi nhiêu trên đ ữ ườ ̃ ̃ ̣ ̃ ̀
M i kh i tin đ ng b th ng g m nhi u byte, các kh i đ ỗ ộ ườ ề ồ ố c đánh d u b i các byte đánh ở ấ
ồ d u khung tin, các byte này có giá tr là 16H ( mã ASCII c a ch Sync) ị ấ ố ượ ữ ủ
ề Truy n thông đ ng b ph i th c hi n liên t c, khi không có d li u c n truy n thì bên ụ ệ ề ầ ả ộ
ữ ệ ự phát v n ti p t c ph i truy n các d li u “tr ng” đ duy trì s đ ng b . ộ ữ ệ ồ ả ế ụ ự ồ ề ể ẫ ố
i b ng ph ồ ề ỗ ằ ệ ể
ố ư ượ ổ ộ ứ ộ ọ
ươ ố ư ủ ng t phía thu, cũng tính t ng pháp s d vòng (chia t ng tin c ghi vào m t byte và so sánh k t qu . N u b ng nhau ằ ả ươ Ở ự ế
6.2.3. Trao đ i tin không đ ng b - Asynchronous:
ổ
ồ
ộ
Truy n thông đ ng b th c hi n ki m tra l ộ ự c a khung cho m t đa th c - g i là đa th c sinh). S d c a phép chia đ ứ ủ FCS ( Frame Check Sum). ế thì tin truy n không b l i. ề ị ỗ
Trong truyên thông không đông bô, đ ng truyên se không cân co thêm môt đ ̣ ườ ̀ ̀ ̀ ̃ ̀ ́ ́ ̣
ở ượ ̀ ̃ ̃ ́ ̣ ́ ̀ ̣ ̉ ́ ̉ ̀
ứ ̉ ́ ́ ̣ ̀ ́ ̀ ́ ̉ ́ ̉ ̣
̣ ườ ư ̣ ở ̀ ữ ̀ ́ ̃ ̀ ̃ ̀ ̣ ̉ ̀ ̣ ̀
ượ ử ̣ ̉ ́ ́ ́ ́ ̀ ̉ ̉ ́ ̣ ̣
ư ̣ ̀ ̣ ̉ ̉ ́ ́ ̣ ̀ ́ ̃
ớ ̀ ́ ́ ́ ̀ ̉ ́ ̣ ́ ̀
ươ c s dung nhiêu h n. ng đ ng tin hiêu c nh vây, hai bên clock b i vi môi bên đa co bô phat xung đông bô cua riêng no. Đê lam đ ̣ môt m c đô phai thông nhât môt tân sô xung chung, va tât ca cac xung clock phai kh p nhau ớ ̀ nao đo. Môi byte truyên đi se bao gôm môt bit Start đê đông bô xung đông hô gi a hai bên va môt bit Stop đê đanh dâu kêt thuc byte đ c truyên. Công RS-232 cua may PC s dung đinh ̉ dang không đông bô đê truyên thông v i cac thiêt bi ngoai nh modem, may in cung nh đê ớ ng phap truyên truyên thông v i may tinh khac. Tuy răng công RS-232 co thê s dung ph đông bô nh ng ph ng phap truyên không đông bô vân th ̣ ư ư ̉ ử ượ ử ườ ươ ơ ̀ ́ ̀ ̀ ̣ ̃ ̣ ̀
Vi c truy n thông s d ng ph ệ ươ ự ệ
ỉ ườ ầ ng tín hi u truy n tin s có tr ng thái t ươ ng pháp không đ ng b không c n ph i th c hi n liên ng ng v i m c tín ớ ộ ạ ả ứ ồ ẽ ứ ệ ề
58
ử ụ ề t c. Trong tr ng thái ngh , đ ụ ạ hi u c a bit Stop. ệ ủ
Ch
ng 6: Ghép n i trao đ i tin n i ti p
ổ
ố
ố ế
̣ ử ́ ̀ ̀ ̀ ̣ ̣ ́ ̣ ̣ ́ ̣
ữ ́ ̀ ̣ ́ ̃ ̀ ̣ ́ ́ ̀
ươ Qua trinh truyên thông không đông bô s dung môt sô đinh dang khac nhau. Thông dung nhât la dang 8-N-1. Trong đo môi byte d liêu g i đi bao gôm môt bit Start, tiêp theo đo la 8 bit ̣ ử d liêu, băt đâu băng bit 0 ( hay bit LSB) va kêt thuc băng môt bit Stop. ữ
̣ ́ ̀ ̀ ́ ́ ̀ ̣
ữ ́ ̃ ̀ ̣ ̀ ́ ̃ ̉
c s dung nh môt ph ư ươ ơ ̃ ̣ ̣ ́ ̉ ̃ ̀ ̣ ́ ̉ ̃
́ ̉ ̀ ̃ ̣ ̉ ̃ ́ ̃ ̀ ̣ ̀ ̃ ̉
̀ ượ ́ ́ ́ ́ ̣ ́ ̣ ̀ ̉ ̀ ̣ ́ ̃
ượ ̉ ̣ ̣ ̣ ́ ̃ ̉ ̉ ́ ́ ̣ ̉
c nhân, sau đo so sanh v i bit parity ừ ở ̣ ́ ́ ̣ ́ ̀ ́
ớ ng truyên. Bên nhân se thông bao lai đê bên g i truyên lai byte d N trong 8-N-1 co nghia la trong d liêu truyên đi không co bit chăn le (Parity bit). Bit ̉ ng phap kiêm tra lôi truyên môt cach đ n gian. Bit chăn le c đăt la chăn hay le sao cho ượ ̣ ớ c lai v i ữ c byte d liêu no se kiêm tra đê tinh gia tri parity cua byte ữ trong byte v a nhân. Nêu không trung nhau co nghia ̃ ữ ườ ử ̀ ̃ ́ ̃ ̉ ̀ ̣ ̃ ́ ̣ ̉ ̀ ̣
Ky t ́ ự chăn le đ ̉ ượ ử co thê la bit “Chăn” hoăc bit “Le”. Bit chăn co nghia la bit parity đ sô cac bit co gia tri 1 trong cac bit d liêu bao gôm ca bit Parity la môt sô chăn, va ng Parity le. Khi bên nhân nhân đ đ ượ la đa co lôi xay ra trên đ liêu đo. ̣ ́
Sô bit d liêu truyên đi trong môt lân truyên co thê la t ữ ̀ ừ ́ ̣ ̀ ̣ ̀ ̀ ́ ̉ ́ ̀ ̣
5 đên 8 bit tuy theo t ng ng dung. ASCII thi ta truyên 7 bit, nêu truyên gia tri nhi phân (truyên file) thi s dung 8 ừ ứ ̀ ử ́ ự ́ ̀ ̀ ́ ̀ ́ ̣ ̣ ̀ ̣
Nêu truyên ky t bit.
Sô bit stop cung la môt tham sô cân quan tâm. Sô 1 trong 8-N-1 chi ra răng đây ta s dung ở ử ́ ̃ ̀ ̣ ́ ̀ ́ ̉ ̀ ̣
1 bit Stop. Sô bit stop co thê la 1,5 hoăc 2 bit. ́ ́ ̉ ̀ ̣
́ ́ ̣ ́ ̀ ̀ ́ ̀ ́ ̣ ̀ ̣ ́
ng dây trên môt đ n vi th i gian, thông th c truyên trên đ ượ ườ ượ ̀ ̀ ́ ̀ ́
̣ ờ ng t ng đ ̣ ơ ng h p, đ n vi nay t ơ ữ ườ ớ ơ ́ ườ ươ ươ ợ ̀ ̣ ̣ ̣
̣ ớ ̣ ̣ ́ ̣ ̀ ̣ ̣ ̀ ́ ̣ ̀ ́
Tham sô rât quan trong trong qua trinh truyên thông đo la tôc đô truyên d liêu. Tôc đô truyên la sô bit đ c tinh ng đ ng v i đ n vi bit trên băng đ n vi baud. Trong đa sô tr ơ giây (b/s). V i đinh dang 8-N-1, tôc đô truyên môt byte d liêu băng 1/10 tôc đô truyên. Nêu ta truyên v i tôc đô 9600 baud thi trong môt giây truyên đ ̀ ươ ữ c 960 byte. ̀ ượ ớ ̀ ́ ̣ ̀ ̣
6.3 Truyên thông nôi tiêp s dung giao diên RS-232: ́ ử
ự
̀ ́ ̣ ̣
̉ Chung ta thây răng viêc truyên thông nôi tiêp đoi hoi rât nhiêu thao tac phai th c hiên. Ta phai dang song song thanh dang nôi tiêp ( b i vi hâu hêt cac hê thông sô đêu
chuyên môt byte d liêu t
̣ ừ
ữ
ở
́ ́ ̀ ̣ ̀ ́ ́ ̀ ̉ ́ ̀ ́ ̉ ̣
lam viêc v i cac d liêu
dang song song). Tiêp theo ta phai tao ra môt l
ớ
̣ ở
́ ữ
̣ ờ
̉ ̣ ̣ ̀ ̣ ́ ́ ̀ ̀ ́ ́ ̣ ́ ́ ̀
cho tr
c băng cach thêm cac bit Start, Stop, Parity phu h p. Sau đo ta m i truyên d liêu đi d
ướ
̀ ợ
ữ
ớ
̀ ̣ ̣ ́ ̉ ̣ ́ ̣ ̣
̀ ́ ́ ́ ̀ ̣
ử
̣ ́ ́ ̉ ́ ́ ̉ ́ ́ ̣ ̣ ̀ ̉ ̀ ̉ ̀
i tin theo đung đinh dang i ướ ́ dang nôi tiêp. Công nôi tiêp cua may PC co môt vi mach chuyên dung đê điêu khiên truyên thông nôi ̀ ử tiêp. Do đo, khi s dung công RS-232 cua may PC đê truyên thông, tât ca công viêc cua chung ta la g i byte d liêu cân truyên ra thanh ghi d liêu cua vi mach nay. Sau đo moi thao tac cua qua trinh truyên
ữ
ữ
́ ́ ̣ ̉ ̉ ́ ̉ ̀ ́ ̉ ̣ ̉ ́
thông kê trên se đ
c vi mach th c hiên d a theo nh ng thiêt lâp trong qua trinh kh i tao.
̃ ượ
̣ ự
ự
ữ
ở
̣ ̀ ̀ ̣ ̉ ̣ ̀ ́ ̣ ́ ̉ ́ ̀ ̀
6.3.1. Qua trinh truyên môt byte d liêu:
ữ
̉ ̣ ́ ̣ ́ ̀ ̣
́ ̀ ̀ ̣ ̣
̣ ́ ̃ ́ ̣ ̀ ̀ ̉ ́ ̣ ́ ̀ ̀
Trong trang thai rôi, gia tri logic trên đ ườ ử ư ̣ ́ ̣ ̀ ̉ ̀ ̣ ̀ ̣
́ ̣ ̀ ̀ ́ ̣ ̣ ́ ̣ ̀ ̀
ng truyên luôn băng 1. Đê bao viêc băt đâu truyên ườ ng truyên trong khoang th i gian băng đô dai môt bit. d liêu, bên g i đ a gia tri logic 0 lên đ ờ ữ Bit đo goi la bit Start. Khi truyên v i tôc đô 300 baud, môt bit co đô dai la 3,3 ms, trong khi v i ớ ớ tôc đô 9600 baud thi co đô dai 0,1 ms. ́ ̣ ̀ ́ ̣ ̀
̀ ử ́ ̣ ́ ́ ́ ̀ ̀ ́
59
Ngay sau bit Start, bên truyên g i tiêp 8 bit d liêu kê tiêp nhau, băt đâu băng bit LSB. Tiêp ữ ng truyên va duy tri trong khoang sau đo bên truyên se g i tiêp môt bit co gia tri logic 1 lên đ ̃ ử ườ ́ ̀ ́ ̣ ́ ́ ̣ ̀ ̀ ̀ ̉
ờ ờ ́ ́ ̀ ̣ ̀ ̣ ́ ̣ ̣ ̉ ́ ̀
6.3.2. Công nôi tiêp RS 232
th i gian it nhât la đô dai môt bit. Ngay sau đo hoăc sau môt khoang th i gian bât ky, bit Start tiêp theo se đ c g i đê băt đâu truyên môt byte m i. ̃ ượ ử ớ ́ ̉ ́ ̀ ̀ ̣
̉ ́ ́
̀ ứ
• Phân c ng • Nh ng thuôc tinh cua phân c ng ̀ ứ ữ ̣ ́ ̉
Nh ng thiêt bi s dung cap nôi tiêp cho viêc truyên thông đ ữ ̣ ử ượ ́ ̣ ́ ́ ́ ̣ ̀ ̀ ̣ ́ ̀
ữ ̀ ̀ ́
ợ ̣ ̣ ̉ ́ ̣ ́ ́ ̃ ́
c chia lam hai loai. Đo la DCE ̣ (Data Communications Equipment) va DTE (Data Terminal Equipment) DCE la nh ng thiêt bi c s dung nh môt modem cua chung ta, bô tiêp h p TA, may ve, ... trong khi đo DTE lai đ ̣ ượ ử c s dung nh may tinh hoăc Teminal cua chung ta. đ ượ ử ư ư ̣ ́ ́ ̣ ̉ ́
Nh ng phat minh vê công nôi tiêp cua EIA (Electronics Industry Association) trong đo tiêu ữ ́ ̀ ̉ ́ ́ ̉ ́
gi a +3V va +12V.
ở ữ
biêu la chuân RS 232C. No đ a ra nhiêu thông sô nh : ́ ư ̉ ̀ ̉ ̀
gi a -3V va -12V.
ở ữ
̀
̀
ữ
́ ư • A “Space” (logic 0) • A “Mark” (logic 1) • Vung gi a +3V va -3V la không xac đinh. ̀ ̀ ̀ ́ ̣
Liêt kê ở ̣ ̉ ̀ ̣ ̀ ̉ ́ ̉ ̉ ́ ̀ ̉
́ ơ ̉ ́ ̉ ̉
ớ ́ ̣ ́ ̣ ̉ ̀ ̉ ̉ ̃
ướ ữ ̀ ̀ ̀ ́ ́ ̣ ̉ ̉ ̀ ̣ ̉
trên chi la môt phân cua danh sach cua chuân EIA. Trong đo bao gôm ca Line Capacitance, Maximum Baud Rates, ... Đê biêt chi tiêt h n xin tham khao chuân EIA RS-232C. Tuy nhiên no thât thu vi đê ghi nh răng Chuân RS -232C chi ro a maximum baud rate of 20,000 c nh ng tiêu chuân cua ngay nay. Môt tiêu chuân m i, BPS!, điêu ma lam cho no kha châm tr ớ c phat hanh. RS -232D gân đây đa đ ̃ ượ ̀ ́ ̀
̉ ́ ́ ́ ̣ ̉ ̃ ́ ̀ ̣ ́ ̀ ̣ ́
ớ ở ̣ ̀ ̀ ́ ̣ ̣ ̉ ́ ̉ ̉ ́ ̀ ̃ ́ ́
cac công nôi tiêp lai la phich căm nhiêu chân. Bên d Công nôi tiêp co hai loai OsizeO, đo la bô nôi D-Type 25 chân va bô nôi D-Type 9 chân, ca ̉ may ́ i la bang kêt nôi ́ ớ ướ ̀ ̉ ́ ́ ̉ ́ ́ ̣ ̀ ́ ́ ̀ ̀ ̉ ́
hai loai nay đêu co chung môt đăc điêm khac hăn v i công may in la chô nôi v i may in PC la ô căm, trong khi ở chân cho bô kêt nôi 9 chân va 25 chân D-Type. ̣ ́ ́ ̀
D-Type-25 Pin No
D-Type-9 Pin No
Abbreviation
Full Name
Chân 2
Chân 3
TD
Transmit Data
Chân 3
Chân 2
RD
Receive Data
Chân 4
Chân 7
RTS
Request To Send
Chân 5
Chân 8
CTS
Clear To Send
Chân 6
Chân 6
DSR
Data Set Ready
Chân 7
Chân 5
SG
Signal Ground
Chân 8
Chân 1
CD
Carrier Detect
Chân 20
Chân 4
DTR
Data Terminal Ready
Chân 22
Chân 9
RI
Ring Indicator
Bang 1: D Type 9 Pin and D Type 25 Pin Connectors
̉
Ch c năng cua cac chân
ứ
60
̉ ́
Ch
ng 6: Ghép n i trao đ i tin n i ti p
ươ
ố ế
ố
ổ
Ch viêt tăt
ữ
́ ́
1) Tên
a) Ch c năng ứ
đây đu
TD
Transmit Data
Serial Data Output (TXD) - Đâu ra cua d liêu
̉ ữ
̀ ̉
RD
Receive Data
Serial Data Input (RXD) - D liêu đ
c nhâp vao
̣ ượ
ữ
̀ ̣
CTS
Clear to Send
Bao răng Modem săn sang trao đôi d liêu.
̉ ữ
̣ ̀
Khi nao modem phat hiên ra môt OCarrierO t
̃ ừ
́ ̀ ̀ ̀ ̣
Data
Carrier
DCD
̣ môt modem kêt thuc khac cua the phone line, thi Line nay
̀ ́ ̣ ̣ ̉
Detect
tr thanh tich c c.
ự
ở
́ ́ ́ ̉ ̀ ̀
́ Thông bao v i UART răng the modem săn sang thiêt
ớ
̀ ́
DSR
Data Set Ready
lâp môt môi liên kêt .
́ ̀ ̃ ̀
Data Terminal
Đây la s đôi lâp v i DSR. Bao v i the Modem răng
̀ ự
ớ
ớ
̣ ̣ ́ ́
DTR
Ready
the UART săn sang đê liên kêt .
́ ̣ ́ ̀
Thông bao cho the Modem răng the UART săn sang đê
̉
̃ ̀ ̉ ́
RTS
Request To Send
trao đôi d liêu. ̉ ữ
́ ̀ ̃ ̀
Goes active when modem detects a ringing signal from
RI
Ring Indicator
the PSTN.
̣
c s dung đê nôi cho hai DTE cung nhau. Nh ng modem nay th
ng đ
•
ườ
ữ
ữ
ượ ử c s ử
c s dung v i nhiêu
̉ ượ ử
ứ
Môt Null Modem đ dung nh môt cach đê nôi mang cho nh ng tro ch i hoăc đê chuyên giao gi a cac file may tinh s ̀ ơ ữ ư dung giao th c Zmodem Protocol, Xmodem Protocol, ... Điêu nay cung co thê đ ớ Microprocessor Development Systems (hê thông phat triên bô vi x ly).
ử
́ Hinh 1: S đô nôi
ơ
Null Modems ượ ử ̣ ̣ ̉ ́ ̀ ̀ ̣ ̣ ́ ̉ ́ ̣ ̣ ̉ ̉ ́ ́ ́ ̣ ̀ ̀ ̃ ́ ̣ ̀ ̣ ́ ́ ̉ ̣ ́
dây Null Modem
̀ ̀
Trên đây la ph ươ ̀ ̉ ̣ ́ ̉ ̣ ́ ̉ ̀
́ ư ́ ượ ̉ ử ưở ớ ̉ ̉ ̀ ̣ ̉ ́ ́ ̣
̀ ơ ̣ ́ ̀ ́ ̉ ́ ̉ ́ ́ ̣ ̀ ̀ ́ ́ ̀
ơ ́ ̀ ̣ ̀ ̣ ́
61
ng phap u tiên cua viêc nôi dây cua môt Null Modem. No chi yêu câu 3 dây (TD, RD & SG) đê măc đ ng l n đên chi phi đê s dung c xuyên thăng qua vi vây anh h chay cap dai. Nguyên ly cua thao tac thi đ n gian co ly. Muc tiêu la lam cho may tinh cho răng no la môt modem h n la môt computer khac. Any data transmitted from the first computer must ơ be received by the second thus TD is connected to RD. Điêu th hai may tinh phai co cung c ứ ̀ ́ ́ ̉ ́ ̀
i TD. Bao hiêu răng Signal Ground (SG) cung phai đ c nôi sao ư ̣ ượ ́ ớ ̉ ượ ́ ̀ ́ ̣ ̀ ̃ ́
câu nh vây thi RD đ cho ca hai grounds phô biên t i môi may tinh. c nôi t ́ ớ ̉ ̉ ̃ ́ ́
̣ ̣ ̀
́ ̣ ̉ ́ ́
ứ ự ́ ̀ ̀ ̀
ượ ự ờ ́ ̀ ̉ ̀ ́ ́ ̀ ̃ ̀ ́
Data Terminal Ready (DTR) lăp lai khi chân Data Set Ready (DSR) va Data Carrier Detect ở (DCD) co măt trên ca hai (on both computers) may tinh. Khi chân the Data Terminal Ready m c tich c c thi chân the Data Set Ready va chân Data Carrier Detect ngay lâp t c tr thanh ở ̣ ứ tich c c (active). Vao th i điêm nay may tinh cho răng the Virtual Modem săn sang đ ̀ c nôi va phat hiên ra the carrier cua modem khac. ́ ̣ ̉ ́
ờ ̀ ́ ̀ ̀ ́ ̀ ̀
ớ ở ̉ ́ ́ ̣ ̀ ̣ ́ ̣ ̀ ̣ ̣ ̀ ̉ ̀ ̀ ̀
́ ̀ ̀ ́ ́ ̉ ́ ́ ̀ ̃ ́ ́ ́ ́ ́
̣ ự ̣ ́ ́ ́ ̣ ̉ ̀ ́ ́ ́
c câu tra l ở ứ ượ ̣ ứ ́ ̀ ́ ́ ̣ ̀ ́
la chân the Request to Send va chân Clear To Send. Trong khi Va vân đê cân lo lăng bây gi ca hai may tinh giao thiêp v i nhau cung môt tôc đô, vi vây viêc điêu khiên luông la không cân thiêt v i hai tuyên nay vi chung co thê kêt nôi cung nhau trên môi may tinh. Khi may tinh muôn ́ ớ m c cao va khi đo no moc g i d liêu, no xac nhân s co măt cua chân the Request to Send ử ữ nôi v i chân the Clear to Send, luc nay ngay lâp t c may tinh nhân đ ́ i răng no co ́ ớ ̉ ờ thê g i d liêu va no th c hiên ngay. ̉ ử ữ ́ ự ̣ ̀ ̣
Chu y răng the ring indicator se không kêt nôi t ́ ớ ườ ́ ́ ̀ ̃ ́ ́ ̀ ́ ̀ ̀
ử ườ ̣ ̉ ̉ ́ ́ ́ ̀ ́ ̣ ̣
ng dây the phone thi đ ̉ i đ ́ ớ ườ i bât ky cai gi of each end. Đ ng nay chi ng dây the phone . ng nay ̀ ườ ́ ́ ̣ ̉ ́ ̀
Hinh 2: S đô nôi dây Loopback Plug
ơ
c ng ng kêt nôi. s dung đê chi cho may tinh biêt răng co môt ringing signal đang s dung đ ử Trong khi chung ta không co môt modem đê kêt nôi t đ ượ ừ ́ ́
̀ ̀ ́
̉ ở ̃ ử ữ ́ ̣ ̀ ́ ̀ ̣ ́ ̀
ử ̀ ̣ ̉ ́ ́ ́ ́ ̉ ̣ ̀ ̀ ̀ ́ ̀
ươ ườ c truyên ra ngoai cua công nôi tiêp thi ngay lâp t c nhân đ ứ ượ ̣ ứ ̀ ́ ̀ ̣ ̀ ̀ ̉ ̉ ́ ́ ̀ ̣
̀ ̉ ́ ́ ́ ́ ́ ̣ ̀ ̉ ́ ́ ̣ ̀ ̀
ớ ̣ ứ ượ ́ ̀ ́ ́ ́ ̃ ̣ ̀ ̀
Loopback plug thiêt bi nay co thê tr nên vô cung dê s dung khi viêt nh ng ch ng trinh truyên thông s dung công nôi tiêp RS232. No co thê nhân va truyên nhiêu tuyên đ ng cung ượ ở c b i nhau, vi thê ma moi th đ ́ cung công đo. Nêu chung ta nôi thiêt bi nay v i công nôi tiêp nap vao Terminal Program, thi bât c cai gi chung ta đanh may se ngay lâp t c đ c hiên lên trên man hinh (displayed on the ứ screen).
Xin chu y răng thiêt bi nay ch a đ ữ ớ ́ ́ ̀ ́ ̣ ̀ ̣ ̣ ̀
ữ ở ̉ ́ ̀ ̃ ́ ̃ ̀ ̣ ̀ ̀
ng trinh ươ ng trinh ma ng trinh ̀ c d đinh cho viêc s dung v i nh ng ch ̣ ử ươ ch ̉ ừ ươ ́ ̀ ́ ̃ ́ ́ ̀ ́ ̉ ̀
62
ư ượ ự Chân đoan (Diagnostic Programs) va se co le không lam viêc. B i vi nh ng ch chung ta yêu câu khac nhau se bao cho Loop Back plug cai ma co thê thay đôi t nay đên ch ng trinh khac. ươ ̀ ́ ̀ ́
Ch
ố ế
ố
ổ
ươ •
ng 6: Ghép n i trao đ i tin n i ti p Tôc đô DTE / DCE
́ ̣
́ ữ ́ ̃ ́ ́ ́ ̀ ̀ ̣ ́ ̣ ̀ ̣
ữ ̉ ̀ ̣ ́ ́ ̀ ̣ ́ ̣ ̀ ̣
i ta th ườ ̉ ̀ ̣ ́ ́ ́ ̣ ̉ ̣
̣ ữ ượ ̀ ́ ̀ ́ ́ ̉ ́ ̀ ̣
ư ̀ ̣ ở ́ ̣ ̉ ́ ́ ̉ ́ ̀ ̉ ̣ ́ ̣
̀ ự ượ ữ ́ ̣ ̉ ́ ́ ́ ̣ ̀ ́
Chung ta đa noi tom tăt vê DTE va DCE. Môt thiêt bi đâu cuôi d liêu (Data Terminal Device) tiêu biêu la môt may tinh va môt thiêt bi truyên thông d liêu (Data Communications ng nhăc đên tôc đô cua DTE to DCE hoăc DCE Device) tiêu biêu la môt Modem. Ng ườ ́ c đê câp đên to DCE. DTE to DCE la tôc đô gi a modem va may tinh cua chung ta, đôi khi đ ơ môt tôc đô nhanh h n nh la tôc đô cua thiêt cuôi cua chung ta. DTE to DCE cân phai chay tôc đô cua DCE to DCE. DCE to DCE la s kêt nôi gi a cac modem, đôi khi đ ̣ c goi la tôc đô the line speed.
ườ ́ ữ ớ ở ̀ ́ ̣ ̀ ́ ̣ ̣ ̣ ́
Hâu hêt moi ng ờ ợ ư ́ ̀ ̉ ́ ̣ ̉ ̃ ̣ ̉ ̀
̀ ̀ ́ ̣ ̉ ́ ́ ́ ̣ ̉
ữ ̃ ̣ ́ ̉
ử ̀ ̀ ́ ̣ ̃ ̣ ́ ̣ ́ ̉
i ngay nay co nh ng modem v i tôc đô 28,8K hoăc 33,6K. B i vây chung ta cân phai ch đ i tôc đô cua the DCE to DCE cung nh tôc đô cua modem la 28,8K hoăc ̣ 33,6K. Suy cho cung vi tôc đô cao cua modem nên chung ta mong muôn tôc đô cua the DTE to ươ DCE se đat đên khoang 115,200 BPS (Maximum Speed of the 16550a UART). Nh ng ch ng trinh truyên thông ma chung ta s dung đa đăt tôc đô cho DCE to DTE. Tuy nhiên, chung chi co ́ tôc đô 9,6 KBPS, 14,4 KBPS ... va coi nh no la tôc đô modem cua chung ta. ư ́ ́ ̣ ̀ ̀ ́ ̣ ̉ ́
ữ ữ ̀ ́ ̉ ́ ̣ ̀ ́ ̀ ̀
ư ư ́ ̃ ̀ ̀ ̀ ̉ ́ ́ ̉ ́ ̀ ̉ ́
ư ứ ợ ớ ̣ ́ ́ ́ ́ ̉ ̣ ́ ́ ̀ ̉ ̣
ữ ơ ̣ ̣ ́ ̀ ̉ ̣ ̣ ̀ ́ ̉ ̣ ̣ ̉
́ ữ ữ ̉ ́ ́ ̉ ̉ ̀
̀ ư ̣ ự ự ́ ở ữ ữ ́ ́ ́ ̉ ́ ̣
ư ̣ ̀ ́ ̀ ́ ̣ ́ ̣ ̉ ̀ ̉
Nh ng modem ngay nay co thê nen d liêu vao trong chung (Data Compression). Điêu nay cung nh rât nhiêu PK-ZIP nh ng phân mêm trong modem cua chung ta co thê nen va giai nen d liêu. Khi đ a ra đung cach th c chung ta co thê mong đ i viêc nen sô truyên v i ty lê 1:4 ữ hoăc thâm chi con cao h n. Ty lê nen d liêu 1:4 la rât tiêu biêu cho viêc nen d liêu cua nh ng ́ ữ file văn ban. Nêu chung ta chuyên nh ng file văn ban đo 28,8K (DCE-DCE), thi khi modem ̉ nen no chung ta th c s đang chuyên 115,2 KBPS gi a nh ng computers va nh vây tôc đô cua DCE-DTE la 115,2 KBPS. Nh vây do la ly do tai sao tôc đô cua the DCE-DTE cân phai cao h n tôc đô kêt nôi cua modem. ơ ́ ̣ ́ ́ ̉
́ ự ờ ̀ ̀ ̉ ́ ̃ ́ ̃ ̣ ̉ ̣ ̣ ̀ ̉ ̀ ́ ̣ ́
̃ ́ ̣ ́ ̣ ́ ́ ́ ̉ ́
̣ ư ̉ ự ớ ớ ữ ̉ ̣ ́ ́ ̉ ́
́ ́ ̉ ̀
i trich Vai nha san xuât modem đa trich dân môt ty lê nen c c đai la 1:8. Đê lam vi du cho l ̣ ự dân đo ho đ a ra môt modem m i v i tôc đô 33,6 KBPS khi đo chung ta co thê co môt s chuyên đôi c c đai 268,800 BPS gi a modem and UART. Nêu chung ta chi co a 16550a nh ng ư chung ta co thê lam 115,200 BPS tops, then you would be missing out on a extra bit of performance. Buying a 16C650 should fix your problem with a maximum transfer rate of 230,400 BPS.
ữ ̃ ̣ ̣ ̉ ́ ́ ́ ́ ́
ữ ́ ự ̀ ườ ợ ́ ́ ̀ ̉ ̣ ̣ ́ ̣ ́ ́ ́ ́
ờ ơ ̣ ́ ̉ ́ ́ ̉ ́ ̀ ́ ́ ̀ ̣ ́
ơ ́ ́ ̣ ̀ ̣ ́ ̣ ́ ́ ̉ ́ ̀ ̀ ̉ ́ ́ ́
́ ữ ữ ́ ̣ ̣ ̉ ́ ̣ ́ ̀ ̀ ̉ ́ ̣
ớ ơ ̀ ự ữ ơ ̀ ́ ̃ ̀ ́ ̀ ̣ ́ ̀ ̀ ̀ ́ ̉
̣ Tuy nhiên, hay khoan lam dung modem cua chung ta nêu chung ta không co nh ng tôc đô mong muôn.Đo la nh ng ty lê nen c c đai. Trong vai tr ng h p ca biêt nêu chung ta cô găng g i cho môt file nen, modem cua chung ta co thê mât nhiêu th i gian h n nen no, vi vây chung ử ta co tôc đô truyên châm h n tôc đô kêt nôi cua modem. Nêu điêu nay xay chung ta nên cô găng tăt viêc nen d liêu cua chung ta lai. Luc nay cân phai cô đinh trên nh ng modem m i h n. Môt ̣ vai file nen dê dang h n nh ng file khac vi vây bât ky file nao ma nen đ n gian thi t ̃ nhiên se co môt ty lê nen cao h n. ơ ơ ́ ̣ ̉ ̣ ́
• Điêu khiên Luông (Flow Control) ̀ ̉ ̀
ư ̣ ơ ́ ́ ̣ ̉ ̀ ́ ̀ ̀ ́ ̣ ̉
̉ ử ữ ̣ ữ ớ ́ ̉ ́ ̣ ̣ ̃ ̣
Nh vây nêu tôc đô cua DTE to DCE la nhanh h n gâp vai lân tôc đô cua DCE to DTE the ́ i modem cua chung ta tai 115,200BPS. S m hay muôn d liêu se bi mât c s dung. Điêu khiên luông co hai ng h p nay điêu khiên luông se đ ̃ ượ ử ̣ ớ ườ ợ ̣ ̣ ̣ ̀ ̀ ̀ ̉ ̀ ̣ ̀ ̉ ̀ ́
63
PC co thê g i d liêu t khi bô đêm bi tran, tr dang c ban, phân c ng (hardware) hoăc phân mêm (software). ̀ ứ ơ ̉ ̣ ̣ ̀ ̀
Điêu khiên luông phân mêm (Software flow control), đôi khi đ ̣ ư ượ ̀ ̉ ̀ ̀ ̀ ̉
́ ự ườ c biêu thi nh Xon/Xoff s ́ ự ̣ ̣ ̀ ̉
the ASCII 19 đ ́ ự Xon va Xoff. Xon th ượ ử ng cho biêt b i nh ng ky t ́ ở ữ ́ ̣ ̉ ́ ̣ ̣ ̣ ̉ ̀
ừ ử ́ ́ ̉ ̉ ̀ ̃ ́ ̣ ̉ ́ ́ ́
́ ự ơ ̣ ́ ̉ ̀ ̉ ̣ ̣ ̀ ́ ́
̀ ữ ̣ ̉ ̀ ̉ ̀ ́ ̀ ́ ́ ̀ ́ ̀
ử cua the ASCII 17 trong ữ c s dung cho Xoff. Nh ng modem chi co môt bô đêm nho vi thê ́ ̣ Xoff đê bao cho may tinh d ng công viêc Xon va may tinh i thê răng no không yêu câu ng TD/RD. Tuy nhiên c g i qua nh ng đ đ ườ ữ ́ ̀ ̣ ́ ̃ ̀
dung hai dang ky t khi đo ky t khi may tinh Ophu đâyO no, Modem g i môt ky t ́ ự g i d liêu. Khi modem co OphongO cho nhiêu d liêu h n, no g i môt ky t ́ ử ̀ ữ ử ữ se g i nhiêu d liêu h n. Kiêu điêu khiên luông thê nay co nhiêu l ̀ ợ ơ ̃ ử bât ky Ob c điên baoO nao nh nh ng ky t ữ ư môi ky t ̉ ứ ́ ự ượ ử yêu câu liên kêt châm mât 10 bits điêu đo co thê lam châm viêc truyên thông lai. ́ ự ̃ ̀ ́ ̣ ́ ̀ ́ ́ ̉ ̀ ̣ ̣ ̀ ̣
Điêu khiên luông phân c ng (Hardware flow control) cung đ ượ ̀ ̉ ̀ ̃ ́ ̀ ̉ ̀
ư ơ ̣ ́ ́ ́ ̉ ́ ̀ ̀
c biêt nh điêu khiên luông RTS/CTS flow control. No s dung hai dây trong cap nôi tiêp cua chung ta h n la truyên thêm nh ng ky t ng d liêu cua chung ta. trong đ ̀ ứ ́ ử ữ ườ ́ ự ữ ̣ ̉ ́
Điêu khiên luông Phân c ng cung đ ượ ̀ ứ ư ̀ ̉ ̀ ̃ ́ ̀ ̉ ̀ ̀ ̣ ̀
ứ ̉ ̀ ̀ ̃ ̀ ̣ ̣ ̀ ̣
̣ ử ử ữ ̣ ́ ́ ́ ̣ ́ ̃ ̀ ̉ ̣ ̣
ữ ́ ́ ̉ ̀ ̃ ̣ ̀ ̀ ̃ ̀
̀ ử ữ ̉ ườ ̀ ̉ ̣ ̣ ̀ ́ ́ ́ ̣ ́
c biêt nh điêu khiên luông RTS / CTS. Vi vây điêu khiên luông phân c ng (hardware flow control) se không lam châm viêc truyên thông lai nh ư ̉ viêc s dung Xon-Xoff does. Khi may tinh muôn g i d liêu no se điêu khiên hoat đông cua ̣ ng the Request to Send. Nêu modem co OphongO cho d liêu nay, thi modem se băng viêc đ ườ điêu khiên hoat đông cua đ ng the Clear to Send va may tinh băt đâu g i d liêu. Nêu modem không co OphongO thi no se không g i tin hiêu cho Clear to Send. ử ́ ̉ ̀ ̃ ̀ ́ ̃ ́ ̣
• The UART (8250 and Compatibles)
́ ̣ ́ ́ ́
ớ ữ ợ ́ ́ ̃ ́ ́ ̀ ̣ ́ ̀ ̃
̃ ứ ̉ ̀ ̉ ̉ ̉ ́ ̉ ̣ ̉
̀ ữ ̀ ̉ ́ ̣ ̀
ườ ữ ̀ ̉ ́ ̉ ́ ̀ ́
̉ ượ ử ữ ́ ̉ ́ ̉ ̀ ́ ̣ ́ ̣
Hinh 3: Nh ng s đô Chân cho 16550, 16450 & 8250 UARTs
ữ
ơ
UART stands for Universal Asynchronous Receiver/Transmitter. Its the little box of tricks found on your serial card which plays the little games v i modem va nh ng thiêt bi kêt nôi khac. ̀ ữ ́ Đa sô cac card se co the UART's tich h p vao trong nh ng mach điên t chip khac ma cung co ̣ ử thê điêu khiên công song song cua chung ta, công games, floppy hoăc ô đia c ng (hard disk drives) va tiêu biêu la nh ng thiêt bi surface mount. The 8250 series, bao gôm the 16450, 16550, ̃ ng thây trên PC cua chung ta. Vê sau chung ta se 16650, & 16750 UARTS la nh ng kiêu th xem xet nh ng kiêu khac, nh ng kiêu ma co thê đ c s dung trong nh ng thiêt bi homemade ữ ữ cua chung ta va projects. ̉ ́ ̀
̀ ̀
The 16550 la chip t ươ ớ ́ ở ̀ ́ ̉ ̀
ng thich v i the 8250 & 16450. Chi khac ̀ ứ ̃ ớ ̀ ̣ ̀ ̉ ̀ ̣ ̉ ̉ ́ ́
64
trên 8250 la viêc l a chon chip ở ̣ ự đông hoăc không. Chân 29 không đ hai chân24 va 29. Chân 24 ̣ i nêu chip hoât c kêt nôi trên the 8250/16450 UARTs. The 16550 đ a vao ngoai ma ch c năng chi la viêc Ochi baoO t ượ ư ̣ ̣ ́ ́ ̀
ng 6: Ghép n i trao đ i tin n i ti p
ổ
ố
ươ
ố ế
̉ ự ớ ́ ́ ̀ ̀ ̀ ́
ớ ̃ ợ ữ ̀ ́ ̉ ́ ́
Ch hai chân m i trong no. Đo la Transmit Ready va Receive Ready ma co thê th c thi v i DMA ̣ (Direct Memory Access). Nh ng chân nay co hai kiêu thao tac khac nhau. Mode 0 hô tr viêc chuyên giao đ n DMA trong khi mode 1 hô tr Multi-transfer DMA.
̃ ợ ơ ̉
Mode 0 cung đ c l a chon khi bô đêm FIFO đ c goi la mode 16450. Mode nay đ ượ ượ ự ̃ ̣ ̀ ̀ ̣ ̣ ̣
̣ ́ ̉ ̣ ̣ ̣ ́
ư ̉ ̀ ̀ ́ ́
́ ́ ̣ ́ ̣ ̃ ̣ ̣
́ ̀ ̀ ̣ ̃ ̣ ̣
́ ́ ́ ̃ ̣ ̣
ượ ̀ ̉ ̀ ̀
c kich hoat va the DMA Mode Select = 1. Trong mode 1, RXRDY se hoat đông ượ ̣ ́ ̣ ̀ ̃ ̣ ̣
ứ ở ́ ̀ ̣ ̉ ̀ ̃ ̣ ̣
̃ ượ ́ ̣ ̣ ́ ́ ̣
́ ́ ̣ ̀ ̃ ́ ̣
c vô ượ c cho phep hiêu hoa qua bit 0 cua the FIFO Control Register hoăc khi bô đêm the FIFO đ ượ nh ng DMA Mode Select = 0. (Bit 3 cua FCR) Trong mode nay RXRDY la tich c c m c thâp ự ở ứ khi it nhât môt characters (Byte) co măt trong the Receiver Buffer. RXRDY se không hoat đông m c cao khi không co nhiêu characters tôn tai trong the Receiver Buffer. TXRDY se hoat đông ở ứ ở ứ m c m c thâp khi không co characters trong the Transmit Buffer. No se không hoat đông ở ứ c tai vao trong the Transmit Buffer. Mode 1 la khi bô cao sau khi characters/byte đâu tiên đ ̣ ở đêm FIFO đ m c thâp khi the trigger level la reached hoăc khi 16550 Time Out xay ra va se quay tr lai trang thai không hoat đông khi không co characters trong the FIFO. TXRDY se đ c kich hoat khi c kich hoat khi the không co characters co măt bên trong the Transmit Buffer va se không đ ượ FIFO Transmit Buffer la hoan toan Full. ̀ ̀ ̀
Chân
Tên
a. L i ghi chu
ờ
Chân 1:8
D0:D7
Data Bus
Receiver Clock Input. Tân sô đâu vao nay cân phai cân băng
́
Chân 9
RCLK
v i the receivers baud rate * 16 ớ
Chân 10
RD
Nhân d liêu (Receive Data)
̣ ữ
̀ ́ ̀ ̀ ̀ ̀ ̉ ̀
Chân 11
TD
Truyên d liêu (Transmit Data)
̀ ữ
̣
Chân 12
CS0
Chip Select 0 - Active High
Chân 13
CS1
Chip Select 1 - Active High
Chân 14
nCS2
Chip Select 2 - Active Low
Baud Output - Output from Programmable Baud Rate
Chân 15
nBAUDOUT
Generator. Frequency = (Baud Rate x 16)
Đâu vao External Crystal Input – S dung cho Baud Rate
ử
̣
Chân 16
XIN
Generator Oscillator
Chân 17
XOUT
Đâu ra External Crystal Output
̀ ̀ ̣
Chân 18
nWR
Write Line – Inverted (Đao)̉
Chân 19
WR
Write Line - Not Inverted (không đao)̉
Chân 20
VSS
Kêt nôi t
i Common Ground
́ ớ
̀
Chân 21
RD
Read Line - Inverted
Chân 22
nRD
Read Line - Not Inverted
́
Chân 23
DDIS
UART. Co thê kêt nôi t
Vô hiêu hoa bô phân điêu khiên (Driver Disable). Chân nay ́ ớ i
r i vao m c thâp khi CPU đoc t ơ
̣ ừ
ứ
̣ ́ ̣ ̣ ̀ ̉ ̀
65
̀ ́ ́ ̉ ́
Bus Transceiver trong tr
ng
ườ
ng h p bus d liêu co dung l ữ
ợ
ượ
cao.
Chân 24
nTXRDY
Transmit Ready
Xung đia chi (Address Strobe). S dung nêu tin hiêu không
ử
̣ ́
Chân 25
nADS
ôn đinh trong suôt qua trinh đoc hoăc ghi cycle
̣ ̉ ̣ ́ ́ ̣
Chân 26
A2
Address Bit 2
Chân 27
A1
Address Bit 1
Chân 28
A0
Address Bit 0
Chân 29
nRXRDY
Receive Ready
Chân 30
INTR
Interrupt Output
Chân 31
nOUT2
User Output 2
Chân 32
nRTS
Request to Send
Chân 33
nDTR
Data Terminal Ready
Chân 34
nOUT1
User Output 1
Chân 35
MR
Master Reset
Chân 36
nCTS
Clear To Send
Chân 37
nDSR
Data Set Ready
Chân 38
nDCD
Data Carrier Detect
Chân 39
nRI
Ring Indicator
Chân 40
VDD
+ 5 Volts
Bang 2: Pin Assignments for 16550A UART
̉ ̣ ́ ́ ̀ ̣ ̣
̉
ợ ́ ̉ ́ ̉ ̀ ́ ̀
̀ ̀ ́ ̉ ́ ̣ ́ ̀ ̉ ́
̃ ượ ử ̀ ̣ ̀ ́ ̃ ́ ̣ ̉ ̣
ườ ̀ ̀ ̀
ữ ở ̀ ́ ̣ ́ ̣ ̀ ̀ ̉ ̉ ̃ ̉ ̉ ́ ̣
Tât ca cac chân cua UARTs đêu thich h p v i TTL. Bao gôm TD, RD, RI, DCD, DSR, CTS, ớ DTR va RTS ma tât ca cac giao diên trong đo la serial plug cua chung ta, typically a D-type ́ c s dung. Cai connector. Vi vây RS232 Level Converters (ma chung ta se noi cu thê sau) đa đ nay thông th ng la the DS1489 Receiver va the DS1488 as the PC has +12 and -12 volt rails ma co thê s dung b i nh ng thiêt bi nay. Trinh chuyên đôi The RS232 se chuyên đôi tin hiêu ̉ ử the TTL vao trong RS232 Logic Levels. ̀
̀ ̣ ̉ ̣ ́ ́ ́ ́ ́ ̉ ́
̀ ́ ̃ ̀ ̣
c kêt nôi t ́ ớ ́ ̉ ̣ ̣ ́ ̀ ̀
c s dung cho ch ươ ở ́ ̉ ̣ ̀ ̣ ̀
ữ ̀ ̣ ́ ̣ ̉
ư ự ờ ờ ́ ̣
́ ớ ượ ừ ̣ ́ ́ ̀ ̀ ̀
66
The UART yêu câu môt Clock đê chay. Nêu chung ta xem xet card nôi tiêp cua chung ta a common crystal tim thây cung la a 1.8432 MHZ hoăc a 18.432 MHZ Crystal. The crystal bên ̀ i chân XIN-XOUT cua the UART s dung thêm môt sô thanh phân ma trong đ ử ượ ng trinh the giup đ the crystal đê kh i đông oscillating. Clock nay se đ ̃ ượ ử ỡ ̉ Programmable Baud Rate Generator la nh ng giao diên tr c tiêp bên trong mach chuyên đôi ự th i gian (the transmit timing circuits) nh ng không tr c tiêp bên trong mach receiver th i gian (the receiver timing circuits). Đôi v i viêc kêt nôi ngoai nay đ chân 15 (BaudOut) đên chân 9 (Receiver clock in). Chu y răng tin hiêu clock se c lam t tai Baudrate*16. ̃ ở ́ ́ ́ ̀ ́ ̣ ̣
Ch
ng 6: Ghép n i trao đ i tin n i ti p
ổ
ố ế
ố ự ự
ứ ́ ́ ́ ̣ ̀ ̉ ̀ ́
ữ ̣ ̉ ́ ̀ ̃ ̀ ́ ̣ ̣ ̉ ̉ ́ ̣
ừ ữ ́ ̣ ̀ ̃ ́
ữ ̣ ̃ ̀ ́ ́ ̃ ̀ ̉ ̣ ̀ ́
ữ ́ ̀ ́ ́ ̣
ươ ́ ử Nêu chung ta th c s nghiêm tuc trong viêc nghiên c u tim hiêu vê 16550 UART xuc tiên s dung trong PC cua chung ta, thi hay đê xuât viêc downloading môt ban sao cua trang tinh d liêu PC16550D t National Semiconductors Site. Trang tinh d liêu (Data sheets) thi săn co trong dang mâu .PDF vi thê chung ta se cân Adobe Acrobat Reader đê đoc nh ng điêu đo.Texas Instruments co released the 16750 UART ma co 64 Byte FIFO's. Trang tinh d liêu cho TL16C750 săn co đê dung trong Texas Instruments Site.
Types of UARTS (For PC's) (deleted).
• Registers cua công nôi tiêp
̃ ́ ̉ ̀
• Port Addresses & IRQ's
̉ ̉ ́ ́
Tên
Đia chi
IRQ
COM 1
3F8
4
COM 2
2F8
3
COM 3
3E8
4
COM 4
2E8
3
Bang 3: Standard Port Addresses
̣ ̉
̉
̀ ̉ ́ ̀ ̣ ́ ́ ́ ́ ̀
́ ở ữ ợ ̣ ̀ ́ ̀ ́
̣ ơ ở ữ ́ ̣ ́ ̉ ̣ ̉ ̀ ́ ́ ̉ ́
Trên la bang standard port addresses. Chung lam viêc trong đa sô cac PC. Nêu chung ta tinh ̣ ự c hay may măn s h u môt IBM P/S2 ma co micro-channel bus, thi chung ta mong đ i môt s ờ thiêtlâp khac cua đia chi va IRQ.Giông nh công LPT, d liêu c s cho cac công COM co thê ̉ đoc t ư ̉ Vung D liêu BIOS (BIOS Data Area). ̣ ừ ữ ̀ ̣
Start Address
Function
0000:0400
COM1's Base Address
0000:0402
COM2's Base Address
0000:0404
COM3's Base Address
0000:0406
COM4's Base Address
Bang 4: COM Port Addresses in the BIOS Data Area;
̉
Trên la bang cho thây đia chi ma chung ta co thê tim thây the Communications (COM) ports ̀ ̉ ́ ̣ ̉ ̀ ́ ́ ̉ ̀ ́
addresses trong the BIOS Data Area. Môi đia chi se chiêm 2 bytes. ̃ ̣ ̉ ̃ ́
Ch ng trinh mâu sau viêt băng ngôn ng C, Hiên ra thê nao chung ta co thê đoc nh ng vi ữ ữ ̣ ̀ ̃ ́ ̀ ̣ ́ ̀ ́ ́ ̉ ̣
ươ tri nay đê thu đ c nh ng đia chi cua công truyên thông cua chung ta. ữ ́ ̀ ̉ ̣ ̉ ̉ ̉ ̀ ̉ ́
#include
void main(void)
Ỳ
unsigned int far *ptraddr;
/*Pointer to location of Port Addresses */
67
ượ
#include
unsigned int address; /* Address of Port */
int a;
ptraddr=(unsigned int far *)0x00000400;
for (a = 0; a < 4; a++)
Ỳ
address = *ptraddr;
if (address == 0)
printf("No port found for COM%d n",a+1);
Ữ
else
printf("Address assigned to COM%d is %Xh n",a+1,address);
Ữ
*ptraddr++;
Ỷ
Ỷ
• Table of Registers
Base Address
DLAB
Read/Write
Abr. Register Name
=0
-
Transmitter Holding Buffer
Write
=0
-
Receiver Buffer
Read
+ 0
=1
-
Read/Write
Divisor Latch Low Byte
=0
Read/Write
IER
Interrupt Enable Register
+ 1
=1
-
Read/Write
Divisor Latch High Byte
-
Read
IIR
Interrupt Identification Register
+ 2
-
Write
FCR
FIFO Control Register
-
Read/Write
LCR
Line Control Register
+ 3
-
Read/Write
MCR Modem Control Register
+ 4
-
Read
LSR
Line Status Register
+ 5
-
Read
MSR Modem Status Register
+ 6
-
Read/Write
-
Scratch Register
+ 7
Bang 5: bang cua Registers
• DLAB?
̉ ̉ ̉
Chung ta nên chu y trong bang cua Register co côt DLAB. Khi DLAB thiêt lâp ̣ ở ́ ́ ́ ̉ ̉ ́ ̣ ́ ̣
̣ ̀ ̉ ̉ ̀ ́ ̣ ́ ̉ ́ ̀
̣ ̀ ̉ ́ ̉ ̣ ̉ ́
ng thanh ghi điêu khiên (control register), hai thanh ghi tr i ‘1’qua đ ̣ ớ ườ ́ ̀ ̉
́ ừ ̀ ̃ ́ ́ ́ ̉ ̣ ́ ̣ ̀ ̀ ̣ ̉ ́
68
‘0’ hoăc ‘1’ ̉ se co môt vai thay đôi cua register. Đây la ly do tai sao URAT co thê co 12 register (bao gôm ca thanh ghi scratch) măc du chi co 8 công đia chi. DLAB thay thê cho Divisor Latch Access Bit. ở Khi DLAB thiêt lâp t thanh săn co t đo chung ta co thê đăt tôc đô truyên thông đêu đăn cua chung ta trong bits per second.
Ch
ng 6: Ghép n i trao đ i tin n i ti p
ổ
ố
ố ế
̃ ́ ̣ ̀ ̀ ̉ ̣
ở ̀ ơ ̣ ̃ ̣ ̉ ́ ̣
̉ ́ ̀ ́ ́ ̀ ́ ̉ ́ ́ ́
ở ̣ ́ ̣ ̀ ́ ̉ ̀ ̀ ̣ ̣
̣ ờ ơ ́ ̣ ́ ̀ ́ ́ ̣ ̀ ́ ̉ ̀
ở ơ ̉ ́ ̣ ̉ ́ ̣
ươ ́ The UART se co môt crystal ma cân phai dao đông xung quanh 1.8432 MHZ. The UART kêt h p chăt che môt divide b i 16 counter ma đ n gian divides the incoming clock bao hiêu b i 16. ở ợ Gia thiêt răng chung ta co 1.8432 MHZ clock signal, ma co thê cho phep chung ta co môt c c ̣ ự đai, 115,200 hertz bao hiêu lam cho URAT tr nên co kha năng truyên va nhân tai 115,200 Bits Per Second (BPS). Đo thât tuyêt v i cho cac modem nhanh h n va cac thiêt bi ma co thê điêu khiên tôc đô cua no nhanh h n, but others just wouldn't communicate at all. B i vây the UART phu h p v i Programmable Baud Rate Generator ma đ
c điêu khiên b i hai register. ở ̀ ợ ớ ̀ ượ ̀ ̉
̉ ́ ̣ ́ ́ ̀ ̣ ́ ̀ ̣ ̀ ̀
̉ ự ượ ̉ ́ ̣
ở c cât gi ữ ượ ở ̀ ́ ̀ ̉ ̀
ữ ́ ̉ ̀ ́ ̀ ́ ̀ ̀ ́ ̉ ́ ̉ ́ ̣
ượ ử ̀ ơ ̣ ̀ ̣ ̣ ̀
"Divisor latch low byte" trong khi register th hai (base + 1 khi DLAB = 1) cât gi ̉ Đê vi du chung ta muôn truyên thông tai 2400 BPS. Chung ta lam viêc bên ngoai ma phai c 2400 Hertz Clock. The "Divisor", trong case 48 trong hai registers điêu khiên b i the "Divisor Latch Access Bit". Divisor nay trong 16 bits (ie 0 to 65535). The UART chi co môt bus c s dung. Register đâu tiên (Base + 0 khi DLAB ữ ứ ữ ́ ́
chia 115,200 b i 48 đê co thê th c hiên đ nay, đ co thê la bât ky sô nao ma co thê cât gi d liêu 8 bit, vi vây đây la n i hai register đ ữ = 1) cât gi "Divisor latch high byte".
Bên d i la môt bang môt sô tôc đô va Divisor chôt cua chung byte thâp va byte cao. Chu ướ ở ́ ̀ ̣ ̉ ̣ ́ ́ ̣ ̀ ́ ̉ ́ ́ ̀
y răng tât ca cac Divisor đêu đ c đ a vao Hê 16. ̀ ượ ư ́ ̀ ́ ̉ ́ ̀ ̣
Speed (BPS) Divisor (Dec) Divisor Latch High Byte
Divisor Latch Low Byte
00h
50
2304
09h
80h
300
384
01h
C0h
600
192
00h
30h
2400
48
00h
18h
4800
24
00h
0Ch
9600
12
00h
06h
19200
6
00h
03h
38400
3
00h
02h
57600
2
00h
01h
115200
1
00h
Bang 6: Table of Commonly Used Baudrate Divisors
•
Interrupt Enable Register (IER)
̉
Notes
Bit
Reserved
Bit 7
Reserved
Bit 6
Bit 5
Enables Low Power Mode (16750)
Bit 4
Enables Sleep Mode (16750)
Bit 3
Enable Modem Status Interrupt
69
Bit 2
Enable Receiver Line Status Interrupt
Bit 1
Enable Transmitter Holding Register Empty Interrupt
Bit 0
Enable Received Data Available Interrupt
ữ ơ ́ ̉ ̀ ̣ ̉ ́ ̀ ̃ ̉
The Interrupt Enable Register co thê la môt trong nh ng register đ n gian nhât va dê hiêu ́ m c cao cho Received Data Available Interrupt ma tao ra môt ngăt ở ứ ́ ̣ ̀ ̣ ̣
trên UART. Thiêt lâp bit 0 khi nhân register/FIFO ch a d liêu đê đoc băng CPU. ứ ữ ̣ ̣ ̉ ̣ ̀
́ ́ ̀ ̣ ̣ ̀
́ ́ ̣ ́ ̣ ́ ̃ ́
̉ ườ ́ ớ ̉ ̣ ́ ̀ ́ ́ ̣
c l u tr ng trang thai. T ươ ơ ữ ơ ́ ́ ̀ ̃ ̀ ́ ̉
•
Interrupt Identification Register (IIR)
Bit 1 cho phep Transmit Holding Register Empty Interrupt. Ngăt nay CPU khi bô đêm truyên ̣ ự ng ngăt trang thai. The UART se ngăt khi nhân s thông tin trông. Bit 2 cho phep nhân đ ườ nh vây đôi v i bit 3 thi cho phep ngăt modem trang ng t chuyên đôi đ ư ̣ ự thai. Bit 4 đên 7 thi dê dang h n. Chung đ đ n gian (If only everything was that ượ ư easy).
Bit
Notes
Bit 6 Bit 7
No FIFO
0
0
Bits 6 and 7
FIFO Enabled but Unusable
1
0
FIFO Enabled
1
1
Bit 5
64 Byte Fifo Enabled (16750 only)
Bit 4
Reserved
Reserved on 8250, 16450
0
Bit 3
16550 Time-out Interrupt Pending
1
Bit 2 Bit 1
Modem Status Interrupt
0
0
1
0
Bits 1 and 2
Transmitter Holding Register Empty Interrupt
0
1
Received Data Available Interrupt
1
1
Receiver Line Status Interrupt
0
Interrupt Pending
Bit 0
1
No Interrupt Pending
Bang 8: Interrupt Identification Register
̉
̀ ̉ ̣ ̀
ượ ̣ ́ ̉ ̀ ̀ ̀ ́ ́
̣ ̀ ̀ ̀ ̉ ̀ ́ ̉ ́ ́ ̃ ́ ̣ ́ ̀ ́
70
The interrupt identification register la register chi đoc (read only register). Bits 6 va 7 đ a ra ư c kich trang thai the FIFO Buffer. Khi ca hai bit nay băng ‘0’ thi không co FIFO buffers đ ự hoat. Điêu nay cân phai la kêt qua duy nhât chung ta se co 8250 hoăc 16450. Nêu bit 7 la tich c c nh ng bit 6 la không tich c c thi UART co cho phep bô đêm cua no nh ng lai không thê dung ự ư ư ̀ ́ ̀ ́ ́ ̣ ̣ ̉ ́ ̣ ̉ ̀
ng 6: Ghép n i trao đ i tin n i ti p
ố ế
ố
ổ
ươ
̀ ̀ ̉ ́ ̃
c (it's buffers enabled but are unusable). Điêu nay xay ra trên 16550 UART khi co lôi trên ự c FIFO. Nêu ca hai bit la '1' thi FIFO buffers la tich c c ượ ̀ ̉ ̀ ́ ̉ ̀ ̀ ̀ ́
Ch đ ượ FIFO buffer lam không thê dung đ hoan toan co thê dung đ
c. ượ ̀ ̀ ́ ̉ ̀
Bits 4 va 5 đ c l u tr . Bit 3 cho thây trang thai cua time-out interrupt trên 16550 or higher ượ ư ữ ̀ ́ ̣ ́ ̉
cao h n. ơ
̉ ̉ ́ ̀ ́ ́ ̣ ́ ̣ ́ ̣ ̣
ở ̣ ở ữ ̉ ́ ̃ ̣ ̀ ́ ́ ̀ ̣ ́
̀ ư ́ ́ ́ ̀ ́ ̀
̀ ư ̀ ́ ́ ̀ ̀ ́
́ Đê cho nhay đên Bit 0 ma cho thây interrupt xuât hiên. Nêu môt interrupt xuât hiên trang thai cua no se hiên b i bits 1 va 2. Nh ng ngăt đo lam viêc trang thai quyên u tiên. The Line ̀ ư Status Interrupt co quyên u tiên cao nhât, sau đo la the Data Available Interrupt, tiiêp theo la the Transmit Register Empty Interrupt va kê đo la the Modem Status Interrupt ma co quyên u tiên thâp nhât . ́ ́
First In/First Out Control Register (FCR)
The FIFO register la register chi ghi (write only register). Register nay đ c s dung đê điêu ̀ ̉ ̣ ̉ ̀
khiên the FIFO (First In/First Out) buffers ma đ c tim thây trên 16550 cao h n. ̀ ượ ̀ ượ ử ơ ̉ ̀ ́
Bit 0 cho phep thao tac nhân va truyên cua FIFO. Ghi '0' t ́ i bit nay se vô hiêu hoa thao tac ́ ́ ̣ ̀ ̀ ̉ ̀ ̃ ̣ ́
truyên va nhân cua FIFO, vi vây chung ta phai loose cât tât ca d liêu trong FIFO buffers. ớ ̉ ữ ̀ ̀ ̣ ̉ ̀ ̣ ́ ̉ ́ ́ ̣
̀ ̀ ̉ ̣ ̀ ̣ ̣ ̀ ̣ ̣ ̉ ̣ ́ ̣
ữ ̣ ̣ ̣ ̣ ́ ̣ ̣ ̣ ̀ ́ ̣ ̀
ưở ̃ ̉ ̀ ̣ ̣ ̉ ̀ ̃ ̉ ́ ̀ ̃ ̀
c xac lâp lai, vi vây chung ta không cân thiêt lâp bit nay vê 0 khi kêt thuc. Bit's 1 va 2 điêu khiên viêc lam sach viêc truyên hoăc nhân cua FIFO. Bit 1 chiu trach nhiêm cho bô đêm nhân trong khi bit 2 chiu trach nhiêm cho bô đêm truyên. Thiêt lâp nh ng bit nay lên 1 se chi lam sach nôi dung cua FIFO va se không anh h ng đên register. Hai bit nay se cung đ ượ ́ ̣ ̣ ̀ ̣ ́ ̀ ́ ̣ ̀ ̀ ́ ́
Bit
Notes
Bit 6
Interrupt Trigger Level
Bit 7
0
1 Byte
0 Bits 6 and 0
1
4 Bytes
7
1
0
8 Bytes
1
1
14 Bytes
Enable 64 Byte FIFO (16750 only)
Bit 5
Reserved
Bit 4
DMA Mode Select. Thay đôi trang thai cua chân RXRDY & TXRDY t
ừ
Bit 3
mode 1 đên mode 2.
̉ ̣ ́ ̉
Bit 2
Clear Transmit FIFO
Bit 1
Clear Receive FIFO
Bit 0
Enable FIFO's
Bang 9: FIFO Control Register
́
71
̉
Bit 3 cho phep DMA l a chon mode ma đ c tim thây trên 16550 UARTs va cao h n. More ơ ́ ̣ ̀ ́ ̀
on this later. Bits 4 va 5 la nh ng bit co kiêu đ n gian, d tr . ự ữ ự ̀ ữ ̀ ượ ơ ̀ ́ ̉ ̉
ượ ử ̣ ̉ ́ ̣ ́ ̣ ́
Bits 6 and 7 đ c thiêt lâp nên '1' va bit 6 đ ượ ́ ̣ ̀ ́ ̣ ́ ̀ ̃ ́ ̣
c s dung đê thiêt lâp triggering level on the Receive FIFO. Vi du nêu bit 7 c thiêt lâp xuông '0' thi trigger level se thiêt lâp v i 8 bytes. ớ c thiêt lâp ượ ̉ ữ ́ ̣ ̀ ́ ́ ̣
72
đ ượ Khi co 8 bytes cua d liêu trong receive FIFO thi ngăt Received Data Available đ (See IIR).
Ch
ng 6: Ghép n i trao đ i tin n i ti p
ươ
ố ế
ố
ổ
Bit 7
Divisor Latch Access Bit
1
Truy câp t
i Receiver buffer, Transmitter buffer & Interrupt
ớ
Line Control Register (LCR)
0
Enable Register
Bit 6
Set Break Enable
Bits 3, 4
Bit 5 Bit 4 Bit 3 Parity Select
And 5
X
X
0
No Parity
0
0
1
Odd Parity
0
1
1
Even Parity
1
0
1
High Parity (Sticky)
1
1
1
Low Parity (Sticky)
Bit 2
Length of Stop Bit
0
One Stop Bit
2 Stop bits for words of length 6,7 or 8 bits or 1.5 Stop Bits for
1
Word lengths of 5 bits.
Bits 0 And 1 Bit 1 Bit 0 Word Length
0
0
5 Bits
0
1
̣
Article II.
6 Bits
1
0
7 Bits
1
1
8 Bits
Bang 10: Line Control Register
̉
́ ơ ̉ ữ ́ ̣ ̣ ̀ ̀
̣ ̀ ̣ ́ ̃ ́
̀ ữ c (See DLAB). Bit 6 thiêt lâp cho phep d ng (the Break). Khi tich c c, đ ự ượ ườ ̀ ̀ ́ ̀ ́ ̣ ́
́ ừ ừ ̀ ̣ ́ ̀ ̀
The Line Control register thiêt lâp nh ng tham sô c ban cho viêc truyên thông. Bit 7 la the ́ Divisor Latch Access Bit hoăc DLAB không tôn tai lâu (for short). Chung ta đa noi vê nh ng cai gi ma no lam đ ng TD đi vao trang thai "Spacing" ma nguyên nhân lam d ng (the Break) the receiving UART. Thiêt lâp bit nay vê '0' vô hiêu hoa the Break (Disables the Break). ́ ̣ ̀ ̀ ̣ ́
ứ ́ ́ ̀ ́ ̃ ́ ̀
̀ ̉ ̃ ̉ ́ ̀ ́ ́ ́ ̣ ̀ ̀ ́
c s dung. Nhay qua t i '1' thi parity đ ư ượ ử ̣ ớ ớ ̣ ́ ́ ́ ̀ ̣ ̉ ́ ́
̀ ơ ́ ̀ ́ ̀ ̉ ̉ ̀
ư ́ ̉ ̣ ̀ ́ ́ ́ ̀ ̣ ̉ ̃ ̀
73
Bits 3, 4 and 5 select parity. Nêu chung ta nghiên c u 3 bit nay, chung ta se thây răng bit 3 ượ ử c s điêu khiên chăn le (controls parity). Đo la, nêu no thiêt lâp vê '0' thi không co parity đ ̉ dung, nh ng nêu no thiêt lâp t i bit 5, chung ta co thê ̀ thây răng no điêu khiên sticky parity. Sticky parity la đ n gian khi parity bit luôn luôn truyên va ́ kiêm tra '1' hoăc '0'. Bit nay co rât it thanh công trong viêc kiêm tra lôi nh nêu 4 bit đâu tiên co lôi nh ng the sticky parity bit ch a viêc thiêt lâp bit thich h p, thi môt parity lôi se không cho ư ứ ợ ̃ ̣ ́ ̣ ́ ̀ ̣ ̃ ̃
̀ ử ́ ̉ ̣
kêt qua. Sticky parity cao la s dung '1' cho the parity bit, trong khi the opposite, sticky parity thâp thi s dung '0' cho the parity bit. ̀ ử ́ ̣
Nêu bit 5 điêu khiên sticky parity, thi s đôi h ̉ ướ ̀ ự ́ ̀ ̉ ̀ ̉ ́ ̉ ̀
ng parity đ ườ ượ ́ ̀ ̃ ́ ̣ ̀ ́ ́ ̣
̣ ̀ ́ ̀ ́ ́ ̀
ng bit nay không phai cho kêt qua binh c cung câp bit 3 la se thiêt lâp lên '1'. Odd parity la khi bit parity phat tin hiêu th ̀ '1' hoăc '0' vi thê ma co odd number of 1's. Even parity must khi đo thanh parity bit produces va even number of 1's.
́ ơ ̀ ̀ ̉ ̃ ̃ ̉ ̀ ̀ ̉ ̀ ́
ườ ử ớ ̣ ̃ ̀ ̀ ́ ̣ ̣ ̉
̀ ̣ ̣ ̃ ̃ ̉ ́ ̣ ̣ ̣ ́ ̀ ́ ̀
Điêu nay cung câp s kiêm tra lôi tôt h n nh ng vân không phai la hoan hao, vi thê CRC-32 ư ́ ự ̣ ng xuyên cho s a lôi phân mêm. Nêu môt bit bi đao v i even parity hoăc đ c s dung th ượ ử odd parity, thi môt parity bi lôi se xay ra, tuy nhiên nêu hai bit bi lât theo môt cach nao đo ma no ́ sinh ra the correct parity bit thi viêc parity bi lôi la không thê xay ra. ̀ ̣ ̣ ̃ ̀ ̉ ̉
ữ ữ ́ ̣ ̣ ̀ ̉ ̣ ́ ̣ ̀ ̀ ̃
̣ ́ ́ ̣ ́ ̃ ̣ ̣ ̣ ̣ ̀
̣ Bit 2 thiêt lâp đô dai cua nh ng the stop bits. Viêc thiêt lâp nh ng bit nay vê ‘0’ se đem lai môt stop bit, tuy nhiên nêu thiêt lâp no lên ‘1’ se đem lai 1.5 hoăc 2 stop bits phu thuôc vao the word length. Chu y răng the receiver chi kiêm tra stop bit đâu tiên. ́ ́ ̀ ̉ ̉ ̀
Bits 0 and 1 thiêt lâp the word length. This should be pretty straight forward. Môt word length ́ ̣ ̣
cua 8 bits th ng đ c s dung ngay nay. ườ ̉ ̣ ̀
ượ ử • Modem Control Register (MCR)
Bit
Notes
Bit 7
Reserved
Bit 6
Reserved
Bit 5
Autoflow Control Enabled (16750 only)
Bit 4
LoopBack Mode
Bit 3
Aux Output 2
Bit 2
Aux Output 1
Bit 1
Force Request to Send
Bit 0
Force Data Terminal Ready
Bang 11: Modem Control Register
̉
̀ ̣ ̀ ̀ ́
̀ ượ ̣ ̣ ̀ ́ ́ ̣ ̀
̣ ́ ́ ́ ́ ́ ̣ ̀
ượ c lăp lai khi the receiver in. DSR, CTS, RI & DCD đ ư ̣ ̣ ́ ́
c kêt nôi t ́ ớ ượ ́
c đăt trong trang thai không hoat đông. Trong mode nay bât ky d liêu nao ma đ ̀ ượ ̀ ữ ̣ ̣ ́ ̣ ̣ ̀ ́ ̣ ̀
̀ ̀ ̣
The Modem Control Register la môt Read/Write Register. Bits 5,6 va 7 la reserved. Bit 4 kich c đăt vao hoat the loopback mode. Trong Loopback mode viêc truyên thông nôi tiêp ra ngoai đ ̀ c ng ng kêt nôi. Viêc truyên ra ngoai trong trang thai đanh dâu. The receiver serial input đ ư c ng ng kêt nôi. DTR, RTS, OUT1 đ ượ ượ i the modem control inputs. Nh ng chân The modem control output & OUT2 đ ữ ̣ đ c đăt ượ trong transmitter registers cho đâu ra received b i the receiver circuitry trên cung môt chip va ̀ ở tai bô đêm the receiver. Điêu nay co thê s dung đê kiêm tra thao tac UARTs. săn sang ̉ ử ở ̃ ̀ ̣ ̣ ̣ ̀ ̀ ́ ̣ ̉ ̉ ́
Aux Output 2 co thê kêt nôi t ́ ̉ ́ ̉ ̀ ̉ ́
74
Output 1 thông th ng đ ườ ượ i external circuitry đê điêu khiên ngăt x ly UART-CPU. Aux ́ ớ ̉ c s dung chuyên đôi ư c ng ng kêt nôi, nh ng trên nhiêu card đ ư ́ ử ượ ử ́ ́ ̀ ̣ ̉
ng 6: Ghép n i trao đ i tin n i ti p
ổ
ố
ố ế
ượ ử ơ ̣ ̉ ̀
c s dung cho MIDI. Bits 0 and 1 đ n gian điêu ng d liêu thich h p cua chung. Vi du vê viêc thiêt lâp bit 1 lên '1' lam yêu câu ợ ̉ ̣ ́ ̉ ́ ́ ̣ ̀ ̣ ́ ̣ ̀ ̀
Ch ươ gi a 1,8432MHZ crystal to a 4MHZ crystal đ ữ khiên nh ng đ ữ ườ ữ đê g i line active.
• Line Status Register (LSR)
̉ ử
Notes
Bit
Error in Received FIFO
Bit 7
Empty Data Holding Registers
Bit 6
Empty Transmitter Holding Register
Bit 5
Bit 4
Break Interrupt
Bit 3
Framing Error
Bit 2
Parity Error
Bit 1
Overrun Error
Bit 0
Data Ready
Bang 12: Line Status Register
̉
̀ ̉ ̣ ̀ ̀
The line status register la thanh ghi chi đoc. Bit 7 la bit the error in received FIFO bit. Bit nay ứ c ch a ̀ ượ ̀ ́ ́ ́ ̣ ̃ ̣ ̉ ̣
la bit cao khi co it nhât môt lôi break, parity hoăc framing xay ra trên môt byte ma đ trong the FIFO.
Khi bit 6 đ ượ ́ ̣ ̀ ̉ ̀
byte tiêp theo cua d liêu se đ ữ ̃ ượ ử ̉ ữ ́ ́ ̣ ́
̣ ̉ ̣ ̉ ̉ ̉
ng. Khi bit 5 đ ́ ̀ ́ ̀ ́ ̉ ̀ ́ ̣ ̀ ̉
ượ ữ ́ ̀ ́ ́ ̀ ̀
̣ ̀ ̀ ́ ́ ́ ̀
ườ ữ ̉ ́ ́ ̀ ̉ ̀ ́ ̉ ́ ́ ̀ ̣ ̣ ̀ ̀ ̣
ữ ́ ̣ ̀ ́ ̀ ́
̉ ượ ử ữ ử ́ ́ ̉ ̣ ̣ ̉ ̉ ́ ́ ̣ ̣
c thiêt lâp, thi ca hai thanh ghi transmitter holding register va thanh ghi shift c g i đên register trông. Thanh ghi The UART's holding gi ́ c s dung đê chuyên đôi byte nôi parallel fashion. Thanh ghi dich chuyên (shift register) đ ượ ử c thiêt lâp, thi chi thanh ghi the tiêp, vi thê ma no cot thê truyên trên môt đ ượ ̣ ườ ́ c thiêt transmitter holding register trông. Vi thê s khac nhau gi a hai bit đo la gi? Khi bit 6 đ ́ ự ̉ lâp, thi thanh ghi transmitter holding va thanh ghi shift registers trông, không co qua trinh chuyên ng truyên d liêu. đôi nôi tiêp nao xay ra vi thê phai không co qua trinh hoat đông nao trên đ ́ c thiêt lâp, thi thanh ghi transmitter holding register trông, vi thê nh ng byte khac Khi bit 5 đ ượ c g i đên công d liêu, nh ng viêc chuyên đôi nôi tiêp đang s dung thanh ghi dich co thê d ữ chuyên (shift register) co thê chiêm chô. ̉ ́ ̉ ́ ̃
ng d liêu đa nhân đ c gi ườ ữ ữ ̉ ̣ ̃ ̣ ́
̣ ượ ử ờ ơ ̉ ́ ̀ ́ ̣ ̉ ̃ ̀ ̉
The break interrupt (Bit 4) xay ra khi đ trong trang thai lôgic '0' (Space) cho khoang th i gian h n th i gian no dung đên khi g i môt OwordO đây đu. Th i ờ ờ gian đo bao gôm ca th i gian cho the start bit, data bits, parity bits and stop bits. ̉ ờ ́ ̀
̉ ́ ̀ ̉ ̀ ̀ ̀ ̉ ̀
ườ ử ̃ ́ ́ ́ ̃ ̣ ̉ ̣ ̃ ̣
́ ́ ́ ̣
̣ A framing error (Bit 3) xay ra khi bit cuôi cung không phai la stop bit. Điêu nay xay ra vi môt ̣ lôi tinh toan th i gian. Thông th ng chung ta se găp phai môt lôi framing error khi s dung môt ờ null modem liên kêt hai may tinh hoăc protocol analyzer when the speed at which the data is being sent is different to that of what chung ta phai thiêt lâp UART đê nhân no. ́ ̉ ́ ̣ ̉ ̣ ́
A overrun error thông th ng xay ra khi ch ng trinh cua chung ta không thê đoc t ̣ ừ ươ ̉ ̀ ̉ ́ ̉ ̉
75
ườ Ođu nhanhO. Nêu chung ta không co môt byte đâu vao công ngoai cua thanh ghi Ođu nhanhO ̀ ở ̃ ̉ ̉ ̃ ́ ́ ́ ̣ ̀ ̀ ̉ ̉ ̉
̀ ́ ̉ ̣ ̀ ́ ̀ ̃ ̣ ́ ̀ ̣ ̃ ̀ ̃ ̉
(register fast enough), va byte khac đê nhân, thi byte cuôi cung se bi mât va môt lôi tran se xay ra.
Bit 0 cho thây data ready, co nghia la môt byte đ c nhân b i UART va bô đêm săn sang đê ượ ở ̉ ́ ́ ̃ ̀ ̣ ̣ ̀ ̣ ̣ ̃ ̀
• Modem Status Register (MSR)
đoc. ̣
Bit
Notes
Bit 7
Carrier Detect
Bit 6
Ring Indicator
Bit 5
Data Set Ready
Bit 4
Clear To Send
Bit 3
Delta Data Carrier Detect
Bit 2
Trailing Edge Ring Indicator
Bit 1
Delta Data Set Ready
Bit 0
Delta Clear to Send
Bang 13 : Modem Status Register
̉
̉ ́ ́ ̃ ̀
̣ ự ườ ̉ ̀ ̣ ̃ ̀ ́ ̉
ớ ̀ ̣ ́ ̀ ̉ ̀ ̀ ̀ ̃ ́ ́ ̀
Bit 0 cua the modem status register cho thây delta clear to send, delta co nghia la môt s thay ̣ ự ng the clear to lân đoc cuôi cung cua thanh ghi nay. Điêu nay cung đung v i cac bits 1 va 3. Bit 1 cho ̉ ng the Data Set Ready trong khi Bit 3 cho thây môt s thay đôi ̣ ự ườ ̉ ́
đôi bên trong, vi vây delta clear to send nghia la co môt s thay đôi bên trong đ send, t ừ thây s thay đôi bên trong đ ́ ự bên trong đ ng the Data Carrier Detect. ườ
Bit 2 la the Trailing Edge Ring Indicator chi bao răng co môt s biên đôi t trang thai thâp ̣ ự ̉ ừ ̀ ̉ ́ ̀ ́ ́ ̣ ́ ́
đên trang thai cao trên đ ng the Ring Indicator. ườ ́ ̣ ́
Bits 4 đên bit 7 cho thây trang thai hiên th i cua cac đ ́ ườ ữ ́ ́ ̣ ́ ̣ ̉ ̣ ̣ ́
́ ́ ́
ng d liêu khi đoc. Bit 7 cho thây ờ Carrier Detect, Bit 6 cho thây Ring Indicator, Bit 5 cho thây Data Set Ready & Bit 4 cho thâycac ́ trang thai cua đ ng the Clear To Send. ̣ ́
̉ ườ • Scratch Register
The scratch register không s dung cho truyên thông nh ng đ ượ ử ̣ ơ ư ̣ ̀ ̣
ử ̣ ử ữ ự ̣ ̉ ̣ ̣ ́ ̉ ́ ̀ ́ ̣ ̀
̉ ư ứ ̣ ̀ ̣ ́ ́ ́ ̉ ̀ ́
76
c s dung nh môt n i đê ư l u môt byte cua d liêu. Viêc s dung th c tê cua no la xac đinh the UART la 8250/8250B ư hoăc a 8250A/16450 va thâm chi cai đo không phai la chinh th c nh the 8250/8250B không bao gi c thiêt kê cho AT va không thê hack the bus speed. đ ờ ượ ́ ́ ̀ ̉
Nguy n Tu n Linh – BM KTMT
Vào/ra d li u và các thi
t b ngo i vi
ễ
ấ
ữ ệ
ế ị
ạ
Tài li u tham kh o:
ệ
ả
[1] Guide to Digital Electronics and Computer System Architecture (McGraw.Hill) -Mark Balch (Ebook)
[2] PHYSICS LECTURE NOTES: PHYS 395 - ELECTRONICS - D.M. Gingrich University of Alberta Department of Physics 1999 (ebook)
77