版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> NO:</b></p><p><b> 畢業(yè)論文</b></p><p> 題目:SD卡存儲(chǔ)采集數(shù)據(jù)電路設(shè)計(jì)</p><p> 專業(yè):電子信息工程技術(shù)</p><p> 2013年06月10日 </p><p><b> 摘
2、 要</b></p><p> 隨著微電子技術(shù)的迅猛發(fā)展,集成電路組成的電子系統(tǒng)集成度越來越高,使得芯片的復(fù)雜性不斷上升,單片的成本卻不斷降低。FPGA產(chǎn)品的邏輯單元越來越多,性能越來越高,單位成本和功耗向越來越低的方向發(fā)展,使得可編程片上系統(tǒng)SOPC(System On Programmable Chip)設(shè)計(jì)成為必然趨勢(shì)。SD存儲(chǔ)卡因具備體積小、儲(chǔ)容量高、可擦寫、價(jià)格低以及非易失性等特點(diǎn)被廣泛
3、應(yīng)用于手機(jī)、數(shù)碼相機(jī)、MP3播放器等領(lǐng)域。</p><p> 針對(duì)傳統(tǒng)方法中 單片機(jī)(MCU )讀寫SD卡數(shù)據(jù)時(shí)需要執(zhí)行復(fù)雜的文件分區(qū)表數(shù)據(jù)操作的缺點(diǎn), 以LED護(hù)欄管顯示屏技術(shù)要求為例, 提出了一種單片機(jī)主從系統(tǒng)中快速、簡(jiǎn)單的SD卡存儲(chǔ)器的訪問方法, 并給出了一種實(shí)用的SD卡與單片機(jī)連接的接口電路。采用該方法讀取SD卡控制數(shù)據(jù)與存儲(chǔ)文件的分區(qū)表格式無關(guān), 因此支持FAT
4、32、NTFS、exFAT等文件格式下從16MB ~ 32 GB的SD卡。該方法對(duì)需從SD卡中連續(xù)讀取控制數(shù)據(jù)的主、從控制系統(tǒng)均適用, 有很強(qiáng)的實(shí)用性。該方法在LED護(hù)欄管顯示屏控制器產(chǎn)品中得到應(yīng)用, 應(yīng)用結(jié)果表明該系統(tǒng)讀取數(shù)據(jù)穩(wěn)定, 控制效果良好。</p><p> 論文介紹了SD卡存儲(chǔ)采集數(shù)據(jù)電路設(shè)計(jì)原理、電路以及程序,闡述了基于STC12C5A60S2芯片主控的DY_mini80E開發(fā)板實(shí)現(xiàn)數(shù)據(jù)的采集和數(shù)
5、據(jù)的SD存儲(chǔ)的設(shè)計(jì)電路過程和實(shí)現(xiàn)方法以及運(yùn)行得到的結(jié)果分析。該系統(tǒng)能同時(shí)采集四路周期信號(hào)波形,并將四路模擬電壓(0-5V)進(jìn)行A/D轉(zhuǎn)換,每秒鐘轉(zhuǎn)換一次,結(jié)果轉(zhuǎn)換為ASCII碼形式,且四路結(jié)果分別存儲(chǔ)到SD卡預(yù)先建立好的CH1.txt、CH2.txt、CH3.txt、CH4.txt文檔中。設(shè)計(jì)在STC12C5A60S2主控芯片的DY_mini80E開發(fā)板上,利用開發(fā)板上A/D轉(zhuǎn)換模塊PCF8591,外接SD接口模塊,完成了調(diào)試實(shí)現(xiàn)。&l
6、t;/p><p> 關(guān)鍵詞: 數(shù)據(jù)采集;STC12C5A60S2; SD卡;</p><p><b> Abstract</b></p><p> Electronic systems integration is increasing of Integrated circuit components with the Bureau of t
7、he rapid development of microelectronic technology,The rapid development of microelectronic technology and the high integration IC,makes the chip more complexity with lower cost ever than befor.While FPGA is being develo
8、ped in the direction which contents more and more logic elements,with high performance,low cost and low power.So,SOPC</p><p> technology becomes all inevitable trend.The Card SD with small size high storage
9、 capacity.rewritable,low prices,as well as non-volatile and other characteristics have been widely used in mobile phones,digital cameras,MP3 players and other fields.</p><p> In order to reduce the difficul
10、ty of secure digital memory card operation in microcontroller unit (MCU) system, a simple SD card driven method and interface circuitw as introduced. This method is independent of partition tab le, so it susta insall
11、kinds of SD card and partition formats, including FAT32, NTFS, ex FAT form at from 16MByte to 32 GByte SD card. It can be appropriate for Masterslave control system using SD card. This method was used in LED display cont
12、roller system. The applicatio</p><p> This paper introduces the SD card store data acquisition circuit design principle, circuit and program, this paper expounds the main control based on STC12C5A60S2 chip
13、DY_mini80E development board realize data acquisition and data storage SD circuit design process and the realization methods and operation result analysis. The system can also collecting four ways of periodic signal wave
14、form, and will be four road simulation voltage (0-5 V) for A/D conversion, every second conversion once, result </p><p> Keyword: Data collection;STC12C5A60S2; SD card; </p><p><b> 目 錄&
15、lt;/b></p><p><b> 引言1</b></p><p> 1方案論證與選擇2</p><p> 1.1 題目來源2</p><p> 1.2 研究目的和意義2</p><p> 1.3 主要研究?jī)?nèi)容、需重點(diǎn)研究的關(guān)鍵問題及解決思路2</p>
16、<p> 2 SD卡簡(jiǎn)介4</p><p> 2.1 SD卡的系統(tǒng)概念4</p><p> 2.1.1 SD卡的結(jié)構(gòu)4</p><p> 2.1.2 SD卡的引腳定義5</p><p> 2.1.3 SD卡SPI模式工作介紹5</p><p> 2.2 SD卡總線介紹6</p&
17、gt;<p> 2.2.1 SD卡總線6</p><p> 2.2.2 SPI總線7</p><p> 2.2.3 總線協(xié)議8</p><p> 2.3 SD卡的命令9</p><p> 2.3.1 SD卡的命令格式9</p><p> 2.3.2 SD卡的命令類型9</p&
18、gt;<p><b> 3 硬件設(shè)計(jì)11</b></p><p> 3.1 電源模塊11</p><p> 3.2 單片機(jī)最小系統(tǒng)12</p><p> 3.2.1單片機(jī)原理圖及其特性12</p><p> 3.2.2 STC12C5A60S2系列單片機(jī)的內(nèi)部結(jié)構(gòu)14</p>
19、<p> 3.2.3 單片機(jī)STC12C5A60S2最小系統(tǒng)的組成14</p><p> 3.2.4 帶SD卡的TFT彩屏17</p><p><b> 4 軟件設(shè)計(jì)19</b></p><p> 4.1軟件設(shè)計(jì)目標(biāo)19</p><p> 4.2 Keil軟件簡(jiǎn)介19</p>
20、<p> 4.3 Keil軟件調(diào)試功能19</p><p> 4.4 系統(tǒng)設(shè)計(jì)20</p><p> 4.4.1系統(tǒng)初始化20</p><p> 4.4.2 SD卡初始化22</p><p> 4.4.3 數(shù)據(jù)塊的讀寫23</p><p> 4.4.4 SD卡存儲(chǔ)時(shí)間和電壓流程圖2
21、4</p><p> 4.4.5定時(shí)器T0函數(shù)流程圖24</p><p> 4.4.6主體程序流程圖25</p><p><b> 5 結(jié)論27</b></p><p><b> 謝 辭28</b></p><p><b> 參考文獻(xiàn)29<
22、;/b></p><p><b> 附 錄30</b></p><p><b> 引言</b></p><p> 微電子技術(shù)的發(fā)展是一個(gè)不斷創(chuàng)新的過程,這種創(chuàng)新包括理論創(chuàng)新、技術(shù)創(chuàng)新和應(yīng)用的創(chuàng)新,每一種創(chuàng)新都能開拓出一個(gè)新的領(lǐng)域,帶來新的市場(chǎng),產(chǎn)生重大的影響。</p><p>
23、 現(xiàn)今對(duì)于數(shù)據(jù)采集系統(tǒng)要求日趨增高,大量的采集數(shù)據(jù)使得很多采集系統(tǒng)都需要借助外部存儲(chǔ)介質(zhì)進(jìn)行數(shù)據(jù)存儲(chǔ),因此對(duì)于外部介質(zhì)存儲(chǔ)容量以及傳輸速度的要求顯得尤為突出。SD 卡作為一種基于半導(dǎo)體閃存工藝的存儲(chǔ)卡, 1999 年由日本松下、東芝和美國(guó)SanDisk 公司共同研制完成。其體積小、容量大以及數(shù)據(jù)傳輸快等優(yōu)點(diǎn),是眾多電子設(shè)備理想的外部存儲(chǔ)介質(zhì)。在眾多廠商推動(dòng)下,SD 卡已成為目前消費(fèi)數(shù)碼設(shè)備中應(yīng)用最廣泛的一種存儲(chǔ)卡。</p>
24、<p> 為使采集數(shù)據(jù)可直接在PC 上讀取、處理,需要使用文件系統(tǒng)組織數(shù)據(jù)格式,文件系統(tǒng)即操作系統(tǒng)用于明確磁盤或分區(qū)上文件的方法和數(shù)據(jù)結(jié)構(gòu),是對(duì)文件的管理規(guī)則,也是操作系統(tǒng)的重要組成部分。而操作系統(tǒng)對(duì)處理器要求較高,且占用一定的存儲(chǔ)空間,對(duì)于許多無法使用嵌入操作系統(tǒng)的處理器,需要自己來實(shí)現(xiàn)文件系統(tǒng)———在處理器中內(nèi)嵌文件系統(tǒng)。</p><p> 長(zhǎng)期以來,以Flash Memory 為存儲(chǔ)體的SD
25、 卡因具備體積小、功耗低、可擦寫以及非易失性等特點(diǎn)而被廣泛應(yīng)用于消費(fèi)類電子產(chǎn)品中。特別是近年來,隨著價(jià)格不斷下降且存儲(chǔ)容量不斷提高,它的應(yīng)用范圍日益增廣。當(dāng)數(shù)據(jù)采集系統(tǒng)需要長(zhǎng)時(shí)間地采集、記錄海量數(shù)據(jù)時(shí),選擇SD 卡作為存儲(chǔ)媒質(zhì)是開發(fā)者們一個(gè)很好的選擇。在電能監(jiān)測(cè)以及無功補(bǔ)償系統(tǒng)中,要連續(xù)記錄大量的電壓、電流、有功功率、無功功率以及時(shí)間等參數(shù),當(dāng)單片機(jī)采集到這些數(shù)據(jù)時(shí)可以利用SD 作為存儲(chǔ)媒質(zhì)。</p><p>
26、 單片機(jī)是智能化模塊,有數(shù)據(jù)存儲(chǔ)、讀寫的功能,并且支持匯編和C語言編程,在工作電壓穩(wěn)定的條件下可以實(shí)現(xiàn)長(zhǎng)時(shí)間穩(wěn)定的工作,而且還具有價(jià)格低廉的優(yōu)勢(shì)。在讀寫SD卡中,單片機(jī)比PC機(jī)更適合在現(xiàn)場(chǎng)長(zhǎng)時(shí)間工作。而STC12C5A60S2系列單片機(jī)價(jià)格便宜、性能穩(wěn)定?;诖颂攸c(diǎn),設(shè)計(jì)采用PCF8591進(jìn)行A/D轉(zhuǎn)換,用STC12C5A60S2單片機(jī)對(duì)SD卡進(jìn)行讀寫操作。</p><p><b> 1方案論證與選擇
27、</b></p><p><b> 1.1 題目來源</b></p><p> SD存儲(chǔ)卡在嵌入式產(chǎn)品中應(yīng)用越來越廣泛,但SD卡接口一般僅集成以ARM為代表的32位處理器中,而大量運(yùn)用的51單片機(jī)則由于資源限制沒有該接口。因此,如何解決51單片機(jī)應(yīng)用系統(tǒng)存取SD卡大容量數(shù)據(jù)就顯得很有實(shí)際意義。</p><p> 1.2 研究目
28、的和意義</p><p> 目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。51單片機(jī)是基礎(chǔ)入
29、門的一個(gè)單片機(jī),還是應(yīng)用最廣泛的一種。</p><p> SD卡(Secure Digital Memory Card)中文翻譯為安全數(shù)碼卡,是一種基于半導(dǎo)體快閃記憶器的新一代記憶設(shè)備,它被廣泛地于便攜式裝置上使用,例如數(shù)碼相機(jī)、個(gè)人數(shù)碼助理(PDA)和多媒體播放器等。SD卡由日本松下、東芝及美國(guó)SanDisk公司于1999年8月共同開發(fā)研制。大小猶如一張郵票的SD記憶卡,重量只有2克,但卻擁有高記憶容量、快速
30、數(shù)據(jù)傳輸率、極大的移動(dòng)靈活性以及很好的安全性。</p><p> 本設(shè)計(jì)是通過對(duì)51單片機(jī)與SD卡的驅(qū)動(dòng)接口進(jìn)行設(shè)計(jì),實(shí)現(xiàn)普通單片機(jī)對(duì)大量數(shù)據(jù)的轉(zhuǎn)存。</p><p> 1.3 主要研究?jī)?nèi)容、需重點(diǎn)研究的關(guān)鍵問題及解決思路</p><p> 設(shè)計(jì)研究的是SD卡與單片機(jī)的驅(qū)動(dòng)接口設(shè)計(jì),因此首要的任務(wù)是尋找一個(gè)實(shí)現(xiàn)AT89C52單片機(jī)與SD卡通訊的解決方案;其次,
31、SD卡所能接受的邏輯電平與AT89C52提供的邏輯電平不匹配,需要解決電平匹配問題。</p><p> SD卡有兩個(gè)可選的通訊協(xié)議:SD模式和SPI模式。SD模式需要選擇帶有SD卡控制器接口的MCU,或者必須加入額外的SD卡控制單元以支持SD卡的讀寫。AT89C52單片機(jī)沒有集成SD卡控制器接口,若選用SD模式通訊就無形中增加了產(chǎn)品的硬件成本。在SD卡數(shù)據(jù)讀寫時(shí)間要求不是很嚴(yán)格的情況下,選用SPI模式可以說是一
32、種最佳的解決方案。因?yàn)樵赟PI模式下,通過四條線就可以完成所有的數(shù)據(jù)交換,并且目前市場(chǎng)上很多MCU都集成有現(xiàn)成的SPI接口電路,采用SPI模式對(duì)SD卡進(jìn)行讀寫操作可大大簡(jiǎn)化硬件電路的設(shè)計(jì)。雖然AT89C52不帶SD卡硬件控制器,也沒有現(xiàn)成的SPI接口模塊,但是可以用軟件模擬出SPI總線時(shí)序。</p><p> SD卡的邏輯電平相當(dāng)于3.3V TTL電平標(biāo)準(zhǔn),而控制芯片AT89C52的邏輯電平為5V CMOS電平
33、標(biāo)準(zhǔn)。要解決這一問題,最根本的就是解決邏輯器件接口的電平兼容問題,原則主要有兩條:一為輸出電平器件輸出高電平的最小電壓值,應(yīng)該大于接收電平器件識(shí)別為高電平的最低電壓值;另一條為輸出電平器件輸出低電平的最大電壓值,應(yīng)該小于接收電平器件識(shí)別為低電平的最高電壓值??紤]到SD卡在SPI協(xié)議的工作模式下,通訊都是單向的,于是在單片機(jī)向SD卡傳輸數(shù)據(jù)時(shí)采用晶體管加上拉電阻法的方案。而在SD卡向單片機(jī)傳輸數(shù)據(jù)時(shí)可以直接連接,因?yàn)樗鼈冎g的電平剛好滿足
34、上述的電平兼容原則,既經(jīng)濟(jì)又實(shí)用。</p><p> 其次是硬件平臺(tái)和軟件平臺(tái)的選擇,包括單片機(jī)和SD卡選型、編程語言、軟件開發(fā)工具、軟件仿真工具等。根據(jù)實(shí)際情況,本課題使用的是AT89C52單片機(jī),SD卡為SanDisk公司的2G卡,編程語言為C語言,Keil +Proteus用于程序代碼的編輯、編譯及系統(tǒng)仿真。</p><p><b> 2 SD卡簡(jiǎn)介</b>
35、;</p><p> 2.1 SD卡的系統(tǒng)概念</p><p> 2.1.1 SD卡的結(jié)構(gòu)</p><p> SD卡的外形與接口如圖2.1,它有9個(gè)接點(diǎn)與主機(jī)相連,其接口端定義如表2.1所示。SD卡有兩種操作模式,一種是SD模式,另一種是SPI模式,不同模式下端口的定義不同。SD模式有一個(gè)時(shí)鐘線、一個(gè)命令/反饋線、四根輸入/輸出信號(hào)線、兩個(gè)電源地和一個(gè)電源,所
36、有九根線都有定義,數(shù)據(jù)傳輸速率較快。SPI模式只用到CS片選、數(shù)據(jù)輸入、數(shù)據(jù)輸出、時(shí)鐘、電源地及電源六根線。SPI模式較SD模式速度較慢,但很多單片機(jī)都有專用的SPI總線,可與SD卡直接相連,使用方便。</p><p> SD卡的內(nèi)部結(jié)構(gòu)如圖2.2所示,主要有四部分組成,一是接口電路,共有九個(gè)接口電路,定義如表1所示。二是接口控制電路,所有操作都由該控制電路具體去執(zhí)行。三是內(nèi)部寄存器組OCR、CID、RCA等。
37、四是存儲(chǔ)數(shù)據(jù)的存儲(chǔ)單元。接口電路通過控制電路與內(nèi)部寄存器組成存儲(chǔ)單元交換數(shù)據(jù),其主要操作有寫命令、讀數(shù)據(jù)、寫數(shù)據(jù)、讀狀態(tài)等。 </p><p> 圖2.1 SD卡的外形與接口 圖2.2 SD卡的內(nèi)部結(jié)構(gòu)</p><p> 2.1.2 SD卡的引腳定義</p><p> S
38、D卡的引腳定義見表2.1</p><p> 表2.1 SD卡引腳功能詳述</p><p> 2.1.3 SD卡SPI模式工作介紹</p><p> ?。?)SD卡SPI模式下與單片機(jī)的連接圖如圖2.3</p><p> 圖2.3 SD卡SPI模式下與單片機(jī)連接圖</p><p> SD卡支持兩種總線方式:SD方
39、式與SPI方式。其中SD方式采用6線制,使用CLK、CMD、DAT0~DAT3進(jìn)行數(shù)據(jù)通信。而SPI方式采用4線制,使用CS、CLK、DataIn、DataOut進(jìn)行數(shù)據(jù)通信。SD方式時(shí)的數(shù)據(jù)傳輸速度與SPI方式要快,采用單片機(jī)對(duì)SD卡進(jìn)行讀寫時(shí)一般都采用SPI模式。采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。這里只對(duì)其SPI方式進(jìn)行介紹。</p><p> ?。?)SPI方式驅(qū)動(dòng)SD卡的方法
40、 SD卡的SPI通信接口使其可以通過SPI通道進(jìn)行數(shù)據(jù)讀寫。從應(yīng)用的角度來看,采用SPI接口的好處在于,很多單片機(jī)內(nèi)部自帶SPI控制器,不光給開發(fā)上帶來方便,同時(shí)也見降低了開發(fā)成本。然而,它也有不好的地方,如失去了SD卡的性能優(yōu)勢(shì),要解決這一問題,就要用SD方式,因?yàn)樗峁└蟮目偩€數(shù)據(jù)帶寬。SPI接口的選用是在上電初始時(shí)向其寫入第一個(gè)命令時(shí)進(jìn)行的。以下介紹SD卡的驅(qū)動(dòng)方法,只實(shí)現(xiàn)簡(jiǎn)單的扇區(qū)讀寫。</p><p
41、> 2.2 SD卡總線介紹</p><p> SD存儲(chǔ)卡定義了兩種可選擇的總線協(xié)議,分別是SD和SPI。與SD卡通信的主機(jī)一方可以透明地選擇與SD的通信模式。</p><p> 2.2.1 SD卡總線</p><p> SD總線包括以下的信號(hào):</p><p> CLK:主機(jī)與卡之間的同步時(shí)鐘;CMD:雙向的命令/反饋信號(hào);
42、</p><p> DATo~DAT3:4位雙向的數(shù)據(jù)傳輸線;</p><p> VDD,Vss1,Vss2:電源和地信號(hào)。通過同步星型拓?fù)?,SD總線可以接一個(gè)主SD卡,或者多個(gè)從SD卡。時(shí)鐘、電源和地信號(hào)是所有卡公用的。主機(jī)和每張SD卡的CMD、DAT0~DAT3信號(hào)連線必須點(diǎn)對(duì)點(diǎn)的進(jìn)行連接。</p><p> SD總線連接圖如圖2.4所示。</p&
43、gt;<p> 圖2.4 SD總線連接圖</p><p> 2.2.2 SPI總線</p><p> 兼容SD卡的SPI通信模式是一種通過SPI信道訪問SD卡的方式。SPI標(biāo)準(zhǔn)僅僅定義了物理連接方式,并未包括完整的數(shù)據(jù)傳輸協(xié)議。SD卡的SPI總線實(shí)現(xiàn)方式使用了和SD總線相同的命令集。從應(yīng)用的角度來看,使用SPI總線模式的好處是它對(duì)主機(jī)的性能要求降至最低,另一方面,它也為
44、產(chǎn)品設(shè)計(jì)成最小化作出了努力。它的不利之處是降低了系統(tǒng)的性能,也沒有SD總線那樣更多的連接選項(xiàng)。一般而言,兼容SD卡的SPI總線包含以下信號(hào)。. CS:主機(jī)到卡芯片之間的片選信號(hào); CLK:主機(jī)與卡之間的同步時(shí)鐘; Dataln:主機(jī)到卡之間的數(shù)據(jù)輸入信號(hào); DataOut:主機(jī)到卡之間的數(shù)據(jù)輸出信號(hào)。 圖2.5是SPI總線連接圖。</p><p> 圖2.5 SPI總線連接&
45、lt;/p><p> 2.2.3 總線協(xié)議</p><p><b> (1)SD總線協(xié)議</b></p><p> SD總線上的通信是以命令幀、反饋幀和數(shù)據(jù)幀進(jìn)行的,這幾種幀格式都包含起始位和停止位。</p><p> >命令幀:命令幀用來傳輸一個(gè)操作命令的令牌。 >反饋幀:反饋幀是從地址卡或者所有
46、的連接卡發(fā)送給主機(jī)的作為對(duì)以前接收到的命令幀做出應(yīng)答的令牌。</p><p> >數(shù)據(jù)幀:數(shù)據(jù)幀用來在卡和主機(jī)之間進(jìn)行真正有用的數(shù)據(jù)傳輸。數(shù)據(jù)是通過數(shù)據(jù)鏈路進(jìn) 行傳輸?shù)?。SD總線協(xié)議的數(shù)據(jù)傳輸是以數(shù)據(jù)塊的方式進(jìn)行的。數(shù)據(jù)塊之后通常跟著CRC校驗(yàn)碼。</p><p> 在協(xié)議中定義了數(shù)據(jù)傳輸?shù)姆绞娇梢允菃螇K和多塊傳輸。多塊傳輸在進(jìn)行寫卡操作時(shí)的速度比單塊傳輸快得多。多塊傳輸會(huì)在CM
47、D線路上出現(xiàn)一個(gè)停止命令幀時(shí)中斷傳輸。寫操作和讀操作在時(shí)序上的不同在于數(shù)據(jù)線路DAT0上多了一個(gè)寫操作忙的信號(hào)。</p><p><b> (2)SPI總線</b></p><p> 雖然SD通道是面向有起止位的控制幀和數(shù)據(jù)流格式的傳輸,但是SPI通道是面向字節(jié)的傳輸。SPI的命令和數(shù)據(jù)塊都是按8個(gè)比特為單位進(jìn)行分組的,和SD協(xié)議相似,SPI的信息也分為控制幀、反
48、饋幀和數(shù)據(jù)幀,所有主機(jī)和卡之間的通信都被主機(jī)進(jìn)行控制,主機(jī)通過拉低CS信號(hào)以開始一個(gè)總線事務(wù)。SPI的反饋方式和SD協(xié)議相比有以下3個(gè)方面的不同。 >被選中的卡必須時(shí)刻對(duì)命令幀做出響應(yīng);</p><p> >使用兩種新的響應(yīng)結(jié)構(gòu)(8位或16位);</p><p> >當(dāng)卡獲取數(shù)據(jù)出問題時(shí),它將發(fā)出一個(gè)出錯(cuò)反饋幀通知主機(jī),而不是使用超時(shí)檢測(cè)的方式。除了需要對(duì)命
49、令幀做出反饋之外,在進(jìn)行寫卡操作期間,還需要對(duì)每一個(gè)發(fā)送到卡的數(shù)據(jù)塊發(fā)一個(gè)特別的數(shù)據(jù)反饋令牌。</p><p> 一個(gè)合法的數(shù)據(jù)塊的結(jié)尾應(yīng)當(dāng)包括16位的CRC校驗(yàn)部分,CRC校驗(yàn)值是按照標(biāo)準(zhǔn)的CCITT的x的16次方+X的12次方+X的5次方+1產(chǎn)生的。一旦數(shù)據(jù)讀取出現(xiàn)錯(cuò)誤,卡就不再傳輸數(shù)據(jù),取而代之的是發(fā)送一個(gè)數(shù)據(jù)出錯(cuò)令牌給主機(jī)。</p><p> 在SPI模式中也支持單塊和多塊的數(shù)
50、據(jù)寫命令??◤闹鳈C(jī)端接收到一個(gè)數(shù)據(jù)塊之后,它就會(huì)發(fā)一個(gè)數(shù)據(jù)響應(yīng)令牌給主機(jī),如果接收的數(shù)據(jù)經(jīng)校驗(yàn)無錯(cuò),就把數(shù)據(jù)寫入卡的存儲(chǔ)介質(zhì)中。如果卡正在忙于往存儲(chǔ)介質(zhì)中寫數(shù)據(jù)時(shí),它會(huì)持續(xù)發(fā)一個(gè)“工作忙”的令牌給主機(jī)。</p><p> 2.3 SD卡的命令</p><p> 2.3.1 SD卡的命令格式</p><p> SD卡的命令格式固定為6個(gè)字節(jié)48個(gè)位,其格式如圖2
51、.6所示。</p><p> 圖2.6 SD卡命令格式</p><p> 開始位固定為0,第二位固定為1,表示主機(jī)給SD卡的命令,然后是6位命令索引號(hào),索引號(hào)的大小與索引號(hào)數(shù)字相同,比如CMD0的索引號(hào)為000000,索引號(hào)41為101001。緊接著命令索引號(hào)是命令參數(shù),有些命令有參數(shù),有些命令沒有參數(shù),比如CMD0和CMD1命令參數(shù)為32個(gè)0,而命令CMD24、CMD17的命令參數(shù)是
52、數(shù)據(jù)的讀寫地址。最后是7位CRC校驗(yàn)位和一位停止位1。根據(jù)命令索引號(hào)可推知SD卡的命令最多不超過64個(gè)(有些命令索引號(hào)為保留以后升級(jí)用,沒有實(shí)際的命令相對(duì)應(yīng)),SD卡協(xié)議把卡的命令分為若干類,有些命令只有對(duì)SD模式起作用,有些命令只對(duì)SPI模式起作用,大部分命令是通用的,兩種模式下具有相同的命令。</p><p> 2.3.2 SD卡的命令類型</p><p><b> (1
53、) 命令類型</b></p><p> 控制SD卡有4種類型的命令:</p><p><b> 廣播命令,無響應(yīng)。</b></p><p> 廣播命令的特點(diǎn)是如果所有的CMD線與主機(jī)連接到一起。如果把它們分開,那么每張卡將在輪到它的時(shí)候單獨(dú)接收。</p><p> ② 有響應(yīng)的廣播命令。</p&
54、gt;<p> 從所有卡來的響應(yīng)是同時(shí)的。但是在SD卡里沒有開漏模式,這個(gè)類型命令只可以使用在所有的CMD線是分開的情況下。這個(gè)命令將被所有的卡單獨(dú)接受并響應(yīng)。</p><p> ?、?在DAT上沒有數(shù)據(jù)傳輸?shù)亩ㄖ?點(diǎn)對(duì)點(diǎn))命令。</p><p> ?、?在DAT上有數(shù)據(jù)傳輸?shù)亩ㄖ访睢?lt;/p><p> 所有的命令和響應(yīng)都在CMD線上進(jìn)行。命令傳
55、送總是從左邊的位開始。</p><p> ?。?) SD卡命令集:</p><p> SD卡命令共分為12類,分別為class0到classⅡ,不同的SD卡,主控根據(jù)其功能,支持不同的命令集如下:</p><p> C1ass0:(卡的識(shí)別、初始化等基本命令集):</p><p> CMD0:復(fù)位SD卡。</p><
56、;p> CMD1:讀OCR寄存器。</p><p> CMD9:讀CSD寄存器。</p><p> CMD10:讀CTD寄存器。</p><p> CMD12:停止讀多塊時(shí)的數(shù)據(jù)傳輸。</p><p> CMD13:讀Cardes Status寄存器。</p><p> Class2(讀卡命令集):&
57、lt;/p><p> CMD16:設(shè)置塊的長(zhǎng)度。</p><p> CMD17:讀單塊。</p><p> CMD18:讀多塊,直至主機(jī)發(fā)送CMD12為止。</p><p> Class4(寫卡命令集):</p><p> CMD24:寫單塊。</p><p> CMD25:寫多塊。&l
58、t;/p><p> CMD27:寫CSD寄存器。</p><p> Class5(擦除卡命令集):</p><p> CMD32:設(shè)置擦除塊的起始地址.</p><p> CMD33:設(shè)置擦除塊的終止地址。</p><p> CMD38:擦除所選擇的塊。</p><p> Class6(
59、寫保護(hù)命令集):</p><p> CMD28:設(shè)置寫保護(hù)塊的地址。</p><p> CMD29:擦除寫保護(hù)塊的地址。</p><p> CMD30:Ask the card for the status of the mite protection bits。</p><p> Class7:卡的鎖定,解鎖功能命令集。</p
60、><p> class8:申請(qǐng)?zhí)囟罴?lt;/p><p> classl0和class11:保留。</p><p> 其中class 1, class3,class9的SPI模式不支持。</p><p><b> 3 硬件設(shè)計(jì)</b></p><p> 系統(tǒng)整體硬件方案分為三個(gè)部分:電源部
61、分、單片機(jī)STC12C5A60S2主控芯片的DY_mini80E開發(fā)板的選擇部分(包括信號(hào)采集、A/D轉(zhuǎn)換等)、帶SD卡的TFT彩屏的選擇部分(包括SD卡工作電路部分等)。</p><p> 設(shè)計(jì)在Keil編程環(huán)境下,建立工程,編寫程序,然后將程序下載到單片機(jī)中,同時(shí)復(fù)位單片機(jī),然后調(diào)節(jié)DY_mini80E開發(fā)板上的四路電位器采集不同的電壓信號(hào)(四路電壓范圍均0V-5V),按動(dòng)采集鍵后,信號(hào)開始采集,每秒鐘各通
62、道進(jìn)行一次A/D轉(zhuǎn)換,并對(duì)數(shù)據(jù)進(jìn)行處理后由單片機(jī)控制分別存入帶SD卡的TFT彩屏的SD卡的相應(yīng)文檔中。并用TFT彩屏顯示經(jīng)過A/D轉(zhuǎn)換后的四路實(shí)時(shí)電壓,用以觀察采集數(shù)據(jù)的變化。</p><p><b> 3.1 電源模塊</b></p><p> SD卡的工作電平為3.3V,而控制芯片STC12C5A60S2的邏輯電平為5V CMOS電平標(biāo)準(zhǔn)。因此,它們之間不能直
63、接相連,否則可能會(huì)燒壞SD卡;出于對(duì)安全工作的考慮,有必要解決電平匹配問題。</p><p> 要解決這一問題,最根本的就是解決邏輯器件接口的要有兩條:一為輸出電平器件輸出高電平的最小電壓值,應(yīng)該大于接收電平器件識(shí)別為高電平的最低電壓值;另一條為輸出電平器件輸出低電平的最大電壓值,應(yīng)該小于接收電平器件識(shí)別為低電平的最高電壓值。</p><p> 一般來說,通用的電平轉(zhuǎn)換方案是采用類似S
64、N74ALVC4245的專用電平轉(zhuǎn)換芯片,這類芯片不僅可以用作升壓和降壓,而且允許兩邊電源不同。但是,這個(gè)方案代價(jià)相對(duì)昂貴,而且一般的專用電平轉(zhuǎn)換芯片都是同時(shí)轉(zhuǎn)換8路、16路或者更多路數(shù)的電平,相對(duì)本系統(tǒng)僅僅需要轉(zhuǎn)換4路來說是一種資源的浪費(fèi)。 </p><p> 帶SD卡的TFT彩屏模塊中包含REG1117-3.3 電壓轉(zhuǎn)換模塊。在SD卡向單片機(jī)傳輸數(shù)據(jù)時(shí)可以直接連接,因?yàn)樗鼈冎g的電平剛好滿足上述的電平
65、兼容原則,所以只做一個(gè)直流5V的穩(wěn)壓電源給系統(tǒng)供電即可,既經(jīng)濟(jì)又實(shí)用。電源電路原理圖如圖3.1。</p><p> 圖3.1 電源電路原理圖</p><p> 該電路的基本工作過程是:市電220V經(jīng)變壓器降壓變成8V交流,再經(jīng)整流橋VD整流成約11.5V直流,再經(jīng)過濾波電容C1、C2后經(jīng)LM7805穩(wěn)壓管穩(wěn)壓成穩(wěn)定的5V電壓供整個(gè)系統(tǒng)供電。</p><p>
66、3.2 單片機(jī)最小系統(tǒng)</p><p> 3.2.1單片機(jī)原理圖及其特性</p><p> 單片機(jī)控制模塊是整個(gè)系統(tǒng)的核心。本系統(tǒng)采用STC12C5A60S2單片機(jī)為核心元件。下面圖3.2就是一個(gè)STC12C5A60S2單片機(jī)的引腳圖。</p><p> 圖3.2 STC89C52原理圖</p><p> STC12C5A60S2單片
67、機(jī)是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期(1T)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12 倍。內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換(250K/S,即25bit/s),對(duì)電機(jī)控制,強(qiáng)干擾場(chǎng)合。</p><p> 1. 增強(qiáng)型 8051 CPU,1T,單時(shí)鐘/機(jī)器周期,指令代碼完全兼容傳統(tǒng)8051</p>&
68、lt;p><b> 2. 工作電壓:</b></p><p> STC12C5A60S2 系列工作電壓: 5.5V - 3.5V(5V單片機(jī))</p><p> STC12LE5A60S2 系列工作電壓: 3.6V - 2.2V(3V單片機(jī))</p><p> 3. 工作頻率范圍:0~35MHz,相當(dāng)于普通8051的 0~420
69、MHz</p><p> 4. 用戶應(yīng)用程序空間 8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K 字節(jié)......</p><p> 5. 片上集成1280字節(jié) RAM</p><p> 6. 通用I/O口(36/40/44個(gè)),復(fù)位后為:準(zhǔn)雙向口/弱上拉(普通8051傳統(tǒng)I/O口)可設(shè)置成四種模式:準(zhǔn)雙向口
70、/弱上拉,強(qiáng)推挽/強(qiáng)上拉,僅為輸入/高阻開漏每個(gè)I/O口驅(qū)動(dòng)能力均可達(dá)到20mA, 但整個(gè)芯片最大不要超過120mA</p><p> 7. ISP(在系統(tǒng)可編程)/ IAP(在應(yīng)用可編程),無需專用編程器,無需專用仿真器 可通過串口(P3.0/P3.1)直接下載用戶程序,數(shù)秒即可完成一片</p><p> 8. 有EEPROM功能(STC12C5A62S2/AD/PWM無內(nèi)部EE
71、PROM)</p><p><b> 9. 看門狗</b></p><p> 10.內(nèi)部集成MAX810專用復(fù)位電路(外部晶體12M以下時(shí),復(fù)位腳可直接1K電阻到地)</p><p> 11. 外部掉電檢測(cè)電路: 在P4.6口有一個(gè)低壓門檻比較器5V單片機(jī)為1.33V,誤差為±5%,3.3V 單片機(jī)為1.31V,誤差為±
72、;3%</p><p> 12. 時(shí)鐘源:外部高精度晶體/時(shí)鐘,內(nèi)部R/C振蕩器(溫漂為±5% 到±10% 以內(nèi))用戶在下載用戶程序時(shí),可選擇是使用內(nèi)部R/C 振蕩器還是外部晶體/ 時(shí)鐘常溫下內(nèi)部R/C振蕩器頻率為:5.0V 單片機(jī)為: 11MHz ~ 17MHz</p><p> 3.3V 單片機(jī)為: 8MHz ~ 12MHz</p><p&g
73、t; 精度要求不高時(shí),可選擇使用內(nèi)部時(shí)鐘,但因?yàn)橛兄圃煺`差和溫漂,以實(shí)際測(cè)試為準(zhǔn)。</p><p> 13. 共4個(gè)16位定時(shí)器,兩個(gè)與傳統(tǒng)8051兼容的定時(shí)器/計(jì)數(shù)器,16位定時(shí)器T0和T1,沒有定時(shí)器2,但有獨(dú)立 波特率發(fā)生器做串行通訊的波特率發(fā)生器,再加上2路PCA模塊可再實(shí)現(xiàn)2個(gè)16位定時(shí)器。</p><p> 14. 3個(gè)時(shí)鐘輸出口,可由T0的溢出在P3.4/T0輸
74、出時(shí)鐘,可由T1的溢出在P3.5/T1輸出時(shí)鐘,獨(dú)立波特率發(fā)生器可以在P1.0口輸出時(shí)鐘。</p><p> 15. 外部中斷I/O口7路,傳統(tǒng)的下降沿中斷或低電平觸發(fā)中斷,并新增支持上升沿中斷的PCA模塊,Power Down模式可由外部中斷喚醒,INT0/P3.2,INT1/P3.3,T0/P3.4, T1/P3.5, RxD/P3.0,CCP0/P1.3(也可通過寄存器設(shè)置到P4.2), CCP1/P1.
75、4(也可通過寄存器設(shè)置到P4.3)16. PWM(2路)/ PCA(可編程計(jì)數(shù)器陣列,2路)</p><p> --- 也可用來當(dāng)2路D/A使用</p><p> --- 也可用來再實(shí)現(xiàn)2個(gè)定時(shí)器</p><p> --- 也可用來再實(shí)現(xiàn)2個(gè)外部中斷(上升沿中斷/下降沿中斷均可分別或同時(shí)支持)</p><p> 17. A/D轉(zhuǎn)換,
76、10位精度ADC,共8路,轉(zhuǎn)換速度可達(dá)250K/S(每秒鐘25萬次)</p><p> 18. 通用全雙工異步串行口(UART),由于STC12系列是高速的8051,可再用定時(shí)器或PCA軟件實(shí)現(xiàn)多串口</p><p> 19. STC12C5A60S2系列有雙串口,后綴有S2標(biāo)志的才有雙串口,RxD2/P1.2(可通過寄存器設(shè)置到P4.2),TxD2/P1.3(可通過寄存器設(shè)置到P4.
77、3)</p><p> 20. 工作溫度范圍:-40 ~ +85℃(工業(yè)級(jí)) / 0 ~ 75℃(商業(yè)級(jí))</p><p> 21. 封裝:LQFP-48, LQFP-44, PDIP-40, PLCC-44, QFN-40I/O口不夠時(shí),可用2到3根普通I/O口線外接74HC164/165/595(均可級(jí)聯(lián))來擴(kuò)展I/O口,還可用A/D做按鍵掃描來節(jié)省I/O口,或用雙CPU,三線通信
78、,還多了串口。</p><p> 3.2.2 STC12C5A60S2系列單片機(jī)的內(nèi)部結(jié)構(gòu)</p><p> STC12C5A60S2系列單片機(jī)的內(nèi)部結(jié)構(gòu)框圖如下圖所示。STC12C5A60S2單片機(jī)中包含中央處理器(CPU)、程序存儲(chǔ)器(Flash)、數(shù)據(jù)存儲(chǔ)器(SRAM)、定時(shí)/計(jì)數(shù)器、UART串口、串口2、I/O接口、高速A/D轉(zhuǎn)換、SPI接口、PCA、看門狗及片內(nèi)R/C振蕩器和
79、外部晶體振蕩電路等模塊。STC12C5A60S2系列單片機(jī)幾乎包含了數(shù)據(jù)采集和控制中所需的所有單元模塊,可稱得上一個(gè)片上系統(tǒng)。</p><p> 圖3.3.3STC12C5A60S2系列內(nèi)部結(jié)構(gòu)圖</p><p> 3.2.3 單片機(jī)STC12C5A60S2最小系統(tǒng)的組成</p><p> 單片機(jī)STC12C5A60S2最小系統(tǒng)(DY_mini80E開發(fā)板),
80、是指用最少的元件組成的單片機(jī)可對(duì)STC12C5A60S2單片機(jī)來說,其最小系統(tǒng)一般應(yīng)該包括:?jiǎn)纹瑱C(jī)、晶振電路、復(fù)位電路、A/D轉(zhuǎn)換電路等。本設(shè)計(jì)的最小系統(tǒng)的原理圖見附件A。 </p><p><b> ?。?)復(fù)位電路</b></p><p> STC12C5A60S2的復(fù)位引腳(RESET)是第9腳,當(dāng)此引腳連接高電平超過2個(gè)機(jī)器周期,即可產(chǎn)生復(fù)位的動(dòng)作。以24M
81、Hz的時(shí)鐘脈沖為例,每個(gè)時(shí)鐘脈沖為0.5us,兩個(gè)機(jī)器周期為1us,因此,在第9腳上連接一個(gè)2us的高電平脈沖,即可產(chǎn)生復(fù)位動(dòng)作。最簡(jiǎn)單的就是只有一個(gè)電阻跟一個(gè)電容就可可靠復(fù)位的電路,電阻一般選擇10KΩ,電容一般選擇10uF。</p><p> DY_mini80E開發(fā)板有兩種復(fù)位電路方式,如下圖3.4所示的復(fù)位電路。這里說下用高電平復(fù)位:在VCC和RST端接一容量為10uF左右的電解電容,再串聯(lián)一個(gè)電阻R2
82、1(10KΩ)接地。</p><p><b> 圖3.4 復(fù)位電路</b></p><p> 正常工作時(shí),利用RST內(nèi)部復(fù)位下拉電阻Rr(40KΩ-220KΩ)便構(gòu)成了復(fù)位電路。接通電源瞬時(shí),電容C10上電壓很小,由于復(fù)位下拉電阻Rr>>10KΩ,所以復(fù)位下拉電阻Rr上的電壓接近電源電壓,即RST位高電平,電路沒有影響。在電容充電過程中,RST端電位逐
83、漸下降,當(dāng)RST端電位小于某一數(shù)值后,CPU脫離復(fù)位狀態(tài)。只要電容C容量足夠大,即可保證RST高電平有效時(shí)間大于24個(gè)真到周期,CPU能可靠復(fù)位。在斷電后,VCC逐漸下降,當(dāng)VCC=0時(shí),相當(dāng)于VCC端與地等電位,這時(shí)電容C10通過電阻R21迅速放電,保證再上電時(shí)端位高電平。</p><p> 此復(fù)位電路本身存在一個(gè)缺點(diǎn),當(dāng)死機(jī)時(shí)只能通過關(guān)機(jī)復(fù)位。為了解決這一問題,在電解電容C10上并聯(lián)一個(gè)電阻R10和開關(guān)K。
84、</p><p> 復(fù)位按鈕按下時(shí),電解電容C10通過R10放電,當(dāng)電解電容C10放電結(jié)束后,RST端的電位由Rr和R10分壓比決定。由于Rr>>R10,因此RST位高電平,CPU進(jìn)入復(fù)位狀態(tài),松手后,電解電容C10充電,RST端電位下降,CPU脫離復(fù)位狀態(tài)。R10的作用在于限制按鈕按下瞬間電解電容C10的放電電流,避免產(chǎn)生火花,以保護(hù)按鈕的觸點(diǎn)。</p><p> ?。?)
85、晶振電路(時(shí)鐘電路)</p><p> STC12C5A60S2單片機(jī)的最高時(shí)鐘脈沖頻率已經(jīng)達(dá)到了24MHz,它內(nèi)部已經(jīng)具備了振蕩電路,只要在STC12C5A60S2的兩個(gè)引腳(即18、 19腳)連接到簡(jiǎn)單的石英振蕩體的2個(gè)管腳即可,同時(shí)晶體的2個(gè)管腳也要用30pF的電容耦合接地。在該電路由兩個(gè)30pF的電容C8、C9和一個(gè)24MHz的晶振Y2組成。其連接方式如圖3.5。</p><p>
86、;<b> 圖3.5 晶振電路</b></p><p> (3)A/D轉(zhuǎn)換電路</p><p> PCF8591是一個(gè)單片集成、單獨(dú)供電、低功耗、8-bit CMOS數(shù)據(jù)獲取器件。PCF8591具有4個(gè)模擬輸入、1個(gè)模擬輸出和1個(gè)串行I2C總線接口。PCF8591的3個(gè)地址引腳A0, A1和A2可用于硬件地址編程,允許在同個(gè)I2C總線上接入8個(gè)PCF8591器件
87、,而無需額外的硬件。在PCF8591器件上輸入輸出的地址、控制和數(shù)據(jù)信號(hào)都是通過雙線雙向I2C總線以串行的方式進(jìn)行傳輸。</p><p> PCF8591的功能包括多路模擬輸入、內(nèi)置跟蹤保持、8-bit模數(shù)轉(zhuǎn)換和8-bit數(shù)模轉(zhuǎn)換。</p><p> A/D轉(zhuǎn)換電路如圖3.6。電路將電壓VCC(5V)通過四路W3~W6均10KΩ的滑動(dòng)變阻器(即電壓可調(diào)范圍0V-5V)分別進(jìn)入AIN0~
88、AIN3進(jìn)行A/D轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)字信號(hào)通過SCL、SDA腳送到STC12C5A60S2單片機(jī)。</p><p> 圖3.6 A/D轉(zhuǎn)換電路</p><p> 3.2.4 帶SD卡的TFT彩屏</p><p> 控制芯片STC12C5A60S2的邏輯電平為5V CMOS電平標(biāo)準(zhǔn),而SD卡的邏輯電平為3.3V,它們之間不能直接相連,否則可能會(huì)燒壞SD卡;但我們選
89、擇了帶SD卡的TFT彩屏模塊,TFT彩屏模塊中已含REG1117-3.3 電壓轉(zhuǎn)換模塊。而在SD卡向單片機(jī)傳輸數(shù)據(jù)時(shí)可以直接連接,因?yàn)樗鼈冎g的電平剛好滿足上述的電平兼容原則。圖3.7即為帶SD卡的TFT彩屏接口定義。</p><p> 圖3.7 帶SD卡的TFT彩屏接口定義</p><p> 帶SD卡的TFT彩屏數(shù)據(jù)接口兼容DY_mini80E開發(fā)板上的12864液晶接口,GND為1
90、腳,對(duì)應(yīng)12864液晶插座的腳,其接口原理圖如圖3.8。</p><p> 圖3.3.4.2 TFT彩屏接口原理圖</p><p><b> 4 軟件設(shè)計(jì)</b></p><p><b> 4.1軟件設(shè)計(jì)目標(biāo)</b></p><p> 最終能實(shí)現(xiàn)同時(shí)將四路模擬電壓(0-5V)進(jìn)行A/D轉(zhuǎn)換,
91、轉(zhuǎn)換結(jié)果為十進(jìn)制有效數(shù)字3位;要求每秒鐘轉(zhuǎn)換一次,并將結(jié)果轉(zhuǎn)換為ASCII碼形式;并將四路結(jié)果分別存儲(chǔ)到SD卡預(yù)先建立好的CH1.txt、CH2.txt、CH3.txt、CH4.txt文檔中。采集實(shí)時(shí)的4個(gè)通道電壓值顯示在TFT彩屏上;按S1按鍵進(jìn)行采集及存儲(chǔ),再按S1按鍵暫停采集及存儲(chǔ),按S2鍵清除SD卡中的內(nèi)容;按S按鍵系統(tǒng)進(jìn)行復(fù)位。</p><p> 4.2 Keil軟件簡(jiǎn)介</p><
92、;p> Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會(huì)更加深刻。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成
93、的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)。Keil C51軟件是一個(gè)基于32位Windows環(huán)境的應(yīng)用程序,支持C語言和匯編語言編程,其6.0以上的版本將編譯和仿真軟件統(tǒng)一為μVision(通常稱為μV2)。Keil提供包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,由以下幾部分組成:μVision IDE集成開發(fā)環(huán)境C51編譯器、A51匯編器、LIB51庫管理器、BL51連
94、接/定位器、OH51目標(biāo)文件生成器以及 Monitor-51、RTX51實(shí)時(shí)操作系統(tǒng)。</p><p> 4.3 Keil軟件調(diào)試功能</p><p> 應(yīng)用Keil進(jìn)行軟件仿真開發(fā)的主要步驟為:編寫源程序并保存—建立工程并添加源文件—設(shè)置工程—編譯/匯編、連接,產(chǎn)生目標(biāo)文件—程序調(diào)試。Keil使用“工程”(Project)的概念,對(duì)工程(而不能對(duì)單一的源程序)進(jìn)行編譯/匯編、連接等操
95、作。工程的建立、設(shè)置、編譯/匯編及連接產(chǎn)生目標(biāo)文件的方法非常易于掌握。首先選擇菜單File-New…,在源程序編輯器中輸入?yún)R編語言或C語言源程序(或選擇File-Open…,直接打開已用其它編輯器編輯好的源程序文檔)并保存,注意保存時(shí)必須在文件名后加上擴(kuò)展名.asm(.a51)或.c;然后選擇菜單Project-New Project…,建立新工程并保存(保存時(shí)無需加擴(kuò)展名,也可加上擴(kuò)展名.uv2);工程保存后會(huì)立即彈出一個(gè)設(shè)備選擇對(duì)話
96、框,選擇CPU后點(diǎn)確定返回主界面。這時(shí)工程管理窗口的文件頁(Files)會(huì)出現(xiàn)“Target1”,將其前面+號(hào)展開,接著選擇Source Group1,右擊鼠標(biāo)彈出快捷菜單,選擇“Add File to Group ‘Source Group1’”,出現(xiàn)一個(gè)對(duì)話框,要求尋找并加入源文件(在加入一個(gè)源文件后,該對(duì)話框不會(huì)消失,</p><p> 成功編譯/匯編、連接后,選擇菜單Debug-Start/Stop D
97、ebug Session(或按Ctrl+F5鍵)進(jìn)入程序調(diào)試狀態(tài),Keil提供對(duì)程序的模擬調(diào)試功能,內(nèi)建一個(gè)功能強(qiáng)大的仿真CPU以模擬執(zhí)行程序。Keil能以單步執(zhí)行(按F11或選擇Debug-Step)、過程單步執(zhí)行(按F10或選擇Debug-Step Over)、全速執(zhí)行等多種運(yùn)行方式進(jìn)行程序調(diào)試。如果發(fā)現(xiàn)程序有錯(cuò),可采用在線匯編功能對(duì)程序進(jìn)行在線修改(Debug-Inline Assambly…),不必執(zhí)行先退出調(diào)試環(huán)境、修改源程序
98、、對(duì)工程重新進(jìn)行編譯/匯編和連接、然后再次進(jìn)入調(diào)試狀態(tài)的步驟。對(duì)于一些必須滿足一定條件(如按鍵被按下等)才能被執(zhí)行的、難以用單步執(zhí)行方式進(jìn)行調(diào)試的程序行,可采用斷點(diǎn)設(shè)置的方法處理(Debug-Insert/Remove Breakpoint或Debug-Breakpoints…等)。在模擬調(diào)試程序后,還須通過編程器將.hex目標(biāo)文件燒寫入單片機(jī)中才能觀察目標(biāo)樣機(jī)真實(shí)的運(yùn)行狀況。</p><p><b>
99、 4.4 系統(tǒng)設(shè)計(jì)</b></p><p> 4.4.1系統(tǒng)初始化</p><p> 要讓系統(tǒng)正常運(yùn)行首先要對(duì)系統(tǒng)進(jìn)行初始化,主要包括:定時(shí)器T0初始化、DS1302初始化、LCD初始化、SD卡初始化、文件系統(tǒng)初始化。其流程圖如圖4.1所示。</p><p> 圖4.1 系統(tǒng)始化流程圖</p><p> 4.4.2 SD
100、卡初始化</p><p> SD卡從上電到對(duì)SD卡進(jìn)行正確的讀寫操作,往往都需要一個(gè)上電初始化的過程。SD卡上電后, 主機(jī)必須先向SD卡發(fā)送74個(gè)時(shí)鐘周期, 以完成SD卡的上電過程。通常SD卡上電后會(huì)自動(dòng)進(jìn)入SD總線模式, 并在SD總線模式下向SD卡發(fā)送復(fù)位命令(CMD0)。因此, 主機(jī)在對(duì)SD卡進(jìn)行任何操作前, 都必須先要拉低SD卡的片選信號(hào)CS(card select), 以使SD卡進(jìn)入SPI總線模式, 然
101、后再由主機(jī)向SD卡發(fā)送命令。SD卡可以響應(yīng)主機(jī)發(fā)來的各種應(yīng)答信號(hào), 同時(shí)向主機(jī)發(fā)送一個(gè)特殊的數(shù)據(jù)響應(yīng)標(biāo)志。若主機(jī)讀到的應(yīng)答信號(hào)為01,即表明SD卡已進(jìn)入SPI模式, 此時(shí), 主機(jī)即可不斷地向SD卡發(fā)送命令字(CMD1) 并讀取SD卡的應(yīng)答信號(hào), 直到應(yīng)答信號(hào)為00, 表明SD卡已完成初始化過程, 并準(zhǔn)備好接受下一命令。此后, 系統(tǒng)便可讀取SD卡的各寄存器, 以進(jìn)行讀寫等操作。SD卡初始化流程如圖4.2所示。</p><
102、;p><b> 開 始 </b></p><p><b> 否</b></p><p><b> 響應(yīng)bit0=0?</b></p><p><b> 結(jié) 束</b></p><p> 圖4.2 SD卡初始化流程圖</p>
103、<p> 4.4.3 數(shù)據(jù)塊的讀寫</p><p> 對(duì)SD卡可以按單頁或多頁讀寫,根據(jù)實(shí)際需要,此系統(tǒng)中,所有的讀寫操作都是按單頁進(jìn)行。單頁操作時(shí),對(duì)SD卡的讀操作,可以讀取512字節(jié)內(nèi)任意長(zhǎng)度的數(shù)據(jù),但寫操作必須是512字節(jié)。為了和文件系統(tǒng)兼容,對(duì)頁的讀寫操作都按512字節(jié)的數(shù)據(jù)量進(jìn)行。主機(jī)和印卡交換數(shù)據(jù)時(shí),數(shù)據(jù)是封裝在長(zhǎng)度為515字節(jié)的數(shù)據(jù)令牌中進(jìn)行的。數(shù)據(jù)令牌的結(jié)構(gòu)為:第1個(gè)字節(jié)是操作方
104、式標(biāo)志字節(jié),第2至513字節(jié)是讀取或?qū)懭氲臄?shù)據(jù)字節(jié),最后兩個(gè)字節(jié)是CRCl6校驗(yàn)字節(jié)。</p><p> 完成SD 卡的初始化之后即可進(jìn)行它的讀寫操作。SD 卡的讀寫操作都是通過發(fā)送SD 卡命令完成的。SPI 總線模式支持單塊(CMD24)和多塊(CMD25)寫操作,多塊操作是指從指定位置開始寫下去,直到SD 卡收到一個(gè)停止命令CMD12 才停止。單塊寫操作的數(shù)據(jù)塊長(zhǎng)度只能是512 字節(jié)。單塊寫入時(shí),命令為CM
105、D24,當(dāng)應(yīng)答為0 時(shí)說明可以寫入數(shù)據(jù),大小為512 字節(jié)。SD 卡對(duì)每個(gè)發(fā)送給自己的數(shù)據(jù)塊都通過一個(gè)應(yīng)答命令確認(rèn),它為1 個(gè)字節(jié)長(zhǎng),當(dāng)?shù)? 位為00101 時(shí),表明數(shù)據(jù)塊被正確寫入SD 卡。在需要讀取 SD 卡中數(shù)據(jù)的時(shí)候,讀SD 卡的命令字為CMD17,接收正確的第一個(gè)響應(yīng)命令字節(jié)為0xFE,隨后是512 個(gè)字節(jié)的用戶數(shù)據(jù)塊,最后為2 個(gè)字節(jié)的CRC 驗(yàn)證碼??梢?,讀寫SD 卡的操作都是在初始化后基于SD 卡命令和響應(yīng)完成操作的,讀
106、、寫SD 卡的程序流程圖如圖4.3和圖4.4。</p><p> 圖4.3 讀SD卡流程圖 圖4.4寫SD卡流程圖</p><p> 4.4.4 SD卡存儲(chǔ)時(shí)間和電壓流程圖</p><p> 打開指定文件,若失?。礇]有該文件)那么就新建該指定文件,之后,追加該通道的日期時(shí)間和電壓值,具體見流程圖4.5所示。</
107、p><p> 圖4.5 SD卡存儲(chǔ)時(shí)間和電壓流程圖</p><p> 4.4.5定時(shí)器T0函數(shù)流程圖</p><p> 系統(tǒng)要求四個(gè)通道每一秒中分別進(jìn)行一次A/D轉(zhuǎn)換,系統(tǒng)采用24MHz晶振,一個(gè)周期0.5us,定時(shí)器初值賦值為50ms,則1s/(50ms*0.5us)=40,即溢出40次中斷一次為1s。具體見流程圖4.6所示。</p><p&
108、gt; 圖4.6 定時(shí)器T0函數(shù)流程圖</p><p> 4.4.6主體程序流程圖</p><p> 系統(tǒng)一上電就進(jìn)行系統(tǒng)初始化,再不斷循環(huán)掃描是否有按鍵按下什么功能按鍵按下,根據(jù)有無按鍵按下進(jìn)入往下的相應(yīng)程序,之后進(jìn)行時(shí)間標(biāo)志判斷,是,就清除標(biāo)志,讀各通道采樣數(shù)據(jù)并計(jì)算電壓值,再判斷是否采集標(biāo)志,是的話就SD卡存儲(chǔ)并LCD顯示,否的話不存儲(chǔ)只LCD顯示。具體見流程圖4.7所示。&l
109、t;/p><p> 圖4.7 主程序流程圖</p><p><b> 5 結(jié)論</b></p><p> 設(shè)計(jì)通過利用STC12C5A60S2單片機(jī)對(duì)SD卡進(jìn)行控制,實(shí)現(xiàn)了SD卡的讀寫功能,基本達(dá)到了實(shí)驗(yàn)的目的。從理論基礎(chǔ)出發(fā),完成了將四路模擬電壓(0-5V)進(jìn)行A/D轉(zhuǎn)換,轉(zhuǎn)換結(jié)果為十進(jìn)制有效數(shù)字3位;每秒鐘轉(zhuǎn)換一次,結(jié)果轉(zhuǎn)換為ASCII碼
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- sd卡存儲(chǔ)采集數(shù)據(jù)電路設(shè)計(jì)畢業(yè)論文
- 基于fpga的gps數(shù)據(jù)采集存儲(chǔ)電路設(shè)計(jì)開題報(bào)告
- 基于dsp數(shù)據(jù)采集電路設(shè)計(jì)
- 數(shù)字存儲(chǔ)示波器數(shù)據(jù)采集與控制電路設(shè)計(jì)研究.pdf
- 電壓采集電路設(shè)計(jì)
- 電骰子電路設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 脈搏顯示電路設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 高速數(shù)據(jù)采集及存儲(chǔ)電路的設(shè)計(jì).pdf
- 聲光控臺(tái)燈電路設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 數(shù)據(jù)采集畢業(yè)設(shè)計(jì)
- 數(shù)據(jù)采集電路設(shè)計(jì)-測(cè)控電路課程設(shè)計(jì)任務(wù)書
- 畢業(yè)設(shè)計(jì)---語音門的電路設(shè)計(jì)
- 聲光控臺(tái)燈電路設(shè)計(jì) 畢業(yè)設(shè)計(jì)
- 應(yīng)急燈電路設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---晶閘管可逆調(diào)速電路設(shè)計(jì)
- 直流斬波電路設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)—傳感器電路設(shè)計(jì)
- 基于數(shù)字電視芯片的SD卡接口電路設(shè)計(jì).pdf
- sd卡存儲(chǔ)系統(tǒng)的設(shè)計(jì)【畢業(yè)論文】
- 畢業(yè)設(shè)計(jì)(論文)-聲光控臺(tái)燈電路設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論