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 环境下测出。
关于逻辑加密卡一种安全方案的设计
CWDM无源模块测试解决方案简介
收购案的各家都是什么算盘,英特尔会笑到最后吗
什么是电瓶充电器显示浮充
SiTime发布以MEMS技术的Oscillator新产品S
什么是CMUX?为什么使用CMUX?
给你一把打开智能家庭的钥匙
机器学习将带给企业哪些好处
C语言入门教程-更多变量知识
华为一加都将推出电视 电视市场潜藏着诸多风险
PLC中怎样用X和Y两个轴走出直线轨迹?
凌力尔特推出8通道I2C温度、电压和电流监视器LTC2991
微软Windows版本2004将删除SwiftKey键盘
离散域下PI调节器设计学习与实现
北斗星通首次在单颗芯片上实现基带+射频+高精度算法一体化
数字温湿度传感器在雾霾监测中起到的作用
学校用电安全隐患如何防范 时丽花
中移动4G招标结果出炉: 华为中兴拿下一半份额
ngn是什么意思
混合信号PCB设计注意事项