UART
UART(Universal Asynchronous Receiver/Transmitter)是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。
物理拓扑
帧结构/数据传输形式#
起始位:先发一个逻辑0,表示传输字符的开始;依靠检测起始位来实现发送与接收方的时间自同步的。
数据位:4~8位,构成一个字符,如ASCII码8位数据位,从最低位开始传送,靠时钟定位;方向为LSB。
奇偶校验位:数据位加上这一位后,使得“1”的位数为偶数(偶校验)或奇数(奇校验)以此来校验数据传送的正确性;
停止位:他是一个字符数据的结束标志,可以是1位、1.5位、2位的高电平。适用于停止位的位数越多,不同时钟同步的容忍程度越大,数据传输率同时也越低。
空闲位:处于逻辑“1”状态,表示当前线路上没有数据传送。
波特率
串口常见的波特率为9600,14400,57600、115200等。
以9600为例,意思为1秒传输了9600bit,那么传输1bit所用的时间为:1 /9600 ≈ 104us(UART的逻辑电平起码要保持的时间长度)
总结
优点:
1,需要的引脚线不多,只用2条数据线,1条地线
2,不需要时钟信号
3,有奇偶校验位,提供通信的差错检查
缺点:
1,数据帧支持的最大长度只有9bit
2,不支持多主机或多从机的主从结构
RS232
- 串行,全双工
- 规定逻辑“1”的电平为-5V~-15 V,逻辑“0”的电平为+5 V~+15 V。
- 传送距离一般可达30 m
RS485
- 串行,半双工,差分电路
- 逻辑“1”在+2V~+6V之间,逻辑“0”在-2V~-6V之间
- 传输距离远:10km
- 协议支持1发多收(总线形式)
IIC
物理拓扑
特点:
- 半双工,同步
- 主从(机)结构
- 硬件简单(时钟线+数据线)
- 从高数据位(MSB)开始传输
缺点:
- 速率较低:标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s
- 距离较短(理论15M以下)
时序
start和stop
SDA和SCL同时为高时,为IIC总线的空闲状态
- 起始:时钟线SCL为高时,数据线SDA由高到低
- 停止:时钟线SCL为高时,数据线SDA由低到高
数据
除了开始和结束标志,所有的SDA 信号变化都要在SCL 时钟为低电平时进行,SCL高电平时读SDA上信号
ACK(应答)
下面的波形:SCL,主机产生的时钟脉冲
上面的波形:SDA,主机发送的8位数据
中间的波形:SDA,从/主机在第9个时钟信号进行拉低回应,表示收到了主/从机发来的数据,拉高则表示不应答
注:实际上,上面和中间是同样的SDA线,这里只是分开示意。
数据收发方式
主机写
写寄存器时,主设备除了发出开始标志和地址位,还要加一个R/W 位,0 为写,1 为读
主机读
主机向从机索要数据时,以NACK为结尾,告诉从机之后不需要再读数据。
SPI
特点:
- 全双工,同步
- 主从(机)结构
- 速率高:一般几M,最高几十M
- 从高数据位(MSB)开始传输
缺点:
- 线比较多
- 适合短距离传输
物理拓扑
工作模式
SPI有四种工作模式,通过串行时钟极性(CPOL)和相位(CPHA)的搭配来得到四种工作模式:
1,CPOL=0,串行时钟空闲状态为低电平。
2,CPOL=1,串行时钟空闲状态为高电平,此时可以通过配置时钟相位(CPHA)来选择具体的传输协议。
3,CPHA=0,串行时钟的第一个跳变沿(上升沿或下降沿)采集数据(读端)。
4,CPHA=1,串行时钟的第二个跳变沿(上升沿或下降沿)采集数据。
USB
通用串行总线,高速,半双工,由主机、hub、设备组成。设备可以与下级hub相连构成星型结构。
CAN总线
特点:
- 串行,全双工,差分线
- 直接通信距离最远10km(速率5Kb/s)
- 通信速率最高可达1Mb/s(距离40m)
隐性电平和显性电平
-
隐性电平:CANH和CANL之间的差分电压近似为0,表示逻辑1
-
显性电平:CANH和CANL之间的差分电压近似为2~3V,表示逻辑0
波特率和比特率
- 比特率:每秒传输多少bit(信息)
- 波特率:表示每秒钟传送码元符号的个数
- 比特率=波特率x单个调制状态对应的二进制位数
(代表一个符号包含多少个bit数据)
两相调制(单个调制状态对应1个二进制位)的比特率=波特率;四相调制(单个调制状态对应2个二进制位)的比特率为波特率的2倍;八相调制(单个调制状态对应3个二进制位)的比特率为波特率的3倍。 **一般而言,传输信号是二进制的,即波特率与比特率的概念就是相同的。**tuopu