MMC存储卡基础知识
当单片机需要存储大量数据时,可以使用MMC(Multimedia Card)存储卡。
MMC存储卡有7个引脚,支持MMC和SPI(Serial PeripheralInterface)两种串行数据通信模式,在SPI模式中,MMC存储卡可以通过4条信号线完成数据的传输,完全符合SPI数据的规范,这四条信号线为SCK、MISO、MOSI、CS。SPI模式的通信速率比MMC模式通信速率慢,SPI模式相对MMC模式实现起来较为简单。
SPI总线协议基本知识
SPI即串行外围设备接口,由Motorola公司开发的一种四线制串行总线协议,主要用于连接CPU与EEPROM、ADC、FLASH、显示驱动电路等外围器件。在嵌入式系统中常采用一主多从的主从配置结构。
MISO:数据输入信号线,主<—从
MOSI:数据输出信号线,从<—从
SCK :同步时钟信号线,主设备产生
CS :从设备片选信号线,决定在某一时刻唯一能与主设备通信的从设备,如果从设备没有被选中,则其MISO、MOSI端呈现高阻态,从而与外接电路隔阂。
SPI信号线的特点:
- 主从之间分别有独立的信号线用于发送和接收数据,具有全双工通信功能;
- 由主设备向从设备提供串行时钟信号以控制通信同步;
- 不存在寻址机制,依靠主设备引出每个从设备的片选信号线以选择通信对象,这样也占用了主设备引脚资源;
- 没有接收应答机制。
SPI接口的内部构造是一个简单的8/16位移位寄存器,一次最多可以发送两个字节。
主/从器件设备的MOSI、MISO和SCK引脚相互连接。通信由主设备发起,在同步串行时钟作用下,数据在主/从设备之间两个方向同时串行传输,即主设备和从设备可以同时发送和接收数据,这也要求SPI总线接口具有全双工通信能力,所以传输速率很高。如果系统中有多个SPI从设备,主设备必须提供相应的片选信号来选择其要通信的从设备。
SPI主设备为了与不同的外设进行数据交换,需要根据外设的工作特点和和要求,配置调整自己输出的同步时钟极性(CPOL)和相位(CPHA)CPOL和CPHA的组合可以确定数据采样和发送的时机。
CPOL:其值表示设备处于空闲时信号的电平状态。当CPOL=0时,设备在低电平时处于空闲状态;当CPOL=1时,设备在高电平时处于空闲状态。
CPHA:其值决定使用何种时钟边沿进行数据采样。当CPHA=0时,设备在时钟上升沿采样;当CPHA=1时,设备在时钟下降沿采样。
CPOL和CPHA的设定 | 第一位数据的输出 | 其他位数据的输出 | 数据的采样 |
---|---|---|---|
CPOL=0,CPHA=0 | 在第一个SCK上升沿之前 | SCK下降沿 | SCK上升沿 |
CPOL=0,CPHA=1 | 第一个SCK上升沿 | SCK上升沿 | SCK下降沿 |
CPOL=1,CPHA=0 |