WCH沁恒单片机
直播中

study875

12年用户 1133经验值
私信 关注
[问答]

ch395什么情况下多个udp包会被合并,可否避免?

1. 什么情况下ch395接收到的一包udp数据会产生多次接收中断,导致一包数据被拆分成多组数据(比如发送方发送一个10字节的数据,ch395会产生一个4字节中断和一个6字节中断)。
2. 为什么会产生数据长度为0的接收中断
3. 什么情况下多个udp包会被合并,可否避免??

我的工况是不希望udp包被分组,也不希望包合并该如何处理?
  

回帖(1)

刘玲

2022-10-12 10:18:23
1、数据包可能存在粘包的情况。如果存在“分包的情况”,一是长度过长必定会分包(超过1514的规定),二是对端发过来就是分开的;可能和窗口大小有关系;三是不要直接读长度,按照全局中断-socket中断方式-中断处理。
2、中断会周期性更新,因为上报和更新是异步的,在上报过程中避免漏中断所以一步过程中会少有0中断产生。
3、粘包原因是中断数据没有及时读走导致数据缓冲区数据累加,一是外部单片机处理不及时,二是Ch395芯片本身处理有限,目前优化方式是是单片机对CH395中断更快响应。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分