目录

  • 前言
  • 实现方式
    • 一、无线网络的实现
    • 二、有线网络的实现
      • 1 通过外接物理层(PHY)芯片的方式接入有线网络
      • 2 通过外接以太网芯片

前言

随着物联网的推进,以及一些特殊应用场合下对网络功能的要求,网络功能在嵌入式设备中已经成为常客。
对于大部分物联网应用场景,网络功能的任务就是实现设备无线接入外网,从而进行数据通讯,无论协议是TCP、UDP、MQTT中的哪一种。
对于一些特殊场合的应用,网络功能的任务是是嵌入式设备通过RJ45网口、光纤接口等有线方式实现局域网内通讯,或者点对点通讯。

实现方式

一、无线网络的实现

物联网方向的应用,大多是基于无线通讯方式。市面上已经有很多芯片、模块可供使用。比如应用在wifi的ESP8266模块、应用在2G/4G的有方N10模块、有方N58模块等,应用示意图如下所示。

以上模块都把TCP、UDP等复杂的协议栈封装在模块中,使用者只需要完成简单配置即可实现TCP、UDP传输。以上模块都是单片机通过AT指令的方式读写模块,从而实现模块配置、状态获取、命令下发,最终实现TCP、UDP等网络通讯。可见,通过外扩模块的方式,单片机只需要使用一个UART串口外设,即可完成物联网通讯,而不必关注网络极其复杂的MAC层、物理层、协议层内容。

二、有线网络的实现

对于有线网络的实现,主要有两种方式:

1 通过外接物理层(PHY)芯片的方式接入有线网络

这个方式的前提是单片机内部有以太网(ETH)外设,内部已经集成了MAC层,如STM32F207、STM32F4系列的大部分芯片。如果是以上芯片,即可通过MII或RMII接口连接外部PHY网络芯片,然后再通过网络变压器或者阻抗匹配网络等接入有线网络。
对于实现TCP、UDP、HTTP等通讯,仅仅完成以上步骤还不够,因为以上过程只完成了MAC层与PHY层的接入,还要移植协议层才能使用TCP、UDP、HTTP等常规协议。幸好有LwIP这个轻量化的协议栈可以移植,并且通过STM32CubeMX可以一键完成移植。

2 通过外接以太网芯片

看了方法1,是不是觉得太麻烦了,我不仅要有集成MAC层的MCU,还要外接PHY物理芯片,关键是还要占用ROM、RAM来完成协议栈程序的移植,不能忍。那么接下来的方法2可能是你的菜。
为了解决单片机接入有线以太网复杂的难题,市面上已经有很多以太网芯片解决方案。如CH395、W5500、DM9051等以太网芯片。他们将MAC层、PHY层、协议栈等统统封装在了芯片内部,使用者只需要通过UART串口或者SPI或者并口的方式与芯片进行通讯,即可完成单片机设备在有线网络中的通讯。
这对于低性能MCU、资源吃紧的MCU来说,无疑是一个极佳的解决方案。

【嵌入式】嵌入式设备实现网络功能——综述相关推荐

  1. NFV(Network Function Virtualizatin)·网络功能虚拟化战略实施

    写在最前面(我怕您吃快餐,看不完):无论是SDN还是NFV都没有改变网络技术,而只是前者换了网络架构,而后者更换了网络实施的形态而已,请广大网络工程师不要妄自菲薄,你们依旧是互联网的缔造者! 学完本课 ...

  2. 嵌入式设备的网络性能该如何分析

    最近对公司的嵌入式设备做了一个网络性能测试,如何确定网络性能的瓶颈在哪里,以及网络性能影响因素有哪些,有些心得记录在此. 一般评判网络性能都是看数据下载上传的速度.现在主流的带宽有2种,100Mbps ...

  3. 嵌入式linux下网卡设备驱动与网络协议栈的设计实现.pdf,嵌入式系统的通用网络驱动模型设计与实现.pdf...

    维普资讯 第3O卷第4期 长春理工大学学报 (自然科学版 ) VO1.3O N0.4 2007年 12月 JournalofChangchunUniversityofScienceandTechnol ...

  4. 为嵌入式linux添加网络功能并用tftp传输文件(以ZYNQ为例)

    在调试V4L2过程中需要用网络传输文件,将添加网络功能的过程记录在此.这里以ZYNQ为例. 首先需要在VIVADO中勾选以太网如下, 注意这里不要忘记勾选MDIO,需要通过这个接口与PHY芯片进行通信 ...

  5. 嵌入式Linux设备驱动程序:编写内核设备驱动程序

    嵌入式Linux设备驱动程序:编写内核设备驱动程序 Embedded Linux device drivers: Writing a kernel device driver 编写内核设备驱动程序 最 ...

  6. linux spidev 应用_嵌入式Linux设备树语法总结

    1 设备树的说明 在写完嵌入式驱动总结后,对于设备树相关的语法和使用一直都想进行系统的描述,但是因为最近比较忙碌,所以一直拖到现在才完成初版,对于整个嵌入式Linux驱动开发中,设备树语法和构建是其中 ...

  7. 嵌入式linux设备驱动程序是,详解嵌入式Linux设备驱动程序

    随着嵌入式技术的发展,随着嵌入式技术的发展,嵌入式系统将广泛地应用于人 类生活的方方面面.如:基于嵌入式工NTERNET网络的地球电子皮肤,可以嵌入到牙齿 上的手机都在研发之中.著名嵌入式系统专家沈绪 ...

  8. 嵌入式Linux设备驱动程序:在运行时读取驱动程序状态

    嵌入式Linux设备驱动程序:在运行时读取驱动程序状态 Embedded Linux device drivers: Reading driver state at runtime 在运行时了解驱动程 ...

  9. 嵌入式Linux设备驱动程序:用户空间中的设备驱动程序

    嵌入式Linux设备驱动程序:用户空间中的设备驱动程序 Embedded Linux device drivers: Device drivers in user space Interfacing ...

最新文章

  1. 【通俗理解线性代数】 -- 特殊的矩阵
  2. 【数据结构】邻接表的储存结构 建立图的邻接表算法
  3. datagrid加checkbox实现分页不丢失选择的记录 (转)
  4. 2021年度人类社会发展十大科学问题发布
  5. tomcat-maven插件热部署(简洁版)
  6. 蔬菜基地售卖系统stage1
  7. 96 年美女胜出!那个有关“猪脸识别”的比赛决出冠军啦
  8. 输入设备名输入输出设备的重定向
  9. String类12个常用的方法
  10. 超级简单的HTML圆形头像css
  11. CentOS7非桌面版关闭休眠和设置关闭盖子不休眠(server)
  12. mbp touchbar设置_Macbook Pro 上 有什么好的 Touchbar 使用技巧?
  13. 关于信息增益(information gain)
  14. C#、NPOI生成Word文档(模板)
  15. 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——1.2 域和计算模型...
  16. 设计模式第10式:状态模式
  17. 五星好评html编写,五星好评.html
  18. matlab 数据透视表,MATLAB | 用行为数据处理EEG数据事件码
  19. 动态规划(DP)01
  20. EXE4J生成的exe文件自动请求管理员权限(UAC)

热门文章

  1. mstsc /admin与mstsc
  2. 我的世界java版区块显示_我的世界手游区块显示指令分享:区块玩法操作详解[多图]...
  3. gif透明背景动画_PS实用技巧——视频转GIF
  4. 万年历java课程设计报告_java《万年历系统》课程设计报告附源码.doc
  5. 心田花开:请重视情商教育的重要性!
  6. 天线学习笔记——波导中微波模式的理解(TE/TM/TEM)
  7. 宇视摄像机存储在SD卡的录像能否在PC上播放
  8. c语言8bit转10bit,8bit、8+2bit和10bit 手机屏幕三种色深你真的能看出来吗?
  9. 数据库系统概论第一章课后习题答案(第5版)
  10. 使用GAE建立免费静态网站