1 Aurora简介
Aurora是一种可裁剪的、轻量级的、链路层点对点的针对FPGA间的高速数据传输的串行传输通信协议。目前支持的传输速度为0.5~13.1Gbps,还支持通道绑定实现更高的数据传输速度。
Aurora总线协议分为物理层和链路层两层最初采用的是8B/10B编码方式,后续为了提高带宽利用率采用了64B/66B编码方式。为了区分两种编码方式,分别命名为Aurora 8B/10B和Aurora 64B/66B。Aurora相比于PCIE及SRIO总线具有明显的特征,它是为了解决FPGA之间的数据传输、支持任意速度、不支持交换结构。
1.1 Aurora通信模型
Aurora总线存在全双工模式及单工模式两种架构,其中一个典型的应用实例如下图所示。一个Aurora的传输链路(Channel)可包含一个或多个通道(Lanes),以组合方式(x2、x4)支持更高的传输速度,通信的双方成为Partners。
在发送端,用户端应用程序可以通过AXI总线接口实现与Aurora协议的数据交互,传输用户自定义的协议数据PDU(Protocol Data Unit);接收端通过解析PDU数据,提取原始数据,通过AXI总线接口提供给用户应用程序。
Aurora总线的物理层采用差分信号进行数据传输,该层主要规定Aurora总线协议的物理和电气特性,如直流均衡、差分摆幅等。
Aurora总线的链路层主要根据用户自定义协议,形成符合Aurora包格式的数据,完成打包、组帧以及8B/10B编解码功能。
1.2 Aurora数据帧结构
Aurora协议支持任意偶数字节的包长度,没有包长的限制,如果数据长度为奇数个时对数据用0x9C进行填充至偶数个。填充后链路层进行打包、组帧操作,增加帧头、帧尾。Aurora协议采用的帧头SCP占2字节,即K28.2/K27.7(0x5CFB),2字节帧尾ECP为K29.7/K30.7(0xFDFE)。Aurora数据帧结构如下图所示。
其他具体内容见官方的数据手册。
2 参考文档
【1】pg046-aurora-8b10b_v11.0
【2】嵌入式高速串行总线技术--基于FPGA实现与应用.张峰