|
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 |
|