SPI通讯协议

SPI是什么:
SPI 是英语 Serial Peripheral interface 的缩写,顾名思义就是串行外围设备接口。是 Motorola
首先在其 MC68HCXX 系列处理器上定义的。SPI 接口主要应用在 EEPROM,FLASH,实时时
钟,AD 转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线。
SPI的优点:
可以同时发出和接收串行数据,支持全双工操作,操作简单,数据传输速率较高。
SPI的缺点:
需要占用主机较多的口线(每个从机都需要一根片选线),只支持单个主机,没有指定的流控制,没有应答机制确认是否接收到数据。
SPI 接口一般使用 4 条线通信:
MISO 主设备数据输入,从设备数据输出。主机从这条信号线读入数据,从机的数据由这条信号线输出到主机,即在这条线上数据的方向为从机到主机。
MOSI 主设备数据输出,从设备数据输入。主机的数据从这条信号线输出,从机由这条信号线读入主机发送的数据,即这条线上数据的方向为主机到从机
SCLK 时钟信号,由主设备产生,决定了通讯的速率,不同的设备支持的最高时钟频率不一样,如 STM32 的 SPI 时钟频率最大为f pclk /2,两个设备之间通讯时,通讯速率受限于低速设备。
CS 从设备片选信号,由主设备控制。当有多个从设备的时候,因为每个从设备上都有一个片选引脚接入到主设备机中,当我们的主设备和某个从设备通信时将需要将从设备对应的片选引脚电平拉低或者是拉高。
SPI采用同步方式传输数据,Master 设备会根据将要交换的数据来产生相应的时钟脉冲(Clock Pulse), 时钟脉冲组成了时钟信号(Clock Signal) , 时钟信号通过时钟极性 (CPOL) 和 时钟相位 (CPHA) 控制着两个 SPI 设备间何时数据交换以及何时对接收到的数据进行采样, 来保证数据在两个设备之间是同步传输的。注意:当没有数据交流时,时钟线要么保持高电平要么保持低电平,SPI 主模块和与之通信的外设备时钟相位和极性应该一致
SPI通信有4种不同的模式:
Mode0:CPOL=0,CPHA=0(空闲状态为低电平,上升沿采样)
Mode1:CPOL=0,CPHA=1(空闲状态为低电平,下降沿采样)
Mode2:CPOL=1,CPHA=0(空闲状态为高电平,下降沿采样)
Mode3:CPOL=1,CPHA=1(空闲状态为高电平,上升沿采样)
CPOL时钟极性,表示 SPI 在空闲时,时钟信号是高电平还是低电平。CPHA是用来配置数据采样是在第几个边沿

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值