成都オートメーション開発:SPIインタフェース通信プロトコルディスカッション

カモメ - 成都

SPIは何1
SPIシリアル・ペリフェラル・インターフェースは略語では、高速、全二重、同期通信プロトコルは、一般にマイクロプロセッサ及び周辺ICとの間の通信手段として使用されます。
SPIは、マスタ-スレーブ通信プロトコルであり、ホストがスレーブ通信をすることができ、それはマルチマスタスレーブ通信であってもよいです。


2 SPIの利点と欠点
SPIインターフェースは通常は4つのピンは、それぞれ、通信することができる必要は、単純で、SCLK、MOSI、MISO、CSは、一方向のみの通信場合、2本のピンのみを最小限とすることができます。

一つの欠点は何も受信したデータ、サポートのみマスタモードなどかどうかを確認するために確認応答、SPIのフロー制御を指定していないがないことです。


SPIそれがどのように動作するか。3つの
サマリー作成方法ワーク文SPI、SPI装置、その駆動時SCLKで受信またはデータ送信、データ送信の目的の立ち上がりエッジまたは立ち下がりエッジ。


操作の3.1 SPIモード
SPIで、4つの動作モードは、クロック位相クロック極性CPOLとCPHAに応じて適宜選択することができました。アイドル状態の間、CPOLビットは、クロック信号の極性に設定されています。アイドル手段CSがハイとローレベルへの遷移時、およびCSの送信期間の終了時に低および高遷移である伝送の開始。CPHAビットは、サンプルおよび/または変位データに立ち上がりエッジまたは立ち下がりクロックを使用して、CPHAビットの状態に応じてクロック位相を選択します。ホストは、クロック極性とクロック位相マシンの要件から動作モードの選択に応じて決定されなければなりません。

 

如图 1为一主机和一从机的连接方式。其中SCLK时钟由主机发出,从机只能跟从主机的控制。MISO为主机的数据输入引脚,SDO为从机的数据输出引脚,在SCLK的控制下,数据一位一位地由从机的SDO引脚传送到主机的MISO引脚。MOSI为主机的输出引脚,SDI为从机的输入引脚,在SCLK的控制下,数据一位一位地由主机传送到从机。CS由主机控制,可以控制选中某一个从机与主机通讯,图 1为一主机一从机方式,其实可以将从机的CS引脚直接接到低电平表示常选中,那么就节省了CS引脚开支。

如图 2为模式0时的工作时序。在此模式下,当主机拉低CS电平时(黑色虚线),与其连接的从机被选中,该从机此时与主机进行通信。
当SCLK上升沿来临时(绿色虚线),主机读取来自从机输出的电平信号。
当SCLK下降沿时(蓝色虚线),主机送出一位数据,从机此时应当采集主机传输过来的信息。
在此时应当注意各个引脚上电平的持续时间,应当符合从机的要求。


3.2 SPI的数据传输

在SPI中,数据的接收和发送其实是同时进行的,只不过分别在一个脉冲的上升沿或(和)下降沿中进行。一般来说,在主机和从机中分别有一个移位寄存器,假如没有硬件的寄存器也可以用程序来虚拟一个移位寄存器。如图 3,当SCLK一个周期脉冲来临的时候,主机从移位寄存器的最高位(也可以设置为最低位)开始依次送出一个位的数据到从机移位寄存器的末尾,同时,从机也向主机发送一位数据到主机的移位寄存器的末尾。图中当SCLK发送8个脉冲之后,主机的移位寄存器和从机的移位寄存器中的数据就完全交换了一次,达到数据传输的目的。
在程序处理中,可以在通讯的过程中按照需求改变两机移位寄存器中的数值,或者选择是否读取对方移位寄存器中的数据。


4 SPI多机通信和编程

4.1一主机与多从机数据交换

(1) 主机与某一从机之间通信
当主机(master)与从机(slave)需要通信时,主机先将目标从机的CS引脚拉低,表示选中该从机,注意某一时刻只能与一个从机通信,也就是只能有一个从机的CS被拉低选中,再按照图 2类似的时序写程序,控制SCLK、MISO、MOSI引脚,读取从机数据或者向从机发送数据。
程序设计流程:

图 5为主机控制从机1在SPI 0模式下的一位数据(二进制0或者1)的收发程序流程。参照图 2,首先拉低从机1的片选信号,主机令SCLK引脚为低电平并保持要求的时间,之后主机令SCLK引脚为高电平,SCLK上升沿来到,此时从机的数据已经输入到主机的MISO引脚,主机将数据读入到一个变量里面。主机接着令MOSI引脚输出指定的电平信号,保持一定时间,再将SCLK引脚拉低,令SCLK产生下降沿,主机输出数据,这样就完成一位数据的收发流程。如果主机要与其他从机通信,只需要将其片选信号拉低,并将其余的片选信号拉高即可。


(2) 从机与从机之间的通信
从机与从机之间是不能进行直接通信的,但是可以这样,从机可以将数据传输到主机,再由主机将数据发送给目标从机,反之类似。控制器、电路板、自动化、软件开发定制,业务Q: 2531-263-726


4.2菊花链模式

菊花链模式避免了过多的CS引脚开支,将上一个设备的输出引脚(如SDO)与下一设备的输入引脚(如SDI)串联起来,数据在SCLK的控制下可以实现从上一个设备到下一个设备的流动循环传输。
谢谢关注,全文完。

おすすめ

転載: www.cnblogs.com/yonkotech/p/12039167.html