###笔者 Jackknife 主要负责 ADAS 领域,对 NXP S32V234 拥有非常深入的研究,如果对 S32V234 方案感兴趣,欢迎联系。
在 S32V234 开发过程中,工程师通常需要用到 CAN 总线传输数据,
(CAN 总线没有使能,通过 CAN 总线发送数据没有反应)
今天会跟大家一起探讨,如果进行 CAN 总线通信测试!
一、下载编译 can-utils 工具,编译后生成测试命令。
编译方法:
Can-utils 使用 GNU automake 方法编译。在工具包根目录下创建automake.sh 脚本,内容如下:
(其中 CC 是交叉编译器, --host 指定运行平台,--prefix 指定安装目录)
执行完脚本后在工具包根目录下生成 cansendcandump 等可执行文件,将这些拷贝到根文件系统下进行测试
二、测试 CAN 通讯:
步骤 1:up can0
$ip link set can0 up type can bitrate 125000
$ifconfig can0 up
$ifconfig
步骤 2:使用一款 CAN 收发器测试发送数据
将 CAN 收发器连接到板子上 CAN 接口
输入命令:cansend can0 500#1E.10.10
收发器上显示收到三字节数据 1E 10 10
步骤 3:测试接收数据
输入命令:candump can0
在收发器发送区域设置 ID 为 8,长度为 8,数据为 11,22,33,44,55,66,77,88
开发收到如下数据
三、针对 S32V234-EVB2 CAN PHY(TJA1145)调试
因为 CAN PHY(TJA1145)需要通过 SPI 总线进行初始化,所以需要进行以下的配置。
步骤 1 :编译生成 spidev 执行文件
输入命令:
$cd …/linux/Documentation/spi/
$…/gcc-arm-1/bin/aarch64-linux-gnu-gccspidev_test.c –o spidev
$ls
步骤 2 :将 spidev 文件移至路径 …/rootfs/usr/bin//*rootfs 为加载的根文件系统*/
步骤 3 :将 can_utils 编译生成的文件移至路径 …/rootfs/usr/bin/
步骤 4 :将 TJA1145 从备用状态设置为激活状态
输入以下命令
#spidev_test -D/dev/spidev0.7 -v -H -b 8 -p "\x02\x07"
#spidev_test -D/dev/spidev0.6 -v -H -b 8 -p "\x02\x07"
#spidev_test -D /dev/spidev0.7 -v -H -b 8 -p"\x03\x07"
#spidev_test -D /dev/spidev0.6 -v -H -b 8 -p"\x03\x07"
#ip link set can0 type can bitrate 500000
#ifconfig can0 up
步骤 5:测试发送功能
本次测试使用 CAN 收发器相关工具包:
(应根据实际使用的收发工具获取相应的工具包)
a、首先安装win7silicon_cp210x_vcp_6.6.1.0 的驱动
b、其次打开EmbededDebug v2.0 串口工具软件
c、波特率设置为 115200
d、启动
开发板输入命令:
#cansend can0 500#1E.10.12
#cansend can0 500#1E.10.12
PC :接收数据如下
步骤 6 :测试接收功能
开发板输入命令:
#candump can0
PC:发送如下
开发板结果显示:
完成测试!!!