1.5 ARM芯片的特点与选型
1.5.1 不同系列处理器间的比较
表1.3显示了ARM7、ARM9、ARM10及ARM11内核之间属性的比较。有些属性依赖于生产过程和工艺,具体芯片需参阅其芯片手册。
表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 |
架构 |
冯·诺伊曼 |
哈佛 |
哈佛 |
哈佛 |
乘法器 |
8×32 |
8×32 |
16×32 |
16×32 |
表1.4总结了各种处理器的不同功能。
表1.4 ARM处理器不同功能特性
CPU核 |
MMU/MPU |
Cache |
Jazelle |
Thumb |
E |
|
ARM7TDMI |
无 |
无 |
否 |
是 |
v4T |
否 |
ARM7EJ-S |
无 |
无 |
是 |
是 |
v5TEJ |
是 |
ARM720T |
MMU |
统一8KBCache |
否 |
是 |
v4T |
否 |
ARM920T |
MMU |
独立16KB指令和数据Cache |
否 |
是 |
v4T |
否 |
ARM922T |
MMU |
独立8KB指令和数据Cache |
否 |
是 |
v4T |
否 |
ARM926EJ-S |
MMU |
Cache和TCM可配置 |
是 |
是 |
v5TEJ |
是 |
ARM940T |
MPU |
独立4KB指令和数据Cache |
否 |
是 |
v4T |
否 |
ARM946E-S |
MPU |
Cache和TCM可配置 |
否 |
是 |
v5TE |
是 |
ARM966E-S |
无 |
Cache和TCM可配置 |
否 |
是 |
v5TE |
是 |
ARM1020E |
MMU |
独立32KB指令和数据Cache |
否 |
是 |
v5TE |
是 |
ARM1022E |
MMU |
独立16KB指令和数据Cache |
否 |
是 |
v5TE |
是 |
ARM1026EJ-S |
MMU |
Cache和TCM可配置 |
是 |
是 |
v5TE |
是 |
ARM1036J-S |
MMU |
Cache和TCM可配置 |
是 |
是 |
v6 |
是 |
ARM1136JF-S |
MMU |
Cache和TCM可配置 |
是 |
是 |
v6 |
是 |
1.5.2 ARM芯片的选型
随着国内嵌入式应用领域的发展,ARM芯片必然会获得广泛的重视和应用。但是由于ARM芯片有多达十几种的芯核结构、70多芯片生产厂家以及千变万化的内部功能配置组合,开发人员在选择方案时会有一定的困难。所以对ARM芯片做对比研究是十分必要的。
1.ARM芯片选择的一般原则
从应用角度看,在选择ARM芯片时应从以下几个方面考虑。
(1)ARM芯核
如果希望使用Windows CE或Linux等操作系统以减少软件开发时间,就需要选择ARM720T以上带有MMU(Memory Management Unit)功能的ARM芯片,ARM720T、StrongARM、ARM920T、ARM922T、ARM946T都带有MMU功能。而ARM7TDMI没有MMU,不支持Windows CE和大部分的Linux;但目前有uCLinux等少数几种Linux不需要MMU的支持。
(2)系统时钟控制器
系统时钟决定了ARM芯片的处理速度。ARM7的处理速度为0.97MIPS/MHz,常见的ARM7芯片系统主时钟为20~133MHz,ARM9的处理速度为1.1MIPS/MHz,常见的ARM9的系统主时钟为100~233MHz,ARM10最高可以达到700MHz。不同芯片对时钟的处理不同,有的芯片只有一个主时钟频率,这样的芯片可能不能同时顾及UART和音频时钟准确性,如Cirrus Logic的EP7312等;有的芯片内部时钟控制器可以分别为CPU核和USB、UART、DSP、音频等功能部件提供同频率的时钟,如PHILIPS公司SAA7750等芯片。
(3)内部存储器容量
在不需要大容量存储器时,可以考虑选用有内置存储器的ARM芯片。表1.5列出了内置存储器的ARM芯片。
表1.5 内置存储器的ARM芯片
芯 片 型 号 |
供 应 商 |
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芯片内置有USB控制器,有些芯片甚至同时有USB Host和USB Slave控制器。表1.6显示了内置USB控制器的ARM芯片。
表1.6 内置USB控制器的ARM芯片
芯 片 型 号 |
ARM内核 |
供 应 商 |
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 |
续表
芯 片 型 号 |
ARM内核 |
供 应 商 |
USB Slave |
USB Host |
IIS接口 |
LH7979531 |
ARM7TDMI |
Sharp |
1 |
0 |
0 |
GMS320C7201 |
ARM720T |
Hynix |
1 |
0 |
1 |
(5)GPIO数量
在某些芯片供应商提供的说明书中,往往申明的是最大可能的GPIO数量,但是有许多引脚是和地址线、数据线、串口线等引脚复用的。这样在系统设计时需要计算实际可以使用的GPIO数量。
(6)中断控制器
ARM内核只提供快速中断(FIQ)和标准中断(IRQ)两个中断向量。但各个半导体厂家在设计芯片时加入了自己定义的中断控制器,以便支持诸如串行口、外部中断、时钟中断等硬件中断。外部中断控制是选择芯片必须考虑的重要因素,合理的外部中断设计可以很大程度地减少任务调度工作量。例如PHILIPS公司的SAA7750,所有GPIO都可以设置成FIQ或IRQ,并且可以选择上升沿、下降沿、高电平和低电平4种中断方式。这使得红外线遥控接收、指轮盘和键盘等任务都可以作为背景程序运行。而Cirrus Logic公司的EP7312芯片只有4个外部中断源,并且每个中断源都只能是低电平或高电平中断,这样在接收红外线信号的场合必须用查询方式,浪费大量CPU时间。
(7)IIS(Integrate Interface of Sound)接口
即集成音频接口。如果设计音频应用产品,IIS总线接口是必需的。
(8)nWAIT信号
这是一个外部总线速度控制信号。不是每个ARM芯片都提供这个信号引脚,利用这个信号与廉价的GAL芯片就可以实现与符合PCMCIA标准的WLAN卡和Bluetooth卡的接口,而不需要外加高成本的PCMCIA专用控制芯片。另外,当需要扩展外部DSP协处理器时,此信号也是必需的。
(9)RTC(Real Time Clock)
很多ARM芯片都提供实时时钟功能,但方式不同。如Cirrus Logic公司的EP7312的RTC只是一个32位计数器,需要通过软件计算出年月日时分秒;而SAA7750和S3C2410等芯片的RTC直接提供年月日时分秒格式。
(10)LCD控制器
有些ARM芯片内置LCD控制器,有的甚至内置64KB彩色TFT LCD控制器。在设计PDA和手持式显示记录设备时,选用内置LCD控制器的ARM芯片(如S3C2410)较为适宜。
(11)PWM输出
有些ARM芯片有2~8路PWM输出,可以用于电机控制或语音输出等场合。
(12)ADC和DAC
有些ARM芯片内置2~8通道8~12位通用ADC,可以用于电池检测、触摸屏和温度监测等。PHILIPS的SAA7750更是内置了一个16位立体声音频ADC和DAC,并且带耳机驱动。
(13)扩展总线
大部分ARM芯片具有外部SDRAM和SRAM扩展接口,不同的ARM芯片可以扩展的芯片数量即片选线数量不同,外部数据总线有8位、16位或32位。为某些特殊应用设计的ARM芯片(如德国Micronas的PUC3030A)没有外部扩展功能。
(14)UART和IrDA
几乎所有的ARM芯片都具有1~2个UART接口,可以用于和PC机通信或用Angel进行调试。一般的ARM芯片通信波特率为115200bit/s,少数专为蓝牙技术应用设计的ARM芯片的UART通信波特率可以达到920kbit/s,如Linkup公司L7205。
(15)DSP协处理器
表1.7总结了ARM+DSP结构的ARM芯片。
表1.7 ARM+DSP结构的ARM芯片
芯 片 型 号 |
供 应 商 |
DSP Core |
DSP MIPS |
应 用 |
TMS320DSC2X |
TI |
16bit C5000 |
500 |
数码照相机 |
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 |
无线应用 |
L7210 |
Linkup |
16bit Piccolo |
||
Quatro |
OAK |
16bit OAK |
(16)内置FPGA
有些ARM芯片内置有FPGA,适合于通信等领域。表1.8总结了ARM+FPGA结构的ARM芯片。
表1.8 ARM+FPGA结构的ARM芯片
芯 片 型 号 |
供 应 商 |
ARM芯核 |
FPGA门数 |
引 脚 数 |
EPXA1 |
Altera |
ARM922T |
100000 |
484 |
EPXA4 |
Altera |
ARM922T |
400000 |
672 |
EPXA10 |
Altera |
ARM922T |
1000000 |
1020 |
TA7S20系列 |
Triscend |
ARM7TDMI |
多种 |
多种 |
(17)时钟计数器和看门狗
一般ARM芯片都具有2~4个16位或32位时钟计数器和一个看门狗计数器。
(18)电源管理功能
ARM芯片的耗电量与工作频率成正比,一般ARM芯片都有低功耗模式、睡眠模式和关闭模式。
(19)DMA控制器
有些ARM芯片内部集成有DMA(Direct Memory Access)接口,可以和硬盘等外部设备高速交换数据,同时减少数据交换时对CPU资源的占用。
另外,还可以选择的内部功能部件有:HDLC、SDLC、CD-ROM Decoder、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板布线。
2.多芯核结构ARM芯片的选择
为了增强多任务处理能力、数学运算能力、多媒体以及网络处理能力,某些供应商提供的ARM芯片内置多个芯核,目前常见的ARM+DSP,ARM+FPGA,ARM+ARM等结构。
(1)多ARM芯核
为了增强多任务处理能力和多媒体处理能力,某些ARM芯片内置多个ARM芯核。例如Portal player公司的PP5002内部集成了两个ARM7TDMI芯核,可以应用于便携式MP3播放器的编码器或解码器。从科胜讯公司(Conexant)分离出来的专门致力于高速通信芯片设计生产的MinSpeed公司在其多款高速通信芯片中集成了2~4个ARM7TDMI内核。
(2)ARM芯核+DSP芯核
为了增强数学运算功能和多媒体处理功能,许多供应商在其ARM芯片内增加了DSP协处理器。通常加入的DSP芯核有ARM公司的Piccolo DSP芯核、OAK公司16位定点DSP芯核、TI的TMS320C5000系列DSP芯核和Motorola的56K DSP芯核等。见表1.7。
(3)ARM芯核+FPGA
为了提高系统硬件的在线升级能力,某些公司在ARM芯片内部集成了FPGA。见表1.8。
3.选择方案举例
表1.9列举的最佳方案仅供参考,由于SoC集成电路的发展非常迅速,今天的最佳方案到明天就可能不是最佳的了。因此任何时候在选择方案时,都应广泛搜寻一下主要的ARM芯片供应商,以找出最适合的芯片。
表1.9 最佳应用方案推荐
应 用 |
第 一 方 案 |
第 二 方 案 |
备 注 |
高档PDA |
S3C2410 |
Dragon ball MX1 |
|
便携CD MP3播放器 |
SAA7750 |
USB和CDROM解码器 |
|
FLASH MP3播放器 |
SAA7750 |
PUC3030A |
内置USB和FLASH |
WLAN和BT应用产品 |
L7205,L7210 |
Dragon ball MX1 |
高速串口和PCMCIA接口 |
VoiceOver IP |
STLC1502 |
||
数码照相机 |
TMS320DSC24 |
TMS320DSC21 |
内置高速图像处理DSP |
续表
应 用 |
第 一 方 案 |
第 二 方 案 |
备 注 |
便携式语音email机 |
AT75C320 |
AT75C310 |
内置双DSP,可以分别处理MODEM和语音 |
GSM手机 |
VWS22100 |
AD20MSP430 |
专为GSM手机开发 |
S5N8946 |
MTK-20141 |
||
电视机顶盒 |
GMS30C3201 |
VGA控制器 |
|
3G移动电话机 |
MSM6000 |
OMAP1510 |
|
10G光纤通信 |
MinSpeed公司系列ARM芯片 |
多ARM核+DSP核 |