查看: 61|回复: 0

[评测分享] 【米尔-MYD-LR3568-GK开发板--试用评测】4——CAN通讯测试

[复制链接]
  • TA的每日心情
    擦汗
    昨天 21:24
  • 签到天数: 153 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 3 天前 | 显示全部楼层 |阅读模式
    分享到:
    CAN通讯协议在工业自动化和汽车通讯中具有广泛的应用,本次测试一下米尔RK3568上的CAN通讯功能。

    1. 线路连接
    关于CAN的基础知识我就不再复制粘贴了,大家可以自己去寻找资料,这里主要说明一下开发板上的CAN相关环境。
    首先,MYD-LR3568-GK开发板上有两路CAN,分别是J13的29/31号针脚和16/18号针脚,如下图所示(见硬件用户手册):
    01.jpg

    其中29/31针脚对应的CAN0的RX/TX,而16/18对应的是CAN1的RX和TX。
    这个地方需要说明(吐槽)的是,这个是CAN控制器的TXD和RXD,和我们常用的CAN差分信号(CAN-H,CAN-L)还存在差别。这种差别类似于TTL的UART和RS232之间的差别。
    所以在测试时,需要找一个CAN收发器,常见的是NXP TJA1040之类的,翻箱倒柜找出来这么个玩意儿,看丝印又不太像,应该以前用过的模块:
    02.jpg


    先把线接到开发板上去。注意:
    开发板和收发器模块之间,TX和TX连接,RX和RX连接,不要做交叉,这是一些**常犯的错误(这个不是UART),随后电源和地线要接上。
    最后是把逻辑分析仪接收发器模块上的CAN-H和CAN-L。一堆线,最后的效果如下:
    4c78ed8b5bf2d9c8492614506527c93.jpg

    2. 环境配置
    在开发板所携带的Linux系统中,已经集成好了基于SocketCAN的CAN-Utils,即常用什么candump,cansend之类的命令行工具。
    不过在使用之前,需要线配置好CAN的波特率等。使用如下命令查看CAN网络:
    1. ifconfig -a
    复制代码
    可以看到有CAN0和CAN1两路CAN,我们以CAN0为测试对象。
    03.jpg


    配置命令行:
    1. ifconfig can0 down
    2. ip link set can0 type can bitrate 250000
    3. ifconfig can0 up
    复制代码
    即可配置CAN0网络的波特率为250kbps,并最后打开CAN0网络。

    还可以通过命令查看状态:
    1. ip -detail link show can0
    复制代码
    运行结果如下:
    04.jpg

    这表明CAN0已经启动了。

    3. 通讯测试
    打开逻辑分析仪,配置一下参数:
    05.jpg

    注意这里的波特率和前面一样都是250kbps。

    使用命令发送一帧报文:
    1. cansend can0 18f055d0#0123456789abcdef
    复制代码
    这条命令的效果是在CAN0网络上发送报文ID=8f055d0,报文数据场内容为01 23 45 67 89 ab cd ef的报文,使用逻辑分析仪抓取数据如下:
    10.jpg

    完整的报文

    11.jpg

    报文的时间片

    12.jpg

    报文解析结果

    可见通讯功能正常。本来还有一个CAN采集卡,不过落单位了就不用电脑端的CANTest采集和发送数据了,这里就不再演示了。

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-14 11:50 , Processed in 0.122223 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.