微控制器及其控制方法
【專利摘要】一種微控制器,包括:指令處理裝置;數(shù)據(jù)運(yùn)算裝置;及控制單元控制指令處理裝置完成取指令及對(duì)指令的譯碼,控制數(shù)據(jù)運(yùn)算裝置根據(jù)所述指令的譯碼或還根據(jù)所述指令進(jìn)行運(yùn)算,并將所述運(yùn)算結(jié)果寫入所述數(shù)據(jù)運(yùn)算裝置或所述指令處理裝置,其中,所述指令處理裝置包括程序計(jì)數(shù)器、程序存儲(chǔ)器,指令預(yù)取寄存器、指令寄存器、指令緩沖寄存器及指令譯碼器,所述程序計(jì)數(shù)器與所述程序存儲(chǔ)器連接,所述指令預(yù)取寄存器與所述程序存儲(chǔ)器、所述指令寄存器及所述指令緩沖寄存器連接,所述指令寄存器連接在所述指令預(yù)取寄存器及所述指令譯碼器之間,所述指令緩沖寄存器連接在所述指令預(yù)取寄存器及所述數(shù)據(jù)運(yùn)算裝置之間,所述微控制器運(yùn)行速度快且功耗小。
【專利說明】
微控制器及其控制方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及一種微控制器,尤其設(shè)及一種用于胎壓監(jiān)測(cè)的微控制器。
【背景技術(shù)】
[0002] 目前,汽車輪胎爆胎是突發(fā)性交通事故發(fā)生的重要原因,而造成汽車輪胎爆胎的 主要原因是汽車胎壓異常。目前大部分汽車都配置有汽車輪胎胎壓監(jiān)測(cè)系統(tǒng)。汽車輪胎胎 壓監(jiān)測(cè)系統(tǒng)包括輪胎壓力監(jiān)測(cè)模塊和中央監(jiān)視器。汽車輪胎胎壓監(jiān)測(cè)系統(tǒng)為通過輪胎壓力 監(jiān)測(cè)模塊采集汽車輪胎壓力和溫度數(shù)據(jù),并將采集的汽車輪胎壓力和溫度數(shù)據(jù)傳送至汽車 的駕駛艙內(nèi)的中央監(jiān)視器來提供輪胎數(shù)據(jù)給用戶,在輪胎胎壓異常時(shí),發(fā)出報(bào)警信號(hào),從而 提醒駕駛者。而輪胎壓力監(jiān)測(cè)模塊的核屯、為微控制器?,F(xiàn)有通常采用8051單片機(jī)來作為輪 胎壓力監(jiān)測(cè)模塊的微控制器,但是8051單片機(jī)執(zhí)行一條指令的時(shí)間為12個(gè)或24個(gè)時(shí)鐘周 期,指令運(yùn)行速度較慢,功耗較大。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明提供一種運(yùn)行速度快且功耗小的微控制器及控制方法。
[0004] 本發(fā)明的實(shí)施例提供一種微控制器,包括: 數(shù)據(jù)總線; 控制單元; 指令處理裝置,所述指令處理裝置與所述控制單元連接,所述控制單元控制所述指令 處理裝置完成取指令及對(duì)指令的譯碼; 數(shù)據(jù)運(yùn)算裝置,所述數(shù)據(jù)運(yùn)算裝置與所述控制單元及所述數(shù)據(jù)總線連接,所述控制單 元控制所述數(shù)據(jù)運(yùn)算裝置根據(jù)所述指令的譯碼或還根據(jù)所述指令進(jìn)行運(yùn)算,得到運(yùn)算結(jié) 果,并通過所述數(shù)據(jù)總線將所述運(yùn)算結(jié)果寫入所述數(shù)據(jù)運(yùn)算裝置或所述指令處理裝置;及 時(shí)鐘發(fā)生器,所述時(shí)鐘發(fā)生器用于產(chǎn)生所述指令處理裝置、所述數(shù)據(jù)運(yùn)算裝置及所述 控制單元的時(shí)鐘信號(hào),并將所述時(shí)鐘信號(hào)輸出至所述指令處理裝置、所述數(shù)據(jù)運(yùn)算裝置及 所述控制單元; 其中,所述指令處理裝置包括程序計(jì)數(shù)器、程序存儲(chǔ)器,指令預(yù)取寄存器、指令寄存器、 指令緩沖寄存器及指令譯碼器,所述程序計(jì)數(shù)器與所述程序存儲(chǔ)器連接,所述指令預(yù)取寄 存器與所述程序存儲(chǔ)器、所述指令寄存器及所述指令緩沖寄存器連接,所述指令寄存器連 接在所述指令預(yù)取寄存器及所述指令譯碼器之間,所述指令緩沖寄存器連接在所述指令預(yù) 取寄存器及所述數(shù)據(jù)運(yùn)算裝置之間; 其中,所述指令預(yù)取寄存器存儲(chǔ)從所述程序存儲(chǔ)器中逐條讀取的指令;所述指令寄存 器存儲(chǔ)從所述指令預(yù)取寄存器中讀取的指令或指令的第一個(gè)字節(jié);所述指令緩沖寄存器存 儲(chǔ)從所述指令預(yù)取寄存器中讀取的指令的第二個(gè)字節(jié)。
[0005] 較佳的,所述微控制器還包括地址總線及特殊功能寄存器組,所述特殊功能寄存 器組連接在所述地址總線及數(shù)據(jù)總線之間,所述控制單元將所述指令緩沖寄存器中的指令 的操作數(shù)地址或相對(duì)位移量通過所述地址總線寫入所述特殊功能寄存器組,并通過所述數(shù) 據(jù)總線將所述特殊功能寄存器組中的操作數(shù)地址對(duì)應(yīng)的操作數(shù)或相對(duì)位移量傳送至數(shù)據(jù) 運(yùn)算裝置,W供所述數(shù)據(jù)運(yùn)算裝置進(jìn)行運(yùn)算。
[0006] 較佳的,所述數(shù)據(jù)運(yùn)算裝置包括數(shù)據(jù)選擇器、多路選擇器及運(yùn)算單元,所述數(shù)據(jù)選 擇器與所述指令緩沖寄存器及所述地址總線連接,在所述指令緩沖寄存器中的指令為操作 數(shù)時(shí),所述控制單元通過所述多路選擇器將所述指令緩沖寄存器中的操作數(shù)傳送至所述運(yùn) 算單元,在所述指令緩沖寄存器中的指令為操作數(shù)地址或相對(duì)位移量時(shí),所述控制單元通 過所述所述數(shù)據(jù)選擇器將所述指令緩沖寄存器中的操作數(shù)地址或相對(duì)位移量通過所述地 址總線寫入所述特殊功能寄存器組。
[0007] 較佳的,所述微控制器還包括中斷控制模塊,所述中斷控制模塊包括:中斷控制寄 存器,所述控制單元通過設(shè)置所述中斷控制寄存器來允許或者不允許中斷;中斷信號(hào)寄存 器,所述控制單元在允許中斷時(shí),從中斷源采集中斷信號(hào),并將從所述中斷源所采集的中斷 信號(hào)存儲(chǔ)在所述中斷信號(hào)寄存器;優(yōu)先級(jí)編碼器,所述優(yōu)先級(jí)編碼器中存儲(chǔ)有預(yù)設(shè)的各中 斷的優(yōu)先級(jí)別,所述控制單元將所述中斷信號(hào)寄存器中的中斷信號(hào)傳送至優(yōu)先級(jí)編碼器, 并控制所述優(yōu)先級(jí)編碼器根據(jù)預(yù)設(shè)的各中斷的優(yōu)先級(jí)別來確定所采集的中斷信號(hào)的優(yōu)先 級(jí)別;中斷信號(hào)緩沖器,所述控制單元將所述優(yōu)先級(jí)別最高的中斷信號(hào)傳送至所述中斷信 號(hào)緩沖器;及中斷向量寄存器,所述控制單元確定中斷信號(hào)緩沖器中的優(yōu)先級(jí)別最高的中 斷信號(hào)的中斷地址,并將所述中斷地址存儲(chǔ)在所述中斷向量寄存器。
[0008] 較佳的,所述指令包括運(yùn)算指令及跳轉(zhuǎn)指令,所述跳轉(zhuǎn)指令包括雙字節(jié)的跳轉(zhuǎn)指 令及=字節(jié)的跳轉(zhuǎn)指令,所述運(yùn)算指令的處理需要一個(gè)包括四個(gè)時(shí)鐘周期的指令周期,所 述雙字節(jié)的跳轉(zhuǎn)指令的處理需要一個(gè)包括五個(gè)時(shí)鐘周期的指令周期,所述=字節(jié)的跳轉(zhuǎn)指 令的處理需要一個(gè)包括六個(gè)時(shí)鐘周期的指令周期。
[0009] 本發(fā)明還提供一種控制方法,所述控制方法包括: 提供一數(shù)據(jù)總線; 提供一指令處理裝置,所述指令處理裝置包括程序計(jì)數(shù)器、程序存儲(chǔ)器,指令預(yù)取寄存 器、指令寄存器、指令緩沖寄存器及指令譯碼器; 提供一數(shù)據(jù)運(yùn)算裝置; 提供一時(shí)鐘發(fā)生器,所述時(shí)鐘發(fā)生器產(chǎn)生所述指令處理裝置及所述數(shù)據(jù)運(yùn)算裝置的時(shí) 鐘信號(hào),并將所述時(shí)鐘信號(hào)輸出至所述指令處理裝置及所述數(shù)據(jù)運(yùn)算裝置; 控制所述指令預(yù)取寄存器根據(jù)所述程序計(jì)數(shù)器中的地址從所述程序存儲(chǔ)器中獲取指 令; 控制所述指令寄存器從所述指令預(yù)取寄存器中獲取指令的第一個(gè)字節(jié),控制所述指令 緩沖寄存器從所述指令預(yù)取寄存器中獲取指令的第二個(gè)字節(jié),并將所述指令的第二個(gè)字節(jié) 輸出至所述數(shù)據(jù)運(yùn)算裝置; 控制所述指令譯碼器對(duì)所述指令的第一個(gè)字節(jié)譯碼;及 控制所述數(shù)據(jù)運(yùn)算裝置根據(jù)所述指令的第一個(gè)字節(jié)的譯碼及所述指令的第二個(gè)字節(jié) 進(jìn)行運(yùn)算,得到運(yùn)算結(jié)果,并通過所述數(shù)據(jù)總線將所述運(yùn)算結(jié)果寫入所述數(shù)據(jù)運(yùn)算裝置或 所述指令處理裝置。
[0010] 較佳的,所述控制方法還包括:提供一地址總線;提供一特殊功能寄存器組;及將 所述指令緩沖寄存器中的指令的操作數(shù)地址通過所述地址總線寫入所述特殊功能寄存器 組,并通過所述數(shù)據(jù)總線將所述特殊功能寄存器組中的數(shù)據(jù)傳送至數(shù)據(jù)運(yùn)算裝置,W供所 述數(shù)據(jù)運(yùn)算裝置進(jìn)行運(yùn)算。
[0011] 較佳的,所述控制方法還包括:提供所述數(shù)據(jù)運(yùn)算裝置包括數(shù)據(jù)選擇器、多路選擇 器及運(yùn)算單元;在所述指令緩沖寄存器中的指令為操作數(shù)時(shí),通過所述多路選擇器將所述 指令緩沖寄存器中的操作數(shù)傳送至所述運(yùn)算單元;及在所述指令緩沖寄存器中的指令為操 作數(shù)地址或相對(duì)位移量時(shí),通過所述所述數(shù)據(jù)選擇器將所述指令緩沖寄存器中的操作數(shù)地 址或相對(duì)位移量通過所述地址總線寫入所述特殊功能寄存器組。
[0012] 較佳的,所述控制方法還包括:所述指令為雙字節(jié)跳轉(zhuǎn)指令,在第一個(gè)時(shí)鐘周期, 控制所述指令寄存器從所述指令預(yù)取寄存器中獲取指令的第一個(gè)字節(jié);在第二個(gè)時(shí)鐘周 期,確定是否需要跳轉(zhuǎn),當(dāng)確定需要跳轉(zhuǎn)時(shí),將所述程序計(jì)數(shù)器中的地址傳送至所述數(shù)據(jù)運(yùn) 算裝置,并將所述指令緩沖寄存器中的指令的第二個(gè)字節(jié)輸出至所述數(shù)據(jù)運(yùn)算裝置;在第 =個(gè)時(shí)鐘周期,控制所述數(shù)據(jù)運(yùn)算裝置根據(jù)所接收的所述程序計(jì)數(shù)器中的地址及所述指令 緩沖寄存器中的指令的第二個(gè)字節(jié)進(jìn)行與運(yùn)算來得到跳轉(zhuǎn)地址;在第四個(gè)時(shí)鐘周期,將所 述跳轉(zhuǎn)地址寫入所述程序計(jì)數(shù)器中,控制所述指令預(yù)取寄存器根據(jù)所述程序計(jì)數(shù)器中的跳 轉(zhuǎn)地址從所述程序存儲(chǔ)器中獲取指令,并將所述程序計(jì)數(shù)器中的地址加一;及在第五個(gè)時(shí) 鐘周期,將所述指令譯碼器所譯碼的信息丟棄,并等待一個(gè)時(shí)鐘周期。
[0013] 較佳的,所述控制方法還包括:提供一中斷信號(hào)寄存器;提供一優(yōu)先級(jí)編碼器;提 供一中斷信號(hào)緩沖器;提供一中斷向量寄存器;提供一二級(jí)堆找;當(dāng)允許中斷時(shí),在第一個(gè) 時(shí)鐘周期,采集中斷信號(hào),將所采集的中斷信號(hào)寫入所述中斷信號(hào)寄存器,并將所述中斷信 號(hào)從所述中斷信號(hào)寄存器傳送至所述優(yōu)先級(jí)編碼器,控制所述優(yōu)先級(jí)編碼器根據(jù)預(yù)設(shè)的各 中斷的優(yōu)先級(jí)別來確定所述中斷信號(hào)的優(yōu)先級(jí)別;在第二個(gè)時(shí)鐘周期,將優(yōu)先級(jí)別高的中 斷信號(hào)送往中斷信號(hào)緩沖器;在第=個(gè)時(shí)鐘周期,根據(jù)中斷信號(hào)緩沖器中的中斷信號(hào)來確 定中斷地址,將所述中斷地址存儲(chǔ)在中斷向量寄存器,并將所述程序計(jì)數(shù)器中的地址壓入 所述二級(jí)堆找中進(jìn)行保存,并將所述中斷地址寫入所述程序計(jì)數(shù)器;及在第四個(gè)時(shí)鐘周期, 根據(jù)所述程序計(jì)數(shù)器中的中斷地址,控制所述指令預(yù)取寄存器從所述程序存儲(chǔ)器中讀取指 令。
[0014] 上述發(fā)明的微控制器利用簡(jiǎn)單的結(jié)構(gòu)即可實(shí)現(xiàn)胎壓監(jiān)測(cè),且執(zhí)行一條指令的時(shí)間 最長(zhǎng)的為6個(gè)時(shí)鐘周期,指令運(yùn)行速度快且功耗小。
【附圖說明】 [001引附圖中; 圖1是本發(fā)明一實(shí)施例的微控制器的模塊示意圖。
[0016] 圖2是本發(fā)明一實(shí)施例的微控制器的控制原理圖。
[0017] 圖3是本發(fā)明一實(shí)施例的微控制器的狀態(tài)轉(zhuǎn)換圖。
[0018] 主要元件符號(hào)說明
如下【具體實(shí)施方式】將結(jié)合上述附圖進(jìn)一步說明本發(fā)明。
【具體實(shí)施方式】
[0019]下面結(jié)合附圖,通過對(duì)本發(fā)明的【具體實(shí)施方式】詳細(xì)描述,將使本發(fā)明的技術(shù)方案 及其他有益效果顯而易見??蒞理解,附圖僅提供參考與說明用,并非用來對(duì)本發(fā)明加 W限 審IJ。附圖中顯示的尺寸僅僅是為便于清晰描述,而并不限定比例關(guān)系。
[0020] 請(qǐng)參考圖I,為本發(fā)明實(shí)施例的微控制器I的系統(tǒng)框圖。在本實(shí)施例中,所述微控制 器1用于胎壓監(jiān)測(cè)。在其他實(shí)施例中,所述微控制器1還可用于執(zhí)行其他操作。在本實(shí)施例 中,所述微控制器1從外部傳感器2處獲得數(shù)據(jù)。在本實(shí)施例中,所述數(shù)據(jù)為輪胎壓力及溫度 信息。所述微控制器1還將所獲得的數(shù)據(jù)進(jìn)行處理,并將所處理的數(shù)據(jù)傳送至中央監(jiān)視器3。 在本實(shí)施例中,所述微控制器1包括多個(gè)功能模塊,分別為地址總線10、數(shù)據(jù)總線20、時(shí)鐘發(fā) 生器30、指令處理裝置40、數(shù)據(jù)運(yùn)算裝置50、外圍功能模塊60及控制單元70。
[0021] 請(qǐng)繼續(xù)參考圖2,所述時(shí)鐘發(fā)生器30用于產(chǎn)生微控制器1的各個(gè)功能模塊的時(shí)鐘信 號(hào),并將所述時(shí)鐘信號(hào)輸出至對(duì)應(yīng)的功能模塊。
[0022] 所述指令處理裝置40包括程序計(jì)數(shù)器41、程序存儲(chǔ)器42、指令預(yù)取單元43及指令 譯碼器44。所述程序計(jì)數(shù)器41與所述程序存儲(chǔ)器42連接,存儲(chǔ)需要從程序存儲(chǔ)器42中讀取 的指令的地址。所述程序存儲(chǔ)器42用于存儲(chǔ)在微控制器1上運(yùn)行的程序代碼,所述程序代碼 由若干指令組成。所述指令包括單字節(jié)指令、雙字節(jié)指令及=字節(jié)指令。其中,所述指令大 部分為單字節(jié)指令。所述單字節(jié)指令包括運(yùn)算指令。所述雙字節(jié)指令及所述=字節(jié)指令都 包括運(yùn)算指令及跳轉(zhuǎn)指令。當(dāng)所述指令為運(yùn)算指令時(shí),所述雙字節(jié)指令的第一個(gè)字節(jié)為操 作碼,所述雙字節(jié)指令的第二個(gè)字節(jié)為操作數(shù)或者操作數(shù)地址,所述=字節(jié)指令的第一個(gè) 字節(jié)為操作碼,所述=字節(jié)指令的第二個(gè)字節(jié)及所述=字節(jié)指令的第=個(gè)字節(jié)分別為操作 數(shù)及操作數(shù)地址之一。當(dāng)所述指令為跳轉(zhuǎn)指令時(shí),所述雙字節(jié)指令的第一個(gè)字節(jié)為操作碼, 所述雙字節(jié)指令的第二個(gè)字節(jié)為相對(duì)位移量,所述=字節(jié)指令的第一個(gè)字節(jié)為操作碼,所 述=字節(jié)指令的第二個(gè)字節(jié)及第=個(gè)字節(jié)為相對(duì)位移量。其中,數(shù)據(jù)在存儲(chǔ)器中存放時(shí)采 用W低字節(jié)為字地址的存放方式。
[0023] 所述指令預(yù)取單元43連接在所述程序存儲(chǔ)器42及所述指令譯碼器44之間,用于存 儲(chǔ)從所述程序存儲(chǔ)器42中逐條讀取的指令。所述指令預(yù)取單元43包括指令預(yù)取寄存器431、 指令寄存器432及指令緩沖寄存器433。所述指令預(yù)取寄存器431與所述程序存儲(chǔ)器42、所述 指令寄存器432及所述指令緩沖寄存器433連接,存儲(chǔ)從所述程序存儲(chǔ)器42中逐條讀取的指 令。所述指令寄存器432連接在所述指令預(yù)取寄存器431及所述指令譯碼器44之間,用于存 儲(chǔ)從所述指令預(yù)取寄存器431中讀取的指令或指令的第一個(gè)字節(jié)。其中,當(dāng)指令為單字節(jié)指 令時(shí),所述指令寄存器432存儲(chǔ)從所述指令預(yù)取寄存器431中讀取指令,當(dāng)指令為雙字節(jié)指 令時(shí),所述指令寄存器432存儲(chǔ)從所述指令預(yù)取寄存器431中讀取指令的第一個(gè)字節(jié)。所述 指令緩沖寄存器433連接在所述指令預(yù)取寄存器431及所述數(shù)據(jù)運(yùn)算裝置50之間,用于存儲(chǔ) 從所述指令預(yù)取寄存器431中讀取的指令的第二個(gè)字節(jié)。所述指令譯碼器44用于對(duì)指令寄 存器432中存儲(chǔ)的內(nèi)容進(jìn)行譯碼,來得到譯碼信息。其中,所述存儲(chǔ)的內(nèi)容為指令或指令的 第一個(gè)字節(jié)。所述譯碼信息為運(yùn)算信息,如加、減、乘、除等,或者跳轉(zhuǎn)信息。
[0024] 所述數(shù)據(jù)運(yùn)算裝置50包括數(shù)據(jù)選擇器51、工作寄存器組52、累加器53、第一多路選 擇器54,第二多路選擇器55、運(yùn)算單元56及數(shù)據(jù)緩沖器57。所述數(shù)據(jù)選擇器51包括兩輸入端 及一輸出端,所述兩輸入端分別與所述指令緩沖寄存器433及所述數(shù)據(jù)緩沖器51連接,所述 輸出端與所述地址總線10連接。所述數(shù)據(jù)選擇器51用于從所述指令緩沖寄存器433及所述 數(shù)據(jù)緩沖器51通過所述兩輸入端輸入的輸入信號(hào)中選擇一輸入信號(hào),并通過所述輸出端輸 出至所述地址總線10。
[0025] 所述工作寄存器組52與所述數(shù)據(jù)總線20連接,所述工作寄存器組52包括若干寄存 器,用于暫時(shí)存儲(chǔ)等待處理的數(shù)據(jù)或者已經(jīng)處理過的數(shù)據(jù)。
[0026] 所述累加器53與所述數(shù)據(jù)總線20連接,用于存儲(chǔ)運(yùn)算的操作數(shù)及運(yùn)算結(jié)果。
[0027] 所述第一多路選擇器54為四選一多路選擇器。所述第一多路選擇器54具有四個(gè)輸 入端及一輸出端。所述第一多路選擇器54的四個(gè)輸入端分別與所述工作寄存器組52、所述 累加器53、所述指令緩沖寄存器433及所述程序計(jì)數(shù)器41連接。所述第一多路選擇器54的輸 出端與所述運(yùn)算單元56連接。所述第一多路選擇器54用于從所述工作寄存器組52、所述累 加器53、所述指令緩沖寄存器433及所述程序計(jì)數(shù)器41通過所述四個(gè)輸入端所輸入的輸入 信號(hào)中選擇一輸入信號(hào),并通過所述輸出端輸出至所述運(yùn)算單元56。
[00%]所述第二多路選擇器55為=選一多路選擇器。所述第二多路選擇器55具有=個(gè)輸 入端及一輸出端。所述第二多路選擇器55的=個(gè)輸入端分別與所述工作寄存器組52、所述 累加器53及所述指令緩沖寄存器433連接。所述第二多路選擇器55的輸出端與所述運(yùn)算單 元56連接。所述第二多路選擇器55用于從所述工作寄存器組52、所述累加器53及所述指令 緩沖寄存器433通過所述=個(gè)輸入端所輸入的輸入信號(hào)中選擇一輸入信號(hào),并通過所述輸 出端輸出至所述運(yùn)算單元56。
[0029] 所述運(yùn)算單元56用于進(jìn)行運(yùn)算。所述數(shù)據(jù)緩沖器57連接在所述運(yùn)算單元56及數(shù)據(jù) 總線20之間,用于暫時(shí)存儲(chǔ)所述運(yùn)算單元56運(yùn)算的結(jié)果。
[0030] 所述外圍功能模塊60連接在地址總線10及數(shù)據(jù)總線20之間,所述外圍功能模塊60 包括定時(shí)器61、1/0( i噸ut/output,輸入輸出)端口62、串口 63、CRC(切Clic Redundan巧 Code,循環(huán)冗余碼校驗(yàn))寄存器64及特殊功能寄存器組65。所述定時(shí)器61用于定時(shí)計(jì)數(shù)。所 述I/O端口62,用于從外部傳感器2獲取數(shù)據(jù)。所述串口63用于與支持串行總線的中央監(jiān)視 器3進(jìn)行通信。所述CRC寄存器64用于檢測(cè)所接收的數(shù)據(jù)是否錯(cuò)誤。所述特殊功能寄存器組 65包括若干寄存器,用于分別存放從地址總線10傳送過來的數(shù)據(jù)及預(yù)先存儲(chǔ)的應(yīng)用程序的 第一條指令的地址。
[0031] 所述控制單元70與所述指令處理裝置40、數(shù)據(jù)運(yùn)算裝置50及外圍功能模塊60連 接。所述微控制器1用于控制所述指令處理裝置40、所述數(shù)據(jù)運(yùn)算裝置50及所述外圍功能模 塊60的操作。所述控制單元70通過所述I/O端口 62從外部傳感器2處獲得數(shù)據(jù)。所述控制單 元70通過所述串口63將處理后的數(shù)據(jù)傳送至中央監(jiān)視器3。在本實(shí)施例中,所述控制單元70 控制所述CRC寄存器對(duì)所獲取的數(shù)據(jù)進(jìn)行校驗(yàn)得到一校驗(yàn)碼,根據(jù)所述校驗(yàn)碼及預(yù)存的輪 胎編號(hào)來形成數(shù)據(jù)帖,并將所述數(shù)據(jù)帖通過所述串口 63傳送至所述中央監(jiān)視器3。
[0032] 在本實(shí)施例中,當(dāng)所述控制單元70控制所述譯碼器對(duì)所述指令譯碼得到的信息為 運(yùn)算信息時(shí),所述指令為運(yùn)算指令,當(dāng)所述控制單元70控制所述譯碼器對(duì)所述指令譯碼得 到的信息為跳轉(zhuǎn)信息時(shí),所述指令為跳轉(zhuǎn)指令。
[0033] 在本實(shí)施例中,所述微控制器1的工作方式包括正常工作模式、空閑模式及掉電模 式。在空閑模式下,所述微控制器1的時(shí)鐘周期增大,從而降低功耗。在空閑模式下,僅有中 斷信號(hào)或者系統(tǒng)復(fù)位可將微控制器1從空閑模式下喚醒。在掉電模式下,所有時(shí)鐘發(fā)生器30 停止工作,更加省電。
[0034] 在本實(shí)施例中,所述定時(shí)器61還響應(yīng)用戶的設(shè)置定時(shí)監(jiān)督所述傳感器2,即所述定 時(shí)器61監(jiān)督所述傳感器2在預(yù)定時(shí)間內(nèi)是否提供響應(yīng)信號(hào)給所述控制單元70。當(dāng)所述微控 制器1處于空閑模式時(shí),所述控制單元70在所述定時(shí)器61計(jì)時(shí)完成時(shí)判斷所述傳感器2是否 提供響應(yīng)信號(hào)。當(dāng)所述傳感器2提供響應(yīng)信號(hào)時(shí),所述微控制器I繼續(xù)處于空閑模式。在本實(shí) 施例中,當(dāng)所述傳感器2不提供響應(yīng)信號(hào)時(shí),所述定時(shí)器61提供一警告信號(hào)至所述控制單元 70,所述控制單元70根據(jù)所述警告信號(hào)將所述特殊功能寄存器66中預(yù)先存儲(chǔ)的應(yīng)用程序的 指令的地址寫入所述程序計(jì)數(shù)器41,此時(shí),所述控制單元70繼續(xù)在所述定時(shí)器61計(jì)時(shí)完成 時(shí)判斷所述傳感器2是否提供響應(yīng)信號(hào),并在所述傳感器2不提供響應(yīng)信號(hào)時(shí),根據(jù)所述警 告信號(hào)報(bào)警。其中,所述微控制器1可W與外部的警告單元連接,并通過所述警告單元報(bào)警。 在本實(shí)施例中,所述警告單元可W為卿趴或者閃光燈等。從而,可通過2次判斷所述傳感器 是否在預(yù)定時(shí)間內(nèi)提供響應(yīng)信號(hào),來防止誤判斷。顯然,在其他實(shí)施例中,所述控制單元70 可在僅通過1次判斷所述傳感器2在預(yù)定時(shí)間內(nèi)沒有提供響應(yīng)信號(hào)時(shí),根據(jù)所述警告信號(hào)報(bào) 警。在本實(shí)施例中,所述微控制器1還包括中斷控制模塊80。所述外圍功能模塊60還包括二 級(jí)堆找66。所述控制單元70控制所述中斷控制模塊80被中斷源所觸發(fā),并控制所述中斷控 制模塊80執(zhí)行所述中斷源所對(duì)應(yīng)的中斷程序。在本實(shí)施例中,所述中斷源包括外部中斷及 內(nèi)部中斷。所述外部中斷包括低壓中斷、看口狗中斷、ADC中斷及傳感器中斷。所述內(nèi)部中斷 包括定時(shí)器中斷、串口中斷及CRC中斷。所述二級(jí)堆找66用于存儲(chǔ)所述程序計(jì)數(shù)器41的地 址。
[0035] 所述中斷控制模塊80包括中斷控制寄存器81、中斷信號(hào)寄存器82、優(yōu)先級(jí)編碼器 83、中斷信號(hào)緩沖器84及中斷向量寄存器85。所述控制單元70通過設(shè)置所述中斷控制寄存 器81來允許或者不允許中斷。如控制單元70將中斷控制寄存器81設(shè)置為T'來允許中斷,并 將中斷控制寄存器81設(shè)置為"0"來不允許中斷。僅當(dāng)中斷允許且存在中斷時(shí),系統(tǒng)才進(jìn)入中 斷響應(yīng),當(dāng)中斷不允許而存在中斷時(shí),系統(tǒng)不進(jìn)入中斷響應(yīng)。所述中斷信號(hào)寄存器82用于存 儲(chǔ)從所述中斷源處采集的中斷信號(hào),其中,所述中斷信號(hào)的數(shù)量可為一個(gè)或多個(gè)。所述優(yōu)先 級(jí)編碼器83中存儲(chǔ)有預(yù)設(shè)的各中斷的優(yōu)先級(jí)別,如所述低壓中斷具有最高的優(yōu)先權(quán)等。所 述中斷信號(hào)緩沖器84用于存儲(chǔ)所述采集的中斷信號(hào)中的最高優(yōu)先權(quán)級(jí)別的中斷信號(hào)。所述 中斷向量寄存器85用于存儲(chǔ)中斷信號(hào)對(duì)應(yīng)的中斷地址。其中,每個(gè)中斷都有一個(gè)中斷服務(wù) 程序,所述中斷服務(wù)程序的入口地址為中斷地址。不同的中斷對(duì)應(yīng)不同的中斷地址。
[0036] 下面結(jié)合微控制器1的各個(gè)功能模塊對(duì)微控制器1的控制方法進(jìn)行說明,所述微控 制器1的控制方法包括運(yùn)算指令的處理過程、跳轉(zhuǎn)指令的處理過程及中斷信號(hào)的處理過程。
[0037] 所述運(yùn)算指令的處理需要一個(gè)包括四個(gè)時(shí)鐘周期的指令周期。下面具體說明單字 節(jié)的運(yùn)算指令的處理過程: 在第一個(gè)時(shí)鐘周期,執(zhí)行取指令操作:所述控制單元70控制所述指令寄存器432從所述 指令預(yù)取寄存器431中獲取當(dāng)前需要執(zhí)行的指令(簡(jiǎn)稱當(dāng)前指令),并將所述當(dāng)前指令傳送 至所述譯碼器進(jìn)行譯碼來得到運(yùn)算信息,所述控制單元70還控制所述指令預(yù)取寄存器431 根據(jù)所述程序計(jì)數(shù)器41中的地址從所述程序存儲(chǔ)器42中獲取下一條指令。在第二個(gè)時(shí)鐘周 期,執(zhí)行讀操作數(shù)操作:所述控制單元70將所述工作寄存器組52及所述累加器53中的數(shù)據(jù) 通過所述第一多路選擇器54或所述第二多路選擇器55輸出至所述運(yùn)算單元56。在第=個(gè)時(shí) 鐘周期,執(zhí)行運(yùn)算操作:所述控制單元70控制所述運(yùn)算單元56根據(jù)所述工作寄存器組52及 所述累加器53中的數(shù)據(jù)及所述譯碼器譯碼得到的運(yùn)算信息進(jìn)行運(yùn)算。在第四個(gè)時(shí)鐘周期, 執(zhí)行數(shù)據(jù)寫回操作:所述控制單元70將所運(yùn)算的結(jié)果暫時(shí)存儲(chǔ)在所述數(shù)據(jù)緩沖器57,并將 所述運(yùn)算結(jié)果從所述數(shù)據(jù)緩沖器57寫入所述工作寄存器組52及所述累加器53中。同時(shí),所 述控制單元70還將所述程序計(jì)數(shù)器41中的地址加一。所述處理過程依序循環(huán)執(zhí)行直至所述 程序存儲(chǔ)器42中的指令讀取完。
[0038] 雙字節(jié)的運(yùn)算指令的處理過程與單字節(jié)的運(yùn)算指令的處理過程相似,不同之處在 于: 在第一個(gè)時(shí)鐘周期,執(zhí)行取指令操作時(shí),所述控制單元70控制所述指令寄存器432從所 述指令預(yù)取寄存器431中獲取當(dāng)前指令的第一個(gè)字節(jié),從而所述指令預(yù)取寄存器431中為當(dāng) 前指令的第二個(gè)字節(jié),所述控制單元70還將所述指令寄存器432中的所述當(dāng)前指令的第一 個(gè)字節(jié)傳送至所述譯碼器進(jìn)行譯碼來得到運(yùn)算信息。在第二個(gè)時(shí)鐘周期,執(zhí)行讀操作數(shù)操 作時(shí),所述控制單元70控制所述指令緩沖寄存器433從所述指令預(yù)取寄存器431中獲取當(dāng)前 指令的第二個(gè)字節(jié)。當(dāng)當(dāng)前指令的第二個(gè)字節(jié)為操作數(shù)時(shí),所述控制單元70通過所述第一 多路選擇器54或所述第二多路選擇器55將所述指令緩沖寄存器433中的操作數(shù)輸出至所述 運(yùn)算單元56,當(dāng)當(dāng)前指令的第二個(gè)字節(jié)為操作數(shù)地址時(shí),所述控制單元70通過所述數(shù)據(jù)選 擇器51將所述指令緩沖寄存器433中的操作數(shù)地址通過所述地址總線10寫入特殊功能寄存 器組65,并通過所述數(shù)據(jù)總線20從所述特殊功能寄存器組65中讀取操作數(shù)或者還通過所述 第一多路選擇器54或所述第二多路選擇器55從所述工作寄存器組52及所述累加器53中讀 取數(shù)據(jù)。所述控制單元70還控制所述指令預(yù)取寄存器431在所述指令緩沖寄存器433從所述 指令預(yù)取寄存器431中獲取當(dāng)前指令的第二個(gè)字節(jié)時(shí),從所述程序存儲(chǔ)器42組中獲取下一 條指令。
[0039] =字節(jié)的運(yùn)算指令的處理過程與單字節(jié)的運(yùn)算指令的處理過程相似,不同之處在 于: 在第一個(gè)時(shí)鐘周期,執(zhí)行取指令操作時(shí):所述控制單元70控制所述指令寄存器432從所 述指令預(yù)取寄存器431中獲取當(dāng)前指令的第一個(gè)字節(jié),并控制所述指令緩沖寄存器433從所 述指令預(yù)取寄存器431中獲取當(dāng)前指令的第=個(gè)字節(jié),從而所述指令預(yù)取寄存器431中的為 當(dāng)前指令的第二個(gè)字節(jié),所述控制單元70還將所述指令寄存器432中的當(dāng)前指令的第一個(gè) 字節(jié)傳送至所述譯碼器進(jìn)行譯碼來得到運(yùn)算信息。在第二個(gè)時(shí)鐘周期,執(zhí)行讀操作數(shù)操作 時(shí):當(dāng)當(dāng)前指令的第=個(gè)字節(jié)為操作數(shù)時(shí),所述控制單元70通過所述第一多路選擇器54或 所述第二多路選擇器55從所述指令緩沖寄存器433獲取所述操作數(shù)。當(dāng)當(dāng)前指令的第=個(gè) 字節(jié)為操作數(shù)地址時(shí),所述控制單元70通過所述數(shù)據(jù)選擇器51將所述指令緩沖寄存器433 中的操作數(shù)地址通過所述地址總線10傳送至特殊功能寄存器組65,并通過所述數(shù)據(jù)總線20 從所述特殊功能寄存器組65讀取操作數(shù)地址對(duì)應(yīng)的操作數(shù)。所述控制單元70還執(zhí)行雙字節(jié) 的運(yùn)算指令的第二個(gè)時(shí)鐘周期的操作。
[0040] 所述雙字節(jié)的跳轉(zhuǎn)指令的處理需要一個(gè)包括五個(gè)時(shí)鐘周期的指令周期。下面具體 說明雙字節(jié)的跳轉(zhuǎn)指令的處理過程: 在第一個(gè)時(shí)鐘周期,執(zhí)行取指令操作:所述控制單元70控制所述指令寄存器432從所述 指令預(yù)取寄存器431中獲取當(dāng)前指令的第一個(gè)字節(jié),從而所述指令預(yù)取寄存器431中存儲(chǔ)的 為當(dāng)前指令的第二個(gè)字節(jié)。所述控制單元70還將所述指令寄存器432中存儲(chǔ)的所述當(dāng)前指 令的第一個(gè)字節(jié)傳送至所述譯碼器進(jìn)行譯碼來得到跳轉(zhuǎn)信息。其中,所述跳轉(zhuǎn)指令的第二 個(gè)字節(jié)為相對(duì)位移量。
[0041] 在第二個(gè)時(shí)鐘周期,執(zhí)行判斷是否跳轉(zhuǎn)操作:所述控制單元70控制所述指令緩沖 寄存器433從所述指令預(yù)取寄存器431中獲取當(dāng)前指令的第二個(gè)字節(jié),并根據(jù)當(dāng)前累加器53 中的數(shù)據(jù)來確定是否需要跳轉(zhuǎn)。當(dāng)確定不需要跳轉(zhuǎn)時(shí),所述控制單元70不執(zhí)行跳轉(zhuǎn),而繼續(xù) 執(zhí)行下一條指令。當(dāng)確定需要跳轉(zhuǎn)時(shí),所述控制單元70通過所述第一多路選擇器54將所述 程序計(jì)數(shù)器41中的地址傳送至所述運(yùn)算單元56,并通過所述數(shù)據(jù)選擇器51將所述指令緩沖 寄存器433中的相對(duì)位移量通過所述地址總線10寫入所述特殊功能寄存器66,并通過所述 數(shù)據(jù)總線20將所述相對(duì)位移量提供給所述運(yùn)算單元56。
[0042] 在第=個(gè)時(shí)鐘周期,執(zhí)行運(yùn)算操作:所述控制單元70控制所述運(yùn)算單元56根據(jù)所 接收的所述程序計(jì)數(shù)器41中的地址及所述相對(duì)位移量進(jìn)行與運(yùn)算來得到跳轉(zhuǎn)地址。
[0043] 在第四個(gè)時(shí)鐘周期,執(zhí)行數(shù)據(jù)寫回操作:所述控制單元70將運(yùn)算得到的跳轉(zhuǎn)地址 暫時(shí)存儲(chǔ)在所述數(shù)據(jù)緩沖器57,并通過所述數(shù)據(jù)選擇器51將所述數(shù)據(jù)緩沖器57中的跳轉(zhuǎn)地 址通過所述地址總線10寫入特殊功能寄存器66,并通過所述數(shù)據(jù)總線20將所述跳轉(zhuǎn)地址寫 入所述程序計(jì)數(shù)器41中。所述控制單元70控制所述指令預(yù)取寄存器431根據(jù)所述程序計(jì)數(shù) 器41中的跳轉(zhuǎn)地址從所述程序存儲(chǔ)器42中獲取指令,并將所述程序計(jì)數(shù)器41中的跳轉(zhuǎn)地址 加一。
[0044] 在第五個(gè)時(shí)鐘周期,執(zhí)行等待操作:所述控制單元70將所述指令譯碼器44所譯碼 的信息丟棄,并等待一個(gè)時(shí)鐘周期。隨后,微控制器1順序執(zhí)行跳轉(zhuǎn)后的指令。
[0045] 所述=字節(jié)的跳轉(zhuǎn)指令的處理與雙字節(jié)的跳轉(zhuǎn)指令的處理相似,不同之處在于: 所述=字節(jié)的跳轉(zhuǎn)指令需要一個(gè)包括六個(gè)時(shí)鐘周期的指令周期。在第一個(gè)時(shí)鐘周期, 執(zhí)行取指令操作時(shí):所述控制單元70控制所述指令寄存器432從所述指令預(yù)取寄存器431中 獲取當(dāng)前指令的第一個(gè)字節(jié),并控制所述指令緩沖寄存器433從所述指令預(yù)取寄存器431中 獲取當(dāng)前指令的第二個(gè)字節(jié),從而所述指令預(yù)取寄存器431中的為當(dāng)前指令的第=個(gè)字節(jié), 所述控制單元70還將所述指令寄存器432中的當(dāng)前指令的第一個(gè)字節(jié)傳送至所述譯碼器進(jìn) 行譯碼來得到跳轉(zhuǎn)信息。其中,所述跳轉(zhuǎn)指令的第二個(gè)字節(jié)為相對(duì)位移量。
[0046] 在第二個(gè)時(shí)鐘周期,執(zhí)行條件運(yùn)算操作時(shí):所述控制單元70通過數(shù)據(jù)選擇器51將 所述指令緩沖寄存器433中的相對(duì)位移量通過所述地址總線10寫入所述特殊功能寄存器66 中,并通過所述數(shù)據(jù)總線20傳送至運(yùn)算單元56,并將所述工作寄存器組52或所述累加器53 中的數(shù)據(jù)通過所述第一多路選擇器54或所述第二多路選擇器55傳送至所述運(yùn)算單元56。
[0047] 在第=個(gè)時(shí)鐘周期,執(zhí)行判斷是否跳轉(zhuǎn)操作:所述控制單元70控制所述運(yùn)算單元 56根據(jù)所述相對(duì)位移量及所述工作寄存器組52或所述累加器53中的數(shù)據(jù)進(jìn)行與運(yùn)算,并根 據(jù)所述運(yùn)算結(jié)果來確定是否需要跳轉(zhuǎn)。當(dāng)確定不需要跳轉(zhuǎn)時(shí),所述控制單元70不執(zhí)行跳轉(zhuǎn), 繼續(xù)執(zhí)行下一條指令。當(dāng)確定需要跳轉(zhuǎn)時(shí),所述控制單元70通過所述第一多路選擇器54將 所述程序計(jì)數(shù)器41中的地址傳送至所述運(yùn)算單元56,并通過所述數(shù)據(jù)選擇器51將所述指令 緩沖寄存器433中的相對(duì)位移量通過所述地址總線10寫入所述特殊功能寄存器66中,并通 過所述數(shù)據(jù)總線20輸出至所述運(yùn)算單元56。
[0048] 在第四個(gè)時(shí)鐘周期的執(zhí)行運(yùn)算操作過程與雙字節(jié)的跳轉(zhuǎn)指令的第=個(gè)時(shí)鐘周期 的執(zhí)行運(yùn)算操作過程相同,在第五個(gè)時(shí)鐘周期的執(zhí)行數(shù)據(jù)寫回操作過程與雙字節(jié)的跳轉(zhuǎn)指 令的第四個(gè)時(shí)鐘周期的執(zhí)行數(shù)據(jù)寫回操作過程相同,在第六個(gè)時(shí)鐘周期的執(zhí)行等待操作過 程與雙字節(jié)的跳轉(zhuǎn)指令的第五個(gè)時(shí)鐘周期的執(zhí)行等待操作過程相同。
[0049] 所述中斷信號(hào)的處理需要包括四個(gè)時(shí)鐘周期的指令周期。下面具體說明中斷信號(hào) 的處理過程: 在第一個(gè)時(shí)鐘周期,執(zhí)行采集中斷操作:所述控制單元70采集中斷信號(hào),將所采集的中 斷信號(hào)寫入所述中斷信號(hào)寄存器82,并將所述中斷信號(hào)從所述中斷信號(hào)寄存器82傳送至所 述優(yōu)先級(jí)編碼器83,控制所述優(yōu)先級(jí)編碼器83根據(jù)預(yù)設(shè)的各中斷的優(yōu)先級(jí)別來確定所述中 斷信號(hào)的優(yōu)先級(jí)別。
[0050] 在第二個(gè)時(shí)鐘周期,執(zhí)行響應(yīng)中斷操作:所述控制單元70將優(yōu)先級(jí)別高的中斷信 號(hào)送往中斷信號(hào)緩沖器84。
[0051] 在第=個(gè)時(shí)鐘周期,執(zhí)行保護(hù)斷點(diǎn)及中斷源識(shí)別操作:所述控制單元70根據(jù)中斷 信號(hào)緩沖器84中的中斷信號(hào)來確定中斷地址,并將所述中斷地址存儲(chǔ)在所述中斷向量寄存 器85,所述控制單元70還將所述程序計(jì)數(shù)器41中的地址壓入二級(jí)堆找66中進(jìn)行保存,并將 所述中斷地址寫入所述程序計(jì)數(shù)器41中。例如,當(dāng)為看口狗中斷時(shí),所述中斷地址為復(fù)位地 址0000H,所述控制單元70將復(fù)位地址OOOOH寫入程序計(jì)數(shù)器41中,使得程序自動(dòng)復(fù)位。
[0052] 在第四個(gè)時(shí)鐘周期,執(zhí)行取指令操作:所述控制單元70根據(jù)所述程序計(jì)數(shù)器41中 的中斷地址,控制所述指令預(yù)取寄存器431從所述程序存儲(chǔ)器42中讀取指令。從而,所述控 制單元70在執(zhí)行完當(dāng)前指令后執(zhí)行中斷服務(wù)程序。
[0053] 在本實(shí)施例中,控制單元70對(duì)中斷信號(hào)的處理為:低優(yōu)先級(jí)中斷請(qǐng)求不能打斷高 優(yōu)先級(jí)中斷請(qǐng)求,高優(yōu)先級(jí)中斷請(qǐng)求可W打斷低優(yōu)先級(jí)中斷請(qǐng)求;如果一個(gè)中斷請(qǐng)求已被 響應(yīng),則同級(jí)的其他中斷響應(yīng)將被禁止。
[0054] 其中,當(dāng)多個(gè)中斷服務(wù)程序中的一中斷服務(wù)程序執(zhí)行完后,所述控制單元70將剩 余的中斷服務(wù)程序中優(yōu)先級(jí)別高的中斷信號(hào)送往中斷信號(hào)緩沖器84,來繼續(xù)執(zhí)行中斷服務(wù) 程序直至同時(shí)采集的所有中斷服務(wù)程序執(zhí)行完。
[0055] 當(dāng)多個(gè)中斷服務(wù)程序執(zhí)行完而執(zhí)行中斷返回指令時(shí),所述控制單元70還執(zhí)行恢復(fù) 現(xiàn)場(chǎng)操作,即,所述控制單元70將所述二級(jí)堆找66中的中斷返回地址寫入程序計(jì)數(shù)器41中, 從而在執(zhí)行完中斷服務(wù)程序后,繼續(xù)執(zhí)行中斷前的程序。
[0056] 當(dāng)所述控制單元70在執(zhí)行中斷返回程序或跳轉(zhuǎn)指令時(shí),如果中斷源處有中斷產(chǎn) 生,所述控制單元70采集所述中斷并將所述中斷保存在所述中斷信號(hào)寄存器82,并等待中 斷返回或跳轉(zhuǎn)后執(zhí)行中斷程序。
[0057] 請(qǐng)參考圖3,為微控制器1各狀態(tài)之間轉(zhuǎn)換的示意圖。其中,狀態(tài)SO、狀態(tài)S1、狀態(tài)S2 及狀態(tài)S3代表微控制器1執(zhí)行運(yùn)算指令時(shí)的操作。所述狀態(tài)SO、狀態(tài)S1、狀態(tài)S2及狀態(tài)S3分 別為控制單元70在執(zhí)行運(yùn)算指令時(shí)在第一個(gè)時(shí)鐘周期、第二個(gè)時(shí)鐘周期、第=個(gè)時(shí)鐘周期 及第四個(gè)時(shí)鐘周期所執(zhí)行的操作。所述狀態(tài)SO、狀態(tài)S1、狀態(tài)S2及狀態(tài)S3順序且循環(huán)執(zhí)行。 [005引其中,如圖3所示,在所述狀態(tài)S0,一箭頭指向狀態(tài)S0,表示所述微控制器1開始操 作或重啟時(shí)執(zhí)行第一個(gè)時(shí)鐘周期。一箭頭從狀態(tài)SO指向狀態(tài)S0,表示所述微控制器1等待一 個(gè)時(shí)鐘周期,則狀態(tài)SO、狀態(tài)Sl、狀態(tài)S2、狀態(tài)S3及在狀態(tài)SO等待一個(gè)時(shí)鐘周期代表微控制 器1執(zhí)行雙字節(jié)跳轉(zhuǎn)指令時(shí)的操作,其中,所述狀態(tài)SO、狀態(tài)Sl、狀態(tài)S2、狀態(tài)S3及在狀態(tài)SO 等待一個(gè)時(shí)鐘周期分別為控制單元70在執(zhí)行雙字節(jié)跳轉(zhuǎn)指令時(shí)在第一個(gè)時(shí)鐘周期、第二個(gè) 時(shí)鐘周期、第=個(gè)時(shí)鐘周期、第四個(gè)時(shí)鐘周期及第五個(gè)時(shí)鐘周期所執(zhí)行的操作。
[0059] 其中,狀態(tài)SO、狀態(tài)Sl、狀態(tài)S2、狀態(tài)S3、狀態(tài)S7及在狀態(tài)SO等待一個(gè)時(shí)鐘周期代表 微控制器1執(zhí)行=字節(jié)跳轉(zhuǎn)指令時(shí)的操作,其中,狀態(tài)SO、狀態(tài)Sl、狀態(tài)S2、狀態(tài)S3、狀態(tài)S7及 在狀態(tài)so等待一個(gè)時(shí)鐘周期分別為控制單元70在執(zhí)行=字節(jié)跳轉(zhuǎn)指令時(shí)在第一個(gè)時(shí)鐘周 期、第二個(gè)時(shí)鐘周期、第=個(gè)時(shí)鐘周期、第四個(gè)時(shí)鐘周期、第五個(gè)時(shí)鐘周期及第六個(gè)時(shí)鐘周 期所執(zhí)行的操作。
[0060] 狀態(tài)S4表示所述控制單元70處于空閑模式。狀態(tài)S5表示微控制器1在所述空閑模 式被中斷信號(hào)喚醒,其包括如上所述的控制單元70對(duì)中斷信號(hào)的處理過程的第一個(gè)時(shí)鐘周 期、第二個(gè)時(shí)鐘周期及第=個(gè)時(shí)鐘周期。狀態(tài)S6表示微控制器1執(zhí)行所述中斷程序指令,其 包括如上所述的控制單元70對(duì)中斷信號(hào)的處理過程的第四個(gè)時(shí)鐘周期。因此,微控制器1在 狀態(tài)S4下被中斷信號(hào)喚醒,進(jìn)入狀態(tài)S5,來處理中斷,隨后進(jìn)入狀態(tài)S6,來執(zhí)行取所述中斷 程序指令,而從狀態(tài)S6到狀態(tài)SO代表執(zhí)行中斷,隨后,所述狀態(tài)SO、狀態(tài)Sl、狀態(tài)S2及狀態(tài)S3 順序且循環(huán)執(zhí)行直至所述中斷程序執(zhí)行完成后,從所述狀態(tài)SO進(jìn)入所述狀態(tài)S4,即所述微 控制器1在執(zhí)行中斷程序后,繼續(xù)處于空閑模式下。
[0061] 狀態(tài)S8表示所述控制單元70根據(jù)所述定時(shí)器61所傳送的警告信息,將所述特殊功 能寄存器66中預(yù)先存儲(chǔ)的應(yīng)用程序的第一條指令的地址(如圖2中的CPC)寫入所述程序計(jì) 數(shù)器41。隨后,所述狀態(tài)SO、狀態(tài)Sl、狀態(tài)S2及狀態(tài)S3順序且循環(huán)執(zhí)行直至所述應(yīng)用程序執(zhí) 行完成。當(dāng)在狀態(tài)SO時(shí),如果在所述定時(shí)器61計(jì)時(shí)完成時(shí)所述傳感器2提供響應(yīng)信號(hào),則隨 后進(jìn)入狀態(tài)S4,即進(jìn)入空閑模式。當(dāng)在狀態(tài)SO時(shí),如果在所述定時(shí)器61計(jì)時(shí)完成時(shí)所述傳感 器2不提供響應(yīng)信號(hào),則執(zhí)行報(bào)警程序的指令。
[0062] 顯然,本發(fā)明不僅局限于所述微控制器1在空閑模式下被中斷信號(hào)喚醒,其還可為 所述微控制器1在執(zhí)行指令時(shí)被中斷信號(hào)打斷,來執(zhí)行中斷信號(hào),并在中斷信號(hào)執(zhí)行完后繼 續(xù)執(zhí)行指令。
[0063] 如此,本發(fā)明的微控制器1執(zhí)行一條指令的時(shí)間最長(zhǎng)的為6個(gè)時(shí)鐘周期,指令運(yùn)行 速度快,功耗小,同時(shí),所述微控制器1具有空閑模式及掉電模式,節(jié)省電。
[0064] W上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用W限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種微控制器,包括: 數(shù)據(jù)總線; 控制單元; 指令處理裝置,所述指令處理裝置與所述控制單元連接,所述控制單元控制所述指令 處理裝置完成取指令及對(duì)指令的譯碼; 數(shù)據(jù)運(yùn)算裝置,所述數(shù)據(jù)運(yùn)算裝置與所述控制單元及所述數(shù)據(jù)總線連接,所述控制單 元控制所述數(shù)據(jù)運(yùn)算裝置根據(jù)所述指令的譯碼或還根據(jù)所述指令進(jìn)行運(yùn)算,得到運(yùn)算結(jié) 果,并通過所述數(shù)據(jù)總線將所述運(yùn)算結(jié)果寫入所述數(shù)據(jù)運(yùn)算裝置或所述指令處理裝置;及 時(shí)鐘發(fā)生器,所述時(shí)鐘發(fā)生器用于產(chǎn)生所述指令處理裝置、所述數(shù)據(jù)運(yùn)算裝置及所述 控制單元的時(shí)鐘信號(hào),并將所述時(shí)鐘信號(hào)輸出至所述指令處理裝置、所述數(shù)據(jù)運(yùn)算裝置及 所述控制單元; 其中,所述指令處理裝置包括程序計(jì)數(shù)器、程序存儲(chǔ)器,指令預(yù)取寄存器、指令寄存器、 指令緩沖寄存器及指令譯碼器,所述程序計(jì)數(shù)器與所述程序存儲(chǔ)器連接,所述指令預(yù)取寄 存器與所述程序存儲(chǔ)器、所述指令寄存器及所述指令緩沖寄存器連接,所述指令寄存器連 接在所述指令預(yù)取寄存器及所述指令譯碼器之間,所述指令緩沖寄存器連接在所述指令預(yù) 取寄存器及所述數(shù)據(jù)運(yùn)算裝置之間; 其中,所述指令預(yù)取寄存器存儲(chǔ)從所述程序存儲(chǔ)器中逐條讀取的指令;所述指令寄存 器存儲(chǔ)從所述指令預(yù)取寄存器中讀取的指令或指令的第一個(gè)字節(jié);所述指令緩沖寄存器存 儲(chǔ)從所述指令預(yù)取寄存器中讀取的指令的第二個(gè)字節(jié)。2. 如權(quán)利要求1所述的微控制器,其特征在于: 所述微控制器還包括地址總線及特殊功能寄存器組,所述特殊功能寄存器組連接在所 述地址總線及數(shù)據(jù)總線之間,所述控制單元將所述指令緩沖寄存器中的指令的操作數(shù)地址 或相對(duì)位移量通過所述地址總線寫入所述特殊功能寄存器組,并通過所述數(shù)據(jù)總線將所述 特殊功能寄存器組中的操作數(shù)地址對(duì)應(yīng)的操作數(shù)或相對(duì)位移量傳送至數(shù)據(jù)運(yùn)算裝置,以供 所述數(shù)據(jù)運(yùn)算裝置進(jìn)行運(yùn)算。3. 如權(quán)利要求2所述的微控制器,其特征在于: 所述數(shù)據(jù)運(yùn)算裝置包括數(shù)據(jù)選擇器、多路選擇器及運(yùn)算單元,所述數(shù)據(jù)選擇器與所述 指令緩沖寄存器及所述地址總線連接,在所述指令緩沖寄存器中的指令為操作數(shù)時(shí),所述 控制單元通過所述多路選擇器將所述指令緩沖寄存器中的操作數(shù)傳送至所述運(yùn)算單元,在 所述指令緩沖寄存器中的指令為操作數(shù)地址或相對(duì)位移量時(shí),所述控制單元通過所述所述 數(shù)據(jù)選擇器將所述指令緩沖寄存器中的操作數(shù)地址或相對(duì)位移量通過所述地址總線寫入 所述特殊功能寄存器組。4. 如權(quán)利要求1所述的微控制器,其特征在于,所述微控制器還包括中斷控制模塊,所 述中斷控制|吳塊包括: 中斷控制寄存器,所述控制單元通過設(shè)置所述中斷控制寄存器來允許或者不允許中 斷; 中斷信號(hào)寄存器,所述控制單元在允許中斷時(shí),從中斷源采集中斷信號(hào),并將從所述中 斷源所采集的中斷信號(hào)存儲(chǔ)在所述中斷信號(hào)寄存器; 優(yōu)先級(jí)編碼器,所述優(yōu)先級(jí)編碼器中存儲(chǔ)有預(yù)設(shè)的各中斷的優(yōu)先級(jí)別,所述控制單元 將所述中斷信號(hào)寄存器中的中斷信號(hào)傳送至優(yōu)先級(jí)編碼器,并控制所述優(yōu)先級(jí)編碼器根據(jù) 預(yù)設(shè)的各中斷的優(yōu)先級(jí)別來確定所采集的中斷信號(hào)的優(yōu)先級(jí)別; 中斷信號(hào)緩沖器,所述控制單元將所述優(yōu)先級(jí)別最高的中斷信號(hào)傳送至所述中斷信號(hào) 緩沖器;及 中斷向量寄存器,所述控制單元確定中斷信號(hào)緩沖器中的優(yōu)先級(jí)別最高的中斷信號(hào)的 中斷地址,并將所述中斷地址存儲(chǔ)在所述中斷向量寄存器。5. 如權(quán)利要求1所述的微控制器,其特征在于: 所述指令包括運(yùn)算指令及跳轉(zhuǎn)指令,所述跳轉(zhuǎn)指令包括雙字節(jié)的跳轉(zhuǎn)指令及三字節(jié)的 跳轉(zhuǎn)指令,所述運(yùn)算指令的處理需要一個(gè)包括四個(gè)時(shí)鐘周期的指令周期,所述雙字節(jié)的跳 轉(zhuǎn)指令的處理需要一個(gè)包括五個(gè)時(shí)鐘周期的指令周期,所述三字節(jié)的跳轉(zhuǎn)指令的處理需要 一個(gè)包括六個(gè)時(shí)鐘周期的指令周期。6. -種控制方法,其特征在于,所述控制方法包括: 提供一數(shù)據(jù)總線; 提供一指令處理裝置,所述指令處理裝置包括程序計(jì)數(shù)器、程序存儲(chǔ)器,指令預(yù)取寄存 器、指令寄存器、指令緩沖寄存器及指令譯碼器; 提供一數(shù)據(jù)運(yùn)算裝置; 提供一時(shí)鐘發(fā)生器,所述時(shí)鐘發(fā)生器產(chǎn)生所述指令處理裝置及所述數(shù)據(jù)運(yùn)算裝置的時(shí) 鐘信號(hào),并將所述時(shí)鐘信號(hào)輸出至所述指令處理裝置及所述數(shù)據(jù)運(yùn)算裝置; 控制所述指令預(yù)取寄存器根據(jù)所述程序計(jì)數(shù)器中的地址從所述程序存儲(chǔ)器中獲取指 令; 控制所述指令寄存器從所述指令預(yù)取寄存器中獲取指令的第一個(gè)字節(jié),控制所述指令 緩沖寄存器從所述指令預(yù)取寄存器中獲取指令的第二個(gè)字節(jié),并將所述指令的第二個(gè)字節(jié) 輸出至所述數(shù)據(jù)運(yùn)算裝置; 控制所述指令譯碼器對(duì)所述指令的第一個(gè)字節(jié)譯碼;及 控制所述數(shù)據(jù)運(yùn)算裝置根據(jù)所述指令的第一個(gè)字節(jié)的譯碼及所述指令的第二個(gè)字節(jié) 進(jìn)行運(yùn)算,得到運(yùn)算結(jié)果,并通過所述數(shù)據(jù)總線將所述運(yùn)算結(jié)果寫入所述數(shù)據(jù)運(yùn)算裝置或 所述指令處理裝置。7. 如權(quán)利要求6所述的控制方法,其特征在于,所述控制方法還包括: 提供一地址總線; 提供一特殊功能寄存器組;及 將所述指令緩沖寄存器中的指令的操作數(shù)地址通過所述地址總線寫入所述特殊功能 寄存器組,并通過所述數(shù)據(jù)總線將所述特殊功能寄存器組中的數(shù)據(jù)傳送至數(shù)據(jù)運(yùn)算裝置, 以供所述數(shù)據(jù)運(yùn)算裝置進(jìn)行運(yùn)算。8. 如權(quán)利要求7所述的控制方法,其特征在于,所述控制方法還包括: 提供所述數(shù)據(jù)運(yùn)算裝置包括數(shù)據(jù)選擇器、多路選擇器及運(yùn)算單元; 在所述指令緩沖寄存器中的指令為操作數(shù)時(shí),通過所述多路選擇器將所述指令緩沖寄 存器中的操作數(shù)傳送至所述運(yùn)算單元;及 在所述指令緩沖寄存器中的指令為操作數(shù)地址或相對(duì)位移量時(shí),通過所述所述數(shù)據(jù)選 擇器將所述指令緩沖寄存器中的操作數(shù)地址或相對(duì)位移量通過所述地址總線寫入所述特 殊功能寄存器組。9. 如權(quán)利要求6所述的控制方法,其特征在于,所述控制方法還包括: 所述指令為雙字節(jié)跳轉(zhuǎn)指令,在第一個(gè)時(shí)鐘周期,控制所述指令寄存器從所述指令預(yù) 取寄存器中獲取指令的第一個(gè)字節(jié); 在第二個(gè)時(shí)鐘周期,確定是否需要跳轉(zhuǎn),當(dāng)確定需要跳轉(zhuǎn)時(shí),將所述程序計(jì)數(shù)器中的地 址傳送至所述數(shù)據(jù)運(yùn)算裝置,并將所述指令緩沖寄存器中的指令的第二個(gè)字節(jié)輸出至所述 數(shù)據(jù)運(yùn)算裝置; 在第三個(gè)時(shí)鐘周期,控制所述數(shù)據(jù)運(yùn)算裝置根據(jù)所接收的所述程序計(jì)數(shù)器中的地址及 所述指令緩沖寄存器中的指令的第二個(gè)字節(jié)進(jìn)行與運(yùn)算來得到跳轉(zhuǎn)地址; 在第四個(gè)時(shí)鐘周期,將所述跳轉(zhuǎn)地址寫入所述程序計(jì)數(shù)器中,控制所述指令預(yù)取寄存 器根據(jù)所述程序計(jì)數(shù)器中的跳轉(zhuǎn)地址從所述程序存儲(chǔ)器中獲取指令,并將所述程序計(jì)數(shù)器 中的地址加一;及 在第五個(gè)時(shí)鐘周期,將所述指令譯碼器所譯碼的信息丟棄,并等待一個(gè)時(shí)鐘周期。10. 如權(quán)利要求6所述的控制方法,其特征在于,所述控制方法還包括: 提供一中斷信號(hào)寄存器; 提供一優(yōu)先級(jí)編碼器; 提供一中斷信號(hào)緩沖器; 提供一中斷向量寄存器; 提供一二級(jí)堆棧; 當(dāng)允許中斷時(shí),在第一個(gè)時(shí)鐘周期,采集中斷信號(hào),將所采集的中斷信號(hào)寫入所述中斷 信號(hào)寄存器,并將所述中斷信號(hào)從所述中斷信號(hào)寄存器傳送至所述優(yōu)先級(jí)編碼器,控制所 述優(yōu)先級(jí)編碼器根據(jù)預(yù)設(shè)的各中斷的優(yōu)先級(jí)別來確定所述中斷信號(hào)的優(yōu)先級(jí)別; 在第二個(gè)時(shí)鐘周期,將優(yōu)先級(jí)別高的中斷信號(hào)送往中斷信號(hào)緩沖器; 在第三個(gè)時(shí)鐘周期,根據(jù)中斷信號(hào)緩沖器中的中斷信號(hào)來確定中斷地址,將所述中斷 地址存儲(chǔ)在中斷向量寄存器,并將所述程序計(jì)數(shù)器中的地址壓入所述二級(jí)堆棧中進(jìn)行保 存,并將所述中斷地址寫入所述程序計(jì)數(shù)器;及 在第四個(gè)時(shí)鐘周期,根據(jù)所述程序計(jì)數(shù)器中的中斷地址,控制所述指令預(yù)取寄存器從 所述程序存儲(chǔ)器中讀取指令。
【文檔編號(hào)】G05B19/042GK106020017SQ201610320452
【公開日】2016年10月12日
【申請(qǐng)日】2016年5月16日
【發(fā)明人】烏力吉, 王 義, 張向民, 吳行軍, 賈雯, 王志華
【申請(qǐng)人】深圳清華大學(xué)研究院