RJ-45 <-> RS-232,我可以代替 RS-232 端并滥用我的以太网端口作为 COM 端口吗?

0xC*_*22L 2 tty ethernet serial-port

我们有一个来自某些供应商的 PCIX 板(带有 MIPS CPU),它在“板侧”有一个 RJ-45 插孔,电缆的另一侧有一个 RS-232 插头。预期的协议显然与在两台机器之间使用零调制解调器电缆时相同。

现在我想知道是否有一些 Linux 或 *nix 风格可以让我用两端带有 RJ-45 连接器的标准跳线替换电缆(由于明显的原因没有交叉)?我读到有人建议socat使用一些类似的用例,但似乎用例太神秘了,以至于该主题几乎不存在文档。当然,到目前为止,我很可能只是使用了错误的搜索词。

推理:现在几乎很难找到带有 COM 端口的设备,但大多数设备都有以太网端口。此外,该板位于一个相当难以接近的位置,因此为了连接到它,我们一直使用移动设备。然后就更难找到带有 COM 端口的机器了。

注意:我知道 RS-232 到 USB 设备,但更喜欢所指出的解决方案,因为它似乎更通用。

Sha*_*off 10

目前还不清楚你想要什么。如果您想使用现有的以太网端口,出于多种原因,这不是一个选择;最基本的是以太网需要精确的端接和电压电平,接口上的硬件(PHY)就是用来处理的。以太网严格使用 +/- 0.85V 和 50ohm 终端阻抗;RS-232 最低使用 +/- 3V,最高可达 +/-25V,通常为 +/-12V。我想如果您确实尝试将以太网端口连接到 RS-232 线路,它会炸毁您的网络接口。

Socat 是另一个层次,在这里绝对没有用:它是一个 TCP/IP 通信工具:它对底层硬件的电气特性一无所知——它可以通过 RS232 线路进行通信,但它会说 TCP,你需要在另一边说 TCP 才能工作。

现在,如果您正在设计一块电路板,您可以将带有迹线的 RJ45 插孔连接到串行 I/O 端口,这正是您的 PCIX 板的制造商所做的。我也见过这样的 Cisco 路由器。

您真正需要的工具是 RS232->USB 转换器。


War*_*ung 5

许多设备使用非标准的串行端口连接器。RJ-45 可能是继 DB-9 之后用于 RS-232 串行的最常用连接器,但与 DB-9 不同的是,它甚至没有事实上的引脚分配标准。我知道 4 种不同的 RJ-45 RS-232 引脚排列,可能还有其他的我还没有看到。

这并不意味着人们以某种​​方式将以太网转换为串行。他们只是碰巧使用相同的连接器。

有许多产品确实提供了这种转换,事实上,它们中的大多数确实在其串行端使用了 RJ-45 连接器。对于单端口转换器的示例,有Digi One SP。更常见的是提供多个串行端口的盒子,例如Digi PortServerAvocent(neé Cyclades)控制台服务器。这些只是众多例子中的两个。Digi 和 Avocent 无疑是两个最大的参与者,但还有很多小公司在做这样的事情。

其中一些盒子/dev/ttyWHATEVER通过安装驱动程序向操作系统显示。它们的优点是任何知道如何与串行端口通信的程序都可以与插入转换器的远程设备通信。在大多数情况下,驱动程序使转换器看起来与本地串行端口没有区别。例如,如果程序打开转换器的一个/dev/节点并调用cfsetospeed()它来设置串行端口的比特率,驱动程序会将命令转发到远程转换器盒,后者会更改该端口上的串行比特率。

您在使用这种类型的转换器时遇到的主要问题是,并非总能找到适合您的特定内核的工作驱动程序。随着 RS-232 的普及,这个问题变得越来越普遍,因为这意味着提供这些盒子的公司越来越没有动力继续增强他们的驱动程序以跟踪内核差异。

另一种主要类型的串行到以太网转换器是纯粹的网络设备。例如,对于 Cyclades 盒子,如果它从 DHCP 服务器获取 IP 10.1.2.3,则可以在 TCP 端口 7001 上连接到 10.1.2.3 以连接到第一个串行端口。您将使用 TCP 端口 7002 作为第二个串行端口,依此类推。

要使用此类转换器设置串行端口参数,您通常必须使用由转换器盒托管的 Web 管理 UI。虽然这确实意味着您不会获得自动串行端口参数转发到转换器等功能,但您确实可以与任何无需驱动程序即可打开 TCP 连接的程序兼容。