浅谈SPI总线
来源:互联网 发布:linux下awk 编辑:程序博客网 时间:2024/06/16 23:52
SPI总线概述
SPI全称是串行外设接口(SerialPeripheral Interface),是由Motorola提出的一种全双工同步串行通信接口,通信波特率可以高达5Mbps,但具体速度大小取决于SPI硬件。SPI接口具有全双工操作,操作简单,数据传输速率较高的优点,但也存在没有指定的流控制,没有应答机制确认是否接收到数据的缺点。
SPI总线的构成及信号类型
SPI总线只需四条线(如图1所示)就可以完成MCU与各种外围器件的通讯:
1)MOSI – Master数据输出,Slave数据输入
2)MISO – Master数据输入,Slave数据输出
3)SCK –时钟信号,由Master产生
4)/CS – Slave使能信号,由Master控制。
图1
SPI通信采用主从模式(Master-Slave)架构,一般为一个Master和多个Slave的应用模式。SPI总线构成如图2所示。
图2
SPI总线操作时序
SPI接口在Master控制下产生的从器件使能信号和时钟信号,两个双向移位寄存器按位传输进行数据交换,传输数据高位在前,低位在后(MSB first)。如图3所示,在SCK的下降沿上数据改变,上升沿一位数据被存入移位寄存器。
图3
在一个SPI时钟周期内,会完成如下操作:
1) Master通过MOSI线发送1位数据,同时Slave通过MOSI线读取这1位数据
2) Slave通过MISO线发送1位数据,同时Master通过MISO线读取这1位数据
Master和Slave各有一个移位寄存器,如图4所示,而且这两个移位寄存器连接成环状。依照SCK的变化,数据以MSB first的方式依次移出Master寄存器和Slave寄存器,并且依次移入Slave寄存器和Master寄存器。当寄存器中的内容全部移出时,相当于完成了两个寄存器内容的交换。
图4
另外,SPI有四种工作模式,通过设置时钟空闲时为高或者低的状态,以及数据是在时钟的上升沿或下降沿锁存可将SPI配置成相应的工作模式。
SPI总线注意点
1) Master配置SPI接口时钟的时候一定要考虑从设备的操作时序要求,因为Master这边的时钟极性和相位都是以Slave为基准的。因此在时钟极性的配置上一定要确定Slave是在SCK的下降沿还是上升沿输出数据,是在SCK的上升沿还是下降沿接收数据。
2) 当Slave时钟频率小于Master时钟频率时,如果Master的SCK的速率太快,会出现Slave接收到的数据不正确,而SPI接口又没有应答机制确认Slave是否接收到数据从而导致通信传输数据错误。
- 浅谈SPI总线
- 浅谈SPI总线
- 浅谈SPI总线
- 浅谈SPI总线
- 浅谈 SPI 总线协议
- (转)浅谈SPI总线
- SPI总线
- SPI总线
- SPI总线
- spi总线
- SPI总线
- SPI总线
- SPI总线
- SPI总线
- SPI总线
- SPI总线
- spi总线
- SPI总线
- linux函数之sockaddr_in结构
- 关于滤波电容、去耦电容、旁路电容作用
- ORA-01219问题解决办法;ora-01031:insufficient privileges问题解决办法
- 高德开放平台开放源代码 鼓励开发者创新
- Doing Homework again - HDU 1789 背包dp
- 浅谈SPI总线
- backbone 学习
- Android.mk和Application.mk文件语法规范说明及举例
- 写给程序员:当自己的上帝
- PyCharm 使用简介
- C++Primer学习-类(隐含的this指针)
- 程序员的复仇方式
- 自定义控件让TextView的drawableLeft与文本一起居中显示
- 新手配置服务器需要注意些什么?