论坛风格切换切换到宽版
发帖 回复
返回列表  提醒:不能用迅雷等P2P下载,否则下载失败标(二级)的板块,需二级才能下载,没二级不要购买,下载不了
  • 597阅读
  • 8回复

SPI协议解析 [复制链接]

上一主题 下一主题
离线17521090252
 

性别:
帅哥
发帖
9
金币
8
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看楼主 倒序阅读 使用道具 0楼 发表于: 2020-03-05
1、什么是SPI? S |>$0P4W(  
SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一 NRisr  
种同步串行接口技术,是一种高速的,全双工,同步的通信总线。
| ",[C3Jg  
2、SPI优点 R:<@+z^A[  
支持全双工通信 p{q!jm~Nq  
通信简单 YM`pNtQ  
数据传输速率块 @b\ S.  
3、缺点 1G%PXrEj8  
没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据 P0e""9JOo  
可靠性上有一定的缺陷。 _AYC|R|  
4、特点 eJw="  
1):高速、同步、全双工、非差分、总线式 _i[)$EgFm  
2):主从机通信模式 GWhAjL/N  
5、协议通信时序详解 `QdQ?9x{F  
1):SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多 _1<'"u#6w  
个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共 xwnoZ&h  
有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。 Pzp+I}  
  (1)SDO/MOSI – 主设备数据输出,从设备数据输入; RR!!hY3 K  
  (2)SDI/MISO – 主设备数据输入,从设备数据输出; d-;9L56{P  
  (3)SCLK – 时钟信号,由主设备产生; x$GsDV  
  (4)CS/SS – 从设备使能信号,由主设备控制。当有多个从设备的时候,因为每个从设 rA1r#ksQ  
    备上都有一个片选引脚接入到主设备机中,当我们的主设备和某个从设备通信时将需 ^ Wfgwmh  
   要将从设备对应的片选引脚电平拉低或者是拉高。 qmA2bw]  
8A^jD(|  
2):需要说明的是,我们SPI通信有4种不同的模式,不同的从设备可能在出厂是就是配 vM7vf6  
置为某种模式,这是不能改变的;但我们的通信双方必须是工作在同一模式下,所以我们 ncattp   
可以对我们的主设备的SPI模式进行配置,通过CPOL(时钟极性)和CPHA(时钟相位)来 }l( m5  
控制我们主设备的通信模式,具体如下: u:$x6/t  
Mode0:CPOL=0,CPHA=0 ; ,=h59`  
Mode1:CPOL=0,CPHA=1 Tz[?gF.Do  
Mode2:CPOL=1,CPHA=0 xs'kO=  
Mode3:CPOL=1,CPHA=1 {kPe#n>xT  
时钟极性CPOL是用来配置SCLK的电平出于哪种状态时是空闲态或者有效态,时钟相位CPHA #)0Tt>d6  
是用来配置数据采样是在第几个边沿: D!}K)T1~R  
CPOL=0,表示当SCLK=0时处于空闲态,所以有效状态就是SCLK处于高电平时 o}MzqKfu  
CPOL=1,表示当SCLK=1时处于空闲态,所以有效状态就是SCLK处于低电平时 oU0 h3  
CPHA=0,表示数据采样是在第1个边沿,数据发送在第2个边沿 Pc)VK>.fc  
CPHA=1,表示数据采样是在第2个边沿,数据发送在第1个边沿 $iqi:vY  
例如: N3gNOq&  
CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是 P$18Xno{  
SCLK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。 d)0LVa(  
CPOL=0,CPHA=1:此时空闲态时,SCLK处于低电平,数据发送是在第1个边沿,也就是 ^'&iYV  
SCLK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。 zD2.Q%`IM  
CPOL=1,CPHA=0:此时空闲态时,SCLK处于高电平,数据采集是在第1个边沿,也就是 ')5L_$  
SCLK由高电平到低电平的跳变,所以数据采集是在下降沿,数据发送是在上升沿。 h zZ-$IX X  
CPOL=1,CPHA=1:此时空闲态时,SCLK处于高电平,数据发送是在第1个边沿,也就是 jefNiEE[  
SCLK由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。 iog # ,  
       4e@&QOo`Cu  
需要注意的是:我们的主设备能够控制时钟,因为我们的SPI通信并不像UART或者IIC通信 =0h|yjnL/  
那样有专门的通信周期,有专门的通信起始信号,有专门的通信结束信号;所以我们的 Er"R;l]xJ  
SPI协议能够通过控制时钟信号线,当没有数据交流的时候我们的时钟线要么是 (@ fa~?v>@  
保持高电平要么是保持低电平。 lMBX!9z  
6、内部工作机制 1t~FW-:  
g={]Mzh  
 SSPSR 是 SPI 设备内部的移位寄存器(Shift Register). 它的主要作用是根据 SPI 19F ;oFp  
时钟信号状态, 往 SSPBUF 里移入或者移出数据, 每次移动的数据大小由 Bus-Width 以 OG`|td  
及 Channel-Width 所决定.


评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

一般

差劲
离线cmyldd

性别:
人妖
发帖
487
金币
533
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 1楼 发表于: 2020-03-05


在线yfchen1003

性别:
帅哥
发帖
7057
金币
23558
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 2楼 发表于: 2020-03-05
谢谢分享!!!


在线lqsgg

性别:
人妖
发帖
10252
金币
19134
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 3楼 发表于: 2020-03-05
  


在线tclin08

性别:
帅哥
发帖
244
金币
937
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 4楼 发表于: 2020-03-05


离线ky175

性别:
人妖
发帖
6228
金币
1475
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 5楼 发表于: 2020-03-06
    


离线wangy2000

性别:
人妖
发帖
6747
金币
283
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 6楼 发表于: 2020-03-06
收藏 谢谢分享


离线小鑫鑫

性别:
人妖
发帖
5423
金币
13774
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 7楼 发表于: 2020-03-06


离线qq-fleet

性别:
人妖
发帖
260
金币
514
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 8楼 发表于: 2020-03-06
    


快速回复
限150 字节
 
上一个 下一个