SD卡在生理信號數據采集中的應用
3.2 SD卡的讀寫操作
SD卡支持單塊寫操作(CMD24)和多塊寫操作(CMD25)。圖4為單塊寫操作流程圖,數據長度為512 B。執行單塊寫操作時,主機發送寫數據塊命令(CMD24),等待SD卡的應答信號為00H后,然后發送數據起始標志位0xFE,接著發送512 B數據和2 B的(2RC校驗。當SD卡的應答信號為0x05時,即表明SD卡已經正確地寫入了數據。在寫SD卡時,SD卡的輸出口為低電平,當輸出口變為高電平時表明寫操作完成。本文引用地址:http://www.104case.com/article/194328.htm
SD卡同樣支持單塊(CMD17)和多塊(CMD18)讀操作。單塊讀操作的數據長度也是512 B,其操作流程與寫操作類似。操作時,首先向SD卡發送讀數據塊命令(CMD17),當接收應答信號0xFE后,即可接收512 B數據塊和2 B的CRC校驗。
4 FAT32文件系統設計
4.1 FAT32文件系統的結構
為了更直觀地查看SD卡中的數據,并與計算機進行數據交互式操作。本文采用了FAT32文件系統,該文件系統不僅實現了對大容量SD卡的文件操作,而且讀寫文件的速度很快。
FAT32文件系統在SD卡上的基本結構包含以下幾個部分:分區引導記錄DBR(Dos Boot Record)、文件分配表FAT(File Allocation Table)數據區。
分區引導記錄DBR,通常包括跳轉指令、廠家標識和DOS版本號、BPB(BIOS Parameter Block)和。BIOS引導程序。其中BPB記錄著每個扇區字節數、每簇扇區數、總扇區數等SD卡的基本信息,這些信息是正確操作SD卡的基礎。
FAT32文件系統有兩個文件分配表FAT1和FAT2。FAT2是FAT1的備份,記錄了簇與簇之間數據的鏈接關系。
FAT32與FAT12、FAT16不同的是,它沒有專門的根目錄區,根目錄區與數據區合并在一起。
4.2 FAT32文件系統的實現
4.2.1 FAT32文件系統的初始化
對SD卡的正確操作,需要初始化該卡的信息結構體變量如每個扇區字節數、每簇扇區數、FAT表數目等。
初始化流程如圖5所示。首先讀卡的物理扇區0,得到引導扇區的偏移地址。正常的話,該扇區最后兩個字節為55AA。然后讀引導扇區DBR的具體內容,得到文件系統的基本信息,初始化SD卡的信息結構體變量。
4.2.2 FAT32文件系統的相關操作
在本設計中,為了提高SD卡的寫入速度,對FAT32文件系統進行優化。FAT32文件系統在保留區增加了一個FSINFO扇區,用以記錄文件系統中空閑簇的數量以及不可用簇的簇號等信息。在執行寫SD卡操作時,可以通過讀取該扇區的內容快速地定位到下一個空閑簇,然后進行數據的寫入。優化后的文件系統主要包括以下操作:文件的創建與文件的讀寫操作。
創建新文件時,首先判斷該文件是否存在。如果存在,則打開該文件讀取該文件的FAT表項,獲取開始簇的地址、文件所占的字節數及第一個扇區的地址等信息;如果文件不存在,則查詢空閑簇并設置起始簇號,同時根據這個起始簇號創建簇鏈,然后讀取FDT(File Directory Table)表項查找空閑的32 B FDT,以存放文件名、擴展名、屬性值等信息。
讀文件時,根據文件名查找FDT表項并讀取文件的起始簇號,根據起始簇號找到第一個簇的內容,并逐個扇區讀取。同時,根據簇鏈就能查找到第2個簇,然后讀取簇里的內容。按照此方法,直到讀取所有的數據。寫文件的流程和讀文件類似,不同的是寫滿一個簇時要查找空閑的簇并添加到簇鏈中,同時更新FAT1,FAT2和FSINFO的內容。
5 結語
本文設計了一種基于DSP和SD卡的生理信號數據采集系統,詳細介紹了DSP與SD卡的硬件接口電路設計以及SD卡軟件設計流程。通過對人體手指體表溫度和濕度的實時測量,該系統可以實現對16路模擬信號的采集、處理、存儲等一系列操作。SD卡存儲容量為2 GB,最高讀寫速度可以達到1.2.MB/s,完全滿足在高速AD采集系統中的應用。隨著人體監測儀器的智能化、小型化發展,以及大容量SD卡的高性價比優點,SD卡在生理信號采集中的應用前景廣闊。
模擬信號相關文章:什么是模擬信號
評論