Luận văn Máy tính giao tiếp Teletype

Tài liệu Luận văn Máy tính giao tiếp Teletype: LUẬN VĂN TỐT NGHIỆP ĐỀ TÀI: MÁY TÍNH GIAO TIẾP TELETYPE BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN - ĐIỆN TỬ SVTH : PHẠM HÙNG PHONG TRƯƠNG VIỆT NAM LỚP : 95 KĐĐ GVHD : QUÁCH THANH HẢI THÀNH PHỐ HỒ CHÍ MINH 3 - 2000 Cộng Hòa Xã Hội Chủ Nghĩa Việt Nam Độc Lập - Tự Do - Hạnh Phúc BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT KHOA ĐIỆN BỘ MÔN ĐIỆN TỬ NHIỆM VỤ LUẬN VĂN TỐT NGHIỆP Sinh viên thực hiện : PHẠM HÙNG PHONG -TRƯƠNG VIỆT NAM Ngành : ĐIỆN - ĐIỆN TỬ Lớp : 95 KĐĐ TÊN ĐỀ TÀI : MÁY TÍNH GIAO TIẾP TELETYPE 1. CÁC SỐ LIỆU BAN ĐẦU: 2. NỘI DUNG THUYẾT MINH TÍNH TOÁN: 3. CÁC BẢN VẼ : 4. GIÁO VIÊN HƯỚNG DẪN : QUÁCH THANH HẢI 5. NGÀY GIAO NHIỆM VỤ : 13 -12 - 1999 6. NGÀY HOÀN THÀNH NHIỆM VỤ : 28 - 2 -2000 Thông qua bộ môn...

doc73 trang | Chia sẻ: haohao | Lượt xem: 976 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Luận văn Máy tính giao tiếp Teletype, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
LUAÄN VAÊN TOÁT NGHIEÄP ÑEÀ TAØI: MAÙY TÍNH GIAO TIEÁP TELETYPE BOÄ GIAÙO DUÏC VAØ ÑAØO TAÏO ÑAÏI HOÏC QUOÁC GIA TP HOÀ CHÍ MINH TRÖÔØNG ÑAÏI HOÏC SÖ PHAÏM KYÕ THUAÄT TP HOÀ CHÍ MINH KHOA ÑIEÄN - ÑIEÄN TÖÛ SVTH : PHAÏM HUØNG PHONG TRÖÔNG VIEÄT NAM LÔÙP : 95 KÑÑ GVHD : QUAÙCH THANH HAÛI THAØNH PHOÁ HOÀ CHÍ MINH 3 - 2000 Coäng Hoøa Xaõ Hoäi Chuû Nghóa Vieät Nam Ñoäc Laäp - Töï Do - Haïnh Phuùc BOÄ GIAÙO DUÏC VAØ ÑAØO TAÏO ÑAÏI HOÏC QUOÁC GIA THAØNH PHOÁ HOÀ CHÍ MINH TRÖÔØNG ÑAÏI HOÏC SÖ PHAÏM KYÕ THUAÄT KHOA ÑIEÄN BOÄ MOÂN ÑIEÄN TÖÛ NHIEÄM VUÏ LUAÄN VAÊN TOÁT NGHIEÄP Sinh vieân thöïc hieän : PHAÏM HUØNG PHONG -TRÖÔNG VIEÄT NAM Ngaønh : ÑIEÄN - ÑIEÄN TÖÛ Lôùp : 95 KÑÑ TEÂN ÑEÀ TAØI : MAÙY TÍNH GIAO TIEÁP TELETYPE 1. CAÙC SOÁ LIEÄU BAN ÑAÀU: 2. NOÄI DUNG THUYEÁT MINH TÍNH TOAÙN: 3. CAÙC BAÛN VEÕ : 4. GIAÙO VIEÂN HÖÔÙNG DAÃN : QUAÙCH THANH HAÛI 5. NGAØY GIAO NHIEÄM VUÏ : 13 -12 - 1999 6. NGAØY HOAØN THAØNH NHIEÄM VUÏ : 28 - 2 -2000 Thoâng qua boä moân Ngaøy.........thaùng........naêm....... Chuû nhieäm boä moân Giaùo vieân höôùng daãn NHAÄN XEÙT CUÛA GIAÙO VIEÂN HÖÔÙNG DAÃN NHAÄN XEÙT CUÛA GIAÙO VIEÂN PHAÛN BIEÄN LÔØI NOÙI ÑAÀU Thoâng tin lieân laïc laø moät vaán ñeà raát quan troïng trong giai ñoaïn hieän nay vaø cuõng ñang ñöôïc phaùt trieån moät caùch maïnh meõ. Hieän nay coù raát nhieàu hình thöùc thoâng tin lieân laïc nhö : voâ tuyeán, höõu tuyeán … Trong moãi hình thöùc laïi coù nhieàu daïng truyeàn nhö : truyeàn hình aûnh, truyeàn thoaïi, truyeàn maõ soá … Teletype laø moät trong nhöõng daïng truyeàn maõ soá ñöôïc phaùt trieån töø kieåu ñieän tín ngaøy xöa. Töø hai tín hieäu tích vaø te ñeå hieåu ñöôïc moät töø hay moät chöõ coù moät maõ rieâng bieät nhoùm caùc tín hieäu aáy laïi vôùi nhau. Sau ñoù vì löôïng thoâng tin ngaøy caøng nhieàu maø kieåu truyeàn tín hieäu coù toác ñoä quaù chaäm so vôùi nhu caàu ngöôøi ta môùi nghó ra vieäc truyeàn nhöõng choãi xung vôùi hai möùc: MARKING vaø SPACING trong moät khung töø goïi laø maõ BAUDOT. Nhöõng xung naøy ñöôïc truyeàn ñi vôùi taàn soá quy öôùc ñöôïc goïi laø toác ñoä BAURATE ñöôïc ñònh nghóa laø soá xung truyeàn ñi trong moät giaây. Ñaây chính laø phöông phaùp truyeàn cuûa Teletype. Maùy Teletype ñöôïc caûi tieán raát nhieàu töø loaïi Teletype ñaàu tieân baèng cô khí raát coàng keành, oàn aøo vaø khoù thao taùc ñeán nhöõng maùy Teletype goïn nheï, deã thao taùc. Vôùi söï buøng noå heä thoáng caùc maùy vi tính nhö hieän nay, chuùng em duøng maùy tính ñeå trao ñoåi döõ lieäu nhö maùy Teletype. Ñaây laø ñeà taøi ñeå chuùng em hoaøn thaønh luaän vaên toát nghieäp. Ñeà taøi neâu leân ñöôïc hình thöùc truyeàn soá lieäu giöõa hai maùy tính (giaû maùy Teletype), khoâng neâu baät heát öu dieåm cuûa maùy tính vì truyeàn theo daïng Teletype chæ truyeàn 5 bit kyù töï (trong khi ñoù maùy tính truyeàn ñöôïc toái ña tôùi 7 bit kyù töï). LÔØI CAÛM TAÏ Chuùng em xin chaân thaønh caûm ôn Ban Giaùm Hieäu vaø caùc thaày coâ Tröôøng Ñaïi Hoïc Sö Phaïm Kyõ Thuaät ñaõ chæ daãn chuùng em trong nhöõng thaùng naêm hoïc taäp taïi tröôøng. Trong quaù trình thöïc hieän taäp luaän vaên toát nghieäp chuùng em xin chaân thaønh caûm ôn thaày Quaùch Thanh Haûi, giaùo vieân höôùng daãn, caùc thaày coâ trong Khoa ñieän vaø caùc baïn trong vaø ngoaøi lôùp ñaõ ñoäng vieân giuùp ñôõ chuùng em hoaøn thaønh luaän vaên toát nghieäp. Tuy nhieân, do khaû naêng coøn haïn cheá vaø thôøi gian coù haïn, chaéc chaén trong taäp luaän vaên khoâng traùnh khoûi thieáu soùt, mong ñöôïc söï thoâng caûm vaø ñoùng goùp yù kieán cuûa quyù thaày coâ vaø caùc baïn ñeå taäp luaän vaên hoaøn chænh hôn. Chuùng em xin chaân thaønh caûm ôn. TP Hoà Chí Minh - Thaùng 2 naêm 2000 Nhoùm sinh vieân thöïc hieän Phaïm Huøng Phong Tröông Vieät Nam MUÏC LUÏC * PHAÀN GIÔÙI THIEÄU I.Töïa ñeà taøi II. Nhieäm vuï luaän vaên toát nghieäp III. Nhaän xeùt giaùo vieân höôùng daãn IV. Nhaän xeùt giaùo vieân phaûn bieän V. Lôøi caûm taï VI. Lôøi noùi ñaàu VII. Muïc luïc * PHAÀN NOÄI DUNG PHAÀN A : CÔ SÔÛ LYÙ THUYEÁT 1 CHÖÔNG DAÃN NHAÄP 1 I. Ñaët vaán ñeà 1 II. Muïc ñích nghieân cöùu 1 III. Caùch thöïc hieän 1 IV .Nhieäm vuï thöïc hieän 2 CHÖÔNG II : CAÙC KHAÙI NIEÄM LIEÂN QUAN ÑEÁN VIEÄC TRUYEÀN THOÂNG 3 I. Truyeàn thoâng tuaàn töï 3 II. Truyeàn thoâng ñoàng boä baát ñoàng boä 3 1. Truyeàn thoâng ñoàngboä 3 2. Truyeàn thoâng baát ñoàng boä 3 III. Caùc khaùi nieäm lieân quan ñeán vieäc truyeàn thoâng 4 1. Ñaàu caém vaø oå caém 4 2. Tín hieäu baét tay 4 3. DTE vaø DCE 5 4. Caùc thoâng soá cuûa trao ñoåi tin noái tieáp 5 5. Maïch trao ñoåi tin noái tieáp cuûa PC 5 6. Thuû tuïc trao ñoåi tin noái tieáp 7 IV. Chuaån giao tieáp RS_232C 8 1. Vaøi neùt cô baûn veà coång noái tieáp 8 2. Ñaëc ñieåm kyõ thuaät veà ñieän cuûa RS_232C 9 3. Caùc IC kích phaùt vaø thu cuûa RS_232C 10 CHÖÔNG III : NGUYEÂN LYÙ TRUYEÀN DÖÕ LIEÄU CUÛA TELETYPE 11 I. Giaûn ñoà xung 11 II. Khung kyù töï Teletype 11 III. Maõ kyù töï Teletype 12 IV. Tieâu chuaån giao tieáp maùy Teletype 13 1. Nguyeân lyù keát noái giöõa 2 maùy Teletype 13 2. Giao tieáp duøng doøng ñieän voøng 20mA 14 CHÖÔNG IV : KHOÁI GHEÙP NOÁI SONG SONG - NOÁI TIEÁP VAØ NOÁI TIEÁP - SONG SONG 15 I. Giôùi thieäu veà vieäc truyeàn thoâng tin noái tieáp cuûa PC 15 II. Nhieäm vuï cuûa khoái gheùp noái song song - noái tieáp vaø noái tieáp - song song 15 III. Sô ñoà khoái cuûa khoái gheùp noái 16 IV. Vi maïch trao ñoåi tin song song - noái tieáp KÑB 8251A 17 CHÖÔNG V : GIÔÙI THIEÄU VEÀ NGAÉT CUÛA PC 28 I. Caùc loaïi ngaét cuûa PC 28 1. Ngaét cöùng 28 2. Ngaét meàm 28 II. Thuû tuïc xöû lyù ngaét chöông trình 29 III. Giôùi thieäu veà caùch söû duïng IRQ4 30 IV. Söû duïng ngaét cuûa ROM-BIOS 31 PHAÀN B : THIEÁT KEÁ PHAÀN CÖÙNG 37 I. Sô ñoà khoái 37 II. Sô ñoà nguyeân lyù 38 III. Nguyeân lyù hoaït ñoäng cuûa maïch 39 IV. Tính toaùn caùc linh kieän cuûa maïch 39 PHAÀN C : XAÂY DÖÏNG PHAÀN MEÀM 41 I. Löu ñoà 41 II. Chöông trình PHAÀN D : HÖÔÙNG THI COÂNG I. Toång quaùt II. Toå chöùc maïch III. Caùc böôùc thi coâng IV. Baùo caùo keát quaû thi coâng * Keát luaän * Phuï luïc * Taøi lieäu tham khaûo PHAÀN A CÔ SÔÛ LYÙ THUYEÁT CHÖÔNG DAÃN NHAÄP I. Ñaët vaán ñeà: Thoâng tin lieân laïc luoân laø vaán ñeà ñöôïc quan taâm ñeán trong xaõ hoäi. Ngay töø thôøi xa xöa, con ngöôøi cuõng ñaõ bieát vaän duïng nhöõng gì coù saün nhö ngoïn löûa, aùm hieäu . . . ñeå truyeàn tin. Ngaøy nay, vieäc thu nhaäp thoâng tin ñaày ñuû vaø kòp thôøi laø ñieàu kieän tieân quyeát cho söï thaønh baïi cuûa taát caû caùc quyeát ñònh trong moïi lónh vöïc. Thoâng tin phaûi ñöôïc truyeàn nhanh choùng töø khaép moïi ñôn vò thu thaäp thoâng tin veà trung taâm, ñeå töø ñaây xöû lyù vaø phaûn hoài caùc chæ thò hoaït ñoäng cho caùc cô sôû. Maùy vi tính ngaøy caøng giöõ moät vai troø quan troïng trong caùc lónh vöïc khoa hoïc kyõ thuaät vaø cuoäc soáng haøng ngaøy. Caùc öùng duïng cuûa noù phuïc vuï cho con ngöôøi ngaøy ña daïng. Vieäc duøng maùy tính ñeå truyeàn soá lieäu laø heát söùc thuaän lôïi, vì ngoaøi vieäc thieát keá phaàn cöùng, ta coù theå thay ñoåi phaàn meàm moät caùch deã daøng vaø nhanh choùng. II. Muïc ñích nghieân cöùu: Quaù trình löïa choïn vaø thöïc hieän ñeà taøi naøy laø nhieäm vuï chuùng em hoaøn taát khoùa hoïc ñaïi hoïc. Ngoaøi ra, vieäc nghieân cöùu ñeà taøi naøy ñeå phaùt huy vieäc öùng duïng maùy tính trong lónh vöïc truyeàn thoâng, taïo ra nhöõng saûn phaåm, thieát bò coù tính tieán boä vaø hieäu quaû giuùp ích cho con ngöôøi. III. Caùch thöùc thöïc hieän: Ñeà taøi naøy ñöôïc thöïc hieän nhö sau: Tìm hieåu nguyeân lyù hoaït ñoäng, caùch thöùc truyeàn soá lieäu giöõa hai maùy Teletype. Vaän duïng kieán thöùc ñaõ ñöôïc hoïc veà caáu truùc maùy tính ñeå thieát keá maïch truyeàn soá lieäu giöõa hai maùy tính qua coång COM1. Tìm hieåu caùc thanh ghi trong UART deå vieát phaàn meàm thöïc hieän vieäc truyeàn soá lieäu. IV. Nhieäm vuï thöïc hieän: Nhieäm vuï chính thöïc hieän laø truyeàn soá lieäu theo phöông thöùc truyeàn baát ñoàng boä qua coång COM1 cuûa hai maùy tính. Ñoàng thôøi, naâng ñieän aùp cuûa ñöôøng truyeàn leân ± 60V ñeå thöïc hieän vieäc truyeàn ñi xa. Ñeà taøi chia thaønh chia thaønh 4 phaàn chính: Phaàn A : Ñeà caäp ñeán caùc cô sôû lyù thuyeát, caùc thuaät ngöõ ñöôïc söû duïng trong quaù trình truyeàn thoâng tuaàn töï. Phaàn B : Thieát keá maïch phaàn cöùng ñeå caùch ly giöõa hai maùy tính vaø naâng cao ñieän aùp ñöôøng truyeàn. Phaàn C : Vieát löu ñoà ñieàu khieån maùy tính truyeàn soá lieäu qua coång COM1. Phaàn D : Höôùng thi coâng. CHÖÔNG II : CAÙC KHAÙI NIEÄM LIEÂN QUAN ÑEÁN VIEÄC TRUYEÀN THOÂNG I. Truyeàn thoâng tuaàn töï: Haàu heát caùc maùy vi tính löu tröõ vaø thao taùc döõ lieäu cuûa chuùng theo caùch song song. Nghóa laø khi truyeàn 1 Byte thì caùc Bit ñi cuøng moät luùc treân caùc maïch daây song song. Soá caùc Bit gôûi ñi cuøng moät luùc thay ñoåi tuøy thuoäc vaøo moãi loaïi maùy tính khaùc nhau nhöng thöôøng laø 8 hoaëc boäi soá cuûa 8. Tuy nhieân ngoaøi vieäc trao ñoåi tin song song vôùi moät maùy tính khaùc (hoaëc moät thieát bò ngoaøi) coù daïng tin vaøo - ra song song, maùy tính coøn trao ñoåi tin noái tieáp vôùi maùy tính khaùc hoaëc thieát bò ngoaøi) coù daïng tin vaøo ra töøng bit moät. Boä giao tieáp töøng töï phaûi nhaän nhöõng Byte ôû daïng song vaø gôûi ñi caùc bit moät caùch rieâng bieät. Döõ lieäu treân ñöôøng truyeàn trong truyeàn thoâng töøng töï chæ ôû hai traïng thaùi laø Mark vaø Space töông öùng vôùi traïng thaùi ñieän theá aâm vaø ñieän theá döông. Baát kyø döõ lieäu truyeàn naøo, tröôùc tieân ñeàu phaûi chuyeån thaønh moät daõy thöù töï caùc Mark vaø Space (Mark töông öùng vôùi soá 1, Space töông öùng vôùi soá 0). II. Truyeàn thoâng ñoàng boä - baát ñoàng boä: 1. Truyeàn thoâng ñoàng boä: (Synchronous Communication) Quaù trình truyeàn vaø nhaän xaûy ra gaàn nhö ñoàng thôøi (coù söï treã do vaän toác truyeàn treân ñöôøng daây) theo töøng bit hay nhoùm bit do moät maùy phaùt xung nhòp taïo ra. Khi nhöõng kyù töï ñöôïc gôûi theo moât khoái ôû toác ñoä cuûa maùy, chuùng döôïc ñöa ra ngoaøi moät caùch ñeàu ñaën. Nhö vaäy seõ khoâng caàn thieát theâm vaøo cho moãi kyù töï truyeàn nhöõng Start bit vaø Stop bit. Bôûi vì moät khi kyø töï ñaàu tieân ñöôïc nhaän thì thieát bò nhaän coù theå tieân ñoaùn moät caùch chính xaùc khi naøo thì nhöõng kyù töï tieáp theo seõ ñeán. Noùi caùch khaùc, thieát bò nhaän coù theå töï ñoàng boä hoùa vôùi maùy truyeàn. Phöông thöùc truyeàn nhö treân goïi laø truyeàn thoâng ñoàng boä. Phöông phaùp naøy coù ñaëc ñieåm sau: - Nhanh : vì phaùt vaø nhaän haàu nhö töùc thôøi. - Khoâng tin caäy : deã maát tin. - Luoân ñoøi hoûi nguoàn phaùt vaø nguoàn nhaän phaûi saün saøng trao ñoåi tin . 2. Truyeàn thoâng baát ñoàng boä : (Asynchronous Communication) Vieäc phaùt vaø nhaän xaûy ra khoâng ñoàng thôøi, khoâng cuøng moät nhòp do hai maùy phaùt nhòp thôøi gian khaùc nhau ñieàu khieån, daïng tin phaùt vaø tin thu khoâng gioáng nhau. Khi döõ lieäu ñöôïc truyeàn bôûi ngöôøi söû duïng nhaäp töø baøn phím, caùc kyù töï nhaäp luoân luoân ñöôïc gôûi ñi vaø nhaän vaøo moät caùch baát ñoàng boä, bôûi vì ngöôøi söû duïng khoâng theå nhaán phím moät caùch lieân tuïc vaø ñeàu ñaën. Do ñoù, khi moät maùy tính nhaän nhöõng kyù töï, thì giöõa nhöõng kyù töï nhaän ñoù seõ coù nhöõng thôøi gian ngöng khaùc nhau. Ñieàu naøy seõ gaây cho maùy tính veäc khoâng theå bieát chính xaùc ñöôïc khi naøo thì moät kyù töï keá tieáp seõ ñöôïc goûi ñeán. Vì thieáu tính lieân tuïc nhö vaäy, cho neân caàn phaûi theâm vaøo nhöõng bít phuï tröôùc vaø sau kyù töï ñöôïc truyeàn. Nhöõng bit theâm vaøo naøy goïi laø Start bit, Stop bit. Phöông thöùc truyeàn nhö treân goïi laø truyeàn thoâng baát ñoàng boä. Quaù trình phaùt vaø nhaän ñöôïc dieãn ra nhö sau: - Nguoàn phaùt vaø nguoàn nhaän ñöa tín hieäu yeâu caàu trao ñoåi tin (hay saün saøng trao ñoåi tin). - Nguoàn nhaän hoaëc ngoàn phaùt ñöa tín hieäu xaùc nhaän (chaáp nhaän yeâu çaàu). - Nguoàn phaùt ñöa tin vaøo ñöôøng daây soá lieäu ñeå ghi vaøo thanh ghi soá lieäu ñeäm cuûa khoái gheùp noái. - Nguoàn nhaän nhaän soá lieäu töø khoái gheùp noái. Ñaëc ñieåm cuûa pheùp truyeàn naøy laø: - tin caäy (theo phöông thöùc hoûi ñaùp hay baét tay hoaëc hoäi thoaïi). - chaäm, toán thieát bò vì coù cô cheá hoûi ñaùp vaø boä ñeäm soá lieäu. III. Caùc khaùi nieäm lieân quan ñeán vieäc truyeàn thoâng: 1. Ñaàu caém vaø oå caém: (Plug And Socket) Coù moät vaøi kieåu khaùc nhau veà ñaàu caèm vaø oå caém cho nhöõng caùp keát noái vôùi thieát bò tuaàn töï. Boä keát noái D_ type 25 chaân vaø 9 chaân ñöôïc söû duïng roäng raõi nhaát, ñoâi khi ngöôøi ta coøn goïi laø DB_25 vaø DB_9. Nhöõng boä keát noái goàm coù nhöõng chaân (Pins) hoaëc nhöõng loå caém (Sockets). Boä keát noái vôùi nhöõng chaân caém (pins) laø nhöõng boä keát noái "ñöïc" (male). Boä keát noái vôùi nhöõng loå caém (Sockets) laø nhöõng boä keát noái "caùi" (Female). Treân moãi chaân caém hoaëc loã caém cuûa boä keát noái (Connector) ñeàu ñöôïc ñaùnh soá. 2. Tín hieäu baét tay: (Handshaking) Trong nhieàu tröôøng hôïp, thieát bò truyeàn caàn bieát raèng thieát bò nhaän coù saün saøng nhaän tin hay khoâng. Thí duï ta coù theå gôûi döõ lieäu töø maùy naøy sang maùy khaùc vaø maùy thöù hai khoâng theå xöû lyù döõ lieäu nhanh baèng vôùi toác ñoä nhaän döõ lieäu. Trong tröôøng hôïp naøy, thoâng tin phaûi ñöôïc gôûi ngöôïc töø thieát bò nhaän tôùi thieát bò truyeàn ñeå chæ ra raèng noù saün saøng hoaëc khoâng saün saøng nhaän. Thoâng tin naøy goïi laø doøng kieåm tra (Flow Control) hoaëc tín hieäu baét tay (Handshaking). Coù hai loaïi Handshaking laø Handshaking phaàn cöùng vaø handskaking phaàn meàm. Caû hai loaïi naøy ñeàu bao goàm nhöõng tín hieäu gôûi ngöôïc töø thieát bò nhaän ñeán thieát bò truyeàn. Vôùi Handshaking phaàn cöùng: thieát bò nhaän gôûi moät ñieän theá döông treân ñöôøng daây baét tay khi noù saün saøng nhaän döõ lieäu. Khi maùy truyeàn nhaän moät ñieän theá aâm, noù bieát raèng phaûi ngöøng vieäc gôûi döõ lieäu. Vôùi handshaking phaàn meàm, tín hieäu baét tay chöùa ñöïng nhöõng kyù töï ñaëc bieät ñöôïc truyeàn theo ñöôøng daây döõ lieäu thay vì treân ñöôøng daây baét tay. 3. DTE (Data Terminal Equipment) vaø DCE (Data Communication Equipment) DTE : laø thieát bò ñaàu cuoái ñöôïc hieåu töông töï nhö maùy tính. DCE : ñöôïc hieåu töông töï nhö Modem. Caùc chuaån ñeå phaân bieät DTE vaø DCE: - Thieát bò naøo söû duïng chaân soá 2 ñeå xuaát döõ lieäu thì döôïc hieåu nhö thieát bò DTE. - Thieát bò naøo söû duïng chaân soá 2 ñeå nhaän döõ lieäu thì ñöôïc hieåu nhö thieát bò DCE. Tuy nhieân hai caùch phaân bieät treân chæ laø töông ñoái. 4. Caùc thoâng soá cuûa trao ñoåi tin noái tieáp: - Khoaûng caùch trao ñoåi tin: khoaûng caùch giöõa nguoàn phaùt vaø nguoàn thu tin. Neáu ôû khoaûng caùch gaàn (döôùi 300m) söï thu vaø phaùt khoâng caàn modem Neáu ôû khoaûng caùch xa (lôùn hôn 300m) caàn Modem cho tin caäy. - Toác ñoä trao ñoåi thoâng tin: ñôn vò ñöôïc tính laø bit trong moät giaây (bit per second,bps) coøn goïi laø Baud. Thöôøng coù toác ñoä 600, 1200, 2400, 4800, 9600 paud (hay bps). Trao ñoåi tin khoâng ñoàng boä thöôøng coù toác ñoä chaäm (döôùi 4800 bps) coøn trao ñoåi tin ñoàng boä vaø lai coù theå ñaït tôùi treân 9600 bps. Hieän nay toác ñoä trao ñoåi tin soá ñaõ ñaït tôùi côõ Mbps (106 bps). - Chieàu trao ñoåi tin : trao ñoåi tin coù theå + Treân moät ñöôøng daây duy nhaát, coù theå coù hai chieàu ñi vaø veà giöõa hai nguoàn phaùt vaø thu tin. ÔÛ moät thôøi ñieåm chæ truyeàn theo moät chieàu (baùn song coâng) + Treân hai ñöôøng daây rieâng reõ TxD (phaùt hay truyeàn) vaø RxD (nhaän hay thu) vôùi caùc chieàu xaùc ñònh (ñôn coâng) vaø taïi moät thôøi ñieåm coù theå truyeàn ñoàng thôøi theo caû hai chieàu (song coâng). Tuøy maïch khueách ñaïi ñöôøng daây vaø soá ñöôøng daây noái (moät hoaëc hai ñöôøng) ta coù chieàu trao ñoåi tin khaùc nhau (ñôn coâng, baùn song coâng hay song coâng). 5. Maïch trao ñoåi tin noái tieáp cuûa maùy vi tính: Tuøy loái ra, caùch noái maïch vaø thieát bò ngoaøi ta coù caùc loaïi maïch trao ñoåi tin noái tieáp giöõa maùy vi tính vaø thieát bò ngoaøi khaùc nhau. a. Maïch khoâng caàn khoái gheùp noái: Ñoù laø söï trao ñoåi tin vôùi thieát bò ngoaøi noái tieáp vaø loái ra hay vaøo cuûa vi xöû lyù cuõng laø noái tieáp (hình 1). Coù hai loaïi loái vaøo ra cuûa vi xöû lyù laø: - Loái vaøo ra noái tieáp rieâng bieät (SID, SOD) nhö cuûa vi xöû lyù 8085. - Moät chaân loái vaøo ra song song cuûa vi xöû lyù ñöôïc duøng cho loái vaøo ra noái tieáp. Caû hai tröôøng hôïp treân ñeàu ñoøi hoûi nhieàu thôøi gian trao ñoåi tin cuûa vi xöû lyù. D Thanh ghi dòch Vi xöû lyù D1 CK ù Thieát bò ngoaøi song song , ra song song SOD,SID C Hình 1: b. Maïch caàn khoái gheùp noái song song noái tieáp (Hình 2): Ngöôøi ta duøng khoái gheùp noái song song noái tieáp ñeå bieán ñoåi tin song song cuûa vi xöû lyù (ñöa ra moät laàn) thaønh tín hieäu noái tieáp truyeàn cho thieát bò ngoaøi noái tieáp. Vi Xöû lyù KGN song song noái tieáp TBN (VXL) noái tieáp Hình 2 c. Maïch caàn khoái gheùp noái song song noái tieáp vaø noái tieáp song song (Hình 3): Ñaây laø tröôøng hôïp trao ñoåi tin giöõa vi xöû lyù vôùi thieát bò ngoaøi trao ñoåi tin song song. Tröôøng hôïp naøy xaûy ra khi maùy vi tính ñaët caùch xa thieát bò ngoaøi vaø khoâng theå thöïc hieän trao ñoåi tin song song ñöôïc vì toán nhieàu ñöôøng daây. Coù hai tröôøng hôïp: - Neáu khoaûng caùch giöõa maùy vi tính vaø thieát bò ngoaøi gaàn (döôùi 300m) khoâng caàn Modem. - Neáu khoaûng caùch giöõa maùy vi tính vaø thieát bò ngoaøi xa (treân 300m) caàn coù Modem ñeå ñieàu cheá tín hieäu soá thaønh aâm taàn (traùnh nhieãu) vaø tín hieäu aâm taàn ñieàu cheá thaønh tín hieäu soá. Vi Xöû lyù KGN song song noái tieáp TBN (VXL) song song KGN song song noái tieáp Hình 3 d. Maïch caàn khoái gheùp noái, Modem vaø khoái gheùp noái RS_232C (Hình 4): Ñaây laø tröôøng hôïp toång quaùt vaø thoâng duïng cuûa trao ñoåi tin giöõa maùy tính (song song) vôùi thieát bò ngoaøi (song song) ñaët ôû khoaûng caùch xa (caàn modem) vaø söû duïng chính ñöôøng daây ñieän thoaïi ñeå trao ñoåi tin (KGN RS_232C) bieán ñoåi möùc tín hieäu TTL thaønh möùc tín hieäu treân ñöôøng daây ñieän thoaïi (± 12 V). Vi Xöû Lyù KGN song song noái tieáp RS 232C Mo dem Mo dem KGN song song noái tieáp RS 232C TBN (VXL) song song Hình 4 6. Thuû tuïc tao ñoåi tin noái tieáp: Thuû tuïc trao ñoåi tin giöõa moät maùy vi tính vaø moät thieát bò nhaän tin song song (thieát bò ñaàu cuoái, maùy in song song, ñuïc baêng, ...) thoâng qua caùc khoái gheùp noái song song - noái tieáp vaø noái tieáp - song song vaø Modem (Hình 4) theo trình töï sau: a. Thuû tuïc phaùt tin TxD: - Thieát bò ñaàu cuoái (hay maùy vi tính) gôûi tín hieäu DTR (Data Terminal Ready - Söï saün saøng cuûa thieát bò ñaàu cuoái coù soá lieäu) möùc thaáp cho Modem baùo noù saün saøng. - Modem gôûi traû lôøi thieát bò ñaàu cuoái (TBÑC) baèng tín hieäu DSR (Data Set Ready) möùc thaáp. Thoâng thöôøng, modem ñöôïc ñoùng maïch nguoàn nuoâi bôûi DTR vaø baùo hieäu ñaõ ñoùng maïch bôûi DSR. - Neáu thieát bò ñaàu cuoái coù moät kyù töï (Character) saün saøng gôûi ñi, noù gôûi RTS (Request To Send - yeâu caàu gôûi) möùc thaáp cho Modem. - Modem gôûi tín hieäu CD (Carrier Detect - phaùt hieän soùng mang) cho TBÑC ñeå baùo raèng noù ñaõ lieân laïc ñöôïc vôùi maùy vi tính. - Khi Modem ñaõ hoaøn toaøn saün saøng phaùt soá lieäu leân ñöôøng daây, noù phaùt xung nhòp (Modem Clock) vaø tín hieäu CTR (Clear To Send) tôùi thieát bò ñaàu cuoái. - TBÑC gôûi caùc kyù töï soá lieäu (SUD) TxD cho Modem. - Khi thieát bò ñaàu cuoái gôûi xong soá lieäu, noù naâng möùc RTS leân cao baùo cho Modem laø ñaõ phaùt xong . - Modem traû lôøi thieát bò ñaàu cuoái baèng caùch keát thuùc tín hieäu CTS veà möùc cao, baùo ñaõ hoaøn thaønh vieäc truyeàn tin TxD. b. Thuû tuïc nhaän tin RxD: Khi moät thieát bò ñaàu cuoái nhaän tin noái tieáp töø ñöôøng daây, trình töï dieãn ra nhö sau: - TBÑC thu gôûi DTR möùc thaáp cho modem baùo saün saøng. - Modem thu giöõ traû lôøi bôûi DSR. - Modem thu nhaän tín hieäu CD töø ñöôøng daây vaø kích thích phaùt tín hieäu nhòp modem (Modem Clock) cho tín hieäu thu. - TBÑC phaùt tín hieäu RTS möùc thaáp cho modem bieát laø saün saøng thu. - Modem nhaän tín hieäu RTS vaø phaùt CTS möùc thaáp cho thieát bò ñaàu cuoái thu bieát modem saün saøng nhaän tin. - Modem nhaän tín hieäu TxD ñaõ ñieàu cheá ôû treân ñöôøng daây ñöa vaøo boä giaûi ñieàu cheá vaø truyeàn chuoãi tín hieäu RxD cho thieát bò ñaàu cuoái thu. - Khi thu xong, TBÑC thu naâng RTS leân cao baùo cho modem bieát vieäc thu moät lôøi tin ñaõ xong. - Modem thu naâng möùc CTS leân cao ñeå baùo ñaõ keát thuùc vieäc thu caùc tín hieäu RxD. IV. Chuaån giao tieáp RS_232C: 1. Vaøi neùt cô baûn veà coång noái tieáp: Coång noái tieáp RS_232C laø giao dieän phoå bieán roäng raõi nhaát. Ngöôøi duøng maùy tính PC coøn goïi caùc coång naøy laø COM1, COM2. Gioáng nhö coång maùy in, coång noái tieáp RS_232C cuõng ñöôïc söû duïng moät caùch raát thuaän tieän cho muïc ñích ño löôøng vaø ñieàu khieån . Chuaån RS_232C duøng vôùi toác ñoä truyeàn döõ lieäu laø 20 Kbps vôùi khoaûng caùch truyeàn lôùn nhaát gaàn 15 m. Ñaây laø moät daïng giao tieáp daïng TTL vaø boä kích ñöôøng daây khoâng caân baèng. Vieäc truyeàn döõ lieäu qua coång RS_232C ñöôïc tieán haønh theo caùch noái tieáp, nghóa laø caùc bit döõ lieäu ñöôïc gôûi ñi noái tieáp nhau treân moät ñöôøng daãn. Treân hình 5 laø söï boá trí chaân cuûa phích caém RS_232C ôû maùy tính PC. 14 13 1 25 Hình 5a : Boä noái 25 chaân (DB_25) 6 9 1 5 Hình 5b : Boä noái 9 chaân (DB_9) Trong ñoù : AA : Protective Ground (noái ñaát baûo veä) TxD : Transmitter Data (truyeàn döõ lieäu) RxD : Received Data (nhaän döõ lieäu) RTS :Request To Send (yeâu caàu gôûi) CTS : Clear To Send (xoùa vieäc gôûi) DSR : Data Set Ready (döõ lieäu saün saøng) SG : Signal Ground (noái ñaát) CD : Carrier Detect (doø soùng mang) ST : Select Stanty SCF : Secondary Recived Line Signal Det SCB : Secondary Clear To Send SBA : Secondary Transmitter Data DB : Transmitter Signal Element Timing SBB :Secondary Received Data DD : Received Signal Element Timing SCA : Secondary Request To Send DTR : Data Terminal Ready ( traïm ñaàu cuoái thieát bò saün saøng) CG : Signal Quality Detector RI : Ring Indicator ( boä chæ thò voøng) CH : Data Signal Rate Selector CI : Data Signal Rate Selector DA : Transmitter Signal Element Timing 2. Ñaëc ñieåm kyõ thuaät veà ñieän cuûa RS_232C: Möùc ñieän aùp logic cuûa RS_232C laø hai khoaûng ñieän aùp giöõa +15 V vaø -15 V. Caùc ñöôøng döõ lieäu söû duïng möùc logic aâm, logic 1 coù ñieän theá giöõa -5V vaø -15V, logic 0 coù ñieän theá giöõa +5V vaø +15V. Tuy nhieân caùc ñöôøng ñieàu khieån söû duïng möùc logic döông, giaù trò TRUE töø +5V ñeán +15V, giaù trò FALSE töø -5V ñeán -15V. ÔÛ chuaån giao tieáp naøy, giöõa ngoõ ra boä kích phaùt vaø ngoõ vaøo boä thu coù möùc nhieãu ñöôïc giôùi haïn laø 2V. Do vaäy ngöôõng lôùn nhaát cuûa ngoõ vaøo laø ±3V, traùi laïi möùc ±5V laø ngöôõng nhoû nhaát ñoái vôùi ngoõ ra. Ngoõ ra boä kích phaùt khi khoâng taûi coù ñieän aùp laø ±25V. Caùc ñaëc ñieåm veà ñieän khaùc bao goàm: - RL (ñieän trôû taûi) ñöôïc nhìn töø boä kích phaùt phaûi coù giaù trò giöõa 7KW vaø 3KW. - CL (ñieän dung taûi) ñöôïc nhìn töø boä kích phaùt khoâng ñöôïc vöôït quaù 2500 pF. - Ñeå ngaên caûn söï dao ñoäng quaù möùc, toác ñoä thay ñoåi cuûa ñieän aùp khoâng ñöôïc vöôït quaù 30 V/us. - Ñoái vôùi caùc ñöôøng ñieàu khieån, thôøi gian chuyeån cuûa tín hieäu khoâng ñöôïc vöôït quaù 1ms. Ñoái vôùi caùc ñöôøng döõ lieäu, thôøi gian chuyeån phaûi khoâng vöôït quaù 4% thôøi gian cuûa 1 bit hoaëc 1 ms. 3. Caùc IC kích phaùt vaø thu cuûa RS_232C: Nhôø tính phoå bieán cuûa giao tieáp RS_232C, ngöôøi ta ñaõ cheá taïo caùc IC kích phaùt vaø thu. Hai vi maïch nhö vaäy ñöôïc Motorola saûn xuaát laø IC kích phaùt MC1488 vaø IC thu 1489 coù daïng voû vuoâng. Hình 6 cho thaáy 1port RS_232C ñöôïc keát noái vôùi ACIA 6850 söû duïng MC1488 vaø MC1489. Moãi IC kích phaùt 1488 nhaän moät tín hieäu möùc TTL vaø chuyeån thaønh tín hieäu ôû ngoõ ra töông thích vôùi möùc ñieän aùp cuûa RS_232C, IC thu 1489 phaùt hieän caùc möùc vaøo cuûa RS_232C vaø chuyeån thaønh caùc ngoõ ra coù möùc TTL. CS0 CS1 CS2 RS D0 - D7 R/W IRQ SELACIA A0 DATA BUS R/W IRQ F2 +12V -12V 1488 +12V -12V 1488 Rx/Tx CLK TxCLK RxCLK TxD RxD CD RTS CTS +5V +5V Enable TTL LEVEL RS_232C LEVEL (±12V) RS_232C TxD RxD CD CTS RTS 1489 1489 1489 CHÖÔNG III : NGUYEÂN LYÙ TRUYEÀN DÖÕ LIEÄU CUÛA TELETYPE I. Giaûn ñoà xung cuûa Teletype: Teletype truyeàn döõ lieäu kieåu xung. Tröôùc ñaây ngöôøi ta truyeàn vôùi daïng xung MARK öùng vôùi ñieän aùp döông vaø xung SPACE öùng vôùi ñieän aùp aâm hoaëc 0V (vôùi caùc ñôøi maùy Teletype baèng cô khí). Tuy nhieân, sau naøy khi maùy Teletype ñieän töû ra ñôøi ngöôøi ta chuyeån sang truyeàn theo möùc logic, öùng vôùi möùc logic 1 (ñieân aùp aâm) laø xung MARKING, vaø möùc 0 (ñieän aùp döông) laø xung SPACING. Moâ taû nhö sau: Logic 0 +60V -60V 0V (SPACE) Logic1 (MARK) II. Khung kyù töï cuûa Teletype: Moät Frame cuûa Teletype ñöôïc quy öôùc nhö sau: - 1 bit Start (SPACE) - 5 bit kyù töï (SPACE hoaëc MARK) - 1,5 bit Stop (MARK) Moâ taû nhö sau: Logic 1 (MARK) Logic 0 -60V 0V +60V Start 5 bit kyù töï Stop (SPACE) III. Maõ kyù töï Teletype: Caùc bit kyù töï 4 3 2 1 0 LETTER FIGURE 0 0 0 0 0 BLANK BLANK (SP) 0 0 0 0 1 E 3 0 0 0 1 0 LF LF 0 0 0 1 1 A _ 0 0 1 0 0 SPACE SPACE 0 0 1 0 1 S BELL 0 0 1 1 0 I 8 0 0 1 1 1 U 7 0 1 0 0 0 CR CR 0 1 0 0 1 D $ 0 1 0 1 0 R 4 0 1 0 1 1 J ' 0 1 1 0 0 N ' 0 1 1 0 1 F ! 0 1 1 1 0 C : 0 1 1 1 1 K ( 1 0 0 0 0 T 5 1 0 0 0 1 Z " 1 0 0 1 0 L ) 1 0 0 1 1 W 2 1 0 1 0 0 H # 1 0 1 0 1 Y 6 1 0 1 1 0 P 0 1 0 1 1 1 Q 1 1 1 0 0 0 O 9 1 1 0 0 1 B ? 1 1 0 1 0 G & 1 1 0 1 1 FIGURE FIGURE 1 1 1 0 0 M . 1 1 1 0 1 X / 1 1 1 1 0 V ; 1 1 1 1 1 LETTER LETTER Hai kyù töï LETTER vaø FIGURE duøng ñeå chuyeån ñoåi boä chöõ cuûa Teletype töø maët chöõ sang maët soá (daáu). IV. Tieâu chaån giao tieáp maùy Teletype: 1. Nguyeân lyù keát noái giöõa hai maùy Teletype: Caùc ñöôøng tín hieäu cuûa maùy Teletype goàm coù nhö sau: - Moät ñöôøng vaøo laø ñöôøng thu Rx. - Moät ñöôøng ra laø ñöôøng phaùt Tx. - Moät ñöôøng mass. Khi môû maùy, ñöôøng phaùt seõ töø möùc logic 0 (+60V) seõ ñöôïc naâng leân möùc logic 1 (-60V). Toång ñaøi viba hoaëc maùy Teletype ñoái phöông khi nhaän ñöôïc tín hieäu naøy (ñöôøng thu cuûa maùy ñoái phöông ñöôïc Set leân möùc logic 1) thì seõ gôûi traû tín hieäu traû lôøi cuõng baèng caùch Set ñöôøng phaùt cuûa maùy hoï leân möùc logic 1. Ñöôøng thu cuûa maùy ta seõ nhaän ñöôïc möùc logic 1. Luùc naøy coi nhö hai maùy ñaõ ñöôïc baét tay vaø baét ñaàu truyeàn soá lieäu cho nhau. Tröôøng hôïp maùy ta khoâng nhaän ñöôïc tín hieäu traû lôøi töùc laø coù söï coá ñöôøng daây hoaëc vì maùy ñoái phöông khoâng môû maùy. Ñöôøng phaùt cuûa maùy ta seõ töï ñoäng traû veà möùc logic 0 (+60V) vaø thoâng baùo hôû maïch. Nhö vaäy ta coù theå phaân tích maïch keát noái vôùi maùy Teletype nhö hình 7 : - Khi khoâng baét tay: E2 ñöôïc noái vôùi nguoàn -60V ® Q2 khoâng daãn ® Q3 cuõng khoâng daãn. coøn Q1 ñöôïc daãn baõo hoøa. do ñoù, nguoàn +60 V qua R2 ® D3 (Led D3 saùng baùo hôû maïch) ® R1 ñeán ñöôøng daây thu cuûa maùy ñoái phöông ( Nhö vaäy ñöôøng daây thu cuûa maùy ñoái phöôngñang ôû möùc logic 0). - Töông töï ñöôøng daây phaùt cuûa maùy ñoái phöông cuõng ôû möùc logic 0, neân ñöôøng daây thu cuûa maùy ta cuõng ôû möùc logic 0, cöïc B cuûa Q4 ñöôïc ñaët vaøo moät ñieän aùp döông neân Q4 taét ® ñieän aùp ôû M2 laø -60V (D4 saùng). - Khi caàn goïi, ta cho E2 noái ñaát Q2 daãn ® Q3 daãn ® Q1 taét. Do ñoù töø Relay cuûa maùy ñoái phöông moät doøng ñieän töø mass qua D2 ® Q3 ® veà nguoàn -60V. Luùc naøy, ñoái phöông seõ traû lôøi baèng caùch gôûi ñeán ñöôøng daây thu cuûa ta möùc logic 1 (doøng-20mA). Do ñoù, Q4 daãn vaø M2 coi nhö noái ñaát (D2 saùng). Nhaän ñöôïc tín hieäu naøy töùc laø ñöôøng daây ñaõ ñöôïc keát noái vaø saün saøng truyeàn soá lieäu. +60V Ñeán Rx cuûa maùy Teletype - 60V Töø Tx cuûa maùy Teletype Ground M2 E2 R4 R2 DZ Q1 D2 R8 R5 R1 Q2 R3 D3 Q3 R9 R6 R10 R8 R7 Q4 R25 D5 D4 Hình 7 : 2. Giao tieáp duøng doøng ñieän voøng 20 mA: Giao tieáp duøng voøng ñieän voøng 20mA söû duïng moät doøng ñieän voøng 2 daây ñôn giaûn ñeå truyeàn döõ lieäu noái tieáp. Logic 1 bieåu thò baèng doøng ñieän voøng I = 20mA vaø logic 0 bieåu thò baèng doøng I = 4 mA. CHÖÔNG IV: KHOÁI GHEÙP NOÁI SONG SONG - NOÁI TIEÁP VAØ NOÁI TIEÁP - SONG SONG I. Giôùi thieäu veà vieäc truyeàn thoâng tin noái tieáp cuûa maùy vi tính: Nhö ñaõ giôùi thieäu ôû phaàn tröôùc, tín hieäu Teletype laø tín hieäu noái tieáp. Do ñoù, ñeå giao tieáp vôùi maùy vi tính thì phaûi qua heä thoáng phoái hôïp noái tieáp cuûa maùy vi tính. Bôûi vì trong maùy tính chæ söû duïng maõ ASCII ñeå nhaän bieát caùc kyù töï vaø CPU laøm vieäc treân caùc thanh ghi duøng 8 hoaëc 16 bit döõ lieäu ® CPU laøm vieäc vôùi caùc Chíp laø song song. Ñeå thu phaùt noái tieáp töø caùc thieát bò song song, chuùng ta phaûi bieán ñoåi tin song song thaønh noái tieáp vaø noái tieáp thaønh song song vaø cheá taïo moät khoái gheùp noái coù ñoàng thôøi 2 chöùc naêng treân ñeå trao ñoåi tin thu, phaùt giöõa moät thieát bò song song vôùi ñöôøng daây noái tieáp. Boä phoái gheùp noái tieáp trong maùy vi tính cho pheùp nhaän moät tín hieäu töø beân ngoaøi vaøo vaø bieán ñoåi thaønh song song ñeå ñöa vaøo CPU hoaëc ngöôïc laïi nhaän döõ lieäu song song töø CPU bieán ñoåi thaønh tín hieäu noái tieáp gôûi ra ngoaøi. Sau ñaây, chuùng em xin giôùi thieäu sô löôïc veà boä phoái gheùp noái tieáp - song song trong maùy vi tính IBM PC_AT (vì chæ caàn phaàn noái tieáp neân khoâng giôùi thieäu phaàn song song cuûa noù). Phaàn noái tieáp cuûa boä phoái gheùp noái tieáp trong maùy vi tính AT ñöôïc chöông trình hoùa moät caùch ñaày ñuû ñeå trôï giuùp cho vieäc lieân laïc thoâng tin dò boä. Boä phoái gheùp naøy seõ töï ñoäng theâm hoaëc laáy ra nhöõng bit Start, Stop vaø caùc bit chaün leû. Noù coù moät chöông trình ñaëc bieät taïo ra maõ BAUD_RATE cho pheùp vaän haønh töø 50 ® 9600 bps. Noù cho pheùp thieát laäp 1 Frame vôùi 5, 6, 7 hoaëc 8 bit kyù töï vôùi 1; 1,5 hoaëc 2 bit Stop. Noù coù moät heä thoáng ngaét öu tieân duøng ñeå ñieàu khieån phaùt, thu, baùo loãi, traïng thaùi ñöôøng daây. . . II. Nhieäm vuï cuûa khoái gheùp noái song song - noái tieáp vaø noái tieáp song song khoâng ñoàng boä: Khoái gheùp noái coù nhieäm vuï sau: (Hình 9) - Thu tin song song töø maùy vi tính, thieát bò ñaàu cuoái ñeå bieán thaønh tin noái tieáp ñeå truyeàn treân ñöôøng daây TxD. - Thu tin noái tieáp töø ñöôøng daây RxD ñeå bieán thaønh tin song song cho maùy vi tính, thieát bò ñaàu cuoái. - Cheøn vaø loaïi tröø caùc bit khung Start, Stop cuûa khung tin. - Ñieàu khieån Modem vôùi caùc tín hieäu hoäi thoaïi (phaùt cho modem DTR, RTS vaø nhaän DSR, CTS töø modem) - Ñieàu khieån caùc cheá ñoä ñoàng boä, khoâng ñoàng boä, soá bit tin, soá bit Stop. . Ñieàu khieån naïp/ dòch Thanh ghi dòch Thanh ghi dòch Ñieàu khieån dòch/ñoïc Phaùt hieän bit Sart (1) Stop (6) Start Naïp Nhòp truyeàn Soá lieäu vaøo song song Nhòp nhaän Soá lieäu ra song song Ñoïïc Hình 9 III. Sô ñoà khoái cuûa khoái gheùp noái: Sô ñoà khoái cuûa khoái gheùp noái song song - noái tieáp vaø noái tieáp - song song nhö hình 10, goàm: - Caùc thanh ghi dòch noái tieáp song song ñeå bieán ñoåi song song - noái tieáp vaø noái tieáp - song song. - Caùc thanh ghi ñeäm song song vaøo vaø ra. - Thanh ghi ñieàu khieån, ñònh cheá ñoä, soá löôïng bit tin, soá löôïng bit Stop. - Thanh ghi traïng thaùi ñeå ñoïc caùc traïng thaùi cuûa modem vaø cuûa khoái gheùp noái. - Boä ñieàu khieån modem. Logic ñieàu khieån Thanh ghi ñieàu khieån Thanh ghi traïng thaùi Ñeäm soá lieäu vaøo Ñieàu khieån Modem Giaûi maõ ñòa chæ Thanh ghi dòch noái tieáp - song song Thanh ghi dòch song song - noái tieáp Ñeäm soá lieäu ra D0 - D7 INTR WR RD CS A0 Modem RxD TxD TxC RxC Hình 10 : IV. Vi maïch trao ñoåi tin song song - noái tieáp khoâng ñoàng boä 8251A: 8251A laø moät USART coù khaû naêng thöïc hieän Protocol ñoàng boä hoaëc baát ñoàng boä. ÔÛ ñaây ta chæ söû duïng ñeå truyeàn baát ñoàng boä. Haõng Intel moâ taû 8251A nhö sau :8251A ñöôïc thieát keá ñeå truyeàn döõ lieäu vôùi hoï mP cuûa Intel. USART nhaän caùc kyù töï döõ lieäu töø mP ôû daïng song song, sau ñoù ñoåi chuùng thaønh daïng döõ lieäu noái tieáp ñeå phaùt ñi. Ñoàng thôøi 8251A coù theå thu doøng döõ lieäu noái tieáp vaø ñoåi chuùng thaønh caùc kyù töï döõ lieäu song song gôûi ñeán mP. USART seõ baùo cho mP khi naøo coù theå nhaän 1 kyù töï môùi töø mP ñeå phaùt hoaëc khi naøo ñaõ thu ñöôïc moät kyù töï ñeå cho mP ñoïc. 1. Sô ñoà chaân vaø sô ñoà khoái cuûa 8251A: Sô ñoà chaân vaø sô ñoà khoái cuûa USART 8251A nhö hình 11 a, b vaø caùc thanh ghi nhö hình 11c. 8251A ñöôïc cheá taïo baèng kyõ thuaät NMOS vaø coù 28 chaân, toác ñoä truyeàn döõ lieäu leân tôùi 64 Kpbs. Khaùc vôùi 6402, ôû 8251A taát caû döõ lieäu ñeán vaø töø mP ñeàu ñi qua Bus döõ lieäu (Data Bus) noái vôùi caùc chaân D7 - D0. 1 28 14 15 D2 D3 RxD GND D5 D4 D6 D7 TxC WR C/D CS RD RxRDY D1 D0 Vcc RxC RTS DTR DSR Reset CLK TxD CTS TxEMPTY Syndet/BR TxRDY 8251A Hình 11a Traïng thaùi Soá lieäu thu Soá lieäu phaùt vaø leänh Logic ñieàu khieån vaø logic ghi Bieán ñoåi song song noái tieáp Ñieàu khieån phaùt Ñieàu khieån modem Ñieàu khieån thu Bieán ñoåi noái tieáp song song D0 - D7 TxD TxRDY TxE TxC TxRDY Syndet/Brk RxC RxD Reset CLK C/D RD WR CS DTR DSR RTS CTS Hình 11b : Thanh ghi leänh Thanh ghi truyeàn Thanh ghi nhaän Thanh ghi ñeäm truyeàn Thanh ghi ñeäm nhaän Thanh ghi traïng thaùi Thanh ghi cheá ñoä CS RD WR C/D D0 D1 D2 D3 D4 D5 D6 D7 CLK RST RxRDY TxRDY TxEMPTY Vcc GND DSR DTR CTS RST Syn/brk TxC RxC TxD RxD Hình 11c : Trong ñoù: CS : Chip Select - choïn vi maïch RD : Read - ñoïc WR : Write - ghi C/D : Control/Data - ñieàu khieån/soá lieäu CLK : Clock - Nhòp D0 - D7 : Data bus I/O - Bus döõ lieäu vaøo/ra TxC : Transmit Clock - Nhòp truyeàn RxC : Receiver Clock - Nhòp nhaän RST : Reset - Xoùa DTR : Data Terminal Ready - Soá lieäu cuûa TBÑC saün saøng DSR : Data Set Ready - Boä soá lieäu saün saøng RTS : Request To Send - yeâu caàu gôûi CTS : Clear To Send - Xoùa gôûi TxD : Transmit Data - Soá lieäu truyeàn RxD : Receiver Data - Soá lieäu nhaän TxRDY : Transmit Ready - Saün saøng truyeàn RxRDY : Receiver Ready - Saün saøng nhaän TxEMTY : Transmit Register Emty - Thanh ghi truyeàn roãng Syn/BRK : Synch / Break Detect - Ñoàng boä / phaùt hieän ñöùc ñoaïn tin. a. Nhoùm tín hieäu gheùp noái vôùi vi xöû lyù goàm: - CS (chaân 11) noái vôùi boä giaûi maõ ñòa chæ (A1 - An) ñeå choïn hai thanh ghi (A0 ñieàu khieån traïng thaùi, A0 = 0 ñeäm soá lieäu). - C/D (chaân 12) noái vôùi ñöôøng daây ñòa chæ A0 ñeå choïn moät trong hai caëp thanh ghi treân. - WR (chaân 10) noái vôùi ñöôøng daây WR cuûa vi xöû lyù. - RD (chaân13) noái vôùi ñöôøng daây RD cuûa vi xöû lyù. - CLK (chaân 20) noái vôùi ñöôøng daây CLK cuûa vi xöû lyù. - Reset (chaân 21) noái vôùi ñöôøng daây Reset cuûa vi xöû lyù. - D0 - D7 (chaân 27, 28, 1, 2, 5, 6, 7, 8) noái vôùi caùc ñöôøng daây soá lieäu D0 - D7 cuûa vi xöû lyù. b. Nhoùm tín hieäu gheùp noái vôùi Modem: - DTR (chaân 24), RTS (chaân 23) - DSR (chaân22), CTS (chaân 17) c. Nhoùm tín hieäu gheùp noái vôùi ñöôøng daây truyeàn - nhaän vaø khoái gheùp noái: - TxEMPTY (chaân 18) thanh ghi ñeäm truyeàn roãng. - TxD (chaân 19) cho soá lieäu truyeàn. - RxD (chaân 3) cho soá lieäu nhaän. - TxRDY (chaân 15) baùo soá lieäu truyeàn saün saøng. - RxRDY (chaân 14) baùo soá lieäu nhaän saün saøng. - Syn/Break : chæ ñoàng boä/ ñöùt doøng tin. d. Nhoùm tín hieäu gheùp noái vôùi maùy phaùt xung nhòp: - TxC : nhòp truyeàn. - RxC : nhòp nhaän. 2. Khôûi ñoäng 8251A: Sau khi Chip 8251A ñöôïc Reset, moät Byte ñöôïc ghi vaøo thanh ghi choïn Mode ñeå choïn Protocol mong muoán. Coù theå Reset baèng caùch duøng chaân RST (Reset cöùng luùc baät nguoàn) hoaëc khi ghi bit D1 = 1 vaøo thanh ghi leänh (Reset meàm). Sau khi thieát laäp Mode hoaït ñoäng vieäc phaùt vaø thu ñöôïc ñieàu khieån baèng caùch ghi ñònh kyø töø ñieàu khieån leänh vaøo thanh ghi leänh bao goàm caùc böôùc sau: - Reset chip 8251A (baèng phaàn cöùng hoaëc phaàn meàm) - Ghi töø choïn Mode mong muoán vaøo thanh ghi Mode. - Ghi töø leänh mong muoán vaøo thanh ghi leänh. Phaùt moät kyù töï : Ñeå phaùt moät kyù töï, bit TxEN trong thanh ghi leänh phaûi ôû möùc logic 1 vaø chaân CTS phaûi ôû möùc 0: + Ñôïi cho ñeán khi chaân TxRDY ôû möùc cao hoaëc cho ñeán khi bit TxRDY trong thanh ghi traïng thaùi laø 1. + Ghi kyù töï caàn phaùt vaøo thanh ghi ñeäm phaùt. Thu moät kyù töï : Ñeå thu moät kyù töï vaø kieåm tra traïng traùi loãi cuûa kyù töï naøy, ta caàn thöïc hieän caùc böôùc sau : + Ñôïi cho ñeán khi chaân RxRDY ôû möùc cao hoaëc cho ñeán khi bit RxRDY trong thanh ghi traïng thaùi laø moät. + Ñoïc traïng thaùi loãi töø thanh ghi traïng thaùi (coù theå keát hôïp vôùi caùc böôùc tröôùc - khi ñoïc bit RxRDY). + Ñoïc kyù töï töø thanh ghi ñeäm thu. + Reset traïng thaùi loãi baèng caùch ghi bit ER = 1 trong thanh ghi leänh. Toác ñoä phaùt vaø thu ñöôïc quyeát ñònh bôûi taàn soá cuûa xung Clock ñöa vaøo chaân RxC/TxC chia theo heä soá (1, 16 hoaëc 64) ñaõ choïn trong töø choïn Mode. 3. Caùc thanh ghi cuûa chip 8251A : Cuõng nhö CPU, Chip UART chöùa ñöïng moät soá thanh ghi hoaëc boä nhôù trong, coù ba kieåu thanh ghi: - Nhöõng thanh ghi ñieàu khieån: Chuùng nhaän nhöõng leänh töø CPU vaø khoâng töï ñoäng thay ñoåi traïng thaùi. - Nhöõng thanh ghi traïng thaùi: Chuùng thoâng baùo ñeán CPU nhöõng gì xaûy ra trong UART. - Nhöõng thanh ghi ñeäm: Chuùng löu giöõ nhöõng kyù töï chuaån bò phaùt ñi hoaëc chôø xöû lyù. Caùch truy xuaát caùc thanh ghi phuï thuoäc vaøo caáu truùc cuûa maùy tính maø UART ñöôïc caøi ñaët. Trong tröôøng hôïp maùy IBM PC, nhöõng giaù trò ñöôïc ñaët vaøo beân trong caùc thanh ghi nghóa laø duøng leänh OUT töø chip CPU gôûi ñeán nhöõng ñòa chæ töông öùng cuûa caùc thanh ghi. töông töï, nhöõng thanh ghi ñöôïc truy xuaát theo caùch ñoïc nghóa laø duøng leänh IN vôùi caùc ñòa chæ töông öùng. a. Caùc thanh ghi ñieàu khieån: Coù 4 thanh ghi ñieàu khieån duøng ñeå nhaän leänh töø CPU: a1. Thanh ghi ñieàu khieån ñöôøng daây:) (Line Control Register) Thanh ghi naøy ñöôïc duøng ñeå SET caùc thoâng soá lieân laïc. Moãi bit cuûa thanh ghi naøy coù yù nghóa vaø ñöôïc moâ taû nhö sau: Bit YÙ nghóa 0 Hai bit naøy duøng ñeå xaùc ñònh chieàu daøi cuûa moät töø 1 2 Soá bit Stop 3 Cho pheùp kieåm tra chaún leû 4 Choïn kieåm tra chaún leû 5 Choïn bit chaún leû 6 Ngaét 7 Bit truy xuaát vaø choát soá lieäu Moâ taû : - Bit 0 vaø 1 : chæ chieàu daøi cuûa moät töø nhö sau : Bit 0 Bit 1 Soá kyù töï 0 0 5 0 1 6 1 0 7 1 1 8 - Bit 2 : Xaùc ñònh soá STOP bit. Neáu Bit 2 laø 0, moät Stop bit ñöôïc taïo ra. Neáu bit 2 laø 1, 2 Stop bit ñöôïc taïo ra tröø khi chieàu daøi kyù töï laø 5 (töùc laø bit 0 vaø bit 1 baèng 00), luùc naøy seõ taïo ra 1.5 Stop bit. - Bit 3, 4, 5 laø nhöõng bit löïa choïn söï kieåm tra chaün leû (trong ñoà aùn naøy khoâng söû duïng neân luoân ñöôïc Set baèng 0). - Bit 6 : laø bit taïo ra moät leänh ngaét, khi ñöôïc Set leân 1 noù seõ treo ngoõ ra OUT ôû möùc logic 0 (SPACING) cho tôùi khi ñöôïc SET trôû laïi baèng 0 (Bit naøy khoâng ñöôïc duøng neân luoân luoân ñöôïc Set baèng 0). - Bit 7 : laø bit duy nhaát vaø choát soá chia (DLAB : Division Latch Access Bit). noù phaûi ñöôïc SET leân 1 khi truy xuaát vieäc choát soá chia, töùc laø luùc caøi toác ñoä truyeàn theo BAUD_RATE. Khi SET trôû veà 0, noù seõ cho pheùp caùc thao taùc ñoïc hoaëc ghi töø vuøng ñeäm thu, vuøng ñeäm phaùt hoaëc thanh ghi cho pheùp ngaét. a2. Thanh ghi ñieàu khieån modem: (Modem Control Register) Thanh ghi naøy ñieàu khieån nhöõng tín hieäu baét tay gôùi ra ngoaøi töø UART. Moãi bit cuûa thanh ghi naøy ñöôïc moâ taû nhö sau : Bit Chöõ vieát taét Teân goïi 0 DTR Döõ lieäu traïm cuoái saün saøng 1 RTS Yeâu caàu gôûi 2 OUT1 Ngoõ ra 1 3 OUT2 Ngoõ ra 2 4 LOOP Kieåm tra cheá ñoä voøng laëp - Bit 0 : thöôøng duøng ñeå SET ngoõ ra DTR veà möùc logic 0, cho pheùp caùc thieát bò töø xa gôûi tín hieäu ñeán chuùng ta hoaëc khi noù ñöôïc SET trôû veà möùc logic 1 yeâu caàu thieát bò xa khoâng gôûi ñeán chuùng ta nöõa. Trong ñoà aùn naøy ta söû duïng Bit naøy ñeå gôûi ra maïch khi nhaän döôïc tín hieäu goïi keát noái töø ñoái phöông. Luùc ñoù, noù phaûi ñöôïc Set leân 1 ñeå xem nhö baét tay phaàn cöùng vôùi ñoái phöông. - Bit 1,2,3,4 : khoâng duøng neân luoân ñöôïc set baèng 0 - Bit 5,6,7 : luoân Set = 0 a3. Thanh ghi cho pheùp ngaét : (Interrupt Enable Register ) Taùm bit thanh ghi naøy cho pheùp 4 kieåu ñieàu khieån ngaét taùc ñoäng leân "chip ngaét" baèng ngoõ ra INTRPT. Khi RESET caùc bit töø 0 ñeán 3 cuûa thanh ghi naøy, ta coù theå boû kieåu ngaét heä thoáng cuûa noù. Khi SET caùc bit töø 0 ñeán 3, ta choïn kieåu ngaét cho pheùp. Bit Kieåu ngaét 0 Cho pheùp ngaét ñeå thu döõ lieäu 1 Cho pheùp ngaét baùo vuøng ñeäm phaùt roãng 2 Cho pheùp ngaét baùo traïng thaùi ñöôøng daây 3 Cho pheùp ngaét baùo traïng thaùi Modem 4 Baèng 0 5 Baèng 0 6 Baèng 0 7 Baèng 0 a4. Thanh ghi choát soá chia BAUD_RATE: BAUD_RATE ñöôïc caøi ñaët phuï thoäc vaøo 2 thanh ghi maø con soá cuûa chuùng phaûi ñöôïc chia bôûi xung nhòp 1.8432 MHz. Keát quaû cho ra taàn soá baèng 16 laàn BAUD_ RATE. Hai thanh ghi naøy mang 2 byte: 1 byte choát soá chia coù nghóa thaáp nhaát (LSB), vaø 1 byte choát soá chia coù nghóa cao nhaát (MSB). Nhöõng soá chia naøy duøng ñeå taïo ra nhöõng toác ñoä theo BAUD_RATE khaùc nhau. BAUD_RATE DECEMAL HEX MSB LSB 50 2304 900 9 00 100 1152 480 4 80 300 384 180 1 80 1200 96 60 0 60 2400 48 30 0 30 4800 24 18 0 18 9600 12 0C 0 0C Toác ñoä daõy BAUD_RATE trong baûng khoâng phaûi laø coá ñònh. Nhöõng giaù trò ôû khoaûng giöõa chuùng cuõng coù theå ñöôïc taïo ra baèng caùch choïn soá chia töông öùng. b. Caùc thanh ghi traïng thaùi: Coù 3 thanh ghi traïng thaùi töôøng trình ñeán CPU nhöõng gì ñang xaûy ra ôû nhöõng vuøng khaùc nhau cuûa UART. b1. Thanh ghi traïng thaùi ñöôøng daây: (Line Status Register) Taùm bit thanh ghi naøy töôøng trình ñeán CPU nhöõng thoâng tin traïng thaùi veà söï chuyeån bieán döõ lieäu. Bit Chuõ vieát taét Teân goïi 0 DR Data set ready 1 OE Overrun error 2 PE Parity error 3 FE Frame error 4 BI Break interrup 5 THRE Transmitter hold register empty 6 TSRE Tx shift register empty 7 = 0 - Bit 0 : Ñaây laø bit thoâng baùo döõ lieäu thu ñaõ saün saøng. Noù SET leân moät baát kyø khi naøo 1 kyù töï vöøa môùi ñöôïc nhaän vaø chuyeån vaøo beân trong thanh ghi vuøng ñeäm thu. Bit 0 coù theå Reset trôû veà 0 baèng vieäc ñoïc döõ lieäu thu töø thanh ghi ñeäm thu hoaëc ghi möùc 0 leân noù. - Bit 1 : Bit naøy thoâng baùo loãi traøn. Noù thoâng baùo laø döõ lieäu beân trong thanh ghi ñeäm thu chöa ñöôïc ñoïc tröôùc khi kyù töï keá tieáp ñöôïc ñeán, vì vaäy noù seõ phaù hoûng kyù töï tröôùc. - Bit 2 : laø bit baùo loãi cöïc tính, thoâng baùo ñaõ thu moät kyù töï khoâng ñuùng chaún (hoaëc leû) nhö ñaõ ñöôïc choïn trong Bit choïn löïa trong Bit choïn löïa chaún leû ôû thanh ghi ñieàu khieån ñöôøng daây. - Bit 3 : Laø bit baùo loãi Frame, noù thoâng baùo ñaõ thu moät kyù töï khoâng coù Stop bit. - Bit 4 : laø moät ngaét cuûa phaàn thu, noù ñöôïc Set leân 1 baát kyø khi naøo ngoõ vaøo thu döõ lieäu ôû möùc 0 laâu hôn thôøi gian chieàu daøi cuûa 1 töø. - Bit 5 : Bit naøy thoâng baùo thanh ghi ñeäm phaùt roãng. Noù baùo cho boä ñieàu khieån laø saün saøng nhaän moät kyù töï môùi ñeå phaùt ñi. Bit naøy Set leân möùc 1 khi 1 kyù töï nöõa môùi ñöôïc chuyeån töø thanh ghi löu giöõ phaàn phaùt. Noù ñöôïc Set trôû veà möùc 0 khi CPU naïp moät töø môùi vaøo thanh ghi löu giöõ phaàn phaùt. - Bit 6 : Bit naøy cuõng baùo phaàn ñeäm phaùt roãng. Noù ñöôïc Set leân 1 baát kyø khi naøo maø caû hai thanh ghi ñeäm phaùt vaø thanh ghi dòch chuyeån phaàn phaùt ñeàu roãng. Noù ñöôïc Reset trôû veà möùc 0 khi THR vaø TSR ñöôïc chöùa kyù töï döõ lieäu. - Bit 7 : khoâng duøng. b2 . Thanh ghi traïng thaùi Modem: (Modem Control Register) Thanh ghi naøy cho nhöõng thoâng tin veà traïng thaùi cuûa nhöõng ñöôøng baét tay. Moâ taû nhö sau: Bit Teân YÙ nghóa 0 Delta CTS CTS bò thay ñoåi traïng thaùi 1 Delta DSR DSR bò thay ñoåi traïng thaùi 2 TERI Ñöôøng daây ñoå chuoâng ñoåi töø ON leân OFF 3 Delta RLSD Tín hieäu taùch soùng bò thay ñoåi 4 CTS Ngoõ vaøo xoùa ñeå gôûi ôû möùc cao 5 DSR Ngoõ vaøo döõ lieäu saün saøng ôû möùc cao 6 RI Chæ thò chuoâng ôû möùc cao 7 RLSD Ñöôøng daây taùch soùng ôû möùc cao b3. Thanh ghi ñaëc tính ngaét: (Interrupt Identification Register) Thanh ghi naøy cung caáp thoâng tin veà traïng thaùi hieän haønh cuûa nhöõng ngaét ñöôïc phaùt ñi. Bit 0 Set leân 1 laø khoâng coù moät ngaét naøo gôûi ñi. Khi bit 0 ôû möùc 0, bit 1 vaø bit 2 chæ ra ngaét naøo ñaõ ñöôïc gôûi ñi theo baûng sau : Bit 2 1 0 Möùc öu tieân Kieåu ngaét Nguyeân nhaân ngaét Reset laïo ngaét 0 0 1 - 0 0 - 1 1 0 Cao nhaát Traïng thaùi ñöôøng daây thu - Loãi traøn - Loãi cöïc tính - Loãi khung - Break interrup Ñoïc thanh ghi traïng thaùi ñöôøng daây 1 0 0 Thöù hai Cho pheùp thu döõ lieäu Cho pheùp thu döõ lieäu Ñoïc thanh ghi ñeäm thu 0 1 0 Thöù ba Thanh ghi löu giöõ phaàn phaùt roãng Thanh ghi löu giöõ phaàn phaùt roãng Ñoïc IIR hoaëc ghi vaøo thanh ghi löu giöõ phaàn phaùt 0 0 0 Thöù tö Traïng thaùi Modem - CTS - DSR - RI Ñaõ nhaän tin Ñoïc thanh ghi traïng thaùi Modem c. Caùc thanh ghi ñeäm: Kieåu thanh ghi thöù 3 trong UART laø caùc thanh ghi ñeäm, coù hai thanh ghi ñeäm: Thanh ghi löu giöõ phaàn phaùt (Transmitter Holding Register) vaø thanh ghi ñeäm thu (Receiver Buffer Register). c1. Thanh ghi ñeäm thu: Thanh ghi naøy löu giöõ kyù töï sau cuøng vöøa môùi nhaän ñöôïc. Moãi laàn noù ñöôïc ñoïc, thanh ghi traïng thaùi ñöôøng daây seõ chæ thò vuøng ñeäm thu roãng cho tôùi khi nhaän ñöôïc moät kyù töï khaùc. Neáu kyù töï thöù hai nhaän ñöôïc tröôùc kyù töï thöù nhaát ñoïc xong, moãi loãi traøn seõ ñöôïc thoâng baùo. c2. Thanh ghi löu giöõ phaàn phaùt: Thanh ghi löu giöõ phaàn phaùt löu laïi kyù töï keá tieáp ñeå chuaån bò phaùt ñi. Kyù töï ñöôïc ñaët vaøo baèng chöông trình cuûa ngöôøi vieát. Thanh ghi traïng thaùi ñöôøng daây seõ thoâng baùo khi moät kyù töï vöøa ñöôïc phaùt ñi. Ñòa chæ cuûa caùc thanh ghi ñöôïc choïn nhö sau: Ñòa chæ Thanh ghi ñöôïc choïn XF8 Thanh ghi ñeäm phaùt XF8 Thanh ghi ñeäm thu XF8 Thanh ghi choát soá chia LSB XF9 Thanh ghichoát soá chia MSB XF9 Thanh ghi cho pheùp ngaét XFA Thanh ghi ñaëc tính ngaét XFB Thanh ghi ñieàu khieån ñöôøng daây XFC Thanh ghi ñieàu khieån modem XFD Thanh ghi traïng thaùi ñöôøng daây XFE Thanh ghi traïng thaùi modem Trong ñoù : Chöõ X duøng ñeå choïn coång COM1 hoaëc COM2. X = 3 duøng cho COM1, X = 2 duøng cho COM2. 4. Giao tieáp giöõa 8251A vôùi boä vi xöû lyù: Hình 12 trình baøy keát noái giao tieáp ñieån hình giöõa boä vi xöû lyù vôùi USART 8251A. CS C/D WR RD CLK RxRDY RTS D0 - D7 Data Bus Add Bus RST 6.5 RST CLK IN OUT Rx/Tx CLKS f = "d"*Baud TxC RxC TxD RxD SERIAL O/P SERIAL I/P CTS A7 A0 CPU 8251A Hình 12 Giao tieáp cuûa 8251A söû duïng ñaëc tính xuaát nhaäp boä tích luõy cuûa Intel 8085. Chaân RxRDY leân möùc cao High seõ gaây ra moät ngaét ñöa tôùi mP baùo cho CPU bieát ñaõ thu moät kyù töï. Chaân TxRDY khoâng ñöôïc duøng ñeå taïo ra ngaét CPU nhö treân. Trong tröôøng hôïp naøy mP phaûi hoûi voøng bit TxRDY cuûa thanh ghi traïng thaùi tröôùc khi moät kyù töï môùi ñeå phaùt. * Hoûi voøng (Polling) vaø söû duïng ngaét ñeå xuaát nhaäp: Caùc chöông trình xuaát nhaäp trong heä thoáng maùy tính thöôøng ñöôïc phaân loaïi nhö : hoûi voøng hoaëc ñieàu khieån ngaét. Hoûi voøng coù nghóa laø mP seõ ngöng caùc hoaït ñoäng khaùc moät caùch ñònh kyø vaø hoûi UART ñaõ nhaän döõ lieäu môùi chöa hoaëc saün saøng phaùt kyù töï keá tieáp chöa. Coâng vieäc naøy thöôøng ñoøi hoûi mP phaûi ñoïc thanh ghi traïng thaùi cuûa UART. Moät chöông trình ñieàu khieån ngaét bao haøm yù nghóa mP vaãn tieáp tuïc caùc hoaït ñoäng khaùc vaø chæ ngöng khi traû lôøi moät tín hieäu ngaét ñöôïc gôûi tôùi tö ø UART. Hoûi voøng ñeå quyeát ñònh traïng thaùi cuûa UART haïn cheá söï caàn thieát phaûi coù ngaét phaàn cöùng nhöng hieäu quaû söû duïng thôøi gian laøm vieäc cuûa mP seõ thaáp hôn. Cuõng vaäy, khi söû duïng hoûi voøng ñeå quyeát ñònh traïng thaùi thu phaûi heát söùc caån thaän ñeå ñaûm baûo raèng loãi traøn khoâng xaûy ra. Söï quyeát ñònh duøng caùc ngaét hoaëc hoûi voøng ñeå xuaát nhaäp ñeàu phaûi ñöôïc caân nhaéc chi töøng öùng duïng cuï theå, ñieàu naøy döïa vaøo caùc yeáu toá nhö ñoä phöùc taïp cuûa phaàn cöùng, phaàn meàm vaø caùc öu tieân cuûa nhieäm vuï heä thoáng. Toùm laïi: * Ñoái vôùi Teletype vì yeâu caàu truyeàn khoâng cao laém, hôn nöõa maùy Teletype khoâng theå naøo phaùt ñi hoaëc thu nhaän caùc Parity bit hoaëc kieåm tra caùc bit naøy ñöôïc, neân ta khoâng Set caùc bit parity. * Nhö ñaõ neâu ôû phaàn tröôùc, vì Teletype coù moät söï baét tay phaàn cöùng. Ñeå laøm coâng vieäc naøy ta choïn: - DSR (Data Set Ready): duøng ñeã nhaän bieát tín hieäu keát noái gôûi ñeán töø maùy Teletype töùc laø khi ñieän aùp ñöôøng thu cuûa maïch töø +60V (logic 0) chuyeån thaønh -60V (logic 1) thì DSR seõ chæ thò. - DTR (Data Terminal Ready): sau khi nhaän ñöôïc tín hieäu keát noái, duøng DTR ñeå xuaát ra ñöôøng phaùt cuûa maïch töø logic 0 ® logic 1 ñeå gôûi ñeán ñoái phöông hoaøn thaønh coâng vieäc baét tay phaàn cöùng. CHÖÔNG V : GIÔÙI THIEÄU VEÀ NGAÉT CUÛA MAÙY VI TÍNH I. Caùc loaïi ngaét cuûa moät maùy vi tính PC: Ngöôøi ta chia ngaét thaønh hai loaïi : Ngaét cöùng vaø ngaét meàm. 1. Ngaét cöùng : Coøn goïi laø ngaét ngoaøi vì do nguyeân nhaân beân ngoaøi. Vi xöû lyù coù caùc loái vaøo daønh cho ngaét ngoaøi. Khi coù tín hieäu vaøo caùc loái naøy, vi xöû lyù ñang thöïc hieän leänh cuûa chöông trình seõ bò döøng. * Ngaét NMI (Non Maskable Interrupt - Ngaét khoâng che ñöôïc) Khi coù ngaét naøy, vi xöû lyù döøng chöông trình sau leänh ñang thöïc hieän, thanh ghi chæ thò leänh vaø thanh ghi chæ thò Flag ñöôïc löu giöõ, hai bit IF (Interrup Flag) vaø TF (Trap Flag) bò xoùa veà 0 ñeå caám ngaét ngoaøi tieáp theo vaø khoâng coù baãy. Muoán cho pheùp hay khoâng cho pheùp ngaét naøy xaûy ra, chuùng ta duøng moät Trigô ñeå maéc loái vaøo ngaét tröôùc khi ñöa vaøo ngaét tröôùc khi ñöa vaøo loái vaøo ngaét NMI. * Ngaét INMR: - Ngaét naøy ñöôïc cho pheùp (ghi IF = 1) hay caám ngaét (IF = 0) vaøo thanh ghi Flag. - Ñöôïc xoùa veà 0 bôûi leänh CLI (Clear Interrup). - Ñöôïc xaùc laäp leân 1 bôûi leänh STI. - Thöôøng ñöôïc noái vôùi loái ra yeâu caàu ngaét cuûa vi maïch xöû lyù öu tieân ngaét (8214, 8159). * Ngaét Reset: Ñaây thöïc söï khoâng phaûi laø ngaét, chæ töông öùng vôùi vieäc treo chöông trình taïm thôøi. Kh i coù tín hieäu töø ngoaøi vaøo loái vaøo Reset hay coù leänh Reset cuûa chöông trình, taát caû caùc thanh ghi cuûa vi xöû lyù bò xoùa veà khoâng, tröø thanh ghi ñoaïn (CS) ñöôïc naïp ñòa chæ ñaàu tieân cuûa chöông trình töï kieåm tra Port. 2. Ngaét meàm: (Hay ngaét beân trong do leänh cuûa chöông trình) Do vi xöû lyù gaëp caùc leänh gaây ra ngaét hoaëc tình huoáng ñaëc bieät khi thöïc hieän leänh (ngaét logic vaø ngaét cuûa heä ñieàu haønh). - Ngaét do leänh : Ñoù laø ngaét khi thöïc hieän caùc leänh CALL, HLT, INT. - Ngaét logic hay caùc ngoaïi tröø : xaûy ra khi gaëp caùc tình huoáng ñaëc bieät sau : + Chia moät soá cho 0 (vectô 0). + Vöôït quaù noäi dung thanh ghi hay boä nhôù (vectô 4). + Thöïc hieän töøng böôùc (vectô 1). + Ñieåm döøng chöông trình do ngöôøi söû duïng ñònh huoáng (vectô 3). - Ngaét cuûa heä ñieàu haønh: Ñoù laø caùc ngaét do heä ñieàu haønh quy ñònh ñeå phuïc vuï trao ñoåi tin cuûa caùc thieát bò ngoaøi nhö INT 10, INT 16, INT 21 . . . II. Thuû tuïc xöû lyù ngaét cuûa chöông trình: Khi coù moät tín hieäu yeâu caàu ngaét chöông trình ñöa vaøo chaân yeâu caàu ngaét (INTR), quaù trình ngaét chöông trình ñöôïc dieãn ra nhö sau: - Löu giöõ tin veà traïng thaùi cuûa vi xöû lyù luùc coù tín hieäu yeâu caàu ngaét vaø nôi chöông trình chính bò giaùn ñoaïn. - Vi xöû lyù gôûi tín hieäu xaùc nhaän hay cho pheùp ngaét - INTA vaø ñoïc vectô ngaét. - Chuyeån sang chöông trình con phuïc vuï ngaét. - Trôû veà choå chöông trình chính bò ngaét vaø tieáp tuïc thöïc hieän chöông trình ñoù. 1. Löu giöõ tin veà choå bò ngaét chöông trình: ÔÛ cuoái moãi chöông trình leänh, VXL kieåm tra xem coù yeâu caàu ngaét naøo gôûi ñeán hay khoâng. Neáu coù yeâu caàu, VXL tieán haønh löu tröõ tin veà nôi bò ngaét chöông trình. quaù trình löu giöõ tin tieán haønh theo caùc böôùc sau: - Giaûm con troû ngaên xeáp. - Caám loái vaøo ngaét INTR baèng caùch xoùa bit IF ôû thanh ghi côø. - Xoùa bit côø baãy trong thanh ghi côø. - Giaûm SP ñi 2 vaø naïp noäi dung cuûa thanh ghi maïng leänh hieän haønh vaøo maûng nhôù ngaên xeáp coù ñòa chæ treân. - Giaûm SP ñi 2 vaø naïp noäi dung thanh ghi con troû leänh hieän haønh vaøo boä nhôù ngaên xeáp coù ñòa chæ treân. 2. Gôûi tín hieäu cho pheùp ngaét vaø ñoïc vec tô ngaét: Sau khi ñaõ löu tröõ tin veà vò trí bò ngaét cuûa chöông trình chính, VXL gôûi tín hieäu xaùc nhaän ngaét INTA (Interrup Acknowlege) cho khoái gheùp noái cuûa thieát bò ngoaøi. Tuøy caùch toå chöùc ngaét vaø taïo vectô ngaét, VXL söû duïng tín hieäu naøy ñeå ñoïc vectô ngaét töông öùng cuûa khoái gheùp noái vaøo thanh ghi chöùa A. VXL ñoïc noäi dung cuûa oâ nhôù coù ñòa chæ laø vectô ngaét ñeå bieát ñöôïc ñòa chæ ñaàu tieân cuûa chöông trình con phuïc vuï ngaét. 3. Thöïc hieän chöông trình con phuïc vuï ngaét: Ñoù laø chöông trình maø ñòa chæ cuûa leänh ñaàu tieân naèm trong oâ nhôù coù ñòa chæ laø vectô ngaét. Keát thuùc chöông trình con naøy, coù leänh trôû veà ñeå VXL tieáp tuïc thöïc hieän chöông trình chính. 4. Thöïc hieän chöông trình chính: Sau khi gaëp leänh trôû veà, VXL tieán haønh ñoïc vaø hoài phuïc caùc tin cuûa VXL luùc bò ngaét chöông trình ñaõ ghi nhôù ôû choå ngaét chöông trình. Quaù trình ñoïc ra naøy xaûy ra ngöôïc laïi vôùi quaù trình ghi vaøo vaø noäi dung: - Thanh ghi con troû leänh trôû veà ñoä dôøi cuûa ñòa chæ leänh tieáp theo cuûa chöông trình chính bò ngaét trong maûng nhôù leänh. - Thanh ghi maûng leänh veà ñòa chæ ñoaïn ñaàu tieân cuûa vuøng nhôù daønh cho chöông trình chính bò ngaét. - Thanh ghi Flag luùc bò ngaét chöông trình. III. Giôùi thieäu veà caùch söû duïng IRQ4: IRQ4 laø moät trong nhöõng ñöôøng ngaét cöùng cuûa maùy tính. Trong maùy IBM_PC coù 8 ñöôøng ngaét cöùng vaø maùy tíng IBM PC_AT coù 16 ñöôøng ngaét cöùng, ñöôïc moä taû nhö sau: IRQ Thieát bò NMI Ngaét khoâng che 0 Ngaét thôøi gian 1 Ngaét baøn phím 2 Döï tröõ 3 COM2 4 COM1 5 Ñóa cöùng 6 Ñóa meàm 7 LPT1 Nhöõng ñöôøng ngaét naøy khoâng noái ñöôïc tröïc tieáp tôùi chip CPU, nhöng ñöôïc thoâng qua chip xöû lyù ngaét laø PIC_8259A (Programmable Interrupt Controller). Trong maùy IBM PC_AT coù hai boä ñieàu khieån naøy. Noù coù nhöõng möùc öu tieân cho caùc nhaát ñeå traùnh trình traïng loän xoän xaûy ra khi nhieàu ngaét ñeán khoâng theo moät traät töï naøo caû. Caùc möùc öu tieân naøy trong maùy IBM PC ñöôïc chæ ñònh ôû cao nhaát laø IRQ0 vaø thaáp nhaát laø IRQ7. Neáu nhieàu thieát bò ñeàu yeâu caàu söï chuù yù baèng caùch naâng caùc ñöôøng ngaét cuûa noù leân, boä ñieàu khieån ngaét seõ coù nhieàu ngoõ vaøo ôû möùc cao thì noù seõ gôûi chuùng ñeán CPU vôùi traät töï cuûa möùc ñoä öu tieân. Trong PIC coù moät thanh ghi cho pheùp ngaét töø thieát bò gôûi ñeán. Maëc nhieân, IRQ4 vaø IRQ3 laø khoâng cho pheùp. Vì vaäy, neáu muoán duøng ngaét cho vieäc lieân laïc thoâng tin thì phaûi chæ thò cho PIC cho pheùp caùc ñöôøng ngaét töông öùng. Ñaây laø coâng vieäc ñoïc thanh ghi baèng leänh IN vôùi ñòa chæ coång laø 21H vaø Set Off bit töông öùng (bit 4 cho IRQ3 vaø bit 5 cho IRQ4) vaø OUT trôû laïi giaù trò ra Port 21H. Nhö vaäy thì PIC môùi coäng theâm caùc ngaét cuûa UART vaø cho noù gôûi ngaét tôùi. Khi PIC nhaän ñöôïc moät ngaét, neáu ngaét ñoù laø cho pheùp vaø khoâng coù moät ngaét naøo khaùc gôûi ñeán nöõa, noù seõ ñöa möùc ñieän aùp döông leân ñöôøng ngaét ñoù ñeán CPU. Khi ñoù CPU seõ coâng nhaän ngaét, nghóa laø traû moät tín hieäu veà PIC yeâu caàu PIC chæ thò xem ngaét naøo vöøa môùi xaûy ra. Luùc ñoù PIC seõ gôûi moät con soá (thoâng qua Data Bus) ñeán CPU (laø con soá IRQ + con soá 8). Noùi caùch khaùc, ñoái vôùi IRQ4 noù gôûi con soá 12 (OCh), ñoái vôùi IRQ3 noù gôûi con soá 11 (08h), luùc naøy CPU seõ thöïc hieän caùc phaàn muïc töông öùng laø caát ñòa chæ chöông trình hieän haønh vaøo vuøng Stack vaø thöïc hieän leänh Call Far ñeán boä nhôù ñöôïc troû bôûi vectô ngaét cuûa ngaét trong baûng vectô ngaét. Vì vaäy, vôùi ngaét IRQ4 gôûi tôùi vieäc CPU thöïc hieän cuõng gioáng nhö INT 0Ch cuûa phaàn meàm. Neáu baïn khoâng muoán CPU bò phaân chia khi coù nhieàu ngaét, bôûi vì noù can thieäp vaøo moät soá coâng vieäc xaáu laøm khoâng theå ngaét ñöôïc, ta coù theå chæ thò ñeán noù khoâng quan taâm ñeán caùi ngaét ñoù baèng leänh STI. Keát quaû cuûa leänh naøy laø chuyeåi ñoåi traïng thaùi côø IF trong CPU. Vieäc Set côø IF khoâng laøm thay ñoåi baát cöù caùi gì trong PIC maø noù vaãn gôûi moät tín hieäu ngaét ñöôøng daây ñeán CPU khi noù nhaän ñöôïc moät ngaét trong nhöõng ngaét ñöôøng daây. Ngaét ñöôøng daây seõ treo leân möùc cao vaø CPU coù theå nhaän ra ñöôïc nguyeân nhaân cuûa ngaét vaø thöïc hieän leänh STI moät laàn nöõa. Nhöõng ngaét khaùc gôûi ñeán khoâng nhaát thieát seõ maát ñi. Nhöõng thieát bò giöõ ñöôøng IRQ cuûa chuùng ôû möùc cao vaø PIC hieåu nhöõng thieát bò ñoù ñang caàn söï chuù yù. Noù seõ chaáp nhaän gôûi caùc ngaét trong thöù töï öu tieân cuûa chuùng. Caùc ngaét coù theå bò treo, nhö vaäy keát quaû laø maát thoâng tin töø khi thieát bò khoâng taïo ra ñöôïc ngaét thöù hai cho tôùi khi kyù töï thöù nhaát vöøa ñöôïc coâng nhaän. Coù hai lyù do taïi sao ngaét töø thieát bò khoâng ñöôïc CPU chuù yù ngay laäp töùc. Thöù nhaát laø noù bò xung ñoät vôùi caùc thieát bò khaùc coù möùc öu tieân cao hôn hoaëc coù nhöõng ngaét ñang bò treo. Tuy vaäy duøng phöông phaùp ngaét thöôøng nhanh hôn so vôùi phöông phaùp hoûi voøng. Trong chöông trình xöû lyù ngaét phaàn meàm phaûi traû lôøi ngaét ñeán PIC baèng caùch gôûi giaù trò 20h ra port 20h. Neáu vieäc naøy khoâng ñöôïc thöïc hieän PIC seõ khoâng gôûi theâm moät ngaét naøo nöõa ñeán CPU. IV. Söû duïng ngaét cuûa ROM_BIOS: ROM_BIOS cung caáp 4 haøm xöû lyù truyeàn thoâng tuaàn töï maø chuùng ta coù theå truy xuaát chuùng qua ngaét 14h. Ñeå söû duïng ngaét naøy, ta ñaëc giaù trò töø 0 - 3 trong thanh ghi AH ñeå xaùc ñònh haøm naøo seõ ñöôïc söû duïng vaø ñaët soá thöù töï coång caàn truy xuaát vaøo thanh ghi DX. Soá thöù töï coång = 0 : COM1 Soá thöù töï coång = 1 : COM2 ÔÛ möùc ñoä chöông trình, ta coù theå choïn moät khoái gheùp noái noái tieáp baèng caùch gaùn maõ töông öùng vaøo thanh ghi DX vôùi giaù trò: - 00h cho COM1 - 01h cho COM2 - 02h cho COM3 - 03h cho COM4 Caùc haøm cuûa ngaét 14h nhö sau: 1. Haøm soá 0 (Phuïc vuï 00h) Khôûi phaùt khoái gheùp noái noái tieáp, taïo tham soá cho coång noái tieáp: * Vaøo : AH = 0 AL = Tham soá truyeàn DX = Soá thöù töï coång noái tieáp * Ra : AX = Traïng thaùi ñöôøng daây truyeàn vaø Modem. Phuïc vuï 00h aán ñònh nhöõng thoâng soá khaùc nhau cuûa khoái gheùp noái noái tieáp cuõng nhö RS_232. Ñoù laø caùc thoâng soá: - Soá BAUD : Töùc toác ñoä trao ñoåi tin. - Tính chaün leû. - Soá bit döøng. - Kích thöôùc kyù töï hay soá bit tin noái tieáp. nhöõng thoâng soá naøy ñöôïc toå hôïp trong maõ 8 bit, ñöôïc ñaët vaøo thanh ghi AL, theo thöù töï caùc bit nhö hình sau : D6 D7 D4 D3 D5 D1 D0 D2 Baud Rate Parity Stop bit Word Length Giaù trò traû ra trong AX xem haøm soá 3: - D7, D6, D5 maõ cuûa vaän toác (tính baèng Baud). - D4, D3 maõ cuûa tính chaün leû. - D2 maõ cuûa bit döøng. - D1, D0 maõ cuûa caùc kích thöôùc kyù töï. Caùc maõ treân theo caùc baûng sau: D7 D6 D5 Vaän toác (bps) 0 0 0 110 0 0 1 150 0 1 0 300 0 1 1 600 1 0 0 1200 1 0 1 2400 1 1 0 4800 D4 D3 Tính chaún leû 0 0 Khoâng coù 0 1 Tính chaún leû 1 0 Khoâng coù 1 1 Tính chaún D2 Soá bit döøng 0 Moät bit döøng 1 Hai bit döøng D1 D2 Kích thöôùc kyù töï 0 0 Khoâng duøng 0 1 Khoâng duøng 1 0 7 bit 1 1 8 bit 2. Haøm soá 1 (Phuïc vuï 01h) Haøm naøy gôûi moät kyù töï ñeán coång ñöôïc chæ ñònh. * Vaøo : AH = 01h AL = Kyù töï gôûi DX = Soá thöù töï coång noái tieáp * Ra : AH = Traïng thaùi ñöôøng truyeàn AL = Traïng thaùi Modem * Goïi INT 14h Neáu coù loãi xaûy ra, bit D7 seõ ñöôïc baät leân 1, caùc bit coøn laïi chæ noäi dung loãi theo moâ taû sau ñaây: Bit D1 : Loãi Overrun Bit D2 : Loãi Parity Bit D3 : Loãi Framing Bit D4 : Moät Break daõ xaûy ra Bit D5 : THR roãng Bit D6 : THR vaø Transmitter Shift Register roãng Bit D7 : Quaù thôøi gian Chuù yù : Kyù töï seõ khoâng gôûi ñeán khi ñöôøng tín hieäu baét tay (Handshaking Line) ôû traïng thaùi cao. 3. Haøm soá 2 : (Phuïc vuï 02h) Nhaän moät kyù töï töø coång chæ ñònh: * Vaøo : AH = 02h DX = Soá thöù töï coång noái tieáp * Ra : AL = Kyù töï nhaän AH = Maõ traïng thaùi * Goïi INT 14h Chuù yù : Haøm naøy seõ chôø moät kyù töï töø coång cho ñeán khi nhaän ñöôïc hoaëc quaù thôøi haïn chôø. Neáu khoâng coù kyù töï naøo ñöôïc nhaän hoaëc vieäc nhaän coù loãi thì bit D7 cuûa AH leân 1. 4. Haøm soá 3 (Phuïc vuï 03h) Laáy traïng thaùi cuûa coång noái tieáp. Haøm naøy traû ra thoâng tin cuï theå vaø traïng thaùi cuûa Modem vaø traïng thaùi cuûa ñöôøng truyeàn cuûa coång chæ ñònh. * Vaøo : AH = 03h DX = Soá thöù töï cuûa coång noái tieáp * Ra : AH = Traïng thaùi ñöôøng truyeàn AL = Traïng thaùi Modem * Goïi INT 14h. Keát quaû cuûa chöông trình laø : - Traïng thaùi cuûa ñöôøng daây ñöôïc ñaët trong thanh ghi AH, coù caùc bit nhö hình döôùi. - Traïng thaùi cuûa Modem ñöôïc ñaët trong thanh ghi AL. D7 D2 D3 D4 D5 D1 D6 D0 AH Loãi quaù thôøi gian THR vaø TSR roãng THR roãng Phaùt hieän Break Döõ lieäu saün saøng Loãi Overrun Loãi Parity Loãi Framing D7 D2 D3 D4 D5 D1 D6 D0 AL Ngöôïc vôùi bit Ngöôïc vôùi bit Ngöôïc vôùi bit Ngöôïc vôùi bit CTS thay ñoåi DSR thay ñoåi RI thay ñoåi CD thay ñoåi Bit YÙ nghóa D7 Vöôït quaù ñoä treå 0 = khoâng coù sai soá 1 = coù sai soá D6 Thanh ghi dòch chuyeån 0 = thanh ghi baän 1 = thanh ghi roãi D5 Thanh ghi ñôïi 0 = thanh ghi baän 1 = thanh ghi roãi D4 Ngaét bôûi tín hieäu Break 0 = khoâng bieát 1 = coù tín hieäu Break D3 Giao thöùc 0 = khoâng coù loãi 1 = coù loãi D2 Tính chaún leû 0 = khoâng coù loãi 1 = coù loãi D1 Soá lieäu 0 = khoâng coù traøn 1 = coù traøn D0 Soá lieäu ñaõ saün saøng 0 = khoâng coù soá lieäu saün saøng 1 = soá lieäu saün saøng PHAÀN B THIEÁT KEÁ PHAÀN CÖÙNG I. Sô ñoà khoái: KHOÁI GIAO TIEÁP KHOÁI GIAO TIEÁP PC PC NGUOÀN CUNG CAÁP NGUOÀN CUNG CAÁP II. Sô ñoà nguyeân lyù : (Xem sô ñoà) III. Nguyeân lyù hoaït ñoäng: Bình thöôøng doøng ñieän qua ñöôøng daây thu vaø phaùt cuûa maùy Teletype laø 20mA (möùc ñieän aùp laø möùc 0 töùc -12v). Khi maùy A muoán phaùt , DTR ñöôïc baät leân 1 (+12v) ® ngoõ ra 7432 ôû möùc logic 1 ® qua IC 74125 ñeå naâng doøng kích TxOK saùng vaø Q1 daãn baõo hoøa ® cöïc C cuûa Q1 xem nhö noái mass (VCEQ1 » 0,2v) ® Diode cuûa U7 daãn ® BJT trong U7 naøy daãn baõo hoøa ® cöïc C cuûa BJT naøy ñöôïc noái mass ® ngoõ ra cuûa U3 ôû möùc logic 1 (+12v) ® Q2 daãn ® moät doøng ñieän ñi töø +60V qua CCE cuûa Q2 ® led cuûa U9 ® Led cuûa U11 ® mass cuûa nguoàn 60v. Luùc naøy Q3 taét ® Led cuûa U8 taét, Led cuûa U10 taét ® hai BJT trong U8 vaø U10 khoâng daãn ® ngoõ ra cuûa 7486 ôû möùc logic 1 (+5v) ® ngoõ vaøo maùy tính CTS vaø RI ôû möùc logic 0 (-12v) vaø luùc naøy ñöôøng thu DSR cuûa maùy B ôû möùc logic 1 (+12v). Khi maùy B nhaän ñöôïc tín hieäu DSR naøy, noù seõ laäp töùc gôûi traû tín hieäu traû lôøi cuõng baèng caùch Set ñöôøng phaùt DTR leân möùc logic1 ® ñöôøng thu DSR cuûa maùy A seõ nhaän ñöôïc möùc logic 1. Luùc naøy coi nhö hai maùy ñaõ ñöôïc baét tay vaø saün saøng truyeàn döõ lieäu. Khi maùy A phaùt cho maùy B thì moät chuoãi xung seõ ñöôïc ñöa qua ngoõ ra TxD cuûa maùy A ñeå ñeán ngoõ vaøo RxD cuûa maùy B vaø luùc naøy möùc logic cuûa RxD cuûa maùy B seõ nhòp theo möùc nhòp cuûa maùy A vaø ñöôïc gôûi vaøo maùy tính. Ngöôïc laïi, khi maùy B phaùt cho maùy A thì möùc logic ôû RxD cuûa maùy A cuõng seõ nhòp theo möùc nhòp cuûa maùy B. Giaû söû khi ñöôøng truyeàn hôû maïch , thì caùc Led cuûa U8 , U9 , U10 , U11 khoâng daãn ® caùc BJT cuûa U8 ,U9 , U10 , U11 taét ® ngoõ ra cuûa 7486 ôû möùc 0 , luùc naøy Led TXOPEN vaø RXOPEN saùng ® ngoõ vaøo maùy tính CTS vaø RI ñöôïc taùc ñoäng ôû möùc 1 (+12v ) ® maùy tính baùo ñöôøng truyeàn hôû maïch . IV. Tính toaùn caùc linh kieän trong maïch: Vì caùc ngoõ vaøo_ra cuûa coång COM maùy tính ôû möùc ñieän aùp ±12v neân ta phaûi chuyeån ñoåi möùc ñieän aùp ±12v ® (0 ¸ 5)v vaø ngöôïc laïi töø (0 ¸ 5)v ® ±12v ñeå ñaùp öùng caùc ngoõ vaøo_ra cuûa IC soá vaø caùc linh kieän khaùc. Ñeå ñaûm baûo khaû naêng chuyeån ñoåi ñieän aùp ñöôïc chính xaùc, ñôn giaûn ta choïn IC chuyeån ñoåi ñeän aùp laø IC 1488 ( chuyeån ñoåi töø (0 ¸ 5)v ® ±12v ) vaø IC 1489 (chuyeån ñoåi töø ±12v ® (0 ¸ 5)v ). Vì 1488 vaø 1489 laø hai IC ñöôïc tích hôïp, chuyeân duøng vaø khaû naêng chuyeån ñoåi ñieän aùp chính xaùc hôn caùc loaïi Op_Am vaø caùc linh kieän rôøi khaùc. Ñeå ñaûm baûo an toaøn cho maùy tính ñoàng thôøi traùnh gaây söï coá ñöôøng truyeàn ñoái vôùi maùy tính ta duøng Opto caùch ly ñieän aùp 4N35. Opto 4N35 laø loaïi Opto ñôn ñöôïc duøng trong maïch laø vì khaû naêng ít bò nhieãu ñoái vôùi caùc linh kieän (chaúng haïn nhö caùc IC soá, caùc led ... ) so vôùi Opto ñoâi. - Vì doøng thu_phaùt cuûa maùy Teletype ñöôïc qui ñònh ôû möùc 20mA neân choïn doøng qua led laø: Iled = ICQ = 20 mA VCC - VCES - VLED 5 -0,2 - 1,2 Þ R4 = = = 180 W ILED 20 mA ® Choïn R4 = 220 W Ñeå Q1 daãn baõo hoøa choïn b = (1/3 ¸ 1/4 ) bmax Thoâng thöôøng choïn b = 30 IB = IC / b = 20 / 30 = 0,6 mA Transitor Q1 daãn thì VBE = 0,7 v VCC - VBE 5 - 0,7 RBQ11 = = = 7 KW IB 0.6 mA ® choïn R1 =6,8 KW Ñeå BJT giao hoaùn toát do aûnh höôûng doøng ræ ICBO ta choïn R3 = (3,3 ¸ 10) KW. ® choïn R3 = 10 KW Töông töï ñoái vôùi caùc BJT Q2 , Q3 , Q4 ta choïn : R8 = R9 = R19 = 10 KW Vì caùc BJT cuûa Opto chæ hoaït ñoäng ôû cheá ñoä ngaét daãn neân choïn doøng cöïc C laø: IC = 1 mA R5 = VCC / IC = 5 / 1mA = 5 KW ® Choïn R5 = 6,8 KW Töông töï ñoái vôùi caùc BJT cuûa caùc Opto U8 , U9 , U10 ,U11 ta cuõng choïn doøng: IC = 1 mA ® Choïn R10 = R11 = R14 = R15 = 6,8 KW Vì caùc R2 , R12 , R16 , R17 laø caùc ñieän trôû haïn doøng cho LED neân ta choïn baèng 330W ® Choïn R2 = R12 = R16 = R17 = 330W Vì doøng thu_phaùt laø 20mA vaø ñieàu kieän ñeå BJT oån ñònh ñieåm laøm vieäc laø: VCE = VCC / 2 = 60 / 2 = 30 v VCC - VCE - 2VLED 60 - 30 - 2 ( 1,2 ) ® R13 = = =1,37 KW IC 20 mA ® Choïn R13 = 1,5 KW Þ P = R13 . I2 = 1,5 . (0,02)2 = 0,6 w Þ Choïn P = 1w . PHAÀN C : XAÂY DÖÏNG PHAÀN MEÀM I. Löu ñoà : Khôûi taïo coång COM1 Baét tay thu = 1 Thu döõ lieäu START Ñöôøng truyeàn hôû maïch Thoâng baùo ñöôøng truyeàn hôû maïch Yeâu caàu phaùt döõ lieäu Baét tay phaùt = 1 Yeâu caàu phaùt tröïc tieáp Phaùt tröïc tieáp Yeâu Caàu phaùt file Phaùt file Thoâng baùo maùy baän Coù nhaán ESC END Y N Y N Y N Y Y Y N N Y N LÖU ÑOÀ HAØM BAÉT TAY PHAÙT START Baät DTR leân 1 Ñoïc thanh ghi traïng thaùi DSR = 1 Delay 50 ms Ñoïc thanh ghi traïng thaùi DSR = 1 Ñoå chuoâng Thu döõ lieäu Reset DTR veà 0 Phaùt hoâ hieäu Return 1 Return 0 END N Y N Y LÖU ÑOÀ HAØM BAÉT TAY THU START Ñoïc thanh ghi traïng thaùi DSR = 1 Delay 50 ms Ñoïc thanh ghi traïng thaùi DSR = 1 Ñoå chuoâng Set DTR veà 0 Phaùt hoâ hieäu Thu döõ lieäu Return 1 Return 0 END N Y N Y Baät DTR leân 1 LÖU ÑOÀ HAØM PHAÙT TRÖÏC TIEÁP Ñoåi sang chöõ hoa Ñoïc kyù töï töø baøn phím laø ESC In leân maøn hình Kyù töï laø chöõ thöôøng START Ñoïc kyù töï töø baøn phím Kyù töï laø chöõ hoa Kyù töï laø soá Côø baûng = 1 ? Kyù töï laø khoaûng traéng Kyù töï laø øcarrier return In kyù töï leân maøn hình In kyù töï leân maøn hình In kyù töï leân maøn hình Gôûi ñi maõ 1F H Côø baûng = 0 ? Gôûi ñi maõ 08 H Gôûi ñi maõ 04 H Ñaët côø baûng = 0 Gôûi ñi maõ 02 H Gôûi ñi maõ 1B H Ñaët côø baûng = 1 Tra baûng soá Gôûi kyù töï ra coång COM Tra baûng chöõ Gôûi kyù töï ra coång COM END Y N Y N N Y Y N Y Y Y N N N Y Môû ñöôïc file ? START Môû file caàn phaùt Thoâng baùo môû ñöôïc file Ñoïc kyù töï treân file Ñoåi sang chöõ hoa Ñoïc kyù töï töø file laø EOF In leân maøn hình Kyù töï laø chöõ thöôøng Kyù töï laø chöõ hoa Kyù töï laø soá Côø baûng = 1 ? Kyù töï laø khoaûng traéng Kyù töï laø øcarrier return In kyù töï leân maøn hình In kyù töï leân maøn hình In kyù töï leân maøn hình Gôûi ñi maõ 1F H Côø baûng = 0 ? Gôûi ñi maõ 08 H Gôûi ñi maõ 04 H Ñaët côø baûng = 0 Gôûi ñi maõ 1B H Ñaët côø baûng = 1 Tra baûng soá Gôûi kyù töï ra coång COM Tra baûng chöõ Gôûi kyù töï ra coång COM Y Y N N Y N N Y Y N Y Y Y N N N Y LÖU ÑOÀ HAØM PHAÙT FILE Ñoùng file ñaõ môû Gôûi ñi maõ 02 H Return 1 Return 0 END LÖU ÑOÀ HAØM THU DÖÕ LIEÄU START Ñoïc thanh ghi traïng thaùi coång COM Ñoïc thanh ghi traïng thaùi coång COM Kyù töï saün saøng ? Kyù töï laø 08 H ? Kyù töï laø 02 H ? Kyù töï laø 1F H ? Kyù töï laø 1B H ? Sang doøng môùi veà ñaàu doøng Ñaët côø baûng = 1 Ñaët côø baûng = 0 Côø baûng = 0 ? Tra baûng soá Tra baûng chöõ In kyù töï leân maøn hình In kyù töï leân maøn hình END N Y Y N N N N Y Y Y N Y II. Chöông trình: #include #include #include #include #include #include #include #include #ifndef TRUE #define FALSE 0 #define ESC 27 #endif TRUE void main(void) { int k=0;//,mh=0,mode=0; char ky_tu; void init(void); int bat_tay_thu(void); int bat_tay_phat(void); int kiem_tra_RI(void); void phat_truc_tiep(void); void thu_du_lieu(void); void phat_file(void); void de_lay(int); void demo(void); // initgraph(&mh,&mode,"c:\\bc\\bgi"); // demo(); init(); printf("\n\n\n\t\t\t\tBam phim bat ky\r"); getch(); do { if((bat_tay_thu())==1) { thu_du_lieu(); } if(kiem_tra_RI()==0) { clrscr(); printf("\n\n\n\DUONG THU_PHAT HO MACH\r"); printf("\n\n\n nhan ESC : thoat.");de_lay(100);goto tiep; } clrscr(); printf("\t\t\t nhan ESC : thoat. Nhan P: phat \n"); de_lay(100); tiep: if(kbhit()) { ky_tu=getch(); if((ky_tu=='P') || (ky_tu=='p')) { if(bat_tay_phat()==0){clrscr();printf("\n\t\t\t\t May ban !");de_lay(100);} else { printf("\n\r\t\tphat FILE nhan F ,phat truc tiep nhan T"); k=(int)getch(); switch(k) {case 116: { phat_truc_tiep(); break; } //nhan T case 102: { phat_file(); break; } //nhan F }//end switch }// else } // end if ky tu = p } // end kbhit() }// end do_while while((int)ky_tu!=ESC); }//end main /*==========================================================*/ //init-- khoi tao cong noi tiep void init(void) { disable(); //cho phep ngat nhan ky tu outportb((int)&COM -> interrupt_enable,I_CHAR_IN); //xac dinh kieu truyen va cai toc do truyen outportb((int)&COM -> format,F_BAUD_LATCH|\ F_NO_BREAK|F_PARITY_NONE|F_STOP2|F_DATA5); //toc do truyen byte thap outportb((int)&COM -> baud_l,SPEED & 0xFF); //toc do truyen byte cao outportb((int)&COM -> baud_h,SPEED >> 8); //tra lai truyen thu binh thuong outportb((int)&COM -> format,F_NORMAL|\ F_NO_BREAK|F_PARITY_NONE|F_STOP2|F_DATA5); outportb((int)&COM -> out_control,O_OUT1|\ O_OUT2|O_RTS|O_0DTR); //doc thanh ghi dau vao de xoa co du lieu cua no //xoa thanh ghi dem thu (void)inportb((int)&COM -> data); //xoa thanh ghi cho phep ngat (void)inportb((int)&COM -> interrupt_enable); //xoa ngat thanh ghi luu giu phan phat rong (void)inportb((int)&COM -> interrupt_id); //xoa thanh ghi trang thai duong day (void)inportb((int)&COM -> status); //xoa thanh ghi trang thai modem (void)inportb((int)&COM -> i_status); //tra loi ngat outportb(0x20,0x20);//xoa ngat enable(); }//end init /*=========================================================*/ // ham bat tay phan cung int bat_tay_thu(void) { void de_lay(int); void do_chuong(void); void phat_ho_hieu(void); void thu_du_lieu(void); int DSR =0; DSR = inportb((int)&COM -> i_status); if(DSR & I_DSR!=1) return(0); else { de_lay(50); DSR = inportb((int)&COM -> i_status); } if(DSR & I_DSR) { outportb((int)&COM -> out_control,O_DTR);de_lay(2); do_chuong(); outportb((int)&COM -> out_control,O_0DTR);de_lay(2); phat_ho_hieu(); // outportb((int)&COM -> data, 0x00); thu_du_lieu(); return(1) ; } else return(0); }//end bat_tay_thu /*==========================================================*/ int bat_tay_phat(void) { void de_lay(int); void do_chuong(void); void phat_ho_hieu(void); void thu_du_lieu(void); int dem = 5,DSR=0,ch; while(dem != 0) { outportb((int)&COM -> out_control, O_DTR); de_lay(100); DSR=inportb((int)&COM -> i_status); if(DSR&I_DSR) { de_lay(50); DSR=inportb((int)&COM -> i_status); if(DSR&I_DSR) { do_chuong(); thu_du_lieu(); outportb((int)&COM -> out_control,O_0DTR); phat_ho_hieu(); // outportb((int)&COM -> data, 0x00); return(1); } else return(0); } dem--; }//end while return(0); }//end bat_tay_phat /*==========================================================*/ //ham phat truc tiep void phat_truc_tiep(void) { void de_lay(int); char ch; int ch1=0,*p1,*p2,co_bang2=0; int bang_chu2[] = { 0x03,0x19,0x0E,0x09,0x01, 0x0D,0x1A,0x14,0x06,0x0B, 0x0F,0x12,0x1C,0x0C,0x18, 0x16,0x17,0x0A,0x05,0x10, 0x07,0x1E,0x13,0x1D,0x15, 0x11,0x04,0x04,0x04,0x04, 0x04,0x04 }; int bang_so2[] = { 0x0D,0x11,0x14,0x09,0x16, 0x1A,0x04,0x1F,0x12,0x04, 0x04,0x0C,0x03,0x1C,0x1D, 0x16,0x17,0x13,0x01,0x0A, 0x10,0x15,0x07,0x06,0x18, 0x0E,0x1E,0x04,0x0F,0x04, 0x19,0x04 }; p1 = bang_chu2; p2 = bang_so2; clrscr(); do { ch = getch(); if((int)ch== 32) { outportb((int)&COM -> data,0x04);printf("%c",ch);} if((int)ch == 13) { outportb((int)&COM -> data,0x08);printf("\n\r"); } if((int)ch>=33 && (int)ch<=64) { if(co_bang2==0){outportb((int)&COM->data,0x1B);de_lay(10);co_bang2=1;} printf("%c",ch); ch1 = (int)ch - 33; outportb((int)&COM -> data, p2[ch1]);de_lay(2); } if((int)ch>=97 && (int)ch<=122) ch =toupper(ch); if((int) ch>=65 && (int)ch<=90) { printf("%c",ch); if(co_bang2==1){outportb((int)&COM -> data,0x1F);de_lay(10);co_bang2=0;} ch1=(int)ch - 65; outportb((int)&COM -> data, p1[ch1]); } } //end do while while(ch !=ESC); outportb((int)&COM -> data,0x02);de_lay(10); return; }//end phat_truc_tiep /*=========================================================*/ void phat_file(void) { void de_lay(int); int c,ch1,*p1,*p2,co_bang2=0; char t1[14]; FILE *f1; int bang_chu2[] = { 0x03,0x19,0x0E,0x09,0x01,0x0D, 0x1A,0x14,0x06,0x0B,0x0F,0x12, 0x1C,0x0C,0x18,0x16,0x17,0x0A, 0x05,0x10,0x07,0x1E,0x13,0x1D, 0x15,0x11,0x04,0x04,0x04,0x04, 0x04,0x04 }; int bang_so2[] = { 0x0D,0x11,0x14,0x09,0x16,0x1A, 0x04,0x0F,0x12,0x04,0x04,0x0C, 0x03,0x1C,0x1D,0x16,0x17,0x13, 0x01,0x0A,0x10,0x15,0x07,0x06, 0x18,0x0E,0x1E,0x04,0x0F,0x04, 0x19,0x04 }; p1=bang_chu2; p2=bang_so2; clrscr(); printf("\n vao ten tep can phat : "); gets(t1); f1=fopen(t1,"rt"); if(f1==NULL) { printf("\n KHONG MO DUOC TEP %s ",t1); de_lay(100); goto thien; } do { c=(int)fgetc(f1); if(c==32) {printf("%c",c);outportb((int)&COM -> data,0x04);de_lay(2);} if(c==10) {printf("\n\r");outportb((int)&COM -> data,0x08);de_lay(2);} if(c >= 33 && c <= 64) { printf("%c",c); if(co_bang2==0) {outportb((int)&COM -> data,0x1B);de_lay(10);co_bang2=1;} ch1=c-33;outportb((int)&COM -> data,p2[ch1]);de_lay(2); } if(c >= 97 && c <= 122) c = toupper(c); if(c >= 65 && c <= 90) { printf("%c",c); if(co_bang2==1){outportb((int)&COM -> data,0x1F);de_lay(10); co_bang2=0;} ch1 = c - 65;outportb((int)&COM -> data, p1[ch1]);de_lay(2); } de_lay(10); } // end do while(c!=EOF); thien: fclose(f1); outportb((int)&COM -> data,0x02);de_lay(10); return; } // end phat file /*========================================================*/ unsigned long int tg_100(void) { static struct time ti; unsigned long int t; gettime(&ti); t =((ti.ti_hour*60+ti.ti_min)*60+ti.ti_sec)*100+ti.ti_hund; return t; } /*=========================================================*/ //Ham thu du lieu void thu_du_lieu(void) { int co_bang=0,ch=0,status=0; char chu; char bang_chu[] = {' ','E',10,'A',' ','S', 'I','U',13,'D','R','J', 'N','F','C','K','T','Z', 'L','W','H','Y','P','Q', 'O','B','G',' ','M','X', 'V',' ','\0'}; char bang_so[] = {' ','3',10,'_',' ',' ', '8','7',13,'$','4',' ', ',','!',':','(','5','"', ')','2','#','6','0','1', '9','?','&',' ','.','/', ';',' '}; char *p1,*p2; p1 = bang_chu; p2 = bang_so; clrscr(); // fprintf(stdprn,"\n\r"); do { status=inportb((int)&COM -> status); if((status & S_RxRDY) != 0) { ch =inportb((int)&COM -> data); if(ch==0x02) return; if(ch== 0x1F){ co_bang = 0;goto tiep;} if(ch== 0x1B){ co_bang = 1;goto tiep;} if(ch== 0x08) { printf("\n\r"); // fprintf(stdprn," \n\r "); goto tiep; } if(co_bang==0) { printf("%c",p1[ch]); // fprintf(stdprn,"%c",p1[ch]); } else { printf("%c",p2[ch]); // fprintf(stdprn,"%c",(int)p2[ch]); } }//end if((status & S_RxRDY) != 0) tiep: } while(ch!=0x02);//end while return; } //end thu du lieu /*==========================================================*/ void demo(void) {setbkcolor(BLUE); setcolor(WHITE); settextstyle(1,0,4); settextjustify(0,0); outtextxy(20,50,"TRUONG DAI HOC SU PHAM KY THUAT TP HCM "); settextstyle(1,0,2); settextjustify(0,0); outtextxy(20,130,"LUAN VAN TOT NGHIEP : MAY TINH GIAO TIEP TELETYPE "); settextstyle(1,0,2); settextjustify(0,0); outtextxy(20,170,"SINH VIEN THUC HIEN : TRUONG VIET NAM - PHAM HUNG PHONG "); settextstyle(1,0,2); settextjustify(0,0); outtextxy(20,210,"GIAO VIEN HUONG DAN : QUACH THANH HAI"); settextstyle(1,0,2); settextjustify(0,0); outtextxy(20,250,"NIEN KHOA : 1995 _ 2000 "); getch(); closegraph(); } /*========================================================*/ void de_lay(int n) { int i; unsigned long int t1,t2; unsigned long int tg_100(void); t1 = tg_100(); while(1) {t2 = tg_100(); if(t2-t1>n) break; } return; } /*========================================================*/ void do_chuong(void) { int i ; for(i=0;i<3;++i){ sound(825);de_lay(100);nosound();de_lay(100);} return; } /*========================================================*/ void phat_ho_hieu(void) { void de_lay(int); int c,ch1,*p1,*p2,co_bang2=0; FILE *f1; int bang_chu2[] = { 0x03,0x19,0x0E,0x09,0x01,0x0D, 0x1A,0x14,0x06,0x0B,0x0F,0x12, 0x1C,0x0C,0x18,0x16,0x17,0x0A, 0x05,0x10,0x07,0x1E,0x13,0x1D, 0x15,0x11,0x04,0x04,0x04,0x04, 0x04,0x04 }; int bang_so2[] = { 0x0D,0x11,0x14,0x09,0x16,0x1A, 0x04,0x0F,0x12,0x04,0x04,0x0C, 0x03,0x1C,0x1D,0x16,0x17,0x13, 0x01,0x0A,0x10,0x15,0x07,0x06, 0x18,0x0E,0x1E,0x04,0x0F,0x04, 0x19,0x04 }; p1=bang_chu2; p2=bang_so2; // clrscr(); f1=fopen("ho_hieu.c","rt"); if(f1==NULL) {clrscr(); printf("\n KHONG MO DUOC TEP HO_HIEU.C "); de_lay(100); goto thien; } do { c=(int)fgetc(f1); if(c==32) {outportb((int)&COM -> data,0x04);de_lay(2);} if(c==10) {outportb((int)&COM -> data,0x08);de_lay(2);} if(c >= 33 && c <= 64) { if(co_bang2==0) {outportb((int)&COM -> data,0x1B);de_lay(10);co_bang2=1;} ch1=c-33;outportb((int)&COM -> data,p2[ch1]);de_lay(2); } if(c >= 97 && c <= 122) c = toupper(c); if(c >= 65 && c <= 90) { if(co_bang2==1){outportb((int)&COM -> data,0x1F);de_lay(10); co_bang2=0;} ch1 = c - 65;outportb((int)&COM -> data, p1[ch1]);de_lay(2); } de_lay(10); } // end do while(c!=EOF); thien: fclose(f1); outportb((int)&COM -> data,0x02);de_lay(10); return; } // end phat HO_HIEU /*====================================================*/ int kiem_tra_RI(void) { int RI=0; RI=inportb((int)&COM ->i_status); if(RI==0) return(1); else return(0); } PHAÀN D HÖÔÙNG THI COÂNG I. Toång quaùt: Maïch giao tieáp laø moät thieát bò ñoäc laäp ñeå gheùp noái giöõa caùc maùy vi tính vôùi nhau nhaèm truyeàn döõ lieäu töø nôi naøy ñeán nôi khaùc moät caùch nhanh choùng. Ngoaøi ra, maïch giao tieáp coøn chuyeån ñoåi möùc ñieän aùp ñeå khoaûng caùch truyeàn soá lieäu giöõa hai maùy ñöôïc xa hôn. Maïch giao tieáp coù theå ñöôïc öùng duïng roäng raõi trong caùc coâng ty, xí nghieäp . . . II. Toå chöùc maïch: - Taát caû caùc IC, caùc linh kieän ñieän töû ñöôïc laép raùp treân moät board maïch. - Caùc ngoõ vaøo ra giao tieáp vôùi maùy vi tính ñöôïc haøn vôùi caùc Connecter gaén treân board. III. Caùc böôùc thi coâng: - Thieát keá sô ñoà nguyeân lyù, veõ maïch. - Veõ sô ñoà maïch in duøng phaàn meàm BM. - Laøm maïch in - Chuaån bò linh kieän. - Laép raùp linh kieän theo sô ñoà. - Sau khi laép raùp tieán haønh kieåm tra phaàn cöùng. - Xaây döïng löu ñoà phaàn meàm ñieàu khieån. - Vieát chöông trình baèng ngoân ngöõ C. IV. Baùo caùo keát quaû thi coâng: - Thieát keá vaø thi coâng thaønh coâng heä thoáng maïch giao tieáp. - Maïch giao tieáp ñöôïc thieát keá ñeå truyeàn ôû khoaûng caùch xa, neân trong maïch thi coâng toàn taïi caùc nhoùm linh kieän nhö : + Nhoùm chuyeån ñoåi töø -12V vaø +12V sang 0V vaø 5V. + Nhoùm chuyeån ñoåi töø 0V vaø 5V sang -12V vaø + 12V. + Nhoùm naâng ñieän aùp ñöôøng truyeàn leân ±60 V ñeå thöïc hieän truyeàn xa. Ngoaøi ra maïch coøn söû duïng linh kieän Opto ñeå caùch ly ñieän aùp vôùi maùy vi tính. * Haïn cheá: - Do phaân boá caùc linh kieän treân board maïch heïp neân bieán theá vaø maïch nguoàn ñaët beân ngoaøi maïch chính. - Kyõ thuaät laäp trình chöa vöõng vaøng neân coøn nhieàu thieáu soùt, nhaát laø giao dieän vôùi ngöôøi söû duïng chöa ñeïp. - Laàn ñaàu tieân tieán haønh thi coâng, nhöõng yeâu caàu toái öu ñeå maïch hoaøn chænh vaãn chöa ñaït ñöôïc tuy nhieân maïch vaãn ñaït ñöôïc nhöõng yeâu caàu nhaát ñònh KEÁT LUAÄN Qua 6 tuaàn tìm hieåu veà caáu taïo, nguyeân lyù truyeàn döõ lieäu maùy Teletype vaø caáu truùc maùy tính ñaõ ñöôïc hoïc vôùi söï höôùng daãn cuûa thaày, coâ ñeà taøi luaän vaên toát nghieäp ñaõ hoaøn thaønh . Ñeå laøm ñöôïc ñieàu naøy. Chuùng em coá gaéng ñem nhöõng kieán thöùc ñaõ hoïc vaän duïng vaøo coâng vieäc, thöïc hieän nhieäm vuï luaän vaên ñöôïc giao ñeå coù theå ñaït keát quaû toát. Tuy thaønh quaû coâng vieäc khoâng coù gì to lôùn nhöng ñoù laø quaù trình daãn daét chuùng em laøm quen vôùi vieäc öùng duïng kieán thöùc ñaõ hoïc vaøo thöïc teá, laø thaønh quaû cuûa sinh vieân tröôùc khi ra tröôøng Vôùi nhöõng taâm tö nguyeän voïng nhö vaäy neân chuùng em heát söùc coá gaéng ñeå thaønh luaän vaên ñuùng thôøi gian quy ñònh. Do vaäy trong quaù trình laøm vieäc chuùng em khoâng theå traùnh khoûi sai soùt. Raát mong quyù thaày coâ thoâng caûm vaø chæ baûo. PHUÏ LUÏC BOÄ ÑIEÀU KHIEÅN NGAÉT 8259A Boä ñieàu khieån ngaét laäp trình ñöôïc 8259A (PIC : Programable Interrupt Controller) laø moät vi maïch tích hôïp ñöôïc thieát keá ñeå quaûn lyù caùc ngaét beân ngoaøi trong moät heä maùy tính. Ñaây laø nhöõng keát noái vaät lyù tôùi caùc thieát bò treân PC. Khi moät trong soá nhöõng thieát bò naøy taùc ñoäng leân moât trong nhöõng ñöôøng ngaét cuûa PIC, PIC seõ gôûi yeâu caàu ngaét cöùng cuøng vôùi chæ soá cuûa ngaét tôùi CPU, CPU laáy chæ soá naøy ñeå truy nhaäp vaøo baûng vectô ngaét ñeå tìm ra thuû tuïc phuïc vuï ngaét cöùng thích hôïp. 8259A coù 2 loaïi hình chöõ nhaät vaø hình vuoâng ñeàu coù 28 chaân. Chöùc naêng caùc chaân cuûa 8259A hình vuoâng cuõng töông öùng nhö 8259A hình chöõ nhaät. CS WR RD D7 D6 D5 D4 D3 D2 D1 D0 CAS0 CAS1 GND D0 D1 D2 D3 D4 D5 D6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 27 26 25 24 23 22 21 20 19 18 17 16 15 Vcc A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT SP CAS2 8259A DIP 19 20 21 22 23 24 25 IR1 IR2 IR3 IR4 IR5 IR6 IR7 11 10 9 8 7 6 5 18 17 16 15 14 13 12 26 27 28 1 2 3 4 IR0 INT SP/EN CAS2 GND CAS1 CAS0 INTA A0 Vcc CS WR RD D7 8259A PLCC Caùc chaân : IR0 - IR7 : (chaân18 - 25) Caùc loái vaøo yeâu caàu ngaét D0 - D7 : (chaân 11 - 4) Caùc bit soá lieäu (hai chieàu) A0 : (chaân 27) Ñòa chi û choïn thanh ghi leänh CS (chaân 1) : Choïn vi maïch WR (chaân 2) : Loái vaøo cuûa leänh ghi RD (chaân3) : Loái vaøo cuûa leänh ñoïc CAS0, CAS1, CAS2 (chaân 12, 13, 15) : Loái vaøo maéc noái taàng. Moät PIC chuû naøy coù theå choïn moät trong 8 PIC tôù qua 3 ñöôøng daây naøy. SP (chaân 16) : Trong cheá ñoä khoâng ñeäm, neáu SP = 1 thì 8259 chuû, SP = 0 thì 8259 tôù. INTA (chaân 26) : Loái vaøo xaùc ñònh ngaét. INT (chaân 17) : Loái ra yeâu caàu ngaét chöông trình. Trong quaù trình hoaït ñoäng, 8259A coù theå ñöôïc moâ taû goàm coù 4 thanh ghi beân trong : 1. Thanh ghi ñaùp öùng ngaét : (IRR : Interrup Request Register) Chöùa moät bit cho töøng keânh ngaét töø IRQ0 ñeán IRQ7. Caùc bit rieâng leû phaûn aùnh nhöõng keânh naøo ñang yeâu caàu phuïc vuï ngaét. Thanh ghi IRR coù theå ñöôïc ñoïc bôûi CPU. 2. Thanh ghi maët naï ngaét : (IMR : Interrup Mask Register) Laø thanh ghi 8 bit, moãi bit moâ taû moät möùc ngaét. Moät bit ñöôïc ñaët baèng moät seõ ngaên chaën keânh töông öùng phaùt sinh moät ngaét (ñöôïc che). 3. Thanh ghi boä giaûi öu tieân : (PR : Priority Resolver Register) Xaùc ñònh xem ñoä öu tieân cuûa ngaét coù ñuû ñeå ngaét moät thuû tuïc phuïc vuï ngaét ñang thöïc hieän hay khoâng. Ñieàu naøy phuï thuoäc vaøo sô ñoà öu tieân ñöôïc laäp trình hoùa. 4. Thanh ghi phuïc vuï trong : (ISP : In Service Register) Chöùa moät bit cho töøng toác ñoä ngaét. Bit naøy ñöôïc ñaët baèng 1 ñeå chæ daãn keânh ngaét töông öùng ñang ñöôïc phuïc vuï. ISR coù theå ñöôïc ñoïc bôûi CPU. Caùc boä vi xöû lyù coù hai doøng vaät lyù ñeå baùo hieäu caùc ngaét : - Doøng INTR (ñaùp öùng ngaét) : ñöôïc ñieàu khieån bôûi boä ñieàu khieån ngaét Intel 8259A. - Doøng NMI : ñeå baùo cho boä vi xöû lyù bieát veà moät söï coá nghieâm troïng saép xaûy ra nhö saép maát nguoàn, loãi chaún leû trong boä nhôù. - Khoái logic ñieàu khieån : xöû lyù ngaét, ñöa yeâu caàu (INT) vaø nhaän xaùc nhaän ngaét (INTA). - Boä ñeäm ñöôøng daây soá lieäu : ñeå ñeäm ghi vaøo caùc thanh ghi vaø ñeäm ñoïc caùc soá lieäu töø caùc thanh ghi. - Logic ñieàu khieån ñoïc ghi : taïo caùc tín hieäu ghi vaø ñoïc caùc thanh ghi ñeäm. - Boä ñeäm noái taàng/so saùnh : ñeå choïn caùc vi maïch 8259A tôù trong 1 vi maïch 8259A chuû. Baûng caùc giaù trò ñoïc cuûa caùc möùc öu tieân : D7 D6 D5 D4 D3 D2 D1 D0 Yeâu caàu öu tieân RST 1 1 A2 A1 A0 1 1 1 Thaáp nhaát 0 7 1 1 1 1 1 1 1 1 1 6 1 1 1 1 0 1 1 1 2 5 1 1 1 0 1 1 1 1 3 4 1 1 1 0 0 1 1 1 4 3 1 1 0 1 1 1 1 1 5 2 1 1 0 1 0 1 1 1 6 1 1 1 0 0 1 1 1 1 Cao nhaát 7 0 1 1 0 0 0 1 1 1 Sô ñoà khoái cuûa 8259A : Logic ñieàu khieån Thanh ghi phuïc vuï (ISR) Giaûi quyeát öu tieân (PR) Thanh ghi yeâu caàu ngaét Thanh ghi che ngaét (IMR) Thanh ghi soá lieäu Logic ghi ñoïc Logic ghi/ñoïc INTA INT IR0 IR7 D0 - D7 RD WR A0 CS CAS0 CAS1 CAS2 SP Ñöôøng daây noäi Ñeå cho pheùp moät ngaét, bit mong muoán trong IMR seõ ñöôïc xoùa veà 0 vaø ngöôïc laïi neáu khoâng cho pheùp moät ngaét, bit töông öùng seõ baät leân 1. Sô ñoà bit cuûa thanh ghi IMR ñaët taïi coång I/O 21h nhö sau : Soá lieäu bit Ñöôøng truyeàn Thieát bò beân ngoaøi 0 IRQ0 Ngaét thôøi gian (Time Keeper Interrup) 1 IRQ1 Ngaét baøn phím (Keyboard Interrup) 2 IRQ2 Boä phoái gheùp maøu ñoà thò 3 IRQ3 Coång tuaàn töï soá 2 (COM2 hoaëc COM4) 4 IRQ4 Coång tuaàn töï soá 1 (COM1 hoaëc COM3) 5 IRQ5 Ngaét cöùng (maùy XT), coång song song (maùy AT) 6 IRQ6 Ngaét ñóa meàm 7 IRQ7 Ngaét maùy in (coång song song soá 1) * Coù hai khía caïnh ta phaûi hieåu veà PIC : - Baát cöù khi naøo moät ngaét xaûy ra, PIC ñöôïc chaën ñeå noù khoâng sinh ra moät ngaét khaùc. Traïng thaùi naøy coù theå xoùa baèng caùch ghi leân thanh ghi ICR cuûa PIC. Thanh ghi naøy ñaët taïi coång I/O cuûa 20h. Ñeå Reset laïi PIC vaø cho pheùp ngaét trôû laïi, thuû tuïc phuïc vuï ngaét ISR seõ ghi giaù trò 20h laø leänh keát thuùc ngaét, chæ thò PIC cho pheùp ngaét trôû laïi. - Ñeå cho pheùp moät ngaét, ta xoaù bit töông öùng trong thanh ghi maët naï ngaét (IMR) veà 0. Ngöôïc laïi, ta baät bit töông öùng trong thanh ghi IMR leân 1 ñeå khoâng cho pheùp moät ngaét. - Ngaét cöùng coøn goïi laø ngaét ngoaøi vì do nguyeân nhaân beân ngoaøi. VXL coù caùc loái vaøo daønh cho ngaét ngoaøi. Khi coù tín hieäu vaøo caùc loái naøy, VXL ñang thöïc hieän leänh cuûa chöông trình seõ bò döøng. AÙnh xaï ngaét 8259A leân caùc thuû tuïc phuïc vuï ngaét cöùng : Ñöôøng truyeàn Ñòa chæ Thuû tuïc phuïc vuï ngaét cöùng Thieát bò beân ngoaøi IRQ0 20H 08h Ñoàng hoà keânh 0 IRQ1 24H 09h Baøn phím IRQ2 28H OAh Boä phoái gheùp maøu ñoà thò IRQ3 2CH OBh Coång tuaàn töï soá 2 (COM2 - COM4) IRQ4 30H OCh Coång tuaàn töï soá 1 (COM1 - COM3) IRQ5 34H ODh Ñóa cöùng (XT) - LPT2 (AT) IRQ6 38H OEh Ñóa meàm IRQ7 3CH OFh Coång song song soá 1 (LPT1) TAØI LIEÄU THAM KHAÛO - Truyeàn döõ lieäu .Toáng Vaên On - NXB Tröôøng ÑHBK TP.Hoà Chí Minh - Kyõ thuaät gheùp noái maùy vi tính . Nguyeãn Maïnh Giang - NXB Giaùo duïc 1998 - Ño löôøng vaø ñieàu khieån baèng maùy tính - Ngoâ Dieân Taäp - NXB KHKT HAØ NOÄI 1996 - AT Technical Reference - XT Technical Reference - Giaùo trình lyù thuyeát vaø baøi taäp ngoân ngöõ C. Nguyeãn Ñình Teâ - Hoaøng Ñöùc Haûi - NXB Giaùo duïc 1996 - Caáu truùc maùy vi tính -Traàn Quang Vinh - NXB Giaùo duïc 1998 - Vaø moät soá taøi lieäu khaùc

Các file đính kèm theo tài liệu này:

  • docLUANVAN.DOC