For the complete documentation index, see llms.txt. This page is also available as Markdown.

30.2.串行术语和硬件

以下是串行通信中常用的术语:

bps 每秒位数(bps)是数据传输的速率。

DTE 数据终端设备(DTE)是串行通信中的两个端点之一。例如,计算机就是 DTE。

DCE 数据通信设备(DCE)是串行通信中的另一个端点。通常,它是调制解调器或串行终端。

RS-232 定义硬件串行通信的原始标准。后来它更名为 TIA-232。

在提到通信数据速率时,本节不使用“baud”一词。波特(baud)指的是在一定时间内发生的电气状态转换的次数,而 bps 是正确的术语。

要将串行终端连接到 FreeBSD 系统,需要计算机的串行端口和正确的电缆来连接到串行设备。已经熟悉串行硬件和电缆的用户可以安全地跳过本节。

30.2.1. 串行电缆和端口

有几种不同类型的串行电缆。最常见的两种类型是空调制解调器电缆和标准 RS-232 电缆。硬件的文档应该说明所需的电缆类型。

这两种电缆在如何连接信号线到连接器方面有所不同。每根导线代表一个信号,定义的信号总结在 RS-232C 信号名称 中。标准串行电缆直接传输所有 RS-232C 信号。例如,电缆一端的“传输数据”引脚连接到另一端的“传输数据”引脚。这种类型的电缆用于将调制解调器连接到 FreeBSD 系统,也适用于某些终端。

空调制解调器电缆交换了连接器一端的“传输数据”引脚与另一端的“接收数据”引脚。连接器可以是 DB-25 或 DB-9。

空调制解调器电缆可以使用 DB-25 到 DB-25 空调制解调器电缆DB-9 到 DB-9 空调制解调器电缆,以及 DB-9 到 DB-25 空调制解调器电缆 中总结的引脚连接来构建。虽然标准要求直通式引脚 1 到引脚 1 的“保护地线”,但通常会省略。一些终端仅使用引脚 2、3 和 7,而其他终端可能需要不同的配置。如有疑问,请参考硬件的文档。

表 1. RS-232C 信号名称

缩写
名称

RD

接收数据

TD

传输数据

DTR

数据终端就绪

DSR

数据装置就绪

DCD

数据载波检测

SG

信号地

RTS

请求发送

CTS

清除发送

表 2. DB-25 到 DB-25 空调制解调器电缆

| 信号 | 引脚号 | | 引脚号 | 信号 | | --- | ---- | | ---- | --- | | SG | 7 | 连接到 | 7 | SG | | TD | 2 | 连接到 | 3 | RD | | RD | 3 | 连接到 | 2 | TD | | RTS | 4 | 连接到 | 5 | CTS | | CTS | 5 | 连接到 | 4 | RTS | | DTR | 20 | 连接到 | 6 | DSR | | DTR | 20 | 连接到 | 8 | DCD | | DSR | 6 | 连接到 | 20 | DTR | | DCD | 8 | 连接到 | 20 | DTR |

表 3. DB-9 到 DB-9 空调制解调器电缆

| 信号 | 引脚号 | | 引脚号 | 信号 | | --- | ---- | | ---- | --- | | RD | 2 | 连接到 | 3 | TD | | TD | 3 | 连接到 | 2 | RD | | DTR | 4 | 连接到 | 6 | DSR | | DTR | 4 | 连接到 | 1 | DCD | | SG | 5 | 连接到 | 5 | SG | | DSR | 6 | 连接到 | 4 | DTR | | DCD | 1 | 连接到 | 4 | DTR | | RTS | 7 | 连接到 | 8 | CTS | | CTS | 8 | 连接到 | 7 | RTS |

表 4. DB-9 到 DB-25 空调制解调器电缆

| 信号 | 引脚号 | | 引脚号 | 信号 | | --- | ---- | | ---- | --- | | RD | 2 | 连接到 | 2 | TD | | TD | 3 | 连接到 | 3 | RD | | DTR | 4 | 连接到 | 6 | DSR | | DTR | 4 | 连接到 | 8 | DCD | | SG | 5 | 连接到 | 7 | SG | | DSR | 6 | 连接到 | 20 | DTR | | DCD | 1 | 连接到 | 20 | DTR | | RTS | 7 | 连接到 | 5 | CTS | | CTS | 8 | 连接到 | 4 | RTS |

注意

当一端的一个引脚连接到另一端的一对引脚时,通常在连接器中用一根短线连接引脚对,再用一根长线连接到另一端的单个引脚。

串行端口是数据在 FreeBSD 主机和终端之间传输的设备。有几种不同类型的串行端口。在购买或制作电缆之前,确保它适配终端和 FreeBSD 系统的端口。

大多数终端具有 DB-25 端口。个人计算机可能具有 DB-25 或 DB-9 端口。多端口串行卡可能具有 RJ-12 或 RJ-45 端口。查看随硬件提供的文档,了解端口类型,或通过外观确认端口类型。

在 FreeBSD 中,每个串行端口通过 /dev 目录中的一个条目访问。有两种不同类型的条目:

  • Call-in 端口命名为 /dev/ttyuN,其中 N 是端口号,从零开始。如果终端连接到第一个串行端口(COM1),则使用 /dev/ttyu0 来表示该终端。如果终端连接到第二个串行端口(COM2),则使用 /dev/ttyu1,以此类推。通常,呼入端口用于终端。呼入端口要求串行线路激活“数据载波检测”信号才能正常工作。

  • Call-out 端口在 FreeBSD 8.X 及更高版本中命名为 /dev/cuauN,在 FreeBSD 7.X 及以下版本中命名为 /dev/cuadN。呼出端口通常不用于终端,但用于调制解调器。如果串行电缆或终端不支持“数据载波检测”信号,则可以使用呼出端口。

FreeBSD 还提供了初始化设备(/dev/ttyuN.init/dev/cuauN.init/dev/cuadN.init)和锁定设备(/dev/ttyuN.lock/dev/cuauN.lock/dev/cuadN.lock)。初始化设备用于在每次打开端口时初始化通信端口参数,例如为使用 RTS/CTS 信号流控制的调制解调器设置 crtscts。锁定设备用于锁定端口上的标志,以防止用户或程序更改某些参数。有关终端设置、锁定和初始化设备以及设置终端选项的信息,请分别参考 termios(4)uart(4)stty(1)

30.2.2. 串口配置

默认情况下,FreeBSD 支持四个串口,通常称为 COM1COM2COM3COM4。FreeBSD 还支持哑多端口串行接口卡,例如 BocaBoard 1008 和 2016,以及更智能的多端口卡,如 Digiboard 生产的卡。然而,默认内核仅查找标准的 COM 端口。

要查看系统是否识别了串口,可以查找以 uart 开头的系统引导消息:

如果系统未识别到所有所需的串口,可以在 /boot/device.hints 中添加额外的条目。该文件已经包含了 COM1hint.uart.0.*COM2hint.uart.1.* 条目。当为 COM3 添加端口条目时使用 0x3E8,为 COM4 添加端口条目时使用 0x2E8。常见的 IRQ 地址为 COM35COM49

要确定端口的默认终端 I/O 设置,可以指定其设备名称。以下示例确定 COM2 的呼入端口设置:

系统范围内的串口设备初始化由 /etc/rc.d/serial 控制。此文件会影响串口设备的默认设置。要更改设备的设置,可以使用 stty 命令。默认情况下,更改的设置会一直有效,直到设备关闭,重新打开时会恢复到默认设置。要永久更改默认设置,请打开并调整初始化设备的设置。例如,要为 ttyu5 启用 CLOCAL 模式、8 位通信和 XON/XOFF 流控,可以输入:

要防止应用程序更改某些设置,可以调整锁定设备的设置。例如,要将 ttyu5 的速率锁定为 57600 bps,可以输入:

现在,任何打开 ttyu5 并尝试更改端口速率的应用程序都只能使用 57600 bps。

最后更新于