對于設計人員而言,根據(jù)應用的性能、電源、存儲器以及接口要求尋找特定的嵌入式處理器是一項令人生畏的艱巨任務,因為即便是相似的系統(tǒng)也存在著顯著的差異。盡管ARM處理器提供十幾種選擇,但系統(tǒng)設計人員卻很難找到“完美的搭配”。
本文將重點介紹各種標準接口,并揭示它們對不同嵌入式芯片廠商的區(qū)別所在。了解基本接口可幫助設計人員優(yōu)先考慮哪些接口應為片上(on-chip)。不過,雖然標準接口具有很高的使用價值,但為了提供額外的片上資源,也需要可定制的片上接口。本文將介紹兩種這樣的外設模塊。
USB
通用串行總線(USB)接口最初的開發(fā)目的是用來連接個人計算機與外設。隨著時間的推移,它已經成為工業(yè)與基礎設施應用的常用接口。諸如鍵盤、鼠標以及示波器等人機接口設備(HID)通常都采用USB接口,這就意味著它必須得到系統(tǒng)嵌入式處理器的支持。實現(xiàn)這一目標的最有效方法是采用片上外設。
除了HID之外,工業(yè)與基礎設施應用還可以使用另外兩種設備。USB通信設備類(CDC)不但適用于調制解調器與傳真機,而且還可通過提供用于以太網數(shù)據(jù)包傳輸?shù)慕涌趤碇С趾唵蔚穆?lián)網。同樣,USB大容量存儲設備(MSD)主要針對硬盤驅動器及其它存儲介質。
USB 2.0規(guī)范要求主機初始化所有向內及向外的傳輸。此外,該規(guī)范還定義了三種基本設備:主機控制器、集線器以及外設。
USB 2.0的物理互連是一種在每個星型中心使用一個集線器的分層星型拓撲結構。每條線段都是一個主機與集線器或功能之間的點對點連接,或者是一個連接至另一個集線器或功能的集線器。
USB 2.0系統(tǒng)中用于設備的尋址方案可實現(xiàn)單個主機連接多達127個設備。這127個設備可以是集線器或外設的任何組合。復合或組合設備可以是這127個設備中兩個或兩個以上的設備。
雖然USB 2.0很可能是工業(yè)和許多基礎設施應用的首選,但外設設備需要在沒有主機參與的情況下彼此通信時,還需要部署移動USB(USB OTG)。為了實現(xiàn)點對點通信,USB OTG引入了一種新的設備,這類設備包含可為兩個外設實現(xiàn)數(shù)據(jù)共享的限制主機功能。
OTG補充方案定義了一套新的、稱之為主機協(xié)商協(xié)議(HNP)的握手方式。使用HNP,能夠作為默認外設連接的設備可請求成為主機。這有助于現(xiàn)有USB 2.0主機設備范例提供點對點通信。另外還定義了會話請求協(xié)議(SRP)。
USB具有可靠標準的普及性與極高地位,可向嵌入式處理器廠商提供專門針對USB功能的軟件庫,從而可大幅縮短開發(fā)時間。系統(tǒng)設計人員不必編寫自己的代碼,只需進行功能調用,便可實施接口。
這些庫應通過認證,證明已通過了USB實施人員論壇實施的USB設備及嵌入式主機合規(guī)性測試。德州儀器(TI)等一些廠商可為其嵌入式處理器提供廣泛的USB庫。
2007年,旨在創(chuàng)建一種更快USB類型的USB 3.0推廣團隊(the USB 3.0 Promoter Group)得以成立,這種USB類型不但向后兼容以前的USB標準,而且還可提供比USB 2.0快10倍的數(shù)據(jù)速率。USB 3.0采用新的信號發(fā)送方案,并通過保留USB 2.0雙線接口實現(xiàn)了向后兼容性。然而這種更快的版本還處于部署初期,USB 2.0今后數(shù)年仍將是最常用的USB類型,其具有高速(480Mbps)、低速(1.5Mbps)以及全速(12Mbps)三種速度選項。
EMAC
雖然符合IEEE 802.3以太網標準的接口一般會被誤稱為以太網介質訪問控制器(EMAC),但完整的EMAC子系統(tǒng)接口實際上包括三個模塊,這三個模塊可能會集成在片上,也可能不會:物理層接口(PHY);以太網MAC,其可實施協(xié)議的EMAC層;定制接口一般稱為MAC控制模塊。
EMAC模塊可控制系統(tǒng)到PHY的包數(shù)據(jù)流。MDIO模塊可執(zhí)行PHY的配置以及狀態(tài)監(jiān)控。兩個模塊都可通過MAC控制模塊訪問系統(tǒng)核心,從而還可優(yōu)化數(shù)據(jù)流。在TI嵌入式處理器等完全集成型解決方案中,定制接口被視為EMAC/MDIO外設不可或缺的組成部分。
完整的EMAC子系統(tǒng)如圖1所示。
EMAC控制模塊不但可控制設備中斷,而且還整合了一個用于保持EMAC緩存器描述符的8K字節(jié)內部隨機訪問存儲器(RAM)。該MDIO模塊采用802.3串行管理接口來詢問和控制多達32個采用共享雙線總線連接至設備的以太網PHY。
主機軟件使用MDIO模塊來配置連接至EMAC的每個PHY的自動協(xié)商參數(shù),恢復協(xié)商結果,并在EMAC模塊中配置所需的參數(shù),以實現(xiàn)正確的操作。該模塊可為MDIO接口實現(xiàn)近乎透明的操作,基本不需要核心處理器的維護。
EMAC模塊可在網絡與處理器之間提供一個高效率的接口。EMAC模塊通??商峁?0Base-T(10Mbit/秒)與100Base TX(100Mbit/秒)、半雙工與全雙工模式,以及硬件流控制與服務質量(QoS)支持。此外,部分處理器現(xiàn)在還支持可實現(xiàn)1000Mbit/秒數(shù)據(jù)速率的千兆位EMAC容量。
由于以太網的廣泛使用,嵌入式處理器一般都在芯片上集成了一個或多個EMAC接口。不同的廠商在實施上述完整的EMAC子系統(tǒng)時采用的方法也稍有不同。實施以太網接口所需的軟件支持與庫的質量和范圍是選擇嵌入式處理器廠商時需要考慮的另一個問題。
路由器或交換機等應用所需的EMAC有時不止一個。這些應用通過使用多個EMAC,能夠在創(chuàng)建同步過程通信的同時,與眾多設備通信。
SATA
串行ATA(SATA)可將主機總線適配器與諸如硬盤驅動器與光盤驅動器等大容量存儲設備相連。它已基本取代了之前的并行ATA(PATA)。PATA要求40/80線并行線纜,長度不超過18英寸。PATA的最大數(shù)據(jù)傳輸速率為133Mbit/秒,而SATA串行數(shù)據(jù)格式則使用兩個差分對來支持連接數(shù)據(jù)存儲設備的接口,線路速率為1.5Gbit/秒(SATA版本1)、3.0Gbit/秒(SATA版本2)與6.0Gbit/秒(SATA版本3)。SATA 1和SATA 2現(xiàn)已面市,SATA 3將在近期推出。
此外,SATA控制器需要的線纜較細,而且可以長達3英尺。較細的線纜更加靈活,一方面可實現(xiàn)更便捷的布線,另一方面更有利于大容量存儲設備外殼內的空氣流通。
串行鏈路可獲得高性能的部分原因是采用高級系統(tǒng)存儲器結構來容納高速串行數(shù)據(jù)。這種高級主機控制器接口(AHCI)存儲器結構可為控制、狀態(tài)以及命令列表數(shù)據(jù)表提供一個通用域。命令列表的每條記錄都包含用于編程SATA設備的信息以及一個用于在系統(tǒng)存儲器與設備之間傳輸數(shù)據(jù)、指向描述符表的指針。
大多數(shù)SATA控制器不但支持熱插拔,而且還采用端口多路器來增加可連接至單個HBA端口的設備數(shù)量。SATA標準有一個很長的特性列表,但幾乎沒有SATA控制器可支持所有這些特性。常見特性包括:支持AHCI控制器規(guī)范1.1版;集成SERDES PHY;集成Rx與Tx數(shù)據(jù)緩存器;支持SATA電源管理特性;每端口配備內部DMA引擎;多達32條記錄的硬件輔助原生命令排序(NCQ);32位尋址;支持端口乘法器;支持LED工作;機械控制開關(mechanical presence switch)。
由于SATA能夠存儲可延伸至太字節(jié)范圍的大量數(shù)據(jù),因此應用非常廣泛,其中包括上網本、膝上型電腦、臺式機、多媒體設備以及便攜式數(shù)據(jù)終端等。此外,SATA還可用于可能需要傳感器或系統(tǒng)監(jiān)控器存儲大量數(shù)據(jù)以待后續(xù)分析的工業(yè)應用。
DDR2/移動DDR
DDR2是雙倍數(shù)據(jù)速率(DDR)SDRAM規(guī)范的后繼標準,這兩個標準互不兼容。DDR2在總線時鐘信號的上升沿與下降沿傳輸數(shù)據(jù),并能夠以更高的總線速度運行,從而可實現(xiàn)每個內部時鐘周期四次的數(shù)據(jù)傳輸。
簡化型DDR2控制器包括以下設計塊:存儲器控制、讀取接口、寫入接口以及I/O塊。
這些塊以及它們與DDR2存儲器芯片及核心邏輯的關系見圖2所示。
存儲器控制塊發(fā)出存儲器對專用核心邏輯的訪問,反之也是如此。讀取物理塊負責處理在各個讀取周期中采集數(shù)據(jù)的外部信號時序,而寫入物理塊則使用適當?shù)耐獠啃盘枙r序管理時鐘與數(shù)據(jù)的發(fā)出。
字節(jié)寬度雙向數(shù)據(jù)選通(DQS)隨數(shù)據(jù)(DQ)通過外部方式傳輸,用于采集目的。DQS在讀取存儲器時由控制器通過邊緣對齊的方式傳輸,而在寫入存儲器時則采用中心對齊的方式。片上延遲鎖相環(huán)(DLL)用于鎖住DQS及相應的DQ。這可在電壓及溫度發(fā)生變化時確保它們能夠彼此跟蹤。
DDR2 SRAM具有差分時鐘輸入,可降低時鐘輸入占空比變化時的影響。此外,DDR2 SRAM還支持數(shù)據(jù)掩碼信號,可在各個寫入周期中為數(shù)據(jù)位添加掩碼。
移動DDR(MDDR)也稱低功耗雙倍數(shù)據(jù)傳輸速率存儲器(LPDDR),因為其工作電壓為1.8V,而傳統(tǒng)存儲器工作電壓為2.5V或3.3V,通常用于便攜式電子產品。此外,移動DDR存儲器還支持傳統(tǒng)DDR2存儲器不具備的低功耗狀態(tài)。與所有DDR存儲器一樣,雙倍數(shù)據(jù)傳輸速率是通過器件時鐘上下沿同時傳輸數(shù)據(jù)實現(xiàn)的。
uPP
由于片上外設的數(shù)量受成本或其它限制條件的約束,系統(tǒng)設計人員往往想找出數(shù)據(jù)片上與片外傳輸?shù)男路椒āR环N策略是利用未使用視頻端口的資源,實際上是利用它來高速發(fā)送和接收非視頻數(shù)據(jù)。這種方法的缺點之一就是數(shù)據(jù)必須被格式化成視頻幀,這在工作中需要部分處理器MIPS的支持,而在設計周期中則需要寶貴的編程時間。
其它的方法存在類似的困難,而且大多數(shù)標準片上數(shù)據(jù)接口是串行端口,不能執(zhí)行高速數(shù)據(jù)傳輸。
最終許多系統(tǒng)設計人員認識到將某種不符合特定接口標準,但能夠以多種方式配置的高靈活高速外設專門用于數(shù)據(jù)傳輸會帶來顯著的優(yōu)勢。如果系統(tǒng)處理器必須與高速DAC、ADC、DSP乃至FPGA連接,實現(xiàn)250MB/秒的高速數(shù)據(jù)傳輸,則這種思路就非常有價值了。
這種外設的基本架構很容易描述。它要有多個具有單獨并行總線的通道,經配置后可以容納超過一個字的長度。此外,它還要有內部DMA塊,這樣其工作就無需占用內核的MIPS預算。單、雙倍數(shù)據(jù)速率以及多種數(shù)據(jù)打包格式也是可以使用的。
TI各種嵌入式處理器都提供通用并行端口(uPP),包括Sitara ARM9 AM1808與AM1806微處理器(MPU)以及集成TMS320C674x內核與ARM9內核的OMAP-L138處理器。與SPI及UART等串行外設不同,uPP可為設計人員提供并行數(shù)據(jù)總線優(yōu)勢,每通道數(shù)據(jù)寬度為8位和16位。
uPP在以75MHz的最高時鐘速率運行時,能夠以遠超串行端口外設的速度傳輸數(shù)據(jù)。例如,單個運行在75MHz速率下的16位uPP通道能夠比運行在50MHz速率下的SPI外設快24倍。簡化的方框圖見圖3。
uPP最重要的特性包括:
具有單獨數(shù)據(jù)總線的兩個獨立通道;兩個通道可同時以相同或相反方向運行。
I/O速度高達75MHz,每通道數(shù)據(jù)位寬為8~16位。
內部DMA—可釋放CPU EDMA。
具有極少控制引腳的簡單協(xié)議(可配置:每通道2~4個)。
單倍及雙倍數(shù)據(jù)速率(使用時鐘信號的單沿或雙沿);雙倍數(shù)據(jù)速率要求37.5MHz的最高時鐘速率。
支持9~15位數(shù)據(jù)位寬的多種數(shù)據(jù)打包格式。
數(shù)據(jù)交錯模式(限單通道)。
uPP與另一種專用于可配置數(shù)據(jù)處理的TI外設—主機端口接口(HPI)有某種相似之處。HPI是一種可幫助外部主機直接訪問處理器內部存儲器的并行接口。然而與HPI不同,uPP不允許外部設備直接訪問存儲器,它需要設備軟件對I/O傳輸進行排隊。其最大差異可能在于uPP比HPI速度快得多,而且協(xié)議也簡單得多。
uPP主要用于如FPGA或DSP等需要片外實時處理的應用,可為醫(yī)療領域等需要即時數(shù)據(jù)的市場帶來極大的優(yōu)勢。通過使用uPP,決策處理器能夠憑借最新信息做出結論。
PRU
可編程實時單元(PRU)是一種小型32位處理引擎,可為片上實時處理提供更多的資源。PRU專門用于AM1x MPU與OMPAP-L138解決方案中的TI嵌入式處理器,可為系統(tǒng)設計人員提供具有高靈活性的額外措施,通常可降低組件成本。
PRU的四總線架構有助于指令隨數(shù)據(jù)傳輸同步傳輸和執(zhí)行。此外,還可提供一個輸入寄存器,讓外部狀態(tài)信息反映在內部處理器的狀態(tài)寄存器內。
PRU設計的一個重要目的就是盡可能地創(chuàng)建靈活性,以便執(zhí)行各種功能。PRU的高靈活性可幫助開發(fā)人員在其終端產品(不管是觸摸屏、集成型顯示屏還是存儲功能)中整合更多的接口,以進一步擴展產品功能或者其自己的專有接口功能。該目標主要是通過提供包括所有系統(tǒng)存儲器、I/O以及中斷在內的PRU全面系統(tǒng)可視性實現(xiàn)的。
雖然PRU能夠全面訪問系統(tǒng)資源,但其內部資源相對來說比較普通。它具有4K字節(jié)的指令存儲器和512字節(jié)的數(shù)據(jù)存儲器。此外,PRU還具有自己的GPIO,時延僅為數(shù)納秒。
PRU可通過使用簡單的匯編語言代碼編程來實施定制邏輯。該指令集可分為四大類:將數(shù)據(jù)移入或移出處理器內部寄存器;執(zhí)行算術運算;執(zhí)行邏輯運算;控制程序流。
在工業(yè)應用中,通常將PRU配置為IO塊,用來頂替處理器未能提供的IO。例如,它可以用在需要UART塊組合的便攜式數(shù)據(jù)終端中,用來連接GSM、GPS與藍牙、小鍵盤、打印機、LED組以及RS232端口。然而,雖然該處理器系列中的最佳選擇只集成了三個UART,但PRU可提供更多的UART接口,可充分滿足不斷發(fā)展的終端設備對處理各種功能的需求。
除了用來頂替IO,PRU經編程后還可執(zhí)行各種控制、監(jiān)控或其它片上沒有提供的功能。這種靈活性對于一些應用而言特別有幫助,這些應用包含的控制要求與任何標準處理器配置提供的控制要求不匹配。
ARM子系統(tǒng)與外設集成
在評估ARM處理器中的外設接口時,理解外設與ARM子系統(tǒng)的集成方式非常重要。
ARM處理器適合復雜、多任務的通用控制任務。它不但可為大型程序提供存儲器空間,而且還具有良好的環(huán)境切換功能,適合運行實時操作系統(tǒng)(RTOS)和精細的高級操作系統(tǒng)。ARM負責系統(tǒng)配置與控制,其任務包括外設配置及控制、時鐘控制、存儲器初始化、中斷處理以及電源管理等。ARM子系統(tǒng)包含ARM處理器以及作為整體處理器系統(tǒng)主控制器工作所必須的其它組件。
典型ARM子系統(tǒng)包括下列組件組合:
ARM內核(例如:ARM926EJ-S或ARM Cortex-A8):
協(xié)處理器15(CP15)
MMU
寫入緩沖器
指令高速緩存
數(shù)據(jù)高速緩存
Java加速器
Neon單指令、多數(shù)據(jù)(SIMD)協(xié)處理器
矢量浮點協(xié)處理器(VFP)
ARM內部存儲器:
RAM
ROM(ARM引導加載程序)
總線判優(yōu)器:
用于訪問內部存儲器的總線判優(yōu)器
用于訪問系統(tǒng)及外設控制寄存器的總線判優(yōu)器
用于訪問外部存儲器的總線判優(yōu)器
調試、跟蹤以及仿真模塊:
JTAG
ICECrusher
嵌入式跟蹤宏單元(ETM)
系統(tǒng)控制外設:
ARM中斷控制模塊
鎖相環(huán)(PLL)及時鐘控制模塊
電源管理模塊
系統(tǒng)控制模塊
可參考圖5,了解典型ARM9 ARM子系統(tǒng)的方框圖。
對于USB、EMAC、SATA、uPP以及PRU等外設而言,ARM子系統(tǒng)可訪問外設的控制與配置寄存器、時鐘以及電源管理控制。
本文小結
雖然標準接口在設計系統(tǒng)的過程中發(fā)揮著重要作用,可幫助實現(xiàn)互操作性與低成本,并減少設計時間,但對需要實現(xiàn)產品差異化的設計團隊而言,其實用性仍然很有限。設計人員還應依賴芯片廠商為其提供各種多組合標準接口。對芯片廠商而言,有助于高效實現(xiàn)接口的高質量軟件庫是實現(xiàn)差異化的另外因素。提供更高級別的靈活性也非常有幫助,這可以通過TI PRU與uPP等可配置接口獲得。系統(tǒng)設計人員利用其工具套件中的這些選項,既可發(fā)揮創(chuàng)造性,同時又能保持組件的低成本。
作者:Clay Turner
James Doublesin
Lawrence Ronk
Steve Kipisz
德州儀器