IIC、SPI、UART、USART、USB、CAN等通讯协议原理及区别

(1)IIC   (PHILIPS公司开发)

Inter-Integrated Circuit ,它为两线式串行总线(SDA数据线、SCL时钟线),用于连接微控制器和外围设备、传输速度100-400kHz=400kbps(48.8KB/s),高速模式最高可达4MHz(488KB/s),非全双工

注意KB和kbps的区别:

KB代表K个字节

kbps代表k个位每秒。

传送过程中有三种类型的信号:开始、结束、应答信号

图参考:【1】IIC总线工作原理https://blog.csdn.net/yyyljw/article/details/70800916

1.1开始发送信号和结束发送信号时SDA和SCL电平的转换:

IIC、SPI、UART、USART、USB、CAN等通讯协议原理及区别_第1张图片

1.2主机向从机发送信号,等待从机应答,应答为低电平、非应答为高电平,在第9个时钟周期完成:

 

IIC、SPI、UART、USART、USB、CAN等通讯协议原理及区别_第2张图片

数据传输的时序:

从高位开始传输,若有中断来,则SCL置低电平等待,SCL高电平时数据传输,SCL低电平时数据转换

IIC、SPI、UART、USART、USB、CAN等通讯协议原理及区别_第3张图片

补充读写过程

【2】IIC总线解析https://www.cnblogs.com/zalebool/p/4214599.html

【3】对 IIC 总线的理解、调用函数以及常见面试问题 https://www.cnblogs.com/alantu2018/p/8994719.html

 

(2)SPI (Motorola公司)

Serial Peripheral interface 串行外围设备接口

全双工同步数据传输,数据传输速率很高可达到50Mhz(转化一下约,相当于1s传输50M个位,速度为5.9MB/s)

有4根线进行通信:MISO MOSI SCLK CS

MISO:主设备数据输入,从设备数据输出

MOSI:主设备数据输出,从设备数据输入

SCLK:主设备产生的时钟信号

CS:片选信号

IIC、SPI、UART、USART、USB、CAN等通讯协议原理及区别_第4张图片

其中:外设的写操作和读操作是同步完成的。如果只进行写操作,主机只需忽略接收到的字节;反之,若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输

传输时序:

依据时钟极性和相位可以进行相应的传输:CPOL时钟极性(为1时,高电平代表空闲状态)反之亦然,CPHA为时钟相位,CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样,为1时,第二个跳变沿被采样。


IIC、SPI、UART、USART、USB、CAN等通讯协议原理及区别_第5张图片

补充读写过程 

可参考:SPI和IIC总线的对比,写的不错https://blog.csdn.net/skyflying2012/article/details/8237881

(3)UART

UART,全称Universal Asynchronous Receiver/Transmitter,通用异步收发传输器

传输速率取决于波特率的设置

例如:

波特率115200 = 115200 (位/秒)

如果没有校验位,就应该除以 10,得到的是每秒字节数:
波特率115200 = 115200 (位/秒) = 11520 (字节/秒) 

再除以 1024,就是每秒 KB 数:
波特率115200 = 115200 (位/秒) = 11.25 (KB/秒) 

如果有一位奇偶校验位,就应该除以 11,得到的是每秒字节数。

参考https://blog.csdn.net/sinat_23338865/article/details/52873429

 

UART是通用异步收发器(异步串行通信口)的英文缩写,它包括了RS232、RS499、RS423、RS422和RS485等接口标准规范和总线标准规范,即UART是异步串行通信口的总称。而RS232、RS499、RS423、RS422和RS485等,是对应各种异步串行通信口的接口标准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容。实际上是属于通信网络中的物理层(最底层)的概念与通信协议没有直接关系。而通信协议,是属于通信网络中的数据链路层(上一层)的概念。 COM口是PC(个人计算机)上,异步串行通信口的简写。由于历史原因,IBM的PC外部接口配置为RS232,成为实际上的PC界默认标准。所以,现在PC机的COM口均为RS232

参考: https://blog.csdn.net/weixin_43046653/article/details/84998083

RS-232是一个串行通信接口标准,它规定了逻辑“1”为-3 ~ -15V,逻辑“0”为+3 ~ +15V,符合该标准的串口也叫RS-232串口,比如电脑的COM口。不符合RS-232标准的串口?如单片机(如stm32)的UART/USART,它不遵循RS-232标准,使用的是TTL电平(Transistor-Transistor Logic),该电平的逻辑“1”为+5V,逻辑“0”为0V,称为TTL串口。
参考:https://blog.csdn.net/qq_26904271/article/details/79829363 

(4)USART 

Universal Synchronous/Asynchronous Receiver/Transmitter 通用同步/异步串行接收/发送器 全双工同步异步方式

支持异步通信或者同步通信(时钟同步)

UART和USART的区别是USART多了一根时钟同步线

IIC、SPI、UART、USART、USB、CAN等通讯协议原理及区别_第6张图片

参考:http://www.elecfans.com/tongxin/119/20171120582574.html

注意一般情况下使用:全双工异步通信(时钟不同步需要加上标志位识别)

TX和RX

IIC、SPI、UART、USART、USB、CAN等通讯协议原理及区别_第7张图片

(5)USB(英特尔、康柏、IBM、Microsoft等多家公司联合提出

Universal Serial BUS(通用串行总线)

USB2.0属于半双工 异步通信方式

USB3.0属于全双工

用于规范电脑与外部设备的连接和通讯,是应用在PC 领域的接口技术

传输速度:

IIC、SPI、UART、USART、USB、CAN等通讯协议原理及区别_第8张图片

标准的5口:

IIC、SPI、UART、USART、USB、CAN等通讯协议原理及区别_第9张图片

3.0:参考:https://wenku.baidu.com/view/7dd2d4d1b9f3f90f76c61bd3.html

IIC、SPI、UART、USART、USB、CAN等通讯协议原理及区别_第10张图片

(6)CAN (德国电气商博世公司开发出面向汽车的 CAN 通信协议)半双工的通信方式

Controller Area Network ,传输速率1Mbps相当于125KB/s

可参考:CAN总线要点 https://www.cnblogs.com/spoorer/p/6649303.html

 

IIC、SPI、UART、USART、USB、CAN等通讯协议原理及区别_第11张图片

 

1、同步和异步通信的问题?

参考:同步异步通信

IIC、SPI、UART、USART、USB、CAN等通讯协议原理及区别_第12张图片

参考:通信方式梳理:GPIO,I2C,SPI,UART,USART,USB的区别   https://blog.csdn.net/weixin_43046653/article/details/84998083 

2、单片机与电脑的连接问题?

需要解决电平转换的问题

IIC、SPI、UART、USART、USB、CAN等通讯协议原理及区别_第13张图片

参考:区分:串口,COM口,UART,USARThttps://blog.csdn.net/qq_26904271/article/details/79829363

 

关于信道的概念以及通信交互方式:半双工、全双工(上述涉及的)可联系(计算机网络)物理层的如下描述

IIC、SPI、UART、USART、USB、CAN等通讯协议原理及区别_第14张图片

你可能感兴趣的:(嵌入式系统)