專利名稱:一種汽車總里程的存儲(chǔ)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲(chǔ)方法,具體涉及一種汽車總里程的存儲(chǔ)方法。
技術(shù)背景
汽車行駛總里程數(shù)是汽車生命周期里面最總要參數(shù)之一。其代表相應(yīng)車輛目前總 的行駛里程數(shù),對汽車價(jià)值評估有非常重要的參考作用。同時(shí),其為駕駛者提供了關(guān)于車輛 行駛里程重要信息,為車輛保養(yǎng)提供最直接的依據(jù)。一般情況下,汽車?yán)锍虜?shù)是通過存儲(chǔ)器 對汽車行駛里程進(jìn)行記錄,當(dāng)行駛里程變化大于IK m時(shí),其將對內(nèi)部存儲(chǔ)器進(jìn)行寫數(shù)據(jù)操 作,將新的里程數(shù)寫入存儲(chǔ)區(qū)。當(dāng)車出現(xiàn)掉電后,將從存儲(chǔ)區(qū)讀取當(dāng)前里程的數(shù)值,并將其 顯示在相應(yīng)顯示模塊上。如果在存儲(chǔ)區(qū)中存儲(chǔ)的數(shù)據(jù)出現(xiàn)問題,掉電并恢復(fù)整車電源后,顯 示模塊上顯示的數(shù)據(jù)將出現(xiàn)與實(shí)際情況不符問題。此問題將帶來非常嚴(yán)重后果,客戶產(chǎn)生 極大的抱怨。
目前,汽車?yán)锍虜?shù)存儲(chǔ)的方法通常為固定地址存儲(chǔ)模式。當(dāng)行駛里程變化大于 IKm時(shí),其向存儲(chǔ)器地址寫入數(shù)據(jù),成功寫入第一地址后再次寫入第二地址,然后,再寫入第 三個(gè)地址。如果其中某個(gè)地址寫入錯(cuò)誤,其將再次在此地址寫入數(shù)據(jù),如果再次寫入不成 功,將再次寫,并以此類推。如果當(dāng)某個(gè)地址存在問題后,將會(huì)一致在此寫入數(shù)據(jù),但一直寫 不成功。當(dāng)車輛里程變化后,還在存在問題地址處寫數(shù)據(jù),從而導(dǎo)致部分?jǐn)?shù)據(jù)里程信息記錄 失敗,再次上電后,里程信息發(fā)生丟失。發(fā)明內(nèi)容
本發(fā)明的目的是提供一種汽車總里程的存儲(chǔ)方法,它能在存儲(chǔ)區(qū)域中某一單元出 現(xiàn)問題時(shí),使存儲(chǔ)器仍能正常的對里程數(shù)進(jìn)行有效的存儲(chǔ),防止出現(xiàn)實(shí)際行駛里程數(shù)與顯 示屏上顯示里程數(shù)不相符,出現(xiàn)跳變現(xiàn)象。
本發(fā)明所述的一種汽車總里程的存儲(chǔ)方法,其步驟如下 當(dāng)程序運(yùn)行到數(shù)據(jù)存儲(chǔ)函數(shù)后,首先檢測存儲(chǔ)器是否故障如果存儲(chǔ)器故障標(biāo)志置位后,將不再執(zhí)行數(shù)據(jù)存儲(chǔ)動(dòng)作,而在顯示處顯示總里程錯(cuò)誤 信息,表示存儲(chǔ)器當(dāng)前出現(xiàn)存儲(chǔ)錯(cuò)誤;如果存儲(chǔ)器沒有故障,則判斷是否是前一次存儲(chǔ)失敗;如果前一次存儲(chǔ)失敗,則跳過存 儲(chǔ)失敗的地址,對存儲(chǔ)地址進(jìn)行更新,然后,再次進(jìn)行寫入;如果寫入成功,則再次更新存儲(chǔ) 地址,存儲(chǔ)錯(cuò)誤次數(shù)清零,直到寫入成功次數(shù)大于要求成功寫入次數(shù)為止;如果在寫入過程中出現(xiàn)寫入不成功現(xiàn)象,則錯(cuò)誤次數(shù)加1,并判斷錯(cuò)誤次數(shù)次數(shù)是否達(dá) 到允許錯(cuò)誤次數(shù)最大值;如果沒有達(dá)到,則返回到數(shù)據(jù)存儲(chǔ)函數(shù);如果大于錯(cuò)誤次數(shù)最大 值Er_limit,則判斷存儲(chǔ)器存在故障,存儲(chǔ)器故障標(biāo)志置一;如果在程序運(yùn)行過程中,在存儲(chǔ)器沒有故障、存儲(chǔ)沒有錯(cuò)誤狀態(tài)下,如果總里程數(shù)字發(fā) 生變化,則首先讀取前一次成功存入數(shù)據(jù)地址;如果第一次存儲(chǔ),則為存儲(chǔ)器始端地址;然 后,更新數(shù)據(jù)地址,清零錯(cuò)誤次數(shù),再寫入當(dāng)前總里程數(shù);如果在寫入過程中,出現(xiàn)寫入不成功的情況,則返回?cái)?shù)據(jù)存儲(chǔ)函數(shù),再進(jìn)入重新存儲(chǔ)流程。
本方法的特點(diǎn)是當(dāng)存儲(chǔ)器中某一存儲(chǔ)單元出現(xiàn)存儲(chǔ)錯(cuò)誤,無法成功寫入數(shù)據(jù)時(shí), 采用此方法可以不影響這個(gè)數(shù)據(jù)的存儲(chǔ),可以跳過此損壞存儲(chǔ)單元進(jìn)行總里程存儲(chǔ);如果 出現(xiàn)大量存儲(chǔ)單元無法成功寫入數(shù)據(jù)時(shí),可以向用戶顯示當(dāng)前存儲(chǔ)器存在問題,告知用戶 問題的存在,從而有效的防止了總里程數(shù)據(jù)出現(xiàn)突變現(xiàn)象。
本方法簡單,效率較高,且可靠可行,使用后將杜絕里程數(shù)據(jù)丟失的現(xiàn)象,給用戶 提供一個(gè)真實(shí)的里程數(shù)據(jù)信息,并且,當(dāng)存儲(chǔ)其某一部分存在問題時(shí),采用此方法任可以使 用此存儲(chǔ)器,直到存儲(chǔ)器完全損壞為止。
圖1為本發(fā)明的邏輯流程圖。
具體實(shí)施方式
下面結(jié)合說明書附圖對本發(fā)明進(jìn)行進(jìn)一步的描述 參見圖1,本發(fā)明所述的一種汽車總里程的存儲(chǔ)方法,其步驟如下當(dāng)程序運(yùn)行到“數(shù)據(jù)存儲(chǔ)函數(shù)”后,首先是判斷是否有“存儲(chǔ)器故障”一 1 ; 如果存儲(chǔ)器存在故障,則顯示模塊直接“顯示里程錯(cuò)誤” 一 2,且不再進(jìn)行數(shù)據(jù)存儲(chǔ)功能;如果存儲(chǔ)器不存在故障,則判斷上次存儲(chǔ)是否發(fā)生“存儲(chǔ)錯(cuò)誤” -3 ; 如果沒有發(fā)生存儲(chǔ)錯(cuò)誤,則判斷當(dāng)前數(shù)據(jù)總里程是否發(fā)生“里程變化” -5 ; 如果沒有發(fā)生里程變化,則不進(jìn)行數(shù)據(jù)存儲(chǔ);如果發(fā)生了里程變化,則首先“讀取前一次成功存儲(chǔ)數(shù)據(jù)地址”,在此地址的基礎(chǔ)上進(jìn) 行“地址更新錯(cuò)誤次數(shù)清零”一 6,表示當(dāng)前沒有錯(cuò)誤;在更新地址后,將“當(dāng)前里程寫入地 址”;如果“寫入成功”,則“成功次數(shù)+ 1錯(cuò)誤次數(shù)清零”,即成功增加一次,并判斷寫入成功 次數(shù)是否> Suc_limit次數(shù);如果沒有達(dá)到規(guī)定次數(shù),則再更新地址,再次進(jìn)行數(shù)據(jù)寫入操作,直到成功寫入次數(shù)符 合規(guī)定為止;如果在寫入過程中,出現(xiàn)寫入不成功現(xiàn)象,首先“記錄錯(cuò)誤地址”,“錯(cuò)誤次數(shù)+ 1”,然 后,回到程序入口處,再通過存儲(chǔ)錯(cuò)誤判斷流程進(jìn)行處理;出現(xiàn)存儲(chǔ)錯(cuò)誤,則對地址進(jìn)行更 新,跳過出現(xiàn)存儲(chǔ)錯(cuò)誤的地址;新地址后,將出現(xiàn)記錄錯(cuò)誤的里程信息再次寫入新地址;如果寫入成功,則成功寫入次數(shù)增加,再判斷是否滿足規(guī)定要求的次數(shù);如果滿足,則 返回到數(shù)據(jù)存儲(chǔ)函數(shù)入口;如果沒有滿足規(guī)定要求的Sublimit次數(shù),則再次更新數(shù)據(jù)地址,再次寫入,直到滿足 規(guī)定要求的Suc_limit次數(shù);如果發(fā)生了 “存儲(chǔ)錯(cuò)誤”,則對存儲(chǔ)“地址更新” -4 ; “將出現(xiàn)存儲(chǔ)錯(cuò)誤的里程寫入地址”時(shí),首先是判斷是否“寫入成功” 如果寫入不成功,則“記錄錯(cuò)誤地址”一 7,并在后期地址更新時(shí),跳過此出錯(cuò)地址,對 “錯(cuò)誤次數(shù)+ 1” - 9,即進(jìn)行加“1”動(dòng)作,說明寫入失敗次數(shù)增加1次;判斷是否寫入的“錯(cuò)誤次數(shù)> Er_limit”一 11 如果錯(cuò)誤次數(shù)> Er_limit次數(shù),則判斷為“存儲(chǔ)器故障” 一 12,不再進(jìn)行里程存儲(chǔ)操 作,對軟件中相應(yīng)標(biāo)志進(jìn)行置一操作;如果錯(cuò)誤次數(shù)沒有達(dá)到Er_limit次數(shù),則再次嘗試寫入數(shù)據(jù); 當(dāng)存儲(chǔ)出現(xiàn)存儲(chǔ)錯(cuò)誤的里程寫入地址時(shí),如果“寫入成功”,則“地址更新”,將記錄“成 功次數(shù)+ 1錯(cuò)誤次數(shù)清零” -8,說明成功寫入數(shù)據(jù); 判斷是否“成功次數(shù)> Suc_limit"- 10 如果成功次數(shù)> Sublimit次數(shù),這表示此數(shù)據(jù)已經(jīng)完成數(shù)據(jù)存儲(chǔ);如果成功次數(shù)未達(dá)到Sublimit次數(shù),則再次“地址更新”,再次寫入,達(dá)到數(shù)據(jù)備份功
權(quán)利要求
1. 一種汽車總里程的存儲(chǔ)方法,其步驟如下當(dāng)程序運(yùn)行到數(shù)據(jù)存儲(chǔ)函數(shù)后,首先檢測存儲(chǔ)器是否故障 如果存儲(chǔ)器故障標(biāo)志置位后,將不再執(zhí)行數(shù)據(jù)存儲(chǔ)動(dòng)作,而在顯示處顯示總里程錯(cuò)誤 信息,表示存儲(chǔ)器當(dāng)前出現(xiàn)存儲(chǔ)錯(cuò)誤;如果存儲(chǔ)器沒有故障,則判斷是否是前一次存儲(chǔ)失敗;如果前一次存儲(chǔ)失敗,則跳過存 儲(chǔ)失敗的地址,對存儲(chǔ)地址進(jìn)行更新,然后,再次進(jìn)行寫入;如果寫入成功,則再次更新存儲(chǔ) 地址,存儲(chǔ)錯(cuò)誤次數(shù)清零,直到寫入成功次數(shù)大于要求成功寫入次數(shù)Sublimit為止;如果在寫入過程中出現(xiàn)寫入不成功現(xiàn)象,則錯(cuò)誤次數(shù)加1,并判斷錯(cuò)誤次數(shù)次數(shù)是否達(dá) 到允許錯(cuò)誤次數(shù)最大值Er_limit ;如果沒有達(dá)到,則返回到數(shù)據(jù)存儲(chǔ)函數(shù);如果大于錯(cuò)誤 次數(shù)最大值Er_limit,則判斷存儲(chǔ)器存在故障,存儲(chǔ)器故障標(biāo)志置一;如果在程序運(yùn)行過程中,在存儲(chǔ)器沒有故障、存儲(chǔ)沒有錯(cuò)誤狀態(tài)下,如果總里程數(shù)字發(fā) 生變化,則首先讀取前一次成功存入數(shù)據(jù)地址;如果第一次存儲(chǔ),則為存儲(chǔ)器始端地址;然 后,更新數(shù)據(jù)地址,清零錯(cuò)誤次數(shù),再寫入當(dāng)前總里程數(shù);如果在寫入過程中,出現(xiàn)寫入不成 功的情況,則返回?cái)?shù)據(jù)存儲(chǔ)函數(shù),再進(jìn)入重新存儲(chǔ)流程。
全文摘要
本發(fā)明公開一種汽車總里程的存儲(chǔ)方法,其步驟如下當(dāng)程序運(yùn)行到數(shù)據(jù)存儲(chǔ)函數(shù)后,首先檢測存儲(chǔ)器是否故障如果在程序運(yùn)行過程中,在存儲(chǔ)器沒有故障、存儲(chǔ)沒有錯(cuò)誤狀態(tài)下,如果總里程數(shù)字發(fā)生變化,則首先讀取前一次成功存入數(shù)據(jù)地址;如果第一次存儲(chǔ),則為存儲(chǔ)器始端地址;然后,更新數(shù)據(jù)地址,清零錯(cuò)誤次數(shù),再寫入當(dāng)前總里程數(shù);如果在寫入過程中,出現(xiàn)寫入不成功的情況,則返回?cái)?shù)據(jù)存儲(chǔ)函數(shù),再進(jìn)入重新存儲(chǔ)流程。本方法簡單,效率較高,且可靠可行,使用將杜絕里程數(shù)據(jù)丟失的現(xiàn)象,給用戶提供一個(gè)真實(shí)的里程數(shù)據(jù)信息。采用此方法,可以解決當(dāng)數(shù)據(jù)存儲(chǔ)區(qū)出現(xiàn)存儲(chǔ)錯(cuò)誤時(shí),無法正確記錄整車總里程問題。方法簡單,效率較高,且可靠可行。
文檔編號G07C5/08GK102043722SQ201010615120
公開日2011年5月4日 申請日期2010年12月30日 優(yōu)先權(quán)日2010年12月30日
發(fā)明者劉志萌, 張鵬, 易綱, 王曉偉, 謝樂成 申請人:重慶長安汽車股份有限公司