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