《杰发微课堂》开讲丨ac7840x-8846威尼斯

8846威尼斯
新闻中心
洞察最新产品和趋势
《杰发微课堂》开讲丨ac7840x-w5500适配指导文档
2023-11-28 22:14:55 发表于广东
《杰发微课堂》今天开讲第六课啦!是一款集成全硬件tcp/ip协议栈的嵌入式,为嵌入式系统提供了更加简易的互联网连接方案。本文将从杰发科技功能安全mcu芯片ac7840x为何适配w5500出发,提供demo测试、代码适配流程等指导,方便用户开发更加丰富的应用方案。

方案简介


w5500集成了tcp/ip协议栈,10m/100m以太网(mac)及物理层(phy),用户使用单芯片就能够在应用中拓展网络连接。久经市场考验的wiznet全硬件支持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以太网自适应适配;

  • 使用,支持mode 0和mode 3;   

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

  • 支持8路socket单独通路,具有32k片上缓存。

640 (1).png


2. 实物图


640 (2).png

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:物理地址               //代码默认 0c:29:ab:7c:00: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 打开网络测试工具,点击创建服务器→设置本机端口→点击确定→启动服务器。  

20231201-221459.jpg

20231201-221505.jpg

5.2 给开发板上电

5.3 可以看到w5500已经连接上tcp服务器

20231201-221732.jpg

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

20231201-221844.jpg

6. tcp服务器测试

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

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

20231201-221933.jpg


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

20231201-222104.jpg

7. udp测试

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

7.2 给开发板上电

7.3 收发数据测试    

代码适配流程


1. gpio配置

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

2. spi配置

2.1 spi主设备配置    

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传输接下来的数据。   

地址段

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

控制段

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

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

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


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


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 处理具体事件

 4.4 中断事件处理


更多关于ac7840x适配w5500技术咨询,请联系support@autochips.com。

更多资讯
  • 四维图新旗下杰发科技荣膺2023年autosemo创新产品优秀案例
    2024年01月15日
  • 创芯十载:杰发科技汽车芯片全球出货量突破3亿颗 mcu出货量突破5000万颗
    2024年01月22日
  • 评测活动 | 杰发科技mcu ac7840x通用开发板评测报告
    2024年01月12日
  • 2023 披荆斩棘 创芯十年 2024 开启篇章 势如长虹
    2023年12月30日
  • 四维图新旗下杰发科技携手伊世智能,打造智能网联汽车安全生态圈
    2023年12月21日
微信扫一扫 关注该公众号
备案号: 8846威尼斯 copyright © 2019 合肥杰发科技有限公司. all rights reserved.
网站地图