計(jì)算機(jī)接口技術(shù)課件_第1頁(yè)
計(jì)算機(jī)接口技術(shù)課件_第2頁(yè)
計(jì)算機(jī)接口技術(shù)課件_第3頁(yè)
計(jì)算機(jī)接口技術(shù)課件_第4頁(yè)
計(jì)算機(jī)接口技術(shù)課件_第5頁(yè)
已閱讀5頁(yè),還剩832頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第一章概述1.1什么是微型機(jī)接口1.2接口功能1.3接口分析和設(shè)計(jì)方法1.4接口常用的硬器件1.5接口結(jié)構(gòu)與I/O傳送第一章概述1.1什么是微型機(jī)接口從應(yīng)用角度看,計(jì)算機(jī)系統(tǒng)分為兩大類(lèi):一類(lèi)是獨(dú)立使用的計(jì)算機(jī)系統(tǒng),如臺(tái)式PC機(jī)、筆記本電腦、工作站等。這類(lèi)系統(tǒng)稱(chēng)為通用系統(tǒng),它們是由計(jì)算機(jī)生產(chǎn)廠家開(kāi)發(fā)生產(chǎn)的;另一類(lèi)是嵌入式計(jì)算機(jī)系統(tǒng),這類(lèi)系統(tǒng)稱(chēng)為專(zhuān)用系統(tǒng),它們是作為其他系統(tǒng)的組成部分使用的。通常嵌入式系統(tǒng)作為一個(gè)應(yīng)用系統(tǒng)或電子設(shè)備的一部分,在無(wú)人干預(yù)的情況下進(jìn)行實(shí)時(shí)控制。多數(shù)嵌入式系統(tǒng)是由計(jì)算機(jī)應(yīng)用開(kāi)發(fā)人員利用CPU(或MCU、MPU、DSP、SOC)等主控部件和IC等硬件以及匯編語(yǔ)言(或C/C++語(yǔ)言)等軟件開(kāi)發(fā)而成的。上一頁(yè)返回計(jì)算機(jī)接口所涉及的內(nèi)容與提供的知識(shí),主要是為了開(kāi)發(fā)各種專(zhuān)用的嵌入式系統(tǒng)服務(wù)的。

嵌入式系統(tǒng)目前已遍布生產(chǎn)、生活、工作的各個(gè)角落。目前,嵌入式系統(tǒng)應(yīng)用已逐漸占據(jù)了計(jì)算機(jī)應(yīng)用領(lǐng)域的主導(dǎo)地位。根據(jù)目前的科技發(fā)展水平,利用CPU(或MCU、MPU、DSP、SOC

)等作為核心,組成某個(gè)專(zhuān)用的嵌入式系統(tǒng)已不存在任何技術(shù)方面的障礙,關(guān)鍵是如何發(fā)揮人們的聰明才智去實(shí)現(xiàn)其設(shè)計(jì)。上一頁(yè)返回嵌入式系統(tǒng)的開(kāi)發(fā),其核心問(wèn)題就是用CPU等主控部件對(duì)其他事物進(jìn)行控制。而CPU與其被控制對(duì)象(即外部設(shè)備)之間進(jìn)行信息交換或通信,必須通過(guò)“橋梁”來(lái)銜接,這些“橋梁”就是微型機(jī)接口,如下圖示:CPU接口外設(shè)CPU通過(guò)接口與外設(shè)連接上一頁(yè)返回接口通常是由一些硬件電子電路和軟件控制程序構(gòu)成的。要組成一個(gè)以CPU(或MCU、MPU、DSP、SOC

)為核心的嵌入式系統(tǒng),就需要通過(guò)各種接口來(lái)實(shí)現(xiàn)。因此,在開(kāi)發(fā)嵌入式系統(tǒng)時(shí),首先應(yīng)當(dāng)掌握相應(yīng)的接口技術(shù)。接口的硬件部分主要用來(lái)調(diào)整外設(shè)與微機(jī)之間在信號(hào)形式,電平和傳送方式等方面的差異,使微機(jī)和外設(shè)交換信息時(shí),在物質(zhì)形式上取得一致;接口的軟件部分則主要實(shí)現(xiàn)外設(shè)與微機(jī)交換數(shù)據(jù)信息時(shí)的規(guī)則或協(xié)議,使它們?cè)谛畔魉瓦^(guò)程及數(shù)據(jù)格式上協(xié)調(diào)一致。通常軟件是通過(guò)硬件產(chǎn)生作用的,而硬件又依靠軟件進(jìn)行控制。上一頁(yè)返回接口設(shè)計(jì)通常還要涉及到電氣的、功能的、機(jī)械的等方面的問(wèn)題。如電氣方面包括各種電路(觸發(fā)器、鎖存器、與非門(mén)等)、信號(hào)的形式(模擬、數(shù)字等)與電平(TTL、EIA等)等;功能方面包括對(duì)系統(tǒng)的控制、接口的管理等;機(jī)械方面包括各種接插件、電纜的連接及安裝等。綜上所述,接口技術(shù)既需要硬件知識(shí),又需要軟件知識(shí),往往是用軟、硬相結(jié)合的方法來(lái)實(shí)現(xiàn)的。圖1.1表明微機(jī)系統(tǒng)及常用接口。上一頁(yè)返回第一章概述1.2接口功能接口是CPU與外界的連接電路以及控制程序構(gòu)成的,它必須具備一些條件或功能。那么,接口應(yīng)具備那些功能呢?從解決CPU與外設(shè)在連接時(shí)存在的矛盾的觀點(diǎn)來(lái)看,一般有如下功能。上一頁(yè)返回1.執(zhí)行CPU命令的功能(命令口)CPU對(duì)被控制對(duì)象外部設(shè)備的控制命令是以命令代碼的形式先發(fā)送到接口中的命令寄存器,稱(chēng)之為“命令口”。再由接口電路對(duì)命令代碼進(jìn)行識(shí)別和分析,分解成若干個(gè)控制信號(hào),傳送到I/O設(shè)備,使其產(chǎn)生相應(yīng)的具體操作??梢?jiàn),CPU并不是直接把命令送到被控制對(duì)象,而是通過(guò)接口來(lái)進(jìn)行控制的。上一頁(yè)返回2.返回外設(shè)狀態(tài)的功能(狀態(tài)口)接口在執(zhí)行CPU命令之前。執(zhí)行命令過(guò)程中和執(zhí)行命令之后,外部設(shè)備及接口電路都會(huì)有一些情況發(fā)生,這些“情況”就是所謂的“狀態(tài)”,包括正常工作狀態(tài)和故障狀態(tài)。如“忙”、“閑”,“準(zhǔn)備就緒”、“未準(zhǔn)備就緒”,“滿(mǎn)”、“空”,以及“溢出錯(cuò)”、“擱置錯(cuò)”等狀態(tài)。接口中一般都設(shè)置狀態(tài)寄存器,稱(chēng)之為“狀態(tài)口”。這些狀態(tài)信號(hào)以狀態(tài)代碼形式存放在接口電路的狀態(tài)寄存器中,以便向CPU報(bào)告。CPU從“狀態(tài)口”讀取這些狀態(tài)信息,就可以“知道”正在發(fā)生或已經(jīng)發(fā)生了哪些情況,以供CPU做出判斷與處理。上一頁(yè)返回3.數(shù)據(jù)緩沖功能(數(shù)據(jù)口)為了解決主機(jī)高速與外設(shè)低速的矛盾,避免因傳送速度不一致而丟失數(shù)據(jù),接口中一般都設(shè)置數(shù)據(jù)緩沖寄存器(簡(jiǎn)稱(chēng)數(shù)據(jù)緩存器),稱(chēng)之為“數(shù)據(jù)口”。數(shù)據(jù)緩存器由分為輸入和輸出緩存器兩種,前者暫存外設(shè)送來(lái)的數(shù)據(jù),以待CPU將它取走;后者暫存CPU送往外設(shè)的數(shù)據(jù)。有了數(shù)據(jù)緩存器,就可以使高速工作的CPU與慢速工作的外設(shè)協(xié)調(diào)工作。由于數(shù)據(jù)緩存器直接連在系統(tǒng)數(shù)據(jù)總線上,因此它應(yīng)具有三態(tài)特征。上一頁(yè)返回4.信號(hào)轉(zhuǎn)換功能由于外設(shè)所需的控制信號(hào)和它所能提供的狀態(tài)信號(hào)往往同微機(jī)的總線信號(hào)不兼容。不兼容性表現(xiàn)在兩者的信號(hào)功能定義、邏輯關(guān)系、電平高低以及工作時(shí)序的不一致。因此,信號(hào)轉(zhuǎn)換(包括CPU的信號(hào)與外設(shè)的信號(hào)的邏輯關(guān)系上、時(shí)序配合上以及電平匹配上的轉(zhuǎn)換),就成為接口設(shè)計(jì)中的一個(gè)重要任務(wù)。上一頁(yè)返回5.設(shè)備選擇功能在微機(jī)系統(tǒng)中一般有多種外設(shè),在同一種外設(shè)中也可能有多臺(tái),而一個(gè)CPU在同一時(shí)間里只能予一臺(tái)外設(shè)交換信息,這就要在接口中設(shè)置I/O端口地址譯碼電路對(duì)外設(shè)進(jìn)行尋址。CPU將I/O設(shè)備的端口地址代碼送到接口中的地址譯碼電路,并經(jīng)譯碼電路,把地址代碼翻譯成I/O設(shè)備的選擇信號(hào)。一般是把高位地址用于接口芯片選擇,低位地址進(jìn)行芯片內(nèi)部寄存器(即端口)的選擇,已選定需要與自己交換信息的設(shè)備端口,只有被選中的設(shè)備才能與CPU進(jìn)行數(shù)據(jù)交換或通信。沒(méi)有選中的設(shè)備,就不能與CPU交換數(shù)據(jù)。上一頁(yè)返回6.數(shù)據(jù)寬度與數(shù)據(jù)格式轉(zhuǎn)換的功能CPU所處理的是并行數(shù)據(jù)(8位、16位或32位),而有的外設(shè)(如串行通信設(shè)備、磁盤(pán)驅(qū)動(dòng)器等)只能處理串行設(shè)備,在這種情況下,接口就應(yīng)具有數(shù)據(jù)“并→串”和“串→并”的轉(zhuǎn)換能力。為此,在接口中設(shè)置位移寄存器。CPU與有些外設(shè)交換數(shù)據(jù)時(shí),要求按一定的數(shù)據(jù)格式傳送,如串行通信中的起止式異步通信數(shù)據(jù)格式及面向字符的同步通信數(shù)據(jù)格式。此時(shí),需要在CPU與通信設(shè)備之間進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換。通常用軟件實(shí)現(xiàn)數(shù)據(jù)格式轉(zhuǎn)換。上一頁(yè)返回上述功能并非要求每種接口都具備,對(duì)不同用途的微機(jī)系統(tǒng),其接口功能不同,接口電路的復(fù)雜程度大不一樣。但對(duì)第3種(數(shù)據(jù)口)功能是接口電路中的核心部分,是一般接口都需要的。上一頁(yè)返回第一章概述1.3接口分析和設(shè)計(jì)方法一、兩側(cè)分析法

兩側(cè)分析法是分析接口電路的基本方法。凡是接口都有兩側(cè),一側(cè)是CPU,另一側(cè)是外設(shè)。對(duì)CPU一側(cè),就是三總線,情況明確,因此,分析比較容易,主要要搞清楚是什么類(lèi)型的CPU,以及它提供的數(shù)據(jù)線的寬度(8位、16位、32位等),地址線的寬度(16位、20位、24位)和控制線的邏輯定義(高電平有效、地電平有效、脈沖跳變),時(shí)序關(guān)系有什麼特點(diǎn)。上一頁(yè)返回外設(shè)一側(cè)的情況很復(fù)雜,這是因?yàn)楸豢貙?duì)象外設(shè)種類(lèi)繁多,型號(hào)不一,所提供的信號(hào)線五花八門(mén);其邏輯定義,時(shí)序關(guān)系,電平高地差異甚大。對(duì)這一側(cè)的分析重點(diǎn)放在兩個(gè)方面:

一是搞清楚被連接的外設(shè)的外部特性,即外設(shè)信號(hào)線引腳的功能定義和邏輯定義,這樣就可以找出需要接口為他提供哪些控制信號(hào)線,它能反饋給接口哪些狀態(tài)信號(hào)線,以便在接口硬件設(shè)計(jì)時(shí),提供這些信號(hào)線,滿(mǎn)足外設(shè)的要求;上一頁(yè)返回

二是了解被控外設(shè)的工作過(guò)程,以便在軟件設(shè)計(jì)時(shí),按照這種過(guò)程編寫(xiě)程序。外設(shè)的種類(lèi)甚多,從高容量快速磁存儲(chǔ)器到指示燈和揚(yáng)聲器,不管其復(fù)雜程度如何,只要將它們的外部特征和工作過(guò)程分析清楚了,接口電路的硬件設(shè)計(jì)與軟件編程就有了依據(jù)。上一頁(yè)返回二、硬軟結(jié)合法

以硬件為基礎(chǔ),硬件與軟件相結(jié)合是設(shè)計(jì)接口電路的基本方法。1.硬件設(shè)計(jì)方法主要是合理選用外圍接口芯片和由針對(duì)性地設(shè)計(jì)附加電路。

⑴合理選用外圍接口芯片由于現(xiàn)代微電子技術(shù)的成就和集成電路的發(fā)展,目前,各種接口電路都已做成集成芯片,由中規(guī)?;虼笠?guī)模集成接口芯片代替過(guò)去的數(shù)字電路。上一頁(yè)返回因此,在接口設(shè)計(jì)中,通常不需要繁雜的電路參數(shù)計(jì)算,而需要熟練的掌握和深入了解各類(lèi)芯片的功能、特點(diǎn)、工作原理、使用方法及編程技巧,以便根據(jù)設(shè)計(jì)要求和經(jīng)濟(jì)準(zhǔn)則,合理選擇芯片,把它們與微處理器真正的連接起來(lái),并編寫(xiě)相應(yīng)的控制程序。采用集成接口芯片使接口體積小,功能完善,可靠性高,易于擴(kuò)充,應(yīng)用極其靈活、方便。所以,接口芯片在微機(jī)接口技術(shù)中,起著很重要的作用,應(yīng)給以足夠的重視??删幊碳山涌谛酒墙涌谟布O(shè)計(jì)中的首選器件,應(yīng)盡量采用,并且把它們作為各種接口電路的核心芯片來(lái)使用。上一頁(yè)返回⑵由針對(duì)性地設(shè)計(jì)附加電路外圍接口芯片并非萬(wàn)能,因此,當(dāng)接口電路中有些功能不能由接口的核心芯片完成時(shí),就需要用戶(hù)附加某些電路,予以擴(kuò)充。如邏輯關(guān)系與電平轉(zhuǎn)換、時(shí)序配合以及驅(qū)動(dòng)能力等方面的功能,可以采用反相器、三極管、緩沖器、與門(mén)、或門(mén)以及驅(qū)動(dòng)器等芯片,設(shè)計(jì)一些輔助電路加到接口電路中。上一頁(yè)返回2.軟件設(shè)計(jì)方法接口的硬件電路只提供了接口工作的基礎(chǔ),要使接口真正發(fā)揮作用就要配備相應(yīng)的控制軟件。

⑴采用匯編語(yǔ)言(或高級(jí)語(yǔ)言)直接對(duì)低層硬件編程對(duì)用戶(hù)應(yīng)用系統(tǒng)的接口控制程序應(yīng)直接面向接口編程。由于接口程序?qū)τ布囊蕾?lài)性,它與一般的管理程序和數(shù)據(jù)處理程序不同,是直接與硬件打交道的,因此,設(shè)計(jì)者必須對(duì)相應(yīng)的硬件細(xì)節(jié)十分熟悉。上一頁(yè)返回具體的講,就是對(duì)接口芯片和被控對(duì)象外設(shè)的外部特征以及接口芯片的編程命令要徹底弄清楚才能著手編寫(xiě)程序。編程語(yǔ)言可以用匯編語(yǔ)言,也可以用高級(jí)語(yǔ)言(如C或C++),但從程序的實(shí)時(shí)性與代碼效率以及充分發(fā)揮低層硬件的潛力來(lái)看,采用匯編語(yǔ)言更佳。上一頁(yè)返回

⑵采用DOS系統(tǒng)功能調(diào)用和BIOS調(diào)用編程如果在應(yīng)用程序中,當(dāng)涉及到使用系統(tǒng)資源(如鍵盤(pán)、顯示器、打印機(jī)、串行口等)時(shí),可以采用DOS和BIOS調(diào)用,而不需要作低層編程。這是因?yàn)閷?duì)于微機(jī)系統(tǒng)中的標(biāo)準(zhǔn)設(shè)備,在DOS系統(tǒng)功能和ROM-BIOS中都有相應(yīng)的功能子程序供用戶(hù)調(diào)用。但是對(duì)于接口設(shè)計(jì)者來(lái)說(shuō),常常碰到的是一些非標(biāo)準(zhǔn)設(shè)備,所以需要自己動(dòng)手編制接口控制程序的時(shí)候更多。上一頁(yè)返回第一章概述1.4接口常用的硬器件微型計(jì)算機(jī)接口中除了用到了一些通用或?qū)S玫募呻娐方涌谛酒猓€經(jīng)常用到其他各種集成電路芯片。關(guān)于前者的情況我們將在以后的章節(jié)中介紹,作為基礎(chǔ)知識(shí),本節(jié)僅介紹幾種基本硬器件的邏輯功能。一、集成邏輯門(mén)1.集電極開(kāi)路(OC)門(mén)和三態(tài)門(mén)

OC門(mén)和三態(tài)門(mén)在接口中常作為驅(qū)動(dòng)器及緩沖器等,用于增強(qiáng)電路和器件的帶負(fù)載能力和抗干擾能力。這兩種門(mén)電路的邏輯符號(hào)如圖1-3所示。上一頁(yè)返回集電極開(kāi)路門(mén)的輸出端F必須有“上拉電阻”,該電阻的另一端接到正電源上,否則不能輸出高電平。三態(tài)門(mén)的輸入與輸出端能否接通要看控制端C的信號(hào)是否有效,當(dāng)該端輸入信號(hào)無(wú)效時(shí),A端與F端處于高阻狀態(tài)(相當(dāng)于斷開(kāi))。上一頁(yè)返回2.與門(mén)、與非門(mén)、或門(mén)、或非門(mén)及異或門(mén)常見(jiàn)的兩輸入端與門(mén)、與非門(mén)和或門(mén)、或非門(mén)的邏輯符號(hào)和真值表如圖1-4所示。由真值表可看出:正邏輯與門(mén)和負(fù)邏輯或門(mén);正邏輯或門(mén)和負(fù)邏輯與門(mén);正邏輯與非門(mén)和負(fù)邏輯或非門(mén);正邏輯或非門(mén)和負(fù)邏輯與非門(mén)的邏輯功能完全相同。對(duì)于兩個(gè)以上輸入端的情況同樣也可以推出上述結(jié)論,因此在實(shí)用中可以相互代替。上一頁(yè)返回

圖1-5給出了兩輸入端異口或門(mén)的邏輯符號(hào)及真值表。從表中可看出異或門(mén)的兩個(gè)輸入信號(hào)相同時(shí)輸出0,不同時(shí)輸出1,由此容易推出在多個(gè)輸入信號(hào)的情況下,僅當(dāng)所有輸入信號(hào)中1的個(gè)數(shù)為奇數(shù)時(shí)輸出為1,否則輸出0。上一頁(yè)返回二、觸發(fā)器和鎖存器觸發(fā)器具有記憶功能,故可記錄電路中有關(guān)信號(hào)的狀態(tài)。觸發(fā)器在接口中的主要應(yīng)用是構(gòu)成寄存器和鎖存器等。這里僅介紹兩種常用的觸發(fā)器。1.D觸發(fā)器和D鎖存器邏輯符號(hào)和真值表如圖1-6所示。觸發(fā)器的現(xiàn)態(tài)及次態(tài)說(shuō)明在時(shí)鐘CP(上升沿)作用下輸出端Q隨輸入端D變化的情況。圖中S和R為輸出置1和置0(清零)端,均為低電平有效。與觸發(fā)器不同,當(dāng)鎖存器的G端(或E端)有效時(shí),輸出隨輸入而變,當(dāng)G端無(wú)效(從1變0)后,輸出進(jìn)入保持(鎖存)狀態(tài)。表中Q0是G從1過(guò)渡到0前Q的電平。上一頁(yè)返回2.JK觸發(fā)器邏輯符號(hào)和真值表如圖1-7所示。由真值表說(shuō)明在時(shí)鐘(下降沿)作用下輸出端Q隨輸入端J和K變化的情況。與S、R端不同的是JK控制下的置1或置0是在時(shí)鐘作用下完成的。上一頁(yè)返回三、譯碼器譯碼器也是接口中最常用的一種器件。它的功能是通過(guò)改變輸入信號(hào)的組態(tài),使某一輸出端的信號(hào)有效,從而達(dá)到選擇整體中某一部分電路工作的目的。

圖1-8為二輸入端四輸出端的譯碼器邏輯符號(hào)及真值表。由表可見(jiàn)被選中的輸出端將輸出低電平,而當(dāng)選片端G無(wú)效時(shí)所有輸出均無(wú)效。上一頁(yè)返回四、多路開(kāi)關(guān)多路開(kāi)關(guān)又稱(chēng)多路選擇器,可完成nm路輸入通道到m路輸出通道的切換,常用在實(shí)時(shí)控制和檢測(cè)系統(tǒng)中。

圖1-9給出8-1(n=8,m=1)多路開(kāi)關(guān)邏輯符號(hào)及真值表。其中A2A1A0的不同組態(tài)使輸出端接通8路輸入之一。當(dāng)選片信號(hào)E無(wú)效時(shí),輸出端與各輸入端相當(dāng)于斷開(kāi)。上一頁(yè)返回第一章概述1.5接口結(jié)構(gòu)與I/O傳送一、接口結(jié)構(gòu)

1.I/O端口對(duì)于任何一種用途的微型機(jī)接口,其核心部分都是由一個(gè)或幾個(gè)I/O端口組成的,如圖1-10所示。

I/O端口通常是由鎖存器或緩沖器等硬件構(gòu)成的。圖1-11給出了這兩種器件的原理圖。從圖中可看到,鎖存器中的每一位,都是由D觸發(fā)器(或D鎖存器)構(gòu)成的,當(dāng)鎖存控制信號(hào)到來(lái)時(shí),輸入端的8位數(shù)據(jù)被鎖存到輸出端,直到下次信號(hào)到來(lái)前保持不變。緩沖器中的每一位,都是由三態(tài)緩沖器構(gòu)成的,當(dāng)緩沖器門(mén)控制信號(hào)有效時(shí),三態(tài)門(mén)開(kāi),輸入端的8位數(shù)據(jù)可送到輸出端。上一頁(yè)返回當(dāng)門(mén)控制信號(hào)無(wú)效時(shí),三態(tài)門(mén)關(guān),輸出端與輸入端相當(dāng)于斷開(kāi)(高阻)狀態(tài)。鎖存器常作為輸出端口,而緩沖器常作為輸入端口,這是由于微處理器總線的負(fù)載能力有限,當(dāng)輸入線和總線接通時(shí)要加緩沖。如果把鎖存器的輸出端連到緩沖器的輸入端,使兩種器件合并,則成為具有鎖存和緩沖功能的緩沖寄存器,許多可編程接口芯片的端口都具有這種結(jié)構(gòu)。上一頁(yè)返回2、端口功能

I/O端口可以由軟件(程序)進(jìn)行鎖存或緩沖門(mén)控制。例如,當(dāng)需要從某一個(gè)輸出端口(由鎖存器構(gòu)成)輸出數(shù)據(jù)時(shí),可以用一條輸出指令:

OUT端口地址,AL

在執(zhí)行這條指令時(shí),將把累加器AL中的8位數(shù)據(jù)送到該端口的輸入端,同時(shí)給出該端口的鎖存控制信號(hào),使數(shù)據(jù)被鎖存到端口的輸出端,輸出給外設(shè)。因此,I/O端口可看作是CPU通向外界的門(mén),這些門(mén)可以通過(guò)指令加以控制,并達(dá)到CPU與外設(shè)交換信息目的。上一頁(yè)返回此外,對(duì)于用可編程接口芯片構(gòu)成的接口,往往有兩個(gè)(或兩個(gè)以上)端口。其中一個(gè)是向接口芯片傳送命令(對(duì)接口芯片的初始化編程)的,稱(chēng)為控制端口。此時(shí)接口芯片也是作為CPU的一個(gè)外設(shè),通過(guò)該端口來(lái)接收命令信息。另一個(gè)稱(chēng)為數(shù)據(jù)端口,這才是CPU真正用來(lái)與外界交換信息的端口。通常數(shù)據(jù)端口的功能可通過(guò)送往控制端口的命令加以改變(如數(shù)據(jù)端口可作為輸出、輸入或雙向口),以適應(yīng)不同的需要。上一頁(yè)返回二、I/O信息傳送1.I/O傳送的特點(diǎn)從CPU的角度看,每個(gè)端口都有一個(gè)固定的地址可供選擇,并可對(duì)各端口進(jìn)行讀(輸入)或?qū)?輸出)操作,僅從這一點(diǎn)來(lái)看,端口很類(lèi)似于內(nèi)存中的一個(gè)存貯單元。實(shí)際上也可以把內(nèi)存看成是CPU的一個(gè)特殊的外沒(méi),其每個(gè)存貯單元都相當(dāng)于一個(gè)端口,但這個(gè)端口只是用來(lái)存放信息的。

上一頁(yè)返回存貯器與I/O端口的一個(gè)重要區(qū)別是存貯單元的讀寫(xiě)時(shí)間完全取決于CPU的時(shí)序,即存貯器的讀寫(xiě)時(shí)間是由CPU決定的。而I/O端口的讀寫(xiě)時(shí)間則完全是由外設(shè)決定的,這個(gè)時(shí)間的長(zhǎng)短取決于外設(shè)處理、傳送信息的速度,所以通常是未知的。上一頁(yè)返回

例如當(dāng)CPU向一個(gè)I/O端口發(fā)出命令,要求外設(shè)通過(guò)另一個(gè)數(shù)據(jù)端口向CPU傳送數(shù)據(jù),但命令發(fā)出后這個(gè)數(shù)據(jù)何時(shí)能送到數(shù)據(jù)端口則是未知的,且數(shù)據(jù)到達(dá)這個(gè)端口時(shí)CPU在干什么,能否及時(shí)接收該數(shù)據(jù)也是無(wú)法預(yù)料的。因此,要進(jìn)行CPU與外設(shè)之間的信息傳送,必須讓它們遵照一定的規(guī)則,使它們的步調(diào)一致。上一頁(yè)返回2.常用的I/O方式通??刹捎脙煞NI/O傳送方式實(shí)現(xiàn)CPU與外設(shè)的同步:

(1)查詢(xún)法:

CPU通過(guò)程序不斷地輸入一個(gè)端口的狀態(tài)信息,即CPU通過(guò)查詢(xún)這個(gè)端口的狀態(tài)來(lái)了解外設(shè)是否已準(zhǔn)備就緒(此端口的狀態(tài)可反映外設(shè)的準(zhǔn)備情況),當(dāng)準(zhǔn)備好時(shí)才進(jìn)行數(shù)據(jù)傳送,其過(guò)程如圖1-12(a)所示。

上一頁(yè)返回(2)中斷法:在I/O傳送期間,CPU可以做其他的事情。當(dāng)外設(shè)準(zhǔn)備就緒時(shí),就通過(guò)接口向CPU發(fā)出“中斷請(qǐng)求”信號(hào),通知CPU進(jìn)行傳送工作。當(dāng)CPU響應(yīng)中斷請(qǐng)求后,就暫停其他工作,轉(zhuǎn)人中斷服務(wù),在中服務(wù)程序中傳送數(shù)據(jù)。中斷服務(wù)結(jié)束后CPU再繼續(xù)做其他工作,其過(guò)程如圖1-12(b)所示.上一頁(yè)返回3.DMA方式有一種不通過(guò)CPU進(jìn)行的I/O傳送方式稱(chēng)為“直接存貯器存取(DMA)”方式。這是一種在DMA控制器控制下的數(shù)據(jù)傳送。若將圖1-10中的一個(gè)端口作為DMA控制器端口就可實(shí)現(xiàn)DMA傳送,如圖1-13所示。DMA控制器工作時(shí)直接把一個(gè)或幾個(gè)I/O端口與存貯器連通,使數(shù)據(jù)可以直接在這些端口和存貯器之間傳送。由于傳送數(shù)據(jù)不通過(guò)CPU(不用一條條執(zhí)行I/O指令),故傳送速度很快,適用于磁帶或磁盤(pán)與內(nèi)存之間的數(shù)據(jù)傳送。上一頁(yè)返回由于DMA控制器在工作時(shí)占用了CPU總線,故DMA傳送時(shí)CPU不能做任何事情,此時(shí),DMA控制器相當(dāng)于系統(tǒng)中另一個(gè)微處理器.如果DMA控制器能夠利用CPU空閑時(shí)進(jìn)行傳送,則可以在實(shí)際上不影響CPU工作的情況下達(dá)到高速傳送。上一頁(yè)返回AFAFAFAF正邏輯負(fù)邏輯(a)OC門(mén)圖1-3OC門(mén)及三態(tài)門(mén)高電平通低電平通(b)三態(tài)門(mén)AFCAFCAFCAFC圖1-3OC門(mén)及三態(tài)門(mén)正邏輯負(fù)邏輯(a)與門(mén)ABFABFABF001101010111ABF001101010001ABF001101010001圖1-4與門(mén)、與非門(mén)或門(mén)、或非門(mén)及其功能正邏輯負(fù)邏輯(b)與非門(mén)ABFABF001101011000ABF00110101ABF001101011110圖1-4與門(mén)、與非門(mén)或門(mén)、或非門(mén)及其功能ABF正邏輯負(fù)邏輯(c)或門(mén)ABF001101010001ABF00110101ABF001101010111圖1-4與門(mén)、與非門(mén)或門(mén)、或非門(mén)及其功能ABFABF正邏輯負(fù)邏輯(d)或非門(mén)ABF001101011110ABF00110101ABF001101011000圖1-4與門(mén)、與非門(mén)或門(mén)、或非門(mén)及其功能ABFABF圖1-5異或門(mén)及其功能+ABFABF00110101ABF001101010110圖1-6D觸發(fā)器與D鎖存器及其功能CPDQQSR0011輸入現(xiàn)態(tài)次態(tài)01010011DQQD觸發(fā)器圖1-6D觸發(fā)器與D鎖存器及其功能DQQG01x

輸入輸出11001Q0DGQD鎖存器圖1-7JK觸發(fā)器及其功能CPJQQSRK0111輸入現(xiàn)態(tài)次態(tài)1101JKQQQxxQQ01Q功能保持置0置1翻轉(zhuǎn)圖1-82-4譯碼器及其功能AB輸入輸出GY0Y1Y2Y3選片GBA輸出0000100011011XXY0=0,其余為1Y1=0,其余為1Y2=0,其余為1Y3=0,其余為1所有輸出為1圖1-98-1多路開(kāi)關(guān)及功能EA2A1A0

F000000001xxx浮空

000001010011100101110111S1S2.......S8

F8-1開(kāi)關(guān)EA1A2A3S1S2S3S4S5S6S7S8圖1-10CPU通過(guò)I/O端口與外界溝通圖1-11鎖存器和緩沖器原理圖1-12兩種常用的I/O方式傳送準(zhǔn)備好?YN(a)查詢(xún)式傳送傳送服務(wù)結(jié)束CPU進(jìn)行中斷服用繼續(xù)做其他工作CPU做其他工作中斷請(qǐng)求(b)中斷式傳送圖1-13DMA方式傳送2.1I/O端口及其編址方式2.2I/O端口地址分配2.3I/O端口地址譯碼第二章I/O端口地址譯碼技術(shù)

設(shè)備選擇功能是接口電路應(yīng)具備的基本功能之一,因此,作為進(jìn)行設(shè)備端口選擇的I/O端口基本概念和I/O端口譯碼基本原理.基本方法的基礎(chǔ)上,著重討論譯碼電路的設(shè)計(jì).2.1I/O端口及其編址方式一.I/O端口和I/O操作1.I/O端口端口(port)是接口電路中能被CPU直接訪問(wèn)的寄存器的地址.2.I/O操作通常所說(shuō)的I/O操作是指對(duì)I/O端口的操作,而不是對(duì)I/O設(shè)備的操作,即CPU所訪問(wèn)的是與I/O設(shè)備本身上一頁(yè)返回二.端口地址編址方式對(duì)上述端口有兩種編址方式,一種是端口地址和寄存器地址統(tǒng)一編制,另一種是I/O端口地址和存儲(chǔ)器分開(kāi)獨(dú)立編址.1.統(tǒng)一編址這種,是從存儲(chǔ)器空間劃出一部分地地址空間給I/O設(shè)備,把I/O接口中的端口當(dāng)作存儲(chǔ)器單元一樣進(jìn)行訪問(wèn),不設(shè)置專(zhuān)門(mén)的I/O指令,有一部分對(duì)存儲(chǔ)器使用的指令也可用于端口。Motoral系列,Apple系列微型機(jī)和小型機(jī)就是采用這種方式。這種方式有許多優(yōu)點(diǎn):由于對(duì)I/O設(shè)備的訪問(wèn)是使用訪問(wèn)存儲(chǔ)器的指令,所以指令類(lèi)型多,功能齊全,這使訪問(wèn)I/O端口可實(shí)現(xiàn)輸入/輸出操作,而且還可以對(duì)端口內(nèi)容進(jìn)行算術(shù)邏輯位移等等;另外能給端口有較大的的編址空間,這對(duì)大型控制系統(tǒng)和數(shù)據(jù)通信系統(tǒng)是很有意義的。這種方式的缺點(diǎn)是端口占用了存儲(chǔ)器的地址空間,使存儲(chǔ)器容量減小,另外指令長(zhǎng)度比專(zhuān)門(mén)I/O指令要長(zhǎng),因而速度較慢。

上一頁(yè)返回

2.獨(dú)立編址這種方式是接口中的端口地址單獨(dú)編址而不和存儲(chǔ)空間合在一起,大型計(jì)算機(jī)通常采用這種方式,有些微機(jī),如IBM-PC系列和Z-80系列機(jī)也采用這種方式。這種方式的主要優(yōu)點(diǎn)是:I/O端口地址不占用存儲(chǔ)器空間;使用專(zhuān)門(mén)的I/O指令對(duì)端口進(jìn)行操作,I/O指令短,執(zhí)行速度快;并且由于專(zhuān)門(mén)I/O指令與存儲(chǔ)器訪問(wèn)指令有明顯的區(qū)別,使程序中I/O操作和存儲(chǔ)器操作層次清晰,程序的可讀性強(qiáng)。同時(shí),由于使用專(zhuān)門(mén)的I/O指令訪問(wèn)端口,并且I/O端口地址和存儲(chǔ)器地址是分開(kāi)的,故I/O端口地址和存儲(chǔ)器地址可以重疊,而不會(huì)相互混淆。上一頁(yè)返回

三、獨(dú)立編址方式的端口訪問(wèn)1.YO指令中端口地址的寬度

IBM-PC系列采用I/O(input/output)指令訪問(wèn)端口,實(shí)現(xiàn)數(shù)據(jù)的I/O傳送。在I/0指令中可采用單字節(jié)地址或雙字節(jié)地址尋址方式。若用單字節(jié)地址作為端口地址,則最多可訪問(wèn)256個(gè)端口。系統(tǒng)主板上接口芯片的端口,采用單字節(jié)地址,并且是直接在指令中給出端口地址,2.I/0端口訪問(wèn)所謂對(duì)端口的訪問(wèn)就是CPU對(duì)端口的讀/寫(xiě)。而通常所說(shuō)的微處理器CPU從端口讀數(shù)據(jù)或向端口寫(xiě)數(shù)據(jù),僅僅是指FO端口與CPU的累加器之間的數(shù)據(jù)傳送,并未涉及數(shù)據(jù)是否傳送到存儲(chǔ)99(RAM)的問(wèn)題。若要求輸入時(shí),將端口的數(shù)據(jù)傳送到存儲(chǔ)器,則除了把數(shù)據(jù)讀入CPU的累加器之外,還要將累加9S中的數(shù)據(jù)再傳送到內(nèi)存。或者相反,輸出時(shí),數(shù)據(jù)從存儲(chǔ)器先送到CPU的累加器,再?gòu)睦奂悠鱾魉偷絀/O端口。上一頁(yè)返回

例如:輸入時(shí)MOVDX,300H;I/O端口

INAL,DX;從端口讀數(shù)據(jù)到ALMOV[DI],AL;將數(shù)據(jù)從AL-→存儲(chǔ)器輸出時(shí)MOVDX,301H;I/O端口

MOVAL,[SI];從內(nèi)存取數(shù)到從

OUTDX,AL;數(shù)據(jù)從AL-→端口2.2I/O端口地址分配對(duì)于接口設(shè)計(jì)者來(lái)說(shuō),搞清楚系統(tǒng)I/O端口地址分配十分重要,因?yàn)橐研碌腎/O設(shè)備加入到系統(tǒng)中去就要在I/O地址空間中占一席之地。哪些地址已分配給了別的設(shè)備,哪些是計(jì)算機(jī)制造商為今后的開(kāi)發(fā)而保留的,哪些地址是空閑的,了解了這些信息才能為我所用。下面以IBM-PC系列為例來(lái)分析I/O端口地址分配情況。上一頁(yè)返回

一、I/O接口硬件分類(lèi)按照I/O設(shè)備的配置情況,I/O接口的硬件分成兩類(lèi):1.系統(tǒng)板上的I/O芯片這些芯片大多都是可編程的大規(guī)模集成電路,完成相應(yīng)的接口操作,如定時(shí)/計(jì)數(shù)器、中斷控制器、DMA控制器、并行接口等。2.I/O擴(kuò)展槽上的接口控制卡這些控制卡(適配器)是由若干個(gè)集成電路按一定的邏輯組成的一個(gè)部件,如軟驅(qū)卡、硬驅(qū)卡、圖形卡、聲卡、打印卡、串行通信卡等。上一頁(yè)返回二、I/O端口地址分配不同的微機(jī)系統(tǒng)對(duì)I/O端口地址的分配是不同的。PC微機(jī)是根據(jù)上述I/O接口的硬件分類(lèi),把I/O空間分成兩部分。雖然,PC微機(jī)I/O地址線可有16根,對(duì)應(yīng)的I/O端口編址可達(dá)64K字節(jié),但由于IBM公司當(dāng)初設(shè)計(jì)微機(jī)主板及規(guī)劃接口卡時(shí),其端口地址譯碼是采用非完全譯碼方式,即只考慮了低10位地址線Ao--A9,而沒(méi)有考慮高6位地址線A10--Al5,故其I/O端口地址范圍是0000H-003FFH,總共只有1024個(gè)端口,并且把前512個(gè)端口分配給了主板,后512個(gè)端口分配給了擴(kuò)展槽上的常規(guī)外設(shè)。后來(lái)在PC/AT系統(tǒng)中,作了一些調(diào)整,其中前256個(gè)端口(000-0FFH)供系統(tǒng)板上的I/0接口芯片使用。后768(100—3FFH)供擴(kuò)展槽上的I/O接口控制卡使用,如表2.2所示。上一頁(yè)返回

在表2.1中分配給每個(gè)接口芯片的I/O端口地址,在實(shí)際使用中,并未全部用完。例如,中斷控制器8259A只使用了前面2個(gè)端口地址,20H、21H(主片)和AOH、A1H(從片)。并行接口芯片8255A,只使用了前面4個(gè)端口地址,60H~63H。使用端口地址最多的DMA控制器芯片8237A,也只用了前面的16個(gè)地址(0-Fl/)。從表2.2中,可以看到允許用戶(hù)使用的端口地址是300H—31FH。這一段地址是留給用戶(hù)在開(kāi)發(fā)IBM-PC系列機(jī)功能模塊(插板)時(shí),使用的端口地址,系統(tǒng)是不會(huì)占用它的。上一頁(yè)返回

三、I/O端口地址選用的原則只要設(shè)計(jì)I/O接口電路,就必然要使用I/O端口地址。為了避免端口地址發(fā)生沖突,在選用I/O端口地址時(shí)要注意:①凡是被系統(tǒng)配置所占用了的地址一律不能使用;②原則上講,未被占用的地址,用戶(hù)可以使用,但對(duì)計(jì)算機(jī)廠家申明保留的地址,不要使用,否則,會(huì)發(fā)生I/O端口地址重疊和沖突,造成用戶(hù)開(kāi)發(fā)的產(chǎn)品與系統(tǒng)不兼容而失去使用價(jià)值;③一般,用戶(hù)可使用300-31FH地址,這是IBM-PC微機(jī)留作實(shí)驗(yàn)卡用的,用戶(hù)可以使用。但是,由于每個(gè)用戶(hù)都可以使用,所以在用戶(hù)可用的這段I/O地址范圍內(nèi),為了避免與其他用戶(hù)開(kāi)發(fā)的插板發(fā)生地址沖突,最好采用地址開(kāi)關(guān)。上一頁(yè)返回

2.3I/O端口地址譯碼

CPU為了對(duì)I/O端口進(jìn)行讀寫(xiě)操作,就需確定與自己交換信息的端口(寄存器),那么,是通過(guò)什么媒介把來(lái)自地址總線上的地址代碼翻譯成為所需要訪問(wèn)的端口(寄存器)的,這就是所謂的端口地址譯碼問(wèn)題。這個(gè)“媒介”就是I/O地址譯碼電路。上一頁(yè)返回

一、I/O地址譯碼電路工作原理及作用1.譯碼電路的輸入信號(hào):首先,應(yīng)該指出的是,I/O地址譯碼電路不僅僅與地址信號(hào)有關(guān),而且與控制信號(hào)有關(guān)。因此,I/O端口地址譯碼電路的作用是把地址和控制信號(hào)進(jìn)行邏輯組合,從而產(chǎn)生對(duì)接口芯片的選擇信號(hào)。由于I/O地址譯碼除了地址范圍受上述地址分配的限制之外,還要滿(mǎn)足其他一些控制條件,所以,譯碼電路的輸入端除了地址信號(hào)線之外,還要引入一些控制信號(hào)。例如,用SBHE信號(hào)控制端口奇偶地址;用I/OCS16信號(hào)控制8位或16位I/O端口;用AEN信號(hào)控制非DMA傳送以及用IOR和IOW信號(hào)控制對(duì)端口的讀/寫(xiě)等。為此,在設(shè)計(jì)地址譯碼電路時(shí),除了根據(jù)2.2節(jié)選用I/O端口地址的原則,精心選擇地址范圍之外,還要根據(jù)CPU與I/O端口交換數(shù)據(jù)時(shí)的流向(讀/寫(xiě))、數(shù)據(jù)寬度(8位/16位),以及是否采用奇偶地址和DMA傳送方式的要求來(lái)引入相應(yīng)的控制信號(hào),參加地址譯碼。上一頁(yè)返回2.譯碼電路的輸出信號(hào)譯碼電路把輸入的地址線和控制線經(jīng)過(guò)邏輯組合后,所產(chǎn)生的輸出信號(hào)線就是l根選中線,低電平有效。即若譯碼電路的輸出線為低,則表示譯碼有效;若輸出線為高,則譯碼無(wú)效。當(dāng)I/O地址譯碼有效,選中一個(gè)接口芯片時(shí),這個(gè)芯片內(nèi)部的數(shù)據(jù)線打開(kāi),并與系統(tǒng)總線相連,從而打通了接口電路與系統(tǒng)總線的通路。而其他接口芯片的選中線無(wú)效,于是芯片內(nèi)部呈高阻抗,自然就與系統(tǒng)總線隔離開(kāi)來(lái),從而關(guān)閉了接口電路與系統(tǒng)總線的通路。CPU就是這樣利用譯碼電路來(lái)選擇與之交換信息的接口電路的。上一頁(yè)返回二、I/O地址譯碼方法

I/O端口地址譯碼的方法靈活多樣,可按地址和控制信號(hào)不同的組合去進(jìn)行譯碼。一般原則是把地址線分為兩部分:一部分是高位地址線與CPU的控制信號(hào)進(jìn)行組合,經(jīng)譯碼電路產(chǎn)生I/O接口芯片的片選CS信號(hào),實(shí)現(xiàn)系統(tǒng)中的片間尋址;另一部分是低位地址線不參加譯碼,直接連到I/O接口芯片,進(jìn)行I/O接口芯片的片內(nèi)端口尋址,即寄存器尋址。所以,低位地址線,又稱(chēng)接口電路中的寄存器尋址線。低位地址線的根數(shù)決定于接口中寄存器的個(gè)數(shù)。例如,并行接口芯片8255A內(nèi)部有4個(gè)寄存器,就需要2根低位地址線。串行接口芯片8251A內(nèi)部只有2個(gè)寄存器,就只需1根低位地址線。若從系統(tǒng)的角度宋考慮,則低位地址線的根數(shù)應(yīng)由系統(tǒng)中含有寄存器數(shù)目最多的接口芯片來(lái)決定。上一頁(yè)返回三、I/O端口地址譯碼電路設(shè)計(jì)譯碼電路的形式可分為固定式譯碼和可選式譯碼。若按譯碼電路采用的原器件來(lái)分,又可分為門(mén)電路譯碼和譯碼器譯碼1.固定式端口地址譯碼所謂固定式是指接口中用到的端口地址不能更改。目前,接口卡中一般是采用固定式譯碼。在固定式譯碼電路中,又分單個(gè)端口地址譯碼和多個(gè)端口地址譯碼兩種情況。若僅需一個(gè)端口地址,則采用門(mén)電路構(gòu)成譯碼電路。上一頁(yè)返回

例1:使用74LS20/30/32和74LS04設(shè)計(jì)I/0端口地址為2F8H的只讀譯碼電路。分析:若要產(chǎn)生2F8H端口地址,則譯碼電路的輸入地址線就應(yīng)具有如表2.3所示的值。設(shè)計(jì):按照表2.3中地址線的值,采用門(mén)電路就可以設(shè)計(jì)出譯碼電路,如圖2.1(a)所示。圖中ANE參加譯碼,它對(duì)端口地址譯碼進(jìn)行控制,只有當(dāng)ANE=0時(shí),既不是DMA操作時(shí)譯碼才有效;當(dāng)ANE=1時(shí),即是DMA操作時(shí),譯碼無(wú)效。圖2.1中,要求DMA=0是為了避免在DMA周期中,由DMA控制器對(duì)這些以非DMA方式傳送的I/O端口執(zhí)行DMA方式的傳送。同理可設(shè)計(jì)出能執(zhí)行讀/寫(xiě)操作的2E2H端口地址的譯碼電路,如圖2.1(b)所示。若接口電路中需使用多個(gè)端口地址,則采用譯碼器譯碼比較方便。譯碼器的型號(hào)很多,如3-8譯碼器74L5138;4-16譯碼器74LSl540~I.2-4譯碼器74L8139、74LSl55等。上一頁(yè)返回例2:使用7413138設(shè)計(jì)一個(gè)系統(tǒng)板七控口芯片的I/O端口地址譯碼電路,并且讓每個(gè)接口芯片內(nèi)部的端口數(shù)目為32個(gè)。分析:由于系統(tǒng)板上的I/O端口地址分配在000~0FFH范圍內(nèi),故只使用低8位地址線,這意味著A9和A8兩位應(yīng)賦0值。為了讓每個(gè)被選中的芯片內(nèi)部擁有32個(gè)端口,只要留出5根低位地址線不參加譯碼,其余的高位地址線作為7413138的輸入線,參加譯碼,或作為74LSD8的控制線與AEN一起(控制74LSl38的譯碼是否有效。由上述分析,可以得到譯碼電路輸入地址線的值,如表2.4所示。對(duì)于譯碼器74LSl38的分析有兩點(diǎn):一是它的控制信號(hào)線G1、G2A和G2B。只有當(dāng)滿(mǎn)足控制信號(hào)線C=1,G2A=G2B=0時(shí),74L8138才能進(jìn)行譯碼。二是譯碼的邏輯關(guān)系,即輸入(C,B,A)與輸出(Y0-Y7)的對(duì)應(yīng)關(guān)系。74LSl38輸入/輸出的邏輯關(guān)系,如表2.5所示。上一頁(yè)返回從表2.5可知,若滿(mǎn)足控制條件,即G1接高電平,G2A,和G2B。接低電平,則由輸入端C、B、A的編碼來(lái)決定輸出:CBA=000,則Yo=0,其他輸出端為高電平;CBA=001,Yl=0,其他輸出端為高電平;……;CBA=111,Y7=0,其他輸出端為高電平。由此可分別產(chǎn)生8個(gè)譯碼輸出信號(hào)(低電平)。若控制條件不滿(mǎn)足,則輸出全“1”,不產(chǎn)生譯碼輸出信號(hào),即譯碼無(wú)效。設(shè)計(jì):采用74LSl38譯碼器,可設(shè)計(jì)PC機(jī)系統(tǒng)板上的端口地址譯碼電路,如圖2.2所示。圖中地址線的高5位參加譯碼,其中A,—A,經(jīng)譯碼器,分別產(chǎn)生DMACS(8237)、INTRCS(8259)、T/CCS(8253)、PPICS(8255A)的片選信號(hào),而地址線的低5位Ao-a4作芯片內(nèi)部寄存器的訪問(wèn)地址。從74LSl38譯碼器的真值表可知,8237A的端口地址范圍是000—01Fil,8259A的端口地址范圍是020-03FH等等,正好和前面表2.1所列出的端口地址分配表一致。上一頁(yè)返回

2.可選式端口地址譯碼如果用戶(hù)要求接口卡的端口地址能適應(yīng)不同的地址分配場(chǎng)合,或?yàn)橄到y(tǒng)以后擴(kuò)充留有余地,則采用開(kāi)關(guān)式端口地址譯碼。這種譯碼方式可以通過(guò)開(kāi)關(guān)使接口卡的UO端口地址根據(jù)要求加以改變而無(wú)需改動(dòng)線路,其電路可由地址開(kāi)關(guān)、譯碼器、比較器或異或門(mén)幾種元器件組成。例3:設(shè)計(jì)擴(kuò)展板上的I/O端口地址譯碼電路,要求讓擴(kuò)展板上每個(gè)接口芯片的內(nèi)部端口數(shù)目為4個(gè),并且,端口地址可選。例如,選擇地址范圍為300H—31FH。

分析:先討論構(gòu)成可選式端口地址譯碼電路的地址開(kāi)關(guān)、比較器和譯碼器3個(gè)元器件的工作原理,然后根據(jù)題目要求進(jìn)行電路設(shè)計(jì)。上一頁(yè)返回·對(duì)于DP開(kāi)關(guān),有兩種狀態(tài):合(ON)和斷(OFF)。所以,要對(duì)這兩種狀態(tài)進(jìn)行設(shè)定,我們?cè)O(shè)置DIP開(kāi)關(guān)狀態(tài)為:ON=O,OFF=1·對(duì)于比較器有兩點(diǎn)要考慮,一是比較的對(duì)象,二是比較的結(jié)果。我們采用74LS854位比較器,把它的A組4根線與地址線連接,B組4根線與DP開(kāi)關(guān)相連,這樣就把比較器A組與B組的比較,轉(zhuǎn)換成了地址線的值與DIP開(kāi)關(guān)狀態(tài)的比較。74LS85比較器比較的結(jié)果有3種:A>B,A<B,A=B。我們采用A=B的結(jié)果,并令當(dāng)A=B時(shí),比較器輸出高電平。這意味著,當(dāng)4位地址線的值與4個(gè)DIP開(kāi)關(guān)的狀態(tài)相等時(shí),比較器輸出高電平,否則,輸出低電平。我們又把比較器的A=B輸出線連到譯碼器74LSl38的控制線G1上,因此,只有當(dāng)4位(A6-A9)地址線的值與4個(gè)(S0—S3)DIP開(kāi)關(guān)的狀態(tài)逐位相等時(shí),才能使74LSl38的控制線Gl=1,才能譯碼,否則,譯碼器不能工作。所以,如果改變DP開(kāi)關(guān)的狀態(tài),則迫使地址線的值發(fā)生改變,才能使兩者相等,從而達(dá)到利用DIP開(kāi)關(guān)來(lái)改變地址的目的。上一頁(yè)返回

設(shè)計(jì):根據(jù)上述分析可設(shè)計(jì)擴(kuò)展板上I/O端口地址譯碼電路,如圖2.3所示。從圖中可以看到,高位地址線中,A9AQA7A6的值由DIP開(kāi)關(guān)的S,S2S,5b狀態(tài)決定。由于S,和S,斷開(kāi),S1和S0合上,故使A9=A8=1,A7=A6=0,A5連在74L8138的G2A上,故A5=0。A4A3A2三根地址線作為74L8138的輸入線,經(jīng)譯碼后可產(chǎn)生8個(gè)低有效的選擇信號(hào),作為擴(kuò)展板上的接口芯片選擇。最后剩下2根低位地址線A1和Ao未參加譯碼,作接口芯片的寄存器選擇,以實(shí)現(xiàn)每個(gè)接口芯片內(nèi)部擁有4個(gè)端口。上一頁(yè)返回

例4:采用異或門(mén)設(shè)計(jì)I/O端口地址譯碼電路o

分析與設(shè)計(jì):如果用異或門(mén)代替比較器,則可得到圖2.4所示的可選式譯碼電路,它由3片異或門(mén)74LSl36,9位DIP開(kāi)關(guān)和譯碼器74L5138組成。741B136芯片內(nèi)部有4個(gè)異或門(mén),其內(nèi)部邏輯如圖2.5所示。在譯碼電路圖2.4中,每個(gè)異或門(mén)的兩個(gè)輸入端,一個(gè)接地址線或控制線,另一個(gè)接地址開(kāi)關(guān)。并且將所有異或門(mén)的輸出端連在一起,再接到74LSl38的控制端G上。要使控制信號(hào)C:為“1”,則必須使每個(gè)異或門(mén)的輸出端都為“1”。上一頁(yè)返回

這意味著每個(gè)異或門(mén)的兩個(gè)輸入信號(hào)必須相異,例如圖2.4中的AEN接在74L5136的4端,而74L5136的5端接高電平,所以4端必須為低電平,也就是說(shuō)AEN應(yīng)為低電平,即非DMA周期,譯碼才有效。同理可知分別連在74LSl36的1和2端上的IOR~IOW兩個(gè)控制信號(hào)只能在分開(kāi)單獨(dú)讀或單獨(dú)寫(xiě)時(shí),譯碼才有可能,同時(shí)讀寫(xiě)或同時(shí)都不讀寫(xiě)時(shí)封鎖譯碼器74LSl38,使譯碼無(wú)效。其余各項(xiàng)異或?yàn)椤皬V的條件,由系統(tǒng)地址總線送來(lái)的地址碼與DIP開(kāi)關(guān)狀態(tài)來(lái)決定,當(dāng)?shù)刂反a和DIP開(kāi)關(guān)狀態(tài)相異時(shí),結(jié)果為“廣。若改變DIP的開(kāi)關(guān)狀態(tài),也就改變了地址。按圖2.4中所設(shè)的開(kāi)關(guān)狀態(tài),該譯碼電路輸入地址的值,如表2.6所示。其地址范圍是710H-717H。上一頁(yè)返回例5:采用跳接開(kāi)關(guān)設(shè)計(jì)I/O端口地址譯碼電路用跳接開(kāi)關(guān)代替DIP開(kāi)關(guān),可得到如圖2,6所示的可選式譯碼電路。若改變跳接開(kāi)關(guān)連接方向,則有1024種選擇。上一頁(yè)返回

2.4CAL器件及其在I/O地址譯碼中的應(yīng)用一、GAL器件的特點(diǎn)

GAL(GenericArrayI~gic)是美國(guó)LATFICE公司提出的可編程邏輯器件PLD,它具有如下特點(diǎn):①可以實(shí)現(xiàn)組合邏輯電路和時(shí)序邏輯電路的多種功能。經(jīng)過(guò)編程可以構(gòu)成多種門(mén)電路,如觸發(fā)器、寄存器、計(jì)數(shù)器、比較器、譯碼器、多路開(kāi)關(guān)或控制器等,代替常用的74系列和54系列的TYL器件或CD4000系列的CMOS芯片。據(jù)統(tǒng)計(jì),一個(gè)GAL器件在功能上可以代替4—12個(gè)中小規(guī)模集成芯片,從而使系統(tǒng)縮小體積,提高可靠性,井簡(jiǎn)化印制電路板的設(shè)計(jì)。

上一頁(yè)返回②采用電擦除工藝,門(mén)陣列的每個(gè)單元可以反復(fù)改寫(xiě)(至少100次),因而整個(gè)器件的邏輯功能可以重新配置,因此它是產(chǎn)品開(kāi)發(fā)研制中的理想工具。③具有硬件加密單元,可以防止抄襲電路設(shè)計(jì)和非法復(fù)制。④速度高而功耗低,具有高速電擦電寫(xiě)能力,改寫(xiě)整個(gè)芯片只需數(shù)秒鐘,而功耗只有雙極型邏輯器件的1/2或1/4,緩解了溫升問(wèn)題。因此,GAL得到越來(lái)越多用戶(hù)的青睞,在微機(jī)應(yīng)用系統(tǒng)中被廣泛采用。上一頁(yè)返回二、CAL器件的開(kāi)發(fā)工具與開(kāi)發(fā)步驟1.開(kāi)發(fā)工具

GAL器件能否得到廣泛應(yīng)用,很大程度上取決于它是否有優(yōu)良的開(kāi)發(fā)環(huán)境。若用手工方式編程,則不僅繁瑣,而且容易出錯(cuò)。現(xiàn)已有很多公司推出/開(kāi)發(fā)工具,借助這些工具,用戶(hù)可以得心應(yīng)手地把GAL器件應(yīng)用到邏輯設(shè)計(jì)中去。開(kāi)發(fā)工具包括硬件工具——編程器和軟件工具——專(zhuān)用的編譯程序或匯編程序。

GAL編程器與EPROM/fPROM的編程器在原理上并無(wú)多大差別。目前國(guó)內(nèi)常見(jiàn)的編程器有PROMA、EXPR040和ALL-03型,其中ALD03是常用的功能很強(qiáng)的編程器,不僅可以對(duì)各個(gè)廠家生產(chǎn)的各種型號(hào)的GAL、PAL、EP~D編程,還可對(duì)EPROM、fPROM編程,并具有IC數(shù)字電路測(cè)試功能。上一頁(yè)返回

目前已有多種GAL編程軟件,如CUPL和ABEL屑編譯型高級(jí)開(kāi)發(fā)軟件,具有自動(dòng)邏輯化簡(jiǎn)、語(yǔ)法檢查和模擬仿真功能。在輸入文件中可以采用布爾方程、真值表和狀態(tài)轉(zhuǎn)換圖。FM(FastMap)是通用的匯編型的軟件。使用它可以把按一定格式編寫(xiě)的GAL設(shè)計(jì)說(shuō)明書(shū)進(jìn)行匯編,生成對(duì)GAL編程的文件。由于它簡(jiǎn)單,實(shí)用,易于掌握,因而得到了廣泛的應(yīng)用oFM是一個(gè)匯編程序,它可以對(duì)具有一定格式的GAL編程輸入源文件(擴(kuò)展名.PLD)進(jìn)行匯編,即把與-或(積-和)形式的邏輯方程翻譯并生成列表文件(.LST)、熔絲狀態(tài)圖文件(.PLT)和分布數(shù)據(jù)代碼文件(,JED),然后利用編程器,把分布數(shù)據(jù)寫(xiě)入到GAL中。上一頁(yè)返回

2.開(kāi)發(fā)步驟與方法下面以采用GALl6V8來(lái)實(shí)現(xiàn)基本門(mén)電路邏輯為例,說(shuō)明GAL器件的開(kāi)發(fā)過(guò)程,共分3步。①利用文本編輯程序(如EDIT)按一定格式編寫(xiě)GAL編程輸入源文件(或叫GAL設(shè)計(jì)說(shuō)明書(shū))。使用FM軟件前,首先要準(zhǔn)備好GAL編程輸人源文件,其格式如下:

GALl6V8;DEVICENAME——LINE1—-BASICGATES;(USE)—LINE2—XUAIQINGMAR.151998B1TI;(DESIGNER)—LINE3—BGATES;SIGNATURE——LINE4——CDFGMNPQIGND;PINNAME—LINEI—JKLROHEBAVCC;PINNAME

上一頁(yè)返回B=/A;INVERTER—LINEJ—E=C*D;ANDGATEH=F+G;ORGATEL=/I+/J+/K;NANDGATEO=/M*/N;NORGATEN=P*/Q+/P*Q;XORGATEDESCRIPTION;KEYWORD—LINEK-THISEXAMPLEILLUSTRATESTHEUSEOFGALDEVICEANDITSDEVELOPMENTTOOL.上一頁(yè)返回

其中:斜杠(/)符號(hào),表示低電平有效第一行器件型號(hào),必須用大寫(xiě)字母第二行標(biāo)題(GAL器件的應(yīng)用)第三行設(shè)計(jì)者姓名,日期等第四行電子標(biāo)簽第I行引腳名,可占用多行,i≥5第J行邏輯方程,可占用多行第K行程序描述。DESCRIPTION是關(guān)鍵字,不可少,且必須用大寫(xiě)字母。上一頁(yè)返回

注意:第1行的器件型號(hào)和第4行的電子標(biāo)簽的位置不能變。第2、3行寫(xiě)什么由設(shè)計(jì)者自己定,上例中只是推薦的格式,這兩行無(wú)論寫(xiě)什么bqVl軟件都不會(huì)判錯(cuò)。關(guān)鍵字DESCRIPTION不可缺,即使后面不給出任何描述,也要寫(xiě)出關(guān)鍵字,且一定要頂頭開(kāi)始寫(xiě),前面不能留空格。每個(gè)引腳名最多可用8個(gè)字符,名字間應(yīng)用空格、制表符、回車(chē)符隔開(kāi)。不使用的引腳習(xí)慣上用NC表示,地用GND表示,電源用U”表示。引腳名必須按引腳號(hào)的次序排列,排完第一行,再排第二行。器件類(lèi)型和關(guān)鍵字DESCRIPTION必須用大寫(xiě)字母。輸入源文件的核心部分是輸入與輸出信號(hào)的邏輯方程,因?yàn)閰R編程序FM無(wú)邏輯化簡(jiǎn)功能。所以,源文件要用簡(jiǎn)化的與-或式(積—和式)寫(xiě)出。輸入源文件可以在任一編輯器上進(jìn)行編輯,編輯完畢后,以擴(kuò)展名.PLD存盤(pán)。上一頁(yè)返回②使用FM.EXE匯編程序?qū)AL輸入源文件進(jìn)行匯編,并生成3個(gè)基本文件。當(dāng)準(zhǔn)備好輸入源文件后,就可以啟動(dòng)FM匯編程序,根據(jù)FM的菜單,分別生成:LST列表.文檔文件——包括源文件和引腳分配圖;PLT熔絲狀態(tài)分布圖文件——供用戶(hù)直觀地查看邏;輯方程用;JED分布數(shù)據(jù)文件——包含門(mén)陣列中所有編程節(jié)點(diǎn)的編程信息代碼,這些代碼可通·過(guò)編程器,直接寫(xiě)入GAL,進(jìn)行“編程寫(xiě)入”,故又稱(chēng)為編程代碼文件或裝載文件。上一頁(yè)返回

FM.EXE匯編程序的啟動(dòng)和操作如下:?jiǎn)?dòng)時(shí),在DOS提示符下鍵人FM,再鍵人已準(zhǔn)備好的GAL文件后,屏幕上會(huì)出現(xiàn)如圖2.7所示的FM菜單,并提請(qǐng)用戶(hù)鍵人相應(yīng)的選擇項(xiàng)(數(shù)字鍵1—5)。若鍵人“1”,則FM將生成一份擴(kuò)展名為.LST的文檔文件,包括源文件和GAL引腳配置圖。若輸入“2”,則FM將生成一份擴(kuò)展名為.PLT的芯片熔絲狀態(tài)分布圖文件。若鍵人“3”,則FM將生成一份擴(kuò)展名為.用D的JEDEC標(biāo)準(zhǔn)裝載文件,這種標(biāo)準(zhǔn)文件包含門(mén)陣列中所有編程節(jié)點(diǎn)的編程信息,可以直接寫(xiě)入GAL芯片。若鍵人“4”,則放棄對(duì)現(xiàn)文件的匯編,F(xiàn)M將要求用戶(hù)輸入新的編程輸入源文件名,重新顯示菜單。若鍵人“5”,則由FM退回到DOS環(huán)境。上一頁(yè)返回

③使用ALD03編程器將擴(kuò)展名為.JED的裝載文件“燒”到GAL器件內(nèi)。在DOS提示符下,鍵人"ACCESS'’,按回車(chē)鍵,屏幕上將顯示:

ALD03A/03UniversalProgrammer&TesterHI-LOSYSTEMSCO.,LTDALLRightReserved

按回車(chē)鍵后,將顯示新的一屏,接著可按屏幕標(biāo)題顯示來(lái)選擇GAL、PAL等芯片生產(chǎn)公司(工廠)的名字,及某一公司(工廠)的產(chǎn)品型號(hào)。按準(zhǔn)備編程的GAL的生產(chǎn)公司和型號(hào)進(jìn)行選擇。例如,若待編程的GAL是LATIICE公司生產(chǎn)的"GALl6V8'’,則鍵人“09”(對(duì)應(yīng)LATIlCE公司),按回車(chē)鍵,右邊一列顯示出該公司的多個(gè)產(chǎn)品型號(hào),再鍵人“00”(對(duì)應(yīng)GALl6V8),選定編程芯片型號(hào)。屏幕將顯示如圖2.8所示的菜單。上一頁(yè)返回

利用此菜單,只需按以下步驟操作,即可完成GAL器件的編程工作。當(dāng)把GAL器件插入編程器的插座后,第一步,鍵入“2”,把裝載文件.JED裝入緩沖區(qū)。第二步,鍵人“B”,檢查芯片是否擦除好,若未擦除好,則鍵人“E”,將其擦除。第三步,鍵入“P”,即進(jìn)行編程(燒錄)。第四步,鍵人“V”,進(jìn)行核對(duì)。若要加密,則最后鍵人“S”。編程即告結(jié)束。為簡(jiǎn)單起見(jiàn),也可在.扛D文件裝入后,只鍵人“A”,代替前述各步,一次自動(dòng)完成編程工作。上一頁(yè)返回

在微機(jī)上,通過(guò)GAL編程軟件和編程器將.JED文件中的編程代碼寫(xiě)入(“燒”人)GALl6V8,至此一個(gè)滿(mǎn)足上述要求的GAL基本邏輯門(mén)電路開(kāi)發(fā)完畢。在使用中若發(fā)現(xiàn)有問(wèn)題,或要求改變門(mén)電路,可以將原代碼擦除,重新編寫(xiě)源文件,形成.JED文件,再“燒”人GAL。若想保護(hù)源代碼不被非法占有,則可以在燒人時(shí)實(shí)現(xiàn)邏輯電路的加密功能。上一頁(yè)返回

三、采用GAI的I/O端口地址譯碼電路設(shè)計(jì)1.要求利用GAL器件設(shè)計(jì)MFID多功能微機(jī)接口實(shí)驗(yàn)平臺(tái)的I/O端口地址譯碼電路,其端口地址范圍為300H-3FFH,分成16個(gè)段,每個(gè)段包含4個(gè)接口芯片,每個(gè)接口芯片內(nèi)部擁有4個(gè)端口。上一頁(yè)返回

2.分析①地址線的分配與使用。首先,從端口地址范圍,可知最高兩位地址線的值A(chǔ)9=A8=1。其次,要求分成16個(gè)段,可由A7A6A5A4四位地址線進(jìn)行組合,實(shí)現(xiàn)段選。而每個(gè)段包含4片接口芯片,故可用A3和A2兩位地址線進(jìn)行組合,實(shí)現(xiàn)片選。最后,為了讓每個(gè)芯片內(nèi)部擁有4個(gè)端口,將A1和Ao最低兩位地址線,不參加譯碼,直接連到接口芯片上,進(jìn)行片內(nèi)寄存器尋址。因此,可得譯碼電路輸入地址線的值,如表2.7所示。②參加譯碼的控制線。根據(jù)需要,只有IOW、IOR和AEN三根控制線參加譯碼。③GAL器件的選擇。從上述分析可知,除去不參加譯碼的A1和Ao之外,還有8根地址線,其中A7—A4四根地址線,經(jīng)DIP開(kāi)關(guān)和比較器進(jìn)行段選,比較器的輸出線僅有1根A=B線,所以,送到GAL的地址線,只有A9,A8,A=B,A3和A2五根,再加上3根控制線,共8根線作為GAL的輸入線。GAL的輸出線應(yīng)包括4根片選信號(hào)線(Y0Y1Y2Y3),l根74LS245的選通線DS和1根方向控制線DIR,共6根,所以可選擇GALl6V8作譯碼器。下面對(duì)GALl6V8進(jìn)行討論。上一頁(yè)返回④GALl6V8芯片。GALl6V8有20個(gè)引腳,如圖2.9所示,它有8個(gè)輸入端(2—9),8個(gè)輸出端(12—19),1個(gè)時(shí)鐘輸入端(1)和1個(gè)輸出允許(11)控制端。其中除了8個(gè)輸入引腳(2-9)固定作輸入之外,還可以把8個(gè)輸出引腳(12—19)配置成輸入引腳作為輸入使用,因此,這個(gè)芯片最多可有16個(gè)輸入引腳,而輸出引腳最多為8個(gè),這就是GALl6V8中兩個(gè)數(shù)字(16和8)的含義。

GALl6V8的外部引腳和內(nèi)部結(jié)構(gòu)見(jiàn)圖2.10。由圖可見(jiàn),外部輸入信號(hào)允許正、負(fù)兩種極性(原碼或反碼)輸人,8個(gè)輸人信號(hào)(引腳2圖2,9GALl6V8的引腳—9)分別由左邊8個(gè)輸入緩沖器引入。8個(gè)輸出信號(hào)(引腳12-19)由右邊8個(gè)輸出邏輯宏單元OLMC(OutputLogicMacroCell)經(jīng)三態(tài)緩沖器輸出,這8個(gè)輸出信號(hào)又可經(jīng)OLMC反饋回來(lái)作輸入信號(hào),以擴(kuò)充芯片的輸入端,使輸入線最多可以為16根。

上一頁(yè)返回可編程陣列GALl6V8內(nèi)部是與-或陣列邏輯結(jié)構(gòu),列線之間是相與的,行線之間是相或的。其中和項(xiàng)線,即列線共32根,分別與16個(gè)輸人端的正/反極性信號(hào)線連接。積項(xiàng)線,即行線共有以根,分成8組,每組8根線對(duì)應(yīng)1個(gè)8輸入端的或門(mén),然后,從或門(mén)輸出,產(chǎn)生8個(gè)輸出線。故可編程陣列GALl6V8內(nèi)部有64行32列,由于行線上的點(diǎn)是相“與”,列線上的點(diǎn)是相”或”,因此共有64x32:2048個(gè)與-或點(diǎn)陣。用戶(hù)可以利用陣列中的與_或關(guān)系,把輸入信號(hào)進(jìn)行不同組合,實(shí)現(xiàn)各種邏輯功能,產(chǎn)生不同的控制信號(hào)。

上一頁(yè)返回

3.設(shè)計(jì)①硬件設(shè)計(jì)。MI~ID多功能微機(jī)接口實(shí)驗(yàn)平臺(tái)的譯碼電路如圖2.11所示。圖中GALl6V8的6根輸出線,其作用分別是:DS線連到7413245的E端,以控制7413245的通/斷。只有當(dāng)端口地址范圍選在300H~3FFH內(nèi),才使五:0,打開(kāi)7413245,否則,74LS2A5關(guān)閉,這意味著實(shí)驗(yàn)平臺(tái)只允許使用300H-3FFH范圍內(nèi)的地址。DIR線用于控制74LS245的傳送方向.Y0—Y3四根線可作為平臺(tái)板上4個(gè)接口芯片的片選信號(hào)。其中,Yo—8255A的CS,Y1—8253A的CS,Y2--8251A的CS。上一頁(yè)返回

②軟件設(shè)計(jì)。使用GAL器件進(jìn)行譯碼電路設(shè)計(jì),與以往用SSI、MSI器件不同,除了進(jìn)行硬件連接外,還要根據(jù)所要求的邏輯功能和編程工具所要求的格式編寫(xiě)編程輸入源文件。該文件將邏輯變量之間的函數(shù)關(guān)系(輸2./輸出的關(guān)系)變換為陣列結(jié)構(gòu)的與—或關(guān)系——積和式。再借助于編程工具生成GAL器件熔絲狀態(tài)分布圖文件以及分布數(shù)據(jù)文件等幾個(gè)文件,并最后將分布數(shù)據(jù)“燒”到GAL內(nèi)部。例如,若第00列至15列的熔絲狀態(tài)分布圖為:xx——xx——x—x——x—x(“x”表示熔絲接點(diǎn)已連接,“—”表示熔絲接點(diǎn)未連),則相應(yīng)的分布數(shù)據(jù)為:0011001101011010(“0”表示熔絲接點(diǎn)已連接,“1”表示熔絲接點(diǎn)未連接)。用16進(jìn)制表示分布數(shù)據(jù)為335AH。最后將這個(gè)數(shù)據(jù)寫(xiě)到從0列至15列相對(duì)應(yīng)的地址中。所以,如何編寫(xiě)GAL器件的編程輸入源文件是軟件設(shè)計(jì)中的重要內(nèi)容。上一頁(yè)返回

4.GAL器件譯碼電路的編程根據(jù)MHD微機(jī)接口實(shí)驗(yàn)平臺(tái)I/O端口地址譯碼電路的設(shè)計(jì)要求,井按照GAL器件開(kāi)發(fā)步驟來(lái)對(duì)GAL譯碼電路進(jìn)行編程。①編寫(xiě)端口地址譯碼電路的GAL輸入源文件(設(shè)計(jì)說(shuō)明書(shū))。②利用FM.EXE對(duì)DECODER.PLD進(jìn)行匯編,自動(dòng)生成3個(gè)文件。它們是文件1——列表文檔文件,文件2--熔絲狀態(tài)分布圖文件和文件3--編程信息代碼文件。上一頁(yè)返回返回返回返回返回返回返回返回返回返回返回返回返回返回返回返回返回返回返回第三章定時(shí)/計(jì)數(shù)技術(shù)第三章3.1基本概念3.2可編程定時(shí)/計(jì)數(shù)器8253-5/8254-23.38253-5/8254-2的應(yīng)用舉例本章的圖表導(dǎo)航圖第三章定時(shí)/計(jì)數(shù)技術(shù)3.1基本概念

3.1基本概念一、定時(shí)/計(jì)數(shù)在計(jì)算機(jī)系統(tǒng)、工業(yè)控制領(lǐng)域、乃至日常生活中,都存在定時(shí)、計(jì)時(shí)和計(jì)數(shù)問(wèn)題,尤其是計(jì)算機(jī)系統(tǒng)中的定時(shí)技術(shù)特別重要。

1.定時(shí)

定時(shí)和計(jì)時(shí)是最常見(jiàn)和最普遍的問(wèn)題,一天24小時(shí)的計(jì)時(shí),稱(chēng)為日時(shí)鐘。長(zhǎng)時(shí)間的計(jì)時(shí)(日、月年直至世紀(jì)的計(jì)時(shí))稱(chēng)為實(shí)時(shí)鐘。在監(jiān)測(cè)系統(tǒng)中,對(duì)被測(cè)點(diǎn)的定時(shí)取樣。在打印程序中,查忙(Busy)信號(hào),一般等待l0ms,若超過(guò)10ms,還是忙,就作超時(shí)處理。在讀鍵盤(pán)時(shí),為了去抖,一般延遲一段時(shí)間,再讀。在步進(jìn)電機(jī)速度控制程序中,利用在前一次和后一次發(fā)送相序代碼之間延時(shí)的上一頁(yè)返回時(shí)間間隔來(lái)控制步進(jìn)電機(jī)的轉(zhuǎn)速。

2.計(jì)數(shù)計(jì)數(shù)使用得更多,在生產(chǎn)線上對(duì)零件和產(chǎn)品的計(jì)數(shù);對(duì)大橋和高速公路上車(chē)流量的統(tǒng)計(jì),等等。定時(shí)/計(jì)數(shù)器8253內(nèi)部最基本的單元也是減1計(jì)數(shù)器。3.定時(shí)與計(jì)數(shù)的關(guān)系計(jì)時(shí)的本質(zhì)就是計(jì)數(shù),只不過(guò)這里的“數(shù)”的單位是時(shí)間單位。如果把一小片一小片計(jì)時(shí)單位累加起來(lái),就可獲得一段時(shí)間。例如,以秒為單位來(lái)計(jì)數(shù);計(jì)滿(mǎn)60秒為1分,計(jì)滿(mǎn)60分為1小時(shí),計(jì)滿(mǎn)24小時(shí)即為1天。因此,計(jì)時(shí)的本質(zhì)就是計(jì)數(shù),我們把計(jì)數(shù)作為定時(shí)的基礎(chǔ)來(lái)討論。上一頁(yè)返回二、頻率一聲音一音樂(lè)從定時(shí)、計(jì)數(shù)問(wèn)題還可以引出或派生出一些其他的概念和術(shù)語(yǔ)。例如,如果把計(jì)數(shù)和定時(shí)聯(lián)系起來(lái),就會(huì)引出頻率的概念。如上述,采集數(shù)據(jù)的次數(shù),再加上時(shí)間,就會(huì)引出每秒鐘采集多少次,即采樣頻率。由頻率可以引出聲音,頻率高,聲音的音調(diào)高;頻率低,聲音的音調(diào)低。如果不僅考慮發(fā)聲頻率的高低,還考慮發(fā)聲所占時(shí)間的長(zhǎng)短,就會(huì)引出音樂(lè)的概念。把音調(diào)的高低和發(fā)聲的長(zhǎng)短巧妙地結(jié)合起來(lái),便產(chǎn)生了美妙動(dòng)聽(tīng)的音樂(lè)。所以,定時(shí)/計(jì)數(shù)技術(shù)與頻率、聲音以及音樂(lè)

上一頁(yè)返回之間有密切的聯(lián)系,本章將對(duì)這幾個(gè)方面的問(wèn)題進(jìn)行討論。三、微機(jī)系統(tǒng)中的定時(shí)微機(jī)系統(tǒng)常常需要為處理器和外設(shè)提供時(shí)間標(biāo)記,或?qū)ν獠渴录M(jìn)行計(jì)數(shù)。例如,分時(shí)系統(tǒng)的程序切換,向外設(shè)定時(shí)周期性地發(fā)出控制信號(hào),外部事件發(fā)生次數(shù)達(dá)到規(guī)定值后產(chǎn)生中斷,以及統(tǒng)計(jì)外部事件發(fā)生的次數(shù)等,因此,需要解決系統(tǒng)的定時(shí)問(wèn)題。微機(jī)系統(tǒng)中的定時(shí),可分為內(nèi)部定時(shí)和外部定時(shí)兩類(lèi):內(nèi)部定時(shí)是計(jì)算機(jī)本身運(yùn)行的時(shí)間基準(zhǔn)或時(shí)序關(guān)系,計(jì)算機(jī)每個(gè)操作都是按照嚴(yán)格的

上一頁(yè)返回時(shí)間節(jié)拍執(zhí)行的;外部定時(shí)是外部設(shè)備實(shí)現(xiàn)某種功能時(shí),本身所需要的一種時(shí)序關(guān)系,如打印機(jī)接口標(biāo)準(zhǔn)Centronics就規(guī)定了打印機(jī)與CPU之間傳送信息應(yīng)遵守的工作時(shí)序。計(jì)算機(jī)內(nèi)部定時(shí),已由CPU硬件結(jié)構(gòu)確定了,是固定的時(shí)序關(guān)系,無(wú)法更改。外部定時(shí),由于外設(shè)或被控對(duì)象的任務(wù)不同,功能各異,無(wú)一定模式,往往需要用戶(hù)根據(jù)I/0設(shè)備的要求進(jìn)行安排。當(dāng)然,用戶(hù)在考慮外設(shè)和CPU連接時(shí),不能脫離計(jì)算機(jī)的定時(shí)要求,即應(yīng)以計(jì)算機(jī)的時(shí)序關(guān)系為依據(jù),來(lái)設(shè)計(jì)外部定時(shí)機(jī)構(gòu),以滿(mǎn)足計(jì)算機(jī)的時(shí)序要求,這叫做時(shí)序配合。至于在一個(gè)過(guò)程控制或工藝上一頁(yè)返回流程或監(jiān)測(cè)系統(tǒng)中,各個(gè)控制環(huán)節(jié)或控制單元之間的定時(shí)關(guān)系,完全取決于被處理、加工、制造和控制的對(duì)象的性質(zhì),因而可以按各自的規(guī)律獨(dú)立進(jìn)行設(shè)計(jì)。本章的重點(diǎn)是討論外部定時(shí)技術(shù)。四、定時(shí)方法為獲得所需要的定時(shí),要求有準(zhǔn)確而穩(wěn)定的時(shí)間基準(zhǔn),產(chǎn)生這種時(shí)間基準(zhǔn)通常采用兩種方法——軟件定時(shí)和硬件定時(shí)。1.軟件定時(shí)它是利用CPU內(nèi)部定時(shí)機(jī)構(gòu),運(yùn)用軟件編程,上一頁(yè)返回循環(huán)執(zhí)行一段程序而產(chǎn)生的等待延時(shí)。這是常用的一種定時(shí)方法,主要用于短時(shí)延時(shí)。這種方法的優(yōu)點(diǎn)是不需增加硬設(shè)備,只需編制相應(yīng)的延時(shí)程序以備調(diào)用。缺點(diǎn)是CPU執(zhí)行延時(shí)等待時(shí)間增加了CPU的時(shí)間開(kāi)銷(xiāo),延時(shí)時(shí)間越長(zhǎng),這種等待開(kāi)銷(xiāo)越大,降低了CPU的效率,浪費(fèi)CPU的資源。并且,軟件延時(shí)的時(shí)間隨主機(jī)頻率不同而發(fā)生變化,即定時(shí)程序的通用性差。

2.硬件定時(shí)它是采用可編程通用的定時(shí)/計(jì)數(shù)器或單穩(wěn)延時(shí)電路產(chǎn)生定時(shí)或延時(shí)。這種方法不占用CPU的時(shí)間,定時(shí)時(shí)間長(zhǎng),使用靈活。尤其是上一頁(yè)返回定時(shí)準(zhǔn)確,定時(shí)時(shí)間不受主機(jī)頻率影響,定時(shí)程序具有通用性,故得到廣泛應(yīng)用。目前,通用的定時(shí)/計(jì)數(shù)器集成芯片種類(lèi)很多,如Intel8253/8254,Zilog昭的CTC等。這里對(duì)Intel8253/8254定時(shí)/計(jì)數(shù)器進(jìn)行詳細(xì)討論。

上一頁(yè)返回第三章定時(shí)/計(jì)數(shù)技術(shù)

8253-5/8254-23.2可編程定時(shí)/計(jì)數(shù)器3.2可編程定時(shí)/計(jì)數(shù)器8253-5??/8254-2

可編程定時(shí)/計(jì)數(shù)器芯片型號(hào)有幾種,它們的外形引腳及功能都是兼容的,只是工作的最高頻率有所差異,例如,8253-5和8254-2前者為5MHz,后者為10MHz。另外,還有8253(2MHz)、8254(8MHz)和8254-5(5MHz)兼容芯片。下面以8253-5和8254-2為例進(jìn)行分析。本書(shū)中,以后出現(xiàn)的8253和8254均分別指8253-5和8254-2。一、外部特性與內(nèi)部邏輯上一頁(yè)返回

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論