打印
[以太网芯片]

CH395数据接收与发送问题

[复制链接]
3115|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
micoccd|  楼主 | 2024-9-28 14:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.若395接收到数据,会产生数据接收中断信号,检测395的INT引脚是否有低电平产生,注意如果使用单片机外部中断,则触发位要设置为低电平触发。若有中断信号,则读取中断状态,对照头文件里的定义,获取中断含义
2.检查395接收中断的处理,正常流程是:获取中断、读取数据长度,读取数据内容。
3.UDP server 模式下的数据收发与其他模式不一样:
数据接收时,395会在数据包前加上8个字节的信息,分别是数据包长度,源端口,源ip。在接收中断处理任务里,需要将这些信息分离并保存。数据发送时,395使用395UDPSendTo()函数,函数参数需要使用上面的信息
4.与395发送相关的中断有两个,分别是发送完成中断与发送缓冲区空闲中断;单片机向395发送缓冲区写一包数据,395会将数据复制到MAC缓冲区,复制完毕后会产生发送缓冲区空闲中断;CH395可能会将数据分装成若干包数据包,每发送一包数据包,395都会产生一次发送完成中断;因此在实际发送时,必须要等到发送缓冲区空闲中断产生后,才能向395缓冲区填写下一次数据
5.395在数据收发过程中出现数据丢包现象:
(1)395在收发数据的过程中不能被其他进程打断,如果395在数据收发中被其他任务打断,则可能会导致数据丢包
(2)检查下定义接收缓冲区大小,读取接收长度,看是否超过了接收缓冲区。接收缓冲区在定义的时候至少要大于定义的TCP MSS的值。

使用特权

评论回复
沙发
yangjiaxu| | 2024-11-8 21:21 | 只看该作者
CH395属于网络通信的芯片吧,好像和W5500功能差不多

使用特权

评论回复
板凳
Alina艾| | 2024-11-8 22:18 | 只看该作者
CH395是一种用于网络通信的芯片,通常用于嵌入式系统中。在数据收发过程中,CH395需要保持连续的操作以确保数据的完整性和正确性。

使用特权

评论回复
地板
Allison8859| | 2024-11-9 08:31 | 只看该作者
在数据传输过程中,数据包是按顺序发送和接收的。如果在中途被打断,可能会导致部分数据包未能正确发送或接收,从而导致数据包不完整。

使用特权

评论回复
5
Belle1257| | 2024-11-9 12:44 | 只看该作者
打断可能会导致数据包的发送或接收过程被中断,从而导致数据包丢失。特别是在高速数据传输中,这种中断可能会导致多个数据包丢失。

使用特权

评论回复
6
Candic12e| | 2024-11-9 16:33 | 只看该作者
在多包数据传输中,数据包的顺序非常重要。如果被打断,可能会导致数据包的顺序错乱,从而影响数据的正确解析和处理。

使用特权

评论回复
7
Carmen7| | 2024-11-9 21:21 | 只看该作者
CH395内部有一个状态机来管理数据收发的状态。如果被打断,状态机可能会进入错误的状态,导致后续的数据处理出现问题。

使用特权

评论回复
8
Betty996| | 2024-11-10 11:21 | 只看该作者
确保CH395的数据收发任务具有较高的优先级,避免被低优先级任务打断。

使用特权

评论回复
9
Charlotte夏| | 2024-11-10 14:13 | 只看该作者
在数据收发过程中,暂时屏蔽其他中断,确保CH395的操作不被打断。

使用特权

评论回复
10
Betty1299| | 2024-11-10 16:21 | 只看该作者
合理分配时间片,确保CH395有足够的时间完成数据收发操作。

使用特权

评论回复
11
alxd| | 2024-11-11 21:16 | 只看该作者
我觉得数据丢包应该不容易吧,把中断优先级配置好就行了

使用特权

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

本版积分规则

109

主题

727

帖子

1

粉丝