心跳回响 发表于 2025-4-25 18:04

空闲总线检测的疑问

在阅读APM32F103的datasheet时,看到USART中,极海有实现空闲总线的检测,有标志位可查询,有中断可触发。但是没有说明这人上“空闲”多长时间?
各位网友,有人做过类似的测试吗?


jobszheng 发表于 2025-4-26 19:45

从上面的图例来看,像是一个字节的空闲时间后,就触发了。
我没有经过实际实验来验证

lemonboard 发表于 2025-4-26 19:58

我估计是参考LIN总线的空闲帧来处理吧!
只有一个字节的时间间隔

心跳回响 发表于 2025-4-27 10:47

jobszheng 发表于 2025-4-26 19:45
从上面的图例来看,像是一个字节的空闲时间后,就触发了。
我没有经过实际实验来验证 ...

这个是官方的说明吗?

心跳回响 发表于 2025-4-27 10:47

lemonboard 发表于 2025-4-26 19:58
我估计是参考LIN总线的空闲帧来处理吧!
只有一个字节的时间间隔

LIN总线 没有使用过呀

Gfan 发表于 2025-4-27 15:06

空闲的时间与当前通信的波特率等UART的配置相关。

因为空闲帧其实是一个完全“1”的数据帧,而一个数据帧的传输时间与波特率大小,停止位配置,奇偶校验位配置等相关。时间长度计算参考一个数据帧的传输时间。







计算公式:

空闲帧时间 =(1 个起始位 + 数据位数 + (若使能则包含 1 个奇偶校验位) + 停止位数) × (1 / 波特率)

举例:若配置為 8 位数据、不使用奇偶校验、1 个停止位、波特率 115200,则空闲帧总比特数为

1(起始位) + 8(数据位) + 1(停止位) = 10(bit),

那么空闲帧时间约为 10 × (1 / 115200) ≈ 86.8 μs。

希望可以帮到您哈

jobszheng 发表于 2025-4-27 19:28

官方的说明来了。
做为帧尾判别,这一个空闲帧也是足够了
页: [1]
查看完整版本: 空闲总线检测的疑问