MMC在便携式数据采集系统中的应用
时间:12-06
来源:互联网
点击:
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_tag,char*){
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环境下用读卡器读取,方便了数据的进一步分析和处理,且具有低功耗、携带方便、性能价格比高等特点。
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_tag,char*){
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环境下用读卡器读取,方便了数据的进一步分析和处理,且具有低功耗、携带方便、性能价格比高等特点。
PIC 嵌入式 DSP 电子 电压 总线 电流 电源管理 单片机 Linux 电路 相关文章:
- 提高实时系统数据采集质量的研究(04-09)
- 数字语音驱鸟器阵列声场聚焦系统设计(11-23)
- 基于TMS320C6416T的CPCI信号处理板设计(12-01)
- 基于PIC32MX的液晶触摸屏人机界面设计(01-13)
- 高效的500W太阳能逆变器设计(12-22)
- dsPIC30F3013的CAN总线数据采集系统(01-17)
