硬件:请帮我看一看 RTL8019 的代码!
我用 89C52 控制 8019 网卡,想发一个 ARP 包,写了以下代码,
工作时,网卡的 LINK 灯是亮着的,HUB 上的灯也是亮着的;网卡上的 ACT
灯每隔两秒闪烁一下,HUB 的流量灯也显示有数据在传输,但我在 PC 上用
监视软件却看不到我发的包(我用另一台电脑找我的电脑可以看到 ARP 包),
请各位大侠帮忙看一看,不胜感激!谢谢!!!
void NICInit()
{
reg00 = 0x21; // Page0, Stop
reg01 = 0x40; // PSTART
reg02 = 0x4d; // PSTOP
reg03 = 0x40; // BNRY
reg07 = 0xff; // ISR
reg0c = 0xc6; // RCR
reg0d = 0xe0; // TCR
reg0e = 0xb8; // DCR
reg00 = 0x61; // Page1, Stop
reg01 = ET0; // PAR
reg02 = ET1;
reg03 = ET2;
reg04 = ET3;
reg05 = ET4;
reg06 = ET5;
reg07 = 0x40; // CURR
reg00 = 0x02; // Page0, Start
}
void SendARP()
{
reg00 = 0x22; // Page0, Abort
reg04 = 0x5f; // TPSR
reg09 = 0x5f; // RSAR
reg08 = 0x00;
reg0b = 0x00; // RBCR
reg0a = 0x40;
reg00 = 0x12; // Page0, Remote Write
reg10 = 0xff; // To Everyone
reg10 = 0xff;
reg10 = 0xff;
reg10 = 0xff;
reg10 = 0xff;
reg10 = 0xff;
reg10 = ET0; // My MCU's MAC
reg10 = ET1;
reg10 = ET2;
reg10 = ET3;
reg10 = ET4;
reg10 = ET5;
reg10 = 0x08;
reg10 = 0x06;
reg10 = 0x00;
reg10 = 0x01;
reg10 = 0x08;
reg10 = 0x00;
reg10 = 0x06;
reg10 = 0x04;
reg10 = 0x00; // ARP Request
reg10 = 0x01;
reg10 = ET0; // My MCU's MAC
reg10 = ET1;
reg10 = ET2;
reg10 = ET3;
reg10 = ET4;
reg10 = ET5;
reg10 = 192; // My MCU's IP
reg10 = 9;
reg10 = 203;
reg10 = 94;
reg10 = 0x00;
reg10 = 0x00;
reg10 = 0x00;
reg10 = 0x00;
reg10 = 0x00;
reg10 = 0x00;
reg10 = 192; // My PC's IP
reg10 = 9;
reg10 = 203;
reg10 = 93;
reg00 = 0x22; // Page0, Abort DMA
reg06 = 0x00; // TBCR
reg05 = 0x40;
reg00 = 0x06; // Send Packet
}
void main()
{
Delsy100ms(); // Delay for 100ms
NICInit(); // NIC Init
while(1)
{
Delay2s(); // Delay 2s
SendARP(); // Send ARP Packet
}
}
发表时间:2002年5月9日23:09:00