单工通信
发送器只能向接收器发送数据
双工通信
发送器可以向接收器发送数据,接收器也可以向发送器发送数据。
半双工:不能同时进行,发送和接收共用一条线。
全双工:同时发送和接收各条线。
二进制数据0和1传输,高电平1,低电平0。
并行通信
(通天大道)
多条线同时发送数据(每条线发送一个数据)。
并行通信缺点:资源浪费,布线困难。
串行通信
(独木桥)
数据逐一发送。
串行通信有SUBS、PPM、JTAG、UART、I2C、SPI、CAN、MIDI、USB、RS232等。
串行通信分为同步和异步
UART(通用异步收发器)
- 全双工,异步
- 、
UART空闲状态通常保持在高电平,从低电平开始,然后读取数据,停止高电平
- 起始位置位低电平(先打招呼)
- 数据位:5/6/7/8,(再发信息)每次最大发送8位,防止累计误差
- 校验位:校验数据正确性,降低但不可消除误码率,可有可无。奇偶校验数据中奇偶个数
- 停止位:1/1.5/2位高电平
码元:二进制数
波特率:每秒传输码元的数量,单位bps(bit per second)
- 。只对信号时序进行定义,未定义接口的UART各设备连接器标准不同;UART使用TTL51可能是0/5v,STM32是0/3.3v。
- 。TTL数据在传输过程中容易出错
- 。
RS232
- 全双工
- 、、
- RS232采用标准连接器,规定了连接器的每个引脚和电平,通信距离标准,实际可达
- 连接器一般使用9根线DB-9,工业领域RS只使用232连接器三根线。
- 的电平为,的电平为。
- 处理器产生的信号通常是TTL电平,需要232芯片进行电平转换。
- 在,只是在。
- 一对一通信。
RS232存在问题
- 连接器电平高,容易损坏接口电路的芯片;与TTL电平不兼容,需要电平转换芯片进行电平转换TTL电路连接
- 最高波特率为19200bps
- 易产生共模干扰,抗噪声干扰能力弱
- 传输距离短
RS485
- 半双工
- 正线、负线
- 在远距离和电子噪声大的环境的环境中有效传输,通信距离标准,实际可达。
- 可以,485总线可连接128个收发器,具有多站能力。
- 485采用,两条数据线缠绕在一起,接线方式为总线拓扑结构,同一总线上可同时存在多个节点。
- 采用(使用两条线比较)数据传输,两条线之间的电压差为 2v到 6v表示,两条线之间的电压差为-2v到-6v表示。
- 电平转换芯片需要电平转换TTL信号转换为差分信号。软件编程是基于串口的,但不能同时发送和接收。
RS485优点
- 通信速度快,数据传输速度最高
- 抗干扰能力强
- 通信距离远
- 多节点组网可实现
- 接口电平电压低,不易损坏接口电路芯片
RS485缺点
如果485网络中的设备出现问题,可能会导致整个网络通信出现错误
I2C
- 半双工,同步
- 用于收发数据,通信双方的时钟同步
- 电路板上芯片数据交互主要用于抗干扰能力差、近距离、低速。
- I2C连接多主机总线I2C总线上的设备分为和,。
- 每个连接在I2C总线上的设备有唯一的地址(7位),每个设备可以用作主机或从机,但同时只有一个主机。
- 当多个主机同时启用总线时,I2C具有防止错误的冲突检测和仲裁功能。
- 总线设备的增加和删除不影响其他设备。
- 在总线上发送数据的装置是发送器,接收数据的装置是接收器。时钟频率对应于每个数据。
- :SCL高电平,SDA从高到低电平,总线占用状态,通知接收器何时接收数据
- :SCL高电平,SDA当发送机不想发送或接收器不想接收时,主机发送停止信号
- 主机发送起始信号启用总线,主机A占用总线,其他主机停止总线
- 主机A发送一个字节的数据指示从机地址(高7位)和后续字节的传输方向(最低1位,0主机发送;1主机接收。->从机,1从机->主机)(发送器和接收器是传输方向上的主机或从机)
- 从机器发送响应信号回应主机A(总线上所有从机将第一个字节的高7位从机地址与自己的地址进行比较)
- 发送器发送字节数据(第一个字节最后一个=0.发送机是主机,接收器是从机,同样是最后一个=1.发送器是从机,接收器是主机)
- 接收器发送响应信号回应发送器
- 循环步骤4,5()
- 通信完成后,主机发送停止信号释放总线,其他主机可启用总线
I2C通信时,每个字节长度8位,,发送器发送一个字节位数据后,接收器必须发送1位应答位(低电平)回应
- 为电平期间,向数据线上1位数据,数据线上的信号允许发生变化(SDA变化)
- 为电平期间,从数据线上1位数据,数据线上的信号不允许发生变化,必须保持稳定(SDA不变)
主机向从机发送数据(黄色主机发,蓝色从机发)
从机向主机发送数据(黄色主机发,蓝色从机发)
主机先向从机发送数据,不发送停止信号,然后从机再向主机发送数据(黄色主机发,蓝色从机发)
SPI
- 全双工、同步
- 时钟线、主出从入、主入从出、片选信号(chip select)(可能有多根CS线)
- 主从方式工作,一个主机和一个或多个从机
- 高速(速度大于I2C)、低功耗、适合短距离传输
寻址方式
- SPI没有从机地址
- 主机和某个从机通信时,主机向上发送使信号(高或低电平,根据从机设备管脚符号定,CS上面有横线表示低电平有效)表示选中该从机设备。
通信过程
- 数据通信,
- 高电平表示,低电平表示
- 没有起始信号和停止信号,一个字节传输完成后,即可开始下一个字节的传输
- 时钟线在时,发送器向数据线上数据,在时,接收器从数据线上数据,完成1位数据传输,8个时钟周期即可完成一个字节数据的传输
极性和相位
为保证主机和从机设备的工作模式(查芯片手册)一致,需要对主机的CPOL和CPHA进行设置
SPI有四种不同工作模式,取决于和
- CPOL=0,CPHA=0
- CPOL=0,CPHA=1
- CPOL=1,CPHA=0
- CPOL=1,CPHA=1
CPOL表示SCLK空闲时状态
- CPOL=0,空闲时SCLK为低电平
- CPOL=1,空闲时SCLK为高电平
CPHA表示采样时刻
- CPHA=0,每个周期的第一个时钟沿采样
- CPHA=1,每个周期的第二个时钟沿采样
I2C和SPI异同点
相同点
- 串行、同步
- 采用TTL电平,传输距离近
- 采用主从方式(I2C一个或多个主机和一个或多个从机;SPI一个主机和一个或多个从机)
不同点
- I2C半双工;SPI全双工
- I2C有应答机制;SPI无应答机制
- I2C通过向总线广播从机地址来寻址(节省硬件资源);SPI通过向对应从机发送使能信号来寻址(寻址速度快)
- I2C时钟极性和时钟相位固定;SPI时钟极性和时钟相位不固定(主从一致)
CAN
半双工、异步
两根线
差分信号
显性电平逻辑“0”,隐形电平逻辑“1”
CAN总线可以挂载多个节点,每个节点可以作为主机发送数据,
物理层:CAN位填充消除累计误差,在连续5个电平相同的时候,会插入一个反转电平,例如连续五个高电平就会插入一个低电平
数据链路层:帧头起到同步作用,仲裁段起到防冲突作用,控制段,数据段,校验段,应答段
CAN优点
- 低成本
- 集中化
- 稳定
- 高效,CAN基于标识符进行优先排列,能让最高优先级标识符免于中断
- 灵活
- 具有自锁功能,如果某个设备出现故障,会自锁不影响总线网络
- 方便维护