ECC技術(shù)在大容量智能Smart Media卡上的應(yīng)用
SM卡是一種nash Memory存儲(chǔ)卡,輕薄短小是其未來(lái)產(chǎn)品的發(fā)展趨勢(shì)。SM卡具有體積小(45 mm×37 mm x0.76mm),質(zhì)量輕(僅1.8克),結(jié)構(gòu)簡(jiǎn)單,攜帶方便,且具有較高的擦寫(xiě)性能,功耗低,易于升級(jí),帶有便于數(shù)據(jù)傳輸?shù)腜CMCIA界面等優(yōu)點(diǎn),但存在兼容性差和容量小的缺點(diǎn)。
采用大容量的SM卡作為存儲(chǔ)介質(zhì)用于存儲(chǔ)采集的數(shù)據(jù)具有突破性發(fā)展。但其最關(guān)鍵技術(shù)問(wèn)題是要保證各種大量的數(shù)據(jù)能夠在計(jì)算機(jī)中正確地回放和分析,保證計(jì)算機(jī)正確無(wú)誤地識(shí)別出SM卡中的數(shù)據(jù),因此要求SM卡的存儲(chǔ)數(shù)據(jù)格式應(yīng)與DOS文件系統(tǒng)相兼容。錯(cuò)誤檢查與糾正編碼簡(jiǎn)稱(chēng)ECC,是一種實(shí)現(xiàn)計(jì)算機(jī)錯(cuò)誤檢查和糾正的技術(shù),可使整個(gè)計(jì)算機(jī)系統(tǒng)工作時(shí)安全穩(wěn)定。而ECC技術(shù)應(yīng)用于大容量SM卡,使其數(shù)據(jù)采集、儲(chǔ)存更安全穩(wěn)定,并給出了ECC編碼算法,程序設(shè)計(jì)及查錯(cuò)校正的實(shí)現(xiàn)。
2 ECC與SM的地址轉(zhuǎn)換
按照DOS文件操作系統(tǒng)存儲(chǔ)數(shù)據(jù)的方法,SM卡除存儲(chǔ)數(shù)據(jù)功能外,還具有以下5個(gè)區(qū)域:卡信息結(jié)構(gòu)(Card Information Structure,簡(jiǎn)稱(chēng)CIS)、主引導(dǎo)記錄(Master Boot Record簡(jiǎn)稱(chēng),MBR)、分區(qū)引導(dǎo)記錄(Partition Boot Record,簡(jiǎn)稱(chēng)PBR)、分件分配表(File A11ocation Table,簡(jiǎn)稱(chēng)FAT)、根目錄(Root Directory,簡(jiǎn)稱(chēng)DIR)。CPU采用邏輯地址操作存儲(chǔ)介質(zhì),由于邏輯地址與物理地址不同,物理地址是存儲(chǔ)介質(zhì)的實(shí)際地址,如果按照物理地址順序存儲(chǔ)數(shù)據(jù),則不便于文件增加或刪減的操作,因此,其DOS邏輯地址與物理地址必須按照轉(zhuǎn)換表進(jìn)行轉(zhuǎn)換。而SM卡的轉(zhuǎn)換表處于每頁(yè)存儲(chǔ)區(qū)的冗余區(qū)內(nèi)。
SM卡每頁(yè)包括528字節(jié),分為512字節(jié)數(shù)據(jù)區(qū)和16字節(jié)的冗余區(qū)。冗余區(qū)的格式如表l所示,其中ECC編碼區(qū)和邏輯、物理轉(zhuǎn)換區(qū)是最為重要部分。
由表1可以看出:邏輯地址區(qū)1和邏輯地址區(qū)2完全一致,ECC編碼區(qū)2是指256~512字節(jié)的ECC編碼,ECC編碼區(qū)l是指0~255字節(jié)的ECC編碼,數(shù)據(jù)狀態(tài)標(biāo)志和塊狀態(tài)標(biāo)志為FFH時(shí)正常,否則異常。邏輯地址區(qū)是針對(duì)DOS文件系統(tǒng)的邏輯地址和物理地址的轉(zhuǎn)換表,格式如表2所示,其中BA9~BA0為邏輯地址,P為奇偶區(qū)標(biāo)志。
所謂邏輯地址是相對(duì)于DOS文件系統(tǒng)而言,DOS文件系統(tǒng)在存儲(chǔ)文件時(shí),并不是完全按照物理地址的順序存儲(chǔ)的,而是將物理地址按一定的算法分配成邏輯地址,文件存儲(chǔ)是按照FAT表中標(biāo)注的邏輯地址,再根據(jù)冗余區(qū)中的邏輯地址的內(nèi)容找到相應(yīng)的物理地址區(qū)實(shí)現(xiàn)的。整個(gè)SM卡的邏輯地址分布如表3所示。
3 ECC編碼
ECC與奇偶校驗(yàn)(Parity)相類(lèi)似,然而Parity只能檢測(cè)錯(cuò)誤,而ECC則可糾正每頁(yè)的l位錯(cuò)誤。經(jīng)過(guò)內(nèi)存糾錯(cuò),計(jì)算機(jī)的操作指令才能繼續(xù)。
由于SM卡存在“寫(xiě)入干擾”,易引起數(shù)據(jù)錯(cuò)誤,而且該錯(cuò)誤不能利用寫(xiě)入Flash狀態(tài)進(jìn)行檢查。根據(jù)SM卡實(shí)驗(yàn)結(jié)果推斷,寫(xiě)入干擾引發(fā)的錯(cuò)誤在l頁(yè)中(512字節(jié))只有1位出現(xiàn)錯(cuò)誤。因此認(rèn)為這類(lèi)錯(cuò)誤可利用ECC碼檢查并糾正,而不視為壞塊。這樣將大大提高SM卡的可靠性和壽命。在設(shè)計(jì)中以512字節(jié)為一組數(shù)據(jù),加上ECC碼(3字節(jié)),這樣可以使ECC碼的比例達(dá)到最低。
4 ECC編碼算法和程序設(shè)計(jì)
4.1 ECC碼的普通算法
以64字節(jié)一組數(shù)據(jù)為例說(shuō)明ECC碼的普通算法,前52字節(jié)為輸入數(shù)據(jù),后面12字節(jié)補(bǔ)零或64字節(jié)參加運(yùn)算。先將64字節(jié)數(shù)據(jù)排成一列,即最高地址數(shù)據(jù)bit7,bit 6…bit O,然后為次高地址數(shù)據(jù)bit 7,bit 6…bit O,依次根據(jù)地址由高到低,直至最低地址數(shù)據(jù)bit 7,bit 6…bit 0,總共512位。
評(píng)論