kukucat的印记 https://bbs.21ic.com/?511186 [收藏] [复制] [RSS] 仰观宇宙之大,俯察品类之盛!

日志

成功通过控制RTL8019AS发送100字节的数据

已有 1231 次阅读2008-3-28 21:33 |个人分类:kuku文摘|系统分类:接口电路| 以太网, RTL8019AS, ARM

 成功通过控制RTL8019AS发送100字节的数据   


    毕业设计今天终于有了突破性的进展,成功通过ARM7控制RTL8019AS发送100字节的数据(加上目的MAC打、源MAC、type,共114字节),并且在PC上使用软件"Wireshark"捕获了这个数据包,完全正确,激动哉!


    开始时搞了两三天,一直没有成功,读出的内容根本不对,看来看去就是检查不出哪里出错了!于是又去查看了下RTL8019AS的RAM分配图,如图(8),突发发现了这个错误,原来设置远程DMA写和读的时候把"远程起始地址寄存器(RSAR0,1)"设置成了"0x40(即RSAR0=0x40,RSAR1=0x00)",而实际应该设置为0x4000(即RSAR0=0x00,RSAR1=0x40)",把页数和字节数搞混了。当初远程DMA写命令写114个数据完成后,也检查了"当前远程DMA地址寄存器"(CRDA0和CRDA1),发现CRDA0=0xb2和CRDA1=0x00,也以为是正确的(应为0xb2-0x40=114),而实际应为CRDA0=0x72和CRDA1=0x40,114个数据自占用一页空间,高位CRDA1是不变的,仍旧为初始的0x40。改过来以后就正确啦!远程DMA写,再远程DMA读,两者的数据一致。用软件"Wireshark"检测收到的数据,如图(1),图(2),图(3)。





图(1) 高亮为以太网包中的'目的MAC'



图(2) 高亮为以太网包中的'源MAC'



图(3) 高亮为以太网包中的'100字节数据'


图片如无法显示,可以"鼠标右键"->"显示图片"


路过

鸡蛋

鲜花

握手

雷人

发表评论 评论 (3 个评论)

回复 skymy 2008-3-29 12:32
你的图片没有上传,最好用图片插入的方式

QUOTE:
以下为kukucat的回复: 好像是的,呵呵! [emot]9[/emot]我是直接从自己的笔记里面复制来的,只有我自己能看到,哈~~~待改正
回复 kukucat 2008-9-7 19:42
图(1),(2),(3)中数据是成功发送和接收了,但有个小小的错误,途中的"Protocol"处应该显示"LLC"协议,先前没发现,是由于发送的时候,在以太网数据包封装时,表明"数据的长度"内容的高字节和低字节弄反了,结果是图中显示的"4000"显示的是一种未知的协议...
shapolang 2009-5-18 03:07
你好,我在用rtl8019做网络通信时,遇到了一点问题,读取其寄存器的值时总是出错,也不知道是什么原因,请问你能否给点建议? 我的邮箱shapolang1987321@163.com 谢谢~