CANable USB转CAN适配器固件的安装(ubuntu20.04)

CANable USB转CAN适配器固件和驱动的安装(以candlelight和pcan为例)ubuntu20.04

candlelight

candlelight是什么

  • Candlelight是CANable设备的固件之一,用于将CANable设备转换为本机CAN设备,无需使用slcand。它允许CANable设备直接在Linux系统上以本机CAN设备的形式出现,并且与SocketCAN一起使用,无需额外的驱动程序或转换工具。

  • 这意味着你可以直接使用Linux上的标准CAN工具(如can-utils)和Wireshark等来与CAN总线进行交互。

  • 以下是Candlelight固件的主要特点和功能:

  1. 本机CAN设备支持:Candlelight固件使得CANable设备可以在Linux系统上直接以本机CAN设备的形式出现,而无需使用slcand来创建虚拟串口。

  2. 高性能:与使用串口线固件相比,使用Candlelight固件可以获得更高的性能,因为slcand被完全绕过。

  3. 与SocketCAN兼容:Candlelight固件与SocketCAN兼容,因此可以与Linux系统上的SocketCAN框架集成,并且可以使用所有标准的can-utils命令行工具进行通信和分析。

  4. Wireshark集成:由于Candlelight固件与SocketCAN兼容,因此你可以使用Wireshark等网络分析工具直接捕获和分析CAN总线上的数据流。

  5. 不支持FD帧:目前,CANable 2.0的Candlelight固件不支持FD(Flexible Data-Rate)帧,这意味着它只能处理标准的CAN帧,无法处理高速数据传输的FD帧。

固件安装与更新

  • 用镊子短接boot引脚,上点后进入bootloader
使用网页应用程序更新candlelight
  • 以访问CANable更新程序站点,通过简单的步骤来更新CANable设备。网页应用程序提供了一个易于使用的界面,指导用户完成更新过程。

  • 地址:https://canable.io/updater/canable1.html

在这里插入图片描述

  1. 准备CANable设备

    • 首先,将CANable设备上的"Boot"跳线移动到引导位置,或者在CANable Pro上按住"Boot"按钮,然后将设备插入计算机。
  2. 选择并更新固件

    • 接下来,用户需要在网页中选择要刷新的固件版本,并点击下方的"Connect and Update"按钮。

    在这里插入图片描述

    • 这将触发与CANable设备的连接,并开始更新固件。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    • 固件安装更新完成,取下镊子,不再短接boot0,重新插拔设备,打开终端键入ifconfig -a,识别到can0,则固件安装成功。

    在这里插入图片描述

使用linux下的dfu-util安装更新固件candlelight

在Linux系统下更新和安装固件可以通过以下步骤完成:

1. 安装dfu-util
sudo apt-get update
sudo apt-get install dfu-util
2.安装gcc-arm-none-eabi和CMake
sudo apt-get update
sudo apt-get install gcc-arm-none-eabi cmake
3.获取用于烧录的二进制镜像文件
  • 解压candlelight源码文件
tar xvf candleLight_fw.tar.bz2
  • 进入candleLight_fw目录
cd candleLight_fw
  • 创建bulid目录并进入(如果本来就有build要先删除)
mkdir build
cd build
  • 使用 CMake 生成 Makefile,指定交叉编译的工具链文件
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/gcc-arm-none-eabi-8-2019-q3-update.cmake
  • 编译
make
  • 编译完之后,可看到镜像candleLight_fw\build\candleLight_fw.bin

在这里插入图片描述

在这里插入图片描述

4. 刷新设备固件

一旦dfu-util安装完成,你可以使用以下命令来刷新CANable设备的固件:

sudo dfu-util -d 0483:df11 -c 1 -i 0 -a 0 -s 0x08000000 -D candleLight_fw.bin

这个命令会将指定的固件文件(candleLight_fw.bin)传输到设备的固件存储位置,并刷新设备的固件。

在这里插入图片描述

5. 完成更新

刷新固件后,确保将CANable设备上的"启动"跳线移回到原始位置,并重新插入或拔出设备。这样你就成功地更新了设备的固件。

在这里插入图片描述

  • 固件安装更新完成,取下镊子,不再短接boot0,重新插拔设备,打开终端键入ifconfig -a,识别到can0,则固件安装成功。

在这里插入图片描述

pcan

pcan是什么

PCAN 是 PEAK-System Technik GmbH(PEAK 系统技术有限公司)开发的一系列产品的名称,专门用于控制器局域网络(Controller Area Network,简称 CAN)的应用。CAN 是一种串行通信协议,最初设计用于车辆中的实时控制系统,但现在已被广泛用于工业控制、自动化、航空航天等领域。

PCAN 产品系列包括各种硬件和软件工具,用于支持 CAN 总线的开发和应用。其中一些产品和工具包括:

  1. PCAN 接口卡:这些是用于连接计算机和 CAN 总线的硬件接口,可通过 USB、PCI、PCI Express 或 PC/104 接口连接到计算机,使计算机能够与 CAN 总线通信。

  2. PCAN 分析器:用于分析 CAN 总线通信的硬件和软件工具,可以捕获和解码 CAN 总线上的消息,帮助诊断和调试 CAN 总线网络。

  3. PCAN 开发工具包(SDK):用于开发 CAN 总线应用程序的软件开发工具包,提供了一系列 API 和示例代码,帮助开发者在各种操作系统(如 Windows、Linux)上编写自己的 CAN 应用程序。

  4. PCAN 总线分析软件:用于监视、记录和分析 CAN 总线通信的软件工具,提供实时图形显示和日志记录功能,帮助用户分析 CAN 总线上的数据流。

总的来说,PCAN 是一个成熟的产品系列,提供了丰富的硬件和软件工具,用于支持 CAN 总线的开发、调试和应用。这些工具被广泛应用于汽车行业、工业控制、航空航天等领域,为 CAN 总线应用提供了强大的支持和解决方案。

固件安装与更新

  • 以访问CANable更新程序站点,通过简单的步骤来更新CANable设备。网页应用程序提供了一个易于使用的界面,指导用户完成更新过程。

  • 地址:https://canable.io/updater/canable1.html

在这里插入图片描述

  1. 准备CANable设备

    • 首先,将CANable设备上的"Boot"跳线移动到引导位置,或者在CANable Pro上按住"Boot"按钮,然后将设备插入计算机。
  2. 选择并更新固件

    • 接下来,用户需要在网页中选择要刷新的固件版本,并点击下方的"Connect and Update"按钮。

    在这里插入图片描述

    • 这将触发与CANable设备的连接,并开始更新固件。

    在这里插入图片描述

    在这里插入图片描述

    • 固件安装更新完成,取下镊子,不再短接boot0,重新插拔设备,打开终端(驱动安装完成后)键入pcaninfo识别到设备,则固件安装成功。

    在这里插入图片描述

使用linux下的dfu-util安装更新固件pcan

在Linux系统下更新和安装固件可以通过以下步骤完成:

1. 安装dfu-util
sudo apt-get update
sudo apt-get install dfu-util
2.安装gcc-arm-none-eabi和CMake
sudo apt-get update
sudo apt-get install gcc-arm-none-eabi cmake
3.获取用于烧录的二进制镜像文件
  • 解压pcan源码文件
tar xvf pcan_cantact.tar.bz2
  • 进入pcan_cantact目录
cd pcan/pcan_cantact/build-canable
  • 编译
make
  • 编译完得到:pcan_cantact/build-canable/pcan_canable_hw.bin pcan_canable_hw.hex
4. 刷新设备固件

一旦dfu-util安装完成,你可以使用以下命令来刷新CANable设备的固件:

sudo dfu-util -d 0483:df11 -c 1 -i 0 -a 0 -s 0x08000000 -D pcan_canable_hw.bin

这个命令会将指定的固件文件(pcan_canable_hw.bin )传输到设备的固件存储位置,并刷新设备的固件。

在这里插入图片描述

5. 完成更新
  • 刷新固件后,确保将CANable设备上的"启动"跳线移回到原始位置,并重新插入或拔出设备。这样你就成功地更新了设备的固件。

在这里插入图片描述

  • 固件安装更新完成,取下镊子,不再短接boot0,重新插拔设备,打开终端(驱动安装完成后)键入pcaninfo识别到设备,则固件安装成功。

在这里插入图片描述

驱动安装

  • 解压pcan驱动源码包
tar xvf peak-linux-driver-8.15.2.tar.gz
  • 进入peak-linux-driver-8.15.2目录
cd peak-linux-driver-8.15.2/
  • 清理之前的构建结果
make clean
  • 编译
make
  • 安装编译后的软件
sudo make install 
问题解决
  • 执行完上述步骤后,终端键入pcaninfo,出现如下错误

在这里插入图片描述

  • 即使驱动程序已经安装到系统中,但如果它没有正确加载到内核中,系统也无法识别它。
  • 在终端键入以下指令,手动加载模块,或者手动加载pcan.ko文件(执行 sudo insmod pcan.ko 命令以加载 pcan.ko 文件到内核中。)
sudo modprobe pcan
  • 之后在终端键入以下指令,确认PCAN相关的模块是否已经加载
lsmod | grep pcan

在这里插入图片描述

  • 之后键入pcaninfo,检查系统中是否存在 PCAN 驱动,并显示有关 PCAN 驱动版本、PCAN-Basic 版本以及已连接 PCAN 设备的信息。正常输出如下

在这里插入图片描述

pcaniew的安装

  • 下载软件源列表
wget -q http://www.peak-system.com/debian/dists/`lsb_release -cs`/peak-system.list -O- | sudo tee /etc/apt/sources.list.d/peak-system.list
  • 下载软件源公钥
wget -q http://www.peak-system.com/debian/dists/wheezy/peak-system.list -O- | sudo tee /etc/apt/sources.list.d/peak-system.list
  • 添加软件源公钥
wget -q http://www.peak-system.com/debian/peak-system-public-key.asc -O- | sudo apt-key add -
  • 更新软件包列表
sudo apt-get update
  • 安装pcanview-ncurses 应用程序
sudo apt-get install pcanview-ncurses
  • 查看是否安装成功
ls /usr/bin/pcanview
  • 运行
pcanview

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/26643.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

南卡、漫步者和Oladance开放式耳机哪个强!无广甄选测评!

在当前市场上,因为许多质量不行,音质平平的开放式耳机让消费者的选择陷入了困难。这些品质低下的产品既无法提供优秀的音频享受,长期佩戴还可能对使用者的听力健康造成健康问题。 作为一名经验丰富的音频设备评测专家,我建议在选…

2563. 统计公平数对的数目

题目&#xff1a; 给你一个下标从 0 开始、长度为 n 的整数数组 nums &#xff0c;和两个整数 lower 和 upper &#xff0c;返回 公平数对的数目 。 如果 (i, j) 数对满足以下情况&#xff0c;则认为它是一个 公平数对 &#xff1a; 0 < i < j < n&#xff0c;且 l…

LeetCode 算法:轮转数组c++

原题链接&#x1f517;&#xff1a;轮转数组 难度&#xff1a;中等⭐️⭐️ 题目 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步…

Yolo-World训练过程中使用wandb进行可视化

训练过程可视化有两种方式&#xff1a;wandb和tensorboard&#xff0c;这里我采用的是wandb&#xff0c;想要在训练过程中调用wandb只需要在要训练的配置文件&#xff08;如yolo_world_v2_l_vlpan_bn_sgd_1e-3_40e_8gpus_finetune_coco.py&#xff09;中加上一行代码即可&#…

9.1.3 简单介绍单阶段模型YOLO、YOLOv2、YOLO9000、YOLOv3的发展过程

9.1.3 简单介绍单阶段模型YOLO、YOLOv2、YOLO9000、YOLOv3的发展过程 前情回顾&#xff1a;9.1.2 简单介绍两阶段模型R-CNN、SPPNet、Fast R-CNN、Faster R-CNN的发展过程 摘要 YOLOYOLOv2YOLO9000YOLOv3基本思想使用一个端到端的卷积神经网络直接预测目标的类别和位置针对YOL…

【源码】SpringBoot编程式事务使用及执行原理

Spring事务 1、【源码】SpringBoot事务注册原理 2、【源码】Spring Data JPA原理解析之事务注册原理 3、【源码】Spring Data JPA原理解析之事务执行原理 4、【源码】SpringBoot编程式事务使用及执行原理 前言 《Spring事务系列》的前面几篇博文讲解了通过Transactional注…

FPGA - 滤波器 - FIR滤波器设计

一&#xff0c;数字滤波器 滤波器是一种用来减少或消除干扰的器件&#xff0c;其功能是对输入信号进行过滤处理得到所需的信号。滤波器最常见的用法是对特定频率的频点或该频点以外的频率信号进行有效滤除&#xff0c;从而实现消除干扰、获取某特定频率信号的功能。一种更广泛的…

如何高效管理和监控 Elasticsearch 别名及索引?

0、引言 在 Elasticsearch 项目中&#xff0c;管理和监控索引是开发者的一项重要任务。 尤其是当我们需要在项目的管理部分展示索引和别名的统计信息时&#xff0c;了解如何有效地列出这些别名和索引显得尤为重要。 本篇博客将介绍几种在 Elasticsearch 中列出别名和索引的方法…

【Hudi】核心概念-基本概念

目录 基本概念时间轴(TimeLine)Instant action:在表上执行的操作类型Instant timeState两个时间概念 文件布局(File Layout)索引(Index)原理索引选项全局索引与非全局索引索引的选择策略 表类型(Table Types)查询类型Snapshot QueriesIncremental QueriesRead Optimized Querie…

集合并集交集差集【工具类】

一、使用Stream流进行处理 在Java开发中&#xff0c;对于集合的操作是非常常见的&#xff0c;特别是交集、并集和差集这样的操作。这些操作可以通过Java 8中的Stream API来实现。 •交集&#xff1a;取两个集合中相同的部分。例如&#xff0c;如果我们有两个List集合&#xff…

【2024最新精简版】Redis面试篇

文章目录 什么是红锁Redis有哪些框架&#xff1f;你们项目中哪里用到了Redis ?Redis的常用数据类型有哪些 ?Redis的数据持久化策略有哪些 ?Redis的数据过期策略有哪些 ?Redis的数据淘汰策略有哪些 ?你们使用Redis是单点还是集群 ? 哪种集群 ?Redis集群有哪些方案, 知道嘛…

iOS--oc对象,类,和元类本质

iOS--oc对象&#xff0c;类&#xff0c;和元类本质 前言实例对象的具体结构自定义类对象的结构继承关系 类信息的存放对isa、superclass总结 前言 最近在学习runtime的过程中&#xff0c;发现其中消息发送-动态方法解析-消息转发中涉及到了大量的类与对象的底层知识&#xff0…

在linux系统上挂载新硬盘

服务器的硬盘空间不够了&#xff0c;自己重新安装了一个硬盘&#xff0c;需要挂载&#xff0c;因为只是用来存放数据&#xff0c;所以不需要分区&#xff0c;直接挂载就可以 #查看当前所有硬盘 sudo fdisk -l #用于显示文件系统的磁盘空间使用情况 df -h发现一个/dev/nvme0n1 …

mysql索引失效的几种情况

1、对列进行计算或者是使用函数&#xff0c;则该列的索引会失效 如&#xff1a;substring(字段名,1,2)‘xxx’&#xff1b; 如&#xff1a;select * from test where id-19;//错误的写法&#xff1b; select * from test where id10; //正确的写法 &#xff1b; 2、某些情况下…

java.nio.charset.UnmappableCharacterException

问题 java.lang.IllegalArgumentException: java.nio.charset.UnmappableCharacterException: Input length 1 解释为编码转换有问题 问题错在位置 非汉字存在 打包的时候就会报异常

TikTok限流封号要如何处理

随着TikTok在全球范围内的运营和管理越来越规范&#xff0c;对于违规行为的处罚也日趋严格。其中&#xff0c;限流和封号是两种常见的处罚措施。那么&#xff0c;当TikTok账号遭遇限流或封号时&#xff0c;我们应该如何处理呢&#xff1f; 一、了解限流和封号的原因 在处理Ti…

Zoom会议网络连接不稳定怎么办?

随着远程办公和在线会议的普及&#xff0c;Zoom已成为许多企业的重要办公工具。然而&#xff0c;国内企业在使用Zoom进行线上会议时&#xff0c;常常面临网络不稳定和中断的问题&#xff0c;这不仅影响会议效率&#xff0c;还可能给企业带来损失。那么&#xff0c;Zoom会议网络…

meilisearch的分页

Elasticsearch 做为老牌搜索引擎&#xff0c;功能基本满足&#xff0c;但复杂&#xff0c;重量级&#xff0c;适合大数据量。 MeiliSearch 设计目标针对数据在 500GB 左右的搜索需求&#xff0c;极快&#xff0c;单文件&#xff0c;超轻量。 所以&#xff0c;对于中小型项目来说…

APP分发平台在推广过程起到什么作用?

APP分发平台在推广过程中起到了至关重要的作用&#xff0c;这些作用主要体现在以下几个方面&#xff1a; 扩大应用覆盖面和市场份额&#xff1a;APP分发平台作为连接开发者和用户的桥梁&#xff0c;通过不同的分发渠道&#xff08;如应用商店、第三方分发平台等&#xff09;&a…

人生感悟 | 我们为什么贫穷?

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 我们为什么贫穷&#xff1f; 因为我们都在局中并坦然的按着规则制定者循规蹈矩的生活。 01 负债导致贫穷 最近同事买房&#xff0c;总价一百多万&#xff0c;月供四千多&#xff0c;讲话&#xff1a;已入坑&#xff0…