基于可編程邏輯器件的存儲卡訪問控制系統的制作方法
【專利摘要】本發明涉及一種基于可編程邏輯器件的存儲卡訪問控制系統,包括:可編程邏輯器件,包括硬件邏輯部分和嵌入式軟核處理器;存儲卡卡槽,電連接可編程邏輯器件的硬件邏輯部分并用于插接存儲卡;以及通訊端口,電連接可編程邏輯器件的硬件邏輯部分。其中,當存儲卡插接于存儲卡卡槽并工作在數據傳輸模式,嵌入式軟核處理器負責存儲卡的訪問控制、但與硬件邏輯部分之間不傳輸存儲卡的寫入/讀出數據。本發明由于嵌入式軟核處理器負責存儲卡的訪問控制但與硬件邏輯部分之間不進行存儲卡寫入/讀出數據的傳輸,因此可充分利用存儲卡的數據傳輸帶寬、提升存儲卡的訪問速度,同時也更利于降低系統成本和產品的小型化。
【專利說明】基于可編程邏輯器件的存儲卡訪問控制系統
【技術領域】
[0001]本發明涉及存儲卡訪問控制【技術領域】,特別涉及一種基于可編程邏輯器件的存儲卡訪問控制系統。
【背景技術】
[0002]在現有的移動存儲卡例如SD卡訪問控制設計方案中,系統架構有以下兩種方案:
1、微控制器(MCU)直接訪問SD卡;2、基于微控制器+FPGA訪問SD卡。
[0003]在實際使用中,上述兩種方案的缺點是顯而易見的。對方案1,無論SD卡工作在SPI (Serial Peripheral Interface,串行外設接口)模式或者SD模式,速度均很低,因為所有的信號線包括時鐘信號均是通過GPIO (General Purpose Input Output,通用輸入/輸出)來操作,導致時鐘信號很難達到50MHz,實際的數據傳輸速度也就無法達到25MB/S。對方案2,雖然FPGA直接操作SD卡可以保證SD卡的時鐘達到50MHz,但是該方案有很明顯的速度瓶頸,即微控制器和FPGA之間的數據通訊速率較低,最終導致實際的SD訪問速度仍然遠低于25MB/S。從SDl.10標準開始到SD2.0標準,SD卡支持的最大傳輸速度已經由原來的12.5MB/S提升到現有的25MB/S,而上述兩種方案均無法充分發揮SD卡的速度優勢,很大程度上限制了 SD卡的使用范圍。
【發明內容】
[0004]因此,為解決現有技術中存在的不足,本發明提出一種基于可編程邏輯器件的存儲卡訪問控制系統。
[0005]具體地,本發明一實施例提出的一種基于可編程邏輯器件的存儲卡訪問控制系統,包括:可編程邏輯器件、存儲卡卡槽、以及通訊端口。其中,可編程邏輯器件包括硬件邏輯部分和嵌入式軟核處理器;存儲卡卡槽電連接可編程邏輯器件的硬件邏輯部分并用于插接存儲卡;通訊端口電連接可編程邏輯器件的硬件邏輯部分。此外,所述嵌入式軟核處理器用于發送訪問控制命令至硬件邏輯部分以傳送給存儲卡、從硬件邏輯部分接收存儲卡響應訪問控制命令而提供的命令響應信號并對接收到的命令響應信號進行正確性檢驗、以及啟動和控制硬件邏輯部分執行存儲卡與通訊端口之間的數據傳輸。
[0006]此外,本發明另一實施例提出的一種基于可編程邏輯器件的存儲卡訪問控制系統,包括:可編程邏輯器件、存儲卡卡槽、以及通訊端口。其中,可編程邏輯器件包括硬件邏輯部分和嵌入式軟核處理器;存儲卡卡槽電連接可編程邏輯器件的硬件邏輯部分并用于插接存儲卡;通訊端口電連接可編程邏輯器件的硬件邏輯部分。此外,當存儲卡插接于存儲卡卡槽并工作在數據傳輸模式,嵌入式軟核處理器負責存儲卡的訪問控制、但與硬件邏輯部分之間不傳輸存儲卡的寫入/讀出數據。
[0007]由上可知,本發明實施例由于嵌入式軟核處理器負責存儲卡的訪問控制但與硬件邏輯部分之間不進行存儲卡寫入/讀出數據的傳輸,因此可充分利用存儲卡的數據傳輸帶寬、提升存儲卡的訪問速度,同時也更利于降低系統成本和產品的小型化。[0008]通過以下參考附圖的詳細說明,本發明的其它方面和特征變得明顯。但是應當知道,該附圖僅僅為解釋的目的設計,而不是作為本發明的范圍的限定,這是因為其應當參考附加的權利要求。還應當知道,除非另外指出,不必要依比例繪制附圖,它們僅僅力圖概念地說明此處描述的結構和流程。
【專利附圖】
【附圖說明】
[0009]下面將結合附圖,對本發明的【具體實施方式】進行詳細的說明。
[0010]圖1為本發明實施例的一種基于可編程邏輯器件的存儲卡訪問控制系統的架構示意圖。
[0011]圖2為圖1所示硬件邏輯部分的相關信號流向示意圖。
【具體實施方式】
[0012]為使本發明的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖對本發明的【具體實施方式】做詳細的說明。
[0013]請參見圖1,其為本發明實施例的一種基于可編程邏輯器件的存儲卡訪問控制系統的架構示意圖。如圖1所示,本實施例的基于可編程邏輯器件的存儲卡訪問控制系統10包括:可編程邏輯器件11、存儲卡卡槽13和通訊端口 15。其中,可編程邏輯器件11包括硬件邏輯部分111和嵌入式軟核處理器113。可編程邏輯器件11可為現場可編程門陣列(Field Programmable Gate Array, FPGA)器件等,嵌入式軟核處理器113可為16位或32位精簡指令集(RSIC)軟核處理器,例如32位RSIC NiosII系列軟核處理器等;存儲卡卡槽13用于插接存儲卡,例如用于插接SD卡(Secure Digital Memory Card,安全數碼卡)、MMC卡(Multimedia Card,多媒體卡)、CF卡(Compact Flash,緊湊式閃存卡)或TF卡(TransFLash)等,通訊端口 15例如為網口、或USB 口等。需要說明的是,此處的各個功能模塊的舉例并非用來限制本發明。
[0014]承上述,存儲卡卡槽13電連接可編程邏輯器件11的硬件邏輯部分111,通訊端口15電連接可編程邏輯器件11的硬件邏輯部分111。本發明的發明思想之一在于:嵌入式軟核處理器113負責插接于存儲卡卡槽13的存儲卡的訪問控制命令的發送、命令響應信號的接收與檢驗、以及啟動和控制硬件邏輯部分111完成存儲卡與通訊端口 15之間的數據傳輸,其不直接與可編程邏輯器件11的硬件邏輯部分111進行數據傳輸(也即存儲卡的寫入/讀出數據不在兩者之間傳輸),因此可消除現有技術中基于微控制器+FPGA訪問存儲卡的速度瓶頸。
[0015]為便于理解,下面將以FPGA器件、Nios II系列軟核處理器和SD卡作為可編程邏輯器件11、嵌入式軟核處理器113和存儲卡的舉例來詳細說明本發明實施例的基于可編程邏輯器件的存儲卡訪問控制系統。
[0016]具體地,Nios II系列軟核處理器和FPGA器件的硬件邏輯部分111配合實現對SD卡的訪問控制,數據傳輸速度可高達25MB/S。在數據傳輸模式下,Nios II系列軟核處理器負責啟動和控制數據傳輸,Nios II系列軟核處理器和FPGA的硬件邏輯部分111之間不進行數據傳輸,直接通過啟動和控制FPGA的硬件邏輯部分111完成SD卡和通訊端口 15之間的數據傳輸。[0017]請一并參見圖1和圖2,SD卡和通訊端口 15之間加入雙端口隨機存儲器或者先入先出緩存器(FIFO)做數據緩存1110。FPGA的硬件邏輯部分111負責訪問控制命令的下載傳送、命令響應信號的接收上傳、執行SD卡與通訊端口 15之間的數據傳輸、以及CRC(Cyclic Redundancy Check,循環冗余碼校驗)計算與校驗。Nios II系列軟核處理器與FPGA的硬件邏輯部分111之間利用第二數據緩存例如雙端口隨機存儲器1112做訪問控制命令下載和命令響應信號上傳。當然,第二數據緩存也可采用先入先出緩存器以達到相同或相近的功能和效果。
[0018]下面將具體描述基于FPGA器件的SD卡訪問控制過程:
[0019]SD卡插接于存儲卡卡槽13上電后先進行初始化配置,完成SD卡由未激活狀態(inactive state)經卡認證模式(card identification mode)最后進入到數據傳輸模式(data transfer mode)。在數據傳輸模式下:
[0020](I)Nios II系列軟核處理器發送讀/寫數據等訪問控制命令至FPGA的硬件邏輯部分111的雙端口隨機存儲器1112,由FPGA的硬件邏輯部分111將訪問控制命令傳送給SD卡并生成邏輯訪問完成信號,Nios II系列軟核處理器通過GPIO接口查詢該邏輯訪問完成信號以確認訪問控制命令傳送是否完成或超時。
[0021](2) SD卡接收FPGA的硬件邏輯部分111傳送的讀/寫數據等訪問控制命令后,為響應接收到的訪問控制命令而生成命令響應信號并發送至FPGA的硬件邏輯部分111中的雙端口隨機存儲器1112,FPGA的硬件邏輯部分111會生成邏輯訪問完成信號、并對接收到的命令響應信號進行CRC校驗以生成CRC校驗狀態信號,Nios II系列軟核處理器通過GPIO接口查詢該邏輯訪問完成信號以確認命令響應信號接收是否完成以及查詢CRC校驗狀態信號以確認命令響應信息的CRC校驗狀態是否正確,并在確認CRC校驗正確后從雙端口隨機存儲器1112中接收命令響應信號以及檢驗接收到的命令響應信號的相應Bit (位)值是否正確。
[0022](3)當Nios II系列軟核處理器對命令響應信號的正確性檢驗通過后,啟動并控制FPGA的硬件邏輯部分111進行SD卡與通訊端口 15之間的數據傳輸。在數據傳輸過程中,如果是向SD卡寫數據,FPGA的硬件邏輯部分111從通訊端口 15獲取數據存儲至數據緩存1110并計算CRC,將數據和16位CRC+停止位發送至SD卡,生成邏輯訪問完成信號;如果是從SD卡讀數據,FPGA的硬件邏輯部分111從SD卡取出數據至數據緩存1110并計算CRC、接收16位CRC+停止位并進行CRC校驗,在CRC校正正確后將數據傳輸至通訊端口15,另外FPGA的硬件邏輯部分111會生產CRC校驗狀態信號和邏輯訪問完成信號。Nios II系列軟核處理器會通過GPIO接口查詢邏輯訪問完成信號確認SD卡數據發送或接收是否完成、查詢CRC校驗狀態信號以確認CRC校驗狀態是否正確。此外,若為多塊(block)讀/寫操作,Nios II系列軟核處理器還需發送停止傳輸命令并接收檢驗SD卡的命令響應信號。
[0023]由上述SD卡的訪問控制過程可知,本發明實施例提出的一種基于Nios II系列軟核處理器+FPGA的硬件邏輯部分的架構來實現SD卡的高速訪問控制的設計方案可將數據傳輸時的SD卡時鐘提升至50MHz,其中Nios II系列軟核處理器負責SD卡的訪問控制但不直接與FPGA的硬件邏輯部分進行數據傳輸,消除了基于微控制器+FPGA訪問SD卡的速度瓶頸,使傳輸帶寬能真正達到SD最大支持的25MB/S,充分利用SD卡的傳輸帶寬,同時也更利于降低系統成本和產品的小型化。[0024]本文中應用了具體個例對本發明基于可編程邏輯器件的存儲卡訪問控制系統的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發明的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制,本發明的保護范圍應以所附的權利要求為準。
【權利要求】
1.一種基于可編程邏輯器件的存儲卡訪問控制系統,其特征在于,包括: 可編程邏輯器件,包括硬件邏輯部分和嵌入式軟核處理器; 存儲卡卡槽,電連接所述可編程邏輯器件的所述硬件邏輯部分并用于插接存儲卡; 通訊端口,電連接所述可編程邏輯器件的硬件邏輯部分; 其中,所述嵌入式軟核處理器用于發送訪問控制命令至所述硬件邏輯部分以傳送給所述存儲卡、從所述硬件邏輯部分接收所述存儲卡響應所述訪問控制命令而提供的命令響應信號并對接收到的所述命令響應信號進行正確性檢驗、以及啟動和控制所述硬件邏輯部分執行所述存儲卡與所述通訊端口之間的數據傳輸。
2.如權利要求1所述的基于可編程邏輯器件的存儲卡訪問控制系統,其特征在于,所述硬件邏輯部分包括數據緩存,設置在所述存儲卡卡槽和所述通訊端口之間。
3.如權利要求2所述的基于可編程邏輯器件的存儲卡訪問控制系統,其特征在于,所述數據緩存為雙端口隨機存儲器或先入先出緩存器。
4.如權利要求1所述的基于可編程邏輯器件的存儲卡訪問控制系統,其特征在于,所述硬件邏輯部分包括第二數據緩存,用于所述訪問控制命令的下載和所述命令響應信號的上傳。
5.如權利要求1所述的基于可編程邏輯器件的存儲卡訪問控制系統,其特征在于,所述硬件邏輯部分還用于CRC計算和校驗。
6.如權利要求1所述的基于可編程邏輯器件的存儲卡訪問控制系統,其特征在于,所述可編程邏輯器件為FPGA器件。
7.如權利要求6所述的基于可編程邏輯器件的存儲卡訪問控制系統,其特征在于,所述嵌入式軟核處理器為16位或32位精簡指令集軟核處理器。
8.如權利要求1所述的基于可編程邏輯器件的存儲卡訪問控制系統,其特征在于,所述存儲卡卡槽用于插接SD卡、MMC卡、CF卡或TF卡。
9.一種基于可編程邏輯器件的存儲卡訪問控制系統,其特征在于,包括: 可編程邏輯器件,包括硬件邏輯部分和嵌入式軟核處理器; 存儲卡卡槽,電連接所述可編程邏輯器件的所述硬件邏輯部分并用于插接存儲卡; 通訊端口,電連接所述可編程邏輯器件的硬件邏輯部分; 其中,當所述存儲卡插接于所述存儲卡卡槽并工作在數據傳輸模式,所述嵌入式軟核處理器負責所述存儲卡的訪問控制、但與所述硬件邏輯部分之間不傳輸所述存儲卡的寫入/讀出數據。
10.如權利要求9所述的基于可編程邏輯器件的存儲卡訪問控制系統,其特征在于,所述可編程邏輯器件為FPGA器件。
【文檔編號】G06F11/10GK103744807SQ201310648946
【公開日】2014年4月23日 申請日期:2013年12月4日 優先權日:2013年12月4日
【發明者】王伙榮, 周晶晶 申請人:西安諾瓦電子科技有限公司