對于設(shè)計人員而言,根據(jù)應(yīng)用的效能、電源、記憶體及介面等需求,尋找特定的嵌入式處理器,不是件容易的事,即便是相似的系統(tǒng)也存在顯著的差異。儘管ARM處理器提供十多種選擇,系統(tǒng)設(shè)計人員仍然很難找到完美搭配的解決方案。
本文將重點介紹各種標(biāo)準(zhǔn)介面,并說明不同嵌入式晶片廠商的差異。瞭解基本介面有助于設(shè)計人員優(yōu)先考量,哪些介面應(yīng)該整合于晶片。雖然標(biāo)準(zhǔn)介面具有很高的使用價值,但為提供額外的單晶片資源,也需要可客製化的單晶片介面,本文將介紹此兩種周邊區(qū)塊。
通用序列匯流排(USB)介面最初的開發(fā)目的,是用以連接個人電腦與周邊。隨著時間推移,已經(jīng)成為工業(yè)與基礎(chǔ)架構(gòu)應(yīng)用的常用介面。鍵盤、滑鼠及示波器等人機介面設(shè)備(HID),通常採用USB介面,這表示必須獲得系統(tǒng)嵌入式處理器的支援。實現(xiàn)此一目標(biāo)的最有效方法,是採用單晶片周邊。
除了HID之外,工業(yè)與基礎(chǔ)架構(gòu)應(yīng)用也可使用另外兩種裝置類別。USB通訊裝置類(CDC)不但適用于數(shù)據(jù)機與傳真機,也透過提供用于乙太網(wǎng)路封包傳輸?shù)慕槊?,來支援簡單的網(wǎng)路功能。同樣地,USB大量儲存裝置(MSD)主要針對硬碟驅(qū)動器及其他儲存媒體。
USB 2.0規(guī)格需要主機進行所有入埠及出埠的傳輸。此規(guī)格也定義叁種基本裝置:主機控制器、集線器及周邊。
USB 2.0的實體互連,是在各個星型配置使用一個集線器的分層星型拓樸。各個線段都是一個主機與集線器或功能之間的點對點連接,或連接至其他集線器與其他功能的集線器。
USB 2.0系統(tǒng)中,用于裝置的定址機制,可供單一主機連接多達(dá)127個裝置,可以是集線器或周邊的任何組合。復(fù)合或組合裝置可以是選自于其中兩個或兩個以上的裝置。
雖然USB 2.0很可能是工業(yè)和許多基礎(chǔ)架構(gòu)應(yīng)用的首選,但周邊裝置在不使用主機的情況下相互通訊時,仍需要部署USB On-the-Go(OTG)。為了實作點對點通訊,USB OTG 引入一種新的裝置,這種裝置包含使兩個周邊共享資料的有限主機功能。
OTG 補充定義主機協(xié)商通訊協(xié)定(HNP)的新交握方式(handshake)。使用HNP,能夠預(yù)設(shè)周邊進行連接的裝置,并請求成為主機,為現(xiàn)有USB 2.0主機裝置範(fàn)例提供點對點通訊。另外也定義階段作業(yè)要求通訊協(xié)定(SRP)。
USB標(biāo)準(zhǔn)的普及與穩(wěn)定的狀態(tài),嵌入式處理器廠商皆針對特定USB功能提供軟體程式庫,大幅縮短開發(fā)時間。系統(tǒng)設(shè)計人員不需要自行撰寫程式碼,只需要執(zhí)行函式唿叫 (function call)即可進行介面操作。
這些程式庫需通過認(rèn)證,證明已通過USB設(shè)計論壇USB裝置及嵌入式主機規(guī)範(fàn)測試。德州儀器(TI)等多家廠商,皆為自家嵌入式處理器提供廣泛的USB程式庫。
2007年,高速USB推廣團隊成立,這種USB類型不僅向下相容以前的USB標(biāo)準(zhǔn),而且資料速率比USB 2.0快10倍。USB 3.0採用新的訊號處理機制,并透過保留USB 2.0雙線式介面,達(dá)到向下相容的效果。
EMAC
符合IEEE 802.3乙太網(wǎng)路標(biāo)準(zhǔn)的介面,一般會被誤認(rèn)為乙太網(wǎng)路媒體存取控制器(EMAC),但完整的EMAC子系統(tǒng)介面實際上包括叁個區(qū)塊,這叁個區(qū)塊可能已整合或未整合于晶片:實體層介面(PHY)、2.乙太網(wǎng)路MAC,這可實作通訊協(xié)定的EMAC層、3.一般稱為MAC控制模組的自訂介面。
EMAC模組可控制從系統(tǒng)到PHY的封包資料流。MDIO模組可執(zhí)行PHY的配置以及狀態(tài)監(jiān)控。這兩個模組均可透過MAC控制模組存取系統(tǒng)核心,并且優(yōu)化資料流。在TI嵌入式處理器等完全整合式解決方案中,自訂介面被視為EMAC/MDIO周邊不可或缺的組成部分。
完整的EMAC子系統(tǒng)如圖1所示。
EMAC控制模組不僅可控制裝置中斷,也整合一個8K位元組內(nèi)部隨機存取記憶體(RAM),用以存留EMAC緩衝區(qū)描述元。MDIO模組採用802.3序列管理介面,來檢視和控制多達(dá)32個共用雙線式匯流排連接至裝置的乙太網(wǎng)路PHY。
主機軟體使用MDIO模組,來配置連接至EMAC的各個PHY的自動協(xié)商參數(shù)、擷取協(xié)商結(jié)果,并在EMAC模組中配置所需的參數(shù),以進行正確的操作。此模組可使得MDIO介面達(dá)到幾乎透明的操作,不需要核心處理器的維護。
EMAC模組可在網(wǎng)路與處理器之間提供高效率的介面。EMAC模組通??商峁?0Base-T(10Mbps)與100BaseTX(100Mbps)、半雙工與全雙工模式,以及硬體流控制與服務(wù)品質(zhì)(QoS)支援。部份處理器現(xiàn)在也支援高達(dá)1000Mbps資料速率的GB EMAC容量。
由于乙太網(wǎng)路受到廣泛運用,嵌入式處理器一般都在單晶片整合一個或多個EMAC介面。不同的廠商在實作上述完整的EMAC子系統(tǒng)時,採用的方法各有不同。實作乙太網(wǎng)路介面時,所需軟體支援與程式庫的品質(zhì)和範(fàn)圍,是選擇嵌入式處理器廠商必須考量的另一個問題。
路由器或交換機等應(yīng)用,所需的EMAC有時不止一個。這些應(yīng)用能夠透過多個EMAC進行同步通訊,同時與多個裝置通訊。
序列ATA(SATA)可將主機匯流排轉(zhuǎn)接器,與硬碟機與光碟機等大量儲存裝置連接。這個規(guī)格已經(jīng)幾乎取代之前的平行ATA(PATA)。PATA需要長度不超過18英吋的40/80線平行纜線。PATA的最大資料傳輸率為133MBps,而SATA序列資料格式,則使用兩個差動支援連接資料儲存裝置的介面,線路速率為1.5Gbps(SATA版本1)、3.0Gbps(SATA版本2)與6.0Gbps(SATA版本3)。SATA 1和SATA 2現(xiàn)已問世,SATA 3將在不久的將來推出。
SATA控制器需要的纜線較細(xì),而且長達(dá)3英呎。細(xì)纜線的靈活度較高,一方面可達(dá)到更簡便的佈線,另一方面更有利于大量儲存裝置機殼內(nèi)部的空氣流通。
序列連結(jié)可達(dá)到高效能的部份塬因,是採用進階系統(tǒng)記憶體結(jié)構(gòu),來儲存高速序列資料。這種進階主機控制器介面(AHCI)記憶體結(jié)構(gòu),可為控制、狀態(tài)及命令清單資料表提供通用區(qū)域。命令清單的每筆記錄均包含SATA裝置程式設(shè)計的資訊,以及在系統(tǒng)記憶體與裝置之間傳輸資料的描述符表(discriptor table)。
大多數(shù)SATA控制器均支援熱抽換(hot swapping),也採用連接埠倍增器(port multiplier),來增加可連接至單一HBA連接埠的裝置數(shù)量。SATA標(biāo)準(zhǔn)支援許多功能,但少有SATA控制器支援所有功能。較為常見功能包括:
? 支援AHCI控制器規(guī)格1.1版
? 整合SERDES PHY
? 整合接收與傳輸資料緩衝區(qū)
? 支援SATA電源管理功能
? 各連接埠內(nèi)部?DMA引擎
? 多達(dá)32筆記錄的硬體輔助塬生命令佇列(NCQ)
? 32位元定址
? 支援連接埠倍增器
? 支援活動LED
? 機械控制開關(guān)
由于SATA能夠儲存高達(dá)兆位元(terabyte)範(fàn)圍的大量資料,因此應(yīng)用相當(dāng)廣泛,其中包括小筆電、筆記型電腦、桌上型電腦、多媒體裝置及可攜式資料終端等。此外,SATA也可用于需要感測器或系統(tǒng)監(jiān)控器儲存大量資料,以供后續(xù)分析的工業(yè)應(yīng)用。
DDR2/行動DDR
DDR2是雙倍資料速率(DDR)SDRAM規(guī)格的后繼標(biāo)準(zhǔn),這兩個標(biāo)準(zhǔn)并不相容。DDR2在匯流排時脈訊號的上升與下降邊緣傳輸資料,并以更高的匯流排速度運作,再進行各個內(nèi)部時脈週期四次的資料傳輸。
簡化型DDR2控制器包括以下設(shè)計區(qū)塊:
? 記憶體控制
? 讀取介面
? 寫入介面
? I/O區(qū)塊
???????
???????
這些區(qū)塊及其與DDR2記憶體晶片和核心邏輯的關(guān)係如圖2所示。
記憶體控制區(qū)塊從記憶體存取應(yīng)用特定核心邏輯,或從應(yīng)用特定核心邏輯存取記憶體。讀取實體區(qū)塊負(fù)責(zé)處理在各個讀取週期中,擷取資料的外部訊號時序,而寫入實體區(qū)塊,則使用適當(dāng)?shù)耐獠坑嵦枙r序來管理時脈與資料的發(fā)出。
位元組寬雙向資料回應(yīng)(DQS)隨資料(DQ)透過對外傳輸,用以進行擷取。DQS在讀取記憶體時,由控制器透過邊緣對齊的方式傳輸,在寫入記憶體時,則採取中央對齊的方式。單晶片延遲鎖相迴路(DLL),用以鎖定DQS及對應(yīng)的DQ。可在電壓及溫度發(fā)生變化時確保能夠相互追蹤。
DDR2 SRAM具有差動時脈輸入,可降低時脈輸入負(fù)載週期變化所造成的影響。DDR2 SRAM也支援資料遮罩訊號(data mask signal),可在各個寫入週期中為資料位元加入遮罩。
行動DDR(MDDR)也稱低功耗雙倍資料傳輸率記憶體(LPDDR),傳統(tǒng)記憶體運作電壓為2.5V或3.3V,而其運作電壓為1.8V,通常用于可攜式電子產(chǎn)品。行動DDR記憶體也支援傳統(tǒng)DDR2記憶體不具備的低功耗狀態(tài)。與所有DDR記憶體一樣,雙倍資料傳輸率是透過裝置時脈上下邊緣同時傳輸資料而達(dá)成。
uPP
由于單晶片周邊的數(shù)量受成本或其他限制條件約束,系統(tǒng)設(shè)計人員通常尋求將資料傳入與傳出晶片的新方法。其中一種是利用未使用的視訊連接埠資源,高速收發(fā)非視訊資料。這種方法的其中一個缺點是資料必須轉(zhuǎn)為視訊格式(video frame),在運作中需要部份處理器MIPS的支援,而在設(shè)計週期中則需要佔用寶貴的程式設(shè)計時間。
其他的方法存在類似的困難,而且大多數(shù)標(biāo)準(zhǔn)單晶片資料介面都是序列連接埠,無法執(zhí)行高速傳輸。
因此,許多系統(tǒng)設(shè)計人員認(rèn)識到,將不符合特定介面標(biāo)準(zhǔn)但能夠以多種方式配置的彈性高速周邊專用于資料傳輸,可達(dá)到顯著的優(yōu)勢。如果系統(tǒng)處理器必須與高速DAC、ADC、DSP及FPGA連接而達(dá)到250MBps的高速資料傳輸,則此類知識就相當(dāng)有助益。
這種周邊的基本架構(gòu)很簡單,具有許多個別平行匯流排的通道,經(jīng)過配置可容納超過一個字元長度(word length)以上。其中也有內(nèi)部DMA區(qū)塊,其運作不需要佔用核心的 MIPS。單倍或雙倍資料速率以及多種資料封包格式也適用。
TI各種嵌入式處理器均提供通用平行連接埠(uPP),包括Sitara ARM9 AM1808與AM1806微處理器(MPU),以及包含TMS320C674x核心與ARM9核心的OMAP-L138處理器。與SPI及UART等序列周邊不同,uPP可為設(shè)計人員提供平行資料匯流排的優(yōu)勢,各通道資料寬度為8位元及16位元。
uPP在以75MHz的最高時脈速率運作時,能以遠(yuǎn)遠(yuǎn)高于序列連接埠周邊的速度傳輸資料。例如,以75MHz速率運作的單一16位元uPP通道,比以50MHz速率運作的SPI周邊快24倍。圖3顯示簡化的配置圖。
uPP最重要的功能包括:
?具有個別資料匯流排的兩個獨立通道:通道可同時以相同或相反方向運作
?I/O速度高達(dá)75MHz,各通道資料寬度為8至16位元
?內(nèi)部DMA-可釋放CPU EDMA
?具有極少控制接腳的簡單通訊協(xié)定(可配置:各通道2至4個)
?單倍及雙倍資料速率(使用時脈訊號的單邊或兩邊):雙倍資料速率需要37.5MHz的最高時脈速率
?支援9至15位元資料寬度的多種資料封包格式
?資料交錯模式(限單通道)
uPP與另一種專用于可配置資料處理的TI周邊「主機連接埠介面」(HPI)有某些相似處。HPI是一種可供外部主機直接存取處理器內(nèi)部記憶體的平行介面。然而,不同于HPI,uPP不允許外部裝置直接存取記憶體,而需要裝置軟體對I/O傳輸進行佇列。最大的差異在于uPP比HPI更快速,而且通訊協(xié)定也更簡單。
uPP主要用于FPGA或DSP等需要晶片外即時處理的應(yīng)用,能夠為醫(yī)療領(lǐng)域等立即需要資料的市場帶來極大的優(yōu)勢。透過uPP,決策處理器能夠運用最新資訊做出結(jié)論。
PRU
可程式即時單元(PRU)是一種小型32位元處理引擎,可為單晶片即時處理提供更多的資源。PRU專門用于AM1x MPU與OMPAP-L138解決方案中的TI嵌入式處理器,能為系統(tǒng)設(shè)計人員提供具有高彈性的額外措施,可降低元件成本。
PRU的四匯流排架構(gòu),隨著資料傳輸同步提取和執(zhí)行指令。此外也提供輸入暫存器,讓外部狀態(tài)資訊反映在內(nèi)部處理器的狀態(tài)暫存器內(nèi)。
PRU設(shè)計的其中一個重要目的,就是儘可能達(dá)到彈性,以便執(zhí)行各種功能。PRU的高彈性有助于開發(fā)人員在終端產(chǎn)品(無論是觸控螢?zāi)?、整合式顯示器或儲存功能)中整合更多的介面,進一步擴展產(chǎn)品功能或其本身專屬介面的功能。此目標(biāo)主要是透過提供包括所有系統(tǒng)記憶體、I/O及中斷在內(nèi)的PRU全面系統(tǒng)能見度而達(dá)成。
雖然PRU能夠全面存取系統(tǒng)資源,但內(nèi)部資源相對而言屬于中等程度,PRU具有4KB的指令記憶體和512位元組的資料記憶體,具有本身的GPIO,延遲僅為數(shù)奈秒(nanosecond)。
PRU可透過使用簡單組合語言程式碼的程式設(shè)計來實作自訂邏輯。此指令集分為四大類:
?將資料移入或移出處理器內(nèi)部暫存器
?執(zhí)行演算運算
?執(zhí)行邏輯運算
?控制程序流程
在工業(yè)應(yīng)用中,通常將PRU配置為I/O區(qū)塊,用以補足處理器未提供的I/O。例如,在需要UART區(qū)塊組合的可攜式資料終端中,以連接GSM、GPS與Bluetooth、鍵盤、印表機、LED排燈及RS232連接埠。雖然此處理器系列中的最佳選擇僅整合叁個UART,不過PRU可提供更多的UART介面,充分滿足不斷發(fā)展的終端裝置對于處理各種功能的需求。
除了補足I/O之外,PRU經(jīng)過程式設(shè)計之后也可執(zhí)行各種控制、監(jiān)控或其他單晶片未提供的功能。對于本身的控制需求與標(biāo)準(zhǔn)處理器配置的控制需求不相同的應(yīng)用而言,如此的彈性特別有助益。
ARM子系統(tǒng)與周邊整合
在評估ARM處理器的周邊介面時,了解周邊與ARM子系統(tǒng)整合方式相當(dāng)重要。
ARM處理器適合復(fù)雜多工的一般用途控制,不僅為大型程式提供記憶體空間,而且也具有良好的環(huán)境切換功能,這適合用于運作即時作業(yè)系統(tǒng)(RTOS)及精密的高階作業(yè)系統(tǒng)。ARM負(fù)責(zé)系統(tǒng)配置與控制,包括周邊配置與控制、時脈控制、記憶體初始化、中斷處理及電源管理等。ARM子系統(tǒng)包含ARM處理器,以及ARM處理器,進行整體處理器系統(tǒng)主控制器功能所需的其他元件。
一般ARM子系統(tǒng)包括下列元件組合:
?ARM核心(例如:ARM926EJ-S或ARM Cortex-A8)-協(xié)同處理器15(CP15)、MMU、寫入緩衝器、指令快取、資料快取、Java加速器、Neon單一指令多重資料(SIMD)協(xié)同處理器、向量浮點協(xié)同處理器(VFP)
?ARM內(nèi)部記憶體-RAM、ROM(ARM開機載入器)
?匯流排仲裁器(bus arbiter)-用以存取內(nèi)部記憶體的匯流排仲裁器、用以存取系統(tǒng)及周邊控制暫存器的匯流排仲裁器、用以存取外部記憶體的匯流排仲裁器
?除錯、追蹤及模擬模組-JTAG、ICECrusher、嵌入式追蹤巨集單元(ETM)
?系統(tǒng)控制周邊-ARM中斷控制模組、PLL(鎖相迴路)及時脈控制模組、電源管理模組、系統(tǒng)控制模組
圖 5 ARM 子系統(tǒng)配置圖
對于 USB、EMAC、SATA、uPP 及 PRU 等周邊而言,ARM 子系統(tǒng)可存取周邊的控制與配置暫存器、時脈及電源管理控制。
結(jié)論
雖然標(biāo)準(zhǔn)介面在設(shè)計系統(tǒng)的過程中發(fā)揮重要的作用,能夠達(dá)到互通性與低成本,并減少設(shè)計時間,但是對于需要達(dá)到產(chǎn)品差異化的設(shè)計團隊而言,實用性較為有限。設(shè)計人員也尋求晶片廠商提供各種多重組合的標(biāo)準(zhǔn)介面。對于晶片廠商而言,有助于有效實作介面的高品質(zhì)軟體程式庫,是達(dá)到差異化的重要因素。提供更高的彈性也相當(dāng)有助益,只要透過 TI PRU 與 uPP 等可配置介面即可達(dá)成。系統(tǒng)設(shè)計人員利用工具套件中的這些選項,即可發(fā)揮創(chuàng)意,并且維持元件的低成本。
評論