本發(fā)明涉及汽車技術(shù)領(lǐng)域,尤其涉及一種故障信息存儲(chǔ)的方法及裝置。
背景技術(shù):
面對(duì)日趨嚴(yán)峻的能源與環(huán)境問題,節(jié)能與新能源汽車正成為當(dāng)前各國(guó)研究的熱點(diǎn)。作為節(jié)能與新能源汽車的一種,純電動(dòng)汽車在行駛過程中具有無(wú)尾氣排放、能量效率高、噪聲低、可回收利用能量等多項(xiàng)優(yōu)點(diǎn)。隨著純電動(dòng)汽車的快速發(fā)展,集成控制成為純電動(dòng)汽車當(dāng)前發(fā)展的趨勢(shì)。集成控制,顧名思義,依托現(xiàn)階段微處理器強(qiáng)大的計(jì)算能力,豐富的功能及外部資源,將負(fù)責(zé)不同功能的單獨(dú)控制器有效的集為一體,通過共用硬件資源,實(shí)現(xiàn)原先由多個(gè)獨(dú)立控制器完成的所有功能。
整車集成控制器的中的車載診斷系統(tǒng)(On-Board Diagnostic,簡(jiǎn)稱OBD)系統(tǒng)隨時(shí)監(jiān)控整車控制器的運(yùn)行情況,一旦發(fā)現(xiàn)有異常的情況,故障燈(Malfunction Indication Lamp,簡(jiǎn)稱MIL)警告燈亮,同時(shí)OBD系統(tǒng)會(huì)將故障信息存入存儲(chǔ)器,通過標(biāo)準(zhǔn)的診斷儀器和診斷接口可以以故障碼的形式讀取相關(guān)信息。根據(jù)故障碼的提示,維修人員能迅速準(zhǔn)確地確定故障的性質(zhì)和部位。
由于整車集成控制器負(fù)責(zé)診斷的故障越來(lái)越多,凍結(jié)幀信息等故障信息也越來(lái)越多,如果對(duì)每一個(gè)可能發(fā)生的故障,都在隨機(jī)存取存儲(chǔ)器(Random Access Memory,簡(jiǎn)稱RAM)中預(yù)留出空間存儲(chǔ)故障信息,那么整車集成控制器的RAM空間將嚴(yán)重不足。此外,目前整車控制器一般會(huì)使用固定長(zhǎng)度的RAM空間存儲(chǔ)固定數(shù)量的故障信息,僅當(dāng)整車下電時(shí),將故障信息寫入EEPROM中。而在整車運(yùn)行過程中,若RAM中存儲(chǔ)的故障信息過多,發(fā)生新的故障時(shí),則新的故障信息會(huì)覆蓋原有的故障信息,從而使故障信息記錄不夠全面。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種故障信息存儲(chǔ)的方法及裝置,以解決現(xiàn)有技術(shù)的整車運(yùn)行過程中故障信息存儲(chǔ)數(shù)量有限的問題。
為了解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案:
第一方面,提供了一種故障信息存儲(chǔ)的方法,包括:
檢測(cè)當(dāng)前需要存儲(chǔ)的故障信息的數(shù)據(jù)量;
檢測(cè)汽車隨機(jī)存儲(chǔ)器中用于存儲(chǔ)故障信息的第一存儲(chǔ)區(qū)域的剩余容量;
若所述當(dāng)前需要存儲(chǔ)的故障信息的數(shù)據(jù)量與所述第一存儲(chǔ)區(qū)域的剩余容量的差值大于或等于第一預(yù)設(shè)值且小于第二預(yù)設(shè)值,則將所述第一存儲(chǔ)區(qū)域中已存儲(chǔ)的故障信息全部或部分轉(zhuǎn)移至電可擦可編程只讀存儲(chǔ)器EEPROM中,將所述當(dāng)前需要存儲(chǔ)的故障信息存儲(chǔ)至所述第一存儲(chǔ)區(qū)域中。
本發(fā)明實(shí)施例提供的故障信息存儲(chǔ)的方法,能夠在完整記錄已發(fā)生故障的故障信息的同時(shí),又能夠及時(shí)存儲(chǔ)新故障的故障信息,提高了存儲(chǔ)空間的利用率。
進(jìn)一步地,在所述檢測(cè)汽車隨機(jī)存儲(chǔ)器中用于存儲(chǔ)故障信息的第一存儲(chǔ)區(qū)域的剩余容量的步驟之后,所述方法還包括:
若所述當(dāng)前需要存儲(chǔ)的故障信息的數(shù)據(jù)量與所述第一存儲(chǔ)區(qū)域的剩余容量的差值大于或等于第二預(yù)設(shè)值,則將所述當(dāng)前需要存儲(chǔ)的部分故障信息存儲(chǔ)于所述汽車隨機(jī)存儲(chǔ)器的第二存儲(chǔ)區(qū)域中;
其中,所述部分故障信息為:所述當(dāng)前需要存儲(chǔ)的故障信息中,超過剩余容量的故障信息中多余所述第二預(yù)設(shè)值數(shù)量部分的故障信息。
進(jìn)一步地,在所述將所述第一存儲(chǔ)區(qū)域中已存儲(chǔ)的故障信息轉(zhuǎn)移至EEPROM中,將所述當(dāng)前需要存儲(chǔ)的故障信息存儲(chǔ)至所述第一存儲(chǔ)區(qū)域中的過程中,所述方法還包括:
在所述汽車隨機(jī)存儲(chǔ)器的第三存儲(chǔ)區(qū)域中記錄新寫入所述第一存儲(chǔ)區(qū)域的故障信息的存儲(chǔ)位置、新寫入所述第二存儲(chǔ)區(qū)域的故障信息的存儲(chǔ)位置,以及更新存儲(chǔ)位置發(fā)生變化的故障信息的存儲(chǔ)位置。
進(jìn)一步地,在所述將所述第一存儲(chǔ)區(qū)域中已存儲(chǔ)的故障信息轉(zhuǎn)移至EEPROM中,將所述當(dāng)前需要存儲(chǔ)的故障信息存儲(chǔ)至所述第一存儲(chǔ)區(qū)域中的步驟之后,所述方法還包括:
檢測(cè)讀取故障信息的讀取指令;
根據(jù)所述第三存儲(chǔ)區(qū)域中記錄故障信息的存儲(chǔ)位置信息,確定所述讀取指令所要讀取的故障信息的存儲(chǔ)位置;
從確定的存儲(chǔ)位置中讀取故障信息。
進(jìn)一步地,所述將所述當(dāng)前需要存儲(chǔ)的故障信息存儲(chǔ)至所述第一存儲(chǔ)區(qū)域中的步驟包括:
將當(dāng)前需要存儲(chǔ)的故障碼、故障狀態(tài)以及凍結(jié)幀信息存儲(chǔ)于所述第一存儲(chǔ)區(qū)域中。
進(jìn)一步地,所述將所述當(dāng)前需要存儲(chǔ)的故障信息存儲(chǔ)至所述第一存儲(chǔ)區(qū)域中的步驟包括:
將當(dāng)前需要存儲(chǔ)的故障碼的序號(hào)、故障狀態(tài)以及凍結(jié)幀信息存儲(chǔ)于所述第一存儲(chǔ)區(qū)域中;
其中,所述故障碼的序號(hào)為:在定義各故障的故障碼時(shí),對(duì)每個(gè)故障碼的編號(hào)。
第二方面,提供了一種故障信息存儲(chǔ)的裝置,包括:
第一檢測(cè)模塊,用于檢測(cè)當(dāng)前需要存儲(chǔ)的故障信息的數(shù)據(jù)量;
第二檢測(cè)模塊,用于檢測(cè)汽車隨機(jī)存儲(chǔ)器中用于存儲(chǔ)故障信息的第一存儲(chǔ)區(qū)域的剩余容量;
第一處理模塊,用于當(dāng)所述當(dāng)前需要存儲(chǔ)的故障信息的數(shù)據(jù)量與所述第一存儲(chǔ)區(qū)域的剩余容量的差值大于或等于第一預(yù)設(shè)值且小于第二預(yù)設(shè)值時(shí),將所述第一存儲(chǔ)區(qū)域中已存儲(chǔ)的故障信息全部或部分轉(zhuǎn)移至電可擦可編程只讀存儲(chǔ)器EEPROM中,將所述當(dāng)前需要存儲(chǔ)的故障信息存儲(chǔ)至所述第一存儲(chǔ)區(qū)域中。
本發(fā)明實(shí)施例提供的故障信息存儲(chǔ)的裝置,能夠在完整記錄已發(fā)生故障的故障信息的同時(shí),又能夠及時(shí)存儲(chǔ)新故障的故障信息,提高了存儲(chǔ)空間的利用率。
進(jìn)一步地,所述裝置還包括:
第二處理模塊,用于當(dāng)所述當(dāng)前需要存儲(chǔ)的故障信息的數(shù)據(jù)量與所述第一存儲(chǔ)區(qū)域的剩余容量的差值大于或等于第二預(yù)設(shè)值時(shí),將所述當(dāng)前需要存儲(chǔ)的部分故障信息存儲(chǔ)于所述汽車隨機(jī)存儲(chǔ)器的第二存儲(chǔ)區(qū)域中;
其中,所述部分故障信息為:所述當(dāng)前需要存儲(chǔ)的故障信息中,超過剩余容量的故障信息中多余所述第二預(yù)設(shè)值數(shù)量部分的故障信息。
進(jìn)一步地,所述裝置還包括:
記錄模塊,用于在所述汽車隨機(jī)存儲(chǔ)器的第三存儲(chǔ)區(qū)域中記錄新寫入所述第一存儲(chǔ)區(qū)域的故障信息的存儲(chǔ)位置、新寫入所述第二存儲(chǔ)區(qū)域的故障信息的存儲(chǔ)位置,以及更新存儲(chǔ)位置發(fā)生變化的故障信息的存儲(chǔ)位置。
進(jìn)一步地,所述裝置還包括:
第三檢測(cè)模塊,用于檢測(cè)讀取故障信息的讀取指令;
確定模塊,用于根據(jù)所述第三存儲(chǔ)區(qū)域中記錄故障信息的存儲(chǔ)位置信息,確定所述讀取指令所要讀取的故障信息的存儲(chǔ)位置;
讀取模塊,用于從確定的存儲(chǔ)位置中讀取故障信息。
進(jìn)一步地,所述第一處理模塊具體用于:將當(dāng)前需要存儲(chǔ)的故障碼、故障狀態(tài)以及凍結(jié)幀信息存儲(chǔ)于所述第一存儲(chǔ)區(qū)域中。
進(jìn)一步地,所述第一處理模塊具體用于:將當(dāng)前需要存儲(chǔ)的故障碼的序號(hào)、故障狀態(tài)以及凍結(jié)幀信息存儲(chǔ)于所述第一存儲(chǔ)區(qū)域中;
其中,所述故障碼的序號(hào)為:在定義各故障的故障碼時(shí),對(duì)每個(gè)故障碼的編號(hào)。
本發(fā)明的有益效果是:
上述技術(shù)方案,通過檢測(cè)新的故障信息的數(shù)據(jù)量,從而判斷RAM中是否具有足夠可用的存儲(chǔ)空間,當(dāng)存儲(chǔ)空間不足時(shí),將RAM中已存儲(chǔ)的故障信息轉(zhuǎn)移至EEPROM,從而釋放RAM的存儲(chǔ)空間,以便存儲(chǔ)新的故障信息,這樣,在完整記錄已發(fā)生故障的故障信息的同時(shí),又能夠及時(shí)存儲(chǔ)新故障的故障信息,提高了存儲(chǔ)空間的利用率。
附圖說明
圖1表示本發(fā)明第一實(shí)施例提供的故障信息存儲(chǔ)的方法的流程圖;
圖2表示本發(fā)明第一實(shí)施例提供的讀取故障信息的方法的流程圖;
圖3表示本發(fā)明第二實(shí)施例提供的故障信息存儲(chǔ)的裝置的框圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本發(fā)明的示例性實(shí)施例。雖然附圖中顯示了本發(fā)明的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本發(fā)明而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本發(fā)明,并且能夠?qū)⒈景l(fā)明的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
第一實(shí)施例
本發(fā)明實(shí)施例提供了一種故障信息存儲(chǔ)的方法,如圖1所示,包括:
S101、檢測(cè)當(dāng)前需要存儲(chǔ)的故障信息的數(shù)據(jù)量。
本發(fā)明實(shí)施例中,可實(shí)時(shí)或定時(shí)檢測(cè)當(dāng)前是否具有需要存儲(chǔ)的故障信息,以及需要存儲(chǔ)的故障信息的數(shù)據(jù)量。
S102、檢測(cè)汽車隨機(jī)存儲(chǔ)器中用于存儲(chǔ)故障信息的第一存儲(chǔ)區(qū)域的剩余容量。
本發(fā)明實(shí)施例中,可以當(dāng)檢測(cè)到當(dāng)前具有需要存儲(chǔ)的故障信息后,檢測(cè)汽車隨機(jī)存儲(chǔ)器(以下簡(jiǎn)稱RAM)用于存儲(chǔ)故障信息的第一存儲(chǔ)區(qū)域的剩余容量,以確定第一存儲(chǔ)區(qū)域的剩余容量是否可以存儲(chǔ)當(dāng)前需要存儲(chǔ)的故障信息;也可以是在檢測(cè)當(dāng)前是否具有需要存儲(chǔ)的故障信息以及需要存儲(chǔ)的故障信息的數(shù)據(jù)量的同時(shí),檢測(cè)第一存儲(chǔ)區(qū)域的剩余容量,以提高處理速度。當(dāng)然可以理解的是,還可以采用其他可實(shí)現(xiàn)方式,具體情況,可根據(jù)實(shí)際需求選擇。
S103、若當(dāng)前需要存儲(chǔ)的故障信息的數(shù)據(jù)量與第一存儲(chǔ)區(qū)域的剩余容量的差值大于或等于第一預(yù)設(shè)值且小于第二預(yù)設(shè)值,則將第一存儲(chǔ)區(qū)域中已存儲(chǔ)的故障信息全部或部分轉(zhuǎn)移至電可擦可編程只讀存儲(chǔ)器EEPROM中,將當(dāng)前需要存儲(chǔ)的故障信息存儲(chǔ)至第一存儲(chǔ)區(qū)域中。
本發(fā)明實(shí)施例中,當(dāng)確定當(dāng)前具有需要存儲(chǔ)的故障信息以及需要存儲(chǔ)的故障信息的數(shù)據(jù)量時(shí),根據(jù)需要存儲(chǔ)的故障信息的數(shù)據(jù)量與第一存儲(chǔ)區(qū)域的剩余容量的差值關(guān)系,進(jìn)行進(jìn)一步處理。
若需要存儲(chǔ)的故障信息的數(shù)據(jù)量與第一存儲(chǔ)區(qū)域的剩余容量的差值小于第一預(yù)設(shè)值,則直接將需要存儲(chǔ)的故障信息存儲(chǔ)于第一存儲(chǔ)區(qū)域中。其中,這里所述的需要存儲(chǔ)的故障信息的數(shù)據(jù)量與第一存儲(chǔ)區(qū)域的剩余容量的差值為需要存儲(chǔ)的故障信息的數(shù)據(jù)量減去第一存儲(chǔ)區(qū)域的剩余容量的差值。第一預(yù)設(shè)值為小于或等于0的一個(gè)數(shù)值,具體數(shù)據(jù)的選取可根據(jù)實(shí)際需求確定。差值小于第一預(yù)設(shè)值說明第一存儲(chǔ)區(qū)域的剩余容量足以存儲(chǔ)當(dāng)前需要存儲(chǔ)的故障信息。
若需要存儲(chǔ)的故障信息的數(shù)據(jù)量與第一存儲(chǔ)區(qū)域的剩余容量的差值大于或等于第一預(yù)設(shè)值且小于或等于第二預(yù)設(shè)值,則需將第一存儲(chǔ)區(qū)域中已存儲(chǔ)的故障信息全部或部分轉(zhuǎn)移至EEPROM中,將當(dāng)前需要存儲(chǔ)的故障信息存儲(chǔ)至第一存儲(chǔ)區(qū)域中。這樣,在整車處于運(yùn)行狀態(tài)時(shí),既能夠完整記錄已發(fā)生故障的故障信息,又能夠釋放第一存儲(chǔ)區(qū)域的存儲(chǔ)空間,以存儲(chǔ)新故障的故障信息,實(shí)現(xiàn)第一存儲(chǔ)空間的復(fù)用。
其中,第二預(yù)設(shè)值為大于0的一個(gè)數(shù)值,具體數(shù)據(jù)的選取可根據(jù)實(shí)際需求確定。進(jìn)行第二預(yù)設(shè)值限定的目的在于:保證第一存儲(chǔ)區(qū)域中能夠具有足夠的可存儲(chǔ)空間存儲(chǔ)新的故障信息,因此當(dāng)差值大于或等于第一預(yù)設(shè)值且小于第二預(yù)設(shè)值時(shí),為保證第一存儲(chǔ)區(qū)域能夠具有足夠的剩余容量存儲(chǔ)新的故障信息,需將第一存儲(chǔ)區(qū)域中已存儲(chǔ)的故障信息全部或部分轉(zhuǎn)移至EEPROM中,將當(dāng)前需要存儲(chǔ)的故障信息存儲(chǔ)至第一存儲(chǔ)區(qū)域中。
由于將第一存儲(chǔ)區(qū)域中的故障信息轉(zhuǎn)移至EEPROM需要一定時(shí)間,因此為減小處理時(shí)間,在保證新的故障信息能夠完全存儲(chǔ)至第一存儲(chǔ)區(qū)域中時(shí),可只將部分故障信息轉(zhuǎn)移至EEPROM中。如當(dāng)?shù)谝淮鎯?chǔ)區(qū)域中已有80%的存儲(chǔ)空間被占用,當(dāng)需要轉(zhuǎn)移部分故障信息轉(zhuǎn)移至EEPROM中時(shí),可僅轉(zhuǎn)移50%數(shù)量的故障信息,對(duì)于剩余30%數(shù)量的故障信息不進(jìn)行轉(zhuǎn)移。
進(jìn)一步地,若當(dāng)前需要存儲(chǔ)的故障信息的數(shù)據(jù)量與第一存儲(chǔ)區(qū)域的剩余容量的差值大于或等于第二預(yù)設(shè)值,則將當(dāng)前需要存儲(chǔ)的部分故障信息存儲(chǔ)于RAM的第二存儲(chǔ)區(qū)域中。該第二存儲(chǔ)區(qū)域?yàn)橐活A(yù)留緩存區(qū),當(dāng)當(dāng)前需要存儲(chǔ)的故障信息過多,且第一存儲(chǔ)區(qū)域中已存儲(chǔ)的故障信息來(lái)不及全部寫入EEPROM時(shí),可暫時(shí)將部分新的故障信息存儲(chǔ)至第二存儲(chǔ)區(qū)域中,以避免故障信息的丟失。后續(xù)過程中,可將第二存儲(chǔ)區(qū)域中的故障信息轉(zhuǎn)移至第一存儲(chǔ)區(qū)域中或EEPROM中,具體情況,可根據(jù)實(shí)際需求設(shè)計(jì)。
其中,這里所述的部分故障信息為:當(dāng)前需要存儲(chǔ)的故障信息中,超過剩余容量的故障信息中多余第二預(yù)設(shè)值數(shù)量部分的故障信息。
進(jìn)一步地,本發(fā)明實(shí)施例中,故障信息包括:故障碼(或故障碼的序號(hào))、故障狀態(tài)以及凍結(jié)幀信息等。因此,存儲(chǔ)故障信息是將當(dāng)前需要存儲(chǔ)的故障碼(或故障碼的序號(hào))、故障狀態(tài)以及凍結(jié)幀信息存儲(chǔ)于第一存儲(chǔ)區(qū)域或第二存儲(chǔ)區(qū)域中。
其中,這里所述的故障碼的序號(hào)為:在定義各故障的故障碼時(shí),對(duì)每個(gè)故障碼的編號(hào)。例如,在閃存(Flash EEPROM Memory,簡(jiǎn)稱FLASH)中定義各個(gè)故障的故障碼時(shí),對(duì)故障碼分別進(jìn)行排序編號(hào),這樣既方便故障信息的記錄,同時(shí)由于僅需記錄編號(hào),因此可減小數(shù)據(jù)對(duì)存儲(chǔ)空間的占用。
進(jìn)一步地,本發(fā)明實(shí)施例中,為了便于故障診斷儀讀取故障信息,可在RAM的第三存儲(chǔ)區(qū)域中記錄新寫入第一存儲(chǔ)區(qū)域的故障信息的存儲(chǔ)位置、新寫入第二存儲(chǔ)區(qū)域的故障信息的存儲(chǔ)位置,以及更新存儲(chǔ)位置發(fā)生變化的故障信息的存儲(chǔ)位置。
其中,如圖2所示,確定是否具有讀取故障信息的操作以及處理讀取過程的實(shí)現(xiàn)方法為:
S201、檢測(cè)讀取故障信息的讀取指令,若存在,則進(jìn)入S202。
其中,整車控制器可周期性檢測(cè)是否有遵循統(tǒng)一診斷服務(wù)(Unified Diagnostic Services,簡(jiǎn)稱UDS)協(xié)議的故障診斷儀讀取故障信息的指令。
S202、根據(jù)第三存儲(chǔ)區(qū)域中記錄故障信息的存儲(chǔ)位置信息,確定讀取指令所要讀取的故障信息的存儲(chǔ)位置。
在查詢過程中,可先判斷所要讀取的故障信息是否存儲(chǔ)在EEPROM中,若存在,則進(jìn)入S203;若不存在,則判斷所要讀取的故障信息是否存儲(chǔ)在RAM的第一存儲(chǔ)區(qū)域中,若存在,則進(jìn)入S203,若不存在,則判斷所要讀取的故障信息是否存儲(chǔ)在RAM的第二存儲(chǔ)區(qū)域中,若存在,則進(jìn)入S203。
S203、從確定的存儲(chǔ)位置中讀取故障信息。
本步驟根據(jù)S202的判斷,從確定的存儲(chǔ)位置中讀取故障信息。
綜上所述,本發(fā)明實(shí)施例提供的故障信息存儲(chǔ)的方法,通過檢測(cè)新的故障信息的數(shù)據(jù)量,從而判斷RAM中是否具有足夠可用的存儲(chǔ)空間,當(dāng)存儲(chǔ)空間不足時(shí),將RAM中已存儲(chǔ)的故障信息轉(zhuǎn)移至EEPROM,從而釋放RAM的存儲(chǔ)空間,以便存儲(chǔ)新的故障信息,這樣,在完整記錄已發(fā)生故障的故障信息的同時(shí),又能夠及時(shí)存儲(chǔ)新故障的故障信息,提高了存儲(chǔ)空間的利用率。
第二實(shí)施例
本發(fā)明實(shí)施例提供了一種故障信息存儲(chǔ)的裝置,如圖3所示,包括:
第一檢測(cè)模塊301,用于檢測(cè)當(dāng)前需要存儲(chǔ)的故障信息的數(shù)據(jù)量。
本發(fā)明實(shí)施例中,第一檢測(cè)模塊301可實(shí)時(shí)或定時(shí)檢測(cè)當(dāng)前是否具有需要存儲(chǔ)的故障信息,以及需要存儲(chǔ)的故障信息的數(shù)據(jù)量。
第二檢測(cè)模塊302,用于檢測(cè)汽車隨機(jī)存儲(chǔ)器中用于存儲(chǔ)故障信息的第一存儲(chǔ)區(qū)域的剩余容量。
本發(fā)明實(shí)施例中,可以當(dāng)?shù)谝粰z測(cè)模塊301檢測(cè)到當(dāng)前具有需要存儲(chǔ)的故障信息后,由第二檢測(cè)模塊302檢測(cè)汽車隨機(jī)存儲(chǔ)器(以下簡(jiǎn)稱RAM)用于存儲(chǔ)故障信息的第一存儲(chǔ)區(qū)域的剩余容量,以確定第一存儲(chǔ)區(qū)域的剩余容量是否可以存儲(chǔ)當(dāng)前需要存儲(chǔ)的故障信息;也可以是在第一檢測(cè)模塊301檢測(cè)當(dāng)前是否具有需要存儲(chǔ)的故障信息以及需要存儲(chǔ)的故障信息的數(shù)據(jù)量的同時(shí),由第二檢測(cè)模塊302檢測(cè)第一存儲(chǔ)區(qū)域的剩余容量,以提高處理速度。當(dāng)然可以理解的是,還可以采用其他可實(shí)現(xiàn)方式,具體情況,可根據(jù)實(shí)際需求選擇。
第一處理模塊303,用于當(dāng)當(dāng)前需要存儲(chǔ)的故障信息的數(shù)據(jù)量與第一存儲(chǔ)區(qū)域的剩余容量的差值大于或等于第一預(yù)設(shè)值且小于第二預(yù)設(shè)值時(shí),將第一存儲(chǔ)區(qū)域中已存儲(chǔ)的故障信息全部或部分轉(zhuǎn)移至電可擦可編程只讀存儲(chǔ)器EEPROM中,將當(dāng)前需要存儲(chǔ)的故障信息存儲(chǔ)至第一存儲(chǔ)區(qū)域中。
本發(fā)明實(shí)施例中,當(dāng)?shù)谝粰z測(cè)模塊301確定當(dāng)前具有需要存儲(chǔ)的故障信息以及需要存儲(chǔ)的故障信息的數(shù)據(jù)量時(shí),第一處理模塊303可根據(jù)需要存儲(chǔ)的故障信息的數(shù)據(jù)量與第一存儲(chǔ)區(qū)域的剩余容量的差值關(guān)系,進(jìn)行進(jìn)一步處理。
若需要存儲(chǔ)的故障信息的數(shù)據(jù)量與第一存儲(chǔ)區(qū)域的剩余容量的差值小于第一預(yù)設(shè)值時(shí),則直接將需要存儲(chǔ)的故障信息存儲(chǔ)于第一存儲(chǔ)區(qū)域中。其中,這里所述的需要存儲(chǔ)的故障信息的數(shù)據(jù)量與第一存儲(chǔ)區(qū)域的剩余容量的差值為需要存儲(chǔ)的故障信息的數(shù)據(jù)量減去第一存儲(chǔ)區(qū)域的剩余容量的差值。第一預(yù)設(shè)值為小于或等于0的一個(gè)數(shù)值,具體數(shù)據(jù)的選取可根據(jù)實(shí)際需求確定。差值小于第一預(yù)設(shè)值說明第一存儲(chǔ)區(qū)域的剩余容量足以存儲(chǔ)當(dāng)前需要存儲(chǔ)的故障信息。
若需要存儲(chǔ)的故障信息的數(shù)據(jù)量與第一存儲(chǔ)區(qū)域的剩余容量的差值大于或等于第一預(yù)設(shè)值且小于或等于第二預(yù)設(shè)值,則需將第一存儲(chǔ)區(qū)域中已存儲(chǔ)的故障信息全部或部分轉(zhuǎn)移至EEPROM中,將當(dāng)前需要存儲(chǔ)的故障信息存儲(chǔ)至第一存儲(chǔ)區(qū)域中。這樣,在整車處于運(yùn)行狀態(tài)時(shí),既能夠完整記錄已發(fā)生故障的故障信息,又能夠釋放第一存儲(chǔ)區(qū)域的存儲(chǔ)空間,以存儲(chǔ)新故障的故障信息,實(shí)現(xiàn)第一存儲(chǔ)空間的復(fù)用。
其中,第二預(yù)設(shè)值為大于0的一個(gè)數(shù)值,具體數(shù)據(jù)的選取可根據(jù)實(shí)際需求確定。進(jìn)行第二預(yù)設(shè)值限定的目的在于:保證第一存儲(chǔ)區(qū)域中能夠具有足夠的可存儲(chǔ)空間存儲(chǔ)新的故障信息,因此當(dāng)差值大于或等于第一預(yù)設(shè)值且小于第二預(yù)設(shè)值時(shí),為保證第一存儲(chǔ)區(qū)域能夠具有足夠的剩余容量存儲(chǔ)新的故障信息,需將第一存儲(chǔ)區(qū)域中已存儲(chǔ)的故障信息全部或部分轉(zhuǎn)移至EEPROM中,將當(dāng)前需要存儲(chǔ)的故障信息存儲(chǔ)至第一存儲(chǔ)區(qū)域中。
由于將第一存儲(chǔ)區(qū)域中的故障信息轉(zhuǎn)移至EEPROM需要一定時(shí)間,因此為減小處理時(shí)間,在保證新的故障信息能夠完全存儲(chǔ)至第一存儲(chǔ)區(qū)域中時(shí),可只將部分故障信息轉(zhuǎn)移至EEPROM中。如當(dāng)?shù)谝淮鎯?chǔ)區(qū)域中已有80%的存儲(chǔ)空間被占用,當(dāng)需要轉(zhuǎn)移部分故障信息轉(zhuǎn)移至EEPROM中時(shí),可僅轉(zhuǎn)移50%數(shù)量的故障信息,對(duì)于剩余30%數(shù)量的故障信息不進(jìn)行轉(zhuǎn)移。
進(jìn)一步地,該裝置還包括:
第二處理模塊,用于當(dāng)當(dāng)前需要存儲(chǔ)的故障信息的數(shù)據(jù)量與第一存儲(chǔ)區(qū)域的剩余容量的差值大于或等于第二預(yù)設(shè)值時(shí),將當(dāng)前需要存儲(chǔ)的部分故障信息存儲(chǔ)于汽車隨機(jī)存儲(chǔ)器的第二存儲(chǔ)區(qū)域中。
該第二存儲(chǔ)區(qū)域?yàn)橐活A(yù)留緩存區(qū),當(dāng)當(dāng)前需要存儲(chǔ)的故障信息過多,且第一存儲(chǔ)區(qū)域中已存儲(chǔ)的故障信息來(lái)不及全部寫入EEPROM時(shí),通過第二處理模塊可暫時(shí)將部分新的故障信息存儲(chǔ)至第二存儲(chǔ)區(qū)域中,以避免故障信息的丟失。后續(xù)過程中,可將第二存儲(chǔ)區(qū)域中的故障信息轉(zhuǎn)移至第一存儲(chǔ)區(qū)域中或EEPROM中,具體情況,可根據(jù)實(shí)際需求設(shè)計(jì)。
其中,這里所述的部分故障信息為:當(dāng)前需要存儲(chǔ)的故障信息中,超過剩余容量的故障信息中多余第二預(yù)設(shè)值數(shù)量部分的故障信息。
進(jìn)一步地,本發(fā)明實(shí)施例中,故障信息包括:故障碼(或故障碼的序號(hào))、故障狀態(tài)以及凍結(jié)幀信息等。因此,第一處理模塊303具體用于:將當(dāng)前需要存儲(chǔ)的故障碼(或故障碼的序號(hào))、故障狀態(tài)以及凍結(jié)幀信息等存儲(chǔ)于第一存儲(chǔ)區(qū)域或第二存儲(chǔ)區(qū)域中。
其中,這里所述的故障碼的序號(hào)為:在定義各故障的故障碼時(shí),對(duì)每個(gè)故障碼的編號(hào)。例如,在閃存(Flash EEPROM Memory,簡(jiǎn)稱FLASH)中定義各個(gè)故障的故障碼時(shí),對(duì)故障碼分別進(jìn)行排序編號(hào),這樣既方便故障信息的記錄,同時(shí)由于僅需記錄編號(hào),因此可減小數(shù)據(jù)對(duì)存儲(chǔ)空間的占用。
進(jìn)一步地,該裝置還包括:
記錄模塊,用于在汽車隨機(jī)存儲(chǔ)器的第三存儲(chǔ)區(qū)域中記錄新寫入第一存儲(chǔ)區(qū)域的故障信息的存儲(chǔ)位置、新寫入第二存儲(chǔ)區(qū)域的故障信息的存儲(chǔ)位置,以及更新存儲(chǔ)位置發(fā)生變化的故障信息的存儲(chǔ)位置。
為了便于故障診斷儀讀取故障信息,在存儲(chǔ)故障信息時(shí),可通過記錄模塊將每個(gè)故障對(duì)應(yīng)的故障信息的存儲(chǔ)位置信息記錄于RAM的第三存儲(chǔ)區(qū)域中,以便查詢。
進(jìn)一步地,該裝置還包括:
第三檢測(cè)模塊,用于檢測(cè)讀取故障信息的讀取指令。
其中,第三檢測(cè)模塊可周期性檢測(cè)是否有遵循統(tǒng)一診斷服務(wù)(Unified Diagnostic Services,簡(jiǎn)稱UDS)協(xié)議的故障診斷儀讀取故障信息的指令。
確定模塊,用于根據(jù)第三存儲(chǔ)區(qū)域中記錄故障信息的存儲(chǔ)位置信息,確定讀取指令所要讀取的故障信息的存儲(chǔ)位置。
在確定模塊查詢過程中,可先判斷所要讀取的故障信息是否存儲(chǔ)在EEPROM中,若存在,則從該存儲(chǔ)區(qū)域中讀取故障信息,若不存在,則判斷所要讀取的故障信息是否存儲(chǔ)在RAM的第一存儲(chǔ)區(qū)域中,若存在,則從該存儲(chǔ)區(qū)域中讀取故障信息;若仍不存在,則判斷所要讀取的故障信息是否存儲(chǔ)在RAM的第二存儲(chǔ)區(qū)域中。
讀取模塊,用于從確定的存儲(chǔ)位置中讀取故障信息。
讀取模塊可從確定模塊所確定的存儲(chǔ)位置中讀取故障信息。
綜上所述,本發(fā)明實(shí)施例提供的故障信息存儲(chǔ)的裝置,通過檢測(cè)新的故障信息的數(shù)據(jù)量,從而判斷RAM中是否具有足夠可用的存儲(chǔ)空間,當(dāng)存儲(chǔ)空間不足時(shí),將RAM中已存儲(chǔ)的故障信息轉(zhuǎn)移至EEPROM,從而釋放RAM的存儲(chǔ)空間,以便存儲(chǔ)新的故障信息,這樣,在完整記錄已發(fā)生故障的故障信息的同時(shí),又能夠及時(shí)存儲(chǔ)新故障的故障信息,提高了存儲(chǔ)空間的利用率。
以上所述的是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出對(duì)于本技術(shù)領(lǐng)域的普通人員來(lái)說,在不脫離本發(fā)明所述的原理前提下還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也在本發(fā)明的保護(hù)范圍內(nèi)。