AC7840x-W5500嵌入式以太网控制器方案简介

描述

《杰发微课堂》今天开讲第六课啦!W5500是一款集成全硬件TCP/IP协议栈的嵌入式以太网控制器,为嵌入式系统提供了更加简易的互联网连接方案。本文将从杰发科技功能安全MCU芯片AC7840x为何适配W5500出发,提供Demo测试、代码适配流程等指导,方便用户开发更加丰富的应用方案。

方案简介

W5500集成了TCP/IP协议栈,10M/100M以太网数据链路层(MAC)及物理层(PHY),用户使用单芯片就能够在应用中拓展网络连接。久经市场考验的WIZnet全硬件TCP/IP协议栈支持TCP,UDP,IPv4,ICMP,ARP,IGMP和PPPoE协议。用户使用W5500时只需简单的Socket编程就能实现以太网应用。与传统软件协议栈不同,W5500内嵌的8个独立硬件 Socket可进行8路独立通信,相互之间通信效率互不影响,可通过W5500片上32K字节的收/发缓存灵活定义每个Socket的大小。         

W5500提供高速标准4线SPI(外设串行接口),速率可达到80MHz,更容易与外设MCU整合,从而能更好地实现高速网络通讯。为减少系统能耗,W5500还提供了网络唤醒模式(WOL)和掉电模式供用户选择使用。

方案主要特性:

支持10M/100M以太网自适应适配;

使用SPI接口,支持mode 0和mode 3;   

SPI速率理论可以达到80MHz,实际可以提供到33.3MHz稳定传输;

支持8路Socket单独通路,具有32K片上缓存。

AC7840x-W5500 Demo测试

1. 接线图

TCP

2. 实物图

TCP

3. W5500通过网线连接路由器,电脑也通过网线或Wifi连接到路由器(确保在同一网段)。

4. 参数配置

打开代码,在main.c的Load_Net_Parameters配置自己的网络参数,网络工具端网络参数需为本地电脑参数,以Demo为例:

Gateway_IP:网关IP               //代码默认 192.168.50.1

Sub_Mask:子网掩码               //代码默认 255.255.255.0

Phy_Addr:物理地址               //代码默认 0cab00:01

IP_Addr:本机IP地址               //代码默认 192.168.50.199

S0_Port:本机断开0端口号 //代码默认 5000

S0_DIP:目的IP                      //代码默认 192.168.50.232

S0_DPort:目的端口               //代码默认 6000

5. TCP客户端测试

5.1 打开网络测试工具,点击创建服务器→设置本机端口→点击确定→启动服务器。  

TCP

TCP

5.2 给开发板上电

5.3 可以看到W5500已经连接上TCP服务器

TCP

5.4 进行数据收发,发送数据,开发板可以收到,并且log打印出来,开发板按下k4,会向TCP服务器发送数据。   

TCP

6. TCP服务器测试

6.1 修改网络参数后(参考步骤4),下载到开发板,并且给开发板上电。

6.2 打开网络工具,创建TCP客户端,点击创建连接→选择类型为TCP,设置目标IP和端口号,点击创建。

TCP

6.3 点击连接,可以看到开发板log连接成功。   

TCP

7. UDP测试

7.1 打开网络工具,创建UDP:点击创建连接→选择类型为UDP,设置目标IP和端口号→点击创建。

TCP

7.2 给开发板上电

7.3 收发数据测试    

TCP

代码适配流程

1. GPIO配置

W5500的RST和INIT引脚,RST是重启的作用,低电平有效,时间大于500us,INIT是中断脚,低电平有效,当W5500有事件发生时,会将INIT脚拉低,提示AC7840x处理事件。

TCP

2. SPI配置

2.1 SPI主设备配置    

TCP

TCP

2.2 SPI读写时序

W5500的帧分为3段:地址段、控制段、数据段。地址段为W5500寄存器或TX/RX内存指定了16位的偏移地址。控制段指定了地址段设定的偏移区域的归属,读/写访问模式以及SPI工作模式(可变长度模式/固定长度模式)。数据段可以设定为任意长度(N-字节,1≤N)或者是固定的长度:1字节,2字节或4字节,如果SPI工作模式设置为可变数据长度模式(VDM),SPI的SCSn信号需要由外部主机通过SPI帧控制。在可变数据长度模式下,SCSn控制SPI帧的开始和停止:SCSn信号拉低(高电平到低电平),即代表W5500的SPI帧开始(地址段);SCSn信号拉高(低电平到高电平),即代表W5500的SPI帧结束(数据段的随机N字节数据结尾)。

SPI数据帧

W5500的SPI数据帧包括了16位地址段的偏移地址,8位控制段和N字节数据段,如下图所示。8位控制段可以通过修改区域选择位(BSB[4:0]),读/写访问模式位(RWB)以及SPI工作模式位(OM[1:0])来重新定义。区域选择位选择了归属于偏移地址的区域。W5500支持数据的连续读/写,其流程为数据从(2/4/N字节连续数据的)偏移地址的基址开始传输,偏移地址会(自增寻址)加1传输接下来的数据。   

TCP

地址段

地址段为W5500的寄存器或TX/RX缓存区指定了16位的偏移地址,这16位偏移地址的值来自于从最高标志位到最低标志位的顺序传输。SPI数据帧的数据段(2/4/N字节)通过偏移地址自增(每传输1字节偏移地址加1)支持连续数据读/写。

控制段

控制段指定了地址段设定的偏移区域的归属,读/写访问模式以及SPI工作模式。具体见W5500数据手册。

向W5500指定寄存器地址发送一个字节数据

TCP

向W5500指定寄存器地址发送n字节数据    

TCP

读取W5500指定寄存器n字节数据

TCP

3. W5500 Socket配置

3.1 配置W5500 MAC地址、网关、IP等网络参数

3.2 配置Socket的读写缓存大小(默认为2K)

3.3 配置Socket收发超时时间和重传次数

3.4 配置对端网络IP、端口号等网络参数

3.5 监听或者连接服务器

4. 中断处理流程

4.1 W5500会拉低INIT IO,抛出中断时间,AC7840x获取中断后,读取SIR寄存器,获取Socket事件号。   

4.2 再根据事件号读取对应Sn_IR,获取事件(如connect/receive/timeout)。

4.3 处理具体事件

TCP

TCP

4.4 中断事件处理    

TCP

更多关于AC7840x适配W5500技术咨询,请联系。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分