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