LVDS高速并口通信协议设计
- 格式:doc
- 大小:9.42 KB
- 文档页数:3
LVDS高速并口通信协议设计
摘要: 提出高速数据传输系统中IEEE802.3千兆网卡与同步静态存储器间非对称点对点高速通信接口和通信协议设计方案,接口速率不低于1 Gb/s。
基于高速接口中常用的低电压差分信号技术,电气连接单向使用5路低摆幅差分信号对,其中1路时钟,4路数据,双沿采样源同步传输;基于适用于短传播延时的停止等待自动重复请求协议,通信协议使用命令——应答机制;利用模256校验保证数据的可靠传输。
理论分析表明,通信接口带宽可达1.2 Gb/s,协议效率在99%以上,协议工作稳定可靠,在满足千兆网卡全速接收转发数据的情况下,高速并口带宽仍有裕量。
关键词: 高速传输系统; LVDS并口;通信协议;停止等待; IEEE802.3
非对称的点对点通信在应用中十分常见,非对称指的是某一方向的数据传输量明显大于相反方向。
高速数据传输系统主要传输图像数据,需要完成由PC向存储设备的高速传输,它是非对称的。
针对图像数据的高速传输,美国国家半导体公司推出了CameraLink标准[1],美国自动化成像协会提出了GigE Vision标准[2]。
这两个标准均整合了相机,GigE Vision 甚至集成了部分TCP/IP协议,而系统中数据传输是由以太网、高速接口级联而成,故不可以直接使用以上标准。
对于点对点通信,有着完备的协议和专用设备,如USB3.0[3]接口。
但对于本系统简单的点对点高速传输,其实现比较复杂。
高速总线主要有HOTLink和低摆幅差分信号LVDS(Low Voltage Differential Signaling)[4],其中LVDS可以在差分PCB线对或平衡电缆上以几百兆至几千兆比特每秒的速率传输数字信号,在实际中应用较多,Cameralink 标准的电气连接也是基于LVDS的。
为提高带宽,LVDS标准提议使用提高总线位宽的方法[5],三线同步串行传输已得到实现[6]。
同样,使用DDR传输也是提高带宽的一种方法,也已实现[7]。
本文结合增加总线位宽和DDR传输两种方法,提出一种基于LVDS并口的通信协议:帧格式、数据分包方法,分析协议效率和基于停止等待ARQ的差错、流量控制方法,在IEEE802.3千兆以太网的应用中证明该协议完全可行。
1 高速数据传输系统高速数据传输系统通过存储设备连接显示设备,通过IEEE802.3千兆网卡连接控制计算机,其结构。
千兆网卡和存储设备分别由两片FPGA控制,数据经FPGA通过高速接口传输至存储设备,为使千兆网卡能全速工作,接口速率至少为1 Gb/s。
2 停止等待ARQ通信协议设计2.1 协议电气接口由于千兆网卡和SDRAM间为超短距离传输,故本协议使用LVDS接口。
为提高接口速率,采用并行接口[5];为减少传输数据冗余,采用源同步,即1路时钟,4路数据,双沿采样(DDR)的源同步方式。
此时当时钟频率为150 MHz 时,总理论带宽就可达1.2 Gb/s。
2.2 帧格式通信协议的设计中首要问题是帧格式的设计[8]。
超近距离非对称点对点通信有源端、宿端明确、误码率低的特点,故帧格式设计依照减少冗余、降低校验复杂度的原则。
其由命令帧和应答帧组成,帧格式。
传输数据的长度以字节为单位,上升沿发送高4位数据,下降沿发送低4位数据,每一个时钟周期正好传送1 B 数据。
2.2.1 开始停止界定符一帧的开始由前导码标志,但无停止码,数据的长度由长度字段指示。
为保证每次通信开始时数据总线均发生翻转,前导码使用FF00;总线空闲时,保持最后发送的数据不变。
2.2.2 其他字段命令帧由长度、类型、数据、校验字段构成:长度字段长度为2 B,高字节先发,其表示“类型”、“数据”、“校验”字段总长度;类型字段长度为1 B,最多可表示256种命令(例:0x10:写寄存器,0x11:读寄存器,0x12:写RAM数据);数据字段长度可变,数据类型为写寄存器时其由 1 B 的写寄存器地址和1 B的写寄存器内容组成,为读寄存器时由1 B的读寄存器地址组成,写RAM
时为待写入数据(由于长度字段为2 B,所以待写入数据最长为65 533 B);校验字段长度为1 B,为模256校验结果。
应答帧由长度、类型、操作结果、响应、校验字段构成:长度、类型、校验字段的构成同命令帧;操作结果字段长度为 1 B,其表示接受端对命令的处理结果;响应字段长度可变,数据类型为写寄存器时其为1 B长度的寄存器内容,写RAM时为2 B 的已接收数据长度,主要用于流量控制。
2.3 收发流程由于使用源同步传输,系统不需要再进行同步操作[9],发送时将时钟延迟数据90度以获得更佳时序。
每次通信由发送端发送命令帧开始,发送端收到应答帧结束。
读写寄存器帧格式相对固定,本文对写RAM操作分析。
每次通信发送端发送命令帧,接收端在接收、处理完数据后响应应答帧。
图4为发送端处理流程,只要缓冲区内有数据,发送端就组帧发送,每次发送有效数据的最大值可自定义(本文中为2 048 B),发送完数据收到应答帧后再进行下帧的发送。
图 5为接收端流程,接收端启动后一直处在等待状态,直到收到前导码后启动接收流程,通过判读长度字段获得帧长信息,在接收校验完数据后应答实际接收数据长度给发送端并复位系统等待下次传输。
2.4 差错和流量控制通信中的误码率非零,为保证数据的可靠传输,协议中需包含校验部分以进行差错控制。
为简化设计,校验部分只进行检错,不进行纠错,放弃使用常见复杂的CRC32校验,使用简单的256求模校验,即除前导码、长度字段外所有数据字节之和为256。
当发送端数据发送速率高于接收端处理速率或通信出现错误时需要进行流量控制,本协议使用停止等待ARQ协议,停止等待ARQ在传播延时较低的信道中工作良好[10]且易于实现。
正常情况下发送端在收到最近发出的命令帧对应的应答帧后再发送下一命令帧,控制逻辑如下:(1) 发送端发送命令帧并启动延迟计数器,等待应答帧; (2)接收端收到命令帧校验接收后将实际写入到缓冲区内的数据长度由应答帧响应给发送端,其间如果校验错误则丢弃该帧数据; (3) 发送端收到应答帧后根据响应字段长度决定重发、补发或继续发送下帧数据(响应长度为0,重发数据;响应长度小于已发长度,补发剩余数据;响应长度等于已发长度,发送下帧数据),如果发送端等待应答帧超时则重新发送上帧数据。
3 协议效率分析,高速并口协议在读写寄存器操作时命令帧长度较短,协议效率固定,而写RAM操作参数可以配置。
因此,对写RAM操作的协议效率进行分析有较大意义。
协议效率主要受命令帧最大长度、传输/传播延迟和误码率影响。
命令帧数据字段长度最大值由人为设定,范围为1~65 533 B,记为Lm/B;传输延迟由数据帧的总长度决定,记为Dt/s;传播延迟由通信链路的长度所决定,记为Dp/s;收发系统工作频率记为Fs/Hz,总传输有效数据长度记为Lp/B,总传输数据帧长度为Lt/B,误码率为Er,通信线路长度为Dis/m。
则Dt=Lt×Fs,Dp=2×Dis/(2.8×108)。
由图 6可见,命令帧最大长度一定的情况下,随着通信链路长度的增加(即传播延时的增加),协议效率将降低;在传播延时一定的情况下,随着命令帧最大长度的增加,协议效率增加,但这种增加不是线性的,长度达到2 000 B后增长趋于平缓。
最大命令帧长度直接影响到收发端的缓冲空间,综合考虑数据最大长度为2 048 B、3 072 B或4 096 B最佳。
此时在链路长度为20 cm时效率可达99.26%、99.51%和99.63%。
忽略传播延时,由式(3),数据最大长度一定时,不同误码率下的协议效率。
由图 7可见相同误码率下数据最大长度越大协议效率越高,当误码率高于10-6时误码率才对协议效率有较大影响。
误码率低于10-8时,最大长度为2 048 B时效率可达99.27%,最大长度为3 072 B时效率可达99.51%,最大长度为4 096 B时效率可达99.64%. 实际应用中由于每次传送的数据不会都按照最大数据长度传输以及系统组帧、解帧需要时间,故协议效率会低于理论值。
相对于IEEE802.3协议98.28%的理论效率[11],本协议优势明显。
实际中,使用本通信协议进行千兆网卡与SDRAM间的数据传输,通信链路长度20 cm,链路误码率小于10-12,帧最大数据长度2 048 B。
千兆网卡以90 MB/s连续接收电脑端发来60 MB 数据,高速接口可以准确无误地将数据传送至SDRAM中。
计算机发送1 480 000 B数据给千兆网卡,数据被分成了7 722帧,协议效率为96.96%(含传播延时82.37%);计算机发送148 000 000 B数据给千兆网卡,数据被分成了817156帧,协议效率为96.97%(含传播延时81.80%)。
平均每帧有效数据长度低于200 B,由此可见本通信接口在应用中尚有较大裕量,系统中的速率瓶颈在千兆网络处。