加速sd卡讀寫速度的方法和電路的制作方法
【專利摘要】本發(fā)明公開了一種加速安全數(shù)碼卡SD讀寫速度的方法,采用一SRAM,用于數(shù)據(jù)緩存,使得數(shù)據(jù)傳輸中的源端和目的端能同時訪問,從而源端和目的端能并行操作;采用一接收計數(shù)器,其工作在雙時鐘域,在寫操作的軟件流程的控制下實現(xiàn)加“1”和復位操作,在硬件流程的控制下實現(xiàn)減“1”操作,用于表示SRAM中有多少空間還可以用于數(shù)據(jù)接收;采用一發(fā)送計數(shù)器,其工作在雙時鐘域,在讀操作的軟件流程的控制下實現(xiàn)加“1”和復位操作,在硬件流程的控制下實現(xiàn)減“1”操作,用于表示SRAM中有多少數(shù)據(jù)可以發(fā)送。本發(fā)明還公開了一種加速安全數(shù)碼卡SD讀寫速度的電路。本發(fā)明使SD卡能保證數(shù)據(jù)的正確性,良好的兼容性,又能有非常好的速度性能。
【專利說明】加速SD卡讀寫速度的方法和電路
【技術領域】
[0001]本發(fā)明涉及SD卡領域,特別是涉及一種加速SD (安全數(shù)碼卡Secure DigitalMemory Card)卡讀寫速度的方法。本發(fā)明還涉及一種加速SD卡讀寫速度的電路。
【背景技術】
[0002]SD卡是一種基于半導體快閃記憶器的新一代記憶設備。SD卡由日本松下、東芝及美國SanDisk公司于1999年8月共同開發(fā)研制。
[0003]SD卡重量輕,體積小,但卻擁有高記憶容量、快速數(shù)據(jù)傳輸率和極大的移動靈活性。目前被越來越廣泛地應用在數(shù)碼相機、數(shù)碼攝像機、個人數(shù)碼助理、多媒體播放器和筆記本等多種便攜式數(shù)碼產品中。
[0004]隨著SD卡的廣泛應用,SD卡的容量也越來越大,目前符合SD2.0協(xié)議的高容量卡最大容量已經到了 32G字節(jié)。因此對SD卡的速度要求也越來越高。
[0005]通常的SD卡都是由一個控制器芯片加上片外的大容量存儲器組成,數(shù)據(jù)的讀寫實質上就是數(shù)據(jù)流從來源端(讀操作時指片外存儲器,寫操作時指SD主機)流向目的端(讀操作時指SD主機,寫操作時指片外存儲器),但是,數(shù)據(jù)流的來源端和目的端在數(shù)據(jù)的格式以及數(shù)據(jù)流的控制方式存在著很大差異,所以需要一個控制器芯片的存在??刂破餍酒褪怯糜诮邮諄碓炊藬?shù)據(jù)并按照目的端的要求調整數(shù)據(jù)格式以及調整數(shù)據(jù)流的控制方式,使得數(shù)據(jù)流可以正確地從來源端傳輸?shù)侥康亩?。而且,在目前的SD卡設計中,控制器芯片對數(shù)據(jù)格式和數(shù)據(jù)流控制方式的調整都是通過控制器芯片中的片上軟件系統(tǒng)實現(xiàn)的。
[0006]由此可見,對SD卡讀寫速度的提高主要體現(xiàn)在如何讓來源端和目的端的數(shù)據(jù)流并行流動,以及如何讓硬件對數(shù)據(jù)流的處理和軟件對數(shù)據(jù)流的處理并行。
【發(fā)明內容】
[0007]本發(fā)明要解決的技術問題是提供一種加速SD卡讀寫速度的方法,使SD卡能保證數(shù)據(jù)的正確性,良好的兼容性,又能有非常好的速度性能;為此,本發(fā)明還要提供一種加速SD卡讀寫速度的電路。
[0008]為解決上述技術問題,本發(fā)明的加速SD卡讀寫速度的方法是采用如下技術方案實現(xiàn)的:
[0009]采用一個雙端口的靜態(tài)隨機存儲器SRAM,用于數(shù)據(jù)緩存;使得數(shù)據(jù)傳輸中的源端和目的端能同時訪問,從而源端和目的端能并行操作;
[0010]采用一個接收計數(shù)器,其工作在雙時鐘域,在寫操作的軟件流程的控制下實現(xiàn)加“I”和復位操作;在硬件流程的控制下實現(xiàn)減“I”操作;用于表示靜態(tài)隨機存儲器SRAM中有多少空間還可以用于數(shù)據(jù)接收;
[0011]采用一個發(fā)送計數(shù)器,其工作在雙時鐘域,在讀操作的軟件流程的控制下實現(xiàn)加“I”和復位操作;在硬件流程的控制下實現(xiàn)減“I”操作;用于表示靜態(tài)隨機存儲器SRAM中有多少數(shù)據(jù)可以發(fā)送。[0012]所述加速安全數(shù)碼卡SD讀寫速度的電路,包括:
[0013]一雙端口的靜態(tài)隨機存儲器SRAM,用于數(shù)據(jù)緩存;使得數(shù)據(jù)傳輸中的源端和目的端能同時訪問,從而源端和目的端能并行操作;
[0014]一接收計數(shù)器,其工作在雙時鐘域,在寫操作的軟件流程的控制下實現(xiàn)加“ I ”和復位操作;在硬件流程的控制下實現(xiàn)減“I”操作;用于表示靜態(tài)隨機存儲器SRAM中有多少空間能用于數(shù)據(jù)接收;
[0015]一發(fā)送計數(shù)器,其工作在雙時鐘域,在讀操作的軟件流程的控制下實現(xiàn)加“ I ”和復位操作;在硬件流程的控制下實現(xiàn)減“I”操作;用于表示靜態(tài)隨機存儲器SRAM中有多少數(shù)據(jù)能發(fā)送。
[0016]所述接收計數(shù)器中每個單位表示安全數(shù)碼卡SD —個數(shù)據(jù)包的長度,該長度為512字節(jié);接收計數(shù)器的最大值等于靜態(tài)隨機存儲器SRAM的容量大小,最小值為零;當接收計數(shù)器的值不為零時,表示靜態(tài)隨機存儲器SRAM的空余空間,至少可以接收一個安全數(shù)碼卡SD數(shù)據(jù)包;當接收計數(shù)器的值為零時,表示靜態(tài)隨機存儲器SRAM的空間不滿一個數(shù)據(jù)包,這時安全數(shù)碼卡SD會停止接收數(shù)據(jù)并通知安全數(shù)碼卡SD主機,要求安全數(shù)碼卡SD主機停止發(fā)送數(shù)據(jù),直到接收計數(shù)器的值變?yōu)榉橇銧顟B(tài)。
[0017]所述發(fā)送計數(shù)器中每個單位表示安全數(shù)碼卡SD —個數(shù)據(jù)包的長度,該長度為512字節(jié);該發(fā)送計數(shù)器的最大值等于靜態(tài)隨機存儲器SRAM的容量大小,最小值為零;當發(fā)送計數(shù)器的值不為零時,表示靜態(tài)隨機存儲器SRAM至少有一個數(shù)據(jù)包,可以發(fā)送到安全數(shù)碼卡SD主機;當發(fā)送計數(shù)器的值為零時,表示靜態(tài)隨機存儲器SRAM中的數(shù)據(jù)不滿一個數(shù)據(jù)包,這時安全數(shù)碼卡SD會停止發(fā)送,直到發(fā)送計數(shù)器的值變?yōu)榉橇銧顟B(tài)。
[0018]所述雙時鐘域分別是安全數(shù)碼卡SD時鐘域和系統(tǒng)時鐘域;在安全數(shù)碼卡SD時鐘域,處理與數(shù)據(jù)傳輸相關的部分;在系統(tǒng)時鐘域,處理片上軟件系統(tǒng)處理的部分;加“1”和復位操作,在系統(tǒng)時鐘域實現(xiàn),減“I”操作,在安全數(shù)碼卡SD時鐘域實現(xiàn)。
[0019]當安全數(shù)碼卡SD的一個數(shù)據(jù)包接收后,由硬件將所述接收計數(shù)器的值減“1”,表示靜態(tài)隨機存儲器SRAM中的一個數(shù)據(jù)包的空間被占用;當軟件系統(tǒng)在靜態(tài)隨機存儲器SRAM釋放出一個數(shù)據(jù)包長度的空間時,將接收計數(shù)器的值加“I”;當安全數(shù)碼卡SD接收到安全數(shù)碼卡SD主機的復位命令和中止命令時,將接收計數(shù)器的值復位到零。
[0020]當安全數(shù)碼卡SD的一個數(shù)據(jù)包發(fā)送完成后,由硬件將發(fā)送計數(shù)器的值減“1”,表示靜態(tài)隨機存儲器SRAM中的一個數(shù)據(jù)包被發(fā)送;當軟件系統(tǒng)在靜態(tài)隨機存儲器SRAM增加了一個數(shù)據(jù)包長度的數(shù)據(jù)時,將發(fā)送計數(shù)器的值加“I”;當安全數(shù)碼卡SD接收到安全數(shù)碼卡主機的復位命令和中止命令時,將發(fā)送計數(shù)器的值復位到零。
[0021]讀操作時軟件流程和硬件流程如下:
[0022]軟件保持發(fā)送計數(shù)器的值為零;
[0023]硬件接收安全數(shù)碼卡SD主機的讀命令,通知軟件系統(tǒng),同時等待發(fā)送計數(shù)器的值變?yōu)榉橇悖?br>
[0024]軟件從外部存儲器中讀入數(shù)據(jù)到靜態(tài)隨機存儲器SRAM,在一個數(shù)據(jù)包讀入后,軟件將發(fā)送計數(shù)器加“I”;
[0025]硬件在發(fā)送計數(shù)器的值非零時,開始發(fā)送數(shù)據(jù);同時軟件從外部存儲器繼續(xù)讀入數(shù)據(jù);滿一個數(shù)據(jù)包時,軟件將發(fā)送計數(shù)器加“ I ” ;在靜態(tài)隨機存儲器SRAM滿的情況下,軟件會暫停讀取數(shù)據(jù);
[0026]硬件在一個數(shù)據(jù)包發(fā)送完成后,將發(fā)送計數(shù)器減“ I” ;減“ I”后,如果發(fā)送計數(shù)器的值為零,硬件停止發(fā)送并等待發(fā)送計數(shù)器的值變?yōu)榉橇悖绻l(fā)送計數(shù)器的值非零,硬件繼續(xù)發(fā)送下一個數(shù)據(jù)包;
[0027]在接收到安全數(shù)碼卡SD主機的中止命令或者復位命令前,軟件的工作是讀入數(shù)據(jù),在數(shù)據(jù)滿一個數(shù)據(jù)包長度時將發(fā)送計數(shù)器加“ I ”,硬件的工作是發(fā)送數(shù)據(jù),完成后將發(fā)送計數(shù)器減“I” ;當接收到安全數(shù)碼卡SD主機的中止命令和復位命令后,軟件將發(fā)送計數(shù)器復位,讀操作完成。
[0028]寫操作時軟件流程和硬件流程如下:
[0029]軟件在SD卡進入數(shù)據(jù)傳輸狀態(tài)時,將接收計數(shù)器的值寫為“I” ;
[0030]硬件接收安全數(shù)碼卡SD主機的寫命令,通知軟件系統(tǒng),同時接收第一個數(shù)據(jù)包;[0031 ] 硬件在一個數(shù)據(jù)包接收完成,將接收計數(shù)器減“ I ”;減“ I ”后,如果接收計數(shù)器的值為零,硬件停止接收并在數(shù)據(jù)端返回低電平,表示安全數(shù)碼卡SD處于忙狀態(tài),忙狀態(tài)一直延續(xù)到接收計數(shù)器的值變?yōu)榉橇?;如果接收計?shù)器的值非零,硬件繼續(xù)接收下一個數(shù)據(jù)包;軟件在將數(shù)據(jù)寫入到外部存儲器,同時根據(jù)靜態(tài)隨機存儲器SRAM空間的具體情況,將接收計數(shù)器加“ I ”,并且有可能多次進行加“ I ”操作;
[0032]在接收到安全數(shù)碼卡SD主機的中止命令或者復位命令前,軟件的工作是將數(shù)據(jù)寫入到外部存儲器,同時根據(jù)靜態(tài)隨機存儲器SRAM空閑空間的大小將接收計數(shù)器加“1”,硬件的工作是接收數(shù)據(jù),完成后將接收計數(shù)器減“I” ;當接收到安全數(shù)碼卡SD主機的中止命令和復位命令后,軟件將接收計數(shù)器復位,寫操作完成。
[0033]本發(fā)明能使SD卡在讀寫時,數(shù)據(jù)流的來源端和目的端的數(shù)據(jù)流可以并行流動,同時也可以讓硬件操作數(shù)據(jù)流的過程和軟件操作數(shù)據(jù)流的過程并行,從而加速SD卡讀寫速度。
【專利附圖】
【附圖說明】
[0034]下面結合附圖與【具體實施方式】對本發(fā)明作進一步詳細的說明:
[0035]圖1是SD卡的框架示意圖;
[0036]圖2是數(shù)據(jù)緩存被分為幾塊,兩個數(shù)據(jù)流同步并行操作的示意圖;
[0037]圖3是讀操作硬件控制邏輯示意圖;
[0038]圖4是讀操作軟件控制邏輯示意圖;
[0039]圖5是寫操作硬件控制邏輯示意圖;
[0040]圖6是寫操作軟件控制邏輯示意圖。
【具體實施方式】
[0041]SD卡的框架示意圖如I所示,SD主機和大容量存儲器通過控制器芯片交換數(shù)據(jù),完成讀寫操作??刂破餍酒ㄒ粋€數(shù)據(jù)緩存和軟件系統(tǒng),數(shù)據(jù)緩存用于暫時存放數(shù)據(jù)流來源端的數(shù)據(jù),而軟件系統(tǒng)按照數(shù)據(jù)流目的端的需要,調整數(shù)據(jù)格式和數(shù)據(jù)流的控制方式,將數(shù)據(jù)寫入目的端。
[0042]由此可見,SD卡的讀寫操作都是一個順序過程,來源端將數(shù)據(jù)寫入緩存,然后數(shù)據(jù)再從緩存寫入目的端。這也就意味著在SD卡的讀寫操作中,總有一端處于空閑狀態(tài),等待緩存的釋放。這對提高SD卡的讀寫速度有極大的影響。
[0043]為此,可以使用雙端口的同步SRAM (靜態(tài)隨機存儲器)作為數(shù)據(jù)緩存。雙端口的SRAM有兩組獨立的總線接口,可以同時接收兩個請求端的讀寫請求,這就使得數(shù)據(jù)流的來源端和目的端可以同時訪問數(shù)據(jù)緩存,來源端到數(shù)據(jù)緩存的數(shù)據(jù)流和數(shù)據(jù)緩存到目的端的數(shù)據(jù)流可以同步操作,大大的加快了 SD卡的讀寫速度。
[0044]參見圖2所示,數(shù)據(jù)緩存在邏輯上被分為幾塊,在數(shù)據(jù)傳輸?shù)拈_始階段,來源端將數(shù)據(jù)寫入數(shù)據(jù)緩存的第一塊區(qū)域,目的端處于等待狀態(tài)。當?shù)谝粔K區(qū)域的數(shù)據(jù)準備好后,來源端將數(shù)據(jù)寫入到第二塊區(qū)域;同時,第一塊區(qū)域的數(shù)據(jù)被寫入到目的端,接下來的數(shù)據(jù)傳輸過程依次進行,這樣兩個數(shù)據(jù)流可以實現(xiàn)同步并行操作。
[0045]SD卡的數(shù)據(jù)讀寫操作實質上是SD主機和SD卡上大容量存儲器之間的數(shù)據(jù)傳輸。但事實上,SD主機的數(shù)據(jù)格式和數(shù)據(jù)傳輸?shù)目刂品绞胶痛笕萘看鎯ζ鞯臄?shù)據(jù)格式和數(shù)據(jù)傳輸?shù)目刂品绞接兄艽蟮牟町?,這就要求SD卡的控制器芯片上的軟件系統(tǒng)在數(shù)據(jù)傳輸過程中要對數(shù)據(jù)進行整理,同時調整數(shù)據(jù)傳輸?shù)目刂品绞?,比如大容量存儲器的物理地址計算,輔助作用的標志位的產生以及符合大容量存儲器讀寫時序波形的產生等等,軟件系統(tǒng)的工作量比較大,硬件需要等待軟件系統(tǒng)工作的結束,這對讀寫速度的性能影響也比較大。
[0046]基于上面的原因,可以采用一發(fā)送計數(shù)器和一接收計數(shù)器,使得硬件操作數(shù)據(jù)流的過程和軟件操作數(shù)據(jù)流的過程能夠并行。
[0047]接收計數(shù)器用于表示數(shù)據(jù)緩存中有多少空間可用于接收數(shù)據(jù),發(fā)送計數(shù)器用于表示數(shù)據(jù)緩存中有多少數(shù)據(jù)可以發(fā)送。接收計數(shù)器和發(fā)送計數(shù)器中每個單位表示SD —個數(shù)據(jù)包的長度,這個長度通常是512字節(jié)。軟件可以在任意時刻對兩個計數(shù)器進行加“I”操作,表示空間或者數(shù)據(jù)增加,同時硬件在接收或者發(fā)送一包數(shù)據(jù)后對計數(shù)器進行減“I”操作,表示空間或者數(shù)據(jù)減少。軟件和硬件通過對接收計數(shù)器和發(fā)送計數(shù)器的值的控制來實現(xiàn)對數(shù)據(jù)傳輸?shù)目刂?;從而硬件不用等待軟件工作的結束,只要接收計數(shù)器和發(fā)送計數(shù)器的值不為零,硬件就可以啟動數(shù)據(jù)流;同時軟件也不用觀測硬件工作的狀態(tài),也不用等待硬件工作的結束,集中在做調整數(shù)據(jù)格式和調整數(shù)據(jù)傳輸?shù)目刂品绞降墓ぷ鳎恍枰跅l件達到時,將接收計數(shù)器和發(fā)送計數(shù)器進行加“I”操作即可。這樣硬件和軟件就實現(xiàn)了同步并行操作。
[0048]接收計數(shù)器和發(fā)送計數(shù)器都是工作在雙時鐘域,分別是SD時鐘域和系統(tǒng)時鐘域。在SD時鐘域,處理與數(shù)據(jù)傳輸相關的部分,在系統(tǒng)時鐘域,處理片上軟件系統(tǒng)處理的部分。為了簡化設計的同步問題,所述的兩個計數(shù)器同時支持軟件加“I”和復位操作,該操作實現(xiàn)在系統(tǒng)時鐘域。所述的兩個計數(shù)器支持硬件減“I”操作,這個操作實現(xiàn)在SD時鐘域;這樣的話,需要同步的信號只有軟件加“I”操作信號和復位操作信號。這樣同步過程比較簡單而且不易出錯。
[0049]為了在符合SD協(xié)議的基礎上最有效率的加快SD卡的讀寫速度,可以使用發(fā)送計數(shù)器和接收計數(shù)器進行SD卡讀寫的軟件流程和硬件流程。
[0050]如圖3、4所示,讀操作的軟件和硬件流程比較簡單,在讀命令接收后,軟件從大容量存儲器中讀出數(shù)據(jù),當一個數(shù)據(jù)包讀出后,軟件調整數(shù)據(jù)格式并將發(fā)送計數(shù)器加“1”,接下來軟件繼續(xù)讀下一包數(shù)據(jù)(見圖4)。而同時硬件流程中,在發(fā)送計數(shù)器不為零時,也開始發(fā)送數(shù)據(jù)到SD主機(見圖3)。這樣軟件和硬件以及兩個數(shù)據(jù)流都在同步并行工作著,一直到接收到中止/復位命令。
[0051]結合圖5、6所示,但是SD卡的寫操作有稍微的不同和復雜一點。由于SD協(xié)議規(guī)定,在寫命令之后,第一個數(shù)據(jù)包也會馬上發(fā)送到SD卡,所以軟件要將接收計數(shù)器預設為“1”,并把第一個數(shù)據(jù)包接收下來(見圖6)。寫命令只能在SD卡處于數(shù)據(jù)傳輸狀態(tài)時才被認為是有效命令,所以軟件有足夠的時間在SD卡進入數(shù)據(jù)傳輸狀態(tài)時預設接收計數(shù)器為“1”,關于這一點的內容超出了本發(fā)明,所以不在此詳細介紹。在第一個數(shù)據(jù)包接收后,接下來的過程和讀操作就比較一致了,硬件在接收計數(shù)器的值不為零時接收數(shù)據(jù)(見圖5),同時軟件將接收的數(shù)據(jù)寫入到大容量存儲器,并且當數(shù)據(jù)緩存有足夠空間時將接收計數(shù)器加“I”(見圖6),軟件和硬件以及兩個數(shù)據(jù)流也在同步并行工作著。
[0052]以上通過【具體實施方式】對本發(fā)明進行了詳細的說明,但在具體實施的時候,設計人員可以在本發(fā)明的原理下做適當?shù)恼{整和變化,比如計數(shù)器的大小,計數(shù)器的同步設計,流程的調整等等。這些調整和變化也應視為本發(fā)明的保護范圍。
【權利要求】
1.一種加速安全數(shù)碼卡SD讀寫速度的方法,其特征在于: 采用一個雙端口的靜態(tài)隨機存儲器SRAM,用于數(shù)據(jù)緩存;使得數(shù)據(jù)傳輸中的源端和目的端能同時訪問,從而源端和目的端能并行操作; 采用一個接收計數(shù)器,其工作在雙時鐘域,在寫操作的軟件流程的控制下實現(xiàn)加“ I ”和復位操作;在硬件流程的控制下實現(xiàn)減“I”操作;用于表示靜態(tài)隨機存儲器SRAM中有多少空間能用于數(shù)據(jù)接收; 采用一個發(fā)送計數(shù)器,其工作在雙時鐘域,在讀操作的軟件流程的控制下實現(xiàn)加“ I ”和復位操作;在硬件流程的控制下實現(xiàn)減“I”操作;用于表示靜態(tài)隨機存儲器SRAM中有多少數(shù)據(jù)能發(fā)送。
2.如權利要求1所述的方法,其特征在于:所述接收計數(shù)器中每個單位表示安全數(shù)碼卡SD —個數(shù)據(jù)包的長度,該長度為512字節(jié);接收計數(shù)器的最大值等于靜態(tài)隨機存儲器SRAM的容量,最小值為零;當接收計數(shù)器的值不為零時,表示靜態(tài)隨機存儲器SRAM的空余空間,至少能接收一個安全數(shù)碼卡SD數(shù)據(jù)包;當接收計數(shù)器的值為零時,表示靜態(tài)隨機存儲器SRAM的空間不滿一個數(shù)據(jù)包,這時安全數(shù)碼卡SD會停止接收數(shù)據(jù)并通知安全數(shù)碼卡SD主機,要求安全數(shù)碼卡SD主機停止發(fā)送數(shù)據(jù),直到接收計數(shù)器的值變?yōu)榉橇銧顟B(tài)。
3.如權利要求1所述的方法,其特征在于:所述發(fā)送計數(shù)器中每個單位表示安全數(shù)碼卡SD —個數(shù)據(jù)包的長度,該長度為512字節(jié);該發(fā)送計數(shù)器的最大值等于靜態(tài)隨機存儲器SRAM的容量,最小值為零;當發(fā)送計數(shù)器的值不為零時,表示靜態(tài)隨機存儲器SRAM至少有一個數(shù)據(jù)包,能發(fā)送到安全數(shù)碼卡SD主機;當發(fā)送計數(shù)器的值為零時,表示靜態(tài)隨機存儲器SRAM中的數(shù)據(jù)不滿一個數(shù)據(jù)包,這時安全數(shù)碼卡SD會停止發(fā)送,直到發(fā)送計數(shù)器的值變?yōu)榉橇銧顟B(tài)。
4.如權利要求1所述的方法,其特征在于:所述雙時鐘域分別是安全數(shù)碼卡SD時鐘域和系統(tǒng)時鐘域;在安全數(shù)碼卡SD時`鐘域,處理與數(shù)據(jù)傳輸相關的部分;在系統(tǒng)時鐘域,處理片上軟件系統(tǒng)處理的部分;加“1”和復位操作,在系統(tǒng)時鐘域實現(xiàn);減“1”操作,在安全數(shù)碼卡SD時鐘域實現(xiàn)。
5.如權利要求1或2所述的方法,其特征在于:當安全數(shù)碼卡SD的一個數(shù)據(jù)包接收后,由硬件將所述接收計數(shù)器的值減“1”,表示靜態(tài)隨機存儲器SRAM中的一個數(shù)據(jù)包的空間被占用;當軟件系統(tǒng)在靜態(tài)隨機存儲器SRAM釋放出一個數(shù)據(jù)包長度的空間時,將接收計數(shù)器的值加“I”;當安全數(shù)碼卡SD接收到安全數(shù)碼卡SD主機的復位命令和中止命令時,將接收計數(shù)器的值復位到零。
6.如權利要求1或3所述的方法,其特征在于:當安全數(shù)碼卡SD的一個數(shù)據(jù)包發(fā)送完成后,由硬件將發(fā)送計數(shù)器的值減“1”,表示靜態(tài)隨機存儲器SRAM中的一個數(shù)據(jù)包被發(fā)送;當軟件系統(tǒng)在靜態(tài)隨機存儲器SRAM增加了一個數(shù)據(jù)包長度的數(shù)據(jù)時,將發(fā)送計數(shù)器的值加“I”;當安全數(shù)碼卡SD接收到安全數(shù)碼卡主機的復位命令和中止命令時,將發(fā)送計數(shù)器的值復位到零。
7.如權利要求1所述的方法,其特征在于:讀操作時軟件流程和硬件流程如下: 軟件保持發(fā)送計數(shù)器的值為零; 硬件接收安全數(shù)碼卡SD主機的讀命令,通知軟件系統(tǒng),同時等待發(fā)送計數(shù)器的值變?yōu)榉橇悖卉浖耐獠看鎯ζ髦凶x入數(shù)據(jù)到靜態(tài)隨機存儲器SRAM,在一個數(shù)據(jù)包讀入后,軟件將發(fā)送計數(shù)器加“I”; 硬件在發(fā)送計數(shù)器的值非零時,開始發(fā)送數(shù)據(jù);同時軟件從外部存儲器繼續(xù)讀入數(shù)據(jù);滿一個數(shù)據(jù)包時,軟件將發(fā)送計數(shù)器加“ I ”;在靜態(tài)隨機存儲器SRAM滿的情況下,軟件會暫停讀取數(shù)據(jù); 硬件在一個數(shù)據(jù)包發(fā)送完成后,將發(fā)送計數(shù)器減“ I” ;減“ I”后,如果發(fā)送計數(shù)器的值為零,硬件停止發(fā)送并等待發(fā)送計數(shù)器的值變?yōu)榉橇?,如果發(fā)送計數(shù)器的值非零,硬件繼續(xù)發(fā)送下一個數(shù)據(jù)包; 在接收到安全數(shù)碼卡SD主機的中止命令或者復位命令前,軟件的工作是讀入數(shù)據(jù),在數(shù)據(jù)滿一個數(shù)據(jù)包長度時將發(fā)送計數(shù)器加“ I ”,硬件的工作是發(fā)送數(shù)據(jù),完成后將發(fā)送計數(shù)器減“I”;當接收到安全數(shù)碼卡SD主機的中止命令和復位命令后,軟件將發(fā)送計數(shù)器復位,讀操作完成。
8.如權利要求1所述的方法,其特征在于:寫操作時軟件流程和硬件流程如下: 軟件在SD卡進入數(shù)據(jù)傳輸狀態(tài)時,將接收計數(shù)器的值寫為“I” ; 硬件接收安全數(shù)碼卡SD主機的寫命令,通知軟件系統(tǒng),同時接收第一個數(shù)據(jù)包; 硬件在一個數(shù)據(jù)包接收完成,將接收計數(shù)器減“ I” ;減“ I”后,如果接收計數(shù)器的值為零,硬件停止接收并在數(shù)據(jù)端返回低電平,表示安全數(shù)碼卡SD處于忙狀態(tài),忙狀態(tài)一直延續(xù)到接收計數(shù)器的值變?yōu)榉橇悖蝗绻邮沼嫈?shù)器的值非零,硬件繼續(xù)接收下一個數(shù)據(jù)包; 軟件在將數(shù)據(jù)寫入到外部存儲器,同時根據(jù)靜態(tài)隨機存儲器SRAM空間的具體情況,將接收計數(shù)器加“ I ”,并且可根據(jù)需要多次進行加“ I ”操作; 在接收到安全數(shù)碼卡SD主機的中`止命令或者復位命令前,軟件的工作是將數(shù)據(jù)寫入到外部存儲器,同時根據(jù)靜態(tài)隨機存儲器SRAM空閑空間的大小將接收計數(shù)器加“1”,硬件的工作是接收數(shù)據(jù),完成后將接收計數(shù)器減“I”;當接收到安全數(shù)碼卡SD主機的中止命令和復位命令后,軟件將接收計數(shù)器復位,寫操作完成。
9.一種加速安全數(shù)碼卡SD讀寫速度的電路,其特征在于,包括: 一雙端口的靜態(tài)隨機存儲器SRAM,用于數(shù)據(jù)緩存;使得數(shù)據(jù)傳輸中的源端和目的端能同時訪問,從而源端和目的端能并行操作; 一接收計數(shù)器,其工作在雙時鐘域,在寫操作的軟件流程的控制下實現(xiàn)加“ I ”和復位操作;在硬件流程的控制下實現(xiàn)減“I”操作;用于表示靜態(tài)隨機存儲器SRAM中有多少空間能用于數(shù)據(jù)接收; 一發(fā)送計數(shù)器,其工作在雙時鐘域,在讀操作的軟件流程的控制下實現(xiàn)加“ I ”和復位操作;在硬件流程的控制下實現(xiàn)減“I”操作;用于表示靜態(tài)隨機存儲器SRAM中有多少數(shù)據(jù)能發(fā)送。
10.如權利要求9所述的電路,其特征在于:所述接收計數(shù)器中每個單位表示安全數(shù)碼卡SD —個數(shù)據(jù)包的長度,該長度為512字節(jié);接收計數(shù)器的最大值等于靜態(tài)隨機存儲器SRAM的容量,最小值為零;當接收計數(shù)器的值不為零時,表示靜態(tài)隨機存儲器SRAM的空余空間,至少能接收一個安全數(shù)碼卡SD數(shù)據(jù)包;當接收計數(shù)器的值為零時,表示靜態(tài)隨機存儲器SRAM的空間不滿一個數(shù)據(jù)包,這時安全數(shù)碼卡SD會停止接收數(shù)據(jù)并通知安全數(shù)碼卡SD主機,要求安全數(shù)碼卡SD主機停止發(fā)送數(shù)據(jù),直到接收計數(shù)器的值變?yōu)榉橇銧顟B(tài)。
11.如權利要求9所述的電路,其特征在于:所述發(fā)送計數(shù)器中每個單位表示安全數(shù)碼卡SD —個數(shù)據(jù)包的長度,該長度為512字節(jié);該發(fā)送計數(shù)器的最大值等于靜態(tài)隨機存儲器SRAM的容量,最小值為零;當發(fā)送計數(shù)器的值不為零時,表示靜態(tài)隨機存儲器SRAM至少有一個數(shù)據(jù)包,能發(fā)送到安全數(shù)碼卡SD主機;當發(fā)送計數(shù)器的值為零時,表示靜態(tài)隨機存儲器SRAM中的數(shù)據(jù)不滿一個數(shù)據(jù)包,這時安全數(shù)碼卡SD會停止發(fā)送,直到發(fā)送計數(shù)器的值變?yōu)榉橇銧顟B(tài)。
12.如權利要求9所述的電路,其特征在于:所述雙時鐘域分別是安全數(shù)碼卡SD時鐘域和系統(tǒng)時鐘域;在安全數(shù)碼卡SD時鐘域,處理與數(shù)據(jù)傳輸相關的部分;在系統(tǒng)時鐘域,處理片上軟件系統(tǒng)處理的部分;加“1”和復位操作,在系統(tǒng)時鐘域實現(xiàn);減“1”操作,在安全數(shù)碼卡SD時鐘域實現(xiàn)。
13.如權利要求9或10所述的電路,其特征在于:當安全數(shù)碼卡SD的一個數(shù)據(jù)包接收后,由硬件將所述接收計數(shù)器的值減“ 1”,表示靜態(tài)隨機存儲器SRAM中的一個數(shù)據(jù)包的空間被占用;當軟件系統(tǒng)在靜態(tài)隨機存儲器SRAM釋放出一個數(shù)據(jù)包長度的空間時,將接收計數(shù)器的值加“1”;當安全數(shù)碼卡SD接收到安全數(shù)碼卡SD主機的復位命令和中止命令時,將接收計數(shù)器的值復位到零。
14.如權利要求9或11所述的電路,其特征在于:當安全數(shù)碼卡SD的一個數(shù)據(jù)包發(fā)送完成后,由硬件將發(fā)送計數(shù)器的值減“1”,表示靜態(tài)隨機存儲器SRAM中的一個數(shù)據(jù)包被發(fā)送;當軟件系統(tǒng)在靜態(tài)隨機存儲器SRAM增加了一個數(shù)據(jù)包長度的數(shù)據(jù)時,將發(fā)送計數(shù)器的值加“1” ;當安全數(shù)碼卡SD接收到安全數(shù)碼卡主機的復位命令和中止命令時,將發(fā)送計數(shù)器的值復位到零。
15.如權利要求9所述的電路,其特征在于:讀操作時軟件流程和硬件流程如下: 軟件保持發(fā)送計數(shù)器的值為零; 硬件接收安全數(shù)碼卡SD主機的讀命令,通知軟件系統(tǒng),同時等待發(fā)送計數(shù)器的值變?yōu)榉橇悖? 軟件從外部存儲器中讀入數(shù)據(jù)到靜態(tài)隨機存儲器SRAM,在一個數(shù)據(jù)包讀入后,軟件將發(fā)送計數(shù)器加“1”; 硬件在發(fā)送計數(shù)器的值非零時,開始發(fā)送數(shù)據(jù);同時軟件從外部存儲器繼續(xù)讀入數(shù)據(jù);滿一個數(shù)據(jù)包時,軟件將發(fā)送計數(shù)器加“ 1 ”;在靜態(tài)隨機存儲器SRAM滿的情況下,軟件會暫停讀取數(shù)據(jù); 硬件在一個數(shù)據(jù)包發(fā)送完成后,將發(fā)送計數(shù)器減“ 1” ;減“ 1”后,如果發(fā)送計數(shù)器的值為零,硬件停止發(fā)送并等待發(fā)送計數(shù)器的值變?yōu)榉橇悖绻l(fā)送計數(shù)器的值非零,硬件繼續(xù)發(fā)送下一個數(shù)據(jù)包; 在接收到安全數(shù)碼卡SD主機的中止命令或者復位命令前,軟件的工作是讀入數(shù)據(jù),在數(shù)據(jù)滿一個數(shù)據(jù)包長度時將發(fā)送計數(shù)器加“ 1 ”,硬件的工作是發(fā)送數(shù)據(jù),完成后將發(fā)送計數(shù)器減“1”;當接收到安全數(shù)碼卡SD主機的中止命令和復位命令后,軟件將發(fā)送計數(shù)器復位,讀操作完成。
16.如權利要求9所述的電路,其特征在于:寫操作時軟件流程和硬件流程如下: 軟件在SD卡進入數(shù)據(jù)傳輸狀態(tài)時,將接收計數(shù)器的值寫為“1” ; 硬件接收安全數(shù)碼卡SD主機的寫命令,通知軟件系統(tǒng),同時接收第一個數(shù)據(jù)包;硬件在一個數(shù)據(jù)包接收完成,將接收計數(shù)器減“ I” ;減“ I”后,如果接收計數(shù)器的值為零,硬件停止接收并在數(shù)據(jù)端返回低電平,表示安全數(shù)碼卡SD處于忙狀態(tài),忙狀態(tài)一直延續(xù)到接收計數(shù)器的值變?yōu)榉橇?;如果接收計?shù)器的值非零,硬件繼續(xù)接收下一個數(shù)據(jù)包;軟件在將數(shù)據(jù)寫入到外部存儲器,同時根據(jù)靜態(tài)隨機存儲器SRAM空間的具體情況,將接收計數(shù)器加“ I ”,并且可根據(jù)需要多次進行加“ I ”操作; 在接收到安全數(shù)碼卡SD主機的中止命令或者復位命令前,軟件的工作是將數(shù)據(jù)寫入到外部存儲器,同時根據(jù)靜態(tài)隨機存儲器SRAM空閑空間的大小將接收計數(shù)器加“1”,硬件的工作是接收數(shù)據(jù),完成后將接收計數(shù)器減“I”;當接收到安全數(shù)碼卡SD主機的中止命令和復位命令后,軟件將接收計數(shù)器復位`,寫操作完成。
【文檔編號】G06F3/06GK103631531SQ201210306834
【公開日】2014年3月12日 申請日期:2012年8月24日 優(yōu)先權日:2012年8月24日
【發(fā)明者】葉國平, 湯曉嵐 申請人:上海華虹集成電路有限責任公司