[嵌入式网络系统设计] TCP转CAN

[复制链接]
 楼主| 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

粉丝
快速回复 在线客服 返回列表 返回顶部

38

主题

118

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部