STM32以太网通讯设计方案

2023-11-02

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

  1. 网口芯片选型:W5100  w5500 CH9121 DM9000 DM9000AENC28J60LAN91C111RTL8019LAN7820
  2. 韩国WIZnet公司生产的W5300芯片
  3. 很多stm32内部不带以太网,带以太网功能的内部只有以太网mac,没有phy。因此需要外扩以太网芯片。对于不带以太网的stm32,外扩常用的芯片有spi接口的enc28j60和并口的dm9000芯片。对于带以太网的stm32还需要外扩一片phy芯片。
  4. 网卡工作在osi的最后两层,物理层(PHY)和数据链路层(MAC)。
    物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PHY。
    数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。以太网卡中数据链路层的芯片称之为MAC控制器。
  5. 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,寄存器等就能使用了。
  6. 这个要看你使用STM32的那个系列了,STM32F107+DP83848,STM32F103+DM9000 STM32F407+LA8720等等,有很多方案可选的,主要还是看你的需求
  7. STM32的分类有很多的,有的是带MAC的,有的不带的。

不带的可以通过外挂MAC与PHY进行通讯,串行的有W5500,28J60这样,并行的,有DM9000这样的;如果是STM32带MAC,网络外设的,可以只是接一个PHY就可以了,83848就可以的。

    8.SPI方式的W5100  2.SPIENC28J60  3.RMIIDP83848  4.RMIIDM9161  5.FSMCDM9000  直接用RMII+以太网PHY的话,需要自己移植软件协议栈。SPI+W5X00的话,硬件协议栈,通信速率因素主要在SPI。两者比较,前者开发难度相对后者大,开发速度相对后者慢,但是通信速率比后者快。

总结:目前单片机联网方式主要有以下三种:

①单片机自带MAC,需外加PHY(比如DM9162等),单片机需处理TCP/IP协议栈。(也有单片机自带了MAC和PHY,就无需外加芯片了)

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

③普通单片机,外加TCP/IP协议栈芯片(包含MAC+PHY+TCP/IP协议栈)。单片机消耗资源极少,无需详细了解TCP/IP协议栈,开发方便。如W5500,CH9121,CH395

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32以太网通讯设计方案 的相关文章

  • 以字符串形式接收数字(uart)

    我正在尝试通过 uart 接收一个包装为字符串的数字 我发送数字 1000 所以我得到 4 个字节 空字符 但是 当我使用 atoi 将数组转换为数字并将整数与 1000 进行比较时 我并不总是得到正确的数字 这是我用于接收号码的中断处理函
  • 优化 ARM Cortex M3 代码

    我有一个 C 函数 它尝试将帧缓冲区复制到 FSMC RAM 这些函数将游戏循环的帧速率降低至 10FPS 我想知道如何分析反汇编的函数 我应该计算每个指令周期吗 我想知道CPU把时间花在哪里 在哪个部分 我确信该算法也是一个问题 因为它的
  • 139-基于stm32单片机老人居家监护报警系统Proteus仿真+源程序

    资料编号 139 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 MQ4传感器 电位器模拟 MQ2传感器 电位器模拟 蜂鸣器 电机 制作一个基于stm32单片机老人居家监护报警系统Proteus仿真 2 通过MQ2传
  • 138-基于stm32单片机汽车多功能仪表盘显示系统Proteus仿真+源程序

    资料编号 138 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 ds1302时钟 LED灯 蜂鸣器 电位器 制作一个基于stm32单片机汽车多功能仪表盘显示系统Proteus仿真 2 通过DHT1
  • rt-thread studio中新建5.02版本报错

    先吐槽一下 rt thread studio出现BUG真多 好多时间都是在找BUG 但里面用好多控件还是挺好用的 真是又爱又恨 所以一般使用功能不多的话还是用keil多一点 创建5 02版本工程之后直接进行编译 直接会报下面这个错误 资源
  • STM32用一个定时器执行多任务写法

    文章目录 main c include stm32f4xx h uint32 t Power check times 电量检测周期 uint32 t RFID Init Check times RFID检测周期 int main Timer
  • 物联网网关

    物联网网关是 连接物联网设备和互联网的重要桥梁 它负责将物联网设备采集到的数据进行处理 存储和转发 使其能够与云端或其它设备进行通信 物联网网关的作用是实现物联网设备与云端的无缝连接和数据交互 物联网网关功能 数据采集 物联网网关可以从物联
  • 毕业设计 江科大STM32的智能温室控制蓝牙声光报警APP系统设计

    基于STM32的智能温室控制蓝牙声光报警APP系统设计 1 项目简介 1 1 系统构成 1 2 系统功能 2 部分电路设计 2 1 stm32f103c8t6单片机最小系统电路设计 2 2 LCD1602液晶显示电路设计 2 2 风
  • [屏驱相关]【SWM166-SPI-Y1.28C1测评】+ 有点惊艳的开箱

    耳闻华芯微特许久了 看到论坛得评测活动赶紧上了末班车 毕竟对有屏幕得板子也是很喜欢得 京东快递小哥客客气气 微笑着把快递给了我 好评 直接拆了包 在此之前没看过视频号 所以这个圆盘盘得模具还是有点惊喜的 正面照如下 开机有灯光秀 还有动画
  • HAL 锁定和解锁函数如何使用以及为什么?

    我试图理解另一位程序员编写的代码 它使用了I C http en wikipedia org wiki I C2 B2C通信以将数据写入 STM32 微控制器的 EEPROM 一般来说 我理解他的代码是如何工作的 但我不明白他为什么使用HA
  • 在 Atollic TrueStudio、STM32CubeMX 中导入 C 库

    我目前正在开发 STM32F767ZI Nucleo 板和一个小安全芯片 microchip atecc508a 通过 i2c 连接进行连接 该芯片有一个可用的库加密验证库 https github com MicrochipTech cr
  • 最终启动顺序错误 - STM32L476 的 Eclipse System Workbench 调试

    我正在尝试调试和运行 STM32L476 的简单汇编代码 我已经设置了 Eclipse Oxygen 在 Eclipse 中安装了最新版本的 System Workbench 插件并安装了 ST Link 驱动程序 IDE 成功构建了程序
  • STM32的HAL中实现单按、长按和双按功能

    我正在尝试实现单击 双击和长按功能来执行不同的功能 到目前为止 我已经理解了单击和长按的逻辑 但我不知道如何检测双击 至于代码 我使用计数器实现了单击和长按 但代码仅停留在第一个 if 条件上 bool single press false
  • 毕设开题分享 单片机智能教室系统(智能照明+人数统计)

    1 简介 Hi 大家好 今天向大家介绍一个学长做的单片机项目 单片机智能教室系统 智能照明 人数统计 大家可用于 课程设计 或 毕业设计 项目分享 https gitee com feifei1122 simulation project
  • STM32F4XX的12位ADC采集数值超过4096&右对齐模式设置失败

    文章目录 一 前言 二 问题1 数值超过4096 三 问题1的排错过程 四 问题2 右对齐模式设置失败 五 问题2的解决方法 5 1 将ADC ExternalTrigConv设置为0 5 2 使用ADC StructInit 函数 一 前
  • STM32H5 Nucleo-144 board开箱

    文章目录 开发板资料下载 目标 点亮LD1 绿 LD2 黄 和LD3 红 三个LED灯 开箱过程 博主使用的是STM32CubeMX配置生成代码 具体操作如下 打开STM32CubeMX File gt New project 选择开发板型
  • STM32 上的位置无关代码 - 指针

    我已成功在 STM32 上构建并运行位置无关的代码 向量表和 GOT 已修补 一切正常 但我对这样的代码有问题 double myAdd double x return x 0 1 double ptrmyAdd double myAdd
  • 使用 STM32 USB 设备库将闪存作为大容量存储设备

    我的板上有这个闪存IC 它连接到我的STM32F04 ARM处理器 处理器的USB端口可供用户使用 我希望我的闪存在通过 USB 连接到 PC 时被检测为存储设备 作为第一步 我在程序中将 USB 类定义为 MSC 效果很好 因为当我将主板
  • 使用 STM32F0 ADC 单独读取不同的输入

    STM32F072CBU 微控制器 我有多个 ADC 输入 并且希望单独读取它们 STMcubeMX 生成样板代码 假设我希望按顺序读取所有输入 但我无法弄清楚如何纠正这个问题 这篇博文 http blog koepi info 2015
  • 读取STM32 MCU SPI数据寄存器的值

    有很多类似的问题 但似乎没有一个问题完全相同 我正在将 STML4 MCU 连接到 6 轴传感器 LSM6DS3 我已经成功地在 I2C 中实现了所有内容 但想要 SPI 的额外速度 和 DMA 如果我能让这些第一步工作起来的话 因此 第一

随机推荐

  • (四)SQL

    本篇介绍SQL的数据库定义语言DDL 主要有数据库的增删改用 表的增删改查 并且配套有MySQL实操练习 01 数据库的增删查用 1 1 基本语法 查询数据库 SHOW DATABASES 查询所有数据库 SELECT DATABASE 查
  • matlab折线图折点加数值

    1 只显示y轴数值 x 0 8 acc 100 100 100 100 100 99 9 97 45 73 95 39 59 plot x acc LineWidth 1 5 xlabel 噪声等级 FontSize 16 ylabel 聚
  • cmd输出彩色字体(win10 cmd控制台支持ANSI转义序列)

    这是啥 ANSI转义序列是一种带内信号的转义序列标准 用于控制视频文本终端上的光标位置 颜色和其他选项 在文本中嵌入确定的字节序列 大部分以ESC转义字符和 字符开始 终端会把这些字节序列解释为相应的指令 而不是普通的字符编码 ANSI序列
  • CSDN-markdown编辑器使用详细

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中 居左 居右 Sma
  • 网易2018校招编程题集合4

    小易有一个长度为n的整数序列 a 1 a n 然后考虑在一个空序列b上进行n次以下操作 1 将a i放入b序列的末尾 2 逆置b序列 小易需要你计算输出操作n次之后的b序列
  • 登录Windows自动映射磁盘

    最近项目客户要求做一个功能 内容是希望希望用户在登录windows的时候 根据用户自己负责的项目来自动创建网络映射驱动器 用户需要映射磁盘的信息都存在数据库中 经过调查研究 打算使用powershell实现 实现方式大体如下 1 先创建po
  • 一次性解决打日志时的4个重复低效场景(日志脱敏、日期格式化、json序列化)...

    关注公众号 1024个为什么 及时接收最新推送文章 本篇文章是对之前的两篇文章的一个总结 补充 日志里打出来的都是时间戳 教你一行代码搞定它https blog csdn net JiuQianWan article details 127
  • apt-get install

    apt get可以用于运作deb包 例如在Ubuntu系统上对某个软件的管理 安装 apt get install
  • 酒桌上的你是什么样

    好久没写博客了 人是越待着越懒 最近刚刚培养起自己学习的兴趣 上网看看 看到一个关于酒桌的学问 拿来借鉴下 以后用得着啊 第一原则 如果自己不能喝 丫就别开始第一口 自己端着饭碗夹了菜一边吃着去 第二原则 如果确信自己要喝 就别装墨迹 接下
  • uniApp 使用Vuex 出现 Cannot read properties of undefined (reading ‘commit‘)情况

    最近下手uni app 尝鲜 想到vue全家桶的使用 vuex是必不可少的 使用实例使用完按照文档方法使用 发现了一个问题 在调用vue自定义的commit函数是会报错 Cannot read properties of undefined
  • 【计算机视觉

    文章目录 一 前言 二 可以获得什么 三 入门实践 3 1 帮助文档 3 2 安装 3 3 模型的组成 3 4 BERT模型的使用 3 4 1 导入模型 3 4 2 使用模型 3 4 2 1 tokenizer 3 5 model 3 6
  • MySQL读取Binlog日志常见的3种错误

    1 mysqlbinlog ERROR unknown variable default character set utf8mb4 当我们在my cnf中添加default character set utf8mb4选项 那么在mysql
  • Unity 开发总结之VLC Player for Unity插件的使用

    Unity项目开发过程中 视频播放这块是避免不了的重要组成部分 网上也有很多资料做了详细的介绍 但基本都是基于Unity的MovieTexture对象 即要求视频源必须是导入的本地视频文件 如果视频源变为在线视频流如RTSP之类的形式呢 显
  • 全球金融科技百强,神州信息连续两年位列中国上榜企业第一名!

    美国时间10月13日 IDC全球Financial Insights发布2020年全球金融科技大奖 FinTech Rankings百强榜单 神州信息作为金融科技全产业链综合服务商 位列榜单第39位 是百强榜单中排名第一的中国企业 这也是神
  • 关于calloc函数,malloc函数的理解(概念+例题讲解)

    文章目录 引入 calloc函数和malloc函数 两者区别 我的问题 问题解决 总结 引入 我们在牛客网或者 leetcode刷题时经常遇到让你写核心代码的做题模式 作为一个刚开始刷题不久的新人 我在没有学习calloc函数时 遇到了需要
  • 吴恩达 04.卷积神经网络 第一周作业Convolutional Neural Networks: Application

    Convolutional Neural Networks Application Welcome to Course 4 s second assignment In this notebook you will Implement he
  • STM32串口DMA接收数据错位——暴力解决方法

    背景 两片STM32通过串口通信 为了减小CPU负担 采用DMA进行通信 发送端为STM32F103C8T6 接收端为STM32F407VET6 在调试的过程中发现 一直出现数据错位的问题 接收端尝试了串口空闲中断和串口DMA传输完成中断
  • cvday14--模型训练过程

    模型训练的过程其实就是在求 参数 的过程 我们先假定某类 模型 比如决策树模型 然后用 训练集 来训练 学习到对应的最优的 参数 但是问题在于 我们没有办法保证我们假设的那个 模型 是最优的 我们极有可能假设错误对吧 那怎么办呢 有一个简单
  • 【学习排序】 Learning to Rank中Pointwise关于PRank算法源码实现

    最近终于忙完了Learning to Rank的作业 同时也学到了很多东西 我准备写几篇相关的文章简单讲述自己对它的理解和认识 第一篇准备讲述的就是Learning to Rank中Pointwise的认识及PRank算法的实现 主要从以下
  • STM32以太网通讯设计方案

    STM32 网口设计方案 有效信息整理 网口芯片选型 W5100 w5500 CH9121 DM9000 DM9000A ENC28J60 LAN91C111 RTL8019 LAN7820 韩国WIZnet公司生产的W5300芯片 很多s