通信:UART、I2C、CAN、SPI、RS485

通信描述

国际标准化组织提出的OSI的7层模型将通信问题划分为 [物理层]<=>[数据链路层]<=>[网络层]<=>等共七层。

各层独立负载不同的功能;
物理层侧重于物理接口,像接口机械尺寸、电气接触方式;
而数据链路层侧重于数据链路的建立、拆除,对数据的检错、纠错是数据链路层的基本任务

  • 总线协议一般属于数据链路层,指定总线上数据的排列方式。

  • 而通讯规约既包括数据链路层也包括网络层;不仅仅要建立数据链路还必须给出数据帧的排列方法,内部逻辑含义等等。

     1.RS232/RS485/USB/网口,这都是外部串行物理接口。
     2.I2C是内部串行总线。
     3.Modbus和CAN是两种串行通信规约。
    

一、串行、并行

并行:一次传输多个数据位
串行:一次传输一个数据位

二、串行

按通信方式分类:

	同步:有时钟线连接,通信双方使用同一时钟信号频率:SPI、I2C
	异步:无时钟线连接,通信双方不使用同一时钟频率:UART、CAN

同步:通过时钟线控制保证,一个二进制的数据在某个下降沿或者上升沿同时完成发送数据和接收数据。
在这里插入图片描述
异步:通过双方发送速度来保证,发送数据和接收数据无误。也就是约束通信格式和发送接收速度(波特率)

按传输方向分类:

	单工:A->B
	半双工:A->B或B->A(不可同时)
	全双工:A->B、B->A(可同时传输数据)

三、具体通信协议(都属于串行通信)

1.串口(全双工)(TTL转RS232)

UART:异步收发器
USART:同步/异步收发器(可以切换)

端口
RXD:接受数据
TXD:发送数据
GND:接地

2.I2C(半双工)

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

端口
SCL:同步时钟
SDA:数据输入/输出(输入与输出在一条线,为半双工)

3.SPI(全双工)

主从通信(某一时刻可以出现多个从机,但只能存在一个主机,主机通过片选线来确定要通信的从机)。

端口
SCK:同步时钟
MISO:主机输入,从机输出
MISI:主机输出,从机输入

4.CAN(半双工)

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

5.RS485(半双工)(TTL转RS485)(一般使用ModBus协议)

单主从结构,即一个总线上只能有一台主机,通讯都由它发起的,它没有下命令,下面的节点不能发送,而且要发完即答,收到答复后,主机才向下一个节点询问,这样是为了防止多个节点向总线发送数据,而造成数据错乱。如果是一主多从,从机靠自身地址区分。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好好睡觉好好吃饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值