虹科干货 | 克服端口顺序影响,使用 PCAN实现固定设备ID/通道分配

news2024/10/7 10:22:36

导读:多设备协同工作是常见的需求。然而,适配器的插入顺序可能会影响到设备的识别和访问,给系统管理带来不便。虹科PCAN能够进行固定设备ID/通道分配,确保设备不受适配器插入顺序的影响,提高系统的稳定性和可靠性。本文将详细介绍如何使用PCAN进行固定设备ID/通道分配,帮助您更好地理解和应用PCAN产品。

在同一台PC上使用多个 PCAN和PCAN-Basic时,在使用设备的过程中,硬件句柄通常从 16 开始分配,然后依次递减。这意味着第一个PCAN将获得硬件句柄16(Handle16),第二个PCAN获得硬件句柄15(Handle15),第三个PCAN获得硬件句柄14(Handle14)...以此类推。但其实可以将某个设备 ID 与硬件句柄连接起来,这样访问特定设备就不受这些适配器插入 USB 端口顺序的影响,可以更好的支持多设备系统的构建和管理。

基于PCAN-USB用例

每个 PCAN-USB 硬件(PCAN-USB、PCAN-USB FD、PCAN-USB Pro FD等)都有一个设备 ID(默认为 FFh)。该设备 ID 可通过当前版本的 PCAN-View 进行更改(见如下截图)

确保为连接到同一台机器的每个适配器分配唯一的 ID,不要重复相同的设备 ID,否则整个过程将无法进行。

更改设备 ID 后,打开注册表编辑器,查找以下注册表路径:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pcan_usb]

"Hardware16"="0x201,0x01,0"

"Hardware15"="0x201,0x02,0"

"Hardware14"="0x201,0x05,0"

参数1的说明:

Hardware16 = HardwareHandle16

Hardware15 = HardwareHandle15

.....

Hardware1 = HardwareHandle1

参数 2 的说明:

  • 0x201 = PCAN-USB 和 PCAN-USB ISO
  • 0x202 = PCAN-USB Pro
  • 0x203 = PCAN-USB HUB
  • 0x206 = PCAN-USB Pro FD
  • 0x207 = PCAN-USB FD

参数 3:相应(选定)的设备 ID

0x00,0x01 至 0xff

参数 4 :(仅适用于双通道PCAN,因为每个设备可以有 1 个设备 ID 和 2 个 CAN 通道):

0 = 通道 1

1 = 通道 2

基于PCIe板卡用例

由于 PCI/PCIe 的特性,有些系统会放弃上一次启动时识别 PCI/PCIe 设备的顺序;例如在 PCANBasic中,如果为同一类型的多个硬件使用固定硬件通道,就会出现问题。要在基于 PCI/PCIe 的 PCAN 接口设备上为 CAN 通道设置固定硬件手柄,请按照以下步骤操作:

1、确保您的设备具有唯一的设备 ID,例如,可以通过 PCAN-View 的硬件视图进行设置(如前文图示)

2、打开注册表编辑器,查找以下注册表路径:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pcan_pci]

下面是一个例子:

参数1、3、4道理与上文相同,参数2基于 PCI 和 PCIexpress 的卡:

  • 0x103 = PCAN-PCI Express (current version)
  • 0x113 = PCAN-PCI Express FD
  • 0x107 = PCAN-PC/104-Express (current version)
  • 0x117 = PCAN-PC/104-Express FD
  • 0x108 = PCAN-miniPCIe
  • 0x118 = PCAN-miniPCIe FD
  • 0x10A = PCAN-ExpressCard 34
  • 0x109 = PCAN-Chip PCIe
  • 0x119 = PCAN-Chip PCIe FD
  • 0x11A = PCAN-M.2

3、在注册表中设置完条目后,重新启动电脑,在进行开发的过程中,设备ID便不会随着设备上电顺序变化,现在就可以通过固定的硬件句柄访问硬件了。

通过了解和掌握PCAN进行固定设备ID/通道分配的方法,我们可以更好地应对多设备系统中的识别和访问问题,提高系统的稳定性和可靠性。希望本文能够帮助您在实际应用中取得更好的效果。

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

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

相关文章

台积电大幅上调产能,12英寸晶圆产能提至每月5.5万片 | 百能云芯

台积电熊本新厂势如破竹,产能将迎来大幅提升,计划逐步达到每月5.5万片的12英寸晶圆产能。据了解,新厂的扩产计划将从2024年第4季开始实施。此次的战略举措不仅是对海外市场布局的重大突破,更是对日本半导体产业生态系统的积极推动…

TikTok矩阵玩法分享,如何建立TikTok矩阵?

矩阵是在 TikTok 上非常常见的营销方式,很多卖家想要通过矩阵化运营快速涨粉。但要想做好TikTok矩阵,需要有明确的方向和计划。下面东哥我将分享一些做TikTok矩阵的玩法,帮助大家更好地搭建自己的TikTok矩阵。 了解TikTok矩阵 TikTok矩阵是一…

深度学习笔记_6经典预训练网络LeNet-18解决FashionMNIST数据集

1、 调用模型库,定义参数,做数据预处理 import numpy as np import torch from torchvision.datasets import FashionMNIST import torchvision.transforms as transforms from torch.utils.data import DataLoader import torch.nn.functional as F im…

眼镜正确清洗方式有哪些?超声波眼镜清洗机推荐

随着人们对健康的重视,眼镜已经成为了日常生活中的必需品。然而,眼镜的清洗却常常被忽视。正确的清洗方式不仅可以保护眼睛健康,还可以延长眼镜的使用寿命。那么,眼镜的正确清洗方式有哪些呢?经常去眼镜店清洗眼镜的朋…

【PHP入门】1.2-常量与变量

-常量与变量- PHP是一种动态网站开发的脚本语言,动态语言特点是交互性,会有数据的传递,而PHP作为“中间人”,需要进行数据的传递,传递的前提就是PHP能自己存储数据(临时存储) 1.2.1变量基本概…

未来LED全彩显示屏的发展趋势研究

随着LED产品性能的不断提升,全彩 LED 显示屏在亮度、颜色改善和白平衡方面已经达到了比较理想的效果,完全可以满足户外全天候的环境条件。由于全彩 LED 显示屏在价格性能比上的优势,未来数年内有望逐渐取代传统的灯箱、霓虹灯、磁翻板等产品&…

如何在Eclipse中安装WindowBuilder插件,详解过程

第一步:找到自己安装eclipse的版本,在Help-关于eclipse里面,即Version 第二步:去下面这个网站找到对应的 link(Update Site),这一步很重要,不然版本下载错了之后还得删除WindowBuil…

2023大湾区汽车创新大会在深圳坪山开幕

12月15日,2023大湾区汽车创新大会在深圳坪山开幕。 本次大会是由广东省科学技术厅、深圳市发展和改革委员会、深圳市工业和信息化局、中共深圳市新能源和智能网联汽车产业链委员会、坪山区人民政府指导,北京理工大学深圳汽车研究院、广东省大湾区新能源汽…

关于“Python”的核心知识点整理大全27

目录 10.5 小结 第11 章 测试代码 11.1 测试函数 name_function.py 函数get_formatted_name()将名和姓合并成姓名,在名和姓之间加上一个空格,并将它们的 首字母都大写,再返回结果。为核实get_formatted_name()像期望的那样工…

SwitchHosts - 管理、切换多个 hosts 方案的工具

一、hosts文件 简单的说,hosts文件是用于本地dns服务的,采用ip 域名的格式写在一个文本文件当中,Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关…

机器学习——数据划分

【说明】文章内容来自《机器学习入门——基于sklearn》,用于学习记录。若有争议联系删除。 1、数据划分 在机器学习中,通常将数据集划分为训练集和测试集。训练集用于训练数据,生成机器学习模型;测试集用于评估学习模型的泛化性能…

如何让.NET应用使用更大的内存

我一直在思考为何Redis这种应用就能独占那么大的内存空间而我开发的应用为何只有4GB大小左右,在此基础上也问了一些大佬,最终还是验证下自己的猜测。 操作系统限制 主要为32位操作系统和64位操作系统。 每个进程自身还分为了用户进程空间和内核进程空…

安全算法(二):共享密钥加密、公开密钥加密、混合加密和迪菲-赫尔曼密钥交换

安全算法(二):共享密钥加密、公开密钥加密、混合加密和迪菲-赫尔曼密钥交换 本章介绍了共享密钥加密、公开密钥加密,和两种加密方法混合使用的混合加密方法;最后介绍了迪菲-赫尔曼密钥交换。 加密数据的方法可以分为…

人工智能工程师

据悉:为进一步贯彻落实中共中央印发《关于深化人才发展体制机制改革的意见》和国务院印发《关于“十四五”数字经济发展规划》等有关工作的部署求,深入实施人才强国战略和创新驱动发展战略,加强全国数字化人才队伍建设,持续推进人…

Axure之交互与情节与一些实例

目录 一.交互与情节简介 二.ERP登录页到主页的跳转 三.ERP的菜单跳转到各个页面的跳转 四.省市联动 五.手机下拉加载 今天就到这里了,希望帮到你哦!!! 一.交互与情节简介 "交互"通常指的是人与人、人与计算机或物体…

lseek()函数的原型及使用方法,超详细

对于所有打开的文件都有一个当前文件偏移量(current file offset),文件偏移量通常是一个非负整数,用于表明文件开始处到文件当前位置的字节数。 读写操作通常开始于当前文件偏移量的位置,并且使其增大,增量为读写的字节数。文件被…

苹果M系列芯片安装Notepad-- 详细教程(亲测14以上系统也可用)

目录 1. 介绍2. 前言说明3. 安装使用教程3.1 下载3.2 安装3.3 打开3.4 最终效果 4. 主体功能一览5. 其他信息 1. 介绍 鉴于某些Notepad竞品作者的不当言论,Notepad–的意义在于:减少一点错误言论,减少一点自以为是。 Notepad–的目标&#xf…

Xpath注入

这里学习一下xpath注入 xpath其实是前端匹配树的内容 爬虫用的挺多的 XPATH注入学习 - 先知社区 查询简单xpath注入 index.php <?php if(file_exists(t3stt3st.xml)) { $xml simplexml_load_file(t3stt3st.xml); $user$_GET[user]; $query"user/username[name&q…

【网络安全技术】传输层安全——SSL/TLS

一、TLS位置及架构 TLS建立在传输层TCP/UDP之上&#xff0c;应用层之下。 所以这可以解决一个问题&#xff0c;那就是为什么抓不到HTTP和SMTP包&#xff0c;因为这两个在TLS之上&#xff0c;消息封上应用层的头&#xff0c;下到TLS层&#xff0c;TLS层对上层消息整个做了加密&…

SpringBoot 3.2.0 版本 mysql 依赖下载错误

最近想尝试一下最新的 SpringBoot 项目&#xff0c;于是将自己的开源项目进行了一些升级。 JDK 版本从 JDK8 升级至 JDK17。SpringBoot 版本从 SpringBoot 2.7.3 升级到 SpringBoot 3.2.0 其中 JDK 的升级比较顺利&#xff0c;毕竟 JDK 的旧版本兼容性一直非常好。 但是在升级…