Ghép nối và điều khiển thiết bị ngoại vi (P2)

Chia sẻ: Khinh Kha Kha | Ngày: | Loại File: PDF | Số trang:20

0
70
lượt xem
12
download

Ghép nối và điều khiển thiết bị ngoại vi (P2)

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tín hiệu OBF chuyển về mức thấp để thông báo rằng CPU đã ghi dữ liệu ra một công thức xác định .Tín hiệu OBF F/F sẽ được xác lập ở sườn lên của tín hiệu WR và bị xóa khi tín hiệu vào ACK ở mức thấp

Chủ đề:
Lưu

Nội dung Text: Ghép nối và điều khiển thiết bị ngoại vi (P2)

  1. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi Các tín hi u ñi u khi n ra ñư c dùng trong ch ñ ra • OBF ( Output Bufer Full F/F). Tín hi u ra OBF chuy n v m c th p ñ thông báo r ng CPU ñã ghi d li u ra m t c ng xác ñ nh. Tín hi u OBF F/F s ñư c xác l p sư n lên c a tín hi u WR và b xoá khi tín hi u vào ACK m c th p . • ACK (Acknowledge Input ). M c th p c a tín hi u vào này thông báo cho 8255 r ng d li u t c ng A ho c c ng B ñã ñư c ch p nh n. V b n ch t ñây là tín hi u phúc ñáp t thi t b ngo i vi thông báo nó ñã nh n ñư c d li u g i t i t CPU. • INTR (Interrupt Request ) M c cao c a tín hi u ra này ñư c s d ng ñ yêu c u ng t CPU khi m t thi t b ngoài ñã nh n ñư c d li u truy n t CPU. Tín hi u INTR xác l p khi tín hi u ACK = "1", OBF = "1" và INTE ="1" . Tín hi u này ñư c kh i t o l i sư n xu ng c a tín hi u WR . Các t l nh c a ch ñ này như sau: * Ð th th i gian c a ch ñ ho t ñ ng này như sau : Gi ng viên: Nguy n Văn Minh Trí 31
  2. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi Ð th th i gian quá trình ghi. Trong ch ñ 1, hai c ng A và B có th ñư c l p trình m t cách riêng bi t là c ng vào ho c c ng ra ñ ho t ñ ng trong các ng d ng vào /ra có h i tho i khác nhau. Các t l nh ho t ñ ng trong ch ñ này như sau: 3. Ch ñ 2 Ch ñ ho t ñ ng này cung c p kh năng trao ñ i d li u v i các thi t b ngo i vi s d ng m t ñư ng truy n 8 bit ñ v a truy n v a nh n d li u (Bus vào/ra hai chi u). Các tín hi u h i tho i ñư c dùng trong ch ñ này ñ ñi u khi n vi c truy n d li u cũng tương t như ch ñ 1. Các ch c năng cơ b n c a ch ñ 2: Gi ng viên: Nguy n Văn Minh Trí 32
  3. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi - Trong ch ñ này ch có nhóm A ñư c s d ng . - C ng A là c ng vào/ ra hai chi u 8 bit . - Các tín hi u vào/ra ñ u ñư c ch t l i. - 5 bit c a c ng C ñư c s d ng làm c ng ñi u khi n ,tr ng thái cho c ng A 8 bit. Các tín hi u ñi u khi n ra . • OBF( Output buffer full ) Tín hi u ra OBF m c th p thông báo CPU khi d li u ra c ng A. • ACK (Acknowledge) M c th p c a tín hi u vào này cho phép b ñ m ra bus d li u c a c ng A g i d li u. Ngư c l i, b ñ m ra này s tr ng thái tr kháng cao . • INTE 1 ( Tín hi u INTE ph i h p v i tín hi u OBF ). Ði u khi n b i vi c l p bit ho c xoá bit PC4 . Các tín hi u ñi u khi n vào . • STB (Srobe input ). M c th p c a tín hi u vào này ñ c d li u vào c ng vào ch t . • IBF ( Input bufer Full ). M c cao c a tín hi u ra này ch ra r ng tín hi u ñã ñư c ghi vào c ng vào ch t . • INTE2 ( Tín hi u INTE ph i h p v i tín hi u IBF) Ði u khi n b i vi c xoá /l p bit c a PC4 Các t l nh ho t ñ ng trong ch ñ này như sau : Gi ng viên: Nguy n Văn Minh Trí 33
  4. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 4. Ch ñ k t h p Ngoài vi c ho t ñ ng riêng r theo t ng ch ñ , 8255 còn có kh năng ho t ñ ng ñ ng th i k t h p các ch ñ khi không ph i t t c các bit trong c ng C ñư c s d ng ñ ñi u khi n ho c dành cho tr ng thái. Các bit còn l i có th ñư c s d ng ñ th c hi n các ch c năng sau : Khi ñư c l p trình là các ñư ng vào tín hi u T t c các ñư ng vào tín hi u ñ u có th ñư c truy c p trong su t quá trình ñ c c ng C thông thư ng. Như trong hình v minh ho sau : Gi ng viên: Nguy n Văn Minh Trí 34
  5. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi Khi ñư c l p trình là các ñư ng tín hi u ra Các bit trong s các bit cao c a c ng C ( PC7- PC4) ph i ñư c truy c p m t cách riêng r b ng cách s d ng ch c năng xoá /l p bit. Các bit trong s các bit th p c a c ng C có th truy c p b ng ch c năng xoá /l p bit ho c dùng 3 bit tương ng ghi ra c ng C . * Ð c tr ng thái c ng C. Trong mode 0, c ng C truy n d li u t i ho c t thi t b ngo i vi. Khi 8255 ñư c l p trình ho t ñ ng trong mode 1 ho c mode 2, c ng C ñư c s d ng ñ t o ra ho c nh n tín hi u h i tho i trao ñ i v i thi t b ngo i vi. Ð c n i dung c a c ng C cho phép ngư i l p trình ki m tra tr ng thái c a các thi t b ngo i vi và ñi u khi n quá trình trao ñ i d li u. Không có l nh ñ c bi t nào dùng ñ ñ c thông tin tr ng thái t c ng C mà ch có thao tác ñ c thông thư ng th c hi n ch c năng này. Gi ng viên: Nguy n Văn Minh Trí 35
  6. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 5. Ch c năng xoá bit và l p bit (single bit set/reset ) B t c bit nào trong 8 bit c a c ng C ñ u có th ñư c thi t l p ho c ñư c xoá nh s d ng các l nh ghi ra thanh ghi ñi u khi n các bit phù h p. Như v y khi c ng C ñang ñư c dùng ñ ñi u khi n, ghi tr ng thái cho c ng A ho c c ng B thì nh ng bit c a c ng C có th ñư c xoá ho c ñư c thi t l p nh s d ng các l nh xoá, thi t l p bit như khi c ng C là c ng ra d li u. - T l nh ho t ñ ng trong ch ñ như sau: Gi ng viên: Nguy n Văn Minh Trí 36
  7. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 6. Ch c năng ñi u khi n ng t (Interrupt control ) Khi 8255 ñư c l p trình ho t ñ ng ch ñ 1 ho c ch ñ 2, các tín hi u ñi u khi n c a nó có th ñư c s d ng như yêu c u ng t t i CPU. Tín hi u yêu c u ng t t o b i c ng C có th b c m hay ñư c phép nh xoá hay xác l p m ch l t INTE s d ng ch c năng l p xoá bit như ñã nêu trên. Ch c năng này cho phép ngư i l p trình có th cho phép ho c không cho phép m t thi t b I/O ng t CPU mà không gây nh hư ng t i b t kỳ m t thi t b nào khác trong c u trúc ng t . 2.3.3 Ghép n i v i 8255A Hình 2.9 trình bày m t ví d m t m ch GN 8255A v i máy in, máy ñ c băng ch ñ 0. N a th p c a C là c a vào, dùng ñ ñ c các tr ng thái - PC1 cho tr ng thái b n c a máy in. - PC0 cho tr ng thái s n sàng c a máy ñ c băng. N a cao c a C là c a ra, dùng ñ ñưa ra tín hi u ñi u khi n: - PC5 ñưa tín hi u ch t s li u cho máy in (qua b ñ o). - PC4 ñ d ch chuy n băng gi y ñi 1 v trí v bên ph i (qua b khu ch ñ i ñ o). Hình 2.10 mô t m ch ghép n i v i máy in ch ñ 1. Các tín hi u ñ i tho i g m: - PC4 tín hi u ra ñ ch t s li u, có th dùng PC7 ( OBFA ) thay th . - PC6 tín hi u vào cho ACK , xác nh n ñã in s li u. - PC3 dùng ñ yêu c u ng t chương trình, ñưa vào chân INTR c a VXL. Nh s d ng ch ñ 1, các tín hi u PC6, PC7 s t ñ ng thu phát mà không c n l nh c a chương trình, tr PC4 ph i ñưa l nh. V i vi c n i vào INTR c a VXL, chương trình ph c v ng t không c n l nh ki m tra tr ng thái c a PC6. 8255 PA0 ÷ PA7 Máy PC5 Data strobe in Reset Reset Busy PC1 D0 ÷ D7 D0 ÷ D7 RD RD VXL WR WR A0 A0 PC0 Busy Máy A1 A1 PC4 ñ c A2 ÷ A19 Gi i driver right CS PB0 ÷ PB7 băng mã ñ a ch Hình 2.9: Ví d GN 8255 ch ñ 0. Gi ng viên: Nguy n Văn Minh Trí 37
  8. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi D0 ÷ D7 D0 ÷ D7 PA0 ÷ PA7 PC4 Data strobe VXL INTR INTRA PC6 PC3 ACK INTA PC7 OBFA Máy in 8255 Hình 2.10: Ví d GN 8255 ch ñ 1. 8255 PA0 ÷ PA7 D0 ÷ D7 DAC Reset Reset L i ra PB0 Ch t s li u tương t D0 ÷ D7 D0 ÷ D7 PB1 Cho phép ñưa ra RD RD VXL WR WR ADC A0 A0 PB2 Cho phép trích m u L i vào A1 A1 Ch t s li u tương t PB3 A2 ÷ A19 Gi i CS D0 ÷ D7 mã ñ a ch Hình 2.11: Ví d GN 8255 ch ñ k t h p. Hình 2.11 mô t ví d ghép n i 8255A ch ñ 2 c a c a PA và ch ñ 0 c a c a PB. . 2.3.4 L p trình cho 8255A Vi m ch c ng song song l p trình ñư c PPI 8255 có kh năng ho t ñ ng trong các ch ñ ho t ñ ng khác nhau các ch ñ ho t ñ ng này có th k t h p ñư c v i nhau t o kh năng l p trình ñi u khi n ho t ñ ng m t cách linh ho t. Khi vi t chương trình cho 8255A ho t ñ ng, ta ph i : - Vi t lưu ñ thu t toán. - Xác ñ nh t ñi u khi n ch ñ cho thanh ghi ñi u khi n, t tr ng thái cho t ng m ch c th . - Chương trình kh i phát b ng l nh ghi vào thanh ghi ñi u khi n. - ðưa n i dung các bít cho các c a dùng ñ ñi u khi n TBNV. - ð c và ki m tra tr ng thái : là thanh ghi tr ng thái n u 8255 dùng ch ñ 1,2; là m t c a ghi tr ng thái TBNV n u ch ñ 0. - ðưa s li u vào hay ghi s li u ra các c a. Gi ng viên: Nguy n Văn Minh Trí 38
  9. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi Ví d vi t chương trình ñi u khi n ñưa s li u ra máy in như trên hình 2.9, và ñ a ch cao dành cho máy in xác ñ nh là 3FE18h. Lưu ñ thu t toán th hi n trên hình 2.12. B tñ u B tñ u L p xung ch t PC4 ð c tr ng thái – PC1 Yes Máy in b n? ð c tr ng thái – PC0 No Yes ðưa s li u ra Máy ñ c b n? No Xoá xung ch t PC5 ð c s li u vào L p xung ch t PC5 Xoá xung ch t PC4 K t thúc K t thúc Hình 2.12: Lưu ñ trao ñ i d li u gi a MVT và máy in, máy ñ c băng. Xác ñ nh các thanh ghi ch ñ và chi u c a c a: 3FE18h ⇒ A19 …. A3 A2 A1 A0 T b ng 1.17, ta có ñ a ch sau: PA có ñ a ch addr_A := 3FE18h PB có ñ a ch addr_B := 3FE19h PC có ñ a ch addr_C := 3FE1Ah Thanh ghi ñi u khi n addr_dk := 3FE1Bh Xác ñ nh t ñi u khi n và t tr ng thái: Không dùng ch ñ l p c nên D7=1 PA ch ñ 0, c a ra nên D6=0 D5=0 D4=0 N a c a C cao là c a ra nên D3=0 PB ch ñ 0, c a vào nên D2=0 D1=0 N a c a C th p là c a vào nên D0=1 Ta có t ñi u khi n sau: Data_dk := 81h (=1000 0001 B) T tr ng thái cho các c ng PC: PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 Cho PC5 0 0 1 0 0 0 0 0 ⇒ data_C5 := 20h Gi ng viên: Nguy n Văn Minh Trí 39
  10. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi Cho PC4 0 0 0 1 0 0 0 0 ⇒ data_C4 := 10h Cho PC1 0 0 0 0 0 0 1 0 ⇒ data_C1 := 02h Cho PC0 0 0 0 0 0 0 0 1 ⇒ data_C0 := 01h Chương trình vi t b ng Pascal như sau: Begin {Gán các bi n} Port[addr_dk] := data_dk; Repeat Var1 := port[addr_C]; Until ((var1 and data_C1)=data_C1); Port[addr_A] := ‘s’; Port[addr_C] :=0; Port[addr_C] := data_C5; End Gi ng viên: Nguy n Văn Minh Trí 40
  11. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi CHƯƠNG 3: GHÉP N I TRAO ð I D LI U N I TI P 3.1 Gi i thi u chung v trao ñ i d li u n i ti p 3.1.1 Yêu c u trao ñ i d li u n i ti p Trao ñ i d li u n i ti p là trao ñ i l n lư t t ng bit, trên m t ñư ng dây duy nh t. Do ñó ít t n kém v ñư ng dây, nhưng t c ñ truy n th p. S trao ñ i này do các yêu c u: - Thi t b phát hay nh n d li u t ng bit. Ví d VXL 8085 phát t ng bit l i ra n i ti p SOD (chân s 4) và nh n d li u l i vào n i ti p SID (chân s 5); và TBNV n i ti p như máy cassette, ñĩa t , máy in n i ti p … - Kho ng cách gi a hai thi t b trao ñ i d li u là l n (có th ñ n hàng ngàn km ho c hơn), do v y vi c dùng 8 ñư ng dây truy n d li u song song là r t t n kém. Ngoài ra, ngư i ta có th dùng luôn ñư ng dây ñi n tho i ñ trao ñ i d li u, thông qua b ñi u ch - gi i ñi u ch (MODEM) ði u khi n n i ti p có 2 lo i truy n d li u: -truy n d li u ñ ng b (t c ñ nhanh). - truy n d li u không ñ ng b (t c ñ ch m). 1. Trong trao ñ i d li u ñ ng b : D li u ñư c truy n 1 l n g m 1 kh i nhi u byte, ñư c ch n ñ u và cu i b i ký t SYNC( mã ASCII là 16h). M i kh i có th hàng trăm byte hay hàng trăm Kbyte. sync sync d li u ð truy n ñi c n có s ñ ng b v t c ñ gi a máy phát và máy thu, có 2 cách ñ ñ ng b - M t máy phát xung ñ t nơi phát và truy n t i máy thu b i m t ñư ng dây khác. Do ñó t n thêm m t ñư ng dây H này s d ng 1 máy phát xung ñ ng b ñ cung c p xung ñ ng b cho c hai bên phát và thu. Phát Thu ð ng b - Máy thu ch tr ng thái ch , khi có ký t ñ ng b SYNC thì máy phát xung nh p trong máy thu b t lên và chuy n sang ch ñ thu xung ñ ng b ñư c kích ho t b i kí t SYNC. Phát Thu ð ng b Gi ng viên: Nguy n Văn Minh Trí 41
  12. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 2. Trong trao ñ i thông tin không ñ ng b : Các byte ñư c ñ t trong m t khung và truy n ñ c l p v i nhau, g i là m t l i tin. D ng thông tin truy n như sau: D li u truy n có th 5,6 ,7,8 bit; thông thư ng là 7 bit ( n u truy n s li u và ch cái) hay 8 bit ( n u truy n c các ký t m r ng ñ ñi u khi n h t File). M t l i tin g m: - 1 bit Start thư ng là m c 0 (+12V). Theo chu n RS232C, tín hi u t máy tính qua c ng Com, m c ñi n áp là ±12 V và ñư c qui ñ nh:0=12V, 1= -12V. - 5÷8 bit d li u, ñây d li u truy n ñi là mã ASCII, như s “0” s ñư c truy n ñi là mã ASCII = 48 = 030h ch không ph i là truy n ñi “0”. - 1 bit b c dùng ñ ki m tra tính ch n l d li u truy n. T ng s bit 1 c a m t l i tin (k c bit ch n l ) s ñư c ghi vào bit ch n l và ñư c ki m tra so sánh nơi phát và nơi thu. - 1, 1.5 hay 2 bit Stop (tuỳ theo s l a ch n trư c khi trao ñ i) cũng m c 1. S bit Stop th c ch t là ñ dài c a tín hi u Stop m c logic 1. Bit Start dùng ñ ñ ng b xung nh p máy phát và máy thu. N u kho ng cách g n dư i 300m, s thu phát là không c n MODEM. nh ng kho ng cách l n ngư i ta không dùng máy phát xung ngoài mà dùng MODEM ñ t o xung ñ ng b cho c máy phát và máy thu. Vi c dùng MODEM là ñ ch ng nhi u trên ñư ng truy n. Trên ñư ng dây ñi n tho i, ngư i ta không phát t ng bit 0/1 mà dùng MODEM (modulation-demodulation) ñ ñi u ch tín hi u thành d ng xoay chi u (0÷2400 Hz, 1÷1200 Hz) và truy n tín hi u xoay chi u ñó. 3.1.2 M ch trao ñ i d li u n i ti p. 1. M ch không c n b ghép n i: -s d ng 2 chân ra-vào n i ti p SID ( serial IN) và SOD ( serial OUT) c a vi x lý 8085 ñ trao ñ i. -có th dùng 1 chân c a l i vào ra song song c a VXL ñ làm chân vào ra n i ti p. Trao ñ i tin ki u này không ph c t o trong c u t o m ch nhưng ph c t p trong quá trình l p trình và theo dõi thi t b , ñòi h i nhi u th i gian x lý. Thi t b ngoài vào/ra song song VXL SOD D SID Thanh ghi d ch CLK C Hình 3.1: M ch không c n BGN 2. M ch trao ñ i c n ghép n i song song-n i ti p: Gi ng viên: Nguy n Văn Minh Trí 42
  13. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi BGN có ch c năng chuy n d li u song song t máy tính (h VXL) thành tín hi u d ng n i ti p và truy n ñ n TBNV. ð truy n chính xác, BGN ngoài ch c năng chuy n d li u song song thành n i ti p, nó còn t o ra các bit Start, stop, parity ñ ñóng khung d li u. Lo i này làm vi c ñơn gi n nhưng không m r ng ñư c thi t b ngo i vi, kho ng cách truy n tin ng n. BGN TBNV VXL ss-nt (VXL) nt Hình 3.2: M ch c n BGN ss-nt Trong ñó, song song là ss, n i ti p là nt. 3. M ch có KGN song song- n i ti p và n i ti p-song song: H này cũng gi ng như h trên, ch khác là TBNV làm vi c v i d li u song song, nên c n có BGN trung gian chuy n d li u song song thành n i ti p. BGN BGN TBNV VXL ss-nt nt-ss (VXL) ss Hình 3.3: M ch c n BGN ss-nt và nt-ss 4. M ch có BGN, MODEM và RS232C: RS-232C RS-232C MODEM MODEM BGN ñư ng dây BGN VXL ss-nt TBðC ñi n tho i ss-nt (VXL) ss Hình 3.4: M ch c n BGN ss-nt, RS 232 và MODEM. H này thông d ng và thư ng xuyên g p trong th c t . Trong ñó VXL thư ng là 1 máy vi tính, còn thi t b ñ u cu i (TBðC) có th là 1 ñ i tư ng b t kỳ. N u TBðC là máy vi tính thì h th ng dùng ñ trao ñ i File. Chú ý: Chu n RS232C có m c ñi n áp là ±12V. Chu n RS422 có m c ñi n áp là ±15V. Chu n RS485 có m c ñi n áp là ±30V (ñi n tho i). ð chuy n t RS232C thành RS485 hay RS422 s có nh ng b chuy n (shift) trung gian, thông thư ng ñó là nh ng b ñ m, v a t o m c tín hi u,v a ph i h p tr kháng. Gi ng viên: Nguy n Văn Minh Trí 43
  14. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 3.1.3 Th t c trao ñ i d li u n i ti p 1. Th t c phát d li u TxD (Tranceiver Data) : • TBðC (hay MVT) g i tín hi u DTR (Data Terminal Ready) m c 0 ñ n MODEM báo hi u ñã s n sàng. • MODEM tr l i TBðC b ng tín hi u DSR (Date Set Ready) m c 0. • N u TBðC có 1 ký t s n sàng g i ñi, nó g i RTS (Request To Send) ñ n MODEM • MODEM g i tín hi u CD (Carrier Detect) cho TBðC ñ báo hi u liên l c ñã thông v i MTV. • Khi MODEM s n sàng phát s li u trên ñư ng dây, MODEM phát xung nh p và tín hi u CTS (Clear To Send) ñ n TBðC (xung nh p trên ñư ng dây). • TBðC g i các ký t s li u (SDU) cho MODEM. • Khi TBðC g i xong, nó nâng tín hi u RTS lên cao ñ báo cho modem bi t là ñã phát xong. • MODEM tr l i cho TBðC b ng tín hi u CTS m c cao, báo hi u hoàn thành vi c truy n tin. Qua ñó ta th y vi c g i ñi kí t b ng modem nhi u th t c và do ñó t c ñ ch m 2. Th t c nh n d li u RxD (Receiver Data) Trong quá trình nh n tin, ph i b o ñ m máy tính ñã s n sàng nh n ,khi ñó : • TBðC phía thu g i DTR m c th p cho MODEM báo nó ñã s n sàng (Data terminal ready) • MODEM thu g i tín hi u tr l i b ng DSR . • MODEM thu nh n tín hi u CD t ñư ng dây và kích g i tín hi u nh p MODEM cho TBðC. • TBðC phát tín hi u RTS cho modem (Request to Send). • MODEM g i tín hi u CTS m c th p cho TBðC (Clear to Send) ñ báo MODEM s n sàng nh n tin. • MODEM nh n TxD trên ñư ng dây, sau ñó ph i ñi u ch thành các bit 0/1 và l n lư t g i chu i tín hi u RxD cho TBðC. • Khi thu xong, TBðC nâng tín hi u RTS lên cao, báo cho MODEM là ñã thu xong • MODEM tr l i b ng nâng tín hi u CTS lên cao, ñ báo quá trình nh n ñã xong. Vi c ti n hành chuy n d li u ss/nt hay nt/ss ñư c th c hi n b i các thanh ghi d ch (Shift register). Các thanh ghi này có tác d ng khi nh n 1 byte song song ñ u vào nó s cho ñ u ra m t chu i bit k ti p nhau theo th t t bit th p ñ n bit cao c a byte. ð i v i máy tính, các ch c năng trên ñư c th c hi n thông qua vi m ch 8251 c a hãng INTEL. Gi ng viên: Nguy n Văn Minh Trí 44
  15. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 3.2 M ch thu phát di b v n năng UART 8250 M ch URAT 8250 (Universal Asynchronous Receiver/Transmitter) ñư c l p ráp trong các máy IBM XT, là m t IC thu phát không ñ ng b có th l p trình ñư c, nó th c hi n ch c năng giao ti p gi a máy tính và TBNV. Trong các máy PC/AT hi n nay s d ng UART 16450 còn trong PS/2 và các AT ñ i m i l i dùng UART 16550 vì 8250 và 16450 không ñ t ñ n t c ñ 115200 baud ñư c. Th c ra t c ñ này ng d ng t t trong k thu t truy n tin trên m ng, còn trong các thi t b công nghi p TBNV nói chung, thư ng ch c n t i ña 19200 baud là ñư c, thông d ng là 9600 baud. 3.2.1 Sơ ñ kh i và ch c năng các kh i c a UART 8250 1. Mô t vi m ch: Vi m ch 8250 có 40 chân như trên hình v : Hình 3.5: Sơ ñ chân 8250 Ch c năng các chân g m: - Các chân t 1- 8 (D0- D7 ): Các chân d li u, 8 chân này ñư c n i v i bus d li u. Qua 8 chân d li u này mà d li u ñư c ñi t bus t i dư i d ng song song sau khi qua vi m ch 8250 bi n ñ i thành tu n t ñ ñi t i c ng RS232. D li u t c ng RS232 t i dư i d ng tu n t , sau khi ñi qua vi m ch 8250 ñư c bi n ñ i thành song song và qua 8 chân này truy n lên bus. - Chân s 9 (RCLK ): nh n xung ñ ng h ñưa ra t b t o t c ñ . - Chân s 10 (SIN): nh n d li u tu n t ñi t i t c ng RS232. - Chân s 11 (SOUT): G i d li u tu n t sang c ng RS232. - Chân s 12,13,14 (CS0 -CS2): Chip select - tín hi u ch n vi m ch. - Chân s 15 ( BOUDOUT ) : L i ra c a b t o t c ñ . - Chân s 16,17 (XTAL1,XTAL2) :L y xung Clock t b phát nh p b ng th ch anh t i v i t n s 3,072 MHz. - Chân 18(DOSTR ): I/O write. - Chân s 19 ( DOSTR ) : Ð o c a I/O write - Chân s 20 (Vss ): n i ñ t Gi ng viên: Nguy n Văn Minh Trí 45
  16. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi - Chân s 21 (DISTR) : I/O Read . - Chân s 22 ( DISTR ): Ð o c a I/O Read . - Chân s 26,27,28 ( A0 - A2 ): nh n ñ a ch truy n t i ñ gi i mã l nh . - Chân s 30 (INTRPT) : Interrupt Control Logic . - Chân s 32 ( RTS ) : Request To Send ( yêu c u g i ) . - Chân s 33 ( DTR ) : Data Terminal Ready .(D li u s n sàng ) - Chân s 35 (MR) : Reset . - Chân s 36 ( CTS ) : Clear To Send - Chân s 37 ( DSR ) : Data Set Ready . - Chân s 38 ( DCD ) : Data Carrier Detect . - Chân s 39 ( RI ): Ring Indicate . - Chân s 40 (VDo) : n i v i ngu n m t chi u +5V. (3F8) (3FB) (3F8) (3F9) (3FD) (3F8) (3FC) (3FE) (3F9) (3FA) Hình 3.6: Sơ ñ kh i 8250 Như v y, 8250 có 11 thanh ghi n i, v i cách truy c p như b ng sau: B ng 3.1: ð a ch các thanh ghi c a 8085 DLAB A2 A1 A0 ð c/ghi Thanh ghi Gi ng viên: Nguy n Văn Minh Trí 46
  17. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 0 0 0 0 ñ m thu (RBR) và ñ m phát (THR) 0 0 0 1 ð c/ghi cho phép yêu c u ng t (IER) 1 0 0 0 ð c/ghi ch t chia ph n th p (LSB) 1 0 0 1 ð c/ghi ch t chia ph n cao (MSB) x 0 1 0 ð c nh n d ng ng t (IIR) x 0 1 1 ð c/ghi ñi u khi n dòng (LCR) x 1 0 0 ð c/ghi ñi u khi n MODEM (MC) x 1 0 1 ð c/ghi tr ng thái dòng (LSR) x 1 1 0 ð c/ghi tr ng thái modem (MSR) x 1 1 1 ð c/ghi nh nháp (DM) M i thanh ghi trong 8250 tương ng v i m t ñ a ch c ng, trong ñó có hai thang ghi ñ c bi t, nó có ch c năng có th thay th tuỳ thu c giá tr bit DLAB (divitor latch access bit –Bit truy c p ch t) (DLAB là bit D7 c a thanh ghi d ng s li u). • N u DLAB = 1 thì thanh ghi th c hi n ch c năng ch t chia ph n cao và ph n th p. • n u DLAB = 0 , hai thanh ghi dùng ñ ñ m và nh n d li u, và IER. 2. Mô t các thanh ghi: a) Thanh ghi ñ m thu (Receiver Buffer Register – RBR) ng v i DLAB = 0, thanh ghi có ñ a ch là 3F8h (COM1), hay 2F8h (COM2): Khi 8250 nh n ñư c ký t qua chân SIN (chân 10) ký t ñư c chuy n vào thanh ghi d ch, t i ñây nó ñư c tháo khung (các bit start, stop, parity) và n p song song vào thanh ñ m thu (lưu ý thanh ghi có 8 bit). CPU ch ñ c d li u trong thanh ghi này vì nó thao tác v i BUS d li u song song t i thi u m i l n là 1 byte. b) Thanh ghi ñ m phát (Transmitter Holding Register – THR) tương ng v i DLAB = 0, ñ a ch là 3F8h (2F8h) Ký t c n phát ñi ph i ñư c ghi t thanh ghi vào, thanh ghi này nó n m ch (holding) ñó cho ñ n khi ký t trư c nó ñư c phát ñi, sau ñó nó ñưa vào thanh ghi d ch c a b phát, t i ñây nó ñư c ñóng khung và ñưa ra t ng bit m t vào chân SOUT (chân 11) c a 8250, d li u ñ u ra ñây có d ng n i ti p. c) Thanh ghi cho phép ng t (Interrupt Enable Register - IER), bit DLAB = 0 , ñ a ch 3F9h (COM1) hay 2F9h (COM2) Thanh ghi này th c hi n ñ cho phép/c m các nguyên nhân gây ra ng t khác nhau. Trong khi 8250 ho t ñ ng, có tác ñ ng ñ n CPU thông qua chân INTRPT (chân 30), m i bit trong các bit D3, D2, D1, D0 m c cao s cho phép các ho t ñ ng tương ng v i các bit ñ ñưa ra nguyên nhân ng t tương ng, và c m ng t khi ghi 0 vào các bit. Bit Ch c năng 7-4 D tr , luôn ñ t b ng 0. 3 cho phép 8250 phát yêu c u ng t tr ng thái MODEM Gi ng viên: Nguy n Văn Minh Trí 47
  18. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi 2 cho phép 8250 phát yêu c u ng t theo tr ng thái d ng truy n nh n ho c ng t dòng thông tin (l i ch n l , tràn khung). 1 cho phép 8250 phát yêu c u ng t khi thanh ghi ñ m phát r ng. 0 cho phép 8250 phát yêu c u ng t khi thanh ghi ñ m thu ñ y, d li u ñã s n sàng d) Thanh ghi ch t chia ph n th p (Divisor Latch - LS) tương ng DLAB = 1, ñ a ch là 3F8h, hay 2F8h. e) Thanh ghi ch t chia ph n cao (Divisor Latch – MS) tương ng DLAB = 1, ñ a ch là 3F9h, hay 2F9h. ð ñ t t c ñ truy n mong mu n, giá tr tính toán ñư c ñ t trong hai thanh ghi, ñư c g i là thanh ghi ch t chia t c ñ ñư c tính theo công th c T n s nh p chu n B chia = 16 x t c ñ baud mong mu n - t n s nh p chu n do ñ ng h th ch anh c a 8250 phát ra, nó b ng 1,8432 MHZ - t c ñ t i ña tính toán là 115200 baud. - t c ñ baud ñ th c hi n các chân SIN, SOUT. B ng ch m i liên h gi a t c ñ s li u và các h s chia d ng hexa decimal như sau: Baud S chia Baud S chia 50 0900 1200 0060 110 0417 2400 0030 150 0300 4800 0018 300 0180 9600 000C 600 00C0 11520 0001 Qua ñó ta th y giá tr trong thanh ch t chia c n 1 byte rư i ñ lưu t t c . ð thu n ti n, ngư i ta s dùng 2 byte và ghi vào 2 thanh ghi, ñó chính là LSB và MSB. f) Thanh ghi nh n d ng ng t (Interrupt Identification Register - IIR), ñ a ch là 3FAh, hay 2FAh. Thanh ghi nh n d ng ng t (ch có th ñ c) ch a mã m c ưu tiên cao nh t c a các yêu c u ng t (t i chân 30-INPUT c a 8250) ñang ch ñư c ph c v . N u có nhi u ng t cùng m t lúc thì IIR s ch a mã ng t nào c n x lý trư c. Do v y khi c n x lý ng t, CPU c n ñ c bit D0 c a thanh ghi này ñ bi t có yêu c u ng t và ki m tra các bit D1 và D2 ñ xác ñ nh ngu n g c các yêu c u ng t. Sau khi 8250 b Reset, ch có yêu c u ng t ưu tiên s m t ñư c ph c v . Ta có th thay ñ i Gi ng viên: Nguy n Văn Minh Trí 48
  19. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi ñi u này b ng cách dùng m t n che ñi các bit yêu c u ng t nào ñó b ng cách ghi vào thanh ghi IIR các giá tr bit thích h p. Các bit D7÷D3 luôn ñ t b ng 0. D2, D1: mã hoá các yêu c u ng t có m c ưu tiên cao nh t ñang ch ph c v . D2 D1 M c ưu tiên Nh n di n ng t 0 0 4 Tr ng thái MODEM ⇒ chương trình ñ c tr ng thái MODEM 0 1 3 Thanh ghi ñ m phát r ng 1 0 2 TG ñ m thu ñ y, s li u ñã s n sàng 1 1 1 tr ng thái dòng ñã thay ñ i D0=0: có yêu c u ng t D0=1: không có yêu c u ng t T các nh n d ng ng t trên, VXL s chuy n ñ n các ñ a ch ch a các chương trình con ph c v ng t. VXL s xoá các bit D0, D1, D2 v 0 sau các thao tác: -ñ c thanh ghi tr ng thái chu i. -ñ c d li u t thanh ghi ñ m thu. -ghi vào b phát ho c ñ c thanh ghi nh n di n ng t. -ñ c tr ng thái thanh ghi thao tác MODEM (RS232-C). g) Thanh ghi ñi u khi n dòng (Line Control Register – LCR), ñ a ch là 3FBh, hay 2FBh. Thanh ghi này còn có tên là thanh ghi ñ nh khuôn d ng d li u vì nó quy t ñ nh khuôn d ng c a d li u truy n trên ñư ng dây. Bit Ch c năng 7 =1 truy nh p thanh ghi ch t chia (LSB & MSB) ñ l p t c ñ baud =0 truy nh p IER,THR,RBR 6 ð t cho phép tín hi u Break 5-3 B5 B4 B3 Ch n ch n l x x 0 Non 0 0 1 Odd 0 1 0 Even 1 0 1 High Parity 1 1 1 Low Parity 2 = 1 thì dùng 1.5 bit Stop n u ñ dài t là 5, còn n u ñ dài t 6-8 bit thì có 2 bit Stop. = 0 thì dùng 1 bit Stop 1-0 B1 B0 S bit data 0 0 5 0 1 6 1 0 7 1 1 8 Gi ng viên: Nguy n Văn Minh Trí 49
  20. Tài li u môn h c: Ghép n i và ñi u khi n thi t b ngo i vi ð hi u tín hi u Break, ta xem ví d khung d li u trên v i 8 bit data, không ki m tra ch n l và 1 bit Stop. Khi ñư ng dây tr ng thái Mark, m c logic là 1. Bit Start s là m c logic 0. Sau ñó t ng bit data s ñư c g i trên ñư ng dây. Bit Stop (logic 1) sau ñó ñư c gán vào ñ k t thúc vi c truy n. Sau bit Stop s là bit logic 0, có nghĩa là bit Start c a m t d li u m i. N u không có thêm d li u truy n ñi, ñư ng dây ph i tr ng thái r i, m c logic 1. Do ñó n u ñư ng dây gi tr ng thái 0 sau bit Stop trong m t th i gian b ng ñ dài 1 t , tín hi u Break s ñư c t o ra. Tín hi u Break là tín hi u báo cho CPU hay MODEM bi t ký t truy n ñã xong và ñang t m ng t vi c truy n. h) Thanh ghi ñi u khi n MODEM (MODEM Control Register – MCR), ñ a ch 3FCh Thanh ghi này còn g i là thanh ghi ñi u khi n các tín hi u ra c a MODEM vì nó cho phép ñi u khi n các tín hi u t i các chân DTR (chân 33) và DTS (chân 32) c a 8250. Bit Ch c năng 7-5 D tr , luôn ñư c thi t l p v 0. 4 =1 cho phép 8250 làm vi c ch ñ n i vòng c c b ñ ki m tra các ch c năng c a 8250. =0 làm vi c ch ñ thư ng. 3 =1 : kích ho t k t xu t OUT2 2 =1 : kích ho t k t xu t OUT1 1 =1 : tín hi u t i chân RTS c a 8250 ñư c chuy n v m c 0, máy tính phát chuy n tín hi u RTS t i MODEM ñ báo hi u nó ñã s n sàng phát d li u. 0 =1 : tín hi u t i chân DTR c a 8250 ñ t m c 0, lúc này máy tính g i tín hi u DTR t i MODEM (hay t i MVT ñ u kia n u giao ti p không dùng MODEM) ñ báo hi u nó s n sàng làm vi c (tín hi u g i t i chân s 4 c a DB9 hay chân 20 c a DB25). i) Thanh ghi tr ng thái dòng (Line Status Register – LSR) ñ a ch 3FDh Ch c năng thanh ghi này cho bi t tr ng thái dòng tín hi u trên ñư ng dây như th nào, các bit D0÷D5 ñ u có th gây ra ng t n u các bit tương ng trong thanh ghi IER ñư c l p . Các bit tr ng thái có ý nghĩa như sau: Bit Ch c năng Gi ng viên: Nguy n Văn Minh Trí 50

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản