首页 > 其他分享 >CMUX串口多路复用协议

CMUX串口多路复用协议

时间:2023-06-21 15:24:48浏览次数:38  
标签:多路复用 串口 CMUX PPP 虚拟 模块 软件包

CMUX

1. 简介

CMUX(Connection Multiplexing ),即连接(串口)多路复用,其功能主要在一个真实的物理通道上虚拟多个通道,每个虚拟通道上的连接和数据通讯可独立进行。

CMUX 软件包常用于蜂窝模块串口复用功能(PPP + AT 模式),以及串口硬件资源受限的设备。

CMUX 软件包特点如下:

  • 支持通过真实串口虚拟出多个串口;
  • 支持所有基于 GSM0707/ 0710 协议的蜂窝模块;
  • 支持无缝接入 PPP 功能;

目前 CMUX 的 GSM 功能支持 Luat Air720, SIM7600, SIM800C 模块,后续会接入更多蜂窝模块。

1.1 框架图

  • CMUX 是一种类似于传输层的协议,用户使用时无法感知该层;数据传输依赖一个真实串口传输,cmux 层负责解析数据用以分发到不同的 virtual uart ;从而实现一个真实串口虚拟出多个 UART 的目的

  • CMUX 在应用场景中多用于 UART, 如有必要也可以支持 SPI 方式

 

2 功能介绍

支持所有基于 GSM0707 / GSM0710 协议的蜂窝模块

  • 兼容 PPP_DEVICE 软件包,实现 CMUX+PPP 场景,在一个串口上同时传输 AT 命令与 PPP 数据;解决PPP 通信独占一个物理串口的问题

  • CMUX 的 GSM 功能已经在 Luat Air720, SIM7600, SIM800C 模块测试通过

  •  

    支持通过一个真实串口虚拟出多个串口

  • CMUX 协议限制,理论上一个物理串口最多可以虚拟出 63 个虚拟串口

  • 虚拟出的串口使用与真实串口一致,拥有 open,write,read 操作,设置 rx_indicate 接收回调

  • 两方的 MCU 接收时要注意 DLCI ( Data Link Connection Identifier ) 数据链路连接接标识,相同的 DLCI 才可以互相正常通信

 

低资源占用

使用 GSM 支持时,对 PPP_DEVICE 软件包同时开启的情况,做了一些处理,以节省 ROM 资源占用。

因为解析出的数据,挂载在不同虚拟端口的链表上,理论上占用 RAM 的大小只与链表上数据个数与长度相关,1.57 K 是在 CMUX + PPP 环境下测出。

4.相关资料+测试案例

测试案例领取方式:

作者使用了RT-Thread CMUX - latest 、ppp_Device – latest 、AT_Device – 1.6.0这三款软件包实现了 4G模块 CMUX+PPP 拨号上网 ,并完成测试。现在已将测试工程和文档开放,请大家关注公众号,并回复数字 “6” 领取测试工程+文档!

 

CMUX 软件包地址:https://github.com/RT-Thread-packages/cmuxCMUX

协议介绍:https://github.com/RT-Thread-packages/cmux/blob/master/docs/cmux_basic.md


 

名词解释

CMUX:多串口协议
DLC:数据链路连接
DM:断开模式
FCS:帧校验序列
UIH:未编号的带校验头的信息
UI:未编号的信息
MSC:modem状态命令
HDLC:高级数据链路控制

1.什么是CMUX

CMUX是指串口多路复用。串口的多路复用器模式,就是使一个串行接口能够将数据传输到四个不同的客户应用程序。
实际的应用中,一个物理串口某一时间段内只能传输一个上层应用的数据流,如果有多个数据流同时要发送怎么办?除了访问多个UART还有别的方法吗?
CMUX协议的功能就是利用一个底层物理串口,向上层系统提供多个逻辑串口,每个逻辑串口对应着一个数据链路连接(DLC)。这样就可以同时在一条串行接口上存在多个会话,比如语音、FAX、数据、SMS、GPRS、USSD等。

 

refs:

https://github.com/RT-Thread-packages/cmux

https://blog.csdn.net/weixin_45380951/article/details/116990535

https://blog.csdn.net/jyqxerxes/article/details/78814119

标签:多路复用,串口,CMUX,PPP,虚拟,模块,软件包
From: https://www.cnblogs.com/bluestorm/p/17496278.html

相关文章

  • 嵌入式教程_DSP教学实验箱_创龙教仪_实验操作教程:2-11 RS485 串口通信实验
    实验目的本教程是基于创龙教仪DSP教学实验箱:TL6748-PlusTEB完成录制的。本节视频的目的是了解UART的功能和结构,学习RS485串口通信协议,并实现RS485串口收发功能。实验原理RS485RS485是通信物理层的标准接口,一种信号传输方式,OSI(开放系统互连)模型的第一级。创建RS485是为了扩展......
  • 量产HLW8032串口通讯芯片的三相电参数采集系统项目资料 1主芯片采用STM32F407
    量产HLW8032串口通讯芯片的三相电参数采集系统项目资料1主芯片采用STM32F4072嵌入式软件使用UCOS2操作系统3通过3个独立串口实时采集三路三相电参数数据(通过HLW8032)4具备TFT液晶显示接口,实时显示三相电参数数据5为了采集电参数更加精确,系统具备红外解码芯片(HS0038),可在线标定电压......
  • 多路Qt串口通信源码C++语言接口自定义协议帧Qt读写配置文件ini出售: 可变长定长通信接
    多路Qt串口通信源码C++语言接口自定义协议帧Qt读写配置文件ini出售:可变长定长通信接口协议实现Qt多路串口发送接收SerialProtocol.rar工控自定义报文可用于嵌入式,单片机,ARM,DSP等常见的串口通信中,出售在应用实践中编写总结的源代码,实现自定义的串口通信协议,包括报文头部、长度......
  • arduino——串口控制开关灯
    转载自:arduino——串口控制开关灯(笔记)-简书(jianshu.com)串口简介Arduino与计算机通信的最常用方式就是串口通信,当使用USB线将二者连接时,便建立了串口连接,通过串口,arduino可以向计算机发送消息,计算机也可以向arduino发送消息。函数介绍Serial.begin(speed);此函数是初......
  • 欧姆龙CP1H与三菱变频器通讯 CIF01(232串口方式)可直接拿来实用了,欧姆龙CP1H 与变频器
    欧姆龙CP1H与三菱变频器通讯CIF01(232串口方式)可直接拿来实用了,欧姆龙CP1H与变频器modbus通讯案例采用的器件:欧姆龙CP1HPLC,2个CP1WCIF01(232串口单元),RS232转RS485转换器,三菱FR-E740变频器进行modbusRTU模式通讯。接线方式:PLC的两个串口单元CIF01,一个接MCGS触摸屏,一个接RS23......
  • 【技术学习】网络学习--使用select的IO多路复用的ftp服务器
    上一篇文章复习了一下最基础的服务器代码,这次再将代码改为io多路复用的方式。select函数是一种用于实现I/O多路复用的系统调用。它可以监视多个文件描述符,判断它们是否处于可读、可写或异常等事件状态,并在一个或多个文件描述符就绪时进行处理。这种方式避免了使用多线程或多进程......
  • 网络编程相关(IO多路复用)
    selectpollepoll的一些比较select的fd_set通过bitmap1024位表示存入的文件描述符,通过01表示存入的文佳描述符,且是从0下标开始,如存入的文件描述符是12579,则在bitmap里表示是0110010101000...由于bitmap从0下标开始,存入的文件描述符从1开始,从0到存入的最大文件描述符,范围是max+......
  • 8路TTL串口转以太网串口服务器芯片EBT3002功能
    EBT3002串口服务器芯片简介EBT3002 以太网芯片是实现8路TTL串口数据与以太网数据互相转换的以太网串口服务器芯片;该以太网芯片具有多种Modbus网关模式以及TCP/DUP/MQTT/HTTP物联网网关模式,可满足各类串口IO联网设备与PLC设备的联网功能。以太网芯片采用采用LQFP100封装,便于用户......
  • 串口通信RXTXcomm使用(转)
    一、串口通信原理串口通信(SerialCommunications)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20......
  • 00-串口和SSH方式登录
    登录1、板载LED灯状态说明USB转TTL模块准备(安装ch340驱动)a.USB转TTL模块的GND接到开发板GNDb.USB转TTL模块的RX接到开发板TXc.USB转TTL模块的TX接到开发板RX2、使用MobaXterm登录串口登录:USB转TTL模块同开发板连接,选择对应串口号ssh(烧录的镜像不带ssh时需要手动安装)登......