<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)和FAT16的SD卡讀寫(xiě)系統(tǒng)設(shè)計(jì)

          基于單片機(jī)和FAT16的SD卡讀寫(xiě)系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2012-12-06 來(lái)源:網(wǎng)絡(luò) 收藏

          引 言
          長(zhǎng)期以來(lái),閃存卡(SD卡、MMC卡等)因其體積小、功耗低、容量大和非易失性等特點(diǎn),在嵌入式存儲(chǔ)領(lǐng)域的應(yīng)用越來(lái)越廣泛。特別是近年來(lái),隨著閃存技術(shù)的發(fā)展,閃存卡價(jià)格不斷下降且存儲(chǔ)容量不斷提高。當(dāng)數(shù)據(jù)采集系統(tǒng)需要長(zhǎng)時(shí)間地采集和記錄海量數(shù)據(jù)時(shí),應(yīng)用SD卡作為存儲(chǔ)介質(zhì)是很好的選擇,例如電能檢測(cè)、溫度濕度檢測(cè)、病人心肺數(shù)據(jù)記錄等。文件系統(tǒng)是。Microsoft公司在其MS-DOS 操作系統(tǒng)中采用的文件系統(tǒng),具有出色的文件管理性能,能被當(dāng)前大多數(shù)操作系統(tǒng)識(shí)別。因此,將SD卡與文件系統(tǒng)相結(jié)合是嵌入式數(shù)據(jù)存儲(chǔ)、記錄系統(tǒng)的理想方案,可以將采集記錄的數(shù)據(jù)直接在PC上讀取和處理。本文研究和設(shè)計(jì)了基于文件系統(tǒng)的。

          1 系統(tǒng)方案介紹
          本系統(tǒng)采用MCS-51架構(gòu)的是一種低成本、低功耗、高性能的CMOS 8位微控制器,具有8 KB在系統(tǒng)可編程Flash存儲(chǔ)器。應(yīng)用AT89S52讀寫(xiě)SD卡,首先要確定它們之間的通信方案。SD卡有2種可選的通信協(xié)議:SD模式和SPI模式。 SD模式是SD卡的標(biāo)準(zhǔn)讀寫(xiě)方式,選用此模式需要選擇帶SD卡控制接口的MCU或者額外的SD卡控制單元;SPI模式通過(guò)SPI總線完成SD卡與主控制器的通信。AT89S52沒(méi)有集成SD卡控制器,為了不增加額外的SD卡控制單元硬件成本,本設(shè)計(jì)方案采用SD卡的SPI通信模式。雖然AT89S52也沒(méi)有集成SPI接口模塊,但可以用軟件的方式模擬SPI接口時(shí)序。
          另外一個(gè)要解決的問(wèn)題是SD卡與AT89S52的電平匹配。SD卡的邏輯電平相當(dāng)于3.3 V的TTL電平標(biāo)準(zhǔn),AT89S52的邏輯電平為5 V CMOS電平。
          解決電平匹配問(wèn)題的原則有2條:一為輸出電平器件輸出的高電平的最小值,應(yīng)該大于接收電平器件識(shí)別為高電平的最低電壓值;另一條為輸出電平器件輸出低電平的最大電壓值,應(yīng)該小于接收電平器件識(shí)別為低電平的最高電壓值。
          考慮到SsD卡在SPI工作模式下,數(shù)據(jù)的傳輸都是單向的,這樣可以在向SD卡傳輸數(shù)據(jù)時(shí)采用晶體管加下拉電阻的方法,基本電路如圖1所示。而在 SD卡向單片機(jī)傳輸數(shù)據(jù)時(shí)可以采用直接連接,因?yàn)樗鼈冎g的電平剛好滿足上述的電平兼容原則,既經(jīng)濟(jì)又實(shí)用。這個(gè)方案需要雙電源供電,1個(gè)5 V電源,1個(gè)3.3 V電源。

          pos機(jī)相關(guān)文章:pos機(jī)原理



          上一頁(yè) 1 2 3 4 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();