RJ-45 RS-232,我可以替换 RS-232 端并将以太网端口滥用为 COM 端口吗?

RJ-45  RS-232,我可以替换 RS-232 端并将以太网端口滥用为 COM 端口吗?

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

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

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

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

答案1

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

Socat 是一个完全不同的级别,在这里绝对没有用处:它是一个 TCP/IP 通信工具:它对底层硬件的电气特性一无所知 - 它可以通过 RS232 线路进行通信,但它会谈论 TCP,并且您需要在另一端谈论 TCP 才能工作。

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

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

答案2

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

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

有许多产品确实提供了这种转换,事实上,大多数产品的串行端都使用 RJ-45 连接器。对于单端口转换器的示例,有数码一号SP。更常见的是提供多个串行端口的盒子,例如Digi端口服务器Avocent(原 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 连接的程序的兼容性。

相关内容