SPI总线的初步认识



今天在做项目时开始接触到了SPI的总线,遇到了一些问题所以查了很多资料,最重要的是弄清楚SPI总线的四条通信线,在画原理图的时候不能接错。由于之前接触过iic总线,所以在看一些资料的时候还是比较轻松的,下面是今天找到的一份资料

SPI总线

SPI是摩托罗拉公司定义的一种串行外围设备接口。SPI总线主要应用于EEPROM、FLASH、实时时钟、AD转换器、还有数字信号处理器和数字信号解码器之间。SPI是一种高速的、全双工的同步通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便。


SPI一般使用4条线通信 
1、 MISO ————— 主设备数据输入、从设备数据输出 
2、 MOSI ————— 主设备数据输出、从设备数据输入 
3、 SCLK ————— 时钟信号、由主设备产生 
4、 NSS(CS) ————– 从设备片选信号,由主设备控制


通信方式

SPI是单主设备通信协议,这意味着总线中只有一个中心设备能发起通信,当SPI主设备想读/写从设备时,它要拉低从设备对应的CS线(CS是低电平有效的)。主机和从机都有一个串行移位寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输。寄存器通过MOSI信号线将字节传送给从机,实现“写”的功能。从机也将自己的移位寄存器中的内容通过MISO信号线返回给主机,实现“读”的功能。这样,两个移位寄存器中的内容就被交换,外设的写操作和读操作是同步完成的。如果只进行写操作,主机只需忽略接收到的字节;反之。若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。


SPI有四种操作模式,模式0、模式1、模式2、模式3。它们的区别是定义了在时钟脉冲的哪条边沿转换输出信号,哪条边沿采样输入信号,还有时钟脉冲的稳定电平值(就是时钟信号无效时是高还是低)。每种模式都由参数时钟极CPOL和时钟期CPHA刻画。


SPI的主从设备必须使用想用的工作参数,SLCK,CPOL,CPHA,才能正常工作,如果有多个从设备,并且它使用了不同的工作参数,那么主设备必须在读写不同从设备间重新配置这些参数。


硬件SPI和软件模拟SPI的区别有哪些?

硬件SPI的效率要比软件模拟SPI高,写程序的时候只要把要发的数据写在寄存器里,硬件就会自动给你发了,软件模拟SPI则需要器实现时钟的拉高拉低,数据串行输出等等。硬件SPI必须要处理器支持才可以用,软件SPI就不需要特定的要求了,一般IO口就可用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值