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

下载本文档

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

文档简介

並行介面7.1並行介面的特點

①並行介面最基本的特點:是在多根數據線上以數據字節(字)為單位與I/O設備或被控對象傳送資訊。如印表機介面,A/D,D/A轉換器介面,IEEE-488介面,開關量介面,控制設備介面等。與此對應的有串行介面,它是在一根線上以數據位為單位與I/O設備或通信設備傳送資訊。如CRT、鍵盤及數據機介面等。因此,並行口的“並行”含義不是指介面與系統匯流排一側的並行數據線面言(這是當然的),而是指介面與I/O設備或被控對象一側的並行數據線。並行口適應用於近距離傳送的場合。由於各種I/O設備和被控對象多為並行數據線連接,CPU用並行口來組成應用系統很方便,故使用十分普遍。7.1並行接口的特點上一頁返回7.1並行接口的特點②在並行介面中,除了少數場合(無條件傳送)之外,一般都要求在介面與外設之間設置並行數據線的同時,至少還要設置兩根握手(聯絡)信號線,以便進行互鎖非同步握手方式(即查詢方式)的通信。握手信號線在有些介面晶片中是固定的,如Z-80PIO中提供Ready和Strobe進行握手聯絡。而在另一些介面晶片中,握手信號線是通過軟體編程指定的,如在後面講到的8255A那樣。③在並行介面中,8位或16位是一起行動的,因此,當採用並行介面與外設交換數據時,即使是只用到其中的一位,也是一次輸入/輸出8位或16位。上一頁返回7.1並行接口的特點④並行傳送的資訊,不要求固定的格式,這與串行傳送的資訊有數據格式的要求不同。例如,起止式非同步串行通信的數據幀格式是一個數據包括起始位、數據位、校驗位和停止位等。

另外,從並行介面的電路結構來看,並行口有硬線連接介面和可編程介面之分。硬線連接介面的工作方式及功能用硬線連接來設定,用軟體編程序的方法不能改變;如果介面的工作方式及功能可以用軟體編程序的方法改變,就叫可編程介面。本章只討論可編程並行介面。上一頁返回7.2可編程並行介面

——8255A第七章並行介面7.2可

口所謂可編程實際上就是具有可選擇性,並且是用編程的方法進行選擇。例如,選擇晶片中的哪一個或哪幾個數據端口與外設連接;選擇端口中的哪一位或哪幾位作作輸入,哪一位或哪幾位作輸出;選擇端口與CPU之間採用哪種方式傳送數據等,均可由用戶在程式中寫入方式字或控制字來進行指定。因此,它們具有廣泛的適應性及很高的靈活性,在微機系統中得廣泛應用。

對於各種型號的CPU都有與其配套的並行介面晶片.如Intel公司8255A(PPI),Zilog公司Z-80PIO,Motorola公司MC6820(PIA)等,它們的功能雖有差異,但工作原理基本相同。本節著重討論8255A晶片。上一頁返回7.2可

口1.8255A的基本特性:①8255A是一個具有兩個8位(A口和B口)和兩個4位(C口高/低4位)並行I/O端口的介面晶片,它為Intel系列CPU與外部設備之間提供TTL電平相容的介面,如印表機,A/D,D/A轉換器,鍵盤,步進電機以及需要同時兩位以上資訊傳送的一切形式的並行介面。並且它的PC口還具有按位置位/複位功能,為按位控制提供了強有力的支持。一、8255A的外部特性和內部結構上一頁返回7.2可

口②8255A能適應CPU與I/O介面之間的多種數據傳送方式的要求。如無條件傳送、應答方式(查詢)傳送和中斷方式傳送,與此相應,8255A設置了0方式、1方式以及2方式(雙向傳送)。③8255A可執行功能很強,內容豐富的兩條命令(方式字和控制字)來使用8255A構成多種介面電路,組建微機應用系統提供了靈活方便的編程環境。8255A在執行命令過程中和執行命令完畢之後,它所產生的狀態保留在狀態字中,以供查詢。上一頁返回7.2可

口④8255APC口的使用比較特殊,除特殊數據口外,當工作在1方式和2方式時,它的大部分引腳被分配作專用聯絡信號;PC口可以進行按位控制;在CPU讀取8255A狀態時,PC口又作1,2方式的狀態口用,等等。這是8255的難點,學習時要特別注意。C口的使用情況請見後面關於“與外部設備的連接信號線”。

⑤8255A晶片內部主要由控制寄存器、狀態寄存器和數據寄存器組成,因此,以後的編程主要也是對這3類寄存器進行訪問。上一頁返回7.2可

口上一頁返回圖7.12、8255A的外部引線與內部結構

8255A是一個單+5V電源供電,40個引腳的雙列直插式組件,其外部引線如所示。⑴外部引腳它作為介面電路的8255A具有面向CPU和麵向外設兩個方向的連接能力。因此,它的引腳分成兩部分。

圖7.1面向數據匯流排的有:

CS:選片信號,低電平有效,由系統的高位地址線I/O端口譯碼電路產生。CS為低電平時,才能對8255A

進行讀寫操作。當CS為高電平時,切斷CPU與晶片的聯繫.

A1,A0:晶片內部端口地址信號,與系統地址匯流排低位相連,用來尋址8255A內部寄存器兩位地址,可形成片內4個端口地址。ˉˉˉ①與系統匯流排的連接信號7.2可

口上一頁返回7.2可

口面向控制匯流排的有:ˉ

RD:讀信號,低電平有效。CPU通過執行IN指令使RD有效,即發讀信號將數據或狀態信號從8255A讀至CPU。

WR:寫信號,低電平有效。CPU通過執行OUT指令使WR有效,即發寫信號,將命令代碼或數據寫入8255A。

ˉˉˉ上一頁返回7.2可

RESET:複位信號,高電平有效。它清除控制寄存器並將8255A的A、B、C三個端口均置為輸入方式;輸出寄存器和狀態寄存器被複位,並且遮罩中斷請求;24條面向外設的信號線呈現高阻懸浮狀態。這種勢態,一直維持到用方式命令才能改變,使其進入用戶所需的工作方式。上一頁返回7.2可

PA0~PA7:端口A的輸入/輸出線。

PB0~PB7:端口B的輸入/輸出線。

PC0~PC7:端口C的輸入/輸出線。

這24根信號線均可用來連接I/O設備和傳送資訊。其中,A口和B口只作輸入/輸出的數據口用,儘管有時也利用它們從I/O設備讀取一些狀態信號,如印表機的“忙”(Busy)狀態信號、A/D轉換器的“轉換結束”(EOC)狀態信號,但對A口和B口來說,都是作8255A的數據口讀入,而不是作8255A的狀態口讀入的。A口和B口作數據口輸入/輸出時,是8位一起行動的,即使是只用到其中的某1位,也要同時輸入/輸出8位。②與外部設備的連接信號上一頁返回C口的作用與8255A的工作方式有關,它除了作數據口以外,還有其他用途,故C口的使用比較特殊,單獨介紹如下:

a.作數據口

C口作數據口時和A口、B口不一樣,它是把8位分成高4位和低4位兩部分,高4位PC4~PC7與A口一起組成A組,低4位PC0~PC3與B口組成B組。因此,C口作數據口輸入輸出時,是4位一起行動,即使只使用其中的1位,也要4位一起輸入或輸出。7.2可

口上一頁返回7.2可

b.作狀態口

8255A在1,2方式下,有固定的狀態字,是從C口讀入的。此時,C口就是8255的狀態口。而A口和B口不能作8255A本身的狀態口用。

c.

作專用(固定)聯絡(握手)信號線8255A的1,2方式是一種應答方式,在傳送過程中需要進行應答的聯絡信號。因此,在1,2方式下,C口的大部分引腳分配作了固定的聯絡線。雖然,A口和B口的引腳有時也作聯絡信號用,但它們不是固定的。上一頁返回7.2可

口d.作按位控制用

C口的8個引腳可以單獨從1個引腳輸出高/低電平。此時,C口是作按位控制用,而不是作數據輸出用。

C口的這些特殊應用,擴展了8255A的功能,以後將逐步介紹。上一頁返回7.2可

口⑵內部結構8255A的內部結構如所示。

它由以下4個部分組成。

①數據匯流排緩衝器這是一個三態雙向8位緩衝器,它是8255A與CPU系統數據匯流排的介面。所有數據的發送與接收,以及CPU發出的命令字和從8255A來的狀態資訊都是該緩衝器傳送的。上一頁返回圖7.2圖7.27.2可

口②讀/寫控制邏輯讀/寫控制邏輯由讀信號RD、寫信號WR、選片信號CS及端口的選擇信號A1A0等組成。讀/寫控制邏輯控制了匯流排的開放/關閉和資訊傳送的方向,以便把CPU的控制命令或輸出數據送到相應的端口;或把外設的信息或輸入數據從相應的端口送到CPU

8255A的基本操作及在PC系統和實驗平臺上的端口地址如所示。

ˉˉˉ上一頁返回表7.2表7.27.2可

口③輸入/輸出端口A、B、C

8255A包括3個8位輸入輸出端口(port)。每個端口都有一個數據輸入寄存器和一個數據輸出寄存器,輸入時端口有三態緩衝器的功能,輸出時端口有數據鎖存器功能。在實際應用中,PC口的8位可分為兩個4位端口(0方式下),也可以分成一個5位端口和一個3位端口(2方式下)來使用。上一頁返回④A組和B組控制電路控制A、B和C三個端口的工作方式,A組控制A口和C口的上半部(PC4~PC7),B組控制B口和C口的下半部(PC0~PC3)的工作方式和輸入輸出。A組、B組的命令寄存器還接收按位控制命令,以實現對PC口的按位置位/複位操作。7.2可

口上一頁返回二、8255A的編程命令8255A的編程命令包括工作方式命令和對PC口的按位操作命令,它們是用戶使用8255A來組建各種介面電路的重要工具,要熟練掌握。

由於這兩個命令都送到8255A的同一個命令端口,故為了讓8255A能識別是哪個命令,採用在命令代碼中設置特徵位的方法。若寫入的命令字的最高位D7=1,則是工作方式命令;若寫入的命令字D7=0,則是PC口的按位置位/複位命令。下麵討論這兩個命令字的作用及格式。7.2可

口上一頁返回7.2可

口1、方式命令作用:指定8255A的工作方式及其方式下3個並行端口(PA、PB、PC)的功能,是作輸入還是作輸出。

格式:8位,其中最高位是特徵位,一定要寫1,其餘各位的定義如下,應根據用戶的設計要求填寫1或。

上一頁返回方式命令表從方式命令的格式可知:A組有3種方式(0方式、1方式、2方式),

B組有2種工作方式(0方式、1方式)。端口PC分成2部分,上半部屬A組,下半部屬B組。所有3個並行端口,置1指定為輸入,置0指定為輸出。利用工作方式命令的不同代碼組合,可以分別選擇A組和B組的工作方式和穩中有降端口是輸入還是輸出。7.2可

口上一頁返回7.2可

例1:要把A口指定為1方式,輸入,C口上半部定為輸出;B口指定為0方式,輸出,C口下半部定為輸入,則工作方式命令代碼是:1011001B或B1H。

若將此命令代碼寫到8255A的命令寄存器,即實現了對8255A工作方式及端口功能的指定,或者說完成了對8255A的初始化。初始化的程式段為:MOVDX,303H;8255A命令口地址MOVAL,0B1H;初始化命令OUTDX,AL;送到命令口上一頁返回7.2可

口2.按位置位/複位命令字作用:指定PC口的某一位(某一個引腳)輸出高電平或低電平。格式:8位,其中最高位是特徵位,一定要寫0,其餘各位的定義如下,應根據用戶的設計要求填寫1或0。上一頁返回按位/置位命令字7.2可

口利用按位/置位命令可以使PC口的8根線中的任意1要置成高電平輸出或低電平輸出。上一頁返回7.2可

例2:若要把C口的PC2引腳置成高電平輸出,則命令字應該為00000101B或05H。

將該命令的代碼寫入8255A的命令寄存器,就會使得從PC口的PC2引腳輸出高電平,其程式段為:

MOVDX,303H;8255A命令口地址

MOVAL,05H;使PC2=1的命令字

OUTDX,AL;送到命令口上一頁返回7.2可

口如果要使引腳PC2輸出低電位,則程式段為:

MOVDX,303H;8255命令口地址

MOVAL,04H;使PC2=0的命令

OUTDX,AL;送到命令口按位置位/複位命令產生的輸出信號,可作為控制開關的通/斷,繼電器的吸合/釋放,電機的啟/停等操作的選通信號。利用C口的按位控制特性還可以產生正負脈衝或方波輸出,對外設進行控制。上一頁返回

例3:利用8255的PC7產生脈衝,作印表機介面電路的數據選通信號,其程式段為:

MOVDX,303H;8255A命令口

MOVAL,00001110B;置PC7=0OUTDX,ALNOP;維持低電平

NOPMOVAL,00001111B;置PC7=1

OUTDX,AL7.2可

口上一頁返回7.2可

例4:利用8255A的PC0產生方波,經濾波和功放後,送到喇叭,使產生不同頻率的聲音,其程式段為:

OUTSPKPROC

MOVDX,303H;8255A命令口

MOVAL,00001101B;置PC6=1OUTDX,AL

CALLDELAY1;PC6輸出高電平維持的時間

MOVAL,00001100B;置PC6=0

OUTDX,ALCALLDELAY1;PC6輸出低電平維持的時間

RET

OUTSPKENDP上一頁返回7.2可

口若改變DELAY1的延時時間,即可改變喇叭發聲的頻率。上一頁返回7.2可

口3.關於兩個命令的討論①方式命令是對8255A的3個端口的工作方式及功能進行指定,即進行初始化,初始工作要在使用8255A之前做。也就是說,凡是用到8255A,就一定要先初始化。②按位置位/複位命令)只是對PC口的輸出進控制,使用它並不破壞已經建立的3種工作方式,而是對它們實現動態控制的一種支持。它可放在初始化程式以後的任何地方。上一頁返回7.2可

口④按位置位/複位的命令代碼只能寫入命令口,這個問題經常有人弄錯。因為表面看起來,按位置位/複位命令是對C口進行操作,所以,也就心為可以把按位置位/複位的命令代碼寫到C口(數據口)。這是錯誤的想法,因為按位置位/複位是一個命令,它就要按命令的定義格式來處理每一位,如果把它寫入C口,就會按C口的數據定義格式來處理。這兩種定義完全不同的格式是不能互換的,所以,只能寫到命令口,按命令定義來處理。

上一頁返回7.2可

口③兩個命令的最高位(D7)都分配作了特徵位,之所以要設置特徵位,是為了識別兩個不同的命令。在命令代碼中沒置特徵位(標誌位)是解決多個命令寫入同一個命令口時如何進行識別而經常採用的方法之一。由於8255A兩個命令的特徵位不同,D7=1時,為工作方式命令;D7=0時,為按位置位/複位命令。因此,可以判斷,命令代碼的值等於、大於80H的,是工作方式命令;小於80H的,是按位置位/複位命令,並且奇數值是置位命令,而偶數值是複位命令。上一頁返回7.2可

口4.A口和B口另一個有趣的使用方法A口、B口也可以按位輸出高/低電平,但是,它與前面的按位置位/複位命令有本質的差別,並且實現的方法也不同。C口按位輸出是以命令的形式送到命令寄存器去執行的,而A口的按位輸出是以送數據到A口、B口來實現的。其具體作法是:若要使某一位置高電平,則先對端門進行讀操作,將讀人的原輸出值,”或”上一個位元組,位元組中該位為1,其他位為0,然後再送到同一端口,即可使該位置位。若要使某一位置低電平,則先讀入1個位元組,再將它“與”上一個位元組,位元組中使該位為0,其他位為1,然後再送到同一端口,即可實現對該位的複位而不影響其他位的狀況。

上一頁返回7.2可

口當然,能夠這樣作的條件是8255A的輸出有鎖行能力,若定義數據口為輔出而對其執行IN命令時,所讀到的內容就是上次輸出時鎖存的數據,而不是讀人外設送來的數據、上一頁返回7.2可

例5:若要使PA7,位輸出高/低電平.則用下列程式段:

使PA7輸出高電平

MOVDX,300H;PA數據口地址

INAL,DX;讀人A口原輸出內容

MOVAH,AL;保存原輸出內容

ORAL,80H;使PA7=1

OUTDX,AL;輸出PA7

MOVAL,AH;恢復原輸出內容

OUTDX,AL

上一頁返回7.2可

口使PA7輸出低電平

MOVDX,300H;A口地址

INAL,DX;讀人端口原輸出值

MOVAH,AL;保存原輸出值

ANDAL,7FH;使PA7=0

OUTDX,AL;輸出PA7

MOVAL,AH;恢復原輸出值

OUTDX,AL

用這種方法不僅可實現使單獨一位輸出高/低電平,還可以使幾位同時輸出高/低電平。上一頁返回7.2可

例6:使B口的PB1和PB0同時置位複位,其程式如下:

MOVDX,301H;PB數據口地址

INAL,DX;讀入原輸出值

MOVAH,AL;保存原輸出值

ORAL,03H;使PB1PB0=11

OUTDX,AL;同時輸出PB1PB0

ANDAL,0FCH;使PB1

PB0=00

OUTDX,AL;同時輸出PB1PB0

上一頁返回7.2可

三、8255A的工作方式在使用8255A時,除了對3個並行端口分配作輸入或輸出之外,還要考慮輸入輸出的方式。同樣是輸入(或輸出),若方式不同,8255A的引腳(主要是C口的引腳)的信號功能定義不一樣,工作時序也不一樣,在介面設計時,硬體連接和軟體編程也不一樣,所以要研究和分析8255A的工作方式。8255A的工作方式與端口有關:

PA口有3種方式:0方式、1方式、2方式

PB口和PC口有2種方式:0方式、1方式上一頁返回7.2可

口.8255A的3種工作方式,各有何特點?.分別用在什麼場合?.以及在微機系統中如何進行連接?.這是並行介面電路硬體設計要解決的問題。.下麵將分別進行討論。上一頁返回7.30方式及其應用

——8255A第七章並行介面7.3方式及其應用一、特點①1、0方式是一種基本輸入/輸出工作方式。通常不用聯絡信號,或不使用固定的聯絡信號,因此,所謂基本I/O方式是指查詢方式傳送,也包括無條件傳送。這種方式不能採用中斷方式和CPU交換數據。輸出鎖存,輸入有三態緩衝能力而無鎖存功能。0上一頁返回7.3方式及其應用0②在0方式下,彼此獨立的兩個8位和兩個4位並行口,共24根I/O線全部由用戶支配,都能被指定作為輸入或者作為輸出用,共有16種不同的使用組態。

要特別強調的是,在0方式下,只能把C口的高4位為一組或低4位為一組同時輸入或輸出,不能再把4位中一部分作輸入另一部分作輸出,即可位一起行動。上一頁返回7.3方式及其應用0③在0方式下不設置專用聯絡信號線,需要聯絡時,可由用戶任意指定C口中的哪根線完成某種聯絡功能,這與後面要討淪的在1方式、1方式下設置固定的專用聯絡信號線不同。由於無固定的專用聯絡信號,因此也就在端門與I/O設備之間無固定的時序關係,由用戶根據數據傳送的要求決定輸入/輸出的操作過程。0方式也沒有設置固定的狀態字。上一頁返回7.3方式及其應用0④是單向I/O,一次初始化只能指定端口(PA、PB和PC)作輸入或作輸出,不能指定端口同時既作輸入又作輸出。

下麵舉兩個例子說明8255A0方式的應用方法。一個是:採用不固定的聯絡信號線實現查詢傳送一個是:無條件傳送上一頁返回7.3方式及其應用0二、並行印表機介面設計

1、要求為某應用系統配置—個並行印表機介面,並且通過介面CPU採用查詢方式把存放在BUF緩衝區的156個字元(ASCII碼)送去列印。

2、分析由於列印介面直接面向的對象是印表機介面標準,而不是印表機本身,因此印表機介面要按照介面標準的要求進行設計。有關印表機介面標準Centronics的信號線定義和工作時序見8,3節。

上一頁返回7.3方式及其應用0採用查詢方式時,印表機與CPU之間傳送數據的過程是:

①首先查詢BUSY。若BUSY=1,印表機忙,則等待;若BUSY=0,印表機不忙,則送數據。

②通過並行介面把數據送給標準插座DATA

BTT1~DATA

BIT8數據線上,此時數據並末進入印表機。

③再送出一個數據選通信號DATA

STROBE(負脈衝)給標準插座的1號引腳,把數據線上的數據打人到印表機的內部緩衝器。

上一頁返回7.3方式及其應用0

④印表機在收到數據後,通過插座的11號引腳發出“忙”(BUSY=1)信號,表明印表機正在處理輸入的數據。等到輸入的數據處理完畢(列印完1個字元或執行完1個功能操作),印表機撤銷“忙”信號,即置BUSY=0。

⑤最後在10號引腳上送出一個回答信號ACK給主機,表示上一個字元已經處理完畢。如此重複工作,直到把全部字元列印出來。上一頁返回7.3方式及其應用03.設計介面電路的設計包括硬體介面電路和軟體驅動程式兩部分。

①印表機介面電路印表機介面電路原理框圖如上一頁返回圖7.3圖7.37.3方式及其應用0該電路的設計思路是:按照Cemmnics標準對打印機介面信號線的定義,最基本的信號線需要8根數據線(DATABTT1-8),1根控制線(STB),1根狀態線(BUSY)和1根地線。為此。採用8255A作印表機的介面比較合適。選用8255A的PA口作數據口輸出8位列印數據,工作方式為0方式。分配PC7,作控制信號,由它產生和輸出1個負脈衝作為數據選通信號DATA

STROBE,將數據線上的數據打人印表機緩衝器,這實際上是用軟體的方法來產生選通信號。上一頁返回7.3方式及其應用0另外,分配PC2作狀態線來接收印表機的忙狀態信號,這樣就滿足廠印表機Cenlmnics介面標準對主要信號線的要求(其他狀態信號略)。很明顯,根據被控對象的要求,這裏使用了一對聯絡信號線,即STB和BUSY,並選定8255A的PC7和PC2兩個引腳分別作這兩個聯絡線使用。但是,並不是非選PC7和PC2不可,而是完全可以選C口的其他引腳米作聯絡線使用,即聯絡信號線不是固定的,這是0方式的特點。上一頁返回7.3方式及其應用0

②介面驅動程式印表機驅動程式的流程是根據列印介面標準的時序要求擬定的,其程式框圖如l所示。上一頁返回圖7.4圖7.47.3方式及其應用0

驅動程式的程式段如下:

CODESEGMENTASSUMECS:CODE,DS:CODEORG100HSTART:MOVAX,CODE MOVDS,AX MOVDX,303H;8255A命令口

MOVAL,10000001B;工作方式字

OUTDX,AL;(A口0方式,輸出C4—C7輸出,C0—C3輸入)上一頁返回7.3方式及其應用0MOVAL,00001111B;PC7位置高,使STB=1OUTDX,ALMOVSI,OFFSETBUF;列印字元的記憶體首址

MOVCX,OFFH;列印字元個數

MOVDX,302H;PC口地址

INAL,DX;查BUSY=0?(PC2=0)ANDAL,04HJNZL;忙,則等待;不忙,則向A口送數

MOVDX,300H;PA口地址

MOVAL,[SI];從記憶體取數

OUTDX,AL;送數到A口上一頁返回MOVDX,303H;8255A命令口MOVAL,00001110B;置STB信號為低(PC7=0)OUTDX,ALNOP ;負脈衝寬度(延時)

NOPMOVAL,00001111B;置STB為高(PC7=1)OUTDX,ALINCSI ;記憶體地址加1

DECCX ;字元數減1

JNZL;未完,繼續MOVAX,4C00H;已完,退出

7.3方式及其應用0上一頁返回7.3方式及其應用0INT21HBUFDB256個ASCII字元代碼

CODEENDSENDSTART上一頁返回7.41方式及其應用

——8255A第七章並行介面7.4方式及其應用1一、特點

①1方式是一種選通輸入/輸出方式或叫應答方式,因此,需設置專用的聯絡信號線或應答信號線,以便對I/O設備和CPU兩側進行聯絡。這種方式通常用於查詢(條件)傳送或中斷傳送。數據的輸入輸出都有鎖存能力.

②PA和PB為數據口,而PC口的大部分引腳分配作專用(固定)的聯絡信號用,對已經分配作聯絡信號的C口引腳,用戶不能再指定作其他用途。上一頁返回7.4方式及其應用1

③各聯絡信號線之間有固定的時序關係,傳送數據時,要嚴格按照時序進行。

④輸入/輸出操作過程中,產生固定的狀態字,這些狀態資訊可作為查詢或中斷請求之用。狀態字從PC口讀取。

⑤單向傳送。一次初始化只能設置在一個方向上傳送,不能同時作兩個方向的傳送。上一頁返回7.4方式及其應用1二、1方式下聯絡信號線的定義及其時序1方式下8255A引腳的功能分配和0方式不同,在於1方式分配了專用聯絡線和中斷請求線,並且這些專用線在輸人和輸出時各不相同,PA口和PB口的也不相同。下麵分別進行討論。上一頁返回7.4方式及其應用11.1方式下輸入的聯絡信號線定義及時序(1)聯絡信號的定義因為輸入是從I/O設備向8255A送數據進來,所以,I/O設備應先把數據準備好,並送到8255A,然後CPU再從8255A讀取數據。這個傳送過程中需要使用一些聯絡信號線。所以當A口和B口為輸入時,各指定了C口的3根線作為8255A與外設及CPU之間應答信號,如圖所示。

上一頁返回圖7.8圖7.87.4方式及其應用1STB:外設給8255A的“輸人選通”信號,低電子有效。當它為低時,外設將數據送到8255A的A口或B口的輸入數據寄存器。

IBF:8255A給外設的回答信號“輸入緩衝器滿”,高電平有效。當它為高時,8255A的輸入緩衝器滿,說明8255A已收到外設的數據,但尚未被CPU取走,通知外設不能送新數據;只有當它為低時,即CPU已讀走數據,輸人緩衝器變空時,才允許外設送新數據。

上一頁返回7.4方式及其應用1INTR:8255A給CPU的“中斷請求”信號,高電平有效.當它為高時,請求CPU從8255A讀數。使INTR

變高的3個條件是;當“輸人選通”信號變高,即STB=1,即數據已打人8255A;“輸入緩衝器滿”信號有效(IBF=1),表示8255A已收到來自外設的數據,待CPU讀取;中斷請求被允許(INTE=1)。3個條件都具備時,才能向CPU發出中斷請求。“中斷允許”信號INTE是8255A為控制中斷申請而設置的內部控制信號。當INTE=1,允許中斷;當INTE=0,禁止中斷。這要通過按位置位/複位命令來設置,不能自動產生這個控制信號。上一頁返回7.4方式及其應用1上述在1方式下輸入時的3個聯絡信號,對A口和B口都是需要的,但是,所分配的C口的引腳不同。A口的聯絡線分配是:PC4—STBA,PC5—IBFA,PC3—INTRAB口的聯絡線是:

PC2—STBB,PC1—IBFB,PC0—INTRB

上一頁返回7.4方式及其應用1

(2)1方式輸入的工作時序1方式的工作時序如和所示。其信號交接的過程如下:

①數據輸入時,外設處於主動地位,當外設準備好數據並放致電數據線上後,首先發STB信號,由它把數據輸入到8255A。②在STB的下降沿約300ns,數據已鎖存到8255A的緩衝器後,引起IBF變高,表示8255A的“輸入緩衝滿”,禁止輸入新數據。

上一頁返回圖7.9表7.3圖7.9表7.37.4方式及其應用1③在STB的上升沿約300ns後,在中斷允許(1NTE=1)的情況下IBF的高電子產生中斷請求,使INTR上升變高,通知CPU,介面中已有數據,請求CPU讀取。CPU接受中斷請求後,轉到相應的中斷副程式。在副程式中執行IN指令,將緩衝器中的數據取走。若CPU採用查詢方式,則通過查詢狀態字中的INTR位或IBF位是否置位來判斷有無數據可讀。上一頁返回7.4方式及其應用1④CPU得知INTR信號有效之後,執行讀操作時,RD信號的下降沿使INTR複位,撤銷中斷請求,為下一次中斷請求作好準備。RD信號的上升沿延時一段時間後清除IBF使其變低,使IBF=0,表示介面的輸入緩衝器變空,允許外設輸入新數據。如此反復,直至全部數據輸入。上一頁返回7.4方式及其應用1從上述分析,可知在l方式下,數據從I/O設備發出,通過8255A,送到CPU的整個過程有如下4步:CPU8255AI/O設備③INTR④RD①STB②IBF上一頁返回7.4方式及其應用12.1方式下輸出的聯絡信號線定義及時序(1)聯絡信號的定義因為輸出是8255A把數據送到I/O設備去,所以,數據要由CPU準備好,並且先寫到8255A,然後,再從8255A把數據輸出去。這個傳輸過程中需使用一些聯絡信號。所以當A口和B口輸出時,各指定了C口的3根線作為8255A與外設及CPU之間的聯絡信號如所示。上一頁返回圖7.10圖7.107.4方式及其應用1

OBF:8255A給外設的“輸出緩衝器滿”信號,低電平有效。當它為低時,表示8255A的輸出緩衝器滿,即CPU已將數據寫到8255A輸出端口,通知外設來取數。

ACK:外設給8255A的“回答”信號,低電平有效。當它為低電平(ACK=0)時,表示外設已經從8255A的端口接收到了數據,它是對OBF的一種回答。ACK信號的下降沿延時一段時間後,使其變高(OBF=1),表示輸出緩衝器空,為下一次輸出作好準備。

上一頁返回7.4方式及其應用1

INTR:8255A給CPU的“中斷請求”信號,高電平有效。當它為高電平時,請求CPU向8255A寫數。

INTR變高的條件是WR、OBF、ACK和INTE都為高電平,分別表示CPU已寫完一個數據(而

WR=1),輸出緩衝器已變空(OBF=1),回答信號已結束(ACK=1),外設已收到數據,並且允許中斷(INTE=1)。只有在4個條件同時滿足才能產生中斷請求。上一頁返回7.4方式及其應用1在1方式下,輸出時分配給A口的聯絡線是:PC7—OBFA,PC6—ACKA,PC3—INTRAB口的聯絡線是:PC1—OBFB,PC2—ACKB,PC0—INTRB上一頁返回7.4方式及其應用1(2)1方式輸出的工作時序1方式輸出的工作時序,如和所示。其信號交接的過程如下:

①數據輸出時,CPU應先準備好數據,並把數據寫到8255A輸出數據寄存器。當CPU向8255A寫完一個數據後,WR的上升沿使OBF有效,表示8255A的輸出緩衝器已滿,通知外設讀取數據。並且WR使中斷請求INTR變低,封鎖中斷請求。上一頁返回圖7.11表7.4表7.4圖7.117.4方式及其應用1

②外設得到OBF有效的通知後,開始讀數。當外設讀取數據後,用ACK回答8255A,表示數據已收到。

③ACK的下降沿將OBF置高,使OBF無效,表示輸出緩衝器變空,為下一次輸出作準備。在中斷允許(INTE=1)的情況下ACK的上升沿使INTR變高,產生中斷請求。CPU回應中斷後,在中斷服務程式中,執行OUT指令,向8255A寫下一個數據。上一頁返回從上述分析,在1方式下,數據從CPU,通過8255A送到I/O設備有4步:

CPU8255AI/O設備④INTR①WD③ACK②OBF7.4方式及其應用1上一頁返回7.4方式及其應用1三、1方式的狀態

1.狀態字的作用在1方式下8255A有固定的狀態字。狀態字為查詢方式提供了狀態標誌位,如IBF和0BF,同時,由於8255A不能直接提供中斷向量,因此當8255A採用中斷方式時,CPU也要通過讀狀態字來確定中斷源,實現查詢中斷。例如狀態字中的狀態位INTRA和INTRB若置位,則分別表示A口和B口有中斷請求。上一頁返回7.4方式及其應用12.狀態字的格式

狀態字的格式如所示。

狀態字有8位,分A和B兩組,A組的狀態位占高5位,B組的狀態位占低3位,並且輸入和輸出時的狀態字不相同。

上一頁返回圖7.12圖7.127.4方式及其應用13.使用狀態宇時要注意的幾個問題

①狀態字是在8255A輸入/輸出操作過程中由內部產生,從C口讀取的,因此從C口讀出的狀態字是獨立於C口的外部引腳的,或者說與C口的外部引腳無關。如在輸入時,狀態位PC4和PC2分別表示A口和B口在輸入時的中斷允許位INTEA和INTEB,而不是外部引腳PC4和PC2的聯絡信號STB的狀態;在輸出時,PC5和PC2分別表示A口和B口在輸出時的中斷允許位INTEA和INTEB,而不是外部引腳PC6和PC2的聯絡信號ACK的狀態。上一頁返回7.4方式及其應用1②狀態字中供CPU查詢的狀態位有:輸入時—IBF位和INTR位;輸出時—OBF位和INTR位。但從可靠性來看,查INTR位比查IBF位或OBF位更可靠,這一點可從1方式下輸入和輸出的時序關係圖得到證實。所以,在1方式下採用查詢方式時,一般都是查詢狀態字中的INTR位。上一頁返回7.4方式及其應用1③狀態字中的INTE位,是控制標誌位,控制8255A能否提出中斷請求,因此它不是I/O操作過程中自動產生的狀態,而是由程式通過按位置位/複位命令來設置或清除的。

上一頁返回7.4方式及其應用1

例1:若允許PA口輸入時,產生中斷請求,則必須設置INTEA=1,即置PC4=1;若禁止它產生中斷請求,則置INTEA=0,即置PC4=0,其程式段為:

MOVDX,303H;8255A命令口

MOVAL,00001001B;置PC4=1,允許中斷請求

OUTDX,ALMOVAL,00001000B;置PC4=0,禁止中斷請求

OUTDX,AL上一頁返回7.4方式及其應用1

四、1方式的介面方法在1方式下,首先根據實際應用的要求確定A口和B口是作輸入還是輸出,然後把C口中分配作聯絡的專用應答線與外設相應的控制或狀態線相連。如果是採用中斷方式,還要把中斷請求線INTR接到微處理器或中斷控制器;若採用查詢方式,中斷請求線可以空著不接,而去查狀態字中的INTR狀態位。上一頁返回7.4方式及其應用11方式的中斷處理,由於8255A不能直接提供中斷向量,所以一般都通過系統中的中斷控制器來提供尋找中斷服務程式入口地址的中斷類型號。當然,對於不採用向量中斷的微處理器,可以將INTR線直接連到CPU的中斷線(例如在單片機系統中)。

在1方式下CPU採用查詢方式時,對輸入,通過C口查IBF位或INTR位的狀態。對輸出,查OBF位或INTB位的狀態。在實際編程中,一般都查INTB位,可靠性更高。上一頁返回值得注意的是:在採用查詢方式來查詢INTR位時,一定要使中斷允許位置位(INTE=1),否則,如果INTE=0,就會禁止中斷,8255A就不能產生中斷請求,因而狀態字中的INTR位也就不能置位。下麵通過兩個例子來說明8255A1方式的應用。7.4方式及其應用1上一頁返回五、兩種方式並行傳送介面設計

1.要求在甲乙兩臺微機之間並行傳送1K位元組數據。甲機發送,乙機接收。甲機一側的8255A采用1方式工作,乙機一側的8255A採用0方式工作。兩機的CPU與介面之間都採用查詢方式交換數據。7.4方式及其應用1上一頁返回7.4方式及其應用12.分析根據題意,雙機均採用可編程並行介面晶片8255A構成介面電路,只是8255A的工作方式不同。此時,雙方的8255A把對方視為I/O設備。上一頁返回7.4方式及其應用13.設計(1)硬體連接根據上述要求,介面電路的連接如所示。甲機8255A是1方式發送,因此,把PA口指定為輸出,發送數據,而PC7和PC6引腳分別固定作聯絡線OBF和ACK。乙機8255A是0方式接收數據,故把PA口定義為輸入,另外,選用引腳PC7和PC3作聯絡線。

上一頁返回圖7.13圖7.137.4方式及其應用1(2)軟體編程介面驅動程式包含發送與接收兩個程式。其程式流程圖如所示。

雖然,兩側的8255A都設置了聯絡線,但有本質的差別:甲機8255A是1方式,其聯絡線是固定的不可替換;乙機的8255A是0方式,其聯絡線是不固定的,可以選擇,比如可選擇PC4和PC1或PC5、PC2等任意組合。

上一頁返回圖7.14圖7.147.4方式及其應用1甲機發送程式段:

MOVDX,303H;8255A命令口

MOVAL,10100000B;初始化工作方式字

OUTDX,ALMOVAL,ODH;置發送中斷允許INTEA=1OUTDX,AL;PC6=1MOVSI,OFFSETBUFS;設置發送數據區的指針

MOVCX,3FFH;發送位元組數

MOVDX,300H;向A口寫第一個數,產生第一個OBF信號上一頁返回7.4方式及其應用1MOVAL,[SI];送給乙方,以便獲取乙方的ACK信號

OUTDX,ALINCSI;記憶體地址加1

DECCX;傳送位元組數減1L:MOVDX,302H;8255A狀態口

INAL,DX;查發送斷請求INTRA=1?ANDAL,08H;PC3=1JZL;若無中斷請求,則等待;

;若有中斷請求,則向A口寫數上一頁返回7.4方式及其應用1

MOVDX,300H;8255APA口地址

MOVAL,[SI];從記憶體取數

OUTDX,AL

;通過A口向乙機發送第二個數據

INCSI;記憶體地址加1

DECCX;位元組數減1

JNZL;位元組未完,繼續

MOVAH,4C00H;已完,退出

INT21H;返回DOSBUFSDB1024個數據上一頁返回7.4方式及其應用1在上述發送程式中,是查輸出時的狀態字的中斷請求INTR位(PC3),實際上,也可以查發送緩衝器滿OBF(PC7)的狀態,只有當發送緩衝器空時,CPU才能送下一‘個數據,讀者可根據情況,修改程式。

上一頁返回7.4方式及其應用1乙機接收程式段:MOVDX,303H ;8255A命令口MOVAL,10011000B ;初始化工作方式字OUTDX,AL MOVAL,00000111B;置ACK=1(PC3=1)OUTDX,AL MOVDI,OFFSETBUFR ;設置接收數據區的指針MOVCX,3FFH ;接收位元組數上一頁返回L1:MOVDX,302H;8255APC口

INAL,DX;查甲機的OBF=0?(乙機的PC7=0)ANDAL,80H;即查甲機是否有數據發來JNZL1;若無數據發來,則等待;若有數據,則從A口讀數MOVDX,300H;8255APA口地址INAL,DX;從A口讀人數據MOV[DI],AL;存人記憶體MOVDX,303H;產生ACK信號,併發回給甲機7.4方式及其應用1上一頁返回7.4方式及其應用1MOVAL,00000110B;PC3置“0”OUTDX,ALNOPNOPMOVAL,00000111B;PC3置“l”OUTDX,ALINCDI;記憶體地址加1DECCX;位元組數減1JNZL1;位元組未完,則繼續上一頁返回7.4方式及其應用1MOVAX,4C00H;已完,退出INT21H;返回DOSBUFRDB1024DUP(?)上一頁返回7.4方式及其應用1

六、主從結構兩級微機並行傳送介面設計

1.要求

DRNI-A型磁片表面粗糙度非接觸測量儀的控制與測量系統由兩級微機組成:以單片微機8031為核心的前級機,完成超精工作臺的運動控制和數據採集任務;上位機PC微機作為主控,發佈各種命令,進行數據處理和存盤、列印及顯示任務。兩者之間,採用並行口進行連接和通信,以便PC機把命令送到單片微機8031,並及時從單片微機8031取得各種操作的狀態與數據。上一頁返回2.分析從上述要求可知,主從結構並行介面應具有雙向傳送的功能,為此,選用8255A作雙向介面的主晶片,並且把PA、PB和PC三個端口全部利用起來。3.設計(1)硬體設計首先按照設計要求對8255A的端口地址、引腳功能進行分配(見),然後將有關信號線連接起來。就構成了兩級微機系統之間的介面,如所示。圖7.15

表7.57.4方式及其應用1上一頁返回圖7.15

表7.5(2)軟體設計首先對主從結構進行雙向傳送的程式設計思路進行分析,然後編寫具體程式。PC機發送命令到單片機8031的過程:開機上電進入測量系統後,系統的測控操作命令就會在CRT上以菜單形式提供給用戶,當用戶用按鍵選定某個操作命令,就執行一個相應的副程式,這個副程式的主要內容就是PC機通過8255A端口發送命令代碼到前級機8031單片機的8255A。前級機8031單片機通過8255A端口以中斷方式接受命令代碼,然後對命令代碼進行解釋並轉到相應的副程式去執行,產生相應的操作。主機發給從機的命令見。

表7.67.4方式及其應用1上一頁返回

表7.67.4方式及其應用1

①PC微機命令發送程式。下麵是PC機發送“採樣命令”的副程式:

DATASEGMENTPARAPUBLIC‘DATA’DB26DUP(0)MSGODB'PLEASEWAIT',0DH,0AH,'$DATAENDSCODESEGMENTPARAPUBLIC'CODE'SENDPROCFARASSUMECS:CODE,DS:DATA上一頁返回7.4方式及其應用1START:PUSHDS;標準程式

MOVAX,0PUSHAXMOVAX,DATA;置DSMOVDS,AXMOVDX,303H;8255A命令口

MOVAL,OB1H;初始化方式字

OUTDX,ALMOVAL,ODH;置STB=1(PC6=1)OUTDX,AL上一頁返回7.4方式及其應用1JMPSHORT$十2;延時

MOVDX,301H;8255APB口

MOVAL,OFH;粗糙度測量的“採樣

温馨提示

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

评论

0/150

提交评论