迪文科技论坛

 找回密码
 立即注册
搜索
查看: 75|回复: 2

【提问】通信帧存在校验与超时容错

[复制链接]

11

主题

0

回帖

180

积分

注册会员

Rank: 2

积分
180
发表于 6 天前 | 显示全部楼层 |阅读模式
在高速串口通信(波特率≥921600bps)下,DWIN 屏幕的 DGUS 驱动如何处理 CRC 校验失败与帧丢失?是否存在自动重发机制?若无,应如何在外部 MCU 层实现重发与帧同步?
回复

使用道具 举报

0

主题

390

回帖

2547

积分

金牌会员

Rank: 6Rank: 6

积分
2547
发表于 6 天前 | 显示全部楼层
屏默认没有重发机制,可以外部mcu给屏发指令没有应答就重发。也可以自己更改屏的通信程序做重发等处理。
回复

使用道具 举报

发表于 6 天前 | 显示全部楼层
紫狐 发表于 2025-11-11 13:11
屏默认没有重发机制,可以外部mcu给屏发指令没有应答就重发。也可以自己更改屏的通信程序做重发等处理。 ...

当屏幕端的DGUS驱动接收一帧数据并计算CRC出错时,会直接丢弃整个数据帧。

重发:MCU发送一帧数据后,启动一个重发定时器。如果在定时器超前收到了对应序列号的ACK,则取消定时器,清空发送缓冲区,准备发送下一帧。
如果超时仍未收到ACK,则判定为帧丢失或CRC失败,自动重发同一序列号的数据帧。

帧同步与错误恢复:
1.帧头同步: MCU的接收程序必须始终以寻找0x5A A5作为一帧的开始。即使上一帧出错,也要清空缓冲区,重新搜索帧头。
2.长度校验: 找到帧头后,根据长度域判断一帧是否接收完整。这是防止“粘包”和“断包”的关键。
3.超时管理:字节间超时: 在接收过程中,如果两个字节之间的间隔超过一个字符时间的3-5倍,则认为本帧传输中断,应丢弃已接收的部分并回到搜索帧头的状态。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2025-11-17 10:57 , Processed in 0.035718 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表