《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > C8051F020在SD卡主控制器設(shè)計(jì)中的應(yīng)用
C8051F020在SD卡主控制器設(shè)計(jì)中的應(yīng)用
維庫(kù)
摘要: 本文將SD卡存儲(chǔ)方式運(yùn)用到飛機(jī)飛行數(shù)據(jù)采集系統(tǒng),簡(jiǎn)化了采集系統(tǒng)的設(shè)計(jì),,減小了系統(tǒng)尺寸,,提高了系統(tǒng)的可靠性,使采集數(shù)據(jù)的讀出變得簡(jiǎn)單易行。由于原有數(shù)據(jù)采集系統(tǒng),采用8051單片機(jī)作主控制器,本次設(shè)計(jì)選用與8051完全兼容的高性能單片機(jī)C8051F020,。既繼承了原有采集系統(tǒng)的設(shè)計(jì),又滿(mǎn)足了訪(fǎng)問(wèn)SD卡的功能要求,,加快了整個(gè)系統(tǒng)的設(shè)計(jì)進(jìn)程,。
Abstract:
Key words :

1 引言

  飛機(jī)飛行狀況監(jiān)測(cè)及數(shù)據(jù)采集儀。用于采集飛機(jī)試飛時(shí)的各種飛行數(shù)據(jù),,要求大量的存儲(chǔ)容量,。它具有功能強(qiáng)、性?xún)r(jià)比高,、安裝和使用方便的特點(diǎn),。采集儀可以根據(jù)用戶(hù)的要求進(jìn)行配置,對(duì)八路傳感器輸入信號(hào)進(jìn)行調(diào)理,、采樣及數(shù)據(jù)處理,,將測(cè)量結(jié)果實(shí)時(shí)動(dòng)態(tài)顯示,并通過(guò)其報(bào)警功能,,實(shí)現(xiàn)設(shè)備故障預(yù)警,。采集儀既可以單機(jī)獨(dú)立工作,也可以通過(guò)RS-485總線(xiàn)將多達(dá)16臺(tái)采集儀與計(jì)算機(jī)聯(lián)機(jī)組成在線(xiàn)監(jiān)測(cè)系統(tǒng),。應(yīng)用范圍包括各種不同類(lèi)型的電機(jī),、風(fēng)機(jī)、泵,、齒輪箱、軋機(jī),、風(fēng)力發(fā)電機(jī),、電站和離心機(jī),,以及各種機(jī)械設(shè)備常見(jiàn)故障的狀態(tài)監(jiān)測(cè)等。

  2 硬件功能原理與設(shè)計(jì)

  SD卡的外形和接口如圖1所示,。根據(jù)SD卡與主控制器的通信協(xié)議不同,,SD卡對(duì)外提供兩種訪(fǎng)問(wèn)模式:SD模式和SPI模式。所用通信模式不同,,SD卡引腳的功能也不同,,具體引腳功能如表1所示。在具體通信過(guò)程中,,主機(jī)只能選擇其中一種通信模式,。通信模式的選擇對(duì)于主控制器來(lái)說(shuō)是透明的,卡會(huì)自動(dòng)檢測(cè)復(fù)位命令的通信協(xié)議模式,,而且通信模式一旦選定,,系統(tǒng)在通電情況下不能改變。SD模式下,,主控制器使用SD總線(xiàn)訪(fǎng)問(wèn)SD卡,。可通常的單片機(jī)沒(méi)有硬件SD總線(xiàn),,盡管可以借助通用口線(xiàn)用軟件仿真,,但訪(fǎng)問(wèn)速度較低,還要大量占用CPU時(shí)間,,而單片機(jī)多具有SPI總線(xiàn),。

SD卡的形狀與接口

SD卡引腳定義

  注:S--電源;I--輸入,;O--推挽輸出,;PP--推挽I/O。

  在SPI總線(xiàn)模式下,。CS為主控制器向卡發(fā)送的片選信號(hào),,SCLK為主控制器向卡發(fā)送的時(shí)鐘信號(hào)。DI(DataIn)為主控制器向卡發(fā)送的單向數(shù)據(jù)信號(hào),,DO(DataOut)為卡向主控制器發(fā)送的單向數(shù)據(jù)信號(hào),。SD卡的內(nèi)部結(jié)構(gòu)如圖2所示,還具有卡接口控制器,、寄存器以及SD和SPI兩種模式的對(duì)外接口等,。外部主控制器訪(fǎng)問(wèn)卡的外部信號(hào)線(xiàn)并不與存儲(chǔ)器單元直接相連,而是通過(guò)卡的接口控制器與存儲(chǔ)器單元接口相連,??▋?nèi)存儲(chǔ)單元的讀,擦,,寫(xiě)由卡接口控制器根據(jù)主控制器的命令自動(dòng)處理完成,,而主控制器無(wú)須知道卡內(nèi)是如何操作,、管理存儲(chǔ)單元的。SD卡內(nèi)部有6個(gè)信息寄存器,,用來(lái)設(shè)置和保存操作卡的關(guān)鍵信息,,有兩個(gè)狀態(tài)寄存器,用來(lái)記錄操作卡的當(dāng)前狀態(tài),。

  采集儀的主控制器采用了C8051F020單片機(jī),。C8051F020是完全集成的混合信號(hào)系統(tǒng)級(jí)MCU芯片。這個(gè)系列單片機(jī)與8051在指令上完全兼容,,性能遠(yuǎn)遠(yuǎn)高于標(biāo)準(zhǔn)的8051單片機(jī),。又?jǐn)U展了豐富的外設(shè),是一種名副其實(shí)的SOC (System On Chip)單片機(jī),,與SD卡系統(tǒng)相關(guān)的特性如下:

SD卡內(nèi)部結(jié)構(gòu)

  單片機(jī)內(nèi)部采用流水線(xiàn)結(jié)構(gòu),。指令運(yùn)行速度高。指令運(yùn)行速度比一般的80C51系列單片機(jī)提高了大約10倍,。

  具有SPI 硬件接口,。可與SD卡的SPI 總線(xiàn)很好接口,。

  具有8個(gè)8位I/O端口,。除滿(mǎn)足數(shù)據(jù)采集需要外。有足夠的口線(xiàn)用于單片機(jī)與SD卡的連接,。而且,。這些口線(xiàn)可通過(guò)軟件進(jìn)行配置,獲得不同的功能,,其中SPI 接口,,就是通過(guò)配置相關(guān)寄存器而獲得的。

  具有可擴(kuò)展的中斷系統(tǒng),。支持22個(gè)中斷源,。

  片內(nèi)存儲(chǔ)器包括64KB的Flash、和4KB的XRAM,。不需要擴(kuò)展存儲(chǔ)器,。就可以滿(mǎn)足文件系統(tǒng)的建立和訪(fǎng)問(wèn)SD 卡的需要。

  3.3V的工作電壓,,與SD卡工作電壓兼容,。

  時(shí)鐘系統(tǒng)更加完善,可以使用內(nèi)部時(shí)鐘,,也可以使用外部時(shí)鐘,。

  可實(shí)現(xiàn)通過(guò)JTAG接口的在系統(tǒng)調(diào)試。

  C8051F系列單片機(jī)的SPI串行接口的主要特點(diǎn)如下:全雙工,三線(xiàn)同步傳輸,,即在發(fā)送的同時(shí)也能接受,;可以工作在主機(jī)方式或從機(jī)方式;主機(jī)最大數(shù)據(jù)傳輸速率(位/秒)是系統(tǒng)時(shí)鐘頻率的1/2.因而最高可達(dá)10Mb/s,;SPI位傳輸速率可通過(guò)編程選擇;發(fā)送結(jié)束設(shè)置中斷標(biāo)志,。發(fā)送期間不占用CPU時(shí)間,;串行時(shí)鐘極性與相位可編程改變;具有寫(xiě)沖突保護(hù)和總線(xiàn)競(jìng)爭(zhēng)保護(hù),。

  對(duì)于C8051F020的SPI系統(tǒng),。首先通過(guò)設(shè)置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接口了,。SPI0CFG是SPI的配置寄存器,用于配置SPI的工作方式,。并反映通信過(guò)程中的數(shù)據(jù)發(fā)送狀態(tài),。并反映通信過(guò)程中的一些錯(cuò)誤標(biāo)志,SPI0CKR是SPI的時(shí)鐘速率寄存器,,用于選擇SCK輸出的頻率,。

  主控制器C8051F020與SD卡座的電路連接圖如圖3所示。除了SPI接口的連接外,,還有三根控制線(xiàn),,P0.4_SD_INSERT就是I/O端口P0.4,用于檢測(cè)SD卡在卡座上是否插好,。完全插入時(shí)該引腳為低電平,,否則為高電平。P0.5_SD_WP就是I/O端口P0.5,,用于檢測(cè)SD卡當(dāng)前是否設(shè)置寫(xiě)保護(hù),。寫(xiě)保護(hù)時(shí)該引腳為高電平,否則為低電平。P0.6_SD_POWER就是I/O端口P0.6,,用于SD卡的供電控制,,這是為了在SD卡進(jìn)入不確定狀態(tài)時(shí),可以通過(guò)對(duì)卡重新上電復(fù)位而無(wú)需拔出卡,。

  3 軟件設(shè)計(jì)

  硬件抽象層包括訪(fǎng)問(wèn)SD卡的硬件環(huán)境配置,、SPI接口實(shí)現(xiàn)通訊的基本函數(shù)以及SPI中斷的處理。硬件環(huán)境配置包括硬件初始化,、以及內(nèi)存變量初始化等,。SPI接口實(shí)現(xiàn)通訊的基本函數(shù),包括主控制器向SD卡發(fā)送一字節(jié)和從SD卡讀取一字節(jié)的基本函數(shù),,這是所有SPI通訊的基礎(chǔ),。SPI中斷處理是SPI接口產(chǎn)生中斷時(shí)。中斷服務(wù)程序被自動(dòng)調(diào)用,,在中斷服務(wù)程序中,,讀取SPI控制寄存器。這里存放著產(chǎn)生中斷的各種狀態(tài)標(biāo)志,,根據(jù)不同的狀態(tài)標(biāo)志,,調(diào)用不同的函數(shù)處理。

  命令層,,就是調(diào)用硬件抽象層的基本發(fā)送接收字節(jié)函數(shù),,實(shí)現(xiàn)SD卡所有SPI協(xié)議規(guī)定的命令。根據(jù)SD卡協(xié)議,,訪(fǎng)問(wèn)SD卡的不同功能,,由不同的命令實(shí)現(xiàn)。這些命令分成0—9個(gè)不同的類(lèi)別,。每種類(lèi)別包括幾個(gè)具體的命令,,對(duì)于SPI協(xié)議,每個(gè)命令都由主機(jī)主動(dòng)發(fā)送,。高位在前低位在后,,SD卡收到命令后。根據(jù)不同的命令做出不同的響應(yīng),。主機(jī)發(fā)送的命令長(zhǎng)度總是6個(gè)字節(jié),。命令的格式如表2所示,Command表示命令號(hào),,占用6位,,Parameter表示命令參數(shù),長(zhǎng)度為4字節(jié),,不同的命令對(duì)應(yīng)不同的命令參數(shù)值,。SD卡的響應(yīng)有4種格式,,分別為R1、R1B,、R2和R3格式,。

  表2 SPI模式命令格式

  字節(jié)6 字節(jié)2~5 字節(jié)1

  0 1 Command Parameter(高位在前) CRC 1

  應(yīng)用層函數(shù)提供客戶(hù)程序訪(fǎng)問(wèn)SD卡的高級(jí)接口函數(shù)。使客戶(hù)不需要知道SD卡的內(nèi)部結(jié)構(gòu)和命令內(nèi)容,、不需要知道SPI的接口協(xié)議等基本內(nèi)容,,客戶(hù)程序只需要簡(jiǎn)單地調(diào)用接口函數(shù)了解SD卡的當(dāng)前狀態(tài)、讀取自己需要的內(nèi)容或?qū)懭胱约旱膬?nèi)容,。應(yīng)用層程序是在命令層基礎(chǔ)上的更高抽象,,調(diào)用命令層函數(shù)實(shí)現(xiàn)

  4 結(jié)論

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


 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。