版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
dsPIC30F---結(jié)構(gòu)1dsPIC30F結(jié)構(gòu)dsPIC30F器件的每個都可劃分為以下三個局部:1.CPU內(nèi)核2.系統(tǒng)集成3.外設(shè)CPU內(nèi)核CPU內(nèi)核是器件運(yùn)行所必需的根本局部。包括:1.CPU2.數(shù)據(jù)存儲器3.程序存儲器4.DSP引擎5.中斷2系統(tǒng)集成降低系統(tǒng)本錢提高系統(tǒng)可靠性提高設(shè)計(jì)靈活性dsPIC30F系統(tǒng)集成功能主要包括:1.振蕩器2.復(fù)位4.看門狗定時器和低功耗模式5.閃存和EEPROM編程6.器件配置3.低電壓檢測3外設(shè)dsPIC30F具備許多允許器件與外界交換信息的外設(shè)。包括:1.I/O端口2.定時器3.輸入捕捉模塊4.輸出比較模塊5.正交編碼器接口〔QEI〕6.10位AD轉(zhuǎn)換器7.12位AD轉(zhuǎn)換器8.UART模塊9.SPITM模塊10.I2CTM模塊11.數(shù)據(jù)轉(zhuǎn)換器接口〔DCI〕模塊12.CAN模塊1.3.4存儲器技術(shù)45
一、CPU內(nèi)核
1、概述CPU內(nèi)核CPU內(nèi)核采用16位〔數(shù)據(jù)〕改進(jìn)的哈佛架構(gòu),并帶有增強(qiáng)型指令集包含對DSP的有力支持。CPU擁有24位指令字,指令字帶有長度可變的操作碼字段。程序計(jì)數(shù)器〔PC〕為24位寬,可以尋址高達(dá)4M×24位的用戶程序存儲器空間。單周期指令預(yù)取機(jī)制用來幫助維持吞吐量并提供可預(yù)測的執(zhí)行。除了改變程序流的指令、雙字移動〔MOV.D〕指令和表指令以外,所有指令都在單個周期內(nèi)執(zhí)行。使用DO和REPEAT指令支持無開銷的程序循環(huán)結(jié)構(gòu),這兩個指令在任何時候都可被中斷。67
2、編程模型由16個16位工作存放器〔W0至W15〕、2個40位累加器〔ACCA和ACCB〕、狀態(tài)存放器〔SR〕、數(shù)據(jù)表頁存放器〔TBLPAG〕、程序空間可視性頁存放器〔PSVPAG〕、DO和REPEAT存放器DOSTART、DOEND、DCOUNT和RCOUNT〕以及程序計(jì)數(shù)器〔PC〕組成。工作存放器可作為數(shù)據(jù)、地址或偏移量存放器。所有存放器都是存儲器映射的。W0用作進(jìn)行文件存放器尋址的W存放器。影子存放器影子存放器用作臨時保持存放器,事件發(fā)生時可在影子存放器和主存放器之間傳遞內(nèi)容。所有影子存放器均不能直接訪問。89PUSH.S和POP.S用于執(zhí)行函數(shù)調(diào)用或中斷效勞程序,W0、W1、W2、W3和SR〔僅限D(zhuǎn)C、N、OV、Z和C位〕是與之對應(yīng)的影子存放器,可進(jìn)行內(nèi)容傳遞。DO指令循環(huán)開始時,DOSTART、DOEND和DCOUNT存放器的內(nèi)容壓入影子存放器,在循環(huán)結(jié)束時其內(nèi)容從各自的影子存放器中彈出。對工作存放器進(jìn)行字節(jié)操作時,只影響目標(biāo)存放器的低字節(jié)〔LeastSignificantByte,LSB〕。10狀態(tài)存放器內(nèi)核有一個16位狀態(tài)存放器〔SR〕,其最低有效字節(jié)稱為SR低字節(jié)〔SRLowByte,SRL〕,其最高有效字節(jié)稱為SR高字節(jié)〔SRHighByte,SRH〕。SRL包含所有的DSPALU運(yùn)算狀態(tài)標(biāo)志位〔包括Z位〕,以及CPU中斷優(yōu)先級狀態(tài)位IPL<2:0>和REPEAT有效狀態(tài)位RA。在異常處理期間,SRL與PC的MSB連接起來形成一個完整的字值,然后將該字值壓入堆棧。SR存放器的高字節(jié)包含DSP加法器/減法器狀態(tài)位、DO循環(huán)有效位〔DA〕和半進(jìn)位〔DC〕狀態(tài)位。程序計(jì)數(shù)器程序計(jì)數(shù)器為23位寬,bit0始終清零;因此,PC能夠?qū)ぶ纷疃?M指令字。113、軟件堆棧指針/幀指針軟件堆棧指針W15是專用的軟件堆棧指針〔StackPointer,SP〕,異常處理、子程序調(diào)用與返回時會自動修改W15。W15可被任何指令所引用,引用方式與引用所有其他W存放器相同。為了防止出現(xiàn)不對齊的堆棧訪問,W15<0>始終清零。復(fù)位時W15初始化為0x0800。在初始化過程中,用戶可以重新設(shè)定SP,使它指向數(shù)據(jù)空間內(nèi)的任何存儲單元。堆棧指針總是指向第一個可用的空字并從低地址到高地址填充軟件堆棧。堆棧出?!沧x〕時,堆棧指針先減;堆棧進(jìn)?!矊憽硶r,堆棧指針后加,軟件堆棧幀指針W14軟件堆棧幀指針,因?yàn)橥ㄟ^使用LNK〔link,連接〕和ULNKunlink,不連接〕指令可以把它用作堆棧幀指針。當(dāng)不用作幀指針時,W14可被指令當(dāng)作普通的工作存放器使用。12134、CPU存放器描述SR:CPU狀態(tài)存放器dsPIC30F的CPU有一個16位狀態(tài)存放器〔SR〕,它的低字節(jié)稱為低狀態(tài)存放器SRL,的高字節(jié)稱為SRH。SRL包含了所有的MCUALU操作狀態(tài)標(biāo)志,加上CPU中斷優(yōu)先級狀態(tài)位IPL<2:0>和REPEAT循環(huán)有效狀態(tài)位RA〔SR<4>〕。SRH包含DSP加法器/減法器狀態(tài)位、DO循環(huán)有效位DA〔SR<9>〕和輔助進(jìn)位標(biāo)志位DC〔SR<8>〕。141516CORCON:內(nèi)核控制存放器CORCON存放器包含控制DSP乘法器和DO循環(huán)硬件操作的位。還包含IPL3狀態(tài)位,它與IPL<2:0>〔SR<7:5>〕相連形成CPU中斷優(yōu)先級。1718TBLPAG:表頁存放器TBLPAG存放器用于在讀表和寫表操作過程中保存程序存儲器地址的高8位。表指令用于傳輸程序存儲空間和數(shù)據(jù)存儲空間之間的數(shù)據(jù)。PSVPAG:程序空間可視性頁存放器程序空間可視性允許用戶將程序存儲空間的32KB區(qū)域映射到數(shù)據(jù)地址空間的高32KB。此特性允許通過在數(shù)據(jù)存儲器上操作的dsPIC30F指令對常數(shù)數(shù)據(jù)進(jìn)行透明訪問。PSVPAG存放器選擇映射到數(shù)據(jù)地址空間的程序存儲空間的32KB區(qū)域。MODCON:??刂拼娣牌鱉ODCON存放器用于使能并配置模尋址〔循環(huán)緩沖〕。19XMODSRT,XMODEND:X模起始和結(jié)束地址存放器XMODSRT和XMODEND存放器保持X數(shù)據(jù)存儲地址空間中執(zhí)行?!惭h(huán)〕緩沖的起始和結(jié)束地址。YMODSRT,YMODEND:Y模起始和結(jié)束地址存放器YMODSRT和YMODEND存放器保持Y數(shù)據(jù)存儲地址空間中執(zhí)行?!惭h(huán)〕緩沖的起始和結(jié)束地址。XBREV:X模位反轉(zhuǎn)存放器XBREV存放器用于設(shè)置位反轉(zhuǎn)尋址的緩沖區(qū)大小。DISICNT:禁止中斷計(jì)數(shù)存放器DISI指令使用DISICNT存放器將優(yōu)先級為1-6的中斷在指定的幾個周期內(nèi)禁止。205、算術(shù)邏輯單元〔ALU〕dsPIC30FALU為16位寬,能進(jìn)行加、減、單位移位和邏輯運(yùn)算。除非特別指明,算術(shù)運(yùn)算一般是以2進(jìn)制補(bǔ)碼形式進(jìn)行的。根據(jù)不同的操作,ALU可能會影響SR存放器中的進(jìn)位標(biāo)志位〔C〕、全零標(biāo)志位〔Z〕、負(fù)標(biāo)志位〔N〕、溢出標(biāo)志位〔OV〕和輔助進(jìn)位標(biāo)志位〔DC〕的值。在減法操作中,C和DC位分別作為借位和輔助借位位。根據(jù)所使用的指令模式,ALU可以執(zhí)行8位或16位操作。根據(jù)指令的尋址模式,ALU操作的數(shù)據(jù)可以來自W存放器陣列或數(shù)據(jù)存儲器,輸出數(shù)據(jù)可以被寫入W存放器陣列或數(shù)據(jù)存儲單元。dsPIC30F有兩條指令有助于混合8位和16位ALU操作。符號擴(kuò)展〔SE〕指令獲取W存放器或數(shù)據(jù)存儲器的一個字節(jié)值并創(chuàng)立存儲在W存放器中的符號擴(kuò)展字值。零擴(kuò)展〔ZE〕指令清零W存放器或數(shù)據(jù)存儲器中字值的8MSb并將結(jié)果放在目標(biāo)W存放器中。216、除法支持16/16位有符號小數(shù)除法運(yùn)算,以及32/16位、16/16位有符號和無符號整數(shù)除法運(yùn)算,除法形式均為單指令迭代除法。支持以下指令和數(shù)據(jù)長度: 1.DIVF——16/16有符號小數(shù)除法 2.DIV.sd——32/16有符號除法 3.DIV.ud——32/16無符號除法 4.DIV.s——16/16有符號除法 5.DIV.u——16/16無符號除法除法指令必須在一個REPEAT循環(huán)內(nèi)執(zhí)行。任何其他執(zhí)行方式〔例如,一系列不連續(xù)的除法指令〕,將不會正常運(yùn)行,因?yàn)橹噶盍魅Q于RCOUNT。除法指令不會自動設(shè)置RCOUNT值,于是RCOUNT必須顯式地、正確地在REPEAT指令中指定,所以,完整的除法操作需要19個周期。227、DSP引擎DSP引擎由一個高速17位x17位乘法器、一個桶形移位存放器和一個40位加法器/減法器〔兩個目標(biāo)累加器、舍入邏輯和飽和邏輯〕組成。dsPIC30F器件采用單周期指令流,可以執(zhí)行DSP指令或MCU指令。許多硬件資源可以被DSP和MCU指令共用。DSP引擎還能夠執(zhí)行固有的不需要其他數(shù)據(jù)的累加器操作。這些指令是ADD、SUB和NEG。DSP引擎的功能如下: 1.小數(shù)或整數(shù)DSP乘法〔IF〕。 2.有符號或無符號DSP乘法〔US〕。 3.常規(guī)或收斂舍入〔RND〕。 4.ACCA自動飽和使能/禁止〔SATA〕。 5.ACCB自動飽和使能/禁止〔SATB〕。 6.對于寫數(shù)據(jù)存儲器,自動飽和使能/禁止〔SATDW〕。 7.累加器飽和模式選擇〔ACCSAT〕。2324乘法器17x17位乘法器可以進(jìn)行有符號或無符號的運(yùn)算,其輸出經(jīng)過定標(biāo)器進(jìn)行換算后可支持1.31小數(shù)〔Q31〕或32位整數(shù)結(jié)果。無符號操作數(shù)經(jīng)過零擴(kuò)展后,送入乘法器輸入值的第17位。有符號操作數(shù)經(jīng)過符號擴(kuò)展,送入乘法器輸入值的第17位。17x17位乘法器/定標(biāo)器的輸出是33位值,它將被符號擴(kuò)展為40位。整型數(shù)據(jù)的固有表示形式為有符號的二進(jìn)制補(bǔ)碼值,其中MSb定義為符號位。當(dāng)乘法器配置為小數(shù)乘法時,數(shù)據(jù)表示為二進(jìn)制補(bǔ)碼小數(shù),其中MSb定義為符號位,小數(shù)點(diǎn)暗含在符號位之后〔QX格式〕。暗含小數(shù)點(diǎn)的N位二進(jìn)制補(bǔ)碼小數(shù)的范圍為-1.0到〔1-21-N〕。對于16位小數(shù),Q15數(shù)據(jù)范圍為-1.0〔0x8000〕到0.999969482〔0x7FFF〕,包括0在內(nèi),其精度為3.01518x10-5。在小數(shù)模式下,16x16乘法運(yùn)算將產(chǎn)生1.31乘積,其精度為4.65661x10-10。MUL指令可以使用字節(jié)或字長度的操作數(shù)。字節(jié)操作數(shù)將產(chǎn)生16位結(jié)果,而字操作數(shù)將產(chǎn)生32位結(jié)果,結(jié)果存放在W存放器陣列的指定存放器中25數(shù)據(jù)累加器和加法器/減法器數(shù)據(jù)累加器包含一個40位加法器/減法器,它帶有自動符號擴(kuò)展邏輯。它可以選擇兩個累加器〔A或B〕之一作為其累加前的源累加器和累加后的目標(biāo)累加器。對于ADD和LAC指令,可選擇通過桶形移位器在累加之前將要累加或裝入的數(shù)據(jù)進(jìn)行換算。加法器/減法器是一個40位加法器,一側(cè)輸入可以選擇為零,而另一側(cè)輸入可以是原數(shù)據(jù)或求補(bǔ)后的數(shù)據(jù)。對于加法,進(jìn)位/借位輸入為高電平有效,另一側(cè)輸入是原數(shù)據(jù)〔沒有求補(bǔ)的〕;對于減法,進(jìn)位/借位輸入為低電平有效,另一側(cè)輸入是求補(bǔ)后的數(shù)據(jù)。加法器/減法器產(chǎn)生溢出狀態(tài)位SA/SB和OA/OB,這些狀態(tài)位被鎖存在狀態(tài)存放器中并在其中得到反映。從bit39溢出:這是災(zāi)難性溢出,會破壞累加器的符號位。溢出到警戒位〔bit32到bit39〕:這是可恢復(fù)的溢出。每當(dāng)警戒位彼此不完全一致時,就將把這個狀態(tài)位置1。如果選取飽和模塊將控制累加器的數(shù)據(jù)飽和。飽和模塊使用加法器的結(jié)果、上述的溢出狀態(tài)位、SATA/B〔CORCON<7:6>〕和ACCSAT〔CORCON<4>〕模式控制位,來確定何時飽和、到達(dá)何值為飽和。26累加器“回寫〞MAC類指令〔MPY、MPY.N、ED和EDAC除外〕可以選擇將累加器高位字〔bit16到bit31〕的舍入形式寫入數(shù)據(jù)存儲空間,前提是當(dāng)前指令不對該累加器進(jìn)行操作。通過X總線尋址組合的X和Y地址空間,執(zhí)行回寫操作。支持以下尋址模式:1.W13,存放器直接尋址:非操作目標(biāo)的累加器的舍入內(nèi)容以1.15小數(shù)形式寫入W13。2.[W13]+=2,執(zhí)行后遞增的存放器間接尋址:非操作目標(biāo)的累加器的舍入內(nèi)容以1.15小數(shù)形式寫入W13指向的地址。然后W13遞增2〔對于字寫入〕。27舍入邏輯舍入邏輯是一個組合模塊,在累加器寫〔存儲〕過程中執(zhí)行常規(guī)的〔有偏〕或收斂的〔無偏〕舍入功能。舍入模式由CORCON存放器中RND位的狀態(tài)決定。它會產(chǎn)生一個16位的1.15數(shù)據(jù)值,該值被送到數(shù)據(jù)空間寫飽和邏輯。如果指令不指明舍入,就會存儲一個截取的1.15數(shù)據(jù)值,簡單地丟棄低位字。常規(guī)舍入取累加器的bit15,對它進(jìn)行零擴(kuò)展并將擴(kuò)展后的值加到ACCxH字〔累加器的bit16到bit31〕。如果ACCxL字〔累加器的bit0到bit15〕在0x8000和0xFFFF之間〔包括0x8000〕,那么ACCxH遞增1。如果ACCxL在0x0000和0x7FFF之間,那么ACCxH不變。28數(shù)據(jù)空間寫飽和除了加法器/減法器飽和,對數(shù)據(jù)空間進(jìn)行寫操作也會飽和,但不會影響源累加器的內(nèi)容。數(shù)據(jù)空間寫飽和邏輯塊接受來自舍入邏輯塊的一個16位的1.15小數(shù)值作為輸入,還接受來自源〔累加器〕和16位舍入加法器的溢出狀態(tài)。這些經(jīng)過組合用來選擇適當(dāng)?shù)?.15小數(shù)值作為輸出,寫入數(shù)據(jù)存儲空間中。如果CORCON存放器中的SATDW位置1,將檢測〔經(jīng)過舍入或截取后的〕數(shù)據(jù)是否溢出,并進(jìn)行相應(yīng)的調(diào)整。如果輸入數(shù)據(jù)大于0x007FFF,那么寫入存儲器中的數(shù)據(jù)被強(qiáng)制為最大的正1.15值,0x7FFF。如果輸入數(shù)據(jù)小于0xFF8000,那么寫入存儲器中的數(shù)據(jù)被強(qiáng)制為最大的負(fù)1.15值,0x8000。源累加器的MSb〔bit39〕用來決定被檢測的操作數(shù)的符號。如果CORCON存放器中的SATDW位沒有置1,那么輸入數(shù)據(jù)都將通過,在任何情況下都不會被修改。29桶形移位存放器桶形移位存放器在單個周期內(nèi)可將數(shù)據(jù)算術(shù)或邏輯右移或左移最多16位。源操作數(shù)可以是兩個DSP累加器中的任何一個或X總線〔支持存放器或存儲器中數(shù)據(jù)的多位移位〕。移位存放器需要一個有符號二進(jìn)制值,用來確定移位操作的幅度〔位數(shù)〕和方向。正值將操作數(shù)右移。負(fù)值那么將操作數(shù)左移。值為0那么不改變操作數(shù)。桶形移位存放器為40位寬,它為DSP移位操作提供了40位的結(jié)果,而為MCU移位操作提供16位的結(jié)果。來自X總線的數(shù)據(jù)在桶形移位存放器中的存放方式是:右移那么數(shù)據(jù)存放在bit16到bit31,左移那么存放在bit0到bit15。308、指令流類型3132333435指令集指令集有兩類指令:MCU類指令和DSP類指令。這兩類指令無縫地集成到架構(gòu)中并從同一個執(zhí)行單元執(zhí)行。指令集包括很多尋址模式,指令的設(shè)置可使C編譯器的效率到達(dá)最優(yōu)。單級指令預(yù)取機(jī)制內(nèi)核不支持多級指令流水線。使用了單級指令預(yù)取機(jī)制,在指令執(zhí)行的前一個周期取指令并局部譯碼指令。除了一些特例外,大局部指令都在單個周期內(nèi)執(zhí)行。36數(shù)據(jù)空間數(shù)據(jù)空間為64KB〔32K字〕,被分成兩塊,稱為X和Y數(shù)據(jù)存儲區(qū)。每個存儲塊有各自獨(dú)立的地址發(fā)生單元AGU。大多數(shù)指令只通過X存儲空間AGU進(jìn)行操作,這樣對外界而言數(shù)據(jù)空間就是單獨(dú)而統(tǒng)一的。乘-累加〔Multiply-Accumulate,MAC〕類雙源操作數(shù)DSP指令,通過X和Y的AGU進(jìn)行操作,這將數(shù)據(jù)地址空間分成兩個局部。X和Y數(shù)據(jù)空間邊界視具體器件而定,用戶不能改變它們。每個數(shù)據(jù)字由2個字節(jié)組成,大多數(shù)指令按字或字節(jié)對數(shù)據(jù)進(jìn)行尋。37存儲在程序存儲器中的數(shù)據(jù)有兩種訪問方法數(shù)據(jù)存儲空間的高32KB可以映射到程序空間的下半局部〔用戶空間〕,映射的邊界可以是任何16K程序字邊界,邊界由8位
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生產(chǎn)力透視與提升
- 2024消防工程改造與升級合同
- 夢想砌成家園
- 金融業(yè)務(wù)全景解析
- 2024深圳小微企業(yè)社保補(bǔ)貼申報(bào)流程優(yōu)化與合同條款3篇
- 基礎(chǔ)設(shè)施建設(shè)戰(zhàn)略合作協(xié)議書(2篇)
- 大型展會推廣合同(2篇)
- 2024年高鐵站房建設(shè)土木工程承包合同范本3篇
- 2024房屋租賃合同
- 4 不做“小馬虎”第二課時(說課稿 )2023-2024學(xué)年統(tǒng)編版道德與法治一年級下冊 第一單元 我的好習(xí)慣
- 貨物供應(yīng)、運(yùn)輸、包裝說明方案
- (完整版)英語高頻詞匯800詞
- 嚴(yán)重精神障礙患者發(fā)病報(bào)告卡
- 《基礎(chǔ)馬來語》課程標(biāo)準(zhǔn)(高職)
- 2021年國標(biāo)熱鍍鋅鋼管規(guī)格、尺寸理論重量表
- 烏魯木齊基準(zhǔn)地價(jià)修正體系
- DB32-T 3177-2017草莓-蕹菜水旱輪作設(shè)施栽培技術(shù)規(guī)程 -(高清現(xiàn)行)
- GB∕T 3216-2016 回轉(zhuǎn)動力泵 水力性能驗(yàn)收試驗(yàn) 1級、2級和3級
- 七年級數(shù)學(xué)資料培優(yōu)匯總精華
- IEC61850研討交流之四-服務(wù)影射
- 材料力學(xué)壓桿穩(wěn)定
評論
0/150
提交評論