wxheky 发表于 2022-12-15 14:43

CH32F207VCT6 网口连接交换机,过一段时间,link灯灭掉

掉线后,插拔网线又可以连接上。
程序使用的是例程里面的tcpserver

wxheky 发表于 2022-12-15 16:07

可能跟交换机有关,继续观察一下

wxheky 发表于 2022-12-15 18:30

还是没用,直连电脑网口还是断线,指示灯熄灭

wxheky 发表于 2022-12-16 09:55

phy_stat = ETH_ReadPHYRegister( gPHYAddress, PHY_BSR);
掉线后这个数值=0x1809,跟没插网线一样。
void WCHNET_ETHIsr(void) 这个以太网中断函数触发下面代码,断线
      if( int_sta & ETH_DMA_IT_PHYLINK)
      {
            ETH_PHYLink( );
            ETH_DMAClearITPendingBit(ETH_DMA_IT_PHYLINK);
      }

wxheky 发表于 2022-12-16 09:55

PHY_BSR 正常联机后数值是0x182D

wang1979 发表于 2022-12-16 10:00

引入心跳数据吧,也就是定时一秒或是3秒发一次数据!

wxheky 发表于 2022-12-16 10:38

wang1979 发表于 2022-12-16 10:00
引入心跳数据吧,也就是定时一秒或是3秒发一次数据!

我这个做的是tcp服务器
#if KEEPLIVE_ENABLE                                             //Configure keeplive parameters
    {
      struct _KEEP_CFG cfg;

      cfg.KLIdle = 20000;
      cfg.KLIntvl = 15000;
      cfg.KLCount = 9;
      WCHNET_ConfigKeepLive(&cfg);
    }
#endif
这个功能已经使能了,现在程序烧录的就是出厂例程,还是有这个问题,内置10m的phy接口芯片就是认为掉线了,这个问题头疼

张饕餮 发表于 2022-12-16 11:29

您好,连接交换机后会立刻linkdown还是正常通信一段时间才会linkdown?

wxheky 发表于 2022-12-16 14:09

张饕餮 发表于 2022-12-16 11:29
您好,连接交换机后会立刻linkdown还是正常通信一段时间才会linkdown?

是无通讯过一段时间会linkdown(1-2小时内,直连电脑也是一样),正常有通讯的时候没发现断线。
读取phy_stat = ETH_ReadPHYRegister( gPHYAddress, PHY_BSR); 这个和没连网线的时候数据一样,0x1809
开机连接网线正常读取的时候是0x182D

张饕餮 发表于 2022-12-29 16:49

您好,KEEPLIVE_ENABLE仅保持TCP的连接与否并不会导致linkdown,您那边可以检查一下硬件电路,可以通过EVT板子下载最新的EVT例程测试一下是否会出现同样的现象呢。

tpgf 发表于 2023-1-5 15:13

这种方式的连接 是不是需要一个比较可靠的心跳信号呢

xiaoqizi 发表于 2023-1-5 15:24

无通讯过一段时间会linkdown,正常有通讯的时候一般不会断线

木木guainv 发表于 2023-1-5 15:35

需要特定的握手信息吗或者时序上对应不上

zljiu 发表于 2023-1-5 15:45

想要保持TCP的连接是不是需要特定频率的心跳信号啊

tfqi 发表于 2023-1-5 15:56

在断开连接的时候回返回一些信息码吗

wxheky 发表于 2023-11-25 19:59

最近测试发现6路中断输入(10K*6路),跑一段时间(几小时不等),以太网会崩溃,有串口没有问题。
页: [1]
查看完整版本: CH32F207VCT6 网口连接交换机,过一段时间,link灯灭掉