|
ARM公司以及ARM芯片的现状和发展,从应用的角度介绍了ARM芯片的选择方法,并介绍了具有多芯核结构的ARM芯片。列举了目前的主要ARM芯片供应商,其产品以及应用领域。举例说明了几种嵌入式产品的最佳ARM芯片选择方案。
3 B' F: ^5 e1 |* _3 N* C# g0 f: T6 d0 P
7 r2 ~% I" T7 B) W
名称简介
" q' q3 ?$ S( oARM芯片
3 w8 q. l8 m$ {0 B2 k0 L/ Q
. _8 E. `9 p u5 H# C' z6 {ARM公司自1990年正式成立以来, 在32位RISC (Reduced Instruction Set Computer CPU)开发领域不断取得突破,其结构已经从V3发展到V7。由于ARM公司自成立以来,一直以IP(Intelligence Property)提供者的身份向各大半导体制造商出售知识产权,而自己从不介入芯片的生产销售,加上其设计的芯核具有功耗低、成本低等显著优点,因此获得众多的半导体厂家和整机厂商的大力支持,在32位嵌入式应用领域获得了巨大的成功,已经占有75%以上的32位RISC嵌入式产品市场。在低功耗、低成本的嵌入式应用领域确立了市场领导地位。设计、生产ARM芯片的国际大公司已经超过50多家,国内中兴通讯和华为通讯等公司也已经购买ARM公司的芯核用于通讯专用芯片的设计。
' a! I2 ~/ r; J" X9 y' x; S( K. m/ n* R3 B) B' G" o$ F
非常流行的ARM芯核有 ARM7TDMI, StrongARM, ARM720T, ARM9TDMI, ARM922T, ARM940T, RM946T, ARM966T, ARM10TDM1等。自V5以后,ARM公司提供Piccolo DSP的芯核给芯片设计者,用于设计ARM+DSP 的SOC (System On Chip) 结构的芯片。此外,ARM芯片还获得了许多实时操作系统(Real Time Operating System)供应商的支持,比较知名的有:Windows CE、Linux、pSOS、VxWorks Mucleus、EPOC、uCOS、BeOS等。随着国内嵌入式应用领域的发展,ARM芯片必然会获得广泛的重视和应用。但是,由于ARM芯片有多达十几种的芯核结构,70多家芯片生产厂家,以及千变万化的内部功能配置组合,给开发人员在选择方案时带来一定的困难。所以,对ARM芯片做一对比研究是十分必要的。- ^' d y6 @. V1 j; F* N
`! v/ l! S A; n) {8 H
折叠编辑本段选择原则
; |* d3 v5 K0 y/ D% J从应用的角度,对在选择ARM芯片时所应考虑的主要因素做一详细的说明。# e' t* @# [% x+ }" b# |: Z, k
7 P' h8 G+ ]. d) M
折叠ARM/ a0 Q" |" v& @9 v$ G- s
如果希望使用WinCE或Linux等操作系统以减少软件开发时间,就需要选择ARM720T以上带有MMU(memory management unit)功能的ARM芯片,ARM720T、StrongARM、ARM920T、ARM922T、ARM946T都带有MMU功能。而ARM7TDMI没有MMU,不支持Windows CE和大部分的Linux, 但目前有uCLinux等少数几种Linux不需要MMU的支持。0 o) C" Q- ]7 b4 ^
6 @1 O- G/ V5 q+ u+ x2 ^1 P: |
折叠系统时钟5 ^& z4 Z' J- u5 U. j0 _2 [2 b T7 \
系统时钟决定了ARM芯片的处理速度。ARM7的处理速度为0.9MIPS/MHz,常见的ARM7芯片系统主时钟20MHz-133MHz,ARM9的处理速度为1.1MIPS/MHz,常见的ARM9的系统主时钟为100MHz-233MHz, ARM10最高可以达到700MHz。不同芯片对时钟的处理不同,有的芯片只有一个主时钟频率,这样的芯片可能不能同时顾及UART和音频时钟的准确性,如Cirrus Logic的EP7312等;有的芯片内部时钟控制器可以分别为CPU核和USB、UART、DSP、音频等功能部件提供不同频率的时钟,如PHILIPS公司的SAA7550等芯片。" x4 G2 r5 o5 G& j b, U3 Y; C
. s7 p l T, i% u% V
折叠存储容量* m4 y) Y I" D4 r. }
在不需要大容量存储器时,可以考虑选用有内置存储器的ARM芯片。见表1。
6 i- j# U" ^' p- T9 N5 M+ N, ?' [% Y/ ?9 ]% B8 h! r- _* o# Y- }
表1 内置存储器的ARM芯片
|2 u1 _. K/ T; X9 c% I% v& C0 L
& i# E9 }. K, M1 N6 }3 H( U& c芯片型号 供应商 FLASH容量 ROM容量 SRAM容量* {4 w4 `2 q5 F( b Y. W8 {- v' Y$ I# z
! b Y; O* C; q+ CAT91F40162 ATMEL 2M Bytes 256K bytes 4K Bytes
, m9 j2 h9 G/ _4 D" L2 S3 o: G- Z; q) X e/ ?1 y9 H- h
AT91FR4081 ATMEL 1M Bytes 128K Bytes: }. ` p- i5 w# P1 S5 w/ q5 O
9 f: M; f0 U; kSAA7750 Philips 384K Bytes 64K bytes
y, T- S8 b2 ?( `
n7 R/ q3 `3 @3 r( d' T v# ]PUC3030A Micronas 256K Bytes 56K bytes
; ?- Z# m6 n" U9 S, d% D) w1 A; j6 f3 L( j1 ~. J
HMS30C7202 Hynix 192K Bytes
' u- `) D O1 @) Z& u
" b3 n8 O1 e' X7 ^9 W& ^" CLC67F500 Snayo 640K Bytes 32K& p2 u0 L9 ?1 z/ r
* q R% ~) ^: [# e# g, ]" T折叠USB接口4 L" N+ V) G0 V* q
许多ARM芯片内置有USB控制器,有些芯片甚至同时有USB Host和USB Slave控制器。见表2。
4 K* l% P: R: @, ?
/ V; {0 D/ }: X9 I" `! b+ S% p表2 内置USB控制器的ARM芯片
; I/ Y5 d' w, P7 Z8 K. q. g& h( j! k2 V2 Y
芯片型号 ARM内核 供应商 USB Slave USB Host IIS接口
; R! J2 [$ w. Y1 S$ O
6 x0 X0 Z% M; S& s0 P B; f1 h y* I7 @, XS3C2410 ARM920T Samsung 1 2 1
: w% @) v/ ]0 L% _3 \ X/ G0 B5 s( Q* |" I
S3C2400 ARM920T Samsung 1 2 1
- y) n) a& ` a9 ?5 N% U0 t
% l+ G ^ [# M& |5 a6 J; mS5N8946 ARM7TDMI Samsung 1 0 0
; n: t: H0 h" k" j" b$ n- O
6 Y" Y* {1 A( v) y9 ]) {L7205 ARM720T Linkup 1 1 0) `1 h- V/ n4 D' \
' q) O4 c/ p T' bL7210 ARM720T Linkup 1 1 0. E* f+ M$ T, {0 C8 l* I
% C5 s3 n$ z2 C4 z* G4 Y E8 ]: O1 G& T
EP9312 ARM920T Cirrus Logic 0 3 1# P9 X! Z" S+ E2 _7 r5 w% B
% S3 i! a% P6 g% v7 m& mDragonball MX1 ARM920T Motorola 1 0 1
( s+ w9 i/ k" w) M$ G3 P/ \3 }9 z. d+ k; ~. |$ n: n
SAA7750 ARM720T Philips 1 0 1* w, O5 b8 V8 i) G2 v- A" B
1 x1 W0 f& [. kTMS320DSC2x ARM7TDMI TI 1 0 0
1 k& d3 }* u: B7 v, X1 b2 d$ {/ F3 J) m- K: ]8 C) _$ P
PUC3030A ARM7TDMI Micronas 1 0 52 E) H# F* P$ g9 T+ Q! [' r
# u. q+ b' y* B3 ?6 Q
AAEC-2000 ARM920T Agilent 1 0 0
2 L* v% r! `" Z/ P/ I2 i$ K$ d/ }1 N. p; M7 E+ h
ML67100 ARM7TDMI OKI 1 0 0
0 [- H3 S! D$ w- m; r% f% e1 u- R+ ~7 i
ML7051LA ARM7TDMI OKI 1 0 0
8 x# \8 T5 r h% e) j# W
0 P1 |; `( u. W2 v# Y. H& z3 jSA-1100 StrongARM Intel 1 0 0" E5 S; ?. v9 z* {# V
/ M) }. T4 }! f( m/ L9 q& WLH79531 ARM7TDMI Sharp 1 0 07 g z* o6 `# X3 ~" M+ Q7 h! ~ Q1 i5 Y
v* n/ W3 ? p' C3 t" gGMS320C7201 ARM720T Hynix 1 0 1
' d# c) `" c0 y0 ? `! q: `
0 K" J# S1 E6 t折叠GPIO# [* C( _, q6 N' w7 b @! D
在某些芯片供应商提供的说明书中,往往申明的是最大可能的GPIO数量,但是有许多引脚是和地址线、数据线、串口线等引脚复用的。这样在系统设计时需要计算实际可以使用的GPIO数量。
3 I# m5 x3 u0 w: [7 R" H) P4 ]5 q& j
折叠中断
! \- D! j( ]3 ?1 x; y8 JARM内核只提供快速中断(FIQ)和标准中断(IRQ)两个中断向量。但各个半导体厂家在设计芯片时加入了自己不同的中断控制器,以便支持诸如串行口、外部中断、时钟中断等硬件中断。外部中断控制是选择芯片必须考虑的重要因素,合理的外部中断设计可以很大程度的减少任务调度的工作量。例如PHILIPS公司的SAA7750,所有GPIO都可以设置成FIQ或IRQ,并且可以选择上升沿、下降沿、高电平、低电平四种中断方式。这使得红外线遥控接收、指轮盘和键盘等任务都可以作为背景程序运行。而Cirrus Logic公司的EP7312芯片,只有4个外部中断源,并且每个中断源都只能是低电平或者高电平中断,这样在用于接收红外线信号的场合时,就必须用查询方式,会浪费大量的CPU时间。
% l- {5 R$ K l1 t# c
$ J' W. P" h0 H0 i折叠IIS接口: ~7 \2 _5 U: W
IIS(Integrate Interface of Sound)接口即集成音频接口。如果设计音频应用产品,IIS 总线接口是必需的。/ c5 \7 h \% U% ~# l# l
* H( m3 C! Y) s7 T折叠nWAIT+ }9 x* E- R2 u& Q; F+ K
外部总线速度控制信号。不是每个ARM芯片都提供这个信号引脚,利用这个信号与廉价的GAL芯片就可以实现与符合PCMCI标准的WLAN卡和Bluetooth卡的接口,而不需要外加高成本的PCMCIA专用控制芯片。另外,当需要扩展外部DSP 协处理器时,此信号也是必需的。' @2 \% s1 k0 X+ j# w% R [0 T& e
+ `2 l) W" W9 v& `, M折叠RTC
& G+ f4 K7 A1 I, l1 T3 ?很多ARM芯片都提供实时时钟功能,但方式不同。如Cirrus Logic公司的EP7312的RTC只是一个32位计数器,需要通过软件计算出年月日时分秒;而SAA7750和S3C2410等芯片的RTC直接提供年月日时分秒格式。( k& [ Z ~2 G, m* V" Y
2 E- I4 r. ]# M& G3 m折叠LCD5 {: w, D% l; J/ U D3 k7 p: a, T0 d
有些ARM芯片内置LCD控制器,有的甚至内置64K彩色TFT LCD控制器。在设计PDA和手持式显示记录设备时,选用内置LCD控制器的ARM芯片如S3C2410较为适宜。* s, |/ ^# W' c4 C9 l
* y0 Z' K8 T9 B) ^3 E4 s) F折叠PWM
7 t& q2 s' A/ ]4 O$ ~/ I* c有些ARM芯片有2~8路PWM输出,可以用于电机控制或语音输出等场合。7 b" ^$ a6 E! ~+ ^# W F) K8 T
; N0 }/ ?" y$ f7 q+ _折叠立体声频
) H) M0 l1 x+ @9 d4 n5 z有些ARM芯片内置2~8通道8~12位通用ADC,可以用于电池检测、触摸屏和温度监测等。PHILIPS的SAA7750更是内置了一个16位立体声音频ADC和DAC,并且带耳机驱动。
2 @. k5 N- c* o) i* D
" K; l% g. Y8 A4 @0 F6 k折叠扩展总线
$ k) e; W4 Z/ t: `" C大部分ARM芯片具有外部SDRAM和SRAM扩展接口,不同的ARM芯片可以扩展的芯片数量即片选线数
3 c8 Y3 a+ k5 T. Z1 a6 n% n. [. W2 F I; Q( ^0 s
量不同,外部数据总线有8位、16位或32位。某些特殊应用的ARM芯片如德国Micronas的: K9 H6 g. s" k" {9 _
7 h. e; _7 `& X1 B! @PUC3030A没有外部扩展功能。# u! Q3 g4 E' Q
! ]( Q( F) V+ P5 }- y
折叠UART
1 }3 v) n3 X1 r1 B- \& E( ?几乎所有的ARM芯片都具有1~2个UART接口,可以用于和PC机通讯或用Angel 进行调试。一般的ARM芯片通讯波特率为115,200bps,少数专为蓝牙技术应用设计的ARM芯片的UART通讯波特率可以达到920Kbps,如Linkup 公司的L7205。: O! e) O) O+ j! w5 D) Y9 w5 n* C. Z
1 y$ {/ \9 b8 N* T) c% g( u折叠DSP
0 R2 V, ^5 [& Z表3 ARM+DSP结构的ARM芯片
$ w0 H6 Y" r k7 `' b7 Z% y! ?
+ m4 c! f4 O5 z* q- t: t4 E* b5 j芯片型号 应商 DSP core DSP MIPS 应用
& p: Y& _; t8 F( v4 u0 ]8 o4 \$ ?6 e! W4 j. K2 m' @
TMS320DSC2X TI 16bits C5000 500 Digital Camera2 l5 D, U' \ _% k' w. _
* n5 O" u( ^" u t% [
Dragonball MX1 Motorola 24bits 56000 CD-MP3, ?0 y. C9 h( P/ E$ `( h
! S4 [& O0 R0 E4 M- Z' M
SAA7750 Philips 24bits EPIC 73 CD-MP3$ m6 y* e8 O- Q' x* y
" D' `- `; X7 h+ g
VWS22100 Philips 16bits OAK 52 GSM% E" j' n1 G* a' }. N
9 e: S1 k3 a1 p1 Q7 F0 t6 O& ESTLC1502 ST D950 VOIP
; P+ b) L% e0 ^
- g6 M; |3 {0 X4 l/ ?) hGMS30C3201 Hynix 16bits Piccolo STB; @1 A2 F( x% k
7 w% K2 V. O5 m- j0 Q7 S
AT75C220 ATMEL 16bits OAK 40 IA
) s* C1 O& }' d7 H9 x/ S# n# Z* v: s# h. b' Y/ Y5 N
AT75C310 ATMEL 16bits OAK 40x2 IA1 _2 M+ u) G% _$ e0 k& g
! K: t) C; B0 j' b" w
AT75C320 ATMEL 16bits OAK 60X2 IA
+ t8 ~, E: v# G; J6 D" o1 }# M, U5 Q/ M1 n4 p4 t8 R
L7205 Linkup 16bits Piccolo Wireless) ^3 g4 C- O3 b2 N8 _
+ D" K1 e; G' N' j; Y6 t
L7210 Linkup 16bits Piccolo wireless
J8 z! a9 p8 k; h I# ]! y: K" u# b4 e6 G+ ?9 T% i
Quatro OAK 16bits OAK Digital Image
1 W2 y/ `& L& S3 z _: c& Z' h ?4 `6 c l/ t4 F: r4 |. r
折叠FPGA
: X5 D$ S, G/ w# {有些ARM芯片内置有FPGA,适合于通讯等领域。见表4。7 k& P& D y& G0 M; K
* \3 s- P# c3 c* b表4 ARM+FPGA结构的ARM芯片
" e C$ `, V& ?* x0 L9 t! a9 M6 Z
芯片型号 供应商 ARM芯核 FPGA门数 引脚数9 _1 |% \% ~3 E3 P5 |- L5 C+ j% s
! Z" y/ x) s3 L8 v6 l9 ^# y& Q+ ^EPXA1 Altera ARM922T 100K 484# S" d2 e2 h" {; i& s" J
4 @$ l* z c8 c9 M1 t8 s8 O1 C v2 bEPXA4 Altera ARM922T 400K 672
( k6 V$ Z5 l- u# c8 w" m- q4 J
( J! G# O1 g* e7 I, v8 c9 K7 T# ~EPXA10 Altera ARM922T 1000K 1020' ^( U- h, Q) g0 {0 [
/ I( j5 V( c; @% A$ M
TA7S20系列 Triscend ARM7TDMI 多种 多种) I& a$ w% F! u
' P" Z t' j7 o0 w7 _% y8 q3 I4 X折叠计数器
2 D8 o, r, b9 Y( t: X一般ARM芯片都具有2~4个16位或32位时钟计数器和一个看门狗计数器。0 D( ~$ [+ s9 p8 p
+ M0 @+ k( G' ~' P7 P2 ^
折叠电源管理2 Q% r9 M" f9 D/ e/ L* j/ R
ARM芯片的耗电量与工作频率成正比,一般ARM芯片都有低功耗模式、睡眠模式和关闭模式。
8 Y" A4 Z) N' F( S: ?& @+ Q: t8 V/ C$ y& s. j! j
折叠DMA% l4 [* ~* a L! i
有些ARM芯片内部集成有DMA(Direct Memory Access)?可以和硬盘等外部设备高速交换数据,同时减少数据交换时对CPU资源的占用。另外,还可以选择的内部功能部件有:HDLC, SDLC,CD-ROMDecoder,Ethernet MAC,VGA controller, DC-DC。可以选择的内置接口有:IIC,SPDIF,CAN,SPI,PCI,PCMCIA。最后需说明的是封装问题。ARM芯片主要的封装有QFP、TQFP、PQFP、LQFP、BGA、LBGA等形式,BGA封装具有芯片面积小的特点,可以减少PCB板的面积,但是需要专用的焊接设备,无法手工焊接。另外一般BGA封装的ARM芯片无法用双面板完成PCB布线,需要多层PCB板布线。1 [/ E, }; {! a6 y5 e
/ i4 y, v0 \3 m* |折叠编辑本段多芯核* U3 k4 @7 X* r& q
为了增强多任务处理能力、数学运算能力、多媒体以及网络处理能力,某些供应商提供的ARM芯片内置多个芯核,常见的有ARM+DSP,ARM+FPGA,ARM+ARM等结构。6 T- t! r8 F* c( {0 @/ x5 D
+ `* W, o+ E' Y; S$ ]( v7 c" D
ARM+ARM6 Q3 Q" S' q% i0 D3 t; }. Z
5 R2 [) }) t* B2 q为了增强多任务处理能力和多媒体处理能力,某些ARM芯片内置多个ARM芯核。例如Portal player 公司的PP5002 内部集成了两个ARM7TDMI 芯核,可以应用于便携式MP3播放器的编码器或解码器。从科胜讯公司(Conexant)分离出去的专门致力于高速通讯芯片设计生产的MinSpeed公司就在其多款高速通讯芯片中集成了2~4个ARM7TDMI内核。: h8 X8 ^1 g8 F, l4 `5 ?) E- e+ s
: `6 L' L& V7 |; Z4 V
ARM+DSP
3 p9 k. F! u8 D( M% y6 f3 ]/ K, h7 f
为了增强数学运算功能和多媒体处理功能,许多供应商在其ARM芯片内增加了DSP协处理器。通常加入的DSP芯核有ARM公司的Piccolo DSP芯核、OAK公司16位定点DSP芯核、TI的TMS320C5000系列DSP芯核、Motorola的56K DSP芯核等。见表3。' c0 e8 W6 q k
! c) R: z/ ~% L5 G8 N( X0 J- h
ARM+FPGA
* L- F4 t% z) z/ C$ b0 X5 S; Y$ u% m9 u
为了提高系统硬件的在线升级能力,某些公司在ARM芯片内部集成了FPGA。见表4。 t. m5 O& I O( @9 F5 B6 S1 u: m/ P
7 ?5 n8 a: ~! ]' u0 E6 o! y- C/ I& `, O 防盗器. d) U1 D0 {4 X/ A% b# z4 J
6 ]2 W7 H8 n4 @4 H2 I
| | | 最小金属探测1枚订书针、TF内存卡、回型针半颗、电子芯片1颗、 | 2 @6 w* ]5 ~: J: Y
|
|