校验位(光纤项目中光纤用户层接口设计分享(图文分享))
Posted
篇首语:明明你一个人可以活的很开心的,偏偏非要学别人谈恋爱……本文由小常识网(cha138.com)小编为大家整理,主要介绍了校验位(光纤项目中光纤用户层接口设计分享(图文分享))相关的知识,希望对你有一定的参考价值。
校验位(光纤项目中光纤用户层接口设计分享(图文分享))
光纤接口是FPGA比较常用的接口之一,它的传输方式与一些寻常接口的传输方式有些不同,为了让大家了解光纤接口,并避免配置接口时的一些常见问题,我特意写下了这个总结,希望能够对大家有所帮助。
一、光纤接口的传输特点
大多数接口发送包文数据时会发送:数据data、有效指示信号data_vld、包文起始信号data_sop、包文结束信号data_eop以及无效字节数data_mty等。如下图1所示。
图1
光纤接口和上述接口发送的方式不同,光纤接口发送包文数据时只会发送数据txdata和K码tx_k,内部读取数据时也只会读取数据rxdata和k码rx_k。若数据(txdata、rxdata)为8字节,则k码为8位数据。如下图2所示。
图2
二、k码的表示
k码是用来表示数据是否有效的,那么我们应该如何设定k码呢?假设用下述方式表示k码:
数据无效时:8’b0 ;
数据有效+SOP时:8’mty(4位mty)+0110 ;
数据有效+EOP时:8’mty(4位mty)+0011 ;
数据有效+其它时:8’mty(4位mty)+0010 ;
我们会发现数据会出现错误!因为数据和k码在传输过程中可能会发生偏移!例如发送第一个数据时,txdata=64’h0102030405060708,tx_k=8’b00000110。
而内部接收时,数据可能会右移2位,造成接收到的数据与发送出的数据有所不同。如rxdata=64’h0000010203040506,rx_k=8’b000000001。即如下图所示3。
图3
因此,我们仅将k码用做有效无效的指示信号以及同步信号,并用下述方式进行表示:
数据无效时,发送固定k码:0x01,接收根据这个1的位置,判断开始位;
数据有效时,发送固定k码:0x00,接收根据k码的值,识别数据是否有效。
在这种情况下,即使发生了偏移,我们也能知道k码中1后面的8个0所对应的rxdata为有效数据。例如,第n个周期接收到rxdata=64’h00bc010203040506,接收到rx_k=8’b01000000,第n+1个周期接收到rxdata=64’h0708020304050607,接收到rx_k=8’b00000000。通过第n个周期rx_k中的1能够判断出后面8位0所对应的rxdata=64’h0102030405060708为有效数据。
三、比特位顺序调换
我们先介绍一下小头模式和大头模式。小头模式指的是低位在前高位在后,大头模式指的是高位在前低位在后。例如同样的数据012345678,在小头模式中,0是最低位,8是最高位,在大头模式中则0是最高位,8是最低位。由于光纤接口是小头模式,而我们熟悉的是大头模式。因此我们需要将光纤接口数据的比特位顺序进行调换。
四、数据对齐
由于我们接收到的数据是偏移了的,因此我们需要利用一个模块将光纤接口偏移的数据进行还原。例如,第n个周期接收到rxdata=64’h00bc010203040506,接收到rx_k=8’b01000000,第n+1个周期接收到rxdata=64’h0708020304050607,接收到rx_k=8’b00000000,我们通过对其模块将其还原成第n个周期为rxdata=64’0102030405060708,rx_k=8’00000000即将下图4变换成下图5。
图4
图5
五、数据解包与打包
我们定义发送包文的方式是发送:55D5+16b长度+长度字节个DATA+校验和。为了判断是否接收有效包文,我们设定当接收到55D5时,表示后面的数据信号有效,接着接收数据的长度,表示该包文的有效长度,然后接收数据,最后再接收一个校验位,检验包文是否有错误。
例如接收到8’h55+8’hd5 + 8’h00+8’h03 + 8’h12+8’hbc +8’h63 + 8’h00+ 8’h03 , 表示55d5后面的数据是包文,包文内数据一共有3个,数据分别是 8’h12、8’hbc、8’h63,最后检验位显示一共有3个数据,包文正确。这样我们就将一个有效包文解包成有效数据 8’h12、8’hbc、8’h63。
数据打包的过程与打包的过程正好相反,假如我们接收到5字节有效数据8’h12、8’hbc、8’h63、8’hbc、8’h63,我们需要将其打包成8’h55+8’hd5 + 8’h00+8’h05 + 8’h12+8’hbc +8’h63 + 8’hbc +8’h63 + 8’h00 +8’h05。
六、光纤串口的模块
在接收端中,我们利用Rx_data_reverse模块和Rx_ctrl_reverse模块将输入的rxdata和rx_k执行要点三的比特位顺序调换操作,利用Rx_align模块执行要点四的数据对齐操作,利用Decoder模块执行有效数据的判断,利用Unpackcomm模块执行数据的解包操作。
在发送端中,我们利用packcommpack模块将数据进行打包,再利用Tx_data_reverse模块和Tx_ctrl_reverse模块将数据从大头模式还原成小头模式,即再进行一次比特位顺序的调换,然后再发送。
相关参考
熔光缆是什么意思(「图文教程」光纤熔接技术的操作与技巧分享)
众所周知,光纤熔接主要分为四个步骤:剥、切、熔、护。所谓的剥:是指将光缆中的光纤芯剥离出来,这其中包括了最外层的塑料层,中间的钢丝,内层中的塑料层及光纤表面的颜色油漆层。所谓的切:是指将剥好准备熔接的...
机架式光纤配线架48口(医院智能化弱电系统工程设计方案,非常详细,值得下载学习)
今天给大家分享一套医院弱电智能化系统工程设计方案,一共153页,非常详细,因为文章的篇幅原因,本文只做简要介绍,资料上传微信群群共享链接。项目概述XX医学院是XX地区唯一一所集医疗、急救、教学、科研、预防保健...
法兰衰减片(图文介绍光纤跳线、法兰、终端盒、接续盒、ODF基础知识)
光纤跳线1、光纤跳线简介光纤跳线(又称光纤连接器)是指光缆两端都装上连接器插头,用来实现光路活动连接;一端装有插头则称为尾纤。光纤跳线(OpticalFiberPatchCord/Cable)和同轴电缆相似,只是没有网状屏蔽层。中心是光传播的...
法兰衰减片(图文介绍光纤跳线、法兰、终端盒、接续盒、ODF基础知识)
光纤跳线1、光纤跳线简介光纤跳线(又称光纤连接器)是指光缆两端都装上连接器插头,用来实现光路活动连接;一端装有插头则称为尾纤。光纤跳线(OpticalFiberPatchCord/Cable)和同轴电缆相似,只是没有网状屏蔽层。中心是光传播的...
机房怎么盘光缆(图文介绍光纤跳线、法兰、终端盒、接续盒、ODF基础知识)
光纤跳线1、光纤跳线简介光纤跳线(又称光纤连接器)是指光缆两端都装上连接器插头,用来实现光路活动连接;一端装有插头则称为尾纤。光纤跳线(OpticalFiberPatchCord/Cable)和同轴电缆相似,只是没有网状屏蔽层。中心是光传播的...
接续用胶带请放心食用(图文介绍光纤跳线、法兰、终端盒、接续盒、ODF基础知识)
光纤跳线1、光纤跳线简介光纤跳线(又称光纤连接器)是指光缆两端都装上连接器插头,用来实现光路活动连接;一端装有插头则称为尾纤。光纤跳线(OpticalFiberPatchCord/Cable)和同轴电缆相似,只是没有网状屏蔽层。中心是光传播的...
...单位要求和各个功能房间的实际情况,设置网络信息点、光纤信息点和语音信息点。整个院区综合布线系统采用“BD—FD”的结构建设,由中心机房配线架
...单位要求和各个功能房间的实际情况,设置网络信息点、光纤信息点和语音信息点。整个院区综合布线系统采用“BD—FD”的结构建设,由中心机房配线架
关于同芯光纤熔接机光纤切割刀使用小知识分享。随着5G技术的不断发展,光纤通信在日常生活中越来越重要。在光纤通信领域中,光纤熔接机使用越来越频繁,伴随着光纤熔接的使用中,光纤切割刀切出的断面好坏,直接影响...
关于同芯光纤熔接机光纤切割刀使用小知识分享。随着5G技术的不断发展,光纤通信在日常生活中越来越重要。在光纤通信领域中,光纤熔接机使用越来越频繁,伴随着光纤熔接的使用中,光纤切割刀切出的断面好坏,直接影响...