arm9芯片包括哪些?arm9如何應(yīng)用?
眾所周知,ARM9系列處理器是英國(guó)ARM公司設(shè)計(jì)的主流嵌入式處理器,主要包括ARM9TDMI和ARM9E-S等系列,基于arm9其它公司推出了自己的CPU芯片,如三星推出了S3C2440。還有TI啊,ATMEL啊,高通啊都基于arm9推出了自己的CPU芯片。
ARM9采用哈佛體系結(jié)構(gòu),指令和數(shù)據(jù)分屬不同的總線,可以并行處理。在流水線上,ARM7是三級(jí)流水線,ARM9是五級(jí)流水線。由于結(jié)構(gòu)不同,ARM7的執(zhí)行效率低于ARM9。平時(shí)所說(shuō)的ARM7、ARM9實(shí)際上指的是ARM7TDMI、ARM9TDMI軟核,這種處理器軟核并不帶有MMU和cache,不能夠運(yùn)行諸如linux這樣的嵌入式操作系統(tǒng)。而ARM公司對(duì)這種架構(gòu)進(jìn)行了擴(kuò)展,所以有了ARM710T、ARM720T、ARM920T、ARM922T等帶有MMU和cache的處理器內(nèi)核。
融合了ARM920T? ARM® Thumb® 處理器
– 工作于180 MHz時(shí)性能高達(dá)200 MIPS,存儲(chǔ)器管理單元
– 16-K 字節(jié)的數(shù)據(jù)緩存,16-K字節(jié)的指令緩存,寫(xiě)緩沖器
– 含有調(diào)試信道的內(nèi)部仿真器
– 中等規(guī)模的嵌入式宏單元結(jié)構(gòu)( 僅針對(duì)256 BGA 封裝)
· 低功耗:VDDCORE電流為30.4 mA 待機(jī)模式電流為3.1 mA
· 附加的嵌入式存儲(chǔ)器
– SRAM為16K ;ROM為128K
· 外部總線接口(EBI)
– 支持SDRAM,靜態(tài)存儲(chǔ)器, Burst Flash,無(wú)縫連接的CompactFlash®,
SmartMedia?及NAND Flash
· 提高性能而使用的系統(tǒng)外設(shè):
– 增強(qiáng)的時(shí)鐘發(fā)生器與電源管理控制器
– 兩個(gè)有雙PLL的片上振蕩器
– 低速的時(shí)鐘操作模式與軟件功耗優(yōu)化能力
– 四個(gè)可編程的外部時(shí)鐘信號(hào)
– 包括周期性中斷、看門(mén)狗及第二計(jì)數(shù)器的系統(tǒng)定時(shí)器
– 有報(bào)警中斷的實(shí)時(shí)時(shí)鐘
– 調(diào)試單元、兩線UART并支持調(diào)試信道
– 有8 個(gè)優(yōu)先級(jí)的高級(jí)中斷控制器,獨(dú)立的可屏蔽中斷源,偽中斷保護(hù)
– 7個(gè)外部中斷源及1 個(gè)快速中斷源
– 有122個(gè)可編程I/O口線的四個(gè)32 位PIO控制器,各線均有輸入變化中斷及開(kāi)漏能力
– 20通道的外設(shè)數(shù)據(jù)控制器(DMA)
· 10/100 Base-T 型以太網(wǎng)卡接口
– 獨(dú)立的媒體接口(MII)或簡(jiǎn)化的獨(dú)立媒體接口(RMII)
– 對(duì)于接收與發(fā)送有集成的28 字節(jié)FIFO及專用的DMA 通道
· USB 2.0 全速(12 M比特/秒) 主機(jī)雙端口
– 雙片上收發(fā)器(208引腳PQFP封裝中僅為一個(gè))
– 集成的FIFO及專用的DMA 通道
· USB 2.0 全速(12 M比特/秒) 器件端口
– 片上收發(fā)器, 2-K字節(jié)可配置的集成FIFO
· 多媒體卡接口(MCI)
– 自動(dòng)協(xié)議控制及快速自動(dòng)數(shù)據(jù)傳輸
– 與MMC及SD存儲(chǔ)器卡兼容,支持兩個(gè)SD存儲(chǔ)器
· 3個(gè)同步串行控制器(SSC)
– 每個(gè)接收器與發(fā)送器有獨(dú)立的時(shí)鐘及幀同步信號(hào)
– 支持I2S模擬接口,時(shí)分復(fù)用
– 32比特的高速數(shù)據(jù)流傳輸能力
· 4個(gè)通用同步/異步接收/發(fā)送器(USART)
– 支持ISO7816 T0/T1 智能卡
– 硬軟件握手
– 支持RS485 及高達(dá)115 Kbps的IrDA 總線
– USART1為全調(diào)制解調(diào)控制線
· 主機(jī)/從機(jī)串行外設(shè)接口(SPI)
– 8~ 16 位可編程數(shù)據(jù)長(zhǎng)度,可連接4個(gè)外設(shè)
· 兩個(gè) 3 通道16 位定時(shí)/計(jì)數(shù)器(TC)
– 3個(gè)外部時(shí)鐘輸入,每條通道有2 個(gè)多功能I/O引腳
– 雙PWM 產(chǎn)生器,捕獲/波形模式,上加/下減計(jì)數(shù)能力
· 兩線接口(TWI)
– 主機(jī)模式支持,所有兩線Atmel EEPROM 支持
· 所有數(shù)字引腳的IEEE 1149.1 JTAG邊界掃描
· 電源供應(yīng)
– VDDCORE,VDDOSC及VDDPLL電壓為:1.65V ~1.95V
– VDDIOP (外設(shè)I/O) 及VDDIOM (存儲(chǔ)器I/O)電壓為:1.65V~ 3.6V
結(jié)構(gòu)特點(diǎn)
以ARM9E-S為例介紹ARM9處理器的主要結(jié)構(gòu)及其特點(diǎn)。ARM9E-S的結(jié)構(gòu)如圖4所示。其主要特點(diǎn)如下:
⑴32bit定點(diǎn)RISC處理器,改進(jìn)型ARM/Thumb代碼交織,增強(qiáng)性乘法器設(shè)計(jì)。支持實(shí)時(shí)(real-time)調(diào)試;
⑵片內(nèi)指令和數(shù)據(jù)SRAM,而且指令和數(shù)據(jù)的存儲(chǔ)器容量可調(diào);
⑶片內(nèi)指令和數(shù)據(jù)高速緩沖器(cache)容量從4K字節(jié)到1M字節(jié);
⑷設(shè)置保護(hù)單元(protection unit),非常適合嵌入式應(yīng)用中對(duì)存儲(chǔ)器進(jìn)行分段和保護(hù);
⑸采用AMBA AHB總線接口,為外設(shè)提供統(tǒng)一的地址和數(shù)據(jù)總線;
⑹支持外部協(xié)處理器,指令和數(shù)據(jù)總線有簡(jiǎn)單的握手信令支持;
⑺支持標(biāo)準(zhǔn)基本邏輯單元掃描測(cè)試方法學(xué),而且支持BIST(built-in-self-test);
⑻支持嵌入式跟蹤宏單元,支持實(shí)時(shí)跟蹤指令和數(shù)據(jù)。
ARM920T運(yùn)行模式
ARM920T支持7種運(yùn)行模式,分別為:
(1)用戶模式(usr),
ARM處理器正常的程序執(zhí)行狀態(tài);
(2)快速中斷模式 (fiq),
用于高速數(shù)據(jù)傳輸或通道處理;
(3)外部中斷模式(irq),
用于通用的中斷處理;
(4)管理模式(svc),
操作系統(tǒng)使用的保護(hù)模式;
(5)數(shù)據(jù)訪問(wèn)終止模式(abt),
當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù);
(6)系統(tǒng)模式(sys),
運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù);
(7)未定義指令中止模式(und)
當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。
ARM微處理器的運(yùn)行模式可以通過(guò)軟件改變,也可以通過(guò)外部中斷或異常處理改變。大多數(shù)的應(yīng)用程序運(yùn)行在用戶模式下,當(dāng)處理器運(yùn)行在用戶模式下時(shí),某些被保護(hù)的系統(tǒng)資源是不能被訪問(wèn)的。除用戶模式以外,其余的6種模式稱為特權(quán)模式;其中除去用戶模式和系統(tǒng)模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及訪問(wèn)受保護(hù)的系統(tǒng)資源等情況。
處理能力
新一代的ARM9處理器,通過(guò)全新的設(shè)計(jì),采用了更多的晶體管,能夠達(dá)到兩倍以上于ARM7處理器的處理能力。這種處理能力的提高是通過(guò)增加時(shí)鐘頻率和減少指令執(zhí)行周期實(shí)現(xiàn)的。
(一) 時(shí)鐘頻率的提高:
ARM7處理器采用3級(jí)流水線,而ARM9采用5級(jí)流水線。增加的流水線設(shè)計(jì)提高了時(shí)鐘頻率和并行處理能力。5級(jí)流水線能夠?qū)⒚恳粋€(gè)指令處理分配到5個(gè)時(shí)鐘周期內(nèi),在每一個(gè)時(shí)鐘周期內(nèi)同時(shí)有5個(gè)指令在執(zhí)行。在同樣的加工工藝下,ARM9TDMI處理器的時(shí)鐘頻率是ARM7TDMI的1.8~2.2倍。
(二) 指令周期的改進(jìn):
指令周期的改進(jìn)對(duì)于處理器性能的提高有很大的幫助。性能提高的幅度依賴于代碼執(zhí)行時(shí)指令的重疊,這實(shí)際上是程序本身的問(wèn)題。對(duì)于采用最高級(jí)的語(yǔ)言,一般來(lái)說(shuō),性能的提高在30%左右。
最后,學(xué)習(xí)ARM9,可以按Linux應(yīng)用開(kāi)發(fā)、驅(qū)動(dòng)開(kāi)發(fā)順序?qū)W習(xí)。如果想學(xué)習(xí)Android系統(tǒng)開(kāi)發(fā),可以學(xué)完ARM9再學(xué)習(xí)ARM11開(kāi)發(fā)板下的安卓系統(tǒng)開(kāi)發(fā)。因?yàn)榘沧肯到y(tǒng)就是Linux內(nèi)核+libc庫(kù)用Java封裝而成。
ARM9是比較成熟的系列,現(xiàn)在很多成熟的產(chǎn)品都是用arm9開(kāi)發(fā)的。這個(gè)學(xué)好了,以后的系列自學(xué)都會(huì)容易一些,因?yàn)锳RM系列架構(gòu)都是一樣的。所謂“師傅領(lǐng)進(jìn)門(mén),修行在自身”,學(xué)會(huì)用一種處理器,掌握學(xué)習(xí)方法,其他的也一樣。