WizFi210 SPI-to-WiFi指南

Home / 博客 / WizFi210 SPI-to-WiFi指南

今天给大家介绍的是“串口转WiFi”无线模块 WizFi210 的应用笔记之SPI-to-WiFi指南。本部分内容包括7个部分,分别为SPI接口实例框图、SPI引脚连接、SPI接口详细描述、主机唤醒信号处理、SPI传输数据处理、SPI接收数据处理、连接实例等。希望对大家有帮助!

 

1.  SPI接口实例框图

在SPI接口的情况下,WizFi210运行在从模式与主SPI控制器通信。默认情况下,SPI接口支持时钟极性为0且时钟相位为0的Motorola协议。

因为SPI数据传输工作在全双工模式,需要使用特定的字节(octet)提示空闲数据(idle data)。相似地,如果主MCU在以更高的速率发送数据,需要进行流控制机制。为了使这些特定的控制码(比如空闲模式、流控制码和其他控制字节)与用户数据区别开来,使用字节填充机制。

 

2. SPI引脚连接

 

Host App  (SPI主模式)

WizFi210  (SPI从模式)

注释

MSPI_MISO

SSPI_MISO (27)

SPI 主入/从出

MSPI_CLK

SSPI_CLK (28)

SPI 时钟

MSPI_CS

SSPI_CS (29)

SPI片选

MSPI_MOSI

SSPI_MOSI (30)

SPI 主出/从入

Allocate your GPIO

GPIO#19 (23)

主机唤醒信号

GND

GND

共地

 

 

 

3. SPI接口详细描述

如果需要SPI接口额外任务处理SPI数据传输,SPI数据传输

Ø 只支持Motorola模式

Ø 只支持8位SPI数据字大小。

Ø 默认SPI模式时,选择模式#0 (CPOL =0且CPH=0)

Motorola SPI格式,CPL=0,CPH=0。

 

注意: 在连续的端到端传输的情况下,在每个字节传输过程中必须拉高片选(CS)信号。

 

参数 描述 最小 最大 单位
tSSetup 片选信号下降沿和SPI时钟信号第一次上升沿之间的最小时间

4个核心SPI 时钟周期+ 68 ns

mixed
tTxdDelay 在SPI时钟信号下降沿之后从机asserting TX line的延迟时间,或从片选信号下降沿到第一比特的时间 

4个核心SPI时钟周期+ 68 ns

mixed
tRxdSetup 从接收到的数据准备好到SPI时钟上升沿之间的时间

15

ns
tRxdHold 从SPI时钟上升沿到接收到的数据稳定的时间

3个核心SPI 时钟周期+ 14 ns

mixed
tSSHold 在传输的最后比特的采样沿之后片选信号将被保持的时间 

3个核心SPI 时钟周期+ 14 ns

mixed

 

4. 主机唤醒信号处理

 

主机唤醒信号是高电平有效的信号。主控制器必须给出SPI时钟信号,直到主机唤醒信号是高电平。

不管什么时候WizFi210想发送数据,它将主机唤醒信号拉高。一旦所有数据都从WizFi21发送之后,它又将该信号拉低。

主控制器将删除主机唤醒信号转换(低电平到高电平)作为边缘触发中断并处理进来的数据。

 

5.  SPI传输数据处理

SPI数据传输层利用一字节填充过程。Control Escape字节定义成二进制11111011 (十六进制 0xFB),最高有效位先传输。

每一个特定控制模式由一个2字节的序列代替,该2字节序列由Control Escape字节和原始字节与十六进制0x20的异或(XOR)组成。接收完成必须正确地处理所有Control Escape序列。

Escaped数据按以下所示链接被传输:

模式(pattern

编码

描述

0xFD

0xFB  0xDD

SPI_XON

0xFA

0xFB  0xDA

SPI_XOFF

0xFB

0xFB 0xDB

Control ESCAPE

0xF5

0xFB  0xD5

SPI _IDLE

0xF3

0xFB  0xD3

SPI link ready indication

需要一个被称作主机唤醒(host wake-up)的特定GPIO信号,该信号指示从从模式WizFi210到主模式主机控制器的数据准备好。主模式控制器必去提供时钟知道主机唤醒信号(host wake-up signal)是高电平。主机控制器可以使用GPIO中断(边缘触发,低电平到高电平转变)从WizFi210接收数据。

因为SPI数据传输工作在全双工模式,将在空闲时间(如果没有更多的数据传输)传输特定填充字符(SPI _IDLE)。这些空闲填充块将在接收数据的结尾。

 

6. SPI接收数据处理

 

因为用了字节填充,必须删除每一个ControlEscape字节,且紧接着的下一字节要和十六进制0x20进行异或(XOR)。

 

如果接收缓冲达到上限值 ,SPI_XOFF 字节将被发送以告知主机停止传输实际数据。在接收到SPI_XOFF字符后,主机必须停止传输实际数据。一旦应用开始处理接收到的数据,并有足够的空间用于进一步接收(reached lower water mark),将发送SPI_XON ,然后可以进行有效数据传输。

特定控制字节SPI _IDLE将被接收机扔掉。

 

7. 连接实例

 

n SPI主模式 : W5200E01-M3 (STM32F103C8)

n  SPI 从模式 : WizFi210, 固件版本 1.1.0.2(SPI)

n  PB10:SPI主模式的GPIO,Host Wake-up signal(主机唤醒信号),高电平有效

n  PB11 : 复位WizFi210,控制适配器的使能信号(Enable signal) (可选)

n  SPI Mode 0 (CPOL = 0 且CPHASE = 0)

n  只支持8位SPI数据字大小

n  SPI 时钟频率是200 KHZ(请看 SPI Master的源文件)

n  当处于空闲状态时,WizFi210周期性的发送 <IDLE code(0xF5)> 。

n  在重启以同步SPI接口后,SPI Master需要发送 <IDLE Code> 到WizFi210。

n  当Host Wake-up信号是高电平时,SPI Master需要接收WizFi210发送的数据。

n  通过发送“AT”命令,SPI Master可以检查WizFi210是处于数据模式还是命令模式。

n SPI Master的样本源程序(sample source)应用在以下环境中。

WizFi210 IP: 192.168.88.123 (静态IP)

TCP服务器模式: Port 5000

SSID of AP: WIZ_RED

WPAPassphrase : wiznet0123456

详细信息,请在WIZnet主页中参考SPI Master的源文件。

本份内容就是这些了,多谢关注!