久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

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

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

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

本文引用地址:http://cqxgywz.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卡 記錄 汽車

評論


相關推薦

技術專區

關閉