作者:桂。
时间:2017-08-05 14:41:36
链接:http://www.cnblogs.com/xingshansi/p/7290224.html
前言
最近的工作内容涉及硬件,三个高频词汇:总线、接口、协议,例如I2C、PCIe、RS-232C、RapidIO(SRIO)以及Aurora等等,往细里说还有数据的带宽、位宽、工作频率、数据传输可靠性等等,打算不定期更新,梳理出一篇文章,理理头绪。
一、高速数据传输
目前涉及的高速数据传输都是利用串口(并口不是更快?参考知乎)。Xilinx的V7系列有GTX/H/Z模块,以提供高速串行通信支持。同时Xilinx提供多种串行通信协议IP核,Aurora 8B/10B,PCI Express 2.0和Serial RapidIO 2.0是其中较为常用的三种协议。
几种传输的实现方式:
A-Aurora 8B/10B
Aurora协议是Xilinx公司提供的一个链路层协议,可以用来进行点到点的串行数据传输。Aurora允许器件之间以下图方式通过多个MGT通道绑定完成通信。单个GTX可以实现现750Mbit/s-6.5Gbit/s的通信传输,多个GTX通道的组合可实现几十Gbit/s 甚至上百Gbit/s的通信传输。
8B/10B即把8位数据编码为10位数据。Aurora提供了可直接与FIFO对接的用户接口,而其他协议通常需要用户自行编写GTP接口逻辑。
Aurora核初始化的Aurora通道可传输任意大小的数据帧,且能在任意时刻打断。数字信号T0经过FPGA存入FIFO,通过FIFO对数据的存取实现光纤对数据的收发,再由光纤自接收,通过FOGA恢复T0信号。 高速收发器、Aurora、光纤几个概念便串了起来。
B-PCI-Express 2.0
参考:http://xilinx.eetrend.com/article/7995
C-Serial RapidIO 2.0
D-RocketIO
RocketIO收发器是在Virtex2 Pro以上系列FPGA中集成的专用串行通信模块,在使用时不占用FPGA其他逻辑与片上存储资源。在Virtex5 LXT和SXT系列FPGA中,RocketIO称为GTP,每两个GTP共用一个PLL,组成一个GTP_Dual。其结构框图如下图所示。后来的GTX/H/Z都可以理解成升级版的RocketIO,指的是串行的高速收发模块。
DMA介绍:http://www.51hei.com/stm32/3864.html
二、总线技术
A-总线分类
总线(BUS,即公共汽车)分类的方式有很多,如被分为外部和内部总线、系统总线和非系统总线等等,下面是几种最常用的分类方法。
另外,总线的传输核心思想是多路复用:时分多路复用-TDMA/频分多路复用-FDMA/码分多路复用-CDMA。
1.2.1按功能分
以微机系统为例:
(1) 片总线(Chip Bus, C-Bus) 又称元件级总线,是把各种不同的芯片连接在一起构成特定功能模块(如CPU模块)的信息传输通路,它的宽度可以是8、16、32或64位。目前比较流行的几种内部总线技术:I2C总线、SCI总线等。
(2) 内总线(Internal Bus, I-Bus) 又称系统总线或板级总线,是微机系统中各插件(模块)之间的信息传输通路。例如CPU模块和存储器模块或I/O接口模块之间的传输通路。常用的有PC总线、AT总线(ISA总线)、PCI总线等。
(3) 外总线(External Bus, E-Bus)
又称通信总线,是微机系统之间或微机系统与其他系统(仪器、仪表、控制装置等)之间信息传输的通路,如EIA RS-232C、IEEE-488等。
其中的系统总线,即通常意义上所说的总线,一般又含有三种不同功能的总线,即数据总线DB、地址总线AB和控制总线CB。
地址总线是专门用来传送地址的。在设计过程中,见得最多的应该是从CPU地址总线来选用外部存储器的存储地址。地址总线的位数往往决定了存储器存储空间的大小,比如地址总线为16位,则其最大可存储空间为216(64KB)。
数据总线是用于传送数据信息,它又有单向传输和双向传输数据总线之分,双向传输数据总线通常采用双向三态形式的总线。数据总线的位数通常与微处理的字长相一致。例如Intel 8086微处理器字长16位,其数据总线宽度也是16位。在实际工作中,数据总线上传送的并不一定是完全意义上的数据。
控制总线是用于传送控制信号和时序信号。如有时微处理器对外部存储器进行操作时要先通过控制总线发出读/写信号、片选信号和读入中断响应信号等。控制总线一般是双向的,其传送方向由具体控制信号而定,其位数也要根据系统的实际控制需要而定。
1.2.2按传输方式分
按照数据传输的方式划分,总线可以被分为串行总线和并行总线。从原理来看,并行传输方式其实优于串行传输方式,但其成本上会有所增加。通俗地讲,并行传输的通路犹如一条多车道公路,而串行传输则是只允许一辆汽车通过单线公路。目前常见的串行总线有SPI、I2C、USB、IEEE1394、RS232、CAN等;而并行总线相对来说种类要少,常见的如IEEE1284、ISA、PCI等。
1.2.3按时钟信号方式分
按照时钟信号是否独立,可以分为同步总线和异步总线。同步总线的时钟信号独立于数据,也就是说要用一根单独的线来作为时钟信号线;而异步总线的时钟信号是从数据中提取出来的,通常利用数据信号的边沿来作为时钟同步信号。
B-总线评价指标
总线的带宽指的是单位时间内总线上传送的数据量,即每钞传送MB的最大数据传输率。
总线的位宽指的是总线能同时传送的二进制数据的位数,或数据总线的位数,即32位、64位等总线宽度的概念;总线的位宽越宽,数据传输速率越大,总线的带宽就越宽。
总线的工作时钟频率以MHz为单位,它与传输的介质、信号的幅度大小和传输距离有关。在同样硬件条件下,我们采用差分信号传输时的频率常常会比单边信号高得多,这是因为差分信号的的幅度只有单边信号的一半而已。
总线的带宽、位宽和工作频率,这三者密切相关,它们之间的关系:
参考:
- 总线:http://blog.csdn.net/ce123_zhouwei/article/details/6853195