1. 什么是 CMUX
CMUX( Connection Multiplexing ),即连接(串口)多路复用,其功能主要在一个真实的物理通道上虚拟多个通道,每个虚拟通道上的连接和数据通讯可独立进行。
CMUX 的设计需求来自于蜂窝模块:蜂窝模块作为一种基础通信模块,设计时就有电话,短信,上网等需求,但通常模块上的片上外设资源比较少,于是 GSMMUX 应运而生。
GSM0707/GSM0710 协议提供了解决问题的方法,在同一个串口上同时传输 AT, PPP, MODEM 等数据而互不干扰,也就是可以传输电话,上网,短信等数据。
2. 为什么使用 CMUX
GSMMUX 可以解决在一个串口上与蜂窝模块通信传输多种数据的场景,那 CMUX 就同样可以解决在两个 CMUX 上只使用一个物理串口传输多种 APP 数据的使用场景。
这就是我们 CMUX 软件包推出的目的,一方面可以兼容 GSMMUX ,实现 PPP 与 AT 模式同时进行,解决之前 PPP 数据单独占用物理串口,而无法实时查询模块状态的问题;另一方面,也可以由两块 MCU 在搭载 CMUX 的情况下仅使用一个物理串口实现多种传输场景的需求。
3. 软件包介绍
3.1 框架图

CMUX 是一种类似于传输层的协议,用户使用时无法感知该层;数据传输依赖一个真实串口传输,cmux 层负责解析数据用以分发到不同的 virtual uart ;从而实现一个真实串口虚拟出多个 UART 的目的
CMUX 在应用场景中多用于 UART, 如有必要也可以支持 SPI 方式
3.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 环境下测出。
-
数据通讯
+关注
关注
0文章
47浏览量
13367 -
蜂窝模块
+关注
关注
0文章
7浏览量
3494
原文标题:CMUX 软件包发布 | 不一样的串口复用
文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
立讯精密荣获大奖,载誉赴会,共话ESG治理新生态
芯华章仿真器GalaxSim荣登“国产EDA工具口碑榜”
FPG推出CheckMax,以AI洞察助力餐饮业利润最大化
全球图像级激光雷达解决方案提供商Seyond图达通成功上市!正式登陆香港交易所主板
宜鼎视觉加速布局,推出全新GMSL2相机模组系列
环旭电子整合真空印刷塑封与铜柱移转技术 推动系统级先进封装应用
RFID技术赋能:智能钥匙柜系列产品及其信息化管理平台功能详述
四川大学:研究一种具有四重感知能力的柔性机器人传感器
输电线路隐患在线监测装置:多模态传感器协同
Hi8001B高效灵活外围电路简单升压恒压芯片2.7-40V智芯一级代理聚能芯半导体原厂技术支持
2025 全国人工智能应用场景创新挑战赛AI Agent全球专项赛线下半决赛新闻发布会在深圳召开
欧洲第四站!技术论坛点燃爱丁堡新火花
江苏省领导莅临扬杰科技调研指导
UWB电子围栏选型决策全攻略:从原理到落地

什么是CMUX?为什么使用CMUX?
评论