摘要:基于DSP處理器TMS320F2812與SD卡的接口,設計了一種便攜式的生理信號數據采集系統,用于大容量多參數人體生理參數的采集。采用TMS320F2812作為主控芯片,以SD卡作為主要存儲介質實現了數據的實時采集與存儲。按照FAT32文件系統規(guī)范設計了一種優(yōu)化的文件系統,可以快速地把實時采集的數據以文本的形式保存在SD卡中。實驗表明,該系統在實際測量中操作簡單、攜帶方便,可用于人體生理參數的實時監(jiān)測。
0 引言
生理信號是表征人體生命特征的基本參數,如血壓、脈率、體溫等都是人體重要的生理信號,這些信號中都包含著有用的病理信息。通過分析這些信號可以診斷體內各部位的疾病。多參數生理信號數據采集要求數據存儲量大,使用無線、USB與上位機通信存儲數據可以解決這一需求。但是,這些方案都需要上位機來存儲數據不利于便攜式操作。
SD卡(Secure Digital Card)具有體積小、重量輕、容量大、數據傳輸率快、極大的移動靈活性以及很好的安全性等優(yōu)點,非常適合應用在長時間存儲大量數據的測量系統中。因此采用SD卡作為生理信號數據采集系統的存儲介質是很好的解決方案。
本文設計了一種便攜式的生理信號數據采集系統。硬件上設計了電源管理模塊,解決了系統中各個模塊不同電壓的需求。同時采用處理速度很快的DSP處理器TMS320F2812作為主控芯片,使采集數據和處理數據的性能更加優(yōu)越。軟件上設計了優(yōu)化的FAT32文件系統,使大容量SD卡的寫入數據速度更快。
1 總體設計
本文設計的采集系統主要由電源管理模塊、SD卡、TMS320F2812等部分組成,充分體現了便攜化設計。系統設計框圖如圖1所示。系統采用干電池作為電源,并通過電源管理模塊分別給系統各個模塊供電。TMS320F2812利用片內的12位A/D對傳感器采集的模擬信號進行采樣和變換處理,結果保存在SD卡中。大容量的SD卡中嵌有FAT32文件系統可以把數據保存為文本格式,便于在上位機上進行數據處理和波形分析。
2 DSP與SD卡的接口電路設計
根據SD卡的通信協議,主控制器和SD卡有兩種通信模式:SD模式和SPI模式。前者速度快(4位并行數據總線),使用所有的信號線;后者速度慢(數據以單線傳輸),但是簡單易用、兼容性好、便于和主控制器連接通信。SPI模式的傳輸速度可以滿足本文設計的系統要求,因此,本設計采用SPI模式。表1是SD卡在SPI模式下的各引腳定義。
SD卡與DSP的4個I/O口相連。SD卡的CS管腳連接到DSP的SPISTEA管腳,用作普通I/O功能,其高低電平控制SD卡的使能與否;DI管腳連接到SPISIMOA管腳,DSP通過這個管腳向SD卡發(fā)送數據和命令;DO管腳連接到SPISOMIA管腳,DSP通過這個管腳讀取SD卡內的數據;SCLK管腳連接到SPICLKA管腳,DSP通過這個管腳向SD卡發(fā)送時鐘信號。具體連接電路如圖2所示。
3 SD卡的軟件設計
SD卡工作在SPI模式下,主控制器向SD卡發(fā)送命令、數據并接收SD卡的響應。被使能的SD卡總是對來自主控制器的命令有所響應,當SD卡出現錯誤時,會返回一個出錯響應來代替期望的數據。
3.1 SD卡的初始化
對SD卡進行讀寫操作之前,首先應該初始化SD卡。SD卡初始化流程如圖3所示。為了保持SD卡的兼容性,設置SPI的時鐘頻率在100~400 kHz范圍內。SD卡上電后,主機必須先向SD卡發(fā)送至少74個時鐘周期,同時CS處于低電平,以完成SD卡上電過程。SD卡上電后默認進入SD模式,在此模式下向SD卡發(fā)送復位命令(CMD0)并保持CS為低電平,如果收到應答信號為01H,則SD卡進入SPI模式。
SD卡進入SPI模式后,主機即可不斷地向SD卡發(fā)送命令(CMD55+ACMD41)并讀取應答信號,如果應答信號為00H,則表明SD卡完成初始化。初始化完成后,需要把SPI時鐘頻率設置為高速模式,在這種模式下才能保證SD卡的高速讀寫。
3.2 SD卡的讀寫操作
SD卡支持單塊寫操作(CMD24)和多塊寫操作(CMD25)。圖4為單塊寫操作流程圖,數據長度為512 B。執(zhí)行單塊寫操作時,主機發(fā)送寫數據塊命令(CMD24),等待SD卡的應答信號為00H后,然后發(fā)送數據起始標志位0xFE,接著發(fā)送512 B數據和2 B的(2RC校驗。當SD卡的應答信號為0x05時,即表明SD卡已經正確地寫入了數據。在寫SD卡時,SD卡的輸出口為低電平,當輸出口變?yōu)楦唠娖綍r表明寫操作完成。
SD卡同樣支持單塊(CMD17)和多塊(CMD18)讀操作。單塊讀操作的數據長度也是512 B,其操作流程與寫操作類似。操作時,首先向SD卡發(fā)送讀數據塊命令(CMD17),當接收應答信號0xFE后,即可接收512 B數據塊和2 B的CRC校驗。
4 FAT32文件系統設計
4.1 FAT32文件系統的結構
為了更直觀地查看SD卡中的數據,并與計算機進行數據交互式操作。本文采用了FAT32文件系統,該文件系統不僅實現了對大容量SD卡的文件操作,而且讀寫文件的速度很快。
FAT32文件系統在SD卡上的基本結構包含以下幾個部分:分區(qū)引導記錄DBR(Dos Boot Record)、文件分配表FAT(File Allocation Table)數據區(qū)。
分區(qū)引導記錄DBR,通常包括跳轉指令、廠家標識和DOS版本號、BPB(BIOS Parameter Block)和。BIOS引導程序。其中BPB記錄著每個扇區(qū)字節(jié)數、每簇扇區(qū)數、總扇區(qū)數等SD卡的基本信息,這些信息是正確操作SD卡的基礎。
FAT32文件系統有兩個文件分配表FAT1和FAT2。FAT2是FAT1的備份,記錄了簇與簇之間數據的鏈接關系。
FAT32與FAT12、FAT16不同的是,它沒有專門的根目錄區(qū),根目錄區(qū)與數據區(qū)合并在一起。
4.2 FAT32文件系統的實現
4.2.1 FAT32文件系統的初始化
對SD卡的正確操作,需要初始化該卡的信息結構體變量如每個扇區(qū)字節(jié)數、每簇扇區(qū)數、FAT表數目等。
初始化流程如圖5所示。首先讀卡的物理扇區(qū)0,得到引導扇區(qū)的偏移地址。正常的話,該扇區(qū)最后兩個字節(jié)為55AA。然后讀引導扇區(qū)DBR的具體內容,得到文件系統的基本信息,初始化SD卡的信息結構體變量。
4.2.2 FAT32文件系統的相關操作
在本設計中,為了提高SD卡的寫入速度,對FAT32文件系統進行優(yōu)化。FAT32文件系統在保留區(qū)增加了一個FSINFO扇區(qū),用以記錄文件系統中空閑簇的數量以及不可用簇的簇號等信息。在執(zhí)行寫SD卡操作時,可以通過讀取該扇區(qū)的內容快速地定位到下一個空閑簇,然后進行數據的寫入。優(yōu)化后的文件系統主要包括以下操作:文件的創(chuàng)建與文件的讀寫操作。
創(chuàng)建新文件時,首先判斷該文件是否存在。如果存在,則打開該文件讀取該文件的FAT表項,獲取開始簇的地址、文件所占的字節(jié)數及第一個扇區(qū)的地址等信息;如果文件不存在,則查詢空閑簇并設置起始簇號,同時根據這個起始簇號創(chuàng)建簇鏈,然后讀取FDT(File Directory Table)表項查找空閑的32 B FDT,以存放文件名、擴展名、屬性值等信息。
讀文件時,根據文件名查找FDT表項并讀取文件的起始簇號,根據起始簇號找到第一個簇的內容,并逐個扇區(qū)讀取。同時,根據簇鏈就能查找到第2個簇,然后讀取簇里的內容。按照此方法,直到讀取所有的數據。寫文件的流程和讀文件類似,不同的是寫滿一個簇時要查找空閑的簇并添加到簇鏈中,同時更新FAT1,FAT2和FSINFO的內容。
5 結語
本文設計了一種基于DSP和SD卡的生理信號數據采集系統,詳細介紹了DSP與SD卡的硬件接口電路設計以及SD卡軟件設計流程。通過對人體手指體表溫度和濕度的實時測量,該系統可以實現對16路模擬信號的采集、處理、存儲等一系列操作。SD卡存儲容量為2 GB,最高讀寫速度可以達到1.2.MB/s,完全滿足在高速AD采集系統中的應用。隨著人體監(jiān)測儀器的智能化、小型化發(fā)展,以及大容量SD卡的高性價比優(yōu)點,SD卡在生理信號采集中的應用前景廣闊。