查看: 1367|回复: 0

[评测分享] 【树莓派5测评】 07.玩转CAN通讯

[复制链接]
  • TA的每日心情
    慵懒
    前天 10:54
  • 签到天数: 186 天

    连续签到: 2 天

    [LV.7]常住居民III

    发表于 2024-3-17 18:59:48 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 stm1024 于 2024-3-17 20:02 编辑

    树莓派的40 PIN标准,一直是经典的针脚定义,不光自己产品线延续这种针脚定义,甚至还影响了其他的各种派开发板。
    而CAN(controller area network,控制器局域网络)作为一种十分常见的通讯协议,在汽车和工业控制中得到了很多应用,树莓派自然也支持。
    不过想要通过树莓派进行CAN通讯,存在一个小问题是树莓派开发板并没有数据链路层,也就是我们通常所说的PHY,翻出了以前树莓派4B时候的一个HAT,介绍如何通过树莓派进行数据通讯。
    用到的帽子(HAT)是微雪的RS485 CAN HAT,具备CAN功能,使用微芯半导体的SPI接口CAN控制器MCP2515,搭配的CAN收发器是德州仪器的SN65HVD230,支持CAN 2.0A和CAN2.0B,好处是树莓派通过SPI接口连接芯片,对于树莓派使用该芯片不需要编写驱动,只需要打开设备树中的内核驱动即可使用,缺点是由于使用的是MCP2515,因此不支持CAN-FD,虽然有点小遗憾,但是在大部分情况下还是可以满足要求的。
    HAT长这样:
    111.jpg

    针脚定义的话,靠近凤凰端子那一侧是1,靠近晶振那一侧是40,因此安装方式如下:
    2024-03-16_224449.jpg

    软件环境准备工作如下:
    1. 安装lgpio
    脚本命令如下:
    1. wget https://github.com/joan2937/lg/archive/master.zip
    2. unzip master.zip
    3. cd lg-master
    4. sudo make install
    复制代码

    2. 配置config.txt
    注意:config.txt现在位于/boot/firmware/目录下,而不是之前的/boot目录下。
    通过nano打开该文件:
    1. sudo nano /boot/firmware/config.txt
    复制代码
    然后再最后添加两行:
    1. dtparam=spi=on
    2. dtoverlay=mcp2515-can0,oscillator=12000000,interrupt=25,spimaxfrequency=2000000
    复制代码
    保存退出。
    222.jpg

    3. 确认打开SPI外设
    在树莓派配置中通过Preference下面的Respberry Pi Configuration打开对话框,确认SPI外设是打开的,如下图所示:

    20240317_19h41m48s_grim.png


    4. 安装CAN-utils同样使用socketCAN,因此需要安装CAN-Utils,脚本命令如下:
    1. sudo apt-get install can-utils
    复制代码
    都搞完以后,reboot重启树莓派。

    5. 启动CAN并检查
    使用如下命令配置并启动CAN:
    1. sudo ip link set can0 up type can bitrate 100000
    复制代码
    然后通过ifconfig确认:
    1. ifconfig can0
    复制代码
    333.jpg
    表明CAN0设置成功。

    6. 测试
    接下来可以测试CAN通讯了,需要一个CAN采集卡及其运行在Windows系统的上位机程序,连接好线路以后,测试如下。
    在一个终端中使用cangen,生成随机CAN报文:
    1. cangen can0 -g 1000
    复制代码
    然后打开一个新的终端,在其中打开candump:
    1. candump can0
    复制代码
    最后打开Windows环境下的上位机程序,由于前面配置的波特率为100kbps,因此上位机程序也要做相应的配置,运行结果如下:
    444.jpg

    可见CAN报文的发送是很成功的,也可以将cangen终端关掉,然后在WindowsCAN上位机程序中发送报文,这是candump就可以显示接收到的报文了。

    555.jpg

    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-12-24 07:30 , Processed in 0.120992 second(s), 17 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.