ARM系列微處理器簡介之:ARM芯片的特點(diǎn)與選型
表1.3顯示了ARM7、ARM9、ARM10及ARM11內(nèi)核之間屬性的比較。有些屬性依賴于生產(chǎn)過程和工藝,具體芯片需參閱其芯片手冊。
表1.3 ARM系列處理器屬性比較
項(xiàng)目
ARM7
ARM9
ARM10
ARM11
流水線深度
3級
5級
6級
8級
典型頻率(MHz)
80
150
260
335
功耗(mw/MHz)
0.06
0.19(+Cache)
0.5(+Cache)
0.4(+Cache)
MIPS/MHz
0.97
1.1
1.3
1.2
架構(gòu)
馮·諾伊曼
哈佛
哈佛
哈佛
乘法器
8×32
8×32
16×32
16×32
表1.4總結(jié)了各種處理器的不同功能。
表1.4 ARM處理器不同功能特性
CPU核
MMU/MPU
Cache
Jazelle
Thumb
指令集
E
ARM7TDMI
無
無
否
是
v4T
否
ARM7EJ-S
無
無
是
是
v5TEJ
是
ARM720T
MMU
統(tǒng)一8KBCache
否
是
v4T
否
ARM920T
MMU
獨(dú)立16KB指令和數(shù)據(jù)Cache
否
是
v4T
否
ARM922T
MMU
獨(dú)立8KB指令和數(shù)據(jù)Cache
否
是
v4T
否
ARM926EJ-S
MMU
Cache和TCM可配置
是
是
v5TEJ
是
ARM940T
MPU
獨(dú)立4KB指令和數(shù)據(jù)Cache
否
是
v4T
否
ARM946E-S
MPU
Cache和TCM可配置
否
是
v5TE
是
ARM966E-S
無
Cache和TCM可配置
否
是
v5TE
是
ARM1020E
MMU
獨(dú)立32KB指令和數(shù)據(jù)Cache
否
是
v5TE
是
ARM1022E
MMU
獨(dú)立16KB指令和數(shù)據(jù)Cache
否
是
v5TE
是
ARM1026EJ-S
MMU
Cache和TCM可配置
是
是
v5TE
是
ARM1036J-S
MMU
Cache和TCM可配置
是
是
v6
是
ARM1136JF-S
MMU
Cache和TCM可配置
是
是
v6
是
1.5.2ARM芯片的選型隨著國內(nèi)嵌入式應(yīng)用領(lǐng)域的發(fā)展,ARM芯片必然會(huì)獲得廣泛的重視和應(yīng)用。但是由于ARM芯片有多達(dá)十幾種的芯核結(jié)構(gòu)、70多芯片生產(chǎn)廠家以及千變?nèi)f化的內(nèi)部功能配置組合,開發(fā)人員在選擇方案時(shí)會(huì)有一定的困難。所以對ARM芯片做對比研究是十分必要的。
1.ARM芯片選擇的一般原則從應(yīng)用角度看,在選擇ARM芯片時(shí)應(yīng)從以下幾個(gè)方面考慮。
(1)ARM芯核
如果希望使用WindowsCE或Linux等操作系統(tǒng)以減少軟件開發(fā)時(shí)間,就需要選擇ARM720T以上帶有MMU(MemoryManagementUnit)功能的ARM芯片,ARM720T、StrongARM、ARM920T、ARM922T、ARM946T都帶有MMU功能。而ARM7TDMI沒有MMU,不支持WindowsCE和大部分的Linux;但目前有uCLinux等少數(shù)幾種Linux不需要MMU的支持。
(2)系統(tǒng)時(shí)鐘控制器
系統(tǒng)時(shí)鐘決定了ARM芯片的處理速度。ARM7的處理速度為0.97MIPS/MHz,常見的ARM7芯片系統(tǒng)主時(shí)鐘為20~133MHz,ARM9的處理速度為1.1MIPS/MHz,常見的ARM9的系統(tǒng)主時(shí)鐘為100~233MHz,ARM10最高可以達(dá)到700MHz。不同芯片對時(shí)鐘的處理不同,有的芯片只有一個(gè)主時(shí)鐘頻率,這樣的芯片可能不能同時(shí)顧及UART和音頻時(shí)鐘準(zhǔn)確性,如CirrusLogic的EP7312等;有的芯片內(nèi)部時(shí)鐘控制器可以分別為CPU核和USB、UART、DSP、音頻等功能部件提供同頻率的時(shí)鐘,如PHILIPS公司SAA7750等芯片。
(3)內(nèi)部存儲(chǔ)器容量
在不需要大容量存儲(chǔ)器時(shí),可以考慮選用有內(nèi)置存儲(chǔ)器的ARM芯片。表1.5列出了內(nèi)置存儲(chǔ)器的ARM芯片。
表1.5 內(nèi)置存儲(chǔ)器的ARM芯片
芯片型號(hào)
供應(yīng)商
Flash容量
ROM容量
SDAM容量
AT91F40162
ATMEL
2MB
256KB
4KB
AT91FR4081
ATMEL
1MB
128KB
SAA7750
Philips
384KB
64KB
PUC3030A
Micornas
256KB
56KB
HMS30C7272
Hynix
192KB
LC67F500
Snayo
640KB
32KB
(4)USB接口
許多ARM芯片內(nèi)置有USB控制器,有些芯片甚至同時(shí)有USBHost和USBSlave控制器。表1.6顯示了內(nèi)置USB控制器的ARM芯片。
表1.6 內(nèi)置USB控制器的ARM芯片
芯片型號(hào)
ARM內(nèi)核
供應(yīng)商
USBSlave
USBHost
IIS接口
S3C2410
ARM920T
Samsung
1
2
1
S3C2400
ARM920T
Samsung
1
2
1
S5N8946
ARM7TDMI
Samsung
1
0
0
L7205
ARM720T
Linkup
1
1
0
L7210
ARM720T
Linkup
1
1
0
EP9312
ARM920T
Cirruslogic
0
3
1
DragonballMX1
ARM920T
Motorola
1
0
1
SAA7750
ARM720T
Plilips
1
0
1
TMS320DSC2x
ARM7TDMI
TI
1
0
0
PUC3030A
ARM7TDMI
Micronas
1
0
5
ML67100
ARM7TDMI
OKI
1
0
0
ML7051LA
ARM7TDMI
OKI
1
0
0
SA-1100
StrongARM
Intel
1
0
0
續(xù)表
芯片型號(hào)
ARM內(nèi)核
供應(yīng)商
USBSlave
USBHost
IIS接口
LH7979531
ARM7TDMI
Sharp
1
0
0
GMS320C7201
ARM720T
Hynix
1
0
1
(5)GPIO數(shù)量
在某些芯片供應(yīng)商提供的說明書中,往往申明的是最大可能的GPIO數(shù)量,但是有許多引腳是和地址線、數(shù)據(jù)線、串口線等引腳復(fù)用的。這樣在系統(tǒng)設(shè)計(jì)時(shí)需要計(jì)算實(shí)際可以使用的GPIO數(shù)量。
(6)中斷控制器
ARM內(nèi)核只提供快速中斷(FIQ)和標(biāo)準(zhǔn)中斷(IRQ)兩個(gè)中斷向量。但各個(gè)半導(dǎo)體廠家在設(shè)計(jì)芯片時(shí)加入了自己定義的中斷控制器,以便支持諸如串行口、外部中斷、時(shí)鐘中斷等硬件中斷。外部中斷控制是選擇芯片必須考慮的重要因素,合理的外部中斷設(shè)計(jì)可以很大程度地減少任務(wù)調(diào)度工作量。例如PHILIPS公司的SAA7750,所有GPIO都可以設(shè)置成FIQ或IRQ,并且可以選擇上升沿、下降沿、高電平和低電平4種中斷方式。這使得紅外線遙控接收、指輪盤和鍵盤等任務(wù)都可以作為背景程序運(yùn)行。而CirrusLogic公司的EP7312芯片只有4個(gè)外部中斷源,并且每個(gè)中斷源都只能是低電平或高電平中斷,這樣在接收紅外線信號(hào)的場合必須用查詢方式,浪費(fèi)大量CPU時(shí)間。
(7)IIS(IntegrateInterfaceofSound)接口
即集成音頻接口。如果設(shè)計(jì)音頻應(yīng)用產(chǎn)品,IIS總線接口是必需的。
(8)nWAIT信號(hào)
這是一個(gè)外部總線速度控制信號(hào)。不是每個(gè)ARM芯片都提供這個(gè)信號(hào)引腳,利用這個(gè)信號(hào)與廉價(jià)的GAL芯片就可以實(shí)現(xiàn)與符合PCMCIA標(biāo)準(zhǔn)的WLAN卡和Bluetooth卡的接口,而不需要外加高成本的PCMCIA專用控制芯片。另外,當(dāng)需要擴(kuò)展外部DSP協(xié)處理器時(shí),此信號(hào)也是必需的。
(9)RTC(RealTimeClock)
很多ARM芯片都提供實(shí)時(shí)時(shí)鐘功能,但方式不同。如CirrusLogic公司的EP7312的RTC只是一個(gè)32位計(jì)數(shù)器,需要通過軟件計(jì)算出年月日時(shí)分秒;而SAA7750和S3C2410等芯片的RTC直接提供年月日時(shí)分秒格式。
(10)LCD控制器
有些ARM芯片內(nèi)置LCD控制器,有的甚至內(nèi)置64KB彩色TFTLCD控制器。在設(shè)計(jì)PDA和手持式顯示記錄設(shè)備時(shí),選用內(nèi)置LCD控制器的ARM芯片(如S3C2410)較為適宜。
(11)PWM輸出
有些ARM芯片有2~8路PWM輸出,可以用于電機(jī)控制或語音輸出等場合。
(12)ADC和DAC
有些ARM芯片內(nèi)置2~8通道8~12位通用ADC,可以用于電池檢測、觸摸屏和溫度監(jiān)測等。PHILIPS的SAA7750更是內(nèi)置了一個(gè)16位立體聲音頻ADC和DAC,并且?guī)Ф鷻C(jī)驅(qū)動(dòng)。
(13)擴(kuò)展總線
大部分ARM芯片具有外部SDRAM和SRAM擴(kuò)展接口,不同的ARM芯片可以擴(kuò)展的芯片數(shù)量即片選線數(shù)量不同,外部數(shù)據(jù)總線有8位、16位或32位。為某些特殊應(yīng)用設(shè)計(jì)的ARM芯片(如德國Micronas的PUC3030A)沒有外部擴(kuò)展功能。
(14)UART和IrDA
幾乎所有的ARM芯片都具有1~2個(gè)UART接口,可以用于和PC機(jī)通信或用Angel進(jìn)行調(diào)試。一般的ARM芯片通信波特率為115200bit/s,少數(shù)專為藍(lán)牙技術(shù)應(yīng)用設(shè)計(jì)的ARM芯片的UART通信波特率可以達(dá)到920kbit/s,如Linkup公司L7205。
(15)DSP協(xié)處理器
表1.7總結(jié)了ARM+DSP結(jié)構(gòu)的ARM芯片。
表1.7 ARM+DSP結(jié)構(gòu)的ARM芯片
芯片型號(hào)
供應(yīng)商
DSPCore
DSPMIPS
應(yīng)用
TMS320DSC2X
TI
16bitC5000
500
數(shù)碼照相機(jī)
DragonballMX1
Motorola
24bit56000
MP3播放器
SAA7750
Philips
24bitEPIC
73
CD-MP3
VWS22100
Philips
16bitOAK
GSM
STLC1502
ST
D950
52
VoIP
GMS30C3201
Hynix
16bitPiccolo
AT75C220
ATMEL
16bitOAK
40
AT75C310
ATMEL
16bitOAK
AT75C320
ATMEL
16bitOAK
40×2
L7205
Linkup
16bitPiccolo
60×2
無線應(yīng)用
L7210
Linkup
16bitPiccolo
Quatro
OAK
16bitOAK
(16)內(nèi)置FPGA
有些ARM芯片內(nèi)置有FPGA,適合于通信等領(lǐng)域。表1.8總結(jié)了ARM+FPGA結(jié)構(gòu)的ARM芯片。
表1.8 ARM+FPGA結(jié)構(gòu)的ARM芯片
芯片型號(hào)
供應(yīng)商
ARM芯核
FPGA門數(shù)
引腳數(shù)
EPXA1
Altera
ARM922T
100000
484
EPXA4
Altera
ARM922T
400000
672
EPXA10
Altera
ARM922T
1000000
1020
TA7S20系列
Triscend
ARM7TDMI
多種
多種
(17)時(shí)鐘計(jì)數(shù)器和看門狗
一般ARM芯片都具有2~4個(gè)16位或32位時(shí)鐘計(jì)數(shù)器和一個(gè)看門狗計(jì)數(shù)器。
(18)電源管理功能
ARM芯片的耗電量與工作頻率成正比,一般ARM芯片都有低功耗模式、睡眠模式和關(guān)閉模式。
(19)DMA控制器
有些ARM芯片內(nèi)部集成有DMA(DirectMemoryAccess)接口,可以和硬盤等外部設(shè)備高速交換數(shù)據(jù),同時(shí)減少數(shù)據(jù)交換時(shí)對CPU資源的占用。
另外,還可以選擇的內(nèi)部功能部件有:HDLC、SDLC、CD-ROMDecoder、EthernetMAC、VGAcontroller、DC-DC??梢赃x擇的內(nèi)置接口有:IIC、SPDIF、CAN、SPI、PCI、PCMCIA。
最后需說明的是封裝問題。ARM芯片現(xiàn)在主要的封裝有QFP、TQFP、PQFP、LQFP、BGA、LBGA等形式,BGA封裝具有芯片面積小的特點(diǎn),可以減少PCB板的面積,但是需要專用的焊接設(shè)備,無法手工焊接。另外一般BGA封裝的ARM芯片無法用雙面板完成PCB布線,需要多層PCB板布線。
2.多芯核結(jié)構(gòu)ARM芯片的選擇為了增強(qiáng)多任務(wù)處理能力、數(shù)學(xué)運(yùn)算能力、多媒體以及網(wǎng)絡(luò)處理能力,某些供應(yīng)商提供的ARM芯片內(nèi)置多個(gè)芯核,目前常見的ARM+DSP,ARM+FPGA,ARM+ARM等結(jié)構(gòu)。
(1)多ARM芯核
為了增強(qiáng)多任務(wù)處理能力和多媒體處理能力,某些ARM芯片內(nèi)置多個(gè)ARM芯核。例如Portalplayer公司的PP5002內(nèi)部集成了兩個(gè)ARM7TDMI芯核,可以應(yīng)用于便攜式MP3播放器的編碼器或解碼器。從科勝訊公司(Conexant)分離出來的專門致力于高速通信芯片設(shè)計(jì)生產(chǎn)的MinSpeed公司在其多款高速通信芯片中集成了2~4個(gè)ARM7TDMI內(nèi)核。
(2)ARM芯核+DSP芯核
為了增強(qiáng)數(shù)學(xué)運(yùn)算功能和多媒體處理功能,許多供應(yīng)商在其ARM芯片內(nèi)增加了DSP協(xié)處理器。通常加入的DSP芯核有ARM公司的PiccoloDSP芯核、OAK公司16位定點(diǎn)DSP芯核、TI的TMS320C5000系列DSP芯核和Motorola的56KDSP芯核等。見表1.7。
(3)ARM芯核+FPGA
為了提高系統(tǒng)硬件的在線升級能力,某些公司在ARM芯片內(nèi)部集成了FPGA。見表1.8。
3.選擇方案舉例表1.9列舉的最佳方案僅供參考,由于SoC集成電路的發(fā)展非常迅速,今天的最佳方案到明天就可能不是最佳的了。因此任何時(shí)候在選擇方案時(shí),都應(yīng)廣泛搜尋一下主要的ARM芯片供應(yīng)商,以找出最適合的芯片。
表1.9 最佳應(yīng)用方案推薦
應(yīng)用
第一方案
第二方案
備注
高檔PDA
S3C2410
DragonballMX1
便攜CDMP3播放器
SAA7750
USB和CDROM解碼器
FLASHMP3播放器
SAA7750
PUC3030A
內(nèi)置USB和FLASH
WLAN和BT應(yīng)用產(chǎn)品
L7205,L7210
DragonballMX1
高速串口和PCMCIA接口
VoiceOverIP
STLC1502
數(shù)碼照相機(jī)
TMS320DSC24
TMS320DSC21
內(nèi)置高速圖像處理DSP
續(xù)表
應(yīng)用
第一方案
第二方案
備注
便攜式語音email機(jī)
AT75C320
AT75C310
內(nèi)置雙DSP,可以分別處理MODEM和語音
GSM手機(jī)
VWS22100
AD20MSP430
專為GSM手機(jī)開發(fā)
ADSLModem
S5N8946
MTK-20141
電視機(jī)頂盒
GMS30C3201
VGA控制器
3G移動(dòng)電話機(jī)
MSM6000
OMAP1510
10G光纖通信
MinSpeed公司系列ARM芯片
多ARM核+DSP核