一、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个设备。
启动过程如下