各类总线以及控制协议对比学习

1.SCI(通用异步收发器)

两线制,全双工,内部时钟提供速率,需要UART发送器接收器,两线,一根用于发送,一根用于接收。

SCI是包括UART的,UART是通信协议,SCI是接口;SCI用于串行通信,如RS422,RS485,RS232;

补充:关于RS422,RS485,RS232

RS232:全双工,单站(只能挂一个收发器),波特率20Kbps,电平是负逻辑,-15~-3V是逻辑1,对应的正的表示0,一般来说处理两线外还需要一根地线;

RS422:全双工,四线制,差分信号,抗干扰升级,逻辑0和逻辑1用电平差判断;

RS485:两线,半双工,最多可挂在128个收发器,最大速率10Mbps,差分,逻辑1差分为+2~+6(电压降低避免损坏芯片),距离可达到3000m

资料来源:http://www.elecfans.com/emb/jiekou/20180418663969.html

2.I2C

IIC最大的优势在于通过[开漏输出]和[上拉电阻两个物理特性简化了协议整体的设计和实现]

两线制长总线,半双工,用于连接微控制器和外设,由数据线SDA和SCL构成,正常速度为100kbits,高速IIC总线一般可达400kbps,多为半双工通信,多主机I2C总线系统需要将SDA和SCL两根线上拉电阻拉高。

上拉电阻:(两个连接到总线VCC的上拉电阻)因为开漏输出的特性,所以需要上拉电阻来提供高电平,当输出端输出高阻态时并且没有其它设备拉低总线时,总线被外部上拉电阻拉高,呈现高电平状态;(上拉电阻设涉及到通信速率和功耗的取舍,上拉电阻越大,信号上升时间越长,速率越低,阻值过小,低电平时功耗大,此外,电容也会影响上升时间I2C总线电容400pf限制)

开漏输出:开漏输出为低电平和高阻态两个状态,使得总线只受到输出低电平的影响,从而实现线与(当总线上只要有一个设备输出低电平,整条总线便处于低电平状态,此时总线被称为占用转态)的功能】;

程序设计时需要注意发送结束后要清除SCLK,否则设备就会认为还没有到响应结束,从而影响下一次开始时钟;

空闲状态:SDA和SCL两条信号同时处于高电平时,总线为空闲状态;

开始信号:SCL为高,SDA高到低;

结束信号:SCL为高,SDA低到高;

3.SPI

串行外设设备接口,高速(Mbits级别)可以达到30Mbits,全双工,同步的总线通信,四线制(MISO,MOSI,SCLK,CS-没有多设备的时刻可以不需要),主要应用在EEPROM,FLASH,时钟,AD转换,数字信号处理和信号解码器之间;

4.CAN总线

  • 双线差分信号;(1Mbits<=40m);
  • 多主站结构(协议对点的数量没有限制,正常最多110个);
  • 每个报文的内容通过标识符辨别,网络中唯一;性

显性电平为逻辑0,因为线与的机制,0的时候表示了总线处于非空闲的状态,显性位覆盖隐性位;

NRZ编码方式-保证相同带宽的情况下,NRZ包含的信息量更大;

此图上为高速CAN(500k),下为低速容错CAN(125k);

高速CAN的容错性TJA1040:CAN_L对GND可以短路;

低速容错CANTJA1054:CAN_H和CAN_L可以分别开路短路;

?关于为什么汽车控制器很少有1M的CAN,从成本角度考虑,CAN收发器的成本会上升,此外500K足够使用了;

标准帧11位ID,扩展帧29位ID;

首位是SOF为一个显性位,逻辑0,用于数据同步;

DLC:数据长度码;

ACK:为了确保报文被至少一个节点正确接收,接收成功后置0,原本为1,回读为0后,确认被接收;

EOF:7干扰连续隐性位,表示数据结束,节点在检测到11个连续的隐性位后认为总线空闲;

数据链路层:

  • 回读机制:总线空闲发送,发送过程中回读,判断发送位和回读位是否一致,即检测是否有别的节点发报文;
  • 线与优先级:ID越小优先级越高;
  • 非破坏性仲裁:并行的发送变成了串行的发送,这样的机制存在的一是一是因为在A优先级高先发送后,BCD可能会同时检测发送,此时需要检测排队;
  • 接收多帧报文:过滤器-过滤到不要的ID;屏蔽-设置是否生效(不生效的位置,ID可变,可以检测多帧)
  • NRZ编码,存储量更大,但是边沿变化少,所以引入位填充;

LIN总线:

6位ID;单主节点,多从节点,最多16个节点;(基于UART/SCI接口,节省成本)

20Kbit/s;

进度表:规定帧ID的传输次序;规定帧时隙;

你可能感兴趣的:(各类总线以及控制协议对比学习)