衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于C8051F020的SD卡主控制器設計,SD card controller

454398 ? 2018-09-20 19:49 ? 次閱讀

基于C8051F020的SD卡主控制器設計,SD card controller

關鍵字:基于C8051F020的SD卡主控制器設計

1 引言
飛機飛行狀況監測及數據采集儀.用于采集飛機試飛時的各種飛行數據,要求大量的存儲容量。在飛機回到地面后,需要方便地將采集數據傳輸到通用計算機上,以便作進一步的數據處理和分析。為了把采集的數據從采集系統傳輸到通用計算機內.在過去,是將數據存儲部分設計為可分離的一個存儲板,數據存儲板上設計有CPU和串口。將數據存儲板從數據采集系統上取下來,通過串口與通用計算機通信,將數據傳輸到通用計算機內??梢钥闯?。這種方法有幾個缺點:第一,操作麻煩,每次都要將存儲板從采集系統取下來,然后再裝上;第二,經常插拔存儲板降低整個采集系統的可靠性:第三,讀取數據的通用計算機需要安裝專用程序。此程序是專門開發用于通用計算機與數據存儲板之間的串口通信程序,增加了使用復雜性。SD/MMC卡是一種容量大(最大可達4GB)、性價比高、體積小、訪問接口簡單的存儲卡,而且通過USB讀卡器,可以很方便地將卡中文件拷貝到通用計算機中。目前,SD卡已大量用于數碼相機、MP3、手機與大容量存儲設備中。在本次飛行狀況監測及數據采集儀的設計中,采集數據的存儲采用了SD卡。

2 硬件功能原理與設計
SD卡的外形和接口如圖1所示。根據SD卡與主控制器的通信協議不同,SD卡對外提供兩種訪問模式:SD模式和SPI模式。所用通信模式不同,SD卡引腳的功能也不同,具體引腳功能如表1所示。在具體通信過程中,主機只能選擇其中一種通信模式。通信模式的選擇對于主控制器來說是透明的,卡會自動檢測復位命令的通信協議模式,而且通信模式一旦選定,系統在通電情況下不能改變。SD模式下,主控制器使用SD總線訪問SD卡??赏ǔ5?a target="_blank">單片機沒有硬件SD總線,盡管可以借助通用口線用軟件仿真,但訪問速度較低,還要大量占用CPU時間,而單片機多具有SPI總線,本文就利用SPI總線實現對SD卡的訪問。下面主要介紹SPI總線方式。
?
?
注:S--電源;I--輸入;O--推挽輸出;PP--推挽I/O。
在SPI總線模式下.CS為主控制器向卡發送的片選信號,SCLK為主控制器向卡發送的時鐘信號。DI(DataIn)為主控制器向卡發送的單向數據信號,DO(DataOut)為卡向主控制器發送的單向數據信號。SD卡的內部結構如圖2所示,SD卡內部除了具有大量存儲單元外。還具有卡接口控制器、寄存器以及SD和SPI兩種模式的對外接口等。外部主控制器訪問卡的外部信號線并不與存儲器單元直接相連,而是通過卡的接口控制器與存儲器單元接口相連。這樣主控制器并不直接訪問存儲器,而是通過卡的接口控制器來訪問存儲器。卡內存儲單元的讀,擦,寫由卡接口控制器根據主控制器的命令自動處理完成,而主控制器無須知道卡內是如何操作、管理存儲單元的,這將大大減輕主控制器對存儲器操作的負擔。SD卡內部有6個信息寄存器,用來設置和保存操作卡的關鍵信息,有兩個狀態寄存器,用來記錄操作卡的當前狀態。
?
采集儀的主控制器采用了C8051F020單片機。C8051F系列單片機與8051在指令上完全兼容,性能遠遠高于標準的8051單片機,片內除了具有8052的全部外設外.又擴展了豐富的外設,是一種名副其實的SOC (System On Chip)單片機。C8051F020能夠滿足數據采集功能外,還能很容易地實現SD卡的訪問。與SD卡系統相關的特性如下:

  • 單片機內部采用流水線結構。指令運行速度高.指令運行速度比一般的80C51系列單片機提高了大約10倍. 可達25MIPS指令運行速度,滿足高速操作SD卡的功能要求。
  • 具有SPI 硬件接口。可與SD卡的SPI 總線很好接口。
  • 具有8個8位I/O端口。除滿足數據采集需要外。有足夠的口線用于單片機與SD卡的連接。而且.這些口線可通過軟件進行配置,獲得不同的功能,其中SPI 接口,就是通過配置相關寄存器而獲得的。
  • 具有可擴展的中斷系統。支持22個中斷源.2個優先級,其中就包括SPI接口產生的中斷。
  • 片內存儲器包括64KB的Flash、和4KB的XRAM。不需要擴展存儲器.就可以滿足文件系統的建立和訪問SD 卡的需要。
  • 3.3V的工作電壓,與SD卡工作電壓兼容。
  • 時鐘系統更加完善.可以使用內部時鐘.也可以使用外部時鐘。通過編程可以切換。
  • 可實現通過JTAG接口的在系統調試。方便系統的開發。

C8051F系列單片機的SPI串行接口的主要特點如下:全雙工,三線同步傳輸,即在發送的同時也能接受;可以工作在主機方式或從機方式;主機最大數據傳輸速率(位/秒)是系統時鐘頻率的1/2.因而最高可達10Mb/s;SPI位傳輸速率可通過編程選擇;發送結束設置中斷標志.發送期間不占用CPU時間;串行時鐘極性與相位可編程改變;具有寫沖突保護和總線競爭保護。
對于C8051F020的SPI系統.首先通過設置I/O端口功能選擇開關控制寄存器XBR0、XBR1、XBR2.將I/O端口P0.0、P0.1、P0.2、P0.3配置成SPI功能引腳SCK、MISO、MOSI和NSS。此時I/0端口P0.0、P0.1、P0.2、P0.3就組合成SPI接口了。而設置和控制SPI接口性能的特殊功能寄存器有SPI0CFG、SPI0CKR、SPI0CN、SPI0DAT。SPI0CFG是SPI的配置寄存器,用于配置SPI的工作方式。并反映通信過程中的數據發送狀態。SPI0CN是SPI控制寄存器.用于控制SPI的工作.并反映通信過程中的一些錯誤標志。SPI0CKR是SPI的時鐘速率寄存器.用于選擇SCK輸出的頻率。SPI0DAT是SPI的數據寄存器,用于發送和接受SPI數據。
主控制器C8051F020與SD卡座的電路連接圖如圖3所示。除了SPI接口的連接外,還有三根控制線,P0.4_SD_INSERT就是I/O端口P0.4,用于檢測SD卡在卡座上是否插好。完全插入時該引腳為低電平,否則為高電平。P0.5_SD_WP就是I/O端口P0.5,用于檢測SD卡當前是否設置寫保護.寫保護時該引腳為高電平,否則為低電平。P0.6_SD_POWER就是I/O端口P0.6,用于SD卡的供電控制,該引腳輸出低電平時。給卡供電。否則斷電。這是為了在SD卡進入不確定狀態時,可以通過對卡重新上電復位而無需拔出卡。
?

3 軟件設計
軟件設計思想是,為了程序的可移植性和易用性。將程序分為三個層次。第一個層次是硬件抽象層。第二層是實現訪問SD卡的命令層,第三層是應用層,提供給用戶或文件系統的接口函數。
硬件抽象層包括訪問SD卡的硬件環境配置、SPI接口實現通訊的基本函數以及SPI中斷的處理。硬件環境配置包括硬件初始化、以及內存變量初始化等。如將C8051F020的I/O端口配置為SPI接口的相關設置、C8051F020的SPI接口性能的設置、SD卡的上電與斷開、SD卡插入是否到位檢測、SD卡內部寄存器特定參數設置等等。又如C8051F020的SPI接口性能的設置,包括主/從工作方式設置、SPI通訊頻率設置等等,這些內容都與硬件有關。SPI接口實現通訊的基本函數,包括主控制器向SD卡發送一字節和從SD卡讀取一字節的基本函數,這是所有SPI通訊的基礎。SPI中斷處理是SPI接口產生中斷時.中斷服務程序被自動調用,在中斷服務程序中,讀取SPI控制寄存器。這里存放著產生中斷的各種狀態標志,根據不同的狀態標志,調用不同的函數處理。
命令層,就是調用硬件抽象層的基本發送接收字節函數,實現SD卡所有SPI協議規定的命令.完成對SD卡的訪問。根據SD卡協議,訪問SD卡的不同功能,由不同的命令實現。這些命令分成0—9個不同的類別.每種類別包括幾個具體的命令,對于SPI協議,每個命令都由主機主動發送。高位在前低位在后,SD卡收到命令后.根據不同的命令做出不同的響應。主機發送的命令長度總是6個字節.命令的格式如表2所示。Command表示命令號,占用6位,Parameter表示命令參數,長度為4字節,不同的命令對應不同的命令參數值。SD卡的響應有4種格式,分別為R1、R1B、R2和R3格式。主機發送命令并讀取響應形成一個完整的命令實現過程。

        表2 SPI模式命令格式
        聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
        收藏 人收藏

          評論

          相關推薦

          EE-335:SD與Blackfin處理的接口

          電子發燒友網站提供《EE-335:SD與Blackfin處理的接口.pdf》資料免費下載
          發表于 01-06 14:15 ?0次下載
          EE-335:<b class='flag-5'>SD</b><b class='flag-5'>卡</b>與Blackfin處理<b class='flag-5'>器</b>的接口

          C8051F020的SPI接口通信,用示波器看SPI輸出的時序沒問題,但沒有數據從DAC1282返回,為什么?

          專家好,我已按照datasheet得原理制作PCB版,調試過程中遇到兩個問題: 1、用C8051F020的SPI接口通信,用示波器看SPI輸出的時序沒問題,但沒有數據從DAC1282返回,且輸出
          發表于 12-05 07:14

          工業級SD:穩健發展,未來可期

          SD,自1999年由松下、東芝和SanDisk聯合推出以來,已經走過了二十余年的發展歷程。從最初的2GB容量、150KB/s的傳輸速度,到如今動輒數百GB容量、數GB/s的傳輸速度,SD
          的頭像 發表于 11-07 10:16 ?358次閱讀
          工業級<b class='flag-5'>SD</b><b class='flag-5'>卡</b>:穩健發展,未來可期

          SD/MMC與TMS320F28xxx DSC的接口

          電子發燒友網站提供《SD/MMC與TMS320F28xxx DSC的接口.pdf》資料免費下載
          發表于 10-15 09:44 ?0次下載
          <b class='flag-5'>SD</b>/MMC<b class='flag-5'>卡</b>與TMS320<b class='flag-5'>F</b>28xxx DSC的接口

          樹莓派4b支持多大的sd

          派4B支持的SD類型 樹莓派4B支持的SD類型主要有以下幾種: 1.1 SD(Secure
          的頭像 發表于 08-30 17:02 ?1432次閱讀

          如何選擇高品質SD存儲

          SD(Secure Digital Memory Card)是一種廣泛使用的存儲器件,因其快速的數據傳輸速度、可熱插拔的特性以及較大的存儲容量,廣泛應用于各種場景,例如在便攜式設備如智能手機、平板
          的頭像 發表于 08-22 16:12 ?488次閱讀
          如何選擇高品質<b class='flag-5'>SD</b>存儲<b class='flag-5'>卡</b>

          貼片式SD功能介紹【MK SD NAND】

          SDNAND,通常稱為嵌入式SD、貼片式TF、SD Flash、直接貼裝SD、貼裝
          的頭像 發表于 07-05 17:03 ?923次閱讀
          貼片式<b class='flag-5'>SD</b><b class='flag-5'>卡</b>功能介紹【MK <b class='flag-5'>SD</b> NAND】

          淺談SD NAND

          SD NAND內部主要由NAND Flash和Flash Controller組成,大多數人把NAND FLASH 叫做閃存,是一種長壽命的非易失性的存儲,即使在斷電情況下仍能保持所存儲的數據信息
          的頭像 發表于 06-25 14:20 ?987次閱讀
          淺談<b class='flag-5'>SD</b> NAND

          SD、MicroSDSD NAND的性能與應用對比

          在當前豐富多元的存儲解決方案領域,SD、MicroSD以及SD NAND憑借其各自的獨特優勢和特定的使用情景,贏得了市場的廣泛認可。每種存儲技術都展現了其獨到之處,為用戶帶來了多樣
          的頭像 發表于 06-14 15:48 ?1025次閱讀
          <b class='flag-5'>SD</b><b class='flag-5'>卡</b>、MicroSD<b class='flag-5'>卡</b>和<b class='flag-5'>SD</b> NAND的性能與應用對比

          實現ESP32-WROVER-IE寫入數據到SD中時無法初始化sd怎么解決?

          ;, esp_err_to_name(ret));}return; } else {sdmmc_card_print_info(stdout, card);_sd_pick_next_file();
          發表于 06-13 06:56

          什么是Micro SD適配器?

          Micro SD適配器是一種小型設備,它允許Micro SD(也稱為TF或TransFlash)通過轉換接口與使用標準
          的頭像 發表于 06-12 11:19 ?2388次閱讀
          什么是Micro <b class='flag-5'>SD</b>適配器?

          SD與Flash存儲究竟存在哪些差異?

          SD 是基于閃存技術的一種可移動存儲,由 SD 協會進行開發并標準化,在數碼相機、智能手機、平板電腦等設備中廣泛采用。SD
          的頭像 發表于 06-05 15:54 ?1966次閱讀
          <b class='flag-5'>SD</b><b class='flag-5'>卡</b>與Flash存儲究竟存在哪些差異?

          STM32F412使用SD,SDIO,FATFS系統,SD掛載文件系統失敗的原因?

          求助,STM32F412RET6 使用SD,使用SDIO接口,FATFS系統,SD掛載文件系統失敗。返回錯誤代碼3: 網上查到信息 \"
          發表于 04-11 07:15

          SD連接是什么

          SD連接是數字設備中用于連接SD的一種硬件接口。隨著數字設備的普及,SD
          的頭像 發表于 03-04 10:48 ?7802次閱讀

          sd中文資料

          電子發燒友網站提供《sd中文資料.pdf》資料免費下載
          發表于 03-04 09:54 ?3次下載
          澳门玩百家乐00| 威尼斯人娱乐上网导航| 淘金百家乐的玩法技巧和规则| 威尼斯人娱乐平台开户| 棋牌游戏开发公司| 百家乐官网全讯网2| 百家乐官网博娱乐网| 繁体子24画的有| 手机百家乐的玩法技巧和规则| 捕鱼棋牌游戏| 百家乐官网游戏怎么刷钱| 蓝盾百家乐官网赌场娱乐网规则 | 澳门百家乐战法| 百家乐真人娱乐场| 全讯网源码| 集贤县| 百家乐官网透明发牌靴| 百家乐玄机| 大发888官方下载 银行| 抚顺县| 百家乐官网输惨了| 百家乐bp| 百家乐官网天上人间| 百家乐官网玩法介| 戒掉百家乐的玩法技巧和规则| 17pk棋牌游戏| 百家乐官网娱乐场真人娱乐场| 澳门百家乐开户投注| 曼哈顿百家乐的玩法技巧和规则| 百家娱乐| 赌场百家乐官网的玩法技巧和规则| 网上百家乐作弊法| 皇冠赌球网| 鼎龙百家乐官网的玩法技巧和规则 | 789棋牌游戏| 迪威百家乐官网娱乐场| 百家乐官网必胜打| 大发888扑克场下载| 网络百家乐官网真假| 百家乐赌场技巧论坛| 法老王娱乐城|