来源:虹科汽车电子 虹科干货丨多设备协同无忧:Linux环境下PCAN固定设备ID通道分配指南 原文链接:https://mp.weixin.qq.com/s/ABg6YFXGwi8lb6SW4bEaew 欢迎关注虹科,为您提供最新资讯! #PCAN #汽车电子 导读 在车辆网络系统和工业自动化等多设备环境中,确保设备识别的一致性对于维护系统稳定性至关重要。虹科PCAN适配器提供了一种解决方案,允许用户在Linux环境下固定设备ID和通道分配,从而不受虹科PCAN设备端口(USB/PCIe/miniPCIe接口等类型)插入顺序的影响。继往期文章介绍了 Windows环境下的实现方法后 ,本文将详细介绍如何在Linux环境中CharDev和NetDev两种模式下,通过虹科PCAN设备实现设备ID和通道的固定分配,以提高多设备协同工作的可靠性。 虹科PCAN系列产品 在Linux环境下,当您需要在同一台PC上运行多个虹科PCAN硬件时,每个虹科PCAN设备都会拥有一个独特的设备ID。为了实现对同一类型多个硬件的固定硬件通道使用,关键步骤是 为连接到同一台机器的每个适配器及其通道分配一个唯一的ID 。通过将设备ID与硬件通道绑定,您可以确保访问特定设备时不受虹科PCAN设备端口插入顺序的影响,从而提高多设备系统构建和管理的效率和可靠性。 以下是在Linux环境中,针对虹科PCAN设备的NetDev模式驱动和CharDev模式驱动,实现固定设备ID/通道分配的具体方法: NetDev模式 01 确保硬件的每个通道具有单独设备ID 虹科PCAN-USB Pro FD 以虹科PCAN-USB Pro FD为例,为设备 CAN1 和 CAN2 两个通道分配 4 和 3 的设备ID -pcan-settings -f=/dev/pcanusbfd32 -d 4 -pcan-settings -f=/dev/pcanusbfd33 -d 3 注: 查看设备每个通道的设备ID: -pcan-settings -f=/dev/pcanusbfd32 -d -pcan-settings -f=/dev/pcanusbfd33 -d 02 配置PCAN设备ID分配 修改驱动中 pcan.conf 文件中关于硬件的初始配置: -sudo vi /etc/modprobe.d/pcan.conf 在 pcan.conf 文件中增加配置参数内容:option pcan assign = devid 然后重新加载驱动模块: -sudo rmmod pcan -sudo modprobe pcan 03 通道ID与顺序的映射关系 完成配置后,重新连接硬件,通道顺序与设备通道ID成正相关,CANX 中 X 大小绑定为设备通道ID的值。详见下图: CharDev模式 01 确保硬件的每个通道具有单独设备ID 确保硬件的每个通道具有单独的设备ID,给设备通道设置ID方法同上。 02 初始化PCAN设备通道 调用驱动中lib库中的 pcanfd_open() 函数时进行设备通道初始化直接关联到设备通道ID;如打开虹科PCAN-USB Pro FD 的第一个通道: -fd=pcanfd_open("/dev/pcanusbfd32",OFD_BITRATE, 500000) 可将其改为: -fd=pcanfd_open("/dev/pcan-usb_pro_fd/devid=4",OFD_BITRATE, 500000) 结语 本文深入讲解了如何在Linux环境下使用PCAN适配器进行设备ID和通道的固定分配,与Windows环境下的实现方法相辅相成,共同构成了一套完整的跨平台解决方案。 无论是在Windows还是Linux平台,虹科PCAN设备都能提供稳定可靠的设备管理策略 。如果您对往期 Windows环境下的实现方法(点击回顾) 感兴趣,或者在实施Linux环境下的配置时遇到任何问题,欢迎回顾往期文章或联系虹科技术支持团队,我们将为您提供专业的指导和帮助。