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