来源:虹科工业智能互联 虹科干货 | 克服端口顺序影响,使用PCAN实现固定设备ID/通道分配
原文链接:https://mp.weixin.qq.com/s/FTIZlAjhVcD6Td6r0TW8WQ
欢迎关注虹科,为您提供最新资讯!
导读
多设备协同工作是常见的需求。然而,适配器的插入顺序可能会影响到设备的识别和访问,给系统管理带来不便。虹科PCAN能够进行固定设备ID/通道分配,确保设备不受适配器插入顺序的影响,提高系统的稳定性和可靠性。本文将详细介绍如何使用PCAN进行固定设备ID/通道分配,帮助您更好地理解和应用PCAN产品。
在同一台PC上使用多个 PCAN和PCAN-Basic时,在使用设备的过程中,硬件句柄通常从 16 开始分配,然后依次递减。这意味着第一个PCAN将获得硬件句柄16(Handle16),第二个PCAN获得硬件句柄15(Handle15),第三个PCAN获得硬件句柄14(Handle14)...以此类推。但其实可以将某个设备 ID 与硬件句柄连接起来,这样访问特定设备就不受这些适配器插入 USB 端口顺序的影响,可以更好地支持多设备系统的构建和管理。
1 基于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
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/通道分配的方法,我们能够更好地应对多设备系统中的识别和访问问题,提高系统的稳定性和可靠性。获取更多相关信息,欢迎咨询虹科工作人员。