0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在嵌入式系统中如何实现高度稳健TCP/IP协议栈应用

电子设计 来源:电子工程网 作者:Meng He 2021-06-28 14:46 次阅读

作者: Meng He

ABI Research指出,目前市场上的无线连接设备已超过100亿部,而到2020年通过无线连接到物联网(万物互联)的设备将突破300亿部。随着物联网越来越受到人们的重视,许多OEM厂商都发现自身面临的压力也越来越大,他们必须为各种产品提供因特网连接功能,才能从实现设备间的通信功能中受益。但是,许多开发人员并不熟悉如何实现高度稳健的TCP/IP协议栈。本文将探讨在嵌入式系统中有关支持因特网连接功能的主要问题,以及如何通过新工具帮助开发人员为系统提供TCP/IP且无需担心低层次实现细节问题。

首先,让我们简要回顾一下TCP/IP协议。传输控制协议/因特网协议(TCP/IP)是连接到因特网的硬件设备之间用于交换数据的通用语言。这些规则管理着终端操作系统(Windows、iOSLinux等)之间的交换机制以及SMTP、FTP、HTTP等一系列具体协议。

TCP/IP被细分为不同的“层”(详见图1)。因特网数据以数据片段的格式从应用层路由到传输层。物理层是在IEEE 802.3规范所定义的以太网协议下,数据通过“因特网”进行物理传输的地方。以太网有多种不同的规范版本,可提供各种最大比特率、传输模式和传输介质(光纤、同轴电缆等)。介质访问控制(MAC)是物理层非常重要的部分,MAC地址表示以太网网络上节点的物理地址。每个以太网帧都包含一个源地址和一个目的地址。

图1. 因特网上的数据传输

应用层负责提供用户接口。以下是常见的应用层协议 。

1. 超文本传输协议(HTTP):传输与浏览万维网(WWW)相关的数据。

2. 简单邮件传输协议(SMTP):支持整个因特网上的电子邮件传输。

3. 文件传输协议(FTP):用于在因特网上传输文件。

4. 域名系统(DNS):翻译域名。

5. 动态主机配置协议(DHCP):为特定节点动态分配IP地址。

6. Telnet:为节点创建互动的TCP连接。

7. 简单网络时间协议(SNTP):支持节点时钟与参考时钟同步。

8. 简单网络管理协议(SNMP):用于监控网络连接设备,检查是否存在发生故障等需要干预的情况。

嵌入式TCP/IP协议栈的两种最常见用途就是消息传送和Web页面显示。例如,简单的SMTP消息传送系统允许微控制器获得传感器读数,并根据预设的间隔将读数以消息或电子邮件的形式发送给中央存储库,以便记录和分析。家庭中可采用这种应用每隔一小时给住户发送室温电子邮件,当然我们也可进一步扩展这种使用案例。嵌入式微控制器不仅能读取温度信息,而且能监控门窗是否锁好、灯光是否关闭等。这些系统可以全天候监控有关信息。如果住户将要工作到很晚才回家,那么他/她可使用HTTP请求微控制器发送包含所有相关信息的Web页面。然后,住户可通过改变Web页面上的一些字段,打开某些房间的灯、提升温度、并执行其它任务。

实现能够满足各个系统要求的以太网子系统有多种不同方式:

1. 以太网控制器模块

包含TCP/IP硬连线芯片、变压器和RJ45的控制器模块能大幅简化所提供的连接功能。完整的厂商生态系统可提供各种现成可用的模块,不仅能加速产品的上市进程,同时还提供极具吸引力的价格点。这种方案对于想要快速开发因特网系统的工程师来说非常理想。例如,开发人员可选择Wiznet的WIZ550io、W5100 shield以及Rabbit Semiconductor的以太网模块RCM6760 MiniCore等模块。随着Arduino平台的日益普及,市场上也开始出现许多兼容于官方Arduino开发板的模块。

2. TCP/IP IC加一款MCU

此外,设计人员还能将TCP/IP控制器连接到他们的嵌入式微控制器。例如,Microchip的ENC28J60以太网模块能通过SPI接口直接连接到大多数的微控制器。这些模块通常采用独立的以太网控制器IC,其具有众多特性,能够处理大部分的网络协议要求。这样的基础架构能帮助设计人员构建并共享他们自己的以太网项目。例如,Github上有个项目(https://github.com/kmmankad/ENC28J60-PSoC3)就能支持赛普拉斯的可编程片上系统(PSoC)控制器和基于ENC28J60的器件之间的因特网连接。基于PSoC 3的同一项目同时也可移植到PSoC 5中。这种实现方案的优势在于它能将微控制器内核和其它片上资源释放出来,以满足其它系统功能的需求。在硬件层面,我们只需要一个RJ45连接器、磁性元件、一个25 MHz的晶振或振荡器以及一些无源组件即可。

3. 支持lwIP的单芯片微控制器

轻量级IP(lwIP)是一种广泛使用的开源TCP/IP协议栈,专门针对嵌入式系统而精心设计,并获得了全球开发人员网络的支持。对许多应用来说,lwIP可提供以太网功能,同时能大幅降低MCU的资源占用率。MCU实现协议栈从物理上需要MAC和PHY。lwIP对于想要实现低成本连接功能的设计人员来说是一种理想选择。但是,由于这更像是一种DIY类型的实现方案,因此开发人员还必须愿意为解决协议栈问题而付诸努力。这种实现方案的挑战在于系统资源的使用以及动态分配MAC地址的功能。PSoC的动态可重配置属性使得解决上述挑战成为可能。PSoC的数字侧由通用数字模块(UDB)组成,可用于平衡配置粒度并支持高效的实现方案。这种方法的基础就在于能定制器件数字操作,从而满足应用要求。例如,片上DMA使我们能设计出可配置的RX和TX FIFO。PSoC设计环境PSoC Creator支持开发人员构建自己的以太网组件,并将其作为系统级设计中的虚拟芯片。

连接功能代表着未来需求,世界正日益依赖因特网来促进并扩展通信。随着芯片厂商推出具有更多实现选项和更高灵活性的成熟产品,设计人员可根据所需级别从现成可用的交钥匙模块到DIY嵌入式方案中做出购买选择。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4981

    文章

    18267

    浏览量

    288227
  • 物联网
    +关注

    关注

    2867

    文章

    41578

    浏览量

    358252
  • 无线
    +关注

    关注

    31

    文章

    5301

    浏览量

    171449
收藏 人收藏

    评论

    相关推荐

    基于TCP IP协议嵌入式以太网终端设计

    基于TCP IP协议嵌入式以太网终端设计基于TCP /
    发表于 06-27 09:33

    基于μC/OS—II的μC/IP协议ARM系统实现

    —II与ARM7 Core的软硬件平台上实现了~C/IP协议的移植。实验结果表明:移植后的协议
    发表于 03-28 14:04

    TCP_IP协议嵌入式系统实现

    本帖最后由 eehome 于 2013-1-5 10:03 编辑 TCP_IP协议嵌入式系统
    发表于 08-24 23:05

    请问嵌入式系统实现以太网,TCP/IP协议是都是移植的吗?

    想请教各位大神们。嵌入式系统实现以太网(比如stm32),TCP/IP协议
    发表于 03-13 02:22

    怎么实现嵌入式TCP/IP的优化设计?

    本文从既实现相应的功能又节省系统资源角度出发,对协议进行有针对性的模块化裁剪和优化设计,可以单片机/ARM上嵌入
    发表于 05-27 06:51

    怎么实现TCPIP协议单片机上的移植?

    本文实现TCPIP协议单片机上的移植,完成了系统
    发表于 06-03 07:08

    基于ARM的TCP/IP协议LwlP是如何实现的?

    嵌入式网络通信系统的硬件平台由哪几个部分组成?基于ARM的TCP/IP协议LwlP是如何
    发表于 06-04 06:37

    怎么实现嵌入式TCP/IP协议的设计?

    本文阐述一种异构网络互联——CAN总线与以太网互联系统设计方案嵌入式TCP/IP
    发表于 06-07 06:28

    嵌入式网络协议基础知识

    嵌入式网络协议基础知识2.1 初学者重要提示2.2 TCP/IP协议
    发表于 08-03 06:24

    介绍嵌入式网络协议基础知识

    第2章 嵌入式网络协议基础知识本章教程为大家介绍嵌入式网络协议基础知识,本章先让大家有一个全
    发表于 08-03 06:58

    介绍嵌入式网络协议基础知识

    嵌入式网络协议基础知识2.1 初学者重要提示2.2 TCP/IP协议
    发表于 08-04 08:17

    如何使用LwIP TCP/IP开源协议嵌入式设备的应用

    这文档主要描述了如何使用LwIP TCP/IP开源协议嵌入式设备的应用
    发表于 12-01 06:17

    一种嵌入式TCP/IP协议的设计与实现

    本文提出了基于ARM的嵌入式TCP/IP协议在低速处理器中的一种设计方案。并对 TCP/IP
    发表于 06-24 09:42 18次下载

    嵌入式系统TCP/IP 协议的精简与实现

    通过对TCP/IP 协议的分析,结合嵌入式系统的特点,挑选出一套精简、实用的TCP/
    发表于 08-22 08:42 18次下载

    嵌入式TCP/IP协议栈在DSP上的实现

    摘要:介绍了TMS320C5402芯片与RTL8019AS互联网控制器的硬件接口电路的设计,实现了一个运行在TMS320C5402上的 小型嵌入式TCP/IP
    发表于 02-25 17:26 189次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>协议</b>栈在DSP上的<b class='flag-5'>实现</b>