1.物联网LWIP网络,TCP/IP协议簇
一。TCP/IP协议簇
1.应用层:FTP,HTTP,Telent,DNS,RIP
2.传输层:TCP,UDP
3.网络层:IPV4,IPV6,OSPF,EIGRP
4.数据链路层:Ethernet,FrameRelay,Is-Is
注意:IWIP是完全按照TCP/IP协议来创建
2.OSI七层模型与TCP/IP协议模型

3.通讯过程
应用层:FTP协议
传输层:TCP协议
网络层:IP协议
链路层:以太网驱动程序
4.全双工vs半双工
半双工同时只能一方传输消息,否则冲突
全双工两方可以同时传递消息

5.以太网的帧格式
就是在发送数据时,需要知道目标地址原地址,甚至是哪一个应用程序等这些信息都需要记录。

6.C/S与B/S架构
C/S架构;
百度网盘客户端与服务器端。
B/S架构:
百度网盘网页端与服务器端。
二者的区别:
C/S是直接与服务器端相连,优点是可以传输大容量的文件,缺点是相对于B/S架构来说,需要下载一个客户端不方便。其次是开发软件时需要对不同的操作系统开发,例如Windows,Linux,Android等等,开发困难。
B/S是通过网页连接服务器端,所以容易连接,但是同时有大量的人加入服务器端,信息会难以传递。这也是在百度网盘网页版在下载大容量任务时,会要求用户下载客户端的一个原因。
具体区别如下图:
二。IWIP物理层设计
1.系统连线图

MII:称为m-two
RMII:称为r-m-two
上述两个就是接口,是物理层模块连接stm32的接口
2.MII与RMII

MII为8数据线,6控制线,2时钟线,2PHY线
RMII为4数据线,3控制线,1时钟线,2PHY线
(1)上述接口的解释
MII_TX_CLK:发送数据使用的时钟信号,对于10M位/s的数据传输,此时钟为2.5MHz,对于100M位/s的数据传输,此时钟为25MHz。
MII_RX_CLK:接收数据使用的时钟信号,对于10M位/s的数据传输,此时钟为2.5MHz,对于100M位/s的数据传输,此时钟为25MHz。
MII_TX_EN:传输使能信号,此信号必需与数据前导符的起始位同步出现,并在传输完毕前一直保持。
MII_TXD[3:0]:发送数据线,每次传输4位数据,数据在MII_TX_EN信号有效时有效。MII_TXD[0]是数据的最低位,MII_TXD[3]是最高位。当MII_TX_EN信号无效时,PHY忽略传输的数据。
MII_CRS:载波侦听信号,仅工作在半双工模式下,由PHY控制,当发送或接收的介质非空闲时,使能此信号。 PHY必需保证MII_CRS信号在发生冲突的整个时间段内都保持有效,不需要此信号与发送/接收的时钟同步。
MII_COL:冲突检测信号,仅工作在半双工模式下,由PHY控制,当检测到介质发生冲突时,使能此信号,并且在整个冲突的持续时间内,保持此信号有效。此信号不需要和发送/接收的时钟同步。
MII_RXD[3:0]:接收数据线,每次接收4位数据,数据在MII_RX_DV信号有效时有效。MII_RXD[0]是数据的最低位,MII_RXD[3]是最高位。当MII_RX_EN无效,而MII_RX_ER有效时,MII_RXD[3:0]数据值代表特定的信息
MII_RX_DV:接收数据使能信号,由PHY控制,当PHY准备好数据供MAC接收时,使能该信号。此信号必需和帧数据的首位同步出现,并保持有效直到数据传输完成。在传送最后4位数据后的第一个时钟之前,此信号必需变为无效状态。为了正确的接收一个帧,有效电平不能滞后于数据线上的SFD位出现。
MII_RX_ER:接收出错信号,保持一个或多个时钟周期(MII_RX_CLK)的有效状态,表明MAC在接收过程中检测到错误。具体错误原因需配合MII_RX_DV的状态及MII_RXD[3:0]的数据值。
以下为四种MII接口
(1)一个 25Mhz 外部晶振 MII接口
(2)一个 25Mhz 外部晶振 + 一个50Mhz外部晶振 RMII接口
(3)一个50Mhz外部晶振 RMII接口
(4)一个 25Mhz 外部晶振 RMII接口
3.PHY,称为pai
(1)DP83848CVV功能框图

图的上方interfaces与MII等接口连接,与stm32通信,下方为数据输入输出与外设接口连接。
以下是PHY的一些功能

以下是stm32f407的原理图

以下是stm32f407的网络变压器接口。
一。以太网
1.nc模拟UDP
(1)COMMBOX通信调试工具

(2) 控制台输入nc -u 127.0.0.1 8000,此时串口也可以获得数据


(3)串口调试程序发送字符串,电脑控制台也会展示同样字符串(说明UDP双向通信)

2.nc模拟TCP
(1)串口调试助手创建Socket服务器

(2)相互发送数据
输入: nc 127.0.0.1 8001创建TCP连接(TCP的端口号是8001,UDP端口号设置为8000)

(3)在控制台中按Ctrl+C会导致错误

综上得出结论:
TCP在连接和断开时,会有连接与释放。UDP是无连接的。所以在控制台强制中断连接时(按Ctrl+c),TCP连接的任务发送数据会报错,而UDP的传输任务会继续发送数据,不会管是否有没有对象接受。
相关文章:
1.物联网LWIP网络,TCP/IP协议簇
一。TCP/IP协议簇 1.应用层:FTP,HTTP,Telent,DNS,RIP 2.传输层:TCP,UDP 3.网络层:IPV4,IPV6,OSPF,EIGRP 4.数据链路层:Ethernet&#…...
拷贝公钥文件后,ssh 服务器仍提示输入密码
我们因为工作需要,可能在本地包含多个公私钥对,且每个公私钥对在生成时,指定的邮箱也不相同,所以我们在登录一些机器时,会指定不同的公钥文件,但是,有时候就算我们指定了正确的公钥文件…...
算法|Day45 动态规划13
LeetCode 300.最长递增子序列 题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 题目描述:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除&…...
基于随机森林的手写体数字识别,基于RF的手写体数字识别,基于RF的MNIST数据集分类识别
目录 背影 摘要 随机森林的基本定义 随机森林实现的步骤 基于随机森林的MNIST数据集分类识别 代码下载链接: 随机森林的手写体数字分类识别,随机森林的MNIST手写体数据集分类识别,卷积神经网络的手写体数字识别(代码完整,数据完整)资源-CSDN文库 https://download.csdn.n…...
vite初始化vue3项目(配置自动格式化工具与git提交规范工具)
初始化项目 vite构建vue项目还是比较简单的,简单配置选择一下就行了 初始化命令 npm init vuelatest初始化最新版本vue项目 2. 基本选项含义 Add TypeScript 是否添加TSADD JSX是否支持JSXADD Vue Router是否添加Vue Router路由管理工具ADD Pinia 是否添加pinia…...
leetcode473. 火柴拼正方形(回溯算法-java)
火柴拼正方形 leetcode473 火柴拼正方形题目描述回溯算法 上期经典算法 leetcode473 火柴拼正方形 难度 - 中等 原题链接 - leetcode473 火柴拼正方形 题目描述 你将得到一个整数数组 matchsticks ,其中 matchsticks[i] 是第 i 个火柴棒的长度。你要用 所有的火柴棍…...
git-fatal: No url found for submodule path ‘packages/libary‘ in .gitmodules
文章目录 前言一、git submodule功能使用二、错误信息:三、解决方法:四、.gitmodules配置文件:总结 前言 最近在做vue项目,因为项目比较复杂,把功能拆分成很多子模块,我们使用Git的submodule功能。遇到错误…...
Android开发之性能优化:过渡绘制解决方案
1. 过渡绘制 屏幕上某一像素点在一帧中被重复绘制多次,就是过渡绘制。 下图中多个卡片跌在一起,但是只有第一个卡片是完全可见的。背后的卡片只有部分可见。但是Android系统在绘制时会将下层的卡片进行绘制,接着再将上层的卡片进行绘制。但其…...
Wireshark 抓包过滤命令汇总
Wireshark 抓包过滤命令汇总 Wireshark 是一个强大的网络分析工具,它可以帮助网络管理员和安全专家监控和分析网络流量。通过捕获网络数据包,Wireshark 能够帮助我们识别网络中的问题、瓶颈以及潜在的安全威胁。在使用 Wireshark 进行网络数据包分析时&…...
配资平台app(正规股票配资软件)架构是怎么搭建的?
随着股票市场的发展,越来越多的投资者开始尝试使用股票配资平台进行杠杆炒股,因此,搭建一套稳定、可靠的配资平台app架构显得尤为重要。本文将介绍配资平台app架构设计的关键要素,以及建立一个正规的配资平台app所需考虑的问题。 …...
【实用黑科技】如何 把b站的缓存视频弄到本地——数据恢复软件WinHex 和 音视频转码程序FFmpeg
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:效率…...
神经网络基础-神经网络补充概念-57-多任务学习
概念 多任务学习(Multi-Task Learning,MTL)是一种机器学习方法,旨在同时学习多个相关任务,通过共享特征表示来提高模型的性能。在多任务学习中,不同任务之间可以是相关的,共享的,或…...
CMake教程6:调用lib、dll
之前我们学到了如何编写一个可执行程序和Library,在继续学习之前,需要解释下target,在cmake中我们可以给executable和library设置一个target名字,这样可以方便我们在后续对target进行更加详细的属性设置。 本节我们将学习如何在项…...
行业资讯丨“燃气智慧化”到底是什么?
文章来源:网络 关键词:智慧燃气、智慧燃气场站、设备设施数字化、数字孪生、工业互联网 带你了解燃气信息化 随着科技的不断进步和信息化的快速发展,各行各业都在积极探索如何将技术应用于业务中,以提高效率和服务质量。 燃气…...
angular注入方法providers
在Angular中有很多方式可以将服务类注册到注入器中: Injectable 元数据中的providedIn属性 NgModule 元数据中的 providers属性 Component 元数据中的 providers属性 创建一个文件名叫名 hero.service.ts叫 hero 的服务 hero.service.ts import { Injectable } from angular…...
Git提交规范指南
在开发过程中,Git每次提交代码,都需要写Commit message(提交说明),规范的Commit message有很多好处: 方便快速浏览查找,回溯之前的工作内容可以直接从commit 生成Change log(发布时用于说明版本…...
QT之UDP通信
QT之UDP通信 UDP不分客户端口服务器,只需要使用一个类QUdpSocket QT += core gui networkgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = udp TEMPLATE = app# The following define makes your compiler emit warnings if you use # any feature of Qt …...
一、进入sql环境,以及sql的查询、新建、删除、使用
1、进入sql环境 》》》mysql -u root -p 》》》输入密码 2、sql语言的分类 3、注意事项: 4、基础操作: (1)查询所有数据库: show databases; 运行结果: (2)创建一个新的数据库&…...
向日葵如何截图
场景 向日葵远程时,有时需要截图,但是客户电脑上没有qq、微信等软件提供快捷截图。 怎么办呢? 解决方案 其实向日葵肯定支持这些功能的。 设置 | 热键设置 | 勾选 远控其他设备时,可输入热键进行以下操作。 如果: altq 切换…...
固定资产折旧报表
SELECT * FROM SYS_ORGANIZATION -- OID、OCODE、ONAME、OATTRIBUT、FPC_USE_UNITNAME -- IS_DELETE 0 STATUS 1 SELECT * FROM FA_PROPERTY_CARD -- FPC_MANAGE_UNIT、FPC_ZJLY、FPC_ZJLYNAME、FPC_RESOURCE、FPC_MON_ZJE、FPC_SUMZJ、FPC_J…...
从`find -mtime`到`find -newermt`:Linux文件时间查找的进阶玩法与避坑指南
从find -mtime到find -newermt:Linux文件时间查找的进阶玩法与避坑指南 在Linux系统管理中,文件查找是开发者和运维工程师的日常高频操作。当我们需要追踪最近修改的配置文件、清理过期日志或备份特定时间段的文档时,find命令的时间参数便成为…...
系统发育树可视化终极指南:用TreeViewer轻松创建专业级进化树
系统发育树可视化终极指南:用TreeViewer轻松创建专业级进化树 【免费下载链接】TreeViewer Cross-platform software to draw phylogenetic trees 项目地址: https://gitcode.com/gh_mirrors/tr/TreeViewer 你是否曾为系统发育树的可视化而烦恼?面…...
基于OpenClaw与Binance API的加密货币安全助手:四层架构与实战部署
1. 项目概述:一个为普通人打造的加密资产守护神在加密货币的世界里,技术壁垒和信息不对称就像一道无形的墙,将许多普通人挡在了安全投资的门外。我们见过太多这样的场景:一位想为子女攒点教育金的母亲,因为误点了钓鱼链…...
AI提示词工程:用Claude+Cursor构建高效创意工作流
1. 项目概述:当创意遇上AI,一个提示词库如何改变工作流如果你是一位创意工作者——无论是设计师、插画师、文案策划还是视频创作者,最近几个月,你的工作流里可能多了一个新伙伴:Claude。这个由Anthropic推出的AI助手&a…...
FPGA仿真入门:手把手教你配置Quartus Prime 21.1里的Questa Starter版(附12个月免费许可攻略)
FPGA仿真工具链实战:从Questa Starter许可申请到Quartus Prime深度集成 当数字逻辑设计从纸上谈兵进入硬件实现阶段,仿真验证便成为FPGA开发流程中不可逾越的质量关卡。作为Intel FPGA生态中的黄金搭档,Quartus Prime与Questa的协同工作能帮助…...
Windows热键冲突终极解决方案:3分钟找出占用你快捷键的“小偷“
Windows热键冲突终极解决方案:3分钟找出占用你快捷键的"小偷" 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detect…...
第八部分-企业级实践——36. CI/CD 集成
36. CI/CD 集成 1. CI/CD 概述 CI/CD(持续集成/持续部署)与 Docker 结合,可以实现代码提交后自动构建镜像、测试、部署的完整流程,大幅提升开发效率和发布质量。 ┌──────────────────────────────…...
PowerBI主题模板终极指南:35款可视化模板快速美化报表
PowerBI主题模板终极指南:35款可视化模板快速美化报表 【免费下载链接】PowerBI-ThemeTemplates Snippets for assembling Power BI Themes 项目地址: https://gitcode.com/gh_mirrors/po/PowerBI-ThemeTemplates 还在为PowerBI报表的单调外观而烦恼吗&#…...
Harness层数据清洗自动化
Harness层数据清洗自动化:解放数据团队生产力的核心方案 开篇引子 上周我帮一家年GMV超20亿的电商客户排查数据故障,他们的数仓团队反馈连续3天的用户订单报表交易额比实际支付金额少了1200万,排查了3个小时才定位到根因:新接入的外卖业务系统的订单状态字段新增了枚举值6…...
智能图像去重引擎:解放数字存储空间的完整解决方案
智能图像去重引擎:解放数字存储空间的完整解决方案 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 在数字内容爆炸的时代,重复图片问题已成为技…...





