intTypePromotion=1
ADSENSE

Vi xử lý máy vi tính - Chương 8

Chia sẻ: Trần Huân | Ngày: | Loại File: DOC | Số trang:9

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

Nguyên tắc của việc trao đổi dữ liệu với thiết bị ngoại vi bằng cách thâm nhập trực tiếp vào bộ nhớ (DMA) . Trong các cách điều khiển việc trao đổi dữ liệu giữa thiết bị ngoại vi và hệ vi xử lý bằng cách thăm dò trạng thái sẵn sàng của thiết bị ngoại vi hay bằng cách ngắt bộ vi xử lý đã đươc nói đến ở các chương trước , dữ liệu thường được chuyển từ bộ nhớ qua bộ vi xử lý để rồi từ đó ghi vào thiết bị ngoại vi hoặc...

Chủ đề:
Lưu

Nội dung Text: Vi xử lý máy vi tính - Chương 8

  1. CHÆÅNG 8 ; säú chu kyì âäöng häö VAÌO /RA DÆÎ LIÃÛU BÀÒNG DMA LAP: MOV AL, (SI );10 OUT PORT ,AL ; 10 1. Nguyãn tàõc cuía viãûc trao âäøi dæî liãûu våïi thiãút bë INC SI ; 2 ngoaûi vi bàòng caïch thám nháûp træûc tiãúp vaìo bäü nhåï LOOP LAP ; 17 (DMA) . ; CÄÜNG:39 chu kyì Trong caïc caïch âiãöu khiãøn viãûc trao âäøi dæî liãûu giæîa Âãø häù tråü cho viãûc trao âäøi dæî liãûu våïi thiãút bë thiãút bë ngoaûi vi vaì hãû vi xæí lyï bàòng caïch thàm doì ngoaûi vi bàòng caïch thám nháûp træûc tiãúp vaìo bäü nhåï traûng thaïi sàôn saìng cuía thiãút bë ngoaûi vi hay bàòng caïch ,taûi mäùi vi maûch CPU thæåìng täön taûi chán yãu cáöu treo ngàõt bäü vi xæí lyï âaî âæåc noïi âãún åí caïc chæång træåïc , HOLD âãø thiãút bë ngoaûi vi , mäùi khi coï yãu cáöu duìng buï dæî liãûu thæåìng âæåüc chuyãøn tæì bäü nhåï qua bäü vi xæí cho viãûc trao âäøi dæî liãûu våïi bäü nhåï thç thäng qua chán lyï âãø räöi tæì âoï ghi vaìo thiãút bë ngoaûi vi hoàûc ngæåüc naìy maì baïo cho CPU biãút . âãún læåüt CPU , khi nhán laûi , tæì thiãút bë ngoaûi vi noï âæåüc âoüc vaìo bäü vi xæí lyï âæåüc yãu cáöu treo thç noï tæû treo lãn (tæû taïch ra khoíi hãû âãø räöi tæì âoï âæåüc chuyãøn âãún bäü nhåï . vç thãú täúc thäúng bàòng caïch âæa caïc bit vaìo traûng thaïi tråí khaïng âäü trao âäøi dæî liãûu phuû thuäüc ráút nhiãöu vaìo täúc âäü cao )vaì âæa xung HLDA ra ngoaìi âãø thäng baïo CPU cho thæûc hiãûn cuía caïc lãûnh MOV .IN vaì OUT cuía bäü vi xæí pheïp sæí duûng buï . lyï vaì do âoï viãûc trao âäøi dæî liãûu khäng thãø tiãún haình Så âäö khäúi cuía mäüt hãû vi xæí lyï coï khaí nàng trao âäøi nhanh âæåc . dæî liãûu theo kiãøu DMA âæåüc thãø hiãûn trãn hçnh 8.1 Trong thæûc tãú coï nhæîng khi ta cáön trao âäøi dæî liãûu tháût nhanh våïi thiãút bë ngoaûi vi : nhæ khi cáön âæa dæî liãûu hiãûn thë ra maìn hçnh hoàûc trao âäøi dæî liãûu våïi bäü âiãöu khiãøn âéa .trong caïc træåìng håüp âoï ta cáön coï khaí nàng ghi /âoüc dæî liãûu træûc tiãúp våïi bäü nhåï (diret memory acces .DMA- thám nháûp vaìo bäü nhåï træûc tiãúp khäng thäng qua CPU) thç måïi âaïp æïng âæåüc yãu cáöu vãö täúc âäü trao âäøi dæî liãûu .âãø laìm âæåüc âiãöu naìy caïc hãû vi Ta nháûn tháúy trong hãû thäúng naìy , khi CPU tæû taïch ra xæí lyï noïi chung âãöu phaíi duìng thãm maûch chuyãn duûng khoíi hãû thäúng bàûng tæû treo (æïng våïi vë trê hiãûn thåìi âãø âiãöu khiãøn viãûc thám nháûp træûc tiãúp vaìo bäü nhåï cuía caïc cäng tàõc chuyãøn maûch )âãø trao quyãön sæí ( dircet memory access con troller.DMAC) duûng bus cho DMAC phaíi chëu traïch nhiãûm âiãöu khiãøn Coï thãø láúy mäüt vê duû cuû thãø âãø minh hoaû âiiãuì naìy toaìn bäü hoaût âäüng trao âäøi dæî liãûu cuía hãû thäúng . âãø .trong khi mäüt maûch DMAC nhæ 8237A cuía inter coï thãø laìm âæåüc âiãöu âoï DMAC phaíi coï khaí nàng taûo ra âæåüc âiãöu khiãøn viãûc chuyãøn mäüt byte trong mäüt maíng dæî caïc tên hiãûu âiiãuì khiãøn cáön thiãút giäúng nhæ caïc tên liãûu tæì bäü nhåï ra thiãút bë ngoaûi vi chè hãút 4 chu kyì hiãûu cuía CPU vaì baín thán noï phaíi laì mäüt thiãút bë láûp âäöng häö thç bäü vi xæí lyï 8088 phaíi laìm hãút cåî 4 chu kyì : trçnh âæåüc (âãø CPU “dàn doì ” noï bàòng caïch âæa vaìo caïc
  2. tæì âiãöu khiãøn træåïc khi noï coï thãø hoaût âäüng âäüc 3.DMAC âæa ra tên hiãûu HRQ âãún chán HOLD cuía CPU âãø láûp ). yãu cáöu treo CPU .tên hiãûu HOLD phaíi åí mæïc cao cho âãún Qua trinh hoaût âäüng cuía hãû thäúng trãn coï thãø âæåüc toïm hãút quaï trçnh trao âäøi dæî liãûu . tàõt nhæ sau: 4. nháûn âæåüc yãu cáöu treo ,CPU kãút thuïc chu kyì bus Khi thiãút bë ngoaûi vi coï yãu cáöu trao âäøi dæî liãûu kiãøu hiãûn taûi , sau doï noï treo caï bus cuía mçnh vaì âæa ra tên DMA våïi bäü nhåï , noï âæa yãu cáöu DRQ=1 âãún DMAC, hiãûu HLDA baïo cho DMAC âæåüc toaìn quyãön sæí duûng DMAC seî âæa yãu cáöu treo HRQ=1 âãún chán HOLD cuía bus. CPU . nhán âæåüc yãu cáöu treo , CPU seî treo caïc bus cuía 5.DMAC âæa ra xung DACK âãø baïo cho thiãút bë ngoaûi vi mçnh vaì traí låìi cháúp nháûn treo qua tên hiãûu HLDA=1 âãún biãút laì coï thãø bàõt âáöu trao âäøi dæî liãûu . chán HACK cuía DMAC ,DMAC seî thäng baïo cho thiãút bë 6.DMAC bàõt âáöu chuyãøn dæî liãûu tæì bäü nhåï ra thiãút bë ngoaûi vi thäng qua tên hiãûu DACK=1 laì noï cho pheïp thiãút ngoaûi vi bàòng caïch âæa âëa chè cuía byte âáöu ra bus âëa bë ngoaûi vi trao âäøi dæî liãûu kiãøu DMA .khi quaï trçnh DMA chè vaì âæa ra tên hiãûu MEMR=O âãø âoüc mäüt byte tæì kãút thuïc thç DMAC âæa ra tên hiãûu HRQ=0. bäü nhåï ra bus dæî liãûu .tiãúp âoï DMAC âæa ra tên hiãûu Trong thæûc tãú täön taûi 3 kiãøu trao âäøi dæî liãûu bàòng IOW =0 âãø ghi âæa dæî liãûu ra thiãút bë ngoaûi vi.DMAC sau caïch thám nháûp træûc tiãúp vaìo bäü nhåï nhæ sau: âoï giaím bäü âãúm säú byte coìn phaíi chuyãøn , cáûp nháût + Treo CPU mäüt khoaíng thåìi gian âãø trao âäøi caí âëa chè cuía byte cáön âoüc tiãúp , vaì làûp laûi caï c âäüng taïc maíng dæî liãûu . trãn cho tåïi khi hãút säú âãúm (TC). +treo CPU âãø trao âäøi tæìng byte. 7. quaï trçnh DMA kãút thuïc , DMAC cho ra tên hiãûu HRQ=0 +táûn duûng thåìi gian khäng duìng bus âãø trao âäøi dæî âãø baïo cho CPU biãút âãø CPU daình laûi quyãön âiãöu liãûu . khiãøn hãû thäúng . • Treo CPU âãø trao âäøi tæìng byte . ta seî láön luåüt giåïi thiãûu qua caïc kiãøu trao âäøi dæî liãûu naìy . Trong caïch trao âäøi dæî liãûu naìy CPU khäng bë treo • Trao âäøi caí mät maíng dæî liãûu láu daìi trong mäüt láön nhæng thènh thoaíng laûi bë treo Trong chãú âäü naìy CPU bë treo trong suäút quaï trçnh trao trong khoaíng thåìi gian ráút ngàõn âuí âãø trao âäøi 1 âäøi maíng dæî liãûu .Chãú âäü naìy âæåüc duìng khi ta coï byte dæî liãûu (CPU bë láúy máút mäüt säú chu kyì âäöng nhu cáöu trao âäøi dæî liãûu våïi äø âéa hoàûc âæa dæî liãûu ra häö ). Do bë láúy âi mäüt säú chu kyì âäöng häö nhæ hiãøn thë . caïc bæåïc thuí tuûc âãø chuyãøn mäüt maíng dæî váûy lãn täúc âäü thæûc hiãûn mäüt cäng viãûc naìo âoï liãûu tæì bäü nhåï ra thiãút bë ngoaûi vi: cuía CPU chè bë suy giaím chæï khäng dæìng laûi . caïch 1.CPU phaíi ghi tæì âiãöu khiãøn vaì tæì chãú âäü laìm viãûc hoaût âäüng cuîng tæång tæû nhæ pháön træåïc , chè coï vaìo DMAC âãø quy âënh caïch thæïc laìm viãûc , âëa chè âáöu âiãöu mäùi láön DMAC yãu cáöu treo CPU thi chè coï cuía maíng nhåï , âäü daìi cuía maíng nhåï ,... mäüt byte âæåüc trao âäøi • Táûn duûng thåìi gian CPU khäng duìng bus âãø 2.khi thiãút bë ngoaûi vi co yãu cáöu trao âäøi dæî liãûu , noï âæa DRQ =1 âãún DMAC . trao âäøi dæî liãûu . Trong caïch trao âäøi dæî liãûu naìy , ta phaíi coï caïc logic phuû bãn ngoaìi cáön thiãút âãø phaït hiãûn ra caïc chu
  3. kyì xæí lyï näüi bäü cuía CPU (khäng duìng âãún bus ngoaìi )vaì táûn duûng caïc chu kyì âoï vaìo viãûc trao âäøi dæî liãûu giæîa 2.2. Maûch DMAC 8237A -5cuía Inter thiãút bë ngoaûi vi våïi bäü nhåï . Trong caïch laìm naìy thç Træåïc khi trçnh baìy kyî vãö maûch DMAC 8237A cuía DMAC vaì CPU luán phiãn nhau sæí duûng bus vaì viãûc thám Inter ta noïi qua vãö caïc thay âäøi cáön coï trong nhoïm tên nháûp træûc tiãúp bäü nhåï kiãøu naìy khäng aính hæåíng gç hiãûu âiãöu khiãøn ghi/âoüc cuía hãû vi xæí lyï våïi CPU 8088 tåïi hoaût âäüng bçnh thæåìng cuía CPU. åí chãú âäü MIN âãø sæí duûng âæåüc maûch 8237A laìm 2.DMAC 8237A -5 trong hãû vi xæí lyï 8088. DMAC 2.1.tên hiãûu HOLD vaì HLDA trong CPU 8088. Nhæ trãn hçnh 8.1 âaî thãø hiãûn tæång âäúi roî , âãø Hai tên hiãûu duìng âãø yãu cáöu treo vaì traí låìi cháúp thãø hiãûn âæåüc chæïc nàng DMA trong hãû ,bus âiãöu cuía nháûn yãu cáöu treo trong chãú âäü MIN cuía CPU 8088 laì hãû vi xæí lyï 8088 phaíi âæåüc thay âäøi chuït êt âãø coï HLDA.quan hãû giæîa hai tên hiãûu âoï âæåüc thãø hiãûn trãn âæåüc caïc tên hiãûu cáön thiãút cho DMAC vaì caïc bäü pháûn hçnh 8.2. lkhaïc hoaût âäüng .âoï chinhd laì viãûc caïc tên hiãûu RD.WD vaì IO/M âæåüc sæí duûng âãø taoü caïc tên hiãûu âiãöu khiãøn måïi IOR.IOW .MEMR.MEMW.tæång thêch våïi caïc tên hiãûu cuía DMAC 8237A -5. Hçnh 8.4 trçnh baìy mäüt khaí nàng taûo ra caïc tên hiãûu âiãöu khiãøn nhæ váûy duìng maûch däön kãnh 74LS257 . trong 74LS 257 gäöm 4 maûch däön kãnh 2 âæåìng . caïc tên hiãûu RD.WD vaì IO/M âæåüc bäú trê sao cho khi âáöu vaìo cuía Tên hiãûu yãu cáöu treo HOLD âæåüc laïy máùu taûi maûch 74LS 257 laì B=1 thç ta laìm viãûc våïi thiãút bë ngoaûi sæåìn lãn cuía .xung âäöng häö træåïc chu kyì T4 hoàûc T1. Khi nháûp våïi caïc xung IORvaì IOW ,ngæåüc laûi khi B=0 thç ta nháûn âæåüc yãu cáöu treo .CPU kãút thuïc chu kyì bus hiãûn laìm viãûc våïi bäü nhåï våïi caïc xung MEMR.MEMW. taûi , âæa ra tên hiãûu HLDA vaì treo caïc tên hiãûu cuía bus Trãn hçnh 8.4 ta coìn tháúy tên hiãûu AEN cuía DMAC .busd vaì bus c (træì tên hiãûu ALE=O)âãø nhæåìng quyãön sæí cuîng âæåüc duìng âãø khoaï caïc tên hiãûu âiãöu khiãøn måïi duûng caïc bus naìy choDMAC . Cáön læu yï ràòng âáöu vaìo do CPU taûo ra khi DMAC âaî nàõm quyãön âiãöu khiãøn bus. HOLD coï mæïc æu tiãn cao hån caïc âáöu vaìo yãu cáöu ngàõt INTR vaì MNI nhæng laûi tháúp hån so våïi âáöu vaìo RESET. Âãø âaím baío viãûc âäöng bäü tên hiãûu yãu cáöu treo cuía thiãút bë ngoaûi vi våïi tên hiãûu âäöng häö cuía hãû thäúng træåïc khi âæa vaìo chán HOLD cuía 8088 ngæåìi ta thæåìng duìng maûch trãn hçnh 8.3.
  4. +RESET{I}:tên hiãûu näúi våïi tên hiãûu khåíi âäüng cuía hãû thäúng . khi maûch 8237A -5 ÂÆÅÜC KHÅÍI ÂÄÜNG RIÃNG THANH GHI MÀÛT LAÛ ÂÆÅÜC LÁÛP COÌN Trong chãú âäü truyãön kiãøu âoüc thç dæî liãûu âæåüc CAÏC BÄÜ PHÁÛN SAU ÂAY BË XOAÏ : âoüc tæì bäü nhåï räöi âæa ra thiãt bë ngoaûi vi. Trong chãú âäü  thanhghi lãûnh truyãön kiãøu ghi thç dæî liãûu âæåüc âoüc tæì thiãút bë ngoaûi  thanh ghi traûng thaïi vi räöi âæa vaìo bäü nhåï . khi 8237A -5 laìm viãûc åí chãú âäü  thanh ghi yãu cáöu DMA kiãøm tra thç tuy âëa chè âæåüc âæa âãún bäü nhåï nhæng  thanh ghi taûm thåìi DMAC khäng taûo ra caïc xung âiãöu khiãøn âãø tiãún haình  maûch láût byte âáöu /byte cuäúi (Firsst/Last) caïc thao taïc ghi/âoüc bäü nhåï hay thiãút bë ngoaûi vi . Ngoaìi ra maûch 8237 A-5 coìn häù tråü viãûc trao âäøi dæî liãûu giæa caïc vuìng khaïc nhau cuía bäü nhåï vaì cuîng +READY{I}:tên hiãûu sàôn saìng , näúi våïi READY cuía chè riãng trong chãú âäü laìm viãûc naìy , dæî liãûu cáön trao hãû thäúng âãø gáy ra caïc chu kyì âåüi âäúi våïi caïc âäøi måïi phaíi di qua DMAC nhæng våïi täúc âäü cao hån khi âi thiãút bë ngoaûi vi vaì caïc bäü nhåï cháûm . qua CPU nhæng våïi täúc âäü cao hån khi âi qua CPU (trong +HLDA {I}:tên hiãûu baïo cháúp nhán yãu cáöu treo tæì træåìng håüp naìy ta coï thãø âoüc âæåüc dæî liãûu âoï trong CPU thanh ghi taûm). +-DRQ3{I}:caïc tên hiãûu yãu cáöu treo tæì thiãút bë ngoaûi vi . cæûc tênh cuía caïc tên hiãûu naìy coï thãø láp Så âäö khäúi cáúu truïc bãn trong cuía maûch 8237A -5 trçnh âæåüc . sau khi khpåíi âäüng caïc tên hiãûunaìy âæåüc thãø hiãûn trãn hçnh 8.5 âæåüc âënh nghé a laì caïc tên hiãûu kêch hoaût mæïc Maûch DMAC 8237A -5 chæïa 4 kãnh trao âäøi dæî liãûu cao . DMA våïi mæïc æu tiãn láp trçnh âæåüc .MAC 8237A -5 coï täúc +DBO-BD7{I,O}:tên hiãûu hai chiãöu näúi âãún bus âëa âäü truyãön 1 MB/s cho mäùi kãnh , mäüt kãnh co thãø truyãön chè vaì bus dæî lliãûu cuía hãû thäúng caïc tên hiãûu naìy mät maíng coï âäü daìi 64KB . âæåüc duìng khi láp trçnh cho DMAC vaì khi DMAC hoaût • Giåïi thiãûu caïc chán tên hiãûu cuía 8237A -5 âäüng caïc chán naìy chæïa 8 bit âëa chè cao A8-A15 +CLK[I]:tên hiãûu âäöng häö cuía maûch .âãø maûch coï cuía maíng nhåï dæî liãûu lëch cáön chuyãøn . trong chãú thãø laìm viãûc täút våïi hãû 8088 thç tên hiãûu CLK cuía âäü chuyãøn dæî liãûu giæîa caïc vuìng cuía bäü nhåï hãû thäúng thæåìng âæåüc âaío træåïc khi âæa vaìo CLK taûi caïc chán naìy coï caïc dæî liãûu âæåüc chuyãøn . cuía 8237A-5 +IOR {I,O}VAÌ IOW{I,O}: laì caïc chán tên hiãûu hai chiãöu +CS {I}:TÊN HIÃÛU CHOÜN VOÍ CUÍA 8237a-5 chán naìy duìng trong khi láûp trçnh cho DMAC vaì trong caïc chu thæåìng âæåüc näúi våïi âáöu ra cuía bäü giaíi maî âëa kyì âoüc vaì ghi . chè .bäü giaíi maî âëa chè naìy khäng cáön duìng âãún +EOP{I,O}:LAÌ TÊN HIÃÛU HAI CHIÃÖU .KHI LAÌ ÂÁÖU âáöu vaìo IO/M vç baín thán DMAC âaî âæåüc cung cáúp VAÌO NOÏ ÂÆÅÜC DUÌNG ÂÃØ BÀÕT BUÄÜC DMAC caïc xung âiãöu khiãøn måïi cuía hãn thäúng . kãút thuïc quaï trçnh DMA .khi laì âáöu ra noï âæåüc duìng âãø baïo cho bãn ngoaìi biãút mäüt kãnh naìo âoï
  5. âaî chuyãøn xong säú byte theo yãu cáöu , luc nay noï Caïc thanh ghi trong baín trãn coï thãø âæåüc ghi.âcj thæåìng duìng nhæ mäüt yãu cáöu ngàõt âãø CPU xæí lyï hoàûc chè ghi vaìo vaì chuïng chæïa caïc thäng tin khaïc viãûc kãút thuïc quaï trinh DMA nhau liãn quan âãún caïch thæïc laìm viãûc vaì caïc thäng +A0-A3{I,O}:laì caïc tên hiãûu hai chiãöu duìng âãø choün säú cuía mäùi kãnh DMA. caïc thanh ghi trong 8237A 5 khi láûp trçnh vaì khi Trong baíng 8.2 vaì 8.3 liãtë kã caïc thanh ghi trãn theo âoüc(âáöu vaìo), hoàûc âãø chuqaï 4 bit âëa chè tháúp caïc quan âiãøm æïng duûng khaïc nhau âãø dãù tra nháút cuía âëa chè maíng nhåï cáön chuyãøn (âáöu ra) cæïu âëa chè cho chuïng khi láûp trçnh våïi DMAC A4-A7[0]:caïc chán âãø chæïa 4 bêt âëa chè pháön cao 8237A-5 trong byte âëa chè tháúp cuía âëa chè maíng nhåï cáön Baíng 8.1. Âëa chè caïc thanh ghi bãn trong cuía 8237A5 chuyãøn Baíng8.2. Âëa chè caïc thanh ghi trong âãø ghi/ âoüc âëa HRQ[0]:tên hiãûu yãu cáöu treo âãún CPU. Tên hiãûu chè vaì ssäú tæì cáön chuyãøn. naìy thæåìng âæåüc âäöng bäü våïi tên hiãûu CLK cuía Baíng 8.3.Âëa chè caïc thanh ghi cho âiãöu khiãøn vaì hãû thäúng räöi âæåüc âæa âãún chán HOLD cuía 8088. traûng thaïi. DACK0 DACK3[0]: laì caïc tên hiãûu traí låìi caïc yãu cáöu Ta seî giåïi thiãûu qua caïc âàûc âiãøm cuía mäüt säú DMA cho caïc kãnh. Caïc tên hiãûu naìy coï thãø âæåüc trong caïc thanh ghi kãø trãn. láûp trçnh âãø hoaût âäüng theo mæïc tháúp hoàûc mæïc Thanh ghi âëa chè hiãûn thåìi: Âáy laì thanh ghi 16 bêt cao.sau khi khåíi âäüng, caïc tê hiãûu naìy âæåüc âënh duìng âãø chæïa âëa chè cuía vuìng nhåï phaíi nghéa laì caïc xung têch cæûc tháúp. chuyãøn.Mäùi kãnh coï riãng thanh ghi aìy âãø chæïa âëa AEN[0]: tên hiãûu cho pheïp maûch näúi vaìo DB0-DB7 chè .Khi 1 byte âæåüc truyãön âi. Caïc thanh ghi naìy tæû chäút láúy âëa chè cuía vuìng nhåï cáön trao âäøi theo däüng tàng hay giaím tuyì theo træåïc noï âæåüc láûp kiãøu DMA. Tên hiãûu naìy cuîng cho pheïp cáúm caïc trçnh nhæ thãú naìo. maûch âãûm buï âëa chè vaì dæî liãûu hoàûc maûch taûo Thanh ghi säú âãúm hiãûn thåìi: Thanh ghi 16 bêt naìy tên hiãûu âiãöu khiãøn cuía CPU näúi vaìo caïc buï tæån duìng âãø chæïá säú byte maì kãnh phaíi truyãön( nhiãöu æïng khi DMAC hoaût âäüng. nháút laì 16KB). Mäùi kãnh coï thanh ghi säú byte cuía ADSTB[0]: xung cho pheïp chäút caïc bit âëa chè pháön mçnh. Caïc thanh ghi naìy âæåüc ghi bàòng säú âãúm cao A8-A15 coï màût trãn DB0-DB7. nhoí nháút hån 1 so våïi säú byte thæûc chuyãøn. MEÍM[0] vaì MEMÆ[0]: laì caïc chán tên hiãûu do DMAC Thanh ghi âëa chè cå såí vaì thanh ghi säú âãúm cå såí: taûo ra vaì duìng khi âoüc/ghi bäü nhåï trong khi hoaût Caïc thanh ghi naìy âæåüc duìng âãø chæïa âëa chè vaì âäüng. säú âeems cho mäùi kãnh khi chãú âäü tæû âäüng khåíi Caïc thanh ghi bãn trong cuía DMAC 8237A-5 âáöu âæåüc sæí duûng. Caïc thanh ghi bãn trong DMAC 8237A-5 âæåüc CPU Trong chãú âäü naìy mäüt quaï trçnh DMA kãút thuïc thç 8088 choün âãø laìm viãûc nhåì caïc bit âëa chè tháúp caïc thanh ghi âëa chè hiãûn thåìi vaì säú âãúm hiãûn A0-A3. Baíng 8.1 chè ra caïch thæïc choün ra caïc thanh thåìi âæåüc naûp laûi giaï trë cuí láúy tæì thanh ghi âëa ghi âoï. chè cå såí vaì thanh ghi säú âãúm cå såí.. Khi caïc thanh ghi âëa chè hiãûn thåìi vaì säú âãúm hiãûn thåìi âæåüc
  6. láûp trçnh thç caïc thanh ghi âëa chè cå såí vaì thanh ghi Bit D5 cho pheïp choün thåìi gian ghibçnh thæåìng hay säú âãúm cå såí cuîng âæåüc láûp trçnh báút kãø chãú keïo daìi cho tiãút bë ngoaûi vi cháûm. däü tæû khåíi âáöu coï âæåüc sæí duûng hay khäng. Caïc bit D6 vaì D7 cho pheïp choün cæûc tênh têch cæûc Thanh ghi lãûnh: Thanh ghi naìy duìng âãø láûp trçnh cho cuía caïc xung DRQ0-DRQ4 vaì DACK0- DACK4. DMAC. Noï bë xoaï khi khåíi âäüng hoàûc khi ta sæí duûng lãûnh xoaï toaìn bäü caïc thanh ghi. Daûng thæïc cuía thanh ghi lãûnh âæåüc biãøu diãøn trãn hçnh 8.6. Caïc bêt cuía thanh ghi naìy quyãút âënh caïc phæång thæïc laìm viãûc khaïc nhau cuía 8237A-5. Ta seî giaíi + thanh ghi chãú âäü: duìng âàût chãú âäü laìm viãûc cho thêch sau âáy yï nghéa cuía caïc bit. caïc kãnh cuía DMAC. Mäùi kãnh cuía DMAC coï mäüt Bit D0 cho pheïp DMAC duìng kãnh 0 vaì kãnh 1 âãø thanh ghi chãú âoü riãng.Daûng thæïc cuía thanh ghi chuyãøn dæî liãûu giæîa 2 vuìng nhåï.Âëa chè cuía byte chãú âäü âæåüc biãøu diãøn trãn hçnh 8.7. dæî liãûu åí vuìng âêch âæåüc chæïa trong thanh ghi âëa Trong chãú âäü DMA theo yãu cáöu. DMAC tiãún haình chè cuía kãnh 1. Säú byte chuyãøn âæåüc âãø trong chuyãøn dæî liãûu cho âãún khi coï tên hiãûu EOP tæì thanh ghi âãúm cuía kãnh 1.Byte cáön chuyãøn luïc âáöu bãn ngoaìi hoàûc cho âãún khi khäng coìn yãu cáöu DMA âæåüc âoüc tæì vuìng gäúc vaìo thanh ghi taûm âãø räöi næîa(DRQ tråí nãn khäng têch cæûc) tæì âoï noï âæåüc gæíi âãún vuìng âêch trong bæåïc tiãúp Trong chãú âäü DMA chuyãøn tæìng byte, chæìng naìo theo( hoaût âäüng nhæ lãûnh MOVSB nhæng våïi täúc váùn coìn yãu caìu DMA(DRQ váùn laì têch cæûc.) thç âäü cao). DMAC âæa ra HRQ=0 trong thåìi gian 1 chu kç bus sau Bit D1=1 duìng âãø cho pheïp kãnh 0 giæî nguyãn âëa mäùi láön chuyãøn sang 1 byte. Sau âoï noï laûi âæa ra chè trong chãú âäü truyãön giæî liãûu giæîa 2 vuìng nhåï. HRQ=1. Cæï nhæ váûy DMAC vaì CPU luán phiãn nhau Âiãöu naìy khiãún cho toaìn bäü caïc ä nhåï vuìng âêch xæî duûng bus cho âãún khi âãúm hãút(TC) âæåüc naûp cuìng mäüt byte dæî liãûu. Trong chãú âäü DMA chuyãøn caí maîng, caí mäüt maîng Bit D2 cho pheïp DMAC hoaût âäüng hay khäng. gäöm mäüt säú byte bàòng näüi dung bäü âãúm âæåüc Bit D3 quyãút âënh byte cáön chuyãøn âæåüc truyãön våïi chuyãøn liãön 1 luïc. Chán yãu cáöu chuyãøn dæî liãûu 4hay 2 chu kç âäöng häö. DRQ khäng cáön phaíi giæî âæåüc åí mæïc têch cæûc Bit D4 cho pheïp choün chãú âäü æu tiãn cäú âënh (kãnh suäút trong quaï trçnh chuyãøn. 0 coï mæïc æu tiãn cao nháút. Kãnh 3 coï mæïc æu tiãn Chãú âäü näúi táön âæåüc duìng khi coï nhiãöu bäü tháúp nháút) hoàûc chãú âoü æu tiãn luán phiãn( kãnh 0 DMAC.âæåüc duìng trong hãû thäúng âãø måí räüng säú luïc âáöu coï mæïc æu tiãn cao nháút. Sau khi kãnh naìy kãnh coï thãø yãu cáöu DMA. âæåüc choün âãø chuyãøn dæî liãûu thç noï âæåüc + Thanh ghi yãu cáöu: yãu cáöu DMA coï thãø âæåüc nháûn mæïc æu tiãn tháúp nháút. Kãnh 1 laûi tråí thaình thiãút láûp/ xoaï theo yï muäún bàòng chæång trçnh. kãnh coï mæïc æu tiãn cao nháút...) Âiãöu naìy ráút coï låüi khi ta muäún chuyãøn dæî liãûu giæîa caïc vuìng khaïc nhau cuía bäü nhåï luïc naìy caïc
  7. kãnh liãn quan phaíi âæåüc láûp trçnh åí chãú âoü Hçnh 8.9. Daûng thæïc cuía thanh ghi màût naû riãng cho mäùi chuyãøn caí maîng. kãnh Daûng thæïc cuía thanh ghi yãu cáöu âæåüc biãøu diãøn trãn hçnh 8.8 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 X X X X X X X X X 1.Thiãút láûp yãu cáöu 00: choün 1.Láûp màût naû cho kãnh 3 1: Láûp màût naû kãnh 0 cho kãnh 0 0: xoïa theo yãu cáöu 01: choün 0: xoïa màût naû cho kãnh 3 0 Xoïa màût naû kãnh 1 cho kãnh 0 10: choün kãnh 2 1:Láûp màût naû cho kãnh 2 1: láûp màût naû 11: choün kãnh 3 cho kãnh 1 Hçnh 8.8 daûng thæïc cuía thanh ghi yãu cáöu 0: Xoïa màût naû cho kãnh 2 0: xoïa màût naû + Thanh ghi màût naû riãng cho tæìng kãnh: bàòng thanh cho kãnh 1 ghi naìy ta coï thãø láûp trçnh âãø cáúm (cho Bit màût naû tæång æïng = 1) thay cho pheïp hoaût âäüng (cho Bit Hçnh 8.10. Daûng thæïc cuía thanh ghi màût naû täøng màût naû tæång æïng = 0) âäúi våïi tæìng kãnh mäüt . håüp. Daûng thæïc cuía thanh ghi màût naû riãng leí cho tæìng kãnh âæåüc biãøu diãùn trãn hçnh 8.9 . - Thanh ghi traûng thaïi : Thanh ghi naìy cho pheïp xaïc + Thanh ghi màût naû täøng håüp: våïi thanh ghi naìy ta âënh traûng thaïi cuía caïc kãnh trong DMAC. Kãnh naìo coï thãø láûp trçnh âãø cáúm (cho Bit màût naû tæång âaî trãön xong (âaût säú âãúm. TC) kãnh naìo âang coï æïng = 1) thay cho pheïp hoaût âäüng (cho Bit màût naû yãu cáöu DMA âãø trao âäøi dæî liãûu. Khi mäüt kãnh tæång æïng = 0) âäúi våïi tæìng kãnh chè bàòng mäüt naìo âoï âaût TC. Kãnh âoï seî tæû âoüng bë cáúm lãûnh . Daûng thæïc cuía thanh ghi traûng thaïi âæåüc biãøu Daûng thæïc cuía thanh ghi màût naû täøng håüp âæåüc diãùn trãn hçnh 8.11. biãøu diãùn trãn hçnh 8.10 • Caïc lãûnh âàûc biãût cho DMAC 8237A - 5 7 6 5 4 3 2 1 0 X X X X X Coï 3 lãûnh âàûc biãût âãø âiãöu khiãøn hoaût âäüng 1.Thiãút láûp màût naû 00: choün cuía DMAC 8237A - 5 . Caïc lãûnh naìy chè thæûc hiãûn kãnh 0 bàòng caïc lãûnh OUT våïi caïc âëa chè cäøng xaïc âënh 0: xoïa theo màût naû 01: choün kãnh 1 thç theo thanh ghi maì khäng cáön âãún giaï trë cuû thãø 10: choün kãnh 2 cuía thanh ghi AL . 11: choün kãnh 3 (X: khäng quan tám) 7 6 5 4 3 2 1 0
  8. +ghi LSB räöi MSB cuía thanh ghi âëa chè +ghi LSB räöi MSB cuía thanh ghi säú âãúm . 1. Kãnh 0 coï yãu cáöu 1: Kãnh 0 âaût säú âãúm • Näúi DMAC 8237A -5 våïi CPU 8088 åí chãú âäü MIN 1: Kãnh 1 coï yãu cáöu 1: Kãnh 1 âaût säú âãúm 1: Kãnh 2 coï yãu cáöu 1: Kãnh 2 âaût säú âãúm Viãûc phäúi gheïp maûch 8237A-5 våïi 8088 âæåüc thãø 1: Kãnh 3 coï yãu cáöu 1: Kãnh 3 âaût säú âãúm hiãûn trãn hçnh 8.12 Tên hiãûu cuía 8237A AEN-=O khi CPU kiãøm soaït hoaût Hçnh 8.11. Daûng thæïc cuía thanh ghi traûng thaïi. âäüng cuía toaìn hãû . caïc bit âëa chè A 16 -A 19 vaì AO-A7 seî âæåüc chäút båíi U1 vaì U3 âãø âæa ra bit âëa chè . caïc tên + Lãûnh xoïa maûch láût byte âáöu/byte cuäúi (First/Laït, hiãûu âiãöu khiãøn dáøn xuáút tæì CPU cuîng âæåüc âæa ra F/L) : F/L laì mäüt maûch láût bãn trong DMAC âãø chè ra byte bus âiãöu khiãøn båíi maûch däön kãnh U5 (74LS257). KHI naìo trong caïc thanh ghi 16 bit âãø chè ra byte naìo trong caïc DMAC nàõm quyãön chè huy hãû thäúng thç AEN =1 seî cáúm thanh ghi 16bit (thanh ghi âëa chè hoàûc thanh ghi säú âãúm caïc chäút U3 vaìU4 måí thäng tæì CPU ra bus . nhæng laûi cho âæåüc choün laìm viãûc .nãúu F/L=1 thi säú âoï laì MSB , coìn pheïp chäút U2 vaì måí chäút U4 cuía DMAC âãø cung cáúp nãúu F/L=O ) thç säú âoï laì LSB.maûch láût F/L tæû âäüng thay caïc bit âëa chè A16-A19 vaì A8-A15.caïc bit âëa chè khaïc laì âäøi traûng thaïi khi ta ghi /âoüc caïc thanh ghi âoï . khi khåíi A0-A7 vaì caïc tên hiãûu MEMR.MEMR.IOR.IOW seî âæåüc âäüng xong thç F/L=O láúy træûc tiãúp tæì DMAC. lãûnh xoaï toaìn bäü caïc thanh ghi : lãûnh naìy coï taïc Xung ADSSTB seî cho pheïp måí maûch chäút U4 âãø âæa caïc âäüng nhæ thao taïc khåíi âäüng . táút caí caïc thanh ghji âãöu bit âëa chè A8-A15 . âæåüc chäút tæì bit D cuía 8237A -5. bë xoaï riãng thanh ghi màût naû täøng håüp thç âæåüc láûp Vç DMAC 8237A -5 chè coï khaí nàng cung cáúp caïc bit âãø cáúm caïc yãu cáöu trao âäøi dæî liãûu . âëa chè A16-A19 âæåüc ghi vaìo chäút U2 (74LS373) nhåì lãûnh xoaï thanh ghi màût naû täøng håüp :lãûnh naìy cho lãûnh OUT våïi âëa chè cäøng âæåüc giaíi maî nhåì maûch giaíi pheïp caïc kãnh cuía DMAC bàõt âáöu yãu cáöu trao âäøi dæî maî âëa chè U6 , maûch giaíi maî âëa chè naìy âäöng thåìi liãûu . cuîng cung cáúp xung choün veí cho 8237A -5 .trãn hçnh 8.12 âãø cho viãûc giaíi thêch tråí nãn âån giaín måïi chè biãøu • láûp trçnh cho caïc thanh ghi âëa chè vaì thanh ghi säú diãùn caïc caïch taûo ta âëa chè cao nháút cho mäüt kãnh ta coï thãø duìng vi maûch chuyãn duûng 74LS 670 âãø laìm thanh âãúm: ghi trang DMA cho caí 4 kãnh cuía DMAC . tat nhiãn ta phaíi viãûc láûp trçnh cho caïc thanh ghi âëa chè vaì thanh ghi säú näúi laûi caïc tên hiãûu cho âuïng . âãúm âæåüc thæûc hieûn riãng cho mäùi kãnh . cáön phaíi âënh • Mäüt vê duû truyãön dæî liãûu giæa hai vuìng nhåï træåïc giaï trë logic cuía F/L âãø thao taïc chênh xaïc âæåüc våïi LSB vaì MSB cuía caïc thanh ghi trãn . ngoaìi ra coìn phaíi cáúm Viãûc duìng chãú âoü DMA âãø chuãøyn dæî liãûu giæîa caïc yãu cáöu DMA cuía caïc kãnh trong khi láûp trçnh cho caïc vuìng klhaïc nhau cuía bäü cho pheïp âaût âæåüc täúc âäü chuïng. Coï thãø tuán theo caïc bæåïc sau âáy âãø láûp trçnh truyãön cao hån so våïi viãûc duìng caïc lãûnh chuyãøn dæî cho DMAC 8237A -5: liãûu REP MOV SB cuía CPU nãúu láúy vê duû våïi træåìng + xoaï màût láût F/L håüp DMAC 8237A -5 vaì CPU 8088 5MHZthç täúc âäü truyãön +cáúm caïc yãu cáöu cuía caïc kãnh cuía DMAC cao hån cåî 2 láön .
  9. Sau âáy laì mäüt vê duû sæí duûng 8237A -5 âãø chuyãøn dæî liãûu giæa 2 vuìng nhåï . Giaí thiãút ta phaíi chuyãøn säú mäüt säú byte säú liãûu tæì vuìng nhåï coï âëa chè laì 10000H sang vuìng nhåï khaïc coï chè âáöu laì 14000H trong mäüt hãû thäúng coï så âäö Trong chæång trçnh naìy , âáöu tiãn ta gæíi 4 bit âëa chè cao pháönDMAC vaì CPU dæûa trãn hçnh 8.12. chäút U1 , sau âoï ta xoaï maûch láût F/L räöi gæíi âëa chè cuía Ta coï thãø duìng chæång trçnh Mem Trans.asm âãø vuìng gäúc vaì vuìng âêch ra caïc thanh ghi tæång æïng cuía giaíi quyãút cäng viãûc naìy . kãnh o vaì kãnh 1.tiãúp theo ta choün chãú âäü cho mäùi kãnh . ta phaíi âæa ra tæì âiãöu khiãøn âãø cho DMAC laìm viãûc oqr chãú âäü chuyãøn caí maíng .Kãnh 0 sau âoï âæåüc cho pheïp hoaût âäüng vaì kêch hoaût âäüng bàòng chæång trçnh . trong quaï trçnh chuyãøn dæî liãûu ta kiãøm tra thanh ghi traûng thaïi âãø duìng chæång trçnh khi âaût säú âãúm (TC). • CHÆÅNG TRÇNH Mem Trans.asm m
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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