UART串口通信协议

一、协议

1.1 消息格式

串口协议是一种全双工、异步通信协议,不需要同步时钟,数据的发送是一位一位的发送,完整的一帧数据通常由起始位、数据、奇偶校验位和停止位组成
在这里插入图片描述

1.2 波特率

为确保正确的收发信息,双方必须设置相同的波特率,这个参数概念上代表的是每秒钟能传输的最大位数,实质上起到信号同步的功能。可以这么理解:发送方以该频率(或者叫时序)产生信号并发送,接收方也采用同样的频率(或者叫时序)进行信号采样,如果双方波特率不一致,发送和接收数据就会错乱

二、通信过程

2.1文字描述

  • 不传输数据时,数据传输线通常保持高电平
  • 发送方发送数据:先将传输线的电平拉低告诉对方开始传输数据 --》将数据一位一位发送 --》 发送奇偶校验位 --》将电平拉高代表当前数据帧发送结束
  • 接收方接收数据:检测到高电平到低电平越变 --》按照事先设定好的波特率进行采样。

2.2 图解:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、几个易混淆的概念

UART、COM口、TTL、RS485、RS232到底啥关系?

串口、UART口、COM口、USB口是指的物理接口形式(硬件),RS232、RS485是基于UART而制定的不同的电气标准,不同标准之间的区别在于电平不一样

  • TTL电平:一般指单片机用的电平,UART口也一般指的是单片机上的串口接口,标准TTL输入高电平最小2V,输出高电平最小2.4V,典型值3.4V,输入低电平最大0.8V,输出低电平最大0.4V,典型值0.2V
  • RS232:逻辑1:-3 ~ -15V,逻辑0:+3 ~ +15V
  • RS485:采用差分方式传输,逻辑1:以两线之间的电压差为+(2 ~ 6)V表示;逻辑0:以两线之间的电压差为(2 ~ 6)V表示。

四、帧协议

针对大型项目里,经常遇到多台设备之间相互通信、环境有干扰、数据量大或者长度不确定等情况,因此一般要基于UART协议之上再自定义通信协议(通常包含帧头,帧尾,数据、校验、数据长度等信息)。

参考文献

https://www.analog.com/cn/analog-dialogue/articles/uart-a-hardware-communication-protocol.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值