




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
以太网基础和CRC心得1. 以太、以太网1.1. 先上凉菜,闲扯以太(就不留作案底了)1.2. 局域网(LAN)1.2.1. 局域网主要特点 (范围_、站点数_、信道误码率_、传送速率_)1.2.2. 局域网与以太网(IEEE 802.3) triple1.3. 网络层次结构概念1.3.1. 一个简单的网络叠罗汉示意应用层运输层网络层数据链路层物理层1.3.2. 交换芯片的作用:在数据链路层(MAC子层)和物理层之间作数据交换。FPGA只要关心数据链路层的东西。1.4. 以太网帧结构及数据传送顺序1.4.1. 以太网帧结构以太网帧结构图1.4.1.1. 数据同步部分(包括Preamble和SFD)1) 数据同步意义:可以从一串数据流中准确地找到所需数据包的始末位置,然后可以定位包内各字段位置,从此就我为刀俎,包为鱼肉,庖丁解包,绰绰有余了。2) 数据同步的常见方式:a) 增加同步信号线,具体例子可参见PDH设备中CU和TU的两根同步信号线。另加自以为是的见解优点:同步处理方便缺点:增加了一条信号线,相当于可以提供两倍信号速率,但现在只用了一倍,效率较低。适用情况:在信号传送距离较短,走线资源比较丰富的情况下,如芯片内部,单板内部以及同一设备各板之间也可以考虑。b) 信号数据流中插入特定同步码,如以太网帧结构中的Preamble和SFD部分。另加自以为是的见解优点:带宽浪费较少,数据传送效率得到提高,具体传送效率和同步码长度及数据包长度有关。缺点:同步处理相对复杂,同步时间变长,并需要一定缓存存储数据。适用情况:远距离通信。3) 以太网帧数据同步部分简介:a) Preamble: 前同步码,共七个0x55字节。b) SFD: 包头指示,一个字节,值为0xD5。1.4.1.2. 路由相关部分(包括DA和SA)1) DA(目的地址):指示数据帧发送的目的地,路由设备根据DA及内部存储的路由表决定收到该包后从哪个端口转发。FF-FF-FF-FF-FF-FF为广播地址,而如果DA的第一字节最低位为1的地址保留为组播地址。2) SA(源地址):指示数据帧的发送源,可以帮助路由设备更新路由表,同时对端设备也可以根据此地址回复。1.4.1.3. L/T及有效数据部分1) L/T:用于指示本帧的数据长度或类型。802.3协议最大支持1500字节长数据(仅仅有效数据部分,如果不考虑增加VLAN标签,整个数据帧长最大1518字节)。一般来说,本字段如果等于或超过1536,则表示帧类型(如流控帧等),反之则表示数据长度。2) 有效数据字段:没啥说的,就是长度限制在46到1500字节,如果要传送的数据小于46字节,就用0x00来填充,直到46字节。1.4.1.4. FCS部分(数据校验使用CRC32,正餐稍候上)1.4.2. 数据传送顺序:对于整个帧来说,高位字节(图左边)先传,对于每个字节来说,低位先传。1.5. 流量控制1.5.1. 作用:调节各级数据传送速率,保证可靠传输。1.5.2. 以太网流量控制帧结构示意Preamble (7-bytes)Start Frame Delimiter (1-byte)Dest. MAC Address (6-bytes)= (01-80-C2-00-00-01)or unique DASource MAC Address (6-bytes)Length/Type (2-bytes)= 802.3 MAC Control(88-08)MAC ControlOpcode(2-bytes)= PAUSE(00-01)MAC ControlParameters(2-bytes)= (00-00 toFF-FF)Reserved(42-bytes)= all zerosFrame Check Sequence (4-bytes)图6.4 Ethernet控制帧格式 (其中MAC Control Parameters 用于指示中断时间)1) DA:流控帧一般使用0x01-80-C2-00-00-01作为目的地址,虽然协议规定也可以用对端的物理地址。2) L/T:用0x88-08作为类型指示。3) Opcode:指定为0x00-014) MAC Control Parameter:表示传送暂停时间长短。1.5.3. 流量控制机制1) 当本端资源紧张时,发送一个流量控制帧其中MAC Control Parameter字段值为0xFF-FF,对端收到后停止发送。2) 当本端资源充足后,再发一个流量控制帧其中MAC Control Parameter字段值为0x00-00,相当于要求对端续传。3) 如果资源一直紧张,则每隔一定时间发一MAC Control Parameter为0xFF-FF的流控帧。这里,流量控制帧的发送需要占用另一个方向的信号线。!感叹号友情提醒:流控有延时,缓存须准备,原因嘛1) 流控帧和数据帧的要争夺信号线使用权,万一不利,就得等人家发完货才能用。2) 因为是发帧来控制,就算及时夺权成功,整个帧发送也需要多个时钟,要生效,等呗。2. CRC(Cycle Redundant Check)心得2.1. CRC目的通过增加冗余数据进行检错!纠错? 2.2. CRC的原理及硬件实现2.2.1. 部分基本概念1) (n,k)分组码的意义:n为码字长度,k为信息为长度,n-k为用于检错纠错的冗余位长度。2) 码字和多项式间的转换例子:100011x5+x+13) 生成多项式概念(这里只考虑二元编码):对于一个(n,k)CRC码,如果所有码字都是一个n-k次多项式的倍式,这个多项式就是对应CRC码的SCDXS(我规定的生成多项式的简称,为了简略起见)。2.2.2. CRC基本算法介绍及硬件实现2.2.2.1. 基本算法:对于(n,k)的CRC编码,在k位信息位后添加n-k位0后对生成多项式求余,得到的n-k位余数为CRC校验位,将校验位加在信息位后就构成对应信息数据的n位CRC码字。2.2.2.2. 多项式除法算个简单的例子,用101除10010好了,和多位数除法很相似的 1 0 1 1 0 1 | 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1 12.2.2.3. 一个硬件实现例子,就是用移位异或来实现除法运算。除1011的电路2.2.2.4. 校验算法及原理:用生成多项式去除得到的CRC码字,如果余数为0,认为收到数据没有出错。原因比较简单,大致说明如下:设I(x)为信息位对应多项式,C(x)为校验位对应多项式,G(x)为生成多项式,CRC(x)为CRC码字对应多项式,D(x)为编码是得到的商式多项式(商式多项式在CRC编码和校验过程中都没有用,这里只是用于说明一下正确码字余式为零的原因),+为模二加(异或),其逆运算为本身。I(x)*x(n-k)+C(x)=CRC(x)信息位后添加n-k位校验位组成CRC码字I(x)*x(n-k)=D(x)G(x)+C(x)信息位后添加n-k位0后除生成多项式余式为校验码把两式左右分别相加,处理后最终可以得到CRC(x)=D(x)G(x),也就是我们要的结果,同时这也符合前面提到的生成多项式的定义。CRC校验的硬件电路可以对前面的编码电路稍作修改得到,偷懒偷懒。2.3. CRC原理另解,通俗易懂,老少咸宜(我以为哦)CRC与CTB(Cycle Tagged Ball)12个不同颜色小球分四组14,颜色从浅到深设为AL。A1B2C3D4E1F2G3H4I1J2K3L41) 不同组之间出错可以马上发现,如拿到色深为G的球,标的是2,可以肯定出错了。2) 同组小球如果出错,则无法发现,但是这种循环的分法可以保证同组的小球之间颜色差异尽可能大,出现标记出错的可能就很小,使用适当,可以认为忽略不计。2.4. 并行CRC算法简介2.4.1. 基本思想:使用查找表,资源换速度。并行位宽越大,查找表占用资源越多,但校验速度也越快。?:一个8位并行的CRC32使用的查找表需要多大存储空间2.4.2. 算法推导首先要建立查找表,这个可以通过程序先行计算后存入存储单元。之后我们就能通过查找得到任意字节对应的crc32校验码了。现在最重要的就是如何在知道每一字节校验码的基础上得到最终字节序列的校验码,也就是包序列中各个字节的校验码与整个包校验码的关系。粮草先行,先说个CRC码的线性特性如果a0,a1对应的校验码为b0,b1,那么a0+a1对应的校验码为b0+b1兵马来也,以简单的例子来说明。考虑只有两个字节的包,两字节对应的多项式设为a0,a1,对应的校验多项式为b0,b1。那最终的校验式就是a0*x8+a1的校验多项式,等于b0*x8+b1的余式。a0*x8+a1的校验多项式=a0*x8的校验多项式+ a1的校验多项式=b0*x8的余式+ b1因为b0是32位,b0*x8就是40位,这么长的,不干,拆迁。用G8()是对括号内式取高8位运算,D24()是对括号内式取低24位运算。我们的拆迁小组就把上面的式子拆成G8(b0)*x32的余式+D24(b0)*x8的余式+b1G8(b0)*x32的余式就是G8(b0)的校验式D24(b0)*x8是它本身于是大功告成最后结果为G8(b0)的校验式 + D24(b0)*x8 + b1因此一个可行的算法为:1) 查找本次得到新字节的校验码,得到一个32位序列S1 (b1)2) 取上次得到的校验码SJ的高8位进行校验,得到第二个32位序列S2 (G8(b0)的校验式)3) 将SJ的低24位左移8位得到第三个32位序列S3 (D24(b0)*x8)4) 将S1,S2,S3相异或,得到本次的校验码BJ。如果还有新的字节,那就将BJ作为下一周期的SJ,并重新从步骤1开始循环。否则BJ就是最终结果。不过这个的算法中一个周期得查两次表,就得需要建立两张相同的查找表,太费了,不干!再看法宝线性特性。两次查表后异或不如直接异或后查一次表。这样就可以对原算法做修改,新算法如下:1) 将本次得到新字节的校验码和上次得到的校验码SJ的高8位作异或,得到一个新字节B2) 对B进行校验,得到一个32位序列S13) 将SJ的低24位左移8位得到第二个32位序列S24) 将S1,S2相异或,得到本次的校验码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省孟州市2025年上半年公开招聘村务工作者试题含答案分析
- 2025年度水土保持项目政府购买服务合同
- 2025年度科技项目研发成果转化保证金质押担保合同范本
- 贵州省黄平县2025年上半年公开招聘村务工作者试题含答案分析
- 2025年度婚车租赁合同包含婚礼当天婚庆车队调度
- 2025版国际货物买卖合同中知识产权担保的合同履行与权益保护合同
- 晋中市重点中学2026届化学高一上期中检测模拟试题含解析
- 故障预警机制研究-洞察及研究
- 全球贸易动态-洞察及研究
- 交通智能感知-洞察及研究
- 全国2023年招商银行招银网络科技校园招聘考试模拟卷3套含答案详解
- YY/T 1745-2021自动粪便分析仪
- MT 220-1990煤矿用防爆柴油机械排气中一氧化碳、氮氧化物检验规范
- 燕窝工艺参考
- 班组施工任务单
- 斜拉桥主桥索塔施工监理实施细则
- 部编教材九年级历史(上)全册教案
- 钢结构模块化安装施工方案
- 双氧水生产工艺简单简介
- KNS机器参数,干货
- 医院输血科技术人员绩效考核指标
评论
0/150
提交评论