首页 > 新闻资讯 > 新闻详情

嵌入式SPI通信接口协议模式规范_时序图_工作原理

IC先生 IC先生 935 2023-02-21 16:04:52

通信在嵌入式系统设计中起着至关重要的作用,如果没有相关通信协议的话,外设扩展复杂度将会非常高,功耗大。一般情况下,嵌入式系统与外设通信基本都是采用串口通信。

目前串行通信协议有很多,例如UART、CAN、USB、I2C和SPI通信。串行通信协议的特点包括高速和低数据丢失,它使系统级设计更容易,并确保可靠的数据传输。在本文中,小编就比较常见的嵌入式SPI通信协议进行简单的介绍。

串行数据通信的定义

电编码信息称为串行数据,它通过一组协议逐位从一个设备传输到另一个设备。在嵌入式系统中,控制传感器和执行器的数据被接收或传输到微控制器等控制器设备,以便对数据进行进一步分析和处理。

当微控制器处理数字数据时,来自模拟传感器、执行器和其它外围设备的信息在传输到微控制器之前被转换为一个字节(8 位)二进制字,其原理图如下所示:

串行数据通信

该串行数据是根据某个时钟脉冲传输的,数据传输速率称为波特率,每秒可以传输的数据位数称为波特率。假设数据为12字节,则每个字节转换为8bits,这样数据传输的总大小约为96bits/sec数据(12bytes*8bits/byte)。如果每秒可以传输一次数据,则波特率约为96位/秒或96波特。它代表显示屏每秒刷新一次数据值。

SPI通信协议

SPI通信全称是串行外设接口通信((Serial Peripheral Interface)协议,由摩托罗拉公司于1972年开发。SPI接口可用于流行的通信控制器,如PIC、AVR、ARM控制器等。它具有同步串行通信数据链路,运行于全双工,这意味着数据信号同时在两个方向上进行。

SPI协议由MISO、MOSI、CLK、SS等四根线组成,用于主/从通信。主机是微控制器,从机是其它外围设备,如传感器、GSM调制解调器和GPS调制解调器等,其中多个从机通过SPI串行总线连接到主机。SPI协议不支持多主机到主机通信,它主要用于电路板内的短距离通信。

SPI通信协议

  • MISO(Master in Slave out):MISO线被配置为主设备的输入和从设备的输出。
  • MOSI(Master out Slave in):MOSI是配置为主设备输出和从设备输入的线路,用于同步数据移动。
  • SCK(serial clock):此信号始终由主机驱动,用于主机和从机之间的同步数据传输,它用于同步通过MOSI和MISO线传入和传出的数据移动。
  • SS(Slave Select)和 CS(Chip Select):该信号由主机驱动以选择各个从机/外围设备,它是用于选择从设备的输入线。

使用SPI串行总线的主从通信

1、SPI实现单主单从

在这里,通信始终由主站发起。主设备首先配置小于或等于从设备支持的最大频率的时钟频率。然后,主设备通过拖动该特定从设备的芯片选择线 (SS) 进入低状态和活动状态来选择所需的从设备进行通信。主机将信息生成到MOSI线上,该MOSI线将数据从主机传输到从机。

SPI实现单主单从

2、SPI实现单主多从

这是一个多从机配置,通过SPI串行总线具有一个主机和多个从机。多个从设备通过SPI串行总线与主设备并联。在这里,所有的时钟线和数据线都连接在一起,但是每个从设备的片选引脚必须连接到主控设备上一个单独的从选择引脚。

单主多从

在这个过程中,每个从设备的控制都是通过片选线(SS)来完成的。芯片选择引脚变为低电平以激活从属设备,变为高电平以禁用从属设备。

数据传输是通过使用主设备和从设备上的移位寄存器来组织的,给定的字大小分别约为8位和16位。两个设备都以环形连接,以便主站移位寄存器值通过MOSI线传输,然后从站移位其移位寄存器中的数据。数据通常首先移出MSB,然后将新的LSB移入同一寄存器。

主从之间的数据传输

时钟极性和相位的意义

通常情况下,数据的发送和接收是在上升沿和下降沿相对于时钟脉冲进行的。高级微控制器有两种频率:内部频率和外部频率。可以通过共享MISO、MOSI和SCLK线来添加SPI外设。外围设备有不同类型或速度,如ADC、DAC等。因此需要更改传输到不同外围设备之间的SPCR设置。

SPCR寄存器

SPI总线以4种不同的传输模式之一运行,时钟极性 (CPOL) 和时钟相位 (CPHA) 定义了要使用的时钟格式。时钟极性和相位时钟速率取决于你尝试与主机通信的外围设备。

  1. CPHA=0,CPOL=0:第一位开始为低信号——数据在上升沿采样,数据在下降沿变化。
  2. CPHA=0,CPOL=1:第一位以较低的时钟开始——数据在下降沿采样,数据在上升沿变化。
  3. CPHA=1,CPOL=0:第一位以较高时钟开始——数据在下降沿采样,数据在上升沿变化。
  4. CPHA=1,CPOL=1:第一位以较高时钟开始——数据在上升沿采样,数据在下降沿变化。

SPI总线时序图

SPI通讯协议

许多微控制器都有内置的SPI协议来处理所有发送和接收数据,任何数据模式操作 (R/W) 都由SPI协议的控制和状态寄存器控制。其中,可以通过SPI协议观察EEPROM与PIC16F877A微控制器的接口。

在这里,25LC1024 EEROM是一个131072字节的存储器,其中微控制器通过SPI串行总线将两个字节的数据传输到EEROM存储器。下面给出了该接口的程序:

通过SPI串行总线进行主从通信

#include<pic16f877x.h>
Sbit SS=RC^2;
Sbit SCK=RC^3;
Sbit SDI=RC^4;
Sbit SDO=RC^5;
Void initialize EEROM();
Void main()
{
SSPSPAT=0x00;
SSPCON=0x31;
SMP=0;
SCK=0;
SDO=0;
SS=1;
EE_adress=0x00;
SPI_write( 0x80);
SPI_write(1234);
SS=0;
}

SPI协议的优点

SPI协议是一种同步串行通信协议,用于在数字电路之间传输数据。SPI协议的优点包括:

  1. 高速传输:SPI协议支持全双工传输,可以同时进行数据的发送和接收,因此传输速度很快,通常可以达到几十MHz的速度。

  2. 简单易用:SPI协议的信号线少,只需要四根(时钟线、主设备输出线、从设备输出线和数据线),使得它很容易实现和集成到系统中。

  3. 可靠性高:SPI协议使用同步时钟,数据传输的时序确定,因此具有较高的可靠性。此外,SPI协议也支持数据校验功能,可以提高数据传输的可靠性。

  4. 灵活性强:SPI协议支持多主设备、多从设备的连接,可以灵活的组建网络拓扑结构。

  5. 节省功耗:SPI协议通信时只需要在需要通信的时候拉低片选信号,其他时间可以让从设备处于休眠状态,从而节省功耗。

总结

SPI串行外设接口是一种通信协议,通常用于在数字电路之间传输数据。SPI协议通常用于连接微控制器、传感器、存储设备等外设。它具有高速传输、简单、灵活等特点,但需要主设备对从设备进行时序控制。

推荐商品
AD8605ARTZ-REEL7
库存:3000
¥ 23.73
C2012X7R1H105KT000N
库存:0
¥ 0.27664
UMK316BBJ106KL-T
库存:8000
¥ 0.198
NCP431AVSNT1G
库存:3000
¥ 1.017
SS14
库存:5
¥ 0.02427
版权声明: 部分文章信息来源于网络以及网友投稿,本网站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性,如本站文章和转稿涉及版权等问题,请作者及时联系本站,我们会尽快处理。
标题:

嵌入式SPI通信接口协议模式规范_时序图_工作原理


网址: https://www.mrchip.cn/newsDetail/1833
文章标签: 协议
0 购物车
0 消息