intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình hình thành hệ thống ứng dụng phân tích truyền thông bất đồng bộ các dãy kí tự star bit p3

Chia sẻ: Fdf Sdfdsf | Ngày: | Loại File: PDF | Số trang:10

72
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'giáo trình hình thành hệ thống ứng dụng phân tích truyền thông bất đồng bộ các dãy kí tự star bit p3', kỹ thuật - công nghệ, kiến trúc - xây dựng phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Giáo trình hình thành hệ thống ứng dụng phân tích truyền thông bất đồng bộ các dãy kí tự star bit p3

  1. 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ù.
  2. - 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
  3. 2 1 0 Möùc öu Kieåu ngaét Nguyeân nhaân ngaét Reset laïo ngaét tieân 0 0 1 - 0 0 - 1 1 0 Cao nhaát Traïng thaùi - Loãi traøn Ñoïc thanh ghi ñöôøng daây - Loãi cöïc tính traïng thaùi thu - Loãi khung ñöôøng daây - Break interrup 1 0 0 Thöù hai Cho pheùp Cho pheùp thu döõ Ñoïc thanh ghi thu döõ lieäu lieäu ñeäm thu 0 1 0 Thöù ba Thanh ghi Thanh ghi löu giöõ Ñoïc IIR hoaëc löu giöõ phaàn phaàn phaùt roãng ghi vaøo thanh phaùt roãng ghi löu giöõ phaàn phaùt 0 0 0 Thöù tö Traïng thaùi - CTS Ñoïc thanh ghi Modem - DSR traïng thaùi - RI Modem Ñaõ nhaän tin 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
  4. 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. CPU Rx/Tx CLKSd"*Baud Data Add f=" RST Bus RST 6.5 CLK IN OU Bus A7 CS TxC RxC A0 SERIAL C/D TxD O/P WR SERIAL RxD I/P RD 8251A CLK RxRDY RTS CTS 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 P 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 P 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ø P 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 P phaûi ñoïc thanh ghi traïng thaùi cuûa UART. Moät chöông trình ñieàu khieån
  5. ngaét bao haøm yù nghóa P 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 P 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.
  6. GIÔÙI THIEÄU VEÀ NGAÉT CUÛA MAÙY VI TÍNH CHÖÔNG V : 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ò Fla g ñöôï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).
  7. - 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.
  8. - 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. Tron g 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ân g 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
  9. 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
  10. - 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 : D7 D6 D5 D4 D3 D2 D1 D0 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2