深圳市航顺芯片技术研发有限公司
直播中

赵敏

7年用户 1082经验值
私信 关注
[问答]

Ubuntu18.04工控机如何绑定USB串口?

Ubuntu18.04工控机如何绑定USB串口?

回帖(1)

何兰兰

2021-9-30 16:11:35
做实验经需要用到不同的传感器设备,这时就需要调用对应的串口号。
如果只需要将外部的串口设备(如: 底盘控制的单片机、雷达、 IMU) 临时接入工控机,请参考方法 1,这
一设置断电重启后会失效;
每次插拔和重启都会影响串口的编号,所以如果这个设备是长期接入工控机的,就可以考虑使用长期绑定串口号,请参考方法 2
特别注意:
这种方法设置完成后,对应的串口就跟这个USB设备绑定了,不要换成其他USB设备,可能参数严重后果,需要注意。
1.临时绑定

1)查看当前终端串口的设备号 ls /dev/tty*





2)插入临时使用的外设串口
3)再次查看终端串口的设备号 ls /dev/tty*,这时是为了看看多了哪个一个串口号,那就是接入的外设





4)假设该设备号为/dev/ttyUSB0,给设备赋予可读写权限
sudo chmod 777 /dev/ttyUSB0
5)修改自己代码中对应*.launch 文件或cpp或py文件里面的设备号,以launch文件为例,打开 minimal.launch 文件,修改 com_port 的取值为对应的设备号,例如
  2.长期绑定

长期绑定也有两种方法,各有优缺点:
①根据外设u***的芯片编号来绑定串口号
②根据工控机上的u***口固定串口号
如果,有两个设备的u***芯片是相同的,那就应该用第二种方法,不然会因为芯片编号相同,如1a86:7523,这时的串口号对应着这两个外设,这可能使得串口没办法获取预期的信息。
用第二种方法,就避免了上述的问题,但是,之后不管那个外设接到这个工控机的u***口,比如设定的串口号为“base”,那么无论哪个外设接到这个工控机的u***口,都会显示“/dev/base”。
理解清楚两种方法的优劣,选择适合的绑定方法。
2.1 方法一:根据u***芯片编号绑定

1)查看设备串口号芯片编号lsu***
没接外设u***时输入一次,接入后又输入一次,看看多了哪个u***的信息



从上图中可以发现,多了下面这个设备的信息,这时一个IMU,我发现很多imu用的都是这块芯片,有兴趣可以留意一下。
Bus 003 Device 006: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port 上面最重要的信息就是 067b:2303,在下一步就会用到
2)创建 rules 文件
① 先 cd /etc/udev/rules.d/
② 创建myu***.rules文件,sudo gedit myu***.rules
③ 输入
KERNEL, ATTRS{idVendor}, ATTRS{idProduct}, MODE, SYMLINK 其中的“067b”,"2303"就是上一步我们查到的u***芯片的ID,填入对应的位置即可,
而最后的"imu"则是我们定义的u***串口名,之后调用就使用这个串口名,如 “/dev/imu”
每一行对应一个串口设备,若有很多的外设,就按照第一行的格式进行添加。
3)使设置生效
sudo udevadm control --reload-rules && sudo service udev restart && sudo udevadm trigger 或者
sudo reboot 或者
先拔掉u***外设,输入
sudo service udev reloadsudo service udev restart 再接上外设
4)测试
在终端输入ls /dev/imu,如果有反馈就说明,成功啦,没有的话仔细检查一下步骤有没有错。





2.2 方法二:根据工控机u***口编号绑定

1)根据u***的串口名查看工控机上的u***口编号
udevadm info /dev/ttyUSB0




从上图中,”3-1:1.0”就是工控机上u***口的编号,下一步操作将会用到。
2)跟方法一一样,创建 rules 文件
① 先 cd /etc/udev/rules.d/
② 创建myu***.rules文件,sudo gedit myu***.rules
③ 输入
ACTION,KERNELS,SUBSYSTEMS,MODE,SYMLINK 其中的KERNELS对应的编号就是上一步我们查到的工控机u***口的编号,
而最后的"imu"则是我们定义的u***串口名,之后调用就使用这个串口名,如 “/dev/imu”
每一行对应一个串口设备,若有很多的外设,就按照第一行的格式进行添加。
3)使设置生效
sudo udevadm control --reload-rules && sudo service udev restart && sudo udevadm trigger 或者
sudo reboot 或者
先拔掉u***外设,输入
sudo service udev reloadsudo service udev restart 再接上外设
4)测试
在终端输入ls /dev/imu,如果有反馈就说明,成功啦,没有的话仔细检查一下步骤有没有错。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分