并行接口芯片课件1_第1页
并行接口芯片课件1_第2页
并行接口芯片课件1_第3页
并行接口芯片课件1_第4页
并行接口芯片课件1_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

並行介面晶片8255

當CPU要從外設輸入信號或者輸出資訊給外設,可以採用程式查詢方式、中斷方式和DMA方式。但是,不論採用哪一種方式,CPU總是通過介面電路(Interface)才能與外設連接。所以,介面電路一邊與CPU連接,另一邊與外設連接。

在介面電路中,要有輸入輸出數據的鎖存器和緩沖器,要有狀態(如Ready,Busy等)和控制命令的寄存器,以便於CPU與介面電路之間採用應答方式(程式查詢式)來交換資訊,也便於介面電路與外設之間傳送資訊。介面電路中還要有端口的解碼和控制電路,以及為了與CPU用中斷方式交換資訊所需要的中斷請求觸發器、中斷遮罩觸發器、中斷優先權排隊電路和能向CPU發出中斷向量的電路等。這樣,才能解決CPU的驅動能力問題、時序的配合問題以及實現各種控制,保證CPU能正確可靠地與外設交換資訊。

隨著大規模積體電路技術的發展,生產了許多通用的可編程序的介面晶片。這些介面晶片按數據傳送的方式可以分為並行介面和串行介面兩大類。本章只討論並行介面晶片,串行介面晶片放在第11章仲介紹。 通常並行介面晶片應該具有以下功能:

(1)兩個或兩個以上的具有鎖存器或緩衝器的數據端口;

(2)每個數據端口都有與CPU用應答方式交換信號所必需的控制和狀態資訊,也有與外設交換資訊所必需的控制和狀態資訊; (3)通常每個數據端口還具有能用中斷方式與CPU交換資訊所必需的電路;

(4)選片和控制電路;

(5)通常這類介面晶片可用程式選擇數據端口,選擇端口的傳送方向(輸入或輸出或雙向),選擇與CPU交換資訊的方法(查詢或中斷)等,故片中要有能實現這些選擇的控制字寄存器,它可由CPU用輸出指令來寫入。 所以,介面晶片在工作前必須要由CPU用輸出指令對它編程——初始化,以規定它的工作方式。10.1可編程的並行輸入輸出介面晶片8255A-5的結構 Intel8255A-5是一個為8080、8085和8086/8088微型電腦系統設計的通用I/O介面晶片。它可以用程式來改變功能,通用性強,使用靈活。通過它可以將CPU的匯流排直接接向外設。

8255A的方框圖如圖10-1所示。 8255A由以下幾個部分組成:1.數據端口A、B、C

它有三個輸入輸出端口:PortA、PortB和PortC。每一個端口都是8位,都可以選擇作為輸入或輸出,但功能上有著不同的特點。

(1)端口A:一個8位數據輸出鎖存和緩沖器;一個8位數據輸入鎖存器。

(2)端口B:一個8位數據輸入/輸出、鎖存/緩衝器;一個8位數據輸入緩衝器。

(3)端口C:一個8位數據輸出鎖存/緩衝器;一個8位數據輸入緩衝器(輸入沒有鎖存)。

通常端口A或B作為輸入輸出的數據端口,而端口C作為控制或狀態資訊的端口,它在方式字的控制下,可以分成兩個4位的端口,每個端口包含一個4位鎖存器,它們分別與端口A和B配合使用,可以作為控制信號輸出,或者作為狀態信號輸入。2.A組和B組控制電路 這是兩組根據CPU的命令字控制8255A工作方式的電路。它們有控制寄存器,接受CPU輸出的命令字,然後分別決定兩組的工作方式,也可根據CPU的命令字對端口C的每一位實現按位“複位”或“置位”。 A組控制電路控制端口A和端口C的上半部(PC7~PC4)。

B組控制電路控制端口B和端口C的下半部(PC3~PC0)。3.數據匯流排緩衝器 這是一個三態雙向8位緩衝器,它是8255A晶片與系統數據匯流排的介面。輸入輸出的數據,輸出的指令以及CPU發出的控制字和外設的狀態資訊,也都是通過這個緩衝器傳送的。4.讀/寫和控制邏輯 它與CPU的地址匯流排中的A1、A0以及有關的控制信號(RD#,WR#,RESET,IO/M#)相連,由它控制把CPU的控制命令或輸出數據送至相應的端口,也由它控制把外設的狀態資訊或輸入數據通過相應的端口,送至CPU。5.一些控制命令

(1)CS#(ChipSelect)——選片信號,低電平有效,由它啟動CPU與8255A晶片之間的通信(Communication)。

(2)RD#——讀信號,低電平有效。它控制8255A送出數據或狀態資訊至CPU。 (3)WR#——寫信號,低電平有效。它控制把CPU輸出的數據或命令信號寫到8255A。

(4)RESET——複位信號,高電平有效。它清除控制寄存器,並且置所有端口(A、B、C)為輸入方式。6.端口尋址

8255A中有三個輸入輸出端口,另外,內部還有一個控制字寄存器,共有四個端口,要有兩個輸入端來加以選擇,這兩個輸入端通常接到地址匯流排的最低兩位A1和A0。

A1、A0、RD#、WR#及CS#組合所實現的各種功能,如表10-1所示。10.2方式選擇

可編程並行介面8255A有三種基本的工作方式:

(1)方式0(Mode0)——基本輸入輸出方式;

(2)方式1(Mode1)——選通輸入輸出方式;

(3)方式2(Mode2)——雙向傳送方式。 如圖10-2所示,它們由CPU輸出的控制字來選擇。10.2.1方式選擇控制字

可編程並行介面8255A的工作方式,可由CPU利用I/O指令輸出一個控制字到8255A的控制字寄存器來選擇。這個控制命令字的格式如圖10-3所示。可以分別選擇端口A和端口B的工作方式,端口C分成兩部分,上半部(PC7~PC4)隨端口A,下半部(PC3~PC0)隨端口B。端口A有方式0、1和2三種工作方式,而端口B只能工作於方式0和1。10.2.2方式選擇舉例

若有一個8080系統,它有兩個8255A晶片,分別與不同的外設交換資訊,如圖10-4所示。 要確定兩個8255A的工作方式,就要在輸出控制字之前,先確定兩個8255A的各自的控制字寄存器的端口地址。

I/O端口地址由CPU地址匯流排的低8位A7~A0確定。在本例中,端口地址的考慮如圖10-5所示。

8位地址線可選擇256個不同端口,現在地址線最低兩位A0、A1用於8255A內部的端口選擇,另外6位A2~A7就用於選擇不同的8255A以及其他的外設,在本系統中外設少,故可用線選的方法來選擇不同的8255A。因而,兩個8255A的各個端口地址如表10-2所示。

當地址確定後,把地址匯流排的A0、A1直接接至8255A的A0、A1輸入端,地址匯流排的其他6位A2~A7應按地址的規定經解碼後送至8255A的CS#輸入端。 若要求8255A#1的各個端口處在如下的工作方式: 端口A方式0輸入 端口B方式1輸出 端口C(上半部)PC7~PC4輸出 端口C(下半部)PC3~PC0輸入

則要用方式控制字=10010101B或95H。 可用以下組合語言程式來置上述工作方式:CWR: EQU 0FBH;8255A#1控制字寄存器端口地址輸出方式控制字

MOV AL,10010101B OUT CWR,AL10.2.3按位置位/複位功能

端口C的8位中的任一位,可用一條輸出指令來置位或複位(其他位的狀態不變)。這個功能主要用於控制。能實現這個功能的控制字,如圖10-6所示。 若要使端口C的位3置位的控制字為00000111B,而使它複位的控制字為00000110B。相應的組合語言程式為:CWR: EQU 0FBH;置位端口C位3 MOV AL,00000111B OUT CWR,AL;複位端口C位3 MOV AL,00000110B OUT CWR,AL注意:使端口C按位置位或複位的控制字也是寫入至控制字寄存器的。10.3方式0的功能

10.3.1方式0的基本功能

方式0是一種基本的輸入或輸出方式。在這種工作方式下,三個端口的每一個都可由程式選定作為輸入或輸出,但這種方式沒有規定固定的用於應答式的聯絡信號線。其基本功能為:

(1)兩個8位端口(A,B)和兩個4位端口(端口C);

(2)任一個端口可以作為輸入或輸出;

(3)輸出是鎖存的; (4)輸入是不鎖存的;

(5)在方式0時,各個端口的輸入、輸出可以有16種不同的組合。 在這種工作方式下,任一個端口都可由CPU用簡單的輸入或輸出指令來進行讀或寫。方式0可作為查詢式輸入或輸出的介面電路,此時端口A和B可分別作為一個數據端口,而取端口C的某些位作為這兩個數據端口的控制和狀態資訊。10.3.2方式0的時序1.方式0的輸入時序 在方式0時,基本的輸入時序如圖10-7所示。 若外設的數據已經準備好,CPU用輸入指令從8255A讀入這個數據,則RD#的寬度至少應為300ns,而且地址信號必須在RD#有效前tAR時間有效。這樣在RD#有效後經過時間tRD,數據即可在數據匯流排上穩定。 經分析,在I/O讀週期8088CPU與8255A在時序上不能很好配合,需要CPU插入一個等待狀態。2.方式0的輸出時序 可編程並行介面晶片8255A方式0的基本輸出時序,如圖10-9所示。 要由寫指令把CPU的數據輸出給外設,對於8255A,要求寫脈衝寬度至少為400ns。且地址信號必須在寫信號前tAW時間有效。並保持tWA時間。另外要寫出的數據必須在寫信號結束前tDW時間有效(出現在數據匯流排上),且保持tWD時間。這樣,在寫信號後最多tWB時間,寫出的數據在輸出端口出現。經分析,I/O寫週期也要求8088插入一個等待狀態。10.4方式1的功能

這是一種選通的I/O方式。在這種方式時,端口A或端口B仍作為數據的輸入/輸出口,但同時規定端口C的某些位作為控制或狀態資訊。10.4.1方式1的主要功能 8255A的端口工作在方式1時,具有以下主要功能:

(1)用作一個或兩個選通端口;

(2)每一個端口包含:8位的數據端口,三條控制線(是固定指定的,不能用程式改變),提供中斷邏輯;

(3)任何一個端口都可作為輸入或輸出;

(4)若只有一個端口工作於方式1,餘下的13位,可以工作在方式0(由控制字決定);

(5)若兩個端口都工作於方式1,端口C還留下兩位,這兩位可以由程式指定作為輸入或輸出,也具有置位/複位功能。10.4.2方式1輸入

當任一端口工作於方式1輸入時,如圖10-11所示。其各個控制信號的意義為:

STB#(Strobe)——選通輸入,低電平有效。這是由外設供給的輸入信號,當其有效時,把輸入裝置來的數據送入輸入鎖存器。

IBF(InputBufferFull)——輸入緩衝器滿,高電平有效。這是一個8255A輸出至外設的聯絡信號。當其有效時,表示數據已輸入至輸入鎖存器,它由STB#信號置位(高電平),而RD#信號的上升沿使其複位。

INTR(InterruptRequest)——中斷請求信號,高電平有效。這是8255A的一個輸出信號,可用於作為向CPU的中斷請求信號,以要求CPU服務。它是當STB#為高電平、IBF為高電平和INTE(中斷允許)為高電平時被置為高,而由RD#信號的下降沿清除。

INTEA(InterruptEnableA)——端口A中斷允許信號,可由用戶通過對PC4的按位置位/複位來控制(PC4=1,允許中斷)。 而INTEB由PC2的置位/複位控制。 方式1的輸入時序,如圖10-12所示。

當外設的數據已經輸至8255A的端口數據線上,用選通信號把數據鎖入8255A的輸入鎖存器,選通信號的寬度至少為500ns。選通信號經過時間tSIT後,IBF信號有效,輸送給外設,阻止外設輸入新的數據,也可供CPU查詢。在選通信號結束後,經過tSIT向CPU發出INTR信號(中斷是允許的話)。CPU回應中斷,發出RD#信號,把數據讀入CPU。在RD#信號有效後經過tRIT就清除中斷請求,當RD#信號結束後,數據已讀至CPU,使IBF變低。表示輸入緩衝器已空,通知外設可以輸入新的數據。10.4.3方式1輸出 8255A的端口工作在方式1輸出時,如圖10-13所示。1.主要的控制信號

OBF#(OutputBufferFull)——輸出緩衝器滿信號,低電平有效。這是8255A輸出給外設的一個控制信號。當其有效時,表示CPU已經把數據輸出給指定的端口,外設可以把數據輸出。它由輸出命令WR#的上升沿設置為有效,由ACK#的有效信號使其恢復為高。

ACK#(Acknowledge)——低電平有效,這是一個外設的回應信號,指示CPU輸出給8255A的數據已經由外設接收。 INTR——中斷請求信號,高電平有效。當輸出裝置已經接收了CPU輸出的數據後,它用來作為向CPU提出新的中斷請求,要求CPU繼續輸出數據。當ACK#為“1”(高電平),OBF為“1”(高電平)和INTE為“1”(高電平)時,使其置位(高電平),而WR#信號的下降沿使其複位(低電平)。

INTEA由PC6的置位/複位控制。而INTEB由PC2的置位/複位控制。2.時序

8255工作在方式1輸出時的時序,如圖10-14所示。 用在中斷控制方式時,輸出過程是由CPU回應中斷開始的,在中斷服務程式中,CPU輸出數據和發出WR#信號,WR#信號一方面清除INTR(經過時間tWIT),另外在WR#上升沿,使OBF有效,通知外設接收數據,實質上OBF信號是外設的一個選通命令。在WR#上升沿後經過tWB時間數據就輸出了,當外設接收數據後,發出ACK#信號,它一方面使OBF無效(經過tAOB),另一方面在ACK#的上升沿使INTR有效(經過tAIT),發出新的中斷請求。10.5方式2的功能

這種工作方式,使外設可以在單一的8位匯流排上,既能發送數據也能接收數據(雙向匯流排I/O)。工作時可用程式查詢方式,也可工作在中斷方式。10.5.1方式2的主要功能 8255A的端口工作在方式2時,具有以下主要功能:

(1)方式2只用於端口A;

(2)一個8位的雙向匯流排端口(A)和一個5位控制端口(端口C);

(3)輸入和輸出是鎖存的;

(4)5位控制端口是用作端口A的控制和狀態資訊,如圖10-15所示。 各個信號的意義為:

INTR——中斷請求信號,高電平有效。在輸入和輸出方式時,用來作為向CPU發出的中斷請求信號。 OBF#——輸出緩衝器滿,低電平有效。這是對外設的一種命令信號,表示CPU已把數據輸出至端口A。

ACK#——回應信號,低電平有效。ACK#的有效沿啟動端口A的三態輸出緩衝器,送出數據;否則,輸出緩衝器處在高阻狀態。ACK#的上升沿是數據已輸出的回答信號。

INTE1——與輸出緩衝器相關的中斷遮罩觸發器,由PC6的置位/複位控制。

STB#——選通輸入,低電平有效。這是外設供給8255A的選通信號,它把輸入數據選通至輸入鎖存器。

IBF——輸入緩衝器滿,高電平有效。它是一個控制資訊,指示數據已進入輸入鎖存器。在CPU未把數據讀走前,IBF始終為高電平,阻止輸入設備送來新的數據。

INTE2——與輸入緩衝器相關的中斷遮罩觸發器,由PC4的置位/複位控制。10.5.2方式2的時序 8255A的端口工作在方式2的時序,如圖10-16所示。 方式2實質上是方式1輸入與方式1輸出的組合,故各個時間參數的意義與方式1的相同。輸出是由CPU執行輸出指令(給出I/O的WR#)信號開始的,輸入是由選通信號開始的。 圖上的輸入、輸出的順序是任意的,只要WR#在ACK#以前發生。STB#在RD#以前發生就行。 在輸入和輸出的情況下,都可以用中斷方式。故

INTR=IBF·MASK#·STB#·RD#+OBF#·MASK#·ACK#·WR#

其中,MASK#=INTE。10.5.3方式2控制字

當端口A工作於方式2時,端口B可以工作在方式0或方式1;可以作為輸入,也可以作為輸出。此時端口C的各位的功能如圖10-17所示。

若要求8255A工作於如下所示的方式:

則方式字ICW=11000110B=C6H

在8255A方式控制命令字已經輸出後,讀端口C,則可得到如下的方式2狀態字:

若要允許方式2中斷,則可用端口C的置位/複位命令: 允許輸出中斷,置PC6,則控制字為00001101B。 允許輸入中斷,置PC4,控制字為00001001B。10.68255應用舉例

下麵以雙機並行通信介面為例,介紹8255的應用。1.要求 在甲乙兩臺微型電腦之間並行傳送1KB數據。甲機發送,乙機接收。甲機一側的8255A採用方式1工作,乙機一側的8255A採用方式0工作。兩臺微機的CPU與介面之間都採用查詢方式交換數據。2.分析 根據要求,雙機均採用可編程並行介面晶片8255A構成介面電路,只是8255A的工作方式不同。3.設計

(1)硬體連接。根據上述要求,介面電路的連接如圖10-18所示。 甲機8255A為方式l發送(輸出),因此,把PA口指定為輸出,發送數據,PC7和PC6引腳由方式1規定作為聯絡信號線OBF#和ACK#。乙機8255A為方式0接收(輸入),把PA口用作輸入,接收數據,聯絡信號自行選擇,可選擇PC4和PC0作為聯絡信號線,PC4輸入、PC0輸出。雖然,兩側的8255A都設置了聯絡信號線,但它們是不同的,甲機8255A工作在方式1,其聯絡信號PC7、PC6是由方式1規定的不可替換;而乙機的8255A工作在方式0,其聯絡信號線是可以選擇的,比如可選PC5、PC1或PC6、PC7等。 (2)軟體編程

①甲機發送程式:

MOV DX,303H;8255A命令口

MOV AL,10100000B;端口A,方式1;端 口B沒用方式字

OUT DX,AL;輸出方式字

MOV AL,0DH;置發送中斷允許INTEA=1 OUT DX,AL;PC6置“1” MOV AX,030H;發送數據的首地址

MOV ES,AX MOV BX,00H MOV CX,3FFH;置發送位元組數

MOV DX,300H;置8255A數據字地址

MOV AL,ES:[BX];取第一個發送數據 OUT DX,AL;寫第一個數,產生第一個 OBF#信號

INC BX;指向下一個數

DEC CX;位元組數-1L: MOV DX,302H;8255

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论