请选择 进入手机版 | 继续访问电脑版
搜索

19

主题

48

帖子

232

积分

中级会员

Rank: 3Rank: 3

积分
232
发表于 2017-3-8 18:15:22 7583 浏览 0 回复

迅为can测试

本帖最后由 Linux 于 2017-4-17 11:27 编辑

迅为CAN 测试
本文档适用的范围
① 硬件平台 :4412精英版以及全能版开发板。(4418/6818开发板以及imx6q开发板测试的道理是一样的可能细节有些不同,在这里我没有做实验,感兴趣的可以按照这个文档测试一下)
②软件平台 :Android4.0Android4.4QTubuntu
测试程序: 这个在网盘上有提供,另外我也会上传

一.硬件连接
can 通信要求两端都支持can功能,所以需要两块支持can的开发板。准备两个长短相同的线,连接时必需1脚对应1脚,2脚对应2脚,不能交叉连接。两根线最好长短一致,并且相互缠绕在一起。这样可以减小噪声,降低误码率。

二.软件测试
下载can_test压缩包,解压。出现以下文件:clientclient.cserverserver.cMakefileapp.tar.gz(这里我们不会用到app.tar.gz)。clientserver两个文件是可执行文件,分别由client.cserver.cubuntu环境下运行Makefile后交叉编译得来。感兴趣的可以编译下,我们这里直接使用编译出来的测试程序。

1. 检测系统内核是否支持can功能。
由于开发板的canRFID共用了spi所以支持RFID的内核肯定是没有把can配置上,或者其他原因在内核中没有配置can功能。所以首先得看看内核是否支持了can,方法如下:
输入ifconfig 或者是netcfg看一下有没有can0的网络信息,如果有证明can已经配置成功。

2. 将测试程序放到开发板上。
  Android系统的话将clientserver放到/data下;ubuntuQT系统就把这两个文件放到根目录下就行。QT的话可能得用到NFS把测试程序导进去,其他的用TF卡即可。分别使用一下命令设置两个文件的权限:
chmod 777 client
Chmod 777 server
这两可执行文件一个是用来发送数据的,另一个是用来接收数据的。

3. 正式测试
① 在Android系统下
首先输入netcfg会发现有can总线但是处于DOWN状态,所以先得让can总线UP。在“两个”开发板的控制台上输入
Ifconfig can0 up
然后到其中一个开发板的/data下运行运行服务器./server,在另一端运行客户端./client。如果成功那么在client端如打印如下信息:
can0 can_ifindex = 3
Send a CAN frame from interface can0

Server端会打印如下信息:
can0 can_ifindex = 3
Received a CAN frame from interface can0
frame message
--can_id = 123
--can_dlc = 5
--data = hello
测试成功后可以换一下server端和client端试试每个板子的收发。
ubuntu/QT
netcfgubuntu/QT下不支持,所以输入ifconfig看到没有can0 net,证明现在can0总线没有UP,接下来的步骤和Android的差不多。

输入Ifconfig can0 up
然后到其中一个开发板的根目录下运行运行服务器./server,在另一端运行客户端./client。如果成功那么在client端如打印如下信息:
can0 can_ifindex = 3
Send a CAN frame from interface can0

Server端会打印如下信息:
can0 can_ifindex = 3
Received a CAN frame from interface can0
frame message
--can_id = 123
--can_dlc = 5
--data = hello
测试成功后可以换一下server端和client端试试每个板子的收发。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

登录或注册

官方客服

QQ:2551456065

官方QQ群

195631883

扫一扫关注迅为公众号

群号652692981

 
快速回复 返回顶部 返回列表