DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 891|回复: 0
打印 上一主题 下一主题

[待整理] iEthernet W5200数据手册(版本1.2.4)之:外部接口

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-12 14:31:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-5 14:41 , 耗时 0.097402 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表