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

目录

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

前言

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

实现方式

一、无线网络的实现

物联网方向的应用,大多是基于无线通讯方式。市面上已经有很多芯片、模块可供使用。比如应用在wifi的ESP8266模块、应用在2G/4G的有方N10模块、有方N58模块等,应用示意图如下所示。
【嵌入式】嵌入式设备实现网络功能——综述_第1张图片

以上模块都把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张图片

2 通过外接以太网芯片

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

你可能感兴趣的:(嵌入式,单片机,以太网,嵌入式,stm32)