日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

在树莓派下对多个串口转USB设备进行设备名称绑定操作

發(fā)布時間:2024/6/21 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 在树莓派下对多个串口转USB设备进行设备名称绑定操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  在開發(fā)過程中,需要用一個樹莓派鏈接多個串口轉(zhuǎn)USB設(shè)備(GPS模塊,數(shù)傳模塊等),在樹莓派linux系統(tǒng)環(huán)境下,USB串口設(shè)備的命名規(guī)則是 /dev/ttyUSB0 ,/dev/ttyUSB1,/dev/ttyUSB2。串口設(shè)備的命名規(guī)則一般是根據(jù)設(shè)備插拔順序進(jìn)行命名,第一個插入的USB串口設(shè)備名稱為/dev/ttyUSB0,第二個名稱為 /dev/ttyUSB1,以此類推,但是在實驗環(huán)境中,往往會發(fā)生USB設(shè)備插拔情況,從而導(dǎo)致串口設(shè)備命名混亂,為此,需要對串口設(shè)備進(jìn)行名稱綁定,固定串口設(shè)備名稱。

  在實現(xiàn)串口名稱綁定操作前,首先介紹一下udev。udev是Linux系統(tǒng)下的設(shè)備管理工具,運行在用戶空間下,能夠通過偵聽內(nèi)核發(fā)出的ueven事件來管理./dev目錄下設(shè)備文件,當(dāng)USB設(shè)備進(jìn)行插拔時,udev能夠在/dev下添加和刪除設(shè)備文件。在默認(rèn)規(guī)則下,udev為所有l(wèi)inux設(shè)備定義了內(nèi)核設(shè)備名稱,比如/dev/sda,/dev/hda。另外,linux用戶也可以編寫自定義的規(guī)則文件,自定義標(biāo)志設(shè)備文件。 udev的規(guī)則文件存放在/etc/udev/rule.d 目錄,規(guī)則的命名以.rules為后綴。

  下面給出樹莓派linux環(huán)境下進(jìn)行串口設(shè)備自定義命名步驟:

  1.查看串口設(shè)備系統(tǒng)自定義的名稱

pi@testclient:~ $ ls /dev | grep 'ttyUSB'
ttyUSB0
ttyUSB1

  2.根據(jù)串口號,查詢串口設(shè)備的詳細(xì)信息

  /dev/ttyUSB0

pi@testclient:~ $ udevadm info /dev/ttyUSB0
P: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/ttyUSB0/tty/ttyUSB0
N: ttyUSB0
S: serial/by-id/usb-FTDI_FT232R_USB_UART_A8008Sxy-if00-port0
S: serial/by-path/platform-3f980000.usb-usb-0:1.4:1.0-port0
S: ttyUSB4G
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
E: DEVNAME=/dev/ttyUSB0
E: DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/ttyUSB0/tty/ttyUSB0
E: ID_BUS=usb
E: ID_MODEL=FT232R_USB_UART
E: ID_MODEL_ENC=FT232Rx20USBx20UART
E: ID_MODEL_FROM_DATABASE=FT232 USB-Serial (UART) IC
E: ID_MODEL_ID=6001
E: ID_PATH=platform-3f980000.usb-usb-0:1.4:1.0
E: ID_PATH_TAG=platform-3f980000_usb-usb-0_1_4_1_0
E: ID_REVISION=0600
E: ID_SERIAL=FTDI_FT232R_USB_UART_A8008Sxy
E: ID_SERIAL_SHORT=A8008Sxy
E: ID_TYPE=generic
E: ID_USB_DRIVER=ftdi_sio
E: ID_USB_INTERFACES=:ffffff:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=FTDI
E: ID_VENDOR_ENC=FTDI
E: ID_VENDOR_FROM_DATABASE=Future Technology Devices International, Ltd
E: ID_VENDOR_ID=0403
E: MAJOR=188
E: MINOR=0
E: SUBSYSTEM=tty
E: TAGS=:systemd:
E: USEC_INITIALIZED=9427187

  /dev/ttyUSB1

 udevadm info /dev/ttyUSB1
P: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/ttyUSB1/tty/ttyUSB1
N: ttyUSB1
S: serial/by-id/usb-FTDI_USB-RS232_Cable_FT2NUESH-if00-port0
S: serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0
S: ttyUSBGPS
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
E: DEVNAME=/dev/ttyUSB1
E: DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/ttyUSB1/tty/ttyUSB1
E: ID_BUS=usb
E: ID_MODEL=USB-RS232_Cable
E: ID_MODEL_ENC=USB-RS232x20Cable
E: ID_MODEL_FROM_DATABASE=FT232 USB-Serial (UART) IC
E: ID_MODEL_ID=6001
E: ID_PATH=platform-3f980000.usb-usb-0:1.2:1.0
E: ID_PATH_TAG=platform-3f980000_usb-usb-0_1_2_1_0
E: ID_REVISION=0600
E: ID_SERIAL=FTDI_USB-RS232_Cable_FT2NUESH
E: ID_SERIAL_SHORT=FT2NUESH
E: ID_TYPE=generic
E: ID_USB_DRIVER=ftdi_sio
E: ID_USB_INTERFACES=:ffffff:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=FTDI
E: ID_VENDOR_ENC=FTDI
E: ID_VENDOR_FROM_DATABASE=Future Technology Devices International, Ltd
E: ID_VENDOR_ID=0403
E: MAJOR=188
E: MINOR=1
E: SUBSYSTEM=tty
E: TAGS=:systemd:
E: USEC_INITIALIZED=437296

  3 在/etc/udev/rules.d/ 目錄下新建一個規(guī)則文件。udev 是根據(jù)規(guī)則的字母順序來解析規(guī)則文件的命名規(guī)則的,并根據(jù)匹配的規(guī)則進(jìn)行相應(yīng)設(shè)備的命名,所以解析順序很關(guān)鍵。在pi中,已經(jīng)存在一個規(guī)則文件99-com.rules,為了能解析新建規(guī)則, 把新建的規(guī)則文件命名為98-com-udev.rules,并將下面的信息復(fù)制到新建規(guī)則文件中。ID_SERIAL_SHORT、ID_PATH 字段用于標(biāo)識設(shè)備,由步驟2可以提取出來,SYMLINK 指定需要命名的名稱。

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

  4 設(shè)備重啟reboot ,重啟之后,自定義命名規(guī)則將生效。插拔USB串口,自定義名稱固定不變。

pi@testclient:~ $ ls /dev/ | grep "ttyUSB"
ttyUSB0
ttyUSB1
ttyUSB4G
ttyUSBGPS

  5 自定義串口名稱測試

>>> import serial
>>> ser=serial.Serial('/dev/ttyUSB4G',9600)
>>> ser=serial.Serial('/dev/ttyUSBGPS',9600)
>>> print(串口測試通過)

  

參考鏈接:

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

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

總結(jié)

以上是生活随笔為你收集整理的在树莓派下对多个串口转USB设备进行设备名称绑定操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。