参考文档:G.7041Y.1303
GFP帧长最大为65535字节,GFP帧结构如下:

//-------------核心报头----------------
PLI:净荷长度指示符,表示4个字节的核心帧头后面的净荷区的字节数

cHEC:核心报头差错控制字段,校验生成多项式:crc-16/xmodem x16+x12+x5+1
在网站http://www.ip33.com/crc.html可以计算校验码。

最后总的核心报头四字节异或上 B6AB31E0 进行核心报头的扰码。

//---------------净荷区------------------

PTI:净荷使用类型识别符, 000:客户数据;100:客户管理。

PFI:净荷校验FCS指示符,1:有FCS;0:无FCS。

EXI:扩展报头识别符,0000:空扩展报头;0001:线性帧;0010:环形帧。

UPI:客户数据帧的类型或客户管理帧的类型识别符。

tHEC:净荷类型差错控制,校验生成多项式:crc-16/xmodem x16+x12+x5+1 。

上图为线性帧扩展报头,CID用来指示本帧是GFP 256个通信通道中的哪一个(这里不是很确定)。

eHEC:扩展报头差错控制,校验生成多项式:crc-16/xmodem x16+x12+x5+1

FCS:净荷差错控制,校验生成多项式:x 32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1

对于GFP空闲帧,只发送四个字节:00000000(加扰后为:B6AB31E0)。

加扰前的GFP帧例子:字节     字段        值(十六进制)     注释
1       PLI[15:8]   00 ;            PLI = 长度 { 净荷报头 + 净荷信息字段 + 净荷 FCS }
2       PLI[7:0]    4C ;            = 8 + 64 + 4 = 76 字节
3       cHEC[15:8]  89 ;
4       cHEC[7:0]   48 ;
5       TYPE[15:8]  11 ;            [15:13]='000' (客户数据)
6       TYPE[7:0]   01 ;            [12] ='1' (净荷 FCS 使能)
7       tHEC[15:8]  20 ;            [11:8] ='0001' (线状报头)
8       tHEC[7:0]   63 ;            [7:0] ='00000001' (以太网)
9       EHDR[15:8]  80 ;            CID[07:00]=0x8000(例子的值)
10      EHDR[7:0]   00 ;            SPARE[7:0]
11      eHEC[15:8]  1B ;            在 CID,SPARE 上计算的 eHEC
12      eHEC[7:0]   98 ;            扩展报头结尾
13      DATA        FF ;            1d 以太网 DA=0xFFFFFFFFFFFF
14      DATA        FF ;            2d
15      DATA        FF ;            3d
16      DATA        FF ;            4d
17      DATA        FF ;            5d
18      DATA        FF ;            6d
19      DATA        06 ;            7d 以太网 SA=0x060504030201
20      DATA        05 ;            8d
21      DATA        04 ;            9d
22      DATA        03 ;            10d
23      DATA        02 ;            11d
24      DATA        01 ;            12d
25      DATA        00 ;            13d 以太网类型/长度
26      DATA        2E ;            14d
27      DATA        00 ;            15d 以太网净荷
28      DATA        01 ;            16d
29      DATA        02 ;            17d
30      DATA        03 ;            18d
31      DATA        04 ;            19d
32      DATA        05 ;            20d
33      DATA        06 ;            21d
34      DATA        07 ;            22d
35      DATA        08 ;            23d
36      DATA        09 ;            24d
37      DATA        0A ;            25d
38      DATA        0B ;            26d
39      DATA        0C ;            27d
40      DATA        0D ;            28d
41      DATA        0E ;            29d
42      DATA        0F ;            30d
43      DATA        10 ;            31d
44      DATA        11 ;            32d
45      DATA        12 ;            33d
46      DATA        13 ;            34d
47      DATA        14 ;            35d
48      DATA        15 ;            36d
49      DATA        16 ;            37d
50      DATA        17 ;            38d
51      DATA        18 ;            39d
52      DATA        19 ;            40d
53      DATA        1A ;            41d
54      DATA        1B ;            42d
55      DATA        1C ;            43d
56      DATA        1D ;            44d
57      DATA        1E ;            45d
58      DATA        1F ;            46d
59      DATA        20 ;            47d
60      DATA        21 ;            48d
61      DATA        22 ;            49d
62      DATA        23 ;            50d
63      DATA        24 ;            51d
64      DATA        25 ;            52d
65      DATA        26 ;            53d
66      DATA        27 ;            54d
67      DATA        28 ;            55d
68      DATA        29 ;            56d
69      DATA        2A ;            57d
70      DATA        2B ;            58d
71      DATA        2C ;            59d
72      DATA        2D ;            60d
73      DATA        DE ;            61d 以太网 FCS(在 60字节上计算的)
74      DATA        E1 ;            62d
75      DATA        90 ;            63d
76      DATA        D0 ;            64d
77      FCS[31:24]  56 ;            任选的 GFP 净荷 FCS 的第一个字节
78      FCS[23:16]  CF ;            只包含净荷信息字段
79      FCS[15:8]   2B ;            扩展字段(即 64 字节)
80      FCS[7:0]    B0 ;            任选的 GFP FCS最末字节

注意以太网的FCS计算后在以太帧中的顺序是低字节在前:

//------------------净荷区扰码---------------------
净荷区所有校验计算完后需要对整个净荷区进行扰码,即对核心报头之后的数据进行扰码。
扰码多项式为:43x + 1。
扰码器只在净荷数据时进行扰码,其他数据时扰码器保持,因此每帧开始时扰码器的状态为上帧扰码结束时扰码器的状态。根据扰码器结构可以看出每帧开始时扰码器D43-D1的初始值就是上帧加扰后的数据的最后43bit。

gfp 通用成帧程序 帧结构 校验 crc 多项式 加扰相关推荐

  1. nuxt.js的核心代码_Nuxt.js中的通用应用程序代码结构

    nuxt.js的核心代码 by Krutie Patel 通过克鲁蒂·帕特尔(Krutie Patel) Nuxt.js中的通用应用程序代码结构 (Universal application code ...

  2. 3.2.1 封装成帧、帧定界、帧同步、透明传输(字符计数法、字符串的首尾填充法、零比特填充的首尾标志法、违规编码法)(转载)

    原文链接:https://blog.csdn.net/weixin_43914604/article/details/104779973 本博客为个人学习.研究或者欣赏用,如有侵权,请与我联系删除,谢 ...

  3. 网络数据包片段拼合(连续h264片段拼接成完整h264帧)--纠正下,是h264 slice,不是图像帧

    最近项目用的网络摄像头,从网络层获取到连续的h264片段数据,于是写了一个将连续输入数据按 指定字符串分割成一个slice数据的 class, 稍作改动,也可以用来处理 文本文件中查找 替换等等功能, ...

  4. 语音处理的分帧,帧移,加窗,滤波,降噪,合成

    一.分帧 语音数据和视频数据不同,本没有帧的概念,但是为了传输与存储,我们采集的音频数据都是一段一段 的.为了程序能够进行批量处理,会根据指定的长度(时间段或者采样数)进行分段,结构化为我们编程 的数 ...

  5. STM32F407ZG 串口通信+固定帧头帧尾传输数据帧

    STM32F407ZG开发板学习(4) 串口简介 通信接口 USART 接线 电平标准 数据帧 实验:固定帧头帧尾数据传输 需求 最终思路以及思考过程 思路 中断函数程序段长度的问题 缓冲区数据结构的 ...

  6. CAN总线数据帧/标准帧/扩展帧/远程帧/错误帧的组成格式对比

    最近在研究CAN总线的驱动,需要详细了解数据帧/标准帧/扩展帧/远程帧/错误帧这几种帧的详细组成格式,于是收集了一下,统一放在这里进行对比和记录,以便日后需要时查阅. 1.数据帧-标准帧 CAN 标准 ...

  7. 【音视频数据数据处理 12】【H.264篇】解析H.264原始码流中的I帧 / P帧 / B帧数据(暂未解决,本文先放着,来日更新)

    [音视频数据数据处理 12][H.264篇]解析H.264原始码流中的I帧 / P帧 / B帧数据 一.如何判断是 I帧 / P帧 / B帧 1.1 slice_type 1.2 slice_head ...

  8. php截取视频第一帧为图片,把视频变成一帧一帧的图片(ae怎么把视频变成单帧) 视频截图视频画面每帧图片截取...

    AE怎么把视频变成单帧?这是小编今天要与大家讨论及解决的一个问题.在视频后期处理中,有时为实现某个场景效果,需要把视频中的某帧变成静态帧图片:或者需要视频截图视频画面每帧图片截取出来,把视频变成一帧一 ...

  9. 浅谈显示技术中帧、帧数、帧率、 FPS 间有何区别

    转自:https://www.leiue.com/2128 在视频领域,电影.电视.数字视频等可视为随时间连续变换的许多张画面,而"帧( Frame)"是指每一张画面.而我们日常口 ...

最新文章

  1. openocd for windows
  2. C#常用类库----CSV文件操作类
  3. 【BZOJ2243】【codevs1566】染色,树链剖分练习
  4. win7便签怎么一直在桌面显示
  5. 堆栈的区别linux C,uClinux堆栈
  6. pixi 小游戏_学习如何用pixi.js开发微信小游戏
  7. java processing_1 Processing入门简介
  8. 微信php echo换行,微信小程序文字显示换行问题
  9. 杭州的旅游景点有哪些传说的民间故事
  10. c语言字符数组自动填充,数组在C中自动填充
  11. Windows7使用inter7代cpu更新补丁问题
  12. C++:图片数字水印-基于OpenCV+LSB
  13. 尚学堂-肖斌-100集hadoop视频教程
  14. MATLAB求解二元(多元)函数极值
  15. android手机改车载,到底手机导航还是车载导航好,我选择在车上加装安卓大屏...
  16. 【转】WinCE驱动开发问题精华集锦
  17. 电力系统变压器差动保护实际应用分析
  18. Android开发学习之基于ZBar实现微信扫一扫
  19. 【社区周会】2021-05-25 内容概要
  20. 折腾 NeoVim 和 SpaceVim

热门文章

  1. rk3568 LTE(EC20--GPS)
  2. 一元一个脱单盲盒,“线上月老”是门赚钱的好生意吗?
  3. 在线学习python
  4. 今日头条2017前端工程师实习生笔试题
  5. NetAlly Aircheck G2无线网络测试仪技术参数
  6. 【学习笔记】山东大学生物信息学-05 高通量测序技术介绍 + 06 统计基础与序列算法(原理)
  7. 神经网络聚类方法:SOM算法原理
  8. Java对象转xml
  9. 深入理解TCP三次握手与四次挥手过程以及抓包实验
  10. 实验:使用SSMS创建并管理数据库及其基本表