簡介
ARM公司自1990年正式成立以來, 在32位RISC (Reduced Instruction Set Computer CPU開發領域不斷取得突破,其結構已經從V3發展到V6。由於ARM公司自成立以來,一直以IP(Intelligence Property)提供者的身份向各大半導體製造商出售智慧財產權,而自己從不介入晶片的生產銷售,加上其設計的芯核具有功耗低、成本低等顯著優點,因此獲得眾多的半導體廠家和整機廠商的大力支持,在32位嵌入式套用領域獲得了巨大的成功,目前已經占有75%以上的32位RISC嵌入式產品市場。在低功耗、低成本的嵌入式套用領域確立了市場領導地位。現在設計、生產ARM晶片的國際大公司已經超過50多家,國內中興通訊和華為通訊等公司也已經購買ARM公司的芯核用於通訊專用晶片的設計。目前非常流行的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晶片做一對比研究是十分必要的。
選擇原則
從套用的角度,對在選擇ARM晶片時所應考慮的主要因素做一詳細的說明。
ARM芯核
如果希望使用WinCE或Linux等作業系統以減少軟體開發時間,就需要選擇ARM720T以上帶有MMU(memory management unit)功能的ARM晶片,ARM720T、StrongARM、ARM920T、ARM922T、ARM946T都帶有MMU功能。而ARM7TDMI沒有MMU,不支持Windows CE和大部分的Linux, 但目前有UCLINUX等少數幾種Linux不需要MMU的支持。
系統時鐘控制器
系統時鐘決定了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等晶片。
內部存儲器容量
在不需要大容量存儲器時,可以考慮選用有內置存儲器的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
許多ARM晶片內置有USB控制器,有些晶片甚至同時有USB Host和USB Slave控制器。見表2。USB接口
許多ARM晶片內置有USB控制器,有些晶片甚至同時有USB Host和USB Slave控制器。見表2。
表2 內置USB控制器的ARM晶片
GPIO數量
在某些晶片供應商提供的說明書中,往往申明的是最大可能的GPIO數量,但是有許多引腳是和地址線、數據線、串口線等引腳復用的。這樣在系統設計時需要計算實際可以使用的GPIO數量。
中斷控制器
ARM核心只提供快速中斷(FIQ)和標準中斷(IRQ)兩個中斷向量。但各個半導體廠家在設計晶片時加入了自己不同的中斷控制器,以便支持諸如串列口、外部中斷、時鐘中斷等硬體中斷。外部中斷控制是選擇晶片必須考慮的重要因素,合理的外部中斷設計可以很大程度的減少任務調度的工作量。例如PHILIPS公司的SAA7750,所有GPIO都可以設定成FIQ或IRQ,並且可以選擇上升沿、下降沿、高電平、低電平四種中斷方式。這使得紅外線遙控接收、指輪盤和鍵盤等任務都可以作為背景程式運行。而Cirrus Logic公司的EP7312晶片,只有4個外部中斷源,並且每箇中斷源都只能是低電平或者高電平中斷,這樣在用於接收紅外線信號的場合時,就必須用查詢方式,會浪費大量的CPU時間。
IIS接口
即集成音頻接口。如果設計音頻套用產品,IIS 匯流排接口是必需的。
nWAIT信號
外部匯流排速度控制信號。不是每個ARM晶片都提供這個信號引腳,利用這個信號與廉價的GAL晶片就可以實現與符合PCMCI標準的WLAN卡和Bluetooth卡的接口,而不需要外加高成本的PCMCIA專用控制晶片。另外,當需要擴展外部DSP 協處理器時,此信號也是必需的。
RTC (Real Time Clock)
很多ARM晶片都提供實時時鐘功能,但方式不同。如Cirrus Logic公司的EP7312的RTC只是一個32位計數器,需要通過軟體計算出年月日時分秒;而SAA7750和S3C2410等晶片的RTC直接提供年月日時分秒格式。
多芯核
為了增強多任務處理能力、數學運算能力、多媒體以及網路處理能力,某些供應商提供的ARM晶片內置多個芯核,常見的有ARM+DSP,ARM+FPGA,ARM+ARM等結構。
ARM+ARM
為了增強多任務處理能力和多媒體處理能力,某些ARM晶片內置多個ARM芯核。例如Portalplayer公司的PP5002內部集成了兩個ARM7TDMI芯核,可以套用於攜帶型MP3播放器的編碼器或解碼器。從科勝訊公司(Conexant)分離出去的專門致力於高速通訊晶片設計生產的MinSpeed公司就在其多款高速通訊晶片中集成了2~4個ARM7TDMI核心。
ARM+DSP
為了增強數學運算功能和多媒體處理功能,許多供應商在其ARM晶片內增加了DSP協處理器。通常加入的DSP芯核有ARM公司的PiccoloDSP芯核、OAK公司16位定點DSP芯核、TI的TMS320C5000系列DSP芯核、Motorola的56KDSP芯核等。見表3。
ARM+FPGA
為了提高系統硬體的線上升級能力,某些公司在ARM晶片內部集成了FPGA。