打印

【求助】 我需要帮助!USB与CAN的通信

[复制链接]
1224|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
arm菜鸟人|  楼主 | 2013-3-1 13:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个帖子首先是找各位的帮助;其次,也是USB_CAN通信的总结吧。

用周立功SmartCortex M3-1700 的开发板,Keil的IDE,J-Link下载仿真器。使用的是开发板的例程。在USBSimpleDemo的例程里修改的。
整个数据链路:PC -> 吉阳光电USB_CAN -> LPC1700开发板 -> USB数据线 - >PC
经过测试发送,提供的上位机 只能接收 10 字节数据。而且还必须点击“发送”后,才能收到USB数据。但是,我有一点不明白:为什么用 Bus Hound 不能监测到数据呢?而且,还出现USB驱动安装不上的问题。不如开了两路 CAN 时 安装驱动不成功,在有的机子上安装不了驱动。打电话问周立功技术支持,是各种没联系上。

我开发的流程是这样的:
我将整个任务都放在 void  usbDeviceDemo (void) 函数里。然后对任务进行了分解:
1、将接收到的CAN数据打包成USB数据,通过USB发送出去。
2、将接收到的USB数据打包成CAN数据,通过CAN发送出去。
其中,例程里的CAN开发包和USBDev开发包里提供了相应的函数:
1、unsigned char CANSend(unsigned char Ch, unsigned char BUFNum)
2、UINT8 usbDevWriteEndpoint (UINT8 ucEpIndex, UINT8 *pucWriteBuf, UINT8 ucWriteLen)
我首先是从CAN到USB的。编写了一个将接收到CAN数据存到USB发送缓冲区的函数:
void CANTOUSB(INT8U *ucUSBDataBuff,unsigned char Ch, unsigned char BUFNum)
程序如下:
void CANTOUSB(INT8U *ucUSBDataBuff,unsigned char Ch, unsigned char BUFNum)
{

测试_双向_5_程序段.jpg (92.19 KB )

测试_双向_5_程序段.jpg

测试_双向_4.jpg (254.08 KB )

测试_双向_4.jpg

测试_双向_3.jpg (219 KB )

测试_双向_3.jpg

测试_双向_2.jpg (225.69 KB )

测试_双向_2.jpg

测试_双向_1.jpg (199.5 KB )

测试_双向_1.jpg

测试结果_USBtoCAN_成功.jpg (169.45 KB )

测试结果_USBtoCAN_成功.jpg

测试结果_CANtoUSB_失败.jpg (188.84 KB )

测试结果_CANtoUSB_失败.jpg

CANtoUSB 程序段.jpg (80.93 KB )

CANtoUSB 程序段.jpg

USBtoCAN程序段2.jpg (63.05 KB )

USBtoCAN程序段2.jpg

USBtoCAN程序段1.jpg (138.71 KB )

USBtoCAN程序段1.jpg

CAN_usbDevSimpleDemoV0.0.zip

914.88 KB

相关帖子

沙发
arm菜鸟人|  楼主 | 2013-3-1 13:41 | 只看该作者
本帖最后由 arm菜鸟人 于 2013-3-1 13:52 编辑

发现还不能讲这么多话,后一段被系统吃掉了!
好不容易码的字。

使用特权

评论回复
板凳
arm菜鸟人|  楼主 | 2013-3-1 13:46 | 只看该作者
大家看源码吧。在测试截图里有我的问题体现。
我的问题是这样的,就是发送CAN数据,USB接收不到。并且上位机会死掉。
我用CAN自收发测试,发现只能接收一次CAN数据,并且一直没有接收到USB数据。
详见这个帖子的“测试结果_CANtoUSB_失败.jpg“附图。

使用特权

评论回复
地板
john_lee| | 2013-3-1 14:31 | 只看该作者
没用过NXP的USB,只能从USB协议方面帮助你,但你需要说明USB device的配置情况,如class,subclass,protocol等等,最好把所有的描述符都贴出来,如果在PC上装了驱动,也要说明。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
arm菜鸟人 + 3 感谢您的建议!
5
arm菜鸟人|  楼主 | 2013-3-1 18:44 | 只看该作者
john_lee 发表于 2013-3-1 14:31
没用过NXP的USB,只能从USB协议方面帮助你,但你需要说明USB device的配置情况,如class,subclass,protoc ...

非常感谢你的回复与指导。
最后一个源码包里有配置描述符,不过我没有细看。PC上是要安装驱动的。
附件是USB上位机MFC源码以及驱动安装包。
说实话,在这方面是小白。

usbDevSimplePC.zip

167.24 KB

上位机MFC源码

USB Common Drv.zip

36.44 KB

USBDev驱动

使用特权

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

本版积分规则

个人签名:感染属性。

34

主题

539

帖子

1

粉丝