官术网_书友最值得收藏!

1.4 微型計算機的組成與工作原理

1.4.1 微型計算機的組成

一個完整的微型計算機應用系統由兩大部分組成:硬件部分和軟件部分。硬件是組成計算機的物理實體,軟件則是對硬件使用和管理的程序。

微型計算機應用系統的硬件由微型計算機和外部設備組成。而微型計算機包含微處理器(CPU)、存儲器(存放程序指令或數據的ROM、RAM等)、輸入/輸出口(I/O接口)及其他功能部件(如定時/計數器、中斷系統、串行口)等,它們通過地址總線(AB)、數據總線(DB)和控制總線(CB)連接起來,如圖1.2所示。

圖1.2 微型計算機的組成

在一般微機中,計算機的幾個基本組成部分被做成若干塊芯片和電路板,通過“主板”相連,是一個“多板、多片”系統。單片機(Single Chip Microcomputer)也是一種微型計算機,不同的是單片機將幾個基本組成部分——CPU、存儲器、輸入輸出接口等,全部集成到一塊集成電路芯片中,使得這樣一塊集成電路芯片就是一部簡單的微型計算機,具備了一般計算機的功能,可進行簡單運算和控制。

隨著微電子、半導體技術的發展,許多半導體公司在單片機內部還集成了許多外圍功能電路和外設接口,如定時/計數器、中斷、串行通信、模擬/數字轉換(ADC)、脈沖寬度調制(PWM)等單元。這些單元已經突破了微型計算機傳統的體系結構,突出了單片機的控制特性,使單片機的功能越來越強大,應用也越來越廣泛。國際上目前習慣稱單片機為微控制器(Micro Control Unit, MCU),這個名稱更能確切反映單片機的本質。而在國內,仍然非常習慣地稱之為“單片機”,本書中我們使用“單片機”一詞。

1.微處理器CPU

微處理器是微型計算機的核心單元,決定了單片機的運算能力和處理速度,它由運算器和控制器組成,其典型的內部結構如圖1.3所示。運算器負責進行加、減、乘、除等算術運算和與、或、非、異或等邏輯運算。運算器一般包括算術邏輯運算單元ALU、累加器A、暫存寄存器TMP和標志寄存器F等。控制器負責協調和控制系統工作,讓CPU有序地執行指令。控制器一般包括程序計數器指針PC、指令寄存器IR、指令譯碼器ID、定時和控制邏輯電路、少量通用寄存器和專用寄存器等。

1)算術邏輯單元ALU。由加法器和其他邏輯電路組成,其基本功能是進行加法和移位操作,并由此實現其他各種算術和邏輯運算。

2)累加器A。用來存放參與運算的一個操作數,以及存放運算的結果。

圖1.3 CPU內部結構框圖

3)暫存寄存器TMP。用來存放參與運算的另一個操作數。

4)標志寄存器F。用來保存ALU操作結果的條件標志,反映運算的狀態等,如進位標志、溢出標志、奇偶標志等。

5)程序計數器PC。CPU是根據程序計數器PC中的地址,到程序存儲器中去讀取相應地址單元中的指令碼和數據。

6)指令寄存器IR。存放從程序存儲器中讀出的指令操作碼。

7)指令譯碼器ID。是分析指令操作碼的部件,指令操作碼經譯碼后產生相應于某一特定操作的信號。

8)定時和控制邏輯電路。可分為定時和微操作兩部分。定時部件用來產生脈沖序列和各種節拍脈沖,每種節拍脈沖對應于一種微操作。微操作控制部件根據指令譯碼器產生的信號,按一定時間順序發出一系列節拍脈沖,作為一系列微操作控制信號來完成指令規定的全部操作。

2.總線

總線是用于傳送信息的公共路徑。總線可以分為數據總線、地址總線、控制總線,采用總線結構可以減少信息傳輸線的根數,提高系統的可靠性,增加系統的靈活性。

(1)數據總線DB

數據總線用來在微處理器與存儲器以及輸入/輸出接口之間傳送指令代碼和數據信息。通常微處理器的位數和數據總線的位數一致,8位微處理器就有8根數據線。數據總線是雙向的,既可以從CPU輸出,也可以從外部輸入到CPU。

(2)地址總線AB

地址總線用于傳送地址信息。當微處理器與存儲器或及外部設備交換信息時,必須指明要與哪個存儲單元或哪個外部設備交換。因此,地址總線必須和所有存儲器的地址線對應連接,也必須和所有I/O接口設備相連。這樣,當處理器對存儲器或外圍設備讀/寫數據時,只要把單元地址碼或外圍設備的設備碼送到地址總線上便可選中對象。地址總線是單向的,即地址總是從CPU傳向存儲器或外圍設備。地址線的數目決定了CPU可以直接訪問的存儲器的單元數目,如在8位單片機中,它通常為16根,CPU可直接訪問的存儲器的單元數目為216=65536=64KB。

(3)控制總線CB

控制總線用來傳送使微機各個部件協調工作的定時信號和控制信號,從而保證正確執行指令所要求的各種操作。控制總線是雙向總線,可分為兩類,一類是由CPU發向存儲器或外部設備進行某種控制,例如讀、寫操作控制信號;另一類由存儲器或外部設備發向CPU表示某種信息或請求,例如忙信號、A/D轉換結束信號、中斷請求信號等。控制總線的數目與微處理器的位數沒有直接關系,一般受引腳數量的限制,控制總線的根數不會太多。

3.存儲器

存儲器是用來存放程序和數據的部件。一般包括程序存儲器和數據存儲器。

● 程序存儲器ROM——用于存放用戶程序,只允許讀操作,ROM的信息可在斷電后長期保存。

● 數據存儲器RAM——用于存放程序運行時一些需要臨時保存的工作變量和數據。RAM存放的信息可隨機“讀出”或“寫入”,其中存放的內容是易失性的,即掉電后會丟失。

(1)存儲器的結構

存儲器由存儲體、地址譯碼器和讀/寫控制電路組成,如圖1.4所示。

圖1.4 存儲器結構

● 存儲體——存儲數據信息的載體。由一系列存儲單元組成,每個存儲單元都有確定的地址。存儲單元通常按字節編址,一個存儲單元為一個字節,每個字節能存放一個8位二進制數。就像一個大倉庫,分成許多房間,大倉庫相當于存儲體,房間相當于字節,房間都有編號,編號就是地址。

● 地址譯碼器——將CPU發出的地址信號轉換為對存儲體中某一存儲單元的選通信號。相當于CPU給出地址,地址譯碼器找出相應地址房間的鑰匙。通常地址是8位或16位二進制數,輸入到地址譯碼器,產生相應的選通線,8位地址能產生28=256個選通信號,即能選通256個單元。16位地址能產生216=65536=64K個選通信號,即能選通64K個單元。

● 讀/寫控制電路——接收CPU讀指令或寫指令,確定已被選通存儲單元與數據總線的連通方向(傳輸方向)。若是讀指令,則將被選通存儲單元中的內容傳送到數據總線上;若是寫指令,則將數據總線上的數據傳送到被選通的存儲單元中。

(2)存儲器的讀操作

以將地址為30H單元中的數據60H讀出為例,其讀操作時序如圖1.5所示,具體操作過程如下:

● CPU將地址碼30H送到地址總線上,經存儲器地址譯碼器選通地址為30H的存儲單元。

● CPU發出“讀”信號,存儲器讀/寫控制開關將數據傳輸方向撥向“讀”。

● 地址為30H的存儲單元中的數據60H送到數據總線上。

● CPU將數據總線上的數據60H讀入指定的寄存器。

(3)存儲器的寫操作

以將數據55H寫入存儲器地址A0H的存儲單元中為例,其寫操作時序如圖1.6所示,具體操作過程如下:

● CPU將地址碼A0H送到地址總線上,經存儲器地址譯碼器選通地址為A0H的存儲單元。

● CPU將數據55H送到數據總線上。

● CPU發出“寫”信號,存儲器讀/寫控制開關將數據傳送方向撥向“寫”。

● 數據總線上的數據55H送入已被選中的地址為A0H的存儲單元中。

圖1.5 存儲器讀操作時序

圖1.6 存儲器寫操作時序

需要指出的是,初學者往往容易把存儲單元的地址與存儲單元里的內容(數據)混淆,如上述讀寫例子中的30H、A0H是地址碼,60H、55H為數據碼,二者均用十六進制數表示,不能搞錯。

4.輸入/輸出接口

微型計算機的輸入/輸出設備也稱為外部設備,簡稱I/O設備。常見的輸入設備有鍵盤、鼠標、掃描儀等,常見的輸出設備有顯示器、打印機等。如果這些設備與CPU交換信息,并對它們進行輸入/輸出控制,一般不能與CPU直接連接,必須有輸入/輸出接口電路,簡稱I/O接口電路,以完成I/O設備尋址、數據緩沖、輸入輸出控制等。常見的I/O接口有并行和串行兩種。

● 并行I/O口——單片機的重要資源,用于并行通信,負責實現CPU與并行設備的聯系。它可以使單片機和存儲器或外設之間并行地傳送數據。

● 串行I/O口——用于串行通信,負責實現CPU與串行設備或其他單片機的聯系。它可以把單片機內部的并行數據一位一位地向外傳送,也可以一位一位地接收外部送來的數據并把它們變成并行數據送給CPU處理。

1.4.2 微型計算機的工作原理

微型計算機是按照程序存儲式原理工作,只能被動執行人們事先編制好的程序。程序是指令有規律的集合,而指令是微機生產廠家規定好的微機完成一項操作命令。微機對指令的處理有4個步驟:取指、譯碼、取操作數、執行。參考圖1.7,以執行下列指令為例。

圖1.7 微型計算機的工作原理

微型計算機的具體工作步驟如下:

● CPU根據程序計數器指針PC的值到程序存儲器ROM相應單元讀取指令代碼,即CPU按PC給出的地址0000H經地址緩沖器輸出到地址總線上,選通程序存儲器ROM的0000H地址單元,然后PC=PC+1=0001H,程序存儲器ROM將0000H地址單元中的內容E5H輸出到數據總線上。

● CPU將E5H讀入到指令寄存器IR后,再經過指令譯碼器進行譯碼,譯出CPU即將要進行的一系列操作。

● CPU按PC給出的地址0001H經地址緩沖器輸出到地址總線上,選通程序存儲器ROM的0001H地址單元,然后PC=PC+1=0002H;接著CPU根據程序存儲器ROM中0001H地址單元中的內容30H地址到內部數據存儲器RAM中取操作數20H,即CPU將30H經地址緩沖器輸出到地址總線上,選通內部RAM的30H地址單元,內部RAM將30H地址單元的內容20H輸出到數據總線上。

● CPU將數據總線上的20H讀入到累加器A中,完成MOV A,30H指令的執行。

● CPU再根據PC=0002H經地址總線到程序存儲器ROM的0002H單元讀取指令代碼35H,然后PC=PC+1=0003H。

● CPU將指令代碼35H讀入到指令寄存器IR,經指令譯碼器譯碼,譯出即將進行的操作。

● CPU按PC=0003H經地址總線到程序存儲器ROM的0003H單元讀取內容40H,再根據40H選通內部RAM的相應單元,內部RAM將40H地址單元中的內容55H輸出到數據總線上。

● CPU將55H讀入到算術邏輯運算單元與累加器A中的內容20H進行加法運算,并將計算結果75H存入累加器A中,從而完成ADD A,40H指令的操作。

主站蜘蛛池模板: 岐山县| 九龙城区| 阿拉善左旗| 永胜县| 栾川县| 三都| 英德市| 故城县| 和林格尔县| 安徽省| 冕宁县| 株洲县| 沾益县| 乳山市| 漳平市| 荥经县| 闽侯县| 克东县| 潜山县| 方正县| 南木林县| 色达县| 枞阳县| 遂溪县| 含山县| 木里| 唐河县| 扎囊县| 汾阳市| 定安县| 扎鲁特旗| 忻州市| 郓城县| 资兴市| 曲靖市| 科尔| 阿克苏市| 新建县| 鱼台县| 隆安县| 巴里|