异步通信

AIX® 提供以下类别的异步设备驱动程序 (也称为 tty 设备驱动程序):

  • 用于系统平面上串口的驱动程序
  • 用于通过适配器与系统连接的串口的驱动程序
  • 伪 tty 驱动程序

第一个类别中的驱动程序为 PCI 适配器。 它们包括 2 端口适配器、8 端口适配器和 128 端口适配器。

在第二个类别中, 8 端口和 128 端口 PCI 适配器称为智能适配器,因为它们使用 Intel 8086 处理器从主机 CPU 卸载许多字符处理。 这些适配器由一个 20 ms 的轮询器而非硬件中断来驱动,它们还可以提供匹配多数串行设备和应用程序的良好的性能特性。 由于这些适配器可以支持数量众多的串行设备,随着越来越多的设备被添加到系统中,系统工作负载的增加却非常少,越来越多的设备将有可能使用硬件中断。 另外,由于这些适配器使用带专利的软件来增强性能,因此当数据按大型块方式被移动时,它们与本地系统端口相比可以更加快速有效地发送和接收大量数据。 有关更多信息,请参阅 /usr/include/sys/pse/README.pse 文件中的 wantio 描述。
注: 集成 POWER5 系统端口 类似于串口,但系统端口仅可用于特定支持的功能。 有关更多信息,请参阅 系统端口与串口之间的功能差异

不过,某些设备和应用程序在对单个字符进行处理时期望或需要非常短的等待时间,因此当连接到这些智能适配器时您可能会遇到计时方面的问题。 字符等待时间,或字符回送信号,可能定义为从串口接收单个字符,将其传递到某个应用程序,再将该字符回传至同一个串口的所花的时间。

由于它们使用系统中优先级最高的中断 (INTCLASS0),中断驱动的端口在提供的空闲系统上的等待时间值在 0.10 到 0.20 ms 范围内。 8 端口 PCI 适配器提供的等待时间值平均在 10 到 12 ms 间,个别时间因为 20 ms 的轮询器运行时间加减 10 ms 而有所不同。 128 端口 PCI 适配器也有相同的 20 ms 轮询器运行时间,轮询器通过指向远程访问节点 (RAN) 的轮询通信链路通信。 RAN 允许轮询驱动程序控制串口。 这些端口上的等待时间值平均为 30 ms,但可能会超出 60 ms。

对于特殊的应用程序,可以使用“事件延迟”(EDELAY) 参数对 8 端口的 PCI 适配器和 128 端口的 PCI 适配器的等待时间值进行调整。 要最大限度地提高对接收到单个字符时的响应度,减少 EDELAY 参数的值。 这将使从串口获取单个字符到应用程序所需要的时间最小化,但当接收一个脉冲串中的多个字符时,这会降低吞吐量和总体系统性能。

2 端口 PCI EIA-32 适配器是基于 Exar 17D152 通用 PC 双 UART 的异步串行通信适配器。 2 端口适配器支持两个 DB-9 接口,并提供到异步 EIA-32 设备(例如调制解调器和 tty 终端)的连接。

IBM® eServer p5平台上,AIX 没有本地系统端口。 尽管虚拟终端接口已得到增强,能够通过系统管理程序支持位于 FSP 上的物理串口,但此接口只支持一组特定的串行设备,它并不适合用于替换一般用途的物理串口。 2 端口适配器的行为有些类似于本机系统端口。 适配器设备驱动程序是中断驱动的,支持可编程传输并可接收 FIFO 触发器级别。 它是 PCI 适配器,因此,设备驱动程序支持 EEH、热插拔和 VPD 查询。 当使用虚拟终端(例如在引导、安装)时,2 端口适配器不支持本机系统端口功能,但 KDB 支持该功能。

当使用 rlogintelnet 命令通过网络访问某个系统或在图形监视器上使用窗口系统访问某个系统的情况下,使用伪 tty 驱动程序。 伪 tty 驱动程序提供了一种在除了串行通信介质以外的通信介质上运行基于字符的旧应用程序(例如 vi 文本编辑器)的方法。 有关伪 tty 驱动程序需要注意的重要的问题是,它们是不对称的。 工作程序端向较早的应用程序提供符合 POSIX标准的接口。 控制器端由实体 (例如 rlogintelnet 守护程序或 X-windows) 控制,该实体必须向伪 tty 驱动程序提供串行终端设备的仿真。 AIX 可以高效地支持大量伪 tty 设备。