我有一个空闲的 DB-25 端口(通俗地说:“并口”)在 Ubuntu 16.04 机器上和正确的电缆(CISCO 终端电缆)上,现在我想使用此电缆使用此端口进行 RS-232 串行通信(现在您通常会使用 DE-9 端口 [“串行端口”] for,我已经在使用了)。
输出lsmod | grep ppdev
:
ppdev 20480 0
parport 49152 2 ppdev,parport_pc
我没有/dev/parport*
或/dev/lp*
。我有/proc/sys/dev/parport/default/
但没有/proc/sys/dev/parport/parport*
。
两者下都没有相关条目/sys/class/tty/
。
可能相关的行来自dmesg
:
[ 13.833749] parport_pc 00:03: disabled
[ 13.833757] parport_pc: probe of 00:03 failed with error -22
[…]
[ 15.783423] ppdev: user-space parallel port driver
在我pnpacpi=off
按照以下方式添加到内核命令行之后https://lkml.org/lkml/2008/6/12/4:
[ 14.676968] parport0: PC-style at 0x378 (0x778)
[…]
[ 14.804761] parport0: irq 7 detected
现在有/dev/parport0
和/proc/sys/dev/parport/parport0
。
那么如何启用它并像其他相关tty
设备一样将其用于串行通信呢?
答案1
DB25 端口可以是串行端口,也可以是并行端口,具体取决于性别,但我已经很久没有使用过 DB25 端口了,以至于我不记得哪个是哪个。
它们的设计不同,不能互换。并行端口使用 0 和 +5 伏信号传输,串行端口使用 -12 和 +12 伏信号。
如果您的电缆合适,可以肯定地说它是串行端口,您应该尝试使用 /dev/ttyS1 进行通信。
答案2
问题下方评论中的讨论摘要:
- 这里所尝试的实际上是不可能的,或者至少不像最初想象的那么容易。
- 并行端口不能(轻松且无需硬件和软件黑客)用于串行通信(更不用说真正的 RS-232)。该端口仅适用于 IEEE 1284,没有串行模式。
- RS-232 指定用于 DB-25,它是使用的原始连接器。但 PC 几乎总是有更便宜/更小的 DB-9 端口。拨号调制解调器通常有 DB-25。
- 此处启动此任务的所讨论的 Cisco 电缆(带有 DB-25 端)并不是用于将控制台端口连接到计算机,而是用于拨号调制解调器以进行远程访问。
- 还有非思科 DB9 至 8P8C,它们具有不同的引脚分配(例如,APC 过去曾为其 UPS 提供一些引脚分配)。还有其他 DB25 至 8P8C 引脚排列,请参见https://en.wikipedia.org/wiki/Serial_port#Pinouts(思科是那里提到的约斯特 (DCE), 也可以看看https://www.lammertbies.nl/comm/cable/yost-serial-rj45.html)。
答案3
关于“软件黑客”,我不确定它是否需要,因为有关“控制台”选项的内核信息包括 lp0 作为一种可能性。因此,您可以在端口上启用 EPP/ECP,在 Ubuntu 上启用控制台,以便它处理这个 DB25 并行端口。
我同意 Cisco 电缆是串行 DB25 电缆,不适用于并行端口使用。
但是,关于“硬件黑客”
情况 1) 另一端有 USB 连接器。我想任何用于将打印机连接到 USB 端口的并行端口到 USB 转换器都可以用作控制台电缆,并且我们将只提供合适的公对公 25 针接线适配器。已经完成的适配器是 LapLink 电缆。 https://en.wikipedia.org/wiki/LapLink_cable#Wiring
情况 2) 要在另一端有一个 DB9(串行)连接器,您将需要一个 USB 主机来转换为第二根 USB 转串行电缆,但仅使用 Raspberry Pi 就可以成为进行直通通信的廉价解决方案从并行到 USB 到 USB 到串行电缆。
只是说这是可行的。