您的位置 首页 数字

嵌入式硬件通讯接口协议中的串行通讯接口-SPI

本节继续讲嵌入式硬件通信接口协议中的另外一个串行通信接口-SPI。相比于UART串口协议,SPI又有着其独特之处。简介SPI(全称SerialPeripheral Interface),串

  本节持续讲嵌入式硬件通讯接口协议中的别的一个串行通讯接口-SPI。比较于UART串口协议,SPI又有着其共同之处。

  简介

  SPI(全称SerialPeripheral Interface),串行外设接口。

  SPI是串行外设接口(SerialPeripheral
Interface)的缩写。SPI,是一种高速的,全双工,同步的通讯总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,一起为PCB的布局上节约空间,提供方便,正是出于这种简略易用的特性,现在越来越多的芯片集成了这种通讯协议,比方AT91RM9200。

  –from 百度百科

  该接口由摩托罗拉在20世纪80年代中期开发,并已成为事实规范。

  –from Wiki

  从维基百科查阅的的“事实规范”,在这来科普一下常识盲点:

  事实规范是指非由规范化安排拟定的,而是由处于技能领先地位的企业、企业集团拟定(有的还需职业联盟安排认可,如DVD规范需经DVD论坛认可),由商场实践接纳的技能规范。

  –from 百度百科

  SPI接口界说了一主多从这样的一个通讯架构,在同一SPI总线上只要一个主机,能够有多个从机。这样的架构就约束了通讯的主动权只能在主机端,主机建议一次通讯,从机做出想要。

  信号线

  SPI被称为四线串行总线,其信号线别离有:

  SCLK:串行时钟(主机输出)

  MOSI:主输出从机输入或主机输出从机输入(主机输出的数据)

  MISO:主输入从输出或主输入从输出(从输出的数据输出)

  SS:从机挑选(一般为低电平有用,主机输出)

  信号线命名也是形形色色,以下的命名也是会遇见的:

  串口时钟:

  SCLK:SCK

  主输出—>从输入(MOSI):

  SIMO,MTSR – 对应主设备和从设备上的MOSI,相互衔接

  SDI,DI,DIN,SI – 在从设备上; 衔接到主设备上的MOSI,或衔接到下面的衔接

  SDO,DO,DOUT,SO – 在主设备上; 衔接到从站上的MOSI,或衔接到上面的衔接

  主输入<—从输出(MISO):

  SOMI,MRST – 对应主设备和从设备上的MISO,相互衔接

  SDO,DO,DOUT,SO – 在从设备上; 衔接到主设备上的MISO,或衔接到下面的衔接

  SDI,DI,DIN,SI – 主设备; 衔接到奴隶上的MISO或上面的衔接

  从机挑选:

  SS:SSEL,CS,CE,nSS,/ SS,SS#

  以上简单让人混杂的姓名是SDO、SDI、DOUT、DIN等,这些都需求看详细印在主设备仍是从设备上独自评论。可是一般的仍是尽量写清写规范,这样不简单发生歧义。

  SPI作为同步串行接口,能够认为有两个同步信号,第一个是从机挑选SS信号,奉告被选中的从机,预备开端进行SPI通讯,第二个是同步时钟信号SCLK,收发两边进行数据的交互时,都是依据SCLK的跳变进行逐bit输出和采样的。

  四根信号线并非全部都需求,依据作业形式,能够装备成两线、三线。

  在STM32CubeMX东西的装备页面,能够很清楚看到,装备不同的作业形式时,对应被使能的芯片管脚有何不同:

  

  

  

  比照发现,全双工的四线和三线的区别是从机挑选信号NSS。这种状况一般是由于SPI总线上只要一主一从的通讯架构,从机的NSS信号一直接低电平,不需求做从机挑选。

  信号时序

  四线SPI接口的时序一般的总是先拉低从机挑选信号线SS,然后输出SCLK,带着数据MOSI,此刻MISO为高阻态。大致如下如:

  

  一般有SPI接口的器材,在Spec上都会有对应的时序图,这儿别离截取SPI接口FLASH型号为GD25Q32C、SPI接口OLED型号为QG-2832TLBFG04,这两器材的Spec内关于SPI时序部分的介绍,如下两张截图:

  

  

  比照不难发现,时序图的规范,界说了各个信号线输出电平的次序和时延,还界说了时钟信号跳变沿与数据信号的“对齐”,这儿的“对齐”实践上便是数据的输出和采样。

  相同的,这个时序规范了SPI器材所出现的SPI接口信号线特性,包含:时钟上升、下降沿时长;片选与时钟跳变沿之间的时延;时钟边际与数据线坚持的时长…

  这些时序特性,都在明晰了SPI主机与其通讯时,要求不超出其界说的规模,否则从机器材呼应不及时而导致通讯反常。

  不同的器材,对SPI接口的信号时序要求也会不同。第一张简明的时序图,而依据这样的时序图,SPI接口又能够装备不同的接口装备参数。

  接口装备项

  一般在开发时,接口的可选装备有:接口形式(实践装备的是单、双工形式挑选)、设备主从形式、数据宽度、时钟极性(CPOL:)、时钟相位(CPHA)、时钟速率、数据bit位巨细端挑选。

  接口形式

  规范的四线SPI接口,运用的场景是主从机进行数据交互的通讯,两方都有数据的收发进程,而在LCD/OLED这样的SPI接口作为从设备的器材中,就不需求数据回来给主机,只需求接纳来自主机的操控信息和显现的数据。

  依据这样的运用场景,就能够装备成三线的单工通讯,即仅需求从机挑选SS、时钟SCLK、数据输出MOSI即可。

  设备主从形式

  这个装备一般需求看芯片是否支撑,可将芯片装备成SPI主机或许从机,能更好地集成在项目的体系中。

  数据宽度

  望文生义,便是发送数据能够装备成8bit、16bit等,这也是依据芯片而定。

  时钟极性、时钟相位

  这两者别离是CPOL(Clock Polarity)、CPHA(Clock
Phase),极性便是指凹凸电平,这个界说了SPI总线在闲暇状态下,时钟坚持高电平仍是低电平,由于这个联系到了SPI通讯时第一个时钟跳变沿是上升仍是下降沿;相位指的是时钟的跳变沿,指定了数据信号的输出和采样怎么与时钟对齐。

  这两个装备,在Wiki和百度百科上都做了十分明晰的解说,这儿截图引证如下:

  

  

  时钟速率

  速率挑选界说了时钟信号线在数据传输是的翻转速率,这表现到每个芯片界说的接口时序图中,即可接受的速率规模,假如主机设的速率太快,而从机呼应过慢会导致通讯失利。

  数据bit位巨细端挑选

  数据的发送优先bit可装备,从上篇的UART协议能够知道,UART规则了数据优先发bit0,而这个SPI是可装备优先发送bit的,可设置最低位或许最高位。

  从FLASH型号为GD25Q32和OLED型号为QG-2832TLBFG04的时序截图可看到,这两个器材都是优先发MSB,也便是最高位优先。

  再比照一款字库芯片型号为GT21L16S2W的读取指令:

  

  可见SPI器材遍及选用MSB的发送优先次序。

  总结SPI通讯接口,一主多从的通讯架构,规范形式有四根信号线、依托挑选信号SS开端通讯、时钟信号SCLK进行逐bit输出和采样、可装备的采样时间和可挑选的优先宣布bit。

  参考资料:

  《SPI》@百度百科

  《SPI》@Wiki

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/130415.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部