ARM芯片的选型原则
如果希望使用WinCE或Linux等操作系统以减少软件开发时间,就需要选择ARM720T以上带有MMU(memory management unit)功能的ARM芯片,ARM720T、Stron-gARM、ARM920T、ARM922T、ARM946T都带有MMU功能。而ARM7TDMI没有MMU,不支持Windows CE和大部分的Linux,但目前有uCLinux等少数几种Linux不需要MMU的支持。
1.2 系统时钟控制器
系统时钟决定了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公司SAA7750等芯片。
1.3 内部存储器容量
在不需要大容量存储器时,可以考虑选用有内置存储器的ARM芯片。见表1。
表1 内置存储器的ARM芯片
芯片型号 | 供应商 | FLASH容量 | ROM容量 | SRAM容量 |
AT91F40162 | ATMEL | 2M Bytes | 256K bytes | 4K Bytes |
AT91FR4081 | ATMEL | 1M Bytes | 128K Bytes | |
SAA7750 | Philips | 384K Bytes | 64K bytes | |
PUC3030A | Micronas | 256K Bytes | 56K bytes | |
HMS30C7202 | Hynix | 192K Bytes | ||
ML67Q4001 | OKI | 256K Bytes | ||
LC67F500 | Snayo | 640K Bytes | 32K bytes |
1.4 USB接口
许多ARM芯片内置有USB控制器,有些芯片甚至同时有USB Host和USB Slave控制器。见表2。
表2 内置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 | Philips | 1 | 0 | 1 |
TMS320DSC2x | ARM7TDMI | TI | 1 | 0 | 0 |
PUC3030A | ARM7TDMI | Micronas | 1 | 0 | 5 |
AAEC-2000 | ARM920T | Agilent | 1 | 0 | 0 |
ML67100 | ARM7TDMI | OKI | 1 | 0 | 0 |
ML7051LA | ARM7TDMI | OKI | 1 | 0 | 0 |
SA-1100 | StrongARM | Intel | 1 | 0 | 0 |
LH7979531 | ARM7TDMI | Sharp | 1 | 0 | 0 |
GMS320C7201 | ARM720T | Hynix | 1 | 0 | 1 |
1.5 GPIO数量
在某些芯片供应商提供的说明书中,往往申明的是最大可能的GPIO数量,但是有许多引脚是和地址线、数据线、串口线等引脚复用的。这样在系统设计时需要计算实际可以使用的GPIO数量。
1.6 中断控制器
ARM内核只提供快速中断(FIQ)和标准中断(IRQ)两个中断向量。但各个半导体厂家在设计芯片时加入了自己同的中断控制器,以便支持诸如串行口、外部中断、时钟断等硬件中断。外部中断控制是选择芯片必须考虑的重要因素,合理的外部中断设计可以很大程度的减少任务调度工作量。例如PHILIPS公司的SAA7750,所有GPIO都可以设置成FIQ或IRQ,并且可以选择升沿、下降沿、高电平、低电平四种中断方式。这使得红外线遥控接收、指轮盘和键盘等任务都可以作为背景程序运行。而Cirrus Logic公司的EP7312芯片,只有4个外部中断源,并且 每个中断源都只能是低电平或才高电平中断,样在用于接收红外线信号的场合时,就必须用查询方式,会浪费大量CPU时间。
1.7 IIS(Integrate Interface of Sound)接口
即集成音频接口。如果设计者频应用产品,IIS总线接口是必需的。
1.8 nWAIT信号
外部总线速度控制信号。不是每个ARM芯片都提供这个信号引脚,利用这个信号与廉价的GAL芯片就可以实现与符合PCMCIA标准的WLAN卡和Bluetooth卡的接口,而不需要外加高成本的PCMCIA专用控制芯片。另外,当需要扩展外部DSP协处理器时,此信号也是必需的。
1.9 RTC(Real Time Clock)
很多ARM芯片都提供实时时钟功能,但方式不同。如Cirrus Logic公司的EP7312的RTC只是一个32位计数器,需要通过软件计算出年月日时分秒;而SAA7750和S3C2410等芯片的RTC直接提供年月日时分秒格式。
1.10 LCD控制器
有些ARM芯片内置LCD控制器,有的甚至内置64K彩色TFT LCD控制器。在设计PDA和手持式显示记录设备时,选用内置LCD控制器的ARM芯片如S1C2410较为适宜。
1.11 PWM输出
有些ARM芯片有2~8路PWM输出,可以用于电机控制或语音输出等场合。
1.12 ADC和DAC
有些ARM芯片内置2~8通道8~12位通用ADC,可以用于电池检测、触摸屏和温度监测等。PHILIPS的SAA7750更是内置了一个16位立体声音频ADC和DAC,并且带耳机驱动。
1.13 扩展总线
大部分ARM芯片具有外部SDRAM和SRAM扩展接口,不同的ARM芯片可以扩展的芯片数量即片选线数量不同,外部数据总线有8位、16位或32位。某些特殊应用ARM芯片如德国Micronas的PUC3030A没有外部扩展功能。
1.14 UART和IrDA
几乎
ARM芯片选型原 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)