几种通信方式介绍(二)————总线通信介绍(SPI、I2C、单总线)

一、SPI总线
SPI (Serial Peripheral Interface,串行外围设备接口)是一种全双工同步串行外设接口总线,主要用于MCU与外围设备的串口通信。它由四根线构成:串行时钟线(SCK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)和低电平有效从机选择线(CS)SS。
在这里插入图片描述
/CS:片选信号线,当有多个从SPI设备与主SPI设备相连时,可以通过片选线选择通信的从设备
MOSI:主设备输出/从设备输入线
MISO:主设备输入/从设备输出线
SCK:时钟信号线,由主设备输出时钟信号进行数据同步和通信控制

SPI通信时序:
在这里插入图片描述
图中NSS为片选信号/CS,NSS由高电平变为低电平时为SPI通讯的起始信号,NSS由低电平变为高电平为SPI通讯的停止信号,触发和采样在时钟信号的上升沿还是下降沿主要取决于配置的SPI通讯模式。

SPI四种通讯模式:

SPI模式 时钟极性(CPOL) 时钟相位(CPHA) SCK有效时状态 采样边沿
0 0 0 高电平 第一边沿
1 0 1 高电平 第二边沿
2 1 0 低电平 第一边沿
3 1 1 低电平 第二边沿

如图为CPHA=0,第一边沿采样。当CPOL=0时,高电平为SCK有效状态,在高电平第一个沿(上升沿)采样;当CPOL=1时,低电平为SCK有效状态,在低电平第一个沿(下降沿)采样。当CPHA=1时,第二边沿采样,按照CPHA=0的情况类推。
在这里插入图片描述

1.SPI的数据传输格式一般为高位在前,低位在后,一般情况下只有一个主机,可以有多个从机,当主机通过选择线选中从机时,从机才能通过数据线接收主机数据或向主机发送数据,通过主机的时钟线使主从机保存时钟同步。

2.SPI通信速率一般在10Mbps,有的SPI器件通信速率已达50Mbps,SPI通信速率受主设备时钟频率的限制,一般主设备支持的SCK最高频率为fpclk/2(例如STM32F1默认时钟频率为72MHz,则挂载在高速时钟APB2的SPI外设最高时钟频率可设为36MHz,挂载在低速时钟APB1的SPI外设最高通信速率为18Mbps)。

二、I2C总线
I2C (Inter-Integrated Circuit,内部集成电路)是一种串行总线,主要运用于同一电路板内的器件通信。它只有两根信号线:数据线(SDA)和时钟线(SCL),同时I2C通讯管脚时序可以使用一般IO口进行模拟,能有效减少对IO口资源的占用。I2C协议规定了100K(标准模式),400K(快速模式)和3.4M(高速模式)三种通信速率,一般应用于同一电路板内较低速率的通信。

一般I2C通信接口需要外接上拉电阻,一般取10k,开漏电压输出一般取5V或3.3V,图为典型连接电路。一些I2C器件的供电电压兼容5V和3.3V,也有一些器件限制在3.3V以内,需要仔细查看数据手册,避免器件损坏。
在这里插入图片描述
SDA:双向串行数据线,
SCL:串行时钟线,用于数据收发同步
一个IIC通讯总线可以接入多个IIC设备,支持多主机和多从机通讯。每个连接到总线上的IIC设备都有一个独立的地址,主机通过对从机寻址与从机建立通讯,总线上挂载相同从机设备的个数受相同从机寻址地址的限制。具体应用可查看:几种数字传感器介绍(一)————温湿度传感器(HDC1080)

三、单总线
单总线(1-Wire)是串行拓展总线,只有一根数据输入输出线,所有的器件都挂在这根总线上,典型应用是DS18S20数字温度传感器的数据读取。单总线具体可参看:单总线原理
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_51294753/article/details/120000088
今日推荐