国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      安全數(shù)字存儲卡數(shù)據(jù)的存儲器直接存取方法及其接口電路的制作方法

      文檔序號:6554853閱讀:210來源:國知局
      專利名稱:安全數(shù)字存儲卡數(shù)據(jù)的存儲器直接存取方法及其接口電路的制作方法
      技術領域
      本發(fā)明涉及對SD(安全數(shù)字存儲卡)數(shù)據(jù)的讀寫方法及其接口電路。
      背景技術
      目前,很多設備,尤其是移動設備都需要支持SD卡的讀寫,也就是需要具有SD卡的讀寫接口,這里稱之為SD-Reader。但是,目前設備與SD卡之間的讀寫還沒有采用DMA(存儲器直接存取)方式的,當需要實現(xiàn)對SD卡數(shù)據(jù)快速、批量的讀寫時,目前的SD-Reader還不能滿足該需要。因此,需要設計一個新的SD-Reader來實現(xiàn)設備上的DMA控制器與SD卡之間的數(shù)據(jù)傳輸。

      發(fā)明內容
      本發(fā)明要解決的技術問題是提供一種SD卡數(shù)據(jù)的存儲器直接存取方法及其接口電路。
      為了解決上述技術問題,本發(fā)明提供了一種安全數(shù)字存儲卡數(shù)據(jù)的存儲器直接存取方法,應用于安全數(shù)字存儲卡,即SD卡及通過SD卡讀寫接口與其相連的設備組成的系統(tǒng),該設備中還包括一存儲器直接存取控制器DMAC,該SD卡讀寫接口包括SD控制器和位于該SD控制器和DMAC之間的接口電路SDMA,該方法包括設備從SD卡讀數(shù)據(jù)的過程,該過程包括以下步驟(a)DMAC將和SDMA間的讀請求信號為有效,同時輸出要讀的數(shù)據(jù)的地址;(b)SDMA檢測到讀請求信號有效后,記錄下要讀的數(shù)據(jù)的地址,然后向SD控制器發(fā)送存儲器直接存取啟動信號,同時將要讀的數(shù)據(jù)的地址送到總線信號上;(c)SD控制器收到啟動信號之后,向SD卡發(fā)出數(shù)據(jù)塊讀讀命令,并將收到的SD卡發(fā)來的數(shù)據(jù)存入本地的緩存;(d)隨后,SD控制器、SDMA以及DMAC并行執(zhí)行以下操作SD控制器檢測到緩存中已寫有一個數(shù)據(jù)塊的數(shù)據(jù)后,將和SDMA間的讀使能信號置為有效,等待SDMA將數(shù)據(jù)讀出;SDMA檢測到讀使能信號有效時,如數(shù)據(jù)已讀完,向SD控制器返回存儲器直接存取停止信號,如未讀完,再將和DMA間的讀使能信號置為有效,通知DMAC讀出當前數(shù)據(jù)塊的數(shù)據(jù);DMAC檢測到讀使能信號有效時,置讀請求信號為無效,然后置讀信號有效并保持,從數(shù)據(jù)總線上讀取一個數(shù)據(jù)塊的數(shù)據(jù),讀取完成后置讀信號無效。
      進一步地,上述存儲器直接存取方法還可具有以下特點所述步驟(a)中,DMAC還向SDMA輸出要讀的數(shù)據(jù)塊的個數(shù);所述步驟(b)中,SDMA同時記錄下該數(shù)據(jù)塊個數(shù),并將該個數(shù)送到總線上;所述步驟(c)中,SD控制器根據(jù)數(shù)據(jù)塊個數(shù)是否為1向SD卡發(fā)出單數(shù)據(jù)塊讀或多數(shù)據(jù)塊讀命令;所述步驟(d)中,SDMA是根據(jù)數(shù)據(jù)塊個數(shù)是否為1來判斷數(shù)據(jù)是否已讀完,如果是,向SD控制器發(fā)送存儲器直接存取停止信號,結束讀操作;否則將數(shù)據(jù)塊個數(shù)減1,將讀地址加一個數(shù)據(jù)塊的字節(jié)數(shù),繼續(xù)檢測讀使能信號是否有效。
      進一步地,上述存儲器直接存取方法還可具有以下特點所述步驟(b)中,SDMA先檢測SD控制器的狀態(tài),如檢測到SD控制器空閑,再向SD控制器發(fā)送存儲器直接存取啟動信號。
      進一步地,上述存儲器直接存取方法還可具有以下特點所述步驟(d)中,SD控制器在將讀使能信號置為有效的同時,還向SDMA輸出指示當前數(shù)據(jù)塊讀操作是否出錯的讀結束狀態(tài)信號;SDMA檢測到讀使能信號有效時,還根據(jù)返回的讀結束狀態(tài)判斷當前數(shù)據(jù)塊讀是否出錯,如果沒有出錯,則將和DMA間的讀使能信號置為有效,如果出錯,則向DMAC輸出一出錯狀態(tài)信號;DMAC在檢測到讀使能信號有效的同時還檢測是否有該出錯狀態(tài)信號,如有,則進行出錯處理,如無,再執(zhí)行讀操作。
      進一步地,上述存儲器直接存取方法還可具有以下特點該方法包括設備向SD卡寫數(shù)據(jù)的過程,該過程包括以下步驟(A)DMAC置輸出到SDMA的寫請求信號為有效,同時輸出要寫的數(shù)據(jù)的地址;(B)SDMA檢測到該寫請求有效后,記錄下要寫的數(shù)據(jù)的地址,然后向SD控制器發(fā)送存儲器直接存取啟動信號,同時將要寫的數(shù)據(jù)的地址送到總線信號上;(C)SD控制器收到啟動信號后,向SD卡發(fā)出數(shù)據(jù)塊寫命令,在收到SD卡返回的指示可寫入的響應之后,將和SDMA間的寫使能信號置為有效,等待數(shù)據(jù)寫入;(D)SDMA檢測到和SD控制器間的寫使能信號有效后,將和DMAC間的寫使能信號置為有效;(E)隨后,SD控制器、SDMA以及DMAC并行執(zhí)行以下操作DMAC檢測到寫使能信號有效后,先準備好當前數(shù)據(jù)塊的數(shù)據(jù),置寫信號有效并保持,將一個數(shù)據(jù)塊的數(shù)據(jù)送到數(shù)據(jù)總線上以寫入SD控制器的緩存,之后再將置信號為無效;SDMA檢測到DMAC已向SD控制器的緩存中寫入一個數(shù)據(jù)塊的數(shù)據(jù)后,將和SD控制器間的寫信號置為有效;在檢測到和SD控制器間的寫使能信號有效時,如數(shù)據(jù)已寫完,向SD控制器返回存儲器直接存取停止信號,結束寫數(shù)據(jù),如未寫完,再將和DMAC間的寫使能信號置為有效;SD控制器檢測到和SDMA間的寫信號有效后,根據(jù)SD協(xié)議將數(shù)據(jù)寫入SD卡,然后將和SDMA間的寫使能信號置為有效。
      進一步地,上述存儲器直接存取方法還可具有以下特點所述步驟(B)中,SDMA先檢測SD控制器的狀態(tài),如檢測到SD控制器空閑,再向SD控制器發(fā)送存儲器直接存取啟動信號。
      進一步地,上述存儲器直接存取方法還可具有以下特點所述步驟(A)中,DMAC還向SDMA輸出要讀的數(shù)據(jù)塊的個數(shù);所述步驟(B)中,SDMA同時記錄下該數(shù)據(jù)塊個數(shù),并將該個數(shù)送到總線上;所述步驟(C)中,SD控制器根據(jù)數(shù)據(jù)塊個數(shù)是否為1向SD卡發(fā)出單數(shù)據(jù)塊寫或多數(shù)據(jù)塊寫命令;所述步驟(E)中,SDMA是根據(jù)數(shù)據(jù)塊個數(shù)是否為1來判斷數(shù)據(jù)是否已寫完的,如果已寫完,向SD控制器發(fā)送存儲器直接存取停止信號,結束讀操作;否則將數(shù)據(jù)塊個數(shù)減1,將讀地址加一個數(shù)據(jù)塊的字節(jié)數(shù),繼續(xù)檢測讀使能信號是否有效。
      進一步地,上述存儲器直接存取方法還可具有以下特點所述步驟(E)中,SD控制器在將寫使能信號置為有效的同時,還向SDMA輸出指示當前數(shù)據(jù)塊寫操作是否出錯的寫結束狀態(tài)信號;SDMA檢測到寫使能信號有效時,還根據(jù)返回的寫結束狀態(tài)判斷當前數(shù)據(jù)塊寫是否出錯,如果沒有出錯,則將和DMA間的寫使能信號置為有效,如果出錯,則向DMAC輸出一出錯狀態(tài)信號;DMAC在檢測到寫使能信號有效的同時還檢測是否有該出錯狀態(tài)信號,如有,則進行出錯處理,如無,再執(zhí)行寫操作。
      本發(fā)明的SD卡讀寫接口電路包括用于實現(xiàn)與安全數(shù)字存儲卡,即SD卡的通信協(xié)議的SD控制器、連接在SD控制器和存儲器直接存取控制器DMAC之間的接口電路SDMA,該SDMA用于實現(xiàn)DMAC和SD控制器之間的通信和數(shù)據(jù)傳輸,進一步包括SD控制器狀態(tài)檢測模塊、SD控制器讀寫時序產生模塊、DMA狀態(tài)檢測模塊、DMA讀寫時序產生模塊和協(xié)議分析執(zhí)行模塊,其中所述SD控制器狀態(tài)檢測模塊,用于檢測SD控制器發(fā)過來的讀、寫使能信號和數(shù)據(jù)塊讀、寫狀態(tài)信號,把信號同步之后發(fā)給協(xié)議分析執(zhí)行模塊;所述SD控制器讀寫時序產生模塊,用于接收協(xié)議分析執(zhí)行模塊的指令,判斷是讀還是寫操作,產生時序信號實現(xiàn)和SD控制器之間的數(shù)據(jù)傳輸;所述DMA狀態(tài)檢測模塊,用于檢測DMA發(fā)過來的請求信號、狀態(tài)信號、讀使能信號和寫使能信號,把信號同步之后發(fā)給協(xié)議分析執(zhí)行模塊;所述DMA讀寫時序產生模塊,接收協(xié)議分析執(zhí)行模塊的指令,判斷是讀還是寫操作,產生時序信號實現(xiàn)和DMAC之間的數(shù)據(jù)傳輸;所述協(xié)議分析執(zhí)行模塊,用于根據(jù)SD控制器狀態(tài)檢測模塊、DMA狀態(tài)檢測模塊發(fā)過來的信號,決定需要進行的操作,控制SD控制器讀寫時序產生模塊和DMA讀寫時序產生模塊產生相應的時序信號。
      由上可知,本發(fā)明通過SD卡讀寫接口電路中設置SD控制器和DMA控制器之間的接口電路,實現(xiàn)了對SD卡數(shù)據(jù)的存儲器直接存取,并可進一步滿足對SD卡數(shù)據(jù)快速、批量讀寫、出錯檢查的需要。


      圖1是本發(fā)明實施SD卡讀寫的系統(tǒng)框圖。
      圖2是圖1中SD控制器和DMA控制器之間的SDMA接口電路的單元組成圖。
      具體實施例方式
      圖1本發(fā)明實施例SD卡讀寫的系統(tǒng)框圖,示出了本發(fā)明SD-Reader的組成以及與其它模塊的連接關系。SD-Reader包括兩部分第一部分為SD控制器(SD控制器,也簡寫為SDC),用于實現(xiàn)與SD卡的通信協(xié)議,可通過SD總線對SD卡進行控制和數(shù)據(jù)讀寫,可參考現(xiàn)有標準。第二部分為SD控制器和DMA控制器(以下簡稱為DMAC)之間的接口電路,以下稱為SDMA,用于實現(xiàn)DMAC和SD控制器之間的通信和數(shù)據(jù)傳輸,是本發(fā)明重點要討論的內容。
      如圖2所示,SDMA包括SD控制器狀態(tài)檢測模塊、SD控制器讀寫時序產生模塊、DMA狀態(tài)檢測模塊、DMA讀寫時序產生模塊和協(xié)議分析執(zhí)行模塊。該電路可以用現(xiàn)場可編程門陣列(FPGA)或者專用集成電路(ASIC)實現(xiàn)。FPGA或者ASIC實現(xiàn)最簡單的是編寫Verilog代碼,本實施例的電路是用Verilog代碼來實現(xiàn)的。其中SD控制器狀態(tài)檢測模塊,用于檢測SD控制器發(fā)過來的讀、寫使能信號和數(shù)據(jù)塊讀、寫狀態(tài)信號,把信號同步之后發(fā)給協(xié)議分析執(zhí)行模塊。
      SD控制器讀寫時序產生模塊,接收協(xié)議分析執(zhí)行模塊的指令,判斷是讀還是寫操作,產生時序信號實現(xiàn)和SD控制器之間的數(shù)據(jù)傳輸。
      DMA狀態(tài)檢測模塊,檢測DMA發(fā)過來的請求信號、狀態(tài)信號、讀使能信號和寫使能信號,把信號同步之后發(fā)給協(xié)議分析執(zhí)行模塊。
      DMA讀寫時序產生模塊,接收協(xié)議分析執(zhí)行模塊的指令,判斷是讀還是寫操作,產生時序信號實現(xiàn)和DMAC之間的數(shù)據(jù)傳輸。
      協(xié)議分析執(zhí)行模塊,用于根據(jù)SD控制器狀態(tài)檢測模塊、DMA狀態(tài)檢測模塊發(fā)過來的信號,決定需要進行的操作,控制SD控制器讀寫時序產生模塊和DMA讀寫時序產生模塊產生相應的時序信號,從而實現(xiàn)本發(fā)明的傳輸協(xié)議。
      本實施例涉及的數(shù)據(jù)通信協(xié)議包括SDMA和DMAC之間的通信協(xié)議以及SDMA和SD控制器之間的通信協(xié)議,定義了數(shù)據(jù)讀寫的過程和時序。其中設備以DMA方式從SD卡讀數(shù)據(jù)的過程包括以下步驟步驟一,DMAC將和SDMA間的讀請求信號置為有效,同時,輸出要讀的數(shù)據(jù)的地址和要讀的數(shù)據(jù)塊的個數(shù),數(shù)據(jù)塊的長度是SD卡傳輸協(xié)議中定義的,本實施例的一個block包括512個Byte;步驟二,SDMA檢測到讀請求信號有效后,首先記錄下要讀的數(shù)據(jù)的地址以及數(shù)據(jù)塊個數(shù),然后檢測SD控制器的狀態(tài),如檢測到SD控制器空閑,執(zhí)行下一步;步驟三,SDMA向SD控制器發(fā)一個時鐘周期寬度的DMA啟動信號,同時將要讀的數(shù)據(jù)的地址和數(shù)據(jù)塊個數(shù)送到總線信號上;
      步驟四,SD控制器收到啟動信號之后,根據(jù)數(shù)據(jù)塊個數(shù)是否為1向SD卡發(fā)出單數(shù)據(jù)塊讀或多數(shù)據(jù)塊讀命令,并將收到的SD卡發(fā)來的數(shù)據(jù)存入本地的緩存;步驟五,隨后,SD控制器、SDMA以及DMAC并行執(zhí)行以下操作SD控制器檢測到緩存中已寫有一個數(shù)據(jù)塊的數(shù)據(jù)后,將SD控制器和SDMA之間的讀使能信號置為有效,等待SDMA將數(shù)據(jù)讀出,并向SDMA輸出指示當前數(shù)據(jù)塊讀操作是否出錯的讀結束狀態(tài)信號;SDMA檢測到讀使能信號有效時,根據(jù)返回的讀結束狀態(tài)判斷當前數(shù)據(jù)塊讀是否出錯,如果沒有出錯,則置SDMA和DMA之間的讀使能信號為有效,通知DMAC讀出當前block,如果出錯,向DMAC輸出一出錯狀態(tài)信號(可同時置該讀使能信號為有效);然后判斷數(shù)據(jù)塊個數(shù)是否為1,如果是,則讀操作結束,向SD控制器發(fā)送一個時鐘周期的DMA傳輸停止信號;否則將數(shù)據(jù)塊個數(shù)減1,將讀地址加512,繼續(xù)檢測;DMAC檢測到讀使能信號有效且沒有出錯時,首先置讀請求信號為無效,然后置讀信號有效并保持512個時鐘周期,從數(shù)據(jù)總線上讀取一個數(shù)據(jù)塊的數(shù)據(jù),直到讀取完所有數(shù)據(jù)塊的數(shù)據(jù),如果發(fā)現(xiàn)出錯,則做出錯處理。
      以上流程中,SDMA和DMAC間的讀使能信號相當于讀請求信號的響應信號,二者實現(xiàn)了一次握手。
      設備以DMA方式向SD卡寫數(shù)據(jù)的過程包括以下步驟步驟A,DMAC置輸出到SDMA的寫請求信號為有效,同時,輸出要寫的數(shù)據(jù)的地址和數(shù)據(jù)塊個數(shù);步驟B,SDMA檢測到該寫請求有效后,首先記錄下要寫的數(shù)據(jù)的地址和數(shù)據(jù)塊個數(shù),然后檢測SD控制器的狀態(tài),如檢測到SD控制器空閑,執(zhí)行下一步;步驟C,SDMA向SD控制器發(fā)一個時鐘周期寬度的DMA啟動信號,同時將要寫的數(shù)據(jù)的地址和數(shù)據(jù)塊個數(shù)送到總線信號上;步驟D,SD控制器收到啟動信號后,根據(jù)數(shù)據(jù)塊個數(shù)是否為1向SD卡發(fā)出單數(shù)據(jù)塊寫或多數(shù)據(jù)塊寫命令;步驟E,SD控制器在收到SD卡返回的指示可寫入的響應之后,將和SDMA間的寫使能信號置為有效,等待SDMA將數(shù)據(jù)寫入;步驟F,SDMA檢測到和SD控制器間的寫使能信號有效后,將和DMAC間的寫使能信號置為有效;步驟H,隨后,SD控制器、SDMA以及DMAC并行執(zhí)行以下操作DMAC檢測到寫使能信號有效后,先準備好當前數(shù)據(jù)塊的數(shù)據(jù),置寫信號有效并保持512個時鐘周期,將一個數(shù)據(jù)塊的數(shù)據(jù)送到數(shù)據(jù)總線上以寫入SD控制器緩存,之后再將置信號為無效,如檢測到寫出錯信號,進行出錯處理;SDMA檢測到DMAC已向SD控制器的緩存中寫入一個數(shù)據(jù)塊的數(shù)據(jù)后,將和SD控制器間的寫信號置為有效;在檢測到和SD控制器間的寫使能信號有效時,判斷數(shù)據(jù)塊個數(shù)是否為1,如果是,向SD控制器發(fā)送一個時鐘周期的DMA停止信號,結束寫操作;否則,將數(shù)據(jù)塊個數(shù)減1,寫地址加512,進一步根據(jù)SD控制器返回的寫結束狀態(tài)判斷當前數(shù)據(jù)塊是否寫出錯,如果是,通知DMAC,如沒有出錯,將和DMAC間的寫使能信號置為有效;SD控制器檢測到和SDMA間的寫信號有效后,根據(jù)SD協(xié)議將數(shù)據(jù)寫入SD卡,然后將和SDMA間的寫使能信號置為有效,并返回當前數(shù)據(jù)塊的寫結束狀態(tài)。
      上述步驟H和I中,SDMA如檢測到寫出錯,則拉低寫使能信號,且隔一個時鐘周期將寫狀態(tài)信號拉高再拉低,如果沒有檢測到寫出錯,則只需拉低寫使能信號來通知DMAC當前數(shù)據(jù)塊寫結束。不過,并不局限于采用這樣的信號。
      綜上所述,本發(fā)明實現(xiàn)了設備和SD卡之間DMA方式的數(shù)據(jù)讀寫SD卡,并且支持多數(shù)據(jù)塊和單數(shù)據(jù)塊的DMA傳輸,具有出錯標志。
      在上述實施例的基礎上還可以有各種變換,例如,在某些設備上,只需要實現(xiàn)以DMA方式從SD卡上讀取數(shù)據(jù),則可以取消從SD卡上寫數(shù)據(jù)的相關模塊和流程。
      例如,在另一實施例中,也可以一次只實現(xiàn)一個數(shù)據(jù)塊數(shù)據(jù)的讀寫,這時則可以取消實施例流程中關于數(shù)據(jù)塊個數(shù)的信號和相關的判斷操作。
      又如,在另一實施例中,對于數(shù)據(jù)出錯,可以不在傳輸過程中進行校驗,而改為由設備上層應用程序來處理,也是可以的。
      權利要求
      1.一種安全數(shù)字存儲卡數(shù)據(jù)的存儲器直接存取方法,應用于安全數(shù)字存儲卡,即SD卡及通過SD卡讀寫接口與其相連的設備組成的系統(tǒng),該設備中還包括一存儲器直接存取控制器DMAC,該SD卡讀寫接口包括SD控制器和位于該SD控制器和DMAC之間的接口電路SDMA,該方法包括設備從SD卡讀數(shù)據(jù)的過程,該過程包括以下步驟(a)DMAC將和SDMA間的讀請求信號為有效,同時輸出要讀的數(shù)據(jù)的地址;(b)SDMA檢測到讀請求信號有效后,記錄下要讀的數(shù)據(jù)的地址,然后向SD控制器發(fā)送存儲器直接存取啟動信號,同時將要讀的數(shù)據(jù)的地址送到總線信號上;(c)SD控制器收到啟動信號之后,向SD卡發(fā)出數(shù)據(jù)塊讀讀命令,并將收到的SD卡發(fā)來的數(shù)據(jù)存入本地的緩存;(d)隨后,SD控制器、SDMA以及DMAC并行執(zhí)行以下操作SD控制器檢測到緩存中已寫有一個數(shù)據(jù)塊的數(shù)據(jù)后,將和SDMA間的讀使能信號置為有效,等待SDMA將數(shù)據(jù)讀出;SDMA檢測到讀使能信號有效時,如數(shù)據(jù)已讀完,向SD控制器返回存儲器直接存取停止信號,如未讀完,再將和DMA間的讀使能信號置為有效,通知DMAC讀出當前數(shù)據(jù)塊的數(shù)據(jù);DMAC檢測到讀使能信號有效時,置讀請求信號為無效,然后置讀信號有效并保持,從數(shù)據(jù)總線上讀取一個數(shù)據(jù)塊的數(shù)據(jù),讀取完成后置讀信號無效。
      2.如權利要求1所述的存儲器直接存取方法,其特征在于,所述步驟(a)中,DMAC還向SDMA輸出要讀的數(shù)據(jù)塊的個數(shù);所述步驟(b)中,SDMA同時記錄下該數(shù)據(jù)塊個數(shù),并將該個數(shù)送到總線上;所述步驟(c)中,SD控制器根據(jù)數(shù)據(jù)塊個數(shù)是否為1向SD卡發(fā)出單數(shù)據(jù)塊讀或多數(shù)據(jù)塊讀命令;所述步驟(d)中,SDMA是根據(jù)數(shù)據(jù)塊個數(shù)是否為1來判斷數(shù)據(jù)是否已讀完,如果是,向SD控制器發(fā)送存儲器直接存取停止信號,結束讀操作;否則將數(shù)據(jù)塊個數(shù)減1,將讀地址加一個數(shù)據(jù)塊的字節(jié)數(shù),繼續(xù)檢測讀使能信號是否有效。
      3.如權利要求1所述的存儲器直接存取方法,其特征在于,所述步驟(b)中,SDMA先檢測SD控制器的狀態(tài),如檢測到SD控制器空閑,再向SD控制器發(fā)送存儲器直接存取啟動信號。
      4.如權利要求1所述的存儲器直接存取方法,其特征在于,所述步驟(d)中,SD控制器在將讀使能信號置為有效的同時,還向SDMA輸出指示當前數(shù)據(jù)塊讀操作是否出錯的讀結束狀態(tài)信號;SDMA檢測到讀使能信號有效時,還根據(jù)返回的讀結束狀態(tài)判斷當前數(shù)據(jù)塊讀是否出錯,如果沒有出錯,則將和DMA間的讀使能信號置為有效,如果出錯,則向DMAC輸出一出錯狀態(tài)信號;DMAC在檢測到讀使能信號有效的同時還檢測是否有該出錯狀態(tài)信號,如有,則進行出錯處理,如無,再執(zhí)行讀操作。
      5.如權利要求1所述的存儲器直接存取方法,其特征在于,該方法包括設備向SD卡寫數(shù)據(jù)的過程,該過程包括以下步驟(A)DMAC置輸出到SDMA的寫請求信號為有效,同時輸出要寫的數(shù)據(jù)的地址;(B)SDMA檢測到該寫請求有效后,記錄下要寫的數(shù)據(jù)的地址,然后向SD控制器發(fā)送存儲器直接存取啟動信號,同時將要寫的數(shù)據(jù)的地址送到總線信號上;(C)SD控制器收到啟動信號后,向SD卡發(fā)出數(shù)據(jù)塊寫命令,在收到SD卡返回的指示可寫入的響應之后,將和SDMA間的寫使能信號置為有效,等待數(shù)據(jù)寫入;(D)SDMA檢測到和SD控制器間的寫使能信號有效后,將和DMAC間的寫使能信號置為有效;(E)隨后,SD控制器、SDMA以及DMAC并行執(zhí)行以下操作DMAC檢測到寫使能信號有效后,先準備好當前數(shù)據(jù)塊的數(shù)據(jù),置寫信號有效并保持,將一個數(shù)據(jù)塊的數(shù)據(jù)送到數(shù)據(jù)總線上以寫入SD控制器的緩存,之后再將置信號為無效;SDMA檢測到DMAC已向SD控制器的緩存中寫入一個數(shù)據(jù)塊的數(shù)據(jù)后,將和SD控制器間的寫信號置為有效;在檢測到和SD控制器間的寫使能信號有效時,如數(shù)據(jù)已寫完,向SD控制器返回存儲器直接存取停止信號,結束寫數(shù)據(jù),如未寫完,再將和DMAC間的寫使能信號置為有效;SD控制器檢測到和SDMA間的寫信號有效后,根據(jù)SD協(xié)議將數(shù)據(jù)寫入SD卡,然后將和SDMA間的寫使能信號置為有效。
      6.如權利要求5所述的存儲器直接存取方法,其特征在于,所述步驟(B)中,SDMA先檢測SD控制器的狀態(tài),如檢測到SD控制器空閑,再向SD控制器發(fā)送存儲器直接存取啟動信號。
      7.如權利要求5所述的存儲器直接存取方法,其特征在于,所述步驟(A)中,DMAC還向SDMA輸出要讀的數(shù)據(jù)塊的個數(shù);所述步驟(B)中,SDMA同時記錄下該數(shù)據(jù)塊個數(shù),并將該個數(shù)送到總線上;所述步驟(C)中,SD控制器根據(jù)數(shù)據(jù)塊個數(shù)是否為1向SD卡發(fā)出單數(shù)據(jù)塊寫或多數(shù)據(jù)塊寫命令;所述步驟(E)中,SDMA是根據(jù)數(shù)據(jù)塊個數(shù)是否為1來判斷數(shù)據(jù)是否已寫完的,如果已寫完,向SD控制器發(fā)送存儲器直接存取停止信號,結束讀操作;否則將數(shù)據(jù)塊個數(shù)減1,將讀地址加一個數(shù)據(jù)塊的字節(jié)數(shù),繼續(xù)檢測讀使能信號是否有效。
      8.如權利要求5所述的存儲器直接存取方法,其特征在于,所述步驟(E)中,SD控制器在將寫使能信號置為有效的同時,還向SDMA輸出指示當前數(shù)據(jù)塊寫操作是否出錯的寫結束狀態(tài)信號;SDMA檢測到寫使能信號有效時,還根據(jù)返回的寫結束狀態(tài)判斷當前數(shù)據(jù)塊寫是否出錯,如果沒有出錯,則將和DMA間的寫使能信號置為有效,如果出錯,則向DMAC輸出一出錯狀態(tài)信號;DMAC在檢測到寫使能信號有效的同時還檢測是否有該出錯狀態(tài)信號,如有,則進行出錯處理,如無,再執(zhí)行寫操作。
      9.一種用于實現(xiàn)如權利要求1所述方法的安全數(shù)字存儲卡讀寫接口電路,包括用于實現(xiàn)與安全數(shù)字存儲卡,即SD卡的通信協(xié)議的SD控制器,其特征在于,還包括連接在SD控制器和存儲器直接存取控制器DMAC之間的接口電路SDMA,該SDMA用于實現(xiàn)DMAC和SD控制器之間的通信和數(shù)據(jù)傳輸,進一步包括SD控制器狀態(tài)檢測模塊、SD控制器讀寫時序產生模塊、DMA狀態(tài)檢測模塊、DMA讀寫時序產生模塊和協(xié)議分析執(zhí)行模塊,其中所述SD控制器狀態(tài)檢測模塊,用于檢測SD控制器發(fā)過來的讀、寫使能信號和數(shù)據(jù)塊讀、寫狀態(tài)信號,把信號同步之后發(fā)給協(xié)議分析執(zhí)行模塊;所述SD控制器讀寫時序產生模塊,用于接收協(xié)議分析執(zhí)行模塊的指令,判斷是讀還是寫操作,產生時序信號實現(xiàn)和SD控制器之間的數(shù)據(jù)傳輸;所述DMA狀態(tài)檢測模塊,用于檢測DMA發(fā)過來的請求信號、狀態(tài)信號、讀使能信號和寫使能信號,把信號同步之后發(fā)給協(xié)議分析執(zhí)行模塊;所述DMA讀寫時序產生模塊,接收協(xié)議分析執(zhí)行模塊的指令,判斷是讀還是寫操作,產生時序信號實現(xiàn)和DMAC之間的數(shù)據(jù)傳輸;所述協(xié)議分析執(zhí)行模塊,用于根據(jù)SD控制器狀態(tài)檢測模塊、DMA狀態(tài)檢測模塊發(fā)過來的信號,決定需要進行的操作,控制SD控制器讀寫時序產生模塊和DMA讀寫時序產生模塊產生相應的時序信號。
      10.如權利要求9所述的SD卡讀寫接口電路,其特征在于,該電路可以用現(xiàn)場可編程門陣列或者專用集成電路實現(xiàn)。
      全文摘要
      一種SD卡數(shù)據(jù)的存儲器直接存取方法,SD卡通過SD卡讀寫接口與包括DMAC的設備相連,SD卡讀寫接口包括SD控制器和SD控制器、DMAC之間的接口SDMA,從SD卡讀數(shù)據(jù)時,DMAC置讀請求信號為有效,輸出要讀的數(shù)據(jù)的地址;SDMA向SD控制器發(fā)送啟動信號,同時將該地址送到總線信號上;SD控制器收到啟動信號后,向SD卡發(fā)出數(shù)據(jù)塊讀讀命令,將SD卡發(fā)來的數(shù)據(jù)存入本地的緩存;隨后,SD控制器檢測到緩存寫入一個數(shù)據(jù)塊數(shù)據(jù)后,將和SDMA間的讀使能信號置為有效,SDMA在讀使能信號有效時,將和DMA間的讀使能信號置為有效,DMAC從數(shù)據(jù)總線上讀一個數(shù)據(jù)塊的數(shù)據(jù)。本發(fā)明可對SD卡數(shù)據(jù)進行存儲器直接存取。
      文檔編號G06F3/08GK1866232SQ200610012189
      公開日2006年11月22日 申請日期2006年6月9日 優(yōu)先權日2006年6月9日
      發(fā)明者楊柱, 劉健, 高曉宇, 周天夷 申請人:北京中星微電子有限公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1