新書推薦:
《
废奴
》
售價:NT$
350.0
《
有法与无法:清代的州县制度及其运作 最新修订版
》
售價:NT$
640.0
《
重启春光
》
售價:NT$
214.0
《
“玉”见中国:玉器文化与中华文明(追寻玉出山河的前世今生,饱览中国万年玉文化的史诗画卷)
》
售價:NT$
690.0
《
官治与自治:20 世纪上半期的中国县制 最新修订版
》
售價:NT$
640.0
《
迈尔斯普通心理学
》
售價:NT$
760.0
《
面部填充术
》
售價:NT$
990.0
《
尼泊尔史:王权与变革
》
售價:NT$
430.0
|
內容簡介: |
总线,最早始于计算机领域,是指汇集在一起的多种功能的线路;后经深化并延伸,则是指计算机各模块及计算机之间的一种通信系统,涉及硬件(器件、线缆、电平)和软件(通信协议),其应用被引入嵌入式领域后,用于嵌入式系统的芯片级、板级、设备级的互连。本书主要涉及嵌入式系统中的高速串行总线技术,传输速率在Gbps量级。本书首先按时间的先后顺序梳理出计算机和嵌入式系统中常用的总线技术;然后介绍并基于FPGA实现了目前嵌入式系统中常用的高速串行总线技术,如Serdes、JESD204、SRIO、PCIE、Aurora、SATA总线,侧重于终端技术实现;最后论述嵌入式系统中的常用总线架构,涉及CPCIE、VPX、FC、Infiniband总线架构技术,侧重于整机设计。
|
關於作者: |
张峰,男,博士,高级工程师,从事通信领域10多年,对高速总线系统有深刻的理解,并且有丰富的科研和项目实践经验。
|
目錄:
|
目录
第1篇计算机和嵌入式系统中常用总线的发展历程及趋势
第1章总线的发展历程及后续趋势3
1.1总线的出现及定义3
1.2PC总线的发展5
1.2.1ISA总线6
1.2.2PCIPCI-X总线7
1.2.3PCIE总线9
1.2.4ATASATA面向存储的高速总线10
1.3嵌入式系统总线的发展12
1.3.1嵌入式系统的出现12
1.3.2PC104总线ISA总线的嵌入式系统应用13
1.3.3Compact PCI总线PCI总线的嵌入式应用15
1.3.4Compact PCIE架构及其在嵌入式的应用18
1.3.5SRIO总线嵌入式系统的多处理器间互连19
1.3.6JESD204总线面向ADC、DAC的串行通信总线结构21
1.3.7FC标准通道技术与网络技术的结合22
1.3.8VPX架构嵌入式串行总线的集大成者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.1SERDES技术简介39
2.2SERDES物理层LVDS电平概述40
2.3基于FPGA的SERDES传输技术概述42
2.3.1FPGA对LVDS电平的支持42
2.3.2FPGA内部的并串转换原语结构OSERDESE2ISERDESE243
2.3.3基于SERDES原语的传输速率分析44
2.4基于FPGA实现SERDES原语的高速数据传输45
2.4.1SERDES发送端设计设置OSERDESE2相关参数45
2.4.2SERDES接收端设计配置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公司及其FPGA67
2.8参考文献69
第3章基于JESD204协议的ADC、DAC数据传输71
3.1JESD204协议概述71
3.2JESD204协议分析74
3.2.1JESD204物理层分析74
3.2.2帧填充76
3.2.38B10B编解码77
3.2.4加解扰码(ScramblingDe-Scrambling)79
3.2.5JESD204协议接收状态机分析80
3.3基于GTX实现JESD204协议82
3.3.1可行性分析物理层规范兼容83
3.3.2物理层GTX结构分析83
3.3.3基于GTX的JESD204协议功能模块构建88
3.3.4JESD204协议若干技术点分析99
3.4小结104
3.5参考文献104
第4章基于SRIO总线的高速通信结构105
4.1SRIO总线面向嵌入式系统互连105
4.1.1嵌入式总线与PC总线应用分道扬镳105
4.1.2SRIO技术针对嵌入式系统互连107
4.1.3SRIO VS PCIE VS Ethernet VS Others108
4.2SRIO协议分析110
4.2.1SRIO协议层次结构110
4.2.2SRIO物理层规范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.2SRIO工程结构分析126
4.3.3SRIO点对点通信的关键技术分析及实现128
4.3.4SRIO IP核点对点通信功能测试130
4.4基于SRIO总线的交换结构通信功能实现131
4.4.1基于SRIO总线的交换结构概述131
4.4.2SRIO交换芯片80HCPS1616简介131
4.4.3SRIO交换芯片80HCPS1616配置133
4.4.480HCPS1616的I2C配置接口137
4.4.5Maintenance帧配置SRIO交换芯片139
4.4.6SRIO交换结构的通信性能测试142
4.5小结144
4.6延伸阅读串行总线技术再提速,从信息不确定性说起145
4.7参考文献146
第5章基于PCIE总线的高速数据传输技术149
5.1PCIE总线概述149
5.2PCIE协议分析151
5.2.1PCIE 拓扑结构151
5.2.2PCIE分层结构151
5.2.3PCIE链路编码与扰码153
5.2.4PCIE 地址空间与事务类型153
5.2.5延伸阅读PCIE总线链路同步154
5.3基于PCIE协议的点对点通信功能实现157
5.3.1FPGA内嵌PCIE硬核简介157
5.3.2建立PCIE点对点通信工程158
5.3.3PCIE IP核源代码分析171
5.3.4PCIE节点接收流程分析173
5.3.5PCIE节点发送流程分析174
5.3.6基于PCIE协议的点对点通信功能测试175
5.4小结176
5.5延伸阅读再论马太效应:从PCIE代替AGP总线说起177
5.6参考文献178
第6章基于Aurora协议的高速传输技术181
6.1Aurora总线概述181
6.2Aurora总线协议分析181
6.2.1Aurora总线通信模型181
6.2.2Aurora物理层电气特性182
6.2.3Aurora数据帧结构184
6.2.4Aurora链路同步185
6.3基于Aurora总线的通信功能实现188
6.3.1建立Aurora总线测试工程188
6.3.2Aurora总线协议文件及接口分析192
6.3.3Aurora总线帧模式与流模式194
6.3.4Aurora总线通信性能分析及测试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基于SASSATA总线标准的高速数据存储方式205
7.1.4延伸阅读基于Nand Flash阵列的高速数据存储方式208
7.1.5延伸阅读基于eMMC及阵列的高速数据存储方式209
7.1.6多种存储实现方式的比较与分析210
7.2SATA协议分析211
7.2.1SATA的分层结构211
7.2.2SATA启动过程212
7.2.3SATA数据帧与编码213
7.3SATA协议IP核的FPGA实现216
7.3.1Virtex-5 FPGA GTX简介216
7.3.2SATA协议物理层实现218
7.3.3SATA协议的OOB通信226
7.3.4SATA协议的链路层及传输层关键技术分析228
7.3.5SATA协议的应用层实现分析231
7.3.6SATA 协议IP核测试231
7.4小结232
7.5延伸阅读基于DNA的生物学存储技术234
7.6参考文献236
第3篇整机设计的嵌入式系统高速数据总线
第8章CPCIE总线架构239
8.1CPCIE总线简介239
8.2CPCIE系统中功能模块分类241
8.3CPCIE系统连接关系与信号定义242
8.3.1连接器类型242
8.3.2系统板245
8.3.3外设板248
8.3.4交换板249
8.4CPCIE系统整机设计要素251
8.4.1功能模块标识251
8.4.2供电要求252
8.4.3时钟设计253
8.5小结253
8.6参考文献254
第9章VPX总线架构255
9.1VPX总线的起源255
9.2VPX协议族分析257
9.3VPX协议的典型应用259
9.4连接关系与信号定义260
9.5整机设计要素265
9.5.1模块防插错设计265
9.5.2电源设计266
9.5.3功能模块与背板信号映射关系267
9.6VPX架构与CPCIE架构的异同270
9.7小结270
9.8参考文献270
第10章FC总线技术的实现与应用273
10.1FC技术简介273
10.1.1FC技术的出现从大数据、云及SAN存储说起273
10.1.2FC技术的优点275
10.1.3FC技术的发展路标276
10.1.4FC在机载航电系统中的应用277
10.2FC协议分析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.3FC协议通信实现分析286
10.3.1Xilinx公司IP核实现方案286
10.3.2FC专用ASIC芯片实现方案288
10.4小结289
10.5参考文献289
第11章Infiniband总线技术的实现与应用291
11.1Infiniband总线概述291
11.2Infiniband协议分析293
11.2.1分层结构293
11.2.2消息传输方式294
11.2.3链路编码与数据帧结构295
11.3Infiniband协议实现及应用296
11.4小结297
11.5参考文献298
附录A简写索引299
附录B插图目录303
附录C表格目录309
附录D本书创作过程中的随笔313
致谢320
|
內容試閱:
|
自 序
人是什么单位,人生又如何衡量?
熊培云在《思想国》中讲,人是时间单位,因为我们在提到某人的时候,总是在人名后面跟上一个括号,并注明生卒年份,以示起止。
除了这个差值,还用什么衡量?
数学上,通常将时间看成一个维度,即以时间为坐标系的横轴,那纵轴呢?见仁见智,人的选择和作为应该是一个维度,人物传记是这样写的,什么时间做了什么事。
那号称知识分子的我们,若早已过了彷徨的年龄,其使命又当如何?
打破框架,探索未知。
打破框架,何其难也。文明得以发展,在于经验和知识的累积,而这种累积,多数又来源于各种权威的言传身教,就像父母告诫小朋友,冰激凌吃多会肚子痛一样,一一得到了验证,长此以往,框架得以形成,触碰不得。框架有利于知识的传授,也会束缚人的头脑,意大利的水手Amerigo Vespucci发现了一个大的岛屿,而权威《圣经》中竟然没有记载,就觉得不可思议,不可理喻。
而终有人会承认这种事实存在、证据确凿的未知,于是,框架终究会被打破,美洲America就此诞生。
所以人虽无往不在枷锁之中,却是生而自由的,知识分子在解决温饱问题后,可以思其力之所不及,忧其智之所不能,嫦娥奔月不也从神话变成了现实吗?
所以应心怀梦想,坚韧追寻,应王国维先生的昨夜西风凋碧树,独上高楼,望尽天涯路之境界,而社会的残酷、自扰、抵触、牵制、掣肘、诱惑终究共存,所以有隐忍、有退让,学胡适先生的不降志、不屈身、不追赶时髦,也不回避危险,虽有拘有束有碍,仍可自斟自饮自开怀。
人总是会老的,所谓百忧感其心,万事劳其形,渥然丹者为槁木,黟然黑者为星星,纵然头发稀少,两眼昏花,颈肩酸痛,双腿僵直,仍不觉辛苦,因为余心所善,不想了无意义。
本书的形成,历经波折,构思萌芽于2012年年底,苦于自身知识匮乏,算不上一份大餐,积累沉淀,到2014年年底渐觉内容充实,可一吐为快了,于是查阅典献,收集资料,匆忙恍惚间,2015年已过了大半,竟不能再迟疑。
总线技术是在多个项目实践中提取出来的,如高速存储、图像处理、信号处理、系统集成等,亲力躬行,才知深浅。本文中提到的各种总线,并不是3年之功,从2006年算起,已有10年。10年时间积累了这300多页内容,也不知是多还是少?2006年第一次接触PCI总线,2007年将PCI提升到了PCIX,2007年用会了SRIO总线,当时还是Virtex-2Pro盛行,现在已不见踪影,20082009年主要是SATA、SAS,2010年接触了PCIECPCIE,2011年闲暇时摸了Serdes技术,终于在2013年应用成熟,JESD204Aurora也在这一年完成,2014年做了VPX架构的整机,2015年将SRIO的交换结构收入骰中。这也就是本书的主体内容,并在此基础上增加了对总线的发展历程、现状及后续趋势的描述与预测。而最后则是关于目前嵌入式系统中常用的其他串行总线(FC、Infiniband)了,作者并没有亲身实现,只是自行理解并资料汇编罢了。
当我们回首往事时,会发现很多激荡人心的故事,有的显焕一些,有的黯淡一些,当看到自己为发展而努力,为自由而奋斗,总是心底暖暖的。我们对于过去,固然可以看到无穷的光辉,对于将来,也必须抱着更大的期待。
努力吧,勤能补拙,不至虚度。
努力活吧,以时间的长度弥补智力的不足。
怀念过去,不畏将来,是为序。
张 峰
2016年9月于成都
前 言
总线概述及分类
总线,英文为Bus,Bus一词最初起源于拉丁文omnibus,意为for all,有三个含义:公共汽车、作家的作品合集、作为形容词意为综合性多功能的。最早始用于计算机领域,总线是指汇集在一起的多种功能的线路。后经深化和延伸,指计算机内各模块及计算机之间的一种通信系统,涉及硬件(器件、线缆)和软件(通信协议)。
IT行业以摩尔定律(Moores Law)在飞速发展,总线的性能也要与之适应并水涨船高。自从第一代计算机及总线问世以来,总线领域爆发了三次更新换代的革命:第一代总线以1984年IBM推出的PCAT(Personal ComputerAdvanced Technology)总线为蓝本,其速率最初不足1 Mbps,并最终形成了ISA(Industry Standard Architecture)标准,在1993年被PCI总线代替;PCI(Peripheral Component Interconnect Local Bus)总线是第二代总线的典型代表,2002年并行传输的PCI总线被串行传输的PCIE(PCI Express)总线代替;而目前PCIE 3.0版本的速率为8 Gbps,是最初的PCAT总线的800倍,PCIE 4.0将支持16.0 Gbps,也即将问世。
在总线的发展过程中,有多种分类方式。
按传输速率分类:分为低速总线、高速总线。按业内规律,总线的传输时钟在66 MHz以下为低速总线,高于66 MHz为高速总线。
按连接类型分类:分为系统总线、外设总线、扩展总线等。
按适用范围分类:分为内部总线和外部总线。计算机机箱内的总线称为内部总线,如PCI;计算机机箱外的称为外部总线,如连接打印机的USB总线等。而有些总线内外都适用,如SATA为内部总线,而eSATA(external SATA)为外部总线。
按应用领域分类:有计算机系统应用总线、嵌入式系统应用总线等,PCI为计算机类总线,而CPCI(Compact PCI)则归为嵌入式系统类的应用总线。
按使用环境分类:分为航天、航空、车载、航载等总线,以满足不同的使用环境要求,如ARINC-429、ARINC-629、MIL-STD-1553B、CAN总线等。
按传输方式分类:分为并行总线和串行总线,并行总线通常采用1个时钟信号 多位并行数据信号的方式传输数据,如前面的ISA、PCI都为并行数据总线,在一个时钟周期内,传输多位数据;串行总线则将时钟嵌入到数据内,在一个时钟周期内传输1 bit数据,以串行比特流的方式实现数据通信。
本书关注的是嵌入式系统中的高速串行总线技术。
串行总线通信正当时
早期的总线多采用多位数据并行传输方式,通过提升并行数据位宽、数据运行频率,提升总线传输速率,如早期的PCXT总线数据位宽是8 bit,运行频率为kHz级别,到1999年出现了PCIX总线,其数据位宽是64 bit,运行频率为133 MHz,总线的传输速率达到了1066 MBps。
总线的并行数据位宽及频率的提升带来了数据传输速率的飞跃,但也带来了其他问题:总线并行数据信号间的同步变得日益困难,且无法解决串扰问题,这导致多种并行总线协议的更新速率越来越慢,耗时越来越长,限制了总线性能的进一步提升,影响处理器性能的发挥,即通过提升总线的并行数据位宽及运行频率,以提升总线速率的方法走到了死胡同,业内迫切需要一种新的变革方式。
2000年前后,多个国际组织将眼光瞄向了基于比特流通信的串行总线结构,多种串行总线标准也如雨后春笋出世,如现在大名鼎鼎的PCIE、SRIO、SATA、FC等总线,也有推出后不久就夭折的,如Starfabric总线。Starfabric总线当时吸引了大量的风投,还推出了Starfabric的协议转换芯片,而最终还是以失败告终Starfabric总线技术针对性不足。
目前,在PC领域和嵌入式系统中,基于比特流的高速串行通信总线正全面代替传统的并行数据总线方式,如前期广泛用于PC系统的并行数据总线PCIPCIX,正被串行的PCIE总线所代替;曾经在存储领域独占江山的ATA(parallel ATA)总线、SCSI总线,分别被串行的SATA(Serial ATA)、SAS(Serial attached SCSI)所代替;与PC领域相对应的工业及嵌入式应用领域,串行总线的应用更是一发而不可收,出现了FC(Fiber Channel)、SRIO(Serial RapidIO)、Aurora等多种协议标准,即使针对ADC、DAC这种专用接口,也吸收了串行总线传输的思想,出现了JESD204协议,以代替传统的基于LVCMOS电平、多位数据线并行的ADC、DAC接口方式。鉴于目前高速串行总线的广泛应用,VITA组织推出了一种针对高速串行总线通信架构的标准VPX,以规范上述多种串行总线的互连。
与串行总线的高速、先进相对应的是其开发过程的困难重重,串行的二进制比特流不能提供更多有效参考信息,只能以眼图判断信号完整性,而各种总线的协议分析仪,价格却不够亲民,调试手段有限,针对常用的高速串行总线,如何进行快速开发,尤其是FPGA内的应用开发,一直是业内的难题。本书试图对多种高速串行的共性技术进行提取,并对具体协议加以具体分析,实现过程具体展现,以实现基于FPGA甚至于整个嵌入式系统的高速串行总线的通信。
FPGA让一切皆有可能
既然总线是现代通信系统的神经,那相应处理器是就关节了。目前主流的处理器厂商推出的PowerPC、DSP、FPGA等芯片,均含有一种或多种高速串行通信总线接口,如高端的PowerPC、DSP通常含有SRIO及PCIE,有的还含有SATA存储接口。ASIC厂商的目标就是将这些复杂的总线功能做成如傻瓜相机一样,只要存在就会使用,而FPGA则是另类,除了总线的简单验证,还提供了二次开发功能,甚至还能玩深沉,DIY一些自主的IP核,可谓男女老少都喜欢,满足高中低各个层次的需求。
FPGA代替DSP完成密集型运算功能已多见不怪,甚至觉得不这样就是非主流。FPGA内嵌Pow
|
|