亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于循環(huán)冗余校驗的可編程器件的數(shù)據(jù)保護方法

文檔序號:6753269閱讀:312來源:國知局

專利名稱::基于循環(huán)冗余校驗的可編程器件的數(shù)據(jù)保護方法
技術(shù)領(lǐng)域
:本發(fā)明涉及一種可編程器件的數(shù)據(jù)保護方法,具體涉及一種基于循環(huán)冗余校驗的可編程器件的數(shù)據(jù)保護方法。
背景技術(shù)
:循環(huán)冗余校驗(碼)(CyclicRedundancyCheck(Code),簡稱為CRC),是一類重要的線性分組碼,編碼和解碼方法簡單,檢錯和糾錯能力強,在通信領(lǐng)域廣泛地用于實現(xiàn)差錯控制。可編程器件(ProgrammableRead-OnlyMemory,簡稱為PROM),主流產(chǎn)品是采用雙層?xùn)?二層poly)結(jié)構(gòu),其中有可擦除可編程存儲器(ErasableProgrammableRead-OnlyMemory,簡稱為EPR0M)和電可擦可編程只讀存儲器(ElectricallyErasableProgrammableRead-OnlyMemory,簡稱為EEI3ROM)等。EEPROM是一種掉電后數(shù)據(jù)不丟失的存儲芯片,可以在專用設(shè)備上擦除已有信息,重新編程。一般用在一些電子產(chǎn)品中,用來存放產(chǎn)品的一些重要的信息,和設(shè)備的參數(shù);防止在意外情況發(fā)生下,如產(chǎn)品掉電等意外發(fā)生時,產(chǎn)品的一些重要信息,還有所保存。EPROM和EEPROM工作原理大體相同,主要結(jié)構(gòu)如圖1所示。浮柵中沒有電子注入時,在控制柵加電壓時,浮柵中的電子跑到上層,下層出現(xiàn)空穴。由于感應(yīng),便會吸引電子,并開啟溝道。如果浮柵中有電子的注入時,即加大的管子的閾值電壓,溝道處于關(guān)閉狀態(tài)。這樣就達(dá)成了開關(guān)功能。EEPROM的寫入過程,是利用了隧道效應(yīng),即能量小于能量勢壘的電子能夠穿越勢壘到達(dá)另一邊。量子力學(xué)認(rèn)為物理尺寸與電子自由程相當(dāng)時,電子將呈現(xiàn)波動性,這里就是表明物體要足夠的小。就PN結(jié)來看,當(dāng)P和N的雜質(zhì)濃度達(dá)到一定水平時,并且空間電荷極少時,電子就會因隧道效應(yīng)向?qū)нw移。電子的能量處于某個級別允許級別的范圍稱為“帶”,較低的能帶稱為價帶,較高的能帶稱為導(dǎo)帶。電子到達(dá)較高的導(dǎo)帶時就可以在原子間自由的運動,這種運動就是電流。EEPROM寫入過程,如圖2所示,根據(jù)隧道效應(yīng),包圍浮柵的SiO2,必須極薄以降低勢壘。源漏極接地,處于導(dǎo)通狀態(tài)。在控制柵上施加高于閾值電壓的高壓,以減少電場作用,吸引電子穿越。要達(dá)到消去電子的要求,EEPROM也是通過隧道效應(yīng)達(dá)成的。如圖3所示,在漏極加高壓,控制柵為0V,翻轉(zhuǎn)拉力方向,將電子從浮柵中拉出。這個動作,如果控制不好,會出現(xiàn)過消去的結(jié)果。由于EEPROM的擦除不需要借助于其它設(shè)備,它是以電子信號來修改其內(nèi)容的,而且是以字節(jié)(Byte)為最小修改單位,不必將資料全部洗掉才能寫入,徹底擺脫了EPROM擦除器和編程器的束縛。EEPROM在寫入數(shù)據(jù)時,仍要利用一定的編程電壓才可以將相應(yīng)的地址內(nèi)的內(nèi)容做出修改?,F(xiàn)在越來越多的電子產(chǎn)品都將EEPROM移植入自己的硬件電路中,來存儲一些重要的產(chǎn)品信息,和一些硬件參數(shù)。而這些數(shù)據(jù)一旦出現(xiàn)錯誤都會對我們的產(chǎn)品有很大的影響,有的時候還會帶來很大的隱患。對于汽車產(chǎn)品就更為重要,因此對可編程器件的數(shù)據(jù)保護需要進(jìn)一步研究。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題是提供一種基于循環(huán)冗余校驗的可編程器件的數(shù)據(jù)保護方法,它可以提高可編程器件的數(shù)據(jù)準(zhǔn)確性。為了解決以上技術(shù)問題,本發(fā)明提供了一種基于循環(huán)冗余校驗的可編程器件的數(shù)據(jù)保護方法,包括每次存儲可編程器件中的數(shù)據(jù)時,進(jìn)行一次循環(huán)冗余校驗計算,將新的循環(huán)冗余校驗碼存入到可編程器件中,替代原有的循環(huán)冗余校驗碼;每次讀取可編程器件中的數(shù)據(jù)時,也進(jìn)行一次循環(huán)冗余校驗計算,將計算出的校驗碼與先前存入的校驗碼進(jìn)行比較,相同則證明數(shù)據(jù)有效,不同則證明數(shù)據(jù)無效。因為本發(fā)明用基于循環(huán)冗余校驗對可編程器件的數(shù)據(jù)進(jìn)行驗證,可以有效提高可編程器件的數(shù)據(jù)準(zhǔn)確性。下面結(jié)合附圖和具體實施方式對本發(fā)明作進(jìn)一步詳細(xì)說明。圖1是可編程器件采用雙層?xùn)?二層Poly)結(jié)構(gòu)示意圖;圖2是EEPROM的寫入過程;圖3是消去電子的過程;圖4是基于循環(huán)冗余校驗的可編程器件的數(shù)據(jù)保護方法的流程圖。具體實施例方式如圖4所示,本發(fā)明的基于循環(huán)冗余校驗的可編程器件的數(shù)據(jù)保護方法,包括每次存儲可編程器件中的數(shù)據(jù)時,進(jìn)行一次循環(huán)冗余校驗計算,將新的循環(huán)冗余校驗碼存入到可編程器件中,替代原有的循環(huán)冗余校驗碼;和每次讀取可編程器件中的數(shù)據(jù)時,也進(jìn)行一次循環(huán)冗余校驗計算,將計算出的校驗碼與先前存入的校驗碼進(jìn)行比較,相同則證明數(shù)據(jù)有效,不同則證明數(shù)據(jù)無效。實施例一CRC計算與普通的除法計算有所不同。普通的除法計算是借位相減的,而CRC計算則是異或運算。任何一個除法運算都需要選取一個除數(shù),在CRC運算中我們稱之為poly,而寬度W就是poly最高位的位置。比如poly1001的W是3,而不是4。注意最高位總是1,當(dāng)你選定一個寬度,那么你只需要選擇低W各位的值。假如我們想計算一個位串的CRC碼,并要保證每一位都要被處理,因此我們需要在目標(biāo)位串后面加上W個0。下面舉例說明CRC算法的過程。在此例中,我們假設(shè)位串為110101101。Poly=10011(寬度W=4)位串末尾增加W個后=110101101000010011/1101011010000/110000101(我們不關(guān)心此運算的商)IOOIiI111111-----1ιιιιιι10011IIIIII10011IIIIII-----1Illlllooooi11111ooooo11111-----1IllllOOOlOlIII00000IIII-----1IlllOOlOlIIIOOOOOIII-----IIIOlOlOlIOOOOOII-----1I10100110011I-----1OlllOOOOOO-----1110010011-----1111->余數(shù)->CRC碼計算過程總結(jié)如下1.只有當(dāng)位串的最高位為1,我們才將它與poly做異或(XOR)運算,否則我們只是將位串左移一位。2.異或運算的結(jié)果實質(zhì)上是被操作位串與poly的低W位進(jìn)行運算的結(jié)果,因為最高位總為0。基于上述原理,將算法設(shè)計如下因為位運算的算法是非常慢的而且效率低下,如果將計算放在每一字節(jié)上進(jìn)行,那么效率將大大提高,因此將循環(huán)冗余校驗基于字節(jié)進(jìn)行運算,除數(shù)的寬度為8(一個字節(jié)長度)的整數(shù)倍,例如選用一個寬度為32的poly(W=32)。用一個寄存器來存放暫時的CRC結(jié)果,下面稱它為CRC寄存器或者寄存器。從右至左的移動位串,當(dāng)從左邊移出的位是1,則整個寄存器被與poly的低W位進(jìn)行XOR運算。(此例中為32)。移動前寄存器值為10110100當(dāng)從右邊移入4位時,左邊的高4位將被移出,此例中1011將被移出,而1101被移入。情況如下當(dāng)前8位CRC寄存器01001101剛剛被移出的高4位1011選用此poly:101011100,寬度W=8現(xiàn)在用上述介紹的方法來計算寄存器的新值。頂部寄存器------------101101001101高四位和當(dāng)前記存器值101011100+(*l)Poly放在頂部最高位進(jìn)行XOR運算(因為那里是1)-------------000110101101運算結(jié)果現(xiàn)在仍有一位1在高4位000110101101上一步結(jié)果101011100+(*2)Poly放在頂部的最低位進(jìn)行XOR運算(因為那里是1)-------------000011110001第二步運算結(jié)果現(xiàn)在高四位所有位均為0,所以不需要在與poly進(jìn)行XOR運算。上面的計算過程,可以得到相同的結(jié)果,如果先將(*1)與(*2)做XOR然后將結(jié)果與寄存器值做X0R。這就是標(biāo)準(zhǔn)XOR運算的特性(aXORb)X0Rc=aXOR(bXORc)由此,推出如下的運算順序也是正確的。101011100poly(*1)放在頂部最高位101011100+poly(*2)放在頂部最低位-------------101110111100(*3)XOR運算結(jié)果結(jié)果(*3)將(*3)與寄存器的值做XOR運算101110111100101101001101+-------------000011110001這樣得到一樣的結(jié)果!現(xiàn)在(*3)變的重要了,因為頂部為1010則(3)的值總是等于10111100,這意味著你可以預(yù)先計算出任意頂部位結(jié)合的XOR值。注意,頂部結(jié)果總是0,這就是組合XOR操作導(dǎo)致的結(jié)果。實施例二、值表(directtable)算法上面提到的算法可以被優(yōu)化。字節(jié)串中的字節(jié)在被用到之前沒有必要經(jīng)過整個寄存器。用這個新的算法,可以直接用一個字節(jié)去XOR—個字節(jié)串通過將此字節(jié)移出寄存器。結(jié)果指向預(yù)先計算的表中的一個值,這個值是用來被寄存器的值做XOR運算的。實施例三、反射值表(reflecteddirectTable)算法reflecteddirectTable算法是與directtable算法相對應(yīng)的“反射”算法,提出“反射”是因為UART(—種操作IO的芯片)發(fā)送每一個字節(jié)時是先發(fā)最低位(即0位),最后發(fā)送最高位(即第七位)。這與正常的字節(jié)位置是相逆的。為了針對這種數(shù)據(jù)進(jìn)行CRC校驗,在算法上作了相應(yīng)的調(diào)整,這就是reflecteddirectTable算法。這種算法中除了信息串不做反射以外,在進(jìn)行下一步操作前,要將其于的數(shù)據(jù)都做反射處理。所以在計算值表時,位向右移,且poly也是作過反射處理的。當(dāng)然,在計算CRC時,寄存器也要向右移,而且值表也必須是反射過的。算法如下1、將寄存器向右移動一個字節(jié)。2、將剛移出的哪個字節(jié)與字節(jié)串中的新字節(jié)做XOR運算,得出一個指向值表table的索引3、將索引所指的表值與寄存器做XOR運算。4、如數(shù)據(jù)沒有全部處理完,則跳到步驟1。綜上所述,當(dāng)對EEPROM存儲數(shù)據(jù)時,使用了上述的CRC校驗的算法后,在往EEPROM存儲相應(yīng)的數(shù)據(jù)時,再將計算過的CRC校驗碼同時也存入到EEPROM中。這樣,在以后對這些數(shù)據(jù)進(jìn)行操作的時候,我們都可以對這些數(shù)據(jù)進(jìn)行一次CRC校驗的計算,當(dāng)算出來的CRC校驗碼與先前存入的CRC校驗碼相同時,就可以相信EEPROM中的數(shù)據(jù)是沒有被破壞的。權(quán)利要求一種基于循環(huán)冗余校驗的可編程器件的數(shù)據(jù)保護方法,其特征在于,包括每次存儲可編程器件中的數(shù)據(jù)時,進(jìn)行一次循環(huán)冗余校驗計算,將新的循環(huán)冗余校驗碼存入到可編程器件中,替代原有的循環(huán)冗余校驗碼;每次讀取可編程器件中的數(shù)據(jù)時,也進(jìn)行一次循環(huán)冗余校驗計算,將計算出的校驗碼與先前存入的校驗碼進(jìn)行比較,相同則證明數(shù)據(jù)有效,不同則證明數(shù)據(jù)無效。2.如權(quán)利要求1所述的基于循環(huán)冗余校驗的可編程器件的數(shù)據(jù)保護方法,其特征在于,所述的循環(huán)冗余校驗是基于字節(jié)進(jìn)行運算的,所述循環(huán)冗余校驗中的除數(shù)的寬度為8的整數(shù)倍。3.如權(quán)利要求2所述的基于循環(huán)冗余校驗的可編程器件的數(shù)據(jù)保護方法,其特征在于,所述的循環(huán)冗余校驗是值表算法。4.如權(quán)利要求2所述的基于循環(huán)冗余校驗的可編程器件的數(shù)據(jù)保護方法,其特征在于,所述的循環(huán)冗余校驗是反射值表算法。全文摘要本發(fā)明公開了一種基于循環(huán)冗余校驗的可編程器件的數(shù)據(jù)保護方法,包括每次存儲可編程器件中的數(shù)據(jù)時,進(jìn)行一次循環(huán)冗余校驗計算,將新的循環(huán)冗余校驗碼存入到可編程器件中,替代原有的循環(huán)冗余校驗碼;每次讀取可編程器件中的數(shù)據(jù)時,也進(jìn)行一次循環(huán)冗余校驗計算,將計算出的校驗碼與先前存入的校驗碼進(jìn)行比較,相同則證明數(shù)據(jù)有效,不同則證明數(shù)據(jù)無效。因為本發(fā)明用基于循環(huán)冗余校驗對可編程器件的數(shù)據(jù)進(jìn)行驗證,可以有效提高可編程器件的數(shù)據(jù)準(zhǔn)確性。文檔編號G11C29/40GK101800084SQ20091004601公開日2010年8月11日申請日期2009年2月6日優(yōu)先權(quán)日2009年2月6日發(fā)明者楊毅,王明明,臧鐵生申請人:上海德科電子儀表有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1