[發明專利]基于SPI模式的SD卡驅動器及其控制方法有效
| 申請號: | 201810250038.2 | 申請日: | 2018-03-26 |
| 公開(公告)號: | CN108268414B | 公開(公告)日: | 2023-07-21 |
| 發明(設計)人: | 魏榕山;歐陽魁;王景璽;張鑫剛 | 申請(專利權)人: | 福州大學 |
| 主分類號: | G06F13/40 | 分類號: | G06F13/40;G06F13/42 |
| 代理公司: | 福州元創專利商標代理有限公司 35100 | 代理人: | 蔡學俊 |
| 地址: | 350002 福*** | 國省代碼: | 福建;35 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 spi 模式 sd 驅動器 及其 控制 方法 | ||
1.一種基于SPI模式的SD卡驅動器的控制方法,其特征在于:所述基于SPI模式的SD卡驅動器,包括SD卡控制器模塊、Fifo緩存模塊、FAT32文件系統模塊,所述SD卡控制器模塊通過SPI總線與SD卡連接,SD卡控制器模塊還通過Wishbone總線與FAT32文件系統模塊連接,FAT32文件系統模塊還與所述Fifo緩存模塊連接;所述SD卡控制器模塊包括Wishbone總線從機、SPI主機控制器、SD初始化控制器、命令發送響應控制器、讀寫數據控制器、數據傳輸控制器、讀寫數據緩存器、SPI主機接口,Wishbone總線從機與SPI主機控制器、讀寫數據緩存器連接,SPI主機控制器還與讀寫數據控制器、SD初始化控制器、數據傳輸控制器連接,SD初始化控制器經命令發送響應控制器與讀寫數據控制器連接,數據傳輸控制器經SPI主機接口與讀寫數據緩存器連接,SPI主機接口還與SD卡連接;所述Wishbone總線從機包括Wishbone從機控制器、Wishbone從機接口,Wishbone從機控制器與SPI主機控制器連接,Wishbone從機接口與讀寫數據緩存器連接,Wishbone從機控制器、Wishbone從機接口經Wishbone總線主機與FAT32文件系統模塊連接;所述控制方法實現如下:
(1)Fifo緩存模塊的讀、寫入控制邏輯功能:
FAT32文件系統模塊從SD卡控制器模塊取出1024+512個字節的數據并同時寫入到Fifo緩存模塊中,此時Fifo緩存模塊中無數據讀出;停止寫入數據到Fifo緩存模塊,開始從Fifo緩存模塊中讀出512個字節的數據,FAT32文件系統模塊在從SD卡控制器模塊取出512個字節的數據同時寫入到Fifo緩存模塊中,此時Fifo緩存模塊中有數據讀出;
(2)FAT32文件系統模塊和Wishbone總線讀取SD卡中文件功能:
FAT32文件系統模塊根據SD卡驅動器當前執行的功能和SD卡反饋的卡片信息向Wishbone總線主機發送命令參數,Wishbone總線主機將命令參數拆分成4個字節,Wishbone總線主機將命令字的第1個字節通過address地址接口發送到Wishbone總線從機,命令字的第2、3、4、5?字節為命令參數通過data_o數據接口發送到Wishbone總線從機;Wishbone總線從機根據address地址接口接收到的信息判斷當前由Wishbone總線從機通過data_o數據接口發送到Wishbone總線主機的數據是SD卡控制器模塊傳輸過來的SD卡反饋的卡片信息或者是SD卡各個扇區讀出的存儲數據;
Wishbone總線主機的Wishbone主機接口通過操作結束方式信號來了解SD卡控制器模塊中的Wishbone從機接口的工作狀態;操作結束方式信號為高電平時表示SD卡控制器模塊中的Wishbone從機接口向Wishbone主機接口數據傳輸正常,反之則表示數據傳輸不正常;
Wishbone總線主機通過Wishbone總線接口信號中的地址信號控制Wishbone從機接口的數據傳輸狀態和類型,通過Wishbone總線接口信號中的選通信號和寫使能信號控制Wishbone從機接口數據傳輸的起始和終止;
(3)SD卡控制器模塊基于SPI通訊模式下的包括SD卡的復位、初始化、讀單塊、寫單塊、讀多塊、寫多塊操作功能:
1)Wishbone總線從機
Wishbone總線從機負責與SD卡控制器模塊中各個模塊進行數據和命令交互,并將SD卡控制器模塊的狀態作為響應傳遞回Wishbone總線主機;當處于數據讀取狀態時,Wishbone從機控制器通過判斷主機地址類型,選擇從SPI主機控制器讀取數據并傳輸給Wishbone主機接口或者將數據從讀寫數據Fifo緩存模塊中取出并傳輸給Wishbone主機接口;當處于數據寫入狀態時,Wishbone從機控制器將數據從Wishbone主機接口中取出并傳輸給讀寫數據緩存器;
2)SPI主機控制器
系統上電復位后首先由SPI主機控制器通過控制寄存器和狀態寄存器向SD卡初始化控制器模塊發送使能信號,使SD卡完成初始化;SPI主機控制器在接收到SD卡完成初始化的反饋信號后,向讀寫數據控制器發送讀或寫請求;
3)SD初始化控制器
SD初始化控制器在接收到SPI主機控制器發送的使能信號后開始工作,產生復位命令CMD0,通過命令發送響應控制器發送給SD卡,在有效時間內收到正確的響應,復位完成;然后產生初始化命令CMD1,通過命令發送響應控制器發送給SD卡,在有效時間內收到正確的響應,初始化完成,SD卡進入SPI模式;
4)命令發送響應控制器
命令發送響應控制器在接收到SPI主機控制器發送的使能信號后開始工作;將命令拼接成SD卡協議中規定的6字節格式,發送給SD卡;對于收到的反饋,判斷是否是SD卡的響應以及是否響應超時;
5)讀寫數據控制器
讀寫數據控制器在接收到SPI主機發送的讀或寫使能信號后開始進入相應的狀態;若收到寫使能信號,產生單塊寫命令CMD24,通過命令發送響應控制器發送給SD卡;若在有效時間內收到正確的響應,則產生數據起始令牌,與512字節數據、2字節的CRC一起寫入讀寫數據緩存器;若在有效時間內收到的響應最后五位為00101,則SD卡成功接收數據;在SD卡忙狀態時判斷SD卡是否寫超時,超過250ms仍處于忙狀態則寫錯誤;若收到讀使能信號,產生單塊讀命令CMD17,通過命令發送響應控制器發送給SD卡;若在有效時間內收到正確的響應,則開始接收數據起始令牌;若在100ms內未收到數據起始令牌,則讀超時,讀SD卡錯誤;若接收到數據起始令牌,則將之后接收到的512字節數據寫入讀寫數據緩存器;
6)數據傳輸控制器
數據傳輸控制器是控制讀寫數據緩存器的模塊;若收到命令發送響應控制器的使能信號時,接收命令發送響應控制器發送的6字節命令,并逐一發送給SPI主機接口;若收到讀寫數據控制器的寫使能信號,則讀取讀寫數據緩存器Tx_FIFO中的512字節數據并將其發送給SPI主機接口;在數據傳輸的開始之前以及結束之后,發送8位高電平信號給SPI主機接口,維持時鐘并且保持MOSI為高;在接收數據及響應時,通過Fifo緩存模塊內數據狀態標志位信號來控制數據的接收過程;
7)讀寫數據緩存器
讀寫數據緩存器是緩存讀寫數據的存儲器,負責存儲要寫入SD卡的512字節數據以及從SD卡讀出的512字節數據;
8)SPI主機接口
SPI主機接口是與SD卡直接通信的模塊;通過兩個移位寄存器,將讀寫數據緩存器輸出的并行數據轉換為串行數據傳輸給SD卡,將SD卡輸出的串行數據轉換為并行數據存入讀寫數據緩存器;同時給SD卡提供時鐘信號。
2.根據權利要求1所述的基于SPI模式的SD卡驅動器的控制方法,其特征在于:所述卡片信息,即:從根目錄數據中解析出當前文件占用的字節數;用啟動區中的數據計算出根目錄和FAT1的起始地址,用根目錄起始地址對應的內容得到第一個簇在數據區的地址;用FAT1起始地址對應的內容得到第二個簇在數據區的地址和第三個簇在FAT1中的地址;FAT1每一個地址對應的內容是當前簇號在數據區的地址和下一個簇號在FAT1中的地址。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于福州大學,未經福州大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810250038.2/1.html,轉載請聲明來源鉆瓜專利網。





