请教C52控制RTL8019AS无法正常发送数据包的问题
我想用AT89C52控制RTL8019AS进行以太网数据传输。现在已参照老古老师给出的方法焊接完成。8019能够收到数据包(根据CURR和BNRY的关系判断出来的,没有读包的内容),但是无法发送。
我程序中是这样控制的:
网卡复位
初始化,发送缓冲为4000h-4B00h,其余为接收缓冲
while(1)
{
通过远程DMA向8019的4000h开始的地址写入60字节的ARP包。
读第一次page 0:04h(TSR)的值,此时值为03h
设置page 0:06h(TBCR1)的值为3Ch,page 0:05h(TBCR0)的值为00h(数据包长度003Ch=60 Bytes)
设置page 0:04h(TPSR)的值为40h,发送4000h地址处开始的数据。
设置CR为1eh,发送数据
读第二次page 0:04h(TSR)的值,此时值仍为03h
}
用抓包软件(Ethereal)没有抓到8019发出来的ARP包,查8019的资料上说TSR的值为03h(0000 0011 B),表示无错的数据传输。但此时数据还没有发送。而将CR设为1eh,试图发送数据之后,63脚(LED_TX)接的LED没有闪烁,抓包软件也没抓到这个ARP包,但TSR的值还是03h,表明的确是“无错的数据传输”。
请教各位,这种情况,故障可能出现在哪里?
另,请问可否给我一份RTL8019AS发送数据的Keil C源程序供学习参考?
提前谢谢各位!
发表时间:2006年1月17日9:17:26