落风的个人空间 https://www.eechina.com/space-uid-138363.html [收藏] [复制] [RSS]

博客

嵌入式开发 迅为开发板 4418开发板can测试内容分享

已有 627 次阅读2017-6-27 09:33

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

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

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

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

2. 将测试程序放到开发板上。
  Android系统的话将client和server放到/data下;ubuntu和QT系统就把这两个文件放到根目录下就行。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下
netcfg在ubuntu/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端试试每个板子的收发。

详情了解:http://topeetboard.com 更多了解:https://arm-board.taobao.com


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
返回顶部