1、UART UART、通用异步收发传输器。是一种通用串行数据总线,用于异步通信。该总线双向通信,具有两个数据线,可以实现全双工传输和接收。
【传输协议|SPI、UART、RS232、RS485、IIC 5种嵌入式经典通信总线协议】并行接口是指数据的各位同时进行传送;而串行接口是指数据一位位地顺序传送。并行接口的传输速度快,不适用于远距离通信;而串行接口特别适用于远距离通信,但传送速度较慢。
异步通信和同步通信的主要区别:异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的;同步通信的通信双方必须先建立同步。
单工:简单的说就是一方只能发信息,另一方则只能收信息,通信是单向的。
半双工:比单工先进一点,就是双方都能发信息,但同一时间则只能一方发信息。
全双工:比半双工再先进一点,就是双方不仅都能发信息,而且能够同时发送。
波特率(Baud Rate) 单位 bps – 每秒传送的bit数量
文章图片
起始位 :发送1位逻辑0(低电平),开始传输数据。
数据位 :可以是5~8位的数据,先发低位,再发高位,一般常见的就是8位(1个字节,防止累计误差的出现),其他的如7位的ASCII码。异步通信两者时钟有误差,时钟不同步。
校验位 :奇偶校验,将数据位加上校验位,1的位数为偶数(偶校验),1的位数为奇数(奇校验)。
停止位 :停止位是数据传输结束的标志,可以是1/1.5/2位的逻辑1(高电平)。
空闲位 :空闲时数据线为高电平状态,代表无数据传输。
想要发送0x55(01010101)数据,低位先发,后发高位。数据位为10101010
文章图片
文章图片
文章图片
2、RS232、RS485(增强了电气特性) RS-232标准接口(又称EIA RS-232)是常用的串行通信接口标准之一
IBM的PC机将RS232简化成了DB-9连接器,从而成为事实标准。而工业控制的RS-232口一般只使用RXD、TXD、GND三条线
规定逻辑“1”的电平为**-5V~-15 V**,逻辑“0”的电平为**+5 V~+15 V**。选用该电气标准的目的在于提高抗干扰能力,增大通信距离最大15m。
文章图片
文章图片
缺点:
1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
(2)传输速率较低,在异步传输时,波特率为20Kbps;因此在CPLD开发板中,综合程序波特率只能采用19200,也是这个原因。
(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
(4)传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在15米左右。
RS485、使用该标准的数字通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号。RS-485使得连接本地网络以及多支路通信链路的配置成为可能。
该标准允许连接多个收发器,即具有多站能力,这样可以利用单一的RS485接口方便地建立起一个设备网络。
RS485标准规定采用差分信号进行数据传输,两线间的电压差为+2v到+6v表示逻辑“1”,两线间的电压差为-2v到-6v表示逻辑“0”。使用差分信号能有效的减少噪音信号的干扰,延长通信距离,RS485的通信距离可以达到1500m,RS485接口信号的电平比RS232降低了,所以不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便地与TTL电路连接。
RS485采用两线制,这种接线方式为总线式拓扑结构,在同一总线上,可以同时存在多个节点,
因为采用两线制,数据的发送和接收都要用到这对差分信号线,发送和接收不能同时进行,所以只能采用半双工的方式工作。
3、IIC总线 iic总线是一种串行、半双工总线,同步通信、主要用于近距离、低速的芯片之间的通信。
I2C串行总线一般有两根信号线,一根是双向的数据线SDA收发数据,另一根是时钟线SCL双方时钟同步。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
红色部分表示主机发送,蓝色部分表示从机发送。A表示应答,NA表示非应答(高电平)。S表示起始信号,P表示终止信号。以实例说明。
主机向从机写入数据
文章图片
主机向从机读取数据
文章图片
主机先向丛机发送数据,然后丛机在向主机发送数据
文章图片
中间并没有停止信号,是因为一旦发送停止信号,主机可能被其他主机抢走。
4、SPI总线 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线。
它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是MISO(主设备数据输入)、MOSI(主设备数据输出)、SCLK(时钟)、CS(片选)。
(1)MISO– Master Input Slave Output,主设备数据输入,从设备数据输出;
(2)MOSI– Master Output Slave Input,主设备数据输出,从设备数据输入;
(3)SCLK – Serial Clock,时钟信号,由主设备产生;
(4)CS – Chip Select,从设备使能信号,由主设备控制。
文章图片
文章图片
文章图片
文章图片
文章图片
图示为SPI模式1
文章图片
学习连接:https://www.bilibili.com/video/BV1SK4y1X7jp?p=15