电子说
概述:在车辆网络系统和工业自动化等多设备环境中,确保设备识别的一致性对于维护系统稳定性至关重要。虹科PCAN适配器提供了一种解决方案,允许用户在Linux环境下固定设备ID和通道分配,从而不受USB端口插入顺序的影响。继往期文章介绍了Windows环境下的实现方法后,本文将详细介绍如何在Linux环境中CharDev和NetDev两种模式下,通过PCAN实现设备ID和通道的固定分配,以提高多设备协同工作的可靠性。
虹科PCAN系列产品
在Linux环境下,当您需要在同一台PC上运行多个PCAN硬件时,每个PCAN设备都会拥有一个独特的设备ID。为了实现对同一类型多个硬件的固定硬件通道使用,关键步骤是为连接到同一台机器的每个适配器及其通道分配一个唯一的ID。通过将设备ID与硬件通道绑定,您可以确保访问特定设备时不受USB端口插入顺序的影响,从而提高多设备系统构建和管理的效率和可靠性。
以下是在Linux环境中,针对PCAN的CharDev模式驱动和NetDev模式驱动,实现固定设备ID/通道分配的具体方法:
一、NetDev模式
1、确保硬件的每个通道具有单独的设备ID
以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-setting -f=/dev/pcanusbfd32 -d
$ pcan-setting -f=/dev/pcanusbfd33 -d
2、配置PCAN设备ID分配
修改驱动中pcan.conf文件中关于硬件的初始配置:
$ sudo vi /etc/modprobe.d/pcan.conf
在pcan.conf文件中增加配置参数内容:option pcan assign = devid
然后重新加载驱动模块:
$ sudo rmmod pcan
$ sudo modprobe pcan
3、通道ID与顺序的映射关系
完成配置后,重新连接硬件,通道顺序与设备通道ID成正相关,CANX 中 X 大小绑定为设备通道ID的值。详见下图:
二、CharDev模式
1、确保硬件的每个通道具有单独的设备ID
确保硬件的每个通道具有单独的设备ID,给设备通道设置ID方法如上。
2、初始化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=30",OFD_BITRATE, 500000)
结语
本文深入讲解了如何在Linux环境下使用PCAN适配器进行设备ID和通道的固定分配,与Windows环境下的实现方法相辅相成,共同构成了一套完整的跨平台解决方案。无论是在Windows还是Linux平台,虹科PCAN设备都能提供稳定可靠的设备管理策略。如果您对往期Windows环境下的实现方法感兴趣,或者在实施Linux环境下的配置时遇到任何问题,欢迎回顾往期文章或联系虹科技术支持团队,我们将为您提供专业的指导和帮助。
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !