1394(火线)比 USB 强的地方不在速率,在「能预约带宽」。 它输给 USB 也不是因为技术——又是迁移成本。
3.6.7 讲的是「怎么把线做宽」,这一节讲一件线宽解决不了的事:要保证。 USB 也能做等时传输,差别在「对等」还是「主从」,这一节会把这点说透。
一、它保证的是什么
先把各代速率摆清楚,因为「火线」这个名字混着好几代:
| 版本 | Mbps | MB/s | 常见叫法 |
|---|---|---|---|
| 1394-1995 | 400 | 50 | 400 火线 |
| 1394a | 400 | 50 | 400 火线 |
| 1394b | 800 | 100 | 800 火线 |
| 1394b 光纤 | 3200 | 400 | 很少见 |
第四行那个 3200 走光纤,产品极少,所以日常见到的就是 400 和 800 两档。 而 USB 2.0 是 480 Mbps、USB 3.0 是 5 Gbps——单看速率,1394 从来没赢过。 它的长处是另一件事:等时传输。 「等时」的意思是「每一轮都有你固定的位置」: 总线每 125 微秒走一个周期,周期开头先按预约分配时间片,剩下的才给普通数据。 所以只要预约成功,你每一轮都拿得到,不会被别人挤掉。 这件事对专业视频是硬需求:录像的时候掉一帧,整段素材就废了。 而普通外设(U 盘、鼠标)只要「最终传完」就行,慢一点没关系。
二、预约是怎么算的
把一条 400 Mbps 的总线分配一遍,就很直观了:
| 占用者 | 预约 Mbps | 累计 Mbps |
|---|---|---|
| 摄像机 1 | 100 | 100 |
| 摄像机 2 | 100 | 200 |
| 音频通道 | 5 | 205 |
| 控制通道 | 1 | 206 |
| 异步(剩余) | 194 | — |
前四行是「包出去」的,第五行才是「谁抢到算谁的」: 两台摄像机各占 100 Mbps,音频和控制占掉 6 Mbps,剩下的 194 Mbps 留给硬盘、打印机这些。 所以「一边录像一边插硬盘拷文件」不会掉帧:因为拷贝走的是异步那部分,抢不到摄像机的份额。 这一点在当年是区分「专业机」和「民用机」的关键。 反过来也要看到它的代价: 预约是「预留」,不是「按需」——摄像机接着但没在录,那 100 Mbps 也照样空着,别人用不了。 所以 1394 总线的实际利用率通常不高。 「保证」和「高效」天生是一对矛盾,后面讲 QoS 还会遇到。
三、为什么输给 USB
三条原因,一条比一条现实:
| 维度 | 1394 | USB |
|---|---|---|
| 架构 | 对等(设备可直连) | 主从(都要过主机) |
| 授权费 | 按端口收 | 很低 |
| 普及面 | 只在摄像机、音频 | 每台电脑都有 |
第一行是技术上的真实差别:1394 的两台设备可以直接互传,不需要电脑参与; USB 的一切都要经过主机调度。 所以 1394 能拍「摄像机直接录到外置硬盘」,USB 不能。 第二行是致命的那条:1394 的专利授权按端口收费,主机厂商每做一个口都要付钱; USB 起初几乎免费。 于是「每台电脑都带 USB 口」变成现实,而 1394 只剩高端机型有。 第三行是结果:一个接口的价值等于「有多少设备能插它」。 设备跟着主机走,主机跟着成本走——所以「免费」这个属性能直接决定一个接口的生死。 这和 100VG 是同一个故事的两面:那边输在「必须整网换」,这边输在「每个口都要付钱」。 两者都不是技术问题。
四、动手 Demo:IEEE 1394 的「等时传输」是什么
把 400 Mbps 的总线按预约分配一遍,看「保证」到底占掉多少。 注意最后剩下的是 194 Mbps——接近一半被预留着。
for name, mbps in (('1394-1995', 400), ('1394a', 400),
('1394b', 800), ('1394b 光纤', 3200)):
print('%-12s %5d Mbps %5.0f MB/s' % (name, mbps, mbps / 8))
total, used = 400, 0
for who, need in (('摄像机 1', 100), ('摄像机 2', 100),
('音频通道', 5), ('控制通道', 1)):
used += need
print('%-8s 预约 %3d Mbps,累计 %3d' % (who, need, used))
print('剩余(异步) %d Mbps' % (total - used))
实跑输出:
--------------------------------------------------------------------
IEEE 1394 的「等时传输」是什么
--------------------------------------------------------------------
**1394(也就是「火线」)在专业摄像机时代很常见。**
**它比 USB 强的地方不在速率,在「能保证带宽」。**
版本 Mbps MB/s
---------------------------------
1394-1995 400 50
1394a 400 50
1394b 800 100
1394b(光纤) 3200 400
**第二行 400 Mbps 就是常说的「400 火线」,第三行 800 是「800 火线」。**
**第四行的 3200 走光纤,实际产品很少。**
**等时传输的意思是「每一帧周期里,先给预约过的通道留出固定时间」**:
占用者 预约 Mbps 累计
----------------------------------------
摄像机 1 100 100
摄像机 2 100 200
音频通道 5 205
控制通道 1 206
**剩余(异步)** **194** 400
**前四行是「预约」出去的,第五行才是「谁抢到算谁的」**:
**等时通道每 125 微秒一个周期,保证能拿到自己的那一份。**
**所以录像不会因为「同时插了个硬盘」而掉帧**——**这一点对专业视频是硬需求,对普通外设不是。**
**USB 当年的做法是「主机轮询」**:**所有设备共用一条总线,主机按自己的节奏分配。**
**它也能做等时(USB 的 isochronous 传输),但**
**1394 是「对等」的(设备之间可以直接传,不用过主机),USB 是「主从」的。**
**所以 1394 输给 USB 的原因很清楚**:**它更好,但更贵,而且 USB 靠「便宜 + 主机端普及」赢了。**
**又一次是「迁移成本」而不是「技术指标」。**
125 微秒这个周期是 1394 的心跳:一秒 8000 个周期,每个周期开头发一个「周期开始」包, 后面按预约顺序填充。 所以延迟也是有界的——最坏情况等一个周期,8 毫秒。 「等时」和「异步」这两个词要分清:等时是「保证时间、不保证送达」(丢了不重传); 异步是「保证送达、不保证时间」(靠确认和重传)。 视频要前者,文件要后者。 一条总线上两种都跑,靠周期划分隔开。 1394 今天还在用的地方是汽车和工业相机:那些场合要的就是「确定的延迟」和「对等直连」, 而这两点恰好是 USB 和以太网都不擅长的。 技术没消失,只是退到了消费市场看不见的地方。
30 秒实验
- 算一下:如果两个摄像机各要 200 Mbps,400 Mbps 的总线还能带吗?
- 想一下:为什么「等时」传输丢了不重传,而「异步」要重传?
- 查一下你身边还有没有 1394 接口的设备,它被什么替代了?
常见误区
- 以为「1394 比 USB 快」。 同期它一直更慢,480 Mbps 的 USB 2.0 就超过了 400 火线。
- 以为「等时传输就是优先级高」。 它是「预留时间片」,预约不到就直接失败, 不是「排队排前面」。
- 以为「1394 被淘汰说明它设计得差」。 它的对等架构和带宽保证都很先进, 输的是授权费和普及面。
自测三问(点开对答案)
1. 等时传输解决什么问题? —— **保证每一轮都有固定带宽**,所以录像不会因为别的设备在传数据而掉帧。 2. 1394 和 USB 的架构差别在哪? —— **1394 是对等的,设备之间可以直接传**;**USB 是主从的,一切都要经过主机调度。** 3. 它为什么输了? —— **端口授权费高、普及面窄**,而 USB 靠「便宜 + 每台电脑都有」赢了市场。下一节看 HDMI:一个把版本号当带宽用的链路层。
- ☐ (本节完,下一节 3.6.9 HDMI)