历史上的今天
返回首页

历史上的今天

今天是:2025年03月18日(星期二)

正在发生

2018年03月18日 | MultiMediacard及其与单片机接口解析

2018-03-18 来源:eefocus

 内容摘要:MultiMediaCard是Sandisc公司推出的大容量串行Flash存储卡,外形尺寸为32mm%26;#215;24mm%26;#215;1.4mm,质量小于2g,7针引脚,便于开发设计小型的移动数码设备。本文重点介绍此类存储器与PIC单片机的接口,给出实际的电路设计和软件代码示例。 关键词:MultiMediaCard 串行Flash存储卡 PIC单片机 接口 1 概述 Sandisc公司推出的大大容量串行Flash存储器产品——MultiMediaCard(MMC),通常叫作多媒体卡。它的体积比 SmartMedia还要小,

1.jpg?imageView2/2/w/550

    不怕冲击,可反复读写记录30万次,驱动电压2.7~3.6V,可变时钟频率范围为0~20MHz,目前常见的容量为64MB/128MB。ATP EleCTRionics公司已经率先推出了1GB的高容量MMC。除了体积小、寿命长、容量大等特性外,还具备存储区纠错能力;低功耗;5ms内没有接收到命令字后,自动转入休眠状态;支持热插拔等优点。MMC可以格式化为FAT文件系统,便于上位机读写。 2 MMC简介 2.1 引脚排列及功能 根据存储容量的不同,MMC有SMDB和SDMJ两种构成技术。SMDB即二进制NAND技术(Binary NAND),16MB和32MB容量的MMC卡采用此技术。目前常用的64MB和128MB的MMC采用SDMJ,即MLC(Multi Level Cell)NAND技术。各容量的MMC卡,其外形尺寸及引脚排列相同,如图1所示。 MMC读写接口可以在MMC和SPI两种通信 协议下工作。MMC是由MMCA协会开发的高性能三线制通信协议,即CMD、CLK、DAT线,最大可寻址64000张MMC卡,单个物理地址可叠放30 张卡,支持顺序读写及单/多数据块读写操作,是MMC卡默认的通信协议。SPI协议为可选协议,工作效率不及MMC协议;但SPI协议简单易用,兼容性好,便于和单片机连接使用。本设计采用SPI通信协议,下文将详细介绍。

2.jpg?imageView2/2/w/550

    2.2 内部逻辑结构 MMC卡的内部逻辑结构可分为四部分:MMC/SPI接口、单芯片控制器、数据闪存模块、控制线和数据线。MMC/SPI接口实现与主控制器的通信。

3.jpg?imageView2/2/w/550

    单芯片控制器完成接口协议、数据存储检索、纠错码算法、故障诊断处理、电源管理和时钟控制功能。数据内存模块可以实现整个存储空间内的单字节访问,它不是简单的字阵列,而是被分成了多种结构。512个字节构成1个扇区(sector)。根据MMC卡容量的不同,16或32个扇区构成1个擦除族(erase group)。32个擦除族构成1个写保护族(write protect group)。此设计使MMC操作灵活,使用方便。控制线和数据线实现数据存储区的访问,其内部逻辑结构如图2所示。 3 MMC/SPI通信协议 MMC卡上电后,默认进入MMC模式。如果转入SPI模式下工作,需进行模式切换。SPI模式设定流程如图3所示。 如需从SPI模式转入MMC模式,只能切断电源,重新上电,进入默认MMC模式。从实际应用角度出发,SPI模式设计简单,操作方便,但数据传输速率逊于 MMC模式。基于设计要求,笔者采用了SPI通信协议。 4 存储器读写接口 4.1 SPI接口及操作模式 SPI接口是一种通用同步串行接口总线,字长为8位,用来与外部设备进行通信。SPI接口利用CLK、DataIn和DataOut三根线进行数据的读写。其中,CLK为时钟信号,有外部控制器提供;Datain和DataOut为数据输入和输出线。CS是MMC片选信号线,在整个SPI操作过程中,必须保持低电平有效信号。 SPI接口共有四种操作模式,分别为0、1、2和3。SPI操作模式决定了设备接收和发送数据时的时钟相位和极性,即决定了时钟信号的上升和下降沿与数据流动方向之间的关系,如图4所示。本设计采用模式3。 4.2 MMC卡命令及答复信号

4.jpg?imageView2/2/w/550

    所有MMC卡命令字长度均为6个字节,传输从高位开始,且包含一个CRC校验字。 命令字索引采用二进制编码。比如CMD0的索引位是000000,CMD39的索引位是100111。MMC卡命令字分为10个命令组,每组由多个命令字组成,完成MMC卡功能设定。SPI模式下的Sandisc MMC卡支持其中的6个命令组,可实现基本设定、数据块读、数据块写、擦除、写保护、MMC卡锁定功能。 MMC卡有多种应答信号格式,传输从高位开始。SPI模式下,存在5种应答信号格式,分别为R1、R2、R3、Busy、R1b。 接收到每个命令后,MMC卡都发送一个格式为R1的应答信号,卡状态查询命令字CMD13除外。此应答信号占1字节,最高位为0,低7位为错误标志。若某位为1,表示存在相应错误。 Busy应答信号长度为多个字节。各位都为0,表示卡正忙。存在非零位表明卡已经准备好接收下一命令。

5.jpg?imageView2/2/w/550

    R2格式应答信号长度为2字节,用于答复卡状态查询命令字CMD13。首字节格式同R1,第2个字节表示的错误类型。 R3格式应答信号长度为5字节,答复卡内OCR豁口读命令CMD58。首字节格式同R1,其余4字节为OCR豁口内容。 R1b格式应答信号包括两部分,R1格式部分和Busy格式可选附加部分。 4.3 MMC在SPI模式下的传输时序 MMC在SPI协议下读写时序如图5所示。主控制器发送读/写命令,当收到OUT传输互上正确的应答信号后,OUT/IN传输线开始读/写操作。

6.jpg?imageView2/2/w/550

    5 MMC卡与单片机接口实例 5.1 硬件电路设计 图6为笔者采用Sandisc公司容量为32MB的MMC卡设计的便携式数据采集系统的一部分。单片机采用美国MicroChip公司推出的 PIC16F73B。单片机的工作频率为4MHZ,采用Port C的硬件SPI接口进行MMC卡的读写操作。 5.2 软件设计 访问MMC卡存储单元前,需要设定访问块长度。默认长度为512字节。本设计是通过写缓存芯片FM24CL64,达到512字节后转入主存MMC的(硬件电路图应作相应的修改),所以读写长度不再设定。MMC格式化为FAT文件系统的结构后,数据以文件的形式为上位机所读取。 MMC接口部分软件设计流程如图7所示。 5.3 MMC卡SPI初始化与写子程序 因为MMC可以在两种协议下工作,且默认为MMC操作模式,所以必须经过初始化才能在SPI模式下工作。


推荐阅读

史海拾趣

Epitex Inc公司的发展小趣事

随着技术的不断进步,Epitex不断加大对研发的投入。XXXX年,他们成功研发出了一种具有更高导热性能的电子材料,这种材料在高性能计算机和服务器等高端电子产品中得到了广泛应用。这一技术突破不仅提升了Epitex的市场竞争力,也为其带来了可观的经济效益。

在技术突破的基础上,Epitex开始积极拓展国际市场。他们通过与全球知名的电子制造商建立合作关系,将产品推向了更广阔的舞台。同时,Epitex还积极参与国际技术交流和展览,提升了公司在国际市场的知名度。

DESIGNERSYSTEMS公司的发展小趣事

随着科技的快速发展,电子设备的设计要求越来越高。DESIGNERSYSTEMS公司投入大量研发资源,不断推动技术突破。他们成功开发出一套高效、智能的设计软件,能够大大提高设计效率和精度。这一技术突破使得DESIGNERSYSTEMS在电子设备设计领域具备了更强的竞争力,吸引了更多客户的合作。

Hsuan Mao Technology Co公司的发展小趣事

随着科技的快速发展,电子设备的设计要求越来越高。DESIGNERSYSTEMS公司投入大量研发资源,不断推动技术突破。他们成功开发出一套高效、智能的设计软件,能够大大提高设计效率和精度。这一技术突破使得DESIGNERSYSTEMS在电子设备设计领域具备了更强的竞争力,吸引了更多客户的合作。

北京人民电器厂公司的发展小趣事

北京人民电器厂有限公司,作为北方地区最大的低压电器制造企业,于1995年成功研发出全球首台高分断微型直流断路器。这一创新成果不仅填补了国内空白,更在国际上展现了中国在低压电器领域的研发实力。该断路器的诞生,标志着北京人民电器在直流断路器技术领域迈出了坚实的一步,为后续的产品研发和市场拓展奠定了坚实的基础。

Clover Display Limited公司的发展小趣事

Clover Display Limited的创始团队最初是Kontoy Products Company Limited的成员,专注于电子板组装。随着技术的不断进步和市场需求的转变,团队意识到液晶显示技术的巨大潜力。于是,在1983年,他们决定成立一家专注于显示器研发与销售的新公司——Clover Display Limited。初期,公司面临着资金短缺、技术壁垒等多重挑战,但凭借着对技术的热情和市场的敏锐洞察力,他们逐步攻克难关,开始在液晶显示领域崭露头角。

Cambridge Electronic Industries Ltd公司的发展小趣事

CEI的发展历程中,技术创新一直是其核心竞争力。公司不断投入研发资源,探索新的电子技术和应用领域。在某一时期,CEI成功研发出了一款具有革命性的电子产品,该产品在性能、稳定性和成本方面均达到了行业领先水平。这一产品的推出,不仅为CEI带来了可观的经济效益,更重要的是,它为公司树立了技术创新和产品质量的标杆,进一步巩固了CEI在电子行业中的地位。

问答坊 | AI 解惑

怎样自己做电路板?

PCB图画出来了,怎样自己做电路板?需要那些工具以及制作过程,谢谢!!…

查看全部问答>

快来,应该来算一笔账

不久前中国移动整了一个活动,充800块钱话费送一年宽带和一部家庭电话,看起来好像超实惠的样子,但是……这账算下来,可还真不省钱。 先看这手机话费,充800,即时到账200,这不用说,充了就充了,剩下的部分,分12个月返还,每个月返还50块,还 ...…

查看全部问答>

MTK射频布线详细教程

MTK射频布线详细教程…

查看全部问答>

开关电源欠压保护电路的设计

1 引言   保护电路的设计,无疑是电源设计中一个非常重要的环节,它对于提高电源工作的安 全可靠性、延长电源的使用寿命都起着十分重要的作用。在设计保护电路时,一方面要保证其功能完善,工作稳定可靠;另一方面应力求简单明了,避免繁复 ...…

查看全部问答>

sql ce 数据库数次开关后无法连接问题请教,急。。。

各位朋友好,我遇到的问题是:我在wince5.0中用ado访问sql ce数据库,平时连接数据库、读写数据库都没问题,我的程序是定时3秒写一个70个字段的数据,当我反复开关设备时(我们的设备是硬关机,即直接关电源,没有关机键),在一定次数后再打开程序 ...…

查看全部问答>

初学者对单片机的疑问?

在单片机中,程序设定一个输出引脚的为高电平3v,用这个高电平通过三极管的基极到电源负极去驱动负载, 我们知道三极管的基极的电阻很小,也就是三极管上的基极管压降只有0.4V左右,根据电路定律,那么是不是输出引脚对地的电压也只有0.4v,变成 ...…

查看全部问答>

求教:关于can初始化的问题

关于CAN初始化的问题; 为什么CAN_Init()函数调用有时候成功有时候失败? 之前做的一个项目CAN_Init()初始化都成功, 现在在原来基础上加个函数做别的功能 这个函数初始化就失败 真是搞不懂,我那个函数就是初始化systick 的函数,不知 ...…

查看全部问答>

【玩转C2000 Launchpad】在TFT上显示AD值

我想用一路AD转换,并在屏上显示值。 转换程序很简单只软件触发一路: AdcRegs.ADCSOCFRC1.bit.SOC3 = 1;        for(i=0;i…

查看全部问答>

快要全国电赛了,参加比赛的童鞋们要抓紧熟悉MCU了

又是奇数年,这个暑假应该又有全国电赛 参加比赛的同学现在要抓紧熟悉MCU,最好选定一种MCU作为到时候的主控 MSP430比较适合做无线通信类和控制类的赛题,特别作为是无线通信类赛题的主控优势较大; 在控制方面使用起来也比较方便。 如果是电力 ...…

查看全部问答>