專(zhuān)利名稱(chēng):存儲(chǔ)卡及其記錄,再現(xiàn)和擦除方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種存儲(chǔ)卡,特別涉及一種能用作各種信息的記錄媒體的具有標(biāo)準(zhǔn)化記錄格式的存儲(chǔ)卡,以及使用這種存儲(chǔ)卡時(shí)的記錄、再現(xiàn)和擦除方法。
隨著信號(hào)處理數(shù)字化趨勢(shì)的發(fā)展,引入了各種記錄媒體。例如,象計(jì)算機(jī)、CDP、DAT、MD、CD—I和CD—ROM這樣的數(shù)字信息記錄和再現(xiàn)設(shè)備都使用磁盤(pán)類(lèi)型或磁帶類(lèi)型的記錄媒體。這些設(shè)備利用各種技術(shù),使用不同的記錄媒體和不同的數(shù)據(jù)格式來(lái)記錄和讀出信息。因此,只有相同類(lèi)型的信息才能用同類(lèi)的設(shè)備來(lái)記錄,即使可以采用相同的記錄媒體,并且,記錄和讀出信息的方法仍隨所使用的設(shè)備變化。因此,記錄媒體之間的兼容性程度是不是的。
隨著半導(dǎo)體存儲(chǔ)設(shè)備集成度的增加,使用輕、薄和小的存儲(chǔ)卡作為記錄各種信息的媒體的可能性正在變大。作為使用存儲(chǔ)卡的常規(guī)技術(shù)、引入了存儲(chǔ)聲音數(shù)據(jù)(英國(guó)專(zhuān)利號(hào)294,2012)、音樂(lè)數(shù)據(jù)(美國(guó)專(zhuān)利號(hào)4,813,014)或圖象數(shù)據(jù)(美國(guó)專(zhuān)利號(hào)5,226,145)的方法。這種記錄和再現(xiàn)特定數(shù)據(jù)的常規(guī)技術(shù)由特定的應(yīng)用領(lǐng)域所限定,不能兼容地記錄和再現(xiàn)不同應(yīng)用領(lǐng)域的特定數(shù)據(jù)。
因此,本發(fā)明的一個(gè)目的是提供一種能記錄和再現(xiàn)各種數(shù)據(jù)的存儲(chǔ)卡。
本發(fā)明的另一個(gè)目的是提供使用這種存儲(chǔ)卡時(shí)的記錄、再現(xiàn)和擦除的方法。
為了實(shí)現(xiàn)本發(fā)明的上述目的,提供了一種具有記錄格式的存儲(chǔ)卡,這種記錄格式包括一個(gè)被劃分為多個(gè)群集的數(shù)據(jù)區(qū);用于存放一個(gè)段屬性表的第一索引區(qū),該段屬性表由對(duì)應(yīng)于多個(gè)段的屬性信息所構(gòu)成,每個(gè)段由要求一次記錄到數(shù)據(jù)區(qū)的順序信息的多個(gè)群集組成;用于存放一個(gè)群集表的第二索引區(qū),群集表由對(duì)應(yīng)于數(shù)據(jù)區(qū)的群集的次序的每個(gè)群集所用的信息組成;以及用于存儲(chǔ)卡管理信息的一個(gè)卡管理信息區(qū),該卡管理信息包括被記錄數(shù)據(jù)的信息、和被記錄數(shù)據(jù)有關(guān)的應(yīng)用設(shè)備的信息以及被記錄段數(shù)的信息。
第一索引區(qū)包括一個(gè)指針區(qū)和一個(gè)屬性信息區(qū),指針區(qū)用于存儲(chǔ)多個(gè)指針值,這些指針值定義記錄多個(gè)段的屬性信息的每個(gè)區(qū)的起始地址屬性信息區(qū)用于存儲(chǔ)具有對(duì)應(yīng)的指針值作為起始地址的每個(gè)區(qū)中每段的屬性信息和存儲(chǔ)構(gòu)成每個(gè)段的多個(gè)群集中起始群集的順序號(hào)信息。
上述的區(qū)域是按照第一索引區(qū)、第二索引區(qū)、數(shù)據(jù)區(qū)和卡管理信息區(qū)這樣的次序構(gòu)成的。存儲(chǔ)卡進(jìn)一步包括一個(gè)壞塊冗余區(qū),該區(qū)包括用于替換在第一和第二索引區(qū)或卡管理信息區(qū)中所產(chǎn)生的壞塊的多個(gè)塊??ü芾硇畔^(qū)進(jìn)一步包括壞塊管理表,該表記錄所產(chǎn)生的壞塊的位置信息以及記錄壞塊冗余區(qū)中替換壞塊的塊的位置信息。壞塊冗余區(qū)位于數(shù)據(jù)區(qū)和卡管理信息區(qū)之間。群集表所用的信息包括未用信息、故障信息、段結(jié)束信息和下一段的順序號(hào)信息。
本發(fā)明的存儲(chǔ)卡具有一種能讀寫(xiě)信息而無(wú)需考慮信息類(lèi)型之間的差異和設(shè)備類(lèi)型之間的差異的記錄格式,因此,能增強(qiáng)該卡的實(shí)際應(yīng)用并提高兼容性。
為了實(shí)現(xiàn)本發(fā)明的另一個(gè)目的,提供了一種記錄信息的方法,該方法包括如下的步驟把具有上述記錄格式的存儲(chǔ)卡的存儲(chǔ)區(qū)劃分為第一和第二索引區(qū)、數(shù)據(jù)區(qū)、壞塊冗余區(qū)和卡管理信息區(qū),并初始化每個(gè)區(qū);檢查能否根據(jù)當(dāng)前被記錄在卡管理信息區(qū)中的段號(hào)把其他的信息記錄到段中;接著,根據(jù)第二索引區(qū)的群集表把該段的數(shù)據(jù)記錄到未用的群集中,并根據(jù)記錄該數(shù)據(jù)的群集的順序號(hào)把已用信息登記到群集表上,并在被記錄的段的最后群集上終止該記錄過(guò)程;并且當(dāng)記錄過(guò)程終止時(shí),在卡管理信息區(qū)中對(duì)當(dāng)前被記錄的段數(shù)增1,并把該段的新記錄屬性信息和起始群集的順序號(hào)信息登記到第一索引區(qū)的段屬性表中。
在初始化步驟中,先初始化卡管理信息區(qū),然后再初始化第一和第二索引區(qū)。初始化卡管理信息區(qū)的步驟包括判斷存儲(chǔ)卡的最后塊是否為壞塊;若存儲(chǔ)卡的最后塊不是壞塊,則把預(yù)定的卡管理信息記錄到最后塊中;當(dāng)卡管理信息的記錄過(guò)程結(jié)束時(shí),判斷是否有錯(cuò)誤;若在錯(cuò)誤判斷步驟中發(fā)現(xiàn)錯(cuò)誤或在壞塊判斷步驟中確定出某個(gè)壞塊,則把記錄位置改變到最后塊的前一個(gè)塊,并對(duì)壞塊的數(shù)目增1,減少壞塊冗余區(qū)的尺寸,并在卡管理信息區(qū)中的塊數(shù)增1之后,返回到壞塊判斷步驟;如果在出錯(cuò)判斷步驟中沒(méi)發(fā)現(xiàn)錯(cuò)誤,終止卡管理信息的初始化。
第一索引區(qū)段屬性表的初始化步驟包括如下的步驟判斷存儲(chǔ)卡的最開(kāi)頭的第一塊是否為壞塊;若不是壞塊,則把信息單元的屬性信息的初始化值記錄到第一塊上;當(dāng)記錄過(guò)程結(jié)束時(shí),判斷是否存在錯(cuò)誤;若在出錯(cuò)判斷步驟中發(fā)現(xiàn)錯(cuò)誤或在壞塊判斷步驟中確定壞塊存在,則把記錄位置改變到壞塊冗余區(qū)的冗余塊上,并把壞塊的數(shù)目增1,把該壞塊的位置信息和替換該壞塊的塊位置信息登記在卡管理信息區(qū)的壞塊管理表中,并返回到壞塊判斷步驟;如果在出錯(cuò)判斷步中沒(méi)發(fā)現(xiàn)錯(cuò)誤,則終止該段屬性表的初始化。
第二索引區(qū)的群集表的初始化步驟包括以下的步驟判斷第二索引的塊是否為壞塊;若第二索引區(qū)的塊不是壞塊,判斷數(shù)據(jù)區(qū)的群集中是否存在壞的群集,根據(jù)在壞群集判斷步中找到的壞群集的順序號(hào),把群集表上的已用信息登記作為壞信息,并根據(jù)正常群集的順序號(hào),把群集表上的所用信息登記為未用信息;當(dāng)該記錄過(guò)程結(jié)束時(shí),判斷是否存在錯(cuò)誤;若找到錯(cuò)誤或確定出壞塊、把記錄位置改變到壞塊冗余區(qū)的冗余塊上,并對(duì)壞塊的數(shù)目增1,把壞塊的位置信息和被用來(lái)替換該壞塊的塊的位置信息登記到卡管理信息區(qū)的壞塊管理表上,并返回到壞塊判斷步驟;如果在出錯(cuò)判斷步中沒(méi)發(fā)現(xiàn)錯(cuò)誤,復(fù)制登記了最初使用信息的群集表,以便形成多個(gè)表,并終止該群集表的初始化過(guò)程。
記錄步驟包括這些步驟當(dāng)在把信息記錄到群集的過(guò)程中發(fā)現(xiàn)壞塊時(shí)或者在把信息記錄到該群集單元上之后發(fā)現(xiàn)錯(cuò)誤時(shí)把當(dāng)前群集處理為一個(gè)壞區(qū)并且把群集表的對(duì)應(yīng)順序號(hào)的已用信息登記作為壞信息。
本發(fā)明的再現(xiàn)信息方法包括下面的步驟在已記錄的段中選擇其中的一個(gè);持續(xù)讀順序號(hào)信息直到讀到被選段的終止信息,采用這樣一種方法;根據(jù)段屬性表讀出被選段的起始群集的順序號(hào)信息并且根據(jù)該群集表讀出對(duì)應(yīng)該讀出順序號(hào)信息的已用信息;并且根據(jù)所讀群集讀順序號(hào)信息的次序從對(duì)應(yīng)數(shù)據(jù)區(qū)的群集中讀出數(shù)據(jù)。
本發(fā)明的擦除信息的方法包括下面的步驟選擇將被擦除的段;把代表被擦除段的信息記錄到被選段的屬性信息中,并且重新安排被擦除段后的各段的優(yōu)先級(jí);把構(gòu)成將被擦除的一個(gè)段的若干群集的群集表的每個(gè)已用信息登記作為未用信息,并擦除該數(shù)據(jù)區(qū)的各群集的被記錄內(nèi)容;并且從卡管理信息區(qū)的當(dāng)前被記錄段的數(shù)目中減去被擦除段的數(shù)目。
因此,在本發(fā)明的記錄方法中,檢查壞塊并可用冗余塊替換壞塊。因此能實(shí)現(xiàn)對(duì)被損壞部分控制的標(biāo)準(zhǔn)化并提高卡的使用效率。此外,能對(duì)被用過(guò)的卡初始化以便重新使用該卡,而不用考慮所用信息或設(shè)備的類(lèi)型。
通過(guò)結(jié)合附圖詳細(xì)描述一個(gè)最佳實(shí)施例將使得本發(fā)明的上述目的和其他優(yōu)點(diǎn)變得更加清楚。在這些附圖中/;
圖1是本發(fā)明的存儲(chǔ)卡的方框圖;圖2是本發(fā)明一個(gè)實(shí)施例的存儲(chǔ)卡的群集的存儲(chǔ)圖;圖3是本發(fā)明的另一個(gè)實(shí)施例的存儲(chǔ)卡的群集的存儲(chǔ)圖;圖4表示記錄在本發(fā)明的卡管理信息區(qū)中的卡屬性信息的格式;圖5表示圖4中所示的檢查位串的格式;圖6表示圖4中所示的格式版本的格式;圖7表示圖4中所示的格式化數(shù)據(jù)的格式;圖8表示圖4中所示的卡的類(lèi)型的指示符的格式;圖9表示圖4中所示的壞塊管理表的列表內(nèi)容的格式;圖10說(shuō)明圖4中所示的壞塊管理表的實(shí)施例;圖11表示第一索引區(qū)的段屬性表的格式;圖12表示圖11的屬性表的段名格式;圖13表示圖11的屬性表的信息類(lèi)型的格式;圖14表示圖11的屬性表的段記錄日期的格式;圖15表示記錄在第二索引區(qū)中的群集表的格式;圖16說(shuō)明一個(gè)實(shí)施例,用于解釋根據(jù)本發(fā)明的存儲(chǔ)卡的記錄、再現(xiàn)和擦除操作;圖17是一個(gè)流程圖,說(shuō)明根據(jù)本發(fā)明的卡管理信息區(qū)的初始化進(jìn)程;圖18是一個(gè)流程圖,說(shuō)明根據(jù)本發(fā)明的段屬性表的初始化進(jìn)程圖19是一個(gè)流程圖,說(shuō)明根據(jù)本發(fā)明的群集表的初始化進(jìn)程圖20是一個(gè)流程圖,說(shuō)明根據(jù)本發(fā)明的存儲(chǔ)卡的記錄方法;圖21是一個(gè)流程圖,說(shuō)明根據(jù)本發(fā)明的存儲(chǔ)卡的再現(xiàn)方法。
下面將結(jié)合附圖對(duì)本發(fā)明進(jìn)行更加詳細(xì)的說(shuō)明。
在圖1中,存儲(chǔ)卡100包括一個(gè)連接器10,其用于在電路連接某個(gè)外部應(yīng)用設(shè)備的控制電路200,一個(gè)存儲(chǔ)卡控制器20,用于根據(jù)經(jīng)連接器10輸入的外部存儲(chǔ)卡控制信號(hào)(該信號(hào)表示存儲(chǔ)卡的狀態(tài))在卡中輸出一個(gè)存儲(chǔ)控制信號(hào),和一個(gè)存儲(chǔ)器30,在其上根據(jù)來(lái)自存儲(chǔ)卡控制器20的控制信號(hào)寫(xiě)入或讀出預(yù)定數(shù)據(jù)。存儲(chǔ)卡控制器20和存儲(chǔ)器30都包含在存儲(chǔ)卡盒中,而連接器10則安裝在存儲(chǔ)卡盒上,以用作外部連接。存儲(chǔ)卡的類(lèi)型可大致分為只讀卡和可記錄卡,取決于存儲(chǔ)設(shè)備的類(lèi)型。ROM設(shè)備用作只讀存儲(chǔ)卡的存儲(chǔ)器,而SRAM、EPROM、EEPROM或閃速存儲(chǔ)設(shè)備用于可記錄存儲(chǔ)卡。
圖2是本發(fā)明的只讀存儲(chǔ)卡的一個(gè)存儲(chǔ)圖,而圖3則是可記錄存儲(chǔ)卡的存儲(chǔ)圖。兩種存儲(chǔ)器都包括記錄段屬性表的第一索引區(qū)12、記錄群集表的第二索引區(qū)14、劃分成多個(gè)群集的數(shù)據(jù)區(qū)16,以及卡管理信息區(qū)18??捎涗洿鎯?chǔ)卡還包括壞塊冗余區(qū)22。
如圖4所示,記錄在卡管理信息區(qū)18里的卡管理信息包括卡屬性信息。這里,卡的典型被記錄數(shù)據(jù)包括這樣的一類(lèi)信息檢查位串(16字節(jié))、格式版本變更信息(2字節(jié))、格式化日期(2字節(jié))、格式屬性串(8字節(jié))、應(yīng)用設(shè)備信息的字符串(14字節(jié))、所用卡的類(lèi)型的指示符(1字節(jié))、卡的尺寸(4字節(jié))、頁(yè)的尺寸(2字節(jié))、塊的尺寸(2字節(jié))、構(gòu)成一個(gè)群集的塊數(shù)(1字節(jié))、一個(gè)保留區(qū)(10字節(jié))、已記錄段的數(shù)目(2字節(jié))、段屬性表的起始地址(4字節(jié))、另一個(gè)保留區(qū)(10字節(jié))、包括數(shù)據(jù)區(qū)尺寸的數(shù)據(jù)區(qū)信息(4字節(jié))、壞塊的數(shù)目(4字節(jié))、該群集的起始地址(4字節(jié))和一個(gè)保留區(qū)(4字節(jié))、包括群集表復(fù)制數(shù)目的群集表信息(2字節(jié))、群集項(xiàng)目的數(shù)目(4字節(jié))、群集表的起始地址(4字節(jié))和一個(gè)保留區(qū)(6字節(jié))、壞塊冗余區(qū)的尺寸(2字節(jié))、卡管理信息塊的數(shù)目(2字節(jié))、壞塊的數(shù)目(2字節(jié))、另一個(gè)保留區(qū)(10字節(jié))、壞塊管理表(1K字節(jié))、另一個(gè)保留區(qū)(2942字節(jié)),以及檢查和信息(2字節(jié))??ü芾硇畔^(qū)18位于尺寸為4K字節(jié)的該卡的最后塊中。然而,當(dāng)該最后塊被損壞時(shí),立即使用前一個(gè)塊,并且被損壞的最后塊的所有檢查位串都用“00h”記錄。一般地,圖5所示的檢查位串信息都被記錄在檢查位串中。格式化版本信息用固定值“01h”作為當(dāng)前主版本值,如圖6所示,并把因定值“00h”作為當(dāng)前次版本值。因此,當(dāng)實(shí)現(xiàn)版本更新時(shí),修改上述的值。格式化日期是指存儲(chǔ)卡在某個(gè)具體的應(yīng)用設(shè)備中被格式化時(shí)的日期,其中的一種格式如圖7所示。在存儲(chǔ)卡被重新格式化或壞表被改變之后,進(jìn)行日期的更新。格式字符串包括任意8個(gè)字符。應(yīng)用設(shè)備信息字符串表示在某個(gè)特定的應(yīng)用設(shè)備中使用卡的識(shí)別性信息,并且把首先格式化該卡的設(shè)備名記錄在16個(gè)字符中???lèi)型的指示符用于表示卡的存儲(chǔ)設(shè)備的類(lèi)型,高2位表示該存儲(chǔ)設(shè)備是只讀的或是可記錄的,而低6位指示存儲(chǔ)設(shè)備的種類(lèi),如圖8所示。因此,只讀卡用“00000000”表達(dá),而使用EEPROM的可記錄卡用“11000011”表達(dá)。對(duì)于卡的尺寸,卡的全部存儲(chǔ)容量用塊作為基本單位來(lái)表示。對(duì)于頁(yè)的尺寸,一頁(yè)的大小以字節(jié)為單位表示,且頁(yè)的尺寸小于塊的尺寸,并且在1K字節(jié)內(nèi)用2n定義。塊的尺寸用字節(jié)為單位表示。群集由塊的個(gè)數(shù)表示并且最大可由256個(gè)塊構(gòu)成。在本發(fā)明中,假定一頁(yè)由256字節(jié)構(gòu)成,塊的尺寸為4K字節(jié)。段的數(shù)目表示當(dāng)前被記錄的段的總數(shù)??捎涗浂蔚淖畲髷?shù)為128。在只讀卡中,段的數(shù)目是因定的。然而,在可記錄卡中,當(dāng)執(zhí)行記錄時(shí),段數(shù)增1,而執(zhí)行擦除時(shí)則減1。段屬性表的起始地址指示第一索引區(qū)的起始地址。數(shù)據(jù)區(qū)的大小以塊為單位表示。數(shù)據(jù)區(qū)中塊的總數(shù)可由下式得到DB=TB-(RB+CMB+CATB+CTB)這里,DB為數(shù)據(jù)區(qū)中塊的總數(shù),TB為卡中塊的總數(shù),RB為壞塊冗余區(qū)中塊的個(gè)數(shù),CMB為卡管理信息區(qū)中塊的個(gè)數(shù),CATB為段屬性表中塊的個(gè)數(shù),而CTB則為群集表中塊的個(gè)數(shù)。
壞群集的個(gè)數(shù)是數(shù)據(jù)區(qū)的群集中壞群集的數(shù)目。數(shù)據(jù)區(qū)的實(shí)示尺寸可從數(shù)據(jù)區(qū)中塊的總數(shù)中減去對(duì)應(yīng)壞群集中塊的個(gè)數(shù)而得到。群集表復(fù)制的數(shù)目是表的數(shù)目,通常,至少指定兩個(gè)表,使得當(dāng)其中的一個(gè)表被損壞時(shí),能用另一個(gè)群集表恢復(fù)被損壞的內(nèi)容。群集表的項(xiàng)目數(shù)表示被登記的群集的總數(shù),并表示數(shù)據(jù)區(qū)的大小。群集表的起始地址指示第二索引區(qū)的起始地址。保存用于替換除了數(shù)據(jù)區(qū)之外的各區(qū)中壞塊的冗余塊的壞塊冗余區(qū)的大小可以塊為單位表示。壞塊冗余區(qū)中的塊數(shù)在初始化時(shí)被確定。卡管理信息卡的最后塊中,如果最后塊被損壞,則被存儲(chǔ)在緊靠壞塊冗余區(qū)的前一個(gè)塊中。因此,卡管理信息區(qū)中的塊數(shù)一般為1個(gè),并且當(dāng)壞塊產(chǎn)生時(shí),塊數(shù)增1,而壞塊冗余區(qū)中的塊數(shù)則減1。無(wú)論何時(shí)產(chǎn)生壞塊,壞塊的個(gè)數(shù)都增加。壞塊管理表記錄在卡中產(chǎn)生的壞塊的位置,并指出壞塊冗余區(qū)中通過(guò)替換記錄壞塊中的數(shù)據(jù)的塊的位置。壞塊管理表的項(xiàng)目數(shù)目同壞塊冗余區(qū)中的塊數(shù)相同。如圖9所示,未用冗余塊“00h”、壞塊冗余塊“FDh”以及壞塊地址“XXh”被記錄在每個(gè)項(xiàng)目中。如圖10所示,壞塊管理表的每次登記都被順序編號(hào)。此外,每個(gè)項(xiàng)目號(hào)表示壞塊冗余區(qū)中塊的優(yōu)先級(jí)。例如,當(dāng)在卡中產(chǎn)生一個(gè)壞塊時(shí),根據(jù)壞塊冗余區(qū)中塊的位置的序號(hào),把壞塊中所記錄的數(shù)據(jù)記錄在某個(gè)空塊上,而壞塊管理表項(xiàng)目中所產(chǎn)生的用來(lái)指示該塊的壞塊的地址被記錄以指示壞塊的內(nèi)容記錄器在冗余區(qū)的塊中。因此,壞塊的個(gè)數(shù)增1。通過(guò)把以前的檢查和加上來(lái)自塊管理信息的起點(diǎn)的內(nèi)容,然后,取該結(jié)果的低16位的2的新碼可以得到新的檢查和。因此,當(dāng)檢查和為0時(shí)是正常的,檢查和的溢出問(wèn)題可以不考慮。
被記錄在第一索引區(qū)12中的段屬性表包括128個(gè)指針24和具有由31個(gè)字節(jié)的段屬性信息組成的具有128個(gè)項(xiàng)目的屬性表26。每個(gè)指針指示屬性表26對(duì)應(yīng)的屬性信息的起始地址。例如,若段號(hào)為“8”,則128個(gè)指針中的第8個(gè)指針的值被讀出,并且從屬性表26中讀出具有把該值作為起始地址的屬性信息,由此讀出段的屬性信息。“00h”用于記錄沒(méi)有對(duì)應(yīng)段的指針。記錄在屬性表的每個(gè)項(xiàng)目中的屬性信息包括段名(8字節(jié))、段的尺寸(4字節(jié))、信息的種類(lèi)(1字節(jié))、音頻方式(1字節(jié))、視頻方式(1字節(jié))、一個(gè)保留區(qū)(2字節(jié))、段記錄10期(6字節(jié))、起始群集號(hào)(4字節(jié))和另一個(gè)保留區(qū)(4字節(jié))。段名包括8個(gè)字符,當(dāng)該段被擦除時(shí),表示該段名的8字節(jié)中的第一字節(jié)值被改為“D7h”,如圖12所示,使該被記錄的區(qū)能重新使用。段的尺寸以字節(jié)為單位。這里,信息類(lèi)型表示當(dāng)前記錄在該段中的信息。如圖13所示,如果對(duì)應(yīng)位的值為“1”,則對(duì)應(yīng)的信息被記錄。位“0”表示數(shù)據(jù),位“1”表示聲音,位“2”表示音頻(音樂(lè)),位“3”表示視頻,而其他的位則沒(méi)有被定義。音頻方式表示聲音或音頻信號(hào)的被壓縮方式,視頻方式表示視頻信號(hào)的被壓縮方式。如圖14所示,段記錄日期表示日期信息(年/月/日)和時(shí)間信息(時(shí)/分/秒)。起始群集號(hào)用于查找數(shù)據(jù)區(qū)中段的記錄位置,并且把群集表的項(xiàng)目號(hào)記錄到起始群集號(hào)上。起始群集號(hào)指示構(gòu)成該段的群集中的第一個(gè)群集。
記錄在第二索引區(qū)14中的群集表是一個(gè)圖,說(shuō)明數(shù)據(jù)區(qū)16的空間是如何使用的,每條項(xiàng)目的大小為16位。即群集表由項(xiàng)目組成,按照所有劃分?jǐn)?shù)據(jù)區(qū)16的群集的次序由群集的順序號(hào)決定。對(duì)應(yīng)群集所用的信息被記錄在每條項(xiàng)目中。“FFFFh”用于記錄未用的群集,“FFF5h”用于記錄壞的群集,“FFFFAh”用于記錄對(duì)應(yīng)段的終止群集,而下一群集的項(xiàng)目號(hào)用于記錄正常使用的群集。
參考圖16,若段“2”被選擇,則讀出第一索引區(qū)12的指針24的第二個(gè)指針的值“000B”,并讀出比第二個(gè)指針的值作為起始地址的屬性表26的第二條項(xiàng)目的屬性信息。包含在屬性信息中的起始群集的順序號(hào)信息“0001h”讀出第二索引區(qū)14的群集表中對(duì)應(yīng)的表目。接著,條目“0001h”中的內(nèi)容即“0004h”指示下一個(gè)將被讀的群集的順序號(hào)。采用這種方法,順序讀出“0006h”、“0007h”、“000Ah”和“FFFAh”?!癋FFAh”最后被讀,其指示對(duì)應(yīng)段的結(jié)束。因此,終止對(duì)該群集表的讀出。接著,根據(jù)被讀群集順序號(hào)的讀出次序,對(duì)應(yīng)0001—0004—0006—0007—000A的數(shù)據(jù)區(qū)16的群集1—4—6—7—A被順序讀出。因此,段“2”的數(shù)據(jù)能被讀出。當(dāng)執(zhí)行記錄過(guò)程時(shí),根據(jù)群集表對(duì)記錄“FFFFh”信息的群集項(xiàng)目順序查找,以便把數(shù)據(jù)記錄在上面。段的第一群集的順序號(hào)被提供作為屬性表的起始群集的信息,而下一個(gè)群集的順序號(hào)信息被記錄在群集表的項(xiàng)目中。當(dāng)在執(zhí)行上述過(guò)程中檢查到壞的群集時(shí),把“FFF5h”記錄在對(duì)應(yīng)壞群集的項(xiàng)目中,并把數(shù)據(jù)連續(xù)地記錄在下一個(gè)空的群集上?!癋FFAh”被記錄在該段的最后一個(gè)群集中,并終止記錄過(guò)程。當(dāng)該段被擦除時(shí),把“FFFF”記錄在構(gòu)成該被擦除段的所有群集的表的項(xiàng)目中,并擦除對(duì)應(yīng)數(shù)據(jù)區(qū)的群集的所有內(nèi)容。
下面介紹根據(jù)本發(fā)明的原理構(gòu)造的存儲(chǔ)卡的記錄、再現(xiàn)和擦除方法。
當(dāng)用某種新的格式記錄信息時(shí),不必考慮第一次用的存儲(chǔ)卡或當(dāng)前被記錄的信息是什么,而只需根據(jù)正在使用的應(yīng)用設(shè)備執(zhí)行格式化。通過(guò)把卡的存儲(chǔ)區(qū)劃分為若干段并把正確的數(shù)據(jù)記錄在每個(gè)段中來(lái)實(shí)現(xiàn)初始化,如圖2或圖3所示。初始化的次序是這樣首先初始化卡管理信息區(qū)18中的卡管理信息,然后再對(duì)第一和第二索引區(qū)初始化。
初始化卡管理信息的步驟如下參考圖17,檢測(cè)存儲(chǔ)器的最后塊,判斷該塊是否被損壞(步170),若沒(méi)損壞,則把圖4中的卡管理信息記錄在該最后塊中(步172)。然后,當(dāng)對(duì)卡管理信息的記錄結(jié)束時(shí),判斷是否存在錯(cuò)誤(步174),若在步174中發(fā)現(xiàn)錯(cuò)誤或在步170中找到損壞的塊,則把記錄位置改變到該最后塊的前一塊上,對(duì)壞塊的數(shù)目增1,減少壞塊冗余區(qū)的尺寸,并對(duì)卡管理信息區(qū)的塊的個(gè)數(shù)增1。接著,過(guò)程返回到步170(步176)。當(dāng)在步174中沒(méi)有發(fā)現(xiàn)出錯(cuò)時(shí),卡管理信息的初始化過(guò)程結(jié)束。
第一索引區(qū)12的段屬性表的初始化步驟如下參考圖18,檢測(cè)存儲(chǔ)卡的第一塊,判斷其是否為壞塊(步180),若不是壞塊,把段屬性信息的初始化值記錄在第一塊中(步182),即,所有的指針值被記錄為“00h”,而所有屬性表的內(nèi)容被記錄為“FFh”。當(dāng)記錄結(jié)束時(shí),判斷是否存在錯(cuò)誤(步184)。若在步184中發(fā)現(xiàn)有錯(cuò)或在步180中找到壞塊,則把記錄位置改變到壞塊冗余區(qū)22的冗余塊上,壞塊的個(gè)數(shù)增1,并把壞塊的位置信息和冗余塊的位置信息登記在卡管理信息區(qū)18的壞塊管理表中。接著,進(jìn)程返回到步180(步186)。若在步184中未發(fā)見(jiàn)錯(cuò)誤,則結(jié)束段屬性表的初始化過(guò)程。
參考圖19,第二索引區(qū)14的群集表的初始化過(guò)程首先判斷被分配到第二索引區(qū)14的塊是否損壞(步190)。若該塊沒(méi)壞,則在數(shù)據(jù)區(qū)16的多個(gè)群集中查找損壞的群集,根據(jù)被找到的損壞群集的順序號(hào)把群集表上的已用信息登記為損壞的,并根據(jù)正常群集的順序號(hào)把該群集表上的已用信息登記為未用信息(步192)。當(dāng)記錄終止時(shí),判斷是否出錯(cuò)(步194)。若在步194中發(fā)現(xiàn)出錯(cuò)或在步190中發(fā)現(xiàn)壞塊,則把記錄位置改變到壞塊冗余區(qū)22中的冗余塊上,壞塊的個(gè)數(shù)增1,并把壞塊的位置信息和冗余塊的位置信息登記在卡管理信息區(qū)的壞塊管理表中(步196)。接著,該進(jìn)程返回步190。若在步194中沒(méi)有發(fā)現(xiàn)錯(cuò)誤,則把登記初始使用信息的群集表復(fù)制預(yù)定的次數(shù)(步198)。因此,形成了多個(gè)表,并結(jié)束該群集表的初始化過(guò)程。
如上所述,存儲(chǔ)卡區(qū)被劃分為第一和第二索引區(qū)、數(shù)據(jù)區(qū)、壞塊冗余區(qū)和卡管理信息區(qū)。初始化每個(gè)區(qū)和記錄數(shù)據(jù)的方法如下所述。
參考圖20,基于當(dāng)前被記錄的段數(shù)判斷能否進(jìn)行其他段的記錄(步202)。若其他段記錄過(guò)程是可能的,則查找第二索引區(qū)14的群集表的未用群集(步204),并且把該段的數(shù)據(jù)順序地記錄在這些未用群集中(步206)。接著,判斷把數(shù)據(jù)記錄在一個(gè)群集的過(guò)程中是否出錯(cuò)(步208)。若出錯(cuò),則在當(dāng)前群集表的項(xiàng)目中把該群集標(biāo)記為損壞的(步210),并把進(jìn)程返回到步204。若在步208中沒(méi)發(fā)現(xiàn)錯(cuò)誤,則根據(jù)新近記錄數(shù)據(jù)的群集的順序號(hào)把已用信息記錄在群集表中,并檢測(cè)該區(qū),判斷它是否是被記錄段的最后一個(gè)群集(步21 2)。若不是最后一個(gè)群集,判斷是否存在一個(gè)可用于順序記錄下一數(shù)據(jù)的未用群集(步214)。若存在一個(gè)未用群集,則把下一個(gè)段的順序號(hào)登記在當(dāng)前群集表的項(xiàng)目中(步216),并且把進(jìn)程返回到步206。若在步212中結(jié)果為最后的群集,則終止記錄過(guò)程并把最后的群集登記在群集表的當(dāng)前項(xiàng)目中(步218)。當(dāng)該記錄過(guò)程被終止時(shí),當(dāng)前被記錄在卡管理信息區(qū)中的段數(shù)增1,并且把最新被記錄的段的屬性信息和起始群集的順序號(hào)信息登記在第一索引區(qū)的段屬性表中(步220)。在該記錄過(guò)程中,若未用群集不足以記錄該段的所有數(shù)據(jù),不能增加新段。
從根據(jù)本發(fā)明的存儲(chǔ)卡中再現(xiàn)數(shù)據(jù)的方法如下所述。參考圖21,在已記錄的段中選擇至少一個(gè)段(步222),并根據(jù)段屬性表讀出所選段的起始群集的順序號(hào)(步224)。采取通過(guò)參照群集表讀出對(duì)應(yīng)于已讀過(guò)的順序號(hào)的已用信息,來(lái)讀出下一個(gè)群集的順序號(hào)的方法(步226至230),該信息被持續(xù)讀出,直到讀出所選段的終止信息。接著,根據(jù)已讀群集的讀出順序號(hào)信息的次序,從數(shù)據(jù)區(qū)的對(duì)應(yīng)群集中讀出數(shù)據(jù)(步232)。
從根據(jù)本發(fā)明的存儲(chǔ)卡中除擦除已記錄段的方法如下所述。選擇將被擦除的段,把表示該被擦除段的信息記錄在被選擇段的屬性信息中,重新安排;在被擦除段之后的段的優(yōu)先級(jí),把構(gòu)成該將被擦除段的群集的群集表的未用信息登記為未用信息,擦除數(shù)據(jù)區(qū)的群集中已記錄的內(nèi)容,并把當(dāng)前記錄在卡管理信息區(qū)中的段的數(shù)目減去被擦除段的數(shù)目。如上所述,存儲(chǔ)卡的記錄格式在本發(fā)明中被標(biāo)準(zhǔn)化。因此,信息可以被讀和記錄,而不管信息類(lèi)型之間和設(shè)備類(lèi)型之間的差異,因?yàn)槭褂么鎯?chǔ)卡作為記錄媒體的應(yīng)用設(shè)備采用了相同的格式化和控制方法,由此增強(qiáng)存儲(chǔ)卡的作用并提高兼容性。在上述的實(shí)施例中,未包括微處理器的情況是明顯的。然而,對(duì)于帶有單板微處理器的智能(IC)卡來(lái)說(shuō),熟悉這一技術(shù)的人能容易地不脫離下面的權(quán)利要求書(shū)中所提出的精神和范圍。
權(quán)利要求
1.一種帶有一種記錄格式的存儲(chǔ)卡,所述記錄格式包括一個(gè)被劃分為多個(gè)群集的數(shù)據(jù)區(qū);一個(gè)存儲(chǔ)段屬性表的第一索引區(qū),所述段屬性表面對(duì)應(yīng)多個(gè)段的屬性信息構(gòu)成,每個(gè)段由要求一次把順序信息記錄到數(shù)據(jù)區(qū)的多個(gè)群集所組成;一個(gè)存儲(chǔ)群集表的第二索引區(qū),群集表由與數(shù)據(jù)區(qū)的群集的次序?qū)?yīng)的每個(gè)群集的已用信息組成;以及一個(gè)存儲(chǔ)卡管理信息的卡管理信息區(qū),所述卡管理信息包括被記錄數(shù)據(jù)的信息,與被記錄數(shù)據(jù)有關(guān)的應(yīng)用設(shè)備的信息,以及被記錄段的個(gè)數(shù)的信息。
2.根據(jù)權(quán)利要求1的存儲(chǔ)卡,其特征在于所述第一索引區(qū)包括一個(gè)用于存儲(chǔ)定義各個(gè)區(qū)的起始位置的多個(gè)指針值的指針區(qū),各個(gè)區(qū)記錄著所述多個(gè)段的屬性信息;一個(gè)屬性信息區(qū),用于存儲(chǔ)以所述的對(duì)應(yīng)指針值作為起始地址的所述每個(gè)區(qū)的所述每個(gè)段的屬性信息,以及用于存儲(chǔ)在構(gòu)成所述的每個(gè)段的多個(gè)群集中的起始群集的順序號(hào)信息。
3.根據(jù)權(quán)利要求1的存儲(chǔ)卡,其特征在于所述區(qū)按第一索引區(qū)、第二索引區(qū)、數(shù)據(jù)區(qū)和卡管理信息區(qū)的順序形成。
4.根據(jù)權(quán)利要求1的存儲(chǔ)卡,其特征在于所述存儲(chǔ)卡進(jìn)一步包括一個(gè)壞塊冗全區(qū),該區(qū)包括用于替換在所述第一索引區(qū)、所述第二索引區(qū)或所述卡管理信息區(qū)中產(chǎn)生的壞塊的多個(gè)塊。
5.根據(jù)權(quán)利要求4的存儲(chǔ)卡,其特征在于所述卡管理信息區(qū)進(jìn)一步包括一個(gè)壞塊管理表,用于記錄所產(chǎn)生壞塊的位置信息以及替換該壞塊的所述壞塊冗余區(qū)中的塊的位置信息。
6.根據(jù)權(quán)利要求4的存儲(chǔ)卡,其特征在于所述壞塊冗余區(qū)位于所述數(shù)據(jù)區(qū)和所述卡管理信息區(qū)之間。
7.根據(jù)權(quán)利要求1的存儲(chǔ)卡,其特征在于被所述群集表所用的信息包括未用信息、損壞信息、段尾信息和下一個(gè)段的順序號(hào)信息。
8.一種把信息記錄到權(quán)利要求1的存儲(chǔ)卡中的方法,所述方法包括如下步驟把所述存儲(chǔ)卡的存儲(chǔ)區(qū)劃分為第一和第二索引區(qū)、數(shù)據(jù)區(qū)、壞塊冗余區(qū)和卡管理信息區(qū),并且初始化每個(gè)區(qū);檢查能否基于記錄在卡管理信息區(qū)中的段數(shù)把其他的信息記錄到段中;根據(jù)第二索引區(qū)的群集表,順序地把段的數(shù)據(jù)記錄到未用的群集中,并且根據(jù)記錄數(shù)據(jù)的群集的順序號(hào)把已用信息登記到所述群集表上,并在被記錄的所述段的最后群集上終止該記錄過(guò)程;以及當(dāng)該記錄過(guò)程結(jié)束時(shí),在卡管理信息區(qū)中對(duì)當(dāng)前已記錄的段的個(gè)數(shù)增1,并且把段的最新被記錄的段屬性信息和起始群集的順序號(hào)信息登記到第一索引區(qū)的段屬性表中。
9.一種根據(jù)權(quán)利要求8的存儲(chǔ)卡記錄方法,其特征在于按所述卡管理信息區(qū)和所述第一和所述第二索引區(qū)的順序執(zhí)行所述初始化步驟。
10.一種根據(jù)權(quán)利要求9的存儲(chǔ)卡記錄方法,其特征在于所述初始化卡管理信息的步驟包括如下的步驟判斷所述存儲(chǔ)卡的最后一塊是否為損壞的;如果存儲(chǔ)卡的最后一塊是非損壞的,把預(yù)定的卡管理信息記錄在所述最后一塊中;當(dāng)所述卡管理信息的記錄過(guò)程終止時(shí),判斷是否出錯(cuò);如果在所述出錯(cuò)判斷步驟中發(fā)現(xiàn)錯(cuò)誤或者在壞塊判斷步驟中判定壞塊存在時(shí),把記錄位置改變到緊靠所述最后塊的前一塊上并對(duì)壞塊的個(gè)數(shù)增1,減少所述壞塊冗余區(qū)的尺寸,并在所述卡管理信息區(qū)中的塊數(shù)增1之后返回到所述壞塊判定步驟;并且如果在所述出錯(cuò)檢測(cè)步驟中沒(méi)發(fā)現(xiàn)錯(cuò)誤,則終止卡管理信息的初始化。
11.一種根據(jù)權(quán)利要求9的存儲(chǔ)卡記錄方法,其特征在于所述第一索引區(qū)的所述段屬性表初始化步驟包括如下的步驟判斷所述存儲(chǔ)卡的第一塊是否被損壞;如果第一塊沒(méi)有被損壞,則把該段的屬性信息的初始化值記錄到所述第一塊上;當(dāng)記錄結(jié)束時(shí),判斷是束出錯(cuò);如果在出錯(cuò)判斷步驟中發(fā)現(xiàn)出錯(cuò)或者在壞塊判斷步驟中發(fā)現(xiàn)壞塊,把記錄位置改變到壞塊冗余區(qū)的一個(gè)冗余塊上,并對(duì)壞塊的個(gè)數(shù)增1,把該壞塊的位置信息以及用來(lái)替換該壞塊的塊的位置信息登記到所述卡管理信息區(qū)的壞塊管理表上,并返回到所述壞塊判斷步驟,并且如果在所述出錯(cuò)判定步驟中沒(méi)有發(fā)現(xiàn)出錯(cuò),則終止段屬性表的初始化。
12.一種根據(jù)權(quán)利要求9的存儲(chǔ)卡記錄方法,其特征在于所述第二索引區(qū)的所述群集表初始化步驟包括如下的步驟判斷所述第二索引區(qū)的一個(gè)塊是否被損壞;如果第二索引區(qū)的該塊沒(méi)有被損壞,則判斷在所述數(shù)據(jù)區(qū)的群集中是否存在壞群集,根據(jù)在所述壞群集判斷步驟中所發(fā)現(xiàn)的壞群集的順序號(hào)把在所述群集表上的已用信息登記為損壞信息,并且根據(jù)正常群集的順序號(hào)把所述群集表上的已用信息登記為未用信息;當(dāng)記錄結(jié)束時(shí)判斷是否出錯(cuò);如果發(fā)現(xiàn)出錯(cuò)或判定存在壞塊,把記錄位置改變到壞塊冗余區(qū)的某個(gè)冗余塊上,并對(duì)壞塊的個(gè)數(shù)增1,把所述被檢測(cè)到的壞塊的位置信息以及被用來(lái)替換該壞塊的塊的位置信息登記在卡管理信息區(qū)的壞塊管理表上,并返回到壞塊判斷步驟;并且如果在所述的出錯(cuò)判斷步驟中沒(méi)發(fā)現(xiàn)出錯(cuò),則復(fù)制登記最初已使用信息的所述群集表使之成為多個(gè)表,并終止群集表的初始化過(guò)程。
13.一種根據(jù)權(quán)利要求8的存儲(chǔ)卡記錄方法,其特征在于所述記錄步驟包括這些步驟當(dāng)在執(zhí)行記錄的過(guò)程中或信息被記錄在群集單元之后發(fā)現(xiàn)一個(gè)壞塊則出現(xiàn)錯(cuò)誤并終止記錄,若發(fā)現(xiàn)錯(cuò)誤,則把當(dāng)前群集處理為損壞的,并且把所述群集表的對(duì)應(yīng)順序號(hào)的已用信息登記為損壞的。
14.一種根據(jù)權(quán)利要求8的方法從被記錄的存儲(chǔ)卡中再現(xiàn)數(shù)據(jù)的再現(xiàn)方法,所述的再現(xiàn)方法包括從已記錄的段中選擇其中的一個(gè);通過(guò)采用這樣的一種方法即根據(jù)所述段屬性表讀出所選擇段的起始群集的順序號(hào)信息,以及根據(jù)群集表讀出對(duì)應(yīng)于所述已讀過(guò)的順序號(hào)的已用信息,持續(xù)讀順序號(hào)信息直到讀出所述被選段的結(jié)束信息;并且根據(jù)讀所述已讀群集的順序號(hào)信息從對(duì)應(yīng)所述數(shù)據(jù)區(qū)的群集中讀數(shù)據(jù)。
15.一種根據(jù)權(quán)利要求8的記錄方法從已記錄的存儲(chǔ)卡中擦除已記錄段的擦除方法,所述擦除方法包括如下的步驟選擇將被擦除的段;把代表被擦除段的信息記錄到被選段的屬性信息中,并重新安排在被擦除的段后面的各段的優(yōu)先級(jí);把構(gòu)成該被擦除段的群集的所述群集表的每個(gè)已用信息登記為未用的,并擦除該數(shù)據(jù)區(qū)的各群集的已記錄內(nèi)容;并且從所述卡管理信息區(qū)的當(dāng)前已記錄段的個(gè)數(shù)中減去被擦除的段數(shù)。
全文摘要
一種具有一種記錄格式的存儲(chǔ)卡,其包括一個(gè)被劃分為多個(gè)群集的數(shù)據(jù)區(qū);存儲(chǔ)由對(duì)應(yīng)多個(gè)段的屬性信息組成的段屬性表的第一索引區(qū),每個(gè)段由所需的把順序信息一次記錄到該數(shù)據(jù)區(qū)的多個(gè)群集組成;用于存儲(chǔ)與數(shù)據(jù)區(qū)的群集的次序相對(duì)應(yīng)的由每個(gè)群集的已用信息所組成的群集表的第二索引區(qū);以及用于存儲(chǔ)包含被記錄數(shù)據(jù)的信息、與被記錄數(shù)據(jù)有關(guān)的應(yīng)用設(shè)備的信息、和已記錄段的個(gè)數(shù)的信息的卡管理信息的卡管理信息區(qū)。
文檔編號(hào)G07F7/10GK1121631SQ9411350
公開(kāi)日1996年5月1日 申請(qǐng)日期1994年12月28日 優(yōu)先權(quán)日1994年10月27日
發(fā)明者趙燦東 申請(qǐng)人:三星電子株式會(huì)社