打印
[其它应用]

串口协议详解

[复制链接]
1285|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

通用异步收发器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种串行、异步、全双工的通信协议,在嵌入式领域应用的非常广泛。

UART作为异步串行通信协议的一种,工作原理是将传输数据的每个二进制位一位接一位地传输。在UART通信协议中信号线上的状态为高电平时代表‘1’,信号线上的状态为低电平时代表‘0’。比如使用UART通信协议进行一个字节数据的传输时就是在信号线上产生八个高低电平的组合。但实际上UART通信协议在进行一个字节的数据传输时除了最基本的数据位之外还有许多其他的信息需要表示,具体的协议格式如下

空闲位:UART协议规定,当总线处于空闲状态时信号线的状态为‘1’即高电平

起始位:每开始一次通信时发送方先发出一个逻辑”0”的信号(低电平),表示传输字符的开始。因为总线空闲时为高电平所以开始一次通信时先发送一个明显区别于空闲状态的信号即低电平。

数据位:起始位之后就是我们所要传输的数据,数据位可以是5、6、7、8位等,构成一个字符。先发送最低位,最后发送最高位,使用低电平表示‘0’高电平表示‘1’完成数据位的传输。

奇偶校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性

停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备之间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟的机会。停止位个数越多,数据传输越稳定,但是数据传输速度也越慢。

比特率:在UART中使用波特率来表示数据的传输速度。比特率是表示每秒钟传送的二进制位的个数。


使用特权

评论回复
沙发
heimaojingzhang| | 2023-7-25 08:40 | 只看该作者
在异步串口通讯中的时钟是由主设备来统一的吗

使用特权

评论回复
板凳
keaibukelian| | 2023-7-25 12:01 | 只看该作者
串口通讯的时候可以不加上校验位吗

使用特权

评论回复
地板
观海| | 2023-7-25 13:15 | 只看该作者
当我们不知道协议的具体内容的时候,如何进行**呢

使用特权

评论回复
5
paotangsan| | 2023-7-25 15:17 | 只看该作者
无论我们通过串口发送的内容是什么 都要遵守这个协议

使用特权

评论回复
6
guanjiaer| | 2023-7-25 19:18 | 只看该作者
是串口通讯的抗干扰能力好 还是usb的抗干扰能力好呢

使用特权

评论回复
7
micoccd| | 2023-7-26 13:51 | 只看该作者
UART一般用于近距离低速,高速还是得加485或232之类的

使用特权

评论回复
8
OKAKAKO| | 2023-9-26 10:03 | 只看该作者
heimaojingzhang 发表于 2023-7-25 08:40
在异步串口通讯中的时钟是由主设备来统一的吗

在异步串口通讯中的时钟频率必须是统一的,有波特率进行确认

使用特权

评论回复
9
jf101| | 2023-9-26 13:19 | 只看该作者
常用的串口有232、485、422等

使用特权

评论回复
10
szt1993| | 2023-9-26 16:08 | 只看该作者
串口比较抗干扰

使用特权

评论回复
11
小夏天的大西瓜| | 2023-9-27 12:28 | 只看该作者
奇偶校验位非常重要,有利于数据的稳定确认

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

438

主题

1657

帖子

3

粉丝