Giáo trình Ghép nối và điều khiển thiết bị ngoại vi (Phần 1)

pdf 54 trang ngocly 40 Free
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Ghép nối và điều khiển thiết bị ngoại vi (Phần 1)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_ghep_noi_va_dieu_khien_thiet_bi_ngoai_vi_phan_1.pdf

Nội dung text: Giáo trình Ghép nối và điều khiển thiết bị ngoại vi (Phần 1)

  1. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi GHÉP N I VÀ ðIU KHI N THI T B NGO I VI Ng ưi so n: TS. Nguy n V ăn Minh Trí ThS. Lâm T ăng ðc Các sinh viên l p 03SK Gi ng viên: Nguy n V ăn Minh Trí 1
  2. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi TÀI LI U L ƯU HÀNH N I B LI NĨI ð U Ngày nay, máy vi tính (MVT) đã đưc c i ti n, nâng c p và th tr ưng hố đ đt t c đ x lý c c nhanh, giá thành r . Trong nh ng th p niên qua, MVT đã đưc áp d ng kh p m i n ơi, thay th cho các h th ng c ũ nhi u nh ưc đim. ðc bi t, trong h th ng đin, đin cơng nghi p, MVT đã đưc ng d ng ngày càng nhi u, mang l i nhi u tính năng ưu vi t cho h th ng. Do đĩ yêu c u phát tri n lý thuy t v h th ng cĩ s d ng MVT đã m ra nhi u l ĩnh v c h c m i. Mt ví d c th c a vi c ng d ng MVT trong cơng nghi p là các h th ng đo l ưng và điu khin s d ng MVT. Trong các h th ng này, MVT nh n các d li u đo đt tr ng thái v t lý c a h th ng, vi d nh ư nhi t đ, áp su t, đin áp , và tính tốn đ đư a ra nh ng quy t đnh, tín hi u điu khi n tr l i h th ng, nh m đt đưc các yêu c u điu khi n đ ra c a h th ng. Mu n thi t k , v n hành và b o qu n t t h đo-điu khi n cơng nghi p, ng ưi k s ư cn n m v ng v k thu t máy tính, cách vi t ch ươ ng trình, k thu t ghép n i thi t b ngo i vi, vi c x lý s li u, lý thuy t điu khi n s Mơn h c ghép n i và điu khi n thi t b ngo i vi (TBNV) nh m cung c p các ki n th c c ơ b n trong vi c tìm hi u, thi t k m ch ghép n i ngo i vi v i MVT. Các m ch thi t k ph c v cho vi c đo l ưng, điu khi n, giao ti p gi a MVT v i MVT, MVT v i h vi điu khi n. Gi ng viên: Nguy n V ăn Minh Trí 2
  3. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi MC L C CH ƯƠ NG 1: C Ơ S GHÉP N I THI T B NGO I VI 1.1. Gi i thi u chung 1.1.1. Cu trúc h th ng 1.1.2. Nhi m v c a b ghép n i 1.1.3. Th t c trao đ i d li u c a máy vi tính 1.2. Gi i thi u m t s vi m ch dùng trong b ghép n i 1.2.1. Các m ch logic c ơ b n 1.2.2. Các mch l t 1.2.3. Các m ch thanh ghi đ m 1.2.4. Các m ch gi i mã đa ch 1.2.5. Các m ch truy n d li u CH ƯƠ NG 2: GHÉP N I VÀO RA SONG SONG ðIU KHI N B NG CH ƯƠ NG TRÌNH 2.1 Các l nh vào ra d li u 2.1.1 Các l nh vào ra b ng h p ng 2.1.2 Các l nh vào ra b ng Turbo C 2.1.3 Các l nh vào ra b ng Turbo Pascal 2.2 Ghép n i song song đơ n gi n: cĩ hay khơng cĩ đi tho i 2.2.1 Ca vào đơ n gi n khơng đ i tho i 2.2.2 Ca ra đơn gi n khơng đ i tho i 2.2.3 Ca vào đơ n gi n cĩ đ i tho i 2.2.4 Ca ra đơn gi n cĩ đ i tho i 2.3 Ghép n i song song điu khi n b ng ch ươ ng trình 2.3.1 Sơ đ kh i và ch c n ăng các kh i c a 8255A 2.3.2 Các ch đ làm vi c c a 8255A 2.3.3 Ghép n i v i 8255A 2.3.4 Lp trình cho 8255A CH ƯƠ NG 3: GHÉP N I TRAO ðI D LI U NI 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 3.1.2 Mch trao đ i d li u n i ti p Gi ng viên: Nguy n V ăn Minh Trí 3
  4. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi 3.1.3 Th t c trao đi d li u n i ti p 3.2 M ch thu phát d b v n n ăng UART 8250 3.2.1 S ơ đ kh i và ch c n ăng các kh i c a UART 8250 3.2.2 Ghép n i v i UART 8250 3.2.3 L p trình cho UART 8250 CH ƯƠ NG 4: GHÉP N I ðIU KHI N NG T 4.1 Khái ni m và phân lo i ng t 4.1.1 Khái ni m 4.1.2 Phân lo i ng t 4.2 X lý ng t c a nhi u thi t b ngo i vi 4.2.1 Cho phép ho c c m ng t 4.2.2 Sp x p ưu tiên ng t 4.2.3 Xác đnh ngu n gây ng t 4.2.4 To vector ng t 4.3 Vi m ch điu khi n ng t 8259A 4.3.1 Sơ đ kh i và ch c n ăng các kh i c a 8259A 4.3.2 Cu trúc ho t đ ng c a vi m ch 8259A 4.3.3 Ghép ni v i 8259A 4.3.4 Lp trình cho 8259A CH ƯƠ NG 5: GHÉP N I VÀO RA ðIU KHI N B NG DMA 5.1 Khái ni m DMA c ơ b n 5.1.1 Khái ni m DMA 5.1.2 Ho t đ ng DMAC (DMA Controller) c ơ b n 5.1.3 Các ch đ trao đ i d li u DMA 5.2 B điu khi n DMA – 8237A 5.2.1 S ơ đ kh i và ch c n ăng các kh i c a DMAC 8237A 5.2.2 Ghép n i v i 8237A trong h vi x lý 8088 5.2.3 L p trình cho 8237A CH ƯƠ NG 6: GHÉP N I TƯƠ NG T -S VÀ S -TƯƠ NG T 6.1. Gi i thi u m t s m ch khu ch đi thu t tốn 6.1.1 Các tham s c ơ b n c a m ch khu ch đ i thut tốn 6.1.2 Các s ơ đ c ơ b n c a b khu ch đ i thu t tốn 6.2 B chuy n đ i s -tươ ng t DAC 6.2.1 Ho t đ ng c a DAC 6.2.2 Các tham s c ơ b n c a b chuy n đ i c a DA 6.2.3 Các m ch DAC đin hình 6.2.4 Ghép n i v i DAC 6.2.5 L p trình xu t d li u ra DAC 6.3 B bi n đ i t ươ ng t -s ADC Gi ng viên: Nguy n V ăn Minh Trí 4
  5. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi 6.3.1 Nguyên t c làm vi c c a ADC 6.3.2 Các tham s c ơ b n c a b chuy n đ i AD 6.3.3 Các ph ươ ng pháp chuy n đ i AD 6.3.4 Ghép n i v i ADC 6.3.5 L p trình nh n d li u t ADC CH ƯƠ NG 7: NG D NG MÁY VI TÍNH TRONG ðO L ƯNG VÀ ðIU KHI N 7.1. Gi i thi u v c u trúc máy tính 7.2 Thi t k m ch ghép n i gi a h th ng t đ ng hĩa v i các c ng c a máy vi tính Gi ng viên: Nguy n V ăn Minh Trí 5
  6. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi CH ƯƠ NG 1: CƠ S GHÉP N I THI T B NGO I VI 1.1. Gi i thi u chung 1.1.1 Cu trúc h th ng Máy vi tính hay h vi x lý đu cĩ c u trúc chung do Phơn N ơi-Man đ xu t g m kh i x lý trung tâm (CPU), b nh (M) và các c a vào/ra (I/O), nh ư trên hình 1.1. Ngồi ra, MVT cịn c n ph i trao đi d li u và mơi tr ưng bên ngồi, ví d giao ti p v i ng ưi s dng qua bàn phím-màn hình, trao đi d li u v i các thi t b ngồi thơng d ng, các thi t b ngồi trong h đo-điu khi n, và các MVT khác trong m ng. Do đĩ các b ghép n i thi t b ngo i vi (BGN TBNV) đưc xây d ng, g m: • BGN các thi t b vào chu n nh ư bàn phím, con chu t • BGN các thi t b ra chu n nh ư màn hình, máy in • BGN các b nh ngồi chu n nh ư c ng, CD-ROM • BGN v i MVT khác trong m ng nhi u MVT. • BGN v i h vi điu khi n, h vi x lý. • BGN h đo l ưng - điu khi n: RAM ROM V ðưng dây d li u và đa ch MVT X L ðưng dây BGN BGN BGN BGN BGN BGN điu khi n Bàn phím Máy in b nh Song song Vào/ra Vào/ra Màn hình ngồi /n i ti p Cm bi n Cơ c u Thi t b c ng BGN đo l ưng ch p hành CN CD-ROM Song song /n i ti p MVT /Vi ðK Hình 1.1: C u trúc h GN trao đ i d li u tin gi a MVT và TBNV Trong đĩ: VXL là vi t t t c a vi x lý RAM là random-access memory ROM là read-only memory BGN là b ghép n i CD-ROM là compact disk read-only memory CN là cơng nghi p ðK là điu khi n Gi ng viên: Nguy n V ăn Minh Trí 6
  7. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi ðt bi t trong h đo l ưng - điu khi n, MVT nh n d li u tr ng thái v t lý c a h th ng (nhi t đ, áp su t, đin áp, dịng đin ) d ưi d ng tín hi u đin, t đu dị các b cm bi n (sensor), b chuy n đi (tranducer), b phát hi n (detector). Và MVT cịn nh n thơng tin v tr ng thái s n sàng hay b n c a thi t b đo. MVT sau đĩ đư a tín hi u ch p nh n trao đi d li u v i TBNV, thu th p và x lý d li u, tính tốn các tín hi u điu khi n đư a ra các c ơ c u ch p hành (các van đĩng m , các rơle trong m ch đin, các m ch đng l c điu t c đng c ơ đin ), hay đư a ra các thơng s k thu t cho thi t b . Ngồi ra, MVT cịn c n l ưu tr d li u trên c ng, đĩa compact (CD-ROM) đ tra cu lúc c n, hi n th k t qu đo d ưi d ng b ng s li u, d ng đ th hay hình v đ ho trên màn hình. 1.1.2 Nhi m v c a b ghép n i TBNV đưc ghép n i v i MVT thơng qua các ph n thích ng v cơng ngh và thích ng logic nh ư hình 1.2. GN cơng ngh làm nhi m v điu chnh m c tín hi u gi a cơng ngh s n xu t TBNV và cơng ngh s n xu t các m ch c u trúc nên BUS c a MVT. GN logic làm nhi m v t o các tín hi u điu khi n TBNV t nh ng tín hi u trên BUS h th ng. Nhi m v c a BGN là ph i h p trao đi d li u gi a MVT và TBNV. 1. Ph i h p v m c và cơng su t tín hi u - Mc tín hi u c a MVT th ưng là m c TTL (0V, 5V), trong khi TBNV cĩ m c đin tho i ( ±15V, ±48V) hay m c đin cơng nghi p (220V/380V). - Cơng su t đưng dây MVT nh (c ch c mA), trong khi cơng su t c n cho TBNV là rt ln tùy theo tng h th ng. Do đĩ BGN ph i bi n đi đin áp và khu ch đi cơng su t cho phù h p gi a MVT và TBNV. Th ưng dùng vi m ch 3 tr ng thái đ đư a d`li u ra, đư a d li u vào. Do đĩ vi mch s tr ng thái tr kháng cao khi khơng cĩ trao đi d li u, đ cơ l p TBNV v i MVT, đ khơng tiêu th m t chút cơng su t nào c a đưng dây và đ bo v MVT. 2. Ph i h p v d ng d li u - D li u trao đi c a MVT luơn là song song d ng s nh phân, cĩ th truy n theo 8 bit, 16 bit, 32 bit, 64 bit. - D li u c a TBNV cĩ th song song 8 bit và 16 bit, n i ti p ho c tín hi u liên t c. Do đĩ BGN s chuy n đi d ng d li u cho phù h p gi a MVT và TBNV, ví d chuy n đi t tín hi u liên t c sang tín hi u s . 3. Ph i h p v t c đ trao đ i d li u - MVT th ưng ho t đng v i t c đ cao (t n s lên t i hàng tr ăm MHz) trong khi TBNV th ưng ho t đng ch m h ơn nhi u. Do đĩ BGN nh n và l ưu d li u t MVT r i truy n cho TBNV theo ph p ch m c a TBNV, gi i phĩng cho MVT làm nhi m v khác (ph c v TBNV khác, ch y ch ươ ng trình x lý s li u hay hi n th trên màn hình). T ươ ng t , BGN nh n d li u c a TBNV và ch MVT đc d li u vào. 4. Ph i h p v ph ươ ng th c trao đ i d li u - Vi c đc/xu t d li u do MVT kh i x ưng: Khi đĩ, MVT đư a l nh điu khi n t i kh i đng BGN hay TBNV, MVT đc tr ng thái ca TBNV. N u tr ng thái TBNV ch ưa s n sàng, MVT s ch . Gi ng viên: Nguy n V ăn Minh Trí 7
  8. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi N u TBNV tr ng thái s n sàng, MVT s ti n hành đc/xu t d li u. - Vi c đc/xu t d li u do TBNV kh i x ưng: Khi đĩ, TBNV đư a yêu c u trao đi d li u t i b ph n x lý ng t c a BGN. N u cĩ nhi u TBNV đng th i đư a ra yêu c u, BGN s s p x p theo th t ưu tiên đnh s n, r i đư a t ng yêu c u t i MVT. MVT sau khi nh n tín hi u yêu c u, s chu n b và đư a tín hi u xác nh n s n sàng trao đi. ðn l ưc BGN nh n và truy n tín hi u s n sàng đn cho TBNV. Sau đĩ, MVT và TBNV s trao đi d li u qua trung gian là BGN. điu khi n điu khi n BGN MVT GN GN TBNV s li u logic cơng s li u ngh Hình 1.2: GN gi a MVT và TBNV 1.1.3 Th t c trao đ i d li u c a máy vi tính MVT trao đi d li u v i TBNV theo m t trong hai ch đ: - Ch đ ch ươ ng trình: Gm các l nh VÀO, RA và CHUY N d li u gi a các thanh ghi. - Ch đ truy c p th ng t i b nh : BGN lúc này điu khi n s trao đi gi a TBNV và b nh qua trung gian BGN. Các ca vào ra c a VXL tr ng thái tr kháng cao. BGN điu khi n m i ho t đng c a b nh và TBNV, bao g m: . Phát đa ch cho b nh và TBNV. . Phát l nh đc RD hay ghi WR s li u. . Các s li u đc, ghi đưc trao đi gi a b nh và TBNV thơng qua các thanh ghi đm c a BGN. ch đ trao đi d li u theo ch ươ ng trình, vi c th c hi n cĩ th theo m t trong ba ph ươ ng pháp sau (hình 1.3): - ðng b hay khơng đi tho i. - Khơng đng b hay cĩ đi tho i. - Ng t ch ươ ng trình. 1. Trao đi đ ng b : Sau khi kh i đng TBNV, MVT khơng c n quan tâm t i TBNV cĩ s n sàng trao đi d li u hay khơng mà đư a luơn l nh trao đi d li u. Do đĩ TBNV ph i luơn s n sàng trao đi d li u. Ph ươ ng pháp trao đi d li u này cĩ ưu đim là nhanh, khơng t n th i gian ch đi. Tuy nhiên nĩ cĩ nh ưc đim là thi u tin c y, đơi khi b m t d li u vì cĩ th cĩ s c làm TBNV ch ưa s n sàng trao đi. 2. Trao đi khơng đ ng b : Trình t trao đi di n ra nh ư sau: - MVT đư a tín hi u điu khi n t i BGN. - MVT ch và ki m tra tr ng thái s n sàng trao đi c a TBNV. N u ch ưa s n sàng thì đc là ki m tra l i trng thái này. Gi ng viên: Nguy n V ăn Minh Trí 8
  9. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi - MVT trao đi d li u v i TBNV khi đã s n sàng. Ph ươ ng pháp này th ưng dùng vì t c đ trao đi d li u c a TBNV ch m h ơn so v i MVT. Ph ươ ng pháp trao đi d li u này cĩ ưu đim là r t tin c y, nh ưng l i t n th i gian s d ng MVT. 3. Trao đi theo ng t ch ươ ng trình: Ph ươ ng pháp này kh c ph c đưc nh ưc đim c a ph ương pháp trên. Trình t nh ư sau: - MVT đang th c hi n chu i l nh c a ch ươ ng trình nào đĩ. - TBNV cĩ yêu c u trao đi d li u, s g i tín hi u yêu c u trao đi (yêu c u ng t - INTR ). - MVT đư a tín hi u ch p nh n (xác nh n ng t – INTA). - Ch ươ ng trình chính b ng t, MVT chuy n sang ch ươ ng trình con ph c v ng t, tc ch ươ ng trình con trao đi d li u cho TBNV đã yêu c u. - Ch ươ ng trình chính l i đưc ti p t c th c hi n ch b ng t. Ch ươ ng trình Ch ươ ng trình Ch ươ ng trình Ch ưa Trao đi Trao đi d li u TBNV s n sàng ? Ng t d li u Ri Trao đi d li u a) ðng b b) Khơng đng b c) Ng t ch ươ ng trình Hình 1.3 : Trao đi d li u theo ch ươ ng trình Gi ng viên: Nguy n V ăn Minh Trí 9
  10. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi 1.2. Gi i thi u m t s vi m ch dùng trong b ghép n i Thơng th ưng BGN cĩ các thanh ch t d li u, b đ m 3 tr ng thái đ n i v i BUS và các m ch l t t o tín hi u đ i tho i. 1.2.1 Các m ch logic c ơ b n Mch AND 3Y - SN7408 Vcc 4B 4A 4Y 3B 3A Bng tr ng thái 14 13 12 11 10 9 8 - SN7409 A B Y L L L H L L L H L 1 2 3 4 5 6 7 H H H 1A 1B 1Y 2A 2B 2Y GND Mch OR Vcc 4B 4A 4Y 3B 3A 3Y - SN7432 14 13 12 11 10 9 8 Bng tr ng thái A B Y L L L H L H L H H 1 2 3 4 5 6 7 H H H 1A 1B 1Y 2A 2B 2Y GND Mch NOT - SN7404: Vcc 6A 6Y 5A 5Y 4A 4Y Bng tr ng thái: - SN7405 14 13 12 11 10 9 8 - SN7406 A Y L H H L 1 2 3 4 5 6 7 1A 1Y 2A 2Y 3A 3Y GND Mch EX-OR Vcc 4B 4A 4Y 3B 3A 3Y B ng tr ng thái - SN74136 14 13 12 11 10 9 8 A B Y L L L H L H L H H 1 2 3 4 5 6 7 H H L 1A 1B 1Y 2A 2B 2Y GND Gi ng viên: Nguy n V ăn Minh Trí 10
  11. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi Mch NAND - SN7400 Vcc 4B 4A 4Y 3B 3A 3Y Bng tr ng thái: - SN7401 14 13 12 11 10 9 8 - SN7403 A B Y L L H H L H 1 2 3 4 5 6 7 L H H 1A 1B 1Y 2A 2B 2Y GND H H L Mch NOR Bng tr ng thái - SN7402 Vcc 4B 4A 4Y 3B 3A 3Y - SN7428 14 13 12 11 10 9 8 A B Y L L H H L L L H L 1 2 3 4 5 6 7 H H L 1A 1B 1Y 2A 2B 2Y GND Mch EX-NOR Bng tr ng thái - SN74HC266 Vcc 4B 4A 4Y 3B 3A 3Y 14 13 12 11 10 9 8 A B Y L L H H L L L H L H H H 1 2 3 4 5 6 7 1A 1B 1Y 2A 2B 2Y GND Mch đm 3 tr ng thái kích ho t m c th p - SN74125 Vcc 4C 4A 4Y 3B3C 3A 3Y B ng tr ng thái - SN74425 14 13 12 11 10 9 8 C A Y H X Z∞ L L L L H H 1 2 3 4 5 6 7 1C 1A 1Y 2C 2A 2Y GND Trong đĩ Z ∞ là tr ng thái tr kháng cao. Mch đm 3 tr ng thái kích ho t m c cao Gi ng viên: Nguy n V ăn Minh Trí 11
  12. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi - SN74126 B ng tr ng thái 3Y - SN74426 Vcc 4C 4A 4Y 3B3C 3A 14 13 12 11 10 9 8 C A Y L X Z∞ H L L H H H 1 2 3 4 5 6 7 1C 1A 1Y 2C 2A 2Y GND 1.2.2 Các m ch l t: 2 2 2 - SN7474 Vcc CLR 2D CK PR 2Q 2 Q Bng tr ng thái 14 13 12 11 10 9 8 PR PR CLR CK D Q D Q Q CK Q L H X X H L CLR Q CLR CK H L X X L H D PR Q L L X X H* H* 1 2 3 4 5 6 7 H H ↑ H H L 1 1D 1 1 1Q 1 Q GND CLR CK PR H H ↑ L L H H H L X Q0 Q0 * Trong đĩ Q 0 là tr ng thái c ũ tr ưc đĩ, H là tr ng thái c m. 1.2.3 Các m ch thanh ghi đ m - SN74LS373, SN74LS374 là loi vi m ch ch t truy n qua 8 bits cùng đm 3 tr ng thái. Ð m và ch t đưc điu khi n đ c l p b ng các đ u vào điu khi n khác nhau là:  OE (Output Enable): M cng-đm  LE (Latch Enable): điu khi n m ch t  CP (Clock Input) : ðu vào xung s ưn lên Gi ng viên: Nguy n V ăn Minh Trí 12
  13. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi Bng s th t c a 74LS373 MODEHotđng Ðuvào Thanh Ðura ghini OE LE Di Oi Kíchhotvàđc L H L L L thanhghi L H H H H Chtvàđcthanhghi L L x Q0 Q0 Chtvàkhơngchora H x x x Z∞ Bng s th t c a 74LS373 MODEHotđng Ðuvào Thanh Ðura ghini OE CP Di Oi Kíchhotvàđc L L L L thanhghi L H H H Chtvàđcthanhghi L L x Q0 Q0 Chtvàkhơngchora H x x x Z∞ B điu khi n bus ch t h 8 lo i CMOS 82C82 Gi ng viên: Nguy n V ăn Minh Trí 13
  14. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi Bng s th t c a 82C82 STB OE DI DO X H X Z∞ H L L L H L H H ↓ L X Q0 Trong đĩ: H là logic 1 L là logic 0 X là b t k ỳ Z ∞ là tr ng thái tr kháng cao ↓ là s ưn xung âm Q0 là ch t giá tr c a d li u sau cùng 1.2.4 Các m ch gi i mã đa ch Mt s vi m ch đưc dùng nhi u trong các h th ng gi i mã c a VXL là SN74LS138 (m ch gi i mã 3-8), SN74LS139 (hai gi i mã 2-4). Ð minh ho cho ph ươ ng pháp này ta ch n vi m ch 74LS138. B ng s th t c a vi mch cho bi t t i m t th i đim ch cĩ m t trong tám đ u ra cĩ m c logic 0. Ði u ki n cn đ cĩ m t trong các m c th p đ u ra là các đu vào E1 , E2 , E3 ph i đưc kích ho t, t c là E1 , E2 m c th p và E3 m c cao. Khi 74LS138 đã đưc kích ho t, các đu vào đa ch A 0, A1 và A2 s l a ch n đ u ra, điu này cho phép cĩ th ch n đưc m t trong tám thi t b nh khác nhau t i m t th i đim. Gi ng viên: Nguy n V ăn Minh Trí 14
  15. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi Bng s th t c a 74LS138 Ðu vào Output Enable Select E A2 A1 A0 0 1 2 3 4 5 6 7 E1 E2 3 H x x x x x H H H H H H H H x H x x x x H H H H H H H H x x L x x x H H H H H H H H L L H L L L L H H H H H H H L L H L L H H L H H H H H H L L H L H L H H L H H H H H L L H L H H H H H L H H H H L L H H L L H H H H L H H H L L H H L H H H H H H L H H L L H H H L H H H H H H L H L L H H H H H H H H H H H L Ví d v m ch gi i mã đa ch cho ROM cĩ th tham kh o trên hình 1.4. Gi ng viên: Nguy n V ăn Minh Trí 15
  16. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi Hình 1.4: Mch gi i mã ch n ROM dùng 74LS138 1.2.5 Các m ch truy n d li u - SN74LS245  Các chân A1 ÷A8, B1 ÷B8 là các chân g i/ nh n d li u 2 h ưng t ươ ng ng.  Chân 19 ( G ) là chân ch n IC (Chip Enable).  Chân 1 (DIR) là chân ch n h ưng g i/ nh n d li u (Direction). Bng s th t ca 74LS245 G DIR Hotđng L L DliuvàoB,raA L H DliuvàoA,raB H X Z∞ Gi ng viên: Nguy n V ăn Minh Trí 16
  17. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi CH ƯƠ NG 2: GHÉP N I VÀO RA SONG SONG ðIU KHI N B NG CH ƯƠ NG TRÌNH 2.1. Các l nh vào ra d li u 2.1.1 Các l nh vào ra b ng h p ng : L nh đ nh n d li u t thi t b vào/ra là INput và m t l nh đ g i s li u ra thi t b vào/ra là OUTput. Cĩ b n cách dùng khác nhau c a m i l nh này: hai lo i chuy n d li u 8 hay 16 bít thơng qua các c ng vào/ra 8 bít, và hai chuy n d li u 8 hay 16 bít thơng qua các c ng 16 bít. Ví d hai l nh sau đây s đc các byte c a đưng d n d li u t c ng LPT1: MOV DX,378H ; n p đ a ch c a thanh ghi d li u vào DX IN AL,DX ; đc thơng tin trên đưng d n d li u (D0 đ n D7) c a LPT1 sang thanh ghi AL Bng 2.1: B ng các l nh vào ra Instruction Data Comment Width IN AL,d8 8 Ðc m t byte t c ng vào/ra 8 bít IN AL,DX 8 Ðc m t byte t c ng vào/ra xác đnh b i thanh ghi DX IN AX,d8 16 Ðc m t word t c ng vào/ra 8 bít IN AX,DX 16 Ðc m t word t c ng vào/ra xác đnh b i thanh ghi DX OUT d8,AL 8 Gi m t byte ra c ng vào/ra 8 bít OUT DX,AL 8 Gi m t byte ra c ng vào/ra xác đnh b i thanh ghi DX OUT d8,AX 16 Gi m t word ra c ng vào/ra 8 bít OUT DX,AX 16 Gi m t word ra c ng vào/ra xác đnh b i thanh ghi DX Chú ý: d8 ch a đa ch là c ng vào/ra 8 bít, và DX ch a đ a ch là c ng vào/ra 16 bít. Gi ng viên: Nguy n V ăn Minh Trí 17
  18. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi 2.1.2.Các l nh vào ra b ng Turbo C Bng 2.2: B ng các l nh vào ra Instruction Data Comment Width outportb(addr_port,data_var) 8 Gi mt byte ra c ng vào/ra 8 bít xác đnh b i đa ch addr_port Data_var=inportb(addr_port) 8 Ðc m t byte t c ng vào xác đnh b i đa ch addr_port outport(addr_port,data_var) 16 Gi mt word ra cng vào/ra, 8 bít th p xác đnh b i đa ch addr_port, 8 bít cao xác đnh b i đa ch addr_port+1 Data_var=inportb(addr_port) 16 Ðc m t word t c ng vào/ra, 8 bít th p xác đnh b i đa ch addr_port, 8 bít cao xác đnh b i đa ch addr_port+1 outp(addr_port,data_var) 8 Gi mt byte ra c ng vào/ra 8 bít xác đnh b i đa ch addr_port Data_var=inp(addr_port) 8 Ðc m t byte t c ng vào xác đnh b i đa ch addr_port outpw(addr_port,data_var) 16 Gi m t byte ra c ng vào/ra, 8 bít th p xác đnh b i đa ch addr_port, 8 bít cao xác đnh b i đa ch addr_port+1 Data_var=inp(addr_port) 16 Ðc m t word t c ng vào/ra, 8 bít th p xác đnh b i đa ch addr_port, 8 bít cao xác đnh b i đa ch addr_port+1 Ví d các l nh sau xu t 5 (8 bít 00000101) qua thanh ghi d li u c a LPT1 #include #define Dat_reg 0x378 char data_var=5; outport(Dat_reg,data_var); 2.1.3 Các l nh vào ra b ng Turbo Pascal Bng 2.3: B ng các l nh vào ra Instruction Data Comment Width Port[addr] := var1; 8 Gi mt byte ra c ng vào/ra 8 bít xác đnh b i đa ch addr Var := port[addr]; 8 Ðc m t byte t c ng vào xác đnh b i đa ch addr Ví d : Uses crt; Gi ng viên: Nguy n V ăn Minh Trí 18
  19. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi Port[$378] := X; Xu t ra giá tr bi n X lên đưng d n d li u (D0 đ n D7) c a c ng LPT1 Y := port[$379]; ðc n i dung thanh ghi tr ng thái c a LPT1 vào bi n Y Chú ý: M t ch s h 16 ph i thêm d u: 0x vào tr ưc s đĩ trong ngơn ng C, và $ vào tr ưc s đĩ trong ngơn ng Pascal. 2.1.4 Gi n đ th i gian các l nh đ c/ghi d li u: Bus h th ng, bao g m bus d li u (data bus), bus điu khi n (control bus) và bus đa ch (address bus), là các đưng d n truy n thơng gi a vi x lý và TBNV. Các VXL 8 bit d li u th ưng cĩ 8 đưng dây data bus, và 16 đưng dây t ươ ng ng 16 đưng đ a ch address bus. Hai tín hi u RD , WR control bus th ưng đưc s d ng đ xác đ nh th i đim d li u n đ nh trên data bus. Hình 1.5 là gi n đ th i gian tín hi u trên bus h th ng. D li u đưc D li u đưc đc v ào VXL ghi ra TBNV Chu k ỳ đc Chu k ỳ ghi address bus D li u t D li u t TBNV VXL data bus RD WR Hình 1.5: Gi n đ th i gian tín hi u trên bus h th ng. Mi chu k ỳ bus (bus cycle) bao g m vi c chuy n 1 t d li u gi a VXL v i b nh ho c TBNV. Mi chu k ỳ bus b t đ u khi VXL xu t m t đ a ch đ ch n m t v trí b nh ho c các c ng vào ra. Trong gi n đ này, các bus đa ch và d li u đưc bi u di n b ng 1 c p đưng th ng đ ch thơng tin trên bus n đ nh. Khi các đưng trên s ơ đ c t ngang nhau di n t d li u đã thay đi. ðưng nét đ t là tr ng thái th n i khi khơng cĩ thi t b nào lái nĩ. Gi ng viên: Nguy n V ăn Minh Trí 19
  20. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi 2.2 Ghép n i song song đơn gi n: cĩ hay khơng cĩ đ i tho i 2.2.1 C a vào đơ n gi n khơng đi tho i Hình 2.1 mơ t m t c a vào đơ n gi n khơng c n tín hi u đi tho i. Tín hi u vào t b cm bi n (BCB) đưc n i v i bus d li u c a MVT thơng qua b đm ba tr ng thái. Khi chúng ta l p trình đon l nh: C: data1 = inport(addrport); Pascal: data1 := port(addrport); Trình biên d ch s chuy n đon l nh trên thành mã máy, và khi ch y đon mã máy này, VXL s t o ra các tín hi u: - A 0 A 15 t addrport - RD kích ho t m c 0. B gi i mã s so sánh các giá tr trên đưng đa ch v i đa ch c ng cho tr ưc, n u trùng đa ch , đu ra b gi i mã s kích ho t m c 0. Do đĩ đu ra m ch OR s m c 0, kích ho t cho b đm ba tr ng thái m ra, và d li u t TBNV s đ vào bus d li u c a VXL. Lúc này, VXL s nh n - D0, , D 7 gán vào cho bi n data1. Kt thúc chu k ỳ l nh, RD tr v m c 1. ða ch A0 A 15 Gi i mã RD D BCB 1 0 D1 BCB 2 D 7 BCB 7 Bus MVT BGN TBNV Hình 2.1: C a vào đơ n gi n, khơng cĩ đ i tho i Gi ng viên: Nguy n V ăn Minh Trí 20
  21. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi 2.2.2 C a ra đơn gi n khơng đ i tho i ða ch A0 A 15 Gi i mã +E WR K/ ði D0 D 1 D7 Bus MVT BGN Hình 2.2: C a ra đơn gi n, khơng cĩ đi tho i Tươ ng t , m t c a ra đơ n gi n khơng cĩ đi tho i đưc th hi n trên hình 2.2. D li u t VXL đưc g i ra TBNV qua thanh ghi đm, dùng đ điu khi n đèn. M ch khu ch đi s nâng cơng su t lên phù h p v i cơng su t c a đèn. Khi l p trình ph n m m, chúng ta s gõ vào dịng l nh C: outportb(addrport,data2); Pascal: port(addrport) := data2; Trình biên d ch s chuy n đon l nh trên thành mã máy, và khi ch y đon mã máy này, VXL s t o ra các tín hi u: - A 0 A 15 t addrport - WR kích ho t m c 0. B gi i mã s so sánh các giá tr trên đưng đa ch v i đa ch c ng cho tr ưc, n u trùng đa ch , đu ra b gi i mã s kích ho t m c 0. Do đĩ đu ra m ch NOR s nh y lên m c 1, kích ho t cho b thanh ghi đm m ra, và TBNV nh n d li u t MVT, g m: - D0, , D 7 tươ ng ng v i bi n data2. Kt thúc chu k ỳ l nh, WR tr v m c 1. Gi ng viên: Nguy n V ăn Minh Trí 21
  22. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi 2.2.3. C a vào đơ n gi n cĩ đ i tho i 1 ða ch Q D Q0 A0 A 15 CKLQ Q Gi i mã 1 Xung Cl RD np D0 BCB 1 BCB 2 D1 D7 BCB 7 Bus MVT TBNV Hình 2.3: C a vào cĩ đi tho i Ca vào cĩ đi tho i th hi n trên hình 2.3. TBNV g i s li u t i đu vào các thanh ghi. Khi s li u đã n đnh, thi t b ngo i vi g i ti p m t xung n p. S ưn lên xung n p đư a d li u c a TBNV vào nh trong thanh ghi. S ưn xu ng xung n p kích m ch l t, đư a đu ra Q = D = 1. ðĩ là tr ng thái s n sàng c a TBNV. B VXL s ki m tra tr ng thái này b ng thu t tốn trong đon l nh: #define BIT0 0x01; #define addrport1 0x00F8; #define addrport3 0x00F9; do data3 = inportb(addrport1); while (data3&BIT0!=BIT0); data4 = inportb(addrport2); Bng l nh inportb đu tiên, VXL s đư a đa ch addrport1 ra các chân đa ch , kích ho t RD = 0 . ðu ra OR = 0, m m ch đm ba tr ng thái, đư a tín hi u Q = 1 vào đưng d li u D 0. Qua đĩ, d li u v i D 0 = 1 s đưc gán cho bi n data3. Kt thúc chu k ỳ l nh, RD =1, đu ra c ng OR chuy n sang m c 1 làm m ch đm ba tr ng thái chuy n sang tr ng thái tr kháng cao, cách ly chân Q và đưng d li u D 0. Sau khi VXL ki m tra th y d li u đã s n sàng (bit D 0 = 1), l nh inportb th hai s làm VXL t o tín hi u kích m b đm ba tr ng thái, đư a d li u c a TBNV đang nh trong các thanh ghi vào bus d li u và gán cho bi n data4. C ũng b ng xung ch n m ch này, m ch l t s xố Q v m c logic 0. Gi ng viên: Nguy n V ăn Minh Trí 22
  23. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi 2.2.4 C a ra đơn gi n cĩ đi tho i 0 TBNV s n D Q sàng nh n RD QCKL ða ch Pr A0 A 15 Gi i mã 1 S li u s n D Q WR Q sàng CKL Cl Ghi nh n Q D K/ ði 0 D1 D7 Bus MVT BGN TBNV Hình 2.4: C a ra cĩ đ i tho i Hình 2.4 mơ t c a ra cĩ đi tho i. Khi TBNV s n sàng nh n d li u, TBNV s đư a ra mt tín hi u logic 1. B VXL s ki m tra tr ng thái c a TBNV trong đon l nh: #define BIT0 0x01; do data5 = inportb(adrport); while (data5&BIT0 != BIT0); outportb(adrport,data6); Cách ho t đng c a VXL t ươ ng t trên, l nh inportb s n p d li u cĩ D 0 = 1 vào bi n data5, bi n này dùng đ so sánh nh n bi t TBNV s n sàng ch ưa. Kt thúc l nh inportb, đu ra m ch OR chuy n sang 1, t o xung lên đu ra m ch AND, làm chuy n tr ng thái mch l t Q = D = 0, đng th i làm m ch đm ba tr ng thái chuy n sang tr ng thái tr kháng cao, cách ly chân Q và đưng d li u D 0. Nu th y TBNV s n sàng nh n thì l nh outportb ti p theo s g i đa ch adrport cùng tín hi u WR= 0 t o ra m t xung ra m ch OR. S ưn lên xung này n p d li u data6 trên bus d li u vào thanh ghi đ xu t ra TBNV, s ưn xu ng đư a tín hi u Q = D = 1, báo cho TBNV là s li u s n sàng. Sau khi nh n s li u, TBNV sinh ra tín hi u ghi nh n đ xố tín hi u s li u s n sàng (v m c 0) và l p tín hi u TBNV s n sàng nh n (lên m c 1), ch b VXL g i s li u ti p theo. Trao đi d li u cĩ đi tho i làm vi c ch c ch n h ơn trao đi khơng đi tho i. Vì TBNV cĩ t c đ ho t đng ch m, nên s li u đu vào VXL cĩ lúc khơng đúng khi TBNV Gi ng viên: Nguy n V ăn Minh Trí 23
  24. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi cĩ s li u ch ưa n đnh. Do đĩ m t thu t tốn c n dùng cho trao đi khơng đi tho i là đc nhi u l n và ki m tra k t qu các l n v i nhau. N u k t qu gi ng nhau thì d li u vào xem nh ư n đnh. 2.3 Ghép n i song song điu khi n b ng ch ươ ng trình 2.3.1 S ơ đ kh i và ch c n ăng các kh i c a 8255A Ph n GN v i VXL Ph n điu khi n n i b Ph n GN v i TBNV PA 1 3 40 PA 4 PA 2 2 39 PA ðiu Nhĩm PA 0 PA 7 PA 3 5 1 38 PA 6 khi n A PA 4 0 37 PA 7 nhĩm ca A RD 5 36 WR A CS 6 35 RES ET GND 7 34 D 0 A 1 8 33 D 1 Bus s PC 4 PC 7 A 0 9 32 D 2 li u Nhĩm B PC 7 10 8255A 31 D 3 D D ðm Bus s li u trong ca C, 4 0 7 PC 6 11 30 D 4 bus s bit cao PC 5 12 29 D 5 li u PC 4 13 28 D 6 PC 0 PC 3 PC 0 14 27 D 7 Nhĩm B RD PC 1 15 26 V CC ca C, 4 WR ðiu PC 2 16 25 PB 7 bit th p PC 3 17 24 PB 6 A1 khi n A PB 0 18 23 PB 5 0 đc/ghi PB 1 19 22 PB 4 RESET PB 2 20 21 PB 3 CS ðiu Nhĩm PB 0 PB 7 khi n B Hình 2.5: Sơ đ chân và s ơ đ kh i c a 8255A nhĩm ca B B D D D÷ D 0÷ 7 INTRA INTR 0 7 RD INTRB RD WR WR RESET RST PA0÷ PA 7 8255A TBNV VXL A0 A0 A1 PC0÷ PC 7 A1 Gi i mã A÷ A 2 n đa ch CS PB0÷ PB 7 cao Hình 2.6: S ơ đ GN 8255A v i VXL và TBNV Gi ng viên: Nguy n V ăn Minh Trí 24
  25. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi Vi mch PPI 8255A là vi m ch điu khi n b ng ch ươ ng trình đưc áp d ng khá r ng rãi. Hình 1.10 trình bày s ơ đ ghép n i 8255A, g m cĩ: 1. Ph n ghép n i v i VXL: - B đm s li u đ trao đi d li u hai chi u gi a MVT và đưng dây s li u trong. - B logic điu khi n đc vi t: t c b gi i mã đa ch l nh cho các thanh ghi đm và thanh ghi điu khi n. Vi t h p các tín hi u đa ch (A 0, A 1). ch n vi m ch ( CS ), các l nh đc ( RD ) và ghi ( WR ) c a VXL, ta cĩ các l nh ghi và đc khác nhau cho các c a (A, B, C) và t điu khi n (control word) nh ư b ng 2.4. Bng 2.4: B ng tr ng thái c a 8255A A1 A0 CS RD WR Lnh (c a VXL) Chi u di chuy n s li u (v i VXL) 0 0 0 0 1 ðc c a A Ca A → D 0 D 7 0 1 0 0 1 ðc c a B Ca B → D 0 D7 1 0 0 0 1 ðc c a C Ca C → D 0 D 7 1 1 0 0 1 Khơng cĩ giá tr 0 0 0 1 0 Ghi c a A D0 D 7 → C a A 0 1 0 1 0 Ghi c a B D0 D 7 → C a B 1 0 0 1 0 Ghi c a C D0 D 7 → C a C 1 1 0 1 0 Ghi thanh ghi điu khi n D0 D 7 → thanh ghi điu khi n x x 1 x x Vi m ch tr ng thái tr Khơng cĩ trao đi s li u kháng cao 2. Ph n ghép n i v i TBNV: - Ca A, B: hai thanh ghi đm s li u (8 bit) vào ho c ra tu ỳ ch ươ ng trình - Ca C cĩ th chia là hai nhĩm đc l p b ng ch ươ ng trình: n a cao (PC 4 PC 7) và n a th p (PC 0 PC 3). Tu ỳ theo ch đ s d ng trong t điu khi n, c a C cĩ th dùng: • Trao đi s li u vào ho c ra ch đ 0 (mode 0). • ðiu khi n ho c đi tho i v i TBNV và VXL khi c a A và B ch đ 1 b ng cách xác l p và xố t ng bit PC i . • ðiu khi n ho c đi tho i v i TBNV và VXL khi c a A và B ch đ 1 và 2. ch đ 1 và 2, đc các bit c a C, ta bi t đưc tr ng thái c a các c a A và B. 3. Ph n các m ch điu khi n n i b : Cĩ các kh i điu khi n (nhĩm A, nhĩm B) các c a A, B và C. Gi ng viên: Nguy n V ăn Minh Trí 25
  26. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi 2.3.2 Các ch đ làm vi c c a 8255A: B ghép n i 8255A cĩ ba ch đ làm vi c c ơ b n nh ư hình 2.7: - Ch đ 0: vào/ra thơng th ưng - Ch đ 1: ch t vào/ra - Ch đ 2: BUS hai chi u Tu ỳ theo t điu khi n ghi vào thanh ghi điu khi n khi kh i đng cho vi m ch, ta cĩ các ch đ làm vi c và chi u trao đi s li u c a các c a A, B, C khác nhau, nh ư hình 2.8. Hình 2.7: Tĩm t t các ch đ c a 8255A D7 D6 D5 D4 D3 D2 D1 D0 1 Nhĩm B Chi u c a C thp Ch đ c a A 1 - vào 00 - Ch đ 0 0 - ra 01 - Ch đ 1 1x - Ch đ 2 Chi u c a B 1 - vào Chi u c a A 0 - ra 1 - vào 0 - ra Ch đ c a B 1 - Ch đ 1 Chi u c a C cao 0 - Ch đ 0 1 - vào 0 - ra Nhĩm A Hình 2.8: T điu khi n ch đ và chi u c a các c a A, B, C. Gi ng viên: Nguy n V ăn Minh Trí 26
  27. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi 1. Ch đ 0: Ðây là ch đ vào ra c ơ b n c a vi m ch, nĩ đ m b o d li u đưc đưa ra ho c ghi vào các c ng riêng bi t . Trong ch đ này, vi m ch cĩ các ch c n ăng sau : - Vi m ch ho t đ ng g m hai c ng 8 bit và hai c ng 4 bit. - Các c ng cĩ th là c ng vào ho c c ng ra. - Các tín hi u ra đưc ch t l i . - Các tín hi u vào khơng đưc ch t . - Trong ch đ này 8255 cĩ 16 c u hình ho t đ ng vào/ra nh s d ng t điu khi n và l nh OUT nh ư sau : Gi ng viên: Nguy n V ăn Minh Trí 27
  28. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi * Ð th th i gian đ c /ghi c a 8255 trong ch đ này nh ư sau : Gi ng viên: Nguy n V ăn Minh Trí 28
  29. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi Ð th th i gian quá trình đc. Ð th th i gian quá trình ghi. 2. Ch đ 1: Trong ch đ này c ng A và c ng B s d ng các đưng dây tín hi u c a c ng C đ t o ho c ti p nh n tín hi u h i tho i ( hanshaking signal ) ngh ĩa là m i quá trình trao đi d li u c a t ng c ng đ u dùng các tín hi u h i tho i. Các ch c n ăng c ơ b n c a ch đ 1 là - Vi m ch ho t đ ng g m hai nhĩm, nhĩm A và nhĩm B. - M i nhĩm ch a m t c ng 8 bit và m t c ng điu khi n 4 bit. - C ng 8 bit cĩ th là c ng vào , ho c c ng ra ,c hai c ng vào ra đu là c ng ch t . - Các c ng 4 bit đưc s d ng đ điu khi n và xác đnh tr ng thái c a các c ng 8 bit.  Các tín hi u điu khi n vào đưc dùng trong ch đ vào : • STB (Strobe input) Mc th p c a tín hi u vào này cho phép d li u đưc đ c vào . • IBF (Input Buffer Full) Gi ng viên: Nguy n V ăn Minh Trí 29
  30. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi Mc cao c a tín hi u ra này ch ra r ng d li u đã đưc ghi vào c ng ch t, v bn ch t đây là m t tín hi u xác nh n. Tín hi u IBF đưc xác l p khi tín hi u STB đang m c th p và đưc kh i t o l i khi cĩ s ưn d ươ ng c a đu vào RD . • INTR ( Interrupt Request ) Mc cao c a tín hi u ra này cĩ th đưc s d ng đ yêu c u ng t t i CPU. Khi mt thi t b vào yêu c u ph c v , tín hi u INTR đưc xác l p b i tín hi u STB =1, tín hi u IBF=1 và INTE =1 .Tín hi u này đưc kh i t o l i khi s ưn sau ca tín hi u RD . Ch c n ăng này cho phép các thi t b vào yêu c u ng t t i CPU m t cách đơn gi n b ng cách đưa d li u c a nĩ ra c ng. Các t l nh điu khi n và đ th th i gian c a ch đ này nh ư sau: * Ð th th i gian c a ch đ ho t đ ng này nh ư sau : Ð th th i gian quá trình đc . Gi ng viên: Nguy n V ăn Minh Trí 30
  31. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi  Các tín hi u điu 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 xố khi tín hi u vào ACK m c th p . • ACK (Acknowledge Input ). Mc 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 ) Mc 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 ngồ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 to 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
  32. Tài li u mơn h c: Ghép n i và điu 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 dng 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 đ điu 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
  33. Tài li u mơn h c: Ghép n i và điu 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 điu khi n ,tr ng thái cho c ng A 8 bit.  Các tín hi u điu 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) Mc 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 gi 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 xố bit PC4 .  Các tín hi u điu khi n vào . • STB (Srobe input ). Mc 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 ). Mc 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 xố /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
  34. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi 4. Ch đ k t h p Ngồ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 đ điu 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 Tt 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
  35. Tài li u mơn h c: Ghép n i và điu 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 xố /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 xố /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, cng 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, cng 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à điu 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
  36. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi 5. Chc n ăng xố bit và l p bit (single bit set/reset ) Bt c bit nào trong 8 bit c a c ng C đ u cĩ th đưc thi t l p ho c đưc xố nh s dng các l nh ghi ra thanh ghi điu khi n các bit phù h p. Nh ư v y khi c ng C đang đưc dùng đ điu 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 xố ho c đưc thi t l p nh s d ng các l nh xố, 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
  37. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi 6. Chc n ăng điu 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 điu khi n ca 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 cng C cĩ th b c m hay đưc phép nh xố hay xác l p m ch l t INTE s d ng ch c năng l p xố 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 - PC 1 cho tr ng thái b n c a máy in. - PC 0 cho tr ng thái s n sàng c a máy đc b ăng. Na cao c a C là c a ra, dùng đ đư a ra tín hi u điu khi n: - PC 5 đư a tín hi u ch t s li u cho máy in (qua b đo). - PC 4 đ 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: - PC 4 tín hi u ra đ ch t s li u, cĩ th dùng PC 7 ( OBF A ) thay th . - PC 6 tín hi u vào cho ACK , xác nh n đã in s li u. - PC 3 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 PC 6, PC 7 s t đng thu phát mà khơng c n l nh ca ch ươ ng trình, tr PC 4 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 PC 6. PA PA Máy 8255 0÷ 7 Data strobe in PC 5 Reset Reset Busy PC 1 D÷ D D0÷ D 7 0 7 RD RD VXL WR WR A A 0 PC Busy 0 0 Máy A A1 1 PC 4 đc A÷ A driver right 2 19 Gi i CS PB0÷ PB 7 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
  38. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi PA÷ PA D÷ D D0÷ D 7 0 7 0 7 Data strobe PC 4 VXL INTR A INTR PC 6 PC 3 ACK INTA PC 7 OBF A Máy in 8255 Hình 2.10: Ví d GN 8255 ch đ 1. D÷ D 8255 PA÷ PA 0 7 0 7 DAC Reset Li ra Reset PB 0 Ch t s li u tươ ng t D÷ D D0÷ D 7 0 7 PB 1 Cho phép đư a ra RD RD VXL WR WR ADC PB Cho phép trích m u A A0 2 Li vào 0 A tươ ng t A1 1 PB 3 Ch t s li u D÷ D A2÷ A 19 Gi i CS 0 7 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 điu 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 tốn. - Xác đnh t điu khi n ch đ cho thanh ghi điu khi n, t tr ng thái cho tng mch c th . - Ch ươ ng trình kh i phát b ng l nh ghi vào thanh ghi điu khi n. - ðư a n i dung các bít cho các c a dùng đ điu 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à mt 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
  39. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi Ví d vi t ch ươ ng trình điu 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 tốn th hi n trên hình 2.12. Bt đu Bt đu Lp xung ch t PC 4 ðc tr ng thái – PC 1 Yes Máy in b n? ðc tr ng thái – PC 0 No Yes ðư a s li u ra Máy đc b n? No Xố xung ch t PC ðc s li u vào 5 Lp xung ch t PC Xố xung ch t PC 4 5 Kt thúc Kt 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 ⇒ A 19 . A 3 A 2 A 1 A 0 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 điu khi n addr_dk := 3FE1Bh  Xác đnh t điu 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 D 6=0 D 5=0 D 4=0 Na c a C cao là c a ra nên D3=0 PB ch đ 0, c a vào nên D 2=0 D 1=0 Na c a C th p là c a vào nên D 0=1 Ta cĩ t điu khi n sau: Data_dk := 81h (=1000 0001 B) T tr ng thái cho các c ng PC: PC 7 PC 6 PC 5 PC 4 PC 3 PC 2 PC 1 PC 0 Cho PC5 0 0 1 0 0 0 0 0 ⇒ data_C5 := 20h Gi ng viên: Nguy n V ăn Minh Trí 39
  40. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi Cho PC4 0 0 0 1 0 0 0 0 ⇒ data_C4 := 10h Cho PC 1 0 0 0 0 0 0 1 0 ⇒ data_C1 := 02h Cho PC 0 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
  41. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi CH ƯƠ NG 3: GHÉP N I TRAO ðI D LI U NI 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 ni ti p nh ư máy cassette, đĩa t , máy in ni 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. Ngồi ra, ng ưi ta cĩ th dùng luơn đưng dây đin tho i đ trao đi d li u, thơng qua b điu ch - gi i điu ch (MODEM) ðiu 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. Thu Phát ðng b Gi ng viên: Nguy n V ăn Minh Trí 41
  42. Tài li u mơn h c: Ghép n i và điu 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à truyn đc l p v i nhau, g i là m t l i tin. Dng 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 đ điu 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 đin á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. Nu 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 ngồ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 đin tho i, ng ưi ta khơng phát t ng bit 0/1 mà dùng MODEM (modulation-demodulation) đ điu 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 Mch trao đ i d li u ni ti p. 1. Mch 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 ngồi vào/ra song song VXL SOD D SID Thanh ghi d ch CLK C Hình 3.1: Mch khơng c n BGN 2. Mch trao đ i c n ghép n i song song-ni ti p: Gi ng viên: Nguy n V ăn Minh Trí 42
  43. Tài li u mơn h c: Ghép n i và điu 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 dng n i ti p và truy n đ n TBNV. ð truy n chính xác, BGN ngồ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. Loi 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. Mch 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. Mch cĩ BGN, MODEM và RS232C: BGN đưng dây BGN VXL ss-nt TB ðC đin tho i ss-nt (VXL) RS-232C MODEM MODEM MODEM MODEM RS-232C 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 đin áp là ±12V. Chu n RS422 cĩ m c đin áp là ±15V. Chu n RS485 cĩ m c đin áp là ±30V (đin 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
  44. Tài li u mơn h c: Ghép n i và điu 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) gi 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 bng tín hi u DSR (Date Set Ready) m c 0. • Nu 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 liu 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 gi các ký t s li u (SDU) cho MODEM. • Khi TB ðC gi 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 bng tín hi u CTS m c cao, báo hi u hồ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 liu 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 sn sàng nh n tin. • MODEM nh n TxD trên đưng dây, sau đĩ ph i điu 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 vi 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
  45. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi 3.2 Mch thu phát di b v n n ăng UART 8250 Mch 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ĩ thc 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 mi 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 ơ đ khi 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 Chc 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): nhn d li u tu n t đi t i t c ng RS232. - Chân s 11 (SOUT): G i d li u tun 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 ti 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
  46. Tài li u mơn h c: Ghép n i và điu 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: Bng 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
  47. Tài li u mơn h c: Ghép n i và điu 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 điu khi n dịng (LCR) x 1 0 0 ðc/ghi điu 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) Mi 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). • Nu DLAB = 1 thì thanh ghi thc hi n ch c n ăng ch t chia ph n cao và ph n th p. • nu 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, ti đâ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, ti đây nĩ đưc đĩng khung và đư a ra t ng bit m t vào chân SOUT (chân 11) ca 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), mi 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
  48. Tài li u mơn h c: Ghép n i và điu 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 rng. 0 cho phép 8250 phát yêu c u ng t khi thanh ghi đm thu đy, d li u đã sn 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 tố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 Tn s nh p chu n B chia = 16 x t c đ baud mong mu n - tn s nh p chu n do đ ng h th ch anh c a 8250 phát ra, nĩ b ng 1,8432 MHZ - tc đ t i đa tính tốn là 115200 baud. - t c đ baud đ th c hi n các chân SIN, SOUT. Bng 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 cn 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 ca 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 cn x lý ng t, CPU c n đ c bit D 0 c a thanh ghi này đ bi t cĩ yêu c u ng t và ki m tra các bit D 1 và D 2 đ 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
  49. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi điu 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 D 7÷D3 luơn đt b ng 0. D2, D1: mã hố các yêu c u ng t cĩ m c ưu tiên cao nh t đang ch phc v . D2 D1 Mc ư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 xố 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 điu 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
  50. Tài li u mơn h c: Ghép n i và điu 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 điu khi n MODEM (MODEM Control Register – MCR) , đa ch 3FCh Thanh ghi này cịn g i là thanh ghi điu khi n các tín hi u ra c a MODEM vì nĩ cho phép điu 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 ca 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 ca 8250 đưc chuy n v m c 0, máy tính phát chuy n tín hi u RTS ti 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 ca 8250 đt m c 0, lúc này máy tính g i tín hiu DTR ti 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 ca DB25). i) Thanh ghi tr ng thái dịng (Line Status Register – LSR) đa ch 3FDh Chc 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 lp . 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
  51. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi 7 D tr 6 =1: báo thanh ghi chuy n phát r ng (Transmitter Shift Register Empty), báo m t kí t đã đưc phát đi, bit này b xố khi cĩ m t kí t chuy n t THR sang TSR. 5 =1: báo thanh ghi đm truy n r ng, ký t chuy n t THR sang TSR (Transmitter Shift Register), bit này b xố khi CPU đưa kí t đ n THR. 4 =1: báo nh n đưc tín hi u Break, bit này b xố khi đc thanh ghi LSR. 3 =1: báo l i khung (framming error) ch ng h n bit stop =0, bit này b xố khi CPU đc thanh ghi LSR. 2 =1: nh n báo đưc l i ki m tra ch n l (parity error), bit này b xố khi CPU đ c thanh ghi LSR. 1 =1: cĩ l i tràn (over run) x y ra khi kí t tr ưc đĩ b m t, bit này b xố khi CPU đc thanh ghi LSR. 0 =1: đã nh n đưc 1 ký t và đ nĩ trong thanh ghi đ m thu (RBR), bit này b xố v 0 khi CPU đc thanh ghi RBR. j) Thanh ghi tr ng thái modem (MODEM Status Regisster – MSR) , đa ch 3FEh Thanh ghi này cịn đưc g i là thanh ghi tr ng thái vào t RS232C vì nĩ cho bi t tr ng thái hi n th i c a các tín hi u điu khi n MODEM. Bit Ch c n ăng 7 =1 : DCD đang ho t đ ng, báo liên l c v i MODEM đã đưc thi t l p. 6 =1 : RI đang ho t đ ng 5 =1 : MODEM (hay MVT đu kia) g i tín hi u DSR (Data Set Ready) v máy tính đ cho bi t đã s n sàng nh n d li u (qua chân 6 c a DB9 hay DB25) 4 =1 : MODEM (hay MVT đu kia) g i tín hi u CTS (Clear To Send) v máy tính đ cho bi t đã s n sàng nh n d li u (qua chân 8 c a DB9 hay chân 5 c a DB25). 3 =1 : bit D7 va đ i tr ng thái 2 =1 : bit D6 v a đi tr ng thái 1 =1 : bit D5 va đ i tr ng thái 0 =1 : bit D4 va đ i tr ng thái k) Thanh ghi nh nháp (Scratch Register), đa ch 3FFh (dành cho CPU, ít s d ng nên khơng nghiên c u) Gi ng viên: Nguy n V ăn Minh Trí 51
  52. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi 3.2.2 Ghép n i v i UART 8250: SOUT RxD D÷ D D0÷ D 7 0 7 SIN TxD Reset MR RTS RTS MO I/O R MEMR DI ST R DTR DTR DEM MEM W I/O W DO ST R DSR DSR DCD VXL 8250 DCD CTS CTS A 0 A0 RI RI A1 A1 OUT 1 A A2 2 OUT 2 Gi i A3÷ A 15 mã đa CS 2 XTAL1 ch CS CS 1 XTAL2 CS 0 5V CS 0V BAUDOUT ADS CS DOSTR RCKL DISTR Hình 3.7: S ơ đ ghép n i v i 8250 3.2.3 Lp trình cho UART 8250: Lưu đ thu t tốn: a. Kh i phát vi m ch theo trình t sau: - Ghi vào thanh ghi d ng s li u theo : + D 7 = DLAB = 1 đ chu n b ghi ch t cho b chia t c đ. + Khung tin v i s bit Stop + S bit c a tin - Ghi giá tr b chia t n s vào các thanh ghi ch t chia LSB, MSB tu ỳ theo t c đ baud. - Ghi các phép yêu c u ng t vào thanh ghi yêu c u ng t. b. Phát s li u n i ti p: - ðc thanh ghi nh n d ng ng t đ bi t b đm r ng, cĩ th phát tin. - Ghi vào thanh ghi điu khi n MODEM đ đư a l nh DRT (bit D 0-1) điu khi n MODEM chu n b phát. - ðc thanh ghi tr ng thái MODEM đ ki m tra các bit DSR (D 5), RI (D 6), DCD (D 7) xem đã chu n b phát ch ưa? ( giá tr chúng =1) - ðc thanh ghi tr ng thái dịng đ xem cĩ sai s khơng và hai thanh truy n và đm cĩ tr ng khơng? ( đ đư a tin ra) - Ghi tin ra vào thanh ghi đm phát t MVT. - Ghi l nh RTS (D 1=1) vào thanh ghi điu khi n MODEM đ điu khi n phát s li u. Gi ng viên: Nguy n V ăn Minh Trí 52
  53. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi c. Nh n s li u n i ti p: - Ghi l nh DTR (D 0=1) vào thanh ghi điu khi n MODEM - ðc tr ng thái MODEM DSR, RI, DCD thanh ghi tr ng thái MODEM. - ðc thanh ghi tr ng thái dịng đ bi t đã cĩ s li u thu ch ưa (D 0=1); ho c đc thanh ghi nh n di n ng t đ bi t thêm s li u thu. - ðc s li u vào t thanh ghi đm s li u vào. Ví d 8250 c n trao đi tin 8 bit, t c đ 9600 baud, khơng ki m tra ch n l , 2 bit Stop, đa ch làm vi c đu 03F8h. Ghi thanh ghi điu khi n dịng D0D1=11 , D2=1, D3=0, D4=0, D5=0, D6=0, D7=1 ⇒ data1_LCR=87h nu D7=0 ⇒data2_LCR=07h addr_LCR=03FBh Ghi thanh ghi ch t b chia 9600 baud ⇒ s chia=000C data_LS = 0Ch và data_MS = 00h addr_LS=03F8h và addr_MS=03F9h Ghi thanh ghi cho phép ng t khơng làm vi c, c m ng t: data_IER=00h; addr_IER=03F9h ðc thanh ghi nh n d ng ng t THR_rong= 02h addr_IIR=03FAh Ghi thanh ghi điu khi n MODEM Addr_MCR=3FCh Data_DRT=01h Data_RTS=02h ðc thanh ghi tr ng thái MODEM Addr_MSR=3FEh DSR (D 5), RI (D 6), DCD (D 7) = 1 ⇒data1_MSR=E0h ðc thanh ghi tr ng thái dịng Addr_LSR=3FDh Khơng l i D1 D2 D3 = 0; t/g đm r ng D5 D6 =1 ⇒data1_LSR=60h Ch ươ ng trình con th c hi n các cơng vi c trên: 1. Kh i phát vi m ch theo trình t sau: port[addr_LCR] :=data1_LCR; port[addr_LS] :=data_LS; port[addr_MS] :=data_MS; port[addr_LCR] :=data2_LCR; Gi ng viên: Nguy n V ăn Minh Trí 53
  54. Tài li u mơn h c: Ghép n i và điu khi n thi t b ngo i vi port[addr_ IER] :=data_IER; 2. Phát s li u n i ti p repeat Var1 := port[addr_IIR]; Until ((var1 and THR_rong)=THR_rong); port[addr_MCR] := data_DRT; repeat Var2 := port[addr_MSR]; Until ((var2 and data1_MSR)=data1_MSR); Repeat var3 := port[addr_LSR]; until ((var3 and data1_LSR)=data1_LSR); port[addr_THR] :=$50; {s li u truy n đi} port[addr_MCR] := data_RTS; 3.Nh n s li u n i ti p port[addr_MCR] := data_DRT; Repeat Var2 := port[addr_MSR]; Until ((var2 and data1_MSR)=data1_MSR); Repeat var3 := port[addr_LSR]; until ((var3 and data1_LSR)=data1_LSR); Var4 :=port[addr_RBR]; Gi ng viên: Nguy n V ăn Minh Trí 54