新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > ECC技術(shù)在大容量智能Smart Media卡上的應(yīng)用

ECC技術(shù)在大容量智能Smart Media卡上的應(yīng)用

作者: 時(shí)間:2009-09-11 來源:網(wǎng)絡(luò) 收藏

首先將512位分成前256位和后256位。計(jì)算前256位中“1”的個(gè)數(shù)k,如果k為奇數(shù),令P(256)=l;若k為偶數(shù),則令P(256)=O。然后計(jì)算后面256位中“1”的個(gè)數(shù)為j,如果j為奇數(shù),則令Q(256)=1;若j為偶數(shù),則Q(256)=0。
然后,再把512位等分4塊,每一塊均為128位。把第一塊、第三塊合在一起,計(jì)算其中“1”的個(gè)數(shù)l,如果l為奇數(shù),令P(128)=l;若f為偶數(shù),令P(128)=0;把第二塊和第四塊合在一起,計(jì)算其中“1”的個(gè)數(shù)m,如果m為奇數(shù),則令Q(128)=1,若m為偶數(shù),令Q(128)=0。
第三步,把512位等分為8塊,每塊為64位,把奇數(shù)次塊合并在一起,計(jì)算“l(fā)”的個(gè)數(shù),決定P(64)是“1”還是“0”,再把偶數(shù)次塊合并在一起,計(jì)算“1”的個(gè)數(shù),決定Q(64)是“1',還是“0”。
依次類推,每次塊數(shù)增加一倍,其塊的位數(shù)減少一半,直到每塊中只有1位為止。將奇數(shù)次塊合并在一起,然后決定P(16)、P(8)、P(4)、P(2)、P(1)分別是“1”還是“0”;把偶數(shù)次塊合在一起,決定Q(16)、Q(8)、Q(4)、Q(2)、Q(1)分別是“1”,還是“0”。
最后,把上述P(i)、Q(i)排成一列得P(256)Q(256)P(128)Q(128)P(64)Q(64)…P(1)Q(1)總共18位就構(gòu)成碼,碼為3字節(jié),多余位全為零。
4.2 簡化碼算法
計(jì)算ECC碼是一個(gè)子程序,要求程序要短,ECC子程序的長度為120字節(jié),F(xiàn)015的程序空間可以容納;執(zhí)行要快,ECC子程序的執(zhí)行時(shí)間約為2 ms。由于F015的程序空間不大,而子程序是在記錄過程中經(jīng)數(shù)據(jù)采集,運(yùn)算再加上ECC碼,然后存入Flash。運(yùn)算時(shí)間過長會干擾下一點(diǎn)數(shù)據(jù)采集,破壞數(shù)據(jù)完整性。數(shù)據(jù)采集周期為1/8 s(125 ms),ECC運(yùn)行時(shí)間應(yīng)小于12.5 ms。
程序采用數(shù)據(jù)平行處理,巧妙重復(fù)利用F015指令,從而達(dá)到系統(tǒng)要求。

本文引用地址:http://2s4d.com/article/188651.htm

5 查錯(cuò)和校正
5.1 錯(cuò)誤類型
常見內(nèi)存錯(cuò)誤為:單位、多位、列、行等錯(cuò)誤。其中單位錯(cuò)誤大多在讀取一個(gè)完整比特時(shí)有一位出錯(cuò);而多位錯(cuò)誤是讀相同比特時(shí)總是同一位數(shù)據(jù)出錯(cuò);如果單位錯(cuò)誤發(fā)生在很多詞中,則視為列或行錯(cuò)誤。
5.2 查錯(cuò)和校正算法
無錯(cuò)誤時(shí),ECC碼全為0;當(dāng)主區(qū)有1位錯(cuò)誤,每一個(gè)相似組(eg:P8P8’)有l(wèi)0或0&1,可以糾錯(cuò);如果Flash有多于2位以上的錯(cuò)誤,則沒辦法修正。
在數(shù)據(jù)存入前產(chǎn)生的ECC碼為PQ先,在讀出數(shù)據(jù)后計(jì)算得的ECC碼為PQ后,具體算法如下:
(1)若PQ先^PQ后(^為異或),
(2)若異或后000 000 000 000 000 000,則表示數(shù)據(jù)無錯(cuò)。PQ先^PQ后,R=RF(256)RQ(256)RP(128)RQ(128)…RP(1)RQ(1),其中RP(256)=P(256)先^P(256)后,RQ(256)=Q(256)先^Q(256)后。
若RP(i)^RQ(i)為l,對所有i(i=1,2,4…256)都成立,則
存在1位錯(cuò)碼,其出錯(cuò)的位置:由RP(256)RP(128)RP(64)RP(32)RP(16)RP(8)地址決定的這一字節(jié)中地址(范圍0―63)在RP(4)RP(2)RP(1)的位上(O~7位)。將上述參數(shù)決定的該字節(jié)的位數(shù)據(jù)取非,就可校正數(shù)據(jù)中的錯(cuò)誤。
(3)RP(i)^RQ(i)=1,只對一個(gè)i(i=1,2,4…256)成立。則ECC碼PO先出錯(cuò),數(shù)據(jù)正確。
(4)若出現(xiàn)其他情況,則無法校正數(shù)據(jù)錯(cuò)誤。


6 ECC編碼的實(shí)現(xiàn)

256字節(jié)數(shù)據(jù)的ECC碼是3個(gè)字節(jié),其中22個(gè)字節(jié)是有用的。ECC編碼的產(chǎn)生、計(jì)算方法及錯(cuò)碼檢測方法框圖分別如表4、圖1和圖2所示。

由圖1和圖2可看出,寫入DOS文件系統(tǒng)所需的各功能區(qū)的內(nèi)容,在實(shí)際編程中要嚴(yán)格按照其結(jié)構(gòu)編寫,否則計(jì)算機(jī)將無法識別。

7 結(jié)語
通過討論和分析可見,SM卡的存儲結(jié)構(gòu)、DOS存儲格式以及ECC代碼的編寫所構(gòu)成SM卡數(shù)據(jù)存儲系統(tǒng)的軟件部分,說明了將ECC技術(shù)應(yīng)用于的SM卡是可行的。


上一頁 1 2 下一頁

關(guān)鍵詞: Smart Media ECC 大容量

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉