Google

Copyright © 2008 Dennis email: moueintw@hotmail.com

2007年12月10日 星期一

基於MCU和FPGA設計車載信息娛樂系統

















汽車工業蓬勃發展,車載信息娛樂系統已經不再是豪華轎車的獨有設施,越來越多的中低端轎車開始擁有自己的信息娛樂系統。然而,車載信息娛樂系統是一個高度集成的複雜系統,其中可以包括導航系統、影音系統、電話系統、空調通風系統,以及其他車內外舒適設備的控制系統等,這些系統涉及的通訊網絡可以包括LINK_KEYWORD0、MOST、LIN、藍牙和其他無線網絡協議等。設計這樣一個複雜系統,不但要考慮系統的性能和成本,更要考慮設計的靈活性,以保持產品在快速變化的市場中的競爭力。

汽車電子系統要求溫度適應範圍大、有利於生產標準化和很長的設計壽命。車載信息娛樂系統是一個快速發展和適應各種用戶的系統,如果既要保持一個設計具有長的壽命又要有高度的靈活性,那麼這種設計在軟硬件,特別是在硬件方面要有很強的可擴展性。

一般來說,車載信息娛樂系統具有複雜的人機界面(按鍵和旋鈕),帶一個可以顯示地圖、影像和汽車信息的液晶顯示器,有時還會是觸摸屏。這種系統一般以一個高性能MCU為中心,加上各種標準接口以及一個視頻加速器件。

DSP、ASSP和FPGA都可以用來實現多種接口和視頻處理。DSP專為信號處理而設計,具有靈活度高和功耗低的特點。然而,目前DSP的運算能力尚不能同時滿足更高的圖像處理和無線通訊的要求。ASSP通常為某個標準的圖像處理和無線通訊而設計,換言之,它不具有適應多種標準的可編程性。FPGA同時具有高的運算能力和內部邏輯的現場可編程性,它能夠適應車載信息娛樂系統的靈活性。另外,FPGA的現場可編程性使之能夠代替很多原來要ASIC來實現的功能單元,這樣就給硬件設計帶來很大自由度。

應用MCU+FPGA的設計,軟件和外設硬件都可以在FPGA中變化,整個系統相當於一個很容易進行升級的軟件,改變硬件就像改變軟件一樣簡單。這樣的系統可以滿足從低端到中高端汽車電子產品的設計、測試和生產的要求。所以,基於MCU+FPGA的設計給車載信息娛樂系統帶來了很大的靈活性。

在確立了基本硬件框架之後,接著就要考慮基於這種框架的芯片的選擇。對於車載娛樂信息系統這樣一個複雜的人機交互系統,高性能和高安全的嵌入式實時操作系統是首選的軟件基礎。而該操作系統支持的芯片組將是MCU的主要候選者。目前,在汽車工業界普遍接受的組合是SH4(MCU)加上QNX (操作系統)。

FPGA的選擇要相對容易一些,至少有Xilinx、Altera、Lattice、Actel和Quicklogic等五家公司的產品可以考慮。Xilinx和Altera是FPGA的行業領袖,他們的產品應用廣泛,有大量的標準庫可以採用。圖1的框圖是一個硬件的基本構成示意圖。

考慮了硬件之後,軟件的架構就變得明晰了。由於QNX支持POSIX規範,所以基於它編寫的模塊化的應用程序和應用開發庫具有良好的可移植性,這對支持同類軟件架構的其他平台的開發無疑是一件節約成本的好事。

图1:硬件的基本构成示意图。
圖1:硬件的基本構成示意圖。

軟件架構的概念設計實際上可以在操作系統明確之前就開始。軟件設計不一定非要遵從POSIX規範,而是要滿足系統的高性能、設計的模塊化、應用的可伸縮性和代碼的可重用性及可移植性。

通常一個基於MCU的複雜軟件系統應該定義以下的軟件層:

BSP:處理和MCU初始化相關的事務,如IPL(Initial Program Loader)和Startup Program等;

設備驅動:所有和硬件相關的程序,如FLASH driver、CAN driver和圖形圖像驅動等;

OS:核心操作系統,負責提供資源管理和安全任務調度等服務,它甚至也可以包含一些高層次的驅動設備,如標準輸入輸出設備驅動等;

中間件:介於操作系統和應用程序之間的程序,如各種API和FPGA Loader等;

應用程序:具有高度可重用性的、完成特定功能的程序模塊,如媒體播放器和導航軟件。

在MCU+FPGA的架構之下,每個和FPGA相關的應用程序都自帶一個初始化例程。該初始化例程在需要啟動該應用程序之前將該應用程序映射到FPGA,然後該應用程序在FPGA上運行。根據應用程序的要求,MCU可以在完成映射之後,保持和FPGA強的或弱的通訊聯繫。這種結構部分解放了 MCU,使之能夠有效地進行任務調度和資源管理,而FPGA也能夠在特定環境下高效運行。這種系統的另外一個好處就是非常穩定且容易維護。運行在FPGA 中的應用程序的不良動作或崩潰通常不會影響到運行在MCU中的操作系統。在發現某個應用程序失效之後,操作系統可以從容地重新開始該應用程序的新例程,而不必重啟整個系統。

運行在FPGA中的應用程序,雖然看起來和普通運行在ASIC或ASSP中的系統並無區別,但是這些應用程序的結構實際上有很大的區別。運行在ASIC或ASSP中的系統是根據已經確定的具有特定功能硬件環境設計的,而運行在FPGA中的應用程序是根據將要完成的功能,自己調整FPGA的邏輯單元,使之能夠適應環境。正是FPGA這種現場可編程性,使我們能夠在適當的時候啟動適當的應用程序,這大大增加了設計的靈活性。

作者:

謝文盛

高級軟件工程師

Email:wxie@harmanbecker.com

哈曼貝克汽車多媒體系統(深圳)有限公司

沒有留言: