SPI/I2C/UART/USART/RS232/RS422/RS485/CAN的区别(转载)

本文详细介绍了串行通信的各种形式,包括异步与同步通信的区别、串行与并行通信的特点,以及不同通信协议如SPI、I2C、UART、RS485和CAN的工作原理与应用场景。

本文主要是引用https://blog.youkuaiyun.com/fengel_cs/article/details/105200663, “同步/异步,串行/并行,SPI/I2C/UART/RS485/CAN等简单介绍与区别”,并有所补充。

一、异步通信

  1. 所谓异步通信是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间传送基本同步。
  2. 发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。异步为非阻塞模式
  3. 以字符为单位传送信息。
  4. 相邻两字符间隔长度不确定。
  5. 必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。
  6. 异步通信时不要求接收端时钟和发送端时钟同步。

二、同步通信

  1. 所谓同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间,字符内部的位与位之间都同步。
  2. 发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。同步为阻塞模式。
  3. 以数据块为单位传送信息。
  4. 在一个数据块(信息帧)内,字符与字符与字符间无间隔。
  5. 因为一次传输的数据块中包含的数据较多,所以接收时钟与发送时钟严格同步,通常要有同步时钟。
  6. 同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流。

三、串行与并行通信

  1. 串行通信指计算机与I/O设备之间数据传输的各位按顺序依次一位接一位进行传送。通常数据在一根数据线或一对差分线上传输。
  2. 并行通信是指计算机与I/O口设备间通过多条传输线交换数据,数据的各位同时进行传送。
  3. 串行通信传输速度慢,但使用传输设备成本低,适合于远程通信;并行通信的速度快,但传输设备成本高,适合于近距离通信。

四、串行通信数据传送方向

  1. 单工:是指数据传输仅能沿一个方向,不能实现反向传输。
  2. 半双工:数据传输可以沿两个方向,但需要分时进行传输。发送时不能接收,接收时不能发送
  3. 全双工:是指数据可以同时进行双向传输。发送时可以接收,接收的同时可以发送。

五、具体通信协议(SPI/I2C/UART/USART/RS485/CAN)

  1. SPI---------同步通信(有同步时钟);串行通信;全双工;主从通信(某一时刻可以出现多个从机,但只能存在一个主机,主机通过片选线来确定要通信的从机)。

  2. I2C---------同步通信;串行通信;半双工;主从通信(总线上支持多个主机和多个从机,总线上任何能够进行发送/接收数据的设备都可以占领总线。当然,任意时间点上只能存在一个主控。多主控,主器件同时争夺总线控制权时,可仲裁)。

  3. UART-----异步通信;串行通信;全双工; 对等总线,没有仲裁机制,所以只能挂载两个同时收发数据的设备(只能点对点),双方都可以发送和接收。

  4. USART—通用同步异步收发器,跟uart一样,它是个设备,一个要完成特定功能的硬件,本身不是协议。当异步通信时,与UART一样。区别在于USART可以用于同步通信,USART同步通信时可以用作SPI。

下面介绍一下RS232/422/485的区别。
注意: RS是Recommend Standard的意思,后面的232, 422和485表示这个标准修改了232/422/485次。

  1. RS232---- 全双工。 注意UART是通信协议,RS232是电气接口标准。注意RS232没有用差分信号,所以抗干扰能力不强,最多传20米。再长就要用工业界常用的RS422和RS485。

  2. RS422---- 全双工。需要5根线。

  3. RS485----异步通信;串行通信;半双工 (只需要3根线A/B/G,A,B是差分信号,G是控制信号);RS485是单主从结构,即一个总线上只能有一台主机,通讯都由它发起的,它没有下命令,下面的节点不能发送,而且要发完即答,收到答复后,主机才向下一个节点询问,这样是为了防止多个节点向总线发送数据,而造成数据错乱。如果是一主多从,从机靠自身地址区分。具体特性详见485通信要点_fengel_cs的专栏-优快云博客.

  4. CAN-------异步通信;串行通信;半双工;CAN是多主从结构,每个节点都有CAN控制器,多个节点发送时,以发送的ID号自动进行仲裁,这样就可以实现总线数据不错乱,而且一个节点发完,另一个节点可以探测到总线空闲,而马上发送,这样省了主机的问,提高了总线利用率,增强了快速性。所以在汽车等实性要求高的系统,都是用CAN总线。

  5. SNMP-----网管协议,放这里主要想说明它可以通过trap的方式主动上报数据,比如服务端产生了告警或fault,那么服务端可以通过trap方式主动上报,不需要等客户端主动查询后,才响应。

CAN 和 A429区别
https://aviation.stackexchange.com/questions/22120/what-is-the-difference-between-can-and-arinc
Comparing CAN bus to ARINC 429:

Cable
CAN: STP or UPT, possible to implement on fiberoptic cable
ARINC 429: STP
Speed
CAN: 1 Mbit/s (high speed) / 125 Kbit/s (low speed)
ARINC 429 100Kbit/s (high speed) / 10-14 Kbit/s (low speed)
Directionality
CAN: bi-directional, connected units can send and receive on the same cable.
ARINC 429: uni-directional, a unit either transmits or receives from a cable.
Number of units on a single bus
CAN: unlimited, although in practice no more than about 32 units will be sharing a bus to avoid data collisions.
ARINC 429: one transmitter can serve at most 20 receiving units on a single cable.
Since ARINC 429 has only a single transmitter, timely data arrival is guaranteed, while CAN has to incorporate transmission collision detection & correction which incurs non deterministic time overhead.

On the other hand, ARINC 429 only uses a parity bit for bit level error detection whilst CAN allows for various methods including CRC checks

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值