一、通信方式

1.1 常用通信方式

        串行:1-2根数据线,发送接收数据是按照顺序一位一位传输,成本低,适合远距离通信

        并行:二进制数据有多少位就有多少根数据线,适合近距离传输数据

1.2 串行通信种类

        串行又分为同步通信与异步通信:判断标准为有无时钟线,同步通信有时钟线。

        同步通信:数据帧格式:起始位+数据位+校验位+停止位,时钟线控制传输速率

        异步通信:数据帧格式:同步字符+数据流,波特率控制传输速率0

        单工:在数据传输上,只支持单方向的传输,只能接收或发送

        半双工:支持双方向传输,但同一时刻只能接收或发送

        全双工:支持双方向传输,在同一时间段即可以发送也可以接收

        例:USART——全/半双工——异步串行通信——传输距离15米左右

二、SPI通信

        SPI通信协议是一种高速、全/半双工、同步的通信总线

2.1 SPI通信接口

四线制:MOSI(DO):master output slave input 主器件数据输出,从器件数据输入

              MISO(DIO):主器件数据输入,从器件数据输出

        NSS(CS):片选。从器件使能信号,由主器件控制(片选管脚是一个普通的IO口)。                    

             SCLK/CLK/SCL/SLK:时钟线,产生数据所需的脉冲信号,控制速度(主器件产生)

三线制:MISO:双向数据线(可以接收可以发送)

              NSS(CS):片选。从器件使能信号,由主器件控制(片选管脚是一个普通的IO口)。

              SCLK/CLK/SCL/SLK:时钟线,产生数据所需的3脉冲信号,控制速度(主器件产生)

2.2 SPI通信物理拓扑

MPLS 帧格式 spi帧格式_单片机

2.3 SPI通信原理

       (1)、NSS控制从器件是否被选中,当片选信号为规定的信号时,对从器件的操作才有效

       (2)、MISO或MOSI根据时钟线发出的脉冲信号完成数据的传输

时钟的上升沿或者下降沿改变数据,在紧接着的下降沿或者上升沿时被读取。

(4)、SPI通信协议是一个数据交换协议,主器件给从器件一个位的数据,从器件必定会返回一个位的,数据。(写操作时,主器件发送需要写入的数据,从器件必定会返回一个随机值;读操作时,主器件发送一个随机值,从器件返回需要读取的数据)

2.4 SPI通信数据传输方式

        SPI通信一共有4种传输方式,根据时钟极性和时钟相位的选择不同而不同

时钟极性(CPOL):时钟极性决定了SPI通信在空闲状态时,时钟线的电平状态

(1)CPOL = 0,SCLK时钟线在空闲状态下为低电平

(2)CPOL = 1,SCLK时钟线在空闲状态下为高电平

时钟相位(CPHA):时钟相位决定了数据线上第一个数据被采集的时钟。

(1)CPHA = 0,MOSI或者MISO数据线上的数据会在SCLK时钟线的“奇数边沿”被采集

(2)CPHA = 1,MOSI或者MISO数据线上的数据会在SCLK时钟线的“偶数边沿”被采集

SPI传输模式

时钟极性(CPOL)

时钟相位(CPHA)

时钟空闲状态


数据采集时刻

0

0

0

低电平

时钟奇数边沿采集

1

0

1

低电平

时钟偶数边沿采集

2

1

0

高电平

时钟奇数边沿采集

3

1

1

高电平

时钟偶数边沿采集