《微型計算機接口技術》第2章 微處理器與單片機1_第1頁
《微型計算機接口技術》第2章 微處理器與單片機1_第2頁
《微型計算機接口技術》第2章 微處理器與單片機1_第3頁
《微型計算機接口技術》第2章 微處理器與單片機1_第4頁
《微型計算機接口技術》第2章 微處理器與單片機1_第5頁
已閱讀5頁,還剩91頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1第二章微型處理器與單片機

第1節(jié)CPU的內部邏輯結構第2節(jié)CPU的外部結構第3節(jié)8086支持的存儲器結構第4節(jié)8086系統配置第5節(jié)CPU的操作和時序2第1節(jié)CPU的內部邏輯結構一、CPU的組成和功能1、CPU的組成

CPU主要由運算器、控制器、寄存器組和片內總線等組成2、CPU的功能(1)指令控制(2)操作控制(3)時序控制(4)執(zhí)行指令(5)數據加工(運算)3二、8086/8088微處理器的內部結構8086是16位的微處理器,有16位數據線和20位地址線,可尋址220即1MB。8088是準16位微處理器,內部為16位,外部數據線為8位。8086主要分為兩個獨立的功能模塊,總線接口模塊(BIU)和執(zhí)行部件(EU),它們可以并行工作。如圖2.1所示。451、總線接口部件BIU

總線接口部件負責與存儲器、輸入/輸出端口傳送數據??偩€接口部件組成:

(1)專用寄存器組:段地址寄存器CS、DS、ES、SS和指令指針寄存器IP,均為16位。

(2)地址加法器:8086在尋址1M字節(jié)地址空間時需用20位地址,這個地址就是由地址加法器產生的。6

具體的說,地址加法器將段寄存器(16位)的內容左移4位,然后與指令指針寄存器IP的內容相加得到20位的物理地址。例如:從內存取指令時,

(CS)=5760H,(IP)=1234H,則物理地址為:

57600H+1234H=57934H。

這里,先將段寄存器CS左移4位(16進制數只需后面加一個零)。7

(3)6字節(jié)的指令隊列:總線接口部件從內存中取來的指令放在一個緩沖區(qū)中,這個緩沖區(qū)叫指令隊列。執(zhí)行部件在執(zhí)行指令過程中從指令隊列取來指令執(zhí)行。

(4)輸入/輸出控制電路:該控制電路將8086CPU的片內總線與系統總線相連,是8086CPU與外部交換數據的必經之路。82、執(zhí)行部件EU(ExecutionUnit)

執(zhí)行部件負責執(zhí)行指令。通常,從指令隊列中取得等待執(zhí)行的指令。組成如下:(1)算術邏輯單元ALU:完成各種運算。(2)標志寄存器FR:用來保存ALU運算結果的一些特征信息,如運算是否進位。(3)通用寄存器組:數據寄存器AX,BX,CX,DX和寄存器BP,SP,SI及DI,均16位。(4)執(zhí)行部件控制電路93、BIU和EU的管理BIU和EU可以并行工作,提高CPU效率。(1)BIU監(jiān)視著指令隊列。當指令隊列中有2個空字節(jié)時,就自動把指令取到隊列中。(2)EU執(zhí)行指令時,從指令隊列頭部取指令,然后執(zhí)行。如需訪問存儲器,則EU向BIU發(fā)出請求,由BIU訪問存儲器。(3)在執(zhí)行轉移、調用、返回指令時,需改變隊列中的指令,要等新指令裝入隊列中后,EU才繼續(xù)執(zhí)行指令。(4)當指令隊列已滿,而且執(zhí)行部件對總線接口部件又沒有總線訪問請求時,總線接口部件便進入空閑狀態(tài)104、寄存器結構(編程結構)

(1)通用寄存器組8086CPU有8個16位的通用寄存器,分2組。通用數據寄存器:AX,BX,CX,DX,用來存放數據或地址;一個16位寄存器也可以當作兩個8位寄存器用,此時表示為AH,AL,BH,BL,CH,CL,DH,DL?;刂芳拇嫫鰾P,堆棧指針寄存器SP,源變址寄存器SI和目的變址寄存器DI主要存放地址,也可以存放數據。11(2)段寄存器四個段寄存器為CS(代碼段寄存器)、DS(數據段寄存器)、ES(附加段寄存器)SS(堆棧段寄存器)。通過這四個段寄存器,CPU可=以定位4個邏輯段,分別為:當前代碼段當前數據段當前附加段當前堆棧段。12

(3)指令指針寄存器IP

該寄存器的內容用來指明將要執(zhí)行的下一條指令在代碼段中的位置??偩€接口部件BIU負責修改IP寄存器的值,使它始終指向將要執(zhí)行的下一條指令。13

(4)標志寄存器FR

FR主要用來標志運算結果的狀態(tài),以及控制CPU的操作。各標志位定義如圖2.2所示(共有9個標志):14標志位共有9個,6個是狀態(tài)標志,用來表示運算結果的特征,包括CF、PF、AF、ZF、SF和OF;3個是控制標志,用來控制CPU的操作,包括IF、DF和TF。CF:進位標志,表示本次運算中最高位(第7位或第15位)有進位或有借位。PF:奇偶標志。

PF=1表示本次運算中低8位有偶數個“1”;

PF=0表示有奇數個“1”。AF:輔助進位標志。AF=1表示本次運算第3位向第4位有進位或有借位。在十進制運算中作為是否進行十進制調整的依據。ZF:零標志。ZF=1表示本次運算結果為零,否則ZF=0SF:符號標志。SF=0為正數;SF=1為負數。OF:溢出標志。OF=1表示本次運算結果產生溢出,否則OF=0。所謂溢出就是指運算結果超出了相應類型數據所能表示的范圍。15DF:方向標志,用來控制串操作指令的執(zhí)行。

DF=0則串操作指令的地址自動增量;若DF=1,則自動減量。IF:中斷標志,用來控制對可屏蔽中斷的響應。IF=1,則允許CPU響應可屏蔽中斷;IF=0,則CPU不能響應可屏蔽中斷。TF:單步標志。若TF=1,則CPU進入單步工作方式,即CPU每執(zhí)行一條指令就自動產生一次內部中斷;TF=0,則CPU正常執(zhí)行。165、8088與8086的區(qū)別8088的指令隊列只有4個字節(jié),若出現1個空字節(jié),BIU就會自動取指令補充。

8088BIU與外部交換數據是8位的,I/O控制電路與專用寄存器之間的數據總線寬度也是8位的。17第二節(jié)CPU的外部結構8086/8088CPU芯片都是40條引腳的雙列直插式封裝。部分引腳采用了分時復用方式,即同一條引腳在不同的時刻具有不同的用途。如圖2.3所示。8086/8088CPU可有兩種工作模式,即最大模式和最小模式。不同模式下個別引腳的功能是不同的。188086與8088CPU外觀比較19一、8086引腳分類(1)公共引腳地址總線數據總線時鐘信號中斷信號就緒/等待信號(2)模式選擇引腳最小模式引腳最大模式引腳20最小模式和最大模式的概念所謂最小模式,就是系統中只有8086或8088一個微處理器。最大模式是相對最小模式而言。最大模式用在中等規(guī)模的或者大型的8086/8088系統中。有外圍總線控制器21(1)、公共引腳說明地址總線數據總線時鐘信號中斷信號就緒/等待信號22地址總線Intel808812345678910111213141516171819204039383736353433323130292827262524232221獨立輸出之高8位地址:A8~A15A8A14A15AD0AD7A16/S3A19/S6分時輸出的AD0~AD7,通過鎖存器產生低8位地址A0~A7,Pin16~9分時輸出的A16/S3~19/S6,通過鎖存器產生最高4位地址A16~A19共20根地址線,尋址空間為:220=1M23數據總線Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6分時輸出的AD0~AD7,直接產生8位數據D0~D7Pin16~9共8根數據線,字長為:8位24時鐘信號Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6時鐘輸入:CLK,Pin-19為8088提供基準,來自8284芯片,為4.77MHZ不可屏蔽中斷請求:NMI,輸入,上升沿觸發(fā)。INT2,Pin-17CLKNMI不可屏蔽中斷信號25可屏蔽中斷Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6可屏蔽中斷請求:INTR,輸入,高電平觸發(fā)。Pin-18中斷允許標志可屏蔽中斷請求??偩€周期的最后一個時鐘周期檢測INTR??梢酝ㄟ^8259擴充中斷源。CLKNMIINTR26就緒與等待Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6READY信號用來與慢速存儲器或外設進行速度匹配。T2時鐘周期末檢測到READY為低時,在總線周期的第3時鐘周期插入一個等待周期Tw。如此每個T后檢測,重復插入Tw直到READY變高。CLKNMIINTRREADYCPU就緒信號:READY,輸入,高電平有效。Pin-2227等待測試Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6TEST信號與WAIT指令聯合使用。CPU每5個時鐘時鐘周期檢測一次TEST信號,如高,繼續(xù)執(zhí)行WAIT,否則,跳過WAIT指令,執(zhí)行后續(xù)指令??捎脕碇С謱崿F多CPU協同工作。CLKNMIINTRREADYCPU測試信號:TEST,輸入,低電平有效。Pin-23TEST282、模式選擇信號8086的有兩種組態(tài)模式1.兩種組態(tài)分別為:最小組態(tài)(模式)和最大組態(tài)(模式)2.兩種組態(tài)的區(qū)別:(1)8086引腳 MN/MX=1時,8086工作在最小組態(tài). MN/MX=0時,8086工作在最大組態(tài).(2)最小組態(tài)時,系統中只有一個8086CPU工作,所有總線控制信號均有8086產生,總線控制邏輯被減小到最小;(3)最大組態(tài)時,8086提供一組信號,以組成多處理器/協處理器微機系統。即在一個系統中有兩個或兩個以上的微處理器,每個處理器能執(zhí)行它自己的程序。另外,系統中增加了總線控制器8288,許多總線控制信號由8288產生.29模式選擇Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6可用來選擇最大模式或最小模式工作。最大模式:存儲器與IO讀寫信號由總線控制器產生,要較多外圍芯片。最小模式:存儲器與I/O讀寫信號由CPU直接提供,外圍芯片較少。CLKNMIINTRREADYTESTMIN/MAXCPU模式選擇信號:MIN/MAX,輸入,Pin-33303、最小模式信號Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6RD:輸出,三態(tài)。存儲器與IO讀信號,CPU自動產生。DMA時浮空。Pin-32WR:輸出,三態(tài)。存儲器與IO寫信號。由CPU產生。Pin-29IO/M:存儲器與IO讀寫選擇。Pin-28CLKNMIINTRREADYTESTMIN/MAX最小模式的讀寫信號:RDIO/MWR31最小模式信號-2Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6DT/R:數據傳輸方向,輸出,三態(tài)。高,發(fā)送;低,接受。Pin-27DEN:輸出,三態(tài)。有效即低時,表示DB上的數據有效,用作總線驅動。Pin-26ALE:輸出,三態(tài)。分離AD0~AD7上的地址信號。Pin-25CLKNMIINTRREADYTESTMIN/MAX最小模式的控制信號:RDIO/MWRDT/RDENALE32最小模式信號-3Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6INTA:中斷應答,輸出,低有效。Pin-24HOLD:輸入,高有效。DMA請求。Pin-31HLDA:輸出,高有效,DMA應答。Pin-30CLKNMIINTRREADYTESTMIN/MAX最小模式的控制信號:RDIO/MWRHOLDHLDAINTAHOLD33最小模式總線周期狀態(tài)選擇IO/M,DT/R,SS0操作類型0,0,0INTA0,0,1IOR0,1,0IOW0,1,1HALT1,0,0取指令操作碼1,0,1MEMR1,1,0MEMW1,1,1NOP344、最大模式信號Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6S0~S2:總線周期狀態(tài)標志。Pin–26,27,28經過S0~S2譯碼產生存儲器與I/O讀寫信號CLKNMIINTRREADYTESTMIN/MAXRDIO/MWRHOLDHLDAINTAHOLDS2S1S0S2S1S0操作類型000INTA001IOR010IOW011HALT100取指令操作碼101MEMR110MEMW111NOP35最大模式信號-2Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6QS0~QS1:指令隊列狀態(tài)。Pin–24,25CLKNMIINTRREADYTESTMIN/MAX最的模式的控制信號:RDIO/MWRHOLDHLDAINTAHOLDS2S1S0QS1,QS0隊列性能0,0NOP0,1隊列中操作碼的第一個字節(jié)1,0隊列空1,1隊列中非第一個操作碼字節(jié)QS0QS136最大模式信號-3Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6\RQ/GT0~RQ/GT1:總線請求允許。Pin–31,30\LOCK:總線鎖存信號。低有效。Pin–29CLKNMIINTRREADYTESTMIN/MAX最的模式的總線控制信號:RDIO/MWRHOLDHLDAINTAHOLDS2S1S0QS0QS1RQ/FT0RQGT1LOCK37S3~S4:指示使用的段寄存器S3,S4代表的REG0,0DS0,1SS1,0CS(I/O,INT)1,1ES最大模式信號-3Intel808812345678910111213141516171819204039383736353433323130292827262524232221A8A14A15AD0AD7A16/S3A19/S6CLKNMIINTRREADYTESTMIN/MAXRDIO/MWRHOLDHLDAINTAHOLDS2S1S0QS0QS1RQ/FT0RQGT1LOCKS3S4S5用來表示中斷標志狀態(tài)線,當IF為1時,S5=1。

S6保持恒為0。38

:總線高位有效信號BHEAD0總線使用情況0016位數據總線上進行字傳送01高8位數據總線上進行字節(jié)傳送10低8位數據總線上進行字節(jié)傳送11無效398086微處理器信號一覽1.AD15-AD0:分時復用的地址/數據總線2.A19/S6-A16/S3:分時復用的地址/狀態(tài)線3.BHE:總線高位有效信號4.:讀信號,低有效5.:寫信號,低有效6.:存儲器或I/O端口訪問信號,低I/O,高MEM與MEMR與MEMW407.Ready:準備就緒信號8.INTR:中斷請求信號9.:中斷響應信號10.NMI:非屏蔽中斷請求信號11.:測試信號12.RESET:復位信號13.ALE:地址鎖存允許信號14.:數據發(fā)送/接收控制信號15.:數據允許信號4116.HOLD:總線請求信號17.HLDA:總線請求響應信號18.:工作模式選擇信號19.CLK:主時鐘信號20.Vcc:CPU+5V電源21.GND:電源地最大模式系統時24-31引腳重定義如下:22:總線周期狀態(tài)信號23.:封鎖信號24. :請求/同意信號25.QS1,QS0:指令隊列狀態(tài)信號42第3節(jié)8086支持的存儲器結構8086CPU有20根地址線,直接尋址內存空間為220=1M字節(jié),按(00000H-FFFFFH)編址。直接尋址外設空間為216=64K字節(jié),按(0000H-FFFFH)編址。8086CPU連接的1M字節(jié)存儲器的空間實際上分成兩個512KB的存儲體,偶體與CPU的D0~D7相連奇體與CPU的D8~D15相連。A0和/BHE信號用于選擇兩體(之一或兩者)。如下頁:43圖2.4存儲體與總線的連接44在訪問一個字節(jié)時,無論給出的是偶地址還是奇地址,都只需要一個總線周期就可以完成。在訪問一個字時,偶起始地址一個總線周期,奇起始地址兩個總線周期。MOVAL,[0080H]MOVAL,[0081H]MOVAX,[0080H]MOVAX,[0081H]訪問奇起始地址需要兩個總線周期45第4節(jié)系統配置系統配置的目的是形成存儲器和輸入/輸出接口的公共總線,方便外設和存儲器與微處理器的連接。8086/8088在最小模式與最大模式下的系統配置有較大區(qū)別,以下以8086為例分別介紹在兩種工作模式下的系統配置的典型方法。由MN/MX信號控制。高小、低大。461、最小模式的系統配置在最小模式下,存儲器和外設的地址、數據與控制信號由微處理器8086自行產生,通過三片地址鎖存器74LS373(或Intel8282)和兩片總線收發(fā)器74LS245(或Intel8286)形成外設和存儲器的總線信號。圖中8284A作為時鐘發(fā)生器使用,為8086通過精確時鐘。82828286或373或245478282、8286或373、24537324548最小模式的地址與數據分離方法8088鎖存器(74LS373)AD0|AD7ALEA0~A7D0~D7ALE49最小模式的數據驅動方法24550最小模式-讀寫電路構成方法RDWRM/IO邏輯電路IORMEMRIOWMEMW存儲器讀存儲器寫輸入輸出寫輸入輸出讀512、最大模式系統最大模式與最小模式的主要區(qū)別在于使用了總線控制器8288來產生地址鎖存器、總線收發(fā)器和訪問存儲器、I/O接口所需要的全部控制信號。在最大模式中,系統通常有兩個或多個微處理器,設置總線控制器便于這些微處理器相互協調和共享控制。有關8288可以參考書上的內容,不作要求。522、最大模式系統538288總線發(fā)生器結構狀態(tài)譯碼器命令信號發(fā)生器控制信號發(fā)生器控制邏輯54S2S1S08088輸出8288輸出000INTA\INTA001IOR\IORC010IOW\IOWC、\AIOWC011HALT-100取指令操作碼\MRDC101MEMR\MRDC110MEMW\MWTC、\AMWTC111NOP-8288總線發(fā)生器的輸出55XTBUS形成電路ALE56第5節(jié)CPU的操作和時序一、基本概念1、時鐘周期:是CPU的基本時間計量單位,它由計算機主頻決定。8086主頻是4.77MHz,一個時鐘周期就是210ns。2、總線周期:BIU完成一次訪問存儲器操作所需要的時間稱作一個總線周期。一個最基本的總線周期由4個時鐘周期組成,習慣上稱4個狀態(tài),T1,T2,T3,T4狀態(tài)。只有在CPU和內存或I/O端口之間傳遞數據以及取指令時,CPU才執(zhí)行總線周期。573、空閑周期:如果在一個總線周期之后,不立即執(zhí)行下一個總線周期,則系統總線就處于空閑狀態(tài),此時執(zhí)行空閑周期Ti。4、指令周期:就是計算機完成對一條指令的讀取并執(zhí)行這一系列步驟所需要的時間。指令周期包含一個或幾個總線周期。例如,執(zhí)行一條8位寄存器乘法(MUL),這是一條兩字節(jié)指令,需70-77個時鐘周期的執(zhí)行時間。58總線操作序列機器周期指令周期總線周期59時鐘周期①在T1狀態(tài),CPU往多路復用總線上發(fā)出地址信息,以指出要尋址的存儲單元或外設端口的地址。②在T2狀態(tài),CPU從總線上撤消地址,而使總線的低16位浮置成高阻狀態(tài),為傳輸數據作準備??偩€的最高4位(Al9一A16)用來輸出本總線周期狀態(tài)信息。這些狀態(tài)信息用來表示中斷允許狀態(tài)、當前正在使用的段寄存器名等。③在T3狀態(tài),多路總線的高4位繼續(xù)提供狀態(tài)信息,而多路總線的低16位(8088則為低8位)上出現由CPU寫出的數據或者CPU從存儲器或端口讀入的數據。

60二、系統的復位與啟動操作復位與啟動是在RESET引腳上至少維持4個時鐘周期的高電平,時序如圖2.11所示。圖2.118086/8088的復位時序61

復位時各內部寄存器的值: 標志寄存器FR 清零 指令指針I(yè)P 0000H CS寄存器 FFFFH DS寄存器 0000H SS寄存器 0000H ES寄存器 0000H

指令隊列 空 其他寄存器 0000H62三、最小模式系統中的總線操作8086CPU為了要與存儲器或I/O端口交換數據,需要執(zhí)行一個總線周期,這就是總線操作??偩€操作可以分為總線讀操作和總線寫操作。讀操作是CPU從存儲器或I/O端口讀取數據,寫操作是CPU將數

溫馨提示

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

最新文檔

評論

0/150

提交評論