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

Exynos4412/4418/6818/i.MX6开发板俱乐部

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1317|回复: 5

迅为CAN 测试

[复制链接]

19

主题

48

帖子

232

积分

版主

Rank: 7Rank: 7Rank: 7

积分
232
发表于 2017-3-8 18:04:37 | 显示全部楼层 |阅读模式
本帖最后由 Linux 于 2017-4-17 11:23 编辑

本文档适用的范围
① 硬件平台 :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
回复

使用道具 举报

0

主题

4

帖子

29

积分

新手上路

Rank: 1

积分
29
发表于 2017-4-13 17:07:08 | 显示全部楼层
我按照手册重新配置了内核,怎么还是没有mpu这个
回复 支持 反对

使用道具 举报

19

主题

48

帖子

232

积分

版主

Rank: 7Rank: 7Rank: 7

积分
232
 楼主| 发表于 2017-4-17 11:23:55 | 显示全部楼层
yangxueyangxue8 发表于 2017-4-13 17:07
我按照手册重新配置了内核,怎么还是没有mpu这个

你好,我已经更正,你在看一下
回复 支持 反对

使用道具 举报

8

主题

21

帖子

199

积分

注册会员

Rank: 2

积分
199
发表于 2017-7-21 15:20:43 | 显示全部楼层
你好!
1. 如果想在Linux 内核的驱动中修改CAN总线的波特率该怎么修改,具体步骤是怎么操作的?
2. 如果是在内核文件 drivers/net/can/mcp251x.c 中的函数static int __devinit mcp251x_can_probe(struct spi_device *spi)修改priv->can.bittiming.bitrate的值是不能成功的修改波特率的
3. 网上好多介绍修改can总线波特率方法都是第三方工具 比如 ip 等工具实现的
回复 支持 反对

使用道具 举报

0

主题

1

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2018-6-26 14:38:46 | 显示全部楼层
发送十次第十一次就显示缓冲区已满,然后在发送数据就会出错
回复 支持 反对

使用道具 举报

52

主题

206

帖子

1562

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1562
发表于 2018-7-16 10:08:30 | 显示全部楼层
群共享中有使用canconfig测试文档,可以试试~
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|手机版|迅为电子 ( 京ICP备12036083号-2

GMT+8, 2018-9-25 12:44 , Processed in 0.127514 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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