輸入輸出與接口技術(shù).ppt
《輸入輸出與接口技術(shù).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《輸入輸出與接口技術(shù).ppt(91頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
微機(jī)原理 匯編與接口技術(shù) 朱定華 2008 8 6 1 6 2 6 3 接口的基本概念 I O指令和I O地址譯碼 數(shù)字通道接口 第六章輸入輸出和接口技術(shù) 6 4 模擬通道接口 輸入輸出 I O 是指微型計(jì)算機(jī)與外界的信息交換 即通信 communication 微型計(jì)算機(jī)與外界的通信 是通過輸入輸出設(shè)備進(jìn)行的 通常一種I O設(shè)備與微型機(jī)連接 就需要一個(gè)連接電路 我們稱之為I O接口 接口是用于控制微機(jī)系統(tǒng)與外設(shè)或外設(shè)與系統(tǒng)設(shè)備之間的數(shù)據(jù)交換和通信的硬件電路 接口設(shè)計(jì)涉及到兩個(gè)基本問題 一是中央處理器如何尋址外部設(shè)備 實(shí)現(xiàn)多個(gè)設(shè)備的識(shí)別 二是中央處理器如何與外設(shè)連接 進(jìn)行數(shù)據(jù) 狀態(tài)和控制信號(hào)的交換 1 接口的一般定義接口是一組電路 是中央處理器與存儲(chǔ)器 輸入輸出設(shè)備等外設(shè)之間協(xié)調(diào)動(dòng)作的控制電路 接口電路并不局限在中央處理器與存儲(chǔ)器或外設(shè)之間 也可在存儲(chǔ)器與外設(shè)之間 如直接存儲(chǔ)器存取DMA接口就是控制存儲(chǔ)器與外設(shè)之間數(shù)據(jù)傳送的電路 6 1接口的基本概念 6 1 1接口的功能 6 1接口的基本概念 2 接口電路的功能 接口電路的作用就是將來自外部設(shè)備的數(shù)據(jù)信號(hào)傳送給處理器 處理器對(duì)數(shù)據(jù)進(jìn)行適當(dāng)加工 再通過接口傳回外部設(shè)備 所以 接口的基本功能就是對(duì)數(shù)據(jù)傳送實(shí)現(xiàn)控制 具體包括以下5種功能 地址譯碼 數(shù)據(jù)緩沖 信息轉(zhuǎn)換 提供命令譯碼和狀態(tài)信息以及定時(shí)和控制 6 1接口的基本概念 3 接口電路的基本結(jié)構(gòu) 控制命令邏輯電路一般由命令字寄存器和控制執(zhí)行邏輯組成 這一部分是接口電路的 中央處理器 用來完成全部接口操作的控制 狀態(tài)設(shè)置和存儲(chǔ)電路主要由一組數(shù)據(jù)寄存器構(gòu)成 中央處理器和外設(shè)就是根據(jù)狀態(tài)寄存器的內(nèi)容進(jìn)行協(xié)調(diào)動(dòng)作的 數(shù)據(jù)存儲(chǔ)和緩沖電路也是一組寄存器 用于暫存中央處理器和外設(shè)之間傳送的數(shù)據(jù) 以完成速度匹配工作 6 1接口的基本概念 1 數(shù)據(jù)傳送方式 6 1 2接口控制原理 6 1 2接口控制原理 異步串行通信協(xié)議規(guī)定字符數(shù)據(jù)的傳送格式 異步串行通信中 接收設(shè)備和發(fā)送設(shè)備必須保持相同的傳送波特率 并與每個(gè)字符數(shù)據(jù)的起始位同步 起始位 數(shù)據(jù)位 奇偶位和停止位約定 在同一次傳送過程中必須保持一致 6 1 2接口控制原理 2 傳送控制方式 6 1 2接口控制原理 傳送控制方式有查詢 中斷和DMA3種 2 傳送控制方式 6 1 2接口控制原理 在查詢方式下 CPU需要完成以下操作 1 CPU向接口發(fā)出傳送命令 輸入數(shù)據(jù)或輸出數(shù)據(jù) 2 中央處理器查詢外設(shè)是否允許傳送 在查詢方式下 中央處理器需要花費(fèi)較多的時(shí)間去不斷地 詢問 外設(shè) 外設(shè)的接口電路處于被動(dòng)狀態(tài) 傳送控制方式有查詢 中斷和DMA3種 6 1 2接口控制原理 中斷方式是在外設(shè)要與中央處理器傳送數(shù)據(jù)時(shí) 外設(shè)向中央處理器發(fā)出請(qǐng)求 中央處理器響應(yīng)后再傳送數(shù)據(jù)的操作方式 在中斷方式下 中央處理器不必查詢外設(shè) 提高了系統(tǒng)的工作效率 但中央處理器管理中斷的接口比管理查詢復(fù)雜 6 1 2接口控制原理 DMA方式是數(shù)據(jù)不經(jīng)過中央處理器在存儲(chǔ)器和外設(shè)之間直接傳送的操作方式 DMA方式是這3種方式中效率最高的一種傳送方式 DMA方式控制接口也最復(fù)雜 需要專用的DMA控制器 DMA方式適合數(shù)據(jù)量較大的傳送 如存儲(chǔ)器與磁盤之間的數(shù)據(jù)傳送 接口控制信號(hào)可分為兩類 總線控制信號(hào)和輸入輸出控制信號(hào) 接口控制信號(hào)圖 輸入輸出控制信號(hào)比較復(fù)雜 不同控制方式的接口信號(hào)不同 一般包括數(shù)據(jù)線 輸入輸出應(yīng)答信號(hào)等 中斷接口和DMA接口的控制信號(hào)更復(fù)雜一些 通常由接口芯片提供專用控制信號(hào)來完成數(shù)據(jù)傳送控制 總線控制信號(hào)包括數(shù)據(jù)線 地址線 等 6 1 3接口控制信號(hào) 微處理器進(jìn)行I O操作時(shí) 對(duì)I O接口的尋址方式與存儲(chǔ)器尋址方式相似 即必須完成兩種選擇 一是選擇出所選中的I O接口芯片 稱為片選 二是選擇出該芯片中的某一寄存器 稱為字選 通常有兩種I O接口結(jié)構(gòu) 一種是標(biāo)準(zhǔn)的I O結(jié)構(gòu) 另一種是存儲(chǔ)器映象I O結(jié)構(gòu) memorymappedI O 與之對(duì)應(yīng)的有兩種I O尋址方式 6 2I O指令和I O地址譯碼 標(biāo)準(zhǔn)的I O尋址方式有以下3個(gè)特點(diǎn) 1 I O設(shè)備的地址空間和存儲(chǔ)器地址空間是獨(dú)立的 分開的 即I O接口地址不占用存儲(chǔ)器的地址空間 2 微處理器對(duì)I O設(shè)備的管理是利用專用的IN 輸入 和OUT 輸出 指令來實(shí)現(xiàn)數(shù)據(jù)傳送的 3 CPU對(duì)I O設(shè)備的讀 寫控制是用I O讀 寫控制信號(hào) 一個(gè)外設(shè)常有若干個(gè)端口地址 6 2 1標(biāo)準(zhǔn)的I O尋址方式 1 存儲(chǔ)器映象I O尋址方式又稱為存儲(chǔ)器對(duì)應(yīng)I O尋址方式 有3個(gè)特點(diǎn) 1 I O接口與存儲(chǔ)器共用同一個(gè)地址空間 即在系統(tǒng)設(shè)計(jì)時(shí)指定存儲(chǔ)器地址空間內(nèi)的一個(gè)區(qū)域供I O設(shè)備使用 故I O設(shè)備的每一個(gè)寄存器占用存儲(chǔ)器空間的一個(gè)地址 這時(shí)存儲(chǔ)器與I O設(shè)備之間的唯一區(qū)別是其所占用的地址不同 2 CPU利用對(duì)存儲(chǔ)器的存儲(chǔ)單元進(jìn)行操作的指令來實(shí)現(xiàn)對(duì)I O設(shè)備的管理 3 CPU用存儲(chǔ)器讀 寫控制信號(hào) 對(duì)I O設(shè)備進(jìn)行讀 寫控制 6 2 2存儲(chǔ)器映像I O尋址方式 2 存儲(chǔ)器映象I O尋址方式的優(yōu)點(diǎn) 1 CPU對(duì)外設(shè)的操作可使用全部的存儲(chǔ)器操作指令 故指令多 使用方便 如可對(duì)外設(shè)中的數(shù)據(jù) 存于外設(shè)的寄存器中 進(jìn)行算術(shù)和邏輯運(yùn)算 進(jìn)行循環(huán)或移位等 2 存儲(chǔ)器和外設(shè)的地址分布圖是同一個(gè) 3 不需要專門的輸入 輸出指令 3 其缺點(diǎn)有以下兩種 1 外設(shè)占用了內(nèi)存單元 使內(nèi)存容量減小 2 存儲(chǔ)器操作指令通常要比I O指令的字節(jié)多 故加長(zhǎng)了I O操作的時(shí)間 6 2 2存儲(chǔ)器映像I O尋址方式 6 2 3輸入輸出指令 輸入指令是把一個(gè)字節(jié)或一個(gè)字由輸入端口傳送至AL 8位Acc 或AX 16位Acc 或EAX 32位Acc 端口地址若是由指令中的port所規(guī)定 則只可尋址0 255 端口地址若用寄存器DX間址 則允許尋址64K個(gè)輸入端口 6 2 3輸入輸出指令 輸出指令是把AL中的一個(gè)字節(jié)或AX中的一個(gè)字或者EAX中的一個(gè)雙字 傳送至輸出端口 端口尋址方式與IN指令相同 輸入輸出指令傳送字節(jié)還是字 取決于端口的寬度 PCXT機(jī)端口寬度只有 位 只能傳送字節(jié) 80 x86微處理器都由低16位地址線尋址I O端口 故可尋址64K個(gè)I O端口 但在實(shí)際的80 x86PC機(jī)中 只用了最前面1K個(gè)端口地址 也即只尋址1K范圍內(nèi)的I O空間 因此僅使用了地址總線的低10位 即只有地址線A9 A0用于I O地址譯碼 在DMA操作時(shí) DMA控制器控制了系統(tǒng)總線 DMA控制器在發(fā)出地址的同時(shí)還要發(fā)出地址允許信號(hào)AEN 所以還必須將DMA控制器發(fā)出的地址允許信號(hào)AEN也參加端口地址的譯碼 用AEN限定地址譯碼電路的輸出 當(dāng)AEN信號(hào)有效時(shí)即DMA控制器控制系統(tǒng)總線時(shí) 地址譯碼電路無輸出 當(dāng)AEN信號(hào)無效時(shí) 地址譯碼電路才有輸出 6 2 4I O接口的端口地址譯碼 無論是大規(guī)模集成電路的接口芯片 還是基本的輸入輸出緩沖單元 都是由一個(gè)或多個(gè)寄存器加上一些附加控制邏輯構(gòu)成的 對(duì)這些寄存器的尋址就是對(duì)接口的尋址 通常采用兩級(jí)譯碼方法 譯碼地址的高位組確定一個(gè)地址區(qū)域 作為組選信號(hào) 低位組地址直接接到芯片的地址輸入端 選擇芯片內(nèi)各寄存器 6 2 4I O接口的端口地址譯碼 圖6 4是采用直接地址譯碼尋址端口的電路 圖6 4所示的直接地址譯碼電路的輸出線分別用于輸入和輸出 6 2 4I O接口的端口地址譯碼 圖6 5所示的直接地址譯碼電路的輸出線 既可以用于輸入也可以用于輸出 圖6 5輸入輸出直接地址譯碼 6 2 4I O接口的端口地址譯碼 PC微機(jī)接口芯片的譯碼電路 6 2 4I O接口的端口地址譯碼 6 2 4I O接口的端口地址譯碼 這種譯碼電路節(jié)省系統(tǒng)地址空間 但在尋址時(shí)必須把間接地址作為數(shù)據(jù)輸出 這樣就多使用了一條OUT指令 6 2 4I O接口的端口地址譯碼 間接端口譯碼電路圖 在接口電路中 大量使用三態(tài)緩沖器 寄存器和三態(tài)緩沖寄存器來作微處理器與外部設(shè)備的數(shù)字量通道 用來輸入輸出數(shù)據(jù)或檢測(cè)和控制與之相連接的外部設(shè)備 微處理器可以將接口電路中的三態(tài)緩沖 寄存 器視為存儲(chǔ)單元 把控制或狀態(tài)信號(hào)作為數(shù)據(jù)位信息寫到寄存器中或從三態(tài)緩沖 寄存 器中讀出 寄存器的輸出信號(hào)可以接到外部設(shè)備上 外部設(shè)備的信號(hào)也可以輸入到三態(tài)緩沖寄存器中 一般說來 微處理器都是通過三態(tài)緩沖 寄存 器檢測(cè)外設(shè)的狀態(tài) 通過輸出寄存器發(fā)出控制信號(hào) 6 3數(shù)字通道接口 數(shù)據(jù)輸出寄存器用來寄存微處理器送出的數(shù)據(jù)和命令 74LS273可以用作無條件傳送的輸出接口電路 6 3 1數(shù)據(jù)輸出寄存器 8D觸發(fā)器74LS273 外設(shè)輸入的數(shù)據(jù)和狀態(tài)信號(hào) 通過數(shù)據(jù)輸入三態(tài)緩沖器經(jīng)數(shù)據(jù)總線傳送給微處理器 74LS244三態(tài)總線驅(qū)動(dòng)器 74LS244可以用作無條件傳送的輸入接口電路 6 3 2數(shù)據(jù)輸入三態(tài)緩沖器 三態(tài)緩沖寄存器是三態(tài)緩沖器和寄存器組成的 數(shù)據(jù)進(jìn)入寄存器寄存后并不立即從寄存器輸出 要經(jīng)過三態(tài)緩沖才能輸出 三態(tài)緩沖寄存器既可以作數(shù)據(jù)輸入寄存器 又可作數(shù)據(jù)輸出寄存器 寄存器既可以由觸發(fā)器構(gòu)成 也可以鎖存器構(gòu)成 觸發(fā)器與鎖存器是有差別的 74LS373就是三態(tài)緩沖鎖存器 74LS374是三態(tài)緩沖觸發(fā)器 它的引線排列與74LS373相同 6 3 3三態(tài)緩沖寄存器 寄存器和緩沖器接口的應(yīng)用簡(jiǎn)單又靈活 只要處理好它們的時(shí)鐘端 選通端 或輸出允許端與微型計(jì)算機(jī)的連接即可 在下述應(yīng)用接口電路中都使用圖6 10所示的電路的地址譯碼 該電路的8個(gè)輸出端是對(duì)圖6 5所示的輸入輸出直接地址譯碼電路的進(jìn)一步譯碼的輸出 圖6 10讀緩沖器和寫寄存器信號(hào) 6 3 4寄存器和緩沖器接口的應(yīng)用 6 3 4寄存器和緩沖器接口的應(yīng)用 發(fā)光二極管顯示器 LED 是微型計(jì)算機(jī)應(yīng)用系統(tǒng)中常用的輸出裝置 6 3 4寄存器和緩沖器接口的應(yīng)用 七段顯示器動(dòng)態(tài)顯示接口電路 把從PC機(jī)的鍵盤鍵入的六位十進(jìn)制數(shù)送七段顯示器顯示的程序如下 stacksegmentstack stack dw32dup 0 stackendsdatasegmentIBFDB7 0 7DUP 0 SEGPTDB40H 79H 24H 30H 19H 12H 2 78H 0 18Hdataendscodesegmentstartprocfarassumess stack cs code ds datapushdssubax axpushaxmovax datamovds axMOVDX OFFSETIBF 鍵入MOVAH 10INT21HAGANO MOVBP OFFSETIBF 2 建立指針MOVAH 20H 位指針代碼MOVBH 0 將鍵入數(shù)的ASCII碼變?yōu)锽CD數(shù)AGANI MOVBL DS BP ANDBL 0FH MOVAL SEGPT BX 取BCD數(shù)的七段顯示代碼MOVDX 380H 輸出段碼OUTDX ALMOVAL AH 輸出位碼MOVDX 384HOUTDX ALMOVCX 1000 延時(shí)LOOP INCBP 調(diào)整BCD數(shù)存放指針SHRAH 1 調(diào)整位指針ANDAH AH 鍵入的6位數(shù)都輸出否 JNZAGANI 6位數(shù)都已輸出則退出內(nèi)循環(huán)MOVAH 11 系統(tǒng)功能調(diào)用檢查鍵盤有無輸入INT21HCMPAL 0 鍵盤有輸入AL 0FFH 無輸入AL 0JEAGANO 有鍵入結(jié)束程序運(yùn)行 無鍵入循環(huán)retstartendpcodeendsendstart 本節(jié)介紹的鍵盤是由若干個(gè)按鍵組成的開關(guān)矩陣 用于向計(jì)算機(jī)輸入數(shù)字 字符等代碼 是最常用的輸入電路 在鍵盤的按鍵操作中 其開或閉均會(huì)產(chǎn)生10 20ms的抖動(dòng) 可能導(dǎo)致一次按鍵被計(jì)算機(jī)多次讀入的情況 通常采有RC吸收電路或RS觸發(fā)器組成的閂鎖電路來消除按鍵抖動(dòng) 也可以采用軟件延時(shí)的方法消除抖動(dòng) 這里設(shè)開關(guān)為理想開關(guān)即沒有抖動(dòng) 6 3 4寄存器和緩沖器接口的應(yīng)用 下圖是一個(gè)4 4鍵盤及其接口電路 用它向計(jì)算機(jī)輸入0 F16個(gè)十六進(jìn)制數(shù)碼 撥盤種類很多 使用最方便的是十進(jìn)制數(shù)輸入 BCD碼輸出的BCD碼撥盤 6 3 4寄存器和緩沖器接口的應(yīng)用 將圖6 15撥盤組輸入的8位十進(jìn)制數(shù)讀入數(shù)據(jù)區(qū)并送PC機(jī)的顯示器顯示 圖6 158位撥盤組及其接口電路 程序如下 stacksegmentstack stack dw32dup 0 stackendsdatasegmentKEYTABDB7EH 7DH 0BDH 0DDH 7BH 0BBH 0DBH 77HDB0B7H 0D7H 0E7H 0EBH 0EDH 0EEH 0DEH 0BEHdataendscodesegmentstartprocfarassumess stack cs code ds datapushdssubax axpushaxmovax datamovds axMOVBX 0 撥盤輸入數(shù)據(jù)區(qū)的位移量MOVAH 80H 撥盤位選值LOP1 MOVDX 384H 撥盤位選值輸出MOVAL AHNOTAL OUTDX ALMOVDX 380H 讀入一位撥盤的值 存入輸入數(shù)據(jù)區(qū)INAL DXANDAL 0FHMOVIBUF BX ALINCBX 改變輸入數(shù)據(jù)區(qū)的位移量SHRAH 1 改變撥盤的位選值A(chǔ)NDAH AH 檢測(cè)8位是否已讀入JNZLOP1MOVSI OFFSETIBUF 7 將輸入值變?yōu)锳SCII碼送輸出數(shù)據(jù)區(qū)MOVDI OFFSETOBUF 7MOVCX 8LOP2 MOVAL SI ADDAL 30HMOV DI ALDECSIDECDILOOPLOP2MOVOBUF 8 MOVDX OFFSETOBUF 將8位撥盤值送顯示器顯示MOVAH 9INT21H 較早期的打印機(jī)適配器是以板卡形式插在主機(jī)板的總線槽中的 隨著芯片集成度的提高 主機(jī)板集成了越來越多的部件和相應(yīng)功能 打印機(jī)適配器也因此作為一個(gè)部件集成于主機(jī)板中 但原理和對(duì)外信號(hào)連接仍然相同 本節(jié)介紹較早期的打印機(jī)適配器的工作原理 該適配器不僅可以用作連接打印機(jī)的接口電路 也可以作為通用輸入輸出接口 打印機(jī)適配器由輸入電路 輸出電路 地址譯碼電路和數(shù)據(jù)總線隔離電路4部分組成 6 3 5打印機(jī)適配器 1 地址譯碼電路和數(shù)據(jù)總線隔離電路 打印機(jī)適配器的譯碼電路采用直接譯碼與跳線開關(guān)相結(jié)合的方法提供兩個(gè)地址區(qū)域的端口地址 其地址為378H 37FH和278H 27FH 圖6 16打印機(jī)適配器的地址譯碼電路和數(shù)據(jù)總線隔離電路 數(shù)據(jù)總線隔離電路使用的是雙向總線驅(qū)動(dòng)器74LS245 74LS245的輸入由地址譯碼電路的輸出信號(hào)和控制 僅在對(duì)端口378H 37FH或278H 27FH進(jìn)行輸入或輸出操作時(shí) 74LS245才將雙向三態(tài)門單方向打開 圖6 16打印機(jī)適配器的地址譯碼電路和數(shù)據(jù)總線隔離電路 2 輸出電路和命令字 打印機(jī)適配器的輸出電路包括數(shù)據(jù)輸出電路和命令輸出電路 如圖6 17所示 數(shù)據(jù)輸出電路由74LS374組成 地址譯碼電路的將打印數(shù)據(jù)送到外部數(shù)據(jù)線DATA7 DATA0 命令輸出電路由輸出控制字寄存器74LS174組成 地址譯碼電路的將打印機(jī)適配器的輸出控制字送輸出控制字寄存器74LS174鎖存 輸出控制字寄存器74LS174只有5位有效信號(hào) 這5位信號(hào)與控制命令字各位一一對(duì)應(yīng) 3 輸入電路和狀態(tài)字 圖6 20打印機(jī)適配器的狀態(tài)輸入字 4 打印機(jī)適配器與打印機(jī)的連接 圖6 21打印機(jī)與并行口的連接 打印機(jī)適配器通過并行口 25芯D型插座 與打印機(jī) 36芯D型插座 的連接如圖6 21所示 采用查詢方式打印寄存器AL內(nèi)的一個(gè)字符的子程序如下 PRINTPROCPUSHAXPUSHDXMOVDX 378HOUTDX AL 輸出AL中的字符MOVDX 379HWAIT INAL DX 讀入打印機(jī)的狀態(tài)TESTAL 80H 測(cè)試打印機(jī)是否 忙 JZWAITMOVDX 37AHMOVAL 0DH 輸出0DH和0CH 即為一個(gè)選通脈沖OUTDX ALMOVAL 0CHOUTDX ALPOPDXPOPAXRETPRINTENDP 微型計(jì)算機(jī)只能處理數(shù)字形式的信息 但是在實(shí)際工程中大量遇到的是連續(xù)變化的物理量 例如溫度 壓力 流量 光通量 位移量以及連續(xù)變化的電壓 電流等等 對(duì)于非電信號(hào)的物理量 必須先由傳感器進(jìn)行檢測(cè) 并且轉(zhuǎn)換為電信號(hào) 然后經(jīng)過放大器放大為0 5V電平的模擬量 模擬通道接口的作用就是實(shí)現(xiàn)模擬量和數(shù)字量之間的轉(zhuǎn)換 模 數(shù) A D 轉(zhuǎn)換就是把輸入的模擬量變?yōu)閿?shù)字量 供微型計(jì)算機(jī)處理 數(shù) 模 D A 轉(zhuǎn)換就是將微型計(jì)算機(jī)處理后的數(shù)字量轉(zhuǎn)換為模擬量輸出 6 4模擬通道接口 A D和D A的重要技術(shù)指標(biāo)有 1 分辨率 resolution 分辨率是指轉(zhuǎn)換器對(duì)輸出的數(shù)字量與輸入的模擬量或輸出的模擬量與輸入的數(shù)字量的分辨能力 通常用二進(jìn)制數(shù)的位數(shù)來表示轉(zhuǎn)換器的分辨率 位數(shù)越多分辨率也就越高 對(duì)于n位轉(zhuǎn)換器 其分辨率為整個(gè)模擬量的1 2n 2 轉(zhuǎn)換時(shí)間轉(zhuǎn)換時(shí)間指轉(zhuǎn)換器完成一次模擬量與數(shù)字量轉(zhuǎn)換所花的時(shí)間 這個(gè)參數(shù)直接影響到系統(tǒng)的速度 6 4模擬通道接口 3 量化誤差量化誤差是指實(shí)際輸出值與理論值之間的誤差 量化誤差是轉(zhuǎn)換器的轉(zhuǎn)換分辨率直接造成的 由于輸入模擬量是連續(xù)變化的 只有當(dāng)它的值為0 0196V的整數(shù)倍時(shí) 模擬量值才能準(zhǔn)確轉(zhuǎn)換成對(duì)應(yīng)的數(shù)字量 否則模擬量將被 四舍五入 后由相近的數(shù)字量輸出 例如0 025V被轉(zhuǎn)換成01H輸出 0 032V被轉(zhuǎn)換成02H輸出 最大誤差為1 2個(gè)最低有效位 這就是量化誤差 具有8位分辨率的A D轉(zhuǎn)換器 當(dāng)輸入0 5V電壓時(shí) 對(duì)應(yīng)的數(shù)字輸出為00H FFH 即輸入每變化0 0196V時(shí) 輸出就變化1 6 4模擬通道接口 由于D A轉(zhuǎn)換器與微型計(jì)算機(jī)接口時(shí) 微型計(jì)算機(jī)是靠輸出指令輸出數(shù)字量供DAC轉(zhuǎn)換之用 而輸出指令送出的數(shù)據(jù)在數(shù)據(jù)總線上的時(shí)間是短暫的 不足一個(gè)輸出周期 所以DAC和微型計(jì)算機(jī)間 需有數(shù)據(jù)寄存器來保持微型計(jì)算機(jī)輸出的數(shù)據(jù) 供DAC轉(zhuǎn)換用 目前生產(chǎn)的DAC芯片可分為2類 一類芯片內(nèi)部設(shè)置有數(shù)據(jù)寄存器 不需外加電路就可直接與微型計(jì)算機(jī)接口 另一類芯片內(nèi)部沒有數(shù)據(jù)寄存器 因此不能直接與微型計(jì)算機(jī)接口 必須通過并行接口與微型計(jì)算機(jī)接口 下面分別介紹這二類DAC芯片與微型計(jì)算機(jī)的接口方法 6 4 1數(shù)模轉(zhuǎn)換器及其與微型計(jì)算機(jī)的接口 1 8位數(shù)模轉(zhuǎn)換器DAC0832 DAC0832是具有20條引線的雙列直插式CMOS器件 它內(nèi)部具有兩級(jí)數(shù)據(jù)寄存器 完成8位電流DA轉(zhuǎn)換 1 DAC0832的結(jié)構(gòu) 2 DAC0832與微型計(jì)算機(jī)的接口由于DAC0832內(nèi)部有輸入寄存器和DAC寄存器 所以它不需要外加其他電路便可以與微型計(jì)算機(jī)的數(shù)據(jù)總線直接相連 根據(jù)DAC0832的5個(gè)控制信號(hào)的不同連接方式 使得它可以有3種工作方式 1 直通方式將 和接地 ILE接高電平 就能使得兩個(gè)寄存器跟隨輸入的數(shù)字量變化 DAC的輸出也同時(shí)跟隨變化 直通方式常用于連續(xù)反饋控制的環(huán)路中 圖6 22DAC0832內(nèi)部結(jié)構(gòu)框圖和引線 1 8位數(shù)模轉(zhuǎn)換器DAC0832 2 單緩沖工作方式將其中一個(gè)寄存器工作在直通狀態(tài) 另一個(gè)處于受控的鎖存器狀態(tài) 在實(shí)際應(yīng)用中 如果只有一路模擬量輸出 或雖有幾路模擬量但并不要求同步輸出 就可采用單緩沖方式 單緩沖方式連接的方法有3種 如圖6 23所示 第1種方法為使DAC寄存器處于直通方式 第2種方法是使輸入寄存器處于直通方式 第3種方法是使輸入寄存器和DAC寄存器同時(shí)處于受控的鎖存器狀態(tài) 1 8位數(shù)模轉(zhuǎn)換器DAC0832 將數(shù)據(jù)區(qū)BUFF中的數(shù)據(jù)轉(zhuǎn)換為模擬電壓輸出的程序如下 stacksegmentstack stack dw32dup 0 stackendsdatasegmentBUFDB23 45 67 COUNTEQU BUFdataendscodesegmentstartprocfar 略MOVBX OFFSETBUFMOVCX COUNTAGAIN MOVDX 380HMOVAL BX OUTDX ALINCBXLOOPAGAIN 略endstart 例6 1產(chǎn)生鋸齒波 在許多應(yīng)用中 要求有一個(gè)線性增長(zhǎng)的鋸齒波電壓來控制檢測(cè)過程 移動(dòng)記錄筆或移動(dòng)電子束等 對(duì)此可通過DAC0832的輸出端接運(yùn)算放大器來實(shí)現(xiàn) 鋸齒波產(chǎn)生電路 產(chǎn)生鋸齒波的程序如下 stacksegmentstack stack dw32dup 0 stackendscodesegmentstartprocfarassumess stack cs code 略MOVDX 380HAGAIN INCALOUTDX ALPUSHAXMOVAH 11 11號(hào)功能調(diào)用INT21HCMPAL 0 有鍵入AL FFH 無鍵入AL 0POPAXJEAGAIN 無鍵入繼續(xù)retstartendpcodeendsendstart 兩個(gè)寄存器都處于受控方式 為了實(shí)現(xiàn)兩個(gè)寄存器的可控 應(yīng)當(dāng)給它們各分配一個(gè)端口地址 以便能按端口地址進(jìn)行操作 數(shù) 模轉(zhuǎn)換采用兩步寫操作來完成 可在DAC轉(zhuǎn)換輸出前一個(gè)數(shù)據(jù)的同時(shí) 將下一個(gè)數(shù)據(jù)送到輸入寄存器 以提高DA轉(zhuǎn)換速度 還可用于多路數(shù) 模轉(zhuǎn)換系統(tǒng) 以實(shí)現(xiàn)多路模擬信號(hào)同步輸出的目的 3 雙緩沖工作方式 圖6 25DAC0832的雙緩沖連接方式 圖6 25為DAC0832與微型計(jì)算機(jī)接口的雙緩沖方式連接電路 這時(shí) 輸入寄存器和DAC寄存器分別控制 故占用兩個(gè)端口地址 380H和384H 380H選通輸入寄存器 384H選通DAC寄存器 例6 2用DAC0832控制繪圖儀 X Y繪圖儀由X Y兩個(gè)方向的電機(jī)驅(qū)動(dòng) 其中一個(gè)電機(jī)控制繪圖筆沿X方向運(yùn)動(dòng) 另一個(gè)電機(jī)控制繪圖筆沿Y方向運(yùn)動(dòng) 從而繪出圖形 因此對(duì)X Y繪圖儀的控制有兩點(diǎn)基本要求 一是需要兩路D A轉(zhuǎn)換器分別給X通道和Y通道提供模擬信號(hào) 二是兩路模擬量要同步輸出 兩路模擬量輸出是為了使繪圖筆能沿X Y軸作平面運(yùn)動(dòng) 而模擬量同步輸出則是為了使繪制的曲線光滑 否則繪制出的曲線就是臺(tái)階狀的 為此就要使用兩片DAC0832 并采用雙緩沖方式連接 如圖6 26所示 繪圖儀的驅(qū)動(dòng)子程序?yàn)?HTYPROCPUSHCXPUSHDXMOVDX 380HOUTDX AL 輸出XMOVDX 384HXCHGAH ALOUTDX AL 輸出YMOVDX 388H X Y送DAC寄存器OUTDX ALPOPDXPOPCXHTYENDP 2 10位DA轉(zhuǎn)換器AD7520 AD7520為不帶數(shù)據(jù)鎖存器的10位數(shù)摸轉(zhuǎn)換電路 其外部引線如圖6 27所示 圖6 27AD7520的引線排列 b1 b10為數(shù)據(jù)輸入線 b1為MSB b10為L(zhǎng)SB VDD為電源端 5V 15V VREF為基準(zhǔn)電壓端 RFE為反饋輸入端 GND為數(shù)字地 Iout1和Iout2為電流輸出端 AD7520也是電流型輸出的DA轉(zhuǎn)換器 將電流轉(zhuǎn)換成電壓輸出的原理及電路均與DAC0832相同 由于AD7520自身不帶鎖存器 所以與計(jì)算機(jī)的接口方法可以仿照DAC0832 用數(shù)據(jù)輸出寄存器做AD7520的輸入寄存器和DAC寄存器 如圖6 28所示 若為單緩沖方式 則只須輸入寄存器和DAC寄存器中的任一個(gè)即可 圖6 28AD7520的接口電路 還可以只用8位數(shù)據(jù)線 但多用1片74LS74做AD7520的輸入數(shù)字量接口 如圖6 29所示 圖6 29只用8位數(shù)據(jù)線與AD7520的接口電路 若待轉(zhuǎn)換的10位數(shù)據(jù)在AX中 則完成一次DA轉(zhuǎn)換的程序段如下 MOVDX 380HXCHGAH ALOUTDX ALXCHGAH ALMOVDX 384HOUTDX AL 各種型號(hào)的ADC芯片都具有如下的信號(hào)線 數(shù)據(jù)輸出線D0 D7 8位ADC 啟動(dòng)A D轉(zhuǎn)換信號(hào)SC與轉(zhuǎn)換結(jié)束信號(hào)EOC 首先計(jì)算機(jī)啟動(dòng)A D轉(zhuǎn)換 轉(zhuǎn)換結(jié)束后 ADC送出EOC信號(hào)通知計(jì)算機(jī) 計(jì)算機(jī)用輸入指令從ADC的數(shù)據(jù)輸出線D0 D7讀取轉(zhuǎn)換數(shù)據(jù) ADC與微型計(jì)算機(jī)的接口就是要正確處理上述3種信號(hào)與微型計(jì)算機(jī)的連接問題 ADC的數(shù)據(jù)輸出端的連接要視其內(nèi)部是鎖存器還是三態(tài)輸出鎖存緩沖器 若是三態(tài)輸出鎖存緩沖器 則可直接與微型計(jì)算機(jī)的數(shù)據(jù)總線相連 若是鎖存器 則應(yīng)將其數(shù)據(jù)輸出端通過三態(tài)緩沖器與數(shù)據(jù)總線相連 6 4 2模數(shù)轉(zhuǎn)換器ADC及其與微型計(jì)算機(jī)的接口 1 8位逐次逼近式A D轉(zhuǎn)換器ADC0808 ADC0808內(nèi)部結(jié)構(gòu) ADC0808與微型計(jì)算機(jī)的接口 由于ADC0808芯片內(nèi)部集成了數(shù)據(jù)鎖存三態(tài)緩沖器 其數(shù)據(jù)輸出線可以直接與計(jì)算機(jī)的數(shù)據(jù)總線相連 所以 設(shè)計(jì)ADC0808與微型計(jì)算機(jī)的接口 主要是對(duì)模擬通道的選擇 轉(zhuǎn)換啟動(dòng)的控制和讀取轉(zhuǎn)換結(jié)果的控制等方面的設(shè)計(jì) 用ADC0808對(duì)8路模擬信號(hào)進(jìn)行循環(huán)采集 各采集100個(gè)數(shù)據(jù)分別存入8個(gè)數(shù)據(jù)區(qū)中的無條件傳送的接口電路如圖6 31所示 圖6 31ADC0808與微型計(jì)算機(jī)的接口 無條件傳送的采集程序如下 stacksegmentstack stack dw32dup 0 stackendsdatasegmentCOUNTEQU100BUFFDBCOUNT 8DUP 0 dataendscodesegmentstartprocfarassumess stack cs code ds data 略MOVBX OFFSETBUFFMOVCX COUNTOUTLP PUSHBXMOVDX 380H 指向0通道地址INLOP OUTDX AL 啟動(dòng)轉(zhuǎn)換 鎖存模擬通道地址MOVAX 50000 延時(shí) 等待轉(zhuǎn)換結(jié)束WT DECAXJNZWT ADC0808的轉(zhuǎn)換時(shí)間為100 S INAL DX 讀取轉(zhuǎn)換結(jié)果MOV BX ALADDBX COUNT 指向下一通道的存放地址INCDX 指向下一通道的地址CMPDX 388H 8個(gè)通道都采集了嗎 JBINLOPPOPBX 0通道存放地址彈出INCBX 指向0通道的下一存放地址LOOPOUTLPretstartendpcodeendsendstart 2 12位逐次比較式數(shù)模轉(zhuǎn)換芯片AD574 AD574系列包括AD574 AD674 AD774和AD1674等型號(hào)的芯片 是AD公司生產(chǎn)的12位逐次逼近型ADC AD574系列片內(nèi)具有三態(tài)輸出鎖存緩沖器和時(shí)鐘信號(hào) 模擬信號(hào)輸入及輸入極性信號(hào) 10VIN 0V 10V的單極性或 5V 5V的雙極性輸入線 20VIN 0V 20V的單極性或 10V 10V雙極性輸入線 REFOUT 片內(nèi)基準(zhǔn)電壓輸出線 REFIN 片內(nèi)基準(zhǔn)電壓輸入線 BIPOFF 極性調(diào)節(jié)線 2 12位逐次比較式數(shù)模轉(zhuǎn)換芯片AD574 1 芯片引線 2 12位逐次比較式數(shù)模轉(zhuǎn)換芯片AD574 模擬量從10VIN或20VIN輸入 輸入極性由REFIN REFOUT和BIPOFF的外部電路確定 AD574與微型計(jì)算機(jī)的接口信號(hào) 12 12位轉(zhuǎn)換或8位轉(zhuǎn)換線 片選線 低電平選通芯片 A0 端口地址線 R 讀結(jié)果 啟動(dòng)轉(zhuǎn)換線 高電平讀結(jié)果 低電平啟動(dòng)轉(zhuǎn)換 CE 芯片允許線 高電平允許轉(zhuǎn)換 2 12位逐次比較式數(shù)模轉(zhuǎn)換芯片AD574 這5個(gè)信號(hào)之間的邏輯關(guān)系如下表 它是接口設(shè)計(jì)的主要依據(jù) AD574的真值表 STS轉(zhuǎn)換狀態(tài)指示 轉(zhuǎn)換期間為高電平 轉(zhuǎn)換結(jié)束后輸出變?yōu)榈碗娖?各信號(hào)之間的時(shí)序關(guān)系如圖6 34所示 2 12位逐次比較式數(shù)模轉(zhuǎn)換芯片AD574 電源線與地線 VL 5V電源 VCC 12V 15V參考電壓源 VEE 12V 15V參考電壓源 DC 數(shù)字地 AC 模擬地 2 12位逐次比較式數(shù)模轉(zhuǎn)換芯片AD574 2 AD574與微型計(jì)算機(jī)的接口 啟動(dòng)轉(zhuǎn)換的端口地址為381H 查詢的端口地址為384H 讀取高8位數(shù)據(jù)的端口地址為380H 讀取低4位數(shù)據(jù)的端口地址為381H 2 12位逐次比較式數(shù)模轉(zhuǎn)換芯片AD574 由于讀取的數(shù)據(jù)是向左對(duì)齊的 故要將其進(jìn)行移位操作 使其向右對(duì)齊 又由于是雙極性輸入 所以還要將轉(zhuǎn)換結(jié)果減去800H stacksegmentstack stack dw32dup 0 stackendsdatasegmentCOUNTEQU100BUFFDWCOUNTDUP 0 dataendscodesegmentstartprocfarassumess stack cs code ds datapushdssubax axpushaxmovax datamovds ax 采集100個(gè)數(shù)據(jù) 并將其送數(shù)據(jù)區(qū)BUFF存放的程序如下 MOVBX 0MOVCH COUNTMOVCL 4MOVDX 381H 指向啟動(dòng)轉(zhuǎn)換的端口地址LOP OUTDX AL 啟動(dòng)轉(zhuǎn)換MOVDX 384H 查詢轉(zhuǎn)換是否結(jié)束 WT INAL DXTESTAL 1JNZWTMOVDX 380H 轉(zhuǎn)換結(jié)束 指向高8位端口地址INAL DX 讀取轉(zhuǎn)換結(jié)果的高8位MOVAH ALINCDX 指向低4位端口地址INAL DX 讀低4位SHRAX CL 左對(duì)齊的數(shù)據(jù)移位 使其向右對(duì)齊SUBAX 800HMOVBUFF BX AXADDBX 2DECCHJNZLOPret 略 接口控制信號(hào)圖 圖6 4輸入和輸出分開的直接地址譯碼 圖6 17打印機(jī)適配器的輸出電路 圖6 19打印機(jī)適配器的輸入電路 圖6 23DAC0832的單緩沖方式連接 輸入數(shù)據(jù)線直接與數(shù)據(jù)總線相連 圖6 31ADC0808與微型計(jì)算機(jī)的接口 圖6 34AD574的時(shí)序圖- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 輸入輸出 接口 技術(shù)
鏈接地址:http://m.jqnhouse.com/p-5406246.html