<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于C8051F020的SD卡主控制器設計

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

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

2 硬件功能原理與設計
  SD卡的外形和接口如圖1所示。根據SD卡與主控制器的通信協(xié)議不同,SD卡對外提供兩種訪(fǎng)問(wèn)模式:SD模式和SPI模式。所用通信模式不同,SD卡引腳的功能也不同,具體引腳功能如表1所示。在具體通信過(guò)程中,主機只能選擇其中一種通信模式。通信模式的選擇對于主控制器來(lái)說(shuō)是透明的,卡會(huì )自動(dòng)檢測復位命令的通信協(xié)議模式,而且通信模式一旦選定,系統在通電情況下不能改變。SD模式下,主控制器使用SD總線(xiàn)訪(fǎng)問(wèn)SD卡??赏ǔ5?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/單片機">沒(méi)有硬件SD總線(xiàn),盡管可以借助通用口線(xiàn)用軟件仿真,但訪(fǎng)問(wèn)速度較低,還要大量占用CPU時(shí)間,而多具有SPI總線(xiàn),本文就利用SPI總線(xiàn)實(shí)現對SD卡的訪(fǎng)問(wèn)。下面主要介紹SPI總線(xiàn)方式。

                    SD卡的形狀與接口
        SD卡引腳定義
注:S--電源;I--輸入;O--推挽輸出;PP--推挽I/O。
  在SPI總線(xiàn)模式下.CS為主控制器向卡發(fā)送的片選信號,SCLK為主控制器向卡發(fā)送的時(shí)鐘信號。DI(DataIn)為主控制器向卡發(fā)送的單向數據信號,DO(DataOut)為卡向主控制器發(fā)送的單向數據信號。SD卡的內部結構如圖2所示,SD卡內部除了具有大量存儲單元外。還具有卡接口控制器、寄存器以及SD和SPI兩種模式的對外接口等。外部主控制器訪(fǎng)問(wèn)卡的外部信號線(xiàn)并不與存儲器單元直接相連,而是通過(guò)卡的接口控制器與存儲器單元接口相連。這樣主控制器并不直接訪(fǎng)問(wèn)存儲器,而是通過(guò)卡的接口控制器來(lái)訪(fǎng)問(wèn)存儲器??▋却鎯卧淖x,擦,寫(xiě)由卡接口控制器根據主控制器的命令自動(dòng)處理完成,而主控制器無(wú)須知道卡內是如何操作、管理存儲單元的,這將大大減輕主控制器對存儲器操作的負擔。SD卡內部有6個(gè)信息寄存器,用來(lái)設置和保存操作卡的關(guān)鍵信息,有兩個(gè)狀態(tài)寄存器,用來(lái)記錄操作卡的當前狀態(tài)。

  采集儀的主控制器采用了C8051F020。C8051F系列單片機與8051在指令上完全兼容,性能遠遠高于標準的80,片內除了具有8052的全部外設外.又擴展了豐富的外設,是一種名副其實(shí)的SOC (System On Chip)單片機。C8051F020能夠滿(mǎn)足數據采集功能外,還能很容易地實(shí)現SD卡的訪(fǎng)問(wèn)。與SD卡系統相關(guān)的特性如下:
                   SD卡內部結構
  單片機內部采用流水線(xiàn)結構。指令運行速度高.指令運行速度比一般的80C51系列單片機提高了大約10倍. 可達25MIPS指令運行速度,滿(mǎn)足高速操作SD卡的功能要求。
  具有SPI 硬件接口??膳cSD卡的SPI 總線(xiàn)很好接口。
  具有8個(gè)8位I/O端口。除滿(mǎn)足數據采集需要外。有足夠的口線(xiàn)用于單片機與SD卡的連接。而且.這些口線(xiàn)可通過(guò)軟件進(jìn)行配置,獲得不同的功能,其中SPI 接口,就是通過(guò)配置相關(guān)寄存器而獲得的。
  具有可擴展的中斷系統。支持22個(gè)中斷源.2個(gè)優(yōu)先級,其中就包括SPI接口產(chǎn)生的中斷。
  片內存儲器包括64KB的Flash、和4KB的XRAM。不需要擴展存儲器.就可以滿(mǎn)足文件系統的建立和訪(fǎng)問(wèn)SD 卡的需要。
3.3V的工作電壓,與SD卡工作電壓兼容。
  時(shí)鐘系統更加完善.可以使用內部時(shí)鐘.也可以使用外部時(shí)鐘。通過(guò)編程可以切換。
  可實(shí)現通過(guò)JTAG接口的在系統調試。方便系統的開(kāi)發(fā)。
  C8051F系列單片機的SPI串行接口的主要特點(diǎn)如下:全雙工,三線(xiàn)同步傳輸,即在發(fā)送的同時(shí)也能接受;可以工作在主機方式或從機方式;主機最大數據傳輸速率(位/秒)是系統時(shí)鐘頻率的1/2.因而最高可達10Mb/s;SPI位傳輸速率可通過(guò)編程選擇;發(fā)送結束設置中斷標志.發(fā)送期間不占用CPU時(shí)間;串行時(shí)鐘極性與相位可編程改變;具有寫(xiě)沖突保護和總線(xiàn)競爭保護。
  對于C8051F020的SPI系統.首先通過(guò)設置I/O端口功能選擇開(kāi)關(guān)控制寄存器XBR0、XBR1、XBR2.將I/O端口P0.0、P0.1、P0.2、P0.3配置成SPI功能引腳SCK、MISO、MOSI和NSS。此時(shí)I/0端口P0.0、P0.1、P0.2、P0.3就組合成SPI接口了。而設置和控制SPI接口性能的特殊功能寄存器有SPI0CFG、SPI0CKR、SPI0CN、SPI0DAT。SPI0CFG是SPI的配置寄存器,用于配置SPI的工作方式。并反映通信過(guò)程中的數據發(fā)送狀態(tài)。SPI0CN是SPI控制寄存器.用于控制SPI的工作.并反映通信過(guò)程中的一些錯誤標志。SPI0CKR是SPI的時(shí)鐘速率寄存器.用于選擇SCK輸出的頻率。SPI0DAT是SPI的數據寄存器,用于發(fā)送和接受SPI數據。
  主控制器C8051F020與SD卡座的電路連接圖如圖3所示。除了SPI接口的連接外,還有三根控制線(xiàn),P0.4_SD_INSERT就是I/O端口P0.4,用于檢測SD卡在卡座上是否插好。完全插入時(shí)該引腳為低電平,否則為高電平。P0.5_SD_WP就是I/O端口P0.5,用于檢測SD卡當前是否設置寫(xiě)保護.寫(xiě)保護時(shí)該引腳為高電平,否則為低電平。P0.6_SD_POWER就是I/O端口P0.6,用于SD卡的供電控制,該引腳輸出低電平時(shí)。給卡供電。否則斷電。這是為了在SD卡進(jìn)入不確定狀態(tài)時(shí),可以通過(guò)對卡重新上電復位而無(wú)需拔出卡。


3 軟件設計
  軟件設計思想是,為了程序的可移植性和易用性。將程序分為三個(gè)層次。第一個(gè)層次是硬件抽象層。第二層是實(shí)現訪(fǎng)問(wèn)SD卡的命令層,第三層是應用層,提供給用戶(hù)或文件系統的接口函數。
  硬件抽象層包括訪(fǎng)問(wèn)SD卡的硬件環(huán)境配置、SPI接口實(shí)現通訊的基本函數以及SPI中斷的處理。硬件環(huán)境配置包括硬件初始  化、以及內存變量初始化等。如將C8051F020的I/O端口配置為SPI接口的相關(guān)設置、C8051F020的SPI接口性能的設置、SD卡的上電與斷開(kāi)、SD卡插入是否到位檢測、SD卡內部寄存器特定參數設置等等。又如C8051F020的SPI接口性能的設置,包括主/從工作方式設置、SPI通訊頻率設置等等,這些內容都與硬件有關(guān)。SPI接口實(shí)現通訊的基本函數,包括主控制器向SD卡發(fā)送一字節和從SD卡讀取一字節的基本函數,這是所有SPI通訊的基礎。SPI中斷處理是SPI接口產(chǎn)生中斷時(shí).中斷服務(wù)程序被自動(dòng)調用,在中斷服務(wù)程序中,讀取SPI控制寄存器。這里存放著(zhù)產(chǎn)生中斷的各種狀態(tài)標志,根據不同的狀態(tài)標志,調用不同的函數處理。
  命令層,就是調用硬件抽象層的基本發(fā)送接收字節函數,實(shí)現SD卡所有SPI協(xié)議規定的命令.完成對SD卡的訪(fǎng)問(wèn)。根據SD卡協(xié)議,訪(fǎng)問(wèn)SD卡的不同功能,由不同的命令實(shí)現。這些命令分成0—9個(gè)不同的類(lèi)別.每種類(lèi)別包括幾個(gè)具體的命令,對于SPI協(xié)議,每個(gè)命令都由主機主動(dòng)發(fā)送。高位在前低位在后,SD卡收到命令后.根據不同的命令做出不同的響應。主機發(fā)送的命令長(cháng)度總是6個(gè)字節.命令的格式如表2所示。Command表示命令號,占用6位,Parameter表示命令參數,長(cháng)度為4字節,不同的命令對應不同的命令參數值。SD卡的響應有4種格式,分別為R1、R1B、R2和R3格式。主機發(fā)送命令并讀取響應形成一個(gè)完整的命令實(shí)現過(guò)程。
表2 SPI模式命令格式
字節6 字節2~5 字節1
0 1 Command Parameter(高位在前) CRC 1
  應用層函數提供客戶(hù)程序訪(fǎng)問(wèn)SD卡的高級接口函數.使客戶(hù)不需要知道SD卡的內部結構和命令內容、不需要知道SPI的接口協(xié)議等基本內容,客戶(hù)程序只需要簡(jiǎn)單地調用接口函數了解SD卡的當前狀態(tài)、讀取自己需要的內容或寫(xiě)入自己的內容。應用層程序是在命令層基礎上的更高抽象,調用命令層函數實(shí)現。這些函數包括讀數據、寫(xiě)數據、擦除數據、返回卡狀態(tài)、返回卡內存儲空間使用狀況等函數。

4 結論
  本文作者的創(chuàng )新點(diǎn)是,將SD卡存儲方式運用到飛機飛行數據采集系統,簡(jiǎn)化了采集系統的設計,減小了系統尺寸,提高了系統的可靠性,使采集數據的讀出變得簡(jiǎn)單易行。由于原有數據采集系統,采用80作主控制器,本次設計選用與8051完全兼容的高性能單片機C8051F020。既繼承了原有采集系統的設計,又滿(mǎn)足了訪(fǎng)問(wèn)SD卡的功能要求,加快了整個(gè)系統的設計進(jìn)程。


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>