在不同操作系統(tǒng)中涩金,USB串口設備有不同的命名方式恨豁,這將會影響到網關訪問USB串口設備的的邏輯捂襟。
Linux
在Linux系統(tǒng)中弓乙,USB串口設備分為兩大類:
- Silab CP2102/FTDI FT232/Profilic PLXXXX以及國內的CH340等脑豹,歸類于轉換器,命名方式為/dev/ttyUSBx确徙,驅動程序drivers/usb/serial/usb-serial.c;
- Arduino/STM32/mbed,歸類于抽象串口設備疆偿,命名方式為/dev/ttyACMx,驅動程序drivers/usb/class/cdc_acm.c搓幌。
以LoRa/RFID這類沒有控制器的芯片杆故,既可以使用轉換器IC,也可以使用MCU來實現USB CDC/ACM設備溉愁。
Windows
Windows里無論轉換橋接IC還是USB CDC/ACM類处铛,都以COMx作為設備名稱。
Mac
我太窮拐揭,不知道撤蟆。
跨系統(tǒng)訪問
無論是COMx/ttyACM0/ttyUSB0,首先需要判斷操作系統(tǒng)堂污,然后再羅列活動的端口設備家肯,最后通過某種應用相關試探方式來確定是否是正確的設備,雖然USB PID/VID也可以作為一種判斷策略盟猖。但是讨衣,最終還是需要應用相關的認證方式來確認。如果是需要構建安全通道式镐,還需要使用ECC/AES來認證值依、加密。