- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
SD卡在生理信号数据采集中的应用
摘要:基于DSP处理器TMS320F2812与SD卡的接口,设计了一种便携式的生理信号数据采集系统,用于大容量多参数人体生理参数的采集。采用TMS320F2812作为主控芯片,以SD卡作为主要存储介质实现了数据的实时采集与存储。按照FAT32文件系统规范设计了一种优化的文件系统,可以快速地把实时采集的数据以文本的形式保存在SD卡中。实验表明,该系统在实际测量中操作简单、携带方便,可用于人体生理参数的实时监测。
0 引言
生理信号是表征人体生命特征的基本参数,如血压、脉率、体温等都是人体重要的生理信号,这些信号中都包含着有用的病理信息。通过分析这些信号可以诊断体内各部位的疾病。多参数生理信号数据采集要求数据存储量大,使用无线、USB与上位机通信存储数据可以解决这一需求。但是,这些方案都需要上位机来存储数据不利于便携式操作。
SD卡(Secure Digital Card)具有体积小、重量轻、容量大、数据传输率快、极大的移动灵活性以及很好的安全性等优点,非常适合应用在长时间存储大量数据的测量系统中。因此采用SD卡作为生理信号数据采集系统的存储介质是很好的解决方案。
本文设计了一种便携式的生理信号数据采集系统。硬件上设计了电源管理模块,解决了系统中各个模块不同电压的需求。同时采用处理速度很快的DSP处理器TMS320F2812作为主控芯片,使采集数据和处理数据的性能更加优越。软件上设计了优化的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卡发送数据和命令;DO管脚连接到SPISOMIA管脚,DSP通过这个管脚读取SD卡内的数据;SCLK管脚连接到SPICLKA管脚,DSP通过这个管脚向SD卡发送时钟信号。具体连接电路如图2所示。
3 SD卡的软件设计
SD卡工作在SPI模式下,主控制器向SD卡发送命令、数据并接收SD卡的响应。被使能的SD卡总是对来自主控制器的命令有所响应,当SD卡出现错误时,会返回一个出错响应来代替期望的数据。
3.1 SD卡的初始化
对SD卡进行读写操作之前,首先应该初始化SD卡。SD卡初始化流程如图3所示。为了保持SD卡的兼容性,设置SPI的时钟频率在100~400 kHz范围内。SD卡上电后,主机必须先向SD卡发送至少74个时钟周期,同时CS处于低电平,以完成SD卡上电过程。SD卡上电后默认进入SD模式,在此模式下向SD卡发送复位命令(CMD0)并保持CS为低电平,如果收到应答信号为01H,则SD卡进入SPI模式。
SD卡进入SPI模式后,主机即可不断地向SD卡发送命令(CMD55+ACMD41)并读取应答信号,如果应答信号为00H,则表明SD卡完成初始化。初始化完成后,需要把SPI时钟频率设置为高速模式,在这种模式下才能保证SD卡的高速读写。
3.2 SD卡的读写操作
SD卡支持单块写操作(CMD24)和多块写操作(CMD25)。图4为单块写操作流程图,数据长度为512 B。执行单块写操作时,主机发送写数据块命令(CMD24),等待SD卡的应答信号为00H后,然后发送数据起始标志位0xFE,接着发送512 B数据和2 B的(2RC校验。当SD卡的应答信号为0x05时,即表明SD卡已经正确地写入了数据。在写SD卡时,SD卡的输出口为低电平,当输出口变为高电平时表明写操作完成。
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卡在生理信号采集中的应用前景广阔。
作者:宋杰 唐飞 王晓浩 杨涛 来源:《现代电子技术》