版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> NO:</b></p><p><b> 畢業(yè)論文</b></p><p> 題目:SD卡存儲采集數(shù)據(jù)電路設(shè)計</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è)計成為必然趨勢。SD存儲卡因具備體積小、儲容量高、可擦寫、價格低以及非易失性等特點(diǎn)被廣泛
3、應(yīng)用于手機(jī)、數(shù)碼相機(jī)、MP3播放器等領(lǐng)域。</p><p> 針對傳統(tǒng)方法中 單片機(jī)(MCU )讀寫SD卡數(shù)據(jù)時需要執(zhí)行復(fù)雜的文件分區(qū)表數(shù)據(jù)操作的缺點(diǎn), 以LED護(hù)欄管顯示屏技術(shù)要求為例, 提出了一種單片機(jī)主從系統(tǒng)中快速、簡單的SD卡存儲器的訪問方法, 并給出了一種實(shí)用的SD卡與單片機(jī)連接的接口電路。采用該方法讀取SD卡控制數(shù)據(jù)與存儲文件的分區(qū)表格式無關(guān), 因此支持FAT
4、32、NTFS、exFAT等文件格式下從16MB ~ 32 GB的SD卡。該方法對需從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卡存儲采集數(shù)據(jù)電路設(shè)計原理、電路以及程序,闡述了基于STC12C5A60S2芯片主控的DY_mini80E開發(fā)板實(shí)現(xiàn)數(shù)據(jù)的采集和數(shù)
5、據(jù)的SD存儲的設(shè)計電路過程和實(shí)現(xiàn)方法以及運(yùn)行得到的結(jié)果分析。該系統(tǒng)能同時采集四路周期信號波形,并將四路模擬電壓(0-5V)進(jìn)行A/D轉(zhuǎn)換,每秒鐘轉(zhuǎn)換一次,結(jié)果轉(zhuǎn)換為ASCII碼形式,且四路結(jié)果分別存儲到SD卡預(yù)先建立好的CH1.txt、CH2.txt、CH3.txt、CH4.txt文檔中。設(shè)計在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 主要研究內(nèi)容、需重點(diǎn)研究的關(guān)鍵問題及解決思路2</p>
16、<p> 2 SD卡簡介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è)計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è)計19</b></p><p> 4.1軟件設(shè)計目標(biāo)19</p><p> 4.2 Keil軟件簡介19</p>
20、<p> 4.3 Keil軟件調(diào)試功能19</p><p> 4.4 系統(tǒng)設(shè)計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卡存儲時間和電壓流程圖2
21、4</p><p> 4.4.5定時器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ā)展是一個不斷創(chuàng)新的過程,這種創(chuàng)新包括理論創(chuàng)新、技術(shù)創(chuàng)新和應(yīng)用的創(chuàng)新,每一種創(chuàng)新都能開拓出一個新的領(lǐng)域,帶來新的市場,產(chǎn)生重大的影響。</p><p>
23、 現(xiàn)今對于數(shù)據(jù)采集系統(tǒng)要求日趨增高,大量的采集數(shù)據(jù)使得很多采集系統(tǒng)都需要借助外部存儲介質(zhì)進(jìn)行數(shù)據(jù)存儲,因此對于外部介質(zhì)存儲容量以及傳輸速度的要求顯得尤為突出。SD 卡作為一種基于半導(dǎo)體閃存工藝的存儲卡, 1999 年由日本松下、東芝和美國SanDisk 公司共同研制完成。其體積小、容量大以及數(shù)據(jù)傳輸快等優(yōu)點(diǎn),是眾多電子設(shè)備理想的外部存儲介質(zhì)。在眾多廠商推動下,SD 卡已成為目前消費(fèi)數(shù)碼設(shè)備中應(yīng)用最廣泛的一種存儲卡。</p>
24、<p> 為使采集數(shù)據(jù)可直接在PC 上讀取、處理,需要使用文件系統(tǒng)組織數(shù)據(jù)格式,文件系統(tǒng)即操作系統(tǒng)用于明確磁盤或分區(qū)上文件的方法和數(shù)據(jù)結(jié)構(gòu),是對文件的管理規(guī)則,也是操作系統(tǒng)的重要組成部分。而操作系統(tǒng)對處理器要求較高,且占用一定的存儲空間,對于許多無法使用嵌入操作系統(tǒng)的處理器,需要自己來實(shí)現(xiàn)文件系統(tǒng)———在處理器中內(nèi)嵌文件系統(tǒng)。</p><p> 長期以來,以Flash Memory 為存儲體的SD
25、 卡因具備體積小、功耗低、可擦寫以及非易失性等特點(diǎn)而被廣泛應(yīng)用于消費(fèi)類電子產(chǎn)品中。特別是近年來,隨著價格不斷下降且存儲容量不斷提高,它的應(yīng)用范圍日益增廣。當(dāng)數(shù)據(jù)采集系統(tǒng)需要長時間地采集、記錄海量數(shù)據(jù)時,選擇SD 卡作為存儲媒質(zhì)是開發(fā)者們一個很好的選擇。在電能監(jiān)測以及無功補(bǔ)償系統(tǒng)中,要連續(xù)記錄大量的電壓、電流、有功功率、無功功率以及時間等參數(shù),當(dāng)單片機(jī)采集到這些數(shù)據(jù)時可以利用SD 作為存儲媒質(zhì)。</p><p>
26、 單片機(jī)是智能化模塊,有數(shù)據(jù)存儲、讀寫的功能,并且支持匯編和C語言編程,在工作電壓穩(wěn)定的條件下可以實(shí)現(xiàn)長時間穩(wěn)定的工作,而且還具有價格低廉的優(yōu)勢。在讀寫SD卡中,單片機(jī)比PC機(jī)更適合在現(xiàn)場長時間工作。而STC12C5A60S2系列單片機(jī)價格便宜、性能穩(wěn)定?;诖颂攸c(diǎn),設(shè)計采用PCF8591進(jìn)行A/D轉(zhuǎn)換,用STC12C5A60S2單片機(jī)對SD卡進(jìn)行讀寫操作。</p><p><b> 1方案論證與選擇
27、</b></p><p><b> 1.1 題目來源</b></p><p> SD存儲卡在嵌入式產(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ī)滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機(jī)的蹤跡。單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的計算機(jī)系統(tǒng)。51單片機(jī)是基礎(chǔ)入
29、門的一個單片機(jī),還是應(yīng)用最廣泛的一種。</p><p> SD卡(Secure Digital Memory Card)中文翻譯為安全數(shù)碼卡,是一種基于半導(dǎo)體快閃記憶器的新一代記憶設(shè)備,它被廣泛地于便攜式裝置上使用,例如數(shù)碼相機(jī)、個人數(shù)碼助理(PDA)和多媒體播放器等。SD卡由日本松下、東芝及美國SanDisk公司于1999年8月共同開發(fā)研制。大小猶如一張郵票的SD記憶卡,重量只有2克,但卻擁有高記憶容量、快速
30、數(shù)據(jù)傳輸率、極大的移動靈活性以及很好的安全性。</p><p> 本設(shè)計是通過對51單片機(jī)與SD卡的驅(qū)動接口進(jìn)行設(shè)計,實(shí)現(xiàn)普通單片機(jī)對大量數(shù)據(jù)的轉(zhuǎn)存。</p><p> 1.3 主要研究內(nèi)容、需重點(diǎn)研究的關(guān)鍵問題及解決思路</p><p> 設(shè)計研究的是SD卡與單片機(jī)的驅(qū)動接口設(shè)計,因此首要的任務(wù)是尋找一個實(shí)現(xiàn)AT89C52單片機(jī)與SD卡通訊的解決方案;其次,
31、SD卡所能接受的邏輯電平與AT89C52提供的邏輯電平不匹配,需要解決電平匹配問題。</p><p> SD卡有兩個可選的通訊協(xié)議:SD模式和SPI模式。SD模式需要選擇帶有SD卡控制器接口的MCU,或者必須加入額外的SD卡控制單元以支持SD卡的讀寫。AT89C52單片機(jī)沒有集成SD卡控制器接口,若選用SD模式通訊就無形中增加了產(chǎn)品的硬件成本。在SD卡數(shù)據(jù)讀寫時間要求不是很嚴(yán)格的情況下,選用SPI模式可以說是一
32、種最佳的解決方案。因?yàn)樵赟PI模式下,通過四條線就可以完成所有的數(shù)據(jù)交換,并且目前市場上很多MCU都集成有現(xiàn)成的SPI接口電路,采用SPI模式對SD卡進(jìn)行讀寫操作可大大簡化硬件電路的設(shè)計。雖然AT89C52不帶SD卡硬件控制器,也沒有現(xiàn)成的SPI接口模塊,但是可以用軟件模擬出SPI總線時序。</p><p> SD卡的邏輯電平相當(dāng)于3.3V TTL電平標(biāo)準(zhǔn),而控制芯片AT89C52的邏輯電平為5V CMOS電平
33、標(biāo)準(zhǔn)。要解決這一問題,最根本的就是解決邏輯器件接口的電平兼容問題,原則主要有兩條:一為輸出電平器件輸出高電平的最小電壓值,應(yīng)該大于接收電平器件識別為高電平的最低電壓值;另一條為輸出電平器件輸出低電平的最大電壓值,應(yīng)該小于接收電平器件識別為低電平的最高電壓值??紤]到SD卡在SPI協(xié)議的工作模式下,通訊都是單向的,于是在單片機(jī)向SD卡傳輸數(shù)據(jù)時采用晶體管加上拉電阻法的方案。而在SD卡向單片機(jī)傳輸數(shù)據(jù)時可以直接連接,因?yàn)樗鼈冎g的電平剛好滿足
34、上述的電平兼容原則,既經(jīng)濟(jì)又實(shí)用。</p><p> 其次是硬件平臺和軟件平臺的選擇,包括單片機(jī)和SD卡選型、編程語言、軟件開發(fā)工具、軟件仿真工具等。根據(jù)實(shí)際情況,本課題使用的是AT89C52單片機(jī),SD卡為SanDisk公司的2G卡,編程語言為C語言,Keil +Proteus用于程序代碼的編輯、編譯及系統(tǒng)仿真。</p><p><b> 2 SD卡簡介</b>
35、;</p><p> 2.1 SD卡的系統(tǒng)概念</p><p> 2.1.1 SD卡的結(jié)構(gòu)</p><p> SD卡的外形與接口如圖2.1,它有9個接點(diǎn)與主機(jī)相連,其接口端定義如表2.1所示。SD卡有兩種操作模式,一種是SD模式,另一種是SPI模式,不同模式下端口的定義不同。SD模式有一個時鐘線、一個命令/反饋線、四根輸入/輸出信號線、兩個電源地和一個電源,所
36、有九根線都有定義,數(shù)據(jù)傳輸速率較快。SPI模式只用到CS片選、數(shù)據(jù)輸入、數(shù)據(jù)輸出、時鐘、電源地及電源六根線。SPI模式較SD模式速度較慢,但很多單片機(jī)都有專用的SPI總線,可與SD卡直接相連,使用方便。</p><p> SD卡的內(nèi)部結(jié)構(gòu)如圖2.2所示,主要有四部分組成,一是接口電路,共有九個接口電路,定義如表1所示。二是接口控制電路,所有操作都由該控制電路具體去執(zhí)行。三是內(nèi)部寄存器組OCR、CID、RCA等。
37、四是存儲數(shù)據(jù)的存儲單元。接口電路通過控制電路與內(nèi)部寄存器組成存儲單元交換數(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> (1)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ù)據(jù)傳輸速度與SPI方式要快,采用單片機(jī)對SD卡進(jìn)行讀寫時一般都采用SPI模式。采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。這里只對其SPI方式進(jìn)行介紹。</p><p> ?。?)SPI方式驅(qū)動SD卡的方法
40、 SD卡的SPI通信接口使其可以通過SPI通道進(jìn)行數(shù)據(jù)讀寫。從應(yīng)用的角度來看,采用SPI接口的好處在于,很多單片機(jī)內(nèi)部自帶SPI控制器,不光給開發(fā)上帶來方便,同時也見降低了開發(fā)成本。然而,它也有不好的地方,如失去了SD卡的性能優(yōu)勢,要解決這一問題,就要用SD方式,因?yàn)樗峁└蟮目偩€數(shù)據(jù)帶寬。SPI接口的選用是在上電初始時向其寫入第一個命令時進(jìn)行的。以下介紹SD卡的驅(qū)動方法,只實(shí)現(xiàn)簡單的扇區(qū)讀寫。</p><p
41、> 2.2 SD卡總線介紹</p><p> SD存儲卡定義了兩種可選擇的總線協(xié)議,分別是SD和SPI。與SD卡通信的主機(jī)一方可以透明地選擇與SD的通信模式。</p><p> 2.2.1 SD卡總線</p><p> SD總線包括以下的信號:</p><p> CLK:主機(jī)與卡之間的同步時鐘;CMD:雙向的命令/反饋信號;
42、</p><p> DATo~DAT3:4位雙向的數(shù)據(jù)傳輸線;</p><p> VDD,Vss1,Vss2:電源和地信號。通過同步星型拓?fù)?,SD總線可以接一個主SD卡,或者多個從SD卡。時鐘、電源和地信號是所有卡公用的。主機(jī)和每張SD卡的CMD、DAT0~DAT3信號連線必須點(diǎn)對點(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總線模式的好處是它對主機(jī)的性能要求降至最低,另一方面,它也為
44、產(chǎn)品設(shè)計成最小化作出了努力。它的不利之處是降低了系統(tǒng)的性能,也沒有SD總線那樣更多的連接選項。一般而言,兼容SD卡的SPI總線包含以下信號。. CS:主機(jī)到卡芯片之間的片選信號; CLK:主機(jī)與卡之間的同步時鐘; Dataln:主機(jī)到卡之間的數(shù)據(jù)輸入信號; DataOut:主機(jī)到卡之間的數(shù)據(jù)輸出信號。 圖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> >命令幀:命令幀用來傳輸一個操作命令的令牌。 >反饋幀:反饋幀是從地址卡或者所有
46、的連接卡發(fā)送給主機(jī)的作為對以前接收到的命令幀做出應(yīng)答的令牌。</p><p> >數(shù)據(jù)幀:數(shù)據(jù)幀用來在卡和主機(jī)之間進(jìn)行真正有用的數(shù)據(jù)傳輸。數(shù)據(jù)是通過數(shù)據(jù)鏈路進(jìn) 行傳輸?shù)摹D總線協(xié)議的數(shù)據(jù)傳輸是以數(shù)據(jù)塊的方式進(jìn)行的。數(shù)據(jù)塊之后通常跟著CRC校驗(yàn)碼。</p><p> 在協(xié)議中定義了數(shù)據(jù)傳輸?shù)姆绞娇梢允菃螇K和多塊傳輸。多塊傳輸在進(jìn)行寫卡操作時的速度比單塊傳輸快得多。多塊傳輸會在CM
47、D線路上出現(xiàn)一個停止命令幀時中斷傳輸。寫操作和讀操作在時序上的不同在于數(shù)據(jù)線路DAT0上多了一個寫操作忙的信號。</p><p><b> (2)SPI總線</b></p><p> 雖然SD通道是面向有起止位的控制幀和數(shù)據(jù)流格式的傳輸,但是SPI通道是面向字節(jié)的傳輸。SPI的命令和數(shù)據(jù)塊都是按8個比特為單位進(jìn)行分組的,和SD協(xié)議相似,SPI的信息也分為控制幀、反
48、饋幀和數(shù)據(jù)幀,所有主機(jī)和卡之間的通信都被主機(jī)進(jìn)行控制,主機(jī)通過拉低CS信號以開始一個總線事務(wù)。SPI的反饋方式和SD協(xié)議相比有以下3個方面的不同。 >被選中的卡必須時刻對命令幀做出響應(yīng);</p><p> >使用兩種新的響應(yīng)結(jié)構(gòu)(8位或16位);</p><p> >當(dāng)卡獲取數(shù)據(jù)出問題時,它將發(fā)出一個出錯反饋幀通知主機(jī),而不是使用超時檢測的方式。除了需要對命
49、令幀做出反饋之外,在進(jìn)行寫卡操作期間,還需要對每一個發(fā)送到卡的數(shù)據(jù)塊發(fā)一個特別的數(shù)據(jù)反饋令牌。</p><p> 一個合法的數(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)錯誤,卡就不再傳輸數(shù)據(jù),取而代之的是發(fā)送一個數(shù)據(jù)出錯令牌給主機(jī)。</p><p> 在SPI模式中也支持單塊和多塊的數(shù)
50、據(jù)寫命令??◤闹鳈C(jī)端接收到一個數(shù)據(jù)塊之后,它就會發(fā)一個數(shù)據(jù)響應(yīng)令牌給主機(jī),如果接收的數(shù)據(jù)經(jīng)校驗(yàn)無錯,就把數(shù)據(jù)寫入卡的存儲介質(zhì)中。如果卡正在忙于往存儲介質(zhì)中寫數(shù)據(jù)時,它會持續(xù)發(fā)一個“工作忙”的令牌給主機(jī)。</p><p> 2.3 SD卡的命令</p><p> 2.3.1 SD卡的命令格式</p><p> SD卡的命令格式固定為6個字節(jié)48個位,其格式如圖2
51、.6所示。</p><p> 圖2.6 SD卡命令格式</p><p> 開始位固定為0,第二位固定為1,表示主機(jī)給SD卡的命令,然后是6位命令索引號,索引號的大小與索引號數(shù)字相同,比如CMD0的索引號為000000,索引號41為101001。緊接著命令索引號是命令參數(shù),有些命令有參數(shù),有些命令沒有參數(shù),比如CMD0和CMD1命令參數(shù)為32個0,而命令CMD24、CMD17的命令參數(shù)是
52、數(shù)據(jù)的讀寫地址。最后是7位CRC校驗(yàn)位和一位停止位1。根據(jù)命令索引號可推知SD卡的命令最多不超過64個(有些命令索引號為保留以后升級用,沒有實(shí)際的命令相對應(yīng)),SD卡協(xié)議把卡的命令分為若干類,有些命令只有對SD模式起作用,有些命令只對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ī)連接到一起。如果把它們分開,那么每張卡將在輪到它的時候單獨(dú)接收。</p><p> ?、?有響應(yīng)的廣播命令。</p&
54、gt;<p> 從所有卡來的響應(yīng)是同時的。但是在SD卡里沒有開漏模式,這個類型命令只可以使用在所有的CMD線是分開的情況下。這個命令將被所有的卡單獨(dú)接受并響應(yīng)。</p><p> ③ 在DAT上沒有數(shù)據(jù)傳輸?shù)亩ㄖ?點(diǎn)對點(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:(卡的識別、初始化等基本命令集):</p><p> CMD0:復(fù)位SD卡。</p><
56、;p> CMD1:讀OCR寄存器。</p><p> CMD9:讀CSD寄存器。</p><p> CMD10:讀CTD寄存器。</p><p> CMD12:停止讀多塊時的數(shù)據(jù)傳輸。</p><p> CMD13:讀Cardes Status寄存器。</p><p> Class2(讀卡命令集):&
57、lt;/p><p> CMD16:設(shè)置塊的長度。</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:申請?zhí)囟罴?lt;/p><p> classl0和class11:保留。</p><p> 其中class 1, class3,class9的SPI模式不支持。</p><p><b> 3 硬件設(shè)計</b></p><p> 系統(tǒng)整體硬件方案分為三個部分:電源部
61、分、單片機(jī)STC12C5A60S2主控芯片的DY_mini80E開發(fā)板的選擇部分(包括信號采集、A/D轉(zhuǎn)換等)、帶SD卡的TFT彩屏的選擇部分(包括SD卡工作電路部分等)。</p><p> 設(shè)計在Keil編程環(huán)境下,建立工程,編寫程序,然后將程序下載到單片機(jī)中,同時復(fù)位單片機(jī),然后調(diào)節(jié)DY_mini80E開發(fā)板上的四路電位器采集不同的電壓信號(四路電壓范圍均0V-5V),按動采集鍵后,信號開始采集,每秒鐘各通
62、道進(jìn)行一次A/D轉(zhuǎn)換,并對數(shù)據(jù)進(jìn)行處理后由單片機(jī)控制分別存入帶SD卡的TFT彩屏的SD卡的相應(yīng)文檔中。并用TFT彩屏顯示經(jīng)過A/D轉(zhuǎn)換后的四路實(shí)時電壓,用以觀察采集數(shù)據(jù)的變化。</p><p><b> 3.1 電源模塊</b></p><p> SD卡的工作電平為3.3V,而控制芯片STC12C5A60S2的邏輯電平為5V CMOS電平標(biāo)準(zhǔn)。因此,它們之間不能直
63、接相連,否則可能會燒壞SD卡;出于對安全工作的考慮,有必要解決電平匹配問題。</p><p> 要解決這一問題,最根本的就是解決邏輯器件接口的要有兩條:一為輸出電平器件輸出高電平的最小電壓值,應(yīng)該大于接收電平器件識別為高電平的最低電壓值;另一條為輸出電平器件輸出低電平的最大電壓值,應(yīng)該小于接收電平器件識別為低電平的最高電壓值。</p><p> 一般來說,通用的電平轉(zhuǎn)換方案是采用類似S
64、N74ALVC4245的專用電平轉(zhuǎn)換芯片,這類芯片不僅可以用作升壓和降壓,而且允許兩邊電源不同。但是,這個方案代價相對昂貴,而且一般的專用電平轉(zhuǎn)換芯片都是同時轉(zhuǎn)換8路、16路或者更多路數(shù)的電平,相對本系統(tǒng)僅僅需要轉(zhuǎn)換4路來說是一種資源的浪費(fèi)。 </p><p> 帶SD卡的TFT彩屏模塊中包含REG1117-3.3 電壓轉(zhuǎn)換模塊。在SD卡向單片機(jī)傳輸數(shù)據(jù)時可以直接連接,因?yàn)樗鼈冎g的電平剛好滿足上述的電平
65、兼容原則,所以只做一個直流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電壓供整個系統(tǒng)供電。</p><p>
66、3.2 單片機(jī)最小系統(tǒng)</p><p> 3.2.1單片機(jī)原理圖及其特性</p><p> 單片機(jī)控制模塊是整個系統(tǒng)的核心。本系統(tǒng)采用STC12C5A60S2單片機(jī)為核心元件。下面圖3.2就是一個STC12C5A60S2單片機(jī)的引腳圖。</p><p> 圖3.2 STC89C52原理圖</p><p> STC12C5A60S2單片
67、機(jī)是宏晶科技生產(chǎn)的單時鐘/機(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),對電機(jī)控制,強(qiáng)干擾場合。</p><p> 1. 增強(qiáng)型 8051 CPU,1T,單時鐘/機(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個),復(fù)位后為:準(zhǔn)雙向口/弱上拉(普通8051傳統(tǒng)I/O口)可設(shè)置成四種模式:準(zhǔn)雙向口
70、/弱上拉,強(qiáng)推挽/強(qiáng)上拉,僅為輸入/高阻開漏每個I/O口驅(qū)動能力均可達(dá)到20mA, 但整個芯片最大不要超過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以下時,復(fù)位腳可直接1K電阻到地)</p><p> 11. 外部掉電檢測電路: 在P4.6口有一個低壓門檻比較器5V單片機(jī)為1.33V,誤差為±5%,3.3V 單片機(jī)為1.31V,誤差為±
72、;3%</p><p> 12. 時鐘源:外部高精度晶體/時鐘,內(nèi)部R/C振蕩器(溫漂為±5% 到±10% 以內(nèi))用戶在下載用戶程序時,可選擇是使用內(nèi)部R/C 振蕩器還是外部晶體/ 時鐘常溫下內(nèi)部R/C振蕩器頻率為:5.0V 單片機(jī)為: 11MHz ~ 17MHz</p><p> 3.3V 單片機(jī)為: 8MHz ~ 12MHz</p><p&g
73、t; 精度要求不高時,可選擇使用內(nèi)部時鐘,但因?yàn)橛兄圃煺`差和溫漂,以實(shí)際測試為準(zhǔn)。</p><p> 13. 共4個16位定時器,兩個與傳統(tǒng)8051兼容的定時器/計數(shù)器,16位定時器T0和T1,沒有定時器2,但有獨(dú)立 波特率發(fā)生器做串行通訊的波特率發(fā)生器,再加上2路PCA模塊可再實(shí)現(xiàn)2個16位定時器。</p><p> 14. 3個時鐘輸出口,可由T0的溢出在P3.4/T0輸
74、出時鐘,可由T1的溢出在P3.5/T1輸出時鐘,獨(dú)立波特率發(fā)生器可以在P1.0口輸出時鐘。</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(可編程計數(shù)器陣列,2路)</p><p> --- 也可用來當(dāng)2路D/A使用</p><p> --- 也可用來再實(shí)現(xiàn)2個定時器</p><p> --- 也可用來再實(shí)現(xiàn)2個外部中斷(上升沿中斷/下降沿中斷均可分別或同時支持)</p><p> 17. A/D轉(zhuǎn)換,
76、10位精度ADC,共8路,轉(zhuǎn)換速度可達(dá)250K/S(每秒鐘25萬次)</p><p> 18. 通用全雙工異步串行口(UART),由于STC12系列是高速的8051,可再用定時器或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è)級) / 0 ~ 75℃(商業(yè)級)</p><p> 21. 封裝:LQFP-48, LQFP-44, PDIP-40, PLCC-44, QFN-40I/O口不夠時,可用2到3根普通I/O口線外接74HC164/165/595(均可級聯(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)、程序存儲器(Flash)、數(shù)據(jù)存儲器(SRAM)、定時/計數(shù)器、UART串口、串口2、I/O接口、高速A/D轉(zhuǎn)換、SPI接口、PCA、看門狗及片內(nèi)R/C振蕩器和
79、外部晶體振蕩電路等模塊。STC12C5A60S2系列單片機(jī)幾乎包含了數(shù)據(jù)采集和控制中所需的所有單元模塊,可稱得上一個片上系統(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ī)可對STC12C5A60S2單片機(jī)來說,其最小系統(tǒng)一般應(yīng)該包括:單片機(jī)、晶振電路、復(fù)位電路、A/D轉(zhuǎn)換電路等。本設(shè)計的最小系統(tǒng)的原理圖見附件A。 </p><p><b> ?。?)復(fù)位電路</b></p><p> STC12C5A60S2的復(fù)位引腳(RESET)是第9腳,當(dāng)此引腳連接高電平超過2個機(jī)器周期,即可產(chǎn)生復(fù)位的動作。以24M
81、Hz的時鐘脈沖為例,每個時鐘脈沖為0.5us,兩個機(jī)器周期為1us,因此,在第9腳上連接一個2us的高電平脈沖,即可產(chǎn)生復(fù)位動作。最簡單的就是只有一個電阻跟一個電容就可可靠復(fù)位的電路,電阻一般選擇10KΩ,電容一般選擇10uF。</p><p> DY_mini80E開發(fā)板有兩種復(fù)位電路方式,如下圖3.4所示的復(fù)位電路。這里說下用高電平復(fù)位:在VCC和RST端接一容量為10uF左右的電解電容,再串聯(lián)一個電阻R2
82、1(10KΩ)接地。</p><p><b> 圖3.4 復(fù)位電路</b></p><p> 正常工作時,利用RST內(nèi)部復(fù)位下拉電阻Rr(40KΩ-220KΩ)便構(gòu)成了復(fù)位電路。接通電源瞬時,電容C10上電壓很小,由于復(fù)位下拉電阻Rr>>10KΩ,所以復(fù)位下拉電阻Rr上的電壓接近電源電壓,即RST位高電平,電路沒有影響。在電容充電過程中,RST端電位逐
83、漸下降,當(dāng)RST端電位小于某一數(shù)值后,CPU脫離復(fù)位狀態(tài)。只要電容C容量足夠大,即可保證RST高電平有效時間大于24個真到周期,CPU能可靠復(fù)位。在斷電后,VCC逐漸下降,當(dāng)VCC=0時,相當(dāng)于VCC端與地等電位,這時電容C10通過電阻R21迅速放電,保證再上電時端位高電平。</p><p> 此復(fù)位電路本身存在一個缺點(diǎn),當(dāng)死機(jī)時只能通過關(guān)機(jī)復(fù)位。為了解決這一問題,在電解電容C10上并聯(lián)一個電阻R10和開關(guān)K。
84、</p><p> 復(fù)位按鈕按下時,電解電容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> (2)
85、晶振電路(時鐘電路)</p><p> STC12C5A60S2單片機(jī)的最高時鐘脈沖頻率已經(jīng)達(dá)到了24MHz,它內(nèi)部已經(jīng)具備了振蕩電路,只要在STC12C5A60S2的兩個引腳(即18、 19腳)連接到簡單的石英振蕩體的2個管腳即可,同時晶體的2個管腳也要用30pF的電容耦合接地。在該電路由兩個30pF的電容C8、C9和一個24MHz的晶振Y2組成。其連接方式如圖3.5。</p><p>
86、;<b> 圖3.5 晶振電路</b></p><p> ?。?)A/D轉(zhuǎn)換電路</p><p> PCF8591是一個單片集成、單獨(dú)供電、低功耗、8-bit CMOS數(shù)據(jù)獲取器件。PCF8591具有4個模擬輸入、1個模擬輸出和1個串行I2C總線接口。PCF8591的3個地址引腳A0, A1和A2可用于硬件地址編程,允許在同個I2C總線上接入8個PCF8591器件
87、,而無需額外的硬件。在PCF8591器件上輸入輸出的地址、控制和數(shù)據(jù)信號都是通過雙線雙向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Ω的滑動變阻器(即電壓可調(diào)范圍0V-5V)分別進(jìn)入AIN0~
88、AIN3進(jìn)行A/D轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)字信號通過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,它們之間不能直接相連,否則可能會燒壞SD卡;但我們選
89、擇了帶SD卡的TFT彩屏模塊,TFT彩屏模塊中已含REG1117-3.3 電壓轉(zhuǎn)換模塊。而在SD卡向單片機(jī)傳輸數(shù)據(jù)時可以直接連接,因?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、腳,對應(yīng)12864液晶插座的腳,其接口原理圖如圖3.8。</p><p> 圖3.3.4.2 TFT彩屏接口原理圖</p><p><b> 4 軟件設(shè)計</b></p><p><b> 4.1軟件設(shè)計目標(biāo)</b></p><p> 最終能實(shí)現(xiàn)同時將四路模擬電壓(0-5V)進(jìn)行A/D轉(zhuǎn)換,
91、轉(zhuǎn)換結(jié)果為十進(jìn)制有效數(shù)字3位;要求每秒鐘轉(zhuǎn)換一次,并將結(jié)果轉(zhuǎn)換為ASCII碼形式;并將四路結(jié)果分別存儲到SD卡預(yù)先建立好的CH1.txt、CH2.txt、CH3.txt、CH4.txt文檔中。采集實(shí)時的4個通道電壓值顯示在TFT彩屏上;按S1按鍵進(jìn)行采集及存儲,再按S1按鍵暫停采集及存儲,按S2鍵清除SD卡中的內(nèi)容;按S按鍵系統(tǒng)進(jìn)行復(fù)位。</p><p> 4.2 Keil軟件簡介</p><
92、;p> Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成
93、的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。Keil C51軟件是一個基于32位Windows環(huán)境的應(yīng)用程序,支持C語言和匯編語言編程,其6.0以上的版本將編譯和仿真軟件統(tǒng)一為μVision(通常稱為μV2)。Keil提供包括C編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,由以下幾部分組成:μVision IDE集成開發(fā)環(huán)境C51編譯器、A51匯編器、LIB51庫管理器、BL51連
94、接/定位器、OH51目標(biāo)文件生成器以及 Monitor-51、RTX51實(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)的概念,對工程(而不能對單一的源程序)進(jìn)行編譯/匯編、連接等操
95、作。工程的建立、設(shè)置、編譯/匯編及連接產(chǎn)生目標(biāo)文件的方法非常易于掌握。首先選擇菜單File-New…,在源程序編輯器中輸入?yún)R編語言或C語言源程序(或選擇File-Open…,直接打開已用其它編輯器編輯好的源程序文檔)并保存,注意保存時必須在文件名后加上擴(kuò)展名.asm(.a51)或.c;然后選擇菜單Project-New Project…,建立新工程并保存(保存時無需加擴(kuò)展名,也可加上擴(kuò)展名.uv2);工程保存后會立即彈出一個設(shè)備選擇對話
96、框,選擇CPU后點(diǎn)確定返回主界面。這時工程管理窗口的文件頁(Files)會出現(xiàn)“Target1”,將其前面+號展開,接著選擇Source Group1,右擊鼠標(biāo)彈出快捷菜單,選擇“Add File to Group ‘Source Group1’”,出現(xiàn)一個對話框,要求尋找并加入源文件(在加入一個源文件后,該對話框不會消失,</p><p> 成功編譯/匯編、連接后,選擇菜單Debug-Start/Stop D
97、ebug Session(或按Ctrl+F5鍵)進(jìn)入程序調(diào)試狀態(tài),Keil提供對程序的模擬調(diào)試功能,內(nèi)建一個功能強(qiáng)大的仿真CPU以模擬執(zhí)行程序。Keil能以單步執(zhí)行(按F11或選擇Debug-Step)、過程單步執(zhí)行(按F10或選擇Debug-Step Over)、全速執(zhí)行等多種運(yùn)行方式進(jìn)行程序調(diào)試。如果發(fā)現(xiàn)程序有錯,可采用在線匯編功能對程序進(jìn)行在線修改(Debug-Inline Assambly…),不必執(zhí)行先退出調(diào)試環(huán)境、修改源程序
98、、對工程重新進(jìn)行編譯/匯編和連接、然后再次進(jìn)入調(diào)試狀態(tài)的步驟。對于一些必須滿足一定條件(如按鍵被按下等)才能被執(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è)計</b></p><p> 4.4.1系統(tǒng)初始化</p><p> 要讓系統(tǒng)正常運(yùn)行首先要對系統(tǒng)進(jìn)行初始化,主要包括:定時器T0初始化、DS1302初始化、LCD初始化、SD卡初始化、文件系統(tǒng)初始化。其流程圖如圖4.1所示。</p><p> 圖4.1 系統(tǒng)始化流程圖</p><p> 4.4.2 SD
100、卡初始化</p><p> SD卡從上電到對SD卡進(jìn)行正確的讀寫操作,往往都需要一個上電初始化的過程。SD卡上電后, 主機(jī)必須先向SD卡發(fā)送74個時鐘周期, 以完成SD卡的上電過程。通常SD卡上電后會自動進(jìn)入SD總線模式, 并在SD總線模式下向SD卡發(fā)送復(fù)位命令(CMD0)。因此, 主機(jī)在對SD卡進(jìn)行任何操作前, 都必須先要拉低SD卡的片選信號CS(card select), 以使SD卡進(jìn)入SPI總線模式, 然
101、后再由主機(jī)向SD卡發(fā)送命令。SD卡可以響應(yīng)主機(jī)發(fā)來的各種應(yīng)答信號, 同時向主機(jī)發(fā)送一個特殊的數(shù)據(jù)響應(yīng)標(biāo)志。若主機(jī)讀到的應(yīng)答信號為01,即表明SD卡已進(jìn)入SPI模式, 此時, 主機(jī)即可不斷地向SD卡發(fā)送命令字(CMD1) 并讀取SD卡的應(yīng)答信號, 直到應(yīng)答信號為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> 對SD卡可以按單頁或多頁讀寫,根據(jù)實(shí)際需要,此系統(tǒng)中,所有的讀寫操作都是按單頁進(jìn)行。單頁操作時,對SD卡的讀操作,可以讀取512字節(jié)內(nèi)任意長度的數(shù)據(jù),但寫操作必須是512字節(jié)。為了和文件系統(tǒng)兼容,對頁的讀寫操作都按512字節(jié)的數(shù)據(jù)量進(jìn)行。主機(jī)和印卡交換數(shù)據(jù)時,數(shù)據(jù)是封裝在長度為515字節(jié)的數(shù)據(jù)令牌中進(jìn)行的。數(shù)據(jù)令牌的結(jié)構(gòu)為:第1個字節(jié)是操作方
104、式標(biāo)志字節(jié),第2至513字節(jié)是讀取或?qū)懭氲臄?shù)據(jù)字節(jié),最后兩個字節(jié)是CRCl6校驗(yàn)字節(jié)。</p><p> 完成SD 卡的初始化之后即可進(jìn)行它的讀寫操作。SD 卡的讀寫操作都是通過發(fā)送SD 卡命令完成的。SPI 總線模式支持單塊(CMD24)和多塊(CMD25)寫操作,多塊操作是指從指定位置開始寫下去,直到SD 卡收到一個停止命令CMD12 才停止。單塊寫操作的數(shù)據(jù)塊長度只能是512 字節(jié)。單塊寫入時,命令為CM
105、D24,當(dāng)應(yīng)答為0 時說明可以寫入數(shù)據(jù),大小為512 字節(jié)。SD 卡對每個發(fā)送給自己的數(shù)據(jù)塊都通過一個應(yīng)答命令確認(rèn),它為1 個字節(jié)長,當(dāng)?shù)? 位為00101 時,表明數(shù)據(jù)塊被正確寫入SD 卡。在需要讀取 SD 卡中數(shù)據(jù)的時候,讀SD 卡的命令字為CMD17,接收正確的第一個響應(yīng)命令字節(jié)為0xFE,隨后是512 個字節(jié)的用戶數(shù)據(jù)塊,最后為2 個字節(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卡存儲時間和電壓流程圖</p><p> 打開指定文件,若失敗(即沒有該文件)那么就新建該指定文件,之后,追加該通道的日期時間和電壓值,具體見流程圖4.5所示。</
107、p><p> 圖4.5 SD卡存儲時間和電壓流程圖</p><p> 4.4.5定時器T0函數(shù)流程圖</p><p> 系統(tǒng)要求四個通道每一秒中分別進(jìn)行一次A/D轉(zhuǎn)換,系統(tǒng)采用24MHz晶振,一個周期0.5us,定時器初值賦值為50ms,則1s/(50ms*0.5us)=40,即溢出40次中斷一次為1s。具體見流程圖4.6所示。</p><p&
108、gt; 圖4.6 定時器T0函數(shù)流程圖</p><p> 4.4.6主體程序流程圖</p><p> 系統(tǒng)一上電就進(jìn)行系統(tǒng)初始化,再不斷循環(huán)掃描是否有按鍵按下什么功能按鍵按下,根據(jù)有無按鍵按下進(jìn)入往下的相應(yīng)程序,之后進(jìn)行時間標(biāo)志判斷,是,就清除標(biāo)志,讀各通道采樣數(shù)據(jù)并計算電壓值,再判斷是否采集標(biāo)志,是的話就SD卡存儲并LCD顯示,否的話不存儲只LCD顯示。具體見流程圖4.7所示。&l
109、t;/p><p> 圖4.7 主程序流程圖</p><p><b> 5 結(jié)論</b></p><p> 設(shè)計通過利用STC12C5A60S2單片機(jī)對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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- sd卡存儲采集數(shù)據(jù)電路設(shè)計畢業(yè)論文
- 基于fpga的gps數(shù)據(jù)采集存儲電路設(shè)計開題報告
- 基于dsp數(shù)據(jù)采集電路設(shè)計
- 數(shù)字存儲示波器數(shù)據(jù)采集與控制電路設(shè)計研究.pdf
- 電壓采集電路設(shè)計
- 電骰子電路設(shè)計畢業(yè)設(shè)計
- 脈搏顯示電路設(shè)計畢業(yè)設(shè)計
- 高速數(shù)據(jù)采集及存儲電路的設(shè)計.pdf
- 聲光控臺燈電路設(shè)計畢業(yè)設(shè)計
- 數(shù)據(jù)采集畢業(yè)設(shè)計
- 數(shù)據(jù)采集電路設(shè)計-測控電路課程設(shè)計任務(wù)書
- 畢業(yè)設(shè)計---語音門的電路設(shè)計
- 聲光控臺燈電路設(shè)計 畢業(yè)設(shè)計
- 應(yīng)急燈電路設(shè)計畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---晶閘管可逆調(diào)速電路設(shè)計
- 直流斬波電路設(shè)計畢業(yè)設(shè)計
- 畢業(yè)設(shè)計—傳感器電路設(shè)計
- 基于數(shù)字電視芯片的SD卡接口電路設(shè)計.pdf
- sd卡存儲系統(tǒng)的設(shè)計【畢業(yè)論文】
- 畢業(yè)設(shè)計(論文)-聲光控臺燈電路設(shè)計
評論
0/150
提交評論