本帖最后由 tongguan123 于 2022-6-8 22:30 編輯
第四章 東芝微控制器,內核示例(TLCS-870/C1)
1 CPU整體配置
CPU具有用于存儲讀取指令存儲器地址的存儲電路、用于暫時存儲讀取指令的存儲電路、用于存儲數據的存儲電路以及用于執行計算的運算電路。
 8位微控制器功能框圖

2 CPU整體配置:CPU核心(1)
PSW(程序狀態字):用于保存操作結果和指令執行結果狀態的寄存器,由各種標志組成。
通用寄存器:儲存數據的存儲電路。根據存儲電路的位置,通用寄存器分別稱為W、A、B、C、D、E、H、L等。儲存計算結果的地方稱為累加器。在TLCS-870/C1中,W、A、B、C、D、E、H、L、IX和IY這十個寄存器具有累加器功能。
程序計數器(PC):用于儲存存儲器地址以讀取指令的存儲電路。
 各種寄存器

3 CPU整體配置:CPU核心(2)
ALU(算術邏輯單元):用于執行計算的運算電路。
指令寄存器:用于暫時存儲讀取指令的存儲電路。
指令解碼器:對存儲在指令寄存器中的指令進行解密,并將其發送到控制單元。
中斷控制電路:控制中斷功能。
 計算部分、指令部分、中斷電路

4 CPU整體配置:程序計數器
程序計數器(PC)是管理下一步要執行的指令的存儲器地址的寄存器。每次執行一條指令時,程序計數器指定的地址將+n(1字指令為+1,2字指令為+2)。但是,在中斷指令等情況下,將存儲跳轉目標地址。 調用執行指令
CPU從PC讀取下一條要執行的指令所在的地址,并依次執行。例如,如果PC中存儲了0x8020(地址),則意味著CPU正在執行地址為0x8019的指令。如果從PC讀取了地址0x8020,則用于讀取CPU下一步要執行的指令的地址0x8021將儲存在PC中。 調用下一個指令的存儲地址(程序計數器)

5 CPU整體配置:通用寄存器通用寄存器可用于各種用途,例如累加器和數據處理。TLCS-870/C1有八個8位寄存器:W、A、B、C、D、E、H和L。這八個寄存器也可以作為16位寄存器成對使用:WA、BC、DE和HL。這些組合只適用于相鄰的寄存器,例如,B和E、H和E等不能組合。 通用寄存器(1)
此外,TLCS-870/C1還有兩個16位通用寄存器IX和IY。這些寄存器主要作為訪問存儲器時的索引寄存器。TLCS-870/C1有兩組這樣的寄存器。 通用寄存器(2)

6 CPU整體配置:PSW(標志)執行指令后,會有一個標志指示存儲器的內容以及計算結果的狀態。PSW(*)收集這些標志。* PSW:程序狀態字 PSW(*),儲存計算結果的狀態
下圖是A寄存器(00111110)和B寄存器(11100000)相加的例子。計算結果(100011110)儲存在A寄存器中。但是,由于A寄存器只能儲存8位,所以將進位標設置為“1”,并將進位標志保留為發生進位的信息。在A寄存器中,存儲不包括最高有效位1的(00011110)作為計算結果。例如,如果計算結果是(100000000),則在進位標志中設置1,(00000000)儲存在A寄存器中,所以在零標志中設置1。 計算結果的內容寫入PSW

7 CPU整體配置:堆棧和堆棧指針發生中斷請求時,堆棧用于臨時保存在中斷發生之前正處于運行狀態的程序的標記以及PC值。中斷處理完成之后,將恢復堆棧中保存的標志等信息,并繼續運行暫停的程序。 中斷的發生
堆棧指針用于管理堆棧,并指示PC和標志的保存地址。堆棧中要放入和取出的數據采用FILO(先進后出)法管理,先儲存的數據后取出。在該堆棧中儲存數據稱為“Push”(壓棧),從該堆棧中讀取數據叫做“Pop”(出棧)。堆棧指針由“Push”前進,由“Pop”返回。 FILO法(先進后出法)

8 中斷處理中斷處理是指當微控制器接收到外部中斷請求,并處于可以接受中斷的狀態時,暫停正在執行的程序,并執行另一個程序。當外部設備的中斷請求信號輸入到CPU上的中斷專用端子時,當前正在執行的程序暫停,微控制器切換到中斷時要執行的程序,執行該程序.當中斷處理程序結束之后,返回原程序,從暫停處理的程序重新啟動。 中斷發生時的操作

9 中斷處理:中斷類型中斷有兩種:硬件中斷和軟件中斷。
硬件中斷通過外圍電路的中斷請求信號來發生中斷。另一方面,軟件中斷則通過執行專用指令來發生中斷。 中斷類型
硬件中斷分為外部中斷和內部中斷。
當指定的信號輸入到專門的外部中斷端子時,就會發生外部中斷。內部中斷則通過微控制器內置的外圍電路發出中斷請求信號而發生。此外,根據中斷請求信號的接收方式,還分為可屏蔽中斷和不可屏蔽中斷。 發生中斷的各種因素

10 中斷處理:可屏蔽中斷這里的“可屏蔽”是指“被禁止”。當發生中斷請求信號時,如果CPU設置為啟用中斷,就可以執行中斷處理。如果中斷設置為禁用,則將忽略中斷請求信號,不執行中斷處理。忽略的中斷請求信號會被保留,直到中斷請求變為啟用或者命令被程序取消。這樣,可屏蔽中斷可以自由地啟用或者禁用中斷處理。它通常由程序設置。當CPU收到中斷請求信號之后,中斷控制電路將轉入中斷處理操作。 可屏蔽中斷

11 中斷處理:不可屏蔽中斷不可屏蔽中斷不能禁用。如果有中斷請求,CPU將無條件地執行中斷處理。不可屏蔽中斷用于進行緊急處理,例如斷電處理等數據備份處理。有一個看門狗定時器作為不可屏蔽中斷。看門狗定時器檢查微控制器是否正常工作。當檢測到異常時,產生看門狗定時器中斷,將錯誤通知給CPU或使CPU復位。 不可屏蔽中斷
復位
微控制器通?稍诮油娫磿r復位。復位使微控制器的配置返回初始狀態。復位時,程序將從頭開始運行。 復位 |