打印
[复制链接]
3342|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gengxuetao|  楼主 | 2010-8-13 23:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于项目需要,做了一个TCP转CAN的网关(客户端),硬件平台STM32F103C8T6+ENC28J60
软件平台:FreeRTOS+LwIP
现在的情况是,
1、ENC28J60,查询接收,服务器进行100MS发包测试,每次固定发20字节,客户端回发收到的数据,可以运行10多个小时没有问题,但是中断接收的话,1个多小时就挂掉了,大家有没有遇到ENC28J60中断接收的问题?
2、CAN节点进行100MS向客户端发送数据测试,客户端进行CRC16计算后,封包发给服务器,同时服务器间隔300MS发数据给客户端,客户端回传数据,测试的结果是,CAN发送来的消息可以正常转发,服务器的消息回出现丢包(为防止发送出问题,使用了互斥信号量),运行2个多小时就挂掉了,不清楚是不是自己机制有问题?
3、由于RAM总共就20K,不清楚是不是这个现在了LwIP的性能,如果60个CAN节点向TCP转CAN网关发包,效率是不是很差,单个TCP包最大20个字节?
4、用ECN28J60,理论上可以达到多少?
这里人气很冷清,希望大虾给点指点,谢谢

相关帖子

沙发
gengxuetao|  楼主 | 2010-8-14 09:01 | 只看该作者
5、如果用这个方案可以实现60多个CAN节点的数据通过TCP转CAN网关发送给服务器吗,所有的数据都进行应答。
6、有没有更好的方案,不过呢,现在项目紧,由于前期一个做TCP转CAN的人走了,我接手到现在还不到一个月,他的方案用的是uIP,系统时UCOSII,我改成了现在的软件平台,现在一个CAN节点连接没有问题,担心节点多了会不会有想不到的问题。
7、使用LwIP,一般需要多少的RAM
希望高手指点下,刚做的大家可以交流

使用特权

评论回复
板凳
gengxuetao|  楼主 | 2010-9-12 23:08 | 只看该作者
测试的过程中,查询ENC28J60有没有发送结束,如果结束就发送下一个包,结果运行30分钟左右,就出现只能收不能发的问题,看了手册,试了很多方法都没有解决问题,后来修改为200MS的间隔,发送数据包,正常运行14个小时没有问题
不清楚这个是ENC28J60的问题,还是LWIP本身的机制,自己没有搞清楚的原因

发现论坛对这类问题,回答的很少,看来求人不如求己啊

使用特权

评论回复
地板
gengxuetao|  楼主 | 2010-11-29 14:58 | 只看该作者
没有人给予解答,由于工作上的原因,这个项目被搁置了一段时间,上个周末自己又仔细看了下源代码,调整了几个参数,主要是RAM分配和缓冲区设置,然后加大了LWIP的总邮箱,问题,解决了,服务器和TCP_CAN同事100MS快速发包,运行正常,呵呵
有需要TCP转CAN开发板的兄弟,可以联系本人,QQ:472642436
提供源代码和技术支持,可以通过串口配置TCP_CAN参数,提供PC程序
硬件方案:
         STM32F103C8T6+ENC28J60
软件:
         FreeRTOS+LWIP

使用特权

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

本版积分规则

38

主题

118

帖子

0

粉丝