总线,较早始于计算机领域,是指汇集在一起的多种功能的线路;后经深化并延伸,则是指计算机各模块及计算机之间的一种通信系统,涉及硬件(器件、线缆、电平)和软件(通信协议),其应用被引入嵌入式领域后,用于嵌入式系统的芯片级、板级、设备级的互连。本书主要涉及嵌入式系统中的高速串行总线技术,传输速率在Gbps量级。本书首先按时间的先后顺序梳理出计算机和嵌入式系统中常用的总线技术;然后介绍并基于FPGA实现了目前嵌入式系统中常用的高速串行总线技术,如Serdes、JESD204、SRIO、PCIE、Aurora、SATA总线,侧重于终端技术实现;*后论述嵌入式系统中的常用总线架构,涉及CPCIE、VPX、FC、Infiniband总线架构技术,侧重于整机设计。
第1篇 计算机和嵌入式系统中常用总线的发展历程及趋势
第1章 总线的发展历程及后续趋势 3
1.1 总线的出现及定义 3
1.2 PC总线的发展 5
1.2.1 ISA总线 6
1.2.2 PCI/PCI-X总线 7
1.2.3 PCIE总线 9
1.2.4 ATA/SATA――面向存储的高速总线 10
1.3 嵌入式系统总线的发展 12
1.3.1 嵌入式系统的出现 12
1.3.2 PC104总线――ISA总线的嵌入式系统应用 13
1.3.3 Compact PCI总线――PCI总线的嵌入式应用 15
1.3.4 Compact PCIE架构及其在嵌入式的应用 18
1.3.5 SRIO总线――嵌入式系统的多处理器间互连 19
1.3.6 JESD204总线――面向ADC、DAC的串行通信总线结构 21
1.3.7 FC标准――通道技术与网络技术的结合 22
1.3.8 VPX架构――嵌入式串行总线的集大成者 23
1.4 总线领域三次革命成因与效能分析 25
1.5 高速串行总线技术的优点及共同点分析 28
1.6 高速串行总线的后续发展方向 29
1.6.1 速率继续提升 30
1.6.2 采用多阶电平传输 30
1.6.3 激光通信可行性及其小型化考虑 31
1.6.4 延伸阅读――激光通信代替微波通信 32
1.7 参考文献 34
第2篇 嵌入式系统中常用的高速串行总线及其FPGA实现
第2章 基于SERDES的高速数据传输技术 39
2.1 SERDES技术简介 39
2.2 SERDES物理层――LVDS电平概述 40
2.3 基于FPGA的SERDES传输技术概述 42
2.3.1 FPGA对LVDS电平的支持 42
2.3.2 FPGA内部的并/串转换原语结构OSERDESE2/ISERDESE2 43
2.3.3 基于SERDES原语的传输速率分析 44
2.4 基于FPGA实现SERDES原语的高速数据传输 45
2.4.1 SERDES发送端设计――设置OSERDESE2相关参数 45
2.4.2 SERDES接收端设计――配置ISERDESE2的相关参数 54
2.4.3 实现SERDES通信功能 59
2.5 延伸阅读――FPGA时序优化以及自适应延时调整的SERDES传输技术 61
2.5.1 时钟位置优化――减少由时钟位置造成的延时 61
2.5.2 时序优化――OFFSET约束 63
2.5.3 时序优化――MAXSKEW约束 64
2.5.4 基于Idelay的延时调整技术 64
2.5.5 基于Idelay的自适应动态延时调整技术 66
2.6 小结 67
2.7 延伸阅读――后起之秀:Xilinx公司及其FPGA 67
2.8 参考文献 69
第3章 基于JESD204协议的ADC、DAC数据传输 71
3.1 JESD204协议概述 71
3.2 JESD204协议分析 74
3.2.1 JESD204物理层分析 74
3.2.2 帧填充 76
3.2.3 8B/10B编/解码 77
3.2.4 加/解扰码(Scrambling/De-Scrambling) 79
3.2.5 JESD204协议接收状态机分析 80
3.3 基于GTX实现JESD204协议 82
3.3.1 可行性分析――物理层规范兼容 83
3.3.2 物理层GTX结构分析 83
3.3.3 基于GTX的JESD204协议功能模块构建 88
3.3.4 JESD204协议若干技术点分析 99
3.4 小结 104
3.5 参考文献 104
第4章 基于SRIO总线的高速通信结构 105
4.1 SRIO总线――面向嵌入式系统互连 105
4.1.1 嵌入式总线与PC总线应用分道扬镳 105
4.1.2 SRIO技术针对嵌入式系统互连 107
4.1.3 SRIO VS PCIE VS Ethernet VS Others 108
4.2 SRIO协议分析 110
4.2.1 SRIO协议层次结构 110
4.2.2 SRIO物理层规范 111
4.2.3 数据包及操作类型 113
4.2.4 链路同步 115
4.2.5 链路编码 115
4.2.6 配置空间 117
4.3 基于SRIO总线的点对点通信功能实现 117
4.3.1 创建SRIO工程 118
4.3.2 SRIO工程结构分析 126
4.3.3 SRIO点对点通信的关键技术分析及实现 128
4.3.4 SRIO IP核点对点通信功能测试 130
4.4 基于SRIO总线的交换结构通信功能实现 131
4.4.1 基于SRIO总线的交换结构概述 131
4.4.2 SRIO交换芯片80HCPS1616简介 131
4.4.3 SRIO交换芯片80HCPS1616配置 133
4.4.4 80HCPS1616的I2C配置接口 137
4.4.5 Maintenance帧配置SRIO交换芯片 139
4.4.6 SRIO交换结构的通信性能测试 142
4.5 小结 144
4.6 延伸阅读――串行总线技术再提速,从信息不确定性说起 145
4.7 参考文献 146
第5章 基于PCIE总线的高速数据传输技术 149
5.1 PCIE总线概述 149
5.2 PCIE协议分析 151
5.2.1 PCIE 拓扑结构 151
5.2.2 PCIE分层结构 151
5.2.3 PCIE链路编码与扰码 153
5.2.4 PCIE 地址空间与事务类型 153
5.2.5 延伸阅读――PCIE总线链路同步 154
5.3 基于PCIE协议的点对点通信功能实现 157
5.3.1 FPGA内嵌PCIE硬核简介 157
5.3.2 建立PCIE点对点通信工程 158
5.3.3 PCIE IP核源代码分析 171
5.3.4 PCIE节点接收流程分析 173
5.3.5 PCIE节点发送流程分析 174
5.3.6 基于PCIE协议的点对点通信功能测试 175
5.4 小结 176
5.5 延伸阅读――再论马太效应:从PCIE代替AGP总线说起 177
5.6 参考文献 178
第6章 基于Aurora协议的高速传输技术 181
6.1 Aurora总线概述 181
6.2 Aurora总线协议分析 181
6.2.1 Aurora总线通信模型 181
6.2.2 Aurora物理层电气特性 182
6.2.3 Aurora数据帧结构 184
6.2.4 Aurora链路同步 185
6.3 基于Aurora总线的通信功能实现 188
6.3.1 建立Aurora总线测试工程 188
6.3.2 Aurora总线协议文件及接口分析 192
6.3.3 Aurora总线帧模式与流模式 194
6.3.4 Aurora总线通信性能分析及测试 196
6.4 小结 198
6.5 延伸阅读――Xilinx公司及其Aurora总线 198
6.6 参考文献 199
第7章 基于SATA总线的高速数据存储技术 201
7.1 多种高速数据存储方式涉及的总线形式 202
7.1.1 基于ATA总线标准的数据存储方式 202
7.1.2 基于SCSI总线标准的高速数据存储方式 203
7.1.3 基于SAS/SATA总线标准的高速数据存储方式 205
7.1.4 延伸阅读――基于Nand Flash阵列的高速数据存储方式 208
7.1.5 延伸阅读――基于eMMC及阵列的高速数据存储方式 209
7.1.6 多种存储实现方式的比较与分析 210
7.2 SATA协议分析 211
7.2.1 SATA的分层结构 211
7.2.2 SATA启动过程 212
7.2.3 SATA数据帧与编码 213
7.3 SATA协议IP核的FPGA实现 216
7.3.1 Virtex-5 FPGA GTX简介 216
7.3.2 SATA协议物理层实现 218
7.3.3 SATA协议的OOB通信 226
7.3.4 SATA协议的链路层及传输层关键技术分析 228
7.3.5 SATA协议的应用层实现分析 231
7.3.6 SATA 协议IP核测试 231
7.4 小结 232
7.5 延伸阅读――基于DNA的生物学存储技术 234
7.6 参考文献 236
第3篇 整机设计的嵌入式系统高速数据总线
第8章 CPCIE总线架构 239
8.1 CPCIE总线简介 239
8.2 CPCIE系统中功能模块分类 241
8.3 CPCIE系统连接关系与信号定义 242
8.3.1 连接器类型 242
8.3.2 系统板 245
8.3.3 外设板 248
8.3.4 交换板 249
8.4 CPCIE系统整机设计要素 251
8.4.1 功能模块标识 251
8.4.2 供电要求 252
8.4.3 时钟设计 253
8.5 小结 253
8.6 参考文献 254
第9章 VPX总线架构 255
9.1 VPX总线的起源 255
9.2 VPX协议族分析 257
9.3 VPX协议的典型应用 259
9.4 连接关系与信号定义 260
9.5 整机设计要素 265
9.5.1 模块防插错设计 265
9.5.2 电源设计 266
9.5.3 功能模块与背板信号映射关系 267
9.6 VPX架构与CPCIE架构的异同 270
9.7 小结 270
9.8 参考文献 270
第10章 FC总线技术的实现与应用 273
10.1 FC技术简介 273
10.1.1 FC技术的出现――从大数据、云及SAN存储说起 273
10.1.2 FC技术的优点 275
10.1.3 FC技术的发展路标 276
10.1.4 FC在机载航电系统中的应用 277
10.2 FC协议分析 277
10.2.1 拓扑结构 277
10.2.2 分层结构 278
10.2.3 协议组成 279
10.2.4 数据流程 281
10.2.5 数据帧结构与编码 281
10.2.6 分类服务 283
10.2.7 接口形式 286
10.3 FC协议通信实现分析 286
10.3.1 Xilinx公司IP核实现方案 286
10.3.2 FC专用ASIC芯片实现方案 288
10.4 小结 289
10.5 参考文献 289
第11章 Infiniband总线技术的实现与应用 291
11.1 Infiniband总线概述 291
11.2 Infiniband协议分析 293
11.2.1 分层结构 293
11.2.2 消息传输方式 294
11.2.3 链路编码与数据帧结构 295
11.3 Infiniband协议实现及应用 296
11.4 小结 297
11.5 参考文献 298
附录A 简写索引 299
附录B 插图目录 303
附录C 表格目录 309
附录D 本书创作过程中的随笔 313
致谢 320