以太网中继项目--A1问题(3)

目标:根据以太网光中继的特点,以及光信号容易被外界光干扰从而会带来误码的特性,设计以太网的发送端。

核心:使用rec_en待发送数据使能信号及rec_data待发送数据从复杂的以太网帧中提取出有用的数据(源IP、目的IP、UDP长度、有效数据)4部分进行发送,提高光信道的利用率并且减少误码(数据少了,误码相对也会变少)的可能性。

实现粗略过程:使用状态机对以太网包进行拆帧,并实现提取。这就要求必须对以太网的帧结构非常熟悉。UDP帧结构共有50个首部字节(包括前导码、MAC帧头、IP帧头、UDP帧头),各帧头中又有不用内容,因此通过字节计数器对字节进行计数,根据计数就能判断出接收到的字节是否是需要的内容,若需要则拉高rec_en信号,并将rx_data赋值至rec_data。在此之中,关键的一步是对目的MAC的判断,由于目的IP与目的MAC绑定后,发送目的IP时上位机会自动填入目的MAC,因此可在代码中提前输入绑定好的MAC地址,并将其与接收到的MAC地址进行判断,若相同才说明是用户真正想要发出的数据,从而过滤掉以太网口不间断的吐出的错误数据。至此,以太网的发送完成。

实现详细过程见源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值