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

admin 发表于 2014-10-12 14:31:00

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

6外部接口
        W5200与MCU通信接口:快速SPI接口
        W5200与以太网PHY通信接口:MII接口
       
        6.1SPI 接口
        串行接口模式只需要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.3SPI 主设备操作
        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
页: [1]
查看完整版本: iEthernet W5200数据手册(版本1.2.4)之:外部接口