要了解定制為何如此重要,請考慮以下三個示例,其中可以使用參考設計作為起點,但設計人員可能希望對設計進行更改,即使是在后期階段:
設計實現了通信堆棧的一部分(例如,USB 音頻),但音頻端的硬件接口可以定制為與特定類型的編解碼器(如 I2S 主或從 S/PDIF)進行通信,也可以定制帶有一個額外的控制端點。
工業控制器實現許多標準協議之一;例如,工業電機供應商可能希望包含以太網 PHY,但推遲決定是否運行 EtherCAT 或任何其他實時以太網堆棧。
嵌入式 Web 服務器可用于配置上述任一示例,前提是設計人員可以在 Web 服務器內部實現控制邏輯。
定制設計的難易程度取決于用于實現設計核心的技術。它使用了 ASIC、FPGA 還是實時處理器?
如果設計實現為 ASIC,那么定制它的唯一可行方法是修改 ASIC 中內置的參數。考慮第一個示例,USB 音頻 ASIC 將具有設置 USB 設備產品名稱的方法,并可能提供左對齊和右對齊 I2S 之間的選擇。但是,它可能不提供添加額外控制端點或使用 S/PDIF 作為輸出接口的選項。事實上,開發支持所有合理接口的 ASIC 是不可能的,開發支持精心挑選的小型接口集的 ASIC 家族也不經濟。
如果設計是在 FPGA 中實現的,那么理論上,定制可以像用戶想要的那樣極端。但是,硬件設計流程可能會使定制成為一個不那么簡單的過程。對于硬件設計人員來說,實現一個額外的接口(如 S/PDIF)并不困難,但實現一個額外的控制端點需要將軟件重新實現為一個硬件。此外,必須綜合結果,在定制設計完全綜合、布局和布線之前,尚不清楚是否仍能滿足原始時序約束。
第三種選擇是將設計完全實現為軟件。由于涉及許多相互沖突的實時要求,這通常被認為難以完成。但是,只要程序員可以將問題分解為一組獨立的實時任務,這些任務在一組獨立的實時處理器上運行,軟件實現就可以完美地管理。
這使設計人員能夠靈活地將硬件協議簡單地作為軟件任務來實現,方法是專門使用一個實時處理器來實現該硬件協議。例如,可以通過以適當的方式擺動時鐘和數據線,在軟件中實現 I2S。此外,USB 可以通過向 USB PHY 讀取和寫入數據來實現。如果這兩個活動作為兩個獨立的任務執行,那么所有的實時期限都可以單獨滿足。
后者是一種稱為并發實時編程的編程模型。圖 1 顯示了單個 XMOS XCore 處理器如何同時執行八個線程。每個線程都可以看作是一個獨立的處理器,具有保證的實時執行率。每條指令將在已知的時間內執行;因此,程序員可以預測程序是否會滿足時間期限。
圖 1:并發實時編程同時執行多個線程。
這個模型的美妙之處在于時間預測完全獨立于任務。例如,考慮前面提到的 I2S 任務。一旦程序以某種方式編寫,它將在例如 50 MIPS 處理器上執行,那么無論對其他線程進行修改,該 I2S 線程將始終滿足其時序。打破時間安排的唯一方法是不以適當的速率提供數據。這是可以預料的;如果未提供 48 kHz 的數據,則無法為編解碼器提供 48 kHz 的數據,并且某些東西必須中斷。
軟件不是靈丹妙藥。兩個明顯的限制是需要太多瞬時帶寬的接口和需要非常短周轉時間的硬件接口。例如,在當今的處理硬件上用軟件編寫多 GHz SERDES 是不可行的,但許多常見的接口可以用軟件來制定。
軟件實現優于硬件接口的原因有以下三個:
1. 經濟性:不可能提供所有可用的接口作為硬件塊。處理器可以根據需要對任何類型的接口進行建模。
2、適應性:在硅片上設置硬件內置接口。如果標準不斷發展,或者如果特定設備不完全兼容或需要執行一些額外的操作,那么硅接口將無法完成這項工作。可以調整軟件定義的接口以滿足要求。
3. 優化:可以優化軟件定義的界面來解決手頭的問題??紤]前面提到的 EtherCAT 應用程序。如果使用硬件媒體獨立接口(MII),則數據包被存儲和轉發,這不滿足例如延遲要求。如果接口是在軟件中定義的,那么緩沖需求可以針對問題進行定制。
第三個原因很重要,因為許多處理 UART、I2S、MII 和其他標準的標準模塊必須具有內置的 FIFO 緩沖區來解耦接口,而這些緩沖區在許多情況下是不需要的,因為它們會增加延遲。
一旦設計師選擇了基于軟件的設計流程,可能性就無窮無盡。圖 2 顯示了一個 USB 板,它同時支持使用立體聲 I/O 編解碼器(通過 I2S)、差分數字接口(使用 S/PDIF)和樂器數字接口 (MIDI) 的模擬接口。
圖 2:在 USB 板上,同一處理器只需更改軟件即可驅動任何混合接口。
嵌入式處理器實現 USB 堆棧和 USB 音頻協議。在此特定配置中,驅動三個音頻接口:MIDI、I2S/模擬和 S/PDIF。后者可以僅通過軟件更改更改為不同的協議,例如 ADAT。更重要的是,產品的變化可以通過不同的接口集進行,例如大量的同軸輸出或基于 I2S 的編解碼器。嵌入式處理器上的軟件只需稍作改動即可根據接口的具體情況進行定制。每個接口沒有預定義的編號。
靈活的硬件可以實現更大的產品差異化,使開發人員和產品經理能夠為他們的客戶提供與眾不同的價值。并發實時編程可以保證嚴格的時序要求,XMOS XCore 等嵌入式處理器提供了利用這種編程方法所需的芯片和開發工具。
審核編輯:郭婷
-
處理器
+關注
關注
68文章
19338瀏覽量
230201 -
解碼器
+關注
關注
9文章
1144瀏覽量
40794 -
嵌入式
+關注
關注
5086文章
19143瀏覽量
306045
發布評論請先 登錄
相關推薦
評論