第1章 IEEE 1394概述 1
1.1 IEEE 1394总线的出现 1
1.2 什么是IEEE 1394 2
1.3 采用1394的原因 2
1.4 IEEE 1394与其他总线的比较 3
1.4.1 与同类总线USB的比较 3
1.4.2 IEEE 1394与并行总线的比较 4
1.4.3 IEEE 1394与其他接口速度的比较 4
1.5 IEEE 1394的主要特点 4
1.6 IEEE 1394的应用 5
第2章 1394体系结构概述 7
2.1 IEEE 1394的拓扑结构 7
2.1.1 节点和模块体系 7
2.1.2 拓扑结构 8
2.1.3 寻址 9
2.2 协议结构 10
2.2.1 事务层 11
2.2.2 链路层 12
2.2.3 物理层 17
2.2.4 总线管理 18
第3章 通信模型及服务 19
3.1 异步传输模型和服务 19
3.1.1 请求子事务 20
3.1.2 响应子事务 23
3.2 等时传输模型和服务 26
3.2.1 等时传输的建立和保持 27
3.2.2 等时传输服务 28
3.3 锁定事务 30
3.3.1 锁定事务的模型 30
3.3.2 锁定操作提供的服务 31
第4章 物理及电气接口 32
4.1 连接器 32
4.2 线缆 35
4.2.1 线缆的信号 35
4.2.2 线缆的电气特征 35
4.2.3 线缆的物理结构 36
4.2.4 扩充槽 device bay
36
4.3 电气参数和接口 38
4.3.1 信号幅度 39
4.3.2 共模电压 40
4.3.3 噪声 40
4.3.4 设备连接和拆卸的检测 41
4.3.5 速度信号的检测 41
4.3.6 仲裁信号 43
4.4 线缆电源和地 47
第5章 IEEE 1394的数据包 49
5.1 主数据包 50
5.2 异步数据包 52
5.2.1 无数据的异步包 52
5.2.2 具有4字节数据的异步包 54
5.2.3 具有数据块的异步包 56
5.3 确认包 60
5.3.1 确认代码 61
5.3.2 确认校验 61
5.4 等时数据包 62
5.5 异步数据流包 63
5.6 主数据包中的字段 64
第6章 仲裁 69
6.1 概述 69
6.1.1 仲裁信号 69
6.1.2 自然优先级 71
6.2 异步仲裁 72
6.3 等时仲裁 73
6.4 公平仲裁 74
6.5 混合仲裁 75
6.6 1394a中关于仲裁的内容 75
6.6.1 确认加速仲裁 75
6.6.2 Fly-by连接 76
6.6.3 优先级仲裁 77
6.7 多速度数据包连接 78
6.8 一个仲裁的简单例子 78
6.9 小结 81
第7章 事务重传 82
7.1 概述 82
7.2 事务重传次数限制 83
7.3 数据包错误及其处理 84
7.4 单步重传协议 85
7.4.1 单步输入重传 85
7.4.2 单步输出重传 86
7.5 两步重传协议 87
7.5.1 两步输入重传 87
7.5.2 两步输出重传 92
第8章 总线配置 94
8.1 总线初始化 94
8.1.1 总线复位状态机 96
8.1.2 1394a对总线复位的一些改进 97
8.2 树标识过程 99
8.2.1 树标识的信号 99
8.2.2 树标识状态机 100
8.2.3 树标识进程 101
8.3 自标识过程 105
8.3.1 自标识的主要功能 106
8.3.2 自标识状态机 106
8.3.3 自标识进程 108
8.3.4 拓扑结构的分析 115
8.3.5 自标识数据包 117
8.4 线缆环境下的总线配置 120
8.4.1 总线中有总线管理器和等时资源管理器时总线的配置 121
8.4.2 仅有等时资源管理器时总线的配置 125
8.4.3 等时资源管理器和总线管理器为同一节点的情况 126
第9章 总线管理及其服务 127
9.1 概述 127
9.2 网络中节点的几种功能 128
9.3 循环控制器 130
9.4 等时资源管理器 131
9.4.1 等时资源管理器的确定 131
9.4.2 等时资源管理器的使用 132
9.5 总线管理器 135
9.5.1 总线管理器的确定 135
9.5.2 拓扑结构图 136
9.5.3 间隔计数 137
9.5.4 速度图 139
9.6 串行总线管理服务 139
9.6.1 串行总线控制请求 139
9.6.2 串行总线控制确认 141
9.6.3 串行总线事件指示 142
9.7 串行总线管理变量 144
9.8 总线管理状态机 145
9.8.1 循环控制器状态机 145
9.8.2 等时资源管理器状态机 146
9.8.3 总线管理器状态机 148
第10章 物理层和链路层接口 150
10.1 概述 150
10.2 接口之间的操作 152
10.2.1 请求操作 153
10.2.2 状态操作 156
10.2.3 传输操作 157
10.2.4 接收操作 158
10.3 初始化和复位 159
10.4 链路层开启和中断指示 162
10.5 加速仲裁控制 162
第11章 CSR寄存器 164
11.1 CSR核心寄存器 164
11.2 依赖于串行总线的寄存器 170
11.3 单元寄存器 179
11.4 复位对CSR寄存器的影响 182
第12章 配置ROM 183
12.1 概述 183
12.2 配置ROM的一般格式 184
12.3 循环冗余校验码(CRC) 192
12.3.1 算法原理 192
12.3.2 算法分析 193
12.3.3 程序实现 193
12.4 配置ROM的例子 194
12.4.1 实例一 195
12.4.2 实例二 196
12.4.3 标识符的确定 200
第13章 挂起和恢复 201
13.1 概述 201
13.2 端口挂起操作 201
13.2.1 端口的挂起 201
13.2.2 挂起的连接 203
13.2.3 挂起域 204
13.3 恢复操作 204
13.3.1 端口的恢复 204
13.3.2 边界节点 206
13.4 挂起和恢复的例子 207
第14章 电源管理 209
14.1 概述 209
14.2 线缆电源分配 211
14.2.1 电源提供者 212
14.2.2 电源消耗者 214
14.2.3 自身提供电源者 214
14.2.4 注意事项及示例 214
14.2.5 小结 216
14.3 电源状态管理 217
14.4 新增加的CSR 219
14.5 新增加的配置ROM项 224
14.5.1 节点电源目录配置项 224
14.5.2 元件电源级别配置项 226
第15章 物理层寄存器 227
15.1 1394-1995物理层寄存器 227
15.2 1394a物理层寄存器 229
15.3 附加寄存器 232
15.3.1 端口状态寄存器页 232
15.3.2 生产商标识寄存器页 234
15.3.3 与生产商有关的信息页 235
第16章 物理层数据包 236
16.1 物理层数据包格式 236
16.1.1 自标识数据包 237
16.1.2 开启链路包 237
16.1.3 物理层配置包 238
16.2 扩展物理层数据包 239
16.2.1 试通包 239
16.2.2 远程存取包 240
16.2.3 远程应答包 241
16.2.4 远程命令包 241
16.2.5 远程确认包 242
16.2.6 恢复包 243
第17章 物理层控制芯片 245
17.1 概述 245
17.2 芯片管脚的功能 249
17.3 内部寄存器配置 251
17.3.1 基本寄存器 251
17.3.2 扩展寄存器 253
17.4 使用时注意的问题 257
17.5 TSB12LV01B与TSB41LV04A的接口 261
17.5.1 概述 261
17.5.2 接口之间的互操作 262
17.5.3 接口的复位和禁止 271
17.6 物理层芯片用作转发器 274
第18章 链路层控制器 278
18.1 概述 278
18.2 结构单元 282
18.3 内部寄存器 284
18.4 FIFO的存取访问 295
18.4.1 概述 295
18.4.2 ATF的存取 296
18.4.3 ITF的存取 297
18.4.4 通用接收FIFO(GRF)的存取 299
18.4.5 RAM测试模式 301
18.5 数据包格式 302
18.5.1 异步发送包(数据由主机发往芯片) 302
18.5.2 接收包(数据由芯片发往主机) 307
18.5.3 等时数据包 311
18.5.4 其他类型的数据包 313
18.6 批量数据接口(某些芯片的功能) 315
18.6.1 BDIF的结构 315
18.6.2 BDIF控制寄存器的配置 317
18.6.3 BDIF的工作模式 319
第19章 芯片的布局和布线 323
19.1 概述 323
19.2 布局的规则 323
第20章 1394 OHCI简介 330
20.1 概述 330
20.2 硬件描述 331
20.3 软件接口概述 335
20.4 1394 OHCI节点偏移址映像图 336
20.5 系统需求 337
20.6 物理请求 338
第21章 1394总线的测试 340
21.1 简介 340
21.2 配置环境的设置 340
21.3 循环开始 341
21.4 总线复位 342
21.5 树标识 343
21.6 自标识 344
21.7 数据传输 346
第22章 Windows WDM驱动程序模型 348
22.1 驱动程序概述 348
22.2 操作系统概述 351
22.3 WDM驱动程序的基本结构 353
22.3.1 驱动程序中的对象 353
22.3.2 I/O缓冲策略 358
22.3.3 WDM的层次化体系结构 360
22.3.4 IRP 364
22.3.5 WDM驱动程序的结构和基本例程 369
22.3.6 WDM驱动程序的安装 374
第23章 利用Windows 2000 DDK开发1394设备驱动程序 378
23.1 Windows对IEEE 1394的支持 378
23.1.1 1394的硬件资源 378
23.1.2 IEEE 1394驱动程序栈 378
23.1.3 IEEE 1394总线支持的内部IOCTL 379
23.1.4 IEEE 1394设备的异步传输 382
23.1.5 IEEE 1394设备的等时传输 388
23.2 设备驱动程序的例程 392
23.2.1 初始入口点 392
23.2.2 AddDevice例程 393
23.2.3 即插即用(PnP)的实现 399
23.2.4 电源管理 404
23.2.5 分发例程 408
23.3 Windows 2000 DDK 411
23.3.1 DDK简介 411
23.3.2 内存管理 412
23.4 客户应用程序的设计 414
23.4.1 枚举设备接口 414
23.4.2 客户应用程序与1394设备之间的通信 416
第24章 利用DriverWorks开发1394设备驱动程序 418
24.1 DriverWorks介绍 418
24.1.1 DriverStudio简介 418
24.1.2 DriverWorks特点 418
24.1.3 DriverStudio的安装与配置 419
24.2 DriverWorks提供的类 420
24.2.1 WDM驱动类 420
24.2.2 IEEE 1394类 422
24.3 DriverWorks的使用 424
24.4 DriverWorks驱动开发策略 432
24.4.1 PDO和FDO 432
24.4.2 设备接口 433
24.4.3 即插即用 434
24.4.4 电源管理 435
24.4.5 异步传输 436
24.4.6 等时传输 438
24.4.7 WMI例程 440
附录 442
附录A 电缆接口时常数 442
附录B 链路层芯片与DSP芯片接口实例 446
B.1 功能描述 446
B.2 一般读/写功能描述 448
B.3 TMS 320AV7100微处理器接口的时序要求 450
B.4 TMS320AV7100握手模式 451
B.5 TMS320AV7100盲访问模式 454
附录C 有关1394的一些问题 457
附录D 名词解释 460
参考文献
465