汪丁旺
(上汽乘用車有限公司技術中心電子電器部,上海 200438)
駕駛信息系統 (汽車儀表)是車輛信息顯示中心,各種報警指示信息、車輛行駛狀態、累計、小計、行車電腦平均油耗、瞬時油耗、續駛里程等信息都顯示在儀表上;駕駛員要依據這些信息進行駕駛操作,故這些信息的準確性、可靠性尤為重要,關乎到駕駛安全等方面。
實際汽車的工作環境復雜,例如:在車輛剛起動或路面劇烈顛簸時,都有可能導致駕駛信息系統的供電電源出現短暫過低或丟失。當電源重新恢復正常時,通常駕駛信息系統會重新復位,這樣就勢必導致前面顯示的一些內容被復位重新初始化,被破壞掉,如儀表菜單中所有個性化設置被復位,時鐘、行駛時間、行駛距離、續駛里程等重要信息將部分丟失,這樣用戶就不得不重新設置時間和一些個性化需求的菜單內容。有些重要信息如小計里程數等永久丟失,行車電腦中的平均油耗、瞬時油耗、續駛里程被復位得重新計算,儀表中所有歷史記錄都被清空,勢必給用戶帶來不必要的麻煩和煩惱。
我們知道計算機有冷啟動和熱啟動之分,冷啟動就是整個系統完全全新初始化,而熱啟動只是對一些關鍵的配置進行重新配置,一些用戶設置和選項將維持上次工作時狀態。我們可以將這一理念應用到汽車儀表上,也就是說在車輛由于各種原因出現短時間斷電時,儀表能識別出來,同時利用芯片存儲單元RAM的電容特性,在對芯片系統資源進行必要配置后,可以保留上次工作中顯示出來一些重要信息,如時間、小計等內容,不對其進行重新初始化,這樣就讓用戶感覺不到曾出現過瞬間的掉電。而若斷電時間間隔很長,一方面由于RAM電容特性,它只能維持一定時間,另一方面為了系統可靠性,需要對整改系統和變量都要進行全面的初始化。
在駕駛信息系統上采用新方法 (硬件加軟件檢測)可以避免此問題,當儀表短時間斷電又重新恢復后,儀表能精準可靠地判斷是否應該從上次斷電前狀態繼續工作。
利用微處理器RAM的電容特性,RAM中存儲數據在短時間掉電還能保存一段時間。將那些客戶能直接感知到的信息、需要維持不變的變量分配到相鄰的同一區域,通過軟件先在存儲儀表關鍵數據的RAM區間的首尾各設置一標志單元,并寫好特殊的標志數據,在系統配置中要求對該指定區域不自動被初始化,這樣每次儀表重新上電工作后,儀表軟件首先讀取這兩標志單元的內容,并判斷是否為預先設置的標志數據。根據RAM電容RC放電時間曲線特性,若還是自己設置的特殊標志,則表明在這次上電之前的斷電時間間隔可能很短,然后再繼續對存在中間的關鍵顯示數據進行一些必要的有效性判斷,如時鐘的分鐘數值不得大于60、小時不得大于24、小計不得大于1000等,若這些數值有任何一個不合理,則認為整個區域都有不可靠風險,系統要冷啟動,對整個RAM單元數據進行初始化。若這個關鍵標志單元有任一個數據被破壞,系統就認為前面斷電時間間隔過長,儀表將熱啟動,就對這些關鍵數據進行重新初始化,儀表基于上次數據繼續工作;否則,若任一標志單元不是預設置的標志數據,儀表將冷啟動,重新初始化這些關鍵數據單元,同時包括這2個標志單元。純軟件方案系統算法框圖如圖1所示。
此方案存在以下缺點。
1)無法精準控制冷熱啟動的時間間隔閾值,儀表無法掌控斷電多長時間內是熱啟動。系統完全取決于該主芯片的存儲單元RAM的電容放電特性曲線參數,不同的芯片有不同的特性,而且無法改變。這樣將導致無法達到期望斷電多久以內希望熱啟動,超過多久整個系統會初始化冷啟動。
2)同一儀表在不同的功耗下會導致RAM電容放電快慢不同,從而導致熱啟動的時間間隔一致性不好。由于主芯片和其它外圍電路共用同一電源系統,所以系統在前一次斷電時,外圍系統的工作狀態和耗電情況也將會影響到主芯片存儲單元RAM的數據保持時間長度。若斷電后有些電路處于導通狀態,則整個系統的電就會很快耗盡,主芯片存儲單元RAM的數據丟失會很快;而若所有回路都處于低功耗的斷開狀態,主芯片存儲單元RAM的數據丟失就會慢很多。這樣就勢必導致同樣一塊儀表在不同的外界條件下,判斷冷熱啟動的斷電時間間隔長短不一,且無法掌控。
3)只是簡單地判斷RAM區間的首尾狀態和對一些數據的有效性。由于硬件的特性,每個RAM單元都是由幾個電容構成的,但是在實踐中會發現它們的放電時間不完全一致,有的長些、有的短些。這樣在斷電時間處于冷熱啟動臨界點時,很容易出現首尾關鍵狀態標志單元和那些重要數據的有效性都沒問題,但其中某些數據可能出現破壞,這時軟件仍然判斷且采用熱啟動,導致這些內容被錯誤地直接顯示出來了。
采用軟硬件配合法是為了解決上述純軟件法無法精準控制冷熱啟動時間間隔長短的問題。圖2為軟硬件配合法
檢測電路示意圖。圖3為軟硬件配合法系統算法框圖。
在整車電源出現短暫過低或丟失 (UBattery短時間跌落,見圖4)時,儀表系統重設。
1)完成一般的系統初始化工作,而且在每次重新上電后開關口A處于斷開狀態,確保端口B的電壓還是上次系統工作時系統給B點充電以及斷電后RC放電所剩余的電壓。
2)軟件首先讀取并計算出B點電壓UB,判斷UB是否≥Uo(Uo依據充放電電路RC特性,由所期望的冷熱時間間隔標定出此時間所對應的電壓值);若是,則表明系統斷電的時間間隔小于所期望的冷熱啟動時間間隔,則熱啟動,系統不對這些關鍵RAM數據進行重新初始化復位操作,保持現狀;若否,則表明斷電時間超過了冷熱啟動的時間長度,系統對RAM所有數據進行初始化。
3)系統對開關口A點電壓UA置為高,接通開關,給監測B點供電UB,為下一次判斷系統斷電系統復位后重新判斷B點的電壓作準備。
4)系統進入主程序循環。
1)RAM硬件特性可決定一個數據安全時間t0(RAM完全掉電,在t0內RAM數據可確保沒有丟失)。
2)通過RC電路可得到一個安全電壓閾值:Uo=U0×e-t/R×C (t<t0, 并且t<自身的充放電時間)。U0為系統穩定電壓 (由具體系統方案決定,如+5V等)。
3)由于重新上電后,圖2中RC回路是獨立的,這樣該RC電路就不受外圍電路的功耗影響,能確保同一儀表在各種工況下都能維持一致性。而且由于工作時的電壓UB已知,RC數值可控且不受外圍電路影響,可以根據RC的充放電特性或根據實際放電進行標定,這樣就可以精準地設計出我們所期望的冷熱啟動時間間隔閾值,能確保冷熱啟動的精準性。
若系統斷電時間在冷熱啟動的臨界點,純軟件方法會出現儀表系統誤判為熱啟動,從而導致在有些數據被異常破壞的情況下,這些錯誤的信息被直接錯誤地顯示出去了,造成系統的不可靠,引起不必要的麻煩和抱怨。而采用軟硬件相配合的方法,我們就可以先測試出系統冷熱啟動的臨界點,然后選擇一個合適的RC值對應一個合理的時間間隔,和臨界時間保持足夠的安全余量,這樣就從根本上確保了冷熱啟動方案的可靠性。新型冷熱啟動技術已在上海汽車榮威550/350車型上予以應用,值得推廣。