嵌入式工作笔记 - 协议网关

嵌入式工作笔记 - 协议网关


一.概念

  • 协议网关:使用 不同协议 的 网络区域间 做 协议转换
    • 协议网关属于网关中的一种,专注于转换通信协议(数据链路层至应用层),不涉及网络层路由
    • 协议网关主要处理应用层协议转换,即:主要工作于应用层

说直白一点,就是两份不同的协议通过某个中间者做协议转换,这个中间者就叫协议转换
举个例子,一个外国佬来问路,唧唧哇哇的(绝不是我英语不好),你一句也听不懂,这个时候就需要一个人来帮忙翻译了
当然,如果你有一个外语很好的朋友,你倒是可以把他抓过来当冤大头,只不过这样很容易没朋友


  • 网关:又称网间连接器、协议转换器,即:完成不同网络协议转换的设备
    • 换句话说,网关就是连接不同网络或协议体系的硬件/软件设备,充当“翻译官”角色,实现异构系统间的通信
    • 网关的核心定义是 在不同网络或协议之间进行转换设备
    • 主要指传输层以上的协议转换,用于不同网络的互连
    • 不同网络的协议可能不同,必须对协议进行转换,才能相互通信

再说直白一点,你抓了一个冤大头朋友来给你免费当了一天的翻译官,这个冤大头就是网关,完成了你和老外的交流
朋友:我谢谢您嘞

网关(Gateway) 协议网关(Protocol Gateway)
范围 广义概念(包含路由、安全等功能) 网关的子类(仅协议转换)
核心任务 跨网络互联 + 协议转换 纯协议转换
工作层级 OSI L3-L7 OSI L2/L7(侧重应用层)
是否改变接口 可能(如RS485转以太网) 不一定(可同接口转换协议)
典型代表 家庭路由器、API网关 Modbus转Profinet网关、BACnet/IP转换器

二.类型

网关分很多类型,例如 协议转换网关,通信接口网关,透传网关

类型 功能
协议转换网关 转换不同协议(如Modbus转Profibus)
通信接口网关 转换物理接口(如RS485转以太网)
透传网关 仅延长信号,不修改协议
即:透明传输原始数据,不解析/修改协议内容

问:你对上位机认识最多的东西是什么
答:透传
问:为什么
答:因为隔壁做上位机的同事说得次数最多的和上位机有关的就是透传
问:。。。。。。。


三.协议网关实例 — 双RS485实现的协议网关

假设你现在在做一款单片机设备,这个单片机上面有多个RS485,现在我们利用上面的2个实现一个协议网关操作
具体操作如下:

                +---------------------+
RS485-1 (协议A) |                      | RS485-2 (协议B)
------[数据]--->|   协议网关            |------[转换后数据]--->  目标设备
                |   - 解析协议A         |          
                |   - 映射为协议B       |
                |   - 封装为协议B帧     |
                +---------------------+

当然,你可能看不懂上面在说什么,所以请个"冤大头"网关选手出来翻译亿下下 ?

首先,我们需要通过工具(通常是串口工具,例如SSCOM)按照协议A发送数据帧到RS485-1上面
RS485-1接收到之后,先解析,再经过协议转换,最后封装完成后,发射!
也就是上图的三步走 —— 解析协议A,映射为协议B,封装为新的协议B
然后通过RS485-2发送出去,最后由我们的目标设备接收

问:这个过程中,谁是冤大头(网关)?谁又是冤大头中的冤大头(协议网关)?
答:是"我"做的这个协议转换,所以我们都是冤大头

再说的通俗易懂一点,就是
你(A)需要和路人甲(B)交流,但是你们两个,因为语言问题,迟迟无法沟通
这个时候就需要一个人来帮忙翻译,姑且就叫他朋友C吧
①你向朋友C说了一句 "请问你想询问一些什么?",让他帮忙翻译,
②朋友肯定知道你说的话是什么话,
③然后翻译为英文 "May I ask what you would like to ask?" 有道翻译温馨提供
④最后告诉路人甲B,
⑤B知道后作出回应,
⑥然后朋友翻译B的回应,
⑦最后将翻译内容转达给你

对应利用网关实现的数据传输流程:
①你使用SSCOM窗口助手向RS485-1发送了一条控制指令(协议A1帧)
②RS485-1接收到之后开始解析协议,解析完成后,进行协议转换
③协议转换之后,经过封装,封装为协议B1帧
④最后通过RS485-2将协议B1帧发送给目标设备,
⑤目标设备接收到协议B1帧之后,回复数据帧B2(通过RS485-2回复)
⑥之后,又经过协议解析,装换和包装后,得到一个数据帧 - 协议A2帧
⑦最后将协议A2帧经过RS485-1发送给串口助手

用户A 
  ↓ (发送协议A1帧) 
网关RS485-1接收 → 协议解析 → 协议转换(A1->B1) → B1帧封装 
  ↓ (发送协议B1帧) 
目标设备B 
  ↓ (回复协议B2帧) 
网关RS485-2接收 → 协议解析 → 协议转换(B2->A2) → A2帧封装 
  ↓ (发送协议A2帧) 
用户A接收回复

+-----------+      1.发送A1帧       +-----------+      2.发送B1帧       +-----------+
|           | -------------------> |           | -------------------> |           |
|    A      |                      |    C      |                      |    B      |
| (SSCOM)   | <------------------- |  (网关)   | <------------------- | (目标设备)|
|           |      4.接收A2帧       |           |      3.接收B2帧       |           |
+-----------+                      +-----------+                      +-----------+


+----------------+       +----------------+       +----------------+
|  用户(A)       |       |  网关(C)       |       |  目标设备(B)   |
|  SSCOM串口助手 |       |  (协议转换器)   |       |                |
+-------+--------+       +-------+--------+       +-------+--------+
        |                        |                        |
        |      ① 发送A1帧        |                        |
        | ---------------------->|                        |
        |                        |                        |
        |                        |      ② 转换A1->B1     |
        |                        | ------+                |
        |                        |       |                |
        |                        | <-----+                |
        |                        |                        |
        |                        |      ③ 发送B1帧        |
        |                        | ---------------------->|
        |                        |                        |
        |                        |      ④ 接收B2帧        |
        |                        | <----------------------|
        |                        |                        |
        |                        |      ⑤ 转换B2->A2     |
        |                        | ------+                |
        |                        |       |                |
        |                        | <-----+                |
        |                        |                        |
        |      ⑦ 接收A2帧        |                        |
        | <----------------------|                        |
        |                        |                        |
posted @ 2025-06-06 08:54  假设狐狸有信箱  阅读(62)  评论(0)    收藏  举报