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