微型計算機原理與應(yīng)用 課課件 講義(下)_第1頁
微型計算機原理與應(yīng)用 課課件 講義(下)_第2頁
微型計算機原理與應(yīng)用 課課件 講義(下)_第3頁
微型計算機原理與應(yīng)用 課課件 講義(下)_第4頁
微型計算機原理與應(yīng)用 課課件 講義(下)_第5頁
已閱讀5頁,還剩148頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

微機原理與應(yīng)用(下)

莒5章匯編語言程序設(shè)計

匯編語言就是用與操作功能含義

相應(yīng)的縮寫英文字符組成的符號指令作

為編程用的語言。使用匯編語言編寫的

程序計算機是不能夠直接地識別和執(zhí)行

的,必須經(jīng)過執(zhí)行匯編程序,匯編程序

將源文件轉(zhuǎn)換成二進制編碼表示的目的

文件(OBJ)的過程(將這個過程稱匯

編)。之后經(jīng)過連接程序,使目標程序

成為計算機可執(zhí)行的文件(EXE)。

退出

5.1

5.2

5.3:言與C語言連接

5.1匯編語言語法

?5.L1匯編語言的程序格式

?匯編語言程序是由指令、偽指令及宏指令組

成的。一條完整的指令語句格式由以下四項內(nèi)容

組成。

?[標號]〈指令助記符>[目的操作數(shù)],[源操作數(shù)]

[;注釋]

?1.標號

-標號是一個用冒號結(jié)尾的名字,是可選項,用

于標識程序中控制轉(zhuǎn)移的目標單元。

?2.指令助記符

?操作項可以是指令、偽指令或宏指令的助記符,規(guī)定了

CPU所要執(zhí)行的操作。如:MOV完成數(shù)據(jù)傳送操作,ADD

完成加法操作。

?3.操作數(shù)

?操作數(shù)為1個或多個項組成,因指令而不同,目的操作

數(shù)不僅參與指令操作,還暫存操作結(jié)果。指令中通常給出

操作數(shù)地址,如寄存器、存儲器單元地址、變量名等。

?源操作數(shù)提供另一個操作對象,面向所有尋址方式,

可以是常數(shù)、寄存器、標號、變量或表達式等。

?4.注釋

?注釋是可選項,以分號開始僅起到對源程序的解釋和說

明的作用,以提高程序的可讀性。

?5.1.2匯編語言中的操作數(shù)和表達式

?指令語句執(zhí)行操作的對象是操作數(shù),偽指令語句在匯編時服

務(wù)的對象也是操作數(shù),操作數(shù)可以是常數(shù)、變量、表達式等。

?1.操作數(shù)

?常量在匯編時已有確定的值,在程序運行中,它不會發(fā)生變

化。

?2.表達式

?表達式常以多種運算符來連接操作數(shù),其值是在程序匯編過

,程中進行計算的,在匯編語言中操作數(shù)運算符可分為:算術(shù)運算

,符、邏輯運算符、關(guān)系運算符、數(shù)值返回運算符、屬性修改運算

符。

5.1.3偽指令

在8086匯編語言中,提供了約20多條偽指令,這里介紹主要的

幾條。

1.數(shù)據(jù)定義偽指令

?數(shù)據(jù)定義偽指令主要是完成存儲單元分配、數(shù)值變量賦值及預置

存儲空間等工作。

?格式:[變量名]〈定義符〉〈操作數(shù)項表>[;注解]

?功能:定義變量名并為變量分配存儲單元,同時將初值賦給相應(yīng)存

儲單元。

?①變量名字段可有可無的,它用符號地址表示,它的后面不跟

冒號.

?②定義符字段用來說明偽指令的助記符,

?定義符有:

?DB——定義為字節(jié),類型為1;

?DW——定義字,類型為2;

?DD——定義雙字,類型為4;

?DQ——定義四字,類型為8;

?DT一一定義十字節(jié),類型為10;

?③操作數(shù)項可以是常數(shù)、表達式、字符串、變量和?,?用于預

留存儲空間?(不存入數(shù)據(jù))。操作數(shù)項為字符串時,必須用單

引號括起,且字符以ASCII碼形式存放在存儲單元中。操作數(shù)字段

用重復定義偽指令DUP,如ARRAY1DB100DUP(?)。

?④注解字段用來說明該偽指令的功能。

2.符號定義偽指令

使用符號定義偽指令是將某些常數(shù)、表達式等用一特定符號

來表示,從而大大簡化程序,這類偽指令特點不占用內(nèi)存單元。

(1)等值語句

格式:〈名字〉EQU〈表達式〉

功能:為表達式取一個名字,即把表達式的值或符號賦給EQU

左邊的名字,供以后引用。

說明:EQU語句的名字不能重復定義。表達式可以是常數(shù)、變

量、標號、指令助記符、字符串等。

(2)等號語句

格式:(名字>=<表達式>

功能:與EQU相同。

說明:等號語句可以重復定義,表達式只能是數(shù)值表達式。

3.段定義偽指令

⑴格式:〈段名>SEGMENT

{語句體}

〈段名〉ENDS

SEGMENT表示定義段的開始,ENDS表示定義段的結(jié)束。

功能:定義段名,規(guī)定邏輯段的定位要求及有關(guān)各段之間的連接

關(guān)系。

說明:段名是一個段的標識,又表示該段的段基址,由用戶

自已給定。語句體,不同的段其內(nèi)容不一樣。若為代碼段,則語

句體為指令語句序列;若為數(shù)據(jù)段、堆棧段等則多為偽指令語句

序列。

?(2)指定段寄存器偽指令

?格式:ASSUME〈段寄存器〉:〈段名>[,〈段寄存器〉:〈段名

>……]

?功能:建立段與段寄存器之間的關(guān)系。

?說明:ASSUME一般放在代碼段首部,系統(tǒng)自動將代碼段的段

基地址裝入CS段寄存器中;其它段則無此功能,需接著用MOV指

令將段基址裝入相應(yīng)段寄存器中。

?幾個當前邏輯段需合用同一個物理存儲器段,可用如下格式

說明:

?ASSUMECS:NAME,SEG:NAME[,SEG:NAME……]

?SEG為段寄存器名,NAME為段名,不同的段寄存器名表示不

同的邏輯段,相同的段名表示同一個物理存儲器段。

?4.過程定義偽指令

?格式:〈過程名〉PROC[NEAR/FAR]

?{過程體}

?〈過程名〉ENDP

?功能:用來定義一個子程序。過程以PROC語句開始,以ENDP語句結(jié)

束。

?說明:過程屬性項省略,系統(tǒng)默認為NEAR,表示段內(nèi)調(diào)用。FAR表示

段間調(diào)用。

,5.定位偽指令

?格式1:ORG〈表達式〉

?格式2:ORG$+<表達式〉

?功能:格式1把表達式的值送入IP中。格式2將IP的當前值加上表達式

的值再送入IP。$表示IP中的當前值。

6.模塊命名偽指令

格式1:NAME〈模塊名〉

格式2:TITLE<標題〉

功能:給程序模塊取名。

7.程序結(jié)束偽指令

格式1:END

格式2:END〈起始地址〉

功能:表示源程序到此結(jié)束,如果有起始地址,

系統(tǒng)給CS、IP賦初值。格式I用于輔

助模塊結(jié)束標志。格式n用于主程序或主模

塊結(jié)束標志,整個程序只能有一個主模塊。

5.2匯編語言程序設(shè)計

匯編語言程序設(shè)計是用匯編語言來編制程序,也就是用匯編語

言去表現(xiàn)和實現(xiàn)計算機完成的工作。

5.2.1匯編語言程序設(shè)計的基本步驟

1.程序設(shè)計目的

2.程序設(shè)計步驟

(1)分析問題,建立數(shù)學模型。

(2)根據(jù)數(shù)學模型找出算法。

⑶根據(jù)算法,畫出程序流程框圖。

(4)根據(jù)程序流程框圖編制程序。

⑸上機調(diào)試、運行程序,優(yōu)化程序。

?3.結(jié)構(gòu)化程序設(shè)計

?結(jié)構(gòu)化程序設(shè)計方法的基本思想是自頂向下、逐步求精。任

何程序都是由順序結(jié)構(gòu)、分支結(jié)構(gòu)(選擇)、循環(huán)結(jié)構(gòu)三種基本

結(jié)構(gòu)組成,采用結(jié)構(gòu)化程序設(shè)計方法可保證程序設(shè)計目標的實現(xiàn)。

?4.流程圖的畫法

?利用流程圖進行程序設(shè)計是一種最基本的方法。對于復雜程

序可以先將其分成一個個模塊,即把大事化小,然后再對每個模

塊進行設(shè)計,逐步求精分細,對一個個具體的模塊,仍可使用流

程圖設(shè)計。

流程圖一般由四部分組成:

?(1)執(zhí)行框(矩形框)

?執(zhí)行框中寫明某一段程序或某一個模塊的功能,其特點是有一個

入口一個出口,

?(2)判別框(菱形框)

?可用菱形或尖角形框表示??騼?nèi)寫明比較、判斷的條件。條件較

長時,用尖角框表示較合適。它有一個入口和兩個出口,在每個

出口處都要寫明條件判斷的結(jié)果。

?(3)起始框和終止框

?表示程序段的起始和終止。起始框有個出口,終止框有一個入口.

?(4)指向線

?指向線由帶箭頭的線段表示,它表示程序執(zhí)行的順序和去向。

5.2.2順序程序

語句N

?5.23分支程序

?分支程序設(shè)計有兩種基本結(jié)構(gòu),簡單分支結(jié)構(gòu)和多分支結(jié)

構(gòu)。

L簡單分支結(jié)構(gòu)

2.多分支結(jié)構(gòu)

在高級語言中,利用CASE語句實現(xiàn)多分支程序結(jié)構(gòu),匯編語

言中可利用跳轉(zhuǎn)表實現(xiàn)多分支結(jié)構(gòu)。所謂跳轉(zhuǎn)表,就是在某一內(nèi)

存區(qū)域順序排列的一組有規(guī)律的轉(zhuǎn)移目標的入口地址。

[例5-8]設(shè)計一個256分支的段內(nèi)程序轉(zhuǎn)移程序。

設(shè)JUMP單元有一個數(shù)X,若X=0,則轉(zhuǎn)移到標號為N000的程

序段;若X=l,則轉(zhuǎn)移到標號為N001的程序段,……;若X=255,

則轉(zhuǎn)移到標號為N255的程序段。

5.2.4循環(huán)程序

在程序設(shè)計中把某程序段或連續(xù)的語句組多次重復執(zhí)行稱為

循環(huán)。在匯編語言中利用循環(huán)指令或者與分支指令相結(jié)合的方法

編制程序來實現(xiàn)循環(huán)稱為循環(huán)程序設(shè)計。循環(huán)程序可分為單重循

?2.多重循環(huán)

?多重循環(huán)中最簡單、最常用的是二

?重循環(huán)程序(如圖6-8所示)。所謂多重

?循環(huán)是指一個循環(huán)的循環(huán)體中嵌套另一

?個或多個相互獨立的單重循環(huán),外層循

?環(huán)稱為外循環(huán),里層循環(huán)稱為內(nèi)循環(huán),

?兩者不允許交叉引用。

由于匯編語言所操作處理的對象主要是CPU寄存器,而主

程序在調(diào)用子程序時,已經(jīng)占用了一定的寄存器,子程序執(zhí)行時

又要使用寄存器,子程序執(zhí)行完畢返回主程序后,又要保證主程

序按原有狀態(tài)繼續(xù)正常執(zhí)行,這就需要對這些寄存器的內(nèi)容加以

保護,這就稱為現(xiàn)場保護。子程序執(zhí)行完畢后再恢復這些被保護的

寄存器的內(nèi)容,稱為現(xiàn)場恢復。

?1.子程序結(jié)構(gòu)形式

?一般子程序以子程序文件形式存在,子程序文件由說明文

件和子程序本身構(gòu)成。

?⑴子程序說明文件

?功能描述:程序的名稱、功能、性能指標;

?所用的寄存器、存儲單元及其說明;

?子程序的入口、出口參數(shù)說明;

?子程序中又調(diào)用的其它子程序的說明。

?(2)子程序結(jié)構(gòu)

?子程序一般包含以下幾部分內(nèi)容:

?①保護現(xiàn)場.②從入口參數(shù)中取得所需的數(shù)據(jù)。③執(zhí)行子程

序,這里還可再調(diào)用其他子程序或本身,稱為子程序嵌套

或遞歸。④將處理后的數(shù)據(jù)傳送到出口參數(shù)中。⑤恢復現(xiàn)

場用POP指令。⑥返回調(diào)用程序用RET指令來完成。

(3)子程序調(diào)用和返回

子程序調(diào)用和返回實質(zhì)上是程序控制的轉(zhuǎn)移。子程序的調(diào)用

和返回是由主程序中的CALL指令和子程序中的RET指令來完成的,

其結(jié)構(gòu)格式如下:

CODESEGMENT

(程序段1)

MAINPROCFAR

(程序段)

CALLSUB1

(程序段1)

RET

MAINENDP

SUB1PROCNEAR

(程序段1)

RET

SUB1ENDP

CODEENDS

5.2.6DOS系統(tǒng)功能調(diào)用

DOS除了為用戶提供許多可以直接使用的命令外,又為匯

編語言用戶提供了八十多個功能子程序,供匯編語言程序設(shè)計直

接使用。用戶就不必編寫繁雜的程序,也不必去了解I/O接口的特

性,不必掌握硬件設(shè)備工作原理與工作方式,而只需遵循DOS規(guī)

定的調(diào)用方法就可直接調(diào)用這些功能子程序,完成I/O及其它有關(guān)

操作。DOS功能調(diào)用使用方法如下:

AH寄存器中放入調(diào)用功能子程序號;

根據(jù)功能號調(diào)用要求設(shè)置相應(yīng)入口參數(shù);

用INT21H指令轉(zhuǎn)入子程序入口地址,執(zhí)行相應(yīng)功能操作。

527B/0S功能調(diào)用

1.BIOS簡述

MS-DOS系統(tǒng)中有兩層內(nèi)部功能模塊可供

匯編語言用戶使用:BIOS基本輸入/輸出設(shè)備處

理層功能模塊和DOS磁盤文件管理層功能模塊。

前者是DOS與外部設(shè)備之間傳送信息的“低級軟

接口”,處于系統(tǒng)軟件的最底層,駐留在ROM的

OFEOOOH~OFFFFFH的8KB地址中,完全依賴于硬件

設(shè)備;后者是DOS與外部設(shè)備之間傳送信息的

“高級軟接口”,對硬件的依賴性小。DOS功能

調(diào)用在前一節(jié)已介紹,這一節(jié)主要討論BIOS的調(diào)

用。

?(1)BIOS的特點

?BIOS除了提供系統(tǒng)加電自檢、引導裝入等功能之外,最主要的是提供了

I/O設(shè)備的處理程序以及接口控制等功能模塊,用來處理所有的系統(tǒng)中斷,是

計算機硬件與軟件的“最低級的接口”,最核心功能的模塊。它是實現(xiàn)DOS

功能調(diào)用的必要條件。

?每一個功能模塊的入口地址被安排在中斷向量表中。

?(2)BIOS調(diào)用與DOS調(diào)用的比較

?BIOS中斷調(diào)用是DOS功能調(diào)用的基礎(chǔ),DOS功能是BIOS的高層擴展,

它概括了BIOS中的某些功能,擺脫輸入/輸出的具體細節(jié),使用起來更方便,

但它并沒有完全展示BIOS的功能。

5.3匯編語言與C語言連接

由于編寫及調(diào)試匯編語言程序比高級語言復雜,所以在

實際的軟件開發(fā)工作中,高級語言比匯編語言的使用更為廣泛。

但是,匯編語言又有它自己的特點:占有的存儲空間小,執(zhí)行速

度快,并且具有直接訪問計算機所有硬件的能力。因而在有些場

合匯編語言是不可缺少的。經(jīng)常會有這種情況,程序的大部分用

高級語言編寫,而對要求快速執(zhí)行的部分,或是運行次數(shù)很多的

部分,或是直接訪問各種I/O設(shè)備的部分,或是高級語言不支持的

部分等,則需要用匯編語言編寫。兩者結(jié)合起來可充分發(fā)揮它們

各自的優(yōu)點。

?高級語言與匯編程序連接過程示意圖。

編譯程序匯編程序

目標程序(.OBJ)目標程序(.OBJ)

連接程序

|可執(zhí)行程序(上回

?5.3.1C語言與匯編語言程序連接規(guī)則

?把匯編語言程序作為C語言的一個外部子過程來調(diào)用是兩種

?語言連接中的最常用的方法。此時,C語言程序經(jīng)編譯后產(chǎn)

生.OBJ文件,匯編語言程序經(jīng)匯編后也產(chǎn)生.OBJ文件,然后由

連接程序把它們連接起來而形成.EXE執(zhí)行文件,并把它裝入

內(nèi)存等待執(zhí)行。

?1.控制傳送問題

?2.C語言向匯編語言傳遞參數(shù)規(guī)則

?3.匯編語言向C語言返回參數(shù)規(guī)則

?4.C語言寄存器保護規(guī)則

5.3.2C語言與匯編語言程序的連接方

?1.直接插入法

?這是把匯編語言程序直接插入c語言程序中以實現(xiàn)兩種語言連

接的方法。這種方法比較簡單,但一般只用于需插入的匯編語句

比較簡短的情況。

?2.模塊連接法

?所謂模塊連接法是指分別編制匯編語言和C語言程序,并生成

各自的目標程序,再將目標程序進行連接,形成可執(zhí)行文件的混

合編程法。

?3.編譯、連接、運行接口程序

?編寫了匯編語言程序和調(diào)用它的TurboC主程序,接下來就是

怎樣將它們進行編譯、連接并生成可執(zhí)行文件。

4.調(diào)用BIOS功能

?在大多數(shù)C語言編譯系統(tǒng)中都提供了調(diào)用系統(tǒng)功能的函數(shù)。在TurboC編

譯系統(tǒng)中提供的系統(tǒng)標準函數(shù)int86()和intdos()就是分別用來調(diào)用ROM-BIOS

和DOS功能的函數(shù)。

?(1)調(diào)用BIOS功能

?在TurboC中提供int86()函數(shù)來調(diào)用BIOS系統(tǒng)函數(shù)。

?5.調(diào)用DOS功能

DOS系統(tǒng)程序在更高的層次上提供了與BIOS同樣的功能。大部分

BIOS功能都可以通過調(diào)用DOS功能來完成,并且使用DOS提供的功能

比使用BIOS提供的功能更加容易。因為使用DOS提供的功能時,編程

人員不必對硬件有更多的了解。DOS功能是通過系統(tǒng)中斷調(diào)用21H來

完成的。在TurboC系統(tǒng)中提供了intdos()函數(shù)來完成DOS功能調(diào)用。

第6章輸入輸出接口技術(shù)

?將外部設(shè)備同微型計算機連接起來的

電路稱為外設(shè)接口電路,簡稱外設(shè)接口。微機系

統(tǒng)中,各種輸入/輸出設(shè)備通過接口與系統(tǒng)相連,

并在接口的支持下實現(xiàn)各種方式的數(shù)據(jù)傳送。

退出

6.1輸入輸出接口基石

?6.1.1輸入輸出接口的基本功能

?輸入輸出接口電路位于系統(tǒng)總線與外設(shè)之間,用它來完成系統(tǒng)總

線與外設(shè)之間的數(shù)據(jù)傳輸,完成系統(tǒng)對外設(shè)的控制與響應(yīng)。準確地說,

接口是總線與I/O設(shè)備之間所設(shè)置的邏輯控制部件,通過它實現(xiàn)主機與

I/O設(shè)備之間的信息交換。

?LI/O接口電路的基本功能

?(1)尋址功能。(2)數(shù)據(jù)鎖存與緩沖。(3)對外設(shè)的監(jiān)測與控制。

(4)信息變換。(5)可編程芯片。

?2.主機與外設(shè)的主要傳送的信息

?主機與外設(shè)通過接口傳送信息,按所傳送信息的內(nèi)容

和功能可分為數(shù)據(jù)、狀態(tài)和控制三類,它們各自通過接口

內(nèi)不同的端口寄存器傳送而相互區(qū)分開來。

?(1)數(shù)據(jù)信息。數(shù)據(jù)信息主要有數(shù)字量、模擬量和開關(guān)

量。數(shù)字量是以二進制形式表示的數(shù)或以ASCII碼表示的

數(shù)或字符。

?(2)狀態(tài)信息。狀態(tài)信息表示接口與外設(shè)在I/O操作過程

中的狀態(tài),是主機與外設(shè)之間交換數(shù)據(jù)時的聯(lián)絡(luò)信息。如

外部設(shè)備是否忙。輸入的數(shù)據(jù)是否準備好。輸出緩沖寄存

器內(nèi)有無數(shù)據(jù)等等。

?(3)控制信息??刂菩畔⑹侵鳈C向接口和外設(shè)發(fā)出的控

制命令,控制信息向外設(shè)傳送外設(shè)的工作方式、運行參數(shù)

和控制命令(如開、停)等;一般也用一個二進位來表示

一種控制,控制位的多少也因外設(shè)而異。

6.1.2輸入輸出接口的基本結(jié)構(gòu)

接口電路可以很簡單,簡單得可以由幾個甚至一個三態(tài)

門構(gòu)成;也有很復雜的如以超大規(guī)模集成電路芯片(VLSI)為主

構(gòu)成的接口電路,有的其復雜程度不亞于CPU。

&線他據(jù)總最:數(shù)據(jù)控制

總線高存盟

7緩沖器

內(nèi)順出緩抑外

內(nèi)

部寄存器

系統(tǒng)---?

段利一?邏

總線V—線狀態(tài)

寄存器設(shè)

系統(tǒng)地址總里地址總輸入緩沖

線綴沖寄存器

與譯碼

準備好

聯(lián)絡(luò)

二上聯(lián)絡(luò)線

中斷請求.控制邏相

選通

<]合

?6.13I/0接口編址

?為了區(qū)分每一個I/O端口,必須對每個I/O端口進行統(tǒng)一編址。對

I/O端口編址通常有兩種方式:存儲器映像編址方式和I/O獨立編址方

式。

?1.存儲器映像I/O編址

?這種編址方式,把I/O端口和存儲器的存儲單元一樣看待,統(tǒng)一

編址。在可尋址的存儲空間中,劃出一部分作為I/O端口地址,其余

作為內(nèi)存單元,I/O端口和內(nèi)存單元有不同的地址編號。

?2.I/O端口獨立編址方式

?I/O端口和內(nèi)存單元各自獨立編址,CPU訪問I/O端口須用專門的

輸入/輸出指令。PC系列機的輸入和輸出指令中,直接尋址I/O端口

時用一個字節(jié)的地址碼,故可尋址28=256個端口;寄存器間接尋址

I/O端口用DX,有16位,可尋址216=65536個端口。但微機一般用低10

位地址來表示I/O端口,因此系統(tǒng)中可安排的I/O端口最多為1024個

Do

6.1.4I/0數(shù)據(jù)傳輸方式

主機與外設(shè)之間的數(shù)據(jù)傳輸方式不僅取決于接口的硬件結(jié)構(gòu),

還受軟件控制。軟硬結(jié)合控制I/O數(shù)據(jù)傳輸,其方式大致有五種。

1.無條件傳輸

無條件傳輸方式又稱同步傳送方式。使用這種方式時外設(shè)總

是處于準備好狀態(tài),CPU無需查詢其狀態(tài)而只根據(jù)需要在程序中

安排輸入/輸出指令執(zhí)行相應(yīng)操作。

?2.程序查詢傳輸

?CPU與接口之間有一個應(yīng)答過程,所以又稱異步

傳送。大多數(shù)外設(shè)數(shù)據(jù)傳送、處理的速度較慢,

跟不上CPU的高速運行,為了使傳送可靠,程序首

先要測試外設(shè)的狀態(tài),當狀態(tài)符合規(guī)定的

?條件(比如輸入設(shè)備的下一個輸入數(shù)據(jù)準備好了),

就進行輸入操作,否則就踏步等待或轉(zhuǎn)入其它程

序段。

?3.中斷傳輸

?在中斷傳送方式中各個外設(shè)和主機可以并行工

作,進行各自的輸入或輸出操作。當某臺外設(shè)完

成了自身的輸入或輸出操作(即完成了下一個數(shù)

據(jù)傳送的準備)時,便向CPU申請中斷,CPU收到

中斷請求信號后,可暫停正在運行的程序,轉(zhuǎn)去

執(zhí)行為該外設(shè)服務(wù)的中斷服務(wù)子程序,完成主機

與外設(shè)間的數(shù)據(jù)交換,數(shù)據(jù)傳送完畢仍返回原來

被中斷的主程序繼續(xù)執(zhí)行。

?4.DMA(直接存儲器存取)方式

?(1)基本概念

,直接存儲器存取(DirectMemoryAccess,DMA)方式是一種

完全領(lǐng)先硬件在內(nèi)存與I/O設(shè)備之間進行直接的數(shù)據(jù)傳送,在傳送

期間不需CPU的程序干預。

?(2)DMA傳送方式

?為了避免DMA傳送與CPU訪問內(nèi)存的沖突,一般采用3種傳送

方法:停止CPU訪問內(nèi)存;周期挪用和DMA與CPU交替訪問內(nèi)存。

?⑶DMA控制器的組成

?DMA控制器基本上是在中斷接口的基礎(chǔ)上加上用于實現(xiàn)

DMA傳送的邏輯部件組成的。

?(4)DMA控制器與外設(shè)的連接方式

?①單通道DMA控制器

?②選擇型DMA控制器

?③多路型DMA控制器

?(5)DMA數(shù)據(jù)傳送過程

?DMA數(shù)據(jù)傳送過程分為3個階段:傳送前預

處理、數(shù)據(jù)傳送和傳送后處理。在傳送前預處理

和傳送后處理階段,CPU完成了初始化、校驗和

判斷等工作,而在真正數(shù)據(jù)傳送時,CPU不干預。

?5.I/O處理機方式

?I/O處理機方式把所有輸入輸出操作以及與之

有關(guān)的信息傳送、控制等功能全都從CPU那里獨

立出來、接管過來。I/O處理機有自己的指令系

統(tǒng),能獨立地執(zhí)行程序,對輸入輸出過程進行管

理;能完成代碼轉(zhuǎn)換、格式變換、數(shù)據(jù)塊的檢錯

糾錯、字或字節(jié)的裝配和拆卸等各種運算和操作;

能對外部設(shè)備進行控制,檢測并分

-析外設(shè)及其控制器的狀態(tài),作出相應(yīng)處理;能對

輸入輸出系統(tǒng)出現(xiàn)的各種情況做出反應(yīng)和處理;

等等。

6.2中斷和中斷系統(tǒng)

?621中斷概述

所謂中斷,就是在程序運行過程中,由于某種緊急事件的出

現(xiàn)而中止當前程序的運行,從而將程序的執(zhí)行流程轉(zhuǎn)向緊急事件的處

理程序,待處理結(jié)束后再繼續(xù)原程序運行。

1.中斷源

中斷是一個過程,一般是由微處理器外部硬件或內(nèi)部軟件引起

的。引起中斷的事件或發(fā)出中斷請求的來源稱為中斷源。

中斷源常有以下幾種:

(1)外部設(shè)備請求中斷。(2)故障強迫中斷。(3)實時時鐘請求

中斷。(4)數(shù)據(jù)通道中斷。(5)程序自愿中斷。

?2.中斷系統(tǒng)功能

?中斷系統(tǒng)是計算機不可缺少的組成部分,能實現(xiàn)如下的功能:

?①并行操作。②實時處理。③故障處理。④基本功能調(diào)用。

?6.2.2中斷處理過程

?整個中斷處理過程由中斷源提出中斷請求,然后CPU響應(yīng)中

斷(首先關(guān)中斷而暫不響應(yīng)新的中斷請求、保存斷點、查找中斷源

等),再轉(zhuǎn)去執(zhí)行相應(yīng)的中斷服務(wù)子程序(先保護主程序的現(xiàn)場信

息,再執(zhí)行中斷服務(wù)),中斷服務(wù)子程序執(zhí)行完畢恢復主程序的現(xiàn)

場、開中斷(即允許響應(yīng)新的中斷請求)、返回原來主程序的斷點

處繼續(xù)運行主程序。當然,在中斷服務(wù)過程中也可以開中斷(可以

再響應(yīng)新的中斷請求),以實現(xiàn)中斷的嵌套。

6.2.3中斷管理

8086系統(tǒng)的中斷源可多達256個。如何對這些中斷源

實施有效的管理?這集中體現(xiàn)在中斷優(yōu)先級、中斷屏蔽和中斷矢

量等諸方面。

1.中斷優(yōu)先權(quán)排隊

當多個中斷源同時請求中斷時,CPU必須確定先為哪個中斷

源服務(wù),以及對所有中斷請求對象的服務(wù)的次序。

2.中斷屏蔽

對外部中斷的屏蔽,CPU設(shè)置了INTR引腳,該引腳稱可屏蔽

中斷請求信號輸入引腳。

3.中斷矢量表

中斷矢量表是尋找中斷服務(wù)子程序入口地址的有效方法。中

斷矢量表就是中斷服務(wù)子程序入口地址表。不同的微處理器的具

體處理方法稍有不同。

?8086系統(tǒng)每個中斷矢量包含段內(nèi)偏移量和段基址,共32位

(四個字節(jié)),所有中斷矢量安排在內(nèi)存儲器的前1024個單元(即。?

3FFH)區(qū)域中,共可按排256個。

,4.中斷嵌套

?所謂嵌套,是指在本次中斷服務(wù)過程中,允許響應(yīng)新的中斷

請求。因此可以由現(xiàn)行中斷服務(wù)程序轉(zhuǎn)入新的中斷服務(wù)程序,新

的服務(wù)程序執(zhí)行完后再返回原來的中斷服務(wù)程序。

?624微型機的基本中斷系統(tǒng)

?1.中斷源類型

?基本的PC機有一個簡單靈活而強有力的中斷系統(tǒng),可以處理

256種不同的中斷。每一個中斷對應(yīng)一個類型碼(即中斷識別碼),

256種中斷對應(yīng)的中斷類型碼為0-255。

?256種中斷可分為兩大類:外部中斷和內(nèi)部中斷。外部中斷

由外部硬件產(chǎn)生,因此外部中斷又稱硬件中斷。硬件中斷通過

NMI弓I腳向CPU申請的中斷稱為非屏蔽中斷,通過INTR引腳向CPU

申請的中斷是可屏蔽中斷。

?內(nèi)部中斷是由程序中特定的指令操作碼根據(jù)標志寄存器中的

標志狀態(tài)而在CPU執(zhí)行指令過程中產(chǎn)生的非屏蔽中斷。內(nèi)部中斷

又泛稱軟件中斷,它的產(chǎn)生與外部硬件電路無關(guān)。內(nèi)部中斷包括

除法出錯中斷、溢出中斷、指令中斷和單步中斷。

(1)內(nèi)部微處理器中斷

內(nèi)部微處理器中斷一般是指CPU執(zhí)行某些指令時出現(xiàn)錯誤而

引發(fā)的中斷。

(2)軟中斷

軟中斷主要用來實現(xiàn)ROMBIOS中斷,DOS中斷和其他由用

戶定義的中斷。

(3)非屏蔽中斷NMI

非屏蔽中斷常常用來處理機器內(nèi)部硬件出錯,如掉電、存儲

器錯誤或總線極性錯誤等緊急事態(tài)。

(4)可屏蔽中斷INTR

可屏蔽中斷源主要指外圍設(shè)備。當外圍設(shè)備要求和CPU交換

信息時,通過接口向CPU提出中斷請求IRQi。這些請求信號實

際上先送至接口中的中斷控制器,經(jīng)中斷控制器判優(yōu)后,將

當前優(yōu)先級最高的請求加在CPU的INTR端上。

2.中斷矢量與中斷矢量表

每個中斷源在內(nèi)存中都對應(yīng)有一個中斷服務(wù)子程序,供CPU響應(yīng)

中斷后執(zhí)行。各個中斷服務(wù)子程序可在內(nèi)存中按需要浮動放置,其入口

地址集中在一起做成表格放在內(nèi)存的0?3FFH(共1024個存儲單元)區(qū)域中。

每個服務(wù)程序入口地址有4個字節(jié),占4個存儲單元,前兩個字節(jié)為中斷

服務(wù)子程序入口地址中的偏移量,后兩個字節(jié)為入口地址中的段地址,

都是低字節(jié)在前,高字節(jié)在后。中斷服務(wù)子程序的入口地址就是中斷矢

量。1024個存儲單元可以存放256個中斷矢量,這些連續(xù)依次存放的中斷

矢量就叫中斷矢量表。

中斷矢量表中的前5個是專用中斷,其中除了非屏蔽中斷外,其

它幾個中斷都是軟件中斷。

類型5到類型31(1FH)的27個中斷是保留給系統(tǒng)使用的,用戶一般

不應(yīng)對這些中斷自行定義。

3.中斷優(yōu)先權(quán)級別

PC系列機規(guī)定上述各類中斷的優(yōu)先權(quán)級別

從高到低的順序為:除法出錯、INTO、INTn、

NMI、INTR、單步中斷。

4,高檔微處理器中斷

?(1)中斷和異常

?80386/80486及Pentium等高檔微處理器不

僅具有8086所有中斷類型,而且大大豐富了內(nèi)部

中斷的功能,把許多執(zhí)行過程中產(chǎn)生的錯誤情況

也納入了中物處理的范圍,這類中斷稱為異常中

斷,簡稱異常。

-失效:若某條指令在啟動之后,真正執(zhí)行

之前被檢測到異常,產(chǎn)生異常中斷,而且在中斷

服及宣感后返四談指令,重新啟動并執(zhí)行完成,

這類異常就是失效。

陷阱:產(chǎn)生陷阱的指令在執(zhí)行后才被報告,且其中

斷服務(wù)程序完成后返回到主程序中的下一條指令。例如用戶自定

義的中斷指令I(lǐng)NTn就屬于此類型。

中止:該類異常發(fā)生后無法確定造成異常指令的實際位置,

例如硬件錯誤或系統(tǒng)表格中的錯誤值造成的異常。在此情況下原

來的程序已無法執(zhí)行,因此中斷服務(wù)程序往往重新啟動操作系統(tǒng)

并重建系統(tǒng)表格。

(2)中斷描述符表

為了管理各種中斷,80386/80486和Pentium等高檔微處理器

都設(shè)立了一個中斷描述符表IDT(lnteiruptDescriptorTable)o表中最

多可包含256個描述符項,對應(yīng)256個中斷或異常。描述符中包含

了各個中斷服務(wù)程序入口地址的信息。

1.8259A功能

8259A芯片是PC系列機普遍使用的基本的可編程中斷控制器。

其主要功能如下:

①具有8級優(yōu)先權(quán)控制,由9片8259A級連可擴展至64級主從式中

斷優(yōu)先級控制;

②對每一級中斷都可以屏蔽禁止或開放允許;

③當中斷被CPU響應(yīng)時,8259A可提供相應(yīng)的中斷類型碼,從而能

使程序流程迅速準確地轉(zhuǎn)至中斷服務(wù)子程序;

④可通過編程來選擇多種不同的工作方式。

2.8259A結(jié)構(gòu)框圖

8259A有8條輸入中斷請求線IR。?⑹,接收和處理由風?叫引

入的中斷請求。

?3.8259A工作原理

■4.8259A引腳及其功能

?8259A是28引腳雙列直插式封裝。

1028Vcc

CS羽

227Ao

KD326INTA

D7425IR?

D6524IRB

D5623IR5

D4J8259A22IR4

D321IR3

D29IR2

D110IR1

cD011IRo

CAS01217INT_

AS11316SP/EN

ND1415CAS2

6.3串行接口

?6.3.1串行接口概述

?L并行與串行通信

,門晦題著炊觴部望琮如出及屯費同璃業(yè)

GOe

支位一位技

口M

時2同工褊露1房M?ir

2.傳輸速率

在傳崎殛毛刺裂昆烈由保朝電褰送胞線匕

為為不混號波形傳輸,在接收端由接

?⑴發(fā)送時鐘和接收時鐘

?異步通信是按字符傳送的,每個字符以起始位開始,接收設(shè)備

在收到起始位信號之后只要在一個字符的傳輸時間內(nèi)能和發(fā)送設(shè)備保

持同步就能正確接收。

?同步通信的接收設(shè)備首先要搜索同步字符,在得到同步字符

之后,才開始裝配數(shù)據(jù)。傳輸過程中,發(fā)送和接收設(shè)備要保持完全的

同步。

,(2)數(shù)據(jù)傳輸速率

?傳輸速率指單位時間內(nèi)傳送的信息量。

?比特率(bitspersecond):每秒鐘傳送的二進制位數(shù)(比特

數(shù))。

?波特率(bandrate):每秒鐘傳送的信息位數(shù)量。

?3.串行通信的傳送方向

?根據(jù)數(shù)據(jù)終端的收發(fā)能否同時工作,有單工、半雙工和雙工方式。

?4.誤碼率和校驗方式

?誤碼率:由于傳輸時的損耗以及干擾的竄入,接收到的數(shù)

碼有可能出錯。發(fā)生錯誤的位數(shù)與傳輸?shù)目偽粩?shù)之比稱為誤碼率。

,(1)奇偶校驗(ParityCheck)

?異步通信常采用奇偶校驗。數(shù)據(jù)位發(fā)送完之后,可以發(fā)送奇

偶校驗位。奇偶校驗用于有限差錯檢測,通訊雙方約定一致的奇

偶校驗方式。如果選擇偶校驗,那么組成數(shù)據(jù)位和奇偶校驗位的

邏輯1的個數(shù)必須是偶數(shù);如果選擇奇校驗,那么邏輯1個數(shù)必須

是奇數(shù)。

,(2)循環(huán)冗余碼CRC校驗(CyclicRedundancyCheck)

?同步通信常采用CRC校驗。在發(fā)送的數(shù)據(jù)塊結(jié)尾加上循環(huán)冗余

校驗碼(CRC碼),它是以一個數(shù)據(jù)塊為對象進行校驗的。CRC把

整個數(shù)據(jù)塊當作一個二進制數(shù),看成一個多項式。發(fā)送時,把這

多項式除以另一個16位多項式。除數(shù)多項式稱為CRC碼的生成多

項式。相除所得的余數(shù)作為CRC碼,附在整個數(shù)據(jù)塊的后面,形

成一組傳送碼,發(fā)送出去。

5,信號的調(diào)制與解調(diào)

通過電話網(wǎng)傳輸數(shù)字信號,在發(fā)送時需要

對二進制信號進行調(diào)制,將0和1組成的數(shù)字信

號調(diào)制成適合在電話網(wǎng)上傳輸?shù)囊纛l信號;在

卡畛時,需要進行解調(diào),再還原成原來的數(shù)字

6.異步與同步傳輸

(1)異步傳輸

串行異步傳送的規(guī)程如下:

起始位1位,低電平,其作用是通知接收方

傳送開始,接著的是數(shù)據(jù)位。

數(shù)據(jù)位5?8位,具體由軟件設(shè)定。緊跟在

起始位之后,是傳送信息的主體,傳送時低位

在前,高位在后。奇腐接驗位1位(偶校哈僉奇

校驗),也可不設(shè)校驗位。停止位1位、1位半

或2位,具體由軟件設(shè)定。高電平,標志一個數(shù)

據(jù)字符的結(jié)束。

(2)同步傳輸

同步通信方式雙方使用同一個時鐘信號控制數(shù)據(jù)的發(fā)送和接

收,該時鐘對所傳送數(shù)據(jù)的所有各位進行定時,包括字符之間的

定時,數(shù)據(jù)塊中的所有位。

同步通信有內(nèi)同步和外同步之分。外同步是指同步信號在

串行傳輸?shù)男畔⒘髦?,同步信號在串行I/O接口電路芯片外部產(chǎn)

生或檢測,依此同步信號控制該芯片開始接收數(shù)據(jù)。內(nèi)同步是指

同步信號在串行傳輸?shù)男畔⒘髦校瑢ν阶址臋z測在串行I/O

接口電路內(nèi)部進行。內(nèi)同步分為單同步(一個字節(jié)的同步字符)、

雙同步(兩個字節(jié)的同步字符)等。

?63.2RS-232C標準

?RS-232c總線標準是異步串行通信中應(yīng)用最廣的標準總線,

該系統(tǒng)包括數(shù)據(jù)終端設(shè)備()和數(shù)據(jù)通信設(shè)備()

DTEDCEO

?1.RS-232c的引腳功能

?(1)信息傳輸

?TXD:發(fā)送數(shù)據(jù),輸出。

?RXD:接收數(shù)據(jù),輸入。

?(2)信號聯(lián)絡(luò)(共6個)

?RTS:請求發(fā)送信號。當DTE準備好數(shù)據(jù)時,就發(fā)出RTS信號,

通知DCE準備接收數(shù)據(jù)。

?CTS:允許發(fā)送信號。當DCE準備好接收DTE的數(shù)據(jù)傳送時,

就發(fā)出CTS信號來響應(yīng)RTS信號。所以RTS和CTS是一對用于發(fā)送數(shù)

據(jù)的聯(lián)絡(luò)信號。

?DTR:DTE就緒。通常DTE一加電,該信號就有效,處于傳輸

模式。

?DCD:載波檢測。當本地DCE接收到來自遠程的DCE正確的載

波信號時,由該引腳向DTE發(fā)出此信號。

?RI:振鈴指示。當線路上出現(xiàn)呼叫DTE的信號時,DCE用此信

號作為電話鈴響的指示。在響鈴期間,該引線保持有效。

?2.電氣特性

?⑴電平在士(3-15)V之間

?在數(shù)據(jù)線TXD和RXD上:由于RS-232c采用負邏輯,因此邏

輯1的電平范圍為-3?-15V,邏輯0的電平范圍為+3?+15V。

,3.線纜長度(最大傳輸距離)

?在通信速率低于20kbit/s時,RS-232c的最大直接傳輸距離為

15m,實際應(yīng)用時可達到30m或60m。

?4.串行接口連接

?(1)通過電話線連接。遠距離通信時(大于15m),一般

要加調(diào)制解調(diào)器Modem,故所使用的信號線較多。此時,若在通

信雙方的Modem之間采用一根專用電話線進行通信,則只要使用

1?9號信號線進行聯(lián)絡(luò)與控制,若在雙方Modem之間采用普通電

話交換線進行通信,則還要增加RI和DTR兩個信號線進行聯(lián)絡(luò)。

?(2)直接連接

?當兩個DTE設(shè)備直接通過RS-232c連接時,一般只需要5根線。

,(3)簡單連接

?這是一種簡單的RS-232c連線方式,只需2、3交叉連接線以

及信號線,而將各自的RTS和DTR分別接到自己的CTS和DSR端。

?633串行接口應(yīng)用

?設(shè)甲乙兩機通過RS-232串行接口通信,在距離較近,傳送速

率不高的情況下,只需三根連接線傳送脈沖波形就能實現(xiàn)。圖6-

28所示是在距離約100米,速率為600波特的情況。

TXD

2RXD3

ARXDTXDB

機RS-23232RS-232

信號地機

7信號地7

<]合

?用匯編語言編寫這個通信程序可以用三種方式,即直接驅(qū)動

硬件;BIOS功能調(diào)用;DOS功能調(diào)用。

?(1)BIOS功能調(diào)用

?軟件中斷號14H是異步通信調(diào)用,主要有四個功能:初始化

串行口,發(fā)送1個字符,接收1個字符和取得串行口狀態(tài)。

?(2)DOS功能調(diào)用

?以DOS功能調(diào)用來使用異步通信口有二種方法:第一種,系

統(tǒng)功能調(diào)用的00H-0CH是屬于傳統(tǒng)的I/O管理。其中03H,04H是用

于異步通信的。

?這兩個功能只是作輸入/輸出用,要構(gòu)成一段完整的輸入/輸出程

序,必須增加其它指令。

?第二種方法是利用系統(tǒng)功能調(diào)用中的3CH-46Ho這是擴充的

文件管理子集。在DOS中,可以把字符設(shè)備當作文件來處理,為

此賦予各種常用的字符設(shè)備以特定的文件號。

6.4并行接口

?6.4.1并行接口概述

*

?并行接口傳送數(shù)據(jù)的方向有兩種,一種是單向的,只作為輸入

口或輸出口;另一種是雙向的,既作為輸入又作為輸出。

?并行接口的工作原理如下:

?在輸入過程中,當外設(shè)把數(shù)據(jù)送到數(shù)據(jù)輸入線上時,通過“數(shù)

據(jù)輸入準備好”狀態(tài)線通知接口取數(shù)。接口在把數(shù)據(jù)鎖存到輸入緩沖

器的同時,把數(shù)據(jù)輸入回答線置“1〃,用來通知外設(shè),接口的數(shù)據(jù)輸

入緩沖器“滿”,禁止外設(shè)再送數(shù)據(jù)。并且把內(nèi)部狀態(tài)寄存器中“輸

入準備好”狀態(tài)位置“1〃,以便CPU對其進行查詢或向CPU申請中斷。

在CPU讀取接口中的數(shù)據(jù)后,接口將自動清除“輸入準備好”狀態(tài)位

和“數(shù)據(jù)輸入回答”信號,以便外設(shè)輸入下一個數(shù)據(jù)。

?在輸出過程中,當數(shù)據(jù)輸出緩沖器“空閑”時,接口中“輸出準備好”

狀態(tài)位置“1”。在接收到CPU的數(shù)據(jù)后,“輸出準備好”狀態(tài)位復位。數(shù)據(jù)通

過輸出線送到外設(shè),同時,由“數(shù)據(jù)輸出準備好”信號線通知外設(shè)取數(shù)據(jù)。

當外設(shè)接收一個數(shù)據(jù)時,回送一個“數(shù)據(jù)輸出回答”信號,通知接口準備下

一次輸出數(shù)據(jù)。接口將撤消“數(shù)據(jù)輸出準備好”信號并再一次置“輸出準備

好”狀態(tài)位為“I”,以便CPU輸出下一個數(shù)據(jù)。

?6.4.2并行接口的應(yīng)用

?1.并行接口傳輸模式

?IEEE1284制定了5種傳輸模式:兼容模式(CompatibilityMode)、

半字節(jié)模式(NibbleMode)、字節(jié)模式(ByteMode)、增強并行接口模式

(EnhancedParallelPort,EPP)和擴展能力接口模式(Extended

CapabilityPort,ECP)0

?2.標準并行口SPP工作方式

?標準并行口SPP(StandardParallelPort)方式實現(xiàn)了由PC機向

外設(shè)的傳輸,SPP方式包括兼容模式、半字節(jié)模式和字節(jié)模式。

?3.標準并行接口內(nèi)的寄存器

?并行接口內(nèi)部邏輯共設(shè)有3個寄存器端口:數(shù)據(jù)寄存器,控

制寄存器和狀態(tài)寄存器。主機依據(jù)端口的地址進行5種操作:讀/

寫數(shù)據(jù)寄存器、讀/寫控制寄存器和讀狀態(tài)寄存器。

?4.標準并行接口編程

?通常,主機輸出給打印機的信息包括兩類:一類是數(shù)據(jù)、字

符碼,一類是控制碼或功能碼,以完成一些特定的動作。

(1)ROMBIOS也為用戶提供了方便的打印機驅(qū)動程序,通過調(diào)用INT17H實現(xiàn)。

[例6-6]把字符A送到打印機:

MOVAH,0;功能號為0,表示打印字符

MOVAL,火;送要打印的字符

MOVDX,0;打印機口號選第一個打印機口

INT17H;調(diào)用BIOS

ANDAL,01;字符打印完否

JNZERROR;錯則跳轉(zhuǎn)至error

ERROR:

?(2)打印機的DOS系統(tǒng)調(diào)用

INT21H的5H號功能是標準打印輸出的,調(diào)用時,要求將打印

輸出的字符放在DL中,不返回打印機狀態(tài)。該功能號不能選擇打

印機號,只能對1號打印機有效。

[例6-7]打印1個字符

程序如下:

MOVAH,05H;功能號

MOVDL,CHAR;打印字符的ACSII碼送DL

INT21H;執(zhí)行DOS系統(tǒng)功能

5.增強型并行口EPP

增強型并行口EPP(EnhancedParallelPort)協(xié)議最初是由Intel、

Xircom>Zenith三家公司聯(lián)合提出的,于1994年在IEEE1284標準中

發(fā)布。EPP協(xié)議有兩個標準:EPP1.7和EPP1.9。

第7章總線

所謂總線,是指計算機中多個部

件之間公用的一組連線,是若干互連信

號線的集合,由它構(gòu)成系統(tǒng)的插件間、

插件的芯片間或子系統(tǒng)間的標準信息通

路。

退出

7.1概述

7.2系統(tǒng)總線

7.3外部通信總線

7.1概述

?7.1.1總線分類

?1.按信號性質(zhì)分

?總線按其所傳輸信號的性質(zhì)可分為三類:地址總線AB、數(shù)據(jù)總線

DB和控制總線CB。

?2.按系統(tǒng)層次分

?(1)芯片級總線。用于模塊內(nèi)芯片一級的互連,主要指CPU芯片、

內(nèi)存芯片、I/O接口芯片等的總線,是芯片內(nèi)部引出的總線。

?(2)系統(tǒng)總線。系統(tǒng)總線(簡稱總線)是微機系統(tǒng)內(nèi)連接各插件

板的總線,用于插件與插件之間的信息傳送。

?(3)外部總線。外部總線又稱設(shè)備總線,是連接計算機與外部

設(shè)備的總線。

?7.L2總線體系結(jié)構(gòu)

?總線連接系統(tǒng)內(nèi)各模塊,組織方法不同,總線結(jié)構(gòu)亦不同。

?1.單總線結(jié)構(gòu)

?2.雙總線結(jié)構(gòu)

?3.多總線分級結(jié)構(gòu)

?7.1.3總線操作

?總線類似一個“公路網(wǎng)”,把系統(tǒng)內(nèi)的各個模塊連接

起來。系統(tǒng)總線相當于“公路網(wǎng)”中的主干道,芯片級總

線相當于次干道或支線,外部總線相當于連接到其它“公

路網(wǎng)”的道路。

?總線的基本任務(wù)就是傳送數(shù)據(jù),這里的數(shù)據(jù)包括程序

指令、要處理的數(shù)據(jù)和運算后的結(jié)果、設(shè)備控制命令、設(shè)

備狀態(tài)信息以及設(shè)備的輸入/輸出數(shù)據(jù)。

總線操作周期一般要有四個階段。

①總線請求和仲裁(Busrequest&Arbitration)階段。需要使用

總線的主模塊(如CPU和DMA)提出申請,由總線仲裁器確定把

總線分配給哪個請求源;

②尋址(Addressing)階段。取得總線使用權(quán)的主模塊發(fā)出將要

訪問的從模塊(存儲器或I/O端口)地址以及有關(guān)命令,啟動從模塊;

③數(shù)據(jù)傳送(DataTransfer)階段。主從模塊進行數(shù)據(jù)交換,數(shù)

據(jù)由源模塊發(fā)出,經(jīng)數(shù)據(jù)總線傳送到目標模塊。

④結(jié)束(Ending)階段。主從模塊的數(shù)據(jù)、地址、狀態(tài)、命令

信息均從總線上撤除,讓出總線,以便其它模塊繼續(xù)使用。

?7.1.4總線仲裁

?總線仲裁即總線判決,目的是避免多個主控器同時占用總線,確

保任何時候總線上最多只有一個模塊發(fā)送信息。當多個主控模塊同時

提出總線請求時,仲裁機構(gòu)以一定的優(yōu)先算法裁決哪個獲得總線使用

權(quán)。沒有總線仲裁,總線沖突就不可避免,不可避免地引起傳輸線上

信號電平的沖突,輕者引起通信故障,嚴重的造成低阻通路產(chǎn)生大電

流而燒毀總線驅(qū)動器芯片。

?7.1.5總線傳輸方式

?總線傳輸方式即總線通信方式,俗稱總線握手方式。握手線的數(shù)

目因方式不同而異,握手線以信號電平的某種變化來標明總線傳輸?shù)?/p>

開始和結(jié)束,在主從模塊之間實現(xiàn)可靠的數(shù)據(jù)傳輸。

1.同步傳輸方式

?同步傳輸方式的數(shù)據(jù)傳輸在一個共同的時鐘信號控制下進

行,時鐘通常由時鐘發(fā)生器/驅(qū)動器發(fā)出,經(jīng)分頻電路送到總線上

的所有模塊。

?2.異步傳輸方式

?異步方式下總線操作時序是不固定的,數(shù)據(jù)發(fā)送部件和接收

部件之間用握手信號來協(xié)調(diào)數(shù)據(jù)的傳輸,其中用的最廣也最為可

靠的是“全互鎖”異步方式。

?全互鎖異步方式要求在總線操作期間主控器和受控器各自

,至少發(fā)出一個控制信號,通過它們一問一答的互為前提的交替變

化來確保地址總線和數(shù)據(jù)總線上的信息不會發(fā)生沖突,也不會丟

失。

?3.半同步傳輸方式

?半同步傳輸方式是兼具同步與異步兩者長處而產(chǎn)生的一種

混合傳輸方式。

?7.1.6總線的主要性能參數(shù)和總線標準

?L總線的主要性能參數(shù)

?(1)總線數(shù)據(jù)通路寬度

?簡稱總線寬度,是指總線一次能同時傳送的數(shù)據(jù)位數(shù)。

?(2)總線頻率

?指總線每秒鐘能傳送數(shù)據(jù)的次數(shù)。

?(3)總線數(shù)據(jù)傳輸率

?又稱總線帶寬,是指總線在單位時間內(nèi)能傳送的數(shù)據(jù)量,

通常用每秒傳送多少字節(jié)(B/s)或每秒傳送多少位(b/s)

來表不。

?(4)尋址能力。尋址能力主要指地址總線的位數(shù)及它所

能直接尋址的存儲空間的大小,如地址總線為N位,則它

可以直接尋址的存儲空間為2nByte。

?(5)總線負載能力

?總線負載能力是指總線上所能連接的設(shè)備數(shù)。

2.總線標準

所謂總線標準即國際上公認的某種約定的互聯(lián)標準,它規(guī)

定了插件的尺寸大小,信號線的數(shù)目,各信號的定義以及時序和

信號的電平標準等等。

(1)總線的標準特性

總線的標準特性包括物理特性、功能特性、電器特性和時間

特性。

(2)總線標準化

采用總線結(jié)構(gòu)是計算機系統(tǒng)體系結(jié)構(gòu)的重要特點之一。國際

電工委員會(Internationalllectro-technicalCommission,IEC和美國

電氣與電子工程師協(xié)會(InstituteofElectricalandElectronicx

EngineersJEEE)等組織,先后提出或推薦了一批總線作為國際標

準總線,使計算機總線標準和總線結(jié)構(gòu)逐步實現(xiàn)了通用性和規(guī)范

化。

7.2系統(tǒng)總線

?7.2.1ISA總線

?ISAflndustrialStandardArchitecture)總線指IBM公司為適配PC/AT機

而于1984年推出的16位系統(tǒng)總線標準,它是當初PC/XT機使用的PC總

線的擴展,PC總線共62線,其插卡/插座分A、B兩面,每面31線,其

中數(shù)據(jù)線寬8位,地址線寬20位(可對1MB存儲空間尋址)。

?ISA總線在原PC總線62引線的基礎(chǔ)上再延長出獨立的一段,新

增加36線(A、B兩面各18線),數(shù)據(jù)線擴至16位,地址線擴至24位。

ISA總線主要特性

數(shù)據(jù)傳輸率最高為8MB/S;

24根地址線,可尋址16MB存儲空間;

64K個可尋址的I/O端口(16根地址線);

一次可進行16位或8位數(shù)據(jù)存??;

8/16位的數(shù)據(jù)線;

15級硬中斷控制(對應(yīng)2片8259A級聯(lián));

8個DMA通道(相當2片8237A-5級聯(lián));

產(chǎn)生I/O等待狀態(tài);

支持多個主控器(MultiMaster)o

7.2.2EISA總線

?為了適應(yīng)32位地址和32位數(shù)據(jù)寬度微機系統(tǒng)的需要,HP、Compaq及AST

等9家公司于1982年聯(lián)合在ISA的基礎(chǔ)上推出了擴展工業(yè)標準結(jié)構(gòu)總線。

??日SA總線特點

?32位尋址能力和16位/32位數(shù)據(jù)傳送能力,存儲空間達到232=4GB。DMA

的數(shù)據(jù)傳輸率最高可達33MB/S。

?可通過軟件實現(xiàn)系統(tǒng)主板和擴充自動配置功能。

?可管理多個總線主控器,并使用突發(fā)方式對系統(tǒng)存儲器進行讀/寫訪問。

?可用程序來控制中斷請求,采用邊沿觸發(fā)或電平觸發(fā)方式。

?日SA總線插槽既可插ISA插卡,采用同步數(shù)據(jù)傳送協(xié)議,可支持常規(guī)的一

次傳送,也可支持突發(fā)方式即高速分組傳送。

7.2.3PQ總線

,PCI(PeripheralComponentInterconnect:外圍部件互連)

總線由Intel公司結(jié)構(gòu)實驗室于1991年底提出,PCI集團(即PCI

SIG)在1992年6月推出1.0版,1993年4月30日和1995年6月1日分別

推出2.0版和2.1版。

?1.PCI總線的系統(tǒng)結(jié)構(gòu)

?PCI的含義是周邊器件互連。PCI能夠支持處理器快速訪問

系統(tǒng)存儲器,并支持適配器之間的相互訪問。典型的PCI系統(tǒng)包括

兩個橋接器:Host/PCI橋和PCI/ISA橋。Host/PCI橋也稱為北橋

(NorthBridge),連接主CPU和基本PCI總線,其中包括存儲器

管理部件和AGP接口部件。PCI/ISA橋也稱為南橋(South

Bridge),連接基本PCI到ISA或EISA總線。

2.PCI局部總線的主要性能及特點

?支持10臺外設(shè);

??總線時鐘頻率33.3MHz/66MHz;

??最大數(shù)據(jù)傳輸速率在時鐘頻率為33MHz時為133MB/S(32位)或

266MB/S(64位);

??時鐘同步式;

??與CPU及時鐘頻率無關(guān);

??總線寬度32位(5V)/64位(3.3V);

??能自動識別外設(shè)(即插即用功能);

??特別適合與Intel的CPU協(xié)同工作;

??具有與處理器和存儲器子系統(tǒng)完全并行操作的能力;

??具有隱含的中央仲裁系統(tǒng);

??采用多路復用方式(地址線和數(shù)據(jù)線)減少了引腳;

??支持64位尋址能力;

??完全的多總線主控能力;

??提供地址和數(shù)據(jù)的奇偶校驗;

?可以轉(zhuǎn)換5V和3.3V的信號環(huán)境。

3.PQ總線體系結(jié)構(gòu)

在配置PCI總線的系統(tǒng)中,PCI在CPU與外設(shè)之間插入一個復

雜的管理流,協(xié)調(diào)數(shù)據(jù)傳輸速率,提供一個低延時的訪問通路。

4.PCI信號線與連接器

必備線可選線

4AD⑶?0))AD(63?32)

地址與

擻據(jù)線1位總線

<C/BE(3-0PC/BEG?4)64

Z~PAR?擴展線

FAR64;

THEWi

:TOY;ACK64

:TOT:.TOTL接口

接口f控制線

控制線PCI

:DEVSEL:TO

總線

中斷線

DSEL設(shè)備

IW

錯誤

報告線\.麗

:SDONECache

支持線

仲裁線TO

.TDI

GNT

,設(shè)備有)TDO

.TCKIJTAG/邊界

CLK

系統(tǒng):[MS

WI掃描信號線

信號線

7.2.4顯示卡插槽標準

顯示卡插槽主要有AGP插槽(如圖7-9所示)。AGP

?是AcceleratedGraphicsPort的縮寫(高速圖形端口),也稱

為AGP總線,是Intel公司為提高計算機系統(tǒng)的3D顯示速度

而開發(fā)的,僅用于AGP顯卡的安裝。目前AGP端口標準已

溫馨提示

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

評論

0/150

提交評論