51 单片机与 SD 卡的接口电路和程序 (1)
长期以来,以 Flash Memory 为存储体的 SD 卡因具备体积小、功耗低、可擦写以及非易失性等特点而被广
泛应用于消费类电子产品中。特别是近年来,随着价格不断下降且存储容量不断提高,它的应用范围日益增广。
当数据采集系统需要长时间地采集、记录海量数据时,选择 SD 卡作为存储媒质是开发者们一个很好的选择。
在电能监测以及无功补偿系统中,要连续记录大量的电压、电流、有功功率、无功功率以及时间等参数,当单
片机采集到这些数据时可以利用 SD 作为存储媒质。本文主要介绍了 SD 卡在电能监测及无功补偿数据采集系
统中的应用方案。
设计方案
应用 AT89C52 读写 SD 卡有两点需要注意。首先,需要寻找一个实现 AT89C52 单片机与 SD 卡通讯的解决
方案;其次,SD 卡所能接受的逻辑电平与 AT89C52 提供的逻辑电平不匹配,需要解决电平匹配问题。
通讯模式
SD 卡有两个可选的通讯协议:SD 模式和 SPI 模式。SD 模式是 SD 卡标准的读写方式,但是在选用 SD 模式
时,往往需要选择带有 SD 卡控制器接口的 MCU,或者必须加入额外的 SD 卡控制单元以支持 SD 卡的读写。
然而,AT89C52 单片机没有集成 SD 卡控制器接口,若选用 SD 模式通讯就无形中增加了产品的硬件成本。
在 SD 卡数据读写时间要求不是很严格的情况下,选用 SPI 模式可以说是一种最佳的解决方案。因为在 SPI 模
式下,通过四条线就可以完成所有的数据交换,并且目前市场上很多 MCU 都集成有现成的 SPI 接口电路,采
用 SPI 模式对 SD 卡进行读写操作可大大简化硬件电路的设计。
虽然 AT89C52 不带 SD 卡硬件控制器,也没有现成的 SPI 接口模块,但是可以用软件模拟出 SPI 总线时序。
本文用 SPI 总线模式读写 SD 卡。
电平匹配
SD 卡的逻辑电平相当于 3.3V TTL 电平标准,而控制芯片 AT89C52 的逻辑电平为 5V CMOS 电平标准。因
此,它们之间不能直接相连,否则会有烧毁 SD 卡的可能。出于对安全工作的考虑,有必要解决电平匹配问题。
要解决这一问题,最根本的就是解决逻辑器件接口的电平兼容问题,原则主要有两条:一为输出电平器件输出
高电平的最小电压值,应该大于接收电平器件识别为高电平的最低电压值;另一条为输出电平器件输出低电平
的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。
一般来说,通用的电平转换方案是采用类似 SN74ALVC4245 的专用电平转换芯片,这类芯片不仅可以用作
升压和降压,而且允许两边电源不同步。但是,这个方案代价相对昂贵,而且一般的专用电平转换芯片都是同
时转换 8 路、16 路或者更多路数的电平,相对本系统仅仅需要转换 3 路来说是一种资源的浪费。
考虑到 SD 卡在 SPI 协议的工作模式下,通讯都是单向的,于是在单片机向 SD 卡传输数据时采用晶体管加上
拉电阻法的方案,基本电路如图 1 所示。而在 SD 卡向单片机传输数据时可以直接连接,因为它们之间的电平
刚好满足上述的电平兼容原则,既经济又实用。
评论7
最新资源