Xem mẫu

  1. Tröôøng ÑH SPKT Luaän vaên toát nghieäp GIAO TIEÁP SONG SONG DUØNG CHÖÔNG VI: VI MAÏCH 8255 I. GIÔÙI THIEÄU VEÀ VI MAÏCH 8255A: Ñeå vi xöû lyù giao tieáp vôùi nhöõng thieát bò beân ngoaøi, ngöôøi ta thöôøng duøng vi maïch giao tieáp 8255A, vi maïch naøy coù khaû naêng giao tieáp raát roäng, vöøa coù theå xuaát döõ lieäu, vöøa coù theå nhaän döõ lieäu tuøy theo ngöôøi laäp trình ñieàu khieån baèng caùch thay ñoåi t`oâng soá cuûa thanh ghi ñieàu khieån. II. SÔ ÑOÀ CHAÂN, SÔ ÑOÀ LOGIC, CHÖÙC NAÊNG CAÙC CHAÂN CUÛA VI MAÏCH 8255A. Sô ñoà chaân vaø sô ñoà logic cuûa vi maïch 8255A ñöôïc theå hieän qua hình veõ: PA3 1 40 PA4 PA2 PA5 PA1 PA6 PA0 PA7 PA0 – PA7 D0 – D7 RD\ WR CS\ RESET 8255A GND D0 A1 D1 A0 D2 8255A RD PC 7 D3 PB0 – PB7 PC 6 D4 WR PC 5 D5 RESET PC 4 D6 PC 0 D7 PC 1 V cc A0 PC 2 PB7 A1 PC0 – PC7 PC 3 PB6 PB 0 PB5 CS PB 1 PB4 PB 2 20 21 PB3 Hình 6.1 : Sô ñoà chaân vaø sô ñoà logic cuûa vi maïch 8255A Trong ñoù: Chaân 1  4, 37  40 (PA0 – PA7): laø caùc ñöôøng xuaát nhaäp coù teân laø coång A. Chaân 18  25 (PB0 – PB7): laø caùc ñöôøng nhaäp xuaát coù teân coång B. Chaân 10  13, 14  17 (PB0 – PB7): laø caùc ñöôøng nhaäp xuaát coù teân coång C. Chaân 27  34 (D0 – D7): laø caùc ñöôøng döõ lieäu (data) hoaït ñoäng hai chieàu, daãn tín hieäu ñieàu khieån töø vi xöû lyù ra caùc thieát bò beân ngoaøi ñoàng thôøi nhaän caùc döõ lieäu töø caùc thieát bò ñieàu khieån beân ngoaøi vaøo vi xöû lyù. Chaân 35 (Reset input): ngoõ vaøo xoùa, chaân reset phaûi ñöôïc noái vôùi tín hieäu reset out cuûa vi xöû lyù ñeå khoâng laøm aûnh höôùng ñeán maïch ñieàu khieån. Khi reset, caùc coång GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
  2. Tröôøng ÑH SPKT Luaän vaên toát nghieäp cuûa 8255A laø caùc ngoõ vaøo, ñoàng thôøi taát caû caùc döõ lieäu treân thanh ghi beân trong 8255A ñeàu bò xoùa, 8255A trôû veà traïng thaùi ban ñaàu saên saøng laøm vieäc. Chaân 6 (CS\): tín hieäu ngoõ vaøo chip select (CS\) ñöôïc ñieàu khieån bôûi vi xöû lyù, duøng ñeå löïa choïn 8255A laøm vieäc khi vi xöû lyù giao tieáp vôùi nhieàu thieát bò. Chaân 5 (RD\): ngoõ vaøo ñoïc döõ lieäu (Read Input). Chaân 36 (WR\) : ngoõ vaøo ghi döõ lieäu (Write Input). Chaân 8,9 (A1, A0): ngoõ vaøo ñòa chæ (Address Input), duøng nhaän ñòa chæ vaøo ñeå löïa choïn thanh ghi vaø caùc coång. Baûng ñòa chæ löïa choïn thanh ghi vaø caùc coång: A1 A0 Coång vaø thanh ghi 0 0 Coång A 0 1 Coång B 1 0 Coång C 1 1 Thanh ghi ñieàu khieån Chaân 26 (Vcc) : nguoàn 5 VDC. Chaân 7 (GND) : GND 0 VDC. III. CAÁU TRUÙC BEÂN TRONG VAØ HOAÏT ÑOÄNG CUÛA VI MAÏCH 8255A. 1. Sô ñoà khoái caáu truùc beân trong cuûa vi maïch 8255A. PA7 – PA0 Port A Ñieàu khieån PC7 – PC4 nhoùm A Port C Ñeäm bus (4 bit cao) D7 – D0 döõ lieäu Nhoùm A PC3 – PC0 Port C (4 bit thaáp) Ñieàu khieån PB7 – PC0 RD\ nhoùm B Logic WR \ ñieàu Port B CS\ khieån A0 ghi/ñoïc Nhoùm B A1 GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
  3. Tröôøng ÑH SPKT Luaän vaên toát nghieäp Hình 6.2: Sô ñoà khoái caáu truùc beân trong cuûa 8255A 2. Hoaït ñoäng cuûa vi maïch 8255A: Töø sô ñoà khoái caáu truùc beân trong cuûa vi maïch 8255A ta thaáy caùc coång cuûa 8255A ñöôïc chia thaønh 2 nhoùm: Nhoùm A goàm coång A vaø 4 bit cao cuûa coång C. Nhoùm B goàm coång B vaø 4 bit thaáp cuûa coång C. Caáu hình laøm vieäc cuûa 2 nhoùm seõ do noäi dung cuûa thanh ghi ñieàu khieån quyeát ñònh. Vi maïch 8255 giao tieáp vôùi vi xöû lyù thoâng qua caùc ñöôøng sau : - Ñöôøng döõ lieäu: goàm 8 ñöôøng döõ lieäu (D0 - D7). Maõ leänh, caùc döõ lieäu ñeàu ñöôïc truyeàn ñi treân ñöôøng naøy. - Ñöôøng ñòa chæ: goàm 2 ñöôøng (A0 – A1) duøng ñeå löïa choïn coång hoaëc thanh ghi ñieàu khieån nhö ñaõ trình baøy ôû phaàn tröôùc. - Ñöôøng ñieàu khieån: goàm caùc ñöôøng RD\, WR\, CS\, Reset duøng ñeå ñieàu khieån vieäc hoaït ñoäng cuûa 8255A. Ñeå söû duïng caùc coång laøm coâng cuï giao tieáp, ngöôøi söû duïng phaûi göûi töø ñieàu khieån ra thanh ghi ñieàu khieån ñeå 8255A ñònh caáu hình laøm vieäc cho caùc coång ñuùng nhö yeâu caàu cuûa ngöôøi laäp trình. 3. Töø ñieàu khieån: Töø ñieàu khieån laø döõ lieäu ñöôïc gôûi tôùi thanh ghi ñieàu khieån. Giaù trò cuûa töø ñieàu khieån seõ xaùc ñònh caáu hình laøm vieäc cho caùc coång cuûa 8255A, ñoù laø vieäc löïa choïn chöùc naêng nhaäp hay xuaát cuûa caùc coång. a. Caáu truùc cuûa töø ñieàu khieån: Do caùc coång cuûa 8255A ñöôïc chia laøm hai nhoùm neân töø ñieàu khieån cuõng ñöôïc chia laøm hai nhoùm ñieàu khieån töông öùng. Caùc bit D3, D4, D5, D6 duøng ñeå xaùc ñònh caáu hình cho nhoùm A: - Bit D3 duøng ñeå thieát laäp 4 bit cao cuûa coång C. D3 = 0 coång C laø coång xuaát döõ lieäu. D3 = 1 coång C laø coång nhaäp döõ lieäu. - Bit D4 duøng ñeå thieát laäp coång A. D4 = 0 coång A laø coång xuaát döõ lieäu. D4 = 1 coång A laø coång nhaäp döõ lieäu. - Bit D5 vaø D6 duøng thieáp laäp mode ñieàu khieån cuûa nhoùm A. GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
  4. Tröôøng ÑH SPKT Luaän vaên toát nghieäp D6D5 = 00 : nhoùm A hoaït ñoäng ôû mode 0. D6D5 = 01 : nhoùm A hoaït ñoäng ôû mode 1. D6D5 = 1x : nhoùm A hoaït ñoäng ôû mode 2. Caùc bit D0, D1, D2 duøng ñeå xaùc ñònh caáu hình cho nhoùm B. - Bit D0 duøng ñeå thieát laäp 4 bit thaáp cuûa coång C. D0 = 0 coång C laø coång xuaát döõ lieäu. D0 = 1 coång C laø coång nhaäp döõ lieäu. - Bit D1 duøng ñeå thieát laäp coång B. D1 = 0 coång B laø coång xuaát döõ lieäu. D1 = 1 coång B laø coång nhaäp döõ lieäu. - Bit D2 duøng thieáp laäp mode ñieàu khieån cuûa nhoùm B. D2 = 0 : nhoùm B hoaït ñoäng ôû mode 0. D2 = 1 : nhoùm B hoaït ñoäng ôû mode 1. D7 D6 D5 D4 D3 D2 D1 D0 Nhoùm B Coång C (4 bit thaáp) 1 = Input 0 = Output Coång B 1 = Input 0 = Output Mode select 1 = mode 0 0 = mode 1 Nhoùm A Coång C (4 bit cao) 1 = Input 0 = Output Coång A 1 = Input 0 = Output Mode select 00 = mode 0 01 = mode 1 1x = mode 2 GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng Ñaët traïng thaùi côø. 1 = Active
  5. Tröôøng ÑH SPKT Luaän vaên toát nghieäp Hình 6.3 : Caáu tru ùc töø ñieàu khieån cuûa vi maïch 8255A GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
  6. Tröôøng ÑH SPKT Luaän vaên toát nghieäp b. Cô cheá hoaït ñoäng caùc coång cuûa 8255A ôû caùc traïng thaùi. * Nhoùm A vaø Nhoùm B caáu hình ôû mode 0. Khi ñöôïc ñònh ô caáu hình naøy, caùc coång cuûa hai nhoùm hoaït ñoäng xuaát hoaëc nhaäp döõ lieäu ñoäc laäp vôùi nhau. Töø ñieàu khieån: 1 0 0 D4 D3 0 D1 D0 Vôùi D0, D1. D3, D4 tuøy choïn theo yeâu caàu cuûa ngöôøi söû duïng. * Nhoùm A ñöôïc caáu hình ôû mode 1. ÔÛ mode 1, caùc coång laøm vieäc coù choát (Strobed I/O), thieát bò giao tieáp muoán 8255A nhaän döõ lieäu thì thieát bò ñoù phaûi taïo ra moät tín hieäu yeâu caàu 8255A nhaän döõ lieäu vaø ngöôïc laïi, 8255A muoán gôûi döõ lieäu cho moät thieát bò khaùc thì noù phaûi gôûi 1 tín hieäu yeâu caàu thieát bò ñoù nhaän döõ lieäu, tín hieäu ñoù goïi laø tín hieäu choát. + Khi coång A ñöôïc caáu hình laø coång nhaäp döõ lieäu, chöùc naêng caùc ñöôøng tín hieäu ñöôïc trình baøy nhö hình veõ: PA0–PA7 Töø ñieàu khieån : INTE STBA A PC4 IBFA PC5 1 0 1 1 D3 x x x INTRA PC3 RD PC6,7 I/O Hình 6.4 : Chöùc naêng caùc ñöôøng tín hieäu khi coång A laø coång nhaäp döõ lieäu Caùc ñöôøng tín hieäu cuûa coång C trôû thaønh caùc ñöôøng ñieàu khieån cuûa coång A. Trong ñoù : Bit INTEA (Interrupt Enable) ñöôïc thieát laäp möùc logic döôùi söï ñieàu khieåf cuûa phaàn meàm duøng caáu truùc Set/Reset cuûa 8255A. Bit PC4 trôû thaønh bit STBA (Strobed Input, taùc ñoäng möùc thaáp), ñöôïc duøng ñeå choát caùc döõ lieäu ôû caùc ngoõ vaøo PA0 – PA7 vaøo maïch choát beân trong. GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
  7. Tröôøng ÑH SPKT Luaän vaên toát nghieäp Bit PC5 trôû thaønh bit IBFA (Input Buffer Full, taùc ñoäng möùc cao), duøng ñeå baùo cho beân ngoaøi bieát döõ lieäu ñaõ ñöôïc choát beân trong. Bit PC3 trôû thaønh bit INTRA (Interrupt Request, taùc ñoäng möùc cao), bit naøy coù möùc logic 1 khi bit STRA = 1, bit IBFA = 1 vaø bit INTEA = 1. Thoâng thöôøng bit naøy duøng ñeå taùc ñoäng vaøo ngoõ vaøo ngaét cuûa vi xöû lyù ñeå baùo cho vi xöû lyù bieát : döõ lieäu môùi ñaõ xuaát hieän ôû ngoõ vaøo. Caùc bit PC6, PC7 cuûa coång C laø caùc bit xuaát/ nhaäp bình thöôøng tuøy thuoäc vaøo töø ñieàu khieån trong thanh ghi ñieàu khieån. Coøn coång B ñöôïc ñieàu khieån baèng caùc bit D0 – D2 trong thanh ghi ñieàu khieån (neáu coång B hoaït ñoäng ôû mode 1 thì caùc bit PC0 – PC2 laø caùc bit ñieàu khieån). + Coång A ñöôïc caáu hình laø coång xuaát döõ lieäu. Chöùc naêng caùc ñöôøng tín hieäu ñöôïc trình baøy ôû hình veõ: Töø ñieàu khieån : PA0–PA7 INTE OBFA A PC7 1 0 1 0 D3 X x x ACKA PC6 INTRA PC3 WR PC4,5 I/O Hình 6.5 : Chöùc naêng caùc ñöôøng tín hieäu khi coång A laø coång xuaát döõ lieäu Bit PC7 trôû thaønh bit OBFA (Output Buffer Full, taùc ñoäng möùc thaáp), khi coù döõ lieäu töø vi xöû lyù gôûi ra coång A, tín hieåu OBF seõ yeâu caàu thieát bò beân ngoaøi nhaän döõ lieäu. Bit PC6 trôû thaønh bit ACKA (Acknowledge Input, taùc ñoäng möùc thaáp), thieát bò nhaän döõ lieäu duøng tín hieäu naøy ñeå baùo cho 8255A bieát döõ lieäu ñaõ ñöôïc nhaän vaø saün saøng nhaän döõ lieäu môùi. Bit PC3 trôû thaønh bit INTRA (Interrupt Request, taùc ñoäng möùc cao), bit naøy coù möùc logic baèng 1 khi bit OBFA = 1, ACKA = 1 vaø bit INTEA = 1. Tín hieäu INTRA taùc ñoäng ñeán ngoõ vaøo ngaét cuûa vi xöû lyù ñeå baùo cho vi xöû lyù bieát thieát bò beân ngoaøi ñaõ nhaän döõ lieäu töø coång A. Caùc bit PC4, PC5 vaãn laø bit nhaäp/ xuaát döõ lieäu bình thöôøng tuøy thuoäc vaøo töø ñieàu khieån. Caùc bit D0 – D2 trong thanh ghi ñieàu khieån duøng ñeå thieát laäp caáu hình cho coång B. * Nhoùm B ñöôïc caáu hình ôû mode 1. GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
  8. Tröôøng ÑH SPKT Luaän vaên toát nghieäp + Coång B ñöôïc caáu hình laø coång nhaäp döõ lieäu. Chöùc naêng caùc ñöôøng tín hieäu ñöôïc trình baøy nhö hình veõ: GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
  9. Tröôøng ÑH SPKT Luaän vaên toát nghieäp Töø ñieàu khieån : PB0–PB7 INTE STBB B PC2 1 p x x X 1 1 x IBFB PC1 INTRB PC0 RD Hình 6.6 : Chöùc naêng caùc ñöôøng tín hieäu khi coång B laø coång nhaäp döõ lieäu Chöùc naêng cuûa caùc bit ñieàu khieån gioáng nhö khi nhoùm A hoaït ñoäng ôû mode 1 vaø coång A ñöôïc caáu hình laø coång nhaäp döõ lieäu. + Coång B ñöôçc caáu hình laø coång xuaát döõ lieäu. Chöùc naêng caùc ñöôøng tín hieäu ñöôïc trình baøy nhö hình veõ : PB0–PB7 INTE Töø ñieàu khieån: OBFB B PC1 ACKB PC2 1 x X x x 1 0 x INTRB PC0 WR Hình 6.7 : Chöùc naêng caùc ñöôøng tín hieäu khi coång B laø coång xuaát döõ lieäu Chöùc naêng cuûa caùc töø ñieàu khieån gioáng nhö khi nhoùm A hoaït ñoäng ôû mode 1 vaø coång A ñöôïc caáu hình laø coång xuaát döõ lieäu. * Nhoùm A ñöôïc caáu hình ôû mode 2. Mode 2 laø kieåu hoaït ñoäng strobed bi-directional IO : coù hai chöùc naêng nhaäp xuaát döõ lieäu. Töø ñieàu khieån khi nhoùm A ñöôïc caáu hình ôû mode 2 vaø chöùc naêng cuûa caùc ñöôøng tín hieäu ñöôïc trình baøy ôû hình veõ: GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
  10. Tröôøng ÑH SPKT Luaän vaên toát nghieäp Töø ñieàu khieån : PA0–PA7 1 0 1 1 D3 x x x INTE PC3 A OBFA PC7 INTE ACKA PC6 1 INTE STBA PC4 2 WR \ IBFA PC5 RD\ PC2,1,0 I/O Hình 6.8: Chöùc naêng caùc ñöôøng tín hieäu khi nhoùm A hoaït ñoäng ôû mode 2 Caùc ñöôøng tín hieäu cuûa coång C trôû thaønh caùc ñöôøng ñieàu khieån cuûa coång A. Bit PC7 trôû thaønh bit OBFA, PC6 trôû thaønh bit ACKA, PC4 trôû thaønh bit STBA, PC5 trôû thaønh bit IBFA vaø bit PC3 trôû thaønh bit INTRA, chöùc naêng cuûa caùc bit ñieàu khieån gioáng nhö ôû mode 1, chæ khaùc tín hieäu INTRA = 1 khi OBFA = 1 vaø INTE1 = 1 hoaëc IBFA = 1 vaø INTE2 = 1. Caùc bit PC0 – PC2 laø caùc bit nhaäp xuaát döõ lieäu bình thöôøng tuøy thuoäc vaøo töø ñieàu khieån trong thanh ghi ñieàu khieån. Moät chuù yù caàn thieát laø khi nhoùm A ñöôïc caáu hình ôû mode 2 thì nhoùm B chæ ñöôïc caáu hình ôû mode 0. IV. GIAO TIEÁP GIÖÕA VI XÖÛ LYÙ VÔÙI 8255A: Vi maïch 8255A coù theå giao tieáp vôùi vi xöû lyù theo 2 kieåu: kieåu nhaäp/xuaát (kieåu I/O) vaø kieåu boä nhôù. Khi vi xöû lyù giao tieáp vôùi 8255A theo kieåu I/O noù chæ duøng ñöôïc 8 ñöôøng ñòa chæ töø A0 – A7 maø thoâi coøn khi giao tieáp kieåu boä nhôù, noù duøng ñöôïc caû 16 ñöôøng ñòa chæ, vì vaäy dung löôïng giao tieáp kieåu I/O thaáp hôn dung löôïng giao tieáp kieåu boä nhôù. 1. Giao tieáp kieåu I/O. Khi thieát keá vi xöû lyù giao tieáp vôùi 8255A theo kieåu I/O thì döõ lieäu seõ ñöôïc truy xuaát baèng 2 leänh : IN addr-port vaø OUT addr-port. Döõ lieäu giao tieáp luoân chöùa trong thanh ghi A. Ñòa chæ coång (addr-port) coù ñoä daøi laø 8 bit. Cuõng gioáng nhö boä nhôù, vi xöû lyù coù theå giao tieáp vôùi nhieàu vi maïch 8255, vôùi 8 GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
  11. Tröôøng ÑH SPKT Luaän vaên toát nghieäp ñöôøng ñòa chæ thì coù taát caû 256 ñòa chæ, maø moãi vi maïch chieám 4 ñòa chæ (3 coång vaø thanh ghi ñieàu khieån) neân soá vi maïch 8255 toái ña coù theå giao tieáp cuûa vi xöû lyù laø 256/4 = 64 vi maïch. Khi keát noái giöõa vi xöû lyù vôùi vi maïch 8255A thì ñöôøng ñòa chæ A0 vaø A1 duøng ñeå löïa choïn caùc coång vaø thanh ghi ñieàu khieån, coøn caùc ñöôøng ñòa chæ coøn laïi töø A2 – A7 duøng ñeå löïa choïn vi maïch hoaït ñoäng, thoâng thöôøng caùc ñöôøng ñòa chæ naøy ñöôïc ñöa vaøo vi maïch giaûi maõ roài caùc ngoõ ra cuûa vi maïch giaûi maõ seõ ñöa ñeán CS\ cuûa caùc vi maïch 8255A. Moät ví duï khi thieát keá vi xöû lyù giao tieáp vôùi 4 vi maïch 8255A: Sô ñoà keát noái nhö hình veõ : (vi maïch 74139). A2 ñeán CS\ cuûa 8255A -1 A3 DECODER ñeán CS\ cuûa 8255A -2 2 TO 4 LINE ñeán CS\ cuûa 8255A -3 ñeán CS\ cuûa 8255A -4 Hình 6.9: Sô ñoà keát noái vi xöû lyù vôùi vi maïch 8255A Trong ñoù, ñöôøng A0 vaø A1 ñöôïc noái vôùi 8255A nhö ñaõ trình baøy ôû treân, ñöôøng A2, A3 ñöôïc ñöa vaøo vi maïch giaûi maõ 2 ñöôøng thaønh 4 ñöôøng ñeå löïa choïn vi maïch 8255A. Töø ñoù, ta coù baûng ñòa chæ cuûa caùc vi maïch 8255A nhö sau : IC A7 A6 A5 A4 A3 A2 A1 A0 Hex 8255A-1 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 1 03 8255A-2 0 0 0 0 0 1 0 0 04 0 0 0 0 0 1 1 1 07 8255A-3 0 0 0 0 1 0 0 0 08 0 0 0 0 1 0 1 1 0B 8255A-4 0 0 0 0 1 1 0 0 0C 0 0 0 0 1 1 1 1 0F 2. Giao tieáp kieåu boä nhôù. Khi thieát keá 8255A giao tieáp vôùi vi xöû lyù theo kieåu boä nhôù thì chöùc naêng cuûa 8255A khoâng thay ñoåi, chæ thay ñoåi kieåu truy xuaát. Vôùi kieåu I/O thì ñòa chæ cuûa caùc coång vaø thanh ghi ñieàu khieån laø 8 bit thì ôû kieåu boä nhôù, ñòa chæ cuûa caùc coång vaø thanh ghi ñieàu khieån laø 16 bit, khi ñoù caùch keát noái cuõng töông töï nhö keát noái vi xöû lyù vôùi boä nhôù thoâng thöôøng, vaø moãi vi maïch 8255A cuõng ñöôïc coi nhö laø boä nhôù vôùi 4 oâ nhôù: 3 coång vaø thanh ghi ñieàu khieån, truy xuaát döõ lieäu baèng caùch duøng caùc leänh truy xuaát döõ lieäu cuûa boä nhôù. GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
  12. Tröôøng ÑH SPKT Luaän vaên toát nghieäp Caùch keát noái töông töï nhö khi vi xöû lyù keát noái vôùi boä nhôù neân ôû ñaây khoâng caàn trình baøy laïi. GVHD: Nguyeãn Ñình Phuù SVTH: Nguyeãn Trung Duõng
nguon tai.lieu . vn