您好,欢迎访问三七文档
©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011暑期菁英班Slide12011 Summer EliteMicrochip16-bit系列架構介紹©2005MicrochipTechnologyIncorporated.AllRightsReserved.Slide2Microchip16-bitMCU架構介紹第一單元©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide3MCU的組成要件CPUw.ALU/WorkingReg.InstructionFetch&DecodeDataMem.DataBusDataMemoryProgramMemoryProgramAddr.BusProgramCounterProgramData.BusDataMem.Addr.BusProgramMemory儲存著一連串的指令,讓CPU執行一連串的特定動作.來完成所需的工作MemorymappedI/OCPU執行每一指令皆會有相對應的結果(NOP除外),執行結果可能存於內部的工作暫存器,資料記憶體(DataMemory),輸出至I/O或周邊Microchip16-bitMCU的I/O與周邊採用的是Memorymapped的方式占有DataMemory的某一特定區間©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide4何謂MemoryMappedIOzMCU與外界溝通時透過的是一連串的輸出/輸入動作¾輸出與輸入的動作可能是一個腳位的High/Low變化(例如使用一個輸出點亮LED,使用輸入腳位讀取按鍵)¾也可能是串列的格式(SPI、I2C、UART)¾也可以是信號的強弱(AD、DA信號)¾也可以是週期的大小(用PWM表示強弱)zMCU將所需的I/O周邊內建,並且將它們對映至某一塊Memory地址以方便存取。這些I/O被稱為MemoryMappedIOz通常這些被對映到MemoryMappedIO的特定位址被稱為SpecialFunctionRegister©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide5Microchip16-bit系列zMicrochip16-bit系列包括以下Family¾dsPIC30F(30MIPS)z最早的16-bit系列並具有DSP的運算能力¾PIC24FJ(16MIPS)z不具DSP運算能力但價格/性能比非常優異的16-bitMCU¾PIC24HJ(40MIPS)z不具DSP運算能力但執行效能達40MIPS的16-bitMCU並加入對周邊的DMA支援¾dsPIC33FJ(40MIPS)z不但俱備DSP運算能力,執行效能達40MIPs之外更加入對周邊的DMA支援©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide6Microchip16-bitMCU使用的是“HarvardArchitecture”zProgram&DataMemory有各自獨立的Busz16-bitmicrocontroller¾CPU單次可操作的資料大小–與DataMemoryBus的寬度一致z24-bitInstructionwidth–指令通常包含OPCode&資料或位址¾指令的編碼寬度採用較寬的24-bits,增加可定資料範圍及彈性zDataTransferMechanismbetweenPMandDM(PSV)¾讓ProgramMemory的資料可對映到DataMemory並被CPU讀取¾增加對ProgramMemory的存取效率(初學者可先不使用此功能)ProgramMemory(Upto12MB)162416–bitwindow16-bitRISCCPUDataMemory(Upto64KB)©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide7DSPEngineDSPEngineMicrochip16-bitMCU內部方塊圖WArray16x1623-bitPCControlMCUALUDataMemory(RAM)32Kx16bitDSP:dualaccessMCU:singleaccessXAGUYAGUInstructionPre-fetch&DecodeTABLEAccessCntrlAddressPathMCU/DSPDataPathProgramData/ControlPathDSPDataPathProgramMemory4Mx24bitLinearMCU&DSCMCU&DSCDSCONLY©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide816-bitArchitectureProgrammersmodelzMCU除了有算術邏輯單元(ALU)來完成指令中的指定運算外,還必須有其它的輔助暫存器¾Intel的8051具有A、B及R0..R7¾PIC16F使用WREG&FSR¾PIC18F使用WERG,FSR0..FSR2¾Microchip16-bitMCU為支援較複雜的功能,使用的是WREG0..WREG15等16個工作暫存器,用於:z資料的暫存z資料搬移z運算元的存放z間接定址時的指標z堆疊操作的指標¾Microchip16-bit-MCU還有“乘法器-Multiplier”、除法器及”多位元移位器–BarrelShifter”©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide916-bitdevicesPCLPCHProgramProgramMemoryMemoryW15W14W13W116-bitArchitectureProgrammersmodelW0FarMemoryALUNearMemoryFramePointerFramePointerStackPointerStackPointerdsPIConlyCORCONSTATUSREGRCOUNTSPLIMAccAAccBDCOUNTDOENDDOSTARTPSVPAGTBLPAGSFR©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide10資料處理的範例#1(c=a+b;)a(copy)….CPURegistersabctempi….DataMemory(Variables)ALUaddw0,w1,w2ALUcanoperatedirectlyonvariablesstoredinCPURegistersw1w2w3w5w15w0b(copy)c(copy)©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide11資料處理的範例#2(c=a+b;)a(copy)….CPURegistersabctempi….DataMemory(Variables)ALUaddw0,[w1],[w2]ALUcanoperatedirectlyorindirectlyonvariablesstoredinDataMemoryw1w2w3w5w15w0addr(b)addr(c)DirectIndirect©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide12程式記憶體ProgramMemory(PS)程式記憶體程式記憶體ProgramMemoryProgramMemory(PS)(PS)©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide13ProgramMemoryOrganizationGOTOMainMain:0x8000000xFFFFFE0x000000UserProgramFlashMemory未使用區域或保留給ConfigurationMemory應用程式執行的起始位址0x100or0x200AlternateInterruptVectorTableDataEEPROM主中斷向量表InterruptsReserved重置後,PC歸零0x7FFFFEMidwaypointofProgramMemoryUpperHalfofPM24-bit©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide14程式記憶體讀取的方式z三種方式可以讀取程式記憶體¾一般是透過23-bit程式計數器z(PC,24-bitwideAccess)¾透過Table讀寫指令(TBLRDandTBLWT)z可以對Byte或Word操作¾採用程式記憶體映對到32KBRAM的操作模式(ProgramSpaceVisibility,PSV)z可以對Byte或Word操作©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide15使用程式計數器(PC)z23-bitProgramCounter(PC22:0)¾在指令提取模式下,PC0將強制設為‘0’(偶數位址)¾PC每次會自動加2以提取下一個指令zPC加二,所提取的是32-bit的資料但只有24-bit有效。ProgramCounter002224+2程式指令程式空間0x0000000x7FFFFF24-bit指令©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide16程式記憶體z16-bitMCU的PC為23bits¾2^23之定址範圍為8MWords¾因為一個InstructionWord佔用2個words,所以總共可定址到4MInstructionwords的區間zCPU的中斷向量由0x0004開始–中斷將於後面的章節詳述¾中斷向量要放的不是指令,而是各種不同中斷來源產生中斷時,服務該中斷的服務程式之進入點¾中斷向量由0x0004到0x01FE¾所以User的程式要由0x200後開始放置¾也就是說..程式記憶體位址0x0000的指另通常為gotoxxxx,xxxx就是0x200以後的位置z如果讓程式goto到中斷向量區會如何?¾將產生“AddressError”類型的Trap!!¾Trap也是中斷的一種,但為“不可遮罩”式的©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide17寫入程式記憶體的方法z有兩種寫入程式快閃記憶體的方式¾程式執行時的自我燒錄方式(RTSP)¾線上串列燒錄(ICSP)©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide18資料記憶DataMemory資料記憶資料記憶DataMemoryDataMemory©2011MicrochipTechnologyIncorporated.AllRightsReserved.2011數其菁英班Slide19DataMemory架構(一)zLinearDataMemory¾最高可以定址到64KBDataMemory¾Datamemory可以用
本文标题:16bitArch
链接地址:https://www.777doc.com/doc-711 .html