[转]以太网接口芯片W5300使用说明

原文地址:https://www.cnblogs.com/rouwawa/p/7250859.html

一、芯片简介

引用百度百科对芯片的一个简介,我就不再赘述。

W5300的目标是在高性能的嵌入式领域,如多媒体数据流服务。与WIZnet现有的芯片方案相比较,W5300在内存空间和数据处理能力等方面都有很大的提高。
W5300特别适用于IPTV,IP机顶盒和数字电视等大流量多媒体数据的传输。通过一个集成有TCP/IP协议和10/100M的以太网MAC和PHY的单芯片可以非常简单和快捷地实现Internet连接。
W5300与主机(MCU)采用总线接口。通过直接访问方式或间接访问方式,W5300可以很容易与主机接口,就像访问SRAM存储器。W5300的通信数据可以通过每个端口的TX/RX FIFO寄存器访问。由于这些特性,即使一个初学者也很容易使用W5300实现Internet连接。

应用领域

W5300在很多嵌入式系统中都非常适用,包括:

  • 家庭网络设备:机顶盒,PVR和数字多媒体设备。
  • 串口转以太网:访问控制,LED显示等
  • 并行接口转以太网:POS/微型打印机,复印机
  • USB转以太网:存储设备,网络打印机
  • GPIO转以太网:家庭网络传感器
  • 安防设备:DVR,网络摄像头
  • 工厂和建筑自动化
  • 医疗监控设备
  • 嵌入式服务器

W5300的使用,和我们常用的协议或者控制芯片一样,都是采用总线方式对其寄存器进行配置,从而实现相应的功能。W5300的配置,大致分为三个过程:上电初始化、通用寄存器配置和socket寄存器配置三个过程。

二、上电初始化

上电后,利用\RESET管脚对W5300进行初始化。RESET信号低电平至少持续2us,为了使锁相环逻辑稳定,复位信号恢复高电平后至少等待10ms。

复位完成后,对W5300进行通用寄存器配置。

三、通用寄存器配置

W5300每个通用寄存器的详细说明及每一位代表什么含义,请参见官方手册。采用间接地址配置模式,W5300的基地址是0x08000。在FPGA对其配置时,是从上到下的顺序。

在通用寄存器配置完成之后,实际上嵌入式系统就可以进行物理连接了,当接入PC时,就可以ping通系统,从而验证通用寄存器配置是否成功。

四、Socket寄存器配置

完成W5300初始化以后,W5300可以以TCP、UDP、IPRAW或MACRAW的方式打开Socket发送或接收数据。

在本设计中,W5300工作在TCP服务器模式下。为了实现TCP通信,需要对Socket0(W5300可以支持8个独立socket)进行初始化设置,然后进行侦听设置,完成TCP服务器建立,最后等待建立连接。

通过Socket0模式寄存器S0_MR(P3:P0)和Socket0端口寄存器S0_PORTR分别设置通信协议和本机端口号(在TCP服务器模式,称之为侦听端口号),然后向Socket0控制寄存器S0_CR中写入0x0001执行OPEN命令,执行完OPEN命令后,如果Socket0状态寄存器S0_SSR改变为SOCK_INIT(0x13),则Socket0的初始化设置完成;再向S0_CR中写入0x0002执行侦听命令,若S0_SSR改变为SOCK_LISTEN(0x14),则侦听完成,W5300设置为TCP服务器;最后等待S0_SSR改变为SOCK_ESTABLISHED(0x17),若S0_SSR变为预期值,则建立了Socket0连接,可以进行数据通信。

五、接收数据

当W5300控制器收到接收数据控制命令时,进入接收数据状态。W5300接收数据的程序流程如下图所示。

首先要判断Socket0的RX存储器中是否有接收到的数据,即读取Socket0接收数据报长度寄存器S0_RX_RSR的值,并判断该值是否等于零。如果S0_RX_RSR的值等于零,表示没有数据接收,则继续判断,否则说明Socket0的RX存储器接收到数据,则进入下一步接收数据操作。

当存储器中接收到数据时,要进一步判断Socket0模式寄存器S0_MR的对齐控制位(ALIGN),若S0_MR[8] = 0(0表示没有对齐),则从Socket0的RX_FIFO寄存器S0_RX_FIFOR中读取需要接收的数据字节长度(这样做是由TCP/IP协议数据格式来确定的),否则从S0_RX_RSR中读取数据字节长度。实际上,在对齐的判断过程中,潜在的判断了数据字节是不是偶数,对齐则为偶数(S0_MR[8] = 1)。

得到数据字节长度信息后要将其转换为数据字长度,在TCP通信过程中,当每次收到的数据包的字节数为偶数时,S0_MR[8](ALIGN)为‘1’,删去附在接收数据包中的PACKET-INFO(数据的字节数),可以使读取数据的操作大大增强。如果收到的数据长度字节数为奇数,那么将添加一个哑字节,主机必须首先读取这个哑字节并丢弃它。从PACKET-INFO的字节长度信息可以判断数据包的最后一个字节是否为哑字节。字数作为读取S0_RX_FIFOR中接收内容的循环控制量。注意,字数的大小与数据总线宽度有关,本系统采用16位总线,所以包含2个字节。
最后,要在向S0_CR写入0x0040,执行REVC命令,告知主机W5300已经完成数据的读取。

六、数据发送

当W5300控制器收到发送数据控制命令时,进入发送数据状态。W5300发送数据程序流程如图所示。

首先读取Socket0剩余存储空间寄存器S0_TX_FSR,并判断S0_SSR当前的状态,若既不处于连接状态(SOCK_ESTABLISHED),也没有接收到连接断开请求(SOCK_CLOSE_WAIT),则直接关闭端口。

判断要发送数据的字节长度是否小于发送寄存器剩余空间的大小,如果小于等于剩余空间,则将需要发送数据字通过S0_TX _FIFOR复制到Socket0的TX存储器中,然后再将发送数据字节长度值写入Socket0的写长度寄存器S0_TX_WRSR,告知W5300需要向上位机发送数据的字节数。最后向S0_CR写入0x0020执行SEND命令,W5300收到此命令后对接收到的数据进行协议处理,并发送到网络中。数据发送完成后,Socket0的中断寄存器S0_IR会产生发送完成(SEND_OK)中断(用于检测上一次是否发送完成),中断值为0x0010,软件清除该中断后表示完成一次发送。如果是第一次发送,则不需要检测SEND_OK。

七、其他说明

1、作为客户端

当嵌入式系统作为客户端时,在配置W5300过程中,唯一与服务器模式不同的是,不用配置socket寄存器S0_CR的监听模式,改为配置服务器IP和端口号,然后采用写入连接connect。

2、时钟信号的选择

W5300一般选择内部PHY模式,时钟信号可以由内部振荡器(外接晶振)或外部振荡器产生。我的设计中外部振荡器由FPGA的PLL产生25MHz的时钟。

原文地址:https://www.cnblogs.com/tubujia/p/11077610.html

时间: 2024-10-21 11:07:19

[转]以太网接口芯片W5300使用说明的相关文章

(一)以太网交换机芯片之AR8236

一.概述 AR8236是一个拥有6个端口的千兆以太网交换机芯片,拥有一个高性能查找表可以存储1024个MAC地址,16个VLAN表,QoS:它支持的是IEEE802.3标准,8236支持多种配置方式,我们可以通过EEPROM或者MDC/MDIO接口配置内部寄存器.AR8236在每个帧添加两个字节的头部,我们可以用这个头部去配置交换机寄存器,地址查找表,VLAN,MIB等:PORT0口支持MII-PHY和RMII-PHY两种模式连接到外部的CPU:它内部包含一个1kb的地址查找表,可以通过CPU接

射频识别技术漫谈(20)——RC系列射频接口芯片

目前基于13.56MHz的射频识别技术主要有ISO14443A.ISO14443B.ISO15693和FELICA技术.针对13.56MHz的射频识别技术,NXP开发了一系列名字以RC(Radio Chip)开头的射频接口芯片,包括RC500.RC400.RC530.RC531.RC632等,这些芯片的设计架构.引脚排列.内部寄存器阵列.天线设计等方面基本相同,不同之处主要是与微控制器的接口界面.支持的协议种类等不一样.后来的RC522.PN512也大体继承了同样的设计思路,只是在供电电压和封装

射频识别技术漫谈(29)——射频接口芯片TRF7960

TRF7960系列是TI推出的载波为13.56MHz.支持ISO15693.ISO14443A/B和FeliCa协议的射频接口芯片.许多人更关心它能不能读写MF1卡片,就我的理解及实际验证,由于MF1在卡选择之前的操作是遵守ISO14443A协议的,之后的卡验证和卡数据读写都是NXP自己的保密协议,所以TRF7960可以对MF1卡执行到卡选择操作,或者通俗的说可以读MF1的卡片序列号,但不能对MF1卡读写数据,除非开发者自己知道NXP的加密协议并自己编写代码实现该协议. 在TI官方公开的TRF7

H3C 以太网接口配置IP、静态路由、TELNET配置

MSR36-20_1 1.路由器名称 sysname H3C 2.以太网接口配置IP interfaceGigabitEthernet0/0 ip address 10.0.1.1 255.255.255.0 # interfaceGigabitEthernet0/2 ip address 192.168.1.1 255.255.255.0 3.静态路由 ip route-static192.168.2.0 24 10.0.1.2 或 ip route-static0.0.0.0 0 10.0.

转接口IC ADV7280/ADV7280-M:CVBS转MIPI转接口芯片 10位、4倍过采样标清电视视频解码器,支持去隔行

概述ADV7280/ADV7280-M是功能丰富的单芯片.多格式视频解码器.ADV7280/ADV7280-M可自动检测标准模拟基带视频信号,兼容复合.S视频和分量视频形式的NTSC.PAL和SECAM全球标准信号.ADV7280可将模拟视频信号转换为YCrCb 4:2:2视频数据流,其与8位ITU-R BT.656接口标准兼容.ADV7280-M可将模拟视频信号转换为8位.YCrCb 4:2:2视频数据流,可通过兼容移动工业处理器接口(MIPI?)的CSI-2接口输出.ADV7280/ADV7

(十) 单片机 扩展并行 I/O 接口芯片 8255芯片

1.仿真电路图 2. 讲解分析电路图 你发现了吗? 上面单片机只用到了 P0 口 不是很好吗,省去了 按键 所需要的 8 个 口 我们来讲讲 8255 芯片以及外围电路的扩展 82C55 芯片 ———可编程的通用并行接口电路(3个8位I/O口) D0-D7 :三态双向数据线,与 P0 口 连接, 用来与单片机传送信息 CS : 片选信号 RD :读信号, 低电平有效,用来读出 82C55 端口数据的控制信号 WR :写信号,低电平有效,用来向 82C55 写入端口数据的控制信号 A1,A0 :

以太网接口自动协商原理

自协商基本原理 自动协商模式是端口根据另一端设备的连接速度和双工模式,自动把它的速度调节到最高的公共水平,即线路两端能具有的最快速度和双工模式. 自协商功能允许一个网络设备能够将自己所支持的工作模式信息传达给网络上的对端,并接受对方可能传递过来的相应信息,从而解决双工和10M/100M速率自协商问题.自协商功能完全由物理层芯片设计实现,因此并不使用专用数据包或带来任何高层协议开销. 自协商功能的基本机制是:每个网络设备在上电.管理命令发出.或是用户干预时发出FLP(快速连接脉冲),协商信息封装在

【5000 Stars 福利】微信接口动态 WebApi 使用说明

前言 作为中国 C# 开源项目中 Watch/Star/Fork 最高的项目之一,Senparc.Weixin SDK  凝聚了盛派微信团队持续7年的付出,和大量开发者的无私贡献,以及数万开发者的使用与反馈.为了纪念 Senparc.Weixin SDK 项目突破 5000 Stars 这个小小的里程碑,盛派微信团队为大家准备了一份特殊福利:微信接口动态 WebApi 系统(以下简称“系统”),在此系统中,您可以使用 WebApi 调用 Senparc.Weixin SDK 已经集成的微信高级接

单片机网络开发的一种实现

大家都知道,单片机是嵌入式系统中比较低级的一种微处理器,比较高级的有arm微处理器等.单片机实现网络开发,确实存在一定的难度.首先,实现网络开发必须实现网络协议,最常用的是tcp/ip协议.但是单片机的内存一般就64k.tcp/ip的源代码就要30k左右.嵌入式操作系统需要2k左右的内存.所以内存的使用就显得很拮据了.此外,由于单片机系统本身处理速度的限制,多任务难以实现.那么该如何实现呢?必须得用arm系列的嵌入式吗?本设计方法提出了一套独立于操作系统的解决方案.本系统的处理任务是针对http