微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > iEthernet W5200数据手册(版本1.2.4)之:外部接口

iEthernet W5200数据手册(版本1.2.4)之:外部接口

时间:09-18 来源:3721RD 点击:

6 外部接口

W5200与MCU通信接口:快速SPI接口

W5200与以太网PHY通信接口:MII接口

6.1 SPI 接口

串行接口模式只需要4个引脚进行数据通信。这4 个引脚的定义分别为:SCLK、nSCS、

MOSI、MISO。

图 18 SPI接口

6.2 设备操作

主控制器(SPI 的主设备)发出一系列指令控制W5200 的运行。SPI 主设备通过四个信号线与W5200 通信:从设备选择(nSCS)、串行时钟(SCLK)、MOSI(主出从入)和MISO(主入从出)。SPI 协议定义了四种操作模式(模式0、1、2、3),每种模式的差异在于SCLK 时钟极性和阶段,它控制数据在SPI 总线上传输。W5200 工作在SPI 从设备的模式0和3,这是最通用的工作模式。

模式 0 和模式3 的唯一差别在于非工作状态时的时钟SCLK 的极性。在SPI 模式0 和模式3,数据在时钟SCLK 的上升沿锁定,在时钟SCLK 的下降沿输出。

6.3 SPI 主设备操作

1. 配置SPI主设备输入输出方向

2. 将nSCS置高电平(无效)

3. 向SPDR写入目标通信地址(SPI数据寄存器)

4. 向SPDR写入操作码和传输数据长度

5. 向SPDR写入要传输的数据

6. 将nSCS置为低电平 (启动数据传输)

7. 等待接收完成

8. 如果所有数据都传输完成,将nSCS置高电平置回高电平

图 19 W5200 SPI帧格式

图 20 地址和OP/DATA长度时序图

图20所示的是读操作的时序图。通过将nSCS置为低电平启动读操作。接着通过MOSI传输地址、操作码、数据长度,最后传输数据。图19是地址和操作码/数据长度时序图。操作码定义读写操作类型:OP = 0, 启动读操作. 否则, 当OP=1时,启动写操作。 在W5200 SPI模式下提供了字节读操作和多字节读操作。字节读取操作需要4个指令:16位的地址,1位的操作码(0x1),15位的数据长度和8位的数据。否则,只需要处理设置脉冲读取操作的脉冲读取数据指令。这里,我们用数据长度来区分字节读取和脉冲读取操作。如果数据长度为1,则进行字节读操作。否则,当数据长度大于2时,执行脉冲读操作。注意:只有在nSCS下降沿之后,通过将MISO电平拉低选中MISO引脚。

图 21 读时序

写操作

图21所示的是写操作的时序图。通过将nSCS置为低电平启动写操作。接着通过MOSI传输地址、操作码、数据长度,最后传输数据。

在W5200 SPI模式下提供了字节写入操作和脉冲写入操作。字节写入操作需要4个指令:16位的地址,1位的操作码(0x1),15位的数据长度和8位的数据。否则,只需要处理设置脉冲写入操作的脉冲写入数据指令。这里,我们用数据长度来区分字节写入和脉冲写入操作。如果数据长度为1,则进行字节写操作。否则,当数据长度大于2时,执行脉冲写操作。在nSCS下降沿之后,通过将MOSI电平拉低选中MOSI引脚。

图 22 写时序

/* 每8bit数据包写数据的虚拟程序代码 */

#define data_write_command0x80

uint16 addr; //地址: 16bits

int16 data_len; //数据长度 :15bits

uint8 data_buf[];// 数据数组

{

SpiSendData(); //由MCU传送数据到 W5200

ISR_DISABLE();// 禁止中断服务程序

CSoff();// CS=0, SPI 开始

SpiSendData(((addr+idx) & 0xFF00) >> 8);//地址字節 1

SpiSendData((addr+idx) & 0x00FF);//地址字節 2

© Copyright 2011WIZnet Co., Inc. All rights reserved.

74

iEthernetW5200

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top