本筆記旨在幫助更多的人可以更加輕鬆愉快的的度過考試,讓你們有更多的時間學習更多更加有用的東西
總結了微機原理第五章存儲器、第六章接口、第七章接口芯片、第八章串行通訊這幾章的考試重點
編程
第五章 存儲器
SRAM DRAM
ROM PROM EPROM EEPROM
Flash Memory 快擦型存儲器
寄存器 Cache 內存 外存
存儲容量=單元數*每單元的位數
MAR MBR
存儲器—>CPU 經過尋址方式獲取地址送入MAR,經過數據線讀出的數據送入MBR
CPU—>存儲器 經過尋址方式獲取地址送入MAR,將數據送入MBR再傳到存儲器
單譯碼結構 雙譯碼結構
D0-D15:16位數據線,低八位和高八位能夠分別用AD0和BHE控制
A0-A19:20位地址總線,最大存儲容量是1M字節
M/IO:分別表示內存地址和外設地址
RD:表示CPU從內存讀數據
WR:表示CPU向內存寫數據
BHE:數據總線高8位有效位
27系列EPROM芯片
A0-An-1:地址線
D0-D7:數據線
Vpp:編程電壓,CPU對芯片進行讀操做
Vcc:電源線
GND:地線
OE:讀控制線,有效時能夠進行讀取操做
CS:片選控制線,有效時表示本芯片工做
芯片後兩位表明Kbit
62系列SRAM芯片
D0-D7:數據線
A0-An-1:地址線
OE:讀控制線,有效時從內存讀數據到CPU
WR:寫控制,有效時從CPU寫數據到內存
CS:片選控制,有效時表示本芯片工做
寫數據時有寫8位和16位兩種狀況,分別用BHE和A0控制,即CS由A0和BHE共同決定
74LS138譯碼器取代組合邏輯電路
3個選擇輸入端:A、B、C
8個低電平輸出端:Y0~Y7
3個使能輸入端:G1=一、G2A=0、G2B=0
通常來講74LS138鏈接CPU高位,譯碼器的使能端接CPU的M/IO口
譯碼器的每個選擇對應一片存儲芯片
併發
第六章 接口
輸入接口:對數據有控制能力,常利用三態門(緩衝器)實現
輸出接口:對數據有鎖存能力,經常使用鎖存器實現
I/O信息組成:數據信息、狀態信息、控制信息
數據信息:要交換的數據自己,有並行和串行兩種傳送方式
數字量:直接交換
模擬量:模擬量通過AD/DA轉換器在CPU與外設之間交換
開關量:0、1
狀態信息:在CPU與外設以前交換數據時的聯絡信息
控制信息:CPU發給外設的命令信息
傳送這三種信息的寄存器成爲數據、狀態、控制三種端口
端口由一個或多個寄存器組成,接口由一個或多個端口和控制邏輯組成
CPU對外設的輸入輸出是經過I/O端口的讀寫操做完成的
端口地址=(接口)芯片地址+片內地址
I/O端口有兩種編址方式:存儲器映像方式、I/O獨立編址方式
存儲器映像方式尋址:I/O端口與存儲器共享一個尋址空間,統一編址
I/O獨立編址方式:主存地址空間和I/O端口地址空間相互獨立,分別編址
直接尋址方式:長格式,port有8位,可尋256個端口
DX尋址方式:短格式,DX存儲端口號,有16位,65535個端口
全地址譯碼
接口中如有一個端口,16位地址線應所有參與譯碼(決定接口的基地址)
接口中如有多個端口,16位地址線的高位參與譯碼,低位用於尋址接口中要訪問的端口
部分地址譯碼:I/O系統中,因地址資源豐富,多采用部分地址譯碼
CPU與外設交換信息的方式:程序控制、中斷控制、DMA直接存取
程序控制的輸入輸出:
無條件傳送:外設在CPU控制下、存儲器始終處於準備狀態
查詢傳送:CPU在對外設進行傳送的時候須要進行詢問
中斷控制輸入輸出:
外設首先向CPU發送申請,CPU接收到申請後中止當前的工做,開始於外設進行傳輸數據
直接存儲器存取(DMA):
CPU不參加傳送操做,從外設到內存之間直接經過DMA控制器實現的
鎖存器或緩衝器能夠在接口與CPU傳輸數據時,防止數據發生改變,保證數據到CPU的同步輸入
74LS244緩衝器:
三態輸出,8bit,20pin
CE1和CE2有效時片選,做爲控制端
D0~D7輸入端
Q0~Q7輸出端
爲了保證CPU到外設的正確輸出,除了正確的端口地址以外,還須要將數據鎖存器或驅動提供給外設
鎖存器接口一般由D觸發器構成,具備對數據的鎖存能力,不具備對數據的控制能力
74LS273鎖存器:
8bit,20pin
清零端CLR
鎖存控制端CP
D0~D7輸入端
Q0~Q7輸出端
凡輸入數據到CPU的設備須經三態緩衝器掛在CPU的數據總線上。
異步:當CPU輸出數據到外設時,需將輸出的數據鎖存,以便較慢的外設有足夠的時間進行處理,而CPU則脫身去作其它的工做。
同步是同時傳輸,異步是不一樣時傳輸
IN/OUT指令是從端口讀取/傳輸數據
當CPU與外設之間傳輸數據爲字時:偶地址字節由低八位數據線D7~D0位傳送
奇地址字節由高八位數據線D15~D8位傳送
當CPU與外設之間傳輸數據爲字節時:只能是偶地址或奇地址,永遠不會連續
異步
第七章(8255A)
定時器/計數器接口8253,三個通道16位定時/計數器
高位地址線實現系統中芯片尋址,地位地址線實現片內端口尋址
CPU與端口之間傳送的信息時數據、狀態、控制
可編程芯片:經過程序改變功能的電路芯片
芯片初始化:程序改變芯片工做方式的過程
經過程序指令修改接口芯片和I/O引腳的工做方式:可編程並行接口芯片8255A
並行通訊:n位數據用n條線同時傳輸的機制
74LS244緩衝器和74LS273鎖存器都是簡單的並行接口
接口8255A有三個八位輸入輸出端口A、B、C(PA7PA0、PB7PB0、PC7~PC0)
A口地址A1A0=00、B口地址A1A0=0一、C口地址A1A0=十、控制字操做A1A0=11
A、B、C都可作輸入輸出,C可分高低兩個四位
A組控制:A端口和C端口高4位
B組控制:B端口和C端口低4位
RESET:高電平時全部內部寄存器清零、ABC三個端口都設爲輸入方式
CS片選、RD讀、WR寫
VCC通常爲5V和GND
8255A的8位數據線D7~D0跟8086的高/低8位相連,奇/偶地址傳址
8255A的A0、A1跟8086的A一、A2相連
方式0:無條件傳送,ABC都可使用此方式
方式1:查詢/中斷方式,C口提供三根固定聯絡信號,AB口都可工做在此方式
方式2:雙向傳輸,同一端口內分時出入,C口提供五根固定聯絡信號,只容許A口工做在此方式
8255A初始化:A0A1=11
一、方向選擇控制字
D7~D0 : 方式選擇標誌位爲一 * A口方式選擇(兩位) * A口I/O方向 * C口高四位I/O * B口工做方式 * B口I/O方向 * C口低四位I/O
二、端口C復位/置位控制字
D7~D0 : 方式選擇標誌位爲零 * (三位任意值 )* 端口C位選擇 (三位) * 0復位/1置位
三、讀入C口狀態字
INTE中斷容許信號:INTEA 和 INTEB由復位控制字中的PC4和PC2控制,高電平有效
INTR中斷請求信號:當STB、IBF、INTE三者都爲高時,INTR才能被置爲高電平
8255A方式一的工做時序(數據經過A–>CPU)(中斷):
外設數據送至PA0-PA7後
STB有效,外設數據到A口緩衝器
IBF有效,告知外設不要傳送新的數據
INTR有效,申請中斷,告知CPU有新的數據送送達
CPU從A口取數據,清除IBF和INTR,使之無效
8086A方式一的工做時序(數據從A–>CPU)(查詢):
外設送數據至PA0-PA7後
STB有效,外設數據到A口緩衝器
IBF有效,告知外設不要傳送新的數據
CPU從A讀取數據後使得STB和IBF無效
握手:至少有兩根信號線,向接口提供外設信息STB,向外設提供接口電路信息IBF
輸出方式:OBF輸出緩衝區滿,ACK外設應答信號,INTR中斷請求信號,INTE中斷容許
8255A方式一輸出時序(中斷):
CPU經過OUT指令寫數據到A口,數據寫到A口輸出緩衝器
數據進入PA0~PA7時,OBF有效,通知外設能夠取數據
外設取走新數據,向8255A發出ACK信號,告知正在取數據
A口的OBF無效,證實A口數據已經被取走爲空
INTR有效,發送中斷請求到CPU,請求新數據
8255A方式一輸出時序(查詢):
CPU發送數據到A口
數據PA0~PA7時,OBF有效
外設取走數據併發送ACK信號,告知8255A正在取數據
A口的OBF無效,證實A口的數據已經被取走
CPU讀取OBF的值,並準備下次傳輸
OBFA和ACKA是一堆握手信號
方式二雙向傳輸(A口工做方式)
外設總線爲雙向,C口的工做狀態:
D7口ACKA(輸出)、D6口OBFA、D5口STBA(輸入)、D4口IBFA、D3口INTRA(中斷標誌)
D2口INTEB、D1口IBFB/OBFB、D0口INTRB
學習
第七章(8253)
可編程定時/計數器接口芯片:信號形式簡單但須要連續檢測
三個獨立的16位計數器、數據總線緩衝器、讀/寫控制電路、通道控制寄存器
每一個計數器都有三根線與外界聯繫:CLK計數器脈衝輸入、GATE門控信號、OUT計數器輸出
定時器:計數值 = 定時時間/時鐘脈衝週期
與CPU相關的引腳:
D7~D0:數據總線
A一、A0:尋址三個通道的計數器和控制寄存器
RD、WR、CS:讀/寫/片選
VCC和GND
A一、A0分別接8086的A二、A1,D7~D0接CPU的低八位,端口使用偶地址
8253控制字
D七、D6選擇計數器(11無心義)
D五、D4讀/寫格式(00:鎖存計數器的數據,01:只讀/寫低八位字節,10:只讀/寫高八位字節,11:先讀高八位,再讀低八位)
D三、D二、D1工做方式:000、00一、x十、x十一、100、101
D0數據格式控制:0二進制編碼格式、1BCD碼格式
8253初始化的兩個步驟:寫入控制字和寫入計數初值
寫入控制字後輸出端OUT進入初始狀態,寫入計數初值後在CLK輸入一個正脈衝後才真正裝入指定通道,以後才能正常計數
防止讀值和計數干擾,一般鎖存計數器的值
8253中通道0在編程後一直是工做的,當低八位向高八位借位的時候讀取通道0的值就有多是錯誤的
解決:
在讀數字的時候關閉GATE門控信號再讀取計數值,但這樣會遺漏GATE關閉時候的信號
在讀取計數值以前先將計數值鎖存起來,以後再進行讀取
Mode0 軟件觸發,歸0輸出高電平,不自動重複
Mode4 軟件觸發,輸出負脈衝選通訊號,不自動重複
Mode1 硬件(GATE)觸發單穩,不自動重複啓動
Mode5 硬件觸發,輸出負脈衝選通訊號,不自動重複
Mode二、3 軟/硬件觸發,自動重裝(分頻/方波)
方式0:計數結束中斷方式
門控信號GATE必須爲1,計數器才能計數
計數時通道輸出端OUT一直爲0
通道計數器計數到0後,OUT由0到1,同時計數器中止工做
當OUT由低電平到高電平的跳邊沿產生能夠做爲中斷請求信號INTR
在計數過程當中可經過GATE信號控制計數的開始和暫停
在控制字寫入後OUT當即輸入低電平,寫入初值後保持低電平,計數器爲零時OUT輸出高電平
計數值爲N+1,比設定的值多一
計數過程當中從新送入初值,則當即按照新值從新計數
計數歸0後仍繼續計數,但OUT再也不變化
方式1:可編程的單穩負脈衝
輸入端輸入一個不低於規定最小寬度的脈衝後,單穩電路輸出一個用戶實現規定寬度的脈衝
門控信號GATE是觸發信號,上升沿有效,即開始計數是有GATE的上升沿觸發的
觸發後計數器開始計數,輸出端OUT由高變低
計數器計數到0,OUT由低變高
計數過程當中若是又被觸發,則從新開始工做
給GATE門輸入一個觸發信號,OUT就會輸出一個固定脈衝寬度的負脈衝,又稱單拍脈衝
在計數器未計時完成又從新觸發會致使單拍脈衝寬度增長
寫完初值後,計數器要等GATE端的上升沿觸發後,下一個CLK脈衝的降低沿纔開始計數,OUT變低
當GATE再次觸發時,下一個CLK的降低沿到來,計數器從新計數
方式2:速率發生器
控制字寫入口,輸出端OUT變高,當初始計數值寫入後,計數器就能夠對外電路做出響應
GATE門爲高,計數器才能工做,對CLK端上的脈衝進行計數
當計數器減到1時,OUT由高變低,在通過一個CLK週期,即計數器爲0時,OUT由低變高
因此方式2輸出的週期性脈衝信號固定爲一個CLK週期
當計數器減爲零的時候自動重裝實現循環計數
若是在計數過程當中GATE信號變爲低電平,則中止計數,GATE信號變爲高的時候從新計數
方式3:方波發生器
控制字輸入後,OUT變高,當計數初值寫入通道且GATE爲高電平時,計數器開始計時,OUT保持高電平
當計數器減到n/2(n+1/2)的時候OUT變低,直到計數器變零的時候OUT再次變高
當計數過程當中寫入新的計數初值,不會影響如今的計數,當本次計數完畢後纔會從新開始新的計數
GATE信號變低則會中止計數,計數暫停,當GATE信號變高的時候會從新開始計數
方式4:軟件觸發方式
寫入控制字後,輸出端OUT變爲高電平,計數初值寫入通道後(即一個CLK)開始計數,當計數到0的時候,OUT輸出負脈衝
GATE爲高電平,計數器開始計數,OUT維持高電平
當計數器減到0輸出端OUT變低,再通過一個CLK輸入時鐘週期,OUT輸出又變高
若在計數過程當中GATE信號變低,則變高後從初始值減一開始計數
計數器不能自動回覆到初值,再次寫入初值纔會從新開始計數
計數期間送入新值則會在本次結束後從新計時
方式5:硬件觸發方式
在寫入控制字後,輸出端OUT變爲高電平,計數初值寫入通道後,當GATE門信號的上升沿觸發後纔開始計數
當數值爲0的時候OUT變低,再通過一個CLK,OUT又會變高,自動裝載計數值,但不會開始計數
當再次GATE上升沿觸發後纔開始計數
在計數過程當中改變計數初值,則會在本次計數結束後,GATE上升沿觸發開始從新計數
方式總結
方式0:
計數結束中斷方式
GATE爲1工做,
OUT在計數結束時由低變高,
GATE=0暫停計數,GATE=1繼續計數,
計數期間改變初值會從新計數,
計數N+1結束
計數結束後OUT再也不發生變化
方式1:
可編程的單穩負脈衝
GATE上升沿觸發工做
開始計數時OUT由高變低,計數結束時由低變高
計數過程當中GATE上升沿再次觸發則從新工做
計數期間初值改變,GATE再次觸發可從新計數
計數N+1結束
計數結束後須要GATE上升沿再次觸發才能再次計數
方式2:
速率發生器
GATE爲1時工做
OUT在計數爲1的時候由高變低,計數結束時由低變高
GATE=0暫停計數,GATE=1從新計數
計數期間初值改變,則會在結束後刷新計數初值
計數N+1結束
能自動重裝開始計數
方式3:
方波發生器
GATE爲1時工做
OUT在計數爲n/2或n+1/2時由高變低,計數結束時由低變高
GATE=0暫停計數,GATE=1從新計數
計數期間初值改變,則會在結束後刷新計數初值
計數N+1結束
能自動重裝開始計數
方式4:
軟件觸發的選通訊號發生器
GATE爲1時工做
OUT在計數結束後由高變低,以後通過一個CLK以後再由低變高
GATE=0暫停計數,GATE=1從新計數
計數期間初值改變,則會在結束後刷新計數初值
計數N+1結束
計數結束後不能恢復計數初值
方式5:
硬件觸發的選通訊號發生器
GATE上升沿觸發工做
OUT在計數結束後又高變低,以後通過一個CLK再由低變高
GATE=0暫停計數,GATE上升沿從新計數
計數期間初值改變,須要GATE上升沿才能觸發從新計數
計數N+1結束
計數器結束後須要等待下一次GAET觸發才能從新計數
編碼
若是控制字肯定讀寫16位,則要對通道讀兩次,想讀低八位,再讀高八位spa
第八章 串行輸入/輸出接口
RS-232C接口就是標準的串行通訊接口
並行通訊的特色:速度快、引線多、距離短
串行通訊的特色:速度慢、引線少、距離長
串行通訊的核心部件是移位寄存器,發端要有一個串出移位寄存器,收端要有一個串入並處寄存器
不存在同步信號線,如何作到數據傳輸同步呢
設置波特率,單位時間傳送的位數
設置數據的傳送格式,設定一些輔助位
設置波特率因子,發送和接收兩端都須要時鐘來定位每一位的時間長度,兩端的時鐘分別叫發送時鐘和接收時鐘
串行通訊(異步):在起始和截止加兩個標識符
串行通訊(同步):爲了提升傳輸速度,把標誌位去掉,在發送和接收端用時鐘實現同步
半雙工和全雙工即每次能同時有1、兩個站發送
異步接收/發送器(UART):不只包括並行串行數據之間的轉換,還能檢測通訊在傳輸過程當中可能發生錯誤的邏輯部件
傳輸過程當中發生的錯誤:奇偶錯誤(檢查一個個數)、幀錯誤(接收到的字符不符合規定)、丟失錯誤
模擬信號比數字信號更高效,所以能夠將數字信號轉換成模擬信號,而解調器能夠將模擬信號再轉換成數字信號
8251A(可編程串行通訊接口芯片)
可用於同步和異步傳送
波特率DC19.2K(異步)、DC64K(同步)
徹底雙工,雙緩衝發送和接收
與8086/8085CPU徹底兼容
DTR:由8251A送往外設,表示CPU當前已經準備就緒
DSR:由外設送往8251A,表示外設已經準備好數據
RTS:請求發送信號,CPU已經準備好發送
CTS:清除請求發送信號,由外設送往8251A
第八章不作重點,瞭解便可。
接口