串行通信协议I2C、SPI、UART

终端和其他终端或者外设通信的方式:串行通信和并行通信

串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。

其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。

并行通信时数据的各个位同时传送,可以字或字节为单位并行进行。

并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。计算机或PLC各种内部总线就是以并行方式传送数据的。

常用的串行通信协议:

SPI(Serial Peripheral Interface:串行外设接口);可以实现全双工

SPI总线由三条信号线组成(多个从设备时候需要有设备选择先SS):串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现 多个SPI设备互相连接。

提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。

根据时钟相位和时钟极性有四种通信模式(定义高低电平忙碌、   在奇数或者偶数边沿采样)

起始信号:由SS线发出高→低

停止信号:由SS线发出低→高

数据传输:SPI使用MOSI及MISO信号线来传输数据,使用SCK信号线进行数据同步。 MOSI及MISO数据线在SCK的每个时钟周期传输一位数据,且数据输入输出是同时进行的。

SPI每次数据传输可以8 位或 16 位为单位,每次传输的单位数不受限制。

I2C(INTER IC BUS);半双工

I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准

2根线:scl:时钟线\sda:数据线

3.种信号
起始信号:scl为高电平,sda从高到低的跳变
停止信号:scl为高电平,sda从低到高的跳变
应答信号:在第9个时钟周时,sda总线上的低电平
2种时序
写:
start+7位从机地址 0(写)+ack+8位reg+ack+8位 data+ack+stop
读:
start+7位从机地址 +(写)+ack+8位reg+ack+
start+7位从机地址 +(读)+ack+8位data+NO ack+stop

scl为高电平的时候,sda电平变化,表示start stop。
sda电平不变化,数据保持稳定,并发送数据。
scl为低电平的时候,sda电平变化,表示数据改变

UART(Universal Asynchronous Receiver Transmitter:通用异步收发器);全双工

UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,

一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线(RX  TX),一根用于发送,一根用于接收。

1个起始位,8个数据位(可选),1个奇/偶校验位(可选),1个结束位(校准时钟作用)、空闲位

原文地址:https://www.cnblogs.com/huiji12321/p/11722087.html

时间: 2024-08-24 20:22:02

串行通信协议I2C、SPI、UART的相关文章

常用协议(SPI, UART, I2C)

SPI: SPI是全双工的同步串行接口,数据速率可达几Mbps,在一般应用中有4根信号线:MOSI, MISO, SCK, SS. 根据时钟极性(CPOL)及相位(CPHA)不同可以组合成4种工作模式 CPOL=0:时钟空闲状态为低电平. CPOL=1:时钟空闲状态为高电平. CPHA=0:在时钟的第一个跳变沿进行数据采样. CPHA=1:在时钟的第二个跳变沿进行数据采样.

常见的串行通信协议

1.UART UART是通用异步收发传输器,使用RxD和TxD两根线实现异步全双工通信:为确保通信可靠,可以在通信两边接共地:因此,完整的UART通信只需最少3根线即可. RxD是发送数据线,TxD是接收数据线,通信双方使用交叉互联,RxD接对方TxD,TxD接对方RxD.UART使用标准的TTL/CMOS电平(0~5V,0~3.3V,0~2.5V,0~1.8V)来表示数据,高电平表示1,低电平表示0.为了增强抗干扰能力,提高传输长度,可将TTL/CMOS 电平转换为RS232电平逻辑电平,3~

SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)

SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) 第二,区别在电气信号线上: SPI总线由三条信号线组成:串行时钟(SCLK).串行数据输出(SDO).串行数据输入(SDI).SPI总线可以实现多个SPI设备互相连接.提供SPI串行时钟的SPI

SPI、I2C、UART、I2S、GPIO、SDIO、CAN

总线,总线,总要陷进里面.这世界上的信号都一样,但是总线却成千上万,让人头疼. 总的来说,总线有三种:内部总线.系统总线和外部总线.内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连:而系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连:外部总线则是微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连. 除了总线外,还有一些接口,它们是多种总线的集合体,或者说来者不拒. SPI (Serial Peripheral

嵌入式通讯开发 SPI,UART,I2C都有什么区别

SPI,UART,I2C都有什么区别,及其各自的特点 区别:SPI:高速同步串行口.3-4线接口,收发独立.可同步进行 UART:通用异步串行口.按照标准波特率完成双向通讯,速度慢 I2C:一种串行传输方式,三线制,网上可找到其通信协议和用法的 3根线实现数据双向传输 串行外围接口 Serial peripheral interface UART:通用异步收发器 UART是用于控制计算机与串行设备的芯片.有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它

驱动之SPI,UART,I2C的介绍与应用20170118

这篇文章主要介绍基本的驱动也是用的最多的协议类驱动中的SPI,I2C和UART.首先从最简单的UART也就是串口讲起: 1.UART UART由两根线也就是TX,RX以及波特率产生器组成,操作比较简单,配置好后,就可以发送接收数据了,注意有的MCU需要接收数据时清除某些标记.如: 2.SPI SPI一般有三根线组成即CLK,MOSI,MISO,数据输入和输出是单独的一根线.一般的操作都是先发控制指令,再发地址,接着才是数据.例: 3.I2C I2C一般由两根线组成,即SDA,SCL,一根时钟线,

SPI,UART,I2C都有什么区别,及其各自的特点

区别: SPI:高速同步串行口.3-4线接口,收发独立.可同步进行 UART:通用异步串行口.按照标准波特率完成双向通讯,速度慢 I2C:一种串行传输方式,三线制,网上可找到其通信协议和用法的 3根线实现数据双向传输 串行外围接口 Serial peripheral interface UART:通用异步收发器 UART是用于控制计算机与串行设备的芯片.有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了.作为接口的一

MicroBlaze核的串行接口实验:SPI UART

reference : https://blog.csdn.net/weixin_42413559/article/details/80720566 串行接口:SPI UART XPS->SDK(Platform)->新建BSP->新建appproject 问题1:在创建工程的时候没有像书上那样,添加了RS232接口,那么在prots中添加UART端口可以吗? 经过试验,在创建工程的时候和在创建完成之后添加RS232都可以用来烧写程序的 错误1:在导出到SDK的时候,导出失败 不能解决的

SPI、I2C和UART

一.SPISPI(Serial Peripheral Interface,串行外设接口)是Motorola公司提出的一种同步串行数据传输标准,在很多器件中被广泛应用. 接口SPI接口经常被称为4线串行总线,以主/从方式工作,数据传输过程由主机初始化.如图1所示,其使用的4条信号线分别为:1) SCLK:串行时钟,用来同步数据传输,由主机输出:2) MOSI:主机输出从机输入数据线,通常先传输MSB:3) MISO:主机输入从机输出数据线,通常先传输LSB:4) SS:片选线,低电平有效,由主机输