歡迎您光臨本站 登入註冊首頁

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

admin @ 2014-03-25 , reply:0

概述

1引言   飛機飛行狀況監測及數據採集儀.用於採集飛機試飛時的各種飛行數據,要求大量的存儲容量。在飛機回到地面后,需要方便地將採集數據傳輸到通用計算機上,以便作進一步的數……

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

2 硬體功能原理與設計
    SD卡的外形和介面如圖1所示。根據SD卡與主控制器的通信協議不同,SD卡對外提供兩種訪問模式:SD模式和SPI模式。所用通信模式不同,SD卡引腳的功能也不同,具體引腳功能如表1所示。在具體通信過程中,主機只能選擇其中一種通信模式。通信模式的選擇對於主控制器來說是透明的,卡會自動檢測複位命令的通信協議模式,而且通信模式一旦選定,系統在通電情況下不能改變。SD模式下,主控制器使用SD匯流排訪問SD卡。可通常的單片機沒有硬體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模式命令格式
位元組6
位元組2~5
位元組1
0
1
Command
Parameter(高位在前)
CRC
1
    應用層函數提供客戶程序訪問SD卡的高級介面函數.使客戶不需要知道SD卡的內部結構和命令內容、不需要知道SPI的介面協議等基本內容,客戶程序只需要簡單地調用介面函數了解SD卡的當前狀態、讀取自己需要的內容或寫入自己的內容。應用層程序是在命令層基礎上的更高抽象,調用命令層函數實現。這些函數包括讀數據、寫數據、擦除數據、返回卡狀態、返回卡內存儲空間使用狀況等函數。

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


[admin via 研發互助社區 ] 基於C8051F020的SD卡主控制器設計已經有3667次圍觀

http://cocdig.com/docs/show-post-42156.html