1.5 ARM芯片的特點與選型
1.5.1 不同系列處理器間的比較
表1.3顯示了ARM7、ARM9、ARM10及ARM11內(nèi)核之間屬性的比較。有些屬性依賴于生產(chǎn)過程和工藝,具體芯片需參閱其芯片手冊。
表1.3 ARM系列處理器屬性比較
項 目 |
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 |
獨立16KB指令和數(shù)據(jù)Cache |
否 |
是 |
v4T |
否 |
ARM922T |
MMU |
獨立8KB指令和數(shù)據(jù)Cache |
否 |
是 |
v4T |
否 |
ARM926EJ-S |
MMU |
Cache和TCM可配置 |
是 |
是 |
v5TEJ |
是 |
ARM940T |
MPU |
獨立4KB指令和數(shù)據(jù)Cache |
否 |
是 |
v4T |
否 |
ARM946E-S |
MPU |
Cache和TCM可配置 |
否 |
是 |
v5TE |
是 |
ARM966E-S |
無 |
Cache和TCM可配置 |
否 |
是 |
v5TE |
是 |
ARM1020E |
MMU |
獨立32KB指令和數(shù)據(jù)Cache |
否 |
是 |
v5TE |
是 |
ARM1022E |
MMU |
獨立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.2 ARM芯片的選型
隨著國內(nèi)嵌入式應(yīng)用領(lǐng)域的發(fā)展,ARM芯片必然會獲得廣泛的重視和應(yīng)用。但是由于ARM芯片有多達(dá)十幾種的芯核結(jié)構(gòu)、70多芯片生產(chǎn)廠家以及千變?nèi)f化的內(nèi)部功能配置組合,開發(fā)人員在選擇方案時會有一定的困難。所以對ARM芯片做對比研究是十分必要的。
1.ARM芯片選擇的一般原則
從應(yīng)用角度看,在選擇ARM芯片時應(yīng)從以下幾個方面考慮。
(1)ARM芯核
如果希望使用Windows CE或Linux等操作系統(tǒng)以減少軟件開發(fā)時間,就需要選擇ARM720T以上帶有MMU(Memory Management Unit)功能的ARM芯片,ARM720T、StrongARM、ARM920T、ARM922T、ARM946T都帶有MMU功能。而ARM7TDMI沒有MMU,不支持Windows CE和大部分的Linux;但目前有uCLinux等少數(shù)幾種Linux不需要MMU的支持。
(2)系統(tǒng)時鐘控制器
系統(tǒng)時鐘決定了ARM芯片的處理速度。ARM7的處理速度為0.97MIPS/MHz,常見的ARM7芯片系統(tǒng)主時鐘為20~133MHz,ARM9的處理速度為1.1MIPS/MHz,常見的ARM9的系統(tǒng)主時鐘為100~233MHz,ARM10最高可以達(dá)到700MHz。不同芯片對時鐘的處理不同,有的芯片只有一個主時鐘頻率,這樣的芯片可能不能同時顧及UART和音頻時鐘準(zhǔn)確性,如Cirrus Logic的EP7312等;有的芯片內(nèi)部時鐘控制器可以分別為CPU核和USB、UART、DSP、音頻等功能部件提供同頻率的時鐘,如PHILIPS公司SAA7750等芯片。
(3)內(nèi)部存儲器容量
在不需要大容量存儲器時,可以考慮選用有內(nèi)置存儲器的ARM芯片。表1.5列出了內(nèi)置存儲器的ARM芯片。
表1.5 內(nèi)置存儲器的ARM芯片
芯 片 型 號 |
供 應(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控制器,有些芯片甚至同時有USB Host和USB Slave控制器。表1.6顯示了內(nèi)置USB控制器的ARM芯片。
表1.6 內(nèi)置USB控制器的ARM芯片
芯 片 型 號 |
ARM內(nèi)核 |
供 應(yīng) 商 |
USB Slave |
USB Host |
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 |
Cirrus logic |
0 |
3 |
1 |
Dragonball MX1 |
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ù)表
芯 片 型 號 |
ARM內(nèi)核 |
供 應(yīng) 商 |
USB Slave |
USB Host |
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è)計時需要計算實際可以使用的GPIO數(shù)量。
(6)中斷控制器
ARM內(nèi)核只提供快速中斷(FIQ)和標(biāo)準(zhǔn)中斷(IRQ)兩個中斷向量。但各個半導(dǎo)體廠家在設(shè)計芯片時加入了自己定義的中斷控制器,以便支持諸如串行口、外部中斷、時鐘中斷等硬件中斷。外部中斷控制是選擇芯片必須考慮的重要因素,合理的外部中斷設(shè)計可以很大程度地減少任務(wù)調(diào)度工作量。例如PHILIPS公司的SAA7750,所有GPIO都可以設(shè)置成FIQ或IRQ,并且可以選擇上升沿、下降沿、高電平和低電平4種中斷方式。這使得紅外線遙控接收、指輪盤和鍵盤等任務(wù)都可以作為背景程序運行。而Cirrus Logic公司的EP7312芯片只有4個外部中斷源,并且每個中斷源都只能是低電平或高電平中斷,這樣在接收紅外線信號的場合必須用查詢方式,浪費大量CPU時間。
(7)IIS(Integrate Interface of Sound)接口
即集成音頻接口。如果設(shè)計音頻應(yīng)用產(chǎn)品,IIS總線接口是必需的。
(8)nWAIT信號
這是一個外部總線速度控制信號。不是每個ARM芯片都提供這個信號引腳,利用這個信號與廉價的GAL芯片就可以實現(xiàn)與符合PCMCIA標(biāo)準(zhǔn)的WLAN卡和Bluetooth卡的接口,而不需要外加高成本的PCMCIA專用控制芯片。另外,當(dāng)需要擴(kuò)展外部DSP協(xié)處理器時,此信號也是必需的。
(9)RTC(Real Time Clock)
很多ARM芯片都提供實時時鐘功能,但方式不同。如Cirrus Logic公司的EP7312的RTC只是一個32位計數(shù)器,需要通過軟件計算出年月日時分秒;而SAA7750和S3C2410等芯片的RTC直接提供年月日時分秒格式。
(10)LCD控制器
有些ARM芯片內(nèi)置LCD控制器,有的甚至內(nèi)置64KB彩色TFT LCD控制器。在設(shè)計PDA和手持式顯示記錄設(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)置了一個16位立體聲音頻ADC和DAC,并且?guī)Ф鷻C(jī)驅(qū)動。
(13)擴(kuò)展總線
大部分ARM芯片具有外部SDRAM和SRAM擴(kuò)展接口,不同的ARM芯片可以擴(kuò)展的芯片數(shù)量即片選線數(shù)量不同,外部數(shù)據(jù)總線有8位、16位或32位。為某些特殊應(yīng)用設(shè)計的ARM芯片(如德國Micronas的PUC3030A)沒有外部擴(kuò)展功能。
(14)UART和IrDA
幾乎所有的ARM芯片都具有1~2個UART接口,可以用于和PC機(jī)通信或用Angel進(jìn)行調(diào)試。一般的ARM芯片通信波特率為115200bit/s,少數(shù)專為藍(lán)牙技術(shù)應(yīng)用設(shè)計的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芯片
芯 片 型 號 |
供 應(yīng) 商 |
DSP Core |
DSP MIPS |
應(yīng) 用 |
TMS320DSC2X |
TI |
16bit C5000 |
500 |
數(shù)碼照相機(jī) |
Dragonball MX1 |
Motorola |
24bit 56000 |
MP3播放器 |
|
SAA7750 |
Philips |
24bit EPIC |
73 |
CD-MP3 |
VWS22100 |
Philips |
16bit OAK |
||
STLC1502 |
ST |
D950 |
52 |
VoIP |
GMS30C3201 |
Hynix |
16bit Piccolo |
||
AT75C220 |
ATMEL |
16bit OAK |
40 |
|
AT75C310 |
ATMEL |
16bit OAK |
||
AT75C320 |
ATMEL |
16bit OAK |
40×2 |
|
L7205 |
Linkup |
16bit Piccolo |
60×2 |
無線應(yīng)用 |
L7210 |
Linkup |
16bit Piccolo |
||
Quatro |
OAK |
16bit OAK |
(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芯片
芯 片 型 號 |
供 應(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ù)器和看門狗
一般ARM芯片都具有2~4個16位或32位時鐘計數(shù)器和一個看門狗計數(shù)器。
(18)電源管理功能
ARM芯片的耗電量與工作頻率成正比,一般ARM芯片都有低功耗模式、睡眠模式和關(guān)閉模式。
(19)DMA控制器
有些ARM芯片內(nèi)部集成有DMA(Direct Memory Access)接口,可以和硬盤等外部設(shè)備高速交換數(shù)據(jù),同時減少數(shù)據(jù)交換時對CPU資源的占用。
另外,還可以選擇的內(nèi)部功能部件有:HDLC、SDLC、CD-ROM Decoder、Ethernet MAC、VGA controller、DC-DC??梢赃x擇的內(nèi)置接口有:IIC、SPDIF、CAN、SPI、PCI、PCMCIA。
最后需說明的是封裝問題。ARM芯片現(xiàn)在主要的封裝有QFP、TQFP、PQFP、LQFP、BGA、LBGA等形式,BGA封裝具有芯片面積小的特點,可以減少PCB板的面積,但是需要專用的焊接設(shè)備,無法手工焊接。另外一般BGA封裝的ARM芯片無法用雙面板完成PCB布線,需要多層PCB板布線。
2.多芯核結(jié)構(gòu)ARM芯片的選擇
為了增強多任務(wù)處理能力、數(shù)學(xué)運算能力、多媒體以及網(wǎng)絡(luò)處理能力,某些供應(yīng)商提供的ARM芯片內(nèi)置多個芯核,目前常見的ARM+DSP,ARM+FPGA,ARM+ARM等結(jié)構(gòu)。
(1)多ARM芯核
為了增強多任務(wù)處理能力和多媒體處理能力,某些ARM芯片內(nèi)置多個ARM芯核。例如Portal player公司的PP5002內(nèi)部集成了兩個ARM7TDMI芯核,可以應(yīng)用于便攜式MP3播放器的編碼器或解碼器。從科勝訊公司(Conexant)分離出來的專門致力于高速通信芯片設(shè)計生產(chǎn)的MinSpeed公司在其多款高速通信芯片中集成了2~4個ARM7TDMI內(nèi)核。
(2)ARM芯核+DSP芯核
為了增強數(shù)學(xué)運算功能和多媒體處理功能,許多供應(yīng)商在其ARM芯片內(nèi)增加了DSP協(xié)處理器。通常加入的DSP芯核有ARM公司的Piccolo DSP芯核、OAK公司16位定點DSP芯核、TI的TMS320C5000系列DSP芯核和Motorola的56K DSP芯核等。見表1.7。
(3)ARM芯核+FPGA
為了提高系統(tǒng)硬件的在線升級能力,某些公司在ARM芯片內(nèi)部集成了FPGA。見表1.8。
3.選擇方案舉例
表1.9列舉的最佳方案僅供參考,由于SoC集成電路的發(fā)展非常迅速,今天的最佳方案到明天就可能不是最佳的了。因此任何時候在選擇方案時,都應(yīng)廣泛搜尋一下主要的ARM芯片供應(yīng)商,以找出最適合的芯片。
表1.9 最佳應(yīng)用方案推薦
應(yīng) 用 |
第 一 方 案 |
第 二 方 案 |
備 注 |
高檔PDA |
S3C2410 |
Dragon ball MX1 |
|
便攜CD MP3播放器 |
SAA7750 |
USB和CDROM解碼器 |
|
FLASH MP3播放器 |
SAA7750 |
PUC3030A |
內(nèi)置USB和FLASH |
WLAN和BT應(yīng)用產(chǎn)品 |
L7205,L7210 |
Dragon ball MX1 |
高速串口和PCMCIA接口 |
VoiceOver IP |
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ā) |
S5N8946 |
MTK-20141 |
||
電視機(jī)頂盒 |
GMS30C3201 |
VGA控制器 |
|
3G移動電話機(jī) |
MSM6000 |
OMAP1510 |
|
10G光纖通信 |
MinSpeed公司系列ARM芯片 |
多ARM核+DSP核 |