AT91SAM9260數(shù)據(jù)手冊.doc_第1頁
AT91SAM9260數(shù)據(jù)手冊.doc_第2頁
AT91SAM9260數(shù)據(jù)手冊.doc_第3頁
AT91SAM9260數(shù)據(jù)手冊.doc_第4頁
AT91SAM9260數(shù)據(jù)手冊.doc_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

AT91SAM9260數(shù)據(jù)手冊1、描述AT91SAM9260是以ARM926EJ-S處理器為核心的片上系統(tǒng),它擴(kuò)展了快速ROM、RAM以及大量的外設(shè)。AT91SAM9260集成了以太網(wǎng)的MAC、一個(gè)USB設(shè)備端口、一個(gè)USB主機(jī)控制器。此外,它還集成了幾種標(biāo)準(zhǔn)的外設(shè),如USART、SPI、TWI、TimerCounter、同步串行控制器、ADC和多媒體卡接口。AT91SAM9260采用了6層總線矩陣構(gòu)架,大大增強(qiáng)了6條32位總線的內(nèi)部帶寬。同時(shí)它的外部總線接口能支持大量的存儲(chǔ)設(shè)備。2、方框圖該方框圖顯示了217腳LFBGA封裝的所有特征,有些功能在208腳PQFP封裝里面是沒有的。3、信號(hào)描述4、封裝與引腳排列5、電源事宜5.1 電源AT91SAM9260有如下幾種類型的電源管腳:l VDDCORE 管腳:內(nèi)核電源,包括處理器、內(nèi)嵌存儲(chǔ)器和外設(shè),電壓范圍從1.651.95,額定電壓為1.8Vl VDDIOM 管腳:外部總線接口I/O口電源;電壓范圍從1.65V1.95V(1.8V);或3.03.6(3.3),具體的電壓范圍可有軟件確定l VDDIOP0 管腳:外設(shè)I/O口線和USB收發(fā)器電壓;電壓范圍3.03.6(3.0/3.3)l VDDIOP1 管腳:外設(shè)I/O口線,包括圖像傳感器接口;電壓范圍1.653.6 (1.8/2.5/3/3.3)l VDDBU 管腳:慢速時(shí)鐘振蕩器和部分系統(tǒng)控制器電源;電壓范圍1.65V1.95V(1.8V)l VDDPLL 管腳:主時(shí)鐘和鎖相環(huán)部件電源;電壓范圍1.651.95(1.8)l VDDANA 管腳:模數(shù)轉(zhuǎn)換器供應(yīng)電源;電壓范圍3.03.6(3.3)VDDIOM、VDDIOP0、VDDIOP1,這些電源使得用戶能對(duì)存儲(chǔ)器接口和外設(shè)接口設(shè)備分配不同的電源。接地引腳GND是VDDCORE、VDDIOM、VDDIOP0、VDDIOP1引腳電源的公共端。VDDBU、VDDPLL、VDDANA采用各自相應(yīng)的接地管腳:GNDBU、GNDPLL、GNDANA。5.2 功耗 AT91SAM9260在二十五度時(shí),在VDDCORE上的靜態(tài)電流大約為500uA。當(dāng)溫度上升到85度時(shí),靜態(tài)電流上升到5mA。在VDDBU管腳上,最大電流不會(huì)超過10uA。對(duì)于動(dòng)態(tài)功率損耗,AT91SAM9260在典型條件下(1.2V/25C)以最大速率,處理器運(yùn)行在全速運(yùn)行狀態(tài),VDDCORE電源消耗最大為100mA。5.3 可編程I/O電源 VDDIOM允許兩個(gè)電壓范圍。這就使得無論外部存儲(chǔ)模塊是1.8H還是3.3V時(shí),該設(shè)備均能達(dá)到其最大速度。SDCK管腳的最高速度為100M,其他信號(hào)(包括控制線、地址線、數(shù)據(jù)線)均不能超過50MHz。(1.8V上有30pF,3.3V上有50pF電容)輸入電壓范圍是由矩陣用戶接口(Matrix User Interface)內(nèi)的芯片配置寄存器(Chip Configuration registers)所決定的。復(fù)位時(shí),缺省的電壓是3.3V,此時(shí),芯片能同時(shí)接受1.8和3.3V的輸入,但是如果VDDIOM電源是1.8v,此時(shí)該設(shè)備就無法達(dá)到最高速。因此用戶必須在Slow Clock 模式下設(shè)置EBI電壓范圍。6、I/O口線事宜6.1 JTAG端口引腳TMS、TDI和TCK是施密特觸發(fā)器輸入且無上拉電阻TDO和RTCK是輸出,輸出電壓可以達(dá)到VDDIO0,且無上拉電阻當(dāng)JTAGSEL引腳維持高電平(接到VDDBU)時(shí)被用作JTAG邊界掃描。此引腳集成了一個(gè)連接與GNDBU的15K歐姆的下拉電阻。所以正常運(yùn)行時(shí)可以懸空。NTRST信號(hào)見6.3所有的JTAG信號(hào)均是由VDDIOP0供電的。6.2 測試引腳當(dāng)測試引腳(TST)維持高電平時(shí)被用作生產(chǎn)測試目的。次引腳集成了一個(gè)連接與GNDBU的15K的永久下拉電阻,所以正常運(yùn)行時(shí),該管腳可以懸空。當(dāng)以高電平驅(qū)動(dòng)此引腳時(shí)將導(dǎo)致難以預(yù)料的結(jié)果。該引腳由VDDBU供電。6.3 復(fù)位引腳NRST是一個(gè)雙向管腳,該管腳的開漏輸出集成了一個(gè)不可編程上拉電阻。該管腳由VDDIOP0供電。NTRST是一個(gè)輸入管腳,該管腳對(duì)JTAG的Test Access Port進(jìn)行復(fù)位。該管腳對(duì)處理器沒有影響。如果產(chǎn)品已經(jīng)集成了上電復(fù)位單元,該單元處理了的處理器和JTAG的復(fù)位,那么NRST和NTRST可以被懸空。NRST和NTRST均集成了一個(gè)到VDDIOP0的上拉電阻。NRST信號(hào)嵌于邊界掃描中。6.4 PIO控制器所有的I/O口線都集成了一個(gè)可編程的上拉電阻,PIO控制器可以對(duì)每個(gè)I/O口線的上拉電阻進(jìn)行控制。復(fù)位后,所有的I/O口均為輸入狀態(tài),且上拉電阻使能。除了那些在復(fù)位時(shí)要求和外部總線接口信號(hào)多路復(fù)用的I/O口線被使能為外設(shè)。具體可參見PIO Controller Multiplexing的“Reset State”欄。6.5 I/O線驅(qū)動(dòng)能力每個(gè)PIO管腳均有很強(qiáng)的驅(qū)動(dòng)能力(長期16mA),除了PC4PC31由VDDIOM供電的之外。6.6 掉電邏輯管腳SHDN管腳是一個(gè)輸出管腳,該管腳由掉電控制器驅(qū)動(dòng)WKUP(喚醒管腳) 是一個(gè)輸入管腳。它僅接受0VDDBU之間的電壓信號(hào)。6.7 慢速時(shí)鐘選擇AT91SAM9260的慢速時(shí)鐘即可由外部的32.768kHz的晶振產(chǎn)生也可由片內(nèi)RC振蕩器產(chǎn)生。表6-1定義了OSCSEL管腳的狀態(tài)表 6-1 慢速時(shí)鐘選擇OSCSEL慢速時(shí)鐘啟動(dòng)時(shí)間0內(nèi)部RC240us1外部32.768kHz1200ms7、處理器與體系結(jié)構(gòu)7.1 ARM926EJ-S處理器l 基于ARM v5TEJ體系結(jié)構(gòu),帶Jazelle Java加速技術(shù)的RISC處理器l 兩套指令集n ARM 高性能32位指令集n Thumb高編碼密集度16位指令集l DSP指令擴(kuò)展l 5級(jí)流水線體系結(jié)構(gòu)n 指令獲?。‵)n 指令解碼(D)n 指令執(zhí)行(F)n 數(shù)據(jù)存儲(chǔ)(M)n 寄存器寫(W)l 8K字節(jié)的高速數(shù)據(jù)緩存,8K字節(jié)的高速指令緩存n 地址映射方式采用四路組相聯(lián)的映像和變換方式(Virtually-addressed 4-way Associateve Cache)n 每個(gè)Cache塊8個(gè)字n 采用寫通和寫回操作n 采用隨機(jī)替換算法或輪轉(zhuǎn)法更新緩存條目l 寫緩沖n 主寫緩沖具有16個(gè)字的數(shù)據(jù)緩沖和4個(gè)字的地址緩沖n 寫回類型的數(shù)據(jù)Cache具有8個(gè)字的入口以及單獨(dú)的地址入口n Software Control Drainl 標(biāo)準(zhǔn)的ARM V4 和 V5存儲(chǔ)器管理部件(MMU)n 節(jié)存取權(quán)限n 對(duì)每四分之一的大頁或小頁的存取權(quán)限能被明確指定n 16個(gè)內(nèi)嵌的域l 總線接口單元(BIU)n AHB請求的仲裁和調(diào)度n 分離的主控(針對(duì)指令和數(shù)據(jù)訪問)為矩陣系統(tǒng)提供完善的靈活性n 完全分離的地址和數(shù)據(jù)總線(針對(duì)32位的指令接口和32位的數(shù)據(jù)接口)n 在地址和數(shù)據(jù)總線上,數(shù)據(jù)可以是8位、16位或32位的。7.2 總線矩陣l 6層的矩陣,能處理6個(gè)主機(jī)的請求l 可編程的仲裁策略n 固定優(yōu)先級(jí)的仲裁策略n 循環(huán)仲裁策略,包括無缺省主控、最近一次訪問的主控設(shè)備、固定缺省主控設(shè)備l 突發(fā)傳輸策略n 限制間隔(字節(jié)數(shù))的突發(fā)信號(hào)傳輸n 未定長度的突發(fā)信號(hào)傳輸突發(fā)操作定義為一個(gè)或多個(gè)數(shù)據(jù)傳輸,由總線主機(jī)發(fā)起,在地址空間增加時(shí)傳輸寬度保持一致。每次傳輸增加的地址步長由傳輸大小決定。l 每個(gè)主控提供一個(gè)地址解碼器n 三個(gè)不同的從控可以被指定給每一個(gè)解碼的存儲(chǔ)區(qū)域:一個(gè)用于內(nèi)部啟動(dòng);一個(gè)用于外部啟動(dòng);一個(gè)在重映射后 l 啟動(dòng)模式選項(xiàng)n 非易失的啟動(dòng)存儲(chǔ)器可以是內(nèi)部的,也可以是外部的n 根據(jù)復(fù)位時(shí)的BMS引腳的電平?jīng)Q定啟動(dòng)選項(xiàng)l 重映射命令n 允許一個(gè)內(nèi)部SRAM通過重映射代替啟動(dòng)非易失性存儲(chǔ)器n 允許異常向量的動(dòng)態(tài)配置處理l 矩陣主機(jī):n ARM926指令n ARM926數(shù)據(jù)n PDCn USB主DMAn ISI控制器n 以太MACl 矩陣從機(jī)n 內(nèi)部SRAM0 4Kn 內(nèi)部SRAM1 4Kn 內(nèi)部ROM/USB主機(jī)用戶接口n 外部總線接口n 內(nèi)部外設(shè)l 主機(jī)訪問從機(jī):通常來講,所有的主機(jī)均能訪問到所有從機(jī),但有些路徑是不通的。7.3 外設(shè)DMA控制器l 作為總線矩陣的主機(jī)l 在沒有處理器干預(yù)的情況下從外設(shè)轉(zhuǎn)存到任何存儲(chǔ)空間或從任何存儲(chǔ)空間轉(zhuǎn)存到外設(shè)l 下一個(gè)指針支持,禁止對(duì)緩沖管理進(jìn)行強(qiáng)制約束l 22個(gè)通道7.4 調(diào)試和測試特征l ARM926 實(shí)時(shí)在線仿真器n 兩個(gè)實(shí)時(shí)檢測點(diǎn)單元n 兩個(gè)獨(dú)立的寄存器:調(diào)試控制寄存器和調(diào)試狀態(tài)寄存器n 可通過JTAG協(xié)議訪問的測試存取端口n 調(diào)試通信通道l 調(diào)試部件n 兩線UARTn 調(diào)試通信通道中斷處理n 芯片ID寄存器l 所有數(shù)字引腳上的IEEE1149.1 JTAG邊界掃描8、存儲(chǔ)器總線矩陣完成的第一級(jí)的地址解碼。譯碼將4G的地址空間分成16個(gè)256M的區(qū)域,區(qū)域1區(qū)域8通過片選信號(hào)EBI_NCS0EBI_NCS7指向EBI。區(qū)域0是為內(nèi)部存儲(chǔ)器地址,第二級(jí)譯碼提供1M字節(jié)內(nèi)部存儲(chǔ)空間。區(qū)域15為外設(shè)地址,且提供對(duì)高級(jí)外設(shè)總線(APB)的訪問。其它區(qū)域未使用,使用它們進(jìn)行訪問時(shí)將向發(fā)出訪問請求的主機(jī)發(fā)出異常中斷。每個(gè)主機(jī)均有自己的總線與相應(yīng)的解碼器,因此對(duì)于不同的主機(jī)允許擁有不同的內(nèi)存映射。但是,為簡化映射起見,所有的主機(jī)均擁有類似的解碼方式對(duì)于主機(jī)0和主機(jī)1(ARM926 指令與數(shù)據(jù)),在地址0x00映射有三個(gè)不同的從機(jī),一個(gè)用于內(nèi)部啟動(dòng),一個(gè)用于外部啟動(dòng),另一個(gè)用于重映射。8.1 內(nèi)部存儲(chǔ)器l 32KB ROMn 全速矩陣總線下,單周期訪問l 2塊4KB快速SRAMn 全速矩陣總線下,單周期訪問8.1.1 啟動(dòng)策略表8-1簡要說明了每個(gè)主機(jī)的內(nèi)部內(nèi)存映射與復(fù)位時(shí)Remap狀態(tài)與BMS狀態(tài)之間的關(guān)系。重映射前(REMAP=0)重映射后REMAP=1BMS狀態(tài)10X0x00ROMEBI-NCS0SRAM0 4K 系統(tǒng)總是從地址0x00啟動(dòng)的,為確保啟動(dòng)方式的最大數(shù)量,內(nèi)存布局可由如下兩個(gè)參數(shù)確定。為便于開發(fā),REMAP允許用戶將第一塊內(nèi)部SRAM映射到地址0x00。該操作是在系統(tǒng)啟動(dòng)后通過軟件執(zhí)行的。具體可參見“總線矩陣”一節(jié)當(dāng)REMAP=0時(shí)間,BMS允許用戶ROM或外部存儲(chǔ)器映射到地址0x00。具體由復(fù)位狀態(tài)下的BMS管腳的狀態(tài)決定。正是由于這個(gè)目的,內(nèi)部存儲(chǔ)器的0x000x0FFFFF預(yù)留。l BMS=1 ,從內(nèi)嵌ROM啟動(dòng)n 在低速時(shí)鐘下啟動(dòng)(片內(nèi)RC 或 32.768kHz)n 自動(dòng)波特率檢測n 將應(yīng)用從外部存儲(chǔ)器中下載內(nèi)部SRAM中,并執(zhí)行n 下載的代碼長度決定于內(nèi)嵌的SRAM長度n 自動(dòng)進(jìn)行有效代碼檢測n 非易失性存儲(chǔ)器中的Bootloaderu 連接在NPCS0、NPCS1的SPI DataFlash(SPI0)u 8位或16位 NAND Flashn 如果在外部的非易失性存儲(chǔ)器中未檢測到有效程序,則采用SAM-BA啟動(dòng)u DBGU上的串行通信u USB設(shè)備端口l BMS=0 ,從外部存儲(chǔ)器啟動(dòng)n 在低速時(shí)鐘下啟動(dòng)(片內(nèi)RC 或 32.768kHz)n 采用靜態(tài)內(nèi)存控制器的缺省配置啟動(dòng),模式采用“字節(jié)選擇”,16位數(shù)據(jù)總線,采用片選信號(hào)進(jìn)行讀寫控制。允許在16位非易失性存儲(chǔ)器上啟動(dòng)。n 客戶編寫的軟件必須完成一個(gè)完整的配置當(dāng)在32kHz EBI CS=0(BMS=0)時(shí),為了加速啟動(dòng)過程,用戶必須執(zhí)行以下步驟:l 編程PMC(主振蕩器使能或旁路模式)l 編程并啟動(dòng)PLLl 重編程SMC設(shè)置,周期,保持,CS0的模式定時(shí)寄存器以適應(yīng)新時(shí)鐘l 主時(shí)鐘切換新值8.2 外部存儲(chǔ)器外部存儲(chǔ)器是通過EBI總線訪問的。每個(gè)片選信號(hào)均有256M字節(jié)的訪問空間。8.2.1 外部總線接口l 集成了三個(gè)外部存儲(chǔ)器控制器n 靜態(tài)存儲(chǔ)器控制器n SDRAM控制器n ECC控制器l NAND Flash 的附加邏輯l 32位數(shù)據(jù)總線l 26位地址總線(64M)l 8個(gè)片選信號(hào),分配如下:n 靜態(tài)存儲(chǔ)控制器(NCS0)n SDRAM或靜態(tài)存儲(chǔ)控制器(NCS1)n 靜態(tài)存儲(chǔ)控制器(NCS2)n 靜態(tài)存儲(chǔ)控制器(NCS3),可選擇支持NAND Flashn 靜態(tài)存儲(chǔ)控制器(NCS4NCS5),可選擇支持Compact Flashn 靜態(tài)存儲(chǔ)控制器(NCS6NCS7)8.2.2 靜態(tài)存儲(chǔ)器控制器l 8-,16-,32-bit 數(shù)據(jù)總線l 多種訪問模式n 字節(jié)寫或字節(jié)選擇線n 頁模式的異步讀?。宽?32字節(jié))l 各種設(shè)備的適應(yīng)能力n 兼容LCD模塊n 針對(duì)各個(gè)存儲(chǔ)器塊,可編程的控制信號(hào),包括:啟動(dòng)、脈沖、保持時(shí)間l 各種等待狀態(tài)管理n 可編程等待狀態(tài)產(chǎn)生n 外部等待請求n 可編程數(shù)據(jù)流動(dòng)等待l 支持慢時(shí)鐘模式8.2.3 SDRAM 控制器l 支持設(shè)備n 標(biāo)準(zhǔn)、低功耗的SDRAM(移動(dòng) SDRAM)l 多種配置支持n 2K、4K、8K 行地址內(nèi)存n 2個(gè)或4個(gè)內(nèi)部SDRAM區(qū)n 16位或32位數(shù)據(jù)的SDRAMl 編程性能n 字、半字、字節(jié)訪問n 到了存儲(chǔ)器邊界自動(dòng)分頁n 多組Ping-pong訪問n 軟件確定定時(shí)參數(shù)化n 自動(dòng)更新操作,可編程更新速率l 節(jié)能能力n 支持自刷新、掉電、深度掉電模式n 故障檢測:更新故障中斷n 軟件上電初始化SDRAMn 支持CAS等待時(shí)間(1、2、3個(gè)時(shí)鐘)n 未使用自動(dòng)預(yù)充電命令8.2.4 糾錯(cuò)碼控制器l 通過相應(yīng)的片選信號(hào)觸發(fā),跟蹤NAND Flash設(shè)備的訪問l 單位錯(cuò)誤糾正以及2位隨機(jī)錯(cuò)誤檢測l 在寫入時(shí),自動(dòng)進(jìn)行漢明碼計(jì)算n ECC 編碼在某個(gè)寄存器中l(wèi) 在讀取時(shí),自動(dòng)進(jìn)行漢明碼計(jì)算n 錯(cuò)誤報(bào)告:包括錯(cuò)誤標(biāo)記、可糾正錯(cuò)誤標(biāo)記以及檢測到錯(cuò)誤的字地址n 支持8位、16位NAND Flash設(shè)備(每頁可包含512、1024、2048、4096字節(jié))9、系統(tǒng)控制器系統(tǒng)控制器是由一系列外設(shè)組成,這些外設(shè)控制了系統(tǒng)的關(guān)鍵部件,如電源、復(fù)位、時(shí)鐘、定時(shí)器、中斷、看門狗等等。系統(tǒng)控制器的用戶界面內(nèi)嵌了用以配置總線矩陣的寄存器以及用以芯片配置的寄存器。這些芯片配置的寄存器配置了EBI的片選信號(hào)與外部內(nèi)存的電壓范圍。系統(tǒng)控制器的外設(shè)均映射到了最高的16K字節(jié)的地址空間,從0xFFFFE800到0xFFFFFFFF。由于,所有的系統(tǒng)控制器的寄存器均映射到了地址空間的最高層。因此,同于哦一個(gè)標(biāo)準(zhǔn)的ARM指令,系統(tǒng)控制器的所有寄存器可通過一個(gè)指針實(shí)現(xiàn)(Load/Store指令)圖9-1,顯示了系統(tǒng)控制器的方框圖,圖8-1顯示了系統(tǒng)控制器外設(shè)用戶接口的映射。9.1 方框圖9.2 復(fù)位控制器l 基于兩個(gè)上電復(fù)位單元n 一個(gè)在VDDBU、另一個(gè)在VDDCOREl 上次復(fù)位的狀態(tài),包括正常復(fù)位(VDDBU上升)、喚醒復(fù)位(VDDCORE 上升)、軟件復(fù)位、用戶復(fù)位和看門狗復(fù)位。l 控制內(nèi)部復(fù)位和NRST管腳輸出n 允許輸出復(fù)位信號(hào)用以復(fù)位外部設(shè)備9.3 掉電控制器l 掉電和喚醒邏輯n 軟件可編程的SHDN管腳n 可通過WKUP引腳電平變化以及RTT(實(shí)時(shí)定時(shí)器)實(shí)現(xiàn)喚醒9.4 時(shí)鐘發(fā)生器l 內(nèi)嵌一個(gè)低功耗32.768kHz的低速時(shí)鐘振蕩器以及一個(gè)低功耗RC振蕩器。具體可通過OSCSEL信號(hào)進(jìn)行選擇n 為系統(tǒng)提供了一個(gè)永久的低速時(shí)鐘SLCKl 內(nèi)嵌主振蕩器n 提供了振蕩器旁路功能n 支持320MHz的晶振l 內(nèi)嵌兩個(gè)PLLn PLLA輸出80240MHz時(shí)鐘n PLLB輸出70130MHz時(shí)鐘n 兩者均集成了一個(gè)輸入分頻器用以增加輸出精度n PLLB 內(nèi)嵌有自身的濾波器9.5 電源管理控制器l 提供如下時(shí)鐘:n 處理器時(shí)鐘(PCK)n 主控時(shí)鐘(MCK),為所有的外設(shè)和內(nèi)存提供的時(shí)鐘n USB設(shè)備時(shí)鐘(UDPCK)n 獨(dú)立的外部時(shí)鐘,一般與MCK相同n 2個(gè)可編程時(shí)鐘輸出:PCK0、PCK1l 5種靈活的工作模式:n 正常模式(Normal):處理器與外圍設(shè)備均工作在設(shè)定的工作頻率n 空閑模式(IDLE):處理器停止運(yùn)行,等待中斷n 慢速模式(SLOW):處理器與外圍設(shè)備以低頻運(yùn)行n 等待模式(Standby):IDLE與BACKUP模式的混合,外圍設(shè)備以低速運(yùn)行,而處理器停止運(yùn)行以等待中斷n 備份模式(Backup):主電源斷電,VDDBU以電池供電9.6 周期性間隔定時(shí)器l 包括一個(gè)20位的周期計(jì)數(shù)器,其精度小于1usl 包括一個(gè)12位間隔覆蓋計(jì)數(shù)器l 適用于實(shí)時(shí)操作系統(tǒng)、Linux或WindowsCE節(jié)拍的生成9.7 看門狗定時(shí)器l 16位鍵保護(hù)(Key-protected),只可一次編程的計(jì)數(shù)器l 為避免軟件進(jìn)行死鎖后持續(xù)觸發(fā)看門狗,WDT重新加載必須當(dāng)計(jì)數(shù)器指定窗口范圍內(nèi)才能發(fā)生。(0WDD)9.8 實(shí)時(shí)定時(shí)器l 32位獨(dú)立運(yùn)行的備份計(jì)數(shù)器l 在低速時(shí)鐘上集成了16位可編程分頻器l 通過掉電控制器,告警寄存器產(chǎn)生了系統(tǒng)的喚醒信號(hào)9.9 通用的備份寄存器l 4個(gè)32位的通用備份寄存器9.10 增強(qiáng)的中斷控制器l 控制ARM處理器的中斷線(nIRQ 與 nFIQ)l 32個(gè)可獨(dú)立屏蔽的中斷源向量n 中斷源0為快速中斷(FIQ)n 中斷源1為系統(tǒng)外設(shè)(PIT、RTT、PMC、DBGU、等等)n 可編程的邊沿觸發(fā)或電平敏感的內(nèi)部中斷n 可編程的正/負(fù)邊沿觸發(fā)或高/低電平敏感l(wèi) 3個(gè)外部源以及快速中斷信號(hào)l 8級(jí)優(yōu)先級(jí)控制器n 驅(qū)動(dòng)處理器正常中斷n 處理131個(gè)中斷源的優(yōu)先級(jí)n 高優(yōu)先級(jí)中斷可打斷低優(yōu)先級(jí)中斷的執(zhí)行l(wèi) 定向n 優(yōu)化中斷服務(wù)程序分支與執(zhí)行n 每個(gè)中斷源有一個(gè)32位向量寄存器n 中斷向量寄存器讀取當(dāng)前相應(yīng)的中斷向量l 保護(hù)模式n 禁止自動(dòng)操作可簡化調(diào)試l 快速強(qiáng)制n 允許通過處理器快速中斷將正常中斷源重定向9.11 調(diào)試單元l 有兩部分功能組成n 2管腳的UARTn 支持調(diào)試通信通道(DCC)l 2管腳的UARTn 其實(shí)現(xiàn)特征與標(biāo)準(zhǔn)Atmel 的USART 完全兼容n 有通用可編程波特率發(fā)生器的獨(dú)立接收器與發(fā)送器n 奇、偶、標(biāo)志或空校驗(yàn)n 奇偶校驗(yàn)、幀及溢出誤差檢測n 自動(dòng)回應(yīng)、本地回環(huán)以及遠(yuǎn)程回環(huán)通道模式n 支持與接收器/發(fā)送器相連的兩個(gè)PDC(Peripheral Data Controller)通道l 支持調(diào)試通信通道n 通過ARM處理器的ICE接口,提供了COMMRX和COMMTX信號(hào)中斷觸發(fā)的可見性。9.12 芯片IDn Chip ID: 0x019803A2n JTAG ID: 0x05B1303Fn ARM926 TAP ID: 0x0792603F10、外設(shè)10.1 用戶接口外設(shè)被映射到從0xFFFA 0000 到0xFFFC FFFF之間。每個(gè)外設(shè)占用了16k字節(jié)的空間。完整的內(nèi)存映射圖間圖8-110.2 標(biāo)識(shí)符號(hào)10.2.1 外設(shè)中斷與時(shí)鐘控制10.2.1.1 系統(tǒng)中斷中斷源1中的系統(tǒng)中斷是如下一些中斷信號(hào)的線或(wired-OR)l SDRAM 控制器l 調(diào)試單元l 周期性間隔定時(shí)器l 實(shí)時(shí)定時(shí)器l 看門狗定時(shí)器l 復(fù)位控制器l 電源管理單元這些外設(shè)的時(shí)鐘必須被激活,此外,外設(shè)ID 1只有在增強(qiáng)中斷控制器中才能被使用10.2.1.2 外部中斷所有的外部中斷,包括快速中斷FIQ或IRQ0IRQ2,使用各自獨(dú)立的外設(shè)ID。然而這些外設(shè)ID沒有相關(guān)聯(lián)的時(shí)鐘控制器。10.3 I/O線的外設(shè)復(fù)用AT91SAM9260有3個(gè)PIO控制器(PIOA、PIOB、PIOC),這些IO線與外設(shè)復(fù)用。每個(gè)PIO控制器控制了32個(gè)管腳。每個(gè)管腳可具有1個(gè)或2個(gè)外設(shè)的功能(A 或 B)。Table10-2、Table10-3和Table10-4定義了各個(gè)PIO口是如何與各個(gè)外設(shè)進(jìn)行復(fù)用的。注意,某些只有輸出功能的外設(shè)功能可能在表中重復(fù)定義。列“復(fù)位狀態(tài)”指示PIO管腳復(fù)位后是處于IO模式或是外設(shè)模式。假如是I/O模式,該P(yáng)IO管腳處于輸入狀態(tài)(上拉使能)。結(jié)果,PIO_PSR寄存器中與IO線的對(duì)應(yīng)位復(fù)位為0。假如“復(fù)位狀態(tài)”列中是信號(hào)的名字,該P(yáng)IO管腳被指定為該功能,并且PIO_PSR復(fù)位為高狀態(tài)(地址線)。注意,在這種情況下,上拉電阻還是被使能的。10.4 內(nèi)嵌外設(shè)10.4.1 SPI接口 支持與串行外設(shè)通信n 外部解碼器有四個(gè)片選位,最多支持與15個(gè)外設(shè)通信n 串行存儲(chǔ)器,如DataFlash 以及三線EEPROMn 串行外設(shè),如ADC/DAC/LCD控制器、CAN控制器以及傳感器n 外部協(xié)處理器 主機(jī)或從機(jī)外設(shè)總線接口n 每個(gè)片選8位到16位可編程數(shù)據(jù)長度n 每個(gè)片選可編程極性和相位n 每個(gè)片選可在連續(xù)傳輸時(shí)設(shè)置傳輸延遲,以及時(shí)鐘與數(shù)據(jù)之間設(shè)置傳輸延遲n 連續(xù)傳輸可編程延時(shí)n 可選擇故障模式檢測 支持快速傳輸n 傳輸波特率可達(dá)到MCKn 在與同一設(shè)備傳輸時(shí),片選信號(hào)可一直被激活10.4.2 兩線接口 支持主機(jī)、多主機(jī)、從機(jī)等各種模式 在從機(jī)模式下支持廣播呼叫10.4.3 USART 可編程的波特率發(fā)生器 59位全雙工同步或異步串行通信n 異步模式下1、1.5或2位停止位或同步模式下1或2位停止位n 奇偶校驗(yàn)位產(chǎn)生與錯(cuò)誤檢測n 幀錯(cuò)誤檢測、溢出錯(cuò)誤檢測n MSB或LSB在先n 可選的斷點(diǎn)產(chǎn)生與檢測n 8或16的過采樣接收頻率n 可選硬件握手信號(hào)RTS-CTSn 可選調(diào)制解調(diào)信號(hào)DTR、DSR、DCD、RIn 接收器超時(shí)以及發(fā)送器的時(shí)間保護(hù)(用于于慢速設(shè)備通信)n 可選的可地址生成和檢測的Multi-drop模式 有驅(qū)動(dòng)器控制信號(hào)的RS485 ISO7816(國際智能卡標(biāo)準(zhǔn)),T=0或T=1協(xié)議與智能卡的接口連接n NACK處理,有循環(huán)與迭代限制的錯(cuò)誤計(jì)數(shù)器 IRDA調(diào)制與解調(diào)n 通信速率可達(dá)到115.2kbps 測試模式n 遠(yuǎn)程回送、本地回送、自動(dòng)回復(fù)USART包含各種Modem信號(hào)的管理(DTR、DSR、DCD、RI)。在AT91SAM9260中,只有USART0實(shí)現(xiàn)了這些信號(hào),命名為:DTR0、DSR0、DCD0、RI0。USART1 和 USART2 沒有實(shí)現(xiàn)所有的Modem信號(hào),只實(shí)現(xiàn)了RTS、CTS(RTS1和CTS1、RTS2和CTS2)。因此,在Modem模式下對(duì)USART1、USART2、USART3可能會(huì)產(chǎn)生不可預(yù)知的后果。在這些USART中,與Modem模式相關(guān)的命令是無效的,與Modem相關(guān)的狀態(tài)位也是未被激活的。10.4.4 串行同步控制器 提供了應(yīng)用于音頻與電信應(yīng)用中的串行同步通信鏈接 包括一個(gè)獨(dú)立的接收器、發(fā)送器以及通用時(shí)鐘分頻器 提供了可配置的幀同步和數(shù)據(jù)長度 接收器和發(fā)送器可配置成自動(dòng)啟動(dòng),或在檢測到幀同步信號(hào)的各種事情后啟動(dòng) 接收器和發(fā)送器包括一個(gè)數(shù)據(jù)信號(hào)、時(shí)鐘信號(hào)以及幀同步信號(hào)10.4.5 定時(shí)/計(jì)數(shù)器 兩個(gè)3個(gè)16位定時(shí)器通道的模塊 每個(gè)通道可分別進(jìn)行編程實(shí)現(xiàn)如下功能n 頻率測量n 事件計(jì)數(shù)n 間隔測量n 脈沖生成n 延遲定時(shí)n 脈寬調(diào)制n 上加、下減能力 每個(gè)通道用戶可配置,包括n 三個(gè)外部時(shí)鐘輸入n 五個(gè)內(nèi)部時(shí)鐘輸入n 兩個(gè)多功能輸入/輸出信號(hào) 每個(gè)模塊均有2個(gè)全局寄存器作用于三個(gè)TC通道10.4.6 多媒體卡接口 一個(gè)雙通道多媒體卡接口 與多媒體卡標(biāo)準(zhǔn)V3.11兼容 與SD內(nèi)存卡規(guī)范V1.1兼容 與SDIO規(guī)范V1.0兼容 卡時(shí)鐘可達(dá)到主時(shí)鐘的2倍分頻 當(dāng)未使用時(shí)內(nèi)置的電源管理將時(shí)鐘頻率降低 MCI支持兩種插槽,n 一種是多媒體卡總線n 另一種是SD內(nèi)存卡 支持?jǐn)?shù)據(jù)流、塊與多塊數(shù)據(jù)的讀取10.4.7 USB 主機(jī)端口 適用于開放的HCI Rev 1.0標(biāo)準(zhǔn) 適用于USB V2.0全速和低速標(biāo)準(zhǔn) 支持低速1.5Mbps和全速12Mbps的設(shè)備 在217LFBGA封裝中根集線器集成了兩個(gè)下游USB端口 兩個(gè)內(nèi)嵌USB接收器 支持電源管理 在總線矩陣中作為一個(gè)主機(jī)10.4.8 USB 設(shè)備端口 適用于USB2.0全速,波特率達(dá)到12M 內(nèi)嵌USB2.0全速接收器 為端點(diǎn)內(nèi)嵌2432字節(jié)雙口RAM 掛起/恢復(fù)邏輯 同步與大數(shù)據(jù)量端點(diǎn)的pingpong模式(兩個(gè)存儲(chǔ)器組) 6個(gè)通用的端點(diǎn)n 端點(diǎn)0和3:64字節(jié),無ping-pong模式n 端點(diǎn)1和2:64字節(jié),具有ping-pong模式n 端點(diǎn)4和5:512字節(jié),具有ping-pong模式 集成了PAD上拉電阻10.4.9 以太網(wǎng)MAC 與IEEE 802.3兼容 每秒10M100M的數(shù)據(jù)吞吐能力 全雙工或半雙工操作 與物理層接口可為Mii(媒體獨(dú)立接口)或RMII(簡化媒體獨(dú)立接口) 針對(duì)地址、數(shù)據(jù)、狀態(tài)與控制寄存器的寄存器接口 DMA接口,可作為存儲(chǔ)控制器的主機(jī)操作 在發(fā)送或接收結(jié)束時(shí),可產(chǎn)生中斷 28字節(jié)的發(fā)送FIFO,28字節(jié)的接收FIFO 發(fā)送時(shí)可自動(dòng)填充并生成CRC校驗(yàn) 地址檢查邏輯可識(shí)別48位地址碼 當(dāng)所有的有效幀拷貝到存儲(chǔ)器中時(shí)支持混合模式 支持通過MDIO接口進(jìn)行物理層管理10.4.10 圖像傳感器接口 支持ITU-R BT.601/656 8位模式的外部接口 支持ITU-R BT.656-4 SAV 和 EAV同步 橫軸、豎軸的分辨率達(dá)到2048*2048 預(yù)覽路徑達(dá)到640*480 支持YCbCr4:2:2的數(shù)據(jù)包格式 預(yù)覽機(jī)制以產(chǎn)生更小的圖像 可編程的幀捕獲率10.4.11 AD轉(zhuǎn)換 4通道ADC 10bit,312K的采樣率。逐次逼近型AD -2/+2LSB的積分非線性度;-1/+1LSB的差分非線性度 每個(gè)通道可單獨(dú)使能或禁止 可采用外部參考電壓以在低輸入電壓時(shí)獲取更高的精度 多種觸發(fā)源,如硬件/軟件觸發(fā)、外部信號(hào)觸發(fā)、TC0TC2輸出TIOA0TIOA2觸發(fā) 睡眠模式和轉(zhuǎn)換時(shí)序。在觸發(fā)時(shí)間能自動(dòng)蘇醒,并在轉(zhuǎn)換接收后自動(dòng)進(jìn)入睡眠狀態(tài) 與數(shù)字信號(hào)共用4個(gè)模擬輸入。11、ARM926EJ-S 處理器概述11.1 描述ARM926EJ-S處理器是通用微處理器ARM9 家族的成員。ARM926EJ-S屬于5TEJ版ARM構(gòu)架,針對(duì)的是多任務(wù)應(yīng)用。包括全任務(wù)管理、高性能、低核心尺寸和低功耗等重要特點(diǎn)。ARM926EJ-S處理器支持32位ARM和16位THUMB指令集,使得用戶能在高性能和高代碼密度上取得平衡。支持8位Java指令集并且包括使Java字節(jié)代碼有效執(zhí)行的功能部件,支持和JIT(JustInTime 編譯器)相似的Java性能,這些性能為下一代Java無線和嵌入式的設(shè)備提供了有力支持。為了提高DSP性能,還包含了一個(gè)增強(qiáng)的乘法器設(shè)計(jì)。ARM926EJ-S處理器支持ARM調(diào)試構(gòu)架,并包括軟硬件調(diào)試的輔助邏輯ARM926EJ-S提供一個(gè)完整的高性能處理器子系統(tǒng),包括 ARM9EJ-S 整核 一個(gè)內(nèi)存管理單元(MMU) 獨(dú)立的指令和數(shù)據(jù)AMBA AHB總線接口 獨(dú)立的指令和數(shù)據(jù)TCM接口11.2 方框圖11.3 ARM9EJ-S處理器11.3.1 ARM9EJ-S 運(yùn)行狀態(tài)ARM9EJ-S 處理器能以三種狀態(tài)運(yùn)行,每種狀態(tài)具有其自身的特殊指令集: ARM狀態(tài):32位,字對(duì)齊ARM指令 THUMB狀態(tài):16位,半字對(duì)齊的THUMB指令 Jazelle狀態(tài):可變長度,字節(jié)對(duì)齊的Jazelle指令在Jazelle狀態(tài)下,按字取指11.3.2狀態(tài)切換ARM9EJ-S的工作狀態(tài)可進(jìn)行切換: 可使用BX和BLX指令實(shí)現(xiàn)ARM和THUMB狀態(tài)的切換,并加載到PC 可使用BXJ指令實(shí)現(xiàn)ARM和Jazelle狀態(tài)之間的切換在ARM狀態(tài)下,可進(jìn)入、處理、退出所有的異常。假如在Thumb或Jazelle狀態(tài)下發(fā)生了異常,處理器將進(jìn)入ARM狀態(tài)。當(dāng)異常處理完成后,再返回到Thumb、Jazelle狀態(tài)。11.3.3 指令流水線ARM9EJ-S核采用2種流水線來增強(qiáng)指令流轉(zhuǎn)的速度: 5級(jí)流水線(5個(gè)時(shí)鐘周期)應(yīng)用于ARM和Thumb狀態(tài),它包括獲取、解碼、執(zhí)行、存儲(chǔ)和回寫5個(gè)階段 6級(jí)流水線(6個(gè)時(shí)鐘周期)應(yīng)用于Jazelle狀態(tài),它包括獲取、Jazelle/解碼(2個(gè)時(shí)鐘周期)、執(zhí)行、存儲(chǔ)和回寫6個(gè)階段11.3.4 內(nèi)存訪問ARM9EJ-S核支持字節(jié)(8位)、半字(16位)、字(32位)訪問。字的存儲(chǔ)必須四字節(jié)對(duì)齊,半字的存儲(chǔ)必須2字節(jié)對(duì)齊,字節(jié)可在任何地方存儲(chǔ)。由于流水線自身的特性,一個(gè)當(dāng)前操作所需要的值在放入寄存器(回寫)前被之前的指令(譯碼)使用。ARM9EJ-S控制邏輯將自動(dòng)檢測這種情況并停止內(nèi)核或停止傳輸數(shù)據(jù)。(也即是流水線沖突)11.3.5 Jazelle 技術(shù)Jazelle技術(shù)使得Java代碼可在ARM處理器上得到直接高效的執(zhí)行。為下一代Jave無線應(yīng)用和嵌入式設(shè)備提供高性能。ARM9EJ-S的JAVE特征可被描述成JVM(JAVA虛擬機(jī))的硬件仿真。Jave模式是除了ARM或Thumb之外的另外一種狀態(tài),它執(zhí)行的是Jave代碼。ARM9EJ-S的Jave代碼解碼邏輯可對(duì)95的Jave代碼進(jìn)行解碼,并在無任何額外開銷的情況下將其轉(zhuǎn)化成為ARM指令。同時(shí),較少使用的代碼將被分解成優(yōu)化序列的ARM指令。這種硬件/軟件的分解對(duì)于編程者、應(yīng)用、操作系統(tǒng)來講均是透明的。所有ARM寄存器在Jazelle狀態(tài)下得到重復(fù)應(yīng)用,并且所有寄存器在該狀態(tài)下均有特殊功用。在ARM和Jave狀態(tài)的切換過程中需要維持最小的中斷延時(shí)。由于Jave代碼執(zhí)行是可被重啟的,因此當(dāng)發(fā)生中斷時(shí),該中斷將自動(dòng)觸發(fā)內(nèi)核從Jave狀態(tài)切換到ARM狀態(tài)。這也就意味著無論是在硬件上還是在軟件商,Jave狀態(tài)下處理中斷將沒有任何特殊的預(yù)備。11.3.6 ARM9EJ-S 操作模式在所有狀態(tài)中,有7種操作模式: 用戶模式:通常ARM程序執(zhí)行狀態(tài),用以執(zhí)行大多數(shù)的應(yīng)用程序 快速中斷模式:處理快速中斷,用于高速的數(shù)據(jù)傳輸或通道處理 中斷模式:用于處理通常的中斷響應(yīng) 管理者模式:操作系統(tǒng)的一種保護(hù)模式 中止模式:數(shù)據(jù)或指令預(yù)取失敗后進(jìn)入 系統(tǒng)模式:操作系統(tǒng)所擁有的一種特權(quán)用戶模式 未定義模式:未定義指令異常發(fā)生后進(jìn)入模式的切換可在軟件控制下執(zhí)行,也可能被外部中斷、異常處理所引發(fā)。大部分的應(yīng)用程序執(zhí)行在用戶模式。非用戶模式,如特權(quán)模式,是為在處理系統(tǒng)中斷或異常時(shí)訪問被保護(hù)資源時(shí)才使用的。11.3.7 ARM9EJ-S 寄存器ARM9EJ-S核共有37個(gè)寄存器,其中有31個(gè)通用32位寄存器,6個(gè)32位狀態(tài)寄存器。ARM包含有16個(gè)字節(jié)訪問寄存器R0R15,以及一個(gè)附加寄存器(CPSR當(dāng)前程序狀態(tài)寄存器)。寄存器R0R13是通用寄存器用于存放數(shù)據(jù)和地址。R14用以在執(zhí)行BL、BLX等跳轉(zhuǎn)指令時(shí)存放R15的值。R15作為程序計(jì)數(shù)器(PC)。CPSR包含條件標(biāo)志位和當(dāng)前模式位。在特權(quán)模式內(nèi)(FIQ、管理、中止、IRQ、未定義),特定模式寄存器可用(FIQ模式下的R8到R14,其他模式下R13和R14)。相應(yīng)的寄存器R14_FIQ、R14_SVC、R14_ABT、R14_IRQ、R14_UND都在發(fā)生中斷異?;蛟谥袛喈惓?nèi)調(diào)用BL/BLX指令時(shí)存儲(chǔ)R15的值。此外,還有一個(gè)寄存器叫做程序狀態(tài)存儲(chǔ)寄存器(SPSR),在特權(quán)模式下,該寄存器用以保存CPSR的狀態(tài),以便異常返回時(shí)恢復(fù)異常發(fā)生前的工作狀態(tài)。處于軟件一致性的考慮,在所有模式下,R13均作為堆棧指針使用。所有上述的寄存器的功能和應(yīng)用均應(yīng)服從APCS(ARM過程調(diào)用標(biāo)準(zhǔn))的限制。APCS的限制包括: 對(duì)寄存器使用的限制 使用棧的管理 函數(shù)調(diào)用時(shí)的參數(shù)傳遞和結(jié)果返回Thumb狀態(tài)下的寄存器集是ARM狀態(tài)下寄存器的一個(gè)子集,編程者可直接訪問: 8個(gè)通用功能寄存器R0R7 堆棧指針:SP 鏈接寄存器LR;(ARM下的R14) PC CSPR對(duì)于每種特權(quán)模式,具有備份的SP、LR以及SPSR。11.3.7.1 狀態(tài)寄存器ARM9EJ-S 內(nèi)核包括一個(gè)CPSR和5個(gè)為異常處理而準(zhǔn)備的5個(gè)SPSR。該程序狀態(tài)寄存器包括: 最近運(yùn)算邏輯單元(ALU)的信息 控制中斷的使能或禁止 設(shè)置處理器的操作模式狀態(tài)寄存器: 四個(gè)ALU標(biāo)志位:N(負(fù))、Z(零)、C(進(jìn)位)、V(溢出) 粘著(sticky)溢出位(Q)由特定的乘法與小數(shù)運(yùn)算指令(如QADD、QDADD、QSUB、QDSUB、SMLAxy和SMLAWy)置位,用于實(shí)現(xiàn)某些DSP操作。 該Q標(biāo)志是粘著的,意味著當(dāng)該Q標(biāo)志被某一指令置位后,只有當(dāng)調(diào)用MSR指令時(shí)才能被清除。指令無法根據(jù)該標(biāo)志進(jìn)行條件跳轉(zhuǎn)。 CPSR中的J標(biāo)志指示著ARM9EJ-S核是否處于Jazelle狀態(tài):n J=0:處于ARM或Thumb狀態(tài),具體由T標(biāo)志位決定n J-1:處于Jazelle狀態(tài)。 模式:5位編碼確定了當(dāng)前處理器的模式。11.3.7.2 異常異常種類以及優(yōu)先級(jí):ARM9EJ-S支持5種類型的異常,每種異常均驅(qū)動(dòng)ARM9EJ-S進(jìn)入特權(quán)模式,這些異常種類包括: FIQ:快速中斷 IRQ:普通中斷 Abort:數(shù)據(jù)或指令預(yù)取失敗 Undefined:未定義指令 Supervisor:軟件中斷或復(fù)位當(dāng)異常發(fā)生時(shí),R14的備份寄存器和對(duì)應(yīng)模式的SPSR將被用于儲(chǔ)存相應(yīng)狀態(tài)。在同一時(shí)間可發(fā)生多個(gè)異常,因此ARM9EJ-S根據(jù)下述的優(yōu)先級(jí)處理相應(yīng)的異常: 復(fù)位:(最高優(yōu)先級(jí)) 數(shù)據(jù)中止: FIQ IRQ 預(yù)取指中止 BKPT(斷點(diǎn)指令)、未定義指令、軟件中斷(SWI)(最低優(yōu)先級(jí))其中,BKPT、未定義指令、軟件中斷異常是互斥的。在中斷的優(yōu)先級(jí)序列中也有例外,當(dāng)FIQ被使能時(shí),數(shù)據(jù)中止與FIQ同時(shí)發(fā)生,ARM9EJ-S核將首先進(jìn)入數(shù)據(jù)中止處理函數(shù),然后立即進(jìn)入FIQ處理函數(shù),當(dāng)FIQ正常返回后,在繼續(xù)數(shù)據(jù)中止的異常處理。數(shù)據(jù)中止必須要比FIQ具有更高的優(yōu)先級(jí),從而確保捕獲任何一個(gè)傳輸錯(cuò)誤。異常模式與處理:無論何時(shí),當(dāng)一個(gè)異常發(fā)生時(shí),程序必須中斷其正常的工作流程,例如處理一個(gè)外設(shè)中斷。當(dāng)處理一個(gè)ARM異常時(shí),ARM9EJ-S核將執(zhí)行如下一些操作: 保存下一指令的地址到相應(yīng)的鏈接寄存器(LR),該寄存器與你即將進(jìn)入的新模式相關(guān)。當(dāng)異常從以下狀態(tài)進(jìn)入時(shí):n ARM/Jazelle狀態(tài):ARM9EJ-S拷貝下一條指令的地址到LRn THUMB狀態(tài):ARM9EJ-S將PC寄存器的當(dāng)前值寫入LR,偏移一個(gè)值后將是異常的正常返回點(diǎn)(具體偏移值與流水線有關(guān)) 將CPSR拷貝到相應(yīng)SPSR 根據(jù)異常類型,設(shè)置CPSR的模式位 根據(jù)異常類型以及異常向量表,設(shè)置PC值寄存器R13也是有備份的,為各種異常處理提供各自專用的堆棧指針。ARM9EJ-S也可以設(shè)置中斷禁止標(biāo)志,從而阻止難處理的嵌套的異常。當(dāng)異常處理完成后,異常處理函數(shù)將備份的LR寄存器(減去一定偏移后)設(shè)置到PC,同時(shí)將SPSR設(shè)置到CPSR。該偏移值與處理的異常類型有關(guān)。該動(dòng)作同時(shí)恢復(fù)了PC和CPSR。FIQ模式具有7個(gè)私有的寄存器(R8R14)以減少甚至不需要寄存器的保存操作,從而降低上下文切換的額外消耗。預(yù)取指令中止異常是中止模式之一,該模式代表著當(dāng)前存儲(chǔ)器的訪問無法完成。當(dāng)預(yù)取指令中止異常發(fā)生時(shí),ARM9EJ-S核標(biāo)志該被預(yù)取的指令為無效,但直到該指令到達(dá)執(zhí)行階段才發(fā)生異常。假如該指令未被執(zhí)行(例如一條跳轉(zhuǎn)指令),該異常將不再發(fā)生。斷點(diǎn)指令(BKPT)是ARM9EJ-S的一條新的特點(diǎn)用于解決預(yù)取指令中止的問題。該斷點(diǎn)指令通過一條指令產(chǎn)生預(yù)取指令中止。斷點(diǎn)指令直到進(jìn)入執(zhí)行階段才能產(chǎn)生預(yù)取指令中止異常。假如該指令不被執(zhí)行,該斷點(diǎn)將不再發(fā)生。11.3.8 ARM 指令集概述ARM指令集分解成為: 分支指令 數(shù)據(jù)處理指令 狀態(tài)寄存器傳輸指令 裝載和存儲(chǔ)指令 協(xié)處理器指令 異常生成指令A(yù)RM指令的執(zhí)行是有條件的,所有指令均包含了4位的條件域11.3.9 新的ARM指令集11.3.10 Thumb指令集概述Thumb指令集是ARM指令集的重編碼子集。Thumb指令被分成: 分支指令 數(shù)據(jù)處理指令 裝載和存儲(chǔ)指令 批量裝載和批量存儲(chǔ)指令 異常生成指令11.4 CP15協(xié)處理器15號(hào)協(xié)處理器或系統(tǒng)控制協(xié)處理器CP15用以配置和控制下列所有項(xiàng)目:(ARM7采用“協(xié)處理器”提供一種非侵入式的方法來延伸指令集。協(xié)處理器空間邏輯上通常分成16個(gè)協(xié)處理器,編號(hào)從0至15,第15號(hào)協(xié)處理器(CP15)是保留用作某些常用的控制功能) ARM9EJ-S Cache(指令Cache、數(shù)據(jù)Cache、寫緩沖) TCM(緊耦合存儲(chǔ)器接口) MMU(存儲(chǔ)器管理單元) 其他系統(tǒng)選項(xiàng)CP15提供了16個(gè)額外的寄存器:11.4.1 CP15寄存器訪問CP15寄存器只能在特權(quán)模式中通過如下指令進(jìn)行訪問: MCR(從ARM寄存器傳送到協(xié)處理器)指令用以寫一個(gè)ARM寄存器到CP15 MRC(從協(xié)處理器傳送到ARM寄存器)指令用以讀CP15的值到ARM寄存器其他指令(如CDP、LDC、STC)可能導(dǎo)致一個(gè)未定義指令異常11.5 內(nèi)存管理單元ARM926EJ-S處理器實(shí)現(xiàn)了增強(qiáng)ARM V5架構(gòu)的MMU,以向操作系統(tǒng)Symbian OS 、Window CE、Linux等操作系統(tǒng)提供虛擬內(nèi)存特性。虛擬內(nèi)存特性包括內(nèi)存訪問權(quán)限控制和虛擬地址到物理地址的轉(zhuǎn)換。1、 快速上下文切換擴(kuò)展(FCSE)是MMU中的一個(gè)附加硬件,F(xiàn)CSE使多個(gè)任務(wù)可以運(yùn)行在一個(gè)固定的重疊存儲(chǔ)器空間中,(各個(gè)空間都有獨(dú)立的虛擬地址,這與操作系統(tǒng)的虛擬地址不一樣,操作系統(tǒng)各個(gè)進(jìn)程使用統(tǒng)一的虛擬地址)而在上下文切換時(shí)不需要清理或清除Cache或TLB。2、 使用FCSE,虛擬存儲(chǔ)管理增加了一次地址轉(zhuǎn)換,F(xiàn)CSE在虛擬地址到達(dá)Cache和TLB之前,使用一個(gè)特殊的、包含進(jìn)程ID值的重定位寄存器修改虛擬地址。第一次轉(zhuǎn)換之前的地址稱為虛擬地址(VA),把第一次轉(zhuǎn)換之后的虛擬地址稱為修改后虛擬地址(MVA)3、 保存在CP15:C13:C0的當(dāng)前進(jìn)程ID4、 為了有效使用FCSE,系統(tǒng)使用頁表來控制區(qū)域的配置和操作,使用域來隔離各個(gè)任務(wù)。由CPU內(nèi)核產(chǎn)生的虛擬地址被FCSE(快速上下文變換擴(kuò)展)用CP15的13號(hào)寄存器轉(zhuǎn)換成為修改后虛擬地址(MVA)。MMU利用一個(gè)存儲(chǔ)于物理存儲(chǔ)器中的唯一的兩級(jí)頁表集將MVA轉(zhuǎn)換成物理地址。頁表集的每一個(gè)入口包括訪問權(quán)限以及虛擬地址所對(duì)應(yīng)的物理地址。一級(jí)轉(zhuǎn)換表包含了4096個(gè)入口(由MVA的2031位作為索引)。這些入口包含了一個(gè)指向1MB物理存儲(chǔ)空間的指針(包括其訪問權(quán)限、域等信息)、或二級(jí)轉(zhuǎn)換表的入口指針(粗頁表或細(xì)頁表)。二級(jí)轉(zhuǎn)換表包含了兩種子表,粗糙頁表和精細(xì)頁表。粗糙頁表包含了大頁和小頁的指針(包括訪問權(quán)限)。精細(xì)頁表的入口包含了大頁、小頁和微頁的指針。MMU包含有: 訪問權(quán)限控制 Translation Lookaside Buffers(TLBs) 轉(zhuǎn)換表遍歷硬件11.5.1 訪問控制邏輯訪問控制邏輯控制著轉(zhuǎn)換表每個(gè)入口的訪問(權(quán)限)信息。訪問控制邏輯檢查兩個(gè)信息:域和訪問許可。域是存儲(chǔ)機(jī)制訪問的主要控制機(jī)制。共有15個(gè)域。它定義了訪問能進(jìn)行的必要條件。域決定了訪問是否被允許或被忽略。二級(jí)訪問機(jī)制是對(duì)段、大頁、小頁和微頁的訪問控制。段和微頁有一個(gè)單一訪問允許集,而大頁和小頁可以和4個(gè)訪問允許集關(guān)聯(lián),每個(gè)子頁一個(gè)訪問允許集。11.5.2 TLBTLB緩存了轉(zhuǎn)換表的遍歷結(jié)果,從而避免了每次都需要遍歷整個(gè)轉(zhuǎn)換表。當(dāng)TLB包含了MVA的入口,允許此次訪問并輸出與MVA相關(guān)的物理地址。當(dāng)訪問不被允許,MMU通州CPUZ中止。如果TLB不包含MVA的入口,轉(zhuǎn)換表遍歷硬件將從物理內(nèi)存中的轉(zhuǎn)換表中獲取轉(zhuǎn)換信息。11.5.3 轉(zhuǎn)換表遍歷硬件轉(zhuǎn)換表遍歷硬件用以遍歷物理內(nèi)存中的轉(zhuǎn)換表,獲取物理地址與訪問允許,并更新TLB。虛擬地址標(biāo)志為段映射或是頁映射決定了硬件遍歷的級(jí)別是1或是2。共有3種頁映射和1種段映射訪問。頁映射訪問有大頁、小頁、微頁三種。轉(zhuǎn)換過程總是從一級(jí)遍歷啟動(dòng)的,段映射訪問只需要1級(jí)遍歷,而頁映射訪問需要2級(jí)遍歷。關(guān)于MMU跟多細(xì)節(jié),請參考ARM926EJ-S技術(shù)參考手冊第3章11.5.4 MMU錯(cuò)誤當(dāng)發(fā)生如下一些

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論