第5章典型接口芯片原理和應(yīng)用_第1頁
第5章典型接口芯片原理和應(yīng)用_第2頁
第5章典型接口芯片原理和應(yīng)用_第3頁
第5章典型接口芯片原理和應(yīng)用_第4頁
第5章典型接口芯片原理和應(yīng)用_第5頁
已閱讀5頁,還剩109頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第5章典型接口芯片原理和應(yīng)用25.1 I/O接口電路及其應(yīng)用I/O接口的功能采用I/O接口的必要性計(jì)算機(jī)和外設(shè)之間的信息交換帶來一些問題:速度不匹配信號(hào)電平不匹配信號(hào)格式不匹配時(shí)序不匹配因此I/O設(shè)備不能直接與CPU的系統(tǒng)總線相連,必須在CPU與外設(shè)之間設(shè)置專門的接口電路來解決這些問題。3接口的功能:設(shè)置數(shù)據(jù)緩沖器以解決兩者速度差異所帶來的不協(xié)調(diào)問題設(shè)置信號(hào)電平轉(zhuǎn)換電路設(shè)置信息轉(zhuǎn)換邏輯以滿足對(duì)各自格式的要求設(shè)置時(shí)序控制電路來同步CPU和外設(shè)的工作提供地址譯碼電路,使CPU在同一時(shí)刻只能選中某一個(gè)I/O端口。I/O接口電路是外設(shè)和計(jì)算機(jī)之間傳送信息的交換部件,也稱為界面,它使兩者之間能很好地協(xié)調(diào)工作,每一個(gè)外設(shè)都要通過接口電路才能和主機(jī)相連。CPU接口外設(shè)4隨著大規(guī)模集成電路技術(shù)的發(fā)展,出現(xiàn)了許多通用的可編程接口芯片,可用它們來方便地構(gòu)成接口電路。后面幾章將介紹常見的可編程I/O接口芯片的原理、編程方法及與CPU的連接方法??删幊讨袛嗫刂破?259A可編程計(jì)數(shù)器/定時(shí)器8253可編程外圍接口芯片8255A串行通信和可編程接口芯片8251AA/D和D/A轉(zhuǎn)換芯片。本章介紹最常用的簡單I/O接口芯片,主要有緩沖器(Buffer)和鎖存器(Latch)??删幊梯斎胼敵鼋涌谛酒?二、簡單的輸入輸出接口芯片緩沖器74LS244和74LS245連接在總線上的緩沖器都具有三態(tài)輸出能力。在CPU或I/O接口電路需要輸入輸出數(shù)據(jù)時(shí),在它的使能控制端EN(或G)作用一個(gè)低電平脈沖,使它的內(nèi)部的各緩沖單元接通,即處在輸出0或1的透明狀態(tài)。數(shù)據(jù)被送上總線。當(dāng)使能脈沖撤除后,它處于高阻態(tài)。這時(shí),各緩沖單元像一個(gè)斷開的開關(guān),等于將它所連接的電路從總線脫開。74LS244和74LS245就是最常用的數(shù)據(jù)緩沖器。除緩沖作用外,它們還能提高總線的驅(qū)動(dòng)能力。6(1)74LS244—單向數(shù)據(jù)緩沖器8個(gè)三態(tài)緩沖單元,分成兩組,分別由門控信號(hào)1G和2G控制。1G和2G為低電平時(shí),數(shù)據(jù)傳送;高電平時(shí),輸出高阻態(tài)。單向緩沖器,只能從A端到Y(jié)端。7(2)74LS245—雙向數(shù)據(jù)緩沖器8個(gè)雙向、三態(tài)緩沖器。門控信號(hào)輸入端G。方向控制端DIR,高電平時(shí),數(shù)據(jù)從A端傳向B端;低電平時(shí),從B端傳向A端。82.鎖存器74LS373鎖存器具有暫存數(shù)據(jù)的能力,能將數(shù)據(jù)鎖住,在輸出控制信號(hào)的作用下將數(shù)據(jù)傳送出去。74LS373是一種常用的8D鎖存器,它可以直接掛在總線上,并具有三態(tài)總線驅(qū)動(dòng)能力。兩個(gè)控制輸入端:輸入使能端G和允許輸出端OE。OE為低時(shí):G為高時(shí),D端數(shù)據(jù)到O端;G為低時(shí),O端將是前面鎖存的數(shù)據(jù),不受D端的變化影響。OE為高時(shí):輸出將呈高阻態(tài)。OEGDO低高高高低高低低低低X鎖存高XX高阻態(tài)真值表9三、I/O端口及其尋址方式I/O端口CPU與外設(shè)通信時(shí),傳送的信息主要包括數(shù)據(jù)信息、狀態(tài)信息和控制信息。這些信息分別進(jìn)入不同的寄存器,通常將這些寄存器和它們的控制邏輯統(tǒng)稱為I/O端口(Port),CPU可對(duì)端口中的信息直接進(jìn)行讀寫。數(shù)據(jù)信息狀態(tài)信息控制信息I/O接口外設(shè)數(shù)據(jù)端口數(shù)據(jù)端口狀態(tài)端口控制端口10數(shù)據(jù)端口(DataPort)用來存放CPU與外設(shè)之間交換的數(shù)據(jù),長度一般為1-2個(gè)字節(jié),主要起緩沖作用。狀態(tài)端口(StatusPort)用來指示外設(shè)的當(dāng)前狀態(tài)。每種狀態(tài)用1位表示,由CPU讀取。幾種最常用的狀態(tài)位有:準(zhǔn)備就緒位(Ready)針對(duì)CPU輸入端口:1:數(shù)據(jù)寄存器已準(zhǔn)備好數(shù)據(jù),等待CPU讀取,取走后,位清0。針對(duì)CPU輸出端口:1:輸出數(shù)據(jù)寄存器已空,可以接收下一個(gè)數(shù)據(jù);新數(shù)據(jù)到達(dá)后,位清0。忙碌位(Busy)表明外設(shè)是否能接收數(shù)據(jù)。1:外設(shè)忙,暫時(shí)不允許CPU送信的數(shù)據(jù)過來。0:外設(shè)已空閑,允許CPU發(fā)送下一個(gè)數(shù)據(jù)。錯(cuò)誤位(Error)1:指示在數(shù)據(jù)傳送過程中出現(xiàn)錯(cuò)誤。CPU進(jìn)行相應(yīng)的處理,如重新傳送或中止操作等。11命令端口(CommandPort)也稱為控制端口(ControlPort),用來存放CPU向接口發(fā)出的各種命令和控制字,以便控制接口和設(shè)備的動(dòng)作。常見的命令信息有啟動(dòng)位、停止位、允許中斷位等。接口芯片不同,控制字的格式和內(nèi)容是各不相同的,常見的控制字有方式控制字、操作命令字等。在微型計(jì)算機(jī)系統(tǒng)中,CPU通過接口和外設(shè)交換數(shù)據(jù)時(shí),只有輸入(IN)和輸出(OUT)兩種指令,所以只能把狀態(tài)信息和命令信息當(dāng)作數(shù)據(jù)來傳送,并且將狀態(tài)信息作為輸入數(shù)據(jù),控制信息作為輸出數(shù)據(jù),于是三種信息都可以通過數(shù)據(jù)總線來傳送了。這三種信息被送入三種不同端口的寄存器,因而能實(shí)施不同的功能。122.I/O端口的尋址方法存儲(chǔ)器映像尋址方式(MemoryMappedI/O)I/O單獨(dú)編址方式CPU對(duì)外設(shè)的訪問實(shí)質(zhì)上是對(duì)I/O接口電路中相應(yīng)端口的訪問,因此和存儲(chǔ)器一樣,也需要由譯碼電路來形成I/O端口地址。13四、CPU與外設(shè)間的數(shù)據(jù)傳送方式軟件實(shí)現(xiàn):程序控制方式、中斷方式。硬件實(shí)現(xiàn):DMA方式。程序控制方式無條件方式(同步傳送方式)最簡單的傳送方式,主要用于對(duì)簡單的外設(shè)進(jìn)行操作,或者外設(shè)的定時(shí)是固定的或已知的場合。程序可以不必檢查外設(shè)的狀態(tài),而在需要進(jìn)行I/O操作時(shí),直接執(zhí)行I/O指令。14無條件傳送方式開關(guān)連接到三態(tài)緩沖器,緩沖器輸出端接到CPU的數(shù)據(jù)總線。開關(guān)斷開:高電平輸入;開關(guān)閉合:低電平輸入。執(zhí)行輸入指令,使M/IO、RD和片選信號(hào)CS同時(shí)變?yōu)榈碗娖剑?jīng)過反向與非門變成有效的低電平開啟緩沖器的三態(tài)門,使開關(guān)的當(dāng)前狀態(tài)以二進(jìn)制的形式被讀入CPU。檢查字節(jié)各位的內(nèi)容,就能了解各開關(guān)當(dāng)前狀態(tài)。簡單輸入端口CPU查詢按鍵開關(guān)的狀態(tài)15無條件傳送方式用一個(gè)由鎖存器構(gòu)成的輸出端口來把LED接到計(jì)算機(jī)的數(shù)據(jù)總線上,并串接一個(gè)限流電阻,共陰連接。點(diǎn)燃LED的位是1,滅的是0。輸出指令使M/IO、WR和片選信號(hào)CS同時(shí)變低,相與后的低電平信號(hào)經(jīng)反相后出發(fā)鎖存器。由于鎖存器的作用,輸出值能一直保持到下一個(gè)輸出指令到達(dá)為止,這段時(shí)間內(nèi),LED的狀態(tài)也將保持不變。簡單輸出端口控制LED顯示器的點(diǎn)滅16②條件傳送(查詢式傳送)一般情況下,CPU在執(zhí)行I/O時(shí),很難保證輸入設(shè)備總是準(zhǔn)備好數(shù)據(jù),或是輸出設(shè)備已經(jīng)處在接收數(shù)據(jù)狀態(tài)。CPU必須先確認(rèn)外設(shè)已處于準(zhǔn)備傳送數(shù)據(jù)狀態(tài),才能進(jìn)行傳送。CPU必須先執(zhí)行一條輸入指令,從外設(shè)的狀態(tài)口讀取當(dāng)前的狀態(tài)。如果外設(shè)未準(zhǔn)備好或處于忙碌狀態(tài),則程序要轉(zhuǎn)回去反復(fù)執(zhí)行讀狀態(tài)指令,不斷檢測外設(shè)的狀態(tài);直到外設(shè)準(zhǔn)備就緒為止,然后CPU才可以進(jìn)行正常的I/O操作。17A、查詢式輸入方式當(dāng)輸入設(shè)備準(zhǔn)備好數(shù)據(jù)后,就向I/O接口電路發(fā)一個(gè)選通信號(hào)。將外設(shè)的數(shù)據(jù)打入數(shù)據(jù)鎖存器中。使D觸發(fā)器的Q端置1,表明數(shù)據(jù)準(zhǔn)備好。CPU先執(zhí)行IN指令讀狀態(tài)口的信息,三態(tài)門開啟,Q端的1送到D0位,并被讀入累加器。程序檢測到D0為1后,便執(zhí)行IN指令讀數(shù)據(jù)口。開啟數(shù)據(jù)緩沖器,將外設(shè)送到鎖存器中的數(shù)據(jù)經(jīng)緩沖器送到數(shù)據(jù)總線后進(jìn)累加器。將D觸發(fā)器清0,一次數(shù)據(jù)傳送完畢。18A、查詢式輸入方式設(shè)狀態(tài)口的地址是PORT_S1,輸入數(shù)據(jù)口的地址是PORT_IN,傳送數(shù)據(jù)的總字節(jié)數(shù)為COUNT_1:MOVBX,0 ;初始化地址指針BXMOVCX,COUNT_1 ;字節(jié)數(shù)READ_S1:INAL,PORT_S1 ;讀入狀態(tài)位TESTAL,01H ;數(shù)據(jù)準(zhǔn)備好否?JZREAD_S1 ;否,循環(huán)檢測INAL,PORT_IN;已準(zhǔn)備好,讀數(shù)據(jù)MOV[BX],AL ;存到內(nèi)存緩沖區(qū)INCBX ;修改地址指針LOOPREAD_S1;未傳送完,繼續(xù)傳送

...19查詢式輸出方式當(dāng)CPU準(zhǔn)備向外設(shè)輸出數(shù)據(jù)時(shí),先執(zhí)行IN指令讀狀態(tài)口的信息。三態(tài)門開啟,從數(shù)據(jù)總線D1位讀入BUSY狀態(tài)。若BUSY=1,表示外設(shè)在接收上一個(gè)數(shù)據(jù)的忙碌狀態(tài)。只有在BUSY=0時(shí),CPU才能向外設(shè)輸出新的數(shù)據(jù)。程序檢測到D1(BUSY)為0后,便執(zhí)行OUT指令輸出數(shù)據(jù)。選通數(shù)據(jù)鎖存器,將數(shù)據(jù)送向外設(shè)。選通信號(hào)的后沿使D觸發(fā)器翻轉(zhuǎn),置Q為高電平,將狀態(tài)口的BUSY置1。輸出設(shè)備從接口中取出數(shù)據(jù)后,就送回一個(gè)應(yīng)答信號(hào)ACK,將D觸發(fā)器清0,即置BUSY為0,允許CPU送出下一個(gè)數(shù)據(jù)。20B、查詢式輸出方式設(shè)狀態(tài)口的地址是PORT_S2,輸出數(shù)據(jù)口的地址是PORT_OUT,傳送數(shù)據(jù)的總字節(jié)數(shù)為COUNT_2:MOVCX,COUNT_2 ;傳送的字節(jié)數(shù)READ_S2:INAL,PORT_S2 ;讀入狀態(tài)位TESTAL,02H ;忙否?

JNZREAD_S2 ;忙,循環(huán)檢測

MOVAL,輸出數(shù)據(jù) ;不忙

OUTPORT_OUT,AL;存到內(nèi)存緩沖區(qū)

LOOPREAD_S2 ;未傳送完,循環(huán)

... ;已送完212、中斷方式用查詢方式須反復(fù)查詢外設(shè)的狀態(tài)。由于許多外設(shè)的速度很低,查詢等待過程會(huì)占去CPU的絕大部分時(shí)間,而真正用于數(shù)據(jù)交換的數(shù)據(jù)卻很少,使CPU的利用率變得很低。為了提高CPU的利用率和進(jìn)行實(shí)時(shí)數(shù)據(jù)處理,CPU常采用中斷方式與外設(shè)交換數(shù)據(jù)。采用中斷方式后,CPU平時(shí)可以執(zhí)行主程序,只有當(dāng)輸入設(shè)備將數(shù)據(jù)準(zhǔn)備好,或輸出設(shè)備的數(shù)據(jù)緩沖器已空時(shí),才向CPU發(fā)出中斷請(qǐng)求。CPU響應(yīng)中斷后,暫停執(zhí)行當(dāng)前的程序,轉(zhuǎn)去執(zhí)行管理外設(shè)的中斷服務(wù)程序。其中,用輸入或輸出指令在CPU和外設(shè)之間進(jìn)行一次數(shù)據(jù)交換。等輸入輸出操作完成之后,CPU又回去執(zhí)行原來的程序。225.2 可編程外圍接口芯片8255A及其應(yīng)用0.概述1.8255的外部引腳及內(nèi)部結(jié)構(gòu)2.8255的工作方式3.8255的控制字及狀態(tài)字4.8255的應(yīng)用舉例230.概述

并行接口:一次可以同時(shí)傳送一個(gè)數(shù)據(jù)的所有位并行接口的數(shù)據(jù)傳送方向:一是單向傳送(只作為輸入口或輸出口),另一種是雙向傳送(既可作為輸入口,也可作為輸出口)并行接口的可編程性:不可編程:簡單(如鎖存器或三態(tài)門)

可編程:復(fù)雜,功能完善的并行接口中一般都包括輸入/輸出數(shù)據(jù)寄存器、控制寄存器(存放控制命令)、狀態(tài)寄存器(保存當(dāng)前工作狀態(tài))和總線緩沖器等部件

8255是Intel公司為80×86系列CPU配套的可編程并行接口芯片。通用性較強(qiáng);使用靈活;典型的可編程并行接口。241.8255的外部引腳及內(nèi)部結(jié)構(gòu)A1A0定義00011011選擇A口選擇B口選擇C口選擇控制寄存器25內(nèi)部結(jié)構(gòu)26與系統(tǒng)總線的連接示意圖272.8255的工作方式三種基本的工作方式:方式0:基本輸入/輸出方式方式1:選通的輸入/輸出方式方式2:雙向傳輸方式A口可以工作在方式0、方式1或方式2,B口和C口只能工作于方式0或方式1。3個(gè)端口的工作方式可通過軟件編程來設(shè)定。28方式0A口、C口的高4位,B口、C口的低4位可分別定義為輸入或輸出,它們互相獨(dú)立,故共有16種不同的組合。例如,可定義A口和C口高4位為輸入口,B口和C口低4位為輸出口定義為輸出的口均有鎖存數(shù)據(jù)的能力,而定義為輸入的口則無鎖存能力在方式0下,C口有按位進(jìn)行置位和復(fù)位的能力29方式0的應(yīng)用方式之一無條件傳送方式:傳送數(shù)據(jù)的雙方互相了解,不需要發(fā)控制信號(hào)給對(duì)方,也不需要查詢對(duì)方狀態(tài),CPU只需直接執(zhí)行輸入/輸出指令便可將數(shù)據(jù)讀入或?qū)懗?。在無條件傳送方式下,A、B、C3個(gè)口的全部24位都可以用做數(shù)據(jù)線30方式0的應(yīng)用方式之二查詢工作方式:需要通信雙方互相了解對(duì)方的狀態(tài),但方式0由于沒有規(guī)定固定的應(yīng)答信號(hào),這時(shí)常將C口的高4位(或低4位)定義為輸入,用來接收外設(shè)的狀態(tài)信號(hào);而將C口的另外4位定義為輸出,用來產(chǎn)生控制信號(hào)。此時(shí)的A、B口可用來傳送數(shù)據(jù)。31方式1也稱為選通的輸入/輸出方式A、B、C3個(gè)口被分為兩組A組:A口和C口的高4位,A口可由編程任意設(shè)定為輸入口或輸出口,C口的高4位則用作A口輸入/輸出操作的控制和同步信號(hào)B組包括B口和C口的低4位,B口可由編程任意設(shè)定為輸入口或輸出口,C口的低4位則用作B口輸入/輸出操作的控制和同步信號(hào)A口和B口的輸入數(shù)據(jù)和輸出數(shù)據(jù)都被鎖存32方式1(A口、B口都設(shè)定為輸出口)利用C口的6根線作為A口和B口的控制信號(hào)??刂菩盘?hào)線的安排是固定的,不允許改變:A口使用PC3、PC6和PC7,而B口用PC0、PC1和PC2。輸出緩沖器滿外設(shè)響應(yīng)信號(hào)3334方式1(A口、B口都設(shè)定為輸入口)利用C口的6根線作為A口和B口的控制信號(hào)??刂菩盘?hào)線的安排是固定的,不允許改變:A口使用PC3、PC4和PC5,而B口用PC0、PC1和PC2。輸入緩沖器滿輸入選通信號(hào)3536方式2雙向傳輸方式。只有A口可以工作在這種方式外設(shè)能利用8位數(shù)據(jù)線與CPU進(jìn)行雙向通信,此時(shí)A口既作為輸入口又作為輸出口利用C口的5根線來提供雙向傳輸所需的控制信號(hào)當(dāng)A口工作于方式2時(shí),B口可以工作在方式0或方式1,而C口剩下的3根線可作為零散的輸入/輸出線使用或用做B口方式1之下的控制信號(hào)線。373.8255的控制字及狀態(tài)字方式控制字38C口的位控制字39方式1時(shí)的狀態(tài)字方式2時(shí)的狀態(tài)字40查詢方式的打印機(jī)接口打印機(jī)工作時(shí)序4.8255的應(yīng)用舉例418255的初始化程序如下:(8255的地址范圍為0FF00H~0FF03H)INIT:MOVDX,FF03H;8255的控制寄存器端口地址送DXMOVAL,10000001B;A組方式0:A口、C口高4位輸出

;B組方式0:B口、C口低4位輸入

OUTDX,AL;方式控制字送控制寄存器

MOVAL,00001101B;C口的按位操作控制字

;使PC6初始狀態(tài)置為1OUTDX,AL;C口位操作控制字送控制寄存器42打印一批字符的程序段:

MOVCX,COUNT;將字符串長度作為循環(huán)次數(shù)

MOVSI,OFFSETDATA;取字符串首地址GOON:MOVDX,0FF02H;0FF02H為C口的地址

INAL,DX;從C口讀入打印機(jī)的BUSY信號(hào)狀態(tài)

ANDAL,02H;測試打印機(jī)狀態(tài)(位1)JNZGOON;若BUSY為高電子,則循環(huán)等待

MOVAL,[SI];否則取一個(gè)字符

MOVDX,0FF00H;0FF00H為A口的地址

OUTDX,AL;輸出一個(gè)字符到A口

MOVDX,0FF02H;準(zhǔn)備在PC6上生成一個(gè)負(fù)脈沖

MOVAL,0OUTDX,AL;因僅PC6接打印機(jī),故由C口輸出00H將使PC6變低

MOVAL,40HOUTDX,AL;再使PC6變高,在PC6上生成一個(gè)STROBE負(fù)脈沖

INCSI;指向下一個(gè)字符

LOOPGOON;若未結(jié)束,則繼續(xù)

HLTMOVDX,0FF03HMOVAL,00001100B;PC6復(fù)位(=0)OUTDX,ALMOVAL,00001101B;PC6置位(=1)OUTDX,AL43共陰極段碼DPgfedcba共陽極段碼DPgfedcba00011111111000000100000110111110012010110111010010030100111110110000401100110100110015011011011001001060111110110000010700000111111110008011111111000000090110111110010000數(shù)碼管445.3 可編程計(jì)數(shù)器/定時(shí)器8253及其應(yīng)用0.概述1.8253的外部引腳及內(nèi)部結(jié)構(gòu)2.8253的工作方式3.8253的控制字4.8253的應(yīng)用舉例450.概述定時(shí)信號(hào)的產(chǎn)生軟件編程的方法硬件的方法軟件定時(shí):設(shè)計(jì)一個(gè)延時(shí)子程序,子程序中全部指令執(zhí)行時(shí)間的總和就是該子程序的延時(shí)時(shí)間。特點(diǎn):簡單,易實(shí)現(xiàn),需要了解延時(shí)子程序中每條指令的執(zhí)行時(shí)間;定時(shí)時(shí)間不太精確;僅適用于延時(shí)時(shí)間較短、重復(fù)次數(shù)有限的場合;占用CPU大量的時(shí)間,使CPU的利用率降低。46硬件的方法:利用專用的硬件定時(shí)/計(jì)數(shù)器,在簡單軟件控制下產(chǎn)生準(zhǔn)確的延時(shí)時(shí)間?;驹恚和ㄟ^軟件確定定時(shí)/計(jì)數(shù)器的工作方式、設(shè)置計(jì)數(shù)初值并啟動(dòng)計(jì)數(shù)器工作當(dāng)計(jì)數(shù)到給定值時(shí),便自動(dòng)產(chǎn)生定時(shí)信號(hào)成本不高,程序簡單,幾乎不占用CPU資源適合長時(shí)間、多次重復(fù)的定時(shí),也可用于延時(shí)時(shí)間較短的場合47定時(shí)/計(jì)數(shù)器的計(jì)數(shù)方式:加法計(jì)數(shù)器和減法計(jì)數(shù)器加法計(jì)數(shù)器是每有一個(gè)計(jì)數(shù)脈沖就加1,當(dāng)加到預(yù)先設(shè)定的計(jì)數(shù)值時(shí),產(chǎn)生一個(gè)定時(shí)信號(hào)減法計(jì)數(shù)器是在送入計(jì)數(shù)初值后,每來一個(gè)計(jì)數(shù)脈沖就減1,減到0時(shí)產(chǎn)生一個(gè)定時(shí)信號(hào)輸出可編程定時(shí)/計(jì)數(shù)器8253就是一個(gè)減法計(jì)數(shù)器,它是Intel公司專為80×86系列配套開發(fā)的16位可編程定時(shí)/計(jì)數(shù)器芯片。481.8253的外部引腳及內(nèi)部結(jié)構(gòu)三通道的16位定時(shí)/計(jì)數(shù)器;計(jì)數(shù)器的工作方式及計(jì)數(shù)常數(shù)分別由軟件編程選擇;可進(jìn)行二進(jìn)制或十進(jìn)制計(jì)數(shù)或定時(shí)操作;最高計(jì)數(shù)頻率為2MHz;使用單電源+5V供電;輸入/輸出均與TTL電平兼容。49計(jì)數(shù)器的時(shí)鐘信號(hào)輸入端門控信號(hào),用于啟動(dòng)或禁止計(jì)數(shù)器的減1操作計(jì)數(shù)器輸出信號(hào)50A0A1定義01000寫入計(jì)數(shù)器001001寫入計(jì)數(shù)器101010寫入計(jì)數(shù)器201011寫入控制寄存器00100讀計(jì)數(shù)器000101讀計(jì)數(shù)器100110讀計(jì)數(shù)器200111無操作1××××禁止使用011××無操作51(1)計(jì)數(shù)器計(jì)數(shù)器0、1和2:3個(gè)相同的16位減1計(jì)數(shù)器互相獨(dú)立按各自的方式進(jìn)行工作每個(gè)計(jì)數(shù)器都包括一個(gè)16位的初值寄存器、一個(gè)計(jì)數(shù)執(zhí)行單元和一個(gè)輸出鎖存器52計(jì)數(shù)器工作過程當(dāng)置入初值后,計(jì)數(shù)執(zhí)行單元開始對(duì)輸入脈沖CLK進(jìn)行減1計(jì)數(shù),在減到0時(shí),從OUT端輸出一個(gè)信號(hào)整個(gè)過程可以重復(fù)進(jìn)行計(jì)數(shù)器既可按二進(jìn)制計(jì)數(shù),也可按十進(jìn)制計(jì)數(shù)在計(jì)數(shù)過程中,計(jì)數(shù)器還受到門控信號(hào)GATE的控制在不同的工作方式下,計(jì)數(shù)器的輸入CLK、輸出OUT和門控信號(hào)GATE之間的關(guān)系將會(huì)不同53(2)控制寄存器存放操作方式控制字通過向控制寄存器中寫入所需的控制字,決定計(jì)數(shù)器的工作方式控制字是在8253初始化時(shí)用輸出指令寫入控制寄存器的該寄存器只能寫入,不能讀出。548位,雙向,三態(tài)用于8253和CPU數(shù)據(jù)總線之間的接口CPU通過該數(shù)據(jù)緩沖器對(duì)8253進(jìn)行讀/寫。(3)數(shù)據(jù)總線緩沖器55選片信號(hào)有效時(shí),讀/寫控制邏輯從系統(tǒng)總線接收輸入信號(hào),經(jīng)過邏輯組合,產(chǎn)生對(duì)各部分的控制信號(hào)當(dāng)選片信號(hào)無效(高電平)時(shí),數(shù)據(jù)總線緩沖器處于高阻態(tài),8253與總線斷開,CPU不能對(duì)其進(jìn)行讀/寫操作。(4)讀/寫控制邏輯568253計(jì)數(shù)器的計(jì)數(shù)過程,可以由程序指令啟動(dòng),稱為軟件啟動(dòng)也可由外部電路信號(hào)啟動(dòng),稱為硬件啟動(dòng)計(jì)數(shù)啟動(dòng)方法57(1)軟件啟動(dòng)從CPU寫入計(jì)數(shù)初值到計(jì)數(shù)結(jié)束,實(shí)際的CLK脈沖個(gè)數(shù)比編程寫入的計(jì)數(shù)初值N要多一個(gè),即N+1(不可避免)。58寫入計(jì)數(shù)初值后并不啟動(dòng)計(jì)數(shù),而是在門控信號(hào)GATE由低電平變高后,再經(jīng)CLK信號(hào)的上升沿采樣,之后在該CLK的下降沿才開始計(jì)數(shù)。由于GATE信號(hào)與CLK信號(hào)不一定同步,故在極端情況下,從GATE變高到CLK采樣之間的延時(shí)可能會(huì)經(jīng)歷一個(gè)CLK脈沖寬度,因此在計(jì)數(shù)初值與實(shí)際的CLK脈沖個(gè)數(shù)之間也會(huì)有一個(gè)時(shí)鐘脈沖的誤差。(2)硬件啟動(dòng)59不自動(dòng)重復(fù)的計(jì)數(shù)方式:計(jì)數(shù)器每啟動(dòng)一次只工作一個(gè)周期(即從初值減到0)自動(dòng)重復(fù)的計(jì)數(shù)方式:一旦計(jì)數(shù)啟動(dòng),只要門控信號(hào)GATE保持高電平,計(jì)數(shù)過程就會(huì)自動(dòng)周而復(fù)始地重復(fù)下去,這時(shí)OUT端可以產(chǎn)生連續(xù)的波形輸出。在自動(dòng)重復(fù)計(jì)數(shù)方式下,達(dá)到穩(wěn)定狀態(tài)后,因啟動(dòng)造成的實(shí)際計(jì)數(shù)值和計(jì)數(shù)初值之間的誤差就不再存在。計(jì)數(shù)方式602.8253的工作方式方式啟動(dòng)計(jì)數(shù)中止計(jì)數(shù)自動(dòng)重復(fù)更新初值輸出波形0軟件(寫入初值)GATE=0否立即有效延時(shí)時(shí)間可變的上跳沿1硬件(GATE正跳變)否下一輪有效寬度為N×TCLK的單一負(fù)脈沖2軟件(寫入初值)硬件(GATE正跳變)GATE=0是下一輪有效周期為N×TCLK、寬度為TCLK的連續(xù)負(fù)脈沖3軟件(寫入初值)硬件(GATE正跳變)GATE=0是下半輪有效周期為N×TCLK的連續(xù)方波4軟件(寫入初值)GATE=0否下一輪有效寬度為TCLK的單一負(fù)脈沖5硬件(GATE正跳變)否下一輪有效寬度為TCLK的單一負(fù)脈沖61方式0工作波形(計(jì)數(shù)結(jié)束中斷方式)62方式1工作波形(可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器)63方式2工作波形(頻率發(fā)生器)64方式3工作波形(方波發(fā)生器)65方式4工作波形(軟件觸發(fā)選通)66方式5工作波形(硬件觸發(fā)選通)673.8253的控制字688253的初始化寫入方式控制字三個(gè)通道用的控制字端口地址是相同的三個(gè)控制字寫入后存入通道對(duì)應(yīng)的寄存器中寫入計(jì)數(shù)初始值讀計(jì)數(shù)值(計(jì)時(shí))以普通對(duì)計(jì)數(shù)器端口讀的方法取得當(dāng)前計(jì)數(shù)值鎖存計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值69例:某8086微機(jī)系統(tǒng)中,8253的三個(gè)計(jì)數(shù)器端口地址分別為 3F0H,3F1H,3F2H,控制字寄存器端口地址為3F3H,要求通道0工作于方式3,且計(jì)數(shù)初值n=1234。則初始化程序?yàn)椋?/p>

MOVAL,00110111B ;控制字

MOVDX,3F3H ;控制端口

OUT DX,AL ;送控制字

MOVDX,3F0H ;通道0口的地址

MOVAL,34H ;計(jì)數(shù)值低字節(jié)

OUT DX,AL ;寫低字節(jié)

MOVAL,12H ;計(jì)數(shù)值高字節(jié)

OUT DX,AL ;寫高字節(jié)70例:接上例,8253的端口地址分別為3F0H,3F1H,3F2H,3F3H,要求通道0工作于方式3,且計(jì)數(shù)初值n=1234。讀當(dāng)前計(jì)數(shù)值的程序?yàn)椋?/p>

MOVAL,00000111B ;控制字

MOVDX,3F3H ;控制端口

OUT DX,AL ;送控制字

MOVDX,3F0H ;通道0口的地址

INAL,DX ;讀低字節(jié)

MOVAH,AL ;保存

INAL,DX ;讀高字節(jié)

XCHGAH,AL ;存入AX MOVCX,1234+1;求計(jì)數(shù)值

SUBCX,AX ;得到計(jì)數(shù)值71例:脈沖發(fā)生器要求:3個(gè)計(jì)數(shù)器CLK頻率均為2MHz。要求計(jì)數(shù)器0在定時(shí)100μs后產(chǎn)生中斷請(qǐng)求;計(jì)數(shù)器1用于產(chǎn)生周期為10μs的對(duì)稱方波;計(jì)數(shù)器2每1ms產(chǎn)生一個(gè)負(fù)脈沖。編寫8253的初始化程序。72圖中地址總線信號(hào)A15~A2經(jīng)譯碼電路產(chǎn)生片選信號(hào)選中8253。根據(jù)圖中譯碼器的連接方式可知,該8253的接口地址范圍為FF04H~FF07H。FF04H對(duì)應(yīng)于計(jì)數(shù)器1,F(xiàn)F05H對(duì)應(yīng)于計(jì)數(shù)器2,F(xiàn)F06H對(duì)應(yīng)于計(jì)數(shù)器3,F(xiàn)F07H對(duì)應(yīng)于控制寄存器。根據(jù)要求可知,計(jì)數(shù)器0應(yīng)工作于方式0,計(jì)數(shù)初值=100μs/0.5μs=200(CLK的周期=0.5μs);計(jì)數(shù)器1應(yīng)工作于方式3,計(jì)數(shù)初值=10μs/0.5μs=20;計(jì)數(shù)器2應(yīng)工作于方式2,計(jì)數(shù)初值=1ms/0.5μs=2000。以下是8253的初始化程序。73INIT8253:MOVDX,0FF07HMOVAL,10H;計(jì)數(shù)器0,只寫計(jì)數(shù)值低8位,方式0,二進(jìn)制計(jì)數(shù)

OUTDX,ALMOVAL,56H;計(jì)數(shù)器1,只寫計(jì)數(shù)值低8位,方式3,二進(jìn)制計(jì)數(shù)

OUTDX,ALMOVAL,0B4H;計(jì)數(shù)器2,先寫高8位,再寫低8位,方式2,二進(jìn)制計(jì)數(shù)

OUTDX,ALMOVDX,0FF04HMOVAL,200;計(jì)數(shù)器0的計(jì)數(shù)初值

OUTDX,ALMOVDX,0FF05HMOVAL,20;計(jì)數(shù)器1的計(jì)數(shù)初值

OUTDX,ALMOVDX,0FF06HMOVAX,2000;計(jì)數(shù)器2的計(jì)數(shù)初值

OUTDX,ALMOVAL,AHOUTDX,AL745.4 串口通信和可編程接口芯片8251A0.串行通信的基本概念1.可編程串行通信接口芯片8251A2.RS-232C串行接口和8251A應(yīng)用750.串行通信的基本概念串行數(shù)據(jù)通信系統(tǒng)模型DTE-DataTerminalEquipment,常常是計(jì)算機(jī).DCE-DataCommunicationEquipment,常常是MODEM,也可以是計(jì)算機(jī).串行接口–主要是8251A,16550,8250等IC,連接DTE和DCE.計(jì)算機(jī)MODEMMODEM計(jì)算機(jī)或終端

信道(傳輸線路)串行接口串行接口DTEDCEDTEDCE76基本概念數(shù)據(jù)傳送的方向數(shù)據(jù)的傳輸速率信號(hào)的調(diào)制與解調(diào)串行通信數(shù)據(jù)格式串行通信的數(shù)據(jù)校驗(yàn)771.單工(Simplex):

通信是單向的。2.半雙工(Halfduplex):半雙工指A能發(fā)信號(hào)給B,B也能發(fā)信號(hào)給A,但這兩個(gè)過程不能同時(shí)進(jìn)行,A或B發(fā)送完后要切換到接受狀態(tài)。典型的例子就是對(duì)講機(jī)。3.全雙工(Duplex):在A給B發(fā)信號(hào)的同時(shí),B也可以給A發(fā)信號(hào)。典型的例子就是打。

(1)數(shù)據(jù)傳送的方向78波特率:單位時(shí)間傳送的位數(shù),單位bps(bit/s)。波特率因子K:每BIT占用的時(shí)鐘周期數(shù)。

K=接接收或發(fā)送時(shí)鐘頻率/比特率, 可取1,16,32,64(2)傳輸速率79例1:一個(gè)異步串行發(fā)送器,發(fā)送具有8位數(shù)據(jù)位的字符,在系統(tǒng)中使用一個(gè)奇偶校驗(yàn)位和兩個(gè)停止位。若每秒發(fā)送100個(gè)字符,則其波特率為多少?100*(1+8+1+2)=1200bps例2:一個(gè)異步串行發(fā)送器,發(fā)送具有7位數(shù)據(jù)位的字符,傳送波特率為1800,字符格式為:1個(gè)奇偶校驗(yàn)位,1個(gè)停止位,問,十秒鐘內(nèi)傳送了多少個(gè)字符?10*1800/(1+7+1+1)=180000/10/10/111起始位數(shù)據(jù)位校驗(yàn)位

停止位一個(gè)字符格式80

數(shù)據(jù)通信傳輸?shù)氖菙?shù)字信號(hào),要求傳送線的頻帶很寬,若傳輸帶寬很窄,直接傳輸數(shù)字信號(hào),信號(hào)就要發(fā)生畸變。

因此,需用調(diào)制器將數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),經(jīng)傳輸后再用解調(diào)器將其轉(zhuǎn)換成數(shù)字信號(hào)。(3)信號(hào)的調(diào)制與解調(diào)根據(jù)載波Asin(t+)的三個(gè)參數(shù):幅度、頻率、相位,常用的調(diào)制技術(shù):幅度調(diào)制Amplitude-Modulating(AM)頻移鍵控法Frequency-ShiftKeying(FSK)81用調(diào)幅正弦波表示數(shù)字1和0用兩種不同頻率正弦波表示數(shù)字1和082(4)串行通信數(shù)據(jù)格式在數(shù)據(jù)通信中,傳輸?shù)膶?duì)象是一系列的0和1,這些0、1在不同的位置有不同的含義,這些含義都要事先約定好。在通信中,兩種最基本的串行通信方式:異步串行通信、同步串行通信不使用共同的時(shí)鐘和同步信號(hào)使用同步信號(hào)83異步通訊的數(shù)據(jù)幀格式同步通訊的數(shù)據(jù)幀格式84異步串行通信同步串行通信雙方使用各自的時(shí)鐘雙方使用同一時(shí)鐘一幀以字符為單位(一個(gè)字符幀的長度取決于幀格式)以數(shù)據(jù)塊為單位(數(shù)據(jù)塊長度可變)傳輸效率低效率高,速度快應(yīng)用于傳輸速率不高時(shí),簡單,應(yīng)用較廣應(yīng)用于大批量,高速率數(shù)據(jù)通信場合異步串行通信與同步串行通信的對(duì)比85(5)串行通信的校驗(yàn)方法串行通信主要適用于遠(yuǎn)距離通信,因而噪聲和干擾較大,為了保證高效而無差錯(cuò)地傳送數(shù)據(jù),對(duì)傳送的數(shù)據(jù)進(jìn)行校驗(yàn)就成了串行通信中必不可少的重要環(huán)節(jié)。常用的校驗(yàn)方法有:奇偶校驗(yàn)循環(huán)冗余校驗(yàn)(CRC)86?這種校驗(yàn)方法主要用于對(duì)一個(gè)字符的傳送過程進(jìn)行校驗(yàn)。?奇偶校驗(yàn)可以檢查出一個(gè)字節(jié)中發(fā)生的單個(gè)錯(cuò)誤。?奇偶校驗(yàn)不能自動(dòng)糾錯(cuò),發(fā)現(xiàn)錯(cuò)誤后需“重傳”。奇偶校驗(yàn)872.可編程USART通信接口芯片8251A(1)基本功能:1)可用于同步和異步通信方式(通信方式通過對(duì)方式字編程規(guī)定)

同步方式:波特率0-64Kbps,每字符為5,6,7,8位,可使用內(nèi)部同步檢測和外部同步檢測,能自動(dòng)插入同步字符。異步方式:波特率0-19.2Kbps,每字符可為5,6,7,8位,自動(dòng)增加起始位、停止位和校驗(yàn)位。時(shí)鐘TxC,RxC速率為波特率的1,16和64倍。2)完全雙工,雙緩沖器接收器和發(fā)送器;3)出錯(cuò)檢測:具有奇偶、溢出和幀錯(cuò)等檢測電路。888990讀/寫控制邏輯:接受CPU的下列控制信號(hào)RESET:復(fù)位信號(hào)使8251A進(jìn)入IDLE狀態(tài)CLK:8251A用來產(chǎn)生內(nèi)部的定時(shí)信號(hào)/WR:低有效,CPU對(duì)8251A進(jìn)行寫操作/RD:低有效,CPU對(duì)8251A進(jìn)行讀操作/CS:片選信號(hào)有效時(shí)才可對(duì)8251A進(jìn)行操作C/D:Control/Data,數(shù)據(jù)總線傳送的是控制信號(hào),狀態(tài)字/數(shù)據(jù)91RxD:接收數(shù)據(jù),輸入RxRDY:接收數(shù)據(jù)準(zhǔn)備好,輸出SYNDET:同步檢測/斷點(diǎn)檢測RxC:接收時(shí)鐘(同步:FreqofRxC=BaudRate)(異步:FreqofRxC=BaudRate*BaudFactor)92TxD:發(fā)送數(shù)據(jù)TxRDY:發(fā)送準(zhǔn)備好TxE:發(fā)送器空TxC:發(fā)送器時(shí)鐘(同步:FreqofTxC=BaudRate)(異步:FreqofTxC=BaudRate*BaudFactor93HandshakingsignalsbetweenCPUandModemDTR:數(shù)據(jù)終端準(zhǔn)備好DSR:數(shù)據(jù)裝置準(zhǔn)備好RTS:請(qǐng)求發(fā)送CTS:清除發(fā)送信號(hào)94編程流程(2)8251A編程95方式字異步方式同步方式96命令字狀態(tài)字97C/DRDWRCS端口選擇和操作0010CPU從8251A接收數(shù)據(jù)寄存器讀數(shù)據(jù)0100CPU向8251A發(fā)送數(shù)據(jù)緩沖器寫數(shù)據(jù)1010CPU從8251A狀態(tài)寄存器讀狀態(tài)1100CPU向8251A寫控制字(先方式字寄存器、后命令字寄存器)XXX1數(shù)據(jù)總線懸空8251A讀寫操作端口選擇表98RS232C接口波特率發(fā)生器&G1A7,A6,A5D7-D0/G2A/G2BCBAA4M/IOA3A2A0A1RESET/RD/WR/Y0/CSC/DRESET/RD/WRTxRDYTxERxRDYBRKDETRxDTxD/RxC/TxC外設(shè)80868251A74LS13899RS232C接口波特率發(fā)生器&G1A7,A6,A5D7-D0/G2A/G2BCBAA4M/IOA3A2A0A1RESET/RD/WR/Y0/CSC/DRESET/RD/WRTxRDYTxERxRDYBRKDETRxDTxD/RxC/TxC外設(shè)80868251A74LS138A7A6A5=111時(shí),G1=1A4=1時(shí),/G2A=0M/IO=0時(shí),/G2B=0此時(shí),當(dāng)A3A2A0=000時(shí),譯碼器/Y0輸出低電平,其它輸出高。8251A被選中。A1=1時(shí),選中控制字,A7-A0=11110010=F2H。A1=0時(shí),選中數(shù)據(jù)口,A7-A0=11100000=F0H。100(3)8251與CPU的數(shù)據(jù)交換1)查詢方式采用查詢方式,在數(shù)據(jù)交換前應(yīng)讀取狀態(tài)寄存器。狀態(tài)寄存器D0=1,CPU可以向8251數(shù)據(jù)端口寫入數(shù)據(jù),完成串行數(shù)據(jù)的發(fā)送;狀態(tài)寄存器D1=1,CPU可以從8251數(shù)據(jù)端口讀出數(shù)據(jù),完成一幀數(shù)據(jù)的接收。1012)中斷方式8251沒有單獨(dú)的中斷請(qǐng)求引腳:TxRDY引腳可以作為發(fā)送中斷請(qǐng)求

RxRDY引腳可以作為接收中斷請(qǐng)求收發(fā)均采用中斷方式時(shí),TxRDY、RxRDY可以通過或門與系統(tǒng)總線的中斷請(qǐng)求線連接。在CPU響應(yīng)中斷轉(zhuǎn)到中斷服務(wù)程序時(shí),再對(duì)狀態(tài)寄存器進(jìn)行查詢,以區(qū)分是發(fā)送中斷還是接收中斷。1023)8251編程示例例:編寫8251異步模式下的接收和發(fā)送程序,完成256個(gè)字符的發(fā)送和接收,設(shè)端口地址:208H,209H,波特率因子16,1起始位,1停止位,無奇偶校驗(yàn),每字符8位。LEADI,Buf1MOVDX,209HMOVAL,00H;復(fù)位OUTDX,ALCALLDELAYMOVAL,00H;復(fù)位OUTDX,ALCALLDELAYMOVAL,00H;復(fù)位OUTDX,ALCALLDELAYMOVAL,40H;復(fù)位命令OUTDX,AL發(fā)送程序MOVAL,01001110B;方式選擇字

OUTDX,ALMOVAL,00110111B;工作命令字

OUTDX,ALMOVCX,256;發(fā)送256字節(jié)NEXT:MOVDX,209H;狀態(tài)字寄存器209HINAL,DX ;狀態(tài)字

ANDAL,01H;TxRDY?

JZNEXTMOVAL,[DI]MOVDX,208H;數(shù)據(jù)寄存器208HOUTDX,AL;發(fā)送

INCDILOOPNEXT103接收程序:接收256字節(jié),放在buf2中MOVAL,01001110B;方式字

OUTDX,ALMOVAL,00110111B;命令字

OUTDX,ALMOVCX,256;接收256字節(jié)

MOVSI,0NEXT:MOVDX,209HINAL,DX;狀態(tài)字

ANDAL,02H;RXRDY?

JZNEXTMOVDX,208HINAL,DX;接收1字符

MOVbuf2[SI],ALINCSILOOPNEXTDatasegmentbuf2DB256dup(?)Dataends┆MOVDX,209HMOVAL,00H;復(fù)位

OUTDX,ALCALLDELAYMOVAL,00H;復(fù)位

OUTDX,AL CA

溫馨提示

  • 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)論