新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 基于SD卡的BMS海量歷史數據存儲系統設計

        基于SD卡的BMS海量歷史數據存儲系統設計

        作者: 時間:2011-03-18 來源:網絡 收藏


        2 軟件程序
        軟件主要難點是卡驅動與FAT32文件的結合方式。FAT32文件的實現有一定的復雜性,如果設計地不好不但會浪費大量CPU資源,而且可能造成數據丟失、覆蓋等嚴重后果。采用傳統數據流式程序設計思想實現起來比較困難,Debug也很不方便。本設計引用現代Windows操作慣用的層次模型劃分的方法開發了一套卡的FAT32文件系統協議包,具有層次分明、結構緊湊、可移植性強及邏輯清晰的特點。
        2.1 FAT32文件系統
        FAT32是由Microsoft設計并運用得非常成功的文件系統。至今FAT32依然占據著Microsoft Windows文件系統中重要的地位。FAT32改進了FAT16和FAT12不支持大分區、單位簇的容量過大以致空間急劇浪費等缺點。由引導扇區、FAT表、根目錄和數據區4大部分組成。圖3標出了FAT32分區的基本構成,FAT2是FAT1的備份,用于在FAT1損壞時修復。

        本文引用地址:http://www.104case.com/article/179434.htm

        8.JPG


        FAT表(File Allocation Table文件分配表)記錄文件在介質上的放置位置,即簇號序列。每個表項記錄的簇號都是32位的,故這個方法稱為FAT32。表2所示是一段簡化的FAT表,第2簇記錄根目錄存放位置,第3簇記錄某文件的下一簇號(該文件從本簇即第3簇開始存放)是6號,第6號又記錄接下來的簇號……,至到標記FF表示文件結束。同樣道理從第12簇開始存放另一個文件,該文件在第93簇存放結束。從表
        中可以看出文件是可以非連續存放的,這樣可以充分利用介質的空間,并且可以保證存放采集數據不會發生重疊,沖掉以前數據。表3列出了FAT表各記錄項的取值含義。

        9.JPG

        10.JPG


        系統在一個文件時先計算出需要幾個簇的空間來存放,再從FAT表中找出這相應個數的空閑簇,并其修改記錄項的取值使之首尾連成一串。然后在目錄表中創建一個新的文件項,并記錄它在介質上存放的首簇號。這樣在讀文件時,只要直接從目錄表中找到該文件的記錄項,獲取它的首簇號就能把文件讀出來了。FAT32文件系統目錄的記錄項的結構定義如表4所示。

        12.JPG


        2.2 SD卡SPI通信協議
        發送給SD卡的命令采用6字節的格式如表5所示。命令的第1個字節可通過將6位命令碼與16進制碼0x40進行或運算得到。如果命令需要,則在接下來的4個字節中提供一個32位的參數,最后1個字節包含了從第1個字節到第5個字節的CRC-7校驗和。表6列出了部分SD存儲卡SPI命令的解釋。

        13.JPG



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 崇礼县| 灵丘县| 普定县| 昔阳县| 甘洛县| 石楼县| 南丰县| 天镇县| 色达县| 澄迈县| 咸宁市| 乌拉特后旗| 万荣县| 景泰县| 临桂县| 禹城市| 宣武区| 太康县| 府谷县| 苍南县| 体育| 泰来县| 张家界市| 申扎县| 平利县| 顺义区| 承德市| 阜新市| 铁岭县| 桦南县| 乌拉特前旗| 泽库县| 仁布县| 隆子县| 旺苍县| 柘城县| 乌兰浩特市| 宜兰县| 乐至县| 兰溪市| 鸡泽县|