在开发过程中,需要用一个树莓派链接多个串口转USB设备(GPS模块,数传模块等),在树莓派linux系统环境下,USB串口设备的命名规则是 /dev/ttyUSB0 ,/dev/ttyUSB1,/dev/ttyUSB2。串口设备的命名规则一般是根据设备插拔顺序进行命名,第一个插入的USB串口设备名称为/dev/ttyUSB0,第二个名称为 /dev/ttyUSB1,以此类推,但是在实验环境中,往往会发生USB设备插拔情况,从而导致串口设备命名混乱,为此,需要对串口设备进行名称绑定,固定串口设备名称。

  在实现串口名称绑定操作前,首先介绍一下udev。udev是Linux系统下的设备管理工具,运行在用户空间下,能够通过侦听内核发出的ueven事件来管理./dev目录下设备文件,当USB设备进行插拔时,udev能够在/dev下添加和删除设备文件。在默认规则下,udev为所有linux设备定义了内核设备名称,比如/dev/sda,/dev/hda。另外,linux用户也可以编写自定义的规则文件,自定义标志设备文件。 udev的规则文件存放在/etc/udev/rule.d 目录,规则的命名以.rules为后缀。

  下面给出树莓派linux环境下进行串口设备自定义命名步骤:

  1.查看串口设备系统自定义的名称

  1. pi@testclient:~ $ ls /dev | grep 'ttyUSB'
  2. ttyUSB0
  3. ttyUSB1

  2.根据串口号,查询串口设备的详细信息

  /dev/ttyUSB0

  1. pi@testclient:~ $ udevadm info /dev/ttyUSB0
  2. P: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/ttyUSB0/tty/ttyUSB0
  3. N: ttyUSB0
  4. S: serial/by-id/usb-FTDI_FT232R_USB_UART_A8008Sxy-if00-port0
  5. S: serial/by-path/platform-3f980000.usb-usb-0:1.4:1.0-port0
  6. S: ttyUSB4G
  7. E: DEVLINKS=/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A8008Sxy-if00-port0 /dev/serial/by-path/platform-3f980000.usb-usb-0:1.4:1.0-port0 /dev/ttyUSB4G
  8. E: DEVNAME=/dev/ttyUSB0
  9. E: DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/ttyUSB0/tty/ttyUSB0
  10. E: ID_BUS=usb
  11. E: ID_MODEL=FT232R_USB_UART
  12. E: ID_MODEL_ENC=FT232R\x20USB\x20UART
  13. E: ID_MODEL_FROM_DATABASE=FT232 USB-Serial (UART) IC
  14. E: ID_MODEL_ID=6001
  15. E: ID_PATH=platform-3f980000.usb-usb-0:1.4:1.0
  16. E: ID_PATH_TAG=platform-3f980000_usb-usb-0_1_4_1_0
  17. E: ID_REVISION=0600
  18. E: ID_SERIAL=FTDI_FT232R_USB_UART_A8008Sxy
  19. E: ID_SERIAL_SHORT=A8008Sxy
  20. E: ID_TYPE=generic
  21. E: ID_USB_DRIVER=ftdi_sio
  22. E: ID_USB_INTERFACES=:ffffff:
  23. E: ID_USB_INTERFACE_NUM=00
  24. E: ID_VENDOR=FTDI
  25. E: ID_VENDOR_ENC=FTDI
  26. E: ID_VENDOR_FROM_DATABASE=Future Technology Devices International, Ltd
  27. E: ID_VENDOR_ID=0403
  28. E: MAJOR=188
  29. E: MINOR=0
  30. E: SUBSYSTEM=tty
  31. E: TAGS=:systemd:
  32. E: USEC_INITIALIZED=9427187

  /dev/ttyUSB1

  1. udevadm info /dev/ttyUSB1
  2. P: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/ttyUSB1/tty/ttyUSB1
  3. N: ttyUSB1
  4. S: serial/by-id/usb-FTDI_USB-RS232_Cable_FT2NUESH-if00-port0
  5. S: serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0
  6. S: ttyUSBGPS
  7. E: DEVLINKS=/dev/serial/by-id/usb-FTDI_USB-RS232_Cable_FT2NUESH-if00-port0 /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0 /dev/ttyUSBGPS
  8. E: DEVNAME=/dev/ttyUSB1
  9. E: DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/ttyUSB1/tty/ttyUSB1
  10. E: ID_BUS=usb
  11. E: ID_MODEL=USB-RS232_Cable
  12. E: ID_MODEL_ENC=USB-RS232\x20Cable
  13. E: ID_MODEL_FROM_DATABASE=FT232 USB-Serial (UART) IC
  14. E: ID_MODEL_ID=6001
  15. E: ID_PATH=platform-3f980000.usb-usb-0:1.2:1.0
  16. E: ID_PATH_TAG=platform-3f980000_usb-usb-0_1_2_1_0
  17. E: ID_REVISION=0600
  18. E: ID_SERIAL=FTDI_USB-RS232_Cable_FT2NUESH
  19. E: ID_SERIAL_SHORT=FT2NUESH
  20. E: ID_TYPE=generic
  21. E: ID_USB_DRIVER=ftdi_sio
  22. E: ID_USB_INTERFACES=:ffffff:
  23. E: ID_USB_INTERFACE_NUM=00
  24. E: ID_VENDOR=FTDI
  25. E: ID_VENDOR_ENC=FTDI
  26. E: ID_VENDOR_FROM_DATABASE=Future Technology Devices International, Ltd
  27. E: ID_VENDOR_ID=0403
  28. E: MAJOR=188
  29. E: MINOR=1
  30. E: SUBSYSTEM=tty
  31. E: TAGS=:systemd:
  32. E: USEC_INITIALIZED=437296

  3 在  /etc/udev/rules.d/ 目录下新建一个规则文件。udev 是根据规则的字母顺序来解析规则文件的命名规则的,并根据匹配的规则进行相应设备的命名,所以解析顺序很关键。在pi中,已经存在一个规则文件99-com.rules,为了能解析新建规则, 把新建的规则文件命名为98-com-udev.rules,并将下面的信息复制到新建规则文件中。ID_SERIAL_SHORT、ID_PATH  字段用于标识设备,由步骤2可以提取出来,SYMLINK 指定需要命名的名称。

  1. ENV{ID_SERIAL_SHORT}=="A8008Sxy",ENV{ID_PATH}=="platform-3f980000.usb-usb-0:1.4:1.0",SYMLINK+="ttyUSB4G"
  2. ENV{ID_SERIAL_SHORT}=="FT2NUESH",ENV{ID_PATH}=="platform-3f980000.usb-usb-0:1.2:1.0",SYMLINK+="ttyUSBGPS"

  4 设备重启reboot ,重启之后,自定义命名规则将生效。插拔USB串口,自定义名称固定不变。

  1. pi@testclient:~ $ ls /dev/ | grep "ttyUSB"
  2. ttyUSB0
  3. ttyUSB1
  4. ttyUSB4G
  5. ttyUSBGPS

  5 自定义串口名称测试

  1. >>> import serial
  2. >>> ser=serial.Serial('/dev/ttyUSB4G',9600)
  3. >>> ser=serial.Serial('/dev/ttyUSBGPS',9600)
  4. >>> print(串口测试通过)

  

参考链接:

1.https://cloud.tencent.com/info/9ef3d565fa5a45f6ee60e6c996bb5b91.html

2.http://www.cnblogs.com/lpfuture/p/6027091.html

在树莓派下对多个串口转USB设备进行设备名称绑定操作的更多相关文章

  1. Linux 串口、usb转串口驱动分析(2-2) 【转】

    转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26807463&id=4186852 Linux 串口.usb转 ...

  2. Linux 串口、usb转串口驱动分析(2-1) 【转】

    转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26807463&id=4186851 Linux 串口.usb转 ...

  3. linux驱动基础系列--Linux 串口、usb转串口驱动分析

    前言 主要是想对Linux 串口.usb转串口驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如字符设备驱动.平台驱动等也不进行详细说明原理.如果有任何错误地方,请指出, ...

  4. Mac下关于——你不能拷贝项目“”,因为它的名称太长或包括的字符在目的宗卷上无效。文件的删除

    内容是google的,测试有效,因为用revel打包的东西删除以后有这个循环bug Mac下关于——你不能拷贝项目“”,因为它的名称太长或包括的字符在目的宗卷上无效.文件的删除 关于这个问题我找到的一 ...

  5. [转载]树莓派新版系统上使用mjpg-streamer获取USB摄像头和树莓派专用摄像头RaspiCamera图像

    树莓派新版系统上使用mjpg-streamer获取USB摄像头和树莓派专用摄像头RaspiCamera图像 网上有很多关于mjpg-stream移植到树莓派的文章,大部分还是使用的sourceforg ...

  6. linux下oracle11G DG搭建(三):环绕备库搭建操作

    linux下oracle11G DG搭建(三):环绕备库搭建操作 环境 名称 主库 备库 主机名 bjsrv shsrv 软件版本号 RedHat Enterprise5.5.Oracle 11g 1 ...

  7. Ubuntu下用SecureCRT连接串口/dev/ttyUSB0权限修复

    在普通用户的模式下,用SecureCRT链接串口交换机,开始会提示/dev/ttyUSB0权限不足,无法打开,临时的解决办法是 chmod 0+rw /dev/ttyUSB0 但是这个重启后便没了作用 ...

  8. 在ubuntu下利用minicom实现串口通信

    windos有串口调试助手,linux下也有这样的工具——minicom.不过,minicom和linux下的许多工具都一样,也是命令行模式,没有图形化界面供我们享受.作为一款串口调试工具,虽然难看但 ...

  9. VS2010环境下使用VB编写串口助手

    1.在Form1的设计模式下添加以下控件: 2.添加好控件之后我们就可以打开Form1.vb进行编程了: '使用串口需要引用的命名空间 Imports System.IO.Ports Imports ...

随机推荐

  1. GraphicsMagick在centos环境的安装

    一.需要安装包libpng-1.6.2rc02.tar.gz,libjpeg-6b.tar.gz,GraphicsMagick-1.3.18.tar.gz,GraphicsMagick-1.3.18最 ...

  2. 获取 PHPstorm编辑器 注册码地址

    网址: http://idea.lanyus.com/ 注册码有效期为2016年11月24日至2017年11月23日使用前请将“0.0.0.0 account.jetbrains.com”添加到hos ...

  3. 点云处理软件Pointscene

    转载于PCL中国:点云处理软件Pointscene 软件官网:https://pointscene.com/ 笔者评:        Pointscene是目前的点云处理软件之一,其主要是操作简单直观 ...

  4. 错误 RC1015: 无法打开包含文件 'XTToolkitPro.rc'

    XtremeToolkitPro作为VC++/MFC平台下目前最流行的GUI界面库之一,安装和使用都很方便.不过,在实际使用中还是碰到许多问题.如果在编译工程时只显示一个错误:RC1015: 无法打开 ...

  5. 整理Webview加载缓慢的解决方案

    1.https://www.cnblogs.com/xinye/p/3144139.html 2.https://www.jianshu.com/p/95d4d73be3d1

  6. 【airtest, python】报错:requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(54, 'Connection reset by peer')),解决方法如下

    环境及设备 mac, xcode , iphonex 问题 最近出现一个让人费解的问题,airtest 没跑多长时间,服务就断掉,而且总是报“requests.exceptions.Connectio ...

  7. 物理cpu与逻辑cpu概述

    物理cpu与逻辑cpu概述(本博客属于转载部分内容:主要学习目的用于大数据平台Hadoop之yarn资源调度的配置) 一.yarn资源调度器中主要的资源分类       1.memory(内存) 2. ...

  8. 多种方法爬取猫眼电影Top100排行榜,保存到csv文件,下载封面图

    参考链接: https://blog.csdn.net/BF02jgtRS00XKtCx/article/details/83663400 https://www.makcyun.top/web_sc ...

  9. firebird数据库建模

    用ERS数据库建模,真的很方便.可是8.0版本只支持interbase和ib2007.没有建模工具,查找修改数据库等确实是裹足难走.新的建模工具不适应.找来找去,新版10.0出来了.雷锋帮助把使用权也 ...

  10. 和socket、rs232通信遇到的糟糕问题。备查!

    procedure Tfrm_FoldingCloth.btn1Click(Sender: TObject); var SND:array of byte; begin if Not cnrs232. ...