查看: 44|回复: 0

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

[复制链接]
  • TA的每日心情
    奋斗
    昨天 20:49
  • 签到天数: 160 天

    连续签到: 8 天

    [LV.7]常住居民III

    发表于 昨天 22:50 | 显示全部楼层 |阅读模式
    分享到:
    CAN网络是一种串行通信网络,具有传输速度快、成本低、可靠性高等优点。它广泛应用于汽车计算机控制系统和嵌入式工业控制局域网中,并且由于其高性能和可靠性,也被应用于航空业、工业控制、安全防护等领域,具有如下技术特点:
    ‌高传输速率‌:CAN网络的传输速率可以达到1Mbps,适用于高速数据传输。
    ‌可靠性高‌:CAN网络具有较强的纠错能力和抗干扰能力,能够检测和隔离传输中的错误。
    ‌灵活性‌:CAN网络支持多主通信,网络中的所有节点都可以作为主设备进行通信,且网络扩展方便,新增通信单元时,旧的单元和硬件无需任何改变。
    ‌差分信号‌:CAN网络使用差分信号进行通信,通过两根信号线(CANH和CANL)传输信号,具有较强的抗干扰能力和传输稳定性。

    通常,从M0核的ARM芯片到各种高级的芯片,都具有CAN外设,RK3568中就具有两路,在LR3568-GK开发板上也通过排针引出了,但是有个问题是这个排针引出的只是TTL信号,而在开发板和CAN网络之间还需要一个收发器,看官方的例子应该是将收发器做到那个ICE002的底板上去了,这给我们的应用带来了一点儿麻烦,之前的测试中使用自己找的收发器做过测试,这次我们另辟**,使用Linux系统自带的VCAN。
    什么是VCAN呢?Linux Vcan(Virtual CAN)在虚拟网络中主要用于模拟和测试CAN(Controller Area Network)网络通信,通过VCAN,用户可以在虚拟环境中模拟CAN网络,进行通信测试和开发,而无需依赖实际的物理硬件。

    使用方式如下:
    首先查看开发板上的CAN网络:
    01.jpg

    可以看到有CAN0和CAN1,但是前面也说过了,这两个是硬件CAN,没有收发器,不太方便使用。
    通过如下命令创建一个虚拟的CAN,即VCAN0:
    02.jpg

    接下来就是测试,在can-utils中提供了cangen命令,它是can generator的缩写,用于在特定的CAN网络上生成各种期望的随机CAN报文,先看看帮助文档:
    03.jpg

    可以构造生成周期为100ms的扩展帧报文,放入后台执行,并通过candump查看报文:
    04.jpg

    可见是能够成功发送和接收的。
    接下来是使用QT开发一个图形界面,开发和编写代码,以及编译过程从略,运行效果如下:
    111.png

    通过时间戳也可以看到,报文周期差不多是100ms。

    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-11-21 17:08 , Processed in 0.120633 second(s), 16 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.