第3章 MC9S12單片機(jī)的內(nèi)核及片上資源v2_第1頁
第3章 MC9S12單片機(jī)的內(nèi)核及片上資源v2_第2頁
第3章 MC9S12單片機(jī)的內(nèi)核及片上資源v2_第3頁
第3章 MC9S12單片機(jī)的內(nèi)核及片上資源v2_第4頁
第3章 MC9S12單片機(jī)的內(nèi)核及片上資源v2_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第三章MC9S12單片機(jī)的內(nèi)核及片上資源

§3-1內(nèi)核結(jié)構(gòu)及引腳

§3-2內(nèi)部寄存器§3-3堆?!?-4內(nèi)部存儲(chǔ)器§3-5復(fù)位及時(shí)鐘§3-6中斷§3-7最小系統(tǒng)設(shè)計(jì)內(nèi)容提要:§3-1內(nèi)核結(jié)構(gòu)及引腳Freescale單片機(jī)的命名規(guī)則

①產(chǎn)品狀態(tài)。MC—FullyQualified(合格);PC—ProductEngineering(測(cè)試品);XC表示部分合格品,有限質(zhì)量保證,用于性能評(píng)估的器件。②存儲(chǔ)器類型標(biāo)志?!盁o”表示片內(nèi)帶ROM或片內(nèi)沒有程序存儲(chǔ)器;7表示片內(nèi)帶EPROM或一次可編程ROM(onetimeprogrammableROM,OTPROM);8表示片內(nèi)帶EEPROM(ElectricallyErasableProgrammableRead-OnlyMemory);9表示片內(nèi)帶閃存FlashEEPROM。③芯片內(nèi)核類型。如08表示HC08內(nèi)核、S08表示HCS08內(nèi)核、RS08表示RS08內(nèi)核等。④子系列型號(hào)標(biāo)志。如GP、GB、GZ等。⑤存儲(chǔ)器大小。如2表示2KB、32表示32KB、60表示60KB等。⑥Flash版本標(biāo)志,反映不同的擦寫電壓、時(shí)間等。⑦工作溫度范圍標(biāo)志?!盁o”表示商用溫度范圍0℃~70℃;C表示-40℃~85℃;V表示-40℃~105℃;M表示-40℃~125℃。⑧封裝形式。如:P為雙列直插DIP封裝。FU表示80引腳QFP封裝。PV表示112引腳LQFP封裝。選用某款芯片制作電路板時(shí)要特別注意封裝形式。⑨E表示leadfreepackaging,即無鉛封裝。

在⑨之后有些還有一個(gè)可選項(xiàng),例如MC68HC912B32ACFUE8,此處的“8”表示總線速度為8MHz。注:由于歷史原因,飛思卡爾(前身為Motorola半導(dǎo)體部)的微控制器類產(chǎn)品常冠以68。內(nèi)核結(jié)構(gòu)—存儲(chǔ)器以MC9S12DP256為例256KFLASH12KRAM4KEEPROMMC9S12DG128擁有128K的FLASH,8K的RAM,2K的EEPROM。電壓調(diào)整模塊及相關(guān)引腳電壓調(diào)整模塊給內(nèi)核供電2.5VVDD1/2和VSS1/2:內(nèi)核供電引腳,之間要接去耦電容VREGEN引腳上拉使能電壓調(diào)整模塊,VDD1/2,VDDPLL使用內(nèi)部2.5V電源VREGEN引腳接地禁止模塊,VDD1/2,VDDPLL接外部2.5V電源VDDR、VSSR:電壓調(diào)整模塊及I/O供電,分別接電源和地,之間要接去耦電容時(shí)鐘和鎖相環(huán)及相關(guān)引腳EXTAL、XTAL:接外部振蕩器RESET:接外部復(fù)位,低電平有效XFC:接鎖相環(huán)濾波電容VDDPLL、VSSPLL:鎖相環(huán)供電引腳。使能電壓調(diào)整模塊(VREGEN上拉)時(shí),該引腳直接去耦電容。模式選擇及相關(guān)引腳模式選擇和PORTE復(fù)用TEST:保留腳,接地XIRQ:非屏蔽中斷IRQ:可屏蔽中斷R/W:讀寫信號(hào),指示總線上數(shù)據(jù)方向LSTRB:總線模式下低位字節(jié)(奇地址)選通ECLK:內(nèi)部總線時(shí)鐘輸出,一般在寬擴(kuò)展模式下地址鎖存用BKGD(MODC)、MODB、MODA:模式選擇NOACC/XCLKS:外部振蕩電路方式選擇(當(dāng)使用串行振蕩電路時(shí),該引腳要拉高;當(dāng)使用并行振蕩電路時(shí),該引腳要接地。)串聯(lián)方式(引腳要拉高)并聯(lián)方式(引腳要接地)模式選擇地址數(shù)據(jù)總線PORTA和PORTB作為擴(kuò)展模式下的數(shù)據(jù)和地址復(fù)用總線,尋址達(dá)到64K范圍窄模式下:PORTA為8位數(shù)據(jù)總線寬模式下:PORTA、PORTB為16位數(shù)據(jù)總線PTK為擴(kuò)展存儲(chǔ)器超過64K時(shí)用,不擴(kuò)展時(shí)作為普通I/O口。擴(kuò)展窄模式地址線接法擴(kuò)展寬模式地址線接法ATD模塊及相關(guān)引腳VRH、VRL:參考高壓和參考低壓,一般接5V(隔離)和GND(單點(diǎn)共地)。VDDA、VSSA:A/D模塊電源引腳。AN0-AN7:模擬量輸入引腳,8個(gè)通道。作普通I/O時(shí),只能輸入,不能輸出。定時(shí)器及相關(guān)引腳IOC0-7:輸入捕獲:捕獲外部有效邊沿輸出比較:輸出一定寬度的脈沖作為普通I/O口時(shí),為PORTT,輸入輸出。SPI、PWM及相關(guān)引腳2個(gè)SPI口MISO:主機(jī)輸入/從機(jī)輸出MOSI:主機(jī)輸出/從機(jī)輸入SCK:同步時(shí)鐘(主機(jī)提供,從機(jī)接受)SS:從機(jī)選擇(1-主機(jī),0-從機(jī))PWM0-7:PWM模塊8個(gè)通道作為普通I/O:PORTP異步串行口及相關(guān)引腳2個(gè)SCI:RXD:數(shù)據(jù)接收TXD:數(shù)據(jù)發(fā)送1個(gè)SPI1個(gè)BDLC4(5)個(gè)CAN:RXCAN接收、TXCAN發(fā)送作為普通I/O使用:PORTS,PORTM中斷I/O口作為普通并行I/O口:PORTJ、PORTHPJ口和PH口可以作為中斷口:可選擇上升或者下降沿中斷;PJ6和PJ7與I2C和CAN4模塊復(fù)用引腳。(I2C:SDA數(shù)據(jù)引腳、SCL時(shí)鐘引腳)電源引腳*VDD1、2,VSS1、2:內(nèi)部邏輯供電*VDDPLL,VSSPLL:鎖相環(huán)供電*-使能電壓調(diào)整模塊(VREGEN上拉)。VDDX,VSSX:I/O供電電源引腳VDDR,VSSR:電壓調(diào)整器及I/O供電電源引腳VDDA,VSSA:A/D模塊供電電源引腳§3-2內(nèi)部寄存器累加器A、B:保存操作數(shù)和操作結(jié)果,組成16位累加器D。變址寄存器X、Y:尋址操作、臨時(shí)數(shù)據(jù)、參與運(yùn)算。堆棧指針SP:中斷、子程序調(diào)用,暫存數(shù)據(jù)。堆棧由高地址向低地址生成,棧頂為實(shí)棧頂。程序計(jì)數(shù)器PC:存放下一條要執(zhí)行的指令地址。條件碼寄存器CCR:包括5個(gè)狀態(tài)指示器、兩個(gè)中斷屏蔽位、STOP指令控制位。1-CPU不可執(zhí)行STOP;0-反之1-屏蔽XIRQ中斷;0-反之1-產(chǎn)生了半進(jìn)位1-屏蔽所有可屏蔽中斷1-運(yùn)算結(jié)果有負(fù)數(shù)1-運(yùn)算結(jié)果有01-運(yùn)算結(jié)果溢出1-運(yùn)算產(chǎn)生進(jìn)/借位溢出標(biāo)志和進(jìn)位標(biāo)志是兩個(gè)意義不同的標(biāo)志。進(jìn)位標(biāo)志表示無符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果仍然正確;溢出標(biāo)志表示有符號(hào)數(shù)(以補(bǔ)碼形式表示)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果已經(jīng)不正確。正數(shù)和負(fù)數(shù)相加不會(huì)溢出

兩個(gè)正數(shù)相加,如果結(jié)果為負(fù)數(shù)(符號(hào)位為1),表明發(fā)生溢出;

兩個(gè)負(fù)數(shù)相加,如果結(jié)果為正數(shù)(符號(hào)位為0),表明發(fā)生溢出。處理器對(duì)兩個(gè)操作數(shù)進(jìn)行運(yùn)算時(shí),按照無符號(hào)數(shù)求得結(jié)果,并相應(yīng)設(shè)置進(jìn)位標(biāo)志;同時(shí),根據(jù)是否超出有符號(hào)數(shù)的范圍設(shè)置溢出標(biāo)志。按無符號(hào)數(shù)對(duì)待按帶符號(hào)數(shù)對(duì)待000001004(+)4+

00001011

+

11

+

(+)110000111115(+)15按無符號(hào)數(shù)對(duì)待按帶符號(hào)數(shù)對(duì)待000001117(+)7+

11111011

+

251

+

(-)51C00000010258(+)2

C=1V=0按無符號(hào)數(shù)對(duì)待按帶符號(hào)數(shù)對(duì)待000010019(+)9+

01111100

+

124

+

(+)124

10000101133(+)133

C=0V=1按無符號(hào)數(shù)對(duì)待按帶符號(hào)數(shù)對(duì)待10000111135(-)121+

11110101

+

245

+

(-)11

1C

01111100380(-)132C=1V=1§3-3堆棧堆棧由高地址向低地址生成,SP總是指向最后進(jìn)入堆棧的一個(gè)字節(jié)實(shí)棧頂

——壓棧時(shí)先調(diào)整堆棧指針(SP←(SP-1)),后保存數(shù)據(jù)。

——出棧時(shí)先彈出數(shù)據(jù),后修改棧頂(SP←(SP+1))子程序調(diào)用時(shí),程序返回地址自動(dòng)壓棧、中斷響應(yīng)后,除斷點(diǎn)地址自動(dòng)壓棧外,CPU寄存器Y、X、A、B、CCR也依次自動(dòng)壓棧;執(zhí)行中斷返回指令時(shí),斷點(diǎn)地址和CPU寄存器按照和入棧時(shí)相反的順序依次自動(dòng)出棧。棧區(qū)必須在程序開始部分在內(nèi)部RAM區(qū)指定,即SP的初始化。中斷進(jìn)棧舉例:執(zhí)行到$80F0處的程序時(shí),CPU響應(yīng)中斷,且此時(shí)SP的內(nèi)容(棧頂)為$3F00,則SPSP自動(dòng)壓棧的內(nèi)容和順序中斷返回時(shí),自動(dòng)出棧的內(nèi)容和順序§3-4內(nèi)部存儲(chǔ)器—基本內(nèi)存空間MC9S12系列單片機(jī)片內(nèi)有RAM、EEPROM和Flash,不同型號(hào)單片機(jī)有不同的存儲(chǔ)器配置。程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器統(tǒng)一編址,其地址空間可以通過設(shè)置相關(guān)寄存器重新定義。以MC9S12DT128為例:8KBRAM;2KBEEPROM;128KBFlash。存儲(chǔ)器容量寄存器1=寄存器空間為2KB0=寄存器空間為1KB存儲(chǔ)器容量寄存器0-MEMSIZ0只讀(默認(rèn)值由芯片的型號(hào)決定)詳見下頁表EEPROM空間分配00=0KB01=2KB10=4KB11=8KB例如:DG128復(fù)位時(shí)MEMSIZ0的值為$13,即表示有1KB的寄存器、2KB的EEPROM、8KB的RAM空間。存儲(chǔ)器容量寄存器RAM_SW2-RAM_SW0:分配系統(tǒng)RAM存儲(chǔ)空間寄存器區(qū)映射寄存器-INITRG指定內(nèi)部寄存器區(qū)基址的高5位。則最小基址是$0000,最大基址為$7FFF(D7=0決定)。

使用時(shí),一般定位在$0000開始的1K中。 因?yàn)榍?56個(gè)字節(jié)可以用直接地址(8bit地址)訪問,如果定位在其它地方,應(yīng)用擴(kuò)展地址(16bit地址碼)訪問。RAM映射寄存器-INITRM0=RAM和內(nèi)部地址空間最低端對(duì)齊1=RAM和內(nèi)部地址空間最高端對(duì)齊9S12DG128有8KRAM空間,默認(rèn)$0000~$1FFF,若定位在$2000~$3FFF,則INITRM值可為$39。例:EEPROM映射寄存器-INITEE0=禁用EEPROM1=使能EEPROM指定EEPROM基址的高5位。例:DG128有2K的EEPROM。若給INITEE賦值為$09,則EEPROM區(qū)域就是$0800~$0FFF。內(nèi)部寄存器EEPROMRAM16KB固定Flash$3E16KB分頁Flash$3016KB固定Flash$3F中斷向量區(qū)$0000$0400$1000$4000$8000$C000$FF00$FFFF$30$31$32$33$34$35$36$37$38$39$3A$3B$3C$3D$3E$3FBlock3Block2Block1Block0

由PPAGE寄存器(地址$30)決定某一頁在$8000~$BFFF。DP256片內(nèi)有256KFlash,分16頁,每頁16K,一般定位:$4000~$7FFF16K($3E)$C000~$FFFF16K($3F)內(nèi)存以頁面方式擴(kuò)展存儲(chǔ)器優(yōu)先級(jí)上述三個(gè)寄存器INITRG、INITRM、INITEE負(fù)責(zé)將內(nèi)部資源重新映射若地址分配出現(xiàn)重疊,按優(yōu)先級(jí)自動(dòng)屏蔽級(jí)別較低的資源存儲(chǔ)器分配優(yōu)先級(jí):BDMROM寄存器區(qū)RAMEEPROMFlash/ROM外部擴(kuò)展存儲(chǔ)器高低說明:?jiǎn)纹瑱C(jī)內(nèi)部有不同的I/O接口模塊,對(duì)應(yīng)的寄存器有幾百個(gè),這些存儲(chǔ)器占用1KB的地址空間,這一I/O寄存器空間可以由用戶任意定義到前32KB空間的任何一個(gè)2KB空間的前半部分。但是從$0000~$00FF這256個(gè)字節(jié)可以使用直接尋址方式。EEPROM默認(rèn)情況下也是從$0000開始的,因?yàn)閮?yōu)先級(jí)沒有寄存器區(qū)高,所以復(fù)位以后有1KB的區(qū)域會(huì)被寄存器區(qū)覆蓋,如果要使用全部的EEPROM,可以將其重新定義到其它空間,或?qū)/O寄存器移到其它空間。說明:3.不同型號(hào)的單片機(jī)有不同容量的片內(nèi)RAM,有2KB、4KB、8KB、12KB等。例如MC9S12DP256有12KB的RAM,可配置INITRM寄存器使RAM占據(jù)$1000~$3FFF的全部空間。如果單片機(jī)有8KB的RAM,可以定義到$2000~$3FFF。4.$4000~$FFFF的48KB為Flash存儲(chǔ)器空間,分成3塊,每塊16KB。最后16KB空間的最后256B($FF00~$FFFF)是中斷向量表空間。

§3-5復(fù)位及時(shí)鐘—復(fù)位上電復(fù)位單片機(jī)自動(dòng)檢測(cè)VDD端的正跳變,啟動(dòng)自動(dòng)工作。外部復(fù)位通過RESET引腳加一低電壓,拉低超過一定時(shí)間后可實(shí)現(xiàn)復(fù)位??撮T狗復(fù)位幫助系統(tǒng)在軟件跑飛后自動(dòng)復(fù)位。時(shí)鐘監(jiān)視器復(fù)位利用內(nèi)部的RC電路來保證時(shí)鐘頻率滿足要求。振蕩器和時(shí)鐘電路EXTAL是外部時(shí)鐘輸入或石英振蕩放大器的輸入XTAL是石英振蕩放大器的輸出振蕩電路注:DG128可用串聯(lián)振蕩電路和并聯(lián)振蕩電路兩種連接方式。

9S12X系列單片機(jī)只可用并聯(lián)振蕩電路。使用串行振蕩電路時(shí),PE7引腳要拉高,而使用并聯(lián)振蕩電路或外部有源振蕩器時(shí),該引腳要接地。PE7懸空則為串聯(lián)方式。時(shí)鐘初始化寄存器-共5個(gè)(1)鎖相環(huán)控制寄存器(PLLCTL)鎖相環(huán)電路允許位1=允許0=禁止時(shí)鐘監(jiān)控允許位1=允許0=禁止注:其余各位的描述見教材49頁。(2)時(shí)鐘合成寄存器(SYNR)-低6位有效,有效值0~63。(3)時(shí)鐘分頻寄存器(REFDV)-低4位有效,有效值0~15。由鎖相環(huán)來產(chǎn)生時(shí)鐘頻率的公式:例如:選用16MHz的外部晶振,若將SYNR設(shè)為

2,REFDV設(shè)為1,通過公式計(jì)算可得

PLLCLK=48MHz。鎖相環(huán)頻率鎖定標(biāo)志1=表示時(shí)鐘頻率已穩(wěn)定,且鎖定了鎖相環(huán)頻率。(4)時(shí)鐘產(chǎn)生模塊的標(biāo)志寄存器CRGFLG注:其余各位的描述見教材49頁和50頁。(5)時(shí)鐘選擇寄存器(CLKSEL)選定鎖相環(huán)1表示BusClock=PLLCLK/20表示BusClock=OSCCLK/2實(shí)時(shí)中斷標(biāo)志位1=RTI發(fā)生了超時(shí)中斷,向該位寫1清除該中斷標(biāo)志位。PLL例子CLKSEL=0x00;//禁止PLLPLLCTL=0xe1;//PLL電路允許

SYNR=2;REFDV=1;//設(shè)置倍頻參數(shù)

PLLCTL=0x60;//時(shí)鐘監(jiān)控禁止

while(0==(CRGFLG&0x08));//等待穩(wěn)定

CLKSEL=0x80;//選擇PLL作為時(shí)鐘//若晶振為16M,則PLLCLK=2*16*3/2=48MHz,則總線頻率是24MHz實(shí)時(shí)中斷使能位1=在RTIF置位時(shí)申請(qǐng)中斷0=不申請(qǐng)來自于RTI模塊的中斷實(shí)時(shí)中斷RTI相關(guān)寄存器(1)中斷使能寄存器(CRGINT)自給時(shí)鐘模式使能位1=在SCMIF置位時(shí)申請(qǐng)中斷0=不申請(qǐng)SCMLOC中斷鎖定中斷使能位1=在LOCKIF置位時(shí)申請(qǐng)中斷0=不申請(qǐng)LOCK中斷注:RTIF、LOCKIF、SCMIF見CRGFLG寄存器。RTR[6:4]——實(shí)時(shí)中斷預(yù)分頻選擇位RTR[3:0]——實(shí)時(shí)中斷分頻系數(shù)選擇位時(shí)鐘源是外部振蕩器RTI超時(shí)周期設(shè)置參照表:(具體見S12CRGV4.pdf的第23頁)(2)RTI控制寄存器(RTICTL)RTI程序舉例RTICTL=0x7e;//4M/15*2^16近似等于4HzCRGINT=0x80;//中斷使能得到大約每秒4次的中斷COP(看門狗)相關(guān)寄存器COP窗口模式位1=看門狗復(fù)位的寫操作必須在看門狗溢出周期的最后1/4時(shí)間內(nèi)0=看門狗復(fù)位的寫操作可以在整個(gè)溢出周期內(nèi)發(fā)生(1)COP控制寄存器(COPCTL)BDM模式下,1=COP和RTI停止運(yùn)行0=COP和RTI繼續(xù)運(yùn)行看門狗溢出周期選擇位(2)COP復(fù)位寄存器(ARMCTL)——向該寄存器先寫$55,然后寫

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論