【记录】嵌入式经典通信SPI总线理解

SPI是一种高速、全双工、同步的串行通信总线,通常用于主从设备间的数据传输。它需要MISO、MOSI、SCLK和CS四条线,支持四种工作模式,由CPOL和CPHA定义。与I2C相比,SPI是全双工,无应答机制,且通过片选信号寻址,通信速度更快。选择SPI时,必须确保主从设备的工作模式匹配。
摘要由CSDN通过智能技术生成

SPI简介

        SPI(Serial Peripheral Interface)是串行外设接口的缩写,SPI是一种高速的、全双工、同步的串行通信总线;SPI采用主从方式工作,一般有一个主设备和一个或多个从设备; SPI需要至少4根线(多个从机的时候就多于4根线),分别是MISO(master input slave output主设备输入从设备输出)、MOSI(主设备输出从设备输入)、SCLK(时钟)、CS(chip select片选)SPI使用引脚较少且布线方便,所以越来越多的芯片集成了这种通信协议。

寻址方式

        当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选线上发送使能信号(高电平或者低电平,根据从机而定)表示选中该从设备。一般芯片CS上面有横线代表低电平有效,无横线代表高电平有效。

通信过程

        SPI总线在进行数据传送时,先传送高位,后传送低位(与I2C相同);数据线为高电平表示逻辑‘1’,低电平表示逻辑‘0’;一个字节传送完成后无需应答即可开始下一个字节的传送(无应答可能存在的问题是发送器一直在发,不管接收器是否接收到); SPI总线采用同步方式工作(异步通信是通过设定波特率测时间,同步通信是通过时钟线),时钟线在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送。(无起始信号无终止信号无应答信号,发完一个信号,直接发送另一个信号)

极性和相位

极性和相位

    SPI总线有四种不同的工作模式,取决于极性(CPOL)和相位(CPHL)这两个因素

    CPOL表示SCLK空闲时的状态(极性)

              CPOL=0,空闲时SCLK为低电平

              CPOL=1,空闲时SCLK为高电平

CPHA表示采样时刻(相位)

       CPHA=0,每个周期的第一个时钟沿采样

       CPHA=1,每个周期的第二个时钟沿采样

第一种:CPOL = 0,  CPHA = 0

第二种:CPOL = 0,  CPHA = 1

第三种:CPOL = 1,  CPHA = 0

第四种:CPOL = 1,  CPHA = 1

需要说明的是,对于一个特定的从设备来说,一般在出厂时就会将其设计为某种特定的工作模式;我们在使用该设备时就必须保证主设备的工作模式和该从设备保持一致,否则是无法进行通信的;所以一般我们需要对主设备的CPOLCPHA进行配置。

I2C和SPI的异同

相同点

        1.均采用串行、同步的方式;

        2.均采用TTL电平,传输距离和应用场景类似;

        3.均采用主从方式工作;

不同点

        1.I2C为半双工,SPI为全双工;

        2.I2C有应答机制,SPI无应答机制;

        3.I2C通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号来寻址(I2C使用引脚少,更省资源;SPI通信速度更快);

        4.I2C的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可调。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值