新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 各品牌ARM SoC技術(shù)比較分析

各品牌ARM SoC技術(shù)比較分析

作者: 時間:2017-05-23 來源:網(wǎng)絡(luò) 收藏

  本文將介紹三個常見的 ,包含7和9,并試著分析與比較它們的性能。

本文引用地址:http://m.butianyuan.cn/article/201705/359550.htm

  ARM7族群

  低耗電量和低成本是ARM7的優(yōu)點。不過,ARM7的最大執(zhí)行速率不到100 MHz,因此,在應(yīng)用上,它和8051之類的微控制器(MCU)類似,但在功能上,ARM7通常優(yōu)于MCU。

  由于一般的MCU都是8-bit,而且不支持操作系統(tǒng)(O.S.),所以使用MCU開發(fā)應(yīng)用產(chǎn)品的成本通常會比使用ARM7來得便宜。然而,就簡單的應(yīng)用而言,ARM7也可以不需要操作系統(tǒng),只使用純粹的韌體,照樣可以達到和MCU一樣或優(yōu)于MCU的效能。

  TI的TMS470

  它的CPU核心是ARM7TDMI,16/32-bit RISC。其正常模式的系統(tǒng)時脈是28 MHz、管線模式是48 MHz。內(nèi)含128K Bytes的FLASH和8K Bytes的SRAM。其它電路單元還包含:

  零腳位鎖相回路(ZPLL)時脈模塊。

  模擬的看門狗定時器(analog watchdog timer;AWD)。

  實時中斷模塊(real-time interrupt;RTI)。

  兩個”序列外圍接口”(SPI)模塊。

  兩個”序列通訊接口”(SCI)模塊。

  標準的”控制局域網(wǎng)絡(luò)”(control area network;CAN)控制器(SCC)。

  第二類序列界面(C2SIa)。

  10-bit、16個輸入信道多重緩沖”模擬數(shù)字轉(zhuǎn)換器”(MibADC)。

  高階定時器(high-end timer;HET),控制16個輸出入端口(I/O)。

  外部時脈預分頻器(external clock prescale;ECP)。

  共49個I/O腳位,1個只能輸入的腳位。

  TMS470的系統(tǒng)功能有:

  地址譯碼。

  保護內(nèi)存。

  監(jiān)督內(nèi)存和各外圍的總線。

  重置(reset)和取消(abort)的例外管理。

  所有內(nèi)部中斷源的排序(prioritization)。

  裝置的時脈控制。

  平行的特性記號(signature)分析(PSA):是一種自動檢測故障的功能,可以利用多個輸入的特性記號來檢測數(shù)據(jù)流。這個特性記號可以用來判定處理器是處于好的或壞的狀態(tài)。

  上述的ZPLL、HET、MibADC是TMS470的特殊功能。ZPLL包含了一個PLL、一個時脈監(jiān)督(clock-monitor)電路、一個時脈致能(clock-enable)電路和一個預分頻器(預分頻值是從1~8)。ZPLL的功能是將外部的參考電壓乘以預分頻值,以獲得較高的頻率,供給TMS470內(nèi)部使用。ZPLL提供ACLK給TMS470的系統(tǒng)模塊,之后,系統(tǒng)模塊會產(chǎn)生系統(tǒng)時脈(SYSCLK)、實時中斷時脈(RTICLK)、CPU時脈(MCLK)、外圍接口時脈(ICLK)。所謂”零腳位”是指ZPLL沒有提供外部濾波器的接腳,亦即不需要連接外部濾波器的意思。

  許多不熟悉TI芯片的硬件工程師,經(jīng)常不知道要如何將石英振蕩器(crystal oscillator)或外部的時脈信號連接到TI芯片上。其實,TMS470內(nèi)部已經(jīng)具有一個振蕩器電路(在ZPLL內(nèi)),但若要啟動它,外部需要連接一個4MHz~20 MHz的石英或諧振器(resonator),并且要在OSCIN和OSCOUT腳位之間連接負載電容,如圖2(a)所示。這個負載電容的大小應(yīng)該由石英振蕩器的供貨商提供,如果施予不正確的載電容值,可能無法使TMS470正常開機和工作。

  此外,如果不使用TMS470內(nèi)部的振蕩器,而改用外部的參考時脈或外部的振蕩器輸出信號,此時要將1.8V的時脈信號連接到OSCIN腳位,并將OSCOUT腳位保持開路的狀態(tài),如附圖2(b)所示。當然,不同廠牌的芯片的時脈來源之連接方式不盡相同,硬件工程師事先應(yīng)仔細查閱它們的技術(shù)手冊。

  HET是一種先進的智能型定時器,它為實時的應(yīng)用提供精確的計時功能。此定時器是由軟件控制的,使用精簡的指令集、特殊的微電路架構(gòu)、I/O端口。它可以應(yīng)用于數(shù)據(jù)比較、采集,或當成GPIO,尤其適用于對多個傳感器(sensor)的輸入數(shù)據(jù)做比較,或輸出復雜的和精確的時間脈沖(如:PWM脈沖)來驅(qū)動起動器(actuator)。

  HET的周邊具有”XOR—分享”的功能,此功能可以讓兩相鄰的HET通道被XOR在一起,和HET的標準輸出脈沖相比,這能夠輸出更小的脈沖信號。

  為了讓使用者可以為FLASH、RAM、HET RAM尋址,TMS470有提供“內(nèi)存選擇”(memory selection)的功能。每一個“內(nèi)存選擇”具有它自己的“內(nèi)存基本地址緩存器(memory base address register)”—MFBAHRx和MFBALRx(分別是高位和低位元),用來定義各個內(nèi)存區(qū)塊的起始(基本)地址、區(qū)塊大小和保護方式。每一個“內(nèi)存選擇”的基本地址是透過緩存器來設(shè)定的,它們應(yīng)該要符合附圖3中的映像地址之邊界值—必須是區(qū)塊大小的整數(shù)倍。圖4是TMS470的“內(nèi)存選擇”的分配情形。

  MibADC接受一個模擬信號,并將它轉(zhuǎn)換成一個10-bit的數(shù)字信號。MibADC具有兩個模式:相容vs.緩沖模式。在兼容模式中,TMS470的“程序模型”(programmer‘s model)和TMS470的ADC模塊兼容,而且MibADC的數(shù)字輸出是儲存在“數(shù)字輸出緩存器”(digital result register)中;“程序模型”包含:緩存器、尋址模式(addressing mode)和中斷。兼容模式能讓ADC的程序設(shè)計工作變得比較容易,因為只要直接讀取數(shù)字輸出緩存器即可取得轉(zhuǎn)換后的數(shù)字數(shù)據(jù)。在緩沖模式中,數(shù)字元輸出緩存器被3個FIFO緩沖存儲器取代—分別表示不同的轉(zhuǎn)換群組(事件、群組1、群組2)。在兼容模式中,MibADC的FIFO是被“中斷服務(wù)例程(ISR)”讀取。

  Philips的LPC2214

  它的CPU核心是16/32-bit ARM7TDMI-S,S是“可合成”(synthesizable)的意思,可讓設(shè)計業(yè)者能將ARM7TDMI核心快速地和靈活地與其它IP合成。LPC2214的主要特性如下:

  內(nèi)建有256 Kbytes的FLASH、16 Kbytes的SRAM,工作速率60 MHz。128-bit的“內(nèi)存加速模塊”(memory accelerator module;MAM),能使CPU快速攫取到(prefetch)下一個ARM指令,因此,執(zhí)行速率可以達到60 MHz。

  透過芯片內(nèi)的開機加載軟件(boot loader),可以達到“系統(tǒng)內(nèi)編程”(In-System Programming;ISP)和“應(yīng)用中編程” (In-Application Programming;IAP)的功能。

  所謂”系統(tǒng)內(nèi)編程”是指利用JTAG和軟件,可以在很短的時間內(nèi)(約30秒~40秒),將使用者系統(tǒng)程序?qū)懭隖LASH中,或清除FLASH的所有內(nèi)容;在這過程中,并不需要從主機板中將處理器或FLASH拆除,因此可以節(jié)省成本和時間。這有利于產(chǎn)品的開發(fā);或能讓技術(shù)人員到客戶端更新軟件或參數(shù),且不需要拆機殼大翻修。目前大多數(shù)的MCU、、DSP、FPGA/CPLD都有提供類似的工具和功能。

  所謂“應(yīng)用中編程”是指利用兩組FLASH,可以在遠程將韌體版本升級。當將第一組FLASH的程序代碼被清除或被重新寫入時,處理器使用第二組FLASH的程序代碼來執(zhí)行。當?shù)谝唤MFLASH的寫入作業(yè)完成之后,系統(tǒng)可以馬上切換去執(zhí)行第一組FLASH里面的程序代碼。這個功能對網(wǎng)絡(luò)通訊設(shè)備而言,是很重要的,因為當韌體版本升級時,這些設(shè)備的操作系統(tǒng)是不能停止的。

  支持EmbeddedICE-RT和Embedded Trace接口,透過RealMonitor軟件可以進行實時除錯。

  8個通道的10-bit ADC,轉(zhuǎn)換時間小于2.44μs。

  2個32-bit定時器(4個采集信道和4個比較信道),1個PWM單元(6個輸出)、1個實時時脈產(chǎn)生器(real time clock)、1個看門狗定時器。

  多種序列接口,這包含:2個UART、1個快速I2C(400 Kbps)、2個SPI。

  1個向量式中斷控制器(可設(shè)定中斷的優(yōu)先級和中斷向量的地址)。

  可設(shè)定的外部內(nèi)存接口,最多可設(shè)定4個內(nèi)存排組(bank),每排最長16M-bit和8/16/32-bit的數(shù)據(jù)寬度(因此,支持的最大內(nèi)存空間是64 MBytes)。

  最多112個GPIO腳位(5V)。9個外部中斷腳位(邊緣或水平觸發(fā))。

  內(nèi)建有PLL,支持的最大CPU時脈為60 MHz。

  內(nèi)建有石英振蕩器,工作頻率范圍是1 MHz~30 MHz。

  兩種低功率模式:閑置(Idle)和功率下降(Power-down)。

  透過外部中斷,可以將處于“功率下降模式”的處理器喚醒。

  為了使功率的利用能夠達到最佳化,可以開啟(enable)或關(guān)閉(disable)個別的周邊功能。

  LPC2214也和TMS470一樣有支持ADC的功能,因此,它們都很適合用來開發(fā)數(shù)據(jù)采集用途的裝置,例如:條形碼掃描機等。不過,TMS470的MibADC可以支持16個通道,但LPC2214只支持8個通道。

  其實,LPC2214的PWM的運作原理和定時器一樣。定時器是依照7個比較緩存器(match register)來計算外圍裝置的時脈周期數(shù)目,并產(chǎn)生中斷;或當定時器的計數(shù)數(shù)目達到特定值時,系統(tǒng)就會去執(zhí)行指定的工作。因為它能夠分別控制上升緣和下降緣的位置,所以應(yīng)用較廣。例如:多相(multi-phase)馬達的控制通常需要3個不重迭的(non-overlapped)PWM輸出,分別控制3個脈沖寬度和位置。7個比較緩存器能夠提供最多6個單邊(single edge)控制的,或3個雙邊(double edge)控制的PWM輸出脈沖。

  LPC2214的內(nèi)存映像(圖4)是固定的,在重新映像時,不需要再設(shè)計其它復雜的程序代碼,以便在不同的地址區(qū)塊執(zhí)行。其中,CPU中斷向量可以被重新映像,好讓中斷向量能儲存于芯片內(nèi)的FLASH中(默認值為0x00000000),或儲存于芯片內(nèi)的SRAM中。藉由設(shè)定MEMMAP緩存器的值,就可以進行重新映射,重新映射完成后,開機碼區(qū)塊(boot block)將被搬移(relocate)至芯片內(nèi)存儲器映像的最上方。

  LPC2000系列的SoC都具有下列三種工作模式或開機狀態(tài):

  開機加載模式:被硬件重置啟動,之后,開機加載程序會被執(zhí)行。開機碼區(qū)塊里的中斷向量會被映像至內(nèi)存映像(FLASH)的最下方,以便于在開機加載過程,能夠處理例外和中斷請求。

  使用者FLASH模式:當開機加載程序發(fā)現(xiàn)FLASH里有使用者程序存在時,而且開機加載程序不需要再執(zhí)行時(沒有被強制執(zhí)行),就進入此模式。(這很像PC的BIOS開機過程,若一直按F1或DEL鍵,就會進入BIOS模式;若不按此鍵,則操作系統(tǒng)會正常運作。)在此模式中,中斷向量不會被映射,仍然位于FLASH的最下方。

  使用者RAM模式:被使用者程序啟動。中斷向量被重新映射至SRAM的最下方。

  ARM9族群

  ARM9大約可以達到180MHz~200 MHz的工作速率。因此,它能驅(qū)動的周邊裝置比ARM7多,應(yīng)用范圍也比較廣。下面舉Atmel的AT91RM9200來說明。

  Atmel的AT91RM9200

  它的CPU核心是16/32-bit的ARM920T,其主要功能簡述如下:

  內(nèi)建有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)的功能?!伴_路泄極”是指在芯片內(nèi)部的MOS FET輸出電路上的泄極沒有連接任何組件(電阻)。通常,它可以用來驅(qū)動高電流或高電壓的負載;或者說,多個外部裝置可以和此單一線路做雙向通信。

  具有20個信道的周邊裝置控制器(DMA)。

  4個可程序外部時脈信號。

  內(nèi)建2個振蕩器,以及2個PLL。

  軟件控制的功率最佳化功能。

  實時時脈產(chǎn)生器具有警報中斷功能。

  中斷控制器具有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模擬接口,采用分時多任務(wù)技術(shù)。

  4個萬用同步/異步接收傳送器(USART):可支持RS485、IrDA、調(diào)制解調(diào)器(modem)、ISO 7816的T0/T1 Smart Card。

  主從式序列外圍接口(SPI):8到16-bit的可程序數(shù)據(jù)長度,可以選擇4個外部外圍芯片。

  2組3-通道、16-bit的定時器/計數(shù)器(TC):3個外部輸入時脈、每個通道具有2個多用途I/O腳位。能夠產(chǎn)生雙PWM信號。

  雙線路界面(two-wire interface;TWI):支持主控模式(master mode),支持Atmel所有的雙線路EEPROM。

  所有數(shù)字腳位都支持IEEE 1149.1 JTAG邊界掃描。

  AT91RM9200算是性能非常強大的SoC,它可以用來開發(fā)通信、儲存、控制等產(chǎn)品。由于它的功能很多,所以本文無法逐項詳細說明,在此僅介紹它的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通訊堆棧驅(qū)動程序可以輕易地移植到此架構(gòu)中,不需要顧慮硬件的兼容問題;可以執(zhí)行現(xiàn)有全部的USB類別驅(qū)動程序,這表示所有標準的USB類別裝置(class device)都能被自動偵測,讓使用者應(yīng)用。圖5是其內(nèi)部架構(gòu)圖。

  在主機控制器和主機控制器驅(qū)動程序之間,有兩個通信信道。第一個信道使用主機控制器內(nèi)部的作業(yè)緩存器組,這個信道的通信對象(目的地)就是主機控制器。這組緩存器包含了控制、狀態(tài)、串行指針(list pointer)緩存器。它們都被映像至系統(tǒng)總線(ASB)的映像區(qū)域內(nèi)。其中有一個指標是指向處理器的地址空間—稱為“主機控制器通訊區(qū)域”(Host Controller Communication Area;HCCA)。HCCA正是第二個通信信道。在此信道內(nèi),主機控制器是通信主控(主導)者。HCCA包含一些起始指標(head pointer),分別指向中斷模式的“端點描述者”(Endpoint Descriptor)串行、已處理完畢的隊列(done queue),和“訊框起始”(start-of-frame;SOF)所代表的狀態(tài)信息。

  此接口的基本建構(gòu)區(qū)塊包含:端點描述者(ED)和傳輸描述者(Transfer Descriptor;TD)。主機控制器對系統(tǒng)內(nèi)的每一個端點各別分配一個ED,TD隊列連結(jié)至特定的ED上。

  雖然有了硬件的USB 2.0主機端口,但是USB的軟件驅(qū)動程序仍然是不可或缺的。圖7是它的USB驅(qū)動程序架構(gòu)。USB的數(shù)據(jù)處理作業(yè)是透過下列的通信層完成的:

  主機控制器硬件和序列引擎(serial engine):在總線上,傳送和接收USB數(shù)據(jù)。

  主機控制器驅(qū)動程序:驅(qū)動主機控制器硬件和處理USB通信協(xié)議。

  USB總線驅(qū)動程序和集線器驅(qū)動程序:處理USB命令和“列舉”(enumeration)。提供一個硬件的獨立接口。

  迷你驅(qū)動程序(mini driver):處理USB裝置特有的命令。不同廠牌的USB裝置可能具有不同功能的特殊命令。

  類別驅(qū)動程序:處理標準的裝置及其命令。某一標準類別的USB裝置之類別驅(qū)動程序都具有共同的特性,或類似的程序代碼和邏輯;例如:人機接口裝置(HID)的驅(qū)動程序。

  性能比較分析

  目前在國外市場上TMS470、LPC2214、AT91RM9200等ARM SoC很受到歡迎。當然,還有其它廠牌的ARM SoC也很受歡迎,譬如:Samsung、Analog等。雖然在價格上它們不見得是最便宜的,但是由于它們的性能優(yōu)異、容易應(yīng)用,所以擁有許多忠實的用戶。



關(guān)鍵詞: ARM SoC

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉