国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于51單片機(jī)的SD卡讀寫(xiě)系統(tǒng)

2020-12-27 13:47趙華峰
通信電源技術(shù) 2020年16期
關(guān)鍵詞:扇區(qū)電平字節(jié)

趙華峰

(渭南師范學(xué)院 物理與電氣工程學(xué)院,陜西 渭南 714099)

0 引 言

隨著電子技術(shù)的不斷發(fā)展,相應(yīng)的電子設(shè)備也在不斷小型化,有著優(yōu)良的便攜性。以閃存為存儲(chǔ)體的非易失SD卡(Secure Digital Memory Card)因具有體積小、造價(jià)低、功耗較低、可擦寫(xiě)以及良好的可靠性等特點(diǎn)而被廣泛應(yīng)用于日常生活與工作中。近年來(lái),隨著SD卡價(jià)格的不斷下降和存儲(chǔ)容量的不斷提高,使得其應(yīng)用范圍更加廣泛。實(shí)現(xiàn)讀寫(xiě)物理扇區(qū),記錄大容量數(shù)據(jù)時(shí),SD卡作為存儲(chǔ)媒介是一個(gè)很好的選擇。其是一種基于半導(dǎo)體快閃記憶器的新一代記憶器件,由日本松下、東芝以及美國(guó)SanDisk公司在1999年8月共同開(kāi)發(fā)研制[1]。它作為設(shè)計(jì)存儲(chǔ)介質(zhì)進(jìn)行讀寫(xiě),大小猶如一張郵票,具備高容量、快速數(shù)據(jù)傳輸率、便于攜帶以及較好的數(shù)據(jù)安全性等特點(diǎn),已成為較為通用的數(shù)據(jù)存儲(chǔ)卡。

1 系統(tǒng)總體結(jié)構(gòu)概述

基于51單片機(jī)的SD卡讀寫(xiě)系統(tǒng)整體結(jié)構(gòu)包括電源電路、控制電路、中央處理器以及數(shù)據(jù)存儲(chǔ)模塊等。通過(guò)各部分的協(xié)調(diào)工作,完成SD卡的讀寫(xiě),以實(shí)現(xiàn)對(duì)數(shù)據(jù)讀寫(xiě)的實(shí)時(shí)處理。為滿足正常的工作需求,單片機(jī)應(yīng)具有輔助電路。其包括復(fù)位電路(可手動(dòng))、時(shí)鐘電路和串口通信電路等基本電路。

2 基于51單片機(jī)的SD卡讀寫(xiě)系統(tǒng)硬件電路設(shè)計(jì)

2.1 系統(tǒng)硬件原理圖

該系統(tǒng)硬件原理圖在Altium Designer軟件下繪制,具體如圖1所示。系統(tǒng)在開(kāi)機(jī)后即可通過(guò)上位機(jī)(數(shù)據(jù)發(fā)送終端)接收并保存數(shù)據(jù),完成對(duì)SD卡的讀寫(xiě)。系統(tǒng)硬件的構(gòu)成包括主控制器、通信端口、存儲(chǔ)媒介以及電源設(shè)計(jì)4個(gè)部分。

主控制器使用STC89C52單片機(jī)最小系統(tǒng)實(shí)現(xiàn)軟件部分的功能。通信端口中串口通信是較為通用的設(shè)備通信協(xié)議。很多計(jì)算機(jī)可以利用自帶的RS-232串口實(shí)現(xiàn)上位機(jī)數(shù)據(jù)的發(fā)送與接收。存儲(chǔ)媒介為SD 1G閃存卡。目前,部分SD卡容量可達(dá)128 GB,且便攜性強(qiáng),成為小型系統(tǒng)中存儲(chǔ)介質(zhì)的首要之選。電源設(shè)計(jì)中單片機(jī)需要的電壓為5 V直流電源,在此采用USB取電。存儲(chǔ)介質(zhì)模塊SD卡需要的工作電壓為3.3 V,接口需要一個(gè)電平轉(zhuǎn)換,如果不進(jìn)行轉(zhuǎn)換則會(huì)燒毀SD卡。

2.2 控制處理模塊

圖1 系統(tǒng)硬件電路原理圖

控制模塊采用的STC89C52單片機(jī)是一種CMOS型的低功耗單片機(jī),具有高速和強(qiáng)抗干擾的特點(diǎn),有8 KB的可編程Flash,為5 V單片機(jī)。它的指令代碼完全兼容經(jīng)典的8051,同時(shí)也做了較多的改進(jìn),在功能上超越了8051,可以使用ISP下載功能直接下載程序。因此許多微型嵌入式應(yīng)用系統(tǒng)都可以用STC89C52有效解決[2]。此外, 該單片機(jī)的標(biāo)準(zhǔn)功能還包括512字節(jié)RAM和32位I/O口線等,最高運(yùn)作頻率為35 MHz,6T/12T可選[3]。此款單片機(jī)能夠保證滿足設(shè)計(jì)中的要求,能夠穩(wěn)定可靠的工作,并且是目前市場(chǎng)上最便宜的芯片,能夠控制開(kāi)發(fā)成本。

2.3 通信端口模塊

SD卡讀寫(xiě)系統(tǒng)需要串行通信接口輸入數(shù)據(jù),串口均按位發(fā)送和接收字節(jié)。串口的一端可以使用一條線發(fā)送數(shù)據(jù),另一端用一條線接收數(shù)據(jù)。與并行傳輸相比,它只使用兩條傳輸數(shù)據(jù)線,能夠?qū)崿F(xiàn)較遠(yuǎn)距離的通信,并且造價(jià)相對(duì)較低。目前,最為常用的串行通信總線接口標(biāo)準(zhǔn)為RS-232,由美國(guó)電子工業(yè)聯(lián)盟與bell公司一同開(kāi)發(fā),其原本編號(hào)為EIA-RS-232,通常簡(jiǎn)稱為RS232。RS232接口任何一條信號(hào)線的電壓均為負(fù)邏輯關(guān)系,即“-3~-15 V”是邏輯“1”,“+3~+15 V”是邏輯“0”。要求接收器同時(shí)能夠區(qū)分高于+3 V的信號(hào)作為邏輯“0”,也能區(qū)分低于-3 V的信號(hào)作為邏輯“1”。單片機(jī)TTL的電平為5 V作為邏輯正,0 V為邏輯負(fù),與要求的TTL邏輯電平不相匹配,因此要設(shè)計(jì)一個(gè)轉(zhuǎn)換電路與TTL電路相連接,進(jìn)行正常工作。MAX232是現(xiàn)在最為常用的轉(zhuǎn)換芯片。

2.4 存儲(chǔ)器模塊

SD記憶卡支持的數(shù)據(jù)傳輸總線方式有SPI模式和SD模式。其中,SPI模式使用4線制,進(jìn)行數(shù)據(jù)通信時(shí)要用CLK、CS、DataOut以及DataIn;SD模式使用6線制,進(jìn)行數(shù)據(jù)通信時(shí)要用CMD、CLK以及DAT0-DAT3。

在單片機(jī)對(duì)SD卡進(jìn)行讀寫(xiě)時(shí)通常應(yīng)用SPI模式[4]。設(shè)計(jì)中使用STC89C52的工作電壓為5 V,而SD卡的供電電壓為3.3 V。為了系統(tǒng)運(yùn)行的正常穩(wěn)定,必須解決單片機(jī)與SD卡之間的電平匹配問(wèn)題。因此,在設(shè)計(jì)中采用整體模塊化的SD卡部分,電壓轉(zhuǎn)化模塊的AMS1117-3.3 V電壓轉(zhuǎn)化裝置便于SD卡的正常工作。

SD卡具有完備的整體模塊,在設(shè)計(jì)中使用彈出式SD卡座,可大大減少設(shè)計(jì)工作量。引腳用雙排針引出,方便與主機(jī)接線,并且同時(shí)兼容5 V與3.3 V兩種電平的主控器,適用性相對(duì)較廣,可以非常方便地被系統(tǒng)中的51單片機(jī)讀寫(xiě)。

3 SD卡讀寫(xiě)軟件設(shè)計(jì)

在設(shè)計(jì)SD卡讀寫(xiě)系統(tǒng)的軟件程序時(shí),采用模塊化結(jié)構(gòu),包括主程序、串口通信子程序、SPI讀寫(xiě)子程序、SD卡復(fù)位初始化以及SD卡讀寫(xiě)子程序等模塊。使用Keil 5軟件在C51語(yǔ)言環(huán)境下進(jìn)行。

主程序需要完成系統(tǒng)的初始化,調(diào)用各個(gè)功能函數(shù),處理中斷標(biāo)志位,以保證數(shù)據(jù)的正常傳輸。系統(tǒng)需要先設(shè)置串口,進(jìn)入SPI模式。SD卡在進(jìn)行復(fù)位初始化后開(kāi)始傳輸數(shù)據(jù),能夠?qū)崟r(shí)存儲(chǔ)上位機(jī)發(fā)送的數(shù)據(jù)。主程序流程如圖2所示。

圖2 主程序流程圖

只有在進(jìn)行正常的初始化后才能對(duì)SD卡進(jìn)行讀寫(xiě)操作。SD卡上電后,要求控制機(jī)對(duì)SD卡發(fā)送延時(shí),持續(xù)至少達(dá)到74個(gè)時(shí)鐘周期才能完成上電,隨后寫(xiě)入復(fù)位命令CMD0和初始化CMD1。拉低片選信號(hào)為低電平狀態(tài),才能使得SD卡進(jìn)入SPI模式[4]。不然SD卡會(huì)自動(dòng)工作在SD總線模式,單片機(jī)不能讀寫(xiě)SD卡。SD卡在進(jìn)入SPI總線模式后做出應(yīng)答,應(yīng)答信號(hào)為01,表明SD卡進(jìn)入到了SPI模式,此時(shí)主機(jī)能向SD卡發(fā)CMD1命令,然后讀應(yīng)答信號(hào)。當(dāng)收到應(yīng)答信號(hào)為00,則表明SD卡完成復(fù)位初始化,準(zhǔn)備接收下一條指令。需要說(shuō)明的是,當(dāng)主機(jī)向SD卡發(fā)CMD0命令的時(shí)候,SD卡還處于SD模式,每條命令必須帶有正確的CRC校驗(yàn)位,當(dāng)發(fā)CMD1命令字時(shí),SD處在SPI模式,而SPI模式默認(rèn)不要CRC校驗(yàn)位,因此CRC校驗(yàn)位寫(xiě)入0即可[5]。

SPI總線支持單塊的讀操作,先向SD卡發(fā)CMD17命令,在當(dāng)SD接收到相應(yīng)的響應(yīng)信號(hào)后,接收512個(gè)字節(jié)的數(shù)據(jù)并傳輸2個(gè)字節(jié)的CRC校驗(yàn)碼,等待SD卡接收響應(yīng),當(dāng)SD卡回應(yīng)響應(yīng)的標(biāo)志時(shí),說(shuō)明SD卡能夠正確讀取數(shù)據(jù)。當(dāng)SD卡的輸入接口變成為低電平,標(biāo)志著正在讀SD卡,當(dāng)SD卡的輸入接口變成為高電平,標(biāo)志著讀取數(shù)據(jù)的操作已經(jīng)完成。

SD卡復(fù)位初始化成功后,單片機(jī)向SD卡發(fā)送寫(xiě)入命令CMD24,然后接收SD卡響應(yīng)。收到響應(yīng)后,向SD卡發(fā)送一個(gè)數(shù)據(jù)啟動(dòng)標(biāo)志0xfe,然后發(fā)送512字節(jié)的數(shù)據(jù)并傳輸2個(gè)字節(jié)CRC校驗(yàn)碼[6]。此時(shí),SD卡數(shù)據(jù)模塊確認(rèn)要使用1個(gè)應(yīng)答命令,即為1個(gè)字節(jié)。當(dāng)字節(jié)的低五位是00101時(shí),說(shuō)明SD卡扇區(qū)寫(xiě)入的數(shù)據(jù)塊是完整正確的。若CMD24寫(xiě)入命令在操作時(shí)被發(fā)送到SD卡,則接收SD卡超時(shí),需繼續(xù)將該寫(xiě)入命令發(fā)送至SD卡。

4 系統(tǒng)調(diào)試與測(cè)試

使用串口調(diào)試助手輸入上位機(jī)數(shù)據(jù)時(shí),經(jīng)過(guò)單片機(jī)預(yù)先讀到數(shù)據(jù)緩沖區(qū),等達(dá)到一個(gè)扇區(qū)的數(shù)據(jù)后經(jīng)單片機(jī)將其寫(xiě)入SD卡的指定扇區(qū)。數(shù)據(jù)的寫(xiě)入順序應(yīng)嚴(yán)格遵循上位機(jī)發(fā)送數(shù)據(jù)順序。通過(guò)使用WINHEX軟件查驗(yàn)SD卡80扇區(qū),其數(shù)據(jù)與發(fā)送的數(shù)據(jù)保持一致說(shuō)明讀寫(xiě)系統(tǒng)成功,具體如圖3所示。實(shí)際通過(guò)指定的扇區(qū)就可以寫(xiě)入數(shù)據(jù)。

圖3 使用WINHEX軟件對(duì)SD卡80扇區(qū)的數(shù)據(jù)查看

5 結(jié) 論

SD卡讀寫(xiě)系統(tǒng)以STC89C52單片機(jī)為控制核心,能夠讀取SD卡中的數(shù)據(jù)并在SD卡扇區(qū)寫(xiě)入數(shù)據(jù),還能夠傳輸大容量數(shù)據(jù)。為使SD卡電子系統(tǒng)的應(yīng)用更加方便,可以針對(duì)實(shí)際的應(yīng)用情況添加新的功能,使得整個(gè)系統(tǒng)更加完善。

猜你喜歡
扇區(qū)電平字節(jié)
分階段調(diào)整增加扇區(qū)通行能力策略
No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
二電平和三電平網(wǎng)側(cè)變流器控制及諧波比較*
三電平PWM整流器下的地鐵牽引供電系統(tǒng)探討
No.10 “字節(jié)跳動(dòng)手機(jī)”要來(lái)了?
空中交通管制扇區(qū)復(fù)雜網(wǎng)絡(luò)建模與特性分析
空域扇區(qū)網(wǎng)絡(luò)級(jí)聯(lián)失效抗毀性及優(yōu)化策略
輕量級(jí)分組密碼Midori64的積分攻擊
U盤(pán)故障排除經(jīng)驗(yàn)談
三電平H橋逆變器差模干擾源研究