STM32高级物联网通信之以太网通讯

news2025/6/1 18:58:41

目录

以太网通讯基础知识

什么是以太网

互联网和以太网的区别

1)概念与范围

(1)互联网

(2)以太网

2)技术特点

(1)互联网

(2)以太网

3)应用场景

(1)互联网

(2)以太网

以太网的层次

1)物理层

2)数据链路层

OSI 7层模型

TCPIP 4层模型

一些常见的网络协议

1)IP协议

2)TCP协议

3)UDP协议

4)HTTP和HTTPS协议

W5500芯片

W5500芯片介绍

W5500芯片特点

应用目标

接入框图

主控芯片与W5500交互

1)SPI连接

2)固定数据长度模式和可变数据长度模式

3)W5500的内部存储器


以太网通讯基础知识

什么是以太网

以太网(Ethernet)是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问控制的内容。以太网是目前应用最普遍局域网技术,取代了其他局域网标准如令牌环、FDDI(双令牌)和ARCNET(令牌总线)。

名词解释:

令牌环:就是将网络每一个主机进行环形连接,然后让一个令牌在这个环上进行轮询,轮到哪个主机,哪个发送。

以太网的标准拓扑结构总线型拓扑,但目前的快速以太网(100BASE-T、1000BASE-T标准)为了减少冲突,将能提高的网络速度和使用效率最大化,使用交换机(Switch hub)来进行网络连接和组织。如此一来,以太网的拓扑结构就成了星型;但在逻辑上,以太网仍然使用总线型拓扑CSMA/CD(Carrier Sense Multiple Access/Collision Detection,即载波多重存取/碰撞侦测)的总线技术。先监听,等空闲再说,边说变监听,如果产生冲突,立刻停止说。载波就是曼彻斯特编码

拓展:
首先要明白为什么以太网还是总线拓扑结构?

首先要求信号线少和传输距离要长为目的,只能向can通讯一样采用总线传输,但是为了距离要长同样为了解决请求冲突的问题,总线变成了交换机,但是本质还是总线。

什么是曼彻斯提编码以及它的演变?

曼彻斯提编码他是以上升沿和下降沿为0/1做出的编码,因为数据同步的问题,can传输是采用了位时序的方式,之前的串口是用时钟线来解决,而以太网为了上面提到的目的,它只能在数据上下功夫于是就诞生了上升沿和下降沿的方式标识0/1标准曼彻斯特编码)---如果上升沿和下降沿标识1/0那么就是802.3标准的曼彻斯特编码--最后形成的数据就像方波,也就是上面提到的载波,但是又出现了新的问题,就是约定的问题,因为双方都不知道上升沿和下降沿各代表什么0/1还是1/0,于是科学家又想出了逻辑&的问题,就是让当前沿与前面那个沿进行比较如果相异就为1,如果想同就为0。

互联网和以太网的区别

互联网和以太网有以下区别:

1)概念与范围

(1)互联网

互联网是全球范围内由众多计算机网络相互连接而成的庞大网络系统,它连接了世界各地的各种类型的网络和设备,包括企业网络、家庭网络、移动网络等。可以说互联网是一个高度复杂、覆盖全球的网络集合体,其规模巨大,涵盖了无数的网络节点和用户。

互联网的主要功能是实现全球范围内的信息交流、资源共享和通信服务,例如通过电子邮件、网页浏览、在线视频、社交媒体等各种应用,人们可以在不同的地理位置进行沟通、获取信息和开展业务。

(2)以太网

以太网是一种计算机局域网技术,主要用于在相对较小的地理范围内连接多台计算机和设备,如在一个办公室、一栋建筑物或一个校园内。以太网通常由以太网交换机、网络适配器(网卡)、网线等设备组成,通过特定的网络协议实现设备之间的数据传输。

以太网的主要特点是传输速度快、可靠性高、成本相对较低,并且易于安装和管理。它主要用于实现局部范围内的设备互联和资源共享,如文件共享、打印机共享、内部通信等。

2)技术特点

(1)互联网

技术架构复杂,涉及多种网络技术和协议,包括 TCP/IP 协议族、域名系统(DNS)、路由协议等。互联网的网络结构是分布式的,没有一个中央控制机构,各个网络通过路由器等设备相互连接,实现数据的传输和路由选择。

互联网的连接方式多样,可以通过有线连接(如光纤、电缆等)、无线连接(如 Wi-Fi、移动网络等)等多种方式接入。互联网的服务提供商众多,包括电信运营商、互联网服务提供商(ISP)等,用户可以根据自己的需求选择不同的接入方式和服务提供商。

(2)以太网

以太网采用总线型或星型拓扑结构,使用 CSMA/CD(载波监听多路访问 / 冲突检测)或 CSMA/CA(载波监听多路访问 / 冲突避免)等协议来控制网络中的数据传输,以避免数据冲突。以太网的传输介质主要有双绞线、光纤等,不同的传输介质支持不同的传输速度,如 10Mbps、100Mbps、1000Mbps 甚至更高。

以太网的设备连接相对简单,通常通过交换机或集线器将多台设备连接在一起。以太网的管理主要由网络管理员在局部范围内进行,包括网络配置、故障排除等。

3)应用场景

(1)互联网

应用范围广泛,涵盖了全球各个领域,包括商业、教育、科研、娱乐等。人们可以通过互联网进行远程办公、在线学习、电子商务、社交娱乐等各种活动。互联网还为企业提供了广阔的市场和业务拓展空间,通过互联网,企业可以开展全球范围内的业务,与客户、合作伙伴进行交流和合作。

互联网的服务和应用不断创新和发展,如云计算、大数据、人工智能等新兴技术都是基于互联网的发展而产生的。互联网已经成为人们生活和工作中不可或缺的一部分。

(2)以太网

主要应用于企业内部网络、学校、医院、工厂等局部范围内的网络建设。在这些场景中,以太网可以满足内部设备之间的高速数据传输和资源共享需求。例如,企业可以通过以太网建立内部办公网络,实现文件共享、打印机共享、企业资源规划(ERP)系统的应用等。

以太网也可以作为接入互联网的一种方式,通过以太网连接到路由器或调制解调器,再接入互联网服务提供商的网络,从而实现与互联网的连接。

以太网的层次

以太网通常分为两个主要层次:物理层和数据链路层

以太网采用无源的介质,按广播方式传播信息。它规定了物理层和数据链路层协议,规定了物理层和数据链路层的接口以及数据链路层与更高层的接口。

1)物理层

物理层规定了以太网的基本物理属性,如数据编码、时标、电频等。

物理层位于OSI参考模型的最底层,它直接面向实际承担数据传输的物理媒体(即通信通道)。物理层的传输单位为比特(bit),即一个二进制位(“0”或“1”)。实际的比特传输必须依赖于传输设备和物理媒体,但是,物理层不是指具体的物理设备,也不是指信号传输的物理媒体,而是指在物理媒体之上,为上一层(数据链路层)提供一个传输原始比特流的物理连接的接口

2)数据链路层

数据链路层是OSI参考模型中的第二层,介于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源设备网络层转发过来的数据可靠地传输到相邻节点的目的设备网络层。

由于以太网的物理层和数据链路层是相关的,针对物理层的不同工作模式,需要提供特定的数据链路层来访问。这给设计和应用带来了一些不便。

为此,一些组织和厂家提出把数据链路层再进行分层,分为媒体接入控制子层(MAC)和逻辑链路控制子层(LLC)。这样不同的物理层对应不同的MAC子层,LLC子层则可以完全独立。

OSI 7层模型

OSI(Open System Interconnect),即开放式系统互连,一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。ISO为了 使网络应用更为普及,推出了OSI参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。

OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型。

每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI的服务定义详细说明了各层所提供的服务。

TCPIP 4层模型

众所周知,OSI参考模型是学术上和法律上的国际标准,是完整的权威的网络参考模型。而TCP/IP参考模型是事实上的国际标准,即现实生活中被广泛使用的网络参考模型。

OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建力TCP/IP模型。

OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。

OSI是一种理论模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。

一些常见的网络协议

1)IP协议

IP 协议是TCP/IP协议族中最为核心的协议,更确切的说是网络层重要的协议。

IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层——TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是否按顺序发送的或者有没有被破坏,IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。---它不做校验、不做修改

2)TCP协议

为了将IP数据包变成可靠。

TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要通过四次挥手拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。

三次握手(a-》b)

a向b询问:在家吗

b向a回答:在家

a向b回应:好的,我要发数据啦

a向b:发送数据

四次挥手(a-》b)

a向b:我没话说了

b向a:好的我知道了,然后b会发送数据,因为a发完了,b还没发完

b向a:我也没话说了

a向b回应:一个应答:好的,那分手吧!

TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认---(没发一个数据都会有应答)”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度

3)UDP协议

速度要比TCP快。

UDP是面向无连接的通讯协议,UDP数据包括目的端口号源端口号信息,由于通讯不需要连接,所以可以实现广播发送

UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。----视屏流会用到,它只注重流畅性,不在乎缺少帧

UDP与TCP位于同一层,但UDP不管数据包的顺序、错误或重发

4)HTTP和HTTPS协议

HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。

HTTP 是一个基于 TCP/IP 通信协议来传递数据的协议,可传递 HTML 文件、图片文件、查询结果等。

HTTPS 协议是 HyperText Transfer Protocol Secure(超文本传输安全协议)的缩写,是一种通过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包,HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐私与完整性

W5500芯片

要进行通讯,就需要相应的硬件支持。在嵌入式应用领域,应用最广泛的一个以太网芯片就是W5500,素有以太之王的称号。

官方网址:https://www.w5500.com/index.html

W5500芯片介绍

W5500是韩国半导体公司WIZnet提供的一款高性价比的以太网芯片。其全球独一无二的全硬件TCPIP协议栈专利技术,解决了嵌入式以太网的接入问题,简单易用,安全稳定,是物联网设备的首选解决方案。

W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC)及物理层(PHY),使得用户使用单芯片就能够在他们的应用中拓展网络连接。

久经市场考验的WIZnet全硬件TCP/IP协议栈支持TCP、UDP、IPv4、ICMP、ARP、IGMP以及PPPoE协议。W5500内嵌32K字节片上缓存以供以太网包处理。如果你使用W5500,你只需要一些简单的Socket编程就能实现以太网应用。这将会比其他嵌入式以太网方案更加快捷、简便。

用户可以同时使用8个硬件Socket(将protocol协议\IP协议\port端口进行套接)独立通讯。W5500提供了SPI(外设串行接口)从而能够更加容易与外设MCU整合。而且,W5500使用了新的高效SPI协议支持80MHz速率,从而能够更好的实现高速网络通讯。为了减少系统能耗,W5500提供了网络唤醒模式(WOL)掉电模式供客户选择使用。

W5500芯片特点

(1)支持硬件TCP/IP协议:TCP、UDP、ICMP、IPv4、ARP、IGMP、PPPoE。

(2)支持8个独立端口(Socket)同时通讯。

(3)支持掉电模式。

(4)支持网络唤醒。

(5)支持高速串行外设接口(SPI模式0、3)。

(6)内部32K字节收发缓存。

(7)内嵌10BaseT/100BaseTX 以太网物理层(PHY)。

(8)支持自动协商(10/100-Based 全双工/半双工)。

(9)不支持 IP 分片。

(10)3.3V工作电压,I/O 信号口5V耐压。

(11)LED状态显示(全双工/半双工、网络连接、网络速度、活动状态)。

(12)LQFP48无铅封装(7x7mm,间距 0.5mm)

应用目标

W5500适合于以下嵌入式应用:

(1)家庭网络设备:机顶盒、个人录像机、数码媒体适配器。

(2)串行转以太网:门禁控制、LED 显示屏、无线 AP 继电器等。

(3)并行转以太网:POS/微型打印机、复印机。

(4)USB 转以太网:存储设备、网络打印机。

(5)GPIO 转以太网:家庭网络传感器。

(6)安全系统:数字录像机、网络摄像机、信息亭。

(7)工厂和楼宇自动化控制系统。

(8)医疗监测设备。

嵌入式服务器。

接入框图

主控芯片与W5500交互

1)SPI连接

W5500提供了SPI(串行外部接口)作为外设主机接口,有SCSn、SCLK、MOSI、MISO 共4路信号,且作为SPI从机工作。

在W5500中只支持工作模式0和3,在这两种模式下数据总是在SCLK信号的上升沿被锁存,在SCLK信号的下降沿被输出

MOSI和MISO信号无论是接收或发送,均遵从最高标志位(MSB)到最低标志位(LSB)的传输序列。

2)固定数据长度模式和可变数据长度模式

如果SPI工作模式设置为可变数据长度模式(VDM),SPI的SCSn信号需要由外部主机通过SPI帧控制。----通俗的讲:就是spi的可变长通信就是通过使能引脚来控制的。

在可变数据长度模式下,SCSn控制SPI帧的开始和停止:SCSn信号拉低(高电平到低电平),即代表W5500的SPI帧开始(地址段);SCSn信号拉高(低电平到高电平),即代表W5500的 SPI帧结束(数据段的随机N字节数据结尾);

在我们的电路图设计中,SCSn接的是片选信号,所以我们应该选择可变数据长度模式。

3)W5500的内部存储器

(1)1个普通寄存器block:这里配置了W5500的一些基本信息,如网络配置(IP、MAC地址、Socket中断配置等)。

(2)8个Socket寄存器block:这里配置了每个Socket对应的信息,如Socket的模式、命令、状态、中断信息等

(3)8个Socket对应的接收缓冲寄存器block(共16k):初始时每个Socket分配为2k的缓存,用户可以自己重新通过修改相应的配置寄存器进行修改,但是要保证分配给8个Socket的缓冲大小之和不能超过16k,否则会报错。

(4)8个Socket对应的发送缓冲寄存器block(共16k)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2393056.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

历年西安交通大学计算机保研上机真题

2025西安交通大学计算机保研上机真题 2024西安交通大学计算机保研上机真题 2023西安交通大学计算机保研上机真题 在线测评链接:https://pgcode.cn/school 计算圆周率近似值 题目描述 根据公式 π / 4 1 − 1 / 3 1 / 5 − 1 / 7 … \pi / 4 1 - 1/3 1/5 - …

基本数据指针的解读-C++

1、引言 笔者认为对于学习指针要弄清楚如下问题基本可以应付大部分的场景: ① 指针是什么? ② 指针的类型是什么? ③ 指针指向的类型是什么? ④ 指针指向了哪里? 2、如何使用指针 使用时的步骤如下: ① …

基于多模态脑电、音频与视觉信号的情感识别算法【Nature核心期刊,EAV:EEG-音频-视频数据集】

简述 理解情感状态对于开发下一代人机交互界面至关重要。社交互动中的人类行为会引发受感知输入影响的心理生理过程。因此,探索大脑功能与人类行为的努力或将推动具有类人特质人工智能模型的发展。这里原作者推出一个多模态情感数据集,包含42名参与者的3…

【QueryServer】dbeaver使用phoenix连接Hbase(轻客户端方式)

一、轻客户端连接方式 (推荐) 演示无认证配置方式, 有认证填入下方有认证参数即可 1, 新建连接 → Hadoop/大数据 → Apache Phoenix 2, 手动配置QueryServer驱动: 填入: “类名”, “URL模版”(注意区分有无认证), “端口号”, (勾选无认证) 类名: org.apache.phoenix…

[9-1] USART串口协议 江协科技学习笔记(13个知识点)

1 2 3 4全双工就是两个数据线,半双工就是一个数据线 5 6 7 8 9 10 TTL(Transistor-Transistor Logic)电平是一种数字电路中常用的电平标准,它使用晶体管来表示逻辑状态。TTL电平通常指的是5V逻辑电平,其中:…

Oracle基础知识(五)——ROWID ROWNUM

目录 一、ROWID 伪列 二、ROWNUM——限制查询结果集行数 1.ROWNUM使用介绍 2.使用ROWNUM进行分页查询 3.使用ROWNUM查看薪资前五位的员工 4.查询指定条数直接的数据 三、ROWNUM与ROWID不同 一、ROWID 伪列 表中的每一行在数据文件中都有一个物理地址,ROWID…

EMS只是快递那个EMS吗?它跟能源有什么关系?

在刚刚落幕的深圳人工智能终端展上,不少企业展示了与数字能源相关的技术和服务,其中一项关键系统——EMS(Energy Management System,能量管理系统)频频亮相。这个看似低调的名字,实际上正悄然成为未来能源管…

日志技术-LogBack、Logback快速入门、Logback配置文件、Logback日志级别

一. 日志技术 1. 程序中的日志,是用来记录应用程序的运行信息、状态信息、错误信息等。 2. JUL:(java.util.logging)这是JavaSE平台提供的官方日志框架,也被称为JUL。配置相对简单,但不够灵活,性能较差。 3.Logs4j&…

修改Cinnamon主题

~/.themes/Brunnera-Dark/cinnamon/cinnamon.css 1.修改 Tooltip 圆角大小,边框颜色,背景透明度 #Tooltip { border-radius: 10px; color: rgba(255, 255, 255, 0.8); border: 1px solid rgba(255, 255, 255, 0.6); background-color: rgba(0,…

91.评论日记

2025年5月30日20:27:06 AI画减速器图纸? 呜呜为什么读到机械博士毕业了才有啊 | 新迪数字2025新品发布会 | AI工业软件 | 三维CAD | 国产自主_哔哩哔哩_bilibili

HTML5实现简洁的端午节节日网站源码

HTML5实现简洁的端午节节日网站源码 前言一、设计来源1.1 网站首页界面1.2 端午由来界面1.3 节日活动界面1.4 传统美食界面1.5 民俗文化界面1.6 登录界面1.7 注册界面 二、效果和源码2.1 动态效果2.2 源代码 结束语 HTML5实现简洁的端午节节日网站源码,酷炫的大气简…

Window10+ 安装 go环境

一、 下载 golang 源码: 去官网下载: https://go.dev/dl/ ,当前时间(2025-05)最新版本如下: 二、 首先在指定的磁盘下创建几个文件夹 比如在 E盘创建 software 文件夹 E:\SoftWare,然后在创建如下几个文件夹 E:\S…

一、Sqoop历史发展及原理

作者:IvanCodes 日期:2025年5月30日 专栏:Sqoop教程 在大数据时代,数据往往分散存储在各种不同类型的系统中。其中,传统的关系型数据库 (RDBMS) 如 MySQL, Oracle, PostgreSQL 等,仍然承载着大量的关键业务…

React 编译器 RC

🤖 作者简介:水煮白菜王,一位前端劝退师 👻 👀 文章专栏: 前端专栏 ,记录一下平时在博客写作中,总结出的一些开发技巧和知识归纳总结✍。 感谢支持💕💕&#…

关于表连接

目录 1.左连接 2.右连接 3.内连接 4.全外连接 5.笛卡尔积 -- 创建表A CREATE TABLE A(PNO VARCHAR2(10) PRIMARY KEY, PAMT NUMBER, A_DATE DATE);-- 向表A插入数据 INSERT INTO A VALUES (01001, 100, TO_DATE(2005-01-01, YYYY-MM-DD)); INSERT INTO A VALUES (010…

【计算机网络】fork()+exec()创建新进程(僵尸进程及孤儿进程)

文章目录 一、基本概念1. fork() 系统调用2. exec() 系列函数 二、典型使用场景1. 创建子进程执行新程序2. 父子进程执行不同代码 三、核心区别与注意事项四、组合使用技巧1. 重定向子进程的输入/输出2. 创建多级子进程 五、常见问题与解决方案僵尸进程(Zombie Proc…

Word表格怎样插入自动序号或编号

在Word文档中编辑表格时,经常需要为表格添加序号或编号,可以设置为自动序号或编号,当删除行时,编号会自动变化,不用手工再重新编号。如图所示。 序号数据1数据21300300230030033003004300300 一,建立word表…

无人机仿真环境(3维)附项目git链接

项目概述 随着无人机技术在物流、测绘、应急救援等领域的广泛应用,其自主导航、避障算法、路径规划及多机协同等核心技术的研究需求日益迫切。为降低实地测试成本、提高研发效率,本项目旨在构建一个高精度、可扩展的​​无人机三维虚拟仿真环境​​&…

Python 训练营打卡 Day 30-模块和库的导入

模块和库的导入 1.1标准导入 import mathprint("方式1: 使用 import math") print(f"圆周率π的值: {math.pi}") print(f"2的平方根: {math.sqrt(2)}\n") 1.2从库中导入特定项 from math import pi, sqrtprint("方式2:使用 f…

前端实现图片压缩:基于 HTML5 File API 与 Canvas 的完整方案

在 Web 开发中,处理用户上传的图片时,前端压缩可以有效减少服务器压力并提升上传效率。本文将详细讲解如何通过<input type="file">实现图片上传,结合 Canvas 实现图片压缩,并实时展示压缩前后的图片预览和文件大小对比。 一、核心功能架构 我们将实现以…