MC9S12DG128的結(jié)構(gòu)與工作原理_第1頁(yè)
MC9S12DG128的結(jié)構(gòu)與工作原理_第2頁(yè)
MC9S12DG128的結(jié)構(gòu)與工作原理_第3頁(yè)
MC9S12DG128的結(jié)構(gòu)與工作原理_第4頁(yè)
MC9S12DG128的結(jié)構(gòu)與工作原理_第5頁(yè)
已閱讀5頁(yè),還剩140頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于HCS12的嵌入式系統(tǒng)設(shè)計(jì)合肥工業(yè)大學(xué)吳曄,張陽(yáng),滕勤第2章MC9S12DG128的結(jié)構(gòu)與工作原理本章內(nèi)容

MC9S12DG128的內(nèi)部結(jié)構(gòu)

MC9S12DG128引腳功能

MC9S12DG128的運(yùn)行模式

MC9S12DG128的存儲(chǔ)器組織概述MC9S12DG128的內(nèi)核是16位中央處理單元CPU12,有29個(gè)獨(dú)立的數(shù)字I/O口〔A、B、K和E〕,20個(gè)獨(dú)立的數(shù)字I/O口〔H、P、J〕具有中斷和喚醒功能。MC9S12DG128內(nèi)部為16位數(shù)據(jù)通道,外部總線可以按照8位數(shù)據(jù)窄總線模式操作,允許與8位數(shù)據(jù)總線的存儲(chǔ)器連接,以降低本錢。根據(jù)系統(tǒng)需求,PLL電路允許調(diào)整電源功耗及性能。概述MC9S12DG128主要特性:16位HCS12CPU內(nèi)部存儲(chǔ)器128KBFlash8KBRAM2KBEEPROM概述外圍設(shè)備2個(gè)增強(qiáng)型串行通信接口〔SCI〕2個(gè)串行外設(shè)接口〔SPI〕3個(gè)MSCAN模塊1個(gè)I2C總線接口2個(gè)8通道10位A/D8通道16位增強(qiáng)型捕捉定時(shí)器〔ECT〕8通道8位或4通道16位PWM2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)MC9S12系列單片機(jī)的芯片主要有兩種封裝形式,即80腳的QFP(QuadFlatPack)和112腳的LQFP(LowprofileQuadFlatPack),個(gè)別子系列還有其它封裝形式,如48腳。由于各子系列中的存儲(chǔ)器類型、容量和功能模塊不完全相同,因此,不同芯片之間引腳功能略有差異,引腳標(biāo)號(hào)不一定兼容。但在每個(gè)子系列中,例如,所有128kBFlash的MC9S12D系列的單片機(jī),功能相同的引腳都兼容。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)圖2.1MC9S12DG128內(nèi)部結(jié)構(gòu)框圖LQFP112封裝引腳圖

QFP80封裝引腳圖

2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)圖2.1為MC9S12DG128的內(nèi)部結(jié)構(gòu)框圖,其中功能模塊按照112引腳封裝給出。MC9S12DG128單片機(jī)的112個(gè)引腳中,除了地址、數(shù)據(jù)、控制三總線外,主要是I/O引腳,多數(shù)引腳具有兩種或兩種以上的功能。圖中左、右兩局部分別是單片機(jī)的核心和接口局部,包括CPU12、存儲(chǔ)器、通用I/O、電壓調(diào)整模塊、后臺(tái)調(diào)試模塊、系統(tǒng)運(yùn)行監(jiān)視模塊、時(shí)鐘產(chǎn)生模塊、系統(tǒng)集成模塊、外部總線接口、A/D轉(zhuǎn)換器、增強(qiáng)型捕捉定時(shí)器模塊、脈寬調(diào)制模塊、串行通信接口、CAN總線接口、Byteflight接口、字節(jié)數(shù)據(jù)鏈路通信接口和管腳中斷邏輯。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.1CPU12內(nèi)核(StarCore)中央處理單元CPU(CentralProcessingUnit)CPU執(zhí)行68HC12CPU指令集結(jié)構(gòu),用3級(jí)指令隊(duì)列來提升代碼執(zhí)行效率。中斷邏輯INT(Interrupt)INT子模塊與CPU相互配合來提供2~122個(gè)具有控制位I的可屏蔽中斷矢量(配置在系統(tǒng)集成模塊內(nèi))、1個(gè)具有控制位X的可屏蔽中斷矢量和2個(gè)非屏蔽中斷矢量、3個(gè)復(fù)位矢量,處理可效勞的中斷,從等待或停止模式喚醒系統(tǒng)。模塊映射控制MMC(ModuleMappingControl)MMC子模塊控制著地址空間映射,產(chǎn)生存儲(chǔ)器選擇和外設(shè)選擇(由IP總線譯碼)以及多路復(fù)用地址和數(shù)據(jù)信號(hào)。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.1CPU12內(nèi)核(StarCore)多路復(fù)用外部總線接口MEBI(MultiplexedExternalBusInterface)

MEBI子模塊作為4個(gè)8位端口(A、B、E、K)的外部總線控制器,完成操作模式的解碼和內(nèi)核初始化。斷點(diǎn)BKP(Breakpoint)

BKP子模塊通過提供硬件斷點(diǎn)來參與軟件調(diào)試。BKP支持雙地址和全斷點(diǎn)模式,分別與兩個(gè)地址或一個(gè)地址與數(shù)據(jù)的組合匹配,啟動(dòng)軟件中斷SWI(SoftwareInterrupt)或使系統(tǒng)進(jìn)入后臺(tái)調(diào)試模式。BKP子模塊還分別在特定的指令中斷前或匹配后第一個(gè)指令邊界處,支持加標(biāo)記的或強(qiáng)制的斷點(diǎn)。后臺(tái)調(diào)試模式BDM(BackgroundDebugMode)BDM子模塊為片上硬件提供了由內(nèi)核實(shí)現(xiàn)的單線后臺(tái)調(diào)試通信系統(tǒng),并可作為開發(fā)系統(tǒng)主機(jī)的單線串行接口。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)圖2.4內(nèi)核框圖

這些子模塊提供了一種緊密耦合的結(jié)構(gòu),以使集成在片上的系統(tǒng)運(yùn)行效率最大化。典型的片上系統(tǒng)SoC(System-on-Chip)的內(nèi)核如圖2.4所示,內(nèi)核通過IP總線與系統(tǒng)外設(shè)接口,內(nèi)核與片上存儲(chǔ)器模塊之間通過內(nèi)核接口信號(hào)或者借助于STAR總線通信,與系統(tǒng)外部存儲(chǔ)器的接口由MEBI子模塊和連接到內(nèi)部的相應(yīng)端口邏輯提供。2.1.1CPU12內(nèi)核(StarCore)2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)圖2.5內(nèi)核接口信號(hào)2.1.1CPU12內(nèi)核(StarCore)2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.1CPU12內(nèi)核(StarCore) CPU12內(nèi)部結(jié)構(gòu)【組成】算術(shù)邏輯運(yùn)算單元ALU、CPU控制邏輯電路、CPU存放器和指令隊(duì)列。內(nèi)部采用16位數(shù)據(jù)總線,各部件通過內(nèi)部總線相連,外部數(shù)據(jù)總線8/16位可選?!?〕20位的ALU部件——完成指令所規(guī)定的算術(shù)/邏輯運(yùn)算等操作?!?〕控制邏輯——負(fù)責(zé)解釋指令和產(chǎn)生相應(yīng)的控制信號(hào),并統(tǒng)一協(xié)調(diào)各部件的工作?!?〕存放器組——用于存儲(chǔ)操作數(shù)或運(yùn)算結(jié)果?!?〕3級(jí)指令隊(duì)列——用來緩沖程序信息。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.1CPU12內(nèi)核(StarCore) CPU12內(nèi)部存放器CPU12的存放器集——基于累加器,包括5個(gè)16位的存放器和一個(gè)8位的狀態(tài)存放器。其中,累加器D又可分成兩個(gè)8位的存放器A和B,16位存放器D、X、Y通常用于暫存數(shù)據(jù)或存儲(chǔ)器地址;SP為堆棧指針,用于指示堆棧的位置;PC為程序指針,用于尋址程序代碼;條件碼存放器CCR用來反映運(yùn)算結(jié)果的特征,也控制CPU的行為。圖2.6編程模型(ProgrammingModel)2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.1CPU12內(nèi)核(StarCore)〔1〕累加器D累加器D是一個(gè)16位存放器,其高位和低位字節(jié)分別稱為存放器A和存放器B,可分別作為兩個(gè)8位存放器進(jìn)行訪問。實(shí)際上,D和A、B指向同一個(gè)存放器,只是名稱不同而已,A、B、D均可稱為累加器。在任何時(shí)刻都可以使用8位或16位方式對(duì)累加器進(jìn)行訪問。假設(shè)把一個(gè)16位數(shù)據(jù)存入累加器D中,那么高8位在A存放器中,低8位在B存放器中。與此相對(duì)應(yīng),假設(shè)把D存放器中的一個(gè)16位數(shù)據(jù)存入存儲(chǔ)器,那么高8位在存儲(chǔ)器的低位地址,低8位在存儲(chǔ)器的高位地址。注意,任何Motorola(Freescale)公司獨(dú)立設(shè)計(jì)的16位、32位CPU中,存放器與存儲(chǔ)器字節(jié)的對(duì)應(yīng)關(guān)系都是高位數(shù)據(jù)存放于低位地址,低位數(shù)據(jù)占用高位地址,這與Intel公司的CPU數(shù)據(jù)存放格式正好相反。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.1CPU12內(nèi)核(StarCore)〔2〕間址/變址存放器(IndexRegister)X、YCPU12內(nèi)部有兩個(gè)16位地址存放器IX和IY,稱為間接尋址存放器,簡(jiǎn)稱間址存放器或變址存放器。一般情況下作為指針存放器,用于多種尋址方式下的地址計(jì)算,也可用于臨時(shí)存放數(shù)據(jù)或參與一些運(yùn)算,只能按照16位方式訪問。在匯編語(yǔ)言中,這兩個(gè)存放器進(jìn)一步簡(jiǎn)稱為存放器X和存放器Y。在數(shù)據(jù)塊傳送時(shí),X和Y存放器都可以自動(dòng)加、減1~16,X存放器常作為源地址指針,Y存放器常作為目的地址指針,故X和Y存放器也稱作指針存放器。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.1CPU12內(nèi)核(StarCore)〔3〕堆棧指針SP(StackPointer)堆?!趦?nèi)存中專門開辟出來的、按照“先進(jìn)后出,后進(jìn)先出”原那么進(jìn)行存取的區(qū)域。堆棧指針SP——用來專門指示堆棧位置。在使用堆棧之前,要先給SP賦值,以規(guī)定堆棧的起始位置,稱為棧底。當(dāng)數(shù)據(jù)存入堆棧后,堆棧指針的值將隨之變化。最后一個(gè)入棧的數(shù)據(jù)所在的位置(單元)稱為棧頂。通常,CPU的堆棧有兩種類型:向上生長(zhǎng)型和向下生長(zhǎng)型。如圖2.7所示。圖2.7堆棧的類型2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.1CPU12內(nèi)核(StarCore)向上生長(zhǎng)型堆?!獥5渍加幂^低地址,棧頂占用較高地址。數(shù)據(jù)壓入堆棧時(shí),SP的內(nèi)容自動(dòng)加1,作為本次進(jìn)棧的地址,然后再存入信息。隨著數(shù)據(jù)的存入,SP的值越來越大。數(shù)據(jù)從堆棧彈出后,SP的內(nèi)容自動(dòng)減1。向下生長(zhǎng)型堆?!獥5渍加幂^高地址,棧頂占用較低地址。CPU12的堆棧屬于向下生長(zhǎng)型,將一個(gè)字節(jié)數(shù)據(jù)壓入堆棧時(shí),SP自動(dòng)減1。從堆棧中彈出一個(gè)字節(jié)數(shù)據(jù)時(shí),SP自動(dòng)加1。假設(shè)操作數(shù)為雙字節(jié),那么SP每次加2或減2。因此,隨著數(shù)據(jù)的存入,SP的值越來越小。SP總是指向最后壓入堆棧的一個(gè)字節(jié)數(shù)據(jù),稱為實(shí)棧頂。壓棧操作時(shí),先調(diào)整指針(減1或減2),后保存數(shù)據(jù)。初始化時(shí),一般將SP指向與棧底相鄰的單元,它不屬于棧底,以此表示堆棧為空。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.1CPU12內(nèi)核(StarCore)SP主要用于堆棧管理,用于中斷和子程序調(diào)用時(shí)保存系統(tǒng)地址信息,也可以存儲(chǔ)臨時(shí)信息,一般不做他用。在不影響其內(nèi)容的前提下,也可替補(bǔ)用作所有變址尋址方式下的變址存放器,通常不參與運(yùn)算。惟一例外的是,在符號(hào)擴(kuò)展指令中用作目的存放器。此外,還具有自身的加、減1指令。影響SP內(nèi)容的指令有加載、目的操作數(shù)為SP的存放器傳送指令、壓棧、退棧、加減1、中斷和子程序調(diào)用等。使用堆棧前,用戶程序必須對(duì)SP進(jìn)行初始化設(shè)置。復(fù)位時(shí)SP=$00FF。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.1CPU12內(nèi)核(StarCore)〔4〕程序計(jì)數(shù)器PC(ProgramCounter)16位程序計(jì)數(shù)器PC的內(nèi)容決定程序執(zhí)行的順序,用戶可以讀取,但不能直接寫入。因?yàn)橐詣?dòng)尋址復(fù)位矢量,復(fù)位后PC自動(dòng)回到默認(rèn)狀態(tài)。單片機(jī)工作時(shí),PC始終指向指令序列中下一條要執(zhí)行的指令,分支、調(diào)用或轉(zhuǎn)移指令均能改變PC的值。PC是特殊的存放器,它決定CPU的取指地址,因此不能挪作他用,但可以像SP一樣,在大多數(shù)變址尋址方式下作為變址存放器,只是不能用在自動(dòng)增減地址的變址尋址操作中。PC主要是直接為CPU效勞,對(duì)于用戶程序來講,PC不能參與任何運(yùn)算,唯一的作用是輔助進(jìn)行變址尋址操作。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.1CPU12內(nèi)核(StarCore)〔5〕條件碼存放器CCR(ConditionCodeRegister)條件碼存放器是一個(gè)8位存放器,相當(dāng)于標(biāo)志存放器FR或程序狀態(tài)字PSW(ProgramStateWord),但不同的是,它還可以參與控制CPU的行為。條件碼存放器中各位的定義:CCR中的各位包括兩局部:5個(gè)算術(shù)特征位(ArithmeticFlagBit),即H、N、Z、V、C,它們反映上一條指令執(zhí)行結(jié)果的特征(狀態(tài));3個(gè)MCU控制位,即中斷屏蔽位X、I和STOP指令控制位,這3位通常由軟件設(shè)定,以控制CPU的行為。復(fù)位后,X、I兩位默認(rèn)狀態(tài)為1,屏蔽系統(tǒng)中斷。CCR是真正的專用存放器,除了C、H位以外,其他各位不參與任何運(yùn)算。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.1CPU12內(nèi)核(StarCore)CCR中各位的主要含義:C——進(jìn)位/借位標(biāo)志(Carry/BorrowFlag)當(dāng)加法運(yùn)算產(chǎn)生進(jìn)位或減法運(yùn)算產(chǎn)生借位時(shí),C=1,否那么,C=0。V——溢出標(biāo)志(OverflowFlag)算術(shù)運(yùn)算后,假設(shè)出現(xiàn)2補(bǔ)碼(two’s-complement)溢出時(shí),V=1;假設(shè)無溢出,V=0。Z——0標(biāo)志(ZeroFlag)當(dāng)運(yùn)算結(jié)果為0時(shí),Z=1;結(jié)果不為0時(shí),Z=0。N——符號(hào)位(負(fù)標(biāo)志)(NegativeFlag)當(dāng)運(yùn)算結(jié)果為負(fù)時(shí),N=1,否那么,N=0。H——輔助進(jìn)位(半進(jìn)位)標(biāo)志(Half-carryFlag)在加法過程中,假設(shè)累加器A中的D3向D4位產(chǎn)生進(jìn)位,H=1;否那么,H=0。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)CCR中各位的主要含義:I——可屏蔽中斷控制位(MaskableInterruptBit)I位是全局中斷屏蔽控制位(globalinterruptmask),用于禁止或允許所有可屏蔽中斷源,這些中斷源包括來自IRQ引腳的中斷和從片內(nèi)資源來的中斷請(qǐng)求。任何時(shí)候該控制位均可置位或清零。I=1,禁止可屏蔽中斷請(qǐng)求;I=0,允許可屏蔽中斷請(qǐng)求。復(fù)位時(shí)默認(rèn)I=1。進(jìn)行中斷效勞時(shí),該位自動(dòng)置位。為了允許可屏蔽中斷請(qǐng)求,軟件必須去除該位。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)CCR中各位的主要含義:X——非屏蔽中斷控制位(Non-maskableInterruptBit)X位用于屏蔽來自XIRQ引腳的中斷請(qǐng)求。假設(shè)X=1,禁止來自引腳XIRQ的中斷請(qǐng)求;X=0,允許XIRQ來自引腳的中斷請(qǐng)求。X位的復(fù)位默認(rèn)值是1,為了允許來自XIRQ引腳的中斷效勞請(qǐng)求,必須通過軟件將X位清零。X位一旦被清零,允許XIRQ中斷,那么用軟件的方法不能使X位再重新置位,除非來一次復(fù)位才能使它再次置1。S——STOP指令屏蔽位(STOPMaskBit)S位用于禁止CPU執(zhí)行STOP指令。S=1,屏蔽STOP指令;S=0,允許執(zhí)行STOP指令。STOP指令將關(guān)閉MCU所有時(shí)鐘信號(hào),片上振蕩器停止工作,并使MCU處于低功耗工作模式。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.1CPU12內(nèi)核(StarCore)指令隊(duì)列(InstructionQueue)CPU12采用三級(jí)指令隊(duì)列來緩沖程序信息。每次指令重新補(bǔ)充到指令隊(duì)列中時(shí)都是讀取相同的指令字節(jié)數(shù)。程序信息按對(duì)齊的(aligned)16位字讀取,每次程序取指(programfetch)說明,在指令隊(duì)列中有兩個(gè)字節(jié)需要補(bǔ)充;而每次選擇性取指(optionalfetch)意味著只有一個(gè)字節(jié)需要補(bǔ)充。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.1CPU12內(nèi)核(StarCore)指令隊(duì)列(InstructionQueue)兩個(gè)外部引腳IPIPE1和IPIPE0提供了關(guān)于指令隊(duì)列中數(shù)據(jù)移動(dòng)和指令執(zhí)行的時(shí)間多路復(fù)用信息。MC9S12的指令隊(duì)列是三級(jí)指令隊(duì)列,每級(jí)寬度為1個(gè)字。當(dāng)CPU執(zhí)行指令時(shí),指令代碼離開第三級(jí),第二級(jí)和第一級(jí)的指令代碼向前移動(dòng),從數(shù)據(jù)總線新讀取的指令代碼進(jìn)入第一級(jí)。即隊(duì)列內(nèi)容前進(jìn)一級(jí),第一級(jí)從數(shù)據(jù)總線裝填一個(gè)字的程序信息。操作碼預(yù)測(cè)算法確定指令隊(duì)列中下一個(gè)操作碼的位置。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.2存儲(chǔ)器MC9S12DG128內(nèi)部集成了三種存儲(chǔ)器,包括8KB的RAM,2KB的EEPROM和128KB的Flash存儲(chǔ)器。RAM可以用作堆棧、保存中間結(jié)果和動(dòng)態(tài)數(shù)據(jù),甚至可以在調(diào)試時(shí)存放程序。EEPROM可以保存設(shè)置的信息等半永久數(shù)據(jù)。Flash存儲(chǔ)器主要用來存放程序和原始數(shù)據(jù)等,反復(fù)擦寫次數(shù)可達(dá)10萬次以上,無需外加編程電壓,在正常工作時(shí)沒有被改寫的危險(xiǎn)。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.3I/O接口MC9S12DG128共有91個(gè)I/O口,包括8個(gè)8位并行口A、B、E、H、M、P、S、T,1個(gè)7位并行口K,1個(gè)16位并行口PAD,1個(gè)4位并行口J。這些并行I/O口除了作為通用I/O口GPIO(GeneralPurposeInputOutputInterface)外,其中大局部為復(fù)用引腳,即具有第二、第三、甚至第四功能。芯片處于擴(kuò)展模式下,A、B、E、K口被用作外部總線信號(hào)。H、J、M、P、S、T接口被集成在端口集成模塊PIM(PortIntegratedModule)內(nèi),與片內(nèi)其他功能模塊的引腳復(fù)用。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.4電壓調(diào)整模塊電壓調(diào)整模塊用于給單片機(jī)內(nèi)部提供適宜的電源電壓。單片機(jī)外部供電電壓為5V,I/O接口也按照5V供電的邏輯電平設(shè)計(jì),但芯片內(nèi)部卻采用2.5V電壓工作,因此,該模塊實(shí)現(xiàn)5V→2.5V的電壓轉(zhuǎn)換,產(chǎn)生片內(nèi)所需要的2.5V電壓。VREGEN端用于從外部禁止該模塊,當(dāng)使用外部2.5V電壓給內(nèi)部邏輯電路供電及使用外部有源振蕩器提供時(shí)鐘時(shí),可以不使用該模塊。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.5單線(SingleWire)后臺(tái)調(diào)試模塊BDM和時(shí)鐘運(yùn)行監(jiān)視模塊【后臺(tái)調(diào)試模塊BDM】BDM模塊用于OCD(On-Chip-Development)方式支持開發(fā),可對(duì)片內(nèi)Flash進(jìn)行擦除和在線編程,通過該模塊,可以在程序運(yùn)行時(shí),動(dòng)態(tài)地獲取CPU存放器的狀態(tài)和信息,用于應(yīng)用程序的調(diào)試。BDM方式無需仿真器,可以實(shí)現(xiàn)硬件斷點(diǎn)、條件斷點(diǎn)、在線調(diào)試等全部功能,外部只需簡(jiǎn)單的接口和相應(yīng)的軟件即可。BDM調(diào)試工具與單片機(jī)的通信通過雙向的BKGD引腳實(shí)現(xiàn),復(fù)位時(shí)BKGD引腳的初始電平將影響單片機(jī)的運(yùn)行模式。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.5單線(SingleWire)后臺(tái)調(diào)試模塊BDM和時(shí)鐘運(yùn)行監(jiān)視模塊【時(shí)鐘運(yùn)行監(jiān)視模塊】運(yùn)行監(jiān)視模塊用于保證系統(tǒng)運(yùn)行平安,包括周期性時(shí)鐘中斷電路、看門狗電路、時(shí)鐘監(jiān)視電路和硬件斷點(diǎn)電路等??撮T狗(系統(tǒng)運(yùn)行監(jiān)視)功能可以保證程序跑飛后快速恢復(fù)。時(shí)鐘監(jiān)視電路可以監(jiān)視時(shí)鐘的運(yùn)行是否異常,例如,時(shí)鐘頻率下降等。兩者結(jié)合等于給系統(tǒng)平安加了雙保險(xiǎn)。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)(1)時(shí)鐘產(chǎn)生電路CGM(ClockGenerationModule)產(chǎn)生片內(nèi)各模塊所需要的各種時(shí)鐘,需外加晶體振蕩器。2.1.6時(shí)鐘產(chǎn)生模塊CGM和復(fù)位電路圖2.8時(shí)鐘連接2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.6時(shí)鐘產(chǎn)生模塊GCM和復(fù)位電路【時(shí)鐘產(chǎn)生模塊GCM】MC9S12DG128時(shí)鐘發(fā)生器有以下三種:①具有鎖相環(huán)PLL頻率合成器鎖相環(huán)電路用于產(chǎn)生高于外部晶體振蕩器頻率的時(shí)鐘,片內(nèi)的壓控振蕩器VCO產(chǎn)生高于外部時(shí)鐘頻率數(shù)倍的振蕩頻率,通過鎖相環(huán)電路將頻率穩(wěn)定在某一確定的數(shù)值上。例如,使用外部32kHz晶振,可以產(chǎn)生8MHz的總線頻率。②利用0.5~16MHz的低功耗晶振,構(gòu)成鎖相環(huán)電路的一局部,可產(chǎn)生高達(dá)25MHz的片內(nèi)總線時(shí)鐘。③通過EXTAL引腳提供與CMOS電平兼容的外部時(shí)鐘信號(hào),其輸入頻率要求在0~16MHz之間。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.6時(shí)鐘產(chǎn)生模塊CGM和復(fù)位電路(2)復(fù)位電路復(fù)位電路產(chǎn)生上電復(fù)位信號(hào),使CPU進(jìn)入復(fù)位狀態(tài),即將CPU和MCU芯片內(nèi)資源初始化。大多數(shù)CPU只有一個(gè)復(fù)位源,即復(fù)位引腳,復(fù)位后開始運(yùn)行的地址也是固定的。但MC68HC12/9S12單片機(jī)設(shè)置了多個(gè)復(fù)位源,也不直接轉(zhuǎn)到某個(gè)地址執(zhí)行,而是采用復(fù)位矢量,復(fù)位后可以通過矢量轉(zhuǎn)向不同的程序入口。以下任何一個(gè)事件啟動(dòng)復(fù)位時(shí)序〔1〕時(shí)鐘監(jiān)視器使能,且時(shí)鐘監(jiān)視器檢測(cè)到時(shí)鐘變慢或停止?!?〕COP看門狗使能,且看門狗定時(shí)器定時(shí)到〔超時(shí)溢出〕?!?〕上電復(fù)位POR〔Power-onReset〕。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.7系統(tǒng)集成模塊SIM(SystemIntegrationModule)【SIM模塊功能】接收外部可屏蔽中斷和非屏蔽中斷的輸入信號(hào)接收單片機(jī)復(fù)位后的模式選擇信號(hào)根據(jù)復(fù)位時(shí)模式選擇信號(hào)MODA、MODB和MODC(BKGD)引腳的電平狀態(tài),單片機(jī)可進(jìn)入不同的工作模式。輸出內(nèi)部總線的時(shí)鐘(E時(shí)鐘)輸出外部總線擴(kuò)展時(shí)的讀/寫信號(hào)SIM模塊與外部的連接通過端口E(PTE)實(shí)現(xiàn)。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.7系統(tǒng)集成模塊SIM(SystemIntegrationModule)2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.8外部總線接口【三總線的形成】數(shù)據(jù)總線、地址總線與通用I/O端口復(fù)用,即A口(PTA)和B口(PTB)兼作地址和數(shù)據(jù)總線,而控制總線那么占用端口E的局部引腳?!緮U(kuò)展方式】寬總線擴(kuò)展——16位地址總線和16位數(shù)據(jù)總線窄總線擴(kuò)展——16位地址總線和8位數(shù)據(jù)總線2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.8外部總線接口寬總線擴(kuò)展方式端口A——高8位地址線和高8位數(shù)據(jù)線端口B——低8位地址線和低8位數(shù)據(jù)線需要由外部?jī)蓚€(gè)8位地址鎖存器鎖存地址信號(hào)。當(dāng)擴(kuò)展大于64KB的存儲(chǔ)器時(shí),由頁(yè)面映射存放器PPAGE對(duì)應(yīng)的7位端口K(PTK)中的6個(gè)引腳PK5~PK0產(chǎn)生高位地址A19~A14,使地址空間擴(kuò)展到1MB。窄總線擴(kuò)展方式端口A——高8位地址線A15~A8與8位數(shù)據(jù)總線分時(shí)復(fù)用端口B——低8位地址線需要一個(gè)外部8位地址鎖存器鎖存高8位地址信號(hào)。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.9ATD模塊采樣保持和A/D轉(zhuǎn)換——對(duì)模擬電壓進(jìn)行采樣,在時(shí)間上離散化,得到對(duì)應(yīng)的離散電壓信號(hào),然后再用模/數(shù)轉(zhuǎn)換器對(duì)電壓幅值進(jìn)行量化,得到數(shù)字信號(hào)。將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)的轉(zhuǎn)換器稱為模數(shù)轉(zhuǎn)換器,即A/D轉(zhuǎn)換器,簡(jiǎn)寫為ADC。模數(shù)轉(zhuǎn)換器的種類很多,分屬于兩大類,即直接轉(zhuǎn)換和間接轉(zhuǎn)換?!局苯愚D(zhuǎn)換】將模擬電壓直接轉(zhuǎn)換成數(shù)字量,如并行式A/D轉(zhuǎn)換、逐次比較式A/D轉(zhuǎn)換等;【間接轉(zhuǎn)換】將模擬電壓先轉(zhuǎn)變成中間量〔時(shí)間或頻率等〕,然后再將這些中間量轉(zhuǎn)換成數(shù)字量,如雙積分式A/D轉(zhuǎn)換、V/F式A/D轉(zhuǎn)換等。單片機(jī)內(nèi)集成的A/D轉(zhuǎn)換器一般都是逐次比較型〔逐次逼近型〕。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.9ATD模塊直接轉(zhuǎn)換的根本思路:如果一個(gè)A/D轉(zhuǎn)換器輸入的電壓與一個(gè)D/A轉(zhuǎn)換器輸出的電壓相等,那么,D/A轉(zhuǎn)換器輸入的數(shù)據(jù)即可看成是A/D轉(zhuǎn)換器所要求的數(shù)據(jù)?!続/D轉(zhuǎn)換器組成】一個(gè)D/A轉(zhuǎn)換器、數(shù)據(jù)存放器和一個(gè)電壓比較器。數(shù)據(jù)存放器的輸出數(shù)據(jù)作為D/A轉(zhuǎn)換器的輸入數(shù)據(jù)。D/A轉(zhuǎn)換器輸出的模擬電壓與輸入的模擬電壓相比較。電壓比較器用來控制數(shù)據(jù)存放器數(shù)據(jù)的改變。當(dāng)電壓比較器的兩個(gè)輸入電壓相等時(shí),控制邏輯將使數(shù)據(jù)存放器的數(shù)據(jù)停止改變,這時(shí),數(shù)據(jù)存放器的數(shù)據(jù)就是對(duì)應(yīng)于模擬輸入電壓的數(shù)字量。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.9ATD模塊逐次比較型A/D轉(zhuǎn)換器采用中分比較〔對(duì)分搜索〕原理。由一個(gè)同樣位數(shù)的D/A轉(zhuǎn)換器,再加上比較器、逐次逼近型存放器和控制邏輯組成。采樣電路

逐次逼近型A/D轉(zhuǎn)換器

2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.10增強(qiáng)型捕捉定時(shí)器〔ECT〕模塊【功能】4個(gè)IC(輸入捕捉)通道設(shè)置了16位保持存放器,用于緩沖捕捉的結(jié)果。4個(gè)8位脈沖累加器PA(PulseAccumulator),其中兩個(gè)由原來的16位PA演變而來,主要特點(diǎn)是:4個(gè)與IC通道關(guān)聯(lián)的8位保持存放器,用于緩沖脈沖累加器的結(jié)果。4個(gè)8位脈沖累加器通道可以級(jí)聯(lián),形成兩個(gè)16位的脈沖累加器。具有4位定標(biāo)器的16位遞減模數(shù)計(jì)數(shù)器。4個(gè)可選的延遲計(jì)數(shù)器(DelayCounter)設(shè)置在保持存放器之前,用于增強(qiáng)輸入的抗干擾能力。主定時(shí)器的預(yù)分頻器擴(kuò)展到7位,分頻系數(shù)可以設(shè)定為1、2、4、8、16、32、64和128。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.10增強(qiáng)型捕捉定時(shí)器〔ECT〕模塊輸入捕捉(InputCapture,IC)——通過捕獲自由運(yùn)行計(jì)數(shù)器的值,檢測(cè)外部事件和輸入信號(hào)。輸出比較(OutputCompare,OC)——用程序的方法在特定的時(shí)刻輸出需要的電平。脈沖累加(PulseAccumulator,PA)——通過檢測(cè)相應(yīng)管腳上的有效邊沿,統(tǒng)計(jì)脈沖的個(gè)數(shù)。輸入捕捉模塊框圖

輸出比較模塊框圖2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.11脈沖寬度調(diào)制〔PWM〕模塊脈沖寬度調(diào)制PWM(PulseWidthModulate)——用程序控制波形的占空比,即有效電平(高或低)與脈沖周期之比。PWM模塊可以實(shí)現(xiàn)波形占空比、周期、相位的程序控制,實(shí)現(xiàn)D/A轉(zhuǎn)換和精確的脈沖序列輸出。占空比的概念

PWM實(shí)現(xiàn)D/A轉(zhuǎn)換

2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.11脈沖寬度調(diào)制〔PWM〕模塊PWM模塊工作時(shí),有效電平寬度對(duì)應(yīng)的計(jì)數(shù)值存放在占空比存放器中,脈沖周期對(duì)應(yīng)的計(jì)數(shù)值存放在周期存放器中。MC9S12DG128單片機(jī)的PWM模塊外部引腳與端口P(PTP)共用。當(dāng)時(shí)鐘頻率為16MHz時(shí),PWM模塊最高工作頻率可達(dá)8MHz,占空比調(diào)節(jié)范圍0~100%,最高分辨能力達(dá)0.15%,而且輸出極性可選。PWM模塊工作原理2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.11脈沖寬度調(diào)制〔PWM〕模塊MC9S12單片機(jī)中的PWM模塊具有8個(gè)獨(dú)立的8位PWM通道,通過設(shè)置可將兩個(gè)8位PWM通道級(jí)聯(lián)成一個(gè)16位PWM通道。每個(gè)通道的周期和占空比可由程序設(shè)定。各通道具有獨(dú)立的計(jì)數(shù)器。每個(gè)計(jì)數(shù)器有兩種不同的時(shí)鐘源(時(shí)鐘A、時(shí)鐘B)可供選擇,每個(gè)通道可以獨(dú)立產(chǎn)生連續(xù)的脈沖輸出,各通道還可以統(tǒng)一設(shè)定成每個(gè)輸出周期左對(duì)齊或居中對(duì)齊。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.12串行通信接口通信——計(jì)算機(jī)與外界的信息交換通信的根本方式——并行通信和串行通信并行通信——數(shù)據(jù)的各位同時(shí)進(jìn)行傳送的通信方式。并行通信通過并行接口來實(shí)現(xiàn)。例如,HC12/9S12單片機(jī)的A、B、E、H、M、P、S、T端口,當(dāng)這些端口用作GPIO使用時(shí),如果作為輸出口,CPU將一個(gè)數(shù)據(jù)寫入到I/O存放器后,數(shù)據(jù)在端口對(duì)應(yīng)的引腳上并行地同時(shí)輸出到外部設(shè)備;如果作為輸入口,對(duì)輸入存放器執(zhí)行一次讀操作,端口引腳上輸入的8位數(shù)據(jù)同時(shí)被讀入。并行通信的特點(diǎn)——傳送速度快,但數(shù)據(jù)有多少位,就需要多少根傳輸線,因此,適合于近距離通信。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.12串行通信接口串行通信串行通信——數(shù)據(jù)一位一位地按順序傳送的通信方式。串行通信通過串行口實(shí)現(xiàn),例如,HC12/9S12單片機(jī)的串行通信接口:SCI、SPI、IIC、BDLC、CAN和Byteflight。串行通信的特點(diǎn):只需一根或兩根傳輸線,并且可利用線作為傳輸線,可大大降低傳輸本錢,適合于遠(yuǎn)距離通信。其主要缺點(diǎn)是,傳送速率較低。例如,假設(shè)并行口傳送N位數(shù)據(jù)所需的時(shí)間是T,那么,串行傳送的時(shí)間至少為NT,實(shí)際上總是大于NT的。串行通信兩種根本方式——異步串行通信和同步串行通信。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.12串行通信接口★異步通信方式異步通信方式——按字符傳送,起止式的通信方式。優(yōu)點(diǎn):數(shù)據(jù)傳送的可靠性較高,能及時(shí)發(fā)現(xiàn)錯(cuò)誤。缺點(diǎn):通信效率比較低。異步通信的特點(diǎn)——數(shù)據(jù)在線路上的傳送不連續(xù),各個(gè)字符可以連續(xù)發(fā)送,也可以間斷傳送,這完全由發(fā)送雙方根據(jù)需要來確定。通信過程中數(shù)據(jù)的傳送在時(shí)鐘的控制下進(jìn)行,異步通信時(shí),同步時(shí)鐘脈沖并不傳送到接收方,即收發(fā)雙方分別用自己的時(shí)鐘源來控制接收和發(fā)送。異步通信時(shí),收發(fā)雙方必須事先規(guī)定兩件事:〔1〕字符格式,即規(guī)定字符各局部所占的位數(shù)、是否采用奇偶校驗(yàn),以及校驗(yàn)方式〔偶校驗(yàn)還是奇校驗(yàn)〕?!?〕所采用的波特率,以及時(shí)鐘頻率與波特率的比例關(guān)系。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.12串行通信接口〔1〕異步通信的數(shù)據(jù)格式一個(gè)字符由4個(gè)局部組成:起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位。數(shù)據(jù)的發(fā)送——在移位脈沖的控制下,由發(fā)送移位存放器將數(shù)據(jù)一位一位地移出單片機(jī)。數(shù)據(jù)的接收——在移位脈沖的控制下,由接收移位存放器將數(shù)據(jù)一位一位地移入單片機(jī)。典型異步通信的字符格式

2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.12串行通信接口〔2〕波特率(BaudRate)【波特率定義】每秒鐘傳送二進(jìn)制數(shù)碼的位數(shù)〔也稱比特?cái)?shù)〕,單位是bit/s。波特率反映了串行通信的速率,也反映了對(duì)傳輸通道的要求——波特率越高,要求傳輸通道的頻帶越寬。在異步通信中,波特率為每秒鐘傳送的字符個(gè)數(shù)與字符位數(shù)的乘積。例如,每秒鐘傳送的速率為960字符/秒,而每個(gè)字符又包含10位〔1個(gè)起始位、8個(gè)數(shù)據(jù)位、1個(gè)停止位〕,那么波特率為:960字符/秒10位/字符=9600位/秒=9600波特異步通信的標(biāo)準(zhǔn)波特率有50、110、300、600、1200、2400、4800、9600、19200、38400、57600、115200,當(dāng)采用美國(guó)電子工業(yè)協(xié)會(huì)規(guī)定的異步串行通信標(biāo)準(zhǔn)EIARS-232C時(shí),一般波特率在50~9600之間。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.12串行通信接口★同步通信方式同步通信——數(shù)據(jù)連續(xù)傳送的方式。按數(shù)據(jù)塊傳送,把要傳送的字符順序連接組成數(shù)據(jù)塊,在數(shù)據(jù)塊前面加上同步字符〔SYNC〕,作為數(shù)據(jù)塊的起始符號(hào)。數(shù)據(jù)塊后面再加上校驗(yàn)字符,用于校驗(yàn)通信中的錯(cuò)誤。同步通信特點(diǎn)——通信開始以后,發(fā)送端連續(xù)發(fā)送字符,接收端也連續(xù)接收字符,字符之間沒有間隔,也不用起始位和停止位。因此,通信效率比較高,可到達(dá)56K波特或更高。按同步方式通信時(shí),在發(fā)送時(shí)要插入同步字符,接收方檢測(cè)到同步字符時(shí),便準(zhǔn)備開始接收。因此,硬件設(shè)備需要有插入同步字符或相應(yīng)的檢測(cè)手段。同步通信時(shí),無論接收還是發(fā)送,都要求時(shí)鐘頻率與波特率一致。為保證接收正確無誤,發(fā)送端除了傳送數(shù)據(jù)外,還要同時(shí)傳送時(shí)鐘信號(hào)。同步通信字符格式〔雙同步字符方式〕2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.12串行通信接口★串行通信中的數(shù)據(jù)傳送方式——半雙工和全雙工9S12單片機(jī)的串行通信接口:異步串行通信接口SCI(SerialCommunicationInterface)、同步串行外設(shè)接口SPI(SerialPeripheralInterface)和IIC總線(InterIntegratedCircuitBus)接口。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.12串行通信接口異步串行通信接口SCISCI也稱為通用異步接收器/發(fā)送器UART(UniversalAsynchronousReceiver/Transmitter),主要用于MCU與計(jì)算機(jī)或外部設(shè)備之間的通信,幾個(gè)獨(dú)立的MCU也可以通過SCI實(shí)現(xiàn)串行通信,形成網(wǎng)絡(luò)。MC9S12DG128的SCI是全雙工異步串行通信接口,收發(fā)獨(dú)立進(jìn)行。內(nèi)置獨(dú)立的波特率產(chǎn)生電路和SCI收發(fā)器,有近十種標(biāo)準(zhǔn)波特率可供軟件選擇。兩個(gè)SCI占用S端口的PS0~4引腳,當(dāng)不用于串行通信接口時(shí),可以作為普通I/O口使用。由于單片機(jī)中的接口模塊采用標(biāo)準(zhǔn)邏輯電平,當(dāng)用于RS-232C通信時(shí),需要外接轉(zhuǎn)換器/驅(qū)動(dòng)器,如MAX232。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.12串行通信接口同步串行外設(shè)接口SPIMC9S12DG128芯片中有2個(gè)SPI,其中一個(gè)SPI默認(rèn)使用S端口(PTS)的PS4~7引腳,但可以通過對(duì)模塊路由存放器MODDR(ModuleRoutingRegister)的設(shè)置,將其分配到M端口(PTM)的PM2~5引腳;另一個(gè)SPI默認(rèn)使用P端口(PTP)的PP0~3引腳,也可以通過對(duì)模塊路由存放器MODDR的設(shè)置,將其分配到H端口(PTH)的PH0~3引腳。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.12串行通信接口IIC總線接口IIC總線是一種用于芯片間傳輸數(shù)據(jù)的串行擴(kuò)展總線,采用雙向二線制串行數(shù)據(jù)傳輸方式。它用1根數(shù)據(jù)線(SDA)和1根時(shí)鐘線(SCL)來實(shí)現(xiàn)全雙工同步數(shù)據(jù)傳送。IIC總線中可以掛接各種具有IIC總線接口的芯片。IIC總線數(shù)據(jù)傳送的速率取決于時(shí)鐘脈沖信號(hào)SCL的頻率。對(duì)于IIC總線傳輸數(shù)據(jù)的波特率,速率模式有兩種:一種是標(biāo)準(zhǔn)S模式(100kb/s);另一種是快速模式(400kb/s)。9S12系列單片機(jī)中的IIC模塊支持上述兩種速率模式。I2C接口的數(shù)據(jù)線和時(shí)鐘線通過端口J(PTJ)的PJ6~PJ7引腳引出。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.13CAN總線接口控制器局域網(wǎng)CAN(ControllerAreaNetwork)是一種簡(jiǎn)化型網(wǎng)絡(luò)結(jié)構(gòu)。CAN技術(shù)標(biāo)準(zhǔn)符合國(guó)際標(biāo)準(zhǔn)化組織/開放式系統(tǒng)互連ISO/OSI(InternationalOrganizationforStandardization/OpenSystemInterconnection)標(biāo)準(zhǔn)模型,分為邏輯鏈路層和物理層。1991年9月Philips半導(dǎo)體公司推出CAN技術(shù)標(biāo)準(zhǔn)2.0版,該標(biāo)準(zhǔn)包括A和B兩局部。CAN2.0A給出了CAN報(bào)文標(biāo)準(zhǔn)格式,CAN2.0B給出了標(biāo)準(zhǔn)和擴(kuò)展兩種格式?,F(xiàn)在常用的CAN控制器都符合CAN2.0B標(biāo)準(zhǔn)。CAN模塊采用2根數(shù)據(jù)線RxCAN和TxCAN傳輸數(shù)據(jù),數(shù)據(jù)傳輸速率高達(dá)1Mb/s,傳輸距離長(zhǎng)達(dá)10km。MSCAN12模塊的設(shè)計(jì)符合CAN2.0A/B協(xié)議的標(biāo)準(zhǔn),集成了除總線收發(fā)器以外的CAN總線控制器的所有功能。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.13CAN總線接口MSCAN12是一個(gè)內(nèi)置的CAN總線控制器,采用標(biāo)準(zhǔn)邏輯電平。CAN總線依靠差分信號(hào)傳輸信息,即用CAN總線的兩條線VCAN-H、VCAN-L之間的電壓差來表示不同的邏輯,因此,如果要與CAN總線上另一個(gè)節(jié)點(diǎn)設(shè)備進(jìn)行通信,必須再加一個(gè)物理層的芯片,即必須通過外接CAN總線發(fā)送/接收驅(qū)動(dòng)器,將MSCAN引腳上的電平轉(zhuǎn)換成CAN標(biāo)準(zhǔn)電平,再連接到傳輸介質(zhì)。CAN總線發(fā)送/接收驅(qū)動(dòng)器的作用是,輸出CAN總線所要求的大電流,并具有過電流保護(hù)功能,防止故障節(jié)點(diǎn)對(duì)總線的威脅。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.13CAN總線接口MC9S12DG128芯片內(nèi)部集成了3個(gè)CAN模塊,即CAN0、CAN1和CAN4。CAN0和CAN1默認(rèn)使用M端口(PTM)的PM0、PM1和PM2、PM3引腳。由于CAN0與BDLCJ1850通信接口(字節(jié)數(shù)據(jù)鏈路通信接口)共享引腳,因此,也可以通過對(duì)模塊路由存放器MODDR(ModuleRoutingRegister)的設(shè)置,將CAN0分配到M端口(PTM)的PM2、PM3或PM4、PM5引腳;CAN4默認(rèn)使用J端口(PTJ)的PJ6、PJ7引腳,與I2C總線接口共享引腳,同樣可以通過對(duì)模塊路由存放器MODDR的設(shè)置,將CAN4分配到M端口(PTM)的PM4、PM5或PM6、PM7引腳。每個(gè)CAN總線控制器具有2個(gè)接收緩沖區(qū)和3個(gè)發(fā)送緩沖區(qū),有發(fā)送(TX)、接收(RX)、出錯(cuò)、喚醒4個(gè)獨(dú)立的中斷通道。CAN模塊還有自檢、低通濾波和喚醒等功能。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.14字節(jié)數(shù)據(jù)鏈路通信接口BDLC(ByteDataLinkCommunication)BDLC是MCU內(nèi)嵌的J1850總線接口模塊。J1850是1994年由美國(guó)汽車工程師協(xié)會(huì)SAE(SocietyofAutomotiveEngineers)命名和采用的車內(nèi)網(wǎng)絡(luò)標(biāo)準(zhǔn)協(xié)議。協(xié)議規(guī)定了數(shù)據(jù)位、起始位、結(jié)束位等控制符的表示方案,并在此根底上,規(guī)定了消息幀格式、仲裁、傳輸速率等內(nèi)容,它具有結(jié)構(gòu)開放、本錢低、無主和單層總線拓?fù)浣Y(jié)構(gòu)等特點(diǎn)。SAE為車內(nèi)網(wǎng)絡(luò)定義了3個(gè)不同的協(xié)議類別:A、B、C。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.14字節(jié)數(shù)據(jù)鏈路通信接口BDLC(ByteDataLinkCommunication)A類傳輸峰值速率僅為10kb/s,典型應(yīng)用是改善執(zhí)行器和智能傳感器的方便程度。B類傳輸速率為100kb/s,典型應(yīng)用是模塊內(nèi)的非實(shí)時(shí)控制和通信,它提供了車內(nèi)各局部間的數(shù)據(jù)傳輸通道,可以消除傳感器和其他系統(tǒng)器件的冗余。C類支持1Mb/s的傳輸速率,典型應(yīng)用是關(guān)鍵部位的實(shí)時(shí)控制,其高速度也很容易實(shí)現(xiàn)分布式控制,其中最具優(yōu)勢(shì)的車內(nèi)C類組網(wǎng)標(biāo)準(zhǔn)是CAN。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.14字節(jié)數(shù)據(jù)鏈路通信接口BDLC(ByteDataLinkCommunication)SAEJ1850的內(nèi)容是B類協(xié)議。J1850B規(guī)定了兩種速率:(1)高速的41.6kb/sPWM,采用雙線差動(dòng)傳輸;(2)10.4kb/s的VPW(VariablePulseWidth),采用單線傳輸,同時(shí)支持GM和Chrysler的J1850協(xié)議,這就是目前廣泛用于汽車故障診斷的K線協(xié)議。按照J(rèn)1850B標(biāo)準(zhǔn),網(wǎng)絡(luò)由一條總線和掛在總線上的假設(shè)干節(jié)點(diǎn)構(gòu)成,總線只提供信息的傳輸通道,也稱為J1850總線。信息按幀傳輸,每個(gè)節(jié)點(diǎn)具有總線偵聽和按幀收、發(fā)消息的功能。各模塊按照一定規(guī)那么共享總線,共享的方案分為頻分多路和時(shí)分多路兩種。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.14字節(jié)數(shù)據(jù)鏈路通信接口BDLC(ByteDataLinkCommunication)頻分多路——多個(gè)消息在一條總線上同時(shí)傳輸,但傳輸頻率不同。時(shí)分多路——采用固定或可變時(shí)長(zhǎng)交替?zhèn)鬏敹鄠€(gè)信息。J1850B的10.4kb/sVPW采用可變時(shí)長(zhǎng)的時(shí)分多路總線共享方案,在發(fā)動(dòng)機(jī)、傳動(dòng)裝置、防抱死裝置及汽車儀表系統(tǒng)中,都能看到低本錢的J1850車用網(wǎng)絡(luò)。9S12單片機(jī)內(nèi)嵌的BDLC模塊負(fù)責(zé)實(shí)現(xiàn)J1850協(xié)議,然后通過外部的收發(fā)器和其他外圍電路接入總線。通過BDLC模塊,軟件只需要按字節(jié)處理接收和發(fā)送的信息,而網(wǎng)絡(luò)訪問、仲裁、信息幀的形成以及錯(cuò)誤檢測(cè)等由BDLC模塊負(fù)責(zé)。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.14字節(jié)數(shù)據(jù)鏈路通信接口BDLC(ByteDataLinkCommunication)BDLC模塊采用J1850VPW編碼方案,VPW是一種可變脈寬調(diào)制編碼技術(shù),它用兩個(gè)相鄰跳變之間的時(shí)間間隔和總線電平〔在VPW中分為主動(dòng)和被動(dòng)態(tài)〕來表示一個(gè)數(shù)據(jù)位。主動(dòng)和被動(dòng)位交替使用。對(duì)于給定的波特率,采用VPW編碼技術(shù)可以減少總線電平跳變的次數(shù)?!咀⒁狻?S12芯片的BDLC模塊只包含協(xié)議處理等數(shù)字局部,即鏈路層,不包含模擬收發(fā)器。實(shí)際應(yīng)用時(shí),必須外掛獨(dú)立的收發(fā)器,MCU通過引腳RXB和TXB與收發(fā)器接口。MC9S12DG128芯片只內(nèi)嵌1個(gè)BDLC模塊,與CAN0模塊共享M端口(PTM)的PM0、PM1引腳,使用優(yōu)先權(quán)低于CAN0模塊。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.15Byteflight模塊Byteflight是用于平安臨界(SafetyCritical)的時(shí)間控制協(xié)議,由BWM聯(lián)合Freescale、Elmos和Infineon公司共同開發(fā),主要用于機(jī)動(dòng)車中的平安臨界應(yīng)用。例如,平安氣囊系統(tǒng)中時(shí)間臨界(TimeCritical)數(shù)據(jù)的處理與傳輸、車身及底盤電子系統(tǒng)的相關(guān)數(shù)據(jù)傳輸,傳輸速率為10Mbps。該模塊與Infineon的BFT003器件(光纖收發(fā)器件)接口,共有6個(gè)引腳:收、發(fā)引腳RX_BF、TX_BF和4個(gè)中斷邏輯與出錯(cuò)處理狀態(tài)引腳。在MC9S12DG128芯片中,默認(rèn)使用M端口(PTM)的PM2~PM7引腳,使用優(yōu)先權(quán)高于CAN、BDLC和SPI。2.1MC9S12DG128的內(nèi)部結(jié)構(gòu)2.1.16引腳中斷邏輯PIL(PinInterruptLogic)MC9S12DG128有2個(gè)8位并行口,即H端口和P端口,除了可以設(shè)置為輸出以外,還具有位輸入信號(hào)邊沿產(chǎn)生中斷、喚醒CPU的功能,可以作為外部中斷的輸入通道。此外,J端口的4位具有同樣的功能。端口J、H、P作為普通輸入端口使用時(shí),都可以根據(jù)外部事件〔如鍵喚醒〕產(chǎn)生中斷請(qǐng)求,可用于接收鍵盤的輸入信號(hào),無需對(duì)鍵盤循環(huán)掃描,通過按鍵產(chǎn)生中斷喚醒CPU,CPU執(zhí)行一次掃描程序,確定哪一個(gè)鍵被按下。2.2MC9S12DG128引腳功能MC9S12DG128單片機(jī)的引腳可以分成三局部:專用信號(hào)引腳、電源引腳和輸入/輸出信號(hào)引腳。2.2.1專用信號(hào)引腳專用信號(hào)引腳特性如表2.3所示。2.2MC9S12DG128引腳功能2.2.1專用信號(hào)引腳2.2MC9S12DG128引腳功能

2.2.1專用信號(hào)引腳1.XTAL和EXTAL(47、46腳)——晶體驅(qū)動(dòng)輸出和外部時(shí)鐘輸入XTAL和EXTAL分別是晶體驅(qū)動(dòng)輸出和外部時(shí)鐘輸入引腳。EXTAL引腳既可以外接晶體,也可以接CMOS兼容的時(shí)鐘信號(hào),驅(qū)動(dòng)內(nèi)部時(shí)鐘發(fā)生電路,器件中所有的時(shí)鐘信號(hào)都來自該引腳輸入的時(shí)鐘。XTAL引腳是晶體驅(qū)動(dòng)輸出。如果EXTAL引腳外接時(shí)鐘輸入,那么XTAL引腳必須懸空。2.2MC9S12DG128引腳功能2.2.1專用信號(hào)引腳2.2MC9S12DG128引腳功能2.2.1專用信號(hào)引腳2.XFC〔44〕——PLL環(huán)路濾波器引腳壓控振蕩器(VCO)的電壓控制端,用于外接鎖相環(huán)路濾波器。PLL環(huán)路濾波器連接電路如圖2.11所示,PLL要求3個(gè)元件的無源濾波器連接到XFC引腳上。CS、CP和RS的取值與晶振、REFDV存放器和SYNR存放器的設(shè)置有關(guān),需要通過計(jì)算得出。計(jì)算濾波器的公式可以參見用戶指南,也可以簡(jiǎn)單地使用Freescale公司提供的PLL濾波器計(jì)算器來計(jì)算。2.2MC9S12DG128引腳功能2.2.1專用信號(hào)引腳3.BKGD〔23〕——背景調(diào)試引腳BKGD采用特殊的自定時(shí)協(xié)議接收串行背景調(diào)試命令,并發(fā)送命令執(zhí)行結(jié)果,進(jìn)行實(shí)時(shí)在線調(diào)試。BKGD與MODC共享一個(gè)引腳,假設(shè)沒有外部電路接在該引腳上,復(fù)位后MCU處于正常模式。Freescale定義的標(biāo)準(zhǔn)BDM調(diào)試插頭如圖2.12所示。2.2MC9S12DG128引腳功能2.2.1專用信號(hào)引腳4.RESET(42腳)——復(fù)位引腳RESET是低電平有效的雙向控制引腳。將該引腳拉低,可將MCU初始化成默認(rèn)狀態(tài),此時(shí)它是輸入引腳。如果時(shí)鐘監(jiān)視器或COP看門狗電路檢測(cè)到內(nèi)部故障,該引腳作為開漏輸出引腳,對(duì)外指示故障狀態(tài)。復(fù)位究竟是內(nèi)部還是外部引起,是可以判別的。內(nèi)部復(fù)位首先將引腳RESET拉低,并保持64個(gè)E時(shí)鐘周期〔128個(gè)系統(tǒng)時(shí)鐘周期〕然后,CRG(ClockandResetGenerator)模塊釋放該引腳,CRG的復(fù)位發(fā)生器(ResetGenerator)等待附加的32個(gè)E時(shí)鐘周期,采樣RESET引腳,檢查RESET引腳電平是否上升到邏輯1,以確定復(fù)位源。2.2MC9S12DG128引腳功能2.2.1專用信號(hào)引腳4.RESET(42腳)——復(fù)位引腳〔1〕如果這32個(gè)E時(shí)鐘周期后RESET為高,那么復(fù)位源暫時(shí)被認(rèn)為是內(nèi)部復(fù)位——COP故障或時(shí)鐘監(jiān)視器故障,說明復(fù)位是由時(shí)鐘監(jiān)視器或COP看門狗電路引起的,CPU將根據(jù)CRG內(nèi)部存放器鎖存的狀態(tài)標(biāo)志,做進(jìn)一步判斷:①如果內(nèi)部鎖存的時(shí)鐘監(jiān)視器故障電路的狀態(tài)為真,CPU將取得時(shí)鐘監(jiān)視器復(fù)位向量($FFFC:$FFFD)。②如果未說明是時(shí)鐘監(jiān)視器故障,而且鎖存的COP超時(shí)狀態(tài)為真,CPU取得COP超時(shí)復(fù)位向量($FFFA:$FFFB)?!?〕如果32個(gè)E時(shí)鐘周期以后RESET引腳還是低電平,那么確定為外部復(fù)位,CPU就會(huì)提取正常的復(fù)位向量($FFFE:$FFFF)。2.2MC9S12DG128引腳功能2.2.1專用信號(hào)引腳4.RESET(42腳)——復(fù)位引腳對(duì)于電源電壓的躍變,使用外部低電壓復(fù)位〔LowVoltageReset,LVR〕電路〔如MC34064〕防止RAM或EEPROM損壞非常重要。為了保證時(shí)鐘監(jiān)視器或COP看門狗復(fù)位向量能夠被復(fù)位邏輯識(shí)別,復(fù)位引腳上升到3.25V的時(shí)間必須小于64個(gè)系統(tǒng)時(shí)鐘周期和11ms,所以,為了防止對(duì)復(fù)位信號(hào)的誤判發(fā)生,S12的復(fù)位電路不要使用簡(jiǎn)單的RC復(fù)位電路。另外,在HCS12D系列中沒有低電壓復(fù)位支持,推薦使用外部LVR電路,確保當(dāng)器件電源VDD下降到4.5V以下時(shí)處于復(fù)位狀態(tài)。復(fù)位電路

低電壓復(fù)位電路

低電壓復(fù)位芯片原理圖

2.2MC9S12DG128引腳功能2.2.1專用信號(hào)引腳5.MODA,MODB,MODC——模式選擇輸入MODA/IPIPE0/PE5,MODB/IPIPE1/PE6,MODC//BKGD(38腳,37腳,23腳)在復(fù)位期間這些引腳的狀態(tài)決定了MCU的運(yùn)行方式,3位組合共有8種模式:3種普通模式,4種特殊模式和1種強(qiáng)制外設(shè)模式。引腳的狀態(tài)在RESET信號(hào)的上升沿被鎖存到模式存放器MODE中。2.2MC9S12DG128引腳功能2.2.1專用信號(hào)引腳5.MODA,MODB,MODC——模式選擇輸入MODA/IPIPE0/PE5,MODB/IPIPE1/PE6,MODC//BKGD(38腳,37腳,23腳)MODA和MODB用于設(shè)置操作模式:?jiǎn)涡酒驍U(kuò)展(窄總線、寬總線)模式,也可以作為GPIO。在擴(kuò)展模式下,MODA和MODB可以設(shè)定為指令隊(duì)列跟蹤信號(hào)IPIPE0和IPIPE1,用邏輯分析儀調(diào)試系統(tǒng)時(shí),這些跟蹤信號(hào)可以再現(xiàn)真實(shí)的指令執(zhí)行過程。MODC用于設(shè)置正常模式或特殊模式,也可作為BKGD用于后臺(tái)調(diào)試通信。在擴(kuò)展模式下,還可用作TAGHI,當(dāng)指令標(biāo)記置位,在E時(shí)鐘的下降沿,該引腳輸入的低電平隨著指令的高半字節(jié)被讀入到指令隊(duì)列。

2.2MC9S12DG128引腳功能2.2.1專用信號(hào)引腳6.IRQ/PE1(55腳)——可屏蔽中斷請(qǐng)求(MaskableInterruptRequest)可屏蔽外部中斷請(qǐng)求輸入引腳,下降沿或低電平有效,可以用于從STOP或WAIT模式喚醒單片機(jī)。通過對(duì)INTCR存放器的設(shè)置,可以用程序選擇該引腳是否與中斷邏輯連接,以及選擇下降沿或電平觸發(fā)方式。復(fù)位后,默認(rèn)為低電平有效,同時(shí)在CCR存放器中的I位為1,中斷被屏蔽??赏ㄟ^去除INTCR存放器中的IRQEN位來禁止,也可以設(shè)置條件碼存放器CCR中的I位使中斷被屏蔽。2.2MC9S12DG128引腳功能2.2.1專用信號(hào)引腳7.XIRQ/PE0(56腳)——不可屏蔽中斷請(qǐng)求(NonmaskableInterruptRequest)不可屏蔽中斷請(qǐng)求輸入端,為低電平觸發(fā)方式,可用于在STOP或WAIT模式下喚醒單片機(jī)。中斷是否允許由CCR存放器中的X位控制,復(fù)位后默認(rèn)狀態(tài)X=1,即中斷被屏蔽。當(dāng)系統(tǒng)初始化后,可以通過程序去除CCR存放器中的X位,使能不可屏蔽中斷?!咀⒁狻恳坏位被清零,允許中斷,就不能再用軟件的方法使X位重新置位,中斷不可屏蔽,除非再來一次復(fù)位。2.2MC9S12DG128引腳功能2.2.1專用信號(hào)引腳對(duì)于XIRQ和設(shè)置為低電平有效的IRQ,需要注意中斷請(qǐng)求的撤除問題。

中斷請(qǐng)求撤除電路2.2MC9S12DG128引腳功能2.2.1專用信號(hào)引腳8.ECLK(PE4,39腳)——E時(shí)鐘輸出ECLK是內(nèi)部總線時(shí)鐘(E時(shí)鐘)輸出引腳,可用作定時(shí)基準(zhǔn)。在擴(kuò)展模式下,用于地址、數(shù)據(jù)總線的別離。復(fù)位后,E時(shí)鐘頻率為晶振頻率的1/2。9.XCKLS/NOACC/PE7(36腳)——時(shí)鐘選擇/非訪問狀態(tài)XCKLS是輸入引腳,控制著晶體是否與內(nèi)部振蕩器聯(lián)合使用。在復(fù)位期間,XCKLS信號(hào)在RESET的上升沿鎖存。當(dāng)XCKLS=0,選擇串聯(lián)振蕩電路;當(dāng)XCKLS=1,選擇并聯(lián)振蕩電路或外部有源振蕩器。該引腳的第二功能NOACC用來表示當(dāng)前的總線周期是一個(gè)未被使用的或“空閑”的周期,即CPU何時(shí)未使用總線,主要用在擴(kuò)展模式中。2.2MC9S12DG128引腳功能2.2.1專用信號(hào)引腳10.IPIPE0/PE5,IPIPE1/PE6——指令隊(duì)列狀態(tài)輸出/指令隊(duì)列跟蹤信號(hào)IPIPE1和IPIPE0與MODB和MODA共享引腳,分時(shí)輸出指令隊(duì)列狀態(tài),即跟蹤內(nèi)部指令傳送的狀態(tài)。數(shù)據(jù)傳送和指令執(zhí)行的狀態(tài)信息在這兩個(gè)引腳上分時(shí)多路傳輸,因此,可用于在外部重構(gòu)指令隊(duì)列。11.R/W(PE2,54腳)——讀/寫信號(hào)在所有模式下,引腳都可用作通用I/O口。如果需要進(jìn)行讀/寫操作,可以使E端口分配存放器PEAR中的RDWE位置位,來啟動(dòng)該引腳的讀/寫功能。在該功能使能前,無法實(shí)現(xiàn)外部寫操作。2.2MC9S12DG128引腳功能2.2.1專用信號(hào)引腳12.LSTRB/TAGLO(PE3,53腳)——低位字節(jié)選通信號(hào)LSTRB(Low-ByteStrobe)在所有模式下都可用作通用I/O口。復(fù)位后,它是一個(gè)具有內(nèi)部有源上拉的輸入引腳。擴(kuò)展模式下,LSTRB表示總線訪問類型。如果需要選通功能,可以使E端口分配存放器PEAR中的LSTRE位置位,來啟動(dòng)該引腳的選通控制功能。在該功能使能前,無法實(shí)現(xiàn)對(duì)外部低位字節(jié)的寫操作。該功能主要用在外部存儲(chǔ)器為8位數(shù)據(jù)線、且為非標(biāo)準(zhǔn)字(高位在奇數(shù)單元,低位在偶數(shù)單元)時(shí),由于需要分別訪問兩個(gè)存儲(chǔ)單元,因此,需要用LSTRB指示低位字節(jié)。在特殊擴(kuò)展模式下,該引腳也可用作TAGLO,作為指令低位字節(jié)的標(biāo)識(shí),并與LSTRB功能分時(shí)復(fù)用。2.2MC9S12DG128引腳功能2.2.1專用信號(hào)引腳13.Test(48腳)——測(cè)試引腳這是唯一一個(gè)用于產(chǎn)品測(cè)試的保存引腳,用來設(shè)置器件的各種測(cè)試模式,包括掃描試驗(yàn)。在芯片生產(chǎn)廠家試驗(yàn)時(shí),也作為非易失性存儲(chǔ)器的編程電壓輸入。在正常使用時(shí),該引腳必須接地(VSS)。14.A15~A0,D15~D0(PA7~PA0,PB7~PB0)——外部地址和數(shù)據(jù)總線在擴(kuò)展模式下用作外部總線。ADDR15~ADDR0和DATA15~DATA0分別是外部擴(kuò)展地址/數(shù)據(jù)總線,與端口A、B共享引腳,端口A、B作為分時(shí)復(fù)用的16位數(shù)據(jù)線和地址線。16位擴(kuò)展模式下,PA7~PA0用作高8位地址線A15~A8和高8位數(shù)據(jù)線D15~D8,PB7~PB0用作低8位地址線A7~A0和低8位數(shù)據(jù)線D7~D0。8位擴(kuò)展模式下,A口供高8位地址線A15~A8和8位數(shù)據(jù)線D7~D0分時(shí)復(fù)用,PB7~PB0作為低8位地址線A7~A0。在單芯片模式下,端口A、B可以用作通用I/O口。2.2MC9S12DG128引腳功能2.2.2電源引腳電源引腳共7組,分別滿足片內(nèi)不同局部的電源要求,電源引腳均衡地分布在芯片上。MC9S12DG128的電源引腳匯總參見表2.4。2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳MC9S12DG128內(nèi)部集成了11個(gè)端口,每個(gè)端口由4~8個(gè)外部引腳組成,用來控制和訪問各種器件子系統(tǒng)。當(dāng)不用作專用接口時(shí),這些引腳都可用作通用I/O接口。作為專用I/O接口,可以分別用作總線、SCI、SPI、IC/OC、ATD、PWM、ECT、CAN、Betyflight和BDLC等。上述每一個(gè)端口都包含一個(gè)數(shù)據(jù)存放器,在任何時(shí)候都可以讀/寫。除了PortAD0、PortAD1和PE0、PE1以外,每個(gè)端口還有一個(gè)方向存放器,用來控制每個(gè)引腳的方向。復(fù)位后,所有通用I/O引腳都被設(shè)置成輸入。2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳1.端口A(PA7~PA0,64~57腳)端口A不用于外部尋址時(shí),如單芯片模式,這些引腳可以作為GPIO。數(shù)據(jù)方向存放器DDRA(DataDirectionRegisterA)決定著每個(gè)引腳的最初方向,也決定著PORTA讀取的數(shù)據(jù)源,即DDRA存放器決定端口A的每個(gè)引腳是輸入還是輸出。2.端口B(PB7~PB0,31~24腳)端口B不用于外部尋址時(shí),如單芯片模式,這些引腳可以作為GPIO。數(shù)據(jù)方向存放器DDRB(DataDirectionRegisterB)決定著每個(gè)引腳的最初方向,也決定著PORTB讀取的數(shù)據(jù)源。2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳3.端口E(PE7~PE0,36~39腳,53~56腳)端口E用于總線控制和中斷請(qǐng)求信號(hào)輸入,包括模式選擇MODA和MODB、E時(shí)鐘輸出ECLK、數(shù)據(jù)總線大小LSTRB(低位字節(jié)選通)、W/R(讀/寫)、可屏蔽中斷請(qǐng)求輸入IRQ和非屏蔽中斷請(qǐng)求輸入XIRQ。當(dāng)端口E的模式存放器MODE中的EME=1時(shí),即,當(dāng)這些引腳不用于特殊功能時(shí),除了IRQ/PE1和XIRQ/PE0以外,均可作為GPIO使用,用端口E分配存放器PEAR選擇每個(gè)引腳的功能。當(dāng)設(shè)置為GPIO時(shí),由DDRE存放器決定每個(gè)引腳是輸入還是輸出,并決定端口E讀取的數(shù)據(jù)源。2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳4.端口K(PK5/XADDR19~PK0/XADDR14;PK7/ECS/ROMCTL)端口K與內(nèi)存擴(kuò)展仿真(emulation)引腳有關(guān)。當(dāng)MODE中的EMK=0時(shí),即,當(dāng)端口K未被啟用仿真內(nèi)存擴(kuò)展時(shí),端口引腳可以作為GPIO。在外設(shè)和擴(kuò)展模式下,當(dāng)MODE中的EMK位置位時(shí),端口K對(duì)應(yīng)的存放器PORTK不在存儲(chǔ)器映射區(qū)內(nèi)。在MCU擴(kuò)展模式下,PK5~PK0(XADDR19~XADDR14)為外部總線提供擴(kuò)展地址A19~A14,PK7那么用作仿真芯片選擇輸出(片選ECS)。2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳4.端口K(PK5/XADDR19~PK0/XADDR14;PK7/ECS/ROMCTL)在MCU正常擴(kuò)展寬總線或窄總線工作模式下,PK7用來控制FlashEEPROM存儲(chǔ)器是否處于內(nèi)存分配表(ROMONE)中。PK7=1,片上Flash可以使用;PK7=0,片上Flash不能使用。在RESET的上升沿,該引腳狀態(tài)鎖存到MISC存放器的ROMON位中。當(dāng)設(shè)置為GPIO時(shí),存放器DDRK決定端口K每個(gè)引腳是輸入還是輸出。DDRK的某一位設(shè)置為1,端口K相應(yīng)的引腳定義為輸出;去除DDRK的某一位,那么端口K的相應(yīng)引腳為輸入。DDRK默認(rèn)的復(fù)位狀態(tài)為全0。2.2MC9S12DG128引腳功能端口集成模塊PIM(PortIntegrationModule)【注意】除了上述端口A、B、E、K以外,端口H、J、M、P、S、T集成在端口集成模塊PIM(PortIntegrationModule)中,可以靈活設(shè)置。2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳5.端口M(PM5~PM0,100~105腳;PM7~PM6,87~88腳)2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳5.端口M(PM5~PM0,100~105腳;PM7~PM6,87~88腳)

端口M集成了一個(gè)Byteflight模塊、3個(gè)MSCAN模塊(CAN0、CAN1和CAN4)、1個(gè)BDLC模塊。引腳定義為:PM7——BF_PSLM/TXCAN4Byteflight時(shí)隙失配引腳/MSCAN4發(fā)送端引腳如果使能,時(shí)隙失配后該引腳產(chǎn)生一個(gè)50ns的脈沖。PM6——BF_PERR/RXCAN4Byteflight非法脈沖錯(cuò)誤引腳/MSCAN3接收端引腳如果使能,一個(gè)報(bào)文格式或非法脈沖錯(cuò)誤后或時(shí)隙失配后,該引腳產(chǎn)生一個(gè)50ns的脈沖。PM5——BF_PROK/TXCAN0/TxCAN4/SCK0Byteflight正確報(bào)文/同步接收脈沖引腳/MSCAN0、MSCAN4發(fā)送端引腳/SPI0串行時(shí)鐘引腳。如果使能,成功接收?qǐng)?bào)文或同步脈沖后,該引腳產(chǎn)生一個(gè)50ns的脈沖。2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳5.端口M(PM5~PM0,100~105腳;PM7~PM6,87~88腳)PM4——BF_PSYN/RXCAN0/RXCAN4/MOSI0Byteflight正確的同步脈沖接收/發(fā)送引腳/MSCAN0、MSCAN4接收端引腳/SPI0的MOSI0引腳如果使能,成功接收或發(fā)送同步脈沖后,該引腳產(chǎn)生一個(gè)50ns的脈沖。PM3——TX_BF/TXCAN1/TxCAN0Byteflight、MSCAN0、MSCAN1發(fā)送端/SPI0的模式選擇信號(hào)引腳PM2——RX_BF/RXCAN1/RxCAN0/MISO0Byteflight、MSCAN0、MSCAN1接收端/SPI0的MISO0引腳PM1——TXCAN0/TXBMSCAN0/BDLC發(fā)送端引腳PM0——TXCAN0/RXBMSCAN0/BDLC接收端引腳2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳5.端口M(PM5~PM0,100~105腳;PM7~PM6,87~88腳)【注意】M端口的CAN引腳、S端口的SPI引腳和P端口的SPI引腳都可以通過對(duì)模塊路由存放器MRR(ModuleRoutingRegister)的設(shè)置來重新選擇路徑。MRR存放器允許將CAN0、CAN4、SPI0和SPI1的引腳重新選擇到預(yù)定的引腳上。按默認(rèn)設(shè)置,端口M為ByteFlight與CAN0,如果功能模塊被禁用,這些引腳可以作為GPIO端口使用。復(fù)位后,端口M被設(shè)置成高阻輸入?!綧端口的引腳使用優(yōu)先權(quán)】ByteFlight>CAN0>BDLC>GPIOByteFlight>CAN1>(routed)CAN0>(routed)SPI0>GPIOByteFlight>(routed)CAN0>(routed)CAN4>(routed)SPI0>GPIO使用優(yōu)先權(quán)是指當(dāng)用戶同時(shí)設(shè)定了某些功能后,優(yōu)先權(quán)高的功能模塊占用該引腳。2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳6.ATD端口——A/D轉(zhuǎn)換器模擬信號(hào)輸入由ATD0(AN7/PAD7~AN0/PAD0)和ATD1(AN15/PAD15~AN8/PAD8)兩個(gè)子模塊組成,對(duì)于80腳封裝的芯片,只引出了ATD0模塊的8個(gè)引腳。2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳6.ATD端口——A/D轉(zhuǎn)換器模擬信號(hào)輸入利用ADC模塊中的控制存放器ATDCTLX可以對(duì)每個(gè)通道進(jìn)行設(shè)置,其中,AN15/PAD15和AN7/PAD7可以設(shè)置成A/D轉(zhuǎn)換的外部觸發(fā)輸入ETRIG(ExternalTriggerInput)。當(dāng)這兩個(gè)8位端口不用作A/D轉(zhuǎn)換器時(shí),可以作為GPIO端口使用。復(fù)位后,默認(rèn)為通用I/O輸入引腳。當(dāng)ADC模塊使能后,只能作為模擬信號(hào)輸入引腳,無相關(guān)的數(shù)據(jù)方向存放器,無阻性輸入負(fù)載,也沒有降功率驅(qū)動(dòng)功能。2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳7.端口S(PS7~PS0,96~89腳)端口S有兩個(gè)相同的SCI模塊(SCI0和SCI1)和1個(gè)SPI(SPI0)。2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳7.端口S(PS7~PS0,96~89腳)每個(gè)SCI模塊占用2個(gè)外部引腳,RXD0、TXD0和RXD1、TXD1分別與通用I/O共享端口引腳PS3~PS0。RXD0/PS0——SCI0接收端TXD0/PS1——SCI0發(fā)送端RXD1/PS2——SCI1接收端TXD1/PS3——SCI1發(fā)送端當(dāng)它們未被設(shè)置成串行異步通信接口時(shí),可用作普通I/O端口。2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳7.端口S(PS7~PS0,96~89腳)SPI0模塊占用4個(gè)外部引腳,SS0、SCK0、MOSI0和MISO0與通用I/O共享端口引腳PS7~PS3。串行同步通信采用三線制傳送方式,需要兩根串行數(shù)據(jù)線和一根串行時(shí)鐘線,另外有一根主-從機(jī)模式選擇線。MISO0/PS4——SPI0的主入/從出線MOSI0/PS5——SPI0的主出/從入線SCK0/PS6——SPI0的串行時(shí)鐘線,時(shí)鐘由主機(jī)提供。SS0/PS7——SPI0的從機(jī)選擇信號(hào),由主機(jī)發(fā)往從機(jī),低電平有效。端口S功能模塊的引腳使用優(yōu)先權(quán)SCI,SPI>GPIO,假設(shè)兩種功能模塊都未被允許時(shí),端口S才被用作通用I/O。復(fù)位后,端口S默認(rèn)為具有上拉的通用I/O輸入。SCI或SPI使能后,相應(yīng)引腳的通用I/O功能關(guān)閉。SPI0引腳可以被重新選擇路徑,定義到PM5~PM2上。2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳8.端口T(PT7/IOC7~PT4/IOC4,18~15腳;PT3/IOC3~PT0/IOC0,12~9腳)端口T被連接到內(nèi)部定時(shí)器模塊,8個(gè)外部引腳均具有輸入捕捉(IC,InputCapture)和輸出比較(OC,OutputCompare)功能,通過設(shè)置TIOS存放器中的IOSX位可以在輸入捕捉與輸出比較功能之間切換。IOC0~I(xiàn)OC3還可作為8位脈沖累加器輸入(PAI,PulseAccumulatorInput),IOC7和IOC0可分別作為16位脈沖累加器A和B的輸入。當(dāng)定時(shí)器模塊未被啟用時(shí),端口T可用作通用I/O。復(fù)位后,端口T默認(rèn)為通用I/O高阻輸入引腳。2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳8.端口T(PT7/IOC7~PT4/IOC4,18~15腳;PT3/IOC3~PT0/IOC0,12~9腳)當(dāng)ECT工作在輸入捕捉工作模式下,端口T的8個(gè)輸入捕捉通道中,PT7/IOC7~PT4/IOC4四個(gè)通道為普通的輸入捕捉通道。每發(fā)生一次輸入捕捉,新的計(jì)數(shù)器值會(huì)覆蓋輸入捕捉鎖存器中原來的內(nèi)容。PT3/IOC3~PT0/IOC0四個(gè)通道為帶有緩沖的輸入捕捉通道,由于其內(nèi)部帶有一個(gè)保持存放器,因此,可以在不產(chǎn)生中斷的條件下,連續(xù)記錄兩次自由計(jì)數(shù)器的值。端口T的使用優(yōu)先權(quán)ECT>GPIO。2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳9.端口P(PP7/PWM7/KWP7~PP4/PWM4/KWP4;PP3/PWM3/KWP3~PP0/PWM0/KWP0)2.2MC9S12DG128引腳功能2.2.3輸入/輸出信號(hào)引腳9.端口P(PP7/PWM7/KWP7~PP4/PWM4/KWP4;PP3/PWM3/KWP3~PP0/PWM0/KWP0)端口P與片內(nèi)的脈寬調(diào)制模塊PWM和1個(gè)SPI模塊相連,8個(gè)引腳與通用I/O共享,既可以作為脈寬調(diào)制波形的輸出引腳,也可以作為外部中斷輸入引腳。如果端口P作為PWM使用,那么除了PP7可以作為PWM輸入或輸出外,其他引腳都只能是PWM輸出通道。一旦PWM允許啟用,對(duì)應(yīng)引腳通用I/O功能被禁止。端口P還以“線或”方式提供了具有邊沿觸發(fā)能力的8路I/O通道,對(duì)于設(shè)置成輸入或輸出的引腳,都可以使用中斷。中斷使能、上升沿或下降沿的靈敏度可以根據(jù)每個(gè)引腳單獨(dú)設(shè)置,8個(gè)引腳擁有相同的中斷矢量。當(dāng)端口中斷標(biāo)志存放器的某一位及其相應(yīng)的中斷允許位都置為1時(shí),就會(huì)產(chǎn)生一個(gè)中斷,這個(gè)外部中斷特性能夠喚醒處于STOP模式或WAIT模式的CPU。2.2MC9S12DG128引腳功

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論