阅读:2959回复:4
DM9000(AE) 网卡问题
我在使用DriverMoniter检测PCI驱动程序读网卡的数据,发现读出的数据包除了广播包(以太网首部前六个字节为0xFF 0xFF 0xFF 0xFF 0xFF 0xFF)和自己的MAC地址相同的数据包(假设为0x00 0x01 0x20 0x5c 0xdf 0xff)。但还收到一个MAC地址为(0x01 0x80 0xc2 0x00 0x00 0x00),而我做的另外一块卡收到的是另一个MAC地址为(0x01 0x80 0xc2 0x00 0x00 0x0a),不知道是为什么?
首先我说明一下我的程序,我编写的不是网卡驱动程序,而是就是编写了一个PCI驱动程序。然后自己编写的协议栈。这些都不是主要的。问题是我在初始化dm9000网卡芯片时,已经把RCR(接收控制寄存器)的混杂模式屏蔽了,也不接收多播包(MAR),就是设置了网卡的PAR(MAC地址存放的地方)。而且对网卡不启动自环模式。 然后我再说明一下我对的理解。对于网卡芯片(硬件),我在配置其寄存器时,我只要不让网卡工作在混杂模式,硬件应该会过滤掉不是本机MAC地址的以太网包(但还是会接收广播包的)。可是我这块卡就是不听使唤。 我不知道是不是dm9000(AE)网卡芯片还有别的寄存器需要配置,会影响接收的以太网包。还是说对于网卡芯片必须要编写标准的网卡驱动程序。希望做过这方面的和研究过这方面的,还有想法的人都给我提点意见,让我试试,我自己实在是没招了。该试的都试过了。谢谢各位了 |
|
|
沙发#
发布于:2009-02-24 08:49
我发现我设置dm9000的RCR控制器为非混杂模式和混杂模式效果一个样,请问谁遇到过这样的问题
|
|
|
板凳#
发布于:2009-02-25 20:48
你的问题我不太清楚怎么回事,但我也在做类似的工作,自己想写一个网卡的驱动,但是当成PCI卡来写,不过效率一直不高,有兴趣大家可以交流一下,我的邮箱cross_sky@sohu.com
|
|
|
地板#
发布于:2009-03-10 15:32
引用第2楼cross_sky于2009-02-25 20:48发表的 : 楼上的,行,我的QQ:332390405,咱们QQ上聊,我的功能基本上实现了,但速度也只有1.2Mbps而我用的是100M网卡,所以也在想着提高效率问题 |
|
|
地下室#
发布于:2009-03-10 21:04
我想我能帮你,一起学习下吧.QQ: 286013981
|
|