新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > SD卡在記錄汽車CAN總線數據中的應用

        SD卡在記錄汽車CAN總線數據中的應用

        作者: 時間:2011-01-13 來源:網絡 收藏

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


          初始化完成之后如果要使用默認的塊讀寫長度(512 B),就可以進行的讀寫。當然,也可用CMD16命令來設置的塊讀寫長度,可以是1B~512 B之間的任意值。但是對SD卡的寫過程則要求塊長度必須為512 B。無論是SD卡的讀還是寫,都要求在讀寫命令發送后有數據起始令牌FEH,數據傳輸結束有2 B的循環冗余編碼CRC。本設計采用默認的塊讀寫長度。
        3.2 FAT32文件系統
          存儲在SD卡中的數據為二進制數據,為了使其能為計算機所識別,SD卡文件系統必須與計算機的文件系統一致。目前Windows系列操作系統中最常用的文件系統有FAT16、FAT32及NTFS等。由于網絡的數據量大,并且儀需要長時間的數據,所以本設計選擇FAT32作為SD卡的文件系統,FAT32最大支持單個文件4 GB容量,滿足數據儀的要求。
          FAT32文件系統由系統引導記錄區、FAT表區、文件登記表區和數據區四部分組成。系統引導記錄區存儲SD卡有關磁盤的結構信息,包括扇區字節數、FAT表的數目和總扇區數等;FAT表是FAT32文件系統中用于磁盤數據(文件)索引和定位引進的一種鏈式結構,它準確記錄著已經被占用的簇,并為每個已經占用的簇指明存儲后續內容的下一個簇的簇號。文件登記表FDT記錄文件的登記項,每個登記項占32 B,記錄了文件的起始簇號、大小以及創建和最后修改的時間等;數據區用于存儲文件數據。
          SD卡的文件系統主要功能包括創建文件、打開文件、寫文件、讀文件和關閉文件。在應用中,可以根據實際情況,增刪以上功能,以簡化系統。
          考慮數據采集對系統實時性的要求, 對FAT表區的鏈式結構進行簡化,磁盤的空閑空間是連續的,采用連續存儲方式,這樣略去了每次去FAT表搜索空閑簇的過程,滿足系統對實時性的要求。簡化后的鏈式結構是直線鏈, 即寫滿一個扇區自動寫下一個扇區, 寫滿一個簇自動寫下一個簇。
        3.2.1 文件的創建
          在SD卡上創建文件就是在文件目錄表FDT中申請登記項和向FAT表中的FAT項填寫空閑簇號的過程,流程圖如圖4所示。程序首先在系統引導記錄區獲取SD卡磁盤的結構信息;接著要檢測文件登記表FDT中是否已經存在該文件,如果存在同名的文件,則返回,創建文件失敗;然后申請空閑的FDT表項,申請FDT 表項成功后,程序會檢測磁盤剩余的空間是否滿足新創文件數據長度的需要,然后尋找第一個空閑的簇號,并修改對應的FDT表項。由于文件都是連續的,在FAT表中的FAT鏈表是直線鏈即前一簇指向后一簇,根據文件的大小,向FAT表區填寫FAT鏈表,直到最后一個FAT項寫入0x0FFFFFFFH,表示文件結束。

        3.2.2 文件的讀/寫
          SD卡上文件都是以簇為單位存取的,向SD卡上的文件寫數據時,首先要根據文件名查找到該文件的文件登記項,根據文件登記項中的起始簇號即可找到文件在數據區中第1簇,向數據區對應的簇中寫數據,并且可以在FAT表中找到第2個簇號。根據第2個簇號又能向第2簇寫數據并找到FAT 中的第3個簇號,以此類推,直到FAT表中最后一項0x0FFFFFFFH,完成寫文件。讀取文件的過程與寫文件類似。
          SD卡在記錄總線數據中的應用程序流程圖如圖5所示。其中LPC2368以中斷方式將接收到的CAN數據以及接收時的時間存儲到數據隊列里,并立即跳出中斷,進行主程序的處理或等待下一幀數據的接收中斷,從而避免報文的丟失。


          本設計采用SD卡作為外部存儲介質,將實時采集到的CAN數據信息以標準文件的格式保存于SD卡中,具有性能可靠、使用方便、重量輕及存儲容量大等特點,具有廣闊的應用前景。


        上一頁 1 2 下一頁

        關鍵詞: CAN SD卡 記錄 汽車

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 运城市| 长汀县| 萨迦县| 东方市| 昌邑市| 买车| 南澳县| 拜城县| 调兵山市| 社旗县| 泊头市| 临猗县| 南开区| 辽阳县| 布尔津县| 荥阳市| 武川县| 宁河县| 元谋县| 万年县| 内丘县| 石渠县| 永济市| 中宁县| 平潭县| 屏东市| 桐柏县| 新竹市| 扬州市| 谢通门县| 赣榆县| 阿坝县| 北票市| 平顶山市| 青冈县| 婺源县| 安阳市| 寿光市| 祁阳县| 怀集县| 进贤县|