版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、TM嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用異常處理異常處理復(fù)位和中斷復(fù)位和中斷嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用 教學(xué)內(nèi)容教學(xué)內(nèi)容本章介紹本章介紹MC9S12DG128的復(fù)位和中斷的復(fù)位和中斷 教學(xué)目標(biāo)教學(xué)目標(biāo) 掌握掌握MC9S12DG128的復(fù)位種類的復(fù)位種類 掌握掌握MC9S12DG128的中斷源的中斷源 掌握掌握MC9S12DG128的中斷響應(yīng)方式的中斷響應(yīng)方式 掌握掌握MC9S12DG128的中斷程序編寫方法的中斷程序編寫方法嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用正常情況下,單片機(jī)以正常情況下,單片機(jī)以有序有序的方式相應(yīng)程的方式相應(yīng)程序的執(zhí)行,以明確的序的執(zhí)行,以明確的獲取獲取解碼解碼執(zhí)行執(zhí)行順序處
2、順序處理各種指令。理各種指令??赡馨l(fā)生的異常會(huì)打破這種時(shí)間的順序流??赡馨l(fā)生的異常會(huì)打破這種時(shí)間的順序流。將一個(gè)正常程序流的中斷歸為一個(gè)異常。將一個(gè)正常程序流的中斷歸為一個(gè)異常。異常異??蛇M(jìn)一步分為可進(jìn)一步分為中斷中斷和和復(fù)位復(fù)位。 嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用異異 常常復(fù)位復(fù)位 上電復(fù)位上電復(fù)位 外部復(fù)位外部復(fù)位 計(jì)算機(jī)工作正常計(jì)算機(jī)工作正常(COP)復(fù)位復(fù)位 時(shí)鐘監(jiān)控復(fù)位時(shí)鐘監(jiān)控復(fù)位中中 斷斷不可屏蔽不可屏蔽 XIRQ 軟件中斷指令軟件中斷指令( SWI ) 指令陷阱指令陷阱可屏蔽可屏蔽 IRQ 定時(shí)器溢出定時(shí)器溢出 脈沖累加器溢出脈沖累加器溢出 串行通信接口串行通信接口(SCI) 串
3、行外圍設(shè)備借口串行外圍設(shè)備借口(SPI) 模數(shù)轉(zhuǎn)換器模數(shù)轉(zhuǎn)換器(ATD) 鍵盤喚醒鍵盤喚醒 嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用 上電復(fù)位上電復(fù)位(Power-On Reset ) 外部復(fù)位外部復(fù)位(External Hardware Reset ) 計(jì)算機(jī)工作正常計(jì)算機(jī)工作正常(Computer Operating Properly)復(fù)位復(fù)位 時(shí)鐘監(jiān)控時(shí)鐘監(jiān)控(Crystal Monitor )復(fù)位復(fù)位嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用 由由VDD引腳的正跳變初始化引腳的正跳變初始化 8192 E-clock 延時(shí)以保證晶振穩(wěn)定。延時(shí)以保證晶振穩(wěn)定。 VDDCPU CLKDATA BUS/ADDR
4、ESS BUSIRESET8192 ECLK Cycles V F P P P V - VECTOR FETCHF - FREE CYCLEP - PROGRAM FETCHFFFE FFFE 1st Opcode 2nd Opcode 3rd Opcode 128 ECLK Cycles 64 ECLK Cycles嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用沒有延時(shí)保證晶振穩(wěn)定。沒有延時(shí)保證晶振穩(wěn)定。 上電復(fù)位和上電復(fù)位和RESET引腳復(fù)位共用一個(gè)復(fù)位向量引腳復(fù)位共用一個(gè)復(fù)位向量$FFFE$FFFF。 64 ECLK CYCLES 32 ECLK CYCLESCPU CLK DATA BUS/ADDR
5、ESS BUS RESETIRESET 96 E ClocksSAMPLE PIN FFFE FFFE 1st Opcode 2nd Opcode3nd Opcode不能使用簡單不能使用簡單RC復(fù)位電路!復(fù)位電路!嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用完整的復(fù)位電路完整的復(fù)位電路簡單復(fù)位電路簡單復(fù)位電路MC34064/MC33064嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用 用于:用于: 當(dāng)時(shí)鐘停止或變慢后自動(dòng)復(fù)位;當(dāng)時(shí)鐘停止或變慢后自動(dòng)復(fù)位; 提高系統(tǒng)可靠性。提高系統(tǒng)可靠性。 復(fù)位發(fā)生在:復(fù)位發(fā)生在: 如果時(shí)鐘監(jiān)視允許且時(shí)鐘頻率低于預(yù)先確定的限定值時(shí)如果時(shí)鐘監(jiān)視允許且時(shí)鐘頻率低于預(yù)先確定的限定值時(shí) 時(shí)鐘監(jiān)視
6、器復(fù)位的矢量地址是時(shí)鐘監(jiān)視器復(fù)位的矢量地址是$FFFCFFFD,其優(yōu),其優(yōu)先級僅低于上電復(fù)位先級僅低于上電復(fù)位。嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用PLLCTL CRG PLL 控制寄存器(控制寄存器($003A)Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0CMEPLLONAUTOACQ000SCMEReset11110001CRG = Clock and Reset Generation moduleCMEClock Monitor Enable 1 = Monitor is enabled 0 = Monitor is disabledSCMESelf-Cl
7、ock-Mode Enable 1 = SCM is enabled 0 = SCM is disabled嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用目的目的 為為CPU提供從異常事件中恢復(fù)的機(jī)制提供從異常事件中恢復(fù)的機(jī)制用于用于 提高系統(tǒng)可靠性并保證提高系統(tǒng)可靠性并保證MCU不會(huì)被長期不會(huì)被長期“掛起掛起”COP復(fù)位的矢量地址是復(fù)位的矢量地址是$FFFCFFFD注意:注意:COP必須在超時(shí)前被服務(wù)。必須在超時(shí)前被服務(wù)。嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用COPCTL - CRG COP 控制寄存器(控制寄存器($003C)Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0WC
8、OPRSBCK000CR2CR1CR0Reset00000000WCOP - Window COP Mode 1 = Window COP operation 0 = Normal COP operationCR2:0COP 看門狗定時(shí)器超時(shí)時(shí)間間隔看門狗定時(shí)器超時(shí)時(shí)間間隔嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用ARMCOP - CRG COP Arm/Reset Timer($003F)Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0Reset00000000為了防止定時(shí)器過期,執(zhí)行的程序必須在倒計(jì)數(shù)為了防止定時(shí)器過期,執(zhí)行的程序必須在倒計(jì)數(shù)定時(shí)器失效前向定時(shí)器失效前
9、向ARM/RESET COP定時(shí)器寄存定時(shí)器寄存器(器(COPRST)中寫入)中寫入$55和和$AA。嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用 不可屏蔽中斷不可屏蔽中斷 XIRQ 非法指令陷阱非法指令陷阱 軟件中斷指令軟件中斷指令 可屏蔽中斷可屏蔽中斷嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用SWI實(shí)質(zhì)上是一條實(shí)質(zhì)上是一條指令指令,但其執(zhí)行過程,但其執(zhí)行過程與中斷相同,即通過中斷矢量確定目標(biāo)地址,與中斷相同,即通過中斷矢量確定目標(biāo)地址,中斷矢量為中斷矢量為$FFF6$FFF7,它自動(dòng)保存,它自動(dòng)保存MCU的寄存器和返回地址,最后必須通過的寄存器和返回地址,最后必須通過RTI指令返回。指令返回。嵌入式系統(tǒng)及應(yīng)用嵌
10、入式系統(tǒng)及應(yīng)用MCU正常工作時(shí),每次取址得到的都是正常工作時(shí),每次取址得到的都是由匯編或編譯程序生成的有效操作碼,由匯編或編譯程序生成的有效操作碼,MCU能夠正確解釋并執(zhí)行它們,但當(dāng)受到干擾或能夠正確解釋并執(zhí)行它們,但當(dāng)受到干擾或系統(tǒng)出現(xiàn)混亂時(shí),可能得到無法識別的操作系統(tǒng)出現(xiàn)混亂時(shí),可能得到無法識別的操作碼,即碼,即非法指令非法指令,這時(shí),這時(shí)MCU自動(dòng)產(chǎn)生一次中自動(dòng)產(chǎn)生一次中斷,中斷矢量地址為斷,中斷矢量地址為$FFF8$FFF9。嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用XIRQ是非屏蔽中斷引腳,無論是非屏蔽中斷引腳,無論MCU處于哪種處于哪種運(yùn)行狀態(tài),該引腳一旦被拉成低電平,運(yùn)行狀態(tài),該引腳一旦被
11、拉成低電平,MCU執(zhí)行執(zhí)行完當(dāng)前指令后,都會(huì)響應(yīng)該中斷,中斷矢量為完當(dāng)前指令后,都會(huì)響應(yīng)該中斷,中斷矢量為$FFF4$FFF5。該中斷一般用于該中斷一般用于系統(tǒng)掉電系統(tǒng)掉電、硬件故障硬件故障等重要場等重要場合,當(dāng)合,當(dāng)MCU處于等待或暫停模式時(shí),該中斷將處于等待或暫停模式時(shí),該中斷將喚喚醒醒MCU。嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用序號序號堆棧地址堆棧地址入棧內(nèi)容入棧內(nèi)容說明說明1SP 2RTNH:RTNL保存中斷返回地址保存中斷返回地址2SP 4YH:YL保存變址寄存器保存變址寄存器Y3SP 6XH:XL保存變址寄存器保存變址寄存器X4SP 8B:A保存累加器保存累加器B:A(D)5SP 9C
12、CR保存程序狀態(tài)字保存程序狀態(tài)字CCR 中斷響應(yīng)前,堆棧必須有效,即堆棧指針中斷響應(yīng)前,堆棧必須有效,即堆棧指針SP必須指向一個(gè)有效的必須指向一個(gè)有效的RAM區(qū),而且堆棧的大小必須不少于區(qū),而且堆棧的大小必須不少于9個(gè)字節(jié)個(gè)字節(jié)。嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用1. RESET2. 時(shí)鐘監(jiān)控復(fù)位時(shí)鐘監(jiān)控復(fù)位3. COP 看門狗復(fù)位看門狗復(fù)位4. 非法指令陷阱非法指令陷阱5. 軟件中斷指令(軟件中斷指令(SWI)6. XIRQ一般來說,不可屏蔽中斷比可屏蔽中斷的優(yōu)先級高。一般來說,不可屏蔽中斷比可屏蔽中斷的優(yōu)先級高。嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用
13、嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用INTCR 中斷控制寄存器(中斷控制寄存器($001E)Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0IRQEIRQEN000000Reset01000000IRQE - Interrupt Select Edge Sensitive 1 = IRQ PIN is configured for negative edge 0 = IRQ PIN is configured for level sensitiveIRQEN - External IRQ Enable 1 = IRQ PIN is connected
14、 to interrupt logic 0 = IRQ PIN is disconnected from interrupt logic嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用HPRIO 高優(yōu)先級設(shè)定寄存器(高優(yōu)先級設(shè)定寄存器($001F)Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0PSEL7PSEL6PSEL5PSEL4PSEL3PSEL2PSEL10Reset11110010 該寄存器用于將某個(gè)可屏蔽中斷的優(yōu)先級該寄存器用于將某個(gè)可屏蔽中斷的優(yōu)先級“推進(jìn)推進(jìn)”為可屏蔽中斷的最高可能中斷。復(fù)位后該寄存器默為可屏蔽中斷的最高可能中斷。復(fù)位后該寄存器默認(rèn)值為認(rèn)值為$F
15、2,則,則IRQ($FFF2,$FFF3)中斷在可屏)中斷在可屏蔽中斷中的優(yōu)先級最高。蔽中斷中的優(yōu)先級最高。嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用默認(rèn)狀態(tài):默認(rèn)狀態(tài): 在進(jìn)入中斷服務(wù)程序時(shí),在進(jìn)入中斷服務(wù)程序時(shí),I位自動(dòng)置位自動(dòng)置1,禁止其他可屏蔽中斷,禁止其他可屏蔽中斷 即使有優(yōu)先級更高的中斷請求,也必須等當(dāng)前中斷服務(wù)程序執(zhí)行完以后才能響應(yīng)即使有優(yōu)先級更高的中斷請求,也必須等當(dāng)前中斷服務(wù)程序執(zhí)行完以后才能響應(yīng) 優(yōu)先級的作用只有在多個(gè)中斷源同時(shí)請求中斷時(shí)在能體現(xiàn)優(yōu)先級的作用只有在多個(gè)中斷源同時(shí)請求中斷時(shí)在能體現(xiàn) 無法實(shí)現(xiàn)中斷嵌套無法實(shí)現(xiàn)中斷嵌套如果在進(jìn)入中斷服務(wù)程序時(shí),手動(dòng)對如果在進(jìn)入中斷服務(wù)程序時(shí)
16、,手動(dòng)對I位清零:位清零: 任何其他可屏蔽中斷都可以被響應(yīng),無論其優(yōu)先級有多高任何其他可屏蔽中斷都可以被響應(yīng),無論其優(yōu)先級有多高HPRIO寄存器寄存器 寫入寫入HPRIO中的中斷向量的后八位,可以改變該中斷的優(yōu)先級中的中斷向量的后八位,可以改變該中斷的優(yōu)先級 同樣,優(yōu)先級的作用只有在多個(gè)中斷源同時(shí)請求中斷時(shí)在能體現(xiàn)同樣,優(yōu)先級的作用只有在多個(gè)中斷源同時(shí)請求中斷時(shí)在能體現(xiàn)嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用運(yùn)運(yùn) 行行運(yùn)運(yùn) 行行運(yùn)運(yùn) 行行等等 待待運(yùn)運(yùn) 行行等等 待待中斷中斷 A中斷中斷 B程序程序低優(yōu)先級低優(yōu)先級高優(yōu)先級高優(yōu)先級中斷中斷A請求請求中斷中斷B請求請求等等 待待人人人人平平等等嵌入式系統(tǒng)
17、及應(yīng)用嵌入式系統(tǒng)及應(yīng)用運(yùn)運(yùn) 行行運(yùn)運(yùn) 行行運(yùn)運(yùn) 行行等等 待待運(yùn)運(yùn) 行行運(yùn)運(yùn) 行行等等 待待中斷中斷 A中斷中斷 B程序程序低優(yōu)先級低優(yōu)先級高優(yōu)先級高優(yōu)先級中斷中斷B請求請求中斷中斷B被掛起被掛起中斷中斷A請求請求長長幼幼不不分分嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用運(yùn)運(yùn) 行行運(yùn)運(yùn) 行行等等 待待運(yùn)運(yùn) 行行運(yùn)運(yùn) 行行等等 待待中斷中斷 A中斷中斷 B程序程序低優(yōu)先級低優(yōu)先級高優(yōu)先級高優(yōu)先級中斷中斷A請求請求中斷中斷B請求請求中斷中斷B返回返回運(yùn)運(yùn) 行行等等級級森森嚴(yán)嚴(yán)嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用1. 在中斷服務(wù)程序中,首先在中斷服務(wù)程序中,首先對對 I 清零清零,即,即EnableInterru
18、pts2. 選擇選擇優(yōu)先級更高的中斷源優(yōu)先級更高的中斷源可以進(jìn)入響應(yīng)中斷可以進(jìn)入響應(yīng)中斷3.設(shè)置優(yōu)先等級設(shè)置優(yōu)先等級兩級兩級一個(gè)中斷源為低優(yōu)先級,其他為高優(yōu)先級一個(gè)中斷源為低優(yōu)先級,其他為高優(yōu)先級在低優(yōu)先級中斷服務(wù)程序中,對在低優(yōu)先級中斷服務(wù)程序中,對 I 位清零位清零在高優(yōu)先級中斷服務(wù)程序中,不清零在高優(yōu)先級中斷服務(wù)程序中,不清零多級多級利用局部的中斷屏蔽位利用局部的中斷屏蔽位比如比如Timer Channel0 的中斷屏蔽位的中斷屏蔽位 TIE_C0I嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用例如:例如: 中斷向量地址中斷向量地址 $FFF0 $FFF1 為低優(yōu)先級為低優(yōu)先級 其他的中斷為高優(yōu)先級其他的中斷為高優(yōu)先級 在在$FFF0 $FFF1 中斷服務(wù)程序中,中斷服務(wù)程序中,EnableInterrupts (I位清零位清零) 其他的中斷包括自己都可以在中斷服務(wù)程序執(zhí)行時(shí),被響應(yīng)其他的中斷包括自己都可以在中斷服務(wù)程序執(zhí)行時(shí),被響應(yīng) 在其他的中斷服務(wù)程序中,在其他的中斷服務(wù)程序中,I位不清零(默認(rèn))位不清零(默認(rèn)) 只有當(dāng)前中斷服務(wù)程序執(zhí)行完后,才能響應(yīng)其他的中斷請求只有當(dāng)前中斷服務(wù)程序執(zhí)行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版?zhèn)€人車輛抵押債權(quán)債務(wù)處理執(zhí)行協(xié)議3篇
- 2025年度個(gè)人新能源汽車充電站場地承包協(xié)議2篇
- 2025版新能源汽車電池委托加工合同范本3篇
- 2025-2030全球眼科手術(shù)剪行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國公共交流充電站行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年全球及中國碳納米管微球行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球汽車燃油回流管路行業(yè)調(diào)研及趨勢分析報(bào)告
- 二樓商業(yè)租賃專項(xiàng)協(xié)議(2024版)版
- 二零二五年度車輛牌照租賃市場拓展與合作開發(fā)合同4篇
- 二零二五年度車牌租賃與廣告合作協(xié)議3篇
- 二零二五年度無人駕駛車輛測試合同免責(zé)協(xié)議書
- 2025年湖北華中科技大學(xué)招聘實(shí)驗(yàn)技術(shù)人員52名歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 黑龍江省哈爾濱市2024屆中考數(shù)學(xué)試卷(含答案)
- 高三日語一輪復(fù)習(xí)助詞「と」的用法課件
- 毛渣采購合同范例
- 無子女離婚協(xié)議書范文百度網(wǎng)盤
- 2023中華護(hù)理學(xué)會(huì)團(tuán)體標(biāo)準(zhǔn)-注射相關(guān)感染預(yù)防與控制
- 一年級數(shù)學(xué)個(gè)位數(shù)加減法口算練習(xí)題大全(連加法-連減法-連加減法直接打印版)
- 五年級上冊小數(shù)遞等式計(jì)算200道及答案
- 2024年廣東高考政治真題考點(diǎn)分布匯 總- 高考政治一輪復(fù)習(xí)
- 冀教版五年級下冊數(shù)學(xué)全冊教學(xué)課件
評論
0/150
提交評論