




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章S12XE系列微控制器的結(jié)構(gòu)與組織以典型車用MCU為例講解MCU內(nèi)部架構(gòu)、外部引腳功能2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)1S12XE是汽車電子系統(tǒng)中有較多運(yùn)用的MCU,具有速度快、功能強(qiáng)、成本低、功耗低等特點(diǎn)。本章系統(tǒng)介紹了S12XE系列MCU的特點(diǎn)和系統(tǒng)架構(gòu),重點(diǎn)闡述了S12XE的存儲(chǔ)器組織、中斷系統(tǒng)、指令系統(tǒng)。圍繞S12XE的應(yīng)用開發(fā),介紹了以S12XE為核心的嵌入式系統(tǒng)最小系統(tǒng)硬件。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)22.1S12XE系列MCU介紹2.1.1S12XE系列MCU介紹S12XE是NXP恩智浦半導(dǎo)體有限公司(原飛思卡爾半導(dǎo)體公司的產(chǎn)品)針對(duì)汽車電子市場(chǎng)推出的高性能16位微控制器,具有低成本、低功耗、EMC和代碼效率高等優(yōu)點(diǎn),甚至能達(dá)到許多32位MCU的性能,特別適用于汽車電子領(lǐng)域,該芯片廣泛用于車身控制、乘客舒適性應(yīng)用、發(fā)動(dòng)機(jī)管理、排氣系統(tǒng)管理等領(lǐng)域。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)3S12XE系列微控制器的主要功能特性如下:1)S12XE的核心。16位CPU,最高50MHz總線速率,向上兼容S12X指令集;增強(qiáng)指令集,增強(qiáng)型索引尋址;通過頁(yè)面方式訪問大數(shù)據(jù)段,尋址8MB存儲(chǔ)空間;16位條件碼寄存器(CCRW=CCRH:CCRL)。2)中斷控制管理模塊(INT)。支持8層嵌套中斷,每層中斷源可靈活分配;不可屏蔽外部中斷(XIRQ)高優(yōu)先級(jí);內(nèi)部不可屏蔽的高優(yōu)先級(jí)存儲(chǔ)器保護(hù)單元中斷;支持部分外設(shè)和端口的喚醒中斷;多達(dá)24腳(端口J、H、P)的可編程上升沿或下降沿觸發(fā)中斷。3)模塊映射控制(MMC)、運(yùn)行監(jiān)視調(diào)試(DBG)、單線背景調(diào)試模式(BDM)。4)存儲(chǔ)器保護(hù)單元(MPU)。每個(gè)存儲(chǔ)器操作任務(wù)最多可以定義8個(gè)地址區(qū)間,地址范圍間隔低至8個(gè)字節(jié),禁寫禁執(zhí)行保護(hù),出錯(cuò)產(chǎn)生不可屏蔽中斷。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)45)XGATE協(xié)處理器。XGATE是可編程高性能的I/O協(xié)處理模塊,最大總線頻率100MHz,無需CPU介入或等待,即可完成RAM與各接口間的數(shù)據(jù)傳送,執(zhí)行數(shù)據(jù)的邏輯、移位、算術(shù)、位等運(yùn)算。數(shù)據(jù)傳送完成觸發(fā)中斷,可由任何硬件模塊觸發(fā),兩級(jí)中斷滿足高優(yōu)先級(jí)的任務(wù)。6)時(shí)鐘。低噪聲、低功耗皮爾斯振蕩器,晶振頻率可在4MHz~16MHz內(nèi)多選選擇。7)鎖相環(huán)。內(nèi)部數(shù)字濾波頻率調(diào)制的鎖相環(huán)(PLL),通過程序設(shè)置總線運(yùn)行頻率。8)復(fù)位發(fā)生器(CRG)??撮T狗(COPwatchdog);實(shí)時(shí)中斷;時(shí)鐘監(jiān)視器;從STOP模式快速喚醒。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)59)存儲(chǔ)器選項(xiàng)(Memory)。Flash:128KB、256KB、384KB、512KB、768KB、1MB字節(jié);模擬EEPROM:2KB、4K字節(jié)B;RAM:12KB、16KB、24KB、32KB、48KB、64K字節(jié)B。Flash具有以下特點(diǎn):64數(shù)據(jù)位+8位ECC(ErrorCorrectionCode)實(shí)現(xiàn)1位出錯(cuò)修正和加倍出錯(cuò)保護(hù);擦除區(qū)大小為1024字節(jié);用于驗(yàn)證和產(chǎn)生ECC校驗(yàn)位的自動(dòng)編程和擦除算法。D-Flash的特點(diǎn)有:多達(dá)64KB,按256字節(jié)B劃分區(qū)域;用于D-Flash訪問的專有命令;字讀操作的1位出錯(cuò)修正和2位出錯(cuò)保護(hù);用于驗(yàn)證和產(chǎn)生ECC校驗(yàn)位的自動(dòng)編程和擦除算法;快速區(qū)域擦除和按字編程操作;4字編程操作能力。10)2個(gè)16通道12位模數(shù)轉(zhuǎn)換器(ATD)??膳渲?、10或12位模數(shù)轉(zhuǎn)換器(ADC);兩個(gè)16選1復(fù)用器最多可實(shí)現(xiàn)32個(gè)通道模擬量輸入;10bit轉(zhuǎn)換時(shí)間為3μs;AD結(jié)果可選左、右對(duì)齊方式;轉(zhuǎn)換結(jié)果可為有符號(hào)或無符號(hào)數(shù);外部/內(nèi)部觸發(fā)轉(zhuǎn)換;連續(xù)轉(zhuǎn)換模式;在停止模式下內(nèi)部時(shí)鐘可實(shí)現(xiàn)ATD轉(zhuǎn)換;支持通過模擬量“>”或“<=”的MCU低能耗模式喚醒。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)611)5個(gè)MSCAN總線模塊(最高波特率1Mbpsit/s,兼容CAN2.0A/B)。5個(gè)接收緩沖器,3個(gè)發(fā)送緩沖器;4個(gè)獨(dú)立的中斷通道,分別是發(fā)送中斷、接收中斷、錯(cuò)誤中斷和喚醒中斷;可編程報(bào)文ID低通濾波器功能(2×32bit/4×16bit/8×8bit);低通濾波器喚醒功能;支持自環(huán)測(cè)試模式和總線監(jiān)聽模式。12)增強(qiáng)定時(shí)器模塊(ECT)。8個(gè)16位可編程輸入捕捉或輸出比較通道;16位自由計(jì)數(shù)器,8位預(yù)分頻器;4個(gè)8位或2個(gè)16位脈沖累加器。13)周期中斷定時(shí)器(PIT)。8個(gè)周期溢出定時(shí)器;可選的溢出周期1~224個(gè)總線時(shí)鐘周期;定時(shí)溢出和觸發(fā)。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)714)脈寬調(diào)制模塊(PWM)。8通道8位或4通道16位脈寬調(diào)制通道;每個(gè)通道的周期和占空比可編程設(shè)定;各通道獨(dú)立控制;脈沖在周期內(nèi)中心對(duì)稱或左對(duì)齊輸出;可編程時(shí)鐘選擇邏輯;緊急事件關(guān)斷輸入。15)8個(gè)異步串行通信接口(SCI)。16)3個(gè)同步串行設(shè)備接口(SPI)。17)2個(gè)IIC接口。18)片上電壓調(diào)節(jié)器。2個(gè)并行線性電壓調(diào)節(jié)器;帶低壓中斷(LVI)的低電壓檢測(cè);上電復(fù)位電路;低電壓復(fù)位;芯片可在電源5V或3.3V下使用。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)819)低功耗喚醒定時(shí)器(API)。20)輸入/輸出端口(I/O)。多達(dá)152個(gè)通用輸入輸出端口+2個(gè)輸入端口;所有輸入端口可配置上下拉電阻;所有輸出端口可配置驅(qū)動(dòng)能力。21)封裝選擇。MAPBGA208腳、LQFP144引腳、LQFP112引腳、QFP80引腳。22)溫度性能:-40℃~125℃寬溫度使用范圍。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)92.1.2S12XE內(nèi)部結(jié)構(gòu)S12XE系列芯片的內(nèi)部結(jié)構(gòu)如圖2-1所示,由MCU核心、XGATE、MCU外設(shè)接口三部分構(gòu)成,對(duì)應(yīng)圖中的左邊、中間、右邊部分。這里重點(diǎn)介紹S12XE內(nèi)部結(jié)構(gòu)的基礎(chǔ)部分:MCU核心與MCU外設(shè)接口。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)10圖2-1S12XE芯片的內(nèi)部結(jié)構(gòu)圖2023/11/28111.MCU核心S12XE以增強(qiáng)16位CPU12X為基礎(chǔ),由算術(shù)邏輯單元、控制單元和寄存器組構(gòu)成。此外,還包括MCU的3種存儲(chǔ)器(Flash/RAM/EEPROM)、電壓調(diào)節(jié)器、單線背景調(diào)試接口(BDM)、鎖相環(huán)(PLL)電路、時(shí)鐘、復(fù)位模塊和運(yùn)行監(jiān)視、看門狗模塊、程序存儲(chǔ)器的頁(yè)面模式控制模塊,具有中斷定時(shí)器、中斷管理、讀/寫控制、工作模式等控制功能的系統(tǒng)綜合模塊,可用于通用并行輸入/輸出的8位A口、B口、C口、D口、E口、K口、F口,也可用于實(shí)現(xiàn)總線擴(kuò)展,其中,A口、B口、K口可作為外擴(kuò)存儲(chǔ)器或接口電路時(shí)的超16位地址總線,C口、D口作為擴(kuò)展時(shí)的16位數(shù)據(jù)總線,而E口可作為控制總線,F(xiàn)口產(chǎn)生4個(gè)片選、1個(gè)IIC和1個(gè)SCI通訊接口。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)122.MCU外設(shè)接口S12XE外設(shè)接口有:A/D轉(zhuǎn)換器(ATD0和ATD1)、定時(shí)器(ECT和TIM)模塊、PWM/SCI/SPI/CAN/IIC等接口。此外,還有大量的通用并行輸入/輸出口(GPIO),這些GPIO接口大多與外設(shè)接口模塊有復(fù)用關(guān)系。3.S12XE芯片封裝與引腳分類S12XE芯片有4種封裝形式:MAPBGA208腳、LQFP144引腳、LQFP112引腳、QFP80引腳。LQFP是(?。┧姆奖馄?、表面貼焊型封裝。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)13圖2-2、圖2-3是S12XE系列MCU芯片的兩種常見封裝和引腳定義,不同封裝的芯片對(duì)圖中粗體、斜體標(biāo)注接口引腳做了相應(yīng)的裁減。圖2-2S12XE系列MCU的LQFP144封裝及引腳定義圖2-3S12XE系列MCU的LQFP112封裝及引腳定義2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)14
2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)15(2)電源類引腳S12XE的電源和電源地所涉及引腳較多,在應(yīng)用中所有的VSS引腳必須連在一起。1) VDDX[2:1]和VSSX[2:1]:I/O驅(qū)動(dòng)的外部輸入電源和接地引腳。VDDX標(biāo)稱電壓為5V,所有VDDX在內(nèi)部是連接在一起,所有VSSX在內(nèi)部也連接在一起。2) VDDR:供給內(nèi)部電壓調(diào)節(jié)器的外部電源輸入引腳。標(biāo)稱電壓為5V。3) VDD和VSS2、VSS3:內(nèi)核工作的電源和接地引腳。VDD標(biāo)稱電壓為1.8V,來源于內(nèi)部電壓調(diào)節(jié)器,負(fù)責(zé)給MCU內(nèi)核供電。4) VDDF和VSS1:內(nèi)部非易失存儲(chǔ)器的電源和地引腳。VDDF標(biāo)稱電壓為2.8V,來源于內(nèi)部電壓調(diào)節(jié)器。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)165)VDDA和VSSA:模/數(shù)轉(zhuǎn)換器和電壓調(diào)節(jié)器的電源和接地引腳。VDDA標(biāo)稱電壓5V。6)VRH和VRL:模/數(shù)轉(zhuǎn)換器參考電壓輸入引腳。7)VDDPLL和VSSPLL:振蕩器和鎖相環(huán)工作電源引腳和接地。VDDPLL標(biāo)稱電壓1.8V,來源于內(nèi)部電壓調(diào)節(jié)器。這些引腳不允許懸空,電源應(yīng)能提供瞬時(shí)大電流。上述各電源和地之間應(yīng)使用高頻旁路電容,并盡可能靠近相應(yīng)引腳,旁路要求取決于MCU引腳的負(fù)載大小,應(yīng)滿足信號(hào)快速上升和濾波的要求。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)17(3)I/O類引腳S12XE的I/O類引腳眾多,MAPBGA208封裝有152個(gè)端口、LQFP144封裝有119個(gè)端口、LQFP112封裝有91個(gè)端口、QFP80封裝有59個(gè)端口。包括AD、A、B、C、D、E、F、H、J、K、L、M、P、R、S、T共16組端口。1)AD口(PAD[31:16],PAD[15:0]):可用做通用輸入/輸出口,也可為模擬量輸入口。2)A、B、C、D、E、K:?jiǎn)纹J较掠米鐾ㄓ幂斎?輸出口;在擴(kuò)展運(yùn)行模式下,擴(kuò)展為地址總線、數(shù)據(jù)總線、控制總線。其中,E口用做通用輸入/輸出口時(shí),PE0、PE1只能用做輸入口)。3)F口(PF7~PF0):與IIC0、SCI3通信引腳復(fù)用。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)184)H口(PH7~PH0):與SPI1、SPI2通信引腳復(fù)用,也可做喚醒中斷輸入。5)J口(PJ7~PJ0):與SCI2、IIC1、CAN4通信引腳復(fù)用,也可做喚醒中斷輸入。6)L口(PL7~PL0):與SCI4、SCI5、SCI6、SCI7通信引腳復(fù)用。7)M口(PM7~PM0):與CAN0、CAN1、CAN2、CAN3通信引腳復(fù)用。8)P口(PP7~PP0):與PWM模塊關(guān)聯(lián)作為通信引腳,也可做喚醒中斷輸入。9)R口(PR7~PR0):與TIM模塊復(fù)用。10)S口(PS7~PS0):與SCI0、SCI1、SPI0通信引腳復(fù)用。11)T口(PT7~PT0):與ECT模塊復(fù)用。S12XE的I/O接口在用作通用輸入/輸出時(shí),各口引腳可以獨(dú)立設(shè)置其輸入/輸出方向、是否啟用上拉或下拉電阻等;P口、H口、J口的引腳具有喚醒中斷輸入功能。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)194.運(yùn)行模式S12XE系列微控制器有多種運(yùn)行模式,以滿足各種用戶的應(yīng)用需要,具有較強(qiáng)的靈活性和可擴(kuò)展性。(1)芯片模式的分類1)單片模式:?jiǎn)纹\(yùn)行模式是S12XE最常用的工作模式,此模式下,總線系統(tǒng)在芯片外部不可用。單片運(yùn)行模式又有兩種模式:普通單片模式和特殊單片模式。普通單片模式是最終產(chǎn)品正常運(yùn)行程序代碼的工作模式。特殊單片模式是FreescaleMCU在線仿真、調(diào)試、下載程序的工作模式,又稱為背景調(diào)試模式(BDM,BackgroundDebugMode)。用戶使用時(shí)往往就在這兩種模式間切換。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)20BDM硬件調(diào)試器一端通過USB接口接入PC,另一端插頭通過6針連接器與目標(biāo)板聯(lián)接,6針連接器引腳含義如圖2-4所示。BDM調(diào)試接頭實(shí)際只用到了4個(gè)引腳。引腳BKGD在MCU內(nèi)部設(shè)有上拉電阻,懸空時(shí)默認(rèn)為高電平。當(dāng)插上BDM連接器,由BDM調(diào)試工具給BKGD提供低電平,使MCU自動(dòng)進(jìn)入特殊單片模式(BDM)。若不插BDM連接器,BKGD/MODC為高,則自動(dòng)進(jìn)入普通單片模式。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)21圖2-4BDM調(diào)試器6針連接器引腳定義2)其他模式:包括特殊測(cè)試模式、特殊外設(shè)測(cè)試模式和擴(kuò)展運(yùn)行模式。特殊測(cè)試模式、特殊外設(shè)測(cè)試模式:S12XE系列單片機(jī)的芯片特殊測(cè)試模式和特殊外設(shè)測(cè)試模式等,用于芯片生產(chǎn)中的測(cè)試,在此不作詳述。擴(kuò)展運(yùn)行模式:S12XE系列MCU可以支持?jǐn)U展運(yùn)行模式,增加了用于更多模式選擇的MODA、MODB引腳功能。擴(kuò)展模式允許通過CPU外部總線擴(kuò)展RAM、Flash、I/O等,在此不作詳述。S12XE系列MCU在單片模式下,資源已經(jīng)非常強(qiáng)大,基本不需要擴(kuò)展功能就可以滿足大多數(shù)應(yīng)用開發(fā)的需要。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)22
2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)23(3)低功耗模式S12XE運(yùn)行時(shí)支持4種低功耗模式。1)系統(tǒng)停止模式(SystemSTOP)該模式下通過CPU執(zhí)行STOP指令進(jìn)入,只有非易失存儲(chǔ)器(NVM)指令還可以被執(zhí)行;該模式下,系統(tǒng)時(shí)鐘將繼續(xù)運(yùn)行,直到系統(tǒng)非易失存儲(chǔ)器操作完成。系統(tǒng)由CLKSEL寄存器中PSTP決定是進(jìn)入完全停止?fàn)顟B(tài)還是進(jìn)入偽停止?fàn)顟B(tài),當(dāng)CLKSEL寄存器中PSTP=0時(shí),停止所有的時(shí)鐘和晶振,使單片機(jī)進(jìn)入完全的停止?fàn)顟B(tài)。外部復(fù)位或外部中斷才能將S12XE從該模式下喚醒。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)242)完全停止模式(FullSTOP)。在該模式下,晶振時(shí)鐘停止,所有的時(shí)鐘和計(jì)數(shù)設(shè)備將被凍結(jié),自由周期中斷和ATD模塊可以提供自喚醒,快速喚醒模式將支持在不啟動(dòng)晶振時(shí)鐘情況下,通過PLL時(shí)鐘成為系統(tǒng)內(nèi)部時(shí)鐘。3)偽停止模式(PSEUDO)。當(dāng)CLKSEL寄存器中PSTP=1時(shí),CPU執(zhí)行STOP指令時(shí)S12XE進(jìn)入偽停止模式。此時(shí)時(shí)鐘振蕩器仍然工作,實(shí)時(shí)時(shí)鐘和看門狗模塊通過設(shè)置也可以繼續(xù)工作,其他的外設(shè)接口都關(guān)閉。外部復(fù)位或外部中斷能將S12XE從該模式下喚醒。4)等待模式(WAIT)。通過CPU執(zhí)行WAIT指令進(jìn)入等待模式。在這種模式下,CPU不再執(zhí)行指令,CPU內(nèi)部進(jìn)入完全靜止的狀態(tài),但所有的外設(shè)接口保持激活狀態(tài)。外部中斷及外設(shè)中斷能激活CPU的繼續(xù)運(yùn)行。在正常的運(yùn)行模式(RUN)下,為了降低功耗,未被使用的外設(shè)接口應(yīng)不被使能。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)25(4)凍結(jié)模式當(dāng)背景調(diào)試模塊處于活動(dòng)狀態(tài),定時(shí)器模塊、脈沖寬度調(diào)制器、模擬數(shù)字轉(zhuǎn)換器、定時(shí)器和周期性中斷提供一個(gè)軟件可編程選項(xiàng)的凍結(jié)模式狀態(tài)。(5)加密模式MCU的加密模式用于防止未經(jīng)授權(quán)的閃存訪問,保護(hù)閃存中的程序和數(shù)據(jù)。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)262.2S12XE系列MCU的存儲(chǔ)器組織2.2.1S12XE存儲(chǔ)器分類嵌入式系統(tǒng)的MCU在芯片內(nèi)部布置一定容量的存儲(chǔ)器,用來存放程序和數(shù)據(jù)。存儲(chǔ)器可分為只讀存儲(chǔ)器(ROM)和隨機(jī)存儲(chǔ)器(RAM)兩大類。1.ROMROM也叫程序存儲(chǔ)器,是一種非易失性半導(dǎo)體存儲(chǔ)器(NVM)。ROM掉電能保持?jǐn)?shù)據(jù),通常用來保存不需要擦除的最終應(yīng)用程序信息。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)27ROM進(jìn)一步可分為以下類型:(1)EPROM可編程的非易失性存儲(chǔ)器??梢杂锰厥獾姆椒▽懭霐?shù)據(jù),但當(dāng)把EPR0M暴露在紫外光線幾分鐘時(shí)間,就可以擦除其中的內(nèi)容然后重新編程寫入。(2)EEPROM可編程的非易失性存儲(chǔ)器。與EPROM的區(qū)別是信息的擦除不是用紫外線而是僅使用DC電源就可以方便快捷地編程和擦除,已取代了EPROM。(3)Flash俗稱程序閃存。除具有電擦除、可編程、非易失的特性外,還具有更高速、更方便、容量大的特點(diǎn),可多次反復(fù)擦寫(10萬次以上),并允許在線編程。現(xiàn)代MCU的程序運(yùn)行代碼都是寫入Flash。(4)DataFlash簡(jiǎn)寫為D-Flash,數(shù)據(jù)閃存,用于存儲(chǔ)數(shù)據(jù)。注:S12XE將Flash分為D-Flash(數(shù)據(jù)存儲(chǔ)器)和P-Flash(程序存儲(chǔ)器)。D-Flash和P-Flash沒有多大差別,只是一次擦寫的扇區(qū)大小不同。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)282.RAMRAM也叫數(shù)據(jù)存儲(chǔ)器,是可讀/寫存儲(chǔ)器。用于保存需要經(jīng)常改變的數(shù)據(jù)。RAM是易失性存儲(chǔ)器,一旦掉電就會(huì)丟失所有的數(shù)據(jù)。采用“隨機(jī)訪問”機(jī)制,每個(gè)地址的訪問時(shí)間相等,所以叫隨機(jī)存取存儲(chǔ)器。目前,MCU中應(yīng)用廣泛的存儲(chǔ)器有RAM、Flash、EEPROM。S12XE系列MCU片內(nèi)集成了這3種存儲(chǔ)器,D-Flash也可以取代EEPROM。Flash存儲(chǔ)器用于存放整個(gè)程序代碼或者需要高速訪問的參數(shù),例如操作系統(tǒng)核心、應(yīng)用程序、標(biāo)準(zhǔn)子程序庫(kù)、表格數(shù)據(jù)等,F(xiàn)lash允許在現(xiàn)場(chǎng)進(jìn)行代碼測(cè)試和更新。EEPROM或D-Flash一般用來保存定制的標(biāo)定信息和特定數(shù)據(jù)。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)29表2-1是S12XE系列不同型號(hào)MCU的存儲(chǔ)器資源。S12XE的存儲(chǔ)器采用馮?諾依曼結(jié)構(gòu),RAM、ROM是統(tǒng)一編址的。S12XE系列MCU的地址線為16位,其邏輯地址空間為64KB(216)地址范圍是0x0000~0xFFFF,被分成多個(gè)不同區(qū)段,每個(gè)區(qū)段的作用不同。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)302.2.2S12XE存儲(chǔ)器組織1.本地地址分配及分頁(yè)圖2-5為S12XE芯片單片運(yùn)行模式下的一種典型的存儲(chǔ)空間分配圖。通過頁(yè)面擴(kuò)展機(jī)制,S12XE可以管理遠(yuǎn)超64KB的存儲(chǔ)器空間。當(dāng)S12XE的存儲(chǔ)分配出現(xiàn)地址重疊時(shí),MCU內(nèi)部的優(yōu)先級(jí)控制邏輯會(huì)自動(dòng)屏蔽級(jí)別較低的資源,保留級(jí)別最高的資源存儲(chǔ)器的優(yōu)先級(jí),優(yōu)先級(jí)按照I/O寄存器、RAM、D-Flash、Flash的順序遞減。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)31圖2-5S12XE存儲(chǔ)器的地址分配及分頁(yè)按圖2-5所示的存儲(chǔ)器地址分配,分為本地存儲(chǔ)區(qū)映射地址區(qū)間及其右側(cè)擴(kuò)展出來的分頁(yè)窗口的各邏輯地址空間兩部分,以下是存儲(chǔ)器空間的詳細(xì)分配:1)0x0000~0x07FF(2KB):I/O寄存器區(qū)。安排S12XE的眾多不同I/O接口模塊的幾百個(gè)寄存器,也有部分空間未被分配使用。例如PORTA的實(shí)際地址是0x0000;PWM允許寄存器PWME的實(shí)際地址是0x00A0。I/O寄存器區(qū)也可以映射到其他位置,一般情況該區(qū)域地址盡量不要改變。2)0x0800~0x0BFF(1KB):分頁(yè)EEPROM區(qū)。通過分頁(yè)擴(kuò)展的方法以達(dá)到管理256KB空間的EEPROM,此區(qū)間對(duì)應(yīng)0x00~0xFE共255個(gè)頁(yè)面窗口,每個(gè)頁(yè)面為1KB空間,其中本地地址空間固定占用0xFE頁(yè)面。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)323)0x0C00~0x0FF(1KB):固定EEPROM區(qū),固定占用0xFF頁(yè)面。4)0x1000~0x1FFF(4KB):分頁(yè)RAM區(qū)。通過分頁(yè)擴(kuò)展的方法以達(dá)到管理1022KB(1MB-2KB)空間的RAM,此區(qū)間對(duì)應(yīng)0x00~0xFD共254個(gè)頁(yè)面窗口,每個(gè)頁(yè)面為4KB空間,其中本地地址空間固定占用0xFD頁(yè)面。5)0x2000~0x3FFF(8KB):固定RAM區(qū),固定占用0xFE、0xFF頁(yè)面。如果使用復(fù)位默認(rèn)地址分配(0xFD頁(yè)面),RAM空間實(shí)際為0x1000~0x3FFF,因此,如果要使全部的8KBRAM都可見,就需要將RAM的地址空間映射到0x2000~0x3FFF這個(gè)區(qū)域,即需調(diào)整到0xFE頁(yè)面開始,才可訪問到實(shí)際的連續(xù)8KB。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)336)0x4000~0xFFFF(48KB):Flash區(qū),分成3塊,每塊16KB。其中0x8000~0xBFFF的16KB區(qū)域是頁(yè)面窗口,通過分頁(yè)擴(kuò)展的方法以達(dá)到管理超過64KB空間的Falsh。而0x4000~0x7FFF、0xC000~0xFFFF為兩個(gè)16KB的固定Flash區(qū),固定占用0xFD、0xFF頁(yè)面。7)0xFF00~0xFFFF(256B):中斷向量區(qū)。占用Flash的最后256字節(jié)的空間,BDM模式下能被BDM指令訪問。其中,復(fù)位中斷向量地址為0xFFFE,是整個(gè)程序的入口地址。前述各個(gè)分頁(yè)窗口的頁(yè)面值是通過對(duì)應(yīng)的頁(yè)面管理寄存器進(jìn)行設(shè)定的。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)342.全局訪問S12XE具有強(qiáng)大的存儲(chǔ)器管理控制模塊,除了可以通過頁(yè)面擴(kuò)展機(jī)制實(shí)現(xiàn)全局管理8MB存儲(chǔ)區(qū)空間外,還可以通過GPAGE寄存器、采用23位的地址定位和全局存儲(chǔ)器操作指令來管理全局8MB存儲(chǔ)器空間,如圖2-6所示,其中右半部分就是以7位全局頁(yè)面寄存器擴(kuò)展的128個(gè)64KB頁(yè)面地址空間(128×64KB=8MB),用本地64K空間地址外加全局頁(yè)面寄存器值0x00~0x7F表示,那么8MB全局存儲(chǔ)器地址空間就可以連續(xù)地表示為0x00_0000~0x7F_FFFF。這樣,S12XE能支持的容量足夠大的RAM、D-Flash、Flash。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)352023/11/2836圖2-6S12XE的存儲(chǔ)器全局地址映射分配S12XE總共新增了84條這類全局尋址指令。全局地址[22:0]由CPU本地地址[15:0]和GPAGE寄存器[22:16]聯(lián)合組成。按全局地址方式進(jìn)行存儲(chǔ)器訪問的可尋址連續(xù)地址空間安排表達(dá)如下:1)0x00_0000~0x00_07FF:2KB的I/O寄存器區(qū)。2)0x00_0800~0x0F_FFFF:16×64KB-2KB=1022KB的RAM區(qū)。3)0x10_0000~0x13_FFFF:4×64KB=256KB的D-Flash區(qū)。4)0x14_0000~0x3F_FFFF:44×64KB=2.75MB的保留未用區(qū)。5)0x40_0000~0x7F_FFFF:64×64KB=4MB的Flash區(qū)。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)37在可以訪問的8M地址空間里:I/O寄存器、RAM空間可以使用全局讀寫指令進(jìn)行讀寫操作;Flash、D-Flash空間只能使用全局讀指令進(jìn)行讀取。S12XE嵌入式系統(tǒng)的鏈接文件Project.prm中,定義和劃分了芯片所有可用的內(nèi)存資源,包括程序空間和數(shù)據(jù)空間,可以通過這個(gè)文件了解S12XEMCU的存儲(chǔ)器分頁(yè)管理。通常本地64KB空間分配的RAM、EEPROM、D-Flash、FLASH容量已足夠滿足一般應(yīng)用的需求,用戶不要去修改。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)382.3S12XE系列MCU的中斷系統(tǒng)中斷:指MCU在正常執(zhí)行程序的過程中,由于內(nèi)部/外部事件的發(fā)生或由程序的預(yù)先安排,引起CPU暫時(shí)停止執(zhí)行當(dāng)前的程序,轉(zhuǎn)而執(zhí)行由內(nèi)部/外部事件或預(yù)先安排的事件而需要執(zhí)行的中斷服務(wù)程序,在中斷服務(wù)程序處理完畢后,返回繼續(xù)運(yùn)行調(diào)用中斷前的程序。中斷源:提出中斷處理請(qǐng)求的來源稱為中斷源。中斷方式與查詢方式相比,可使MCU的程序設(shè)計(jì)更加高效與靈活,可以提高嵌入式系統(tǒng)的實(shí)時(shí)處理能力和工作效率,擴(kuò)大其應(yīng)用范圍。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)39中斷系統(tǒng)應(yīng)具有以下基本功能:1)能實(shí)現(xiàn)中斷響應(yīng)、中斷服務(wù)、中斷返回和中斷屏蔽。當(dāng)出現(xiàn)中斷請(qǐng)求時(shí),MCU能決定是否響應(yīng)該請(qǐng)求。如果允許響應(yīng)這個(gè)中斷請(qǐng)求,MCU由硬件自動(dòng)保護(hù)斷點(diǎn),轉(zhuǎn)而執(zhí)行相應(yīng)的中斷服務(wù)程序。中斷處理完后能自動(dòng)恢復(fù)斷點(diǎn)返回原中斷處繼續(xù)執(zhí)行被中止的程序。2)能實(shí)現(xiàn)中斷優(yōu)先級(jí)配置。當(dāng)多個(gè)中斷源同時(shí)發(fā)出中斷申請(qǐng)時(shí),優(yōu)先級(jí)較高的中斷申請(qǐng)首先得到處理。3)能實(shí)現(xiàn)中斷嵌套。中斷處理過程中,有優(yōu)先級(jí)較高的中斷請(qǐng)求時(shí),MCU能暫停正在執(zhí)行的中斷處理程序,轉(zhuǎn)去響應(yīng)與處理優(yōu)先級(jí)較高的中斷申請(qǐng),結(jié)束后再返回原先優(yōu)先級(jí)較低的中斷處理過程。4)能通過軟件實(shí)現(xiàn)模擬中斷,便于中斷的調(diào)試。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)402023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)412.3.1S12XE中斷源S12XE的中斷源可分為3大類:復(fù)位中斷、特殊中斷、普通中斷。1.復(fù)位中斷S12XE有3個(gè)不可屏蔽的復(fù)位中斷。S12XE的復(fù)位中斷不返回原來的程序,而是程序重新開始運(yùn)行。(程序重啟)S12XE復(fù)位發(fā)生后:一些內(nèi)部資源寄存器(R)恢復(fù)到默認(rèn)狀態(tài)。S12XE的引腳狀態(tài)取決于對(duì)應(yīng)的控制寄存器;內(nèi)部RAM的內(nèi)容不隨復(fù)位的發(fā)生而變化;PC指針將根據(jù)復(fù)位向量指定的內(nèi)容(地址),跳轉(zhuǎn)到指定地址開始重新執(zhí)行整個(gè)程序。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)42S12XE的復(fù)位向量有3個(gè);觸發(fā)復(fù)位的動(dòng)作有4個(gè),即上電復(fù)位、外部復(fù)位、時(shí)鐘監(jiān)視復(fù)位、看門狗定時(shí)器溢出復(fù)位。3個(gè)復(fù)位向量:上電復(fù)位與外部復(fù)位共用一個(gè)向量(0xFFFE~0xFFFF);時(shí)鐘監(jiān)視復(fù)位的向量(0xFFFC~0xFFFD);看門狗定時(shí)器溢出復(fù)位的向量(0xFFFA~0xFFFB)。寄存器PLLCTL中的位CME=1、SCME=1使能,時(shí)鐘失效時(shí)產(chǎn)生復(fù)位;寄存器COPCTL的位CR[2:0]非零使看門狗定時(shí)器溢出時(shí)產(chǎn)生復(fù)位。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)432.特殊中斷特殊中斷包含3個(gè)不可屏蔽特殊中斷,分別是非法指令陷阱中斷、軟件中斷、非屏蔽的外部中斷。外部中斷可以在系統(tǒng)復(fù)位初始化時(shí)通過設(shè)置CCR寄存器的中斷屏蔽位X來進(jìn)行屏蔽或開放設(shè)置。(1)非法指令陷阱中斷0xFFF8~0xFFF9當(dāng)MCU執(zhí)行程序時(shí)受到干擾或產(chǎn)生混亂時(shí),有可能無法取得正確的操作碼,得到的是無法識(shí)別的非法指令,MCU就會(huì)自動(dòng)產(chǎn)生中斷,即為非法指令中斷,其中斷向量為0xFFF8~0xFFF9。用戶可以根據(jù)需要定義相應(yīng)的中斷服務(wù)程序,以防止某些如程序跑飛、死機(jī)等軟件錯(cuò)誤。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)442023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)45
2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)46
2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)47
2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)482023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)492023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)502023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)512023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)522023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)53S12XE單片機(jī)的中斷向量地址也可以通過“基地址+偏移地址”的方式表達(dá),并且基地址可以由用戶改變配置到Flash區(qū)域的任何地址。中斷向量地址=“基地址+偏移地址”可以通過配置中斷向量基址(InterruptVectorBased,IVB)寄存器IVB予以實(shí)現(xiàn);S12XE的3個(gè)復(fù)位中斷源(0xFFFE、0xFFFC、0xFFFA)的基址是固定不變的,基地址為0xFF,見表2-3;中斷源優(yōu)先級(jí)是按中斷向量地址遞減順序排列。S12XE復(fù)位時(shí)基址IVBR的默認(rèn)值為0xFF,優(yōu)先級(jí)最高。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)542023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)552.3.2中斷處理流程、優(yōu)先級(jí)與嵌套1.中斷處理流程S12XE中斷處理流程是硬件和軟件編程相結(jié)合的處理過程。(1)中斷請(qǐng)求當(dāng)S12XE的外部設(shè)備或者內(nèi)部模塊發(fā)生中斷事件時(shí),首先向CPU發(fā)出中斷請(qǐng)求信號(hào)。若該中斷源未被屏蔽,并且中斷允許觸發(fā)器被置位時(shí),成功發(fā)出中斷請(qǐng)求。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)56(2)中斷響應(yīng)中斷源的中斷請(qǐng)求是隨機(jī)的,S12XE一般會(huì)在現(xiàn)行指令執(zhí)行完成時(shí)去檢測(cè)中斷請(qǐng)求。當(dāng)檢測(cè)到有中斷請(qǐng)求,且滿足中斷響應(yīng)條件,則S12XE在當(dāng)前指令執(zhí)行結(jié)束時(shí),進(jìn)入中斷響應(yīng)周期,通過內(nèi)部硬件自動(dòng)完成以下3步操作:1)關(guān)中斷。即將CCR寄存器I位置1,以禁止其他中斷干擾將要執(zhí)行的中斷服務(wù)程序。2)現(xiàn)場(chǎng)保護(hù)。即將斷點(diǎn)地址和CCR寄存器內(nèi)容推入堆棧區(qū)。3)跳轉(zhuǎn)到中斷服務(wù)程序的入口地址。即將中斷向量地址的內(nèi)容載入PC。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)57(3)中斷服務(wù)程序處理中斷服務(wù)程序一般做如下處理:1)服務(wù)中斷。例如清除標(biāo)志位復(fù)制數(shù)據(jù)、保護(hù)現(xiàn)場(chǎng)等。2)通過執(zhí)行CLI指令清除CCR中的I位(這樣允許高優(yōu)先級(jí)別的中斷清求)。3)處理數(shù)據(jù),完成要處理的功能。通常要求中斷處理程序的設(shè)計(jì),應(yīng)力求簡(jiǎn)短。4)通過執(zhí)行RTI指令返回。中斷服務(wù)程序的最后一條指令必須是返回指令RTI。S12XE執(zhí)行中斷返回指令時(shí),自動(dòng)將保存在現(xiàn)行堆棧中的寄存器內(nèi)容和斷點(diǎn)地址彈出,使程序回到中斷前的地址繼續(xù)執(zhí)行,即S12XE從中斷服務(wù)程序返回而繼續(xù)執(zhí)行被中止的原來正常運(yùn)行的程序。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)582.中斷的現(xiàn)場(chǎng)保護(hù)發(fā)生中斷時(shí),所有涉及的寄存器最好都要進(jìn)行臨時(shí)保護(hù),通常保存到堆棧中。堆棧的方向是向低地址增長(zhǎng)的。觸發(fā)中斷后,S12XE由硬件自動(dòng)將CPU寄存器(PC、IY、IX、D、CCR)按順序壓入堆棧,完成內(nèi)部寄存器的保存,但并沒有保存分頁(yè)寄存器PPAGE。寄存器內(nèi)容保存后其內(nèi)容保持不變。發(fā)生中斷時(shí)一般要等待當(dāng)前指令完成后才響應(yīng)中斷,但S12XE有些指令的執(zhí)行周期較長(zhǎng),S12XE可以在這些指令執(zhí)行過程中打斷當(dāng)前指令,在中斷完成后繼續(xù)進(jìn)行指令執(zhí)行。但由于中斷過程中曾經(jīng)轉(zhuǎn)向執(zhí)行別的程序,所以指令隊(duì)列中存入的指令將被清空。S12XE中斷發(fā)生后的現(xiàn)場(chǎng)保護(hù)的整個(gè)過程都由硬件自動(dòng)完成,用戶不需要編寫任何代碼。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)593.中斷服務(wù)程序中斷發(fā)生并進(jìn)行現(xiàn)場(chǎng)斷點(diǎn)保護(hù)后,CPU將打斷當(dāng)前的操作,進(jìn)入中斷處理程序。S12XE從中斷向量地址讀取中斷處理程序的入口地址,載入PC指針,繼而跳轉(zhuǎn)到中斷處理程序。S12XE每個(gè)中斷向量指向的處理程序可以是64KB地址空間的任何值,這就意味著中斷程序可以放在RAM、EEPROM或D-Flash、Flash的任何位置中。一般大部分程序設(shè)計(jì)只需要將中斷服務(wù)處理程序放入常規(guī)的不分頁(yè)Flash區(qū)域中。中斷處理程序要盡量簡(jiǎn)潔,條件苛刻時(shí)還需要使用匯編語言進(jìn)行編寫,以盡量把占用時(shí)間較多的程序放在主程序中完成。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)604.中斷優(yōu)先級(jí)與嵌套處理S12XE每個(gè)可屏蔽中斷請(qǐng)求有一個(gè)可配置的優(yōu)先級(jí),并可選定由CPU或XGATE處理??善帘沃袛嗾?qǐng)求可以嵌套,這取決于優(yōu)先級(jí)。優(yōu)先級(jí)的作用只有在多個(gè)中斷源同時(shí)請(qǐng)求中斷時(shí)才能體現(xiàn)。默認(rèn)情況下,可屏蔽中斷請(qǐng)求不能被另一個(gè)可屏蔽中斷請(qǐng)求所中斷。為了使一個(gè)中斷服務(wù)程序(ISR,InterruptServiceRouting)可以被中斷,ISR必須明確地清除CCR中的I位。清理了I位后,具有更高優(yōu)先級(jí)的可屏蔽中斷請(qǐng)求中斷當(dāng)前ISR。每一個(gè)可屏蔽中斷可分為8個(gè)優(yōu)先級(jí),支持靈活的優(yōu)先級(jí)控制。對(duì)于那些被CPU處理的中斷請(qǐng)求,優(yōu)先級(jí)可以用于處理嵌套中斷,如果一個(gè)高優(yōu)先級(jí)的中斷正在進(jìn)行,優(yōu)先級(jí)低的中斷會(huì)被自動(dòng)阻斷。由XGATE模快處理配置的中斷請(qǐng)求是不能被嵌套的,因?yàn)閄GATE在運(yùn)行時(shí)不能被中斷。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)61系統(tǒng)復(fù)位后,向量地址不大于向量基地地址+0x00F2的中斷請(qǐng)求被使能且優(yōu)先級(jí)設(shè)定為1,并可以由CPU處理。不過有一例外,地址為(向量基地地址+0x0010)的偽中斷向量不能被禁止,它的優(yōu)先級(jí)總是為8,且總是由CPU處理這個(gè)虛假的異常中斷請(qǐng)求。若優(yōu)先級(jí)為0,則禁用相關(guān)的中斷請(qǐng)求;如果不止一個(gè)中斷請(qǐng)求被配置為相同的中斷優(yōu)先級(jí),向量地址高的中斷請(qǐng)求獲得了優(yōu)先權(quán)。滿足下列條件之一,可屏蔽中斷請(qǐng)求必須進(jìn)行處理:1)外設(shè)模塊中的中斷使能位必須被置位。2)相應(yīng)的中斷請(qǐng)求通道的配置寄存器的設(shè)置,必須符合:①XGATE使能位必須是0,中斷請(qǐng)求由CPU處理;②優(yōu)先級(jí)必須為非零;③優(yōu)先級(jí)必須大于CPU中條件碼寄存器CCR當(dāng)前的中斷級(jí)別。3)CPU中條件碼寄存器CCR的I位必須被清零。4)沒有SWI、TRAP和XIRQ中斷在等待。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)62需要注意:所有的非屏蔽中斷請(qǐng)求總是比可屏蔽中斷請(qǐng)求的優(yōu)先級(jí)更高。如果一個(gè)可屏蔽中斷請(qǐng)求被一個(gè)非屏蔽中斷請(qǐng)求所中斷,中斷處理級(jí)別IPL不受影響。非屏蔽中斷請(qǐng)求是可以被嵌套的。當(dāng)前的中斷處理級(jí)別IPL是存儲(chǔ)在CPU的條件碼寄存器CCR中。這樣,當(dāng)前的IPL自動(dòng)被標(biāo)準(zhǔn)中斷堆棧程序壓入堆棧,新的IPL從具有最高優(yōu)先級(jí)的中斷請(qǐng)求通道復(fù)制到CCR,該中斷請(qǐng)求通道是由CPU處理的。復(fù)制動(dòng)作是在中斷向量到達(dá)時(shí)發(fā)生的,先前的IPL通過執(zhí)行RTI的指令而自動(dòng)恢復(fù)。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)632.3.3中斷的使用和配置S12XE的中斷系統(tǒng)支持以下4種運(yùn)行模式:1)運(yùn)行模式。這是基本的工作模式。2)等待模式。在等待模式,XINT模塊被凍結(jié)。不過,如果中斷發(fā)生或XGATE請(qǐng)求發(fā)生,CPU將被喚醒。3)停止模式。在停止模式,XINT模塊被凍結(jié)。不過,如果中斷發(fā)生或XGATE請(qǐng)求發(fā)生,CPU將被喚醒。4)凍結(jié)模式(BDM啟用)。在凍結(jié)模式,中斷向量基址寄存器是全局控制的。S12XE的中斷除了CPU遇到軟件中斷SWI指令后必須執(zhí)行、遇到非法指令立即中斷不能禁止以及XIRQ只能一次性打開不能關(guān)閉(復(fù)位默認(rèn)為關(guān)閉)外,其余各種中斷在實(shí)際應(yīng)用時(shí)根據(jù)需要進(jìn)行相應(yīng)的啟用和配置,即進(jìn)行中斷初始化。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)641.中斷屏蔽S12XE中CCR寄存器(CPU內(nèi)部的條件碼寄存器)中有兩個(gè)控制位與中斷控制有關(guān)。中斷屏蔽位X位專門用來控制非屏蔽中斷XIRQ的打開與關(guān)閉。中斷屏敝I位專門用來控制可屏蔽中斷的打開與關(guān)閉,I位設(shè)為0相當(dāng)于打開總中斷。2.中斷優(yōu)先級(jí)控制在MCU應(yīng)用系統(tǒng)中,外部端口的某些變化會(huì)比其他中斷重要得多,比如復(fù)位信號(hào)時(shí)鐘異常信號(hào)等。在S12XE的優(yōu)先級(jí)處理中,不可屏敝中斷總體要比可屏敝中斷優(yōu)先級(jí)高。實(shí)際上6個(gè)不可屏蔽中斷也有優(yōu)先級(jí)之分,高優(yōu)先級(jí)中斷將被優(yōu)先處理。比如復(fù)位信號(hào)來臨時(shí),S12XE都將立即響應(yīng)復(fù)位信號(hào)。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)65
2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)663.中斷使能及方式控制S12XE有關(guān)中斷全局管理的相關(guān)寄存器如前所述,它們占據(jù)寄存器地址區(qū)域的0x0120~0x012F地址,在需要改變中斷的向量地址、使能、優(yōu)先級(jí)時(shí)可進(jìn)行初始化配置。簡(jiǎn)單應(yīng)用情況下使用復(fù)位默認(rèn)配置即可。MCU的諸多資源模塊都有事件型中斷功能,合理使用各個(gè)模塊的中斷,可以使程序更加高效、簡(jiǎn)潔。MCU的各個(gè)模塊除了實(shí)現(xiàn)具體的功能外,一般都可以通過一個(gè)標(biāo)志位使能中斷,具體參見各個(gè)功能模塊的寄存器設(shè)置。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)672023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)68
2.4S12XE系列MCU的內(nèi)核2.4.1S12XE系列MCU內(nèi)核S12XE系列MCU是16位微控制器,內(nèi)部有高速16位中央處理器CPU12X和6個(gè)寄存器。其內(nèi)核具有以下特點(diǎn):1)16位數(shù)據(jù)寬度支持高效算術(shù)運(yùn)算和高速數(shù)學(xué)計(jì)算。2)支持多字節(jié)指令,包括大量單字節(jié)指令,能更有效利用ROM空間。3)CPU12X指令運(yùn)行效率更高。CPU12X能夠在指令隊(duì)列緩沖區(qū)中立即存取至少3個(gè)字節(jié)的機(jī)器碼。4)強(qiáng)大的變址尋址能力。包括:堆棧指針作為變址寄存器尋址;程序計(jì)數(shù)器作為變址寄存器尋址;A、B或D累加器偏移量尋址;自動(dòng)先遞增或先遞減、后遞增或后遞減變址尋址。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)69S12XE系列MCU內(nèi)核的內(nèi)部寄存器如圖2-7所示。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)70S12XE的內(nèi)核寄存器包括:1.累加器A、B(Accumulator)或16位累加器D累加器A、B是8位通用寄存器,用于存放操作數(shù)和運(yùn)算結(jié)果。讀取數(shù)據(jù)時(shí),累加器A、B用于存放從存儲(chǔ)器讀出的數(shù)據(jù);寫入數(shù)據(jù)時(shí),累加器A、B用于存放準(zhǔn)備寫入存儲(chǔ)器的數(shù)據(jù)。執(zhí)行算術(shù)、邏輯操作時(shí),累加器首先存放一個(gè)操作數(shù);執(zhí)行完畢時(shí),累加器存放操作結(jié)果。累加器A、B是指令系統(tǒng)中最靈活的寄存器,各種尋址方式均可對(duì)其尋址。復(fù)位時(shí),累加器中的內(nèi)容不受影響。有些指令將累加器A、B組合為一個(gè)16位累加器D使用。絕大多數(shù)指令都可使用累加器A或B,但也有些特殊指令A(yù)和B不能交換使用(如ABA、SBA、CBA和DAA等),必須使用指定的累加器。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)712.變址寄存器X、Y(IndexRegister)S12XE內(nèi)核有兩個(gè)16位地址寄存器X和Y,稱為間接尋址寄存器,簡(jiǎn)稱間址寄存器或變址寄存器。一般情況下作為指針寄存器,用于多種尋址方式下的地址計(jì)算,也可用于臨時(shí)存放數(shù)據(jù)或參與一些運(yùn)算,只能按照16位方式訪問。這兩個(gè)變址寄存器可交替使用,而不會(huì)降低執(zhí)行速度或增加程序長(zhǎng)度。匯編語言中,數(shù)據(jù)塊傳送時(shí),X和Y寄存器都可自動(dòng)加、減1~16,X寄存器常作為源地址指針,Y寄存器常作為目的地址指針,故X和Y寄存器有時(shí)也稱做指針寄存器。當(dāng)指令具有一個(gè)以上16位數(shù)值作為其結(jié)果時(shí),變址寄存器也可當(dāng)做累加器使用。由于S12XE內(nèi)核的通用數(shù)據(jù)寄存器較少,因此,乘法運(yùn)算時(shí)需要X參與,除法運(yùn)算時(shí)需要X、Y同時(shí)參與。僅有的兩條特殊的8位與16位相加指令為B與X或Y相加,結(jié)果分別放在X、Y中,實(shí)際上它們已經(jīng)演變成有效地址加載指令。此外,X、Y不再參與其他的算術(shù)運(yùn)算。例如,不存在X、Y與存儲(chǔ)器字之間的加、減法運(yùn)算,也沒有X、Y與A或D之間的加、減法運(yùn)算。復(fù)位時(shí),X、Y均為0x0000。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)723.堆棧指針SP(StackPointer)堆棧是在內(nèi)存中專門開辟出來的、按照“先進(jìn)后出,后進(jìn)先出”原則進(jìn)行存取的區(qū)域。堆棧指針SP是指向下一個(gè)棧地址的16位寄存器。堆棧指針作為8位或者16位的偏移量尋址中,SP充當(dāng)變址寄存器功能,CPU利用SP的內(nèi)容來確定操作數(shù)的地址。4.程序計(jì)數(shù)器PC(ProgramCounter)16位程序計(jì)數(shù)器的內(nèi)容決定了程序的執(zhí)行順序,用戶可以讀取,但不能直接寫入。復(fù)位后PC自動(dòng)回到默認(rèn)狀態(tài)。S12XE工作時(shí),PC始終指向指令序列中下一條要執(zhí)行的指令,分支、調(diào)用或轉(zhuǎn)移指令均能改變PC值。PC是特殊寄存器,決定S12XE內(nèi)核的取指地址,不能挪作他用。PC主要為S12XE內(nèi)核的CPU服務(wù),不能參與任何運(yùn)算,但可輔助進(jìn)行變址尋址操作。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)735.條件碼寄存器CCR(ConditionCodeRegister)CCR寄存器中的低8位包括兩部分:5個(gè)算術(shù)標(biāo)志位H、N、Z、V、C,反映上一條指令執(zhí)行結(jié)果的特征(狀態(tài));3個(gè)MCU控制位,即中斷屏蔽位X和I以及STOP指令控制位,通常由軟件設(shè)定,以控制S12XE內(nèi)核行為,復(fù)位后,X、I均為1,即屏蔽系統(tǒng)中斷。除C、H位,其他各位不參與運(yùn)算。上述各位含義如下:1)C:進(jìn)位/借位標(biāo)志。當(dāng)加法運(yùn)算產(chǎn)生進(jìn)位或減法運(yùn)算產(chǎn)生借位時(shí),則C=1,否則,C=0。此外,乘法、除法、移位操作或C語言相關(guān)指令也會(huì)改變C的值。2)V:溢出標(biāo)志。算術(shù)運(yùn)算后,若出現(xiàn)補(bǔ)碼運(yùn)算溢出時(shí),則V=1;若無溢出,V=0。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)743)Z:零標(biāo)志。算術(shù)運(yùn)算、邏輯運(yùn)算、比較、加載、存入等指令執(zhí)行后,若操作結(jié)果為0時(shí),Z=1。否則,Z=0。4)N:符號(hào)位標(biāo)志。當(dāng)運(yùn)算結(jié)果為負(fù)時(shí),則N=1。N位表示運(yùn)算結(jié)果最高位,算術(shù)或邏輯運(yùn)算后,或者比較、加載、存入操作后,將N置為最高位。N位主要用在二進(jìn)制補(bǔ)碼運(yùn)算中,負(fù)數(shù)的最高位是1,正數(shù)的最高位是0。當(dāng)運(yùn)算結(jié)果最高位是1時(shí),則N=1。5)H:輔助進(jìn)位(半進(jìn)位)標(biāo)志。加法過程中,若累加器A中的第3位向第4位產(chǎn)生進(jìn)位,則H=1;否則,H=0。H位僅僅由累加器A和B的加法指令A(yù)BA、不帶進(jìn)位加法指令A(yù)DD和帶進(jìn)位加法指令等改變。H標(biāo)志位主要用于BCD碼運(yùn)算,十進(jìn)制調(diào)整指令DAA利用H標(biāo)志位將累加器A中的結(jié)果調(diào)整為BCD碼。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)756)I:可屏蔽中斷位。I位是全局中斷屏蔽控制位,用于禁止或允許所有可屏蔽中斷源,這些中斷源包括外部中斷和片內(nèi)中斷請(qǐng)求。當(dāng)I=1時(shí),禁止可屏蔽中斷請(qǐng)求;當(dāng)I=0時(shí),允許可屏蔽中斷請(qǐng)求。7)X:非屏蔽中斷位。X位用于屏蔽來自引腳的外部中斷請(qǐng)求。當(dāng)X=1時(shí),禁止外部中斷請(qǐng)求;當(dāng)X=0時(shí),允許外部中斷請(qǐng)求。8)S:STOP指令屏蔽位。當(dāng)S=1時(shí),禁止執(zhí)行STOP指令;當(dāng)S=0時(shí),允許執(zhí)行STOP指令。STOP指令將關(guān)閉MCU時(shí)鐘信號(hào),振蕩器停止工作,MCU處于低功耗工作模式。若該位置1,若遇到STOP指令,則作為NOP指令處理。復(fù)位時(shí)S=1。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)762.4.2S12XE的尋址方式、指令集和匯編語言程序設(shè)計(jì)尋址方式是指CPU在執(zhí)行指令時(shí)確定操作數(shù)所在的單元地址的方式。在MCU中,指令是對(duì)數(shù)據(jù)的操作,通常把指令中所要操作的數(shù)據(jù)稱為操作數(shù),CPU所需的操作數(shù)可能來自寄存器、指令代碼或存儲(chǔ)單元,CPU在執(zhí)行指令時(shí)(NOP指令除外),都要先找到操作數(shù)的地址,從中得到內(nèi)容,然后再完成相應(yīng)的動(dòng)作。顯然,尋址方式越多,指令系統(tǒng)的功能就越強(qiáng)、靈活性越大。S12XECPU指令共可綜合為9種尋址方式。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)771.隱含尋址指令本身已經(jīng)隱含了操作數(shù)所在地址的尋址方式,指令的操作數(shù)隱含在助記符中或無需操作數(shù),這類指令一般為單字節(jié)指令。例如ROLA、PSHB、INX等指令,操作數(shù)隱含分別是CPU寄存器A、B、X中;NOP指令無需操作數(shù)。2.立即尋址指令的操作數(shù)在指令中立即給出,在匯編語言中用“#”號(hào)代表一個(gè)立即數(shù)。立即尋址類指令常用于給寄存器賦值。如:LDDA#$BF;將十六進(jìn)制數(shù)BF立即裝載到A中LDX#1234;將十進(jìn)制數(shù)1234立即裝載到X中2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)783.直接尋址直接尋址又叫零頁(yè)尋址,指令中直接給出操作數(shù)的地址。這種方式可以直接訪問存儲(chǔ)器空間中$0000~$00FF段的256個(gè)單元,直接尋址方式默認(rèn)的地址高8位為$00,指令中只需給出單字節(jié)地址。在S12X單片機(jī)默認(rèn)的存儲(chǔ)器地址分配中,這一段是I/O寄存器地址,因此訪問這些I/O寄存器可以使用直接尋址。如:LDAA$55;將8位地址$0055單元的內(nèi)容裝載到A中4.?dāng)U展尋址擴(kuò)展尋址與直接尋址類似,指令中給出操作數(shù)地址,只是這時(shí)的地址是16位地址,可以尋址整個(gè)64K地址空間,尋址范圍遠(yuǎn)大于立即尋址方式。如:LDAA$200A;將16位地址$200A單元的內(nèi)容裝載到A中2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)795.相對(duì)尋址相對(duì)尋址只用于轉(zhuǎn)移指令,用于程序跳轉(zhuǎn)和子程序調(diào)用。在程序中寫出需要跳轉(zhuǎn)的目的地址的標(biāo)號(hào),匯編語言程序會(huì)自動(dòng)計(jì)算出相對(duì)轉(zhuǎn)移地址并完成跳轉(zhuǎn)。如:BRALABEL ;無條件跳轉(zhuǎn)到LABEL標(biāo)號(hào)的地址處BRA* ;無條件跳轉(zhuǎn)到當(dāng)前地址(*),此語句實(shí)現(xiàn)原地等待BCCDONE ;如果C標(biāo)志為0,則跳轉(zhuǎn)到DONE標(biāo)號(hào)的地址處2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)806.變址尋址變址尋址方式以變址寄存器X、Y或者SP、PC寄存器的內(nèi)容為基址,再加上或減去一個(gè)偏移量,作為操作數(shù)的最終地址。這個(gè)偏移量可以是5位(-16~15)、9位(-256~255,IDX1)或16位(-32768~32767,IDX2)常數(shù),也可以是0,對(duì)應(yīng)指令的占用字節(jié)數(shù)分別為2字節(jié)、3字節(jié)和4字節(jié),功能相同。如:STD7,X ;5位常數(shù)偏移量,偏移量為7;X寄存器內(nèi)容加上7作為地址,2字節(jié)的D內(nèi)容存儲(chǔ)到這里;其中,低地址字節(jié)存D的A,高地址字節(jié)內(nèi)容存D的B2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)81LDAA0,X ;5位常數(shù)偏移量,偏移量為0;X寄存器內(nèi)容作為地址,其所指向單元的內(nèi)容裝載到ALDAB-$FA,PC;9位常數(shù)偏移量,偏移量為-$FA;PC寄存器內(nèi)容減去$FA作為地址,其所指向單元的內(nèi)容裝載到BLDAA1000,X;16位常數(shù)偏移量,偏移量為1000;X寄存器內(nèi)容加1000作為地址,其所指向單元的內(nèi)容裝載到A2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)827.累加器變址尋址累加器變址尋址也簡(jiǎn)稱IDX,這種變址尋址的偏移量來自累加器A、B或D,基址寄存器內(nèi)容加上這個(gè)無符號(hào)偏移量構(gòu)成操作數(shù)的地址。如:LDAAD,X ;將X值加上D值作為地址,其所指向單元的字節(jié)內(nèi)容裝載到ALDADA,Y ;將Y值加上A值作為地址,其所指向的連續(xù)兩個(gè)單元的字內(nèi)容裝載到D2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)838.自加自減的變址尋址有附帶功能的變址尋址,這種尋址方式提供4種方式(先加、先減、后加、后減)去自動(dòng)改變變址寄存器值,加、減數(shù)值的范圍是1~8,然后確定操作數(shù)的地址。變址寄存器可以是X、Y和SP,這種變址尋址對(duì)于連續(xù)數(shù)據(jù)塊的操作十分方便,適合字節(jié)、字、雙字、四字變量的快速定位。如:STAA1,-SP;SP寄存器先減l,然后將A內(nèi)容存儲(chǔ)到SP指向的單元;等效于入棧指令PSHALDX2,SP+;SP指向的字內(nèi)容先裝載到X寄存器,然后SP寄存器加2;等效于出棧指令PULXMOVW2,X+,4,+Y;X寄存器內(nèi)容指向的字?jǐn)?shù)據(jù)傳送到Y(jié)+4指向的地址單元;傳送后X自動(dòng)后加2,傳送前Y已經(jīng)自動(dòng)先加42023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)849.間接變址尋址該尋址方式將變址寄存器的值加上一個(gè)16位偏移量或累加器D的值,形成一個(gè)地址,該地址中內(nèi)容并不是實(shí)際操作數(shù),該地址中所存放的內(nèi)容才是最終操作數(shù)的有效地址。如:LDAA[1000,X];((1000+X))→A;X+1000的地址單元內(nèi)容作為地址,其指向內(nèi)容裝載到ALDAA[D,Y];((D+Y))→A;Y+D的地址單元內(nèi)容作為地址,其指向內(nèi)容裝載到A2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)85以上尋址方式中:變址尋址相當(dāng)于C語言中的指針操作;間接變址尋址則相當(dāng)于C語言中的“指針的指針”。變址尋址方式的通常表象是:如果指令操作碼后面跟的操作數(shù)是變址寄存器X、Y或者SP、PC寄存器,那么該指令的尋址方式就是變址尋址(LEA指令除外),X、Y、SP、PC用作指針。此外,如果把一個(gè)16位數(shù)寫入存儲(chǔ)器,則高8位在存儲(chǔ)器低地址處,低8位在存儲(chǔ)器高地址處。Freescale公司的CPU對(duì)于16位、32位數(shù)據(jù)與存儲(chǔ)器字節(jié)的對(duì)應(yīng)關(guān)系都是規(guī)定為高位低地址、低位高地址,這和Intel公司的規(guī)定正好相反,Intel公司CPU系列使用高位高地址、低位低地址的方式。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)86補(bǔ)充:S12XECPU的常用指令按照操作類別大致可以分為數(shù)據(jù)傳送類指令、算術(shù)運(yùn)算類指令、邏輯運(yùn)算類指令、程序控制類指令、CPU控制類指令、中斷類指令、全局讀寫指令和其他指令。每一類別中又有很多小類和多種指令,指令條數(shù)繁多,還涉及各種尋址方式,難以一一盡述??紤]到S12XE嵌入式系統(tǒng)實(shí)際應(yīng)用,大都采用C語言編程開發(fā),使用者也并不需要完全掌握指令集。但對(duì)于需要采用匯編語言進(jìn)行S12XE的應(yīng)用程序開發(fā)的程序員,則需要全面掌握S12XE的指令集、以及各指令的功能、特點(diǎn)和使用方法。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)872.4.3關(guān)于PRM文件1.PRM文件組成結(jié)構(gòu)按所含的信息PRM文件有五個(gè)組成部分:(1)NAMES……END部分用以指定在連接時(shí)加入除本項(xiàng)目文件列表之外的額外的目標(biāo)代碼模塊文件,這些文件都是事先經(jīng)C編譯器或匯編器編譯好的機(jī)器碼目標(biāo)文件而不是源代碼文件。(2)SEGMENTS……END部分定義和劃分芯片所有可用的內(nèi)存資源,包括程序空間和數(shù)據(jù)空間。一般我們將程序空間定義成ROM,把數(shù)據(jù)空間劃分成第0頁(yè)的.Z_RAM.和普通區(qū)域的.RAM.,但實(shí)際上這些名字都不是系統(tǒng)保留的關(guān)鍵詞,可以由用戶隨意修改。用戶也可以把內(nèi)存空間按地址和屬性隨意分割成大小不同的塊,每塊可以自由命名。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)88(3)PLACEMENT……END部分將指派源程序中所定義的各種段,例如數(shù)據(jù)段DATA_SEG、CONST_SEG和代碼段CODE_SEG被具體放置到哪一個(gè)內(nèi)存塊中,它是將源程序中的定義描述和實(shí)際物理內(nèi)存掛鉤的橋梁。(4)STACKSIZE定義系統(tǒng)堆棧長(zhǎng)度,其后給出的長(zhǎng)度字節(jié)數(shù)可以根據(jù)實(shí)際應(yīng)用需要進(jìn)行修改。堆棧的實(shí)際定位取決于RAM內(nèi)存的劃分和使用情況。在常見的RAM線性劃分變量連續(xù)分配的情況下,堆棧將緊挨在用戶所定義的所有變量區(qū)域的高端。但如果你將RAM區(qū)分成幾個(gè)不同的塊,應(yīng)確保其中至少有一個(gè)塊能容納已經(jīng)定義的堆棧長(zhǎng)度。(5)VECTOR定義中斷向量入口地址。模板在生成PRM文件時(shí)已經(jīng)定義了復(fù)位向量的入口地址。對(duì)于各類中斷向量用戶必須自己按向量編號(hào)和中斷服務(wù)函數(shù)名相關(guān)聯(lián),如果中斷函數(shù)的定義是用interrupt加上向量號(hào),則無需在此重復(fù)定義。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)892.內(nèi)存劃分的具體方式由SEGMENTS開始到END為止,中間可以添加任意多行內(nèi)存劃分的定義,每一行用分號(hào)結(jié)尾。定義行的語法型式為:[塊名]=[屬性][起始地址]TO[結(jié)束地址];其中:塊名的定義和C語言變量定義相同,是以英文字母開頭的一個(gè)字符串。屬性可以有三種不同的類型。對(duì)于只讀的Flash-ROM區(qū)屬性一定是READ_ONLY,對(duì)于可讀寫的RAM區(qū)屬性可以是READ_WRITE,也可以是NO_INIT。它們兩者的關(guān)鍵區(qū)別是ANSI-C的初始化代碼會(huì)把定位在READ_WRITE塊中的所有全局和靜態(tài)變量自動(dòng)清零,而NO_INIT塊中的變量將不會(huì)被自動(dòng)清零。對(duì)于MCU系統(tǒng),變量在復(fù)位時(shí)不被自動(dòng)清零這一特性有時(shí)是很關(guān)鍵的。起始地址和結(jié)束地址決定了一內(nèi)存塊的物理位置,用16進(jìn)制表示。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)903.PRM文件實(shí)例2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)912.5S12XE最小系統(tǒng)硬件設(shè)計(jì)2.5.1S12XEP100最小系統(tǒng)S12XEP100芯片的最小系統(tǒng)包括:電源電路;復(fù)位電路;晶振電路;BDM調(diào)試接口電路;PLL電路等。如圖2-8所示,圖中也給出了外圍元器件的參考取值,以及一個(gè)連接在PK4口上的LED指示燈。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)922023/11/2893圖2-8S12XEP100最小系統(tǒng)硬件電路圖
2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)94片內(nèi)的鎖相環(huán)PLL電路兼有頻率放大和信號(hào)提純的功能,使系統(tǒng)可以以較低的外部時(shí)鐘信號(hào)獲得較高的系統(tǒng)工作頻率,以降低因高速開關(guān)時(shí)鐘所造成的高頻噪聲。VDDPLL引腳由單片內(nèi)部提供1.8V電壓。為使系統(tǒng)的電磁兼容性得到保證,必須:1)晶振應(yīng)盡量靠近MCU時(shí)鐘輸入引腳,晶振外殼要接地;2)盡量讓時(shí)鐘信號(hào)回路周圍電場(chǎng)趨近于零。用地線將時(shí)鐘區(qū)圈起來,時(shí)鐘線要盡量短;3)晶振、以及對(duì)噪聲特別敏感的器件下面不要走線;4)鎖相環(huán)PLL的濾波電路要盡量靠近MCU;5)每個(gè)電源端和接地端都要至少接一個(gè)去耦電容,并盡量靠近MCU對(duì)應(yīng)引腳。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)952.5.2振蕩器和時(shí)鐘電路系統(tǒng)時(shí)鐘是MCU工作的基礎(chǔ),S12XE的系統(tǒng)時(shí)鐘信號(hào)由時(shí)鐘振蕩電路產(chǎn)生,并由時(shí)鐘和復(fù)位發(fā)生器(CRG)模塊管理,形成內(nèi)核和外設(shè)所需的各種內(nèi)部時(shí)鐘信號(hào),其產(chǎn)生與供給情況如圖2-9所示。系統(tǒng)時(shí)鐘將決定或影響整個(gè)MCU的工作頻率,MCU內(nèi)部的所有時(shí)鐘信號(hào)都來源于EXTAL引腳,也為MCU與其他外接芯片之間的通信提供了可靠的同步時(shí)鐘信號(hào)。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)96圖2-9S12XE時(shí)鐘和復(fù)位發(fā)生器(CRG)模塊2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)97
2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)98
S12XE在內(nèi)部集成了完整的振蕩電路,XTAL和EXTAL分別為振蕩器的輸出和輸入引腳,XTAL和EXTAL引腳可接入一個(gè)石英晶體或陶瓷振蕩器。如果將S12XE的XTAL引腳懸空,則內(nèi)部振蕩器停止工作,應(yīng)通過EXTAL引入CMOS兼容的外部時(shí)鐘信號(hào),如圖2-12所示。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)99
總線時(shí)鐘(BUSCLK)是整個(gè)MCU系統(tǒng)的定時(shí)基準(zhǔn)和工作同步脈沖,其頻率固定為供給時(shí)鐘頻率的1/2。當(dāng)使用復(fù)位默認(rèn)的時(shí)鐘選擇時(shí),MCU時(shí)鐘源直接來自外部晶振,此時(shí)總線頻率就是晶振時(shí)鐘(OSCCLK)頻率的1/2,如:當(dāng)晶振頻率為16MHz時(shí),總線時(shí)鐘頻率為8MHz。MCU總線時(shí)鐘還可以選擇使用鎖相環(huán)時(shí)鐘(PLLCLK),以獲得更高的總線頻率。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)1002.5.3系統(tǒng)復(fù)位與時(shí)鐘選擇1.復(fù)位功能S12XE共有5種復(fù)位情況,分別是上電復(fù)位、低電壓復(fù)位、外部復(fù)位、時(shí)鐘監(jiān)視復(fù)位和看門狗復(fù)位。系統(tǒng)復(fù)位后,MCU各個(gè)寄存器和控制位都被預(yù)置到默認(rèn)狀態(tài),也有很多內(nèi)部資源不進(jìn)行預(yù)置,保持復(fù)位前一刻的狀態(tài),尤其是內(nèi)部RAM和NVM(Non-VolatileMemory,非易丟失存儲(chǔ)器)不受復(fù)位影響。S12XE在響應(yīng)各種外部或偵測(cè)到的內(nèi)部系統(tǒng)故障時(shí)可進(jìn)行系統(tǒng)復(fù)位,系統(tǒng)復(fù)位的用途是錯(cuò)誤恢復(fù)。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)101(1)上電復(fù)位、低電壓復(fù)位當(dāng)MCU內(nèi)部檢測(cè)電路發(fā)現(xiàn)電源端VDD引腳出現(xiàn)正跳變或過低時(shí),MCU自動(dòng)進(jìn)入復(fù)位過程。S12XE上電時(shí),會(huì)引發(fā)一個(gè)已知的、確定的復(fù)位啟動(dòng)。(2)外部復(fù)位S12XMCU配備一個(gè)標(biāo)記為(RESET)?的低電平有效復(fù)位引腳,當(dāng)該引腳電壓為低時(shí)觸發(fā)復(fù)位。(3)時(shí)鐘監(jiān)視復(fù)位S12XE內(nèi)部集成的時(shí)鐘監(jiān)視電路,專門負(fù)責(zé)監(jiān)視系統(tǒng)時(shí)鐘是否正常,為MCU限定了一個(gè)最低工作頻率,如果系統(tǒng)時(shí)鐘頻率低于某個(gè)預(yù)設(shè)值或停止時(shí),將強(qiáng)制觸發(fā)系統(tǒng)復(fù)位。如果確實(shí)需要在低時(shí)鐘頻率下工作,則可以關(guān)閉時(shí)鐘監(jiān)視功能。(4)看門狗(COP)復(fù)位COP系統(tǒng)允許S12XE檢測(cè)軟件執(zhí)行故障。通常COP在軟件開發(fā)過程中是關(guān)閉的。COP系統(tǒng)包含一個(gè)用戶設(shè)置的倒計(jì)數(shù)定時(shí)器,若定時(shí)器過期,則觸發(fā)一個(gè)系統(tǒng)復(fù)位。為了防止定時(shí)器過期,執(zhí)行的程序必須在倒計(jì)數(shù)定時(shí)器失效前向其中順序?qū)懭?55和$AA。若程序陷入一個(gè)循環(huán),它將不能發(fā)送上述信息,因此將產(chǎn)生COP復(fù)位。2023/11/28汽車嵌入式系統(tǒng)設(shè)計(jì)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)冰雕琉璃市場(chǎng)調(diào)查研究報(bào)告
- 新手租房合同范文必讀
- 2025-2030廢氣鍋爐行業(yè)市場(chǎng)現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030工業(yè)油霧凈化器行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及發(fā)展前景與投資機(jī)會(huì)研究報(bào)告
- 2025-2030土方機(jī)械市場(chǎng)前景分析及投資策略與風(fēng)險(xiǎn)管理研究報(bào)告
- 2025-2030口香糖行業(yè)發(fā)展分析及投資價(jià)值研究咨詢報(bào)告
- 2025-2030半導(dǎo)體分立器件產(chǎn)業(yè)規(guī)劃及發(fā)展研究報(bào)告
- 2025-2030化學(xué)強(qiáng)化藍(lán)寶石玻璃行業(yè)市場(chǎng)現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030動(dòng)物蛋白粉市場(chǎng)前景分析及投資策略與風(fēng)險(xiǎn)管理研究報(bào)告
- 2025-2030全球及中國(guó)醋酸纖維絲束(醋酸纖維絲束)行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 水培吊蘭的養(yǎng)殖方法要領(lǐng)
- 動(dòng)物的遷徙行為與地球生態(tài)系統(tǒng)
- 總成修理工安全操作規(guī)程
- 【小學(xué)心理健康教育分析國(guó)內(nèi)外文獻(xiàn)綜述4100字】
- 校園金話筒大賽(臨沂賽區(qū))策劃書
- 正確使用文丘里面罩
- 破碎錘施工方案
- 2023年10月自考00161財(cái)務(wù)報(bào)表分析(一)試題及答案含評(píng)分標(biāo)準(zhǔn)
- 讀書分享讀書交流會(huì)《朝聞道》劉慈欣科幻小說讀書分享
- 大學(xué)物理第8章-機(jī)械振動(dòng)
- 《線面平行的判定》課件
評(píng)論
0/150
提交評(píng)論