版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 編號(hào): </p><p><b> 畢業(yè)設(shè)計(jì)說明書</b></p><p> 題 目: SD卡存儲(chǔ)采集 </p><p> 數(shù)據(jù)電路設(shè)計(jì) </p><p> 題目類型: 理論研究 實(shí)驗(yàn)研究 √工程設(shè)計(jì) 工程技術(shù)研究
2、 軟件開發(fā)</p><p> 2012年4月10日</p><p><b> 摘 要</b></p><p> 許多工業(yè)現(xiàn)場需要數(shù)據(jù)采集器完成各類數(shù)據(jù)采集工作。實(shí)際應(yīng)用中要求數(shù)據(jù)采集器工作可靠,成本低廉,操作簡單便于數(shù)據(jù)收集和分析;既要方便與PC機(jī)聯(lián)機(jī),又能獨(dú)立完成數(shù)據(jù)采集、存儲(chǔ)工作。</p><p> 隨著近
3、年來SD卡儲(chǔ)存容量的大幅度提高,價(jià)格降低,其應(yīng)用范圍越來越廣泛。當(dāng)數(shù)據(jù)采集系統(tǒng)需要較長的時(shí)間來捕捉和記錄大量數(shù)據(jù)時(shí),選擇SD卡作為存儲(chǔ)介質(zhì),是一個(gè)非常好的選擇。例如在電能監(jiān)測以及無功補(bǔ)償系統(tǒng)中,要連續(xù)記錄大量的電壓、電流、有功功率、無功功率以及時(shí)間等參數(shù),當(dāng)單片機(jī)采集到這些數(shù)據(jù)時(shí)就可以利用SD作為存儲(chǔ)媒質(zhì)。</p><p> 論文介紹了SD卡存儲(chǔ)采集數(shù)據(jù)電路設(shè)計(jì)原理、電路以及程序,闡述了基于STC12C5A60
4、S2芯片主控的DY_mini80E開發(fā)板實(shí)現(xiàn)數(shù)據(jù)的采集和數(shù)據(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)換
5、模塊PCF8591,外接SD接口模塊,完成了調(diào)試實(shí)現(xiàn)。</p><p> 關(guān)鍵詞:數(shù)據(jù)采集;STC12C5A60S2;PCF8591;SD卡;REG1117-3.3;FAT32文件系統(tǒng)</p><p><b> Abstract</b></p><p> Many industry site need data collector of
6、all kinds of data acquisition work completed. Practical application request data collector reliable, low cost, easy to operate, easy to data collection and analysis; Both convenient and PC online, and independently compl
7、ete the data acquisition, storage work.</p><p> In recent years, with SD card storage capacity greatly raised, the lower prices, its application scope is more and more widely. When the data acquisition syst
8、em needs a long time to catch and records of large quantities of data, choose SD card as a storage medium, is a very good choice. For example in the electrical energy monitoring and reactive compensation system, a record
9、 a lot of voltage, current, active power, reactive power and parameters such as time, when the SCM acquisition to these da</p><p> This paper introduces the SD card store data acquisition circuit design pri
10、nciple, circuit and program, this paper expounds the main control based on STC12C5A60S2 chip DY_mini80E development board realize data acquisition and data storage SD circuit design process and the realization methods an
11、d operation result analysis. The system can also collecting four ways of periodic signal waveform, and will be four road simulation voltage (0-5 V) for A/D conversion, every second conversion once, result </p><
12、;p> Keyword: Data collection;STC12C5A60S2; PCF8591; SD card; REG1117-3.3; FAT32 file system</p><p><b> 目 錄</b></p><p><b> 引言1</b></p><p> 1 方案論證與選擇
13、2</p><p> 1.1 設(shè)計(jì)相關(guān)指標(biāo)分析及系統(tǒng)構(gòu)成2</p><p> 1.2 主控電路芯片的選擇2</p><p> 2 SD卡簡介3</p><p> 2.1 SD存儲(chǔ)卡系統(tǒng)概念3</p><p> 2.1.1總線拓?fù)?</p><p> 2.1.2總線協(xié)定
14、5</p><p> 2.2 SD卡的引腳定義及SD卡的命令6</p><p> 2.2.1 SD卡的引腳定義6</p><p> 2.2.2 SD卡的命令7</p><p><b> 3 硬件設(shè)計(jì)9</b></p><p> 3.1 電源模塊9</p>
15、<p> 3.2 單片機(jī)最小系統(tǒng)10</p><p> 3.2.1 STC12C5A60S2原理圖以及它的特性10</p><p> 3.2.2 單片機(jī)STC12C5A60S2最小系統(tǒng)的組成12</p><p> 3.3 帶SD卡的TFT彩屏14</p><p> 4 軟件設(shè)計(jì)17</p>&
16、lt;p> 4.1 軟件設(shè)計(jì)目標(biāo)17</p><p> 4.2 設(shè)計(jì)環(huán)境17</p><p> 4.3 系統(tǒng)軟件設(shè)計(jì)17</p><p> 4.3.1 系統(tǒng)初始化17</p><p> 4.3.2 SD卡初始化18</p><p> 4.3.3 數(shù)據(jù)塊的讀寫19</p>&l
17、t;p> 4.3.4 SD卡存儲(chǔ)時(shí)間和電壓流程圖22</p><p> 4.3.5 定時(shí)器T0函數(shù)流程圖23</p><p> 4.3.6 主體程序流程圖23</p><p><b> 5 結(jié)論25</b></p><p><b> 謝 辭26</b></p&
18、gt;<p><b> 參考文獻(xiàn)27</b></p><p><b> 附 錄28</b></p><p><b> 引言</b></p><p> 隨著近年來SD卡儲(chǔ)存容量不斷大幅度提高,價(jià)格不斷降低,其應(yīng)用范圍越來越廣泛。當(dāng)數(shù)據(jù)采集系統(tǒng)需要較長的時(shí)間來捕捉和記錄大量
19、數(shù)據(jù)時(shí),選擇SD卡作為存儲(chǔ)介質(zhì),是一個(gè)非常好的選擇。就如在電能監(jiān)測系統(tǒng)中,要連續(xù)記錄大量的電壓、電流及時(shí)間等參數(shù),當(dāng)采集到這些數(shù)據(jù)時(shí)就可以利用SD作為存儲(chǔ)媒質(zhì)。</p><p> SD卡是由日本松下、東芝及美國SanDisk公司于1999年8月共同開發(fā)研制。大小不足一張郵票的SD一記憶卡,重量不足2克,但卻擁有高記憶容量、快速數(shù)據(jù)傳輸率、極大的移動(dòng)靈活性以及很好的安全性。SD卡在24mm×32mm
20、215;2.1mm的體積內(nèi)結(jié)合了SanDisk快閃一記憶卡控制與MLC技術(shù)和Toshiba(東芝)0.6u及0.13 u的NAND技術(shù),通過9針的接口界而與專門的驅(qū)動(dòng)器相連接,不需要額外的電源來保持其上記憶的信息。而且它是一體化固體介質(zhì),沒有任何移動(dòng)部分。SD卡的技術(shù)建立是基于MultiMwdia卡(MMc)格式上發(fā)展而來,大小和MMC差不多。長寬和MMC一樣,只是比MMC厚了0.7mm,以容納更大容量的存貯單元。SD卡與MMC卡保持著
21、向上兼容,也就是說,MMC可以被新的SD設(shè)備存取,兼容性則取決于應(yīng)用軟件,但SD卡卻不可以被MMC設(shè)備存取。</p><p> 采用SD卡存儲(chǔ)技術(shù)設(shè)計(jì)一款低成本數(shù)據(jù)采集模塊。該數(shù)據(jù)采集模塊可與PC機(jī)共同實(shí)現(xiàn)數(shù)據(jù)采集與分析,也可長時(shí)間獨(dú)立工作于工業(yè)現(xiàn)場,并將采集數(shù)據(jù)存放于大容量SD卡,便于數(shù)據(jù)收集并利用計(jì)算機(jī)分析。該數(shù)據(jù)采集模塊,結(jié)構(gòu)簡單,工作穩(wěn)定,體積小,成本低。</p><p> 單
22、片機(jī)是智能化模塊,有數(shù)據(jù)存儲(chǔ)、讀寫的功能,并且支持匯編和C語言編程,在工作電壓穩(wěn)定的條件下可以實(shí)現(xiàn)長時(shí)間穩(wěn)定的工作,而且還具有價(jià)格低廉的優(yōu)勢。在讀寫SD卡中,單片機(jī)比PC機(jī)更適合在現(xiàn)場長時(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> 1 方案論證與選擇</p>
23、;<p> 1.1 設(shè)計(jì)相關(guān)指標(biāo)分析及系統(tǒng)構(gòu)成</p><p> 設(shè)計(jì)要求是將四路模擬電壓進(jìn)行數(shù)字化后存儲(chǔ)到SD存儲(chǔ)卡中。具體說明如下:</p><p> (1)將四路模擬電壓(0-5V)進(jìn)行A/D轉(zhuǎn)換,轉(zhuǎn)換結(jié)果為十進(jìn)制3位有效數(shù)字。</p><p> ?。?)要求每秒鐘各路都轉(zhuǎn)換一次,并將結(jié)果轉(zhuǎn)換為ASCII碼形式,如1.23V。</p&
24、gt;<p> ?。?)四路結(jié)果分別存儲(chǔ)到SD卡預(yù)先建立好的CH1.txt、CH2.txt、CH3.txt、CH4.txt文檔中。</p><p> 圖1.1是SD卡存儲(chǔ)采集數(shù)據(jù)電路設(shè)計(jì)框圖。系統(tǒng)要完成模擬電壓的A/D轉(zhuǎn)換,每秒鐘各自轉(zhuǎn)換一次,結(jié)果分別存到建立好的SD卡中的文檔中。</p><p><b> A通道輸入</b></p>
25、<p><b> B通道輸入</b></p><p> C通道輸入 </p><p><b> D通道輸入</b></p><p> 圖1.1 SD卡存儲(chǔ)采集數(shù)據(jù)電路設(shè)計(jì)框圖</p><p>
26、1.2 主控電路芯片的選擇</p><p> 方案一:AVR單片機(jī)上資源豐富:帶E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,WDT等;AVR除了有ISP功能外,還有IAP功能,方便升級(jí)應(yīng)用程序;AVR單片機(jī)系列齊全,可適用于各種不同場合的要求。具有高的處理速度,能夠非常容易、快速地處理復(fù)雜的數(shù)字信號(hào)。</p><p> 方案二:采用STC12C5A60S2單片
27、機(jī)實(shí)現(xiàn)整個(gè)系統(tǒng)的統(tǒng)一控制和數(shù)據(jù)處理。單片機(jī)STC12C5A60S2是一種超低功耗微處理器, 具有豐富的片上外設(shè)和較強(qiáng)的運(yùn)算能力, 支持在線編程, 使用十分方便, 性價(jià)比較高。由STC12C5A60S2芯片主控DY_mini80E開發(fā)板(板上含有PCF8591八位A/D轉(zhuǎn)換模塊)再加上一塊帶SD卡的TFT彩屏等就可以滿足題目設(shè)計(jì)調(diào)試要求。設(shè)計(jì)采用此方案。</p><p><b> 2 SD卡簡介<
28、;/b></p><p> 2.1 SD存儲(chǔ)卡系統(tǒng)概念</p><p><b> 2.1.1總線拓?fù)?lt;/b></p><p><b> ?。?)SD模式總線</b></p><p><b> SD總線信號(hào):</b></p><p> CLK
29、: 主設(shè)備對(duì)卡發(fā)出的時(shí)鐘訊號(hào)。</p><p> CMD: 雙向命令/響應(yīng)訊號(hào)。</p><p> DAT0-DAT3: 4個(gè)雙向數(shù)據(jù)傳輸信號(hào)。</p><p> VDD、VSS1、VSS2: 電源與地。</p><p> SD模式總線有主機(jī)(應(yīng)用程序),從機(jī)(卡),同步的星型拓?fù)?如圖2.1)。時(shí)鐘、電源、地連接到所有卡。命令(CM
30、D)和數(shù)據(jù)(DAT0- DAT3)信號(hào)對(duì)每個(gè)卡提供點(diǎn)到點(diǎn)的連接。在發(fā)初始化命令給每張卡的時(shí)候,允許應(yīng)用程序發(fā)現(xiàn)并分配邏輯地址給卡此時(shí)數(shù)據(jù)總是單獨(dú)地被送到每個(gè)卡。然而,在初始化之后,所有的命令就可以同時(shí)送到所有的卡,為了分開控制堆疊中的卡,而將地址信息包含在命令包中。</p><p> 圖2.1 SD模式總線拓?fù)鋱D</p><p> SD總線允許動(dòng)態(tài)的配置數(shù)據(jù)線的數(shù)目。在上電后,SD存儲(chǔ)
31、卡默認(rèn)的只使用DAT0作為數(shù)據(jù)傳輸線。在設(shè)定初值之后主機(jī)能改變總線寬度(即改為2根線或3根線等。)</p><p> (2)SPI模式總線</p><p> SD存儲(chǔ)卡的兼容通信模式被設(shè)計(jì)為連接SPI通道,被用在各種微控制器中。如圖2.2。這種模式在上電后的第一次復(fù)位時(shí)選擇使用,在重新上電之前不能變更。SPI標(biāo)準(zhǔn)只定義實(shí)際的連接,和不完全的數(shù)據(jù)轉(zhuǎn)移協(xié)定。SD卡的SPI模式使用在SD模式
32、下相同的模式。從應(yīng)用程序觀點(diǎn)來看,SPI模式使用的是現(xiàn)有的設(shè)備,這樣就使得主機(jī)系統(tǒng)通過很小的改動(dòng)就可以使用SD卡。缺點(diǎn)是數(shù)據(jù)傳輸效率的損失,相對(duì)SD模式減小了總線寬度。</p><p> SD存儲(chǔ)卡的SPI接口能連接到具有SPI接口的現(xiàn)有主機(jī)上。和任何其他的SPI設(shè)備一樣,SD存儲(chǔ)卡的SPI接口如下四種信號(hào)組成:</p><p> CS: 主機(jī)到卡的片選信號(hào)。</p>&
33、lt;p> CLK: 主機(jī)到卡的時(shí)鐘信號(hào)。</p><p> DataIn: 主機(jī)到卡的數(shù)據(jù)信號(hào)。</p><p> DataOut: 卡到主機(jī)的數(shù)據(jù)信號(hào)。</p><p> SPI的另一個(gè)特性是字節(jié)方式的傳輸,在卡中也一樣。所有的數(shù)據(jù)都是字節(jié)(8位)的集合,而且總是字節(jié)排列好等待CS信號(hào)。</p><p> 圖2.2 SPI
34、模式總線拓?fù)?lt;/p><p> 卡的區(qū)別和尋址方式被片選(CS)信號(hào)代替。每個(gè)命令都是被CS信號(hào)是低電平的那張卡接收。</p><p> CS信號(hào)在SPI處理時(shí)(命令傳輸、響應(yīng)和數(shù)據(jù)傳物必須是一直有效的。SPI使用SD模式中9根信號(hào)線中的7根(DAT1. DAT2不使用,DAT3是CS信號(hào))。</p><p><b> 2.1.2總線協(xié)定</b
35、></p><p><b> ?。?)SD總線</b></p><p> SD總線上的通信是基于命令和數(shù)據(jù)位流,開始于啟動(dòng)位、結(jié)束于停止位,如圖2.3。</p><p> 命令: 一個(gè)命令是啟動(dòng)一個(gè)操作的記號(hào)。每條命令都可以從主機(jī)發(fā)出,被唯一的卡接收(定址命令),或被全部卡接收(廣播命令)。命令可以在CMD線上被連續(xù)的傳輸。 <
36、/p><p> 響應(yīng):響應(yīng)可以由被定址的卡發(fā)出,或者所有的卡(同時(shí))向主機(jī)發(fā)出對(duì)先前命令的應(yīng)答。響應(yīng)可以在CMD線上連續(xù)的傳輸。</p><p> 數(shù)據(jù):數(shù)據(jù)能從卡傳輸?shù)街鳈C(jī),反之亦然,數(shù)據(jù)經(jīng)由數(shù)據(jù)線傳輸。</p><p> 卡使用一個(gè)中間地址來實(shí)現(xiàn)尋址,在設(shè)定初始相位期間中間地址被分配到卡上。SD總線上的基本操作是命期響應(yīng)方式。這種總線處理方式是直接在命令或響應(yīng)
37、結(jié)構(gòu)里面?zhèn)鬟f他們的信息。此外,有些操作帶有數(shù)據(jù)。</p><p> 圖2.3 響應(yīng)的方式</p><p> 傳遞到SD卡或從卡中傳出的數(shù)據(jù)是包含在數(shù)據(jù)塊中的。CRC位標(biāo)志了數(shù)據(jù)塊傳輸?shù)某晒ν瓿桑粏我粔K和多重塊的操作是預(yù)先定義的;注意多重塊操作模式有利于快速寫入;當(dāng)一個(gè)停止命令在CMD線上出現(xiàn)的時(shí)候,一個(gè)多重塊傳輸結(jié)束。數(shù)據(jù)轉(zhuǎn)移可以根據(jù)主機(jī)的配置使用單根或多根數(shù)據(jù)線(只要卡支持)。<
38、;/p><p> 每個(gè)命令以一個(gè)起始位‘0'開始以一個(gè)截止位‘1'結(jié)束,總長度是48位。每段指令都被CRC位保護(hù)以便傳輸錯(cuò)誤時(shí)能被發(fā)現(xiàn),而且運(yùn)算可能是重復(fù)的。</p><p> 響應(yīng)根據(jù)其內(nèi)容,有四種編碼方式。長度不是48位就是136位。數(shù)據(jù)塊的CRC保護(hù)算法為多名的16位的CCITT。</p><p> 在CMD線中MSB位先傳愉,LSB位后傳輸
39、。當(dāng)使用寬總線時(shí),數(shù)據(jù)一次傳輸4位。每一根DAT線都要傳輸開始位、結(jié)束位和CRC位。CRC位被每根DAT線單獨(dú)計(jì)算并核對(duì)。CRC狀態(tài)響應(yīng)和忙指示只會(huì)在DAT0上由卡向主機(jī)傳輸(DAT1-DAT3在此期間與此無關(guān))。</p><p><b> (2)SPI總線</b></p><p> SD通道以指令和以起始位開始以停止位結(jié)束的數(shù)據(jù)位流為基礎(chǔ),SPI通道是被定向的位
40、組。每個(gè)命令或數(shù)據(jù)塊都被組裝為8位的字節(jié)并且是被排齊到CS信號(hào)的字節(jié)(即長度是8個(gè)時(shí)鐘周期的循環(huán))。類似SD協(xié)議,SPI信息也是由命令、響應(yīng)和數(shù)據(jù)塊所組成。所有的通信在主機(jī)和卡之間被主機(jī)控制。主機(jī)處理總線上CS信號(hào)為低電平的那個(gè)。</p><p> 響應(yīng)的行為在SPI模式里有三個(gè)方面不同于SD模式:</p><p> ① 被選擇的卡總是回應(yīng)命令。</p><p>
41、; ?、?響應(yīng)使用為兩種新的(8&16位)結(jié)構(gòu)。</p><p> ?、?當(dāng)卡遇到一個(gè)數(shù)據(jù)檢索問題的時(shí)候,它會(huì)用一個(gè)錯(cuò)誤響應(yīng)(替換預(yù)期的數(shù)據(jù)塊)回應(yīng),而不像在SD模式中回應(yīng)超時(shí)。</p><p> 本設(shè)計(jì)采用SPI總線模式。</p><p> 2.2 SD卡的引腳定義及SD卡的命令</p><p> 2.2.1 SD卡
42、的引腳定義</p><p> ?。?)SD卡引腳功能詳述:</p><p> 表2.1 SD卡引腳功能詳述</p><p> (2) SD卡支持的兩種總線方式:</p><p> SD方式與SPI方式。其中SD方式采用6線制,使用CLK、CMD、DAT0~DAT3進(jìn)行數(shù)據(jù)通信。而SPI方式采用4線制,使用CS、CLK、DataIn、Da
43、taOut進(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> 2.2.2 SD卡的命令</p><p><b> (1) 命令類型</b></p><p> 控制SD卡有4種類
44、型的命令:</p><p> ?、?廣播命令,無響應(yīng)。</p><p> 廣播命令的特點(diǎn)是如果所有的CMD線與主機(jī)連接到一起。如果把它們分開,那么每張卡將在輪到它的時(shí)候單獨(dú)接收。</p><p> ?、?有響應(yīng)的廣播命令。</p><p> 從所有卡來的響應(yīng)是同時(shí)的。但是在SD卡里沒有開漏模式,這個(gè)類型命令只可以使用在所有的CMD線是分開
45、的情況下。這個(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)行。命令傳送總是從左邊的位開始。</p><p><b> (2) 命令格式</b><
46、/p><p> 所有的命令都有48位的固定碼,在20MHz的情況下需要傳輸2.4ms。命令格式如下:表2.2。</p><p><b> 表2.2 命令格式</b></p><p> 一個(gè)命令總是以一個(gè)啟動(dòng)位開始(總是‘0’),后面跟了指示傳輸方向的位(主機(jī)=‘1’)。下6位指示命令的索引,這個(gè)值解釋了二進(jìn)制代碼數(shù)(在0和63之間)。一些命令
47、需要一個(gè)變量(例如:一個(gè)地址32位)。在表中被‘x’指代的值,指示這個(gè)變量依賴的命令。所有的命令都被CRC保護(hù)。每一條命令由一個(gè)結(jié)束位結(jié)束。</p><p> ?。?) SD卡命令集:</p><p> SD卡命令共分為12類,分別為class0到classⅡ,不同的SD卡,主控根據(jù)其功能,支持不同的命令集如下:</p><p> C1ass0:(卡的識(shí)別、初始
48、化等基本命令集):</p><p> CMD0:復(fù)位SD卡。</p><p> CMD1:讀OCR寄存器。</p><p> CMD9:讀CSD寄存器。</p><p> CMD10:讀CTD寄存器。</p><p> CMD12:停止讀多塊時(shí)的數(shù)據(jù)傳輸。</p><p> CMD1
49、3:讀Cardes Status寄存器。</p><p> Class2(讀卡命令集):</p><p> CMD16:設(shè)置塊的長度。</p><p> CMD17:讀單塊。</p><p> CMD18:讀多塊,直至主機(jī)發(fā)送CMD12為止。</p><p> Class4(寫卡命令集):</p>
50、<p> CMD24:寫單塊。</p><p> CMD25:寫多塊。</p><p> CMD27:寫CSD寄存器。</p><p> Class5(擦除卡命令集):</p><p> CMD32:設(shè)置擦除塊的起始地址.</p><p> CMD33:設(shè)置擦除塊的終止地址。</p>
51、;<p> CMD38:擦除所選擇的塊。</p><p> Class6(寫保護(hù)命令集):</p><p> CMD28:設(shè)置寫保護(hù)塊的地址。</p><p> CMD29:擦除寫保護(hù)塊的地址。</p><p> CMD30:Ask the card for the status of the mite protect
52、ion bits。</p><p> Class7:卡的鎖定,解鎖功能命令集。</p><p> class8:申請(qǐng)?zhí)囟罴?lt;/p><p> classl0和class11:保留。</p><p> 其中class 1, class3,class9的SPI模式不支持。</p><p><b>
53、 3 硬件設(shè)計(jì)</b></p><p> 系統(tǒng)整體硬件方案分為三個(gè)部分:電源部分、單片機(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_m
54、ini80E開發(fā)板上的四路電位器采集不同的電壓信號(hào)(四路電壓范圍均0V-5V),按動(dòng)采集鍵后,信號(hào)開始采集,每秒鐘各通道進(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>
55、SD卡的工作電平為3.3V,而控制芯片STC12C5A60S2的邏輯電平為5V CMOS電平標(biāo)準(zhǔn)。因此,它們之間不能直接相連,否則可能會(huì)燒壞SD卡;出于對(duì)安全工作的考慮,有必要解決電平匹配問題。</p><p> 要解決這一問題,最根本的就是解決邏輯器件接口的要有兩條:一為輸出電平器件輸出高電平的最小電壓值,應(yīng)該大于接收電平器件識(shí)別為高電平的最低電壓值;另一條為輸出電平器件輸出低電平的最大電壓值,應(yīng)該小于接收電
56、平器件識(shí)別為低電平的最高電壓值。</p><p> 一般來說,通用的電平轉(zhuǎn)換方案是采用類似SN74ALVC4245的專用電平轉(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彩屏模塊中
57、包含REG1117-3.3 電壓轉(zhuǎn)換模塊。在SD卡向單片機(jī)傳輸數(shù)據(jù)時(shí)可以直接連接,因?yàn)樗鼈冎g的電平剛好滿足上述的電平兼容原則,所以只做一個(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)過濾波
58、電容C1、C2后經(jīng)LM7805穩(wěn)壓管穩(wěn)壓成穩(wěn)定的5V電壓供整個(gè)系統(tǒng)供電。</p><p> 3.2 單片機(jī)最小系統(tǒng)</p><p> 3.2.1 STC12C5A60S2原理圖以及它的特性</p><p> 單片機(jī)控制模塊是整個(gè)系統(tǒng)的核心。本系統(tǒng)采用STC12C5A60S2單片機(jī)為核心元件。下面圖3.2就是一個(gè)STC12C5A60S2單片機(jī)的原理圖。</
59、p><p> 圖3.2 STC89C52原理圖</p><p> STC12C5A60S2單片機(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,即25萬次/秒),針對(duì)電機(jī)控制,強(qiáng)干擾場合。</p&g
60、t;<p> (1) 增強(qiáng)型 8051 CPU,1T,單時(shí)鐘/機(jī)器周期,指令代碼完全兼容傳統(tǒng)8051。</p><p><b> (2) 工作電壓:</b></p><p> STC12C5A60S2 系列工作電壓: 5.5V - 3.3V(5V單片機(jī));</p><p> STC12LE5A60S2 系列工作電壓: 3.
61、6V - 2.2V(3V單片機(jī))。</p><p> ?。?) 工作頻率范圍:0~35MHz,相當(dāng)于普通8051的 0~420MHz。</p><p> (4) 用戶應(yīng)用程序空間 8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K 字</p><p><b> 節(jié)等。</b></p>
62、;<p> (5) 片上集成1280字節(jié) RAM。</p><p> ?。?) 通用I/O口(36/40/44個(gè)),復(fù)位后為:準(zhǔn)雙向口/弱上拉(普通8051傳統(tǒng)I/O口)</p><p> 可設(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,強(qiáng)推挽/強(qiáng)上拉,僅為輸入/高阻,開漏每個(gè)I/O</p><p> 口驅(qū)動(dòng)能力均可達(dá)到20mA,但整個(gè)芯片最大不要超過120
63、mA。</p><p> ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無需專用仿真</p><p> 器,可通過串口(P3.0/P3.1)直接下載用戶程序,數(shù)秒即可完成一片。</p><p> 有EEPROM功能(STC12C5A62S2/AD/PWM無內(nèi)部EEPROM)和看門狗。</p><p> 內(nèi)部集成MAX
64、810專用復(fù)位電路(外部晶體12M以下時(shí),復(fù)位腳可直接1K電阻到地)。</p><p> 外部掉電檢測電路: 在P4.6口有一個(gè)低壓門檻比較器5V單片機(jī)為1.33V,誤差為</p><p> ±5%,3.3V 單片機(jī)為1.31V,誤差為±3%。</p><p> 時(shí)鐘源:外部高精度晶體/時(shí)鐘,內(nèi)部R/C振蕩器(溫漂為±5% 到
65、177;10% 以內(nèi))用</p><p> 戶在下載用戶程序時(shí),可選擇是使用內(nèi)部R/C 振蕩器還是外部晶體/ 時(shí)鐘,常溫下內(nèi)部R/C振蕩器頻率為:</p><p> 5.0V 單片機(jī)為: 11MHz ~ 15.5MHz;</p><p> 3.3V 單片機(jī)為: 8MHz ~ 12MHz。</p><p> 精度要求不高時(shí),可選擇使用內(nèi)
66、部時(shí)鐘,但因?yàn)橛兄圃煺`差和溫漂,以實(shí)際測試為</p><p><b> 準(zhǔn)。</b></p><p> 共4個(gè)16位定時(shí)器。兩個(gè)與傳統(tǒng)8051兼容的定時(shí)器/計(jì)數(shù)器,16位定時(shí)器T0 和T1,</p><p> 沒有定時(shí)器2,但有獨(dú)立波特率發(fā)生器做串行通訊的波特率發(fā)生器,再加上2路PCA模塊可再實(shí)現(xiàn)2個(gè)16位定時(shí)器。</p>
67、<p> 2個(gè)時(shí)鐘輸出口,可由T0的溢出在P3.4/T0輸出時(shí)鐘,可由T1的溢出在P3.5/T1輸</p><p><b> 出時(shí)鐘。</b></p><p> 外部中斷I/O口7路,傳統(tǒng)的下降沿中斷或低電平觸發(fā)中斷,并新增支持上升沿中</p><p> 斷的PCA模塊,Power Down模式可由外部中斷喚醒,INT1/P3
68、.3,T0/P3.4,T1/P3.5, RXD/P3.0,CCP0/P1.3(也可通過寄存器設(shè)置到P4.2), CCP1/P1.4(也可通過寄存器設(shè)置到P4.3)。</p><p> ?。?5) PWM(2路)/PCA(可編程計(jì)數(shù)器陣列,2路);也可用來當(dāng)2路D/A使用;也可用來再實(shí)現(xiàn)2個(gè)定時(shí)器;也可用來再實(shí)現(xiàn)2個(gè)外部中斷(上升沿中斷/下降沿中斷均可分別或同時(shí)支持)。</p><p>
69、(16) A/D轉(zhuǎn)換, 10位精度ADC,共8路,轉(zhuǎn)換速度可達(dá)250K/S(每秒鐘25萬次)。</p><p> (17) 通用全雙工異步串行口(UART),由于STC12系列是高速的8051可再用定時(shí)器或PCA</p><p><b> 軟件實(shí)現(xiàn)多串口。</b></p><p> STC12C5A60S2系列有雙串口,后綴有S2標(biāo)志的才
70、有雙串口,RxD2/P1.2(可通過</p><p> 寄存器設(shè)置到P4.2),TxD2/P1.3(可通過寄存器設(shè)置到P4.3)。</p><p> 工作溫度范圍:-40 ~ +85℃(工業(yè)級(jí)) / 0 ~ 75℃(商業(yè)級(jí))。</p><p> 封裝:LQFP-48, LQFP-44, PDIP-40, PLCC-44, QFN-40。</p>
71、<p> I/O口不夠時(shí),可用2到3根普通I/O口線外接74HC164/165/595(均可級(jí)聯(lián))來擴(kuò)展I/O口,還可用A/D做按鍵掃描來節(jié)省I/O口,或用雙CPU,三線通信,還多了串口。</p><p> 3.2.2 單片機(jī)STC12C5A60S2最小系統(tǒng)的組成</p><p> 單片機(jī)STC12C5A60S2最小系統(tǒng)(DY_mini80E開發(fā)板),是指用最少的元件組成的
72、單片機(jī)可對(duì)STC12C5A60S2單片機(jī)來說,其最小系統(tǒng)一般應(yīng)該包括:單片機(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)作。以24MHz的時(shí)鐘脈沖為例,每
73、個(gè)時(shí)鐘脈沖為0.5us,兩個(gè)機(jī)器周期為1us,因此,在第9腳上連接一個(gè)2us的高電平脈沖,即可產(chǎn)生復(fù)位動(dòng)作。最簡單的就是只有一個(gè)電阻跟一個(gè)電容就可可靠復(fù)位的電路,電阻一般選擇10KΩ,電容一般選擇10uF。</p><p> DY_mini80E開發(fā)板有兩種復(fù)位電路方式,如下圖3.4所示的復(fù)位電路。這里說下用高電平復(fù)位:在VCC和RST端接一容量為10uF左右的電解電容,再串聯(lián)一個(gè)電阻R21(10KΩ)接地。&
74、lt;/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端電位逐漸下降,當(dāng)RST端電位
75、小于某一數(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。</p>
76、<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> ?。?)晶振電路(時(shí)鐘電路)&
77、lt;/p><p> STC12C5A60S2單片機(jī)的最高時(shí)鐘脈沖頻率已經(jīng)達(dá)到了24MHz,它內(nèi)部已經(jīng)具備了振蕩電路,只要在STC12C5A60S2的兩個(gè)引腳(即18、 19腳)連接到簡單的石英振蕩體的2個(gè)管腳即可,同時(shí)晶體的2個(gè)管腳也要用30pF的電容耦合接地。在該電路由兩個(gè)30pF的電容C8、C9和一個(gè)24MHz的晶振Y2組成。其連接方式如圖3.5。</p><p><b>
78、 圖3.5 晶振電路</b></p><p> ?。?)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器件,而無需額外的硬件。在
79、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~AIN3進(jìn)行A/D轉(zhuǎn)換
80、,轉(zhuǎn)換后的數(shù)字信號(hào)通過SCL、SDA腳送到STC12C5A60S2單片機(jī)。</p><p> 圖3.6 A/D轉(zhuǎn)換電路</p><p> 3.3 帶SD卡的TFT彩屏</p><p> 控制芯片STC12C5A60S2的邏輯電平為5V CMOS電平標(biāo)準(zhǔn),而SD卡的邏輯電平為3.3V,它們之間不能直接相連,否則可能會(huì)燒壞SD卡;但我們選擇了帶SD卡的TFT彩屏模
81、塊,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腳,對(duì)應(yīng)12864液晶插座
82、的腳,其接口原理圖如圖3.7;插接方式如圖3.8 帶SD卡的TFT彩屏與DY_mini80E開發(fā)板實(shí)物連接圖。SD卡信號(hào)接口,直接接5V單片機(jī),DY_mini80E開發(fā)板需要使用4根度光線連接,實(shí)物圖見圖3.9。</p><p> 圖3.8 TFT彩屏接口原理圖</p><p> 圖3.9 帶SD卡的TFT彩屏與DY_mini80E開發(fā)板實(shí)物連接圖 </p><p
83、> TFT彩屏原理圖如圖3.10。其中REG1117-3.3是電平轉(zhuǎn)換芯片,作用是把5V的電平轉(zhuǎn)換到3.3V后給74245八同相三態(tài)收發(fā)器及SD卡供安全電壓。</p><p> 圖3.10 TFT彩屏原理圖</p><p><b> 4 軟件設(shè)計(jì)</b></p><p> 4.1 軟件設(shè)計(jì)目標(biāo)</p><p&
84、gt; 最終能實(shí)現(xiàn)同時(shí)將四路模擬電壓(0-5V)進(jìn)行A/D轉(zhuǎn)換,轉(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
85、><b> 4.2 設(shè)計(jì)環(huán)境</b></p><p> Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會(huì)更加深刻。</p><p> Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試
86、工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢。下面介紹Keil C51開發(fā)系統(tǒng)各部分功能和使用。</p><p> Keil C51單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu):Uvision 與Ishell分別是C51 for Windows和for Dos的集成開
87、發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標(biāo)文件(.OBJ),目標(biāo)文件可由LIB51創(chuàng)建生成庫文文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。 ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也
88、可以直接寫入程序存貯器如EPROM中。</p><p> 4.3 系統(tǒng)軟件設(shè)計(jì)</p><p> 設(shè)計(jì)主要在Keil環(huán)境下進(jìn)行編程。</p><p> 4.3.1 系統(tǒng)初始化</p><p> 要讓系統(tǒng)正常運(yùn)行首先要對(duì)系統(tǒng)進(jìn)行初始化,主要包括:定時(shí)器T0初始化、DS1302初始化、LCD初始化、SD卡初始化、文件系統(tǒng)初始化。其流程圖如
89、圖4.1所示。</p><p> 圖4.1 系統(tǒng)始化流程圖</p><p> 4.3.2 SD卡初始化</p><p> 對(duì)SD卡進(jìn)行初始化,初始化的過程中設(shè)置SD卡工作在SPI模式,其流程圖如圖4.2所示。</p><p> 在復(fù)位成功之后可以通過CMD55和ACMD41判斷當(dāng)前電壓是否在工作范圍內(nèi)。主機(jī)還可以繼續(xù)通過CMD10讀取
90、SD卡的CID寄存器,通過CMD16設(shè)置數(shù)據(jù)Block長度,通過CMD9讀取卡的CSD寄存器。從CSD寄存器中,主機(jī)可獲知卡容量,支持的命令集等重要參數(shù)。具體程序見附錄C。</p><p><b> 開 始 </b></p><p><b> 否</b></p><p><b> 響應(yīng)bit0=0?<
91、;/b></p><p><b> 結(jié) 束</b></p><p> 圖4.2 SD卡初始化流程圖</p><p> 4.3.3 數(shù)據(jù)塊的讀寫</p><p> 完成SD卡的初始化之后即可進(jìn)行它的讀寫操作。SD卡的讀寫操作都是通過發(fā)送SD卡命令完成的。SPI總線模式支持單塊(CMD24)和多塊(CMD2
92、5)寫操作,多塊操作是指從指定位置開始寫下去,直到SD卡收到一個(gè)停止命令CMD12才停止。單塊寫操作的數(shù)據(jù)塊長度只能是512字節(jié)。單塊寫入時(shí),命令為為CMD24,當(dāng)應(yīng)答為0時(shí)說明可以寫入數(shù)據(jù),大小為512字節(jié)。SD對(duì)每個(gè)發(fā)送給自己的數(shù)據(jù)塊都通過一個(gè)應(yīng)答命令確認(rèn),它為1個(gè)字節(jié)長,當(dāng)?shù)?位為00101時(shí),表明數(shù)據(jù)塊被正確寫入SD卡。</p><p> 可見,讀寫SD卡的操作都是在初始化后基于SD卡命令和響應(yīng)完成操作
93、的,寫SD卡的程序流程圖如圖4.3所示。</p><p><b> 開 始 </b></p><p><b> 否</b></p><p> 響應(yīng)全零嗎? 返 回</p><p><b> 否</b></p><
94、p><b> 響應(yīng)是0X5嗎?</b></p><p><b> 結(jié) 束</b></p><p> 圖4.3 寫SD卡流程圖</p><p><b> ?、?寫單塊</b></p><p> 1):發(fā)送命令CMD24;</p><p>
95、 2):接收R1響應(yīng);</p><p> 3):發(fā)送Data Tokens (Single Block Write: Oxfe);</p><p> 4):發(fā)送一個(gè)block(一般為512個(gè)字節(jié));</p><p> 5):發(fā)送兩個(gè)CRC16碼;</p><p> 6):循環(huán)接收數(shù)據(jù),等待寫完成,直到寫完成接收到0xff。</
96、p><p><b> ?、?寫多塊</b></p><p> 1):發(fā)送命令CMD25;</p><p> 2):接收R1b響應(yīng);</p><p> 3):發(fā)送Data Tokens (Single Block Write: 0xfe);</p><p> 4):發(fā)送一個(gè)block(一般為51
97、2個(gè)字節(jié);</p><p> 5):發(fā)送兩個(gè)字節(jié)CRC16碼;</p><p> 6):循環(huán)接收數(shù)據(jù),等待寫完成,直到寫完成接收到0xff;</p><p> 7):重復(fù)步驟3,繼續(xù)發(fā)送下一個(gè)數(shù)據(jù)包,直到所有數(shù)據(jù)包發(fā)送完成,至步驟8繼續(xù);</p><p> 8):發(fā)送命令CMD12,數(shù)據(jù)傳輸結(jié)束;</p><p&g
98、t; 9):接受R1b相應(yīng)。</p><p> 在需要讀取SD卡中數(shù)據(jù)的時(shí)候,讀SD卡的命令字為CMD17,接收正確的第一個(gè)響應(yīng)命令字節(jié)為0xFE,隨后是512個(gè)字節(jié)的用戶數(shù)據(jù)塊,最后為2個(gè)字節(jié)的CRC驗(yàn)證碼。</p><p> 讀SD卡的程序流程圖如圖4.4所示。</p><p><b> 開 始 </b></p>&
99、lt;p><b> 否</b></p><p> 響應(yīng)0xFE嗎? 返 回</p><p><b> 否</b></p><p> CRC碼校正,對(duì)嗎?</p><p><b> 結(jié) 束</b></p><
100、;p> 圖4.4 讀SD卡流程圖</p><p><b> ?、?讀單塊</b></p><p> l):發(fā)送命令CMD17;</p><p> 2):接收R1響應(yīng);</p><p> 3):等待Data Tokens (Single Block Read:0xfe);</p><p&g
101、t; 4):接收一個(gè)Block(一般為512個(gè)字節(jié));</p><p> 5):接收兩個(gè)宇節(jié)CRC16碼。</p><p><b> ?、?讀多塊</b></p><p> l):發(fā)送命令CMD 17;</p><p> 2):接收R1響應(yīng);</p><p> 3):等待Data Tok
102、ens (Single Block Read:0xfe;</p><p> 4):接收一個(gè)Block(一般為5121個(gè)字節(jié));</p><p> 5):接收兩個(gè)字節(jié)CRC16碼;</p><p> 6):重復(fù)步驟3,繼續(xù)接收下一個(gè)數(shù)據(jù)包,直到接收所有數(shù)據(jù)包完成后,至步驟7繼續(xù);</p><p> 7):發(fā)送命令CMD12 ,數(shù)據(jù)傳輸結(jié)
103、束;</p><p> 8):接收R1b響應(yīng)。</p><p> 4.3.4 SD卡存儲(chǔ)時(shí)間和電壓流程圖</p><p> 打開指定文件,若失?。礇]有該文件)那么就新建該指定文件,之后,追加該通道的日期時(shí)間和電壓值,具體見流程圖4.5所示。</p><p> 圖4.5 SD卡存儲(chǔ)時(shí)間和電壓流程圖</p><p&g
104、t; 4.3.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> 圖4.6 定時(shí)器T0函數(shù)流程圖</p><p> 4.3.6 主體程序流
105、程圖</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所示。</p><p> 圖4.7 主程序流程圖</p><p>
106、<b> 5 結(jié)論</b></p><p> 設(shè)計(jì)實(shí)現(xiàn)了利用單片機(jī)對(duì)SD卡進(jìn)行讀寫控制的功能,基本達(dá)到了設(shè)計(jì)的目的。根據(jù)理論設(shè)計(jì),并用計(jì)算機(jī)編程進(jìn)行了模擬,制作出了實(shí)物并經(jīng)測試功能完全符合設(shè)計(jì)要求。</p><p> 從理論基礎(chǔ)出發(fā),完成了將四路模擬電壓(0-5V)進(jìn)行A/D轉(zhuǎn)換,轉(zhuǎn)換結(jié)果為十進(jìn)制有效數(shù)字3位;每秒鐘轉(zhuǎn)換一次,結(jié)果轉(zhuǎn)換為ASCII碼形式;并將四
107、路結(jié)果分別存儲(chǔ)到SD卡預(yù)先建立好的CH1.txt、CH2.txt、CH3.txt、CH4.txt文檔中。還自行增加了顯示模塊。</p><p> 本設(shè)計(jì)應(yīng)用STC12C5A60S22讀寫SD卡有兩點(diǎn)需要注意。</p><p> 首先,需要尋找一個(gè)實(shí)現(xiàn)STC12C5A60S2單片機(jī)與SD卡通訊的解決方案:SD卡有兩個(gè)可選的通訊協(xié)議:SD模式和SPI模式SD模式是SD卡標(biāo)準(zhǔn)的讀寫方式,但是
108、在選用SD模式時(shí),往往需要選擇帶有SD卡控制器接口的MCU,或者必須加入額外的SD卡控制單元以支持SD卡的讀寫。然而,STC12C5A60S2單片機(jī)沒有集成SD卡控制器接口,若選用SD模式通訊就無形中增加了產(chǎn)品的硬件成本。在SD卡數(shù)據(jù)讀寫時(shí)間要求不是很嚴(yán)格的情況下,選用SPI模式可以說是一種最佳的解決方案。因?yàn)樵?SPI模式下,通過四條線就可以完成所有的數(shù)據(jù)交換,并且目前市場上很多MCU都集成有現(xiàn)成的SPI接口電路,采用SPI模式對(duì)SD
109、卡進(jìn)行讀寫操作可大大簡化硬件電路的設(shè)計(jì)。設(shè)計(jì)用SPI總線模式讀寫SD卡。</p><p> 其次,SD卡所能接受的邏輯電平與STC12C5A60S2提供的邏輯電平不匹配,需要解決電平匹配問題。要解決這一問題,最根本的就是解決邏輯器件接口的電平兼容問題,原則主要有兩條:一為輸出電平器件輸出高電平的最小電壓值,應(yīng)該大于接收電平器件識(shí)別為高電平的最低電壓值;另一條為輸出電平器件輸出低電平的最大電壓值,應(yīng)該小于接收電平
110、器件識(shí)別為低電平的最高電壓值??紤]到SD卡在SPI協(xié)議的工作模式下,我們采用帶SD卡的TFT彩屏,它包括顯示模塊和SD模塊,SD模塊中已有電壓轉(zhuǎn)換模塊,所以不用擔(dān)心被燒壞問題。在SD卡向單片機(jī)傳輸數(shù)據(jù)時(shí)可以直接連接,因?yàn)樗鼈冎g的電平剛好滿足上述的電平兼容原則。</p><p><b> 謝 辭</b></p><p> 基于SD卡存儲(chǔ)采集數(shù)據(jù)電路設(shè)計(jì)終于告
111、一段落了,在此我想對(duì)幫助我的老師們和同學(xué)們真誠的說聲謝謝。</p><p> 論文的研究工作是在陳錫華副教授的悉心指導(dǎo)下完成的。論文的每一步進(jìn)展都傾注著老師的關(guān)懷、教導(dǎo)和幫助。老師淵博的知識(shí)和豐富的經(jīng)驗(yàn)使我受益匪淺,此外,陳老師言傳身教,不僅使我開拓了視野,增加了知識(shí),更重要的是使我系統(tǒng)的掌握了科學(xué)研究的方法和自己動(dòng)手的能力。在這里,向我的陳老師表示我由衷的謝意!</p><p> 與
112、此同時(shí)也非常感謝我的盧文華同學(xué)在設(shè)計(jì)過程中給我的幫助和鼓勵(lì)。</p><p> 最后,還要向所有關(guān)心和幫助過我的人致以最衷心的感謝!論文的工作是在我的導(dǎo)師陳錫華教授的悉心指導(dǎo)下完成的,陳教授嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和科學(xué)的工作方法給了我極大的幫助和影響。在此衷心感謝陳老師對(duì)我的關(guān)心和指導(dǎo)。</p><p> 還要向百忙之中抽時(shí)間對(duì)本文進(jìn)行審閱,評(píng)議和參與本人論文答辯的各位老師表示感謝!</
113、p><p><b> 參考文獻(xiàn)</b></p><p> [1] 潘水雄.新編單片機(jī)原理與應(yīng)用,西安:西安電子科技大學(xué)出版社,2008-01.</p><p> [2] 趙威.SD存儲(chǔ)卡的設(shè)計(jì)和實(shí)現(xiàn),上海:上海交通大學(xué)軟件學(xué)院,2007-09.</p><p> [3] 于振南.51單片機(jī)讀寫SD卡,哈爾濱:哈
114、爾濱工程大學(xué)信息學(xué)院,2009-03.</p><p> [4] 康華光.電子技術(shù)基礎(chǔ),北京:高等教育出版社,2005-12.</p><p> [5] 潘新民,王燕芳.微型計(jì)算機(jī)控制技術(shù),北京:電子工業(yè)出版社,2006-01.</p><p> [6] 龔運(yùn)新.單片機(jī)C語言開發(fā)技術(shù),北京:清華大學(xué)出版社,2006-10.</p><
115、p> [7] 張宋潤.單片機(jī)應(yīng)用設(shè)計(jì)200例,北京:北京航空航天大學(xué)出版社,2006-7.</p><p> [8] 關(guān)德新,馮文全.單片機(jī)外圍器件實(shí)用手冊(cè)-電源器件分冊(cè)[M],北京:北京航空航</p><p> 天大學(xué)出版社,1998-02.</p><p> [9] 華成英.模擬電子技術(shù)基礎(chǔ)(第三版),高等教育出版社,2001.</p&
溫馨提示
- 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è)設(shè)計(jì)
- sd卡存儲(chǔ)系統(tǒng)的設(shè)計(jì)【畢業(yè)論文】
- 多傳感器數(shù)據(jù)采集與傳輸電路設(shè)計(jì)畢業(yè)論文
- 多傳感器數(shù)據(jù)采集與傳輸電路設(shè)計(jì)畢業(yè)論文
- 多傳感器數(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ì)畢業(yè)論文
- 音頻放大電路設(shè)計(jì)畢業(yè)論文
- led驅(qū)動(dòng)電路設(shè)計(jì)【畢業(yè)論文】
- 紅外遙控電路設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文---直流穩(wěn)壓源電路設(shè)計(jì)
- 調(diào)幅信號(hào)產(chǎn)生電路設(shè)計(jì)【畢業(yè)論文】
- 汽車倒車?yán)走_(dá)電路設(shè)計(jì)【畢業(yè)論文】
- 畢業(yè)論文--fm調(diào)制與解調(diào)電路設(shè)計(jì)
- 數(shù)字顯示穩(wěn)壓電路設(shè)計(jì)【畢業(yè)論文】
- fm調(diào)制與解調(diào)電路設(shè)計(jì)-畢業(yè)論文
- 電壓采集電路設(shè)計(jì)
- 畢業(yè)論文電動(dòng)車電路設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論