CXP协议的传输层介绍 8b/10b编码
8b/10b编码与K码
upconnection 和downconnection均使用8b/10b编码,因此我们先简单回顾一下8b/10b吧
8B/10B编码被广泛应用到高速串行总线,如IEEE1394b、SATA、PCI-Express、Infini-band、FiberChannel、XAUI、RapidIO、USB 3.0、JESD204B、CXP等几乎所有高速串行协议。8B/10B编码将待发送的8位数据转换成10位代码组,其目的是保证直流平衡,避免出现长时间的0或者1,避免有效信号被滤除。
8bit原始数据可以分成两部分:低位的5bit EDCBA(设其十进制数值为X)和高位的3bit HGF(设其十进制数值为Y),可以记为D.X.Y或K.X.Y,其中D.X.Y表示有效数据,K.X.Y表示控制字符。

另外,8B/10B编码中还用到12个控制字符,他们可以作为传输中帧起始、帧结束、传输空闲等状态标识,与数据字符的记法类似,控制字符一般记为K.X.Y。8bit数据有256种,加上12种控制字符,总共有268种。10bit数据有1024种,可以从中选择出一部分表示8bit数据,所选的码型中0和1的个数应尽量相等。8B/10B编码中将K28.1、K28.5和K28.7等作为K码的控制字符,称为“comma”。在任意数据组合中,comma只作为控制字符出现,而在数据负荷部分不会出现,因此可以用comma字符指示帧的开始和结束标志,或始终修正和数据流对齐的控制字符。
DC均衡 DC-balanced
DC banlance表示0和1的个数接近,出于2个目的:1、避免长1长0,这样信号从频谱上看是比较干净的,利于信号的传输;2、保证接收端可以通过数据正确恢复时钟(clock recovery)

不一致性 Disparity
运行不一致性 Running Disparity
上述不一致性的说法针对的是一个静态的单10bit编码,会有+2,0,-2三种情形,为了保证DC均衡,我们要保证长时间的累计编码不一致性要接近于0,为了保证这个特性,每个十进制码会对应RD+和RD- 两组编码,RD-对应+2 or 0,RD+ 对应 -2 or 0,Next RD值依赖于Current RD以及当前6B码或者4B码的Disparity。根据Current RD的值,决定5B/4B和 3B/4B编码映射方式,编码映射表如下图所示:



8b/10b编码在CXP 传输层的应用举例
CXP的数据传输全部使用8b/10b编码,每4个10bit编码成为1个word,除了低速数据传输中的trigger触发数据包需要占用6个字符。每个word中对应的4个字符分别成为P0/1/2/3,传输时P0先完成传输,接收端需要先接收对齐控制码来找到正确的边界,然后解析数据。
下表是CXP协议中对于控制码的应用规则。

下图是IDLE word对应的传输,IDLE是CXP处于空闲状态时,总线上必须传输的一组字符,对于高速数据传输来说,每隔99个word应当发送一次IDLE,对于低速传输每隔9999个word应当传输一次IDLE。IDLE对应的K码分别为

根据之前的编码对应表格,我们来分析一下K28.5对应0011111010(因为初始的RD必须是-1), k28.1对应1100000110(RD应该等于+1,从而保证DC平衡)。

那么具体如何实施8b/10b 编码呢?
1、参考原始专利自主编写;
2、参考 open cores https://opencores.org/projects/8b10b_encdec;VHDL
3、参考 https://github.com/fransschreuder/8b10b_VHDL;VHDL
4、参考 http://asics.chuckbenz.com/#My_open_source_8b10b_encoderdecoder ; Verilog
还有一个问题,具体实施中,如何确定byte的boundry呢?即如何对齐呢?
1、利用K28.5做对齐,在接收端的alignement 对齐逻辑中,反复 滑动bit,直到找到K28.5的10bit pattern;
CXP协议的传输层介绍 8b/10b编码的更多相关文章
- HTTP协议属于应用层,而SOCKS协议属于传输层
HTTP协议属于应用层,而SOCKS协议属于传输层 SOCKS代理 SOCKS代理能在任何端口,任何协议下运行. SOCKS V4只支持 TCP连接,而SOCKS V5在其基础上增加了安全认证以及对U ...
- TCP/IP 协议图--传输层中的 TCP 和 UDP
TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP. TCP 是面向连接的.可靠的流协议.流就是指不间断的数据结构,当应用程序采用 TCP 发送消息时,虽然可以保证发送的顺序,但 ...
- 从websocket协议出发,了解应用层协议,传输层协议,网络的7层协议
其他关联连接 :TCP的三次握手(建立连接)和四次挥手(关闭连接) 1.websocket是全双工,不同于传统半双工通信 传统的Web应用中,浏览器与服务器交互都是半双工通信(但并不完全是半双工通信, ...
- Aurora 8B/10B、PCIe 2.0、SRIO 2.0三种协议比较
在高性能雷达信号处理机研制中,高速串行总线正逐步取代并行总线.业界广泛使用的Xilinx公司Virtex-6系列FPGA支持多种高速串行通信协议,本文针对其中较为常用的Aurora 8B/10B和PC ...
- 从HTTP 2.0想到的关于传输层协议的一些事
0.HTTP协议的历史 我也不知道... 1.关于HTTP 2.0 收到了订阅的邮件,头版是说HTTP 2.0的内容,我本人不是非常关注HTTP这一块儿.可是闲得无聊时也会瞟两眼的.HTTP 2.0的 ...
- 计算机网络【六】:传输层-TCP概述 【转】
转自:http://blog.chinaunix.net/uid-26275986-id-4109209.html 根据TCP/IP协议的分层结构,网络层之上是传输层,从层次结构上来看,传输层位于网络 ...
- TCP/IP传输层,你懂多少?
1. 传输层的主要功能是什么?2. 传输层如何区分不同应用程序的数据流?3. 传输层有哪些协议?4. 什么是UDP协议?5. 为什么有了UDP,还需要TCP?6. 什么是TCP协议?7. 怎么理解协议 ...
- [19/04/13-星期六] 网络编程_基本概念(关注传输层、数据传输,TCP和UDP)
一.概念 ▪ 什么是计算机网络? 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统, 网络管理软件及网络通信协议的管理和协调下,实现资源共享和信 ...
- SSL&TLS传输层加密协议实现图解--(重要)
一.SSL&TLS 1.SSL:Secure Sockets Layer ,加密套接字协议层 1)SSL是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密 Secure ...
- 网络编程:软件开发架构、架构总结、网络编程前戏、OSI七层协议简介、OSI七层协议之物理连接层、数据链路层、网络相关专业名词、OSI七层协议之网络层
目录 软件开发架构 架构总结 网络编程前戏 OSI七层协议简介 OSI七层协议之物理连接层 OSI七层协议之数据链路层 网络相关专业名词 OSI七层协议之网络层 OSI七层协议之传输层 软件开发架构 ...
随机推荐
- Mysql数据库查看Database的大小的方法
最简单的方法为: select concat(round(sum(data_length/1024/1024),2),'MB') as data from INFORMATION_SCHEMA.tab ...
- 信创-飞腾CPU路线图
- git有关commit的命令
2.更改最近一次(本次) commit 的提交信息: 当我们执行 git add . git commit -m "0-0-1" 之后我们发现自己写的提交信息是不符合项目要求的,这 ...
- TypeScript中Never类型和类型断言
Never 类型 never类型表示:那些永不存在的值的类型. 例如:never类型是那些总是会[抛出异常]或根本就[不会有返回值的函数表达式]或[箭头函数表达式的返回值类型] never类型是任何类 ...
- 小程序之使用阿里字体图标 定义主题的颜色 控制首页标题的样式 如何使用组件 水平居中和垂直居中的方式 H5 关于上线后,
项目搭建 1==> 需要创建的文件夹 styles 存放公共的样式 components 存放组件 lib第三方库的 utils 自己的帮助库 reques 自己的接口 2==>如何快速创 ...
- docker上部署启动RabbitMQ
在docker上部署启动RabbitMQ及使用 一.docker上部署启动RabbitMQ 1.查询rabbitmq镜像 docker search rabbitmq:management 2.拉取r ...
- PicoPixel贴图查看器
Pico Pixel Pico Pixel是一款纹理查看器,支持查看以下文件格式:TGA,BMP,JPG,DDS,PNG,OpenEXR, KTX, HDR, GIF, TIF. 此外,Pico Pi ...
- 10.5 认识XEDParse汇编引擎
XEDParse 是一款开源的x86指令编码库,该库用于将MASM语法的汇编指令级转换为对等的机器码,并以XED格式输出,目前该库支持x86.x64平台下的汇编编码,XEDParse的特点是高效.准确 ...
- Windows安装MongoDB6.0.2
环境 Windows 10 MongoDB 6.0.2 配置 下载mongodb 下载地址:https://www.mongodb.com/try/download/community 安装 指定目录 ...
- 4599元 铭凡推出NAG6迷你主机:12代i9+RX 6600M
铭凡推出了新款迷你主机NAG6,首发价4599元. 据了解,新款迷你主机的处理器采用的是i9-12900H,14核心20线程.24MBL3缓存,最高睿频达5.0GHz. 不仅如此,新款迷你主机内置RX ...