各品牌ARM SoC技術比較分析
ARM9族群
ARM9大約可以達到180MHz~200 MHz的工作速率。因此,它能驅動的周邊裝置比ARM7多,應用范圍也比較廣。下面舉Atmel的AT91RM9200來說明。
Atmel的AT91RM9200
它的CPU核心是16/32-bit的ARM920T,其主要功能簡述如下:
內建有16 Kbytes的SRAM和128 Kbytes的ROM。
外部總線接口(External Bus Interface;EBI):可以支持SDRAM、SRAM、“暴量傳輸?shù)?burst)”FLASH(亦即NOR FLASH)、能直接(glueless)和CompactFlash、SmartMedia、NAND FLASH連接。
7個外部中斷來源,1個快速中斷來源。
4個32-bit可程序I/O控制器,122個可程序I/O腳位,每個I/O腳位具有輸入變動中斷和”開路泄極”(open-drain)的功能。“開路泄極”是指在芯片內部的MOS FET輸出電路上的泄極沒有連接任何組件(電阻)。通常,它可以用來驅動高電流或高電壓的負載;或者說,多個外部裝置可以和此單一線路做雙向通信。
具有20個信道的周邊裝置控制器(DMA)。
4個可程序外部時脈信號。
內建2個振蕩器,以及2個PLL。
軟件控制的功率最佳化功能。
實時時脈產生器具有警報中斷功能。
中斷控制器具有8個不同等級的優(yōu)先級。能個別屏蔽的向量式中斷來源,可抑制寄生信號對中斷信號的干擾。
支持以太MAC 10/100 Base-T、MII或RMII,整合了28-byte的FIFO和專屬的DMA傳收通道。
支持USB 2.0(12 Mbps)主機端口(host port)和裝置端口(device port)。主機端口有整合FIFO和專屬的DMA。
多媒體記憶卡接口(multimedia card interface;MCI):支持自動的通信協(xié)議控制、和自動化的數(shù)據(jù)快速傳輸;與MMC和SD標準兼容,最多可支持2個SD記憶卡。
3個同步的序列控制器(SSC):每個傳送器和接收器都具有獨立的時脈和訊包同步信號。支持I2S模擬接口,采用分時多任務技術。
4個萬用同步/異步接收傳送器(USART):可支持RS485、IrDA、調制解調器(modem)、ISO 7816的T0/T1 Smart Card。
主從式序列外圍接口(SPI):8到16-bit的可程序數(shù)據(jù)長度,可以選擇4個外部外圍芯片。
2組3-通道、16-bit的定時器/計數(shù)器(TC):3個外部輸入時脈、每個通道具有2個多用途I/O腳位。能夠產生雙PWM信號。
雙線路界面(two-wire interface;TWI):支持主控模式(master mode),支持Atmel所有的雙線路EEPROM。
所有數(shù)字腳位都支持IEEE 1149.1 JTAG邊界掃描。
AT91RM9200算是性能非常強大的SoC,它可以用來開發(fā)通信、儲存、控制等產品。由于它的功能很多,所以本文無法逐項詳細說明,在此僅介紹它的USB 2.0主機端口。
它的USB 2.0主機端口支持“開放式主機控制器接口”(Open Host Controller Interface;OHCI) v1.0規(guī)格,以及USB v2.0全速(12 Mbps)和低速(1.5 Mbps)規(guī)格的信訊協(xié)議。它整合了1個“根部集線器”(root hub)和下游的2個USB傳收器。標準的OHCI USB通訊堆棧驅動程序可以輕易地移植到此架構中,不需要顧慮硬件的兼容問題;可以執(zhí)行現(xiàn)有全部的USB類別驅動程序,這表示所有標準的USB類別裝置(class device)都能被自動偵測,讓使用者應用。圖5是其內部架構圖。
在主機控制器和主機控制器驅動程序之間,有兩個通信信道。第一個信道使用主機控制器內部的作業(yè)緩存器組,這個信道的通信對象(目的地)就是主機控制器。這組緩存器包含了控制、狀態(tài)、串行指針(list pointer)緩存器。它們都被映像至系統(tǒng)總線(ASB)的映像區(qū)域內。其中有一個指標是指向處理器的地址空間—稱為“主機控制器通訊區(qū)域”(Host Controller Communication Area;HCCA)。HCCA正是第二個通信信道。在此信道內,主機控制器是通信主控(主導)者。HCCA包含一些起始指標(head pointer),分別指向中斷模式的“端點描述者”(Endpoint Descriptor)串行、已處理完畢的隊列(done queue),和“訊框起始”(start-of-frame;SOF)所代表的狀態(tài)信息。
此接口的基本建構區(qū)塊包含:端點描述者(ED)和傳輸描述者(Transfer Descriptor;TD)。主機控制器對系統(tǒng)內的每一個端點各別分配一個ED,TD隊列連結至特定的ED上。
雖然有了硬件的USB 2.0主機端口,但是USB的軟件驅動程序仍然是不可或缺的。圖7是它的USB驅動程序架構。USB的數(shù)據(jù)處理作業(yè)是透過下列的通信層完成的:
主機控制器硬件和序列引擎(serial engine):在總線上,傳送和接收USB數(shù)據(jù)。
主機控制器驅動程序:驅動主機控制器硬件和處理USB通信協(xié)議。
USB總線驅動程序和集線器驅動程序:處理USB命令和“列舉”(enumeration)。提供一個硬件的獨立接口。
迷你驅動程序(mini driver):處理USB裝置特有的命令。不同廠牌的USB裝置可能具有不同功能的特殊命令。
類別驅動程序:處理標準的裝置及其命令。某一標準類別的USB裝置之類別驅動程序都具有共同的特性,或類似的程序代碼和邏輯;例如:人機接口裝置(HID)的驅動程序。
目前在國外市場上TMS470、LPC2214、AT91RM9200等ARM SoC很受到歡迎。當然,還有其它廠牌的ARM SoC也很受歡迎,譬如:Samsung、Analog等。雖然在價格上它們不見得是最便宜的,但是由于它們的性能優(yōu)異、容易應用,所以擁有許多忠實的用戶。
分頻器相關文章:分頻器原理
評論