《微機(jī)原理與接口技術(shù)》第3版 課件 08 常用接口芯片_第1頁
《微機(jī)原理與接口技術(shù)》第3版 課件 08 常用接口芯片_第2頁
《微機(jī)原理與接口技術(shù)》第3版 課件 08 常用接口芯片_第3頁
《微機(jī)原理與接口技術(shù)》第3版 課件 08 常用接口芯片_第4頁
《微機(jī)原理與接口技術(shù)》第3版 課件 08 常用接口芯片_第5頁
已閱讀5頁,還剩128頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

微機(jī)原理與接口技術(shù)(第3版)8常用接口芯片可編程并行接口8255可編程定時(shí)/計(jì)數(shù)8253/8254可編程串行接8251例題解析模擬I/O接口8.1.1并行通信的概念1.并行通信與串行通信

并行通信:指數(shù)據(jù)的各位同時(shí)進(jìn)行傳送的通信方式,可以字或字節(jié)為單位并行進(jìn)行。特點(diǎn)是速度快,所用的通信線多、成本高,故不宜進(jìn)行遠(yuǎn)距離通信。計(jì)算機(jī)內(nèi)部各種總線都是以并行方式。

串行通信:指數(shù)據(jù)逐位順序傳送的通信方式。特點(diǎn)是速度低,但只需要很少的通信線,適用于長距離而速度要求不高的場(chǎng)合。在網(wǎng)絡(luò)中傳送數(shù)據(jù)絕大多數(shù)采用串行方式。8.1可編程并行接口82558.1可編程并行接口82552.并行接口并行通信由并行接口完成,它與I/O設(shè)備或被控對(duì)象進(jìn)行數(shù)據(jù)交換,以同步方式傳輸。從并行接口的電路結(jié)構(gòu)來看,它有硬連線接口和可編程接口之分。硬連線接口的工作方式及功能用硬連線的不同方式來設(shè)定,不能用軟件編程的方法加以改變;可編程接口的工作方式及功能可以用軟件編程的方法加以改變。

并行接口中包括狀態(tài)信息、控制信息和數(shù)據(jù)信息,這些信息分別存放在狀態(tài)寄存器、控制寄存器和數(shù)據(jù)緩沖寄存器中。1)狀態(tài)寄存器:用來存放外設(shè)的信息,CPU通過訪問這個(gè)寄存器來了解某個(gè)外設(shè)的狀態(tài)。2)控制寄存器:CPU對(duì)外設(shè)的操作命令都寄存在控制寄存器中。3)數(shù)據(jù)緩沖寄存器:緩沖器是用來暫存數(shù)據(jù)的。這是因?yàn)橥庠O(shè)與CPU交換數(shù)據(jù)時(shí),CPU的速度遠(yuǎn)遠(yuǎn)高于外設(shè)的速度。

8.1可編程并行接口8255圖8.1是一個(gè)典型的并行接口與CPU、外設(shè)的連接圖。圖8.1并行接口與CPU、外設(shè)的連接8.1可編程并行接口82553.數(shù)據(jù)輸入過程:數(shù)據(jù)輸入過程指的是外設(shè)向CPU輸入數(shù)據(jù)的過程。(1)當(dāng)外設(shè)將數(shù)據(jù)通過數(shù)據(jù)輸入線送給接口時(shí),先使?fàn)顟B(tài)線“輸入數(shù)據(jù)準(zhǔn)備好”為高電平,然后通過接口把數(shù)據(jù)送到輸入緩沖寄存器中,同時(shí)把“輸入回答”信號(hào)置成高電平1發(fā)給外設(shè)。(2)外設(shè)接到回答信號(hào)后,將撤銷“輸入數(shù)據(jù)準(zhǔn)備好”信號(hào)。在接口收到數(shù)據(jù)后,它會(huì)在狀態(tài)寄存器中設(shè)置“準(zhǔn)備好輸入”狀態(tài)位,以便CPU對(duì)其進(jìn)行查詢。8.1可編程并行接口8255

(3)接口向CPU發(fā)出一個(gè)中斷請(qǐng)求信號(hào),這樣CPU可以用軟件查詢方式或中斷的方式將接口中的數(shù)據(jù)輸入到CPU中。(4)CPU在接收到數(shù)據(jù)后,將“準(zhǔn)備好輸入”的狀態(tài)位自動(dòng)清除,并使數(shù)據(jù)總線處于高阻狀態(tài),準(zhǔn)備外設(shè)向CPU輸入下一個(gè)數(shù)據(jù)。4.數(shù)據(jù)輸出過程數(shù)據(jù)輸出過程指的是CPU向外設(shè)輸出數(shù)據(jù)的過程。(1)當(dāng)外設(shè)從接口接收到一個(gè)數(shù)據(jù)后,接口的輸出緩沖寄存器“空”,使?fàn)顟B(tài)寄存器的“輸出數(shù)據(jù)準(zhǔn)備好”狀態(tài)位置成高電平1,這表示CPU可以向外設(shè)接口輸出數(shù)據(jù),這個(gè)狀態(tài)位可供CPU查詢。8.1可編程并行接口8255

(2)此時(shí)接口也可向CPU發(fā)出一個(gè)中斷請(qǐng)求信號(hào),同上面的輸入過程相同,CPU可以用軟件查詢方式或中斷的方式將CPU中的數(shù)據(jù)通過接口輸出到外設(shè)中。當(dāng)輸出數(shù)據(jù)送到接口的輸出緩沖寄存器后,再輸出到外設(shè)。(3)與此同時(shí),接口向外設(shè)發(fā)送一個(gè)啟動(dòng)信號(hào),啟動(dòng)外設(shè)接收數(shù)據(jù)。外設(shè)接收到數(shù)據(jù)后,向接口回送一個(gè)“輸出回答”信號(hào)。(4)接口電路收到該信號(hào)后,自動(dòng)將接口狀態(tài)寄存器中的“準(zhǔn)備好輸出”狀態(tài)位重新置為高電平1,通知CPU可以向外設(shè)輸出下一個(gè)數(shù)據(jù)。8.1可編程并行接口82558.1.28255外部引腳及內(nèi)部結(jié)構(gòu)1.8255內(nèi)部結(jié)構(gòu)8255是一個(gè)40條引腳的雙列直插式組件,它內(nèi)部有3個(gè)8位I/O數(shù)據(jù)端口:A口、B口和C口,以及一個(gè)8位的控制端口。8255的內(nèi)部結(jié)構(gòu)如圖8.2所示。8.1可編程并行接口8255圖8.28255內(nèi)部結(jié)構(gòu)

1)面向CPU的接口電路(1)數(shù)據(jù)總線緩沖器:是一個(gè)三態(tài)雙向的8位緩沖器,是8255與系統(tǒng)數(shù)據(jù)總線的接口。接口的數(shù)據(jù)線D7~D0直接與CPU數(shù)據(jù)總線相連,以實(shí)現(xiàn)CPU與8255接口之間的信息傳遞。CPU向8255寫入控制字或從8255中讀狀態(tài)信息以及所有數(shù)據(jù)的輸入和輸出,都需要通過數(shù)據(jù)緩沖器來進(jìn)行傳遞。(2)讀/寫控制邏輯:是8255內(nèi)部完成讀/寫控制功能的部件,它接收來自CPU的地址和控制信號(hào),通過內(nèi)部控制邏輯向8255的各功能部件發(fā)出讀/寫控制命令,用于管理數(shù)據(jù)、控制字或狀態(tài)字的傳送。8.1可編程并行接口82552)面向外設(shè)的接口電路(1)端口A:包含一個(gè)8位的數(shù)據(jù)輸出鎖存/緩沖器和一個(gè)8位的數(shù)據(jù)輸入鎖存器,與之關(guān)聯(lián)的接口線是PA7~PA0。(2)端口B:包含一個(gè)8位的數(shù)據(jù)輸入/輸出、鎖存/緩沖器和一個(gè)8位的數(shù)據(jù)輸入緩沖器,與之關(guān)聯(lián)的接口線是PB7~PB0。(3)端口C:包含一個(gè)8位的數(shù)據(jù)輸出鎖存/緩沖器和一個(gè)8位的數(shù)據(jù)輸入鎖存器。必要時(shí)端口C可分成兩個(gè)4位端口,分別與端口A和端口B配合工作,以輸出控制信號(hào),或接收從外設(shè)輸入的狀態(tài)信號(hào),與之關(guān)聯(lián)的接口線是PC7~PC0。8.1可編程并行接口8255

3)內(nèi)部控制邏輯內(nèi)部控制邏輯包括A組控制部件、B組控制部件兩部分。A組控制部件:控制端口A和端口C的高4位(PC7~PC4);B組控制部件:控制端口B和端口C的低4位(PC3~PC0)。控制邏輯內(nèi)部設(shè)置了一個(gè)控制寄存器,接收來自CPU的控制字,根據(jù)控制字的內(nèi)容決定各數(shù)據(jù)端口的工作方式。也可以根據(jù)控制字對(duì)端口C的每一位進(jìn)行置位和復(fù)位??刂萍拇嫫鞯膬?nèi)容只能寫入而不能讀出。8.1可編程并行接口82552.8255的引腳功能8255芯片有40根引腳,如圖8.3所示。PA7~PA0(輸入/輸出、三態(tài)):A口的8根輸入/輸出信號(hào)線??捎密浖幊虥Q定這8條線是工作于輸入、輸出還是雙向方式。PB7~PB0(輸入/輸出、三態(tài)):B口的8根輸入/輸出信號(hào)線??捎密浖幊讨付ㄟ@8條線作輸入還是輸出。PC7~PC0(輸入/輸出、三態(tài)):C口的8根輸入/輸出信號(hào)線。根據(jù)其設(shè)定的工作方式可作輸入或輸出線使用,也可用作控制信號(hào)的輸出或狀態(tài)信號(hào)的輸入。8.1可編程并行接口8255圖8.38255的外部引腳D7~D0(輸入/輸出、三態(tài)):雙向三態(tài)數(shù)據(jù)線,用來傳送數(shù)據(jù)、控制字和狀態(tài)字等信息。直接與系統(tǒng)數(shù)據(jù)總線相連。RESET(輸入):復(fù)位信號(hào),高電平有效。當(dāng)它有效時(shí),所有寄存器,包括控制寄存器的內(nèi)容全部清零,A口、B口、C口均被設(shè)定為輸入方式。A1、A0(輸出):端口選擇信號(hào)。8255內(nèi)部共有4個(gè)端口,即3個(gè)數(shù)據(jù)端口(A口、B口、C口)和一個(gè)控制端口(控制寄存器),它們可由程序?qū)ぶ?。A1、A0通常與系統(tǒng)總線的低位地址線相連8.1可編程并行接口8255圖8.38255的外部引腳

(輸入):讀信號(hào),低電平有效。當(dāng)它為低電平時(shí),CPU從8255中讀取數(shù)據(jù)或狀態(tài)信息。通常接系統(tǒng)總線的信號(hào)。(輸入):寫信號(hào),低電平有效。當(dāng)它為低電平時(shí),CPU將數(shù)據(jù)或命令字寫入8255。通常接系統(tǒng)總線的信號(hào)。(輸入):片選信號(hào),低電平有效。當(dāng)它為低電平時(shí),選中8255芯片。通常由系統(tǒng)總線的高位地址線經(jīng)譯碼得到。8.1可編程并行接口8255圖8.38255的外部引腳

A1A0和、、信號(hào)配合可對(duì)各端口進(jìn)行輸入/輸出訪問,組合邏輯功能如表8.1所示。A1A0所選端口傳送方向00100讀A口A口→數(shù)據(jù)總線00101讀B口B口→數(shù)據(jù)總線00110讀C口C口→數(shù)據(jù)總線01000寫A口數(shù)據(jù)總線→A口01001寫B(tài)口數(shù)據(jù)總線→B口01010寫C口數(shù)據(jù)總線→C口01011寫控制寄存器數(shù)據(jù)總線→控制寄存器表8.18255尋址和基本操作表8.1可編程并行接口82558.1.38255的工作方式1.工作方式0(基本輸入/輸出方式):適用于簡(jiǎn)單的無條件輸入/輸出數(shù)據(jù)或查詢式輸入/輸出數(shù)據(jù)的場(chǎng)合。

無條件數(shù)據(jù)的傳送過程中,輸入/輸出數(shù)據(jù)隨時(shí)都處于準(zhǔn)備好狀態(tài),8255與CPU及外設(shè)之間無須交換應(yīng)答(握手)信號(hào)。

查詢式數(shù)據(jù)的傳送過程中,需要有應(yīng)答信號(hào),通常A口與B口作為輸入/輸出數(shù)據(jù)端口,而C口分為兩個(gè)4位端口分別作為控制信號(hào)輸出口和狀態(tài)信號(hào)輸入口,用于配合A口和B口的查詢式數(shù)據(jù)傳送。當(dāng)A口、B口、C口都工作于方式0時(shí),8255各口的輸入/輸出有16種組合,如表8.2所示。8.1可編程并行接口8255序號(hào)控制字A組B組D7D6D5D4D3D2D1D0十六進(jìn)制A口C口高4位B口C口低4位01000000080輸出輸出輸出輸出11000000181輸出輸出輸出輸入21000001082輸出輸出輸入輸出31000001183輸出輸出輸入輸入41000100088輸出輸入輸出輸出51000100189輸出輸入輸出輸入6100010108A輸出輸入輸入輸出7100010118B輸出輸入輸入輸入81001000090輸入輸出輸出輸出91001000191輸入輸出輸出輸入101001001092輸入輸出輸入輸出111001001193輸入輸出輸入輸入121001100098輸入輸入輸出輸出131001100199輸入輸入輸出輸輸入輸入輸入輸輸入輸入輸入輸入表8.2方式0的工作狀態(tài)組合8.1可編程并行接口82552.工作方式1(選通輸入/輸出方式):是一種選通輸入/輸出方式,即利用C口所提供的選通信號(hào)和應(yīng)答信號(hào),控制A口和B口的輸入/輸出。1)方式1的主要功能(1)分成A、B兩組選通端口,可工作于查詢式或中斷式輸入/輸出數(shù)據(jù)傳送。其中,A組包括端口A的8位數(shù)據(jù)線和端口C的3位聯(lián)絡(luò)信號(hào)線;B組包括端口B的8位數(shù)據(jù)線和端口C的3位聯(lián)絡(luò)信號(hào)線,每組均設(shè)置有中斷請(qǐng)求邏輯。(2)當(dāng)兩組端口中只有一組(A組或B組)工作在方式1時(shí),另一組端口的8位和C口的剩余5位可工作在方式0下作輸入或輸出;若A組和B組同時(shí)工作在方式1下,則C口中剩余兩位既可作輸入或輸出,又可用位操作方式對(duì)它們進(jìn)行置位或復(fù)位。8.1可編程并行接口8255

2)方式1的工作過程(1)A口、B口工作于輸出方式在方式1下,A口作輸出時(shí),需使用C口的3根引腳PC6、PC7、PC3作為其、、的握手信號(hào)線,協(xié)同完成A口與CPU或外部設(shè)備之間的數(shù)據(jù)傳送。其端口定義如圖8.4(a)所示。8.1可編程并行接口8255B口工作于方式1作輸出時(shí),同樣需要使用C口的3根引腳PC2、PC1、PC0作為、、的握手信號(hào)線,協(xié)同完成B口與CPU或外部設(shè)備的數(shù)據(jù)傳送。其端口狀態(tài)如圖8.4(b)所示。8.1可編程并行接口8255方式1的輸出時(shí)序、各參數(shù)說明表,如圖8.5和表8.3所示。圖8.58255方式1輸出時(shí)序圖參數(shù)說明8255A最小時(shí)間/ns最大時(shí)間/nstWIT從寫信號(hào)有效到中斷請(qǐng)求無效的時(shí)間

850tWOB從寫信號(hào)無效到輸出緩沖器清的時(shí)間

650tAOB

有效到無效的時(shí)間

350tAK

脈沖的寬度300

tAIT

為1到發(fā)新的中斷請(qǐng)求的時(shí)間

350tWD寫信號(hào)撤除到數(shù)據(jù)有效的時(shí)間

350表8.3圖8.5參數(shù)說明8.1可編程并行接口8255圖8.6

8255方式1輸入端口狀態(tài)

(2)A口、B口工作于輸入方式。在方式1下,A口、B口作為輸入口的端口定義如圖8.6所示。8.1可編程并行接口8255

方式1的輸入時(shí)序如圖8.7所示,各參數(shù)說明如表8.4所示。圖8.78255方式1輸入時(shí)序圖參數(shù)說明8255A最小時(shí)間/ns最大時(shí)間/nstST選通脈沖的寬度500

tSIB從選通脈沖有效到IBF有效的時(shí)間

300tSIT=1到中斷請(qǐng)求INTR有效的時(shí)間

300tPH數(shù)據(jù)保持時(shí)間180

tPS從數(shù)據(jù)有效到無效的時(shí)間0

tRIT從有效到中斷請(qǐng)求撤除的時(shí)間

400tRIB從為1到IBF為0之間的時(shí)間

300表8.4圖8.7參數(shù)說明8.1可編程并行接口82553.工作方式2(雙向輸入/輸出方式):只有A口可在此方式下工作。當(dāng)A口工作于雙向輸入/輸出方式時(shí),B口只能工作于方式0或方式1下,而C口剩下的3位(PC2~PC1)既可作為輸入/輸出線使用,也可作為B口方式1下的控制線。A口工作于方式2時(shí),各端口定義如圖8.8所示。圖8.88255工作方式2端口狀態(tài)8.1可編程并行接口8255方式2的時(shí)序圖如圖8.9所示。圖8.98255工作方式2時(shí)序圖8.1可編程并行接口8255各參數(shù)說明如表8.5所示。參數(shù)說明8255A最小時(shí)間/ns最大時(shí)間/nstST選通脈沖的寬度500

tPH數(shù)據(jù)保存時(shí)間180

tSIB從選通脈沖有效到IBFA有效的時(shí)間

300tPS從數(shù)據(jù)有效到無效的時(shí)間0

tWOD從寫信號(hào)無效到有效的時(shí)間

650tAOD從有效到無效的時(shí)間

350tAD從有效到數(shù)據(jù)輸出的時(shí)間

300tHD數(shù)據(jù)保存時(shí)間200表8.5圖8.9參數(shù)說明8.1可編程并行接口82558.1.4方式控制字及狀態(tài)字1.8255的控制字1)方式控制字:用來決定8255的工作方式。它將3個(gè)通道分為兩組,格式如圖8.10所示。圖8.108255方式控制字格式8.1可編程并行接口82552)C口置位/復(fù)位控制字:可對(duì)C口中的任意一位進(jìn)行置位或者復(fù)位操作。該控制字各位定義如圖8.11所示。圖8.118255C口置位/復(fù)位控制字格式8.1可編程并行接口82552.8255的狀態(tài)字

注意:C口的狀態(tài)字與C口各位對(duì)外的引腳狀態(tài)不完全一致?。。‘?dāng)8255的A口和B口均工作在方式1的輸入時(shí),由C口讀出的8位數(shù)據(jù)各位的意義如圖8.12所示。圖8.12A、B口均為方式1輸入時(shí)的狀態(tài)字8.1可編程并行接口8255

當(dāng)8255的A口和B口均工作在方式1的輸出時(shí),由C口讀出的狀態(tài)字各位的意義如圖8.13所示。當(dāng)8255的A口工作在方式2時(shí),狀態(tài)字各位的意義如圖8.14所示圖8.13A、B口均為方式1輸出時(shí)的狀態(tài)字圖8.14A口在方式2工作時(shí)的狀態(tài)字8.1可編程并行接口82558.1.58255與CPU的連接在8255的連接使用中,它的8根數(shù)據(jù)線D7~D0與系統(tǒng)數(shù)據(jù)總線相連,A1、A0分別接地址總線的A1和A0,地址總線高位A9~A2經(jīng)譯碼器譯碼后接片選信號(hào),其控制信號(hào)線RESET、、分別與系統(tǒng)控制總線的RESET、、信號(hào)相連,如圖8.15所示。圖8.15計(jì)算機(jī)中8255的連接8.1可編程并行接口82558.1.68255應(yīng)用舉例例8.1利用8255方式0實(shí)現(xiàn)打印機(jī)的接口。

分析:打印機(jī)打印計(jì)算機(jī)送來的ASCII碼字符。因?yàn)锳SCII碼為8位,所以利用8255的A口的工作方式0來實(shí)現(xiàn)打印機(jī)與CPU之間的并行輸出接口,連接示意圖如圖8.16所示。由圖可見,由地址譯碼決定的A口、B口、C口及控制寄存器的端口地址分別為380H、381H、382H、383H。8.1可編程并行接口8255

在實(shí)現(xiàn)打印機(jī)接口時(shí),可以設(shè)置A組、B組均工作在方式0下,使用A口的PA7~PA0與打印機(jī)的D7~D0相連,并利用C口的PC6作為輸出信號(hào)接打印機(jī)的選通端,PC2作為輸入信號(hào)接打印機(jī)的忙信號(hào)BUSY。由此,可以作如下的初始化:A口為輸出,C口的高4位為輸出、低4位為輸入,B口保留,A、C口均工作于方式0。初始化程序如下:MOVAL,10000011B;將控制字送AL中MOVDX,0383H;將控制寄存器端口地址送DX中OUTDX,ALMOVAL,00001101B;將PC6設(shè)置為1MOVDX,AL;將控制寄存器端口地址送DX中8.1可編程并行接口8255若要將AL中的字符送到打印機(jī)輸出,則可用下面程序來完成:MOVDX,0382H;將C口地址送DX中XCHGAX,BX;將打印字符暫存BL中PWAIT:INAL,DX;輸入C口數(shù)據(jù)ANDAL,04H;測(cè)試PC2JNZPWAIT;忙則等待XCHGAX,BX;將BL中的打印字符送回AL中MOVDX,0380H;將A口地址送DX中OUTDX,AL;將AL字符送出打印8.1可編程并行接口8255

利用下面一段程序,可以完成一批字符數(shù)據(jù)的打印輸出。假設(shè)要打印的字符串位于當(dāng)前數(shù)據(jù)段從DATA開始的內(nèi)存區(qū)域中,字符串長度在BLAK單元中。PRINT:MOVAL,BLAKMOVCL,ALMOVSI,OFFSETDATAGOON:MOVDX,0382HPWAIT:INAL,DXANDAL,04HJNZPWAITMOVAL,[SI]MOVDX,0380HMOVDX,ALMOVAL,00HMOVDX,0382HMOVDX,ALNOPNOPMOVAL,40HMOVDX,ALINCSIDECCLJNZGOONRET8.1可編程并行接口8255例8.2利用8255方式1實(shí)現(xiàn)打印機(jī)的接口。

設(shè)置8255的A口工作于方式1,PA7~PA0作數(shù)據(jù)輸出;利用PC7()產(chǎn)生打印機(jī)所需的選通脈沖;并將打印機(jī)發(fā)出的信號(hào)接8255的端,以產(chǎn)生有效的INTR信號(hào),向CPU發(fā)出中斷請(qǐng)求。連接圖如圖8.17所示。圖8.17采用方式1的查詢方式8.1可編程并行接口82558255的初始化程序:MOVAL,10100000B;將控制字送AL中MOVDX,0383H;將控制寄存器端口地址送DX中OUTDX,ALMOVAL,00001101B;將PC6設(shè)置為1MOVDX,AL8.1可編程并行接口8255

關(guān)于字符數(shù)據(jù)的傳送和打印控制程序,同學(xué)們可自行編寫練習(xí)例8.3如果采用中斷方式傳送數(shù)據(jù),電路的連接形式如圖8.18所示。由CPU控制PC4產(chǎn)生選通脈沖,PC4作輸出用,這里的沒有用。PC3作為中斷請(qǐng)求INTR,由ACK信號(hào)上升沿產(chǎn)生,使用中斷IRQ3,中斷向量0BH。圖8.188255采用中斷方式與打印機(jī)的連接8.1可編程并行接口8255程序段如下:MOVAL,0A0HMOVDX,PortCtrOUTDX,AL;A口,方式1輸出方式,PC4作輸出MOVAL,00001000B;置PC4=1,令=1選通無效CLI;關(guān)中斷MOVAH,35HMOVAL,0BHINT21H;將0BH中斷向量取到ES、BX中PUSHESPUSHBX;保存0BH中斷向量PUSHDSMOVDX,OFFSETINTSERV;中斷子程序的偏移地址送DXMOVAX,SEGINTSERVMOVDS,AX;中斷子程序段地址送DS8.1可編程并行接口8255;

設(shè)置0BH中斷向量,即將DS、DX的內(nèi)容傳送到中斷向量表中MOVAL,0BHMOVAH,25HINT21HPOPDSMOVAL,0DMOVDX,PortCtrOUTDX,AL;將PC6置“1”,使INTE為“1”,允許8255A口中斷STI;開中斷,允許中斷請(qǐng)求信號(hào)進(jìn)入CPU

┇CLIPOPDXPOPDS;將開始?jí)簵5腅S、BX的內(nèi)容彈入DX中MOVAL,0BHMOVAH,25HINT21H;恢復(fù)0BH原中斷向量STI┇8.1可編程并行接口8255;中斷服務(wù)程序INTSERV:PUSHAD;通用寄存器進(jìn)棧MOVAL,CL;打印字符送ALMOVDX,PortAOUTDX,AL;打印字符送A口MOVAL,00HMOVDX,PortCtrOUTDX,AL;使PC4=0,產(chǎn)生選通信號(hào),使為低電平INCALOUTDX,AL;使PC4=1,撤銷選通信號(hào)MOVDX,20HOUTDX,20H;發(fā)EOI命令POPAD;通用寄存器出棧IRET;中斷返回8.1可編程并行接口8255

8253/8254可編程定時(shí)/計(jì)數(shù)器是Intel公司生產(chǎn)的一種通用的定時(shí)/計(jì)數(shù)器芯片(Counter/TimerCircuit,CTC),或稱為可編程間隔定時(shí)器(ProgrammableIntervalTimer,PIT)。8254是8253的改進(jìn)型,它的引腳信號(hào)、硬件組成與8253基本上是相同的,因此8254在工作方式和編程方式上與8253兼容8.2可編程定時(shí)/計(jì)數(shù)器8253/82548254與8253存在如下一些差異:(1)它們?cè)试S最高計(jì)數(shù)脈沖(CLK)的頻率不同,8253的最高頻率為2MHz,而8254允許的最高計(jì)數(shù)脈沖頻率可達(dá)10MHz。(2)8254中每個(gè)計(jì)數(shù)器的內(nèi)部都有一個(gè)狀態(tài)寄存器和狀態(tài)鎖存器,并可通過讀回命令字來讀取狀態(tài)寄存器的當(dāng)前內(nèi)容以及計(jì)數(shù)執(zhí)行單元CE的內(nèi)容,而8253沒有。8.2可編程定時(shí)/計(jì)數(shù)器8253/82548.2.18253的外部引線及內(nèi)部結(jié)構(gòu)1.8253的內(nèi)部結(jié)構(gòu)(內(nèi)部結(jié)構(gòu)如圖8.19)1)數(shù)據(jù)總線緩沖器:為雙向、三態(tài)的8位緩沖器,直接掛接在數(shù)據(jù)總線上,它是

8253與CPU之間的數(shù)據(jù)接口。2)讀/寫邏輯:是接收來自CPU的控制信號(hào),包括讀、寫信號(hào)和地址信號(hào),實(shí)現(xiàn)對(duì)計(jì)數(shù)器和控制寄存器的讀/寫控制。3)控制寄存器:只能寫入,不能讀出??刂谱謱Q定計(jì)數(shù)器的工作方式、計(jì)數(shù)形式及輸出方式等。4)計(jì)數(shù)器:由16位鎖存寄存器和一個(gè)16位的減1計(jì)數(shù)器組成。圖8.19可編程定時(shí)器8253內(nèi)部結(jié)構(gòu)框圖8.2可編程定時(shí)/計(jì)數(shù)器8253/8254

2.8253的引腳功能芯片共有24根引腳,如圖8.20所示。D0~D7(輸入/輸出、三態(tài)):與數(shù)據(jù)總線相連,用以傳送CPU與8253之間的數(shù)據(jù)信息。A0、A1(輸入):地址輸入信號(hào)線,用來選擇計(jì)數(shù)器或控制寄存器,一般接地址線低位。其功能如表8.6所示圖8.20Intel8253的外部引腳圖A0A1說明00可選擇計(jì)數(shù)器0寄存器01可選擇計(jì)數(shù)器1寄存器10可選擇計(jì)數(shù)器2寄存器11可選擇控制寄存器表8.6A0、A1功能說明8.2可編程定時(shí)/計(jì)數(shù)器8253/8254

(輸入):片選信號(hào),低電平有效。通常由地址線高位譯碼形成。(輸入):讀控制輸入信號(hào),低電平有效。通常與系統(tǒng)總線的信號(hào)連接。(輸入):寫控制輸入信號(hào),低電平有效。通常與系統(tǒng)總線的信號(hào)連接。8253尋址操作的控制邏輯如表8.7所示。圖8.20Intel8253的外部引腳圖A1A0操作功能01000計(jì)數(shù)器初值裝入計(jì)數(shù)器001001計(jì)數(shù)器初值裝入計(jì)數(shù)器101010計(jì)數(shù)器初值裝入計(jì)數(shù)器201011寫控制寄存器00100讀計(jì)數(shù)器000101讀計(jì)數(shù)器100110讀計(jì)數(shù)器28.2可編程定時(shí)/計(jì)數(shù)器8253/8254

(輸入):用于控制計(jì)數(shù)器的減1操作。CLK最高頻率可達(dá)5MHz。(輸入):門控信號(hào),即計(jì)數(shù)器的控制信號(hào),用來控制計(jì)數(shù)器工作或者復(fù)位。(輸出):當(dāng)相應(yīng)的計(jì)數(shù)器計(jì)數(shù)值減到零時(shí),該端輸出標(biāo)志信號(hào)。在不同的工作方式下,OUT的輸出波形各不相同。圖8.20Intel8253的外部引腳圖8.2可編程定時(shí)/計(jì)數(shù)器8253/82548.2.28253的方式控制字和讀/寫操作1.方式控制字:用來決定計(jì)數(shù)器的工作方式、計(jì)數(shù)形式及輸出方式等。其格式如圖8.21所示。圖8.218253的方式控制字格式8.2可編程定時(shí)/計(jì)數(shù)器8253/82542.8253的讀/寫操作及編程1)寫操作8253有3個(gè)計(jì)數(shù)器通道,需逐個(gè)對(duì)各計(jì)數(shù)器分別進(jìn)行初始化。當(dāng)方式控制字中D0=0時(shí),采用二進(jìn)制計(jì)數(shù),初值可在0000H~FFFFH之間選擇;而當(dāng)方式控制字中D0=1時(shí),采用十進(jìn)制計(jì)數(shù),初值可在0000~9999之間選擇。由于8253中計(jì)數(shù)器采用減1計(jì)數(shù)方式工作,因此計(jì)數(shù)初值為0時(shí),對(duì)應(yīng)著最大計(jì)數(shù)值,即二進(jìn)制數(shù)時(shí)為65536,十進(jìn)制數(shù)時(shí)為10000。8.2可編程定時(shí)/計(jì)數(shù)器8253/8254例8.4利用8253的計(jì)數(shù)器通道2產(chǎn)生頻率為10000Hz的方波。設(shè)計(jì)數(shù)時(shí)鐘脈沖的頻率f=10000Hz。其初始化程序如下:MOVAL,10110110B;方式3,通道2,二進(jìn)制,先低后高OUTCOTR,AL;寫入控制寄存器MOVAX,4A7H;產(chǎn)生10000Hz所需的計(jì)數(shù)初值=f/1000OUTCTN2,AL;先寫計(jì)數(shù)初值低字節(jié)MOVAL,AHOUTCTN2,AL;再寫計(jì)數(shù)初值高字節(jié)8.2可編程定時(shí)/計(jì)數(shù)器8253/8254例8.5若選擇通道0,工作在方式1,計(jì)數(shù)初值為2350H,按十進(jìn)制計(jì)數(shù),并設(shè)8253的端口地址為40H~43H,則初始化程序段如下:MOVAL,33H;計(jì)數(shù)器0,方式1,十進(jìn)制,先低后高OUT43H,AL;寫入控制寄存器MOVAL,50H;計(jì)數(shù)初值低字節(jié)OUT40H,AL;寫入計(jì)數(shù)器0MOVAL,23H;計(jì)數(shù)初值高字節(jié)OUT40H,AL;寫入計(jì)數(shù)器08.2可編程定時(shí)/計(jì)數(shù)器8253/82542)讀操作讀取計(jì)數(shù)器當(dāng)前值有兩種方法:第一種方法:利用門控GATE信號(hào)為低電平或關(guān)閉CLK脈沖,使計(jì)數(shù)操作暫停,以讀出確定的計(jì)數(shù)值。CPU首先向8253的控制寄存器中送入一個(gè)方式控制字,選擇要讀取的計(jì)數(shù)器并設(shè)定讀/寫方式。第二種方法:在計(jì)數(shù)過程中讀出計(jì)數(shù)器值,而不影響計(jì)數(shù)器的工作。CPU首先向8253的控制寄存器寫入一個(gè)特定的方式控制字(SC1SC000××××),即鎖存讀命令,將所選中的計(jì)數(shù)器當(dāng)前計(jì)數(shù)值鎖存到計(jì)數(shù)鎖存器中。這種讀取計(jì)數(shù)值的方法稱為鎖存讀,又叫做“飛讀”。8.2可編程定時(shí)/計(jì)數(shù)器8253/8254例如,采用鎖存讀的方法,讀取通道1的16位計(jì)數(shù)值,其程序段如下:MOVAL,40H;方式控制字:通道1,鎖存OUTCOTR,AL;寫入8253的控制寄存器INAL,CNT1;第一次讀入低8位MOVCL,ALINAL,CNT1;第二次讀入高8位MOVCH,AL8.2可編程定時(shí)/計(jì)數(shù)器8253/82548.2.38253的工作方式有6種不同的工作方式。其區(qū)別:它們啟動(dòng)計(jì)數(shù)器進(jìn)行計(jì)數(shù)的觸發(fā)方式不同;計(jì)數(shù)過程中,門控信號(hào)GATE對(duì)計(jì)數(shù)操作的影響不同;計(jì)數(shù)結(jié)束后,OUT輸出線上的輸出波形不同。8.2可編程定時(shí)/計(jì)數(shù)器8253/82541.方式0(計(jì)數(shù)結(jié)束產(chǎn)生中斷)

1)工作過程當(dāng)CPU向8253的計(jì)數(shù)器通道所對(duì)應(yīng)的控制寄存器中寫入方式0的控制字后,該計(jì)數(shù)器通道的OUT輸出信號(hào)立即變?yōu)榈碗娖?,一旦?jì)數(shù)初值被裝入,計(jì)數(shù)器馬上開始對(duì)CLK輸入信號(hào)進(jìn)行減1計(jì)數(shù),即每過一個(gè)時(shí)鐘周期計(jì)數(shù)器減1,當(dāng)計(jì)數(shù)值減到0即計(jì)數(shù)結(jié)束時(shí),OUT輸出高電平,其工作波形如圖8.22所示(其中CW是控制字,N為計(jì)數(shù)值)。常利用OUT信號(hào)作為中斷請(qǐng)求信號(hào)。8.2可編程定時(shí)/計(jì)數(shù)器8253/82542)方式0特點(diǎn)(1)方式0是一種單次計(jì)數(shù)工作方式,即寫一次計(jì)數(shù)值,觸發(fā)一次定時(shí)計(jì)數(shù)操作,計(jì)數(shù)器不會(huì)自動(dòng)恢復(fù)初值重新開始計(jì)數(shù)。(2)如果在計(jì)數(shù)過程中修改計(jì)數(shù)值,則在寫入新的計(jì)數(shù)值后,計(jì)數(shù)器將從新的計(jì)數(shù)值開始重新減1計(jì)數(shù)。(3)門控信號(hào)GATE可以用來控制計(jì)數(shù)過程。當(dāng)GATE為高電平時(shí),允許減1計(jì)數(shù);當(dāng)GATE為低電平時(shí),則禁止減1計(jì)數(shù),這時(shí)計(jì)數(shù)值將保持GATE有效時(shí)的數(shù)值不變,待GATE重新為高電平時(shí)再恢復(fù)計(jì)數(shù)。8.2可編程定時(shí)/計(jì)數(shù)器8253/8254

2.方式1(可編程單穩(wěn)觸發(fā)器)1)工作過程:工作波形如圖8.23所示圖8.23方式1的工作波形2)特點(diǎn)(1)OUT端輸出的單穩(wěn)負(fù)脈沖的寬度等于計(jì)數(shù)器的初值乘以CLK端的輸入脈沖周期。(2)如果在計(jì)數(shù)器未減到0時(shí),門控信號(hào)GATE又來一次觸發(fā)脈沖,則將從初值開始重新計(jì)數(shù)。(3)是一種可重觸發(fā)的單次脈沖方式。(4)在形成單個(gè)負(fù)脈沖的計(jì)數(shù)過程中改變計(jì)數(shù)值,不會(huì)影響正在進(jìn)行的計(jì)數(shù)。8.2可編程定時(shí)/計(jì)數(shù)器8253/82543.方式2(分頻器)1)工作過程:工作波形如圖8.24所示圖8.24方式2的工作波形2)特點(diǎn)(1)一種連續(xù)計(jì)數(shù)工作方式,OUT端輸出信號(hào)的頻率為CLK信號(hào)頻率的1/n(n為計(jì)數(shù)初值),故稱為頻率發(fā)生器。這種工作方式可以用作分頻器或用于產(chǎn)生定時(shí)時(shí)鐘中斷。(2)在計(jì)數(shù)過程中,可由門控信號(hào)GATE控制暫?;騿?dòng)。(3)在計(jì)數(shù)過程中,改變計(jì)數(shù)值,不影響當(dāng)前的計(jì)數(shù)過程,直到下一次計(jì)數(shù)分頻時(shí),才用新的計(jì)數(shù)值進(jìn)行計(jì)數(shù)操作。8.2可編程定時(shí)/計(jì)數(shù)器8253/82544.方式3(方波頻率發(fā)生器)1)工作過程:工作波形如圖8.25所示。圖8.25方式3的工作波形2)特點(diǎn)(1)是一種連續(xù)計(jì)數(shù)工作方式,只是OUT輸出為方波,故也稱為方波頻率發(fā)生器。(2)可由門控信號(hào)GATE控制暫?;蛑匦掠?jì)數(shù)。(3)在計(jì)數(shù)過程中,改變計(jì)數(shù)值,不影響當(dāng)前的計(jì)數(shù)過程,直到下一次計(jì)數(shù),才用新的計(jì)數(shù)值進(jìn)行計(jì)數(shù)操作。8.2可編程定時(shí)/計(jì)數(shù)器8253/82545.方式4(軟件觸發(fā)選通)1)工作過程:工作波形如圖8.26所示。圖8.26方式4的工作波形2)特點(diǎn)(1)是一種單次計(jì)數(shù)工作方式,若要再次啟動(dòng)計(jì)數(shù)過程,則必須重新置入計(jì)數(shù)初值。(2)如果在計(jì)數(shù)過程中修改計(jì)數(shù)值,則計(jì)數(shù)器從下一計(jì)數(shù)脈沖周期開始以新的計(jì)數(shù)值進(jìn)行計(jì)數(shù)。即在計(jì)數(shù)過程中,修改計(jì)數(shù)初值將立即影響正在進(jìn)行的計(jì)數(shù),這也正是軟件觸發(fā)選通名字的由來。(3)門控信號(hào)GATE可以用來控制計(jì)數(shù)過程。8.2可編程定時(shí)/計(jì)數(shù)器8253/8254

6.方式5(硬件觸發(fā)選通)1)工作過程:工作波形如圖8.27所示

2)特點(diǎn)(1)是一種單次計(jì)數(shù)工作方式。(2)在計(jì)數(shù)過程中,若門控信號(hào)GATE發(fā)生了正跳變,則不論計(jì)數(shù)是否結(jié)束,都將開始新一輪的計(jì)數(shù)。這也正是硬件觸發(fā)

選通名字的由來。(3)在計(jì)數(shù)過程中修改了計(jì)數(shù)初值,不會(huì)影響正在進(jìn)行的計(jì)數(shù)工作。圖8.27方式5的工作波形8.2可編程定時(shí)/計(jì)數(shù)器8253/8254

門控信號(hào)GATE對(duì)不同的工作方式,其作用也不一樣。表8.8和表8.9分別給出了GATE信號(hào)的功能和計(jì)數(shù)過程中改變計(jì)數(shù)值對(duì)6種工作方式的影響。GATE低電平或變到低電平上升沿高電平方式0禁止計(jì)數(shù)不影響允許計(jì)數(shù)方式1不影響啟動(dòng)計(jì)數(shù)不影響方式2禁止計(jì)數(shù)并置OUT為高初始化計(jì)數(shù)允許計(jì)數(shù)方式3禁止計(jì)數(shù)并置OUT為高初始化計(jì)數(shù)允許計(jì)數(shù)方式4禁止計(jì)數(shù)不影響允許計(jì)數(shù)方式5不影響啟動(dòng)計(jì)數(shù)不影響方式功能改變計(jì)數(shù)值0計(jì)數(shù)結(jié)束中斷立即有效1可編程單穩(wěn)外部觸發(fā)后有效2頻率發(fā)生器計(jì)數(shù)到0后有效3方波發(fā)生器計(jì)數(shù)到0后有效4軟件觸發(fā)選通立即有效5硬件觸發(fā)選通外部觸發(fā)后有效表8.8GATE信號(hào)功能表表8.9改變計(jì)數(shù)值對(duì)計(jì)數(shù)的影響8.2可編程定時(shí)/計(jì)數(shù)器8253/82548.2.48253的初始化編程及應(yīng)用IBM-PC/XT的系統(tǒng)板上使用了一片8253來構(gòu)成系統(tǒng)定時(shí)計(jì)數(shù)的核心部件。如圖8.28所示。其中:A0、A1用于尋址8253內(nèi)部寄存器和計(jì)數(shù)器。端口地址分配如表8.10所示。圖8.288253在系統(tǒng)板上的連接圖I/O端口地址計(jì)數(shù)器通道及寄存器0040H計(jì)數(shù)器00041H計(jì)數(shù)器10042H計(jì)數(shù)器20043H控制寄存器表8.10端口地址分配表8.2可編程定時(shí)/計(jì)數(shù)器8253/82543個(gè)通道計(jì)數(shù)器的功能1)計(jì)數(shù)器0系統(tǒng)分配給它的口地址是0040H。它用作IBM-PC/XT系統(tǒng)的“時(shí)鐘”計(jì)時(shí)電路。分析:其門控信號(hào)GATE由于恒接+5V電源,為1.193MHz方波信號(hào);計(jì)數(shù)器0的輸出接在系統(tǒng)中斷控制器8259的中斷請(qǐng)求線上;BIOS初始化計(jì)數(shù)器0為工作方式3,初值預(yù)置為0,最大計(jì)數(shù)值為216

BIOS時(shí)鐘中斷服務(wù)程序的地址單元0040H:006CH和0040H:006DH保存時(shí)鐘的低位字,0040H:006EH和0040H:006FH保存時(shí)鐘的高位字,。8.2可編程定時(shí)/計(jì)數(shù)器8253/8254BIOS對(duì)計(jì)數(shù)器0的初始化程序段如下:MOVAL,36H;通道0,方式3,二進(jìn)制計(jì)數(shù)OUT43H,AL;寫方式控制字MOVAL,0OUT40H,AL;寫計(jì)數(shù)器低字節(jié)OUT40H,AL;寫計(jì)數(shù)器高字節(jié)8.2可編程定時(shí)/計(jì)數(shù)器8253/82542)計(jì)數(shù)器1系統(tǒng)分配給它的口地址為0041H,用于定時(shí)地向DMA控制器提出服務(wù)請(qǐng)求,以對(duì)動(dòng)態(tài)存儲(chǔ)器RAM進(jìn)行刷新。BIOS初始化計(jì)數(shù)器1為工作方式2,初值預(yù)置為18。BIOS對(duì)計(jì)數(shù)器1的初始化程序如下:MOVAL,54H;計(jì)數(shù)器1,低字節(jié),方式2,二進(jìn)制計(jì)數(shù)OUT43H,AL;寫方式控制字MOVAL,18;計(jì)時(shí)器初值為18OUT41H,AL;寫計(jì)數(shù)器初值8.2可編程定時(shí)/計(jì)數(shù)器8253/82543)計(jì)數(shù)器2系統(tǒng)分配給它的口地址為0042H,利用該計(jì)數(shù)器的輸出控制揚(yáng)聲器發(fā)聲。BIOS初始化計(jì)數(shù)器2為工作方式3,初值預(yù)置為533H。BEEPPROCNEARMOVAL,10110110B;計(jì)數(shù)器2,寫入低、高字節(jié),二進(jìn)制OUT43H,AL;寫入方式控制字MOVAX,533H;計(jì)數(shù)器初值,產(chǎn)生1000Hz分頻數(shù)OUT42H,AL;寫入低字節(jié)MOVAL,AHOUT42H,AL;寫入高字節(jié)INAL,61H;讀8255的B口8.2可編程定時(shí)/計(jì)數(shù)器8253/8254MOVAH,AL;暫存ORAL,03H;揚(yáng)聲器啟動(dòng)OUT61H,ALSUBCX,CX;設(shè)置計(jì)數(shù)器等待500msG7:LOOPG7;延遲DECBL;延遲計(jì)數(shù)滿JNGG7;否,繼續(xù)發(fā)聲MOVAL,AHOUT61H,AL;恢復(fù)端口BRETBEEPENDP8.2可編程定時(shí)/計(jì)數(shù)器8253/82548.2.5可編程定時(shí)/計(jì)數(shù)器82548254芯片中每一個(gè)計(jì)數(shù)器都有一個(gè)狀態(tài)寄存器,用于保存該計(jì)數(shù)器的狀態(tài)。狀態(tài)寄存器的內(nèi)容稱為狀態(tài)字,可由CPU讀出。其格式如圖8.29所示。圖8.298254狀態(tài)字格式其中:D5~D0與CPU寫入該計(jì)數(shù)器的方式控制字的對(duì)應(yīng)位一致;D7位為輸出位,反映該計(jì)數(shù)器輸出信號(hào)OUT的狀態(tài),若OUT輸出高電平,則D7=1,否則D7=0;D6位指示計(jì)數(shù)值是否已由計(jì)數(shù)寄存器送入減1寄存器中,若已裝入,則D6=0,否則D6=1。顯然,D6=1時(shí)讀入計(jì)數(shù)值是無意義的。8.2可編程定時(shí)/計(jì)數(shù)器8253/8254另外,8254比8253多一個(gè)讀回命令字,即8254有兩個(gè)命令字:鎖存命令字和讀回命令字,這兩個(gè)命令字的地址相同。鎖存命令字:用來將指定計(jì)數(shù)器通道的當(dāng)前計(jì)數(shù)執(zhí)行單元的內(nèi)容存入相應(yīng)的輸出鎖存器中,以供CPU讀出。格式如圖8.30所示。SC1、SC0:用于選擇計(jì)數(shù)器通道;D5、D4:是鎖存命令字的特征標(biāo)志;其余4位在該命令字中沒有意義。圖8.308254鎖存命令字格式8.2可編程定時(shí)/計(jì)數(shù)器8253/8254讀回命令字:將指定計(jì)數(shù)器通道的當(dāng)前計(jì)數(shù)執(zhí)行單元的內(nèi)容和狀態(tài)信息鎖存待讀。格式如圖8.31所示。D7D6=11:兩位是讀回命令字的特征標(biāo)志;D5:是計(jì)數(shù)值鎖存命令位,若D5=0,表明指定計(jì)數(shù)器通道的計(jì)數(shù)值進(jìn)行鎖存,否則D5=1不鎖存;

D4:是狀態(tài)字鎖存命令位,若D4=0,表明指定計(jì)數(shù)器通道的狀態(tài)字進(jìn)行鎖存,否則D4=1不鎖存;D3~D1

:3位用于選擇計(jì)數(shù)器,分別對(duì)應(yīng)計(jì)數(shù)器2、1和0,這3位是相互獨(dú)立的,這表明一個(gè)讀回命令字可以同時(shí)命令一個(gè)以上的計(jì)數(shù)值和狀態(tài)字鎖存待讀。圖8.318254讀回命令字格式8.2可編程定時(shí)/計(jì)數(shù)器8253/82548.3.1串行通信概述串行通信:是把組成信息的各個(gè)碼位在同一根傳輸線上,從低位到高位,逐位地、順序地進(jìn)行傳送的通信方式。特點(diǎn):在一根傳輸線上既傳送數(shù)據(jù)信息,又傳送聯(lián)絡(luò)控制信息;它的信息格式有固定的要求,分異步和同步信息格式,與此相應(yīng),就有異步通信和同步通信兩種方式;在傳輸線上對(duì)信息的邏輯定義與TTL不兼容,因此,需要進(jìn)行邏輯電平轉(zhuǎn)換。優(yōu)點(diǎn):串行通信具有傳輸線少、成本低等,適合遠(yuǎn)距離傳送;缺點(diǎn):速度慢。8.3可編程串行接口82511.串行通信接口的基本任務(wù)1)實(shí)現(xiàn)數(shù)據(jù)格式化2)進(jìn)行串—并轉(zhuǎn)換3)控制數(shù)據(jù)傳輸速率4)進(jìn)行錯(cuò)誤檢測(cè)5)進(jìn)行TTL與EIA電平轉(zhuǎn)換6)提供EIA-RS-232C接口標(biāo)準(zhǔn)所要求的信號(hào)線8.3可編程串行接口82512.串行通信接口的組成串行接口部件的典型結(jié)構(gòu)如圖8.32所示,主要由控制寄存器、狀態(tài)寄存器、數(shù)據(jù)輸入寄存器和數(shù)據(jù)輸出寄存器四部分組成。圖8.32串行接口與CPU、外設(shè)的連接8.3可編程串行接口82511)控制寄存器:控制寄存器用來保存決定接口工作方式的控制信息。2)狀態(tài)寄存器:狀態(tài)寄存器中的每一個(gè)狀態(tài)位都可以用來標(biāo)識(shí)傳輸過程中某一種錯(cuò)誤或當(dāng)前傳輸狀態(tài)。3)數(shù)據(jù)寄存器(1)數(shù)據(jù)輸入寄存器:在輸入過程中,串行數(shù)據(jù)一位一位地從傳輸線進(jìn)入串行接口的移位寄存器,經(jīng)過串入并出電路的轉(zhuǎn)換,接收完一個(gè)字符后,數(shù)據(jù)就從移位寄存器傳送到數(shù)據(jù)輸入寄存器。(2)數(shù)據(jù)輸出寄存器:在輸出過程中,先送到數(shù)據(jù)輸出緩沖寄存器,然后傳到移位寄存器,經(jīng)過并入串出電路的轉(zhuǎn)換一位一位地通過輸出傳輸線送到對(duì)方。8.3可編程串行接口8251

隨著大規(guī)模集成電路技術(shù)的發(fā)展,通用的可編程序的同步和異步接口芯片種類越來越多,如表8.11所示。芯片同步異步(起止式)面向字符HDLCINS8250

√MC6850

√MC6852√

MC6854

INT8251√

√INT8273

Z-80SIO√√√表8.11常用可編程同步和異步接口芯片8.3可編程串行接口82513.串行通信的有關(guān)概念1)發(fā)送時(shí)鐘和接收時(shí)鐘(1)發(fā)送時(shí)鐘:串行數(shù)據(jù)的發(fā)送由發(fā)送時(shí)鐘控制,數(shù)據(jù)發(fā)送過程是:把并行的數(shù)據(jù)序列送入移位寄存器,然后通過移位寄存器由發(fā)送時(shí)鐘觸發(fā)進(jìn)行移位輸出,數(shù)據(jù)位的時(shí)間間隔可由發(fā)送時(shí)鐘周期來劃分。(2)接收時(shí)鐘:串行數(shù)據(jù)的接收是由接收時(shí)鐘來檢測(cè)的,接收過程就是將串行數(shù)據(jù)序列,逐位移入移位寄存器后組成并行數(shù)據(jù)序列的過程。8.3可編程串行接口82512)DTE和DCE(1)數(shù)據(jù)終端設(shè)備(DataTerminalEquipment,DTE):是對(duì)屬于用戶所有聯(lián)網(wǎng)設(shè)備和工作站的統(tǒng)稱,是數(shù)據(jù)的源或目的或者既是源又是目的。(2)數(shù)據(jù)電路終端設(shè)備或數(shù)據(jù)通信設(shè)備(DataCircuit-terminatingEquipment或DataCommunicationEquipment,DCE):前者為CCITT標(biāo)準(zhǔn)所用;

后者為EIA標(biāo)準(zhǔn)所用。DCE是對(duì)網(wǎng)絡(luò)設(shè)備的統(tǒng)稱;自動(dòng)呼叫/應(yīng)答設(shè)備、調(diào)制解調(diào)器(Modem)和其他一些中間設(shè)備均屬于DCE。3)信道:傳輸信息所經(jīng)過的通道,是連接兩個(gè)DTE的線路。8.3可編程串行接口82514.串行通信中的工作方式1)單工工作方式:傳輸?shù)木€路用一根線連接,通信的一端連接發(fā)送器,另一端連接接收器,即形成單向連接,只允許數(shù)據(jù)按照一個(gè)固定的方向傳送,如圖8.33(a)所示。8.3可編程串行接口8251

2)半雙工工作方式:使用同一根傳輸線既作輸入又作輸出,但通信雙方不能同時(shí)收發(fā)數(shù)據(jù),即它們只能依賴分時(shí)切換方向?qū)崿F(xiàn)互相收發(fā)數(shù)據(jù)。如圖8.33(b)所示3)全雙工工作方式:數(shù)據(jù)的發(fā)送和接收分為兩套獨(dú)立的資源同時(shí)進(jìn)行,分別由兩根不同的傳輸線同時(shí)傳送時(shí),通信雙方都能在同一時(shí)刻進(jìn)行發(fā)送和接收操作,如圖8.33(c)所示。8.3可編程串行接口82515.同步通信和異步通信方式1)同步通信方式由一個(gè)統(tǒng)一的時(shí)鐘控制發(fā)送方和接收方,若干字符組成一個(gè)信息組,字符要一個(gè)接著一個(gè)傳送;沒有字符時(shí),也要發(fā)送專用的“空閑”字符或者同步字符,因?yàn)橥絺鬏敃r(shí),要求必須連續(xù)傳送字符,每個(gè)字符的位數(shù)要相同,中間不允許有間隔。同步傳輸?shù)奶卣魇?在每組信息的開始(常稱為幀頭)要加上1~2個(gè)同步字符,后面跟著8位的字符數(shù)據(jù)。同步通信的數(shù)據(jù)格式如圖8.34所示。圖8.34同步通信字符格式8.3可編程串行接口82512)異步通信方式:是指通信中兩個(gè)字符的時(shí)間間隔是不固定的,而在同一字符中的兩個(gè)相鄰代碼間的時(shí)間間隔是固定的通信。

特征:字符是一幀一幀的傳送,每一幀字符的傳送靠起始位來同步。在數(shù)據(jù)傳輸過程中,傳輸線上允許有空字符,數(shù)據(jù)格式如圖8.35所示。圖8.35異步通信字符格式8.3可編程串行接口82516.通信中必須遵循的規(guī)定1)字符格式的規(guī)定:通信中傳輸字符的格式要按規(guī)定寫。2)比特率、波特率(Baudrate)(1)比特率:作為串行傳輸中數(shù)據(jù)傳輸速度的測(cè)量單位,用每秒傳輸?shù)亩M(jìn)制數(shù)的位數(shù)bps(位/秒)來表示。(2)波特率:用來描述每秒鐘發(fā)生二進(jìn)制信號(hào)的事件數(shù),用來表示一個(gè)二進(jìn)制數(shù)據(jù)位的持續(xù)時(shí)間。

波特率=1/二進(jìn)制位的持續(xù)時(shí)間時(shí)鐘頻率=n×波特率8.3可編程串行接口8251

8.信號(hào)的調(diào)制與解調(diào)調(diào)制解調(diào)器:顧名思義主要完成調(diào)制和解調(diào)的功能。經(jīng)過調(diào)制器(Modulator)可把數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào);經(jīng)過解調(diào)器(Demodulator)可把模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。使用Modem實(shí)現(xiàn)了對(duì)通信雙方信號(hào)的轉(zhuǎn)換過程,如圖8.36所示。圖8.36調(diào)制與解調(diào)過程8.3可編程串行接口82518.3.28251的外部引線及內(nèi)部結(jié)構(gòu)1.8251的內(nèi)部結(jié)構(gòu)及性能8251是一個(gè)功能很強(qiáng)的全雙工可編程串行通信接口,具有獨(dú)立的雙緩沖結(jié)構(gòu)的接收和發(fā)送器,通過編程可以選擇同步方式或者異步方式。8251由數(shù)據(jù)總線緩沖器、讀/寫控制邏輯、發(fā)送緩沖器、發(fā)送控制器、接收緩沖器、接收控制器、調(diào)制/解調(diào)控制邏輯、同步字符寄存器及控制各種操作的方式寄存器等組成。其內(nèi)部結(jié)構(gòu)圖如圖8.37所示。8.3可編程串行接口8251圖8.378251內(nèi)部結(jié)構(gòu)原理框圖8.3可編程串行接口82511)數(shù)據(jù)總線緩沖器

通過8位數(shù)據(jù)線D7~D0和CPU的數(shù)據(jù)總線相連,負(fù)責(zé)把接收口接收到的信息送給CPU,或把CPU發(fā)來的信息送給發(fā)送口。還可隨時(shí)把狀態(tài)寄存器中的內(nèi)容讀到CPU中,在8251初始化時(shí),分別把方式字、控制字和同步字符送到方式寄存器、控制寄存器和同步字符寄存器中。2)接收緩沖器與接收控制電路接收緩沖器:包括接收移位寄存器和數(shù)據(jù)輸入寄存器。接收控制電路:是用來控制數(shù)據(jù)接收工作的。8.3可編程串行接口82513)讀/寫控制邏輯讀/寫控制邏輯接收與讀/寫有關(guān)的控制信號(hào),由、、、的邏輯電路組合產(chǎn)生出8251所執(zhí)行的操作,如表8.12所示。執(zhí)行的操作0000010110100011CPU由8251輸入數(shù)據(jù)CPU向8251輸出數(shù)據(jù)CPU讀取8251的狀態(tài)CPU向8251寫入控制命令表8.128251的控制信號(hào)與執(zhí)行的操作之間的對(duì)應(yīng)關(guān)系8.3可編程串行接口82514)發(fā)送緩沖器與發(fā)送控制電路發(fā)送緩沖器:包括發(fā)送移位寄存器和數(shù)據(jù)輸出寄存器,。發(fā)送控制電路:對(duì)串行數(shù)據(jù)實(shí)行發(fā)送控制。發(fā)送器的另一個(gè)功能是發(fā)送中止符

(BREAK),只要8251的命令寄存器的bit3為“1”,發(fā)送器就始終發(fā)送終止符。5)調(diào)制/解調(diào)器控制邏輯在全雙工通信方式下,每個(gè)收、發(fā)口都要連接調(diào)制解調(diào)器。調(diào)制解調(diào)器控制電路是專為調(diào)制解調(diào)器提供控制信號(hào)用的。8.3可編程串行接口82512.8251的外部性能雙列直插式的28條引腳封裝的集成電路,引腳信號(hào)如圖8.38所示。與CPU連接如圖8.39所示。圖8.388251引腳圖圖8.398251和CPU連接示意圖8.3可編程串行接口82511)8251與CPU的接口信號(hào)(1)數(shù)據(jù)線D7~D0(輸入/輸出,三態(tài)):通過這8條線和CPU的數(shù)據(jù)總線相連接(2)片選信號(hào)(輸入):低電平有效。(3)讀/寫控制信號(hào)(輸入):讀信號(hào),低電平有效。(輸入):寫信號(hào),低電平有效。(輸入):控制/數(shù)據(jù)信號(hào),分時(shí)復(fù)用。用來區(qū)分當(dāng)前讀/寫的是數(shù)據(jù)還是控制信息或狀態(tài)信息。

RESET(輸入):復(fù)位信號(hào),高電平有效。

CLK(輸入):主時(shí)鐘信號(hào),用于芯片內(nèi)部的定時(shí)。8.3可編程串行接口8251(4)與發(fā)送有關(guān)的聯(lián)絡(luò)信號(hào)TXRDY(輸出):發(fā)送器準(zhǔn)備好信號(hào),高電平有效。所謂發(fā)送器準(zhǔn)備好,就是控制字的第0位TXEN為“1”時(shí),使8251允許發(fā)送,并且調(diào)制解調(diào)器已做好接收準(zhǔn)備,發(fā)出信號(hào)使8251的CTS信號(hào)變低為有效。TXEMPTY(輸入):發(fā)送器空信號(hào)??刂?251發(fā)送器發(fā)送字符的速度。對(duì)于同步方式,它的輸入時(shí)鐘頻率應(yīng)等于發(fā)送數(shù)據(jù)的波特率;對(duì)于異步方式,它的頻率等于發(fā)送波特率和波特率因子的乘積。8.3可編程串行接口8251(5)與接收有關(guān)的聯(lián)絡(luò)信號(hào)。

RXRDY(輸出):接收器準(zhǔn)備好信號(hào),高電平有效。它可以作為中斷請(qǐng)求信號(hào)或查詢聯(lián)絡(luò)信號(hào)與CPU聯(lián)系。

TXE(輸入):接收器時(shí)鐘信號(hào),控制8251接收字符的速度。在同步方式下,它的頻率等于接收數(shù)據(jù)的波特率;在異步方式下,時(shí)鐘頻率等于波特率和波特率因子的乘積。

SYNDET/BRKDET(輸入/輸出):同步檢測(cè)/斷缺檢測(cè)信號(hào),高電平有效。在同步方式下,SYNDET執(zhí)行同步檢測(cè)功能,可以工作在輸入狀態(tài),也可以工作在輸出狀態(tài)。同步檢測(cè)分為內(nèi)同步和外同步兩種方式。8.3可編程串行接口8251

內(nèi)同步方式時(shí),SYNDET作為輸出端,是在8251內(nèi)部檢測(cè)同步字符。如果8251檢測(cè)到了所要求的一個(gè)或兩個(gè)同步字符,則SYNDET輸出高電平,表示已達(dá)到同步,后續(xù)收到的是有效數(shù)據(jù)。

外同步方式時(shí),SYNDET作為輸入端。外同步是由外部其他機(jī)構(gòu)來檢測(cè)同步字符的,當(dāng)外部檢測(cè)到同步字符以后,從SYNDET端向8251輸入一個(gè)高電平信號(hào),表示已達(dá)到同步,接收器可以串行接收數(shù)據(jù)。芯片復(fù)位時(shí),SYNDET為低電平。在異步方式下BRKDET實(shí)現(xiàn)斷缺檢測(cè)功能,當(dāng)端連續(xù)收到8個(gè)0信號(hào)時(shí),BRKDET端呈高電平,表示當(dāng)前處于數(shù)據(jù)斷缺狀態(tài),端沒有收到數(shù)據(jù);當(dāng)端收到1信號(hào)時(shí),BRKDET端變?yōu)榈碗娖健?.3可編程串行接口82512)8251與外部裝置之間的接口信號(hào)(1)數(shù)據(jù)信號(hào)。

TXD(輸出):發(fā)送數(shù)據(jù)信號(hào)端。

RXD(輸入):接收數(shù)據(jù)信號(hào)端。(2)發(fā)送數(shù)據(jù)時(shí)的聯(lián)絡(luò)信號(hào)。(輸出):請(qǐng)求發(fā)送信號(hào),低電平有效。(輸入):發(fā)送允許信號(hào),低電平有效。(3)接收數(shù)據(jù)時(shí)的聯(lián)絡(luò)信號(hào)。(輸出):數(shù)據(jù)終端準(zhǔn)備好信號(hào),低電平有效。(輸入):數(shù)據(jù)裝置準(zhǔn)備好信號(hào),低電平有效。8.3可編程串行接口82518.3.38251的控制字及其工作方式1.方式寄存器:8251初始化時(shí),用來寫入方式選擇字。方式選擇有兩種:同步方式和異步方式1)8251工作在同步方式下,格式如圖8.40所示。圖8.408251同步方式下方式寄存器的格式8.3可編程串行接口82512)8251工作在異步方式下,方式寄存器的格式如圖8.41所示。圖8.418251異步方式下方式寄存器的格式8.3可編程串行接

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論