Multimedia Card在便携式数据采集系统中的应用
Busy格式应答信号的长度为多个字节各位均为0时,表示MMC正忙;如果存在非0位,表明MMC已经准备好接收下一个命令。
R2格式应答信号的长度为2个字节,用于答复卡状态查询命令字CMD13,首字节同R1,第2字节表示的是错误类型,如表4所示
R3格式应答信号的长度为5个字节,用于答复卡内OCR寄存器,R3的首字节同R1,其余4字节为OCR寄存器的内容。
R1b格式应答信号包括两部分:R1格式部分和Busy格式可选附加部分。
3 MMC的命令
MMC的命令字共分为10个命令组,SPI协议模式支持其中的6个命令组,可以实现MMC系统的基本设定、数据块读、数据块写、擦除、写保护和MMC锁定等功能以堆栈的检查管理命令CIM_CHECK_STACK为例,它是命令组中基本设定命令之一它主要通过命令SEND_CSD(CMD9)读取MMC的信息,然后与进入系统堆栈表的接口卡的信息进行对比如果不是上一张卡,再判定是否超时和超出卡的限定数量,从而确定该卡是否已进入系统堆栈的检查管理命令流程图如图2所示
4 MMC与嵌入式系统芯片组成的大容量便携式数据采集器的接口
4.1 MMC与嵌入式芯片的硬件接口设计
图3是MMC与嵌入式系统芯片PIC16F73B的硬件接口图中,FM24CL64为缓存芯片,采用Port C的硬件SPI接口对MMC卡进行读写操作。
4.2 MMC与嵌入式芯片的软件接口设计
MMC与嵌入式芯片接口的部分软件流程如图4所示
在访问MMC存储单元前,需要首先设定访问块的长度,系统默认访问块的长度为512字节,通过写缓存芯片FM24CL64完成当写入的数据达到512个字节时即转入MMC主存,故读写长度不需要再重新设定MMC格式化为FAT文件系统结构后,数据以文件的形式保存,这样可方便上位机对MMC主存的读取以下是嵌入式系统对MMC卡写文件的部分程序代码:
Void file_write(DIR_tag *file_tagchar*){
U16 j.offset=file_tag.StartCluster*2;
Mmc_read_block(&sdc,fat1_addr+offset/512,mmc-buffer);
Mmc_buffer[offset%512]=0xff;
Mmc_buffer[offset%512+1]=0xff;
Mmc_write_block (&sdc,fat1_addr+offset/512,mmc_buffer);
Mmc_write_block (&sdc,fat2_addr+offset/512,mmc_buffer);
For (j=0;jMmc_write_block(&sdc,519+(file_tag.StartCluster-2),mmc_buffer);
}
采用嵌入式系统芯片PIC16F73B与MMC搭建信号采集的硬件平台,仅使用很少的外部逻辑电路,整个系统可以采用3.3V单一低电压供电,供电电路非常简单在系统软件实现上,可以采用交替式双缓存机制,将采集到的数据先存入数据缓冲区(图3中的FM24CL64)中,当数据缓冲区写满时发出溢出中断,再对MMC进行突发式写操作,当写操作完毕后可以发送命令,使MMC立即进入休眠状态,将功耗降至最低。这样在数据采集系统工作的大部分时间内,MMC处于休眠状态,工作电流很低,该系统适于野外(如地质、石油等部门)的数据采集与存储工作,数据文件可以在Windows环境下用读卡器读取,方便了数据的进一步分析和处理,且具有低功耗、携带方便、性能价格比高等特点。
- 计算机近距离无线数据采集系统设计(05-10)
- 基于DSP和ADS8364的高速数据采集处理系统(05-21)
- 嵌入式系统便携式数据采集装置设计(06-19)
- 基于AD7864和DSP的4路数据采集系统(07-16)
- 基于ARM的高速数据采集卡(08-07)
- 由AT91 M55800A构成的简易数据采集方案(10-19)