目录
详解UART、USART、SPI、IIC、CAN,以太网等通信协议
基本通信知识
通信协议分类
串行和并行
串行通信是指利用一条传输线将数据一位位地顺序传送。
并行通信是指利用多条传输线将一个数据的各位同时传送。
同步和异步
(对单方面来说,指两种不同的数据传输方式)
在同步传输中,数据传输是按照定时信号进行的。发送方和接收方都需要遵守同样的时序规则,以确保数据能够正确地传输。发送方按照固定的时间间隔发送数据,接收方则按照相同的时间间隔接收数据。由于同步传输需要一定的时序同步,因此在高速传输和长距离传输时,同步传输具有较好的抗干扰能力和可靠性。(同步就是通信双方按照一定时序规则收发数据,常用于高速、长距离通信)
在异步传输中,数据传输没有固定的时间间隔。发送方和接收方可以按照自己的节奏进行数据传输,发送方发送数据时不需要等待接收方的响应。因此,异步传输的速度相对较慢,但可以在低速传输和短距离传输时使用,例如串口通信。(异步就是通信双方想发送就发送,常用于低速短距离通信,如串口通信)
全双工和半双工
(对双方来说,指通信双方在数据传输时的传输模式)
在全双工通信模式下,通信双方可以同时进行发送和接收数据,彼此之间不会产生干扰。也就是说,通信双方可以同时发送和接收数据,就像两个人同时打电话交流一样,可以在通信中同时传输数据。(全双工就是通信双方都可以发送或接收数据、适用于需要高速、可靠的数据传输场合,如打电话)
在半双工通信模式下,通信双方只能单向地发送和接收数据,不能同时进行。例如,当一方发送数据时,另一方必须等待接收完成后才能发送数据。这种通信方式就像人们交替交谈,每次只有一个人能够说话,而另一个人必须等待。(半双工就是通信双方只能单向发送或接收数据,适用于一些数据传输量较小,对实时性要求不高的场合,如对讲机)。
另外还有单工,单工即数据传输只在一个方向上传输,方向是固定的,不能实现双向通信。比如收音机和广播。
波特率
波特率BR是单位时间传输的数据位数
单位:bps 1bps = 1bit/s。
采用异步串行,互相通信甲乙双方必须具有相同的波特率,否则无法成功地完成数据通信,
而在同步串行中,发送和接收数据是由同步时钟触发发送器和接收器而实现的。
注:同步通信中数据传输的同步时钟频率就是波特率;而在异步通信中,时钟频率可为波特率的整数倍。
注意:关于通信协议,我们通常需要考虑四个点:
1.有无clock
2.一次传多少数据位
3.是否支持同时收发
4.是否需要回复ack
主要的片上通信协议:UART(同步串行)、USART(异步串行)、IIC、SPI、PCI和PCIE等。
还有:CAN、以太网等。
UART
常用于调试、主控或外设
一般是9针插口和USB接口
rx和tx两个信号线
帧格式:
USART
USART,即通用同步/异步收发传输器(Universal Synchronous/Asynchronous Receiver/Transmitter),简称串行通信。
它是一种串行通信协议,可以在同步和异步模式下进行数据传输,用于将数据从一个设备传输到另一个设备。它支持全双工和半双工通信模式,并且可以通过中断方式或DMA方式进行数据传输。
** 每一帧包含起始信号、数据信息、停止信息、校验信息。**
SPI
SPI是串行外设接口(Serial Peripheral Interface)的缩写,顾名思义就是串行外围设备接口。
SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,如今越来越多的芯片集成了这种通信协议。SPI数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。
SPI总线只需四条线(如图所示)就可以完成MCU与各种外围器件的通讯:
(1)MOSI – 主(Master)器件数据输出,从(Slave)器件数据输入
(2)MISO – 主(Master)器件数据输入,从(Slave)器件数据输出
(3)SCLK –时钟信号,由主(Master)器件产生
(4)/SS – 从器件使能信号,由主器件控制,有的IC会标注为CS(Chip select)
IIC
IIC 即Inter-Integrated Circuit(集成电路总线)。它是一种简单、双向、二线制、同步串行总线,主要是用来连接整体电路(ICS) ,IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源。这种方式简化了信号传输总线接口。
I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。
每个连接到总线的设备都有一个独立的地址,主机正是利用该地址对设备进行访问。
CAN
CAN总线通信是汽车电控领域最典型的通信方式,从上世纪80年代博世发明该通信方式以来,一直占据着汽车通信中的老大位置。
CAN是总线(Bus)通信方式,网络拓扑如下图。总线的意思就是所有节点都连接到同一个传输媒介中,也就是说传输媒介中的电信号会影响到所有的节点。总线通信中一条CAN线上会挂多个节点,所以一般我们会说CAN Bus 或 CAN Network。
以太网
以太网是交换机式(Switched Network)通信方式,网络拓扑如下图。网络中有终端节点,简单理解为一个节点上只有一个以太网端口;和交换机节点,简单理解为一个节点上有多个以太网端口,其主要作用是转发信息。
交换机式通信指的是所有的终端节点都要通过交换机才能连接到一起,所有传递的信息都需要交换机进行转发。交换机式通信中一条网线上只有两端与两个端口相连,没有分叉。所以一般我们不说以太网总线,而是说以太网网络(Ethernet Network)。
标签:USART,通信协议,总线,通信,传输,串行,以太网 From: https://www.cnblogs.com/z-qhhh/p/17620124.html参考资料:https://blog.csdn.net/m0_47334080/article/details/106939302