常用通信协议总结

通信可以形象的比喻成两个人讲话:1、你说的别人得能听懂:双方约定信号的协议。2、你的语速别人得能接受:双方满足时序要求。3、串行通信:一个人说,一个人听。4、并行通信:xx个人说,xx个人听。

一、UART协议

UART(Universal Asynchronous Receiver/Transmitter),意为通用异步收发传输器,该总线双向通信,可以实现全双工传输和接收。UART包含TTL电平的串口和RS-232电平的串口,使用UART通信的双方设备都需要遵从UART协议。

UART是串行通信的一种,重点是异步,和同步相对应,意思是不需要同步的时钟,通信两端预先约定bit的传输速率(每秒传多少bit),而不是由时钟触发的。

在嵌入式设计中,UART用于主机与辅助设备通信。UART是实现串口收发的逻辑电路(硬件形式),这部分可以独立成芯片,也可以作为模块嵌入到其他芯片里,单片机、SOC、PC里都会有UART模块,例如STM32单片机里有两种UART模块,USART和UART,前者可以同步通信,而后者只能异步通信。一般电脑是没有uart接口的(ttl电平),我们可以通过电脑的usb接口和单片机通信,只需一个usb转串口模块插到usb接口上,装上驱动,另一边接单片机即可。有很多可以usb协议转为串口协议的芯片,如ch340,cp2102,pl2303等。
1、TX -- 数据发送接口
2、RX -- 数据接受接口
两个设备间将TX与RX相连,RX与TX相连即可正常工作

 嵌入式里面说的串口,一般是指UART口,而TTL、RS-232、RS-485、CAN是指的电平标准(电信号)。

1、标准TTL电平逻辑

输出电路:电压大于等于(≥)2.4V为逻辑1;电压小于等于(≤)0.8V为逻辑0;
输入电路:电压大于等于(≥)2.0V为逻辑1;电压小于等于(≤)1.2V为逻辑0;

2、RS-232电平逻辑

RS-232不同于TTL的电平逻辑,为负逻辑,最简单的RS232通信由三条数据线组成,即 TxD、RxD 和GND。负12V代表高电平,即-15V ~ -3V为逻辑1,正12V代表低电平,即+3V ~ +15V为逻辑0,电压也有标准范围。这里的电平,是TXD线(或者RXD线)相对于 GND 的电压。

3、RS-485电平逻辑

RS-485和RS-232单端传输不一样,是差分传输,使用一对双绞线,其中一根线定义为A,另一个定义为B,一般收发器内部是一个发送器加一个收发器组成。对于使能信号,字母上面加一横的为低电平有效,不加的为高电平有效。逻辑“1”以两线间的电压差为+(2 ~ 6)V表示;逻辑“0”以两线间的电压差为-(2 ~ 6)V表示,使能端起作用和其他状态时为高阻态。

4、CAN电平逻辑

显性电平:逻辑0       典型值 CAN_H = 3.5V,CAN_L = 1.5V;

隐性电平:逻辑1       典型值 CAN_H = 2.5V,CAN_L = 2.5V;

总结:

TTL电平一般用于芯片与芯片之间的通信;

RS232采用了正负逻辑电平,提高线路的抗干扰性最远可以达到15米左右;

如果更远的距离会采样RS485,它使用两线制的差分信号传输,最远可至1200米;

RS232全双工只支持点对点通讯(1:1),RS485半双工或单双工支持总线形式通讯(1:N)。

当我们在做电路工作时,应该注意下外设的串口是Uart类型的还是RS232类型的,如果不匹配,应当找个转换线(通常这根转换线内有块类似于Max232的芯片做电平转换工作的),不能盲目地将两串口相连。

1、RS232、RS-485最终结果都是转换为TTL电平方式与单片机通信(CAN收发器把差分信号转化为TTL-->CAN控制器(MCU))。其目的都是提高通信质量,提高抗干扰能力

2、TTL、RS232是逻辑电平信号。RS-485、CAN为差分信号

二、I2C协议

        I2C总线是由Philips公司开发的一种简单、半双工、双向二线制同步串行总线。它只需要两根线(SDA、SCL)即可在连接于总线上的器件之间传送信息。同一时刻可以单主机多从机或单主机单从机,I2C总线上的任意设备都可以当主机,一般主机是MCU,当有多个主机时,会通过总线仲裁的方式选出一个主机,其他退出作从机。

SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线,接口电路为开漏输出.需通过上拉电阻接电源VCC.当总线空闲时.两根线都是高电平。

IIC参考资料: I2C 时序详解,精确到每一个时钟_i2c时序_谁de如花的博客-CSDN博客

主机用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从机,在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从机,则主机首先寻址从机,然后主动发送数据至从机,最后由主机终止数据传送;如果主机要接收从机的数据,首先由主机寻址从机。然后主机接收从机发送的数据,最后由主机终止接收过程。在这种情况下,主机负责产生定时时钟和终止数据传送。

 二、SPI协议

 SPI是串行外设接口(Serial Peripheral Interface)的缩写,意为串行外围接口,是摩托罗拉首先在其MC68HCXX系列处理器上定义的,SPI是一种高速的,全双工,同步的通信总线,SPI的速率比I2C高,一般可以到几十Mbps,不同的器件当主机和当作从机的速率一般不同。SPI最典型的应用是单主机单从机,下图是接线方式,当然也可以多从机。

 SPI协议详细参考:SPI通信协议(SPI总线)学习 - 涛少& - 博客园

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值