原创 如何测试W5300的内部TX/RX存储器?

2013-7-1 17:02 1138 19 19 分类: 消费电子

W5300

W5300是一款全硬件TCP/IP协议嵌入式以太网控制芯片,用于要求高速的嵌入式系统。

W5300的目标是在高性能的嵌入式领域,如多媒体数据流服务。与WIZnet现有的芯片方案相比较,W5300在内存空间和数据处理能力等方面都有很大的提高。W5300特别适用于IPTV,IP机顶盒和数字电视等大流量多媒体数据的传输。通过一个集成有TCP/IP协议和10/100M的以太网MAC和PHY的单芯片可以非常简单和快捷地实现Internet连接。

W5300与主机(MCU)采用总线接口。通过直接访问方式或间接访问方式,W5300可以很容易与主机接口,就像访问SRAM存储器。W5300的通信数据可以通过每个端口的TX/RX FIFO寄存器访问。由于这些特性,即使一个初学者也很容易使用W5300实现Internet连接。
那么今天就介绍一下,如何测试W5300的内部TX/RX存储器。
 

内部TX/RX存储器

W5300内部集成128KB存储器用于通信。该存储器根据TMSR和RMSR的寄存器设置分成TX和RX存储器,并在每一个Socket端口又重新划分为对应端口的TX和RX存储器。

用户不能从主机直接访问内部TX/RX存储器,但是可以通过每个Socket端口的FIFO寄存器间接访问。并且通过使用Sn_TX_FIFOR和Sn_RX_FIFOR,可以间接访问TX和RX存储器。

在W5300正常工作时,TX存储器只允许通过Sn_TX_FIFOR进行主机写操作,RX存储器只允许通过Sn_RX_FIFOR进行主机读操作。为了检查主机是否将数据正确地写入TX存储器,主机是否正确地从RX存储器读出数据,W5300需要工作在存储器测试模式。

5300测试-1

发送(TX)存储器具有内部访问指针。无论何时主机写Sn_TX_FIFOR,内部访问指针都会自Sn_TX_FIFOR存入SOCKET n的TX缓存后,以2byte的偏移量从基址增加到TX缓存的终点。

访问指针自基址向TX内存的终点增加,为了防止主机持续的写入Sn_TX_FIFOR,当Sn_TX_FIFOR写满指定大小寄存器,访问指针会从终点返回基址起始位置。一般来说,访问指针的自动增加和回滚功能防止了Sn_TX_FIFOR的Host-Write。然而,如果MR寄存器的MT位设置为‘1’,此功能甚至能够避免Sn_TX_FIFOR的Host-Read. 因此,此功能可以验证发送(TX)内存的Host-Write操作。

Sn_RX_FIFOR & RX 存储器

W5300测试-2

接收(RX)存储器也具有内部访问指针。无论何时主机读Sn_RX_FIFOR,内部访问指针都会自Sn_RX_FIFOR存入SOCKET n的RX缓存后,以2byte的偏移量从基址增加到RX缓存的终点。

当主机持续地从访问指针读取Sn_RX_FIFOR到终点时,访问指针又回到基点。当Sn_RX_FIFOR读取的数据与分配的存储器大小相同时,访问存储器就会回到起点。通常,访问指针增加和回滚功能只是避免Sn_RX_FIFOR的Host-Read。可是,如果MR的‘MT’位被设置为‘1’,那么这个功能甚至能够避免Sn_RX_FIFOR的Host-Write。使用该功能可以验证发送(RX)存储器的Host-Read操作。

如何测试 SOCKET 存储器

测试步骤如下:

  • W5300初始化
  • SOCKET存储器分配
  • 设置MR的MT位
  • 打开SOCKET n
  • SOCKET n存储器测试
  • 关闭SOCKET n
  • 复位MR的MT位

例1) SOCKET 1 TX 存储器测试 16位数据总线宽度 & 直接地址模式。

例2) SOCKET 1 RX存储器测试 8 位数据总线宽度 & 直接地址模式

例3) SOCKET 1 TX 存储器测试 16位数据总线宽度 & 间接地址模式。

例4) SOCKET 1 RX 存储器测试 8位数据总线宽度 & 间接地址模式。

(样例程序见:http://blog.iwiznet.cn/?p=5264

感谢关注!

文章评论0条评论)

登录后参与讨论
我要评论
0
19
关闭 站长推荐上一条 /2 下一条