各品牌ARM SoC技術(shù)比較分析
Philips的LPC2214
它的CPU核心是16/32-bit ARM7TDMI-S,S是“可合成”(synthesizable)的意思,可讓SoC設計業(yè)者能將ARM7TDMI核心快速地和靈活地與其它IP合成。LPC2214的主要特性如下:
內建有256 Kbytes的FLASH、16 Kbytes的SRAM,工作速率60 MHz。128-bit的“內存加速模塊”(memory accelerator module;MAM),能使CPU快速攫取到(prefetch)下一個(gè)ARM指令,因此,執行速率可以達到60 MHz。
透過(guò)芯片內的開(kāi)機加載軟件(boot loader),可以達到“系統內編程”(In-System Programming;ISP)和“應用中編程” (In-Application Programming;IAP)的功能。
所謂”系統內編程”是指利用JTAG和軟件,可以在很短的時(shí)間內(約30秒~40秒),將使用者系統程序寫(xiě)入FLASH中,或清除FLASH的所有內容;在這過(guò)程中,并不需要從主機板中將處理器或FLASH拆除,因此可以節省成本和時(shí)間。這有利于產(chǎn)品的開(kāi)發(fā);或能讓技術(shù)人員到客戶(hù)端更新軟件或參數,且不需要拆機殼大翻修。目前大多數的MCU、SoC、DSP、FPGA/CPLD都有提供類(lèi)似的工具和功能。
所謂“應用中編程”是指利用兩組FLASH,可以在遠程將韌體版本升級。當將第一組FLASH的程序代碼被清除或被重新寫(xiě)入時(shí),處理器使用第二組FLASH的程序代碼來(lái)執行。當第一組FLASH的寫(xiě)入作業(yè)完成之后,系統可以馬上切換去執行第一組FLASH里面的程序代碼。這個(gè)功能對網(wǎng)絡(luò )通訊設備而言,是很重要的,因為當韌體版本升級時(shí),這些設備的操作系統是不能停止的。
支持EmbeddedICE-RT和Embedded Trace接口,透過(guò)RealMonitor軟件可以進(jìn)行實(shí)時(shí)除錯。
8個(gè)通道的10-bit ADC,轉換時(shí)間小于2.44μs。
2個(gè)32-bit定時(shí)器(4個(gè)采集信道和4個(gè)比較信道),1個(gè)PWM單元(6個(gè)輸出)、1個(gè)實(shí)時(shí)時(shí)脈產(chǎn)生器(real time clock)、1個(gè)看門(mén)狗定時(shí)器。
多種序列接口,這包含:2個(gè)UART、1個(gè)快速I(mǎi)2C(400 Kbps)、2個(gè)SPI。
1個(gè)向量式中斷控制器(可設定中斷的優(yōu)先級和中斷向量的地址)。
可設定的外部?jì)却娼涌?,最多可設定4個(gè)內存排組(bank),每排最長(cháng)16M-bit和8/16/32-bit的數據寬度(因此,支持的最大內存空間是64 MBytes)。
最多112個(gè)GPIO腳位(5V)。9個(gè)外部中斷腳位(邊緣或水平觸發(fā))。
內建有PLL,支持的最大CPU時(shí)脈為60 MHz。
內建有石英振蕩器,工作頻率范圍是1 MHz~30 MHz。
兩種低功率模式:閑置(Idle)和功率下降(Power-down)。
透過(guò)外部中斷,可以將處于“功率下降模式”的處理器喚醒。
為了使功率的利用能夠達到最佳化,可以開(kāi)啟(enable)或關(guān)閉(disable)個(gè)別的周邊功能。
LPC2214也和TMS470一樣有支持ADC的功能,因此,它們都很適合用來(lái)開(kāi)發(fā)數據采集用途的裝置,例如:條形碼掃描機等。不過(guò),TMS470的MibADC可以支持16個(gè)通道,但LPC2214只支持8個(gè)通道。
其實(shí),LPC2214的PWM的運作原理和定時(shí)器一樣。定時(shí)器是依照7個(gè)比較緩存器(match register)來(lái)計算外圍裝置的時(shí)脈周期數目,并產(chǎn)生中斷;或當定時(shí)器的計數數目達到特定值時(shí),系統就會(huì )去執行指定的工作。因為它能夠分別控制上升緣和下降緣的位置,所以應用較廣。例如:多相(multi-phase)馬達的控制通常需要3個(gè)不重迭的(non-overlapped)PWM輸出,分別控制3個(gè)脈沖寬度和位置。7個(gè)比較緩存器能夠提供最多6個(gè)單邊(single edge)控制的,或3個(gè)雙邊(double edge)控制的PWM輸出脈沖。
LPC2214的內存映像(圖4)是固定的,在重新映像時(shí),不需要再設計其它復雜的程序代碼,以便在不同的地址區塊執行。其中,CPU中斷向量可以被重新映像,好讓中斷向量能儲存于芯片內的FLASH中(默認值為0x00000000),或儲存于芯片內的SRAM中。藉由設定MEMMAP緩存器的值,就可以進(jìn)行重新映射,重新映射完成后,開(kāi)機碼區塊(boot block)將被搬移(relocate)至芯片內存儲器映像的最上方。
LPC2000系列的SoC都具有下列三種工作模式或開(kāi)機狀態(tài):
開(kāi)機加載模式:被硬件重置啟動(dòng),之后,開(kāi)機加載程序會(huì )被執行。開(kāi)機碼區塊里的中斷向量會(huì )被映像至內存映像(FLASH)的最下方,以便于在開(kāi)機加載過(guò)程,能夠處理例外和中斷請求。
使用者FLASH模式:當開(kāi)機加載程序發(fā)現FLASH里有使用者程序存在時(shí),而且開(kāi)機加載程序不需要再執行時(shí)(沒(méi)有被強制執行),就進(jìn)入此模式。(這很像PC的BIOS開(kāi)機過(guò)程,若一直按F1或DEL鍵,就會(huì )進(jìn)入BIOS模式;若不按此鍵,則操作系統會(huì )正常運作。)在此模式中,中斷向量不會(huì )被映射,仍然位于FLASH的最下方。
使用者RAM模式:被使用者程序啟動(dòng)。中斷向量被重新映射至SRAM的最下方。
分頻器相關(guān)文章:分頻器原理
評論