多通信接口接入互联网的嵌入式网关设计(一)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

嵌入式Internet技术的出现,使得嵌入式系统与Internet之间可以实现资源共享、信息通信和状态测控等功能。目前,该技术的主要问题之一就是Internet上面的各种通信协议对于计算机存储器、运算速度等的要求比较高,而测控领域中大量存在的8位和16位MCU系统是无法处理这些的。要解决这个问题,一个可行的方法就是利用在嵌入式领域比较常用的总线,如RS485、RS232、CAN总线等,将这些处理能力较低的嵌入式设备连接起来,接入到网关所提供的通信接口上,由网关来实现协议栈和协议转换,从而就将8位/16位的嵌入式设备接入到互联网

1. 嵌入式网关的典型设计方案

网关又被称为网间协议变换器,用于连接采用不同通信协议的网络,实现网络之间的数据传输。当一个报文要求从一个网段发送到另一个网段时,网关需要完成对该报文的接收、翻译与转发工作[1]。就目前已应用到嵌入式系统中的网关来说,主要有以下两种:

1.1 利用PC机来实现的网关

利用PC机的丰富资源和较强的处理能力,在其上构建WEB服务器,实现和Internet客户端的通信,而8位/16位MCU设备连接到PC总线的扩展接口或特定的板卡上,通过通信程序实现与PC机通信,进而利用PC机这一网关接入互联网。这种方式实现相对容易,灵活性较好,但成本较高,设备的可靠性和环境适应性都比较差。

1.2 利用32位嵌入式系统实现的网关

它以32位嵌入式系统为硬件基础,体积小、成本低,设备的可靠性和环境适应性较好。按实现TCP/IP协议栈方法的不同,可将这种嵌入式网关分为以下两个设计方案。

(1)基于软件来实现TCP/IP协议栈[2]

这一方案通常有两种实现方法,第一种是嵌入式操作系统带有TCP/IP协议栈。网关运行在嵌入式操作系统之上,可以利用嵌入式操作系统的强大功能,按用户需求实现很多复杂的功能。第二种方法则单独采用TCP/IP协议栈软件模块,不使用嵌入式操作系统,所构建的系统只占用很小的存储空间,但是如果要实现复杂的功能,则编程的复杂性较大。

(2)直接利用TCP/IP协议栈芯片[2]

在这种方案中,将集成有TCP/IP协议栈的芯片直接使用在嵌入式
网关中,使得设计简单,但增加了一个芯片,也就增加了制造成本,开发时需要熟悉TCP/IP协议栈芯片的接口。

2. 嵌入式网关的硬件结构

网关的硬件结构如图1所示,其中处理器使用基于ARM7TDMI的SAMSUNG S3C44B0X,它是16/32位RISC处理器,工作在66MHz,内置有丰富的片内外设,常用于手持设备和网络设备当中。系统内存使用4M×16bit 的HY57V65160b SDRAM,存储器使用1M×16bit的SST39VF160 Flash。网关的以太网控制器采用RTL8019AS,它支持IEEE802.3,支持8/16位数据总线,内置16KB SRAM,支持全双工方式,收发可同时达到10Mbps。网关提供多路本地通信接口,其中RS232接口利用S3C44B0X的UART0口实现,使用MAX3221E实现电平隔离和转换。RS485接口使用S3C44B0X的UART1口实现,外接MAX485完成TTL电平与RS485电平的转换和数据收发。CAN总线接口采用总线连接方式,使用PHILIPS公司的CAN控制器SJA1000T,它兼容基本CAN模式(BasicCAN)和增强CAN模式(PeliCAN),符合CAN2.0B协议,具有完成CAN通信协议所要求的全部特性,其外接TJA1040T作为CAN总线接口的收发器。此外,系统还预留了可用于扩展的其他通信接口。

图1 嵌入式网关硬件结构

图2嵌入式网关的软件构架

3. 嵌入式网关的软件设计

3.1 软件构架

本文所设计的嵌入式网关运行在嵌入式操作系统μCLinux之上,对外以WEB服务器与Intertent客户端交互;对内则按总线标准的不同,通过多个通信接口与多个不同类型的集散式子网相连,如图2所示。网关将内网中的各通信子网以及外网的Internet都看成是等同的网络,在转发数据时屏蔽网络之间的差异,将来自不同网络的数据都转换为统一格式的转发数据包,并采用基于优先级的调度机制来完成转发。这样便将内网和外网的通信整合在一起,实现各种子网通信协议与TCP/IP协议的转换,以及各种子网通信协议相互之间的转换。

当WEB服务器接收到来自Internet客户端的请求时,如果是请求静态网页,则将网页传给客户端(对应于图2中的①,下同);如果是要与本地子网的终端设备通信,服务器便将通信数据发往Internet接口模块(②),由其完成对数据的解析,并封装成转发数据包,发往接收子模块(③);相反,当Internet接口模块收到来自发送子模块的数据包时(④),则解析该数据包后生成动态网页,发往WEB服务器(②),服务器再将其发到客户端(①)。
当本地子网的某个终端设备要与别的设备通信,或者要将响应数据包发往Internet客户端时,按照一定的调度机制,将数据从终端设备发往内网通信模块(⑤),由该模块将数据转换为网关内部的转发数据包后,发往接收子模块(⑥)。与此相对,如果内网通信模块收到发送子模块发来的数据包(⑦),则根据该数据包的目的地址,选择相应的子网,将数据包转换为符合该子网的通信协议下的数据,再发往目的设备(⑤)。

接收子模块在接收到来自Internet(③)或本地子网(⑥)的数据包后,将这些格式统一的数据包按照优先级高低插入数据队列中(⑧)。当基于优先级的队列中有数据包的时候,发送子模块便从中取出数据包(⑨),发往目的子网(④⑦)。

3.2 嵌入式操作系统μCLinux的移植以及Boa服务器的配置
μClinux是一个完全符合GNU/GPL(通用公共许可证)的项目,其代码完全开放,专门针对没有MMU的MPU,通过对标准Linux内核的改动,针对嵌入式系统进行小型化处理,形成了一个高度优化的、代码紧凑的嵌入式Linux。将μClinux应用到网关中,可以利用其完备的网络功能,减小开发的难度,缩短开发时间。使用μClinux,第一步要做的就是根据网关的硬件平台移植μClinux,首先要在PC上安装Linux操作系统,下载uClinux源代码压缩包并解压,下载并安装交叉编译工具,建立交叉编译环境;其次根据不同的硬件系统修改源代码,编写或修改一些特殊硬件的驱动程序;然后配置内核,生成可在RAM中运行的内核文件;最后烧写到硬件系统的Flash存储器中,加电运行。

μClinux中常用的WEB服务器有:Boa、thttpd、httpd,网关可选择支持认证、支持CGI、非常适合于嵌入式系统的Boa WEB 服务器[3]。Boa是一个单任务的HTTP服务器,它不为每个访问的连接单独开启一个进程,也不会为多个连接而开启多个自身的拷贝,对所有活动的HTTP连接都在内部进行处理,而只为每个CGI连接启动新的进程,因此Boa在同等硬件条件下速度更快。使用Boa WEB服务器,需要对其运行环境、参数等进行设置,如设置侦听端口为80,设置服务器的文件根目录DocumentRoot,设置CGI文件的存放目录等。

3.3 Internet接口模块的设计

Internet接口模块实质上是一个CGI[3] (公共网关接口协议Common Gateway Interface)程序,CGI是对HTTP协议的补充,是一个用于定义WEB服务器与外部程序之间通信方式的标准,定义了建立互操作中双方必须遵守的规则集。CGI技术较为成熟,相关文献也较多,故本文不做详细论述,而是重点介绍一下Internet模块的实现算法,其流程图如图3所示。

图3 Internet接口模块流程图

 

 

嵌入式网络开发实战:Microchip TCP/IP协议栈架构、配置与应用详解 TCP/IP协议栈是实现嵌入式设备联网的核心技术,它定义了数据如何在网络中封装、寻址、传输和路由。其工作原理基于分层模型,从底层的网络接口到顶层的应用协议,逐层处理数据包,确保可靠通信。对于资源受限的嵌入式系统而言,个经过深度优化和裁剪的协议栈具有极高的技术价值,它能以最小的内存和处理器开销,为单片机赋予HTTP服务器、远程配置、数据上传等关键网络能力。这种能力是智能家居网关、工业数据采集器、联网医疗设备等物联网(IoT)应用场景的基石。Microchip TCP/IP协议栈正是这样个为PIC、dsPI 阅读详情

相关推荐

LWIP实战指南:高效实现UDP广播与组播通信

本文是份针对嵌入式开发的LWIP实战指南,详细讲解了如何高效实现UDP广播与组播通信。文章从基础概念入手,通过清晰的代码示例,逐步指导开发者完成LWIP协议栈的关键配置、广播与组播的Socket编程,并利用Wireshark进行抓包分析,帮助读者掌握在物联网设备中实现精准、高效的对多数据传输的核心技能与避坑要点。

cream的博客 877

基于嵌入式的无线网关解决方案

基于arm的无线网关,将无线连入的RS232转化称TCP/IP协议

ESP32-NOW vs. Traditional Wi-Fi: When to Choose Direct Device Communication

本文深入比较了ESP32-NOW与传统Wi-Fi在物联网应用中的优劣,帮助开发者根据项目需求选择合适的通信协议。ESP32-NOW以其低延迟、低功耗和直接设备通信特性,特别适合工业自动化和传感器网络;而传统Wi-Fi则更适合需要互联网连接的智能家居场景。文章还提供了实用的开发技巧和性能优化建议。

weixin_29163797的博客 374

嵌入式系统框架----软件

1.overview 图1-1 嵌入式框架图 嵌入式系统分为硬件以及软件两大部分,大多数人参与的是嵌入式软件设计,更多的是接触的是上层软件系统部分,可以分为两大类型嵌入式软件应用工程师以及嵌入式驱动工程师。 前者主要负...

weixin_38815998的博客 9079

智能控制及网关系统实现(项目)

时间:2019年6月 阶段:大三下学期 背景:物联网网关开发技术&物联网工程设计与实现设计课设 名称:智能控制及网关系统实现 摘要 粤嵌GEC 6818开发板作为系统的网关板,其为系统数据的中枢。启动串口收发,可以接收到ZigBee网络的协调器通过串口发送的数据; lCD屏幕编程,实现传感网的数据实时显示;建立有MySQL数据库的连接,可以将传感网络的温湿度及门状态信息...

weixin_30755393的博客 2476

Spring Cloud Gateway()为什么用网关、能做什么、为什么选择Gateway、谓词工厂、过滤器配置

1、为什么用网关?能做什么?为什么选择Gateway? 1.1、为什么用网关 网关api:封装了系统内部架构,为每个客户端提供个定制的 API。在微服务架构中,服务网关的核心要点是,所有的客户端和消费端都通过统网关接入服务,在网关层处理所有的非业务功能。 1.2、能做什么 服务网关在完成客户端与服务器端报文格式转换的同时,它可能还具有身份验证、监控、缓存、请求管理、静态响应处理等功能。另方面,也可以在网关层制定灵活的路由策略。针对些特定的 API,我们需要设置白名单、路由规则等各类限制 Spr

CodingAnHour 8686

基于嵌入式linux和ARM设计的无线家庭网关

 随着网络技术和信息家电的飞速发展,越来越多的家庭要求建立家庭网络。家庭网关是整个家庭网络的核心,它主要实现 Internet接入、远程控制,以及连接家庭内部异构子网的功能。基于PC机方案的家庭网关不仅成本较高,而且要求计算机直处于开机并可进行通信的状态,还不能在计算机上运行干扰通信任务的软件和硬件。所以,为适应普通用户,家庭网关设计为基于廉价的非PC机设备。但是,若采用8位、16位单片机,由

宁静致远 2811

嵌入式单片机产品开发设计框架_网关是单片机吗,2024年最新大厂首发

WIFI无线通讯模块可以选择的非常多,其中比较热的包括上海乐鑫ESP8266、ESP32,有人科技的USR-C210、USR-216、WIFI232-B2/A2、涂鸦科技的WRG1等。很多兄弟可能觉得电源设计比较简单,这是个比较危险的想法,因为电源是产品最重要的环节之,很多硬件出问题,都是因为电源设计不合理导致的。不同的模块的比较,各自有各自的优势,我们最终选择的是涂鸦科技的WRG1,为什么选择涂鸦科技的?**1.WIFI****无线通讯(****输入操作:**按键输入。

2401_84265802的博客 937

多通信接口接入互联网嵌入式网关设计(二)

Internet客户端可用“GET”或“POST”方式提交数据到WEB服务器上,WEB服务器会将本次所用的提交方式保存到环境变量REQUEST_METHOD中。如果是“GET”方式,则服务器将有效数据保存到环境变量QUERY_STRING中,Internet模块可直接读取这环境变量来获得有效数据;如果是“POST”方式,则服务器将有效数据的长度保存到环境变量CONTENT_LENGTH中,则In

宁静致远 1174

3、嵌入式系统接口、通信与开发工作流解析

本文深入解析了嵌入式系统的接口与通信协议,包括SPI、I2C和USB等常见协议的特性与应用场景,并探讨了物联网环境下的TCP/IP通信挑战及分布式系统的开发难点。同时,文章分析了嵌入式开发中的隔离机制、参考平台选择及优化的工作流策略,涵盖了ARM Cortex-M系列微处理器的核心特性与开发支持,旨在帮助开发者提升嵌入式项目的开发效率与质量。

5b6n7m8的博客 76

蓝牙工业网关的特点,为什么选择蓝牙工业网关

蓝牙工业网关可以对连接的设备进行数据聚合和处理,将来自不同设备的数据汇总,进行数据解析、过滤和转换,生成可用于上层应用程序的数据,方便进行后续的数据分析和决策。在工厂仓库环境中,蓝牙工业网关可连接到各种传感器设备,对资产进行追踪和管理。蓝牙工业网关可以应用于工业生产自动化领域,实现设备的远程监控和控制,避免了人工巡查的繁琐过程,实现生产过程的自动化控制,提高了生产效率。网关可以连接工业设备和传感器,实时监测设备运行状态,通过从终端设备收集数据并分析,从而实现设备的远程监控和分析,及时发现并解决。

hzdusun_com的博客 932

3、嵌入式系统接口、协议与开发工作流解析

本文深入解析了嵌入式系统中常用的接口与通信协议,包括SPI、I2C和USB的特点与应用场景,并探讨了物联网环境下的网络通信与分布式系统挑战。文章详细介绍了ARM Cortex-M系列微控制器的架构特性及其在嵌入式开发中的优势,系统阐述了基于GCC工具链的开发工作流,涵盖编译、链接、调试与代码验证等关键环节。同时,对比了文本编辑器与集成开发环境的适用场景,提出了自动化构建、持续集成和代码审查等优化策略,旨在帮助开发者全面提升嵌入式系统的开发效率与软件质量。

grass的博客 54

MCU通信接口选型与实战:从UART到CAN FD的嵌入式系统设计指南

嵌入式系统开发中,MCU的通信接口选型直接决定了产品的功能边界与工程复杂度。从基础的UART、SPI、I2C,到面向工业控制的CAN/CAN FD,再到高速USB和以太网,每种接口都有其独特的原理与适用场景。理解这些接口的物理特性、时序要求和协议栈开销,是工程师进行系统设计的前提。例如,SPI适合高速板载外设通信,CAN FD则以可变速率和长数据帧支撑复杂车载与工业网络。同时,接口数量、DMA通道、中断优先级等资源规划,也深刻影响着系统的实时性与稳定性。本文结合款主流MCU的多通信协议方案,系统拆解了各

weixin_30321709的博客 404

3、嵌入式系统通信协议、平台及开发工作流解析

本文深入解析了嵌入式系统中常见的通信协议(如SPI、I2C、USB)、物联网网络通信技术及TCP/IP的应用,探讨了分布式系统的挑战与隔离机制。文章详细介绍了以ARM Cortex-M为代表的RISC架构微处理器特性,包括内存映射、中断机制和特权模式,并系统梳理了嵌入式开发的工作流程,涵盖从C编译器、GCC工具链到集成开发环境的选择。同时,提出了与目标设备交互的调试策略,强调了单元测试、集成测试和系统测试在嵌入式软件验证中的重要性,最后总结了优化开发工作流的关键方法,助力开发者提升效率与软件质量。

zz67890的博客 60

3、嵌入式系统通信协议、架构与开发工作流解析

本文详细解析了嵌入式系统中的通信协议、系统架构、开发工作流以及相关优化策略。从SPI、I2C到USB等常用通信协议的特性与适用场景,到物联网中TCP/IP协议的应用与挑战,同时探讨了ARM Cortex-M微处理器的架构优势及其在嵌入式开发中的重要地位。文章还介绍了嵌入式开发工具链、工作环境选择及优化的开发流程,帮助开发者提高效率并适应不断变化的技术需求。

tree的博客 57

STM32无线传输毕设实战:从NRF24L01+驱动到环境监测系统设计

无线通信技术是物联网和嵌入式系统的核心基础,它通过电磁波实现设备间的数据交换,其原理涉及调制解调、信道编码和协议栈等多个层面。这项技术的价值在于打破物理连接限制,实现灵活、可扩展的分布式感知与控制,广泛应用于智能家居、工业自动化和环境监测等领域。在工程实践中,基于STM32微控制器搭配NRF24L01+模块的方案,因其成本低廉、驱动成熟,成为学习无线通信原理和嵌入式开发的经典组合。通过SPI接口驱动NRF24L01+,开发者可以深入理解数据包结构、校验机制和抗干扰处理等底层细节,而合理的电源设计(如AMS1

weixin_28727975的博客 279

STM32+Lora+WiFi+GPS露营环境检测系统:物联网毕业设计实战

物联网系统开发的核心在于实现感知、传输与控制的协同。其基本原理是通过嵌入式主控(如单片机)采集传感器数据,并借助无线通信技术将数据发送至云端或本地服务器,从而实现远程监控与智能决策。这项技术的价值在于打通物理世界与数字世界的桥梁,广泛应用于环境监测、智慧农业、资产追踪等场景。其中,低功耗广域网(LPWAN)技术如LoRa,因其远距离、低功耗的特性,成为无网络覆盖区域数据传输的理想选择。本文聚焦于个典型的综合实践项目:基于STM32单片机,结合LoRa与WiFi双模通信,并集成GPS定位功能的露营环境检测系

weixin_34284188的博客 390

LWIP协议栈解析(五)——IPv4与IPv6的网际寻址机制对比与实现

本文深入解析了LWIP协议栈中IPv4与IPv6的网际寻址机制。通过对比两代IP协议在地址结构、配置方式、数据包处理及路由机制上的核心差异,并结合实际嵌入式开发案例,阐述了在资源受限环境中如何高效实现与优化双栈支持,为嵌入式网络开发提供关键指导。

fire9的博客 622
上一篇: 基于嵌入式WEB的视频服务器的设计
下一篇: 多通信接口接入互联网的嵌入式网关设计(二)
Linux先生
博客等级 码龄20年 97粉丝 43原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值