导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→硬件:蓝天大虾。请赐教![xuyishark]

 *第3607篇: 硬件:蓝天大虾。请赐教!

  
楼 主:xuyishark 2002年6月6日16:11
 硬件:蓝天大虾。请赐教!
那么你在整个数据包长度小于60字节的时候你是填充0,使其长度达到60字节?网卡在计算
CRC时是怎么计算的,包括那些内容?
  我现在的情况是这样的,在发送偶数个UDP数据时,我把发送数据设置为大于实际需要发
送的字节数时,用pc接受没问题,但是发送奇数个时就有问题。望赐教!

不知道你在发送数举报时是怎么处理发送长度的?

  
2楼:蓝天 2002年6月6日16:38
 如下:
  整个数据包长度小于60字节的时候最好是填充0,使其长度达到60字节后,再write 
remote DMA到网卡的发送缓冲区。再启动发送命令。记得这时写进网卡的长度也要设为60  
   RTL8019AS的CRC是计算整个以太帧的(除FCS校验位)。而填充0对CRC计算的结果FCS是
没有影响的。
  
3楼:xuyishark 2002年6月6日16:53
 请问那里有这些相关的书籍?
  
4楼:xuyishark 2002年6月6日17:00
 还有这种情况!蓝天大侠!
我做的出现了这种情况: 我发送的UDP真正数据报一般都小于60字节.我把这些数据写入发送
缓冲区,然后发送大于60个字节到网上,我用计算机不能接收奇数个字节的包,但是是偶数时
不存在任何问题.可以用两块转换板来对接,却可以接收任何一种情况的数据.我迷惑,望赐
教! 我的qq 32492579  我有问题向大侠请教,望赏脸!
  
5楼:xuyishark 2002年6月6日17:06
 蓝天大侠,我又有问题!
你说RTL8019AS的CRC是计算整个以太帧的(除FCS校验位)。整个以太网帧是否包括这些内
容:  struct  ethernet { uchar recievestatus;   /*接收状态*/
                    uchar nextpage;        /*下一个页*/
                    uint length;           /*以太网长度,以字节为单位,*/
                    uint destnodeid[3];    /*目的网卡地址*/
                    uint sourcenodeid[3];   /*源网卡地址*/
                    uint protocal;          /*下一层协议 */
                    uchar packet[1527];      /*包的内容*/
                } 和ip报头及数据
     还是上面的内容除掉recievestatus,nextpage,length;           
  
6楼:蓝天 2002年6月6日17:20
 其实计算机的网卡驱动程序中,有很多的判断和校验,比较严格。所以有时两块板对接可以,是因为你没有作相应的处理。
不包括  uchar recievestatus;   /*接收状态*/
        uchar nextpage;        /*下一个页*/
        uint length;           /*以太网长度,以字节为单位,*/

其实可以完全不管CRC的计算方法的。它是由网卡自己完成的。只需把要发送的以太数据帧
写进发送缓冲区便可。(当然不包括FCS本身)

  
7楼:蓝天 2002年6月6日17:40
 我也没什么书籍的啊。很多都是前段时间自己试过的。
前些时间,拜读了老古的文章,再加上RTL8019AS的技术文档。自己试了一段时间才有一点
点心得。不过,我是原来对TCP/IP协议比较熟,所以搞定RTL8019AS的操作后,相对就好办
一些啦。
  
8楼:xuyishark 2002年6月6日17:56
 蓝天大虾,那你转换班出现了我的那种情况吗?
  
9楼:蓝天 2002年6月7日10:03
 没有出现你说的问题。而且我也一早就考虑了这种情况的处理。

>>>>>>对该主题发表你的看法

本主题贴数9,分页: [第1页]


[上一篇主题]:硬件:单总线

[下一篇主题]:C51编程:请教内联汇编的问题