jiangzhimin 发表于 2019-11-6 11:30:45

UCOSIII 移植W5500 做服务器时候有时候连接不上什么原因

做了个测试ucosiii 移植W5500 做服务器

voidTaskWinCC_task(void *p_arg)   //上位机通讯
{       
        OS_ERR err;
       
        p_arg = p_arg;
        while(1)
        {       
             OSSchedLock(&err);    //OS_CRITICAL_ENTER();                       
                do_tcp_server();         //接收上位机处理的数据 参考野火的代码               
                OSSchedUnlock(&err);   
                OSTimeDlyHMSM(0,0,0,5,OS_OPT_TIME_HMSM_STRICT,&err);       

        }
}


用网络调试助手,做客服端,发送命令,有时候连接不上,
但是do_tcp_server();         //接收上位机处理的数据 函数
在裸机 没有上ucosiii 系统时候它 能够实时相应

OSTimeDlyHMSM(0,0,0,5,OS_OPT_TIME_HMSM_STRICT,&err);       切换系统5ms   10ms   1ms 都不行,
而且把任务的优先级提高也不行。
各位有没有好的方法或cosiii 做到实时响应

jiangzhimin 发表于 2019-11-6 12:27:48

查了下 有人用LWIP 和ucosIII时候做位服务告速传输时候也不能实时通讯
各位有什么办法解决吗{:cry:}

18501501628 发表于 2019-11-6 12:42:31

jiangzhimin 发表于 2019-11-6 12:56:47

18501501628 发表于 2019-11-6 12:42
原子linux开发板,正宗的tcp/ip适合你

目前硬件只能是这样了,那是以后改版的事了

wye11083 发表于 2019-11-6 21:25:01

jiangzhimin 发表于 2019-11-6 12:56
目前硬件只能是这样了,那是以后改版的事了

那你只能配置中断了。os调度是有延时的,而且不一定能调度给你和程序用。

asj1989 发表于 2019-11-6 21:31:10

这肯定是你的代码有问题,和os没有关系

honami520 发表于 2019-11-6 21:51:14

我目前用ZYNQ驱动w5500,也是ucos3的,里面跑了10多个任务,3个http任务,2个tcp客户端,1个tcp服务端。都运行得很正常,每个任务都是按照设计运行得。

hyghyg1234 发表于 2019-11-6 21:57:15

和OS没啥关系,我W5500+freertos稳稳的,找找其他原因吧。

marshallemon 发表于 2019-11-6 23:15:25

honami520 发表于 2019-11-6 21:51
我目前用ZYNQ驱动w5500,也是ucos3的,里面跑了10多个任务,3个http任务,2个tcp客户端,1个tcp服务端。都 ...

W5500你做到实际多高的通讯速率?另外问下W5500工业应用可靠吗?

honami520 发表于 2019-11-7 08:33:48

marshallemon 发表于 2019-11-6 23:15
W5500你做到实际多高的通讯速率?另外问下W5500工业应用可靠吗?

实际速度还是挺慢得,我这个应用是发送几百KB的数据http发送给服务器,然后等待服务器应答的几十个字节。综合测算下来速度大概只能达到800KB/S的速度。
工业应用还可以吧,程序里面处理好了后,硬件本身受到干扰的情况还比较小。这个W5500的老版本产品已经投放运行一年多了。

jiangzhimin 发表于 2019-11-7 11:14:49

honami520 发表于 2019-11-6 21:51
我目前用ZYNQ驱动w5500,也是ucos3的,里面跑了10多个任务,3个http任务,2个tcp客户端,1个tcp服务端。都 ...

您的tcp 切换的时间是多少呢

honami520 发表于 2019-11-7 16:13:52

jiangzhimin 发表于 2019-11-7 11:14
您的tcp 切换的时间是多少呢

每个任务都独立运行啊!每个任务使用w5500的一个端口,一共8个端口嘛,不需要切换。任务切换时间根据需要来。响应快的10ms,响应慢的100ms就行了。

jiangzhimin 发表于 2019-11-19 11:10:52

honami520 发表于 2019-11-7 16:13
每个任务都独立运行啊!每个任务使用w5500的一个端口,一共8个端口嘛,不需要切换。任务切换时间根据需要 ...

测试多次, 把w5500做服务器的任务优先级 提高或降低其他平级,出现丢包,数据不返回,现象,
您设置的作为客服端或服务器端的优先级是一样的吗

jiangzhimin 发表于 2019-11-19 12:20:16

hyghyg1234 发表于 2019-11-6 21:57
和OS没啥关系,我W5500+freertos稳稳的,找找其他原因吧。

您的W5500做服务器时候,切换任务设置的时间是多少ms

honami520 发表于 2019-11-19 13:08:11

jiangzhimin 发表于 2019-11-19 11:10
测试多次, 把w5500做服务器的任务优先级 提高或降低其他平级,出现丢包,数据不返回,现象,
您设置的作 ...

就是把官方的例子改了下,放到任务里面跑就行了。丢包,跟ucos的任务优先级这些没有关系的,你肯定关注错了重点。先看看单线程跑丢不丢包吧,说不定你的5500程序本身就有bug。
你老在关注ucos的设置。我觉得肯定是本末倒置了
页: [1]
查看完整版本: UCOSIII 移植W5500 做服务器时候有时候连接不上什么原因