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

一種提高存儲卡數(shù)據(jù)寫入速度的方法

文檔序號:6559108閱讀:178來源:國知局
專利名稱:一種提高存儲卡數(shù)據(jù)寫入速度的方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種存儲卡寫入數(shù)據(jù)的方法,尤其涉及一種提高存儲卡數(shù)據(jù)寫入速度的方法。
背景技術(shù)
現(xiàn)有主機(jī)和存儲卡的讀寫通信協(xié)議如下讀數(shù)據(jù)時,主機(jī)發(fā)送讀命令,等待存儲卡響應(yīng),該響應(yīng)有一個起始位,主機(jī)一旦檢測到該起始位,數(shù)據(jù)總線就可以接收數(shù)據(jù)。因此,主機(jī)發(fā)完讀命令不用等待接收完全部響應(yīng),就可以讀數(shù)據(jù);而在寫入數(shù)據(jù)時,卻是主機(jī)發(fā)完寫命令并且接收完正確響應(yīng)以后,才能寫入數(shù)據(jù)。由于命令和響應(yīng)是通過命令總線進(jìn)行通信的,而數(shù)據(jù)是通過數(shù)據(jù)總線進(jìn)行通信的,這兩條總線可以同時通信。在寫入數(shù)據(jù)操作中命令和響應(yīng)的通信時間內(nèi),數(shù)據(jù)總線總是處于閑置狀態(tài),只有當(dāng)命令總線接收完正確響應(yīng)后,數(shù)據(jù)總線才能傳輸數(shù)據(jù)。因此,這種通信協(xié)議會延誤數(shù)據(jù)的通信時間,從而降低寫入數(shù)據(jù)操作的通信速率。

發(fā)明內(nèi)容
因此本發(fā)明所要解決的技術(shù)問題是提供一種提高存儲卡數(shù)據(jù)寫入速度的方法,該方法能夠降低存儲卡數(shù)據(jù)總線的閑置狀態(tài),縮短存儲卡數(shù)據(jù)寫入的時間,保證寫入數(shù)據(jù)的有效性。
本發(fā)明具體是這樣實(shí)現(xiàn)的一種提高存儲卡數(shù)據(jù)寫入速度的方法,首先在存儲卡的緩存區(qū)建立一個臨時數(shù)據(jù)存儲區(qū),該方法執(zhí)行如下步驟主機(jī)發(fā)送完寫命令后,如果檢測到存儲卡的響應(yīng),則主機(jī)通過數(shù)據(jù)總線發(fā)送數(shù)據(jù)到存儲卡緩存區(qū)的臨時數(shù)據(jù)存儲區(qū),同時,主機(jī)通過命令總線繼續(xù)接收響應(yīng);如果主機(jī)接收到正確響應(yīng),則將臨時數(shù)據(jù)存儲區(qū)的數(shù)據(jù)依次寫入存儲卡的閃存中。
按上述方案,所述檢測到存儲卡的響應(yīng)為檢測到該響應(yīng)的起始位為低電平信號。
按上述方案,如果存儲卡給出錯誤響應(yīng),則存儲卡忽略隨后到來的所有數(shù)據(jù)傳輸并保持在接收狀態(tài);同時,主機(jī)停止發(fā)送數(shù)據(jù)。
按上述方案,所述存儲卡給出錯誤響應(yīng)包括寫保護(hù)異常、越界、地址偏差、內(nèi)部錯誤。
按上述方案,如果存儲卡緩存區(qū)的臨時數(shù)據(jù)存儲區(qū)空間已滿,那么將數(shù)據(jù)線DAT0置為低電平。
按上述方案,如果數(shù)據(jù)線DAT0為低電平,存儲卡不再接收數(shù)據(jù),主機(jī)也不再發(fā)送數(shù)據(jù),直到數(shù)據(jù)線DAT0重新為高電平。
按上述方案,當(dāng)主機(jī)發(fā)送數(shù)據(jù)結(jié)束后或者主機(jī)給出停止發(fā)送命令時,結(jié)束主機(jī)與存儲卡之間的這次數(shù)據(jù)通信。
按上述方案,還包括循環(huán)冗余碼校驗(yàn)步驟,該步驟在存儲卡緩存區(qū)的臨時數(shù)據(jù)存儲區(qū)進(jìn)行,供存儲卡檢驗(yàn)傳輸錯誤。
按上述方案,存儲卡將循環(huán)冗余碼校驗(yàn)的結(jié)果通過數(shù)據(jù)線DAT0傳送給主機(jī),如果發(fā)生傳輸錯誤,存儲卡傳送給主機(jī)‘101’;如果沒有發(fā)生傳輸錯誤,存儲卡傳送給主機(jī)‘010’。
按上述方案,如果臨時數(shù)據(jù)存儲區(qū)的數(shù)據(jù)的循環(huán)冗余碼校驗(yàn)不正確,則不能將其寫入存儲卡的閃存中,主機(jī)需要重新發(fā)送數(shù)據(jù)。
由于采用了上述處理步驟,本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn)1.主機(jī)發(fā)送完寫命令后,在接收響應(yīng)的同時,主機(jī)通過數(shù)據(jù)總線發(fā)送數(shù)據(jù),可以節(jié)省48個時鐘周期的時間;2.如果存儲卡檢測到錯誤(例如寫保護(hù)異常、越界、地址偏差、內(nèi)部錯誤等),將忽略隨后到來的所有數(shù)據(jù)傳輸并保持在接收狀態(tài);如果存儲卡沒有檢測到任何錯誤并且數(shù)據(jù)的CRC(CYCLIC REDUNDANCY CODE,循環(huán)冗余碼)校驗(yàn)正確后,才會將數(shù)據(jù)寫入存儲卡的Flash(閃存)中,從而保證了寫入數(shù)據(jù)的有效性;3.如果存儲卡檢測到錯誤或者數(shù)據(jù)在存儲卡緩存區(qū)的臨時數(shù)據(jù)存儲區(qū)發(fā)生校驗(yàn)錯誤的情況,或者兩種情況同時出現(xiàn),那么,主機(jī)每次重發(fā)命令或者重發(fā)數(shù)據(jù)時,都可以做到節(jié)省48個時鐘周期,從而提高了數(shù)據(jù)寫入速度。


圖1是普通多媒體卡的結(jié)構(gòu)框圖;圖2是本發(fā)明的一次單塊數(shù)據(jù)寫入時序圖;
圖3是普通多媒體卡的一次單塊數(shù)據(jù)寫入時序圖;圖4是本發(fā)明的塊寫入數(shù)據(jù)流程圖。
具體實(shí)施例方式
本發(fā)明所述的存儲卡有多種結(jié)構(gòu),下面以多媒體卡(MMC)為一個具體的實(shí)施例(但不限于MMC卡的具體命令、命令格式、響應(yīng)、響應(yīng)格式、狀態(tài)指示和寄存器標(biāo)志或MMC卡本身,也可以是MMC其它未用到的或已用到的采取復(fù)用方式的命令、命令格式、響應(yīng)、響應(yīng)格式、狀態(tài)指示和寄存器標(biāo)志或SD卡來實(shí)現(xiàn))對本發(fā)明的具體實(shí)施過程作進(jìn)一步的說明首先描述多媒體卡(MMC)的具體結(jié)構(gòu)和數(shù)據(jù)傳輸命令(1)多媒體卡(MMC)的基本結(jié)構(gòu)多媒體卡(MMC)的結(jié)構(gòu)如圖1所示,其中通信信號包括CLK在時鐘信號的每個周期內(nèi),在命令總線和數(shù)據(jù)總線上只傳輸一個比特?cái)?shù)據(jù);CMD這是一個用于存儲卡初始化和傳輸指令的雙向指令通道,指令從存儲卡的主機(jī)發(fā)送到存儲卡,響應(yīng)從存儲卡發(fā)送到主機(jī);DAT0-DAT7雙向數(shù)據(jù)通道。
(2)總線協(xié)議主機(jī)和多媒體卡之間通信是基于消息的協(xié)議,每條消息由下面信號之一表示命令命令是一個操作開始的信號,從主機(jī)發(fā)送到存儲卡上,在CMD總線上串行傳輸;響應(yīng)響應(yīng)是從存儲卡發(fā)送到主機(jī)的信號,作為對前面接收到的命令的回應(yīng)。響應(yīng)在CMD總線上串行傳輸;數(shù)據(jù)數(shù)據(jù)可以在主機(jī)和存儲卡之間雙向傳輸。數(shù)據(jù)通過數(shù)據(jù)總線傳輸,用于數(shù)據(jù)傳輸?shù)臄?shù)據(jù)總線寬度可以是1位、4位或者8位。
其中,命令的傳輸格式如下表所示

一個命令總是由一個起始比特(恒為‘0’)開始,后面是表明傳輸方向(恒為‘1’)的比特,接下來的6比特是命令的索引,其值可解釋為二進(jìn)制編碼數(shù)字(從0到63)。有些命令需要參數(shù)(例如地址),使用32比特編碼。所有的命令都由CRC進(jìn)行校驗(yàn),都以結(jié)束比特(恒為‘1’)結(jié)束。
多媒體卡的響應(yīng)有五種類型,其中卡接收到主機(jī)端寫入命令后的響應(yīng)格式如下表所示

所有響應(yīng)都通過CMD總線進(jìn)行傳送,響應(yīng)總是由一個起始比特(恒為‘0’)開始,后面是表明傳輸方向(恒為‘0’)的比特,接下來的6比特是命令的索引,接下來32比特用來表示卡的狀態(tài)信息。所有的響應(yīng)都由CRC進(jìn)行校驗(yàn),都以結(jié)束比特(恒為‘1’)結(jié)束。
在主機(jī)發(fā)送數(shù)據(jù)的處理上,高位數(shù)據(jù)首先傳送,低位數(shù)據(jù)最后傳送。數(shù)據(jù)傳輸?shù)钠鹗嘉缓銥椤?’,結(jié)束位恒為‘1’,數(shù)據(jù)傳輸有兩種類型塊傳輸和流傳輸,在塊傳輸中,每塊數(shù)據(jù)后面由CRC進(jìn)行校驗(yàn),CRC狀態(tài)響應(yīng)和存儲卡“忙”的指示將會通過數(shù)據(jù)線DAT0發(fā)送給主機(jī);而流傳輸中沒有CRC校驗(yàn)。
本發(fā)明的設(shè)計(jì)構(gòu)思提供一種主機(jī)和存儲卡的寫操作通信方法。當(dāng)寫命令發(fā)送完畢后,在命令總線接收響應(yīng)的同時,數(shù)據(jù)就可以通過數(shù)據(jù)總線進(jìn)行通信。本發(fā)明在存儲卡的緩存區(qū)建立一個臨時數(shù)據(jù)存儲區(qū),關(guān)于數(shù)據(jù)的CRC(Cyclic Redundancy Code,循環(huán)冗余碼)校驗(yàn)也在這里完成。如果存儲卡給出錯誤響應(yīng)(例如寫保護(hù)異常、越界、地址偏差、內(nèi)部錯誤等),必須忽略隨后到來的所有數(shù)據(jù)傳輸并保持在接收狀態(tài),同時主機(jī)不再發(fā)送數(shù)據(jù);如果存儲卡沒有檢測到任何錯誤,但是數(shù)據(jù)的CRC校驗(yàn)錯誤,則臨時數(shù)據(jù)存儲區(qū)的數(shù)據(jù)不會寫入存儲卡的Flash(閃存)中;如果存儲卡沒有檢測到任何錯誤并且數(shù)據(jù)的CRC校驗(yàn)正確后,則將臨時數(shù)據(jù)存儲區(qū)的數(shù)據(jù)寫入存儲卡的Flash中;如果存儲卡的臨時數(shù)據(jù)存儲區(qū)已滿,則存儲卡將數(shù)據(jù)線DAT0設(shè)置為低電平,一旦有空閑的存儲區(qū),存儲卡就會將DAT0重新設(shè)置為高電平;如果主機(jī)檢測到DAT0的低電平信號,則不再發(fā)送數(shù)據(jù),直到檢測到DAT0重新為高電平。
根據(jù)上述設(shè)計(jì)構(gòu)思,本發(fā)明按下列過程實(shí)現(xiàn)如圖2所示為本發(fā)明的一次單塊數(shù)據(jù)寫入時序圖,該時序圖使用下表中的縮寫形式


圖中所示序列由單塊寫入命令開始,它決定了數(shù)據(jù)寫入存儲卡的起始地址。當(dāng)存儲卡在CMD命令總線上給出響應(yīng)后,主機(jī)開始傳輸傳送數(shù)據(jù)。數(shù)據(jù)后緊接著是CRC校驗(yàn)比特,供存儲卡檢驗(yàn)傳輸錯誤。存儲卡將CRC的校驗(yàn)結(jié)果通過數(shù)據(jù)線DAT0傳送給主機(jī)(可參見圖2中DAT0數(shù)據(jù)線上標(biāo)注的‘CRC狀態(tài)’)。如果發(fā)生傳輸錯誤,存儲卡將返回CRC狀態(tài)‘101’,如果沒有發(fā)生傳輸錯誤,存儲卡將返回CRC狀態(tài)‘010’并開始往Flash(閃存)中寫入數(shù)據(jù),即存儲卡進(jìn)入編程狀態(tài)。如果存儲卡沒有空閑的數(shù)據(jù)接收緩存區(qū),存儲卡會將數(shù)據(jù)線DAT0設(shè)為低電平來表明這種情況。
如圖3所示為普通多媒體卡的一次單塊數(shù)據(jù)寫入時序圖,對比圖2和圖3可以看出兩者的區(qū)別圖2中數(shù)據(jù)寫入的時間比圖3中數(shù)據(jù)寫入的時間至少提前一個“卡響應(yīng)”的時間,因此降低了數(shù)據(jù)總線的閑置狀態(tài),縮短了存儲卡數(shù)據(jù)的寫入時間。
本發(fā)明包括流寫入和塊寫入兩種寫入方式,下面分別進(jìn)行描述(一)塊寫入方式(1)主機(jī)發(fā)送完寫命令后,如果檢測到命令總線(CMD)有響應(yīng)(檢測到響應(yīng)的起始位為低電平信號),則命令總線開始接收響應(yīng),同時主機(jī)開始通過數(shù)據(jù)總線發(fā)送數(shù)據(jù)到存儲卡緩存區(qū)的臨時數(shù)據(jù)存儲區(qū),在該臨時數(shù)據(jù)存儲區(qū),存儲卡對數(shù)據(jù)進(jìn)行CRC校驗(yàn);(2)如果存儲卡沒有給出錯誤響應(yīng),例如寫保護(hù)異常、越界、地址偏差、內(nèi)部錯誤等情況,并且數(shù)據(jù)的CRC校驗(yàn)正確,則將接收到的數(shù)據(jù)依次從緩存區(qū)的臨時數(shù)據(jù)存儲區(qū)寫入存儲卡;(3)如果存儲卡給出錯誤響應(yīng),例如寫保護(hù)異常、越界、地址偏差、內(nèi)部錯誤等情況,則存儲卡必須忽略隨后到來的所有數(shù)據(jù)傳輸并保持在接收狀態(tài);同時,主機(jī)停止發(fā)送數(shù)據(jù);(4)如果存儲卡緩存區(qū)的臨時數(shù)據(jù)存儲區(qū)空間已滿,那么將數(shù)據(jù)線DAT0置為低電平,存儲卡忽略隨后到來的數(shù)據(jù),主機(jī)也不再發(fā)送數(shù)據(jù)。
(二)流寫入方式流寫入方式和上述塊寫入方式基本相同,唯一不同之處在于流寫入模式下,不需要對數(shù)據(jù)進(jìn)行CRC校驗(yàn)。
本發(fā)明的塊寫入數(shù)據(jù)流程圖如圖4所示,以下對其進(jìn)行詳細(xì)描述主機(jī)發(fā)送寫命令,然后等待存儲卡的響應(yīng);一旦檢測到響應(yīng)的起始位為低電平信號(‘0’),則命令總線繼續(xù)接收響應(yīng),如果此時數(shù)據(jù)線DAT0不為低電平,主機(jī)就通過數(shù)據(jù)總線發(fā)送數(shù)據(jù);如果存儲卡給出正確響應(yīng),則開始判斷其緩存區(qū)的臨時數(shù)據(jù)存儲區(qū)接收的數(shù)據(jù)的CRC校驗(yàn)是否正確;如果CRC校驗(yàn)正確,則將該臨時數(shù)據(jù)存儲區(qū)的數(shù)據(jù)寫入存儲卡的Flash;如果CRC校驗(yàn)不正確,則需要主機(jī)重新發(fā)送數(shù)據(jù);當(dāng)數(shù)據(jù)發(fā)送結(jié)束后或者主機(jī)給出停止發(fā)送命令時,結(jié)束這次通信;如果存儲卡給出錯誤響應(yīng),如寫保護(hù)異常、越界、地址偏差、以及內(nèi)部錯誤等情況,則存儲卡必須忽略隨后到來的所有數(shù)據(jù)傳輸并保持在接收狀態(tài);同時,主機(jī)停止發(fā)送數(shù)據(jù);如果存儲卡寫入緩存區(qū)的臨時數(shù)據(jù)存儲區(qū)空間已滿,那么將數(shù)據(jù)線DAT0置為低電平,存儲卡不再接收數(shù)據(jù),主機(jī)也不再發(fā)送數(shù)據(jù)。
權(quán)利要求
1.一種提高存儲卡數(shù)據(jù)寫入速度的方法,首先在存儲卡的緩存區(qū)建立一個臨時數(shù)據(jù)存儲區(qū),該方法執(zhí)行如下步驟主機(jī)發(fā)送完寫命令后,如果檢測到存儲卡的響應(yīng),則主機(jī)通過數(shù)據(jù)總線發(fā)送數(shù)據(jù)到存儲卡緩存區(qū)的臨時數(shù)據(jù)存儲區(qū),同時,主機(jī)通過命令總線繼續(xù)接收響應(yīng);如果主機(jī)接收到正確響應(yīng),則將臨時數(shù)據(jù)存儲區(qū)的數(shù)據(jù)依次寫入存儲卡的閃存中。
2.如權(quán)利要求1所述的提高存儲卡數(shù)據(jù)寫入速度的方法,其特征在于,所述檢測到存儲卡的響應(yīng)為檢測到該響應(yīng)的起始位為低電平信號。
3.如權(quán)利要求1或2所述的提高存儲卡數(shù)據(jù)寫入速度的方法,其特征在于,如果存儲卡給出錯誤響應(yīng),則存儲卡忽略隨后到來的所有數(shù)據(jù)傳輸并保持在接收狀態(tài);同時,主機(jī)停止發(fā)送數(shù)據(jù)。
4.如權(quán)利要求3所述的提高存儲卡數(shù)據(jù)寫入速度的方法,其特征在于,所述存儲卡給出錯誤響應(yīng)包括寫保護(hù)異常、越界、地址偏差、內(nèi)部錯誤。
5.如權(quán)利要求1或2或4所述的提高存儲卡數(shù)據(jù)寫入速度的方法,其特征在于,如果存儲卡緩存區(qū)的臨時數(shù)據(jù)存儲區(qū)空間已滿,那么將數(shù)據(jù)線DATO置為低電平。
6.如權(quán)利要求5所述的提高存儲卡數(shù)據(jù)寫入速度的方法,其特征在于,如果數(shù)據(jù)線DATO為低電平,存儲卡不再接收數(shù)據(jù),主機(jī)也不再發(fā)送數(shù)據(jù),直到數(shù)據(jù)線DATO重新為高電平。
7.如權(quán)利要求1所述的提高存儲卡數(shù)據(jù)寫入速度的方法,其特征在于,當(dāng)主機(jī)發(fā)送數(shù)據(jù)結(jié)束后或者主機(jī)給出停止發(fā)送命令時,結(jié)束主機(jī)與存儲卡之間的這次數(shù)據(jù)通信。
8.如權(quán)利要求1或2或4或6或7所述的提高存儲卡數(shù)據(jù)寫入速度的方法,其特征在于,還包括循環(huán)冗余碼校驗(yàn)步驟,該步驟在存儲卡緩存區(qū)的臨時數(shù)據(jù)存儲區(qū)進(jìn)行,供存儲卡檢驗(yàn)傳輸錯誤。
9.如權(quán)利要求8所述的提高存儲卡數(shù)據(jù)寫入速度的方法,其特征在于,存儲卡將循環(huán)冗余碼校驗(yàn)的結(jié)果通過數(shù)據(jù)線DATO傳送給主機(jī),如果發(fā)生傳輸錯誤,存儲卡傳送給主機(jī)‘101’;如果沒有發(fā)生傳輸錯誤,存儲卡傳送給主機(jī)‘010’。
10.如權(quán)利要求9所述的提高存儲卡數(shù)據(jù)寫入速度的方法,其特征在于,如果臨時數(shù)據(jù)存儲區(qū)的數(shù)據(jù)的循環(huán)冗余碼校驗(yàn)不正確,則不能將其寫入存儲卡的閃存中,主機(jī)需要重新發(fā)送數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種提高存儲卡數(shù)據(jù)寫入速度的方法,首先在存儲卡的緩存區(qū)建立一個臨時數(shù)據(jù)存儲區(qū),該方法執(zhí)行如下步驟主機(jī)發(fā)送完寫命令后,如果檢測到存儲卡的響應(yīng),則主機(jī)通過數(shù)據(jù)總線發(fā)送數(shù)據(jù)到存儲卡緩存區(qū)的臨時數(shù)據(jù)存儲區(qū),同時,主機(jī)通過命令總線繼續(xù)接收響應(yīng);如果主機(jī)接收到正確響應(yīng),則將臨時數(shù)據(jù)存儲區(qū)的數(shù)據(jù)依次寫入存儲卡的閃存中。本發(fā)明降低了存儲卡數(shù)據(jù)總線的閑置狀態(tài),縮短了存儲卡數(shù)據(jù)寫入的時間,保證了寫入數(shù)據(jù)的有效性。
文檔編號G06K1/12GK101089831SQ200610087539
公開日2007年12月19日 申請日期2006年6月14日 優(yōu)先權(quán)日2006年6月14日
發(fā)明者楊光敏 申請人:普天信息技術(shù)研究院
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1