您尚未登录。

楼主 # 2022-04-17 23:16:22

mysteryli
会员
注册时间: 2020-03-05
已发帖子: 487
积分: 392
个人网站

关于linux虚拟串口的开发

大家好,本人在基于V3S-buildroot平台开发一个基于虚拟串口有关的应用,现在插入USB设备,已经可以生成了/dev/ttyACM1
由于本人没有开发过虚拟串口有关的东西
请问下一步是不是直接open和read这个节点就可以了呢
用不用关心类似于物理串口的波特率 停止位这些东西呢?

我这边直接open-read,在x86主机上可以 但是在板子上读到的数据就不对
对比了一下dmesg,麻烦大佬们帮忙看看呗
我初步看 用的USB控制器不一样?一个uhci,一个ohci,不知道这个有关系没
X86的

[ 3184.078743] usb 2-2.1: new full-speed USB device number 4 using uhci_hcd
[ 3184.366306] usb 2-2.1: New USB device found, idVendor=0416, idProduct=b002
[ 3184.366307] usb 2-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3184.366308] usb 2-2.1: Product: USB Virtual COM
[ 3184.366309] usb 2-2.1: Manufacturer: Nuvoton
[ 3184.436645] cdc_acm 2-2.1:1.0: ttyACM0: USB ACM device
[ 3184.437656] usbcore: registered new interface driver cdc_acm
[ 3184.437656] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

板子的

[ 3718.369820] usb 2-1: new full-speed USB device number 4 using ohci-platform
[ 3718.653115] cdc_acm 2-1:1.0: ttyACM0: USB ACM device

最近编辑记录 mysteryli (2022-04-18 22:13:47)

离线

#1 2022-04-18 11:30:42

benlypan
会员
注册时间: 2021-07-08
已发帖子: 49
积分: 133.5

Re: 关于linux虚拟串口的开发

这要看你USB设备端的需求:
1. 如果设备端仅仅是与主机通过虚拟串口来数据通信的,那么就不需要设置波特率。
2. 如果设备端要做一个类似于USB转串口的应用,需要让主机端来设置设备串口输出的波特率的,那么就要设置波特率。

简单的讲,对于 ACM 设备,主机会把波特率、数据位这些串口参数封装成一个数据包请求下发到设备端,如果你没调API设置过,那么是有一个默认值的。设备端收到这些参数后用来干啥是设备端的业务问题。ACM通信本身是没有波特率这些需求的。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn