stm32CubeMX HAL W5500芯片介绍 第一章

W5500芯片介绍



简单简绍以太网

以太网是一种局域网(LAN)技术,它定义了一套用于在计算机网络中传输数据的标准。以太网采用了分层的网络模型,这个模型被称为OSI(开放系统互连)参考模型或TCP/IP模型。

以太网分五层:

在以太网中,数据传输被划分为 五个层级 ,这些层级分别是:

  1. 物理层(Physical Layer) :物理层处理网络的物理连接和电信号传输。它定义了电缆、连接器和接口等硬件规范。
  2. 数据链路层(Data LinkLayer):数据链路层负责将原始的物理位流转换成逻辑数据帧,并提供数据帧的传输和错误检测功能。它还处理了数据的访问控制和流量控制。
  3. 网络层(NetworkLayer):网络层负责处理数据的路由和寻址,以便将数据从源主机发送到目标主机。它使用IP地址来标识不同主机之间的唯一性。
  4. 传输层(Transport Layer):传输层提供端到端的数据传输服务。它负责将数据分割成小的数据包,并确保它们按顺序到达目标主机。传输层使用TCP(传输控制协议)或UDP(用户数据报协议)来实现可靠的数据传输。
  5. 应用层(ApplicationLayer):应用层处理特定的应用程序需求,例如电子邮件、文件传输和远程登录等。它定义了不同应用程序之间的通信协议和数据格式。

五个层级共同工作,使得以太网能够实现高效的数据传输和网络通信
数据链路层的一些重要特点和组成部分:

第一层物理层:

  • 以太网物理层是计算机网络中的一层,负责定义传输数据的物理接口和电气特性。它规定了计算机如何通过传输介质(如双绞线或光纤)进行数据通信。以太网物理层使用不同的传输介质和连接方式,例如以太网的标准版本使用双绞线和RJ45连接器。
  • 以太网物理层还规定了数据的编码方式和传输速率。常见的以太网物理层标准包括10BASE-T、100BASE-TX和1000BASE-T,它们分别支持最大传输速率为10
    Mbps、100 Mbps和1000 Mbps。
  • 在物理层中,还有一些重要的技术,如信号调制、解调、时钟同步和电缆布线等。这些技术确保数据能够可靠地传输并正确地被接收。
  • 以太网物理层是计算机网络中非常关键的一部分,它提供了一个可靠的物理连接,使得计算机能够通过网络进行数据交换和通信。

第二层:数据链路层:

  1. 在以太网中,数据被分割成帧(frame)的形式进行传输。每个帧包含了源MAC地址和目标MAC地址,以及实际的数据内容。以太网帧的最大长度为1518字节(包括帧头(14字节)、数据(46-1500字节)和帧尾(4字节))。
  2. 以太网使用MAC地址来标识每个网络接口(网卡),这是一个全球唯一的地址。当数据在局域网中传输时,发送方将数据帧发送到目标MAC地址,接收方则根据自己的MAC地址来接收和处理数据。
  3. 除了以太网协议外,还存在其他链路层协议,如Wi-Fi(无线局域网)、PPP(点对点协议)等,它们在不同的网络环境和场景中发挥作用。

总的来说,以太网数据链路层是一种可靠、高效的局域网技术,广泛应用于各种计算机网络中。它提供了可靠的数据传输和访问控制机制,使得多个设备可以在同一物理介质上共享网络资源。

第三层:网络层:

  1. 网络层的主要功能是在不同的网络节点之间传输数据。它负责将数据包从源主机发送到目标主机,通过路由选择和转发来实现这一功能。网络层使用IP协议(Internet
    Protocol)来定义数据包的格式和传输规则。
  2. 在以太网中,IP数据包被封装在以太网帧中进行传输。以太网帧包含了目标MAC地址、源MAC地址、以太类型和数据等信息。当数据包到达目标主机时,网络层根据目标IP地址将数据包交给上层协议进行处理,例如传输控制协议(TCP)或用户数据报协议(UDP)。
  3. 除了IP协议外,网络层还可以使用其他协议来处理不同的需求,例如Internet Control MessageProtocol(ICMP)用于网络故障诊断和错误报告,Internet Group Management Protocol(IGMP)用于多播组管理等。

总结来说,以太网的网络层使用IP协议来实现数据包的传输和路由选择,确保数据能够在不同的网络节点之间正确地到达目标主机。

第四层:传输层:

  1. 以太网是一种常用的局域网技术,它定义了物理层和数据链路层的规范,但并没有直接定义传输层协议。传输层位于网络协议栈的第四层,负责在网络中的不同主机之间提供端到端的可靠数据传输。
  2. 在以太网中,数据链路层使用MAC地址来标识网络设备。当数据从源主机发送到目标主机时,数据链路层将数据帧进行分组,并使用目标主机的MAC地址来进行寻址和路由。
  3. 传输层协议负责在网络中的不同主机之间建立连接、传输数据和终止连接。常用的传输层协议包括TCP(传输控制协议)和UDP(用户数据报协议)。
  4. TCP是一种面向连接的可靠传输协议,提供数据包的可靠传输、流量控制、拥塞控制等功能。TCP使用端口号来标识不同的应用程序,并通过序号和确认机制来确保数据的可靠性。
  5. UDP是一种无连接的传输协议,提供简单的数据报传输服务,不提供可靠性保证。UDP适用于对传输延迟要求较低、对可靠性要求较低的应用场景,如实时音视频传输、DNS等。

总之,以太网传输层并不直接定义传输层协议,而是提供了物理层和数据链路层的规范,传输层协议如TCP和UDP则负责在以太网中的主机之间进行可靠的数据传输。

第五层:应用层:

  • 以太网应用层是计算机网络中的一层,它负责处理网络通信中的应用程序和网络服务之间的交互。在以太网协议栈中,应用层位于顶层,负责提供各种应用程序所需的功能和服务。
  • 在以太网应用层中,常见的协议包括HTTP、FTP、DNS、SMTP等。这些协议定义了不同应用程序之间的通信规则和数据格式。通过这些协议,应用程序可以进行数据传输、文件传输、网页浏览、电子邮件发送等操作。

以太网应用层的主要功能包括:

  1. 数据传输:提供可靠的数据传输服务,确保数据从源地址传输到目的地址。
  2. 用户认证和授权:提供用户身份认证和权限管理,确保只有授权用户可以访问特定资源。
  3. 数据加密和解密:通过加密技术保护数据的机密性,确保数据在传输过程中不被窃取或篡改。
  4. 错误检测和纠正:检测并纠正传输过程中可能发生的错误,确保数据的完整性和准确性。
  5. 网络服务发现:提供服务发现功能,使应用程序能够找到并使用网络中可用的服务

总之,以太网应用层为应用程序提供了各种功能和服务,使得应用程序能够在计算机网络中进行数据传输和交互。

以太网数据帧整体结构:

以太网数据帧是在以太网协议中用于在局域网中传输数据的基本单位。它的整体结构如下:

  1. 前导码(Preamble):8个字节的前导码,全为1,用于同步接收方的时钟。
  2. 帧起始定界符(Start Frame Delimiter,SFD):1个字节,标志着数据帧的开始,为固定值10101011。
  3. 目标MAC地址(Destination MAC Address):6个字节,指定数据帧的目标设备的物理地址。
  4. 源MAC地址(Source MAC Address):6个字节,指定数据帧的发送设备的物理地址。
  5. 长度/类型字段(Length/Type):2个字节,指定数据部分的长度或指定使用的上层协议类型。
  6. 数据部分(Data):46~1500个字节,包含待传输的实际数据。
  7. 帧校验序列(Frame Check Sequence,FCS):4个字节,用于对数据帧进行错误检测,采用循环冗余校验(CRC)算法。

整个以太网数据帧的长度为64~1518个字节。这是以太网的基本帧结构,不同类型的以太网协议可能会有一些额外的字段。


一,以太网硬件方案设计

第一种单片机处理TCP/IP协议栈的:
①单片机自带MAC,需外加PHY(比如DM9162等),单片机需处理TCP/IP协议栈。(也有单片机自带了MAC和PHY,就无需外加芯片了)
在这里插入图片描述

②单片机未带MAC功能,需外加网络接口芯片(包含MAC和PHY,比如DM9000、ENC28J60等),需单片机处理TCP/IP协议栈
在这里插入图片描述

第二种不需要单片机除了TCP/IP的:
③普通单片机,外加TCP/IP协议栈芯片(包含MAC+PHY+TCP/IP协议栈)。单片机消耗资源极少,无需详细了解TCP/IP协议栈,开发方便。如W5500,CH9121,CH395
在这里插入图片描述
缺点:硬件化的协议栈相对来说失去了软件协议栈那样的灵活性。 目前只支持 4 个/8 个 Socket,不能随时开启更多 Socket。但是,在嵌入式应用中 8 个 Socket 已经很足够开发者使用

二、芯片选型比较

STM32+网口设计方案(有效信息整理):

  • 网口芯片选型:W5100 w5500 CH9121
    DM9000,DM9000A、ENC28J60LAN91C111、RTL8019,LAN7820韩国WIZnet公司生产的W5300芯片

很多stm32内部不带以太网,带以太网功能的内部只有以太网mac,没有phy。因此需要外扩以太网芯片。对于不带以太网的stm32,外扩常用的芯片有spi接口的enc28j60和并口的dm9000芯片。对于带以太网的stm32还需要外扩一片phy芯片。

PHY和MAC

网卡工作在osi的最后两层,物理层(PHY)和数据链路层(MAC)。

  • 物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PHY
  • 数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。以太网卡中数据链路层的芯片称之为MAC控制器。

芯片选型:

  • DP83848:物理层(PHY),跟MII接口。
  • DM9000:物理层(PHY)和数据链路层(MAC)。跟8/16/32总线接口 enc28j60:MAC+PHY(10M Base T)。
  • spi接口w5100:硬件TCP/IP协议栈+MAC+PHY(10/100M Base T)。
  • 并行总线接口 RLD8019:和w5100类似,比较老。

举个例子:
W5100里面用硬件逻辑电路实现了TCP/IP的协议栈结构,不需要向ENC28J60这样的网络控制器那样还需要一个资源较大的MCU跑软件协议栈。你直接把W5100当外部RAM使用,MCU初始化一下I/O,寄存器等就能使用了。
这个要看你使用STM32的那个系列了,STM32F107+DP83848,STM32F103+DM9000 STM32F407+LA8720等等,有很多方案可选的,主要还是看你的需求
STM32的分类有很多的,有的是带MAC的,有的不带的。
————————————————
版权声明:本文为CSDN博主「嵌入式程序员Alpha」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wangjingnbamvp/article/details/102743210

三,W5500芯片功能介绍

W5500是一款由韩国WIZnet公司开发的嵌入式以太网控制器芯片。它采用硬件TCP/IP协议栈,可用于各种物联网和网络通信应用。W5500支持10/100以太网速率,并提供SPI接口与主控器连接。它具有低功耗、高性能和易于集成等特点,广泛应用于物联网设备、工业自动化、家庭自动化、网络摄像头等领域。

W5500的物理属性和功能属性:

  • 支持TCP/IP、UDP、IPv4、ARP、ICMP、IGMP等网络协议;
  • 提供8K字节的内部RAM,用于数据缓存和协议处理;
  • 集成10/100M自适应以太网PHY,支持全双工和半双工模式;
  • 支持8个独立的Socket连接,可同时处理多个网络连接;
  • 内置硬件加速引擎,提高数据传输效率;
  • 支持自动重传、自动流量控制等功能,确保数据传输的可靠性和稳定性;
  • 灵活的配置选项,可根据应用需求进行定制。
  • 总的来说,W5500是一款功能强大的以太网控制器芯片,提供了方便快捷的网络通信解决方案,适用于各种嵌入式系统和物联网设备。

w5500支持的协议有:

TCP Server/Client 示例 :

  • 1.聊天应用:TCP协议非常适合实现聊天应用。通过TCP连接,客户端和服务器可以实时交换消息并保持持久连接。
  • 2.文件传输应用:TCP协议可以在客户端和服务器之间高效地传输文件。客户端可以将文件拆分为数据包,并通过TCP连接逐个发送给服务器。服务器可以接收这些数据包并重新组装文件。
  • 3.远程桌面应用:通过TCP连接,客户端可以远程控制服务器上的桌面。客户端发送用户输入事件和屏幕更新给服务器,服务器将这些操作反映在远程桌面上并将屏幕图像发送回客户端。
  • 4.游戏服务器:许多在线游戏使用TCP协议进行通信。服务器负责接收和处理客户端的游戏指令,然后将游戏状态更新发送给所有连接的客户端。
  • 5.邮件传输代理:电子邮件系统通常使用SMTP(简单邮件传输协议)来发送邮件。SMTP是基于TCP的协议,它通过建立与邮件服务器的TCP连接来传输邮件。

UDP 示例:

  • 1.DNS(域名系统):DNS使用UDP进行域名解析服务。客户端向DNS服务器发送请求,服务器返回相应的IP地址,这种查询通常使用UDP协议进行。
  • 2.实时游戏:很多实时多人游戏使用UDP协议来提供快速和低延迟的数据传输。UDP的无连接特性使得游戏服务器可以同时处理大量的快速数据包。
  • 3.视频和音频流传输:实时视频和音频流通常使用UDP协议传输数据。由于UDP的速度较快,可以提供更好的实时体验。例如,IP电话和视频会议系统都可以使用UDP来传输数据。
  • 4.广播和多播:UDP支持广播和多播功能,可以同时向多个接收者发送数据。广播用于在局域网中向所有主机发送消息,而多播用于向特定组的主机发送消息。
  • 需要注意的是,由于UDP的不可靠性,应用程序需要自行处理丢失、重复和乱序等问题。如果可靠性和顺序传输对应用程序非常重要,那么应该考虑使用TCP(传输控制协议)作为替代。

DHCP 示例:

  • 1.办公室网络:在一个办公室网络中,DHCP服务器可以自动分配IP地址给连接到网络的计算机、打印机和其他设备。这样,网络管理员就不需要手动为每个设备配置IP地址,减轻了管理工作量。

  • 2.家庭网络:在家庭网络中,DHCP可以为家庭成员使用的设备提供自动IP地址分配。这样,家庭成员无需手动配置IP地址,可以轻松地连接到家庭网络和互联网。

  • 3.公共Wi-Fi热点:在一个公共场所提供的Wi-Fi热点中,DHCP服务器可以为连接到热点的用户设备分配临时IP地址。这样,用户可以快速连接到热点并访问互联网,而无需手动配置网络参数。

  • 4.移动网络:在移动网络中,DHCP可以用于为移动设备(如智能手机、平板电脑)提供IP地址和其他网络参数。当设备连接到不同的网络时,DHCP服务器可以自动为其分配相应的参数,实现无缝切换和连接。

总的来说,DHCP的应用可以简化网络管理和配置过程,提高网络的易用性和灵活性。它广泛应用于各种网络环境,包括家庭、企业、学校、公共场所等。

DNS 应用示例:

  • 1.网站访问:当用户在浏览器中键入一个网址时,DNS系统会将该域名转换为相应的IP地址,使用户能够访问并浏览网站。
  • 2.电子邮件交付:当发送电子邮件时,SMTP(Simple Mail Transfer Protocol)服务器使用DNS来找到接收方的邮件服务器。DNS帮助确定目标电子邮件服务器的IP地址,以便成功传递邮件。
  • 3.负载均衡:大型网站通常在多个服务器上托管其内容。DNS通过负载均衡技术,将用户的请求分发到最合适的服务器上,以提高网站性能和可靠性。
  • 4.域名注册和管理:DNS还用于管理域名的注册和配置。域名注册商使用DNS来存储和管理域名相关信息,例如域名所有者、DNS服务器配置等。
  • 5.防止网络攻击:DNS也可以用于防止网络攻击,例如DDoS(分布式拒绝服务)攻击。通过使用防火墙和流量管理工具,DNS可以检测和拦截恶意流量,保护网络安全。
  • 这些只是DNS的一些应用示例,实际上,DNS在互联网中扮演着至关重要的角色,为用户提供高效、可靠的网络服务。

SMTP 应用示例

  • 1.发送电子邮件:SMTP最常见的用途是发送电子邮件。通过SMTP服务器,您可以将电子邮件从您的电子邮件客户端发送到接收者的邮箱。您需要提供SMTP服务器地址、端口号、用户名和密码来进行身份验证。
  • 2.自动化通知:许多应用程序和服务使用SMTP来发送自动化通知和警报。例如,当用户注册账户、重置密码或在应用程序中执行某些操作时,系统可以通过SMTP发送电子邮件通知用户。
  • 3.邮件列表管理:如果您管理一个邮件列表,您可以使用SMTP来发送批量电子邮件给订阅者。您可以将邮件列表与SMTP服务器集成,以便轻松地向订阅者发送新闻简报、促销信息等。
  • 4.邮件服务器之间的转发:SMTP还用于不同邮件服务器之间的转发。当您发送电子邮件时,您的SMTP服务器可能会将邮件转发给目标服务器,直到它到达收件人的邮箱。
  • 这些只是SMTP的一些常见应用示例,它在电子邮件通信中扮演着重要角色。

HTTP Server/Client 应用示例

  • 1.Web服务器:如Apache、Nginx等,它们提供了处理HTTP请求和响应的功能,用于托管和提供网站内容。
  • 2.RESTful API服务器:许多Web应用程序使用HTTP作为通信协议,提供API供客户端访问和操作数据。***传输,类似于FTP。例如,FileZilla服务器使用HTTP协议来提供文件上传和下载服务。
  • 3.邮件客户端:许多邮件客户端使用HTTP协议来访问邮件服务器。例如,Outlook Web App (OWA) 允许用户通过浏览器访问和发送电子邮件。
  • 4.网络爬虫:网络爬虫可以使用HTTP协议来获取网页内容。例如,爬取数据的Python库Scrapy使用HTTP请求来下载网页并提取所需的信息。
    这些只是HTTP Server/Client应用的一些例子,实际上HTTP协议在互联网应用中有着广泛的应用。

NetBIOS 应用示例

  • 1.文件和打印共享:NetBIOS可以用于实现文件和打印机共享。通过NetBIOS,计算机可以在局域网中共享文件夹和打印机,使其他计算机可以访问和使用这些资源。
  • 2.远程访问服务:NetBIOS可以用于远程访问服务,允许用户通过网络远程连接到其他计算机,并在远程计算机上执行任务。这种服务可以用于远程管理、远程协助和远程桌面等应用。
  • 3.电子邮件和消息传递:NetBIOS可以用于实现基于局域网的电子邮件和消息传递系统。通过NetBIOS,用户可以在局域网内发送和接收电子邮件、即时消息和广播消息。
  • 4…数据库访问:NetBIOS可以用于实现数据库访问。通过NetBIOS,应用程序可以通过网络连接到数据库服务器,并执行数据库操作,如查询、插入、更新和删除数据。
  • 5.远程过程调用(RPC):NetBIOS可以用于实现远程过程调用,使应用程序能够在不同的计算机上调用和执行远程程序。这种技术常用于分布式系统和客户端-服务器应用。
  • 需要注意的是,随着网络技术的发展,NetBIOS的使用逐渐减少,被更现代的网络协议和应用所替代。然而,在一些老旧的局域网环境中,仍然可能会使用NetBIOS来支持一些特定的应用。

NTP 应用示例:

  • 1.时间同步:NTP 最常见的用途是确保计算机和其他网络设备的时钟保持同步。在计算机网络中,各个设备可能存在时钟漂移或者时钟不准确的情况,使用 NTP 可以通过网络连接到时间服务器,获取准确的时间戳,并调整本地时钟以保持同步。
  • 2.计时服务:许多应用程序和服务需要准确的时间信息,例如系统日志记录、安全证书验证、交易时间戳等。通过使用 NTP,这些应用程序可以从时间服务器获取准确的时间戳,确保操作的准确性和可追溯性。
  • 3.时间戳记录:一些应用需要对事件进行时间戳记录,以便后续分析和审计。NTP
    可以提供高精度的时间戳,帮助应用程序记录事件的发生时间,方便后续分析和调查。
  • 4.定时任务:在分布式系统中,可能存在需要在特定时间执行任务的需求。通过使用
    NTP,可以确保各个节点在指定的时间点执行任务,从而协调分布式系统的操作。
  • 这些只是 NTP 的一些应用示例,实际上,NTP 还可以用于时间戳验证、时钟校准和时间敏感应用等领域。总之,NTP
    提供了一种可靠的方式来获取准确的时间信息,并在网络中同步和分发时间。

PING 应用示例:

  • 1.网络故障排除:PING命令可用于识别网络中的故障点。通过向特定IP地址发送PING请求,并根据响应时间和丢包率来判断网络连接的稳定性和响应性。
  • 2.网络监控:PING命令可用于监控服务器或设备的连通性。通过定期PING目标设备,可以检测其是否在线,并及时发现可能的网络问题。
  • 3.网络质量评估:PING命令的响应时间可以用于评估网络的质量。通过对多个服务器进行PING测试,并比较其响应时间,可以确定网络延迟较高的区域或服务器。
  • 4.速度测试:PING命令还可用于测试网络速度。通过向具有不同延迟和带宽的服务器发送PING请求,并记录响应时间,可以评估网络的实际速度。

需要注意的是,PING命令在一些情况下可能被防火墙或路由器过滤或禁止,因此在使用PING应用时要注意相关限制。

总结

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值