通信教程的04_SPI接口说明及原理

本教程由作者strongerhuang于2019年09月原创发布。
标签:串口、 spi、 通信
版权所有:禁止商用
申明:该文档仅供个人学习使用,转载请公众号联系作者授权。
1写在前面
spi:serial peripheral interface,是串行外设接口。
spi是由摩托罗拉于 1985 年前后开发,是一种适用于短距离、设备到设备通信的同步串行接口。
从那时起,这种接口就已成为许多半导体制造商,特别是微控制器(mcu)和微处理器(mpu)采用的事实标准。
2spi接口
spi总线是一种4线总线,通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以。
mosi:master output slave input,主设备数据输出,从设备数据输入;
miso:master input slave output,主设备数据输入,从设备数据输出;
sclk:serial clock,时钟信号,由主设备产生;
ss:slave select,从设备选择信号,由主设备控制;
上面的ss信号,也可以理解为cs信号,一般是低电平有效,所以也是nss(非)信号;
cs:chip select,片选信号(从设备使能/选择信号),由主设备控制;
2.1 一主一从
最基本的spi通信就是一主一从,比如:一个stm32作为主机,一个w25q16(spi flash)作为从机。还有两个mcu之间进行spi通信等。
上图例子是主机发送一个字节数据(0x53),从机应答一个字节数据(0x46)。
2.2 一主多从
spi可以一主一从(一个主机,一个从机),但也可以一主多从。一主多从常见有两种连接方式。
a.常规
通常,每个从机都需要一条单独的ss线,要与指定的从机通信,将该从机的ss线设为低电平,并将其余的保持为高电平即可。
b.一条ss信号
某些应用只需要一条nss即可(比如:移位寄存器),对于这种布局,数据从一个从设备移位到另一个从设备。
3spi数据传输
spi的通信比较简单,一个时钟传输一位数据(主机 -> 从机,或者从机 -> 主机)。
3.1 spi时钟
理论上spi的时钟频率可以做到很大,一般几mhz~几百mhz,拿常见的w25q16来说,spi最高支持80mhz。
spi通信速率要结合实际情况,不能超过主机或从机支持的最大时钟频率。
3.2 spi数据
spi的数据分两个方向:
mosi:主机 -> 从机
miso:从机 -> 主机
spi通信有一个“缺点”:没有指定的流控制,没有应答机制确认是否接收到数据。
可以理解为:不知道是什么时候主机发给从机,什么时候从机发给主机,到底该发多少字节数据等。
此时,需要通信的主机和从机达成约定,一般由主机进行控制读写的操作。
比如下面这个读写spi flash数据的操作:
前面1字节是指令,紧接着再3字节(24位)地址,都是由主机发送给从机。之后,主机读取数据(由从机发送出来)。
3.3 时钟极性和相位
除了设置时钟频率外,主机还必须配置与数据有关的时钟极性和相位。
cpol确定时钟的极性,极性可以通过简单的逆变器进行转换。
cpha确定相对于时钟脉冲的数据位的时序(即相位)。
一般集成有spi外设的处理器,都有spi相关的配置寄存器,拿stm32来说,参考手册里面有详细介绍spi配置的信息。
建议大家结合时序图理解,不能死记硬背。
5
说明
1.该文档仅供个人学习使用,版权所有,禁止商用。
2.本文由我一个人编辑并整理,难免存在一些错误。
3.本文收录于公众号『嵌入式专栏』,关注微信公众号回复【通信教程】即可查看全系列教程。
6最后

影驰snpr外置显卡盒评测 台式机的替代品
都是超续航!魅蓝note5和荣耀8青春版,你怎么选?
PTV VISSIM软件在自动驾驶中的应用介绍
iPhone13起售价为5999元 iPhone13价格表
手机流行全面屏,大陆面板厂加大投资AMOLED面板
通信教程的04_SPI接口说明及原理
工程图中标注序号的LISP程序
魅族PRO6Plus和vivoX9Plus哪个好
语音控制晾衣架,解放双手让生活更简单
单个复杂路口的PLC软硬件设计
这些年来,我们的数据科学究竟发生了什么变化?
单片机可以识别模拟信号么?单片机接收的是什么信号?
我国制造业核心技术需不断突破,才是强国之本
坐高铁带多大的充电宝好,安全带上高铁的充电宝推荐
四款炫酷Linux开源程序照亮你的生活!
基于随机分区的超快并行DBSCAN算法介绍
集成化的Speaker Box设计
华为watch3功能介绍 华为watch3使用教程
如何从PC机RS-232串口获取电源的简单方法详细说明
思科发布WiFi6路由器 云服务和硬件市场竞争激烈