SPI协议简单总结

文章目录

        • SPI接口---全双工 的 同步 串行通讯总线
        • SPI的数据格式
        • SPI的控制器举例s3c2440 spi控制器

SPI接口—全双工 的 同步 串行通讯总线

SPI(Serial Peripheral Interface)接口是全双工(同时发送接受)的同步(发送过程需要等待接受方响应)串行(数据按位连续发送)通讯总线,支持通过多个不同的片选信号来连接多个外设。外围设备包括Flash RAM,网络控制器、LCD显示驱动器、A/D转换器和MCU等。

SPI 接口通常由四根线组成,分别是提供时钟的 SCLK提供数据输出的 MOSI(Master Out Slave In),提供数据输入的MISO(Master In Slave Out)和提供片选信号的 CS。同一时刻只能有一个SPI 设备处于工作状态,即多个 CS 信号中某时间只能有一个有效。为了适配不同的外设 ,SPI 支持通过寄存器来配置片选信号和时钟信号的极性和相位。

SPI协议简单总结_第1张图片

SPI的数据格式

当片选信号拉低后,建立了连接,主设备开始发送时钟,然后同步开始数据传输。
数据传输有4钟模式,由CPOL和CPHA两个配置相关(器件的datasheet有标明,mcu或soc可配置),如下:
CPOL决定时钟初始极性(0表示默认 时钟为低电平)
CPHA决定是采样位置,是第一个还是第二个电平变化沿(0表示在第一个,上升还是下降和CPOL相关)
SPI协议简单总结_第2张图片

SPI的控制器举例s3c2440 spi控制器

S3C2440A 包含了 2 个 SPI,每个都有 2 个分别用于发送和接收的 8 位移位寄存器。一次 SPI 传输期间,同时发送(串行移出)和接收(串行移入)数据。由相应控制寄存器设置指定 8 位串行数据的频率。相关寄存器:
SPCON0控制:配置查询/中断/dma模式,时钟使能,主从选择,CPOL CPHA配置。
SPI状态:数据从图,多主机错误,数据就绪;
SPPRE0波特率分频:配置分频决定SPI时钟;
SPTDAT0 发送数据寄存器;
SPRDAT0 接受数据寄存器;
SPI协议简单总结_第3张图片
伪代码流程(最简单的,不涉及DMA):
SPI初始化:1、配置波特率 2、配置控制寄存器(查询模式、使能时钟、主机、CPOL CPHA);GPIO配置I2C模式;
SPI发送数据:检查发送就绪REDY状态,就开始写入SPTDAT;
SPI读取数据:写0xff到SPTDAT,检查就绪REDY状态,然后从读缓冲器读取数据。

你可能感兴趣的:(ARM嵌入式类)