SPI—学习总结

SPI总结

一、含义

  • Serial Peripheral interface串行外围设备接口,高速、全双工、同步的通信总线。Motorola(摩托罗拉)首先在其MC68HCXX系列处理器上定义的,用一根单独的数据线和一个单独的时钟信号来保证发送端和接收端的同步。时钟是一个振荡信号,确定输出传输的开始和结束(数据采集的时机可能是时钟的上升沿或下降沿。主从模式(产生时钟的一侧称为主机),可以一主多从工作场景。

二、接口含义

  • SCK(SCLK):时钟信号线,SPI的通讯速率。SPI总线上的主机必须在通信开始的时候产生相应的时钟信号。在每个SPI时钟周期内,都会发生全双工数据传输。主机在MOSI线上发送一位数据,从机读取它,而从机在MISO线上发送一位数据,主机读取它。时钟速率取决于每个系统能提供多大的系统时钟频率,以及最大的SPI传输速率。

  • MOSI(SOMI\DIN\DI\SDO\SI):主机输出/从设备输入,从主机到从机的数据

  • MISO:(SOMO\DO\SDI\SI)主机输入/从设备输出,从从机到主机的数据

  • NSS/CS:(SS, S̅S̅, SSEL, CS, C̅S̅, CE, nSS, /SS,
    SS#)片选信号线,对应的片选信号有效时,对该芯片操作有效。控制与哪个从机通信,通常是低电平有效

     	由高电平到低电平:SPI通讯的起始信号
     	由低电平到高电平:SPI通讯的结束信号
    
  • 时钟极性CPOL/CKP、 时钟相位CPHA/CKE:采集数据时是在时钟信号的具体相位或者边沿

  • 采样时钟:CPHA=0时在串行同步时钟的第一个(奇数边)跳变沿数据被采样 CPHA=1时在串行同步时钟的第二个(偶数边)跳变沿数据被采样
    三、时钟设置
    在这里插入图片描述
    五、传输过程
    在这里插入图片描述
    1、首先拉低对应NSS信号线,表示与该设备进行通信
    2、主机通过发送SCLK时钟信号,来告诉从机写数据或者是读数据
    3、主机将要发送的数据写到发送数据缓冲寄存器,缓冲寄存器又经过串行移位寄存器通过MOSI信号线将字节一位一位的移出去传送到从机,同时MISO接口接收到的数据经过移位寄存器一位一位的移到数据缓冲寄存器。
    4、从机也将自己的串行移位寄存器中的内容通过MISO信号线返回给主机。同时通过MOSI信号线接收主机发送的数据,这样,两个移位寄存器中的内容就被交换了。
    在这里插入图片描述
    在这里插入图片描述
    六、多从机模式
    (1)多根NSS
    1、每个从机都需要一条单独的NSS线
    2、如果要和特定的从机进行通讯,可以将相应的NSS信号线拉低,并保持其他NSS信号线的状态为高电平;如果同时将两个NSS信号线拉低,则可能会出现乱码,因为从机可能都试图在同一条MISO线上传输数据,最终导致接收数据乱码。
    在这里插入图片描述
    (2)菊花链
    1、在数字通信世界中,在设备信号(总线信号或中断信号)以串行的方式从一 个设备依次传到下一个设备,不断循环直到数据到达目标设备的方式被称为菊花链。花链的最大缺点是因为是信号串行传输,所以一旦数据链路中的某设备发生故障的时候,它下面优先级较低的设备就不可能得到服务了;
    2、另一方面,距离主机越远的从机,获得服务的优先级越低,所以需要安排好从机的优先级,并且设置总线检测器,如果某个从机超时,则对该从机进行短路,防止单个从机损坏造成整个链路崩溃的情况;
    在这里插入图片描述
    数据流向如下
    在这里插入图片描述
    七、SPI的优缺点
    SPI的优点
    1、全双工串行通信;
    2、高速数据传输速率。
    3、简单的软件配置;
    4、极其灵活的数据传输,不限于8位,它可以是任意大小的字;
    5、非常简单的硬件结构。从站不需要唯一地址(与I2C不同)。从机使用主机时钟,不需要精密时钟振荡器/晶振(与UART不同)。不需要收发器(与CAN不同)。
    SPI的缺点
    1、没有硬件从机应答信号确定是否接收到数据(主机可能在不知情的情况下无处发送);
    2、通常仅支持一个主设备;
    3、需要更多的引脚(与I2C不同);
    4、没有定义硬件级别的错误检查协议;
    5、与RS-232和CAN总线相比,只能支持非常短的距离;
    注意问题:
    1、sck信号只能由主设备控制,从设备不能控制信号线,至少有一个主设备,不需要进行寻址操作(必须有主机)
    2、SPI允许数据一位一位的传输,允许停止,允许同时完成输入和输出
    3、配置SPI接口时钟的时候,一定要弄清楚从设备的时钟要求,主设备的时钟极性和相位都是从主设备为基准。主设备的时钟极性配置与从设备的接收数据的极性是相反的

参考链接

SPI原理超详细讲解—值得一看
基于FPGA的SPI协议实现
SPI通信详解
SPI总线协议及SPI时序图详解
SPI协议详解(图文并茂+超详细)
SPI协议详解

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱生活的fuyao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值