在 Ubuntu 中克隆/分割串行端口 (COM)

在 Ubuntu 中克隆/分割串行端口 (COM)

我的串口一切正常。我已将 FTDI 转换器连接到我的计算机,设置我的 COM 端口...
ln -s /dev/ttyUSB0 ~/wine/dosdevices/COM1

但现在我想“克隆”这个端口。

我正在使用 wine 来运行 u-center 一个 GPS 可视化工具,并且我有一台运行 Ubuntu 的 Linux 计算机
有人可以帮忙吗?

答案1

虽然之前的答案说不能共享,但这部分是错误的。

Linux TTY 端口可以用不同的应用程序打开(如果它们不使用或检查锁),但是数据将被第一个读取的人消耗,因为只有一个缓冲区,因此数据将无法供两个进程使用。在某些情况下这是可以的,在某些情况下这是不行的,但通常人们不希望这样。

由于可以从用户空间创建 TTY,因此没有什么可以阻止任何人创建用户空间应用程序来创建 2 个虚拟/假串行端口,并将它们连接到一个物理串行端口。

终端总线就是这样做的(来自自述文件):

Use case 1: Multiplexing serial input only or output only device attached to /dev/ttyS0, for use with multiple applications.
- step 1: create a new tty bus called /tmp/ttyS0mux:

    tty_bus -s /tmp/ttyS0mux &
    sleep 1


- step 2: connect the real device to the bus using tty_attach:

    tty_attach -s /tmp/ttyS0mux /dev/ttyS0 &
    sleep 1

- step 3: create 2 fake ttyS0 devices, attached to the bus:

    tty_fake -s /tmp/ttyS0mux /dev/ttyS0fake0 &
    tty_fake -s /tmp/ttyS0mux /dev/ttyS0fake1 &
    sleep 1

- step 4: start your application and force it to use the new serial device for input or output

    /bin/foo /dev/ttyS0fake0 &
    /bin/bar /dev/ttyS0fake1 &

注意:我必须通过终止命令来将所有 tty_* 二进制文件分叉到后台,&因为二进制文件正在阻塞,并且需要进行一些睡眠以防止二进制文件相互干扰。

祝你好运!

答案2

串行端口通信始终在 2 个设备之间进行无法共享。一次只有一个应用程序可以容纳该设备。但可以窥探通信,即监视数据传输。

相关内容