在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1761|回复: 12

[求助] 关于UART接收端如何开始接收的疑问

[复制链接]
发表于 2023-8-22 14:52:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
虽然UART发送模块里一般是一个高速的时钟驱动的,但是对于接收端来说RX是未知的异步信号,那么接收端是如何判断RX是处于闲置状态还是通信状态的呢?
比如下图所示的通信过程

uart_rx.png
接收方在红色箭头处开始接收,应该如何判断后面从1到0不是start位呢?
 楼主| 发表于 2023-8-22 14:54:57 | 显示全部楼层
我的一个想法是,发送的间隔(闲置状态)比发送一个码字的时间长就可以让rx判断发送的状态,但是这样又会导致整个uart数据传输速率减半,所以有些想不懂实际上是怎么弄的
发表于 2023-8-23 11:17:34 | 显示全部楼层
uart传输是要提前定好波特率,数据长度,奇偶校验位,停止位宽度的。从总线拉低开始,是一个start,然后是数据,奇偶校验位,stop位,这些宽度是固定的。所以你后面那个1->0的时候在接收数据,这时候不会去判断start位。
 楼主| 发表于 2023-8-23 12:05:21 | 显示全部楼层


maimu217 发表于 2023-8-23 11:17
uart传输是要提前定好波特率,数据长度,奇偶校验位,停止位宽度的。从总线拉低开始,是一个start,然后是 ...


假设1->0这个时刻接收端才打开呢,他应该如何判断现在总线是出于发送状态还是空闲状态
发表于 2023-8-23 13:54:55 | 显示全部楼层


lzhj21 发表于 2023-8-23 12:05
假设1->0这个时刻接收端才打开呢,他应该如何判断现在总线是出于发送状态还是空闲状态 ...


它肯定会把接收到的第一个低电平当start位,此时就接收到一个错误数据。
发表于 2023-8-23 17:50:19 | 显示全部楼层
应该是低电平启动, 字长, 奇偶校验。。。 决定了结束的时间
发表于 2023-8-28 11:18:15 | 显示全部楼层
状态机了解不?通信状态下不检测start位,非通信状态下才会检测
 楼主| 发表于 2023-8-28 13:53:12 | 显示全部楼层


黄河渔夫 发表于 2023-8-28 11:18
状态机了解不?通信状态下不检测start位,非通信状态下才会检测


我的疑问就是接收端可能在任意时刻打开,它应该如何判断是不是处于通信状态
 楼主| 发表于 2023-8-28 13:54:28 | 显示全部楼层


maimu217 发表于 2023-8-23 13:54
它肯定会把接收到的第一个低电平当start位,此时就接收到一个错误数据。


那后面的不是就都出错了吗
发表于 2023-8-28 19:39:05 | 显示全部楼层


lzhj21 发表于 2023-8-28 13:54
那后面的不是就都出错了吗


是呀,从硬件上来说无法避免,只能软件检测检验位,停止位,或者加CRC校验之类的,让发送端重新发。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 08:32 , Processed in 0.023589 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表