国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      汽車遙控鑰匙同步碼的存儲方法與流程

      文檔序號:11691569閱讀:2169來源:國知局
      汽車遙控鑰匙同步碼的存儲方法與流程

      本發(fā)明屬于同步碼的存儲技術,具體涉及一種汽車遙控鑰匙同步碼的存儲方法。



      背景技術:

      汽車遙控鑰匙,即rke(remotekeylessentry),其同步碼的主要作用是在rke和車內控制器間進行身份認證。

      當車主按下rke上的相應按鍵,同步碼自動加1并與其他數據一起發(fā)送出去。車內控制器接收到rke發(fā)送的射頻數據后,取出同步碼,通過判斷同步碼是否在同步窗口的認可范圍內來判斷rke的合法性,從而達到身份認證的目的。同步窗口也叫接納窗口,其認可范圍根據本地同步碼的變化而變化,其長度可根據需求自定義,一般定義為128。假設控制器中本地同步碼為x,則同步窗口的認可范圍為從x+1到x+128。若接收到的同步碼在同步窗口的認可范圍內,則身份認證通過,并將其更新為本地同步碼。不在認可范圍內,則身份認證失敗。

      如果rke的同步碼發(fā)生跳變,并跳出了控制器同步窗口的認可范圍,導致身份認證失敗,rke失效,會造成用戶極大的抱怨。市面上發(fā)生了很多rke失效的案例,其中一大部分原因是由于rke中的同步碼錯誤導致的。

      目前rke同步碼的存儲方法為:當按壓rke上的按鍵時,同步碼加1后寫入非易失性存儲器。當rke出現電源斷電,上電后首先從存儲器中讀出當前的同步碼,按鍵時將此同步碼加1后寫入非易失性存儲器,以達到掉電后當前同步碼不會丟失的目的。但非易失性存儲器中的數據在擦寫、存儲的過程中因為電磁干擾、電壓異常等原因可能會被篡改。例如正在擦寫同步碼時,因為rke電池接觸不良導致掉電,同步碼就可能會出錯。所以上述存儲方法存在兩個缺陷:①不能識別非易失性存儲器中的同步碼是否已被篡改;②對已篡改的同步碼無法恢復。

      因此,有必要開發(fā)一種新的汽車遙控鑰匙同步碼的存儲方法。



      技術實現要素:

      本發(fā)明的目的是提供一種汽車遙控鑰匙同步碼的存儲方法,用于識別rke的同步碼是否已被篡改,同時能對已篡改的同步碼進行恢復,能解決因為同步碼錯誤導致rke失效的問題。

      本發(fā)明所述的汽車遙控鑰匙同步碼的存儲方法,在遙控鑰匙的非易失性存儲器中分配n段地址來記錄遙控鑰匙最近n次的同步碼以及同步碼的校驗碼,即同步碼組1和校驗碼組1;

      當按壓遙控鑰匙的按鍵時,首先進行同步碼組的讀取,即將非易失性存儲器中的同步碼組1取出并通過校驗選取出正確的同步碼,組成同步碼組2,然后在同步碼組2中選取出最優(yōu)的同步碼和最佳存儲地址,最后將最優(yōu)同步碼加a后計算出校驗碼一并存入最佳存儲地址中。

      所述同步碼組的讀取方法為:

      將非易失性存儲器中的同步碼組1和校驗碼組1取出,分別計算同步碼組1中各同步碼的校驗碼并判斷是否與校驗碼組1中所對應的校驗碼相同,若不相同,則認為此同步碼已被篡改并舍去,若相同,則認為該同步碼正確,以此方法篩選出所有校驗碼合格的同步碼,組成同步碼組2。

      根據連續(xù)同步碼判斷法在同步碼組2中選取出最優(yōu)的同步碼,所述連續(xù)同步碼判斷法為:

      將同步碼組2中的各同步碼按從大到小依次排序,得到同步碼組3;

      將同步碼組3中第1個同步碼的值與第2個同步碼的值作差,若差值在合理范圍內,即小于n,則認為第1個同步碼為最優(yōu)同步碼;否則認為第1個同步碼錯誤并舍去,再將同步碼組3中第2個同步碼的值與第3個同步碼的值作差,如果差值在合理范圍內,即小于n,則認為第2個同步碼為最優(yōu)同步碼,否則認為第2個同步碼錯誤并舍去,依次類推,如果全部的差值都不小于n,則默認同步碼組3中的第1個同步碼為最優(yōu)同步碼。

      根據最佳存儲地址選取原則在同步碼組2中選取出最佳存儲地址,所述最佳存儲地址選取原則為:

      首先,如果從非易失性存儲器中讀取出的同步碼組1中有不能通過校驗的同步碼,則將該同步碼的存儲地址作為最佳存儲地址;

      其次,如果同步碼組3中的第1個同步碼的值與第2個同步碼的值的差值小于n,則選擇同步碼組3中的最后一個同步碼的存儲地址為最佳存儲地址;如果同步碼組3中的第1個同步碼的值與第2個同步碼的值的差值不小于n,且同步碼組3中存在相鄰兩個同步碼的差值小于n,則選取同步碼組3中的第1個同步碼的存儲地址為最佳存儲地址;

      最后,如果同步碼組3中任意相鄰兩個同步碼的差值均不小于n,則選擇同步碼組3中的最后一個同步碼的存儲地址為最佳存儲地址。

      所述a為1。

      本發(fā)明的有益效果:本方法采取對最近n次的同步碼進行記錄的措施,為數據發(fā)生錯誤后能找回正確同步碼提供可行性。通過校驗可發(fā)現錯誤的同步碼并舍去。通過最新同步碼判斷方法可識別并排除已經發(fā)生跳碼的同步碼并找回正確的同步碼。最后,本方法中可將各組數據分布到非易失性存儲器不同的存儲區(qū)域,防止了因為部分非易失性存儲器被破壞導致所有數據的丟失。采用了最佳存儲地址選取原則,也保證了正確數據不會全部被覆蓋。本方法簡單實用,只需優(yōu)化存儲算法,不增加任何成本,并有效防止了同步碼的跳變問題。

      附圖說明

      圖1為本發(fā)明的邏輯流程圖;

      圖2為本發(fā)明中同步碼從大到小排序的流程圖;

      圖3為本發(fā)明中具體實施例一的原理圖;

      圖4為本發(fā)明中具體實施例二的原理圖。

      具體實施方式

      下面結合附圖對發(fā)明作進一步說明。

      本發(fā)明所述的一種汽車遙控鑰匙同步碼的存儲方法,在遙控鑰匙的非易失性存儲器中分配n段地址來記錄遙控鑰匙最近n次的同步碼以及同步碼的校驗碼,即同步碼組1和校驗碼組1。當按壓遙控鑰匙的按鍵時,首先進行同步碼組的讀取,即將非易失性存儲器中的同步碼組1取出并通過校驗選取出正確的同步碼,組成同步碼組2,然后在同步碼組2中根據連續(xù)同步碼判斷法選取出最優(yōu)的同步碼,以及根據最佳存儲地址選取原則選取出最佳存儲地址,最后將最優(yōu)同步碼加a(比如:a=1)后計算出校驗碼一并存入最佳存儲地址中。

      本發(fā)明中所述同步碼組的讀取方法為:將非易失性存儲器中的同步碼組1和校驗碼組1取出,分別計算同步碼組1中各同步碼的校驗碼并判斷是否與校驗碼組1中所對應的校驗碼相同,若不相同,則認為此同步碼已被篡改并舍去,若相同,則認為該同步碼正確,以此方法篩選出所有校驗碼合格的同步碼,組成同步碼組2。

      本發(fā)明中所述連續(xù)同步碼判斷法為:將同步碼組2中的各同步碼按從大到小依次排序(參見圖2),得到同步碼組3;將同步碼組3中第1個同步碼的值與第2個同步碼的值作差,若差值在合理范圍內,即小于n,則認為第1個同步碼為最優(yōu)同步碼;否則認為第1個同步碼錯誤并舍去,再將同步碼組3中第2個同步碼的值與第3個同步碼的值作差,如果差值在合理范圍內,即小于n,則認為第2個同步碼為最優(yōu)同步碼,否則認為第2個同步碼錯誤并舍去,依次類推,如果全部的差值都不小于n,則默認同步碼組3中的第1個同步碼為最優(yōu)同步碼。

      本發(fā)明中所述最佳存儲地址選取原則為:首先,如果從非易失性存儲器中讀取出的同步碼組1中有不能通過校驗的同步碼,則將該同步碼的存儲地址作為最佳存儲地址;其次,如果同步碼組3中的第1個同步碼的值與第2個同步碼的值的差值小于n,則選擇同步碼組3中的最后一個同步碼的存儲地址為最佳存儲地址;如果同步碼組3中的第1個同步碼的值與第2個同步碼的值的差值不小于n,且同步碼組3中存在相鄰兩個同步碼的差值小于n,則選取同步碼組3中的第1個同步碼的存儲地址為最佳存儲地址;最后,如果同步碼組3中任意相鄰兩個同步碼的差值均不小于n,則選擇同步碼組3中的最后一個同步碼的存儲地址為最佳存儲地址。

      如圖1所示,以選擇記錄最近4次的同步碼數據,且同步碼長度為16位,校驗為crc8算法為例對本發(fā)明進行詳細說明:

      s1、當按壓遙控鑰匙(rke)按鍵時,首先進行數據讀取,讀取出同步碼組1和校驗碼組1。

      s2、計算校驗碼:分別計算同步碼組1中同步碼的crc8校驗碼。

      s3、對比校驗碼:將計算的校驗碼與校驗碼組1中對應的校驗碼進行比較。

      s4、如果校驗碼不相同,則將該同步碼舍去,并將其存儲地址作為最佳存儲地址(address)。

      s5、如果校驗碼相同,則將其放入同步碼組2。

      s6、判斷同步碼組1中的同步碼是否都校驗完成,是否,則完成了同步碼組1的校驗。如果未完成則繼續(xù)上述的校驗。

      s7、如果完成了校驗,則判斷同步碼組2中是否只有1個同步碼。

      s8、如果只有1個同步碼,則將其作為最優(yōu)同步碼(cnt)。

      s9、將cnt+1,并計算校驗碼(crc)。

      s10、最后將cnt+1與crc存入最佳存儲地址中。

      s11、如果同步碼組2中有多個同步碼,則“對同步碼組2進行從大到小排序,得到同步碼組3。

      s12、計算同步碼組3中前兩個同步碼的差值。

      s13、判斷差值是否小于4;如果小于4則選取“第1個同步碼為最優(yōu)同步碼cnt。

      s14、判斷同步碼組3中是否有4個同步碼,如果沒有就說明有同步碼的校驗錯誤,已經選出address;如果有4個同步碼,則選取最小值的同步碼的存儲地址為address。

      s15、如果差值不小于4,則舍去第1個值,并將其存儲地址作為address。

      s16、舍去第一個同步碼后,依次計算同步碼組3中的相鄰兩同步碼的差值。

      s17、判斷計算的差值中,是否有差值小于4。

      s18、如果有小于4的差值,則選擇差值小于4的被減數作為cnt。計算過程中,只要計算出相鄰兩同步碼的差值小于4后,就不再計算后面的相鄰兩同步碼的差值。

      s19、如果差值均不小于4,則默認步碼組3中的第一個同步碼為cnt。

      s20、更新最佳存儲地址,選取步碼組3中最小值的同步碼的存儲地址為address。

      得到cnt、address后將cnt+1,并計算校驗碼crc;最后將cnt+1,與crc存入最佳地址。

      下面通過兩個具體實施例對本方法進行說明。

      由于需要記錄最近4次的同步碼數據。所以首先需要在存儲器中選取4段地址,其中每段地址所需長度為:同步碼(2個字節(jié))、crc8校驗碼(1個字節(jié)),每一段地址的長度為3個字節(jié)。

      例如分別取地址段1為0x0010到0x0012;地址段2為0x0020到0x0022;地址段3為0x0030到0x0032;地址段4為0x0040到0x0042。記錄的最近4次的同步碼分別為,地址1:11;地址2:12;地址3:13;地址4:14。

      實施例一:假設地址段2中的數據被篡改,且校驗錯誤。

      首先讀取出原始同步碼組1:11、error、13、14。

      根據同步碼選取方法選取出校驗碼正確的同步碼組2:11、13、14;由于其地址段2中的數據校驗錯誤,則選取地址段2為最佳存儲地址address。

      將同步碼組2從大到小排序得到同步碼組3:14、13、11。

      計算前2個同步碼的差值:14–13=1;滿足小于4的條件,得到最優(yōu)同步碼:cnt=14。

      最后計算出本次的同步碼:cnt+1=14+1=15;并計算其crc8校驗值。

      將15與其校驗值存入地址段2中。參考圖3。

      實施例二:假設地址段3中的數據跳變?yōu)?00,且校驗碼正確。

      首先讀取出原始同步碼組1:11、12、100、14。

      由于假設其校驗碼都正確,得到同步碼組2:11、12、100、14。

      將同步碼組2從大到小排序得到同步碼組3:100、14、12、11。

      計算前2個同步碼的差值:100–14=86;不滿足小于4的條件,將100舍去,并將其作為最佳存儲地址address:地址段3。

      依次計算同步碼組3中的相鄰兩同步碼的差值,得到:14–12=2;其滿足小于4的條件,得到最優(yōu)同步碼:cnt=14。

      最后計算出本次的同步碼:cnt+1=14+1=15;并計算其crc8校驗值。

      將15與其校驗值存入地址段3中,參見圖4。

      本發(fā)明中的校驗亦可采用crc16算法。

      當前第1頁1 2 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1