![COM2 与 COM1 的偏好](https://linux22.com/image/1442662/COM2%20%E4%B8%8E%20COM1%20%E7%9A%84%E5%81%8F%E5%A5%BD.png)
我依稀记得很久以前曾有人建议将调制解调器连接到 COM2,而不是任何其他 COM 端口。我甚至更模糊地记得这是因为 COM2 通常有一个不与其他任何东西共享的 IRQ,因此丢包的可能性较低?
想必现在所有这些都完全不相关了,因为中断是自动分配的,而且中断共享也得到了很好的支持?
(这可以追溯到 PCI 或 USB 等即插即用设备出现之前,IRQ 是通过 MB 或附加卡上的跳线来分配的。)
答案1
如果我们回到“DOS 时代”,那时 PS/2 和 USB 还不存在(或者至少还不常见),拥有鼠标还是一种奢侈(或者至少不常见);我们这里谈论的是 XT/AT 时代……
COM1 是鼠标的传统位置。它通常是机箱上的 9 针端口,而 COM2 通常是 25 针端口。大多数“调制解调器电缆”都是 25 针电缆。
由于 COM1 和 COM2 已分配给这些外部端口,因此使用内置调制解调器的人通常会认为他们应该使用 COM3,因为它是下一个未使用的 COM 端口。
COM1 和 COM3 共享一个 IRQ(IRQ4)和 I/O 地址(0x3F8),COM2 和 4 也是如此(IRQ3/0x2F8)。如果您尝试将共享的 IRQ 和/或 I/O 地址用于多个设备,则会遇到冲突并且设备无法正常工作(通常根本无法工作)。
由于 COM1 通常是鼠标,因此 COM2 在数字上排在下一个,并且使用 COM3 会与 COM1 冲突,因此 COM2 是调制解调器通常选择的 COM。
通常,您需要摆弄的跳线位于内部调制解调器上,以设置首选的 COM、IRQ 等。通常这些是拨码开关(与跳线相对),类似于外部调制解调器上的拨码开关。
对于内置调制解调器来说,禁用主板上的 COM2 和 4 也是必要的,有时这需要在主板上摆弄跳线,但这通常只是在 BIOS 设置中完成(从很早开始)。
在那个年代,很难进行多任务处理,而且由于处理速度低,任务交换也很慢。因此,拥有一个共享 IRQ 的操作系统非常困难,甚至是不可能的,而且事情仍然在很大程度上依赖于电子而不是编程。快进到今天,随着速度和资源的消耗(可以这么说),更不用说该领域多年的技术进步,共享 IRQ 是很多更容易,并且操作系统会为您完成大部分工作(想想即插即用)。
答案2
问题出现在当 PC 上有新的外围设备 (例如鼠标、图形输入板、网卡) 时,为了连接这些外围设备需要一个 IRQ,而人们在安装它时使用了与 COM1 相同的 IRQ,因为这是第一个可用的 IRQ。
IRQ 无法共享,因此只需禁用 COM1 即可,您需要将外部调制解调器连接到 COM2。
如今,由于 PCI 或 USB 等自动配置系统几乎不可能出现基于 IRQ 或 I/O 地址重叠的硬件冲突。