门户网站建设推荐,wordpress回收站+恢复,做网站怎么写预算,番禺人才网账号是什么文章目录 1. 前言2. 相关网络信息2.1 简介2.2 优点2.3 应用 3. WIZnet以太网芯片4. 静态IP网络设置示例讲解以及使用4.1 程序流程图4.2 测试准备4.3 连接方式4.4 相关代码4.5 编译烧录 5. 注意事项6. 相关链接 1. 前言 从本章开始我们将用WIZnet的W5100S/W5500以太网芯片结合RP… 文章目录 1. 前言2. 相关网络信息2.1 简介2.2 优点2.3 应用 3. WIZnet以太网芯片4. 静态IP网络设置示例讲解以及使用4.1 程序流程图4.2 测试准备4.3 连接方式4.4 相关代码4.5 编译烧录 5. 注意事项6. 相关链接 1. 前言 从本章开始我们将用WIZnet的W5100S/W5500以太网芯片结合RP2040树莓派Pico通过简单讲解和演示示例来让大家快速上手且更好应用WIZnet的产品助力快速开发。
2. 相关网络信息
2.1 简介
MAC地址Media Access Control Address MAC地址是网络设备在局域网中的唯一标识它是由6组2个16进制数字组成的48位地址。例如00:0A:95:9D:68:16。MAC地址通常由硬件制造商分配给每个网络接口卡NIC用于在局域网内进行唯一身份识别。MAC地址用于在数据链路层上定义通信并且只能在同一局域网内有效。IP地址Internet Protocol Address IP地址是网络设备在全球互联网中的唯一标识它是由四个0到255之间的数字组成被分为网络部分和主机部分。例如192.168.1.1。IP地址用于在网络层上定义通信并且可以在互联网中的任何位置有效。IP地址分为公网IP和私有IP公网IP在全球范围内唯一私有IP则是在内部网络中使用。子网掩码Subnet Mask 子网掩码是用来划分网络地址和主机地址的。在IPv4中子网掩码通常由连续的1和0组成其中连续的1表示网络部分连续的0表示主机部分。例如常见的子网掩码255.255.255.0表示前三个数字是网络部分即24位最后一个数字是主机部分即8位。子网掩码可以用于判断两个IP地址是否在同一网络中。网关Gateway 网关是连接不同网络的设备它可以将数据从一个网络传输到另一个网络。在一个局域网中网关通常是一个路由器或者一个具有路由功能的交换机。对于每个IP地址都有一个默认网关它是数据包离开当前网络时必须通过的设备。当数据包到达目标网络时目标网络的设备会将数据包发送回原始网络通过原始网络的网关返回原始设备。DNSDomain Name System DNS是域名系统它用于将易于记忆的域名转换为计算机能够理解的IP地址。例如当您在浏览器中键入www.example.com时DNS将把www.example.com这个域名解析为相应的IP地址可能是192.168.1.1或其他。DNS通常由DNS服务器提供可以在公共DNS服务器例如Google的8.8.8.8上设置也可以在私有DNS服务器例如在您自己的网络中运行的服务器上设置。
2.2 优点
方便远程访问由于静态IP地址固定不变因此非常方便进行远程访问。适合服务器静态IP地址适合用于服务器等需要长时间稳定运行的场景。易于管理由于静态IP地址固定不变因此易于管理和维护。
2.3 应用 各大服务器远程办公安全监控VoIP电话和一些IP地址固定不需要频繁变动的场合。
3. WIZnet以太网芯片
WIZnet 主流硬件协议栈以太网芯片参数对比
ModelEmbedded CoreHost I/FTX/RX BufferHW SocketNetwork PerformanceW5100STCP/IPv4 MAC PHY8bit BUS, SPI16KB4Max 25MbpsW6100TCP/IPv4/IPv6, MAC PHY8bit BUS, Fast SPI32KB8Max 25MbpsW5500TCP/IPv4, MAC PHYFast SPI32KB8Max 15Mbps
W5100S/W6100 支持 8bit数据总线接口网络传输速度会优于W5500。W6100 支持IPV6与W5100S 硬件兼容若已使用W5100S的用户需要支持IPv6可以Pin to Pin兼容。W5500 拥有比 W5100S更多的 Socket数量以及发送与接收缓存
4. 静态IP网络设置示例讲解以及使用
4.1 程序流程图 4.2 测试准备
软件
Visual Studio CodeWIZnet UartTool
硬件
W5100SIO模块 RP2040 树莓派Pico开发板 或者 WIZnet W5100S-EVB-Pico开发板Micro USB 接口的数据线TTL 转 USB网线
4.3 连接方式
通过数据线连接PC的USB口主要用于烧录程序也可以虚拟出串口使用通过TTL串口转USB连接UART0 的默认引脚 RP2040 GPIO0UART0 TX ---- USB_TTL_RXRP2040 GPIO1UART0 RX ---- USB_TTL_TX 使用模块连接RP2040进行连线时 RP2040 GPIO 16 ---- W5100S MISORP2040 GPIO 17 ---- W5100S CSRP2040 GPIO 18 ---- W5100S SCKRP2040 GPIO 19 ---- W5100S MOSIRP2040 GPIO 20 ---- W5100S RST 通过网线直接连接PC网口或PC和设备都通过网线连接交换机或路由器LAN口
4.4 相关代码 我们直接打开network_install.c文件路径examples/network_install/network_install.c看下具体实现先是用一个结构体变量初始化我们的网络基本信息分别有MAC地址、IP地址、子网掩码、网关、DNS地址然后又声明了个结构体变量用于回读配置信息并通过串口打印出来方便通过串口看到我们的配置信息是否配置成功了。 主函数即按照我们流程图进行首先系统初始化然后初始化我们的芯片写入配置信息回读并通过串口打印出来然后进行phy链路的检测注意在初始化芯片时已经进行PHY检测这里在配置信息后有进行了一次以保证接下来的测试正常PHY检测异常超时后会报错然后进入while循环阻塞正常的话会打印PHY的工作模式10M/100M、半双工/全双工并提示我们进行PING命令的操作然后进入阻塞整体比较简单如下所示
/* Network information to be configured. */
wiz_NetInfo net_info {.mac {0x00, 0x08, 0xdc, 0x1e, 0xed, 0x2e}, // Configured MAC address.ip {192, 168, 1, 10}, // Configured IP address.sn {255, 255, 255, 0}, // Configured subnet mask.gw {192, 168, 1, 1}, // Configured gateway.dns {8, 8, 8, 8}, // Configured domain address
};/* This parameter is used to receive the configuration information read back. */
wiz_NetInfo get_info;int main()
{uint8_t link_status;wiz_PhyConf phyconf;uint32_t count 0;stdio_init_all(); // Initialize the main control peripheralwizchip_initialize(); // Chip initializationprintf(wiznet chip network install example.\r\n);wizchip_setnetinfo(net_info); // Write configuration informationprint_network_information(get_info); // Read the configuration information and print itdo{link_status wizphy_getphylink();if (link_status PHY_LINK_OFF){count;if (count 10){printf(Link failed of Internal PHY.\r\n);break;}}sleep_ms(500);} while (link_status PHY_LINK_OFF);if (link_status PHY_LINK_ON){wizphy_getphyconf(phyconf);printf(Link OK of Internal PHy.\r\n);printf(the %d Mbtis speed of Internal PHYrn.\r\n, phyconf.speed PHY_SPEED_100 ? 100 : 10);printf(The %s Duplex Mode of the Internal PHy.\r\n, phyconf.duplex PHY_DUPLEX_HALF ? Half-Duplex : Full-Duplex);printf(\r\nTry ping the ip:%d.%d.%d.%d.\r\n, get_info.ip[0], get_info.ip[1], get_info.ip[2], get_info.ip[3]);}else{printf(\r\nPlease check whether the network cable is loose or disconnected.\r\n);}while (true){}
}4.5 编译烧录
编译、生成 点击左边的CMake 找到examples下面的对应工程network_install 点击右边的生成即可开始编译如下图所示
烧录 点击左边的资源管理器编译完成之后会在build文件夹下的examples文件夹里的对应工程文件夹路径build/examples/network_install下面生成.uf2文件这是我们烧录所需要的二进制文件 找到对应工程文件下的对应的network_install.uf2文件 鼠标右击选择在文件资源管理器中显示如下所示 接下来烧录板子通过USB接口用数据线连接电脑后按下boot键后接着按下复位上电进入程序烧录模式 然后可以看到开发板虚拟出来的u盘如果没看到虚拟出来的u盘重试第一步 紧接着将要烧录的.uf2文件拖入复制到虚拟出来的u盘即可完成烧录如下图所示 现象 打开WIZ UartTool选择对应的COM口填入参数波特率1152008位数据位1位停止位无校验位无流控填完参数后点击open打开 按下复位键可以看到回读打印的配置信息等我们按下“Windows R”输入“cmd”打开cmd终端后 根据串口打印的信息使用PING命令来PING下配置的IP可以看到成功PING通的PING回复如下所示 5. 注意事项 静态配置的IP设置应避免IP重复导致IP冲突。 如果采用的是WIZnet的W5500来实现本章的示例我们只需修改两个地方即可
在library/ioLibrary_Driver/Ethernet/下找到wizchip_conf.h这个头文件将WIZCHIP 宏定义修改为W5500在library下找到CMakeLists.txt文件将COMPILE_SEL设置为ON即可OFF为W5100SON为W5500。
6. 相关链接
WIZnet官网
WIZnet官方库链接
本章例程链接
想了解更多评论留言哦