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

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 基于STM32單片機的數(shù)據(jù)記錄裝置設(shè)計

          基于STM32單片機的數(shù)據(jù)記錄裝置設(shè)計

          作者: 時間:2013-05-28 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/175162.htm

          本裝置采用SPI模式,與STM32的SPll口進行連接

          SD卡的SPI接口使其可以通過SPI通道進行數(shù)據(jù)讀寫。從應(yīng)用的角度來看,采用SPI接口的好處在于,sTM32內(nèi)部自帶SPI器,不僅給開發(fā)上帶來方便,同時也降低了開發(fā)成本。

          SPI接口的選用是在上電初始時向其寫入第一個命令時進行的。

          3軟件設(shè)計

          軟件調(diào)試采用KEIL公司RealView MDK4 12,它包括了ULVision4集成開發(fā)環(huán)境與ReilView編譯器,自動配置啟動代碼。集成Flash燒寫模塊,強大的Simulation設(shè)備模擬,性能分析等功能。系統(tǒng)軟件部分主要包括數(shù)據(jù)接收和數(shù)據(jù)存儲。數(shù)據(jù)接收部分用于與能量管理系統(tǒng)的,以CAN中斷接收的方式實現(xiàn)通信。在數(shù)據(jù)處理和存儲部分程序中,數(shù)據(jù)處理是對數(shù)據(jù)進行處理轉(zhuǎn)換為常用的單位和格式,數(shù)據(jù)存儲部分負責(zé)將數(shù)據(jù)按一定結(jié)構(gòu)打包存儲。系統(tǒng)啟動之時,SD卡的初始化是非常重要的,只有進行了正確的初始化,才能進行后面的各項操作。在初始化過程中,SPI的時鐘不能太快,否則會造初始化失敗。在初始化成功后,應(yīng)盡量提高SPI的速率,在剛開始要先發(fā)送至少74個時鐘信號。

          中斷接收流程圖如圖3所示。

          數(shù)據(jù)存儲流程圖如圖4所示。

          4結(jié)束語

          本設(shè)計提出了一種基于STM32的數(shù)據(jù)存儲裝置的設(shè)計方案,成功實現(xiàn)了電動汽車電池相關(guān)數(shù)據(jù)的存儲,使用CAN通信保證了裝置應(yīng)用的廣泛性,用SD卡作為存儲介質(zhì),滿足了數(shù)據(jù)存儲容量以及速率上的要求,但同時仍有可以繼續(xù)改進的地方,比如可以考慮增加_個USB口,使裝置可以直接接到電腦上查看,存儲和讀取都將更方便,但由于STM32的USB與CAN共用部分SRAM,需要將USB與CAN的運行時間錯開。

          單片機相關(guān)文章:單片機教程


          單片機相關(guān)文章:單片機視頻教程


          單片機相關(guān)文章:單片機工作原理



          上一頁 1 2 下一頁

          關(guān)鍵詞: 通信 電源 單片機 控制

          評論


          相關(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); })();