張文博
(北京汽車集團越野車有限公司,北京 101300)
隨著汽車電子信息技術的飛速發展,整車配置的儀表早已經將傳統的機械指針儀表換成了全彩色TFT屏的全液晶儀表。而隨之帶來的是全液晶儀表的軟件復雜度較高,軟件代碼量大,無法再通過CAN總線進行升級。以市場現有車型為例,如果為了全液晶儀表升級,增加一條單獨的USB線及接口,勢必帶來整車成本的上漲。
為了簡化儀表的升級方式,更好地控制整車的成本,本文提出了一種全新的儀表升級方式,設計規劃了全液晶儀表的開發方案,下文以全液晶儀表成功應用及開發為例進行闡述。
市場上的儀表升級方式,大多分為如下3種:①通過整車OBD口進行升級,利用CAN總線通信,普遍應用在不帶操作系統的電子模塊升級上,例如:車身控制器、發動機控制模塊等;②USB口升級:利用整車自帶的USB接口進行升級,利用USB通信,普遍應用在帶操作系統的電子模塊升級上,例如:中控主機、全液晶儀表等。③OTA升級:利用T-BOX模塊,通過以太網和整車CAN總線,給整車上所有的電子模塊進行升級,目前應用較少,存在安全隱患。
上述3種升級方式各有利弊,其中差異對比如表1所示。
表1 軟件升級方式差異對比表
根據整車配置,針對信息娛樂系統進行系統性規劃,其中,儀表與中控主機交互功能如表2所示。
表2 軟件功能規劃表
信息娛樂系統設計方案框圖如圖1所示。
圖1 信息娛樂設計框圖
上述規劃方案,可以保證導航投圖功能和儀表軟件升級功能共用1條LVDS線實現,導航投圖功能利用LVDS的Video通道,軟件升級功能利用LVDS的SPI通道。
通過LVDS通信進行儀表軟件升級的設計方案,是利用中控主機自帶的USB接口,將帶有儀表軟件升級包的U盤插到USB接口上,然后通過點擊中控主機界面上的儀表軟件升級選項,進行儀表軟件升級。下面將從硬件設計和軟件設計兩方面進行闡述。
2.2.1 硬件設計
儀表軟件升級方案通過LVDS實現,全液晶儀表選用DS90UH940芯片,同時,中控主機選用DS90UH949芯片,硬件框圖如圖2所示。
圖2 硬件框圖
DS90UH949-Q1端和DS90UH940-Q1端LVDS GPIO配置,需要保證GPIO0、GPIO1雙向通信沒有問題。確保GPIO5~8可以接收輸入輸出,通過I2C讀取和寫入。
LVDS GPIO控制方式:利用940/949的GPIO透傳方式實現流控需求,Slave端 (DS940)通過配置Master端 (DS949)的寄存器,改變GPIO0和GPIO1的值,Master端由于已經通過硬件上連通了GPIO0和GPIO1,所以可以通過中斷的方式讀取到值的改變。
硬件原理圖如圖3所示。
硬件PIN腳定義如表3所示。
2.2.2 軟件設計
將儀表(Cluster)作為SPI Slave,將中控主機(IVI)作為SPI Master,理論最高通信速率可達3.3Mb/s,詳細軟件功能框圖如4所示。
中控主機需要完成SPI slave驅動,需要提供USB訪問路徑,需要通知upgrade_client有U盤插入,以便于儀表進行軟件升級包的讀取工作。
儀表軟件升級包包含升級文件和版本文件,中控檢測到升級包,將version.txt中的相關信息發送給儀表,儀表確認此升級包是否有效。如無效,回應錯誤代碼。
圖3 硬件原理圖
表3 硬件PIN腳定義表
圖4 軟件功能框圖
儀表與中控主機的顯示屏上同時顯示升級信息和狀態。在進入儀表軟件升級模式后,儀表與中控主機需相互升級請求及響應命令,包含:請求、查詢、開始和結束。
在進入軟件包數據傳模式后,中控主機將數據發送給儀表,儀表進行接收反饋,并進行實時校驗。同時,在升級過程中加入心跳機制。IVI發送心跳包消息,Cluster給予回應。當Cluster連續3次未回應心跳,則認為Cluster連接斷開,退出升級。Cluster需加入timeout機制,當timeout時間內未收到心跳包消息,則認為連接斷開。
IVI/Cluster均需考慮心跳消息和升級協議消息之間同步問題。儀表與中控主機間的交互框圖如圖5所示。針對軟件升級功能側錯誤處理機制,要求如下。
圖5 交互框圖
1)傳輸失敗 (傳輸數據過程中,如果重傳3次依然失敗)。Cluster發送升級失敗命令至IVI,包括失敗原因。然后Cluster退出升級模式進入正常模式。IVI結束停止傳輸數據,收到升級失敗命令后提示用戶,并退出升級流程。
2)升級包校驗失敗。Cluster發送升級失敗命令至IVI,包括失敗原因。然后Cluster退出升級模式進入正常模式。IVI接收到升級失敗命令后提示用戶,退出升級流程。
3)刷寫升級包失敗。Cluster發送升級失敗命令至IVI,包括失敗原因。由于Cluster開始刷寫后無法恢復到正常模式,所以Cluster停留在升級模式,等待IVI發起再一次升級流程。IVI接收到升級失敗命令后提示用戶,并提示用戶需重新發起升級流程。
4)心跳失敗/連接失敗。IVI連續3次未收到Cluster的心跳包回應,判定為連接失敗。此時IVI提示用戶連接失敗。Cluter加入timeout機制,timeout時間內未收到IVI心跳包,則判定連接失敗。此時若未開始刷寫則退出升級模式進入正常模式。此時如已開始刷寫則停留在升級模式,等待IVI重新發起升級流程。
該方案在車型項目上的成功實施,不但簡化了儀表升級方式,降低了單車成本,也為后續車型其它電子零部件的升級開發積累了經驗、奠定了基礎。