DM9000 MAC端回环测试

云过城南 2024-12-30 09:58:28

DM9000 进行MAC端回环测试,在配置完NCR寄存器为MAC端回环。之后如何测试?尝试进行tx数据缓冲区数据写入,发现不能将数据写入。

1.请问是否有详细的MAC端回环测试方法?

2.是否有参考代码用于测试?

...全文
88 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
以上为DM9000(A)常用寄存器功能的详细介绍,通过对这些寄存器的操作访问,我们便可以实现对DM9000的初始化、数据发送、接收等相关操作。而要实现ARP、IP、TCP等功能,则需要对相关协议的理解,由编写相关协议或移植协议栈来实现。 功能描述 1、总线 总线是ISA总线兼容模式,8个IO基址,分别是300H, 310H,320H, 330H, 340H, 350H, 360H, 370H。IO基址与设定引脚或内部EEPROM的共同选定 访问芯片有两个地址口,分别是地址口和数据口。当引脚CMD接地时,为地址口;当引脚CMD接高电平时,为数据口。在访问任何寄存器前,地址口输入的是数据口的寄存器地址,寄存器的地址必须保存在地址口。 2、存储器直接访问控制 DM9000提供DMA(直接存取技术)来简化对内部存储器(下称存储器)的访问。对存储器起始地址完成编程后,发出写命令就可以加载当期数据到内部数据缓冲区,可以通过读写数据读出或写入寄存器来定位数据到存储区。根据当前总线模式的字长使存储地址自动加1,下一个地址数据将会自动加载到数据缓冲区。要注意的是在连续突发式的第一次访问是读写命令的内容。??? 内部存储器空间大少16K字节。低3K字节单元用作发送包的缓冲区,其他13K字节用作接收包的缓冲区。所以在写发送包存储区的时候,当存储器地址越界后,自动跳回0地址并置位IMR第七位。同样在读接收包存储器的时候,当存储器地址越界后,自动跳回起始地址0x0c00。 3、包的发送 命名指针1和指针2,同时存储在发送包缓冲区。发送控制寄存器(02H)控制冗余校验码和填充的插入,其状态分别记录在发送状态寄存器1(03H)和发送状态2(04H) 发送器的起始地址是0x00H,软件或硬件复位后默认是指针1,先通过DMA口写数据到发送缓冲区,然后写字节计数长度到字节计数寄存器(0FCH,0FDH)。然后置位发送控制寄存器的bit1来发送指针1的包。在此包发送完成前,指针2的数据包能进入到发送缓冲区。当指针1的包发送完,写字节计数长度到字节计数寄存器并置位发送控制寄存器的bit1来发送指针2的包。类似的操作来进行更多的数据发送。 4、包的接收 接收缓冲区是一个环结构,起始地址0C00H在复位后。每个包有4个字节的头,后紧跟着包的数据及CRC校验码,这4个字节的头格式是01H,状态,包长度低8位,包长度高8位。它用来标志着每个包正确的起始地址。

21,615

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧