现象: 1 、我用 2410 和 2440 一个做服务器一个做客户端可以正常通信
2 、他们也都可以和 PC 正常通信 他们不管是做服务器还是客户端,都是可以正常通信
3 、以上链接都是通过交叉网线连得
现在的问题: 1 、 2440 和 2440 就不能通信,都链接不了 , 2410 跟 2410 也是一样的
2 、 2440 的 IP 都已经设定好了
3 、 2440 和 2440 也是通过交叉网线连接的,也试过通过路由器
4 、但是可以 Ping 通的
5 、但是用 WI-FI 是可以正常连接的
遇到这样的问题,想了好久,还是没有解决,后来一个网友提示,才知道问题出哪,嘿嘿
原因是:
1 、两个 2440 的板子,烧写的内核是一样的, WIN-CE 设定的 DM9000 的网卡的 MAC 是一样的,而 MAC 应该是全球唯一的,所以不能 C/S 连接 , 导致通讯异常
在 2440 的板子上通过命令 ipconfig /all
(1) 2440 板子 1 的 IP 信息
Ethernet adapter Local Area Connection:
IP Address ........ : 192.168.0.11
Subnet Mask ....... : 255.255.255.0
IP Address ........ : fe80::20a:ebff:fefd:7a00
Default Gateway ... : 192.168.0.255
Adapter Name ...... : DM9CE1
Description ....... : dm9ce1
Adapter Index ..... : 2
Address............ : 00 0a eb fd 7a 00
DHCP Enabled....... : NO
(2) 2440 板子 2 的 IP 信息
Ethernet adapter Local Area Connection:
IP Address ........ : 192.168.0.12
Subnet Mask ....... : 255.255.255.0
IP Address ........ : fe80::20a:ebff:fefd:7a00
Default Gateway ... : 192.168.0.255
Adapter Name ...... : DM9CE1
Description ....... : dm9ce1
Adapter Index ..... : 2
Address............ : 00 0a eb fd 7a 00
DHCP Enabled....... : NO
2 、 2440 下注册表中的 MAC 的设置
[HKEY_LOCAL_MACHINE/Comm/DM9CE1/Parms]
"BusNumber"=dword:0
"BusType"=dword:0
"XmitBuffer"=dword:20
"RecvBuffer"=dword:20
"IrqNumber"=dword:23
"MACAddress" =hex:00,0A,EB,FD,7A,00
3 、 wifi 用的是 wifi 设备的 mac 地址 , 不会相同的,这个是出厂的时候写到芯片旁边的 24c10 ( i2c 的 eeprom 里面)里面, XP 也是一样的,他们做的都不冲突,就是因为台式机网卡的 mac 地址在出厂的时候设定好了
4 、要知道有没有设定好,看原理图,看有没有放外置的 eeprom, 支持自动加载 EEPROM 里面生产商 ID 和产品 ID ,产品 ID 就是 mac 地址
解决这个问题的方法:
可以后期 , 通过修改注册表来修改 , 或用一个写参数的程序 , 写新的 mac 到网卡芯片去
具体可参考
http://www.diybl.com/course/3_program/c++/cppsl/2008829/138492.html
http://hi.baidu.com/viqudb5006/blog/item/32aae13e4c60b2e455e72340.html
/----------------------------------------------------------------------------------------------------------------------------------------------------
作者:宇帆 cfanlwn
时间:2009-12-29 09:05:17