汽車工業(yè)蓬勃發(fā)展,,車載信息娛樂系統(tǒng)已經(jīng)不再是豪華轎車的獨有設施,,越來越多的中低端轎車開始擁有自己的信息娛樂系統(tǒng)。
然而,,車載信息娛樂系統(tǒng)是一個高度集成的復雜系統(tǒng),,其中可以包括導航系統(tǒng)、影音系統(tǒng),、電話系統(tǒng),、空調通風系統(tǒng),,以及其他車內外舒適設備的控制系統(tǒng)等,,這些系統(tǒng)涉及的通訊網(wǎng)絡可以包括LINK_KEYWORD0、MOST,、LIN,、藍牙和其他無線網(wǎng)絡協(xié)議等。設計這樣一個復雜系統(tǒng),,不但要考慮系統(tǒng)的性能和成本,,更要考慮設計的靈活性,以保持產(chǎn)品在快速變化的市場中的競爭力,。
汽車電子系統(tǒng)要求溫度適應范圍大,、有利于生產(chǎn)標準化和很長的設計壽命。車載信息娛樂系統(tǒng)是一個快速發(fā)展和適應各種用戶的系統(tǒng),,如果既要保持一個設計具有長的壽命又要有高度的靈活性,,那么這種設計在軟硬件,特別是在硬件方面要有很強的可擴展性,。
一般來說,,車載信息娛樂系統(tǒng)具有復雜的人機界面(按鍵和旋鈕),帶一個可以顯示地圖,、影像和汽車信息的液晶顯示器,,有時還會是觸摸屏。這種系統(tǒng)一般以一個高性能MCU為中心,,加上各種標準接口以及一個視頻加速器件,。
DSP、ASSP和FPGA都可以用來實現(xiàn)多種接口和視頻處理,。DSP專為信號處理而設計,,具有靈活度高和功耗低的特點。然而,,目前DSP的運算能力尚不能同時滿足更高的圖像處理和無線通訊的要求,。ASSP通常為某個標準的圖像處理和無線通訊而設計,換言之,,它不具有適應多種標準的可編程性,。FPGA同時具有高的運算能力和內部邏輯的現(xiàn)場可編程性,,它能夠適應車載信息娛樂系統(tǒng)的靈活性。另外,,F(xiàn)PGA的現(xiàn)場可編程性使之能夠代替很多原來要ASIC來實現(xiàn)的功能單元,,這樣就給硬件設計帶來很大自由度。
應用MCU+FPGA的設計,,軟件和外設硬件都可以在FPGA中變化,,整個系統(tǒng)相當于一個很容易進行升級的軟件,改變硬件就像改變軟件一樣簡單,。這樣的系統(tǒng)可以滿足從低端到中高端汽車電子產(chǎn)品的設計,、測試和生產(chǎn)的要求。所以,,基于MCU+FPGA的設計給車載信息娛樂系統(tǒng)帶來了很大的靈活性,。
在確立了基本硬件框架之后,接著就要考慮基于這種框架的芯片的選擇,。對于車載娛樂信息系統(tǒng)這樣一個復雜的人機交互系統(tǒng),,高性能和高安全的嵌入式實時操作系統(tǒng)是首選的軟件基礎。而該操作系統(tǒng)支持的芯片組將是MCU的主要候選者,。目前,,在汽車工業(yè)界普遍接受的組合是SH4(MCU)加上QNX(操作系統(tǒng))。
FPGA的選擇要相對容易一些,,至少有Xilinx,、Altera、Lattice,、Actel和Quicklogic等五家公司的產(chǎn)品可以考慮,。Xilinx和Altera是FPGA的行業(yè)領袖,他們的產(chǎn)品應用廣泛,,有大量的標準庫可以采用,。圖1的框圖是一個硬件的基本構成示意圖。
考慮了硬件之后,,軟件的架構就變得明晰了,。由于QNX支持POSIX規(guī)范,所以基于它編寫的模塊化的應用程序和應用開發(fā)庫具有良好的可移植性,,這對支持同類軟件架構的其他平臺的開發(fā)無疑是一件節(jié)約成本的好事,。
圖1:硬件的基本構成示意圖。
軟件架構的概念設計實際上可以在操作系統(tǒng)明確之前就開始,。軟件設計不一定非要遵從POSIX規(guī)范,,而是要滿足系統(tǒng)的高性能、設計的模塊化,、應用的可伸縮性和代碼的可重用性及可移植性,。
通常一個基于MCU的復雜軟件系統(tǒng)應該定義以下的軟件層:
BSP:處理和MCU初始化相關的事務,,如IPL(Initial Program Loader)和Startup Program等;
設備驅動:所有和硬件相關的程序,,如FLASH driver,、CAN driver和圖形圖像驅動等;
OS:核心操作系統(tǒng),,負責提供資源管理和安全任務調度等服務,,它甚至也可以包含一些高層次的驅動設備,如標準輸入輸出設備驅動等,;
中間件:介于操作系統(tǒng)和應用程序之間的程序,,如各種API和FPGA Loader等;
應用程序:具有高度可重用性的,、完成特定功能的程序模塊,,如媒體播放器和導航軟件。
在MCU+FPGA的架構之下,,每個和FPGA相關的應用程序都自帶一個初始化例程。該初始化例程在需要啟動該應用程序之前將該應用程序映射到FPGA,,然后該應用程序在FPGA上運行,。根據(jù)應用程序的要求,MCU可以在完成映射之后,,保持和FPGA強的或弱的通訊聯(lián)系,。這種結構部分解放了MCU,使之能夠有效地進行任務調度和資源管理,,而FPGA也能夠在特定環(huán)境下高效運行,。這種系統(tǒng)的另外一個好處就是非常穩(wěn)定且容易維護。運行在FPGA中的應用程序的不良動作或崩潰通常不會影響到運行在MCU中的操作系統(tǒng),。在發(fā)現(xiàn)某個應用程序失效之后,,操作系統(tǒng)可以從容地重新開始該應用程序的新例程,而不必重啟整個系統(tǒng),。
運行在FPGA中的應用程序,,雖然看起來和普通運行在ASIC或ASSP中的系統(tǒng)并無區(qū)別,但是這些應用程序的結構實際上有很大的區(qū)別,。運行在ASIC或ASSP中的系統(tǒng)是根據(jù)已經(jīng)確定的具有特定功能硬件環(huán)境設計的,,而運行在FPGA中的應用程序是根據(jù)將要完成的功能,自己調整FPGA的邏輯單元,,使之能夠適應環(huán)境,。正是FPGA這種現(xiàn)場可編程性,使我們能夠在適當?shù)臅r候啟動適當?shù)膽贸绦?,這大大增加了設計的靈活性,。