2026 / 08 / 26
一文认识嵌入式网络通信:lwIP与瑞萨RA MCU

一、前言
  一个基础的嵌入式系统往往是一个相对封闭的系统。
  例如一台温控设备可以在本地读取温度、控制风扇,并通过屏幕显示结果。工作人员需要查看设备状态时,可以直接观察屏幕,也可以用串口连接电脑读取数据。
  这种方式简单、可靠,在很多场景下也已完全够用。但是,当设备数量增加、安装位置分散或管理要求提高后,完全依赖本地操作就会带来一些问题。
  我们分别来看以下一些场景:
    1
、设备数量增加
  如果如果现场只有一台设备,使用串口连接电脑并不困难。但如果一个工厂中有几十台甚至几百台设备,逐台连接和检查的效率就会非常低。
  但是当设备接入网络后,通过交换机连接到统一的管理服务器后,就可以由服务器集中采集状态和下发命令。
    2.
设备距离管理人员越来越远
  有些设备安装在机房、楼顶、生产线内部或者其他城市。维护人员不可能每次都到现场读取数据和修改参数。接入局域网或互联网后,设备就可以被远程访问和维护
    3
、产品化需求
  传统串口通信需要开发专用上位机并定义自己的数据格式。但是IP网络通信可以使用HTTPMQTT等通用方式与云平台对接。
  除此之外,传统设备的软件升级需要工作人员拆开外壳链接调试器更新程序,而网络通信则为远程日志、故障诊断与OTA固件升级提供了数据通道。

  

  因此,在嵌入式开发中,网络通信最初就是为了让设备具备更远的远程连接、集中管理和标准化接入能力。
  在物联网时代与早期AI时代的发展中,终端设备就通过网络将图像、声音和传感器等信息上传云端,由服务器完成模型推理和分析。
  当然,在现在随着芯片算力提升和模型轻量化,AI任务逐渐向设备端下沉,AI可以在本地就完成识别和判断。实现边缘设备负责实时感知和本地决策、云端负责模型训连与集中管理,网络承担结果上传、模型更新和云边协同的AIOT系统。
  因此网络通信的重要性不言而喻。
二、什么是网络通信
  正如前文所说,网络通信最开始大多应用于解决多设备、远距离与一些相关产品化需求。因此网络通信也可以简单理解为:
  多台设备通过有线或无线方式接入同一个网络,并按照共同认可的通信规则发送和接收数据。
  为了达成这个最终目标,开发者要解决这样一些问题:如何识别不同设备、如何确定数据应该发到哪里、数据如何跨越交换器和路由器、大数据传输、数据丢失/错误处理等等。
  因此,为了统一解决这些问题,开发者就制定了一套通用的网络规则叫做TCP/IP协议族,我们常说的网络接入层、网络层、传输层和应用层正是对常见TCP/IP协议的解读。我们一起来看一看:
  首先是网络接入层,这一部分严格意义来说不属于TCP/IP协议,它决定的是数据通过什么介质进行传输,我们常说的WIFI、以太网就属于这一类。
  其次就是网络层,网络层解决的是设备识别、确定数据发往哪里的问题,典型协议就是IP协议IP协议通过IP地址识别不同的目标设备,并处理不同网络之间的数据传输。
  然后就是传输层,作用和它的名字一样,解决数据怎么传输以及传输过程会出现的各种问题。典型协议就是TCP协议和UDP协议,二者的区别是TCP协议建立的是可靠连接,会对数据进行排序并在必要时重新发送丢失的数据,因此非常适合用在对数据传输正确性有严格要求的场景比如OTA固件升级。而UDP则更关注实时性,允许少量数据丢失也没有关系,比如实时音频和视频传输这种情况。
  最后就是应用层,应用层负责解决双方具体交换什么内容,常见协议有MQTTHTTPModbus TCP等等。
               
  这里我们来举个例子,假设一台嵌入式设备提供了网页配置功能,用户在浏览器中输入了该设备的IP地址,那么背后的逻辑就是这样的:

  • 嵌入式设备接入以太网或WIFI获得一个IP地址;
  • 浏览器根据IP地址找到目标设备;
  • TCP在浏览器与设备之间建立可靠连接;
  • 最后HTTP解决浏览器如何请求页面以及设备如何返回页面

  整个通信过程就是:HTTP → TCP → IP → 以太网或Wi-Fi
  设备接收数据时,就按照相反的顺序进行解析。
  这样一来,每个层次只需要解决自己负责的问题:以太网和Wi-Fi负责传输,IP负责寻址,TCP负责可靠连接,HTTP负责网页内容。
三、MCU如何实现TCP/IP网络通信
  在嵌入式系统中。实现TCP/IP网络通信主要有一下几种方案。
    1
、使用硬件TCP/IP芯片
  以W5500为代表的网络芯片在芯片内部实现了常用的TCP/IP功能。MCU可以通过SPI等接口控制芯片、建立连接并收发数据,这种方法最传统,MCU不需要运行完整的TCP/IP协议栈,相应的对MCUFLash/RAM等资源/性能的要求也较低,但是局限也很明显就是功能较为固定,需要增加外部芯片和PCB空间,后续拓展功能会受到硬件能力的限制。所以这种方案适合MCU资源有限以及网络需求相对固定的项目。

    2、使用内置TCP/IP协议栈的通信模块

  部分Wi-Fi和蜂窝通信模块内部已经集成了TCP/IP协议栈。主控MCU不需要处理底层TCP/IP协议,只需要通过UARTSPI等接口向模块发送命令例如获取IP地址、连接指定WIFI等。

  瑞萨的DA16200MOD/DA16600等就是这类产品。它们内部运行完整的TCP/IP协议栈,可以通过AT命令使用Wi-FiTCPUDPHTTPMQTTOTA等功能。其中,DA16600MOD还集成了BLE

  这种方案的优缺点和上述方案1类似,都把TCP/IP处理放在外部芯片或模块中,对主控MCU的资源要求很低,但网络功能受到模块固件和AT指令的限制。它和方案1的区别就在于W5500主要提供有线以太网和基础Socket通信,DA16200等主要提供的是无线连接并集成更多的网络应用功能。

    3、在MCU中运行TCP/IP协议

  还有一种方案自然就是在MCU中直接运行软件TCP/IP协议栈,瑞萨的RA6M3RA6M4RA6M5RA8D1MCU已经集成以太网MAC控制器,可以配合外部PHY接入以太网,再由MCU内部的软件协议栈完成网络通信。

  这种方式会占用一定的FlashRAM和处理器资源,但网络功能更加灵活,开发者可以根据项目需求添加HTTPMQTTModbus TCPOTA等功能。

  嵌入式常见的软件TCP/IP协议栈实现有以下几种:

  • FreeRTOS+TCP
  • NetX Duo
  • lwIP
  • Zephyr网络协议栈

与硬件TCP/IP芯片和通信模块相比,在MCU中运行协议栈对软件开发的要求更高,但开发者对网络功能也拥有更高的控制能力。

  对于瑞萨RA开发者来说,FSP均已经为这些常见协议栈提供了相应支持:

  FreeRTOS+TCP:提供与RA以太网驱动连接的适配模块;

  NetX Duo:提供以太网和Wi-Fi驱动,可以与ThreadX配合使用;

  lwIP:提供以太网驱动以及裸机、FreeRTOS适配层,可以通过FSP图形化配置;

  Zephyr网络协议栈:不属于FSP体系,但瑞萨已经为几乎全部的RA芯片提供了Zephyr支持,可以使用Zephyr自带的网络功能。 借助e² studio中的FSP配置界面,开发者可以选择需要的协议栈和底层驱动,设置IP地址、网络缓冲区等参数,并自动生成基础配置代码。

  而在这些软件TCP/IP协议栈中,lwIP凭借开源、轻量和易于裁剪等特点,成为MCU网络开发中应用较广的一种方案。

四、瑞萨与lwIP

  通过上文的介绍,我们可以知道lwIP就是是一套面向嵌入式设备开发的轻量级开源TCP/IP协议栈。

  TCP/IP规定了设备进行网络通信时需要遵守的规则,而lwIP则通过软件代码实现这些规则,使FlashRAM相对有限的MCU也能够使用IPTCPUDPDHCPDNS等网络功能。

  对比其他的方案,lwIP的特点是轻量、开源并且易于裁剪。它既可以运行在裸机环境中,也可以与FreeRTOSRTOS配合。它的局限是部分参数、缓冲区和线程需要开发者根据项目进行配置,HTTPS等加密功能还需要配合Mbed TLS等其他软件组件。

  FreeRTOS+TCP是面向FreeRTOS开发的TCP/IP协议栈,优点是能够与FreeRTOS的任务、队列和内存管理方式配合,适合已经使用FreeRTOS的项目。它的局限是对FreeRTOS依赖较强,如果项目没有使用FreeRTOS,那么使用lwIP就是一个很好的选择。

  NetX Duo是一套功能较为完整的TCP/IP协议栈,支持IPv4IPv6,并且能够与ThreadX紧密配合。它适合已经采用ThreadX,或者需要较完整网络功能的项目。不过,它与ThreadX开发体系联系较为紧密,切换到其他操作系统时需要重新适配。

  Zephyr网络协议栈则Zephyr系统的一部分,可以与Zephyr的驱动、设备模型和系统组件统一使用,适合基于Zephyr开发的产品。

  相比之下,lwIP对操作系统的依赖较少,资源占用相对较低,使用方式也更加灵活,因此成为MCU网络开发中应用较广的一种TCP/IP协议栈。

  

  对于瑞萨RA开发者来说,FSP已经提供了lwIP、底层以太网驱动以及相关适配模块,并支持通过e² studio完成基础配置。

隐私条款

一、接受条款 使用者(也称"您")在访问或使用本网站及其服务时,即已经表示同意并不加修改地接受本《用户协议》、本网站的《隐私声明》、《法律声明》以及其关或相链接的网页和网站的条件和条款的规定。我们强烈建议:在您阅读和接受本《用户协议》时,也应阅读并接受本《用户协议》中所提到《隐私声明》、《法律声明》及其相关或相链接网页或网站所包含的资料,因为《隐私声明》、《法律声明》及其它相关网页或网站可能包含对您适用的进一步规定。(请注意:点击划有底线的词句即可链接到上述《隐私声明》、《法律声明》及其它相关或相链接的网页和网站。

 

二、使用者的资格要求 在本网站中"使用者"指的是浏览、阅读、使用本网站信息或服务的任何个人或组织。本网站的服务仅适用于根据相关法律的规定具有签订有约束力的合同的个人或组织并仅由其使用。本网站的服务不向18周岁以下的个人使用者提供,也不向临时被本网站中止或取消使用者资格的使用者提供。如果使用者不符合本条规定,请停止使用本网站或本网站的服务。

样品
申请

应用
资源

微信