一、CMUX 软件包的介绍
 CMUX(Connection Multiplexing ),即连接(串口)多路复用,其功能主要在一个真实的物理通道上虚拟多个通道,每个虚拟通道上的连接和数据通讯可独立进行。
  CMUX 软件包常用于蜂窝模块串口复用功能(PPP + AT 模式),以及串口硬件资源受限的设备。
 CMUX 软件包特点如下:
 1.支持通过真实串口虚拟出多个串口;
 2.支持所有基于 GSM0707/ 0710 协议的蜂窝模块;
 3.支持无缝接入 PPP 功能;
  目前 CMUX 的 GSM 功能支持 Luat Air720, SIM7600, SIM800C 模块,后续会接入更多蜂窝模块。
二、框架图

 1.CMUX 是一种类似于传输层的协议,用户使用时无法感知该层;数据传输依赖一个真实串口传输,cmux 层负责解析数据用以分发到不同的 virtual uart ;从而实现一个真实串口虚拟出多个 UART 的目的。
 2.CMUX 在应用场景中多用于 UART, 如有必要也可以支持 SPI 方式。
三、工程创建
RT-Thread Studio 版本: 2.2.6
 RT-Thread 版本:4.1.1
 CMUX软件包版本:V1.0.0
 开发板:野火stm32f407
基于芯片创建基础工程,修改时钟,编译下载到开发板,测试基础工程是否正常。正点原子串口助手显示如下,程序正常运行,基础工程创建完毕。
 
 添加 CMUX 软件包
 
 查看原理图,使用串口2
 
 CMUX配置,选择配置项进行配置,改为串口2,其余默认,保存即可。
 
 
软件包结构说明
 
 
工程增加串口2的驱动
 
 主函数修改如下
 
 编译下载到开发板。
设备查看
 
 开启串口多路复用功能 指令cmux_start

 因为没有接4G模块,所以设备报错。接上设备之后
 
 查看设备
 
 已经虚拟出3个设备。
启动过程如下
 
 