




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章微機接口技術概述
1.1微機接口技術的基本概念
1.2接口電路的基本組成
1.3輸入/輸出傳送控制方式習題與思考題
1.1.1微機接口及接口技術
計算機系統要解決的一個重要問題是主機與外部世界進行通信或實現數據交換,即輸入與輸出的問題。1.1微機接口技術的基本概念主機與外界之間的通信是通過外圍設備(簡稱外設)來進行的。輸入與輸出設備是計算機系統的重要組成部分。程序、原始數據和各種現場采集到的數據、信息都要通過輸入設備輸入至主機,而計算的結果或各種控制信號要輸出給各種輸出設備,以便顯示、打印和實現各種控制功能。輸入與輸出的操作過程類似于存儲器的存取操作。原則上CPU可以采用訪問存儲器的方式與外設交換數據,但是在實際操作中,外圍設備要考慮的問題比訪問存儲器復雜得多。存儲器通常是在與CPU同步的控制方式下工作的,并且內存采用半導體器件,其相應的控制比較簡單,與CPU的匹配和定時較易實現。而外設種類繁多,控制復雜。CPU與外設相連時,不能直接用總線相連,而是要通過相應的電路來連接。這是因為CPU與外設之間存在很大的差異,不能匹配。這些差異主要體現在以下幾個方面。
(1)交換數據速度不匹配。由于外設的種類繁多,有電磁式、電子式、機電式、機械式等,因而不同外設交換數據的速度有很大差異,比如110位/秒的電傳打字機與25萬位/秒的磁盤驅動器。這些數據的速度變化不依賴于計算機,它們無法直接與CPU匹配。
(2)信號類型和電平幅度不匹配。外設提供的信息種類可能不相同,有模擬量、開關量和數字量;提供的信號電平的高低也相差很大。而CPU處理的信息只能是數字量。
(3)信息格式不匹配。
外設產生的信息結構較復雜,不同外設之間的信息格式各不相同,如盒式磁帶機與磁盤機之間的信息結構和格式有差別,其要求控制的時序也不同。
(4)時序不匹配。各種外設都有自己的時鐘和控制邏輯,與計算機的CPU時序不一致。
因此輸入與輸出設備不能直接與CPU的系統總線相連,必須在CPU與外設之間設置專門的接口電路來解決這些問題。
由此可見,微機與各種外設的信息交換是比較復雜的,它們之間存在如何連接的問題。一般來說,每種外設都有其具體的問題,必須用一個專門的接口來實現主機用的信號與外設用的信號之間的匹配或轉換,并通過該接口提供相應的數據格式、適當的時序控制和同步協調,以及進行數據緩沖、傳送設備的有關狀態信息等。這樣的接口電路通常位于主機與外設之間,能夠完成主機與外設之間的信息傳送。微機接口(MicrocomputerInterface)是構成微型計算機系統最重要的部件之一,是CPU和外設之間進行信息交換的中轉站和橋梁。離開微機接口的微處理器就好像離開電路的晶體管一樣,毫無用處。隨著計算機技術的飛速發展,特別是微型計算機的發展與應用,需要和主機接口的外圍設備越來越多,而且越來越復雜。接口本身不但是一些邏輯電路的簡單組合,而且已發展成為硬件和軟件相結合的一門綜合技術,稱為“微機接口技術”。微機接口技術體現了計算機的體系結構,關系著計算機的推廣和應用,已成為開發應用微型計算機系統的一門基本技術。1.1.2接口的功能
接口技術是用硬件和軟件相結合的方法來處理主機與外部世界的通信和數據交換,使其達到最佳匹配,實現高效、可靠的信息交換的一門技術。為了達到這樣的目的,就需要解決主機與外部世界存在不匹配的矛盾。接口應具備如下功能:
1.信息格式轉換
外設產生的信息結構很復雜,不同設備有不同的信息格式和種類,它們與CPU的信息格式不兼容,需要在接口中進行轉換,如正負邏輯的轉換、串行信息與并行信息的變換等。
2.各信息類型和電平的轉換
外設提供不同類型的信息,且信號電平的高低不同。
接口主要完成將不同的信號類型(如模擬量、開關量等)和高低不同的電平轉換成CPU能接收的數字量。
3.緩沖輸入/輸出數據
在接口中設置數據寄存器來緩沖輸入/輸出數據,使高速的主機與低速的外設匹配而不致于丟失數據。
4.接收和執行各種命令
主機給外設發布的各種命令通過接口形成一系列控制信號來控制外設。
5.傳送各種狀態信息
接口為主機提供外設當前所處狀態的有關信息,如數據緩沖的“空”或“滿”,設備是否“準備好”,以及“忙”或“閑”等有關狀態信息。
6.選擇設備
系統中一般配有多臺外設,在同一時間里CPU只能與一臺外設交換信息,接口要經地址譯碼對外設進行尋址,以便選擇當前需要交換數據的設備與CPU交換信息。
7.對外設進行中斷管理
當外設與CPU以中斷方式交換信息時,接口能暫存中斷請求,進行中斷排隊,提供中斷識別信息或相應的中斷矢量等。
8.可編程功能
在不變動硬件電路的情況下,可通過編程來任意設置與變更接口芯片的工作方式和各種參數,使接口具有靈活性和可擴充性。
綜上所述,接口的主要功能是執行命令、提供狀態、管理中斷、協調交換和變換信息格式。這些功能并不是所有接口必須具備的功能。根據系統的不同配置和用途,其接口的功能和工作方式有所不同,應視具體系統的要求而定。1.1.3接口的分類
1.按適應面劃分
微機接口從適應面角度劃分,可以分為專用接口、通用標準接口和增強功能用的接口三大類。
1)專用接口
專用接口包括用戶交換接口和輔助操作接口兩類。
(1)用戶交換接口。用戶交換接口又稱人機交互設備接口。這類接口的主要功能是將用戶指定的數據、信息傳送給主機,而將來自主機的數據、信息傳送給輸出設備。隨著微機的不斷發展,人機接口又可分為常規人機接口和智能人機接口。
常規人機接口是以計算機為中心的,即輸入/輸出的信息是以二進制碼、十六進制或ASCII碼形式傳送的。這種形式的信息計算機容易接受和便于處理,而人接受和處理就不大方便。屬于這類接口的有鍵盤接口、顯示器接口和打印機接口等。智能人機接口是以人為中心的,這類接口以人容易接受和識別的聲音、圖像和文字形式來傳遞信息。這些信息在智能接口中通過適當的處理和轉換,成為計算機能接受的二進制數字形式送入機器。這類接口有多媒體接口中的SCSI接口,以及音頻卡、視頻卡等。
(2)輔助操作接口。輔助操作接口是實現主機和外設之間通信的一些基本處理與控制的接口。屬于這類接口的有磁盤接口(包括軟盤和硬盤),以及總線驅動器、數據鎖存器等。輔助操作接口又稱內務操作接口。
2)通用標準接口
通用標準接口是指符合標準化而且通用的接口,可以為多種外設所使用,例如RS-232C、IEEE-488、模擬接口等。
3)增強功能用的接口
這類接口主要用于增強主機功能,有中斷控制口、DMA控制口等。
2.按數據傳輸方式劃分
按數據傳輸方式劃分,微機接口可以分為并行接口和串行接口。
1)并行接口
并行接口指同時可傳送多位二進制信息的接口電路,用于數據并行傳送。由于并行傳送多位信息,因此傳送效率高,適于近距離傳輸。
2)串行接口
串行接口用于串行通信方式中。串行通信方式中數據是一位一位進行傳輸的,每一位數據都占據一個固定的時間長度。因此這種方式傳送的效率低,適于遠距離傳輸。
1.2.1端口
主機與外設之間交換的信息有三種基本類型:數據信息、控制信息和狀態信息。通常我們把計算機與外設之間的這種交換數據、狀態和控制命令的過程稱為通信(Communication)。1.2接口電路的基本組成數據可以用8位、16位或32位、64位來表示,數據的傳送可以是并行傳送和串行傳送兩種形式。狀態信息表示外設當前所處的狀態。控制信息是主機向外設發出的各種控制命令。這三種不同性質的信息應該分別傳送。但是在大部分微機中,I/O接口的尋址方式采用獨立編址方式,即用IN和OUT指令訪問接口電路,這樣數據、狀態和控制信息都將作為一種數據進行輸入/輸出。為了區分這三種不同性質的信息,在接口中設置了不同的寄存器來存放這三種不同的信息,并給每個寄存器一個地址號。我們將這些能完成接口任務,可以尋址進行讀或寫的寄存器稱為端口。在一個接口電路內往往包含有兩個以上的端口,根據存放信息性質的不同,端口可以分為數據口(存放主機與外設要交換的數據)、狀態口(存放狀態信息)和控制口(存放各種控制命令)。每個端口分配一個地址號,稱為端口地址。1.2.2典型接口電路的組成
典型接口電路的內部結構框圖如圖1-1所示。一般的接口電路由兩部分構成:第一部分(左邊部分)通過系統總線與CPU相連,第二部分(右邊部分)與外設相連。
圖1-1典型接口電路的內部結構框圖第一部分實現的功能如下:
(1)
CPU發出的控制信息和數據信息送入數據總線緩沖器,在控制邏輯的控制下再送到相應的端口,并將外設送給CPU的數據和狀態信息通過數據總線緩沖器提供給CPU。
(2)
CPU發出的端口地址由AB總線送到地址緩沖器,經地址譯碼后產生相應端口地址的片選信號。
(3)控制邏輯及聯絡信號產生主機與外設之間通信的聯絡信號,以便達到時序的配合與同步。由于這一部分與系統總線相連,因此各類接口中這部分的結構非常相似。
第二部分實現的功能如下:
這部分與外設相連,其結構與外設的傳輸要求、數據類型和數據格式有關。因此,對于不同的外設接口,這部分的結構差異很大。圖1-1所示的三種端口僅僅是接口中主要的端口,是CPU與外設進行信息交換必不可少的部分。對于不同的接口,其端口的類型和數量都有差別,要根據具體接口的功能要求而定。
(1)數據端口。數據端口包括數據輸入和輸出端口。輸入端口是將外設送來的數據暫存,以供CPU讀取。輸出端口是將CPU輸出到外設的數據保存足夠長的時間,以滿足輸出設備的需要。CPU送到數據總線上的數據一般只能維持數百微秒,對大多數外設來說,這段時間是不夠長的。
(2)控制端口。控制端口用于存放CPU發來的控制命令和其他信息。這些控制命令的內容一般包括設置接口的工作方式,指定相應的參數等。
(3)狀態端口。狀態端口用于保存現行狀態信息,供CPU查詢、判斷使用,以達到同步和協調的目的。1.2.3設計接口電路的方法
1.設計接口電路的步驟
設計接口電路一般按照下列步驟進行:
(1)分析設計要求;
(2)選擇合適的接口芯片;
(3)硬件設計;
(4)軟件設計;
(5)軟/硬件調試。
在設計前一定要充分了解原有微機系統的特性,特別是微處理器的技術指標和要求,如字長、尋址方式、指令系統、運行速度、時序關系、功耗大小、承載外設的能力等。將要連接的外設的工作原理、技術特性、信息格式、電氣特性等方面的技術資料準備齊全,并仔細研究。這些工作是設計前必備的條件,只有在此基礎上才能按以上步驟進行設計。
2.設計接口電路的基本方法
在充分掌握所設計的系統(包括CPU和外設)的工作原理、技術指標和特性的基礎上,設計接口電路要按以下步驟進行設計。
(1)分析設計要求。在設計接口時,首先根據設計要求,明確接口要實現的個體功能。由于接口電路一側連接CPU,另一側連接外設,因此,要分別研究兩側的已有條件和需要解決的問題。這種方法就是我們通常所說的兩側分析法。首先,了解與CPU連接部分的已有條件,包括CPU的類型、數據線的寬度、地址線的寬度、控制線的功能、CPU時序的要求等。這部分設計中要解決的問題是在選擇接口芯片時,其數據緩沖器、地址緩沖器以及控制邏輯都要滿足已有條件,才能與CPU匹配。
其次,看與外設連接的基本要求,對所連外設的型號、電氣特性、信息格式、可提供的狀態信息、傳輸速度等進行研究分析,為下一步選擇合適的接口芯片提供可靠的數據。
(2)選擇合適的接口芯片。通過對接口兩側的分析,找到兩側信號在進行連接時存在的差別后,接口要完成的任務就非常明確和具體了,即明確了哪些信號要進行變換(包括信號格式、高低電平的轉換等),這些信號之間的邏輯關系,時序上如何配合等問題。由此可以確定該接口中需要各類端口的數目、連接方式、完成的功能以及地址分配等。最后由上述困素來初步選定主要采用的接口芯片。在選用芯片時要注意兩點:一是要盡量采用集成接口芯片(LSI或VLSI芯片),最好選用與CPU同一系統的接口芯片,這樣,使用會更方便;二是要簡化電路,進行優化組合。由于實現同一接口功能可以采用不同的接口芯片和相應的軟件,因此要軟/硬件相結合,綜合考慮。
3.硬件設計
硬件設計主要是指合理選用外圍接口芯片和有針對性地設計附加電路。由選定的芯片便可進行硬件設計,完成接口電路功能模塊化總體結構的設計,畫出具體的硬件電路結構框圖。其具體做法如下:
(1)合理選用外圍接口芯片。由于隨著現代微電子技術和集成電路的發展,目前,各種接口電路都已做成集成芯片,由中規模或大規模集成接口芯片代替了過去的數字電路,因此,在接口設計中,通常不需要繁雜的電路參數計算,而需要熟練掌握和深入了解各類芯片的功能、特點、工作原理、使用方法及編程技巧,以便根據設計要求和經濟準則,合理選擇芯片,把它們與微處理器正確地連接起來,并編寫相應的控制程序。采用集成接口芯片的接口體積小,功能完善,可靠性高,易于擴充,應用極其靈活方便。所以,接口芯片在微機接口技術中起著很重要的作用,應給予足夠的重視。可編程集成接口芯片是接口硬件設計中的首選元器件,應盡量采用,并且把它們作為各種接口電路的核心芯片來使用。
(2)有針對性地設計附加電路。外圍接口芯片并非萬能,因此,當接口電路中有些功能不能由接口的核心芯片完成時,就需用戶附加某些電路予以擴充。如邏輯關系與電平轉換、時序配合以及驅動能力等方面的功能,可以采用反相器、三極管、緩沖器、與門、或門以及驅動器等芯片,設計一些輔助電路加到接口電路中。
(3)根據選定的芯片,畫出各芯片間的信號連接(包括數據信息、控制信息和狀態信息的連接)、地址譯碼以及滿足時序關系的聯絡線等符合設計要求的接口邏輯框圖。
4.軟件設計
接口的硬件電路只提供了接口工作的基礎,要使接口真正發揮作用就要配備相應的控制軟件。軟件設計可確定CPU與外設以什么樣的方式交換信息(是用查詢方式、中斷方式,還是DMA方式),因為采用不同的傳送方式,其接口的結構和相應的編程方法是有差異的。硬件結構確定下來以后,便可進行相應的軟件設計。軟件設計一般可按照下面五個步驟進行。
(1)采用匯編語言(或高級語言)直接對低層硬件編程。用戶應用系統的接口控制程序應直接面向接口編程。由于接口程序對硬件具有依賴性,與一般的管理程序和數據處理程序不同,它直接與硬件打交道,因此,設計者必須對相應的硬件細節十分熟悉。具體地講,就是對接口芯片和被控對象的外部特性以及接口芯片的編程命令要徹底弄清楚才能著手編寫程序。編程語言可以用匯編語言,也可以用高級語言(如C或C++),但從程序的實時性與代碼效率以及充分發揮低層硬件的潛力來看,采用匯編語言更佳。
(2)采用DOS系統功能調用和BIOS調用編程。在應用程序中,當涉及到使用系統資源(如鍵盤、顯示器、打印機、串行口等)時,可以采用DOS和BIOS調用,而不需作低層編程。這是因為對于微機系統中的標準設備,在DOS系統功能和ROM-BIOS中都有相應的功能子程序供用戶調用。但是,對于接口設計者來說,常常碰到的是一些非標準設備,所以就需要自己動手編制接口控制程序。
(3)明確軟件功能。根據硬件電路的結構要求,配上相應的軟件才能完成接口的功能。軟件在選定的傳送方式下用相應的控制程序來實現CPU和外設間的通信。對于不同的傳送方式(如查詢、中斷或DMA方式),其相應的控制程序是不一樣的。
(4)確定算法,畫出程序流程圖。軟件編制前,根據軟件的功能確定好算法,采用模塊化程序設計方法,畫出程序流程圖。該流程圖一般由初始化模塊和若干功能模塊組成。
(5)編制程序。在編制程序前要選好編程語言,是采用高級語言、匯編語言,還是混合語言,這取決于設計要求和程序執行的速度。采用高級語言編程速度快,研制時間短,約為采用匯編語言程序編程所占用時間的(1/4)~(1/20)。但是高級語言編制的程序占用的存儲器容量大,比用匯編語言編制的程序所占的存儲器容量多2~10倍。因此,在具體設計中要從設計功能和經濟性,以及執行速度等方面來衡量。一般可以采用混合語言編程的方式(匯編語言與高級語言混合編程),即在用高級語言編寫的程序中,插入用等效匯編語言編寫的子程序。一般編寫子程序往往占編寫整個程序所用時間的90%,但執行時間往往只占整個程序執行時間的10%。因此用這種辦法可以提高程序的運行速度,降低軟件研制的難度。選定編程語言后,根據程序流程圖,按模塊功能編制程序,并進行軟件調試。上述四個步驟完成后,再按照設計好的接口硬件電路圖選擇好所需的芯片及器件,按接口圖組裝接口電路,并按設計要求進行硬件調試和軟/硬件聯機調試。1.2.4I/O接口的編址方式
每個接口部件都包含一組寄存器,如圖1-2所示。CPU和外設進行數據傳輸時,各類信息在接口中存入不同的寄存器,一般稱這些寄存器為I/O端口,每個端口有一個端口地址。
圖1-2外設通過接口和系統的連接用于對來自主機的數據或者送往主機的數據起緩沖作用的端口叫數據端口。
用來存放外設或者接口部件本身狀態的端口,稱為狀態端口。CPU通過對狀態端口的訪問可以檢測外設和接口部件當前的狀態。
用來存放CPU發出的命令,以便控制接口和設備動作的端口叫命令端口。
可以說,計算機主機和外部設備之間都是通過接口部件的I/O端口來溝通的,所以,CPU必須有和I/O端口打交道的辦法。
在微型計算機中,常用以下兩種I/O端口編址方式。
1.I/O端口地址與內存單元地址統一編址
這種編址方式又稱為存儲器映射編址方式。在這種編址方式中,將I/O端口地址和內存地址統一安排在內存的地址空間中,即把內存的一部分地址分配給I/O端口,由端口來占用這些地址。用于I/O端口的內存地址,存儲器不能再使用。這樣,計算機系統的內存空間一部分留作端口地址來使用,而剩下的內存空間可作內存使用。
I/O端口與內存統一編址的方式占用了部分內存空間,將I/O端口看做是內存單元。因此,從原則上講,用于內存的指令都可以用于外設,這給使用者提供了極大的方便。但由于I/O端口占用內存地址,因此就相對減少了內存的可用范圍。而且,從指令上不易區分是訪問內存的指令還是用于輸入/輸出的指令。這種編址方式在68系列和65系列的微型機中已得到了廣泛的應用。
2.I/O端口與內存獨立編址
在這種編址方式中,內存地址空間和I/O端口地址是相對獨立的。例如,在8088/8086CPU中,內存地址是連續的1MB,為00000H~FFFFFH,而I/O端口的地址范圍為0000H~FFFFH,它們相互獨立,互不影響。這是由于CPU在訪問內存和外設時,使用了不同的控制信號來加以區分。8086CPU的M/ 信號為1時,表示地址總線上有一個內存地址;當它為0時,表示地址總線上的地址是一個有效的外設地址。內存與端口獨立編址各自有自己的尋址空間。用于內存和用于I/O端口的指令是不一樣的,很容易辨認。但用于I/O端口的指令功能比較弱,一些操作必須由外設首先輸入到CPU的寄存器后才能進行。這種編址方式在Z80系列及Intel80系列微機中得到了廣泛采用。1.2.5譯碼電路
地址譯碼電路根據為接口電路分配的地址范圍來對地址信號進行譯碼,產生接口芯片的片選信號。除了地址信號,I/O地址譯碼還與一些控制信號有關,如用 、 來區分輸入端口、輸出端口,用AEN控制是否為DMA傳送。當AEN為高電平時,地址譯碼無效。
1.門組成的譯碼電路
圖1-3(a)所示的是一個由門電路組成的端口地址譯碼電路的實例。該電路占有端口地址300H和301H。圖1-3(a)中對高位地址A9~A1進行譯碼,而且由AEN參加譯碼,當AEN=0(非DMA操作)時,譯碼器才能輸出有效的 譯碼信號,當AEN=1(DMA操作)時,譯碼器被禁止。
圖1-3譯碼電路在圖1-3(a)中,將地址A0的狀態表示為×,即不論A0=0還是A0=1,只要AEN=0且A9~A1為110000000,均有 =0。因此說這個譯碼電路占有端口地址300H和301H。
圖1-3(b)所示為一個含有A、B兩個端口的接口芯片。當其片選端 =0時,若A0=0,則選通端口A;若A0=1,則選通端口B;若 =1,則兩個端口均不選通。因此稱
為該芯片的片選端,A0為片內端口的選擇端。若將圖1-3(a)所示的譯碼輸出端 接至圖1-3(b)所示的 端,即用圖1-3(a)所示的譯碼器的輸出作為圖1-3(b)所示的接口芯片的片選信號,而將最低位地址線A0與接口芯片的端口A0相連,即將低位地址A0作為片內選擇,則端口A的地址為300H(1100000000),端口B的地址為301H(1100000001)。
2.可選式譯碼電路
接口適配器上的端口地址可能需要適應不同場合而發生改變。例如,不同的通信口所用的控制卡是通用的,僅僅在地址上有所區別,通信口1控制卡地址為3F8H~3FFH,通信口2控制卡地址為2F8H~2FFH。并行口控制卡的情況也相似,并行口1控制卡地址為370H~37FH,并行口2控制卡地址為270H~27FH。為此,通信口控制卡或并行口控制卡可以采用可選擇譯碼電路,對于不同的通信口控制卡,只需改變跳線的連接即可。圖1-4所示是通信口控制卡上的譯碼電路。
圖1-4通信口控制卡上的譯碼電路當跳線J10接通時,地址范圍為2F8H~2FFH,與通信口2的譯碼器連接;而當跳線J12接通時,地址范圍為3F8H~3FFH。通信口控制卡的電路結構完全一樣,不同編號的通信口控制卡只需改變跳線連接即可。
3.專用譯碼器
專用譯碼器有多種信號,例如,3-8線譯碼器74LS138、2-4線譯碼器74LS139、74LS155、4-16線譯碼器74LS154等。
74LS138譯碼器的邏輯圖、引腳排列及真值表如圖1-5所示。74LS138有G1、、三個控制端,只有當G1=1、=0、=0時,才允許對A、B、C輸入的代碼進行譯碼,即可以根據A、B、C三位代碼的狀態使~這8個輸出信號中的一個成為有效電平。A、B、C代碼與~的對應關系如圖1-5(c)所示。
圖1-574LS138譯碼器的邏輯圖、引腳排列及真值表
圖1-574LS138譯碼器的邏輯圖、引腳排列及真值表1.2.6簡單的I/O接口芯片
常用的簡單輸入/輸出接口芯片主要有緩沖器(Buffer)和鎖存器(Latch)。
1.緩沖器74LS244和74LS245
連接在總線上的緩沖器都具有三態輸出能力,當CPU或I/O接口電路需要輸入/輸出數據時,在它的使能控制端EN(或G)作用一個低電平脈沖,使其內部的各緩沖單元接通,即處在輸出0或1的透明狀態,數據就會被送入總線。當使能脈沖撤除后,緩沖器處于高阻態。這時,各緩沖單元就像一個斷開的開關,相當于將它所連接的電路從總線上脫開。74LS244和74LS245就是最常用的數據緩沖器。緩沖器除具有緩沖作用外,還能提高總線的驅動能力。
1)
74LS244
74LS244是一種8路數據緩沖器,其邏輯功能和引腳如圖1-6所示。
由圖1-6可見,該緩沖器內部包含8個三態緩沖單元,它們被分為兩組,每組4個單元,分別由門控信號 和
控制。當 =0時,A輸入端1A1~1A4的高電平或低電平將被傳送到Y輸出端1Y1~1Y4;當 =0時,2A1~2A4的信號被傳送到2Y1~2Y4;當 =1和 =1時,輸出呈高阻態。圖1-674LS244邏輯功能圖和引腳圖當把該緩沖器用于8位數據總線時,可將 和 端連在一起,由一個片選信號來控制。74LS244常用來構成外設輸入數據端口,這時它的輸入端A與外設數據線相連,而輸出端Y并接在CPU的數據總線上。74LS244是一種單向數據緩沖器,數據只能從A端傳送到Y端,若要進行雙向數據傳送,可選用雙向數據總線緩沖器74LS245。
2)
74LS245
74LS245的邏輯功能和引腳如圖1-7所示。74LS245內部包含8個雙向三態緩沖器。控制信號中,除了一個低電平有效的門控信號輸入端 之外,還有一個方向控制端DIR。只有當 =0時,數據才能從A傳送到B或從B傳送到A;當DIR為高電平時,數據從A端傳向B端,為低電平時,數據則從B端流向A端。
圖1-774LS245邏輯功能圖和引腳圖
2.鎖存器74LS373
鎖存器具有暫存數據的能力,能在數據傳輸過程中將數據鎖住,在此后的任何時刻,在輸出控制信號的作用下將數據傳送出去。
74LS373是一種常用的8D鎖存器,它可以直接掛到總線上,并具有三態總線驅動能力。圖1-8所示是74LS373的邏輯圖,括號中的數字為引腳號,表1-1是其真值表。
圖1-874LS373的邏輯圖
表1-174LS373真值表從圖1-8中可以看出,74LS373由一個8位寄存器和一個8位三態緩沖器構成,寄存器的每個單元則是一個具有記憶功能的D觸發器。它有兩個控制輸入端,即輸入使能端G和允許輸出端 。當G=1時,加在各觸發器的D輸入端的0或1電平被傳送到它的Q端,且記憶在那里。 端電平與Q端電平相反。此后,若在端加一個低電平脈沖,則記憶在 端的電平將經三態門再反相后傳送到輸出端O。可見,如果這兩個控制脈沖同時作用,則鎖存器的輸出O將隨輸入D而變,呈透明態。若將G端的高電平撤除,使之變成低電平, 保持低電平,則輸出端O將是前面鎖存的數據,這時D端的任何變化都不影響輸出。如果 端為高電平,則不論G的電平如何,輸出都將呈高阻態,與總線斷開。 、G、D和O信號之間的關系如表1-l所示。在應用中,可根據實際需要設置74LS373的控制信號。例如,希望先輸入數據,在以后適當的時刻再輸出,可對G和 分別進行控制;如果只需要使用它的記憶功能,不需要三態緩沖,可直接把 端接地,僅控制G。
像74LS373這樣具有三態輸出緩沖功能的鎖存器還有74LS374,它們的內部結構幾乎相同,惟一不同的是后者必須用G信號的上升沿來觸發。此外,74LS273是不含三態門的8D鎖存器,相當于一個8位寄存器,可用在那些僅需要鎖存數據,不需要三態緩沖的場合。不少中、大規模集成接口芯片的內部,也都具有鎖存器和緩沖器邏輯。鎖存器的用途較廣,既可用來構成輸出端口,也能用于輸入端口的設計。
隨著計算機技術的飛速發展,計算機系統中輸入/輸出設備的種類越來越多,速度差異十分懸殊。對這些設備的控制也變得越來越復雜。CPU與外設之間的數據傳輸必須采用多種控制方式,才能滿足各類外設的要求。在微型計算機系統中,可采用的輸入/輸出方式主要有程序控制方式、中斷方式和DMA方式三種。前兩種方式主要由軟件實現,DMA方式主要由硬件實現。下面對這幾種數據傳送方式作一簡要介紹。1.3輸入/輸出傳送控制方式1.3.1程序控制方式
程序控制傳送方式是指CPU與外設之間的數據傳送是在程序控制下完成的,它又可以分成無條件傳送和條件傳送兩種方式。
1.無條件傳送方式
無條件傳送方式也稱為同步傳送方式,主要用于對簡單外設進行操作,也可用于外設的定時是固定的或已知的場合。也就是說,對于這類外設,在任何時刻均已準備好數據或處于接收數據狀態,或者在某些固定時刻,它們處在數據就緒或準備接收狀態,因此程序可以不必檢查外設的狀態,而在需要進行輸入或輸出操作時,直接執行輸入/輸出指令。當
I/O指令執行后,數據傳送便立即進行。這是一種最簡單的傳送方式,所需要的硬件和軟件都較少。例如,要將幾個按鍵開關的狀態輸入CPU,如圖1-9所示。將這些開關連接到一個三態緩沖器,將緩沖器的輸出端連接到CPU的數據總線,就構成了一個最簡單的輸入端口。當開關斷開時,上拉電阻保證緩沖器的每個輸入端為高電平,當某個開關合上時,相應的輸入端變為低電平,即任何時刻,開關總有一個固定的狀態(開或關)。當需要了解開關的狀態時,可隨時執行輸入指令,輸入命令使M/ 、 和選中此端口的片選信號 同時變成有效的低電平,它們相與后的低電平開啟緩沖器的三態門,使各開關的當前狀態以二進制值的形式出現在數據總線上,并被讀入CPU,檢查這個字節各位的內容,便能了解各開關的當前狀態。在其他時刻,三態門呈高阻態,將開關和數據總線隔離。
圖1-9簡單輸入端口另一個無條件傳送的典型例子是用程序來控制LED顯示器的點燃和熄滅。LED又稱發光二極管,當它被加上2V左右的正偏電壓時便發光,因此能被TTL電平所驅動。常用LED來指示計算機或儀器的某些狀態,例如PC機面板上指示硬盤正在工作的HDD指示燈就是一個最常見的LED應用的例子。
通常用一個由鎖存器構成的輸出端口把LED接到計算機的數據總線上,并串接一個限流電阻,如圖1-10所示。一個8位的輸出端口最多能驅動8個LED。圖1-10中,各LED的陰極接地,稱為共陰極連接。這樣,當需要點燃某個LED時,只要用輸出指令向此端口輸出一個字節,該字節中與點燃的LED相應的位是1,其余各位為0。輸出指令使M/ 、 和片選信號 同時變低,它們相與后的低電平信號經反相后觸發鎖存器,將輸出指令送到數據總線上的值鎖存在輸出端,使指定的LED發光。由于鎖存器的作用,此值能一直保存到下一條輸出指令到達為止,因此,在這段時間里,LED的狀態也將保持不變。顯然,在這個例子中,LED總是處于可用狀態,隨時都可以向這個端口輸出數據,控制各LED的點亮或熄滅。圖1-10簡單輸出端口此外,有些設備與CPU之間的信息交換可能不是很頻繁,從而能保證每次用輸出指令輸出數據時,I/O接口電路中的數據輸出緩沖器總是空的,或者外設總是處于空閑狀態,而當用輸入指令輸入數據時,接口電路中的輸入緩沖器內總是將數據準備就緒。遇到這類情況時也可采用無條件傳送方式。不過,這類情況比較少見,電路上也不容易實現。因此,除了上面討論的簡單輸入/輸出端口外,通常都采用下面幾種方式傳送數據。
2.條件傳送
條件傳送方式也稱為查詢式傳送方式。一般情況下,當CPU用輸入/輸出指令與外設交換數據時,很難保證輸入設備總是準備好了數據,或者輸出設備已經處在可以接收數據的狀態。為此,在開始傳送前,必須先確認外設已處于準備傳送數據的狀態,才能進行傳送,于是就提出了查詢式傳送方式。采用這種方式傳送數據前,CPU要先執行一條輸入指令,從外設的狀態端口讀取它的當前狀態。如果外設未準備好數據或處于忙碌狀態,則程序要轉回去反復執行讀狀態指令,不斷檢測外設狀態;如果該外設的輸入數據已準備好,CPU便可執行輸入指令,從外設讀入數據。
查詢式輸入方式的接口電路和工作流程分別如圖1-11和圖1-12所示。
圖1-11查詢式輸入方式的接口電路
圖1-12查詢式輸入方式的工作流程圖由圖1-11可見,接口電路包含狀態端口和輸入數據端口兩部分,分別由I/O端口譯碼器的兩個片選信號和 信號控制。狀態端口由一個D觸發器和一個三態門(通常是三態緩沖器中的一路)構成。輸入數據端口由一個8位鎖存器和一個8位緩沖器構成,它們可以被分別選通。當輸入設備準備好數據后,就向I/O接口電路發一個選通信號。此信號有兩個作用:一方面將外設的數據送入接口的數據鎖存器中,另一方面使接口中的D觸發器的Q端置1。CPU首先執行IN指令讀取狀態端口的信息,這時M/ 和
信號均變低。M/ 為低,使I/O譯碼器輸出低電平的狀態端口片選信號 。 和 經門1相與后輸出低電平,使三態緩沖器開啟,于是Q端的高電平經緩沖器(1位)傳送到數據線上的READY(D0)位,并被讀入累加器。程序檢測到READY位為1后,便執行IN指令讀數據端口。這時M/ 和 信號再次有效,先形成數據端口片選信號 , 和 經門2輸出低電平。它一方面開啟數據緩沖器,將外設送到鎖存器中的數據經8位數據緩沖器送到數據總線上后進入累加器,另一方面將D觸發器清0。一次數據傳送完畢,接著就可以開始下一個數據的傳送。當規定數目的數據傳送完畢后,傳送程序結束,程序將開始處理數據或進行別的操作。
設狀態端口的地址為PORTS,輸入數據端口的地址為PORTD,傳送數據的總字節數為COUNT,則查詢式輸入數據的程序段為
MOV BX,0 ;初始化地址指針 BX
MOV CX,COUNT ;字節數
READS:
IN AL,PORTS ;讀入狀態位
TEST AL,01H ;數據準備好否?
JZ READS ;否,循環檢測
IN AL,PORTD;已準備好,讀入 數據
MOV [BX],AL ;存到內存緩沖區 中
INC BX ;修改地址指針
LOOP READS ;未傳送完,繼續 傳送
… ;已傳送完
查詢式輸出方式的接口電路和工作流程分別如圖1-13和圖1-14所示。
與輸入接口類似,輸出接口電路也包含兩個端口:狀態端口和數據輸出端口。狀態端口也由一個D觸發器和一個三態門構成,而數據輸出端口只含一個8位數據鎖存器。
圖1-13查詢式輸出方式的接口電路
圖1-14查詢式輸出方式的流程圖當CPU準備向外設輸出數據時,它先執行IN指令讀取狀態端口的信息。這時,低電平的M/ 和有效的端口地址信號使I/O譯碼器的狀態端口片選信號 變低, 再和有效的
信號經門1相與后輸出低電平,該低電平使狀態端口的三態門開啟,從數據總線的D1位讀入BUSY狀態。若BUSY=1,表示外設處在接收上一個數據的忙碌狀態。只有當BUSY=0時,CPU才能向外設輸出新的數據。當CPU檢查到BUSY=0時,便執行OUT指令,將數據送向數據輸出端口。這時低電平的M/ 使I/O譯碼器的狀態端口片選信號 變低, 再和 信號經門2相與后輸出低電平的選通信號,該信號用來選通數據鎖存器,將數據送向外設。同時,選通信號的后沿還使D觸發器翻轉,置Q為高電平,即把狀態口的BUSY位置為1,表示忙碌。當輸出設備從接口中取走數據后,就送回一個應答信號 ,它將D觸發器清0,即置BUSY=0,允許CPU送出下一個數據。
設狀態口的地址為PORTS,輸出數據口的地址為PORTD,傳送數據的總個數為COUNT,則查詢式輸出數據的程序段為
MOVCX,COUNT ;傳送的字節數
READS:
INAL,PORTS ;讀入狀態位
TESTAL,02H ;忙否?
JNZREADS ;忙,循環檢測
MOVAL,輸出數據 ;不忙
OUTPORTD,AL ;輸出數據
LOOPREADS ;未傳送完,循環
… ;已送完1.3.2中斷方式
用查詢方式使CPU與外設交換數據時,CPU要不斷讀取狀態位,檢查輸入設備是否已準備好數據,輸出設備是否忙碌或輸出緩沖器是否已空。若外設沒有準備就緒,則CPU必須反復查詢,進入等待循環狀態。由于許多外設的速度很低,這種等待過程會占去CPU的絕大部分時間,因而真正用于傳輸數據的時間很少,CPU的利用率很低。例如,若一個操作員每秒鐘可從鍵盤輸入5個字符,平均每個字符占2×105μs的時間,實際上計算機只要用10μs就能從鍵盤讀入一個字符,這樣就有999950μs的時間花在檢測鍵盤狀態和等待上,也就是說,99.99%的時間因等待而白白浪費掉了。如果有多個設備工作,還要輪流查詢,而這些設備的工作速度又往往各不相同,這樣不僅極大地浪費了CPU的時間,還會因為程序進入等待某些慢速外設數據的循環而造成快速外設數據的大量流失,這在許多系統中是不允許的,尤其不能用于要求實時數據處理的場合。為了提高CPU的利用率和進行實時數據處理,CPU常采用中斷方式與外設交換數據。采用中斷方式后,CPU平時可以執行主程序,只有當輸入設備將數據準備好時,或者輸出端口的數據緩沖器已空時,才向CPU發中斷請求。CPU響應中斷后,暫停執行當前的程序,轉去執行管理外設的中斷服務程序。在中斷服務程序中,用輸入或輸出指令在CPU和外設之間進行一次數據交換。待輸入或輸出操作完成之后,CPU又回去執行原來的程序。
有關中斷的概念將在第4章中詳細介紹,這里不再贅述。1.3.3DMA方式
1.DMA方式的提出
利用中斷方式進行數據傳送可以大大提高CPU的利用率,但在中斷方式下,仍必須通過CPU執行程序來完成數據傳送。每進行一次數據傳送,CPU都要執行一次中斷服務程序。這時,CPU都要保護和恢復斷點,通常還要執行一系列保護和恢復寄存器的指令,即保護現場,以便完成中斷處理后能正確返回主程序。顯然,這些操作與數據傳送沒有直接關系,但會花費CPU的不少時間。再者,8086CPU一旦進入中斷,指令隊列就要清除,執行部件(EU)要等總線接口部件(BIU)將中斷處理子程序中的指令取到隊列后才執行;恢復斷點時,指令隊列也要被清除,執行部件也必須等總線接口部件把斷點處的指令裝入后才開始執行。所以,在這段時間內,執行部件和總線接口部件不能并行工作,這也會造成數據傳送效率的降低。當CPU與高速I/O設備交換數據,或與外設進行成組數據交換時,中斷方式仍顯得太慢。例如,當磁盤和內存成批交換信息時,磁頭的讀/寫速度可超過200000B/s,因此只有在5μs內完成一個字節的傳送,才能充分發揮磁盤大容量的性能優勢。如果采用中斷方式進行磁盤和內存間的成批數據傳送,則只能逐字節進行。例如讀盤時,要先把從磁盤讀出的數據送入CPU的寄存器,再從寄存器轉入內存,然后修改地址指針和字節計數器。這些操作均要用指令來實現,顯然不可能在5μs之內完成。為了解決這個問題,可采用一種稱為DMA(DirectMemoryAccess)的傳送方式,也就是直接存儲器存取方式。
DMA方式也要利用系統的數據總線、地址總線和控制總線來傳送數據。這些總線是由CPU管理的,但當外設需要利用DMA方式進行數據傳送時,接口電路可以向CPU提出請求,要求CPU讓出對總線的控制權,用一種稱為DMA控制器的專用硬件接口電路來取代CPU,臨時接管總線,以控制外設和存儲器直接進行高速的數據傳送,而不要CPU進行干預。這種控制器能給出訪問內存所需要的地址信息,并能自動修改地址指針,也能設定和修改傳送的字節數,還能向存儲器和外設發出相應的讀/寫控制信號。在DMA傳送結束后,它能釋放總線,把對總線的控制權交還給CPU。可見,用DMA方式傳輸數據時,不需要進行保護和恢復斷點及現場之類的額外操作,一旦進入DMA操作,就可直接在硬件的控制下快速完成一批數據的交換任務,因此數據傳送的速度基本上取決于外設和存儲器的存取速度。有些DMA控制器,除了可在外設和內存間直接交換數據外,還能控制內存與內存之間的直接數據交換,如Intel8237ADMA控制器就能完成這種功能。下面以磁盤和內存間數據的DMA傳送為例,簡單介紹一下利用Intel8237ADMA控制器傳送數據的大致過程,有關它的工作原理和使用方法等將在第8章作專門介紹。
2.DMA控制器的連線和操作
DMA控制器經常與磁盤驅動器、數據流記錄儀、磁帶機和數據采集卡等配合使用,以實現這些外設和內存間的高速數據交換。Intel8237A是一種較常用的DMA控制器,被用在PC/XT和PC/AT機中,以提高系統存取磁盤驅動器的速度。圖1-15所示是微機系統中DMA控制器操作框圖。在采用DMA控制器的系統中,CPU與DMA控制器分時使用地址總線、數據總線和控制總線。圖1-15中用3個開關來表示這種總線的切換。
圖1-15微機系統中DMA控制器操作框圖采用DMA方式讀磁盤的過程分為以下幾步:
(1)系統啟動時,3個開關撥向上端,總線與CPU、存儲器和外設相連,并由CPU來控制。進行一次DMA傳輸前,首先要對8237A進行初始化編程,包括設定要傳送數據的字節計數器初值、指定參與傳送的內存塊的起始地址,以及選定DMA通道(8237A內部有4個DMA通道)和所用的傳送方式等。
(2)
CPU向磁盤控制器發出讀盤命令,由磁盤控制器找到要讀取的數據位置,并開始讀出數據。
(3)當磁盤控制器準備好了第一個字節的數據后,就向DMA控制器發送一個DMA請求信號DREQ。如果DMA控制器的輸入通道沒有被屏蔽,DMA控制器就送一個保持請求信號HRQ到CPU的HOLD輸入端。CPU從HOLD端收到HRQ信號,完成當前的總線操作后,中止當前程序的運行,將它的總線浮空,并發回一個保持響應信號HLDA給DMA控制器,作為收到HRQ信號的應答。DMA控制器收到HLDA信號后,便發送一個控制信號,使3個總線開關撥向下方,讓總線和DMA控制器相連,而與CPU脫開。這樣,DMA控制器就接管了總線。
(4)
DMA控制器獲得總線控制權后,便通過地址總線向存儲器發送地址信號,指示要被寫入內存的第一個數據的地址。隨后,DMA控制器向磁盤控制器發出DMA確認信號DACK,通知磁盤控制器準備好要輸出的數據字節。
(5)
DMA控制器使控制總線上的I/O讀信號 和存儲器寫信號 有效。 有效使磁盤控制器能從磁盤向數據總線輸出數據字節; 有效使所尋址的存儲單元能夠接受從數據總線上寫入的數據。
(6)每完成一個字節數據的傳送,DMA控制器就自動修改內部地址寄存器的內容,使它指向下一個字節的地址,并將統計總字節數的字計數器減1,再重復上述傳送過程。當字計數器減為0,并由0減為FFFFH時,表示這批數據已傳送完畢,DMA過程結束。
(7)
DMA傳送結束后,DMA控制器便撤銷它對CPU發出的保持信號HRQ,并釋放總線。圖1-15中的3個開關又撥回到上方,使總線與CPU相連,CPU恢復對總線的控制權,并從中止處開始繼續執行后續程序。
CPU在每一個非鎖定時鐘周期(Lock為高)結束后,都要檢測一下HOLD引腳,看是否有DMA請求信號。若有DMA請求信號,便暫時中止正在執行的程序,進入上述的DMA周期。
1.1什么是接口?為什么要在CPU與外設之間設置接口?
1.2微型計算機的接口一般應具備哪些功能?
1.3計算機對I/O端口編址時采用哪兩種方法?在8086
/8088CPU中一般采用哪種編址方法?接口技術在微機應用中起什么作用?
1.4CPU與外設之間傳送數據主要有哪幾種方式?習題與思考題
1.5說明查詢式輸入和輸出接口電路的工作原理。
1.6簡述在微機系統中,DMA控制器從外設提出請求到外設直接將數據傳送到存儲器的工作過程。
1.7某一個微機系統中,有8塊I/O接口芯片,每個芯片占有8個端口地址,若起始地址為9000H,8塊芯片的地址連續分布,用74LS138作譯碼器,試畫出端口譯碼電路,并說明每塊芯片的端口地址范圍。
圖1-16題1.10圖
1.8你認為學習接口技術的難點在哪幾個方面?應如何對付?
1.9在微機系統中,緩沖器和鎖存器各起什么作用?
1.10在總線結構中,通常用三態門作為總線開關。74LS245與8086的連接如圖1-16所示。為了選通輸入方向,8086的各引腳應處于何種狀態?8086在什么時候能夠使其各引腳處于這樣的狀態?
1.11圖1-17所示為一個擴展I/O模塊的譯碼電路,其中AEN為系統總線信號,當其為高電平時禁止選通I/O模塊,為低電平時允許I/O尋址。
(1)已知A15~A10為全0,寫出本模塊的地址范圍。
(2)寫出74LS138的各個輸出引腳( ~ )所對應的地址范圍。
(3)
OE與START均為控制信號,討論它們在哪個總線周期中會成為高電平,畫出對應的周期時序圖中OE、START的波形以及與其有關的時序信號。分別寫出能產生OE、START正脈沖的指令。
圖1-17題1.11圖
1.12請用門電路設計并行端口控制卡的譯碼電路,并行端口1地址為370H~37FH,并行端口2地址為270H~27FH。
1.13試根據圖1-18所示的譯碼電路,列表寫出譯碼器的輸出~的地址范圍。
圖1-18題1.13圖第2章總線接口2.1總線的基本概念
2.2總線的通信協議
2.3常用系統總線標準
2.4通信總線標準習題與思考題
2.1.1總線的概念
一般先以各種大規模集成電路芯片為核心組成插件(如CPU插件、存儲器插件等),再由若干插件組成主機,最后加上所需的外圍設備就組成了整個計算機系統。而若干個微型計算機系統或微型計算機加上其他儀器、儀表或可控制系統等目標系統,又可組成專用系統。每一系統(或插件)必須能同另外的系統(或插件)進行通信,同一插件上的各種芯片也要能夠互相通信,因此,插件與插件之間、系統與系統之間的互連和通信問題就要通過總線來實現。2.1總線的基本概念總線是若干互連信號線的集合,是連接計算機各部件或計算機之間的一條公共信息通道。它是構成系統的插件間、插件的片間或系統間的標準信息通路。總線的性能好壞直接影響計算機系統的工作效率、可靠性、可擴展性以及可維護性等多項功能。因此,總線也是眾多計算機廠家競爭的對象。采用總線結構有如下優點:
(1)簡化軟/硬件的系統設計。系統采用總線結構,使硬件設計者只需按總線的規范來設計各種插件板,而不必考慮其他因素。這樣設計出的插件板具有互換性與通用性,便于大批量生產。各廠家可以生產出有自己特色的插件,使產品更有競爭力。
插件式的硬件結構帶來了軟件設計的模塊化,這有利于節省軟件調試所需的時間,模塊化程序可被多用戶重復使用。
(2)用總線連接的系統結構簡單,便于系統擴充與更新。系統使用總線結構在擴充規模時,只需往總線上再多插幾塊同類型的插件;在擴充功能時,只需插入所需的符合該總線標準的插件即可;在更新系統時,只需更換所要更新的插件即可。
在一個微機系統中,CPU雖然很重要,但由于所在的地址、數據和控制信號都要通過總線傳送,因此總線也是非常重要的,可將其視為整個微機系統的“中樞神經”。此外,總線對整個系統的組成和結構都會產生很大影響,對系統的可靠性、實時性和吞吐量都有決定性影響,因此可以把總線看成是微機系統的“規則”或“結構法規”。2.1.2總線的分類
總線可以從不同角度進行分類,按用途可分為數據總線、地址總線、控制總線、電源線和地線、備用線;按傳遞方式可分為并行總線與串行總線,并行總線一次能傳送8位、16位、32位和64位,多用于系統內部或與主機距離很近的外設,串行總線一次只能傳送一位信息,用于較遠距離的信息傳送;按總線連接的對象不同可以分為芯片總線、片間總線、內總線和外總線,如圖2-1所示。圖2-1總線分類圖
1.芯片總線
芯片總線又稱片內總線,它是用來連接CPU內部各個邏輯功能單元的公共總線,是芯片內各單元電路之間相互交換信息的公共通道。其結構與設計由芯片生產廠家來完成。
2.片間總線
片間總線又稱元件級總線,是指組成一臺微型計算機各芯片(如CPU芯片、存儲器芯片、I/O接口芯片等)間的連接總線。片間總線通常包括地址總線、數據總線和控制總線,即所謂的三總線結構。
3.內總線
內總線又稱系統總線,主要用于連接微型計算機系統內插件、CPU及其支持電路等。
4.外總線
外總線又稱通信總線,用于微型計算機系統之間、微型計算機系統與其他電子儀器或設備之間的通信。這種總線不是微型計算機特有的,一般是借用電子工業或其他領域的總線。
內總線和外總線除三總線外,還包括電源線、地線和備用線(為用戶擴展功能用)。片內總線和片間總線沒有規定標準。內總線和外總線根據生產和用戶的需要規定了總線標準。內總線的規格因所選用的微處理器品種而異,故內總線的標準較多,如S-100總線、Apple總線、STD總線、MULTIBUS總線等。通信總線是微型計算機接口與外設、微型計算機系統間或微型計算機系統與其他系統(如儀器測試系統、控制系統等)間的通信線。由于這種總線不是微型機系統所特有的,因此往往借助于電子工業上已有的總線標準,其標準較少,如IEEE-488、EIA-RS232C、CAMAC、CENTRONIC等。標準化的內總線和通信總線統稱為標準總線。按信息傳送的方法又分為并行標準總線和串行標準總線兩種。內總線都是并行總線,總線上信息傳輸率比較高。而通信總線則有并行總線(IEEE-488總線和CAMAC總線)和串行總線(RS-232C、RS-422、RS-423等)兩種。串行總線所需的傳輸線較少,所以計算機與通信終端的連接多用串行總線。采用標準總線可以簡化軟/硬件和系統結構,便于系統擴展、更新、調試及維修。本章重點討論后兩類總線。在使用這兩類總線時,用戶和制造廠商都希望總線具有通用性,也就是說,希望不同廠家生產的插件板可以互換,不同系統之間可以互連和通信。因此,只要按統一的總線標準進行設計或連接即可。這樣,對于生產廠家來說,只要按總線接口規范設計CPU主板、I/O接口板或存儲器插件板,然后將插件板插入主機的總線擴展槽中,就可構成系統,很適合于大批量生產、組裝和調試,也便于更新和擴充系統。對于用戶來說,可根據自身需要,靈活地選購接口板或存儲器插件,組裝成適合自己應用需要的系統或更新原有系統。例如,一般用戶選購計算機時都購置硬盤和軟盤驅動器接口板、打印機接口板、
VGA彩色顯示器適配卡等;有些需要處理模擬信號的用戶可再選購A/D、D/A接口板;需要通過電話網來傳送信息的可選購調制解調器(Modem)板;當需要構成一個多媒體系統時,用戶可選購聲卡、圖像解壓縮卡、CD-ROM驅動器等;必要時用戶還可根據總線標準的要求,自行設計接口電路板。目前,使用高檔機的用戶可直接購置一塊多功能卡,上面包含硬盤驅動器、軟盤驅動器、并行打印機和串行通信口等各種接口電路,這樣就不需要用多塊插件板了。2.1.3總線的主要參數
1.總線寬度
總線寬度又稱總線位寬,指的是總線能同時傳送數據的位數。例如16位總線、32位總線指的就是總線具有16位數據和32位數據傳輸能力。在工作頻率固定的條件下,總線帶寬與總線寬度成正比。
2.總線頻率
總線頻率是總線工作速度的一個重要參數,工作頻率越高,速度越快。例如總線頻率為33MHz、66MHz、100MHz、133MHz等。
3.總線帶寬
總線帶寬又稱總線的數據傳輸率,是指在單位時間內總線上可傳送的數據總量,用每秒鐘最大傳送數據量來衡量,單位是字節/秒(B/s)或兆字節/秒(MB/s)。與總線帶寬密切相關的兩個概念是總線寬度和總線的工作頻率。總線帶寬越寬,傳輸率越高。總線帶寬與總線寬度和總線頻率的關系為
上式中,總線帶寬的單位為MB/s(總線頻率以MHz為單位)。例如總線頻率為66MHz,32位總線,若每兩個時鐘周期完成一次總線存取操作,則總線帶寬(數據傳輸率)為
即每秒傳輸132MB。結論:工作頻率越高,總線工作速度越快,即總線帶寬越寬。總線帶寬、總線寬度、總線工作頻率三者之間的關系就像高速公路上的車流量、車道數和車速的關系。車流量取決于車道數和車速,車道數越多、車速越快,則車流量越大。同樣,總線帶寬取決于總線寬度和工作頻率,總線寬度越寬,工作頻率越高,則總線帶寬越大。當然,單方面提高總線寬度或工作頻率都只能部分提高總線的帶寬,并容易達到各自的極限。只有兩者配合才能使總線的帶寬得到更大的提升。
由于總線是在微機內和系統間傳送各種信息(包括數據、地址和控制信號)的通路,因此,為了準確地傳送這些信息,必須要有信息傳送的控制信號來控制信息的同步,包含一些控制信息傳送開始和結束的信號。這些信號稱為握手信號(又稱應答信號)。因此總線通信協議主要是解決信息傳輸的開始與結束的問題,它以一定方式用握手信號和電壓的變化來表明數據傳送的開始和結束。2.2總線的通信協議2.2.1總線的傳輸過程
系統總線最基本的任務就是傳送數據,這里的“數據”包括程序指令、運算處理的數據、設備的控制命令和狀態字、設備的輸入與輸出數據。系統總線上的數據是在主模塊的控制下進行的,主模塊有控制總線的能力,例如CPU及DMA模塊。而從模塊則沒有控制總線的能力,但它可對總線上傳來的地址信號進行地址譯碼,并且接受和執行總線主模塊的命令。總線完成一次數據傳輸周期一般分為四個階段。
(1)申請階段:當系統總線上有多個主模塊時,需要使用總線的主模塊提出申請,由總線仲裁機構確定把下一個傳輸周期的總線使用權授權給該模塊。
(2)尋址階段:取得總線使用權的主模塊通過總線發出本次打算訪問的從模塊的存儲器地址或I/O端口地址及有關命令,使參與本次傳輸的從模塊開始啟動。
(3)傳送數據階段:主模塊和從模塊之間進行數據傳輸,數據由源模塊發出,經數據總線流入目的模塊。
(4)結束階段:主從模塊的有關信息均從系統總線上撤除,讓出總線。2.2.2總線的通信協議
通常總線的通信協議與總線數據傳輸的握手方式、處理機的信號及工作特點有關。通信協議一般分為四類:同步方式、異步方式、半同步方式和分離方式。
1.同步方式
同步總線所用的控制信號僅僅是一個時鐘振蕩器,利用時鐘的上升沿和下降沿分別表示一個總線周期的開始和結束。該方式使用一個“系統時鐘”控制數據傳輸的時間標準。主設備與從設備進行一次傳輸所需的時間(稱為傳輸周期或總線周期)是固定的,并且總線上所有模塊都在同一時鐘的控制下步調一致地工作,從而實現整個系統工作的同步。早期的微機系統,如IBM-PC/XT采用的就是同步總線,現代的超級微機Pentiumn機的PCI局部總線也是同步總線。同步總線的主要優點是同步握手方式簡單,全部系統數據傳送由單一時鐘信號控制,便于電路設計。另外,由于主從之間不允許有等待,因此這種方式完成一次傳輸的時間較短,適合高速運行的需要。只要總線上的模塊都是高速的,總線頻帶便可以做得很寬。但是,同步總線的缺點也很明顯,主要是不能滿足高速和低速設備在同一系統中使用。因為總線上的各種模塊與設備都按同一時鐘工作,所以只能按最慢的設備來確定總線的頻帶或總線周期的長短,這就使得總線上的一些高速模塊和設備必須遷就最低速設備的速度來運行,使系統的整個性能降低。當然,也可以將時鐘頻率設計得很高,發揮高速設備的快速傳輸性能,但一旦按高速需要設計好后,總線上就不能再接低速模塊,適應性不好。解決這個矛盾的方法之一是采用異步總線握手方式。
2.異步方式
對于具有不同存取時間的各種設備,不宜采用同步總線協議,因為這時總線要以最低速設備的速度運行。因此,如果對高速設備能采用高速操作,而對低速設備則只能采用低速操作,這時就需要采用異步總線。異步方式采用“應答式”傳輸,用“請求(REQ,Request)”和“應答(ACK,Acknowledge)”
兩根信號線來協調傳輸過程而不依賴于系統時鐘信號。這種方式可以根據模塊的速度自動調整響應的時間,因此,高速模塊可以高速傳輸,低速模塊可以低速傳輸,連接任何類型的外圍設備都不需要考慮該設備的速度,從而避免了同步式傳輸的缺點。正是由于全互鎖異步傳輸具有良好的適應性和高可靠性,因此它得到了廣泛的應用,Motorola公司的MC68000/68010/68020微機系統采用的就是異步總線。由于異步傳輸方式利用REQ和ACK的呼應關系來控制傳輸的過程,因此異步方式具有以下特點:
(1)應答關系完全互鎖,即REQ和ACK之間有確定的制約關系。主設備的請求REQ有效,由從設備的ACK來響應;ACK有效,允許主設備撤銷REQ;只有REQ已撤銷,才能最后撤銷ACK;只有ACK已撤銷,才允許下一傳輸周期的開始。這就保證了數據傳輸的可靠進行。
(2)數據傳輸的速度不是固定不變的,它取決于從模塊的速度。因而同一個系統中可以容納不同速度的模塊,每個模塊都能以最佳的速度來配合數據的傳輸。
異步傳輸的缺點是不管從模塊的速度,每完成一次傳輸,主從模塊之間的互鎖控制信號都要經過四個步驟:請求、響應、撤銷請求、撤銷響應,其傳輸延遲是同步傳輸的兩倍。因此,異步方式比同步方式慢,總線的頻帶窄,總線的傳輸周期長。
3.半同步方式
由于異步總線的傳輸延遲嚴重地限制了最高的頻率寬度,因此,人們結合同步和異步總線的優點設計出了混合的總線,即半同步總線。從總體上看,它是一個同步系統,仍用系統時鐘來定時,利用某一脈沖的前沿或后沿判斷某一信號的狀態,控制某一信號的產生或消失,使傳輸操作與時鐘同步。但是,它又不像同步傳輸那樣傳輸周期固定,對于慢速的從模塊,其傳輸周期可延長時鐘脈沖周期的整數倍。半同步的方法是增加一條信號線(Wait或Ready)。當Wait信號線有效(或Ready無效)時,反映選中的從設備未準備好數據傳輸(寫時未做好接收數據的準備,讀時數據未放在數據線上)。系統用一個適當的狀態時鐘檢測Wait信號線,如果有效,系統自動將傳輸周期延長一個時鐘周期,強制主模塊等待。此狀態時鐘的下一個時鐘繼續進行檢測,直至檢測到Wait信號線無效,才不再延長傳輸周期。這和異步傳輸一樣,其傳輸周期視從設備的速度而異。允許不同速度的模塊彼此協調地一起工作,但Wait信號不是互鎖的,只是單方向的狀態傳遞,這是與異步傳輸的不同之處。半同步傳輸方式對能按規定時刻一步一步完成地址、命令和數據傳輸的從模塊,完全按同步方式傳輸,而對不能按規定時刻傳輸地址、命令、數據的慢速設備,則借助Wait信號線,強制主模塊延遲等待若干個時鐘周期。這種方式適用于系統工作速度不高,且包含了多種速度差異較大的設備的系統。
綜上所述,這種半同步方式的總線對快速設備就像同步方式一樣,只由時鐘信號單獨控制,實現主從之間的握手;對慢速設備,又像異步方式一樣,利用Wait控制信號來改變總線的傳輸周期。這種混合式總線兼有同步方式的速度和異步方式的可靠性及適應性。采用這種總線握手方式的微機系統有Z80。嚴格來講,IBM-PC/XT總線是半同步總線。
4.分離方式
前述三種方式中,從主模塊發出地址和讀/寫命令開始,直到數據傳輸結束的整個傳輸周期中,系統總線完全由主模塊和從模塊占用。實際上,在主模塊通過總線向從模塊發送了地址和命令之后,到從模塊通過數據總線向主模塊提供了數據之間的時間間隔,是從模塊執行讀/寫命令的時間。在這段時間內,系統總線上并沒有實質性的信息傳輸,是空閑的。為了充分利用這段總線空閑時間,可將一個讀周期分解成為兩個分離的子周期。在第一個子周期,主模塊發送地址和命令及有關信息,經總線傳輸,由有關從模塊接收下來后,立即和總線斷開,以供其他模塊使用。待選中的從模塊準備好數據后,啟動第二個子周期,由該模塊申請總線,獲準后,將數據發向原要求數據的設備,由該設備接
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三級街舞門徒班合同樣本
- 主題班會教案之“珍愛糧食、拒絕浪費”主題班會
- 中藥代收加工合同樣本
- 修車店加盟合同樣本
- 學校內控風險評估制度
- 英語課堂教學形式的多樣化
- 雜交育種與誘變育種-教學設計
- 海爾供應商基本供貨合同
- 個人粉刷合同樣本
- 人事錄用流程-招聘和錄用流程制度
- 《抗腫瘤藥物遴選和評估制度》(2021版)
- 關節活動度檢查(ROM-T)徒手肌力檢查(MMT)記錄表(2-1)
- 藥劑科妊娠患者處方點評統計表
- 濟南英語介紹
- XBD型消防穩壓泵性能參數表
- 《專四語法重點題》課件
- 11《軍神》第二課時 一等獎創新教學設計
- 新能源汽車驅動電機系統檢測與維修中職PPT完整全套教學課件
- 《家畜生態學》課程教學大綱
- 屋面及防水工程施工(第二版)PPT完整全套教學課件
- 潘謝礦區西淝河、泥河、濟河、港河水體下安全開采可行性論證報告
評論
0/150
提交評論