导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→硬件:请帮我看一看 RTL8019 的代码!

* 7341: 硬件:请帮我看一看 RTL8019 的代码!

   dirty 
dirty发表的帖子 

 硬件:请帮我看一看 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

  
回复该帖

本主题共有 2 帖,分页:>>>>>该主题的所有内容[2]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  8698.[详细]你为什么将tpsr 和 rsar 都设为0x5f ?
摘要:......(无内容)
- [小雨][1151次] 2002年7月3日

[上一篇帖子]:C51编程:各位大侠,我在用凯儿仿真的时候,单步的时候可以看到p口的变化情况,但是在全速的时候看不到
[下一篇帖子]:告诉我你的信箱,我把资料发给你