利用FPGA協(xié)處理器優(yōu)化汽車信息娛樂和信息通信系統(tǒng)
集成了數(shù)據(jù)通信、本地服務和視頻娛樂功能的高端汽車信息娛樂系統(tǒng)需要高性能的可編程處理技術支持,將FPGA協(xié)處理器整合進主流汽車信息通訊系統(tǒng)架構是最理想的解決方案。本文提出了汽車娛樂系統(tǒng)的要求,討論了主流系統(tǒng)架構,并介紹如何將FPGA協(xié)處理器整合進硬件和軟件架構以滿足高性能處理要求、靈活性要求及降低成本的目標。
娛樂電子正成為豪華汽車之間差異化的主要方面,因而推動了其性能和功能的快速發(fā)展。如何折衷考慮性能、成本和靈活性要求是設計工程師面臨的挑戰(zhàn)。高端應用包括衛(wèi)星收音機、后座娛樂、導航、各種類型的音頻回放、語音合成和識別,以及其它新的應用。
汽車娛樂系統(tǒng)用的核心技術與傳統(tǒng)的汽車應用有本質(zhì)的區(qū)別。與汽車電子的其它領域不同,這些娛樂應用是天天要用的,需求也不斷在發(fā)生變化。另外,過時的娛樂系統(tǒng)將成為新車銷售的主要障礙,并且會影響汽車轉(zhuǎn)售價格和出租價格。
車載娛樂系統(tǒng)的技術要求
傳統(tǒng)的汽車電子為具有較長產(chǎn)品壽命、更寬溫度范圍和低成本要求的全面標準化推動,車載娛樂系統(tǒng)基本上也要滿足這些要求。設計工程師不但需要設計長壽命的系統(tǒng),并且要能適應系統(tǒng)功能的快速發(fā)展。這些要求需要很強的靈活性和性能,這是以傳統(tǒng)的特定應用標準產(chǎn)品(ASSP)為基礎的系統(tǒng)架構所不能提供的。
現(xiàn)在設計的車載娛樂系統(tǒng)的基本架構能夠支持平板顯示器,通過圖形化的人機界面可以顯示動態(tài)地圖和汽車信息。這些架構周邊有高度標準化的微控制器、各種標準接口以及支持低端圖形處理的簡單硬件加速器。這種架構能夠以非常低的成本滿足汽車市場的中等級娛樂系統(tǒng)要求,也能擴展到高端應用以適合頂級豪華汽車市場要求,視頻圖像處理和通信是典型的頂級應用例子。支持這些應用的各種標準包括視頻的MPEG2、MPEG4和H.264,以及通信的GSM/EDGE、WCDMA、1XEVDO、衛(wèi)星收音機、衛(wèi)星電視、數(shù)字視頻廣播和WiFi,這些標準都依賴于不斷發(fā)展的多種信號處理算法,這些算法需要特別高的可編程處理性能。
目前有三種半導體技術可用于實現(xiàn)這些高度復雜的算法,這三種技術分別是可編程數(shù)字信號處理器(DSP)、ASSP和現(xiàn)場可編程門陣列(FPGA)。DSP是一種高性能可編程處理器,專門設計用于信號處理,DSP處理器靈活性高、功耗低、性價比也較高,但沒有硬件加速功能,不能提供當今高級圖像處理和無線通信算法所需的計算能力;通常內(nèi)含DSP處理器的ASSP能夠為簡單視頻或通信標準提供優(yōu)化解決方案,但不能被編程以適應不同的標準;而FPGA不僅具有很高的處理性能,而且可編程,因此可以滿足多種應用和標準要求。與其它二種技術不同,F(xiàn)PGA的靈活性和性能可以滿足所有潛在算法的要求。
圖一
FPGA協(xié)處理器的應用
上文提到的信息通訊基本架構需要額外的處理芯片來處理高端應用,這些芯片一般是ASIC和ASSP,它們通過存儲器或視頻處理總線與處理器集成,從而成為特定應用協(xié)處理器。用FPGA替換這種特定應用硬件是一種非常好的方法,將FPGA和處理器集成在一起的應用稱為FPGA協(xié)處理。FPGA的這種使用方式能夠根據(jù)要求將新的特定應用加速器下載到FPGA中,從而協(xié)助完成任何高性能應用。這一概念被廣泛應用于高級軍事多標準無線電設備,通常稱為軟件無線電(SDR)技術。采用SDR技術,通過簡單的按鍵就可以使一個無線電設備自動適應不同的無線電標準,這不僅有助于設備適應于未來的應用,也能減少執(zhí)行不同任務時空閑的定制處理器的數(shù)量。這種軟件無線電技術也可以用于車載通信和視頻應用。
FPGA在視頻處理和無線連接方面的靈活性還能節(jié)約設備成本,增加系統(tǒng)的價值。目前的基本架構需要ASSP才能支持每個新的視頻編解碼或無線標準。用一個FPGA替代多個ASSP可以減少汽車使用壽命期間必須配置和維護的次數(shù)。擴展車載娛樂系統(tǒng)的基本架構,使其包含F(xiàn)PGA就可以提供可編程的單一高端平臺,從而涵蓋更寬范圍的視頻和無線標準和性能。這種方法同樣適合高級汽車娛樂系統(tǒng)架構使用。
Delphi Delco電子系統(tǒng)公司發(fā)布了先進的汽車娛樂系統(tǒng)架構范例。該平臺采用了一個標準的SH-4微處理器和一個日立的HD64404“Amanda”ASIC器件,提供了80%中級汽車市場所需的基本功能。該系統(tǒng)提供了一個帶標準API層的通用控制處理器,可以對硬件外設和協(xié)處理器進行抽象。ASIC提供基本的外圍器件功能和一體化的圖形處理器,這種圖形處理器可以支持交互圖形和擴展功能,但不能提供視頻編解碼或其它DSP功能。該系統(tǒng)提供了所有娛樂設備所需的基本功能,但仍需要額外的ASIC或ASSP才能完成視頻編解碼和無線通信。
圖二
Delphi架構中的Amanda芯片(見圖1,2 )使用了兩條處理總線,即用于視頻處理等高性能數(shù)據(jù)流的Pixel總線以及控制用的寄存器總線,這兩條總線都相連于SH-4 MPX總線和外部存儲器接口??偩€和存儲器接口的這種完美組合可以很好地支持基于FPGA協(xié)處理器的靈活視頻編解碼和無線通信平臺。
FPGA協(xié)處理可使FPGA與控制或DSP處理器緊密整合在一起,因此可以分擔大部分算法處理任務,同時保留標準編程接口于控制處理器上。當算法的主要數(shù)據(jù)流駐留于FPGA或相關存儲器上時,這種整合的運行效果最佳。算法是由來自于控制處理器的緩慢控制信號控制。
該類型架構可以應用于無線通信,它能通過單個FPGA支持GSM/EDGE、WCDMA、1xEVD0中的數(shù)字處理以及各種802.11標準。其它方案只能是針對每個標準做專門的硬件設計,但這樣做會成倍增加成本和電路板面積。
另外,在圖像處理中應用FPGA協(xié)處理后可以由單個FPGA完成包含MPEG2、MPEG4和H.264在內(nèi)的多標準視頻編解碼。事實上,這里可以使用與無線通信應用中相同的FPGA。
FPGA協(xié)處理器通過直接存儲器訪問(DMA)接口與基于處理器的系統(tǒng)整合在一起。運行于嵌入式處理器上的軟件層為每個協(xié)處理器提供一個應用接口,每個協(xié)處理器都有一個初始化例程,可以通過正確的應用協(xié)處理器加載FPGA。在應用程序初始化后,軟件就調(diào)用協(xié)處理器控制參數(shù)、時序和數(shù)據(jù)流進出協(xié)處理器。根據(jù)具體的實現(xiàn)標準不同,在FPGA協(xié)處理器和控制處理器之間可能會有高等級的交互,也可能FPGA協(xié)處理器完全獨立工作。在這種情況下,控制處理器只是簡單地加載算法,然后就處于獨立運行狀態(tài)。
加載進FPGA的每個程序映像(program image)需要整合進周邊系統(tǒng)中。FPGA的可編程功能需要一個定義完善的系統(tǒng)接口才能實現(xiàn),因為每個基于FPGA的加速器都要依賴于它才能完成通信。通常FPGA會有多個接口連接控制器、存儲器及其它外圍器件或連接器。FPGA可能同時包含多個協(xié)處理器,這些協(xié)處理器共享一個連接控制處理器的接口。每個外圍器件或協(xié)處理器可以擁有額外的總線用于高性能數(shù)據(jù)流處理。
在視頻編解碼器中,一般有一個輸入源和一個輸出目標。Delphi系統(tǒng)架構中的視頻輸入接口是Amanda ASIC的一部分,并采用ITU-R BT.656接口用于視頻流。這個接口以后可以通過ASIC進行擴展和管理,以適合不同種類的顯示屏。FPGA可能需要連接到其它2條總線,即ASIC芯片上的存儲器總線和主控制處理器的PCI/MPX總線。通過這三個連接,F(xiàn)PGA就能支持高帶寬的視頻和通信應用。
FPGA可以為特定應用處理架構提供可再編程的平臺,從而彌補主處理器的不足。然而,F(xiàn)PGA程序與標準處理器架構的程序具有本質(zhì)的區(qū)別。FPGA可以提供帶可編程邏輯單元、布線資源、DSP處理模塊、存儲器和I/O的高性能硬件結構。FPGA的系統(tǒng)架構執(zhí)行方式與標準ASSP基本相同,即系統(tǒng)的一些專用功能是通過硬件和軟件開發(fā)工具設計和實現(xiàn)的。這些工具的輸出是一種二進制映像文件,這些映像文件加載到FPGA中后將能確定所有可編程邏輯單元、布線資源、DSP處理模塊等的功能。主處理器可以在系統(tǒng)運行期間將這些二進制映像文件加載進FPGA??梢詣?chuàng)建各種不同的程序映像來支持汽車信息通信系統(tǒng)中可能會用到的MPEG2、MPEG4、H.264、GSM/EDGE、WCDMA、1xEVDO、GPS、3D圖形加速器或其它算法。根據(jù)用戶在娛樂系統(tǒng)中的菜單選擇,特定應用程序可以由主處理器下載到FPGA中,然后接受主處理器的控制。
FPGA用于可編程功能要求良好定義的系統(tǒng)接口
主處理器對特定硬件加速器的控制一般是通過寄存器和存儲器接口完成,每個寄存器控制硬件加速器工作的某些方面。Delphi系統(tǒng)中默認的協(xié)同芯片就是這樣的,對于加載到FPGA的每個協(xié)處理器架構來說也將是這樣。采用FPGA,對于處理像標準化寄存器和存儲器接口以控制編程到器件中的協(xié)處理器這樣的任務來說是很容易的。這個標準接口可以定義如何向協(xié)處理器讀寫數(shù)據(jù)、如何開始和停止讀寫、如何復位,并包含一套控制特定應用操作的寄存器。所有這些寄存器都是FPGA內(nèi)部線性地址映射中的一部分,因此軟件物理器件驅(qū)動器很容易訪問這些寄存器。
用于協(xié)處理器的軟件物理器件驅(qū)動器的抽象級別要比用硬件實現(xiàn)的寄存器接口高。軟件驅(qū)動器提供了從系統(tǒng)的算法參數(shù)到控制寄存器的映射,因此應用軟件非常容易編寫和維護。更高層模型器件驅(qū)動器在底層硬件實現(xiàn)變化過程中仍保持相當?shù)目梢浦残?。Delphi系統(tǒng)中的軟件架構可以支持軟件或硬件協(xié)處理器來實現(xiàn)算法,它提供了幾個抽象層,這些抽象層將在軟件或硬件中的算法實現(xiàn)與物理實現(xiàn)分離開來。FPGA協(xié)處理器非常適合Delphi的軟件和硬件架構。
FPGA被設計用于基本架構與Delphi系統(tǒng)架構類似的許多系統(tǒng)中。這些系統(tǒng)內(nèi)含一個以上的控制或DSP處理器,并利用FPGA來加速那些需要高性能處理的任務。實現(xiàn)FPGA協(xié)處理器的關鍵挑戰(zhàn)在于以下幾個方面:設計用于FPGA的不同的硬件加速器;硬件加速器與外部控制處理器整合;創(chuàng)建控制硬件加速器的軟件層。所有要求的硬件加速器包括用于視頻和通信應用的主流算法。這樣的應用今后會有廣闊的市場,而且這種市場發(fā)展后會培養(yǎng)更多的特殊標準知識產(chǎn)權(IP)硬件加速器專業(yè)設計公司,這些公司能夠提供可以直接用在先進的低成本FPGA中的現(xiàn)成算法。另外,也可以購買針對MPEG2、MPEG4、H.264、WiFi和其它視頻與通信標準設計的商用IP模塊。圖3就是Amphion公司推出的MPEG4解碼器IP模塊框圖,可用于ASIC或FPGA中。
圖3
SOPC Builder的應用
下一步是將FPGA中的硬件加速器與用于控制、數(shù)據(jù)輸入和輸出的外部總線整合起來。設計工程師可以利用新型開發(fā)工具輕松地實現(xiàn)這一步。設計工程師可以使用Altera公司提供的系統(tǒng)集成工具SOPC Builder從可用的IP列表中選擇合適的IP模塊。在選擇時工具會提供一份參數(shù)化菜單,用戶可以在實現(xiàn)以前控制不同的架構選項。一旦參數(shù)設定后,模塊就會包含在工程師準備集成的其它外圍器件和處理器列表中。當每個IP模塊都選好并設定參數(shù)后,還需要將其集成進處理架構中。
SOPC Builder使設計工程師可以定義高性能的交換架構(switch architecture),并通過交換架構將各種硬件加速器和周邊器件與外部主處理器連接起來。在模塊互連的直觀矩陣圖上通過點擊鼠標就可以完成這種開關架構的定義。在定義好之后,SOPC Builder就能自動組合各個IP,然后生成硬件描述語言的描述,并自動綜合成最終的FPGA程序。在運行期間將最終程序下載到FPGA,從而實現(xiàn)特定算法的協(xié)處理器。
硬件整合完成后,需要用軟件物理器件將高層軟件控制與用于控制硬件加速器的具體寄存器和存儲器映射架構分隔開。用于控制硬件加速器的寄存器和存儲器是參數(shù)化IP模塊的標準組件。然而,多個外圍器件與加速器的整合需要一份在FPGA上實現(xiàn)所有可編程特性的寄存器和存儲器映射。SOPC Builder在將IP組裝進用戶定義的交換架構時能夠自動創(chuàng)建這樣的寄存器和存儲器映射。
每個IP模塊都包含一套預先定義好的軟件物理器件驅(qū)動器,這些驅(qū)動器主要用于外部主處理器對IP模塊的控制。SOPC Builder能夠自動組裝各個軟件物理器件驅(qū)動器,并自動將每個驅(qū)動器與被它控制的IP模塊相關的寄存器和存儲器映射關聯(lián)起來。因此SOPC Builder能夠通過這種方式自動創(chuàng)建并整合FPGA協(xié)處理器和控制處理器的硬件與軟件架構。SOPC Builder可以滿足FPGA快速發(fā)展的性能要求,并適應FPGA不斷增強在復雜系統(tǒng)實現(xiàn)中應用的能力。
推動FPGA技術快速發(fā)展的因素
可編程邏輯器件自從20年前推出以來得到了迅猛發(fā)展,已經(jīng)從低水平的膠合邏輯發(fā)展成目前具有最低成本、最高可編程處理性能的器件。驅(qū)動FPGA性能和成本的二大關鍵要素是:FPGA架構的發(fā)展以及FPGA使用半導體技術的方式。FPGA架構提供的可編程邏輯單元陣列是與可編程布線資源組合在一起的。在早期的低密度FPGA中,這種架構能完成簡單處理單元的互連。隨著FPGA密度的提高,陣列架構可以提供高度并行處理的能力。目前FPGA架構的整個處理陣列內(nèi)包含有存儲器模塊、DSP模塊和可編程I/O,因此能夠輕松滿足汽車信息處理系統(tǒng)的性能要求。
FPGA發(fā)展的另外一個重要驅(qū)動源是工藝技術及其對性能和成本的影響。采用最新一代工藝技術可以提高FPGA的密度和性能,降低FPGA的成本。同時,F(xiàn)PGA的廣泛應用反過來也促進工藝技術的發(fā)展。FPGA對半導體工藝技術的發(fā)展極具價值,因為它們使用的規(guī)則結構能夠在其生命周期的早期就投入批量生產(chǎn)。FPGA的規(guī)則結構非常方便產(chǎn)品缺陷測試中統(tǒng)計數(shù)據(jù)的收集,這對精確調(diào)整工藝技術以達到更高制造良品率是非常重要的。FPGA和工藝技術之間的共生關系不斷地提高著FPGA的密度,并降低器件的成本。因此相對專用ASIC和ASSP來說,目前Altera的Cyclone系列低成本FPGA在價格方面極具競爭性。
本文小結
汽車娛樂系統(tǒng)的技術和差異化在不斷快速發(fā)展。先進的系統(tǒng)架構服務于大部分主流汽車市場,并通過附加ASSP和軟件的支持實現(xiàn)高端產(chǎn)品的差異化。FPGA提供了高性能和靈活的協(xié)處理平臺,并將許多ASSP的功能整合進一個可再編程平臺。FPGA協(xié)處理器非常適合Delphi架構這樣的主流汽車娛樂架構。將FPGA協(xié)處理器用作高端汽車娛樂系統(tǒng)架構的一部分后,汽車公司就可以通過軟件編程提供ASSP無法單獨提供的多種高端視頻和通信性能。靈活的高端汽車娛樂架構利用FPGA可以在汽車銷售甚至整個汽車生命期內(nèi)不斷實現(xiàn)新的功能。在銷售和售后階段增強汽車娛樂系統(tǒng)功能的能力可以提升汽車售中和售后的價值,而以前被租汽車的轉(zhuǎn)售價值仍是汽車制造商贏利的主要來源。