gfp 通用成帧程序 帧结构 校验 crc 多项式 加扰
参考文档: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 多项式 加扰相关推荐
- nuxt.js的核心代码_Nuxt.js中的通用应用程序代码结构
nuxt.js的核心代码 by Krutie Patel 通过克鲁蒂·帕特尔(Krutie Patel) Nuxt.js中的通用应用程序代码结构 (Universal application code ...
- 3.2.1 封装成帧、帧定界、帧同步、透明传输(字符计数法、字符串的首尾填充法、零比特填充的首尾标志法、违规编码法)(转载)
原文链接:https://blog.csdn.net/weixin_43914604/article/details/104779973 本博客为个人学习.研究或者欣赏用,如有侵权,请与我联系删除,谢 ...
- 网络数据包片段拼合(连续h264片段拼接成完整h264帧)--纠正下,是h264 slice,不是图像帧
最近项目用的网络摄像头,从网络层获取到连续的h264片段数据,于是写了一个将连续输入数据按 指定字符串分割成一个slice数据的 class, 稍作改动,也可以用来处理 文本文件中查找 替换等等功能, ...
- 语音处理的分帧,帧移,加窗,滤波,降噪,合成
一.分帧 语音数据和视频数据不同,本没有帧的概念,但是为了传输与存储,我们采集的音频数据都是一段一段 的.为了程序能够进行批量处理,会根据指定的长度(时间段或者采样数)进行分段,结构化为我们编程 的数 ...
- STM32F407ZG 串口通信+固定帧头帧尾传输数据帧
STM32F407ZG开发板学习(4) 串口简介 通信接口 USART 接线 电平标准 数据帧 实验:固定帧头帧尾数据传输 需求 最终思路以及思考过程 思路 中断函数程序段长度的问题 缓冲区数据结构的 ...
- CAN总线数据帧/标准帧/扩展帧/远程帧/错误帧的组成格式对比
最近在研究CAN总线的驱动,需要详细了解数据帧/标准帧/扩展帧/远程帧/错误帧这几种帧的详细组成格式,于是收集了一下,统一放在这里进行对比和记录,以便日后需要时查阅. 1.数据帧-标准帧 CAN 标准 ...
- 【音视频数据数据处理 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 ...
- php截取视频第一帧为图片,把视频变成一帧一帧的图片(ae怎么把视频变成单帧) 视频截图视频画面每帧图片截取...
AE怎么把视频变成单帧?这是小编今天要与大家讨论及解决的一个问题.在视频后期处理中,有时为实现某个场景效果,需要把视频中的某帧变成静态帧图片:或者需要视频截图视频画面每帧图片截取出来,把视频变成一帧一 ...
- 浅谈显示技术中帧、帧数、帧率、 FPS 间有何区别
转自:https://www.leiue.com/2128 在视频领域,电影.电视.数字视频等可视为随时间连续变换的许多张画面,而"帧( Frame)"是指每一张画面.而我们日常口 ...
最新文章
- openocd for windows
- C#常用类库----CSV文件操作类
- 【BZOJ2243】【codevs1566】染色,树链剖分练习
- win7便签怎么一直在桌面显示
- 堆栈的区别linux C,uClinux堆栈
- pixi 小游戏_学习如何用pixi.js开发微信小游戏
- java processing_1 Processing入门简介
- 微信php echo换行,微信小程序文字显示换行问题
- 杭州的旅游景点有哪些传说的民间故事
- c语言字符数组自动填充,数组在C中自动填充
- Windows7使用inter7代cpu更新补丁问题
- C++:图片数字水印-基于OpenCV+LSB
- 尚学堂-肖斌-100集hadoop视频教程
- MATLAB求解二元(多元)函数极值
- android手机改车载,到底手机导航还是车载导航好,我选择在车上加装安卓大屏...
- 【转】WinCE驱动开发问题精华集锦
- 电力系统变压器差动保护实际应用分析
- Android开发学习之基于ZBar实现微信扫一扫
- 【社区周会】2021-05-25 内容概要
- 折腾 NeoVim 和 SpaceVim