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