CMUX
是一种串口通信协议,意思是串口的多路复用
说人话就是通过虚拟出串口,把一个串口的数据发到多个客户端
帧
-
解决了什么问题?
实际的应用中,一个物理串口某一时间段内只能传输一个上层应用的数据流,如果有多个数据流同时要发送怎么办?使用CMUX! -
应用场景是什么?
TE和MS中间!TE就是终端设备,运行应用程序提供界面的。MS是移动站,具有调制解调器可进行无线通讯! -
物理实现是怎么样的?
多路复用是一个层,这个层将底层的物理串口连接用于收发数据,并为上层提供了多个逻辑上独立的收发通道,每个通道就是一个DLC链路。TE端的MUX主动发起通道建立请求,并设置通道参数,而MS端的MUX则等待TE端的服务请求,并根据自身能力提供相应的服务。 -
帧是什么?
帧类型包括控制帧和信息帧。
控制帧用于建立、拆除虚拟链路,包括SABM命令(建立DLC)、UA响应(确认响应SABM DISC)、DM响应(建立失败后响应DISC)和DISC命令(通知对端拆除DLC),在DLC0发送DISC,相当于关闭cmux。
信息帧用于传输数据,包括UIH命令和响应、UI命令和响应。
SABM 把指定的一端设为ABM(异步平衡模式),另一端接收后回UA,并把DLC发送接收状态置零。
+什么是异步平衡模式?
控制帧只有一字节
UIH发送不带V(S) V(R)也就是不带发送接收序列号,只计算地址域、控制域和长度域的FCS,FCS是帧校验序列。
- UI和UIH有什么不同?
UI帧也是携带数据的信息帧,但它不带有标头检查。与UIH帧不同的是,UI帧的完整性对所有域(地址域、控制域、长度域和信息域)进行计算。
简单来说,UIH帧在传输过程中只对一部分字段进行完整性检验,而UI帧对所有字段进行完整性检验。在使用UIH和UI帧时,需要根据具体需求选择合适的帧类型。
帧结构

- 标志域
位于开始和结束,0xF9普通模式,0x7E为高级模式,高级模式可以带错误恢复功能
- 地址域

63 条通道是因为3--8一共六位,0--63
-
控制域

-
信息域
只有UI帧、UIH帧才有 -
长度域

同地址域的第一位,1代表是长度域,0表示后续还有个字节 -
校验域
看不懂
实操
N725为例
待更新,目前还没找NEOWAY_CMUX软件/。。