最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

GSM0710中文版

IT圈 admin 31浏览 0评论

2024年3月22日发(作者:臧靖荷)

杭州波导软件有限公司

CMUX协议文档

修订情况记录:

版本号 修订人 修订原因

V0.8

V1.0

徐兵林 新建

高金山 完成

修订日期

2008-11-4

2009-2-11

审核

测试

签收

第1共39页

杭州波导软件有限公司

目录

CMUX协议文档 ............................................................................................................................. 1

1. 引言 ............................................................................................................................................. 4

1.1. 编写目的 .......................................................................................................................... 4

1.2. 编写背景 .......................................................................................................................... 4

1.3. 参考资料 .......................................................................................................................... 4

1.4. 名字解释 .......................................................................................................................... 4

2. CMUX协议框架.......................................................................................................................... 5

3. Non Error Recovery Mode ............................................................................................................ 8

3.1. 服务接口定义 ................................................................................................................... 8

3.1.1. 服务模型 .................................................................................................... 8

3.1.2. 启动CMUX服务模式 .............................................................................. 9

3.1.3. 建立DLC服务 .......................................................................................... 9

3.1.4. 数据服务 .................................................................................................. 10

3.1.5. 功耗控制 .................................................................................................. 10

3.1.5.1. Sleep模式 .................................................................................................. 11

3.1.5.2. Wake up模式 ............................................................................................ 11

3.1.6. 释放DLC服务 ........................................................................................ 11

3.1.7. 关闭服务 .................................................................................................. 11

3.1.8. 控制服务 .................................................................................................. 11

3.1.8.1. 07.10协议服务 .......................................................................................... 12

3.1.8.2 虚拟端口服务 ............................................................................................ 13

3.2. 数据帧结构..................................................................................................................... 14

3.2.1. 帧域 .......................................................................................................... 14

3.2.1.1. 标志域(Flag Sequence Field) .............................................................. 14

3.2.1.2. 地址域(Address Field)......................................................................... 14

3.2.1.3. 控制域(Control Field) ......................................................................... 15

3.2.1.4. 信息域(Information Field) ................................................................... 15

3.2.1.5. 长度指示域(Length Indicator) ............................................................ 15

3.2.1.6. FCS域(Frame Checking Sequence Field) ............................................ 15

3.2.2. 格式约定 .................................................................................................. 16

3.2.3. 帧有效性 .................................................................................................. 16

3.2.4. 帧中止 ...................................................................................................... 16

3.2.5. 数据帧之间的填充 .................................................................................. 16

3.2.6. 基本Basic ................................................................................................ 16

3.2.6.1. 约束 ........................................................................................................... 17

3.2.7. 高级Advanced ......................................................................................... 17

3.2.7.1. 控制字节透明 ........................................................................................... 17

3.2.7.2. 开始/停止传输-扩展透明 ........................................................................ 17

3.2.7.3. 流控(Flow-control)透明 ...................................................................... 18

3.2.7.4. 帧的结构 ................................................................................................... 18

3.3. 帧类型 ............................................................................................................................ 18

第2共39页

杭州波导软件有限公司

3.4. 过程和状态..................................................................................................................... 20

3.4.1. 建立DLC链路 ........................................................................................ 20

3.4.2. 释放DLC链路 ........................................................................................ 20

3.4.3. 信息传输 .................................................................................................. 21

3.4.4. 帧变量 ...................................................................................................... 21

3.4.5. 超时的考虑 .............................................................................................. 22

3.4.6. 多路控制通道 .......................................................................................... 22

3.4.6.1. 控制消息格式 ........................................................................................... 22

3.4.6.2. 控制消息类型参数 ................................................................................... 23

3.4.7. 电源控制与唤醒机制 .............................................................................. 32

3.4.8. 流控 .......................................................................................................... 32

3.5. 集成层Convergence Layer ............................................................................................ 34

3.5.1. 类型1-未结构化的字节流...................................................................... 34

3.5.2. 类型2-带参数的未结构化的字节流 ...................................................... 34

3.5.3. 类型3-不可中断的帧数据...................................................................... 36

3.5.4. 类型4-可中断的帧数据.......................................................................... 36

3.6. DLCI值 ........................................................................................................................... 37

3.7. 系统参数......................................................................................................................... 37

3.7.1. 确认时间T1 ............................................................................................ 37

3.7.2. 帧的最大长度N1 .................................................................................... 38

3.7.3. 最大重发次数N2 .................................................................................... 38

3.7.4. 窗口大小k ............................................................................................... 38

3.7.5. 控制通道的响应时间T2 ........................................................................ 38

3.7.6. 唤醒流程的响应时间T3 ........................................................................ 38

3.8. 启动和关闭MUX .......................................................................................................... 38

4. Error Recovery Mode ................................................................................................................. 39

第3共39页

杭州波导软件有限公司

1. 引言

1.1. 编写目的

本文档根据GSM07.10协议同时结合E901 Mobile参考代码,对CMUX多串口协议进

行了大致的描述。由于7.10协议可以使用两种传输模式non-error和error模式,本文档只介

绍non-error模式。

1.2. 编写背景

1.希望CMUX协议有一个总体框架;

2.想要了解CMUX多串口协议的通讯设计;

1.3. 参考资料

1.GSM07.10协议

2.E901 Mobile参考CMUX通讯代码

1.4. 名词解释

1.CMUX

2.ABM

3.ERM

4.DLC

5.FCS

6.SARM

7.UAU

8.DM

9.UIH

10.UI

11.PSC

12.MSC

13.HDLC

多串口协议

Asynchronous Balanced Mode

异步平衡模式

Error-Recovery Mode错误校验模式

Data Link Connection数据链路连接

Frame Check Sequence

帧校验序列

Set

Asynchronous Balanced Mode

设置异步平衡模式

Unnumbered Acknowledgement

未编号的确认信息

Disconnected Mode

断开模式

Unnumbered Information with Header Check

未编号的带校验头的信息

Unnumbered Information

未编号的信息

Power Saving Control

省电控制

Modem状态命令

High-level data link control高级数据链路控制

第4共39页

杭州波导软件有限公司

2. CMUX协议框架

多路复用协议提供在单个物理通信通道之上虚拟出多个并行的逻辑通信通道的能力,一

般应用于TE(Terminal Equipment)与MS(Mobile Station)之间,TE相当于智能手机的AP端,

MS相当于智能手机的MODEM端,下图给出了典型的协议层次关系:

蓝色部分就是MUX多路复用层,它利用底层的物理串口链接收发数据,同时向上层提

供若干个逻辑上独立使用的收发通道(上图中提供了四个逻辑通道,不同颜色表示)。每个

逻辑通道独立创建,可以拥有软件流控制。在实际使用中,TE端的MUX向MS端的MUX

发起通道建立请求,设置通道参数等,是主动的一方;MS端的MUX等待TE端的服务请

求,根据自身能力提供相应服务。也就是说,两者的角色是不对称的。

第5共39页

杭州波导软件有限公司

GSM07.10协议就是一个提供MUX功能的标准协议,也是实际中较广泛使用的协议。

在E901项目中,NXP的5209 MODEM软件提供标准的07.10 MUX功能,AP端开发了07.10

MUX的驱动,如上图所示,AP 端的MUX驱动利用了物理串口FFUART(COM1:),同时向

系统提供了三个逻辑串口(COM7: COM9:COM8:),其中COM7:是AT命令口TE<MS;

COM9:是URC口 TEMS;COM8:是数据端口TE<MS,当建立GPRS/EDGE数据连接

时使用。这样对RIL驱动而言,只看到COM7和COM9这两个虚拟串口,对PPP模块而言,

只看到COM8虚拟口,真正的物理串口COM1只对MUX驱动有意义,其他驱动看不到也

不关心COM1。

TE终端和MS终端之间的每个通道,称作一个DLC链路,它们是先后相互独立的建立

起来的。其数据传输采用8BIT字符的Start-Stop的方式进行传输,双方的数据交互使用了

后面定义的帧结构。出于缓冲区管理的目的,每条DLC链路都有各自的流控。总的链路也

有全面的流控的机制。

DLC有两种工作模式Error-Recovery Mode(ERM)错误校验模式和Non-Error-Recovery

第6共39页

杭州波导软件有限公司

Mode (non-ERM)模式。在DLC链路上可以同时使用ERM和nor-ERM模式。采用哪种模式,

在DLC建立的时候就决定好了。如果使用ERM校验模式,必须把DLC配置成ISO HDLC

透明机制,但是否使用ERM校验模式,是可选的。

non-ERM模式使用UI帧和UIH帧来装载用户数据。而ERM模式使用I帧装载用户数

据。

CMUX支持三种操作选项,分别是Basic,Advanced without Error Recovery和Advance with

Error Recovery。其中前两种不支持错误纠正。

Basic:

1)数据长度指示器代替HDLC的透明机制;

2)与HDLC的flag标志位不同;

3)不能在数据链路上使用XON/XOFF流控

4)从数据同步丢失中恢复,需要比较长的时间。

Advanced without Error Recovery

1)异步的HDLC跟ISO/IEC 13239

.协议一致;

2)

可以

在数据链路上使用XON/XOFF 流程控制;

3)从数据同步丢失中恢复,很快。

Advance with Error Recovery

1)使用HDLC ERM流程。

第7共39页

杭州波导软件有限公司

3. Non Error Recovery Mode

Non Error Recovery用在Basic模式和Advanced模式,它是一种不可靠的数据传输,所

以在链路很可靠的情况下才使用它。它有一套简单的流程;Advanced提供了数据透明机制:

它可以传输管理和控制信息;它允许MS或TE进入省电模式;它分了几个层,可以原封不动

的装载不同类型的数据。

透明机制必须在MUX会话开始的时候建立,它是整个MUX会话的一个特征。

这套简单的流程,使用UIH帧装载传输数据。这些帧比较容易处理,因为它使用的 Frame

Check Sequence(FCS)校验机制,可以事先计算,而不需要一个字节一个自己的去计算。

这套流程的使用是很直接的,不需要实现HDLC的状态机。

与可靠性相比,当及时的传递数据更重要时,该通道UI帧或UIH帧,都可以用。当对可

靠性要求比较高时,那就采用UI帧吧。

3.1. 服务接口定义

服务接口用在数据链路层与上层应用之间。这些接口由原语和参数界定。

3.1.1. 服务模型

第8共39页

杭州波导软件有限公司

从图中可以看到双方通讯的两端都需要串口模拟实体,在实体和逻辑层之间建立的数据

流通道和控制通道。图中的左端是主动请求发起端。右端是接收方。

3.1.2. 启动CMUX服务模式

mode = [Basic | HDLC - UIH frames | HDLC - UI frames | HDLC - frames].,如果控制通道

用了HDLC模式,那么其它用了DLC模式的参数配置可以忽略。

system_parameters = Port speed [9,6 | 19,2 | 38,4 | 57,6 | 115,2 |

230,4 kBit/s],

Maximum Frame Size [1 – 128 in Basic mode,

1 – 512 in HDLC modes

default: 31 for the basic

option and 64 for the

advanced option]

Acknowledgement Timer [0,01s-2,55s,

default: 0,1s]

Maximum number of retransmissions [0 – 100,

default : 3]

Response timer for the multiplexer control channel [0,01s-2,55s,

default: 0,3s]

Wake up response timer [1s – 255s, default 10s]

Window size for error recovery mode [1 – 7,

default : 2]

accept = [true | false]

一点要注意的是各个虚拟通道的一些参数可以不同。根据(图2)中,启动CMUX服务,需

要双方(左边是发起方,右边是接收方)建立4条消息,

1) 发起方:TS0710_t (mode, system_parameters)

2)发起方:TS0710_tion (mode, system_parameters

3)接收方:TS0710_se (mode, system_parameters, accept)

4)接收方:TS0710_m (mode, system_parameters, accept)

这4条消息建立过程大致如下:

首先发起方发起request(请求)消息,接着,接收方接到indication(指示)消息,马上接

收方发出response(反馈)消息,最后,发起方收到confirm(确认)消息。这个过程做一些

系统参数配置。

3.1.3. 建立DLC服务

DLCI = 1-63 (DLCI number)

System parameters = Type of frame [UIH | UI | I, default: UIH],

第9共39页

杭州波导软件有限公司

Convergence layer [1 - 4, default: 1]

Priority [0-63]

Acknowledgement Timer [0,01s-2,55s,

default: 0,1s]

Maximum Frame Size [1 – 32768,

default: 31 for the basic option and

64 for the advanced option]

Maximum number of retransmissions [0 – 255,

default : 3]

Window size for error recovery mode [1 – 7,

default : 2]

Accept = [true | false]

建立服务,是配置各个通道的参数,让通道能工作。它需要4条消息:

1) 发起方:

TS_0710_DLC_t(DLCI, system_parameters)

2) 发起方:TS_0710_DLC_tion(DLCI, system_parameters)

3) 接收方:TS_0710_DLC_se(DLCI, system_parameters, accept)

4)

接收方:

TS_0710_DLC_m(DLCI, system_parameters, accept)

大致的过程和启动服务的流程差不多。建立服务是建立通道,当然是配置通道参数,后者是

配置系统参数。

3.1.4. 数据服务

数据服务使用了两条消息:

1) TS_0710_t(DLCI, User_data)

2) TS_0710_tion(DLCI, User_data)

DLCI = [1 – 63] DLC over which the data is to be transmitted.

User_data= Data to be transferred organised in accordance with the

convergence layer of the DLC

3.1.5. 功耗控制

功耗控制包括sleep模式和wake up模式

第10共39页

杭州波导软件有限公司

3.1.5.1. Sleep模式

有三条消息:

1) TS_0710_t

2)TS_0710_tion

3)TS_0710_m

注意的是这里不需要接收方发出反馈(Respone)消息,当然有这种情况,就是接收方没有进入

Sleep模式,也被认为是进入Sleep模式。

3.1.5.2. Wake up模式

有两条消息:

1)TS_0710_tion

2)TS_0710_se

3.1.6. 释放DLC服务

用来断开DLC通道,有两条消息

1)

TS_0710_DLC_t(DLCI)

2)

TS_0710_DLC_tion(DLCI)

参数:

DLCI = [1 – 63] Number of the DLC to be released.

同建立通道一样,最大的可以有63个通道。

3.1.7. 关闭服务

两条消息:

1) TS_0710_t

2) TS_0710_tion

关闭CMUX服务,和启动CMUX对应。

3.1.8. 控制服务

这里把控制服务分成独立的一段。主要是控制服务比较复杂。分作两部分:07.10协议服务

Port Emulation 服务。

第11共39页

杭州波导软件有限公司

3.1.8.1. 07.10协议服务

 DLC 参数判定

DLC 参数判定用来设置具体DLC参数,有四个消息;

1)

TS0710_t (DLC, DLC parameters)

2)

TS0710_tion (DLC, DLC_parameters)

3)

TS0710_se (DLC, DLC_parameters, accept)

4)

TS0710_m (DLC, DLC_parameters, accept)

用来改变一个具体的DLC通道的参数。

DLC_parameters= frame type [ UIH | UI | I ,

default: UIH ]

Convergence Layer Type [ Type 1 | Type 2 | Type 3 | Type 4,

default: Type 1]

Priority [1-63,

default: according to table in subclause 5.6]

Acknowledgement timer [10 ms - 25.5 sec,

deault: 100 ms]

Maximum Frame Size [1 – 32768,

default: 31 for the basic option and

64 for the advanced option]

Maximum number of retransmissions [0 – 100,

default : 3]

Response timer for the multiplexor control

channel [0,01s-2,55s, default: 0,3s]

Wake up response timer [1s – 255s, default 10s]

Window size for error recovery mode [1 – 7,

default : 2]

accept = [true | false]

 DLC 服务判定服务

用来判别DLC 服务是那一项具体的服务。

1)

TS0710_t (DLC, Service_parameters)

2)

TS0710_tion (DLC, Service_parameters)

3)

TS0710_se (DLC, Service parameters, accept)

4)TS0710_m (DLC, Service_parameters, accept)

service_parameters = Service [ data | voice 64kbit/s A-law PCM | reserved 1 | reserved 2 ],

voice codec [ GSM 06.21 | 64kbit/s u-law PCM | coded ADPCM 32kbit/s | coded half rate |

128 kbit/s PCM | reserved ]

第12共39页

杭州波导软件有限公司

 测试服务

1)TS0710_t (Test data)

2)TS0710_m (Test data)

 流程控制

1)

TS_0710_t(DLCI,State)

2)

TS_0710_tion(DLCI, State)

DLCI = [1 – 63] DLC over which the data is to be transmitted.

State = enabled (data may be transferred), disabled (data may not be transferred)

控制使能或者不使能数据传输。

3.1.8.2 虚拟端口服务

 移动DLC参数判定服务

1) TS0710_t (DLC, Port_parameters)

2)TS0710_tion (DLC, Port_parameters)

3)TS0710_se (DLC, Port parameters, accept)

4)TS0710_m (DLC, Port_parameters, accept)

port_parameters = Port speed [2,4 | 4,8 | 7,2 | 9,6 | 19,2 | 38,4 | 57,6 | 115,2 |

230,4 kBit/s],

Data bits [ 5 | 6 | 7 | 8,

default: 8 bits |

Stop bits [ 1 | 1,5,

default: 1 bit |

Parity [ no parity | parity,

default: no parity |

Parity Type [ odd | even | mark | space]

accept = [true | false]

 控制参数服务

1)TS0710_t (DLC, Control_parameters)

2)TS0710_tion (DLC, Contol_parameters)

3)TS0710_se (DLC, Contro_parameters)

4)TS0710_m (DLC, Control_parameters)

system_parameters = Modem Signal [DTR/DSR | RTS/CTS | RI | DCD ],

Break Signal [0—3 s in steps of 200 ms,

default 0ms ],

Buffers [do not discard buffers, discard buffer

default: do not discard buffers],

Break signal sequence [ as soon as possible | in sequence,

第13共39页

杭州波导软件有限公司

default: in sequence]

 DLC通道指示服务

1)

TS0710_t (DLC, Line Status parameter)

2)

TS0710_tion (DLC, Line Status parameter)

Line status parameter = Port speed [no errors, overrun error, parity error, framing error]

3.2. 数据帧结构

3.2.1. 帧域

Flag(1B) Address (1B) Control(1B) Length(1~2B) Info(Length长度,可变) FCS(1B) Flag(1B)

注意:数据长度指示域,可能有,可能没有,如果没有采用透明机制,则有数据长度指示

域。

3.2.1.1. 标志域(Flag Sequence Field)

每一帧开始和结束都有一个标识flag,基本模式Flag固定为0xF9。高级模式为0x7E。

3.2.1.2. 地址域(Address Field)

Bit No. 1

Signal

2 3 4 5 6 7 8

DLCI EA C/R

图2:地址域的格式

DLCI是DLC(Data Link Control数据链路控制)的标识号(identify)。

EA位表示该域是否只有本字节。为1表示本字节就是长度域,为0表示后续还有一个字

节。这里只能为1,以后扩展协议后,会有为0的情况。

C/R(Command/Response)用来指示是命令还是响应。Initiator是指MUX初始化的那一

方,而responder是响应MUX初始化的那一方。

表1:C/R位的用法

Command/response Direction

Command

Response

C/R value

Initiator -> Responder 1

Responder -> Initiator 0

Initiator -> Responder 0

Responder -> Initiator 1

如主机建立的MUX,主机发命令包时,Address为0x7,猫响应Address也是0x7。

第14共39页

杭州波导软件有限公司

3.2.1.3. 控制域(Control Field)

表2:控制域的编码

Frame Type

SABM (Set Asynchronous Balanced Mode)

UA (Unnumbered Acknowledgement)

DM (Disconnected Mode)

DISC (Disconnect)

UI (Unnumbered Information)

1 2 3 4 5 6 7 8

备注

1 1 1 1 P/F 1 0 0

1 1 0 0 P/F 1 1 0

1 1 1 1 P/F 0 0 0

1 1 0 0 P/F 0 1 0

UIH(Unnumbered Information with Header check) 1 1 1 1 P/F 1 1 1

1 1 0 0 P/F 0 0 0

可选

P/F是Poll/Final位,表示测试/返回。后续会介绍。

比如建立DLC的时候,主机发SABM帧, 并把P置1,如果成功,对方返回UA帧,并把F

置1,否则返回DM帧,并把P置1。

3.2.1.4. 信息域(Information Field)

信息域,它是实际数据域。UI帧或UIH帧,才有该域。

3.2.1.5. 长度指示域(Length Indicator)

只有在基本模式下,该域才存在。可以是1个字节,也可以是2个字节长度;

Bit No. 1

Signal

2 3 4 5 6 7 8

E/A L1 L2 L3 L4 L5 L6 L7

图3:长度域的首字节

2 3 4 5 6 7 8 Bit No. 1

Signal

L8 L9 L10 L11 L12 L13 L14 L15

图4:长度域的第二个字节

EA位表示该域是否只有本字节。为1表示本字节就是长度域,为0表示后续还有一个

字节。

3.2.1.6. 校验域(Frame Checking Sequence Field)

帧的校验序列。它是两个CRC校验码,异或后,再取反的结果。这两个CRC校验码,都

是8位的,生成的多项式为x8 + x2 + x + 1。一个是xk*(x7+x6+x5+x4+x3+x2+x1+1),其中k是

校验数据的BIT位的数目,一个是x8*(校验数据),校验数据,就是该帧的实际数据。由于比

较复杂,可以参考CRC校验原理。在包为UIH帧时,实际数据域,不参与校验,只校验Address,

Control和Length这几个域。

第15共39页

杭州波导软件有限公司

3.2.2. 格式约定

所有传输的字符以“一个起始位,八个数据位,无奇偶校验位和一个停止位”进行传输。

所有的域,先传输域的第1位。对于字节而言,也就是低位先传。

地址,命令,响应和序列数,都先传低位。

FCS序列,先传高次方的项的系数。

注意:这些约定意味着常常需要转换BIT位顺序。

3.2.3.

帧有效性

检验数据传输是否正确,可以根据下面的条件判断:

1)is not properly bounded by two flags不正确的边界条件位;

2)在两个边界条件位(flags)之间,至少有三个字节。

3)FCS的CRC校验错误;

4)地址域大于一个字节。

无效帧,通常会在不通知发送方的情况下被丢弃。Multiplexer的MS或TE端接收到无效

帧后,所要做的处理,由它的实现者去考虑。然而,接收到FCS校验域错误的帧的提示信息,

对音频/视频的DLC或许很有用。

3.2.4. 帧中止

不支持帧的中止。

3.2.5. 数据帧之间的填充

除了省电模式唤醒的过程,在数据帧与数据帧之间,需要填充一些stop标识。这种填充

了标识字符的情况下,接收方应该能正确处理。如果接收端,收到了多于3个连续的标识,

它在第一时间开始传输连续的标识(参见省电部分)。

3.2.6. 基本Basic

Flag

Address

Control

Length Indicator

Information

FCS

Flag

1B 1B 1B 1B/2B

长度不确定

1B 1B

图5:basic模式的帧的结构

在基本模式下的flag为下面的格式:=0xF9

Bit 1 2 3 4 5 6 7 8

Data

1 0 0 1 1 1 1 1

图6:basic模式的标识域

第16共39页

杭州波导软件有限公司

3.2.6.1. 约束

1)结束flag也可能是下一帧的开始标志。

2)在高级的模式中flag不一样。

3)不支持DC1/XON和DC3/XOFF的控制字符。

3.2.7. 高级Advanced

如果MUX会话开始,就使用了高级模式,那么,它就可以用于各种数据帧了。这种机

制基于控制字节透明(a control octet transparency)。它基于每帧的开(Opening)和闭(Closing)

的Flag标志的出现是唯一的。这些标志不可能出现在数据帧的信息域。如果在TE-MS链路上,

出现了同步的丢失,这种机制允许快速的同步恢复。

3.2.7.1. 控制字节透明

下面的透明机制应用于每个数据帧,从地址域到FCS域(含)。ESC控制字节,是一

个透明标识符,它标识了应用了下面透明流程的数据帧的一个字节。ESC控制字节编

码如下:

传输器(transmitter)将检查从开标识到闭标识的一个数据帧,包括地址域,控制域,

FCS域。FCS域是这样计算的:

- 当出现了标识或ESC控制字节时,补足该字节的第6位,并且

- 在传输的前一个字节与本字节中间,插入一个ESC控制字节(Insert a control escape

octet immediately preceding the octet resulting from the above prior to transmission)。

接收器(receiver)将检查两个标识字节之间的数据帧,收到一个ESC控制字节,并且

预先进行FCS计算:

- 丢弃ESC控制字节,并且

- 通过补足它的第6位,恢复紧接着的字节。

其他字节值也可通过传输器,包含在透明流程中。因此,包含哪些东西,取决于前述的

系统和应用程序的约定。

3.2.7.2. 开始/停止传输-扩展透明

传输器(transmitter)对追加到标志域和ESC控制字节上的其他字节应用上述的透明流

程。目前,仅有的其他字节是流控(flow-control)字符。流程参见3.2.6.3。

第17共39页

杭州波导软件有限公司

3.2.7.3. 流控(Flow-control)透明

流控(Flow-control)透明选项,为ISO/IEC646(例如1000100x和1100100x分别表示

x可以是0或者1)DC1/XON和DC3/XOFF控制字符,提供了透明的流程。这就确保了字节流

不包含像流控字符(不管奇偶校验)那样,能被中间设备打断的数值。

3.2.7.4. 帧的结构

帧的结构如图7所示。注意,这种结构不包括同步(例如,开始和停止位)或者透明目

的所增加的信息。传输的顺序从左往右。

透明机制被激活的情况下,帧的结构如下所示:

Flag

Address

Control

Information

FCS

Flag

1B 1B 1B

长度不确定

1B 1B

图7:advanced模式的帧结构

在高级模式下的flag为下面的格式:=0x7E

Bit 1 2 3 4 5 6 7 8

Data

0 1 1 1 1 1 1 0

图8:advanced模式的标识域

注意:结束flag也可能是下一帧的开始标志。

3.3. 帧类型

1) Set Asynchronous Balanced Mode (SABM) command

2) Unnumbered Acknowledgement (UA) response

3) Disconnected Mode (DM) response

4) Disconnect (DISC) command

5) Unnumbered information with header check (UIH) command and response

6) Unnumbered Information (UI) command and response

3.3.1. SABM command

SABM命令帧用来把指定的一端设置成异步平衡模式(ABM),这种模式下,所有的控

制域的长度都是一个字节。另外一端接收到SABM命令帧后,第一时间发送一个UA回应帧,

作为确认。接收到该命令,DLC发送和接收的状态,都将被置0。

3.3.2. UA response

UA回应帧,是对SABM和DISC这两个命令帧的确认。

第18共39页

杭州波导软件有限公司

3.3.3. DM response

它用于报告一端(station)逻辑上从数据链路上断开的状态。链路断开后,将收不到任

何命令,直到收到SABM重新建立通道为止。如果在链路断开状态,收到DISC命令,就应

该发一个DM作为响应。

3.3.4. DISC command

DISC命令用于终止通道。一端用它通知另外一端,它正在挂起操作并且将进入逻辑断

开模式。在处理这个命令以前,接收一端,用UA命令去回应,作为对收到DISC命令的确认。

用DLCI 0通道传送的DISC命令,跟MUX的关闭命令(见3.4.6.3)具有相同的意思。关

于关闭流程的更多信息,参加3.8.2。

3.3.5. UIH command/response

UIH命令帧/响应帧,用来传递不带有能影响任何一端的V(S)和V(R)变量的信息。

被传输的信息的完整性与传输到正确的DLCI相比,不太重要时,可以用UIH。UIH的帧,

FCS只对地址域,控制域和长度域,进行计算。

UIH命令帧/响应帧的接收,不是顺序的编号(被数据链路流程检验)。因此,假如数

据链路在受保护的该命令部分的传输过程中发生了异常,UIH数据帧可能丢失;假如对该命

令的回复过程中出现了异常,UI数据帧可能会重复。UIH命令帧/响应帧,没有指明回应帧。

3.3.6. UI command/response

UI命令帧/响应帧,用来传递不带有能影响任何一端的V(S)和V(R)变量的信息。

UI命令帧/响应帧的接收,不是顺序的编号(被数据链路流程检验)。因此,假如数据链路

在受保护的该命令部分的传输过程中发生了异常,UI数据帧可能丢失;假如对该命令的回复

过程中出现了异常,UI数据帧可能会重复。UI命令帧/响应帧,没有指明回应帧。

对UI数据帧来说,FCS对所有域(地址域,控制域,长度域,信息域)进行计算。是否

支持UI数据帧,是可选的。

第19共39页

杭州波导软件有限公司

3.4. 过程和状态

TE

AT+CMUX=„„

OK

SABM(0)

UA(0)

SABM(1)

UA(1)

SABM(2)

UA(2)

SABM(3)

UA(3)

UIH(1,“ATrn”)

UIH(1,“OKrn”)

UIH(0,CLD)

UIH(0,CLD-ACK)

MS

3.4.1. 建立DLC链路

多数情况,DLC链路是由TE建立的,然而,协议上是对等的,MS也可以建立它,但本

文不叙述这种情况。

建立过程如下:首先发起方发送P位为1的SABM命令,地址域是通道的编号。响应方

发F位为1的UA作为回应。如果响应方没准备好,或者不愿意建立,那么,它就回一个F位

为1的DM帧。

一旦DLC建立成功,就意味着进入了连接状态,可以传输数据了。

如果T1时间以内,收不到UA或DM的响应,就重发SABM。这个动作可以一直重复,直

到得到响应,或者上层应用采取了其他措施。

如果没有协商过程,DLC的参数就是默认的。

3.4.2. 释放DLC链路

双方都可以发送P位为1的DISC命令,来释放DLC链路。另外一方回应F位为1的UA帧。

如果释放成功,DLC就进入断开状态。

如果收到DISC命令时,发现已经是断开状态了,就发一个DM作为回应。

如果T1时间内,没有收到UA或者DM的响应,就重发DISC命令。

这个动作可以一直重复,

直到得到响应,或者上层应用采取了其他措施。

第20共39页

杭州波导软件有限公司

3.4.3. 信息传输

3.4.3.1. 信息数据

信息使用UI或UIH进行传输。UIH一定要支持,UI是可选的。

当知道数据被正确的接收非常重要时,就采用UI,例如IP业务包。传输出错无所谓时,

使用UIH。由于及时性的关系,不能采用差错恢复的机制时,可以使用UI或UIH,比如音频

数据。

双方都要把P位置0。C/R位,参见上面的描述。

信息的最大长度,受系统的参数所限制。

3.4.3.2. 优先级

每个数据流,都有对应的优先级。总共有0-63级别的优先级,数字越小,表示优先级越

高。TE位每个DLC指定一个优先级,并且,用控制通道,通知MS。

如果一条消息缺省优先级,DLC将根据3.6中的DLCI分配表指定它的优先级。传输器

(transmitter)控制哪些帧要传输,以及对它们按何种结构进行封装,并且不描述这些工作

是如何完成的。假如比现在正在传输的数据的优先级更高的数据正在等待,传输器有如下几

个可以采用的选项:

a) 先传输完当前帧。

b) 中止对当前帧的打包,传输当前的FCS和终止标识Flag(只对advanced),并且开

始传输更高优先级的数据。

带有更高优先级数据的DLC,不会阻止任何低优先级的DLC。高优先级和低优先级的帧

的交叉,是必要的,因为这能避免低优先级通道被永远堵塞。

3.4.4. 帧变量

P位置1,表示通道的一端向另外一端请求一个或者一组回应(response)。F位置1,表

示通道一端指明发一个响应帧,对另外一端的P命令进行回应。

在命令帧和响应帧里,P/F位,最好用一个函数进行设置。

3.4.4.1. P位函数

P位置1,向另外一端请求F位置1的响应帧。

在一个特别的DLCI,在给定的时间和给定的方向,只有一个P位置1的帧。

接收到一个P位置0的SABM或者DISC命令帧,接收到的帧,将被丢弃。

如果接收到未被请求的DM响应,这个帧要做与P/F设置无关的处理。

通道的一端在发送另外一个P位置1的帧之前,它会从另外一端收到一个F位置1的回应

帧。如果在系统定义的时间段以内,没有收到回应帧,重发一个P位置1的帧,用于错误恢

复的目的,是允许的。

第21共39页

杭州波导软件有限公司

3.4.4.2. F位函数

F位置1的回应帧,一端回应另外一端的P位置1的命令帧时,使用它。要求在第一时间

回应。

一端可以随时异步发送F位置0的回应帧。但如果接收到的是F位置0的UA回应帧,接受

的帧,将被丢弃。

如果接收到未被请求的DM响应,这个帧要做与P/F设置无关的处理。

假如一端接收到一个P位置1的命令帧,F位置1的回应帧的传输,将优先于其他命令。

但模式设置命令(SABM或者DISC)是个例外。

3.4.5. 超时的考虑

为了检测无回应或者回应丢失的情况,每端都应该提供一个响应超时的函数(T1)。

超时后,应该启动错误恢复的流程。

为了解决争夺的情况,超时函数的时长,在两端最好不要相等。

一端传输过一帧,等待回应时,超时函数就应该启动。收到回应,则停止计时。

如果响应超时函数超时了,重发P位置1的命令帧,超时函数重新开始计时。

3.4.6. 多路控制通道

在TE和MS通信开始时,使用3.8.1的流程,建立了DLCI 0通道作为控制通道。它用来在

两个MUX(multiplexer)之间传递信息。它用ERM模式或者non-ERM模式的流程,这个在

用+CMUX命令的时候,就决定了的。如果ERM的流程是可用的,就用它们。

3.4.6.1. 消息格式

Type Length Value1 Value2 … Value n

所有在多个MUX之间被传递的信息,都使用上述的type,length,value的格式。

上述的每个单元格至少占用1个字节,type和length有扩展位,所以,它们有可能多于1

个字节。

type域的第一个字节的bit位格式如下:

Bit No.

Value

Bit No 1

1 2 3 4 5 6 7 8

EA CR T1 T2 T3 T4 T5 T6

2 3 4 5 6 7 8

考虑EA=1时,长度域的扩展字节的bit位格式如下:

Value EA T7 T8 T9 T10 T11 T12 T13

EA位就是扩展位,其值为1表示当前就是本域的最后一个字节。

C/R位指示该信息是命令帧,还是回应帧。

第22共39页

杭州波导软件有限公司

T位表示类型编码。每个命令都有自己独特的编码方法。2^6=64,这就是说一个字节的

type域,能表式63种不同的信息类型。单字节的信息类型,在本文档中已经定义。

length的第一个字节的bit位格式如下:

Bit No. 1

Value

2 3 4 5 6 7 8

EA L1 L2 L3 L4 L5 L6 L7

后续字节,也是类似的格式。EA的意义跟上面的相同。

L1是最低位,L7是最高位。2^7=128,也就是一条信息最大可以有127个字节的value

值。

在不超过最大长度的情况下,一帧可以包含多条信息。但一条信息不能分割封装在多帧

中。

3.4.6.2. 操作流程

消息都是成对存在的,一个命令消息和一个相应的回应消息。假如C/R位置为1,消息

是命令,假如它置0,消息是回应。一个回应消息,跟引发它的命令一样,拥有同样的T位。

假如在T2的时间内,一个命令没有产生一个回应,命令将被重新发送N2次。假如N2

次的发送,都没有收到回应,MUX(multiplexer)的控制通道被认为有错,并且发出一个警

报。错误情况的解决方法,相应的执行。

3.4.6.3. 消息类型和处理(Action)

3.4.6.3.1. 参数协商PN(Parameter Negotiation)

这个流程是可选的。如果这个命令不支持,DLC都使用默认值。

在一个DLC用3.4.1的机制建立之前,TE和MS必须对本DLC使用的参数进行协商。这些

参数都由PN决定。

PN使用下面的type域字节:

Bit No. 1

Value

2 3 4 5 6 7 8

EA CR 0 0 0 0 0 1

Length域字节包括值8和下面8个值字节。值字节包括表3的信息。

表3:PN

Value Octet Bit1

1

2

3

4

5

6

7

8

D1

I1

P1

T1

N1

N9

K1

Bit2 Bit3 Bit4

D2

I2

P2

T2

N2

D3

I3

P3

T3

N3

D4

I4

P4

T4

N4

N12

0

Bit5 Bit6 Bit7 Bit8

D5

P5

T5

N5

D6

P6

T6

N6

0

0

T7

N7

0

0

T8

N8

CL1 CL2 CL3 CL4

N10 N11

K2 K3

N13 N14 N15 N16

0 0 0 0

NA1 NA2 NA3 NA4 NA5 NA6 NA7 NA8

各个域的编码如下:

D位定义了其他信息提及的DLCI,D1是最低有效位。

I位定义了用来在特殊DLC装载信息的数据帧的类型。见表4。

第23共39页

杭州波导软件有限公司

表4:I位的含义

Meaning

Use UIH frames

Use UI frames

I1 I2 I3 I4

0

1

0

0

1

0

0

0

0

0

0 Use I frames (note) 0

其他值保留。默认值是0000。缺省协商的情况下,(为DLCI>0)使用的帧类型,跟MUX

控制通道使用的相同。

CL位定义了特殊DLC使用的集成层的类型。参见表5。

表5:CL位的含义

Meaning CL1 CL2 CL3 CL4

Type1

Type2

Type3

0

1

0

0

0

1

0

0

0

0

0

0

其他值保留。默认值是0000。

P位定义了指派给特殊DLC的优先级。范围是0-63,0是最低的优先级。P1是最低有效

位。默认值由DLCI的值给定,参见3.6。

T位定义了确认时间T1,参见3.7.1。单位是毫秒,T1是最低有效位。

N位定义了最大帧的大小N1,参见3.7.2。该参数是六位的数字,N1是最低有效位。

NA位定义了重发的最大次数N2,参见3.7.3。该参数是八位数字,K1是最低有效位。

TE向MS传输一个参数协商(PN)命令,该命令的域里,赋值成TE想要为特殊DLCI

使用的值。MS回应一个参数协商(PN)回应,该回应带有MS提议的值。MS构建回应时,

参照下面的规则:

- DLCI值不变。

- 使用I帧或UI帧,是可选的,因此,没实现UI帧或I帧,MS采用UIH帧回应。

- MS不会改变被TE提议的集成层。

- MS不会改变被TE提议的优先级。

- T1值是TE使用的,是不可协商的;MS将插入它自己的T1。建议每方使用不同的T1。

- 假如没有足够的内存,MS将为最大帧的大小N1,提议一个更小的值。

- N2是TE使用的,是不可协商的;MS将插入它自己的N2值。

- 假如没有足够的内存,MS将为窗口大小k,提议一个更小的值。

假如TE认为MS的回应是可以接受的,TE将根据3.3.1的流程,建立DLC。假如回应是不

可接受的,TE将发起另一个带有新参数的PN命令,或者向上层传递失败信息。

假如网络上有一个来电到达MS,这时没有已经建立好的DLC,MS将发起PN流程,并

建立一个DLC。这种情况实际上是不会发生的,因为TE通常为各种功能建立DLC,在容量

交换后,它与MS所共享。来电的提示,将抛出(be through?)一个07.07或者07.05的结

果代码(result code)。

3.4.6.3.2. 省电控制PSC(Power Saving Control)

参见3.4.7。省电控制消息使用如下的type域字节:

Bit No. 1

Value

2 3 4 5 6 7 8

0 0 1 0 EA CR 0 0

Length字节包含值0,没有无值字节。

假如一端想进入省电状态,它传输一个PSC命令;另一端回复一个PSC回应。

假如一端想请求让另外一端进入省电状态,它传输一个PSC命令;另外一端回复一个

PSC回应。响应端可以进入省电状态,但这不是必须的。

第24共39页

杭州波导软件有限公司

3.4.6.3.3. 关闭MUX(Multiplexer Close Down)

参见3.8.2。

MUX的CLD命令用于重置链路为非多串口的正常AT命令模式。它的type域字节如下:

Bit No. 1

Value

2 3 4 5 6 7 8

EA

C/R

0 0 0 0 1 1

Length字节包含0值,没有值(value)字节。

3.4.6.3.4. 测试命令

测试命令用来测试TE和MS的链接。Length字节描述了值的字节数量,它用于验证模型。

对端将回应具备相同的值的字节。它的type域字节的格式如下:

Bit No. 1

Value

2 3 4 5 6 7 8

EA CR 0 0 0 1 0 0

3.4.6.3.5. 流控开FCon(Flow Control On)

流控命令用来处理聚集的流(aggregate flow)。当任何一端可以接收新信息的时候,

它发送这个命令。

Length字节包含值0,没有值(value)字节。它的type域字节如下:

Bit No. 1

Value

2 3 4 5 6 7 8

EA CR 0 0 0 1 0 1

3.4.6.3.6. 流控关FCoff(Flow Control Off)

流控命令用来处理聚集的流(aggregate flow)。当任何一端不能接收新信息的时候,

它发送这个命令。另外一端不能发送数据帧,除了用控制通道(DLC=0)。

Length字节包含0值,没有值(value)字节。它的type域字节如下:

Bit No. 1

Value

2 3 4 5 6 7 8

EA

C/R

0 0 0 1 1 0

3.4.6.3.7. 猫状态命令

MSC

Modem Status Command)

想往一个数据流中传送V.24控制信号,这是通过发送MSC命令来完成的。MSC命令有

一个强制的控制信号字节和一个可选的中止信号字节。当basic模式时,这个命令才有效

(relevant)。

这个命令将在DLC建立之后,优先于任何用数据,进行传输。

Command

Length

DLCI

V.24 signals

Break Signals(optional)

这个命令包含值2或值3,并且有2或3个值字节。

DTE和DCE都使用这个命令,相互通知它们自己V.24控制信号的状态。MSC命令的长

度是4或5字节,这依赖于中止信号。

Command域字节的格式如下:

Bit No. 1

Value

2 3 4 5 6 7 8

EA CR 0 0 0 1 1 1

C/R位用来指示它是命令还是回应。

每当信号改变,DTE或DCE发送这个命令,来指明每个信号的当前的状态。当DTE或

DCE接收到猫命令,它总是发送回一个回应。接收方或发送方的V.24信号到控制信号字节

里的BIT位的映射表,分别在表6和表7中给出。

MSC命令中,发送方自己的V.24信号,将被发送;但在回应中,它复制了从将被送回

第25共39页

杭州波导软件有限公司

的命令帧里,接收到的V.24信号。

DLCI域标识了该命令应用的(specific)DLC。第2位总被置1,EA位根据3.2.1.2的描

述设置。

Bit No. 1

Value

2 3 4 5 6 7 8

DLCI EA 1

图9:地址域的格式

紧跟着DLCI域的是控制信号域,它包含信号状态的表现(representation),见图10。

扩展位的使用,允许添加其他字节,以满足其他情况。目前,可选的第二个字节被定义为用

来处理中止信号的传输。

Bit No. 1

Value

2 3 4 5 6 7 8

EA FC RTC RTR Reserved0 Reserved0 IC DV

图10:控制信号字节的格式

控制信号字节的描述如下:

EA位就是扩展位,其值为1,表示当前就是本域的最后一个字节。

FC(Flow Control)流控位,其值为1,表示不能接收数据帧。

RTC(Ready To Communicate)位。其值为1,表示设备准备好发送数据。

RTR(Ready To Receive)位。其值为1,表示设备准备好接收数据。

Bit5/Bit6,保留位,以后使用。发送方置0,接收方忽略它。

IC(Incoming Call)位。其值为1,表示一个来电。

DV(Data Valid)位。

其值为1,表示有效数据正在发送。

控制字节映射到V.24信号,根据下表:

表6:接收

时转

V.24信号的映射表

Control Signal Byte DTE receiving

bit number, name

3, RTC

4, RTR

7, IC

8, DV

DSR

CTS

RI

DCD

107

106

125

109

DCE receiving

V.24 circuit

108/2

-

-

DTR

-ignored

-ignored

signal V.24 circuit signal

RFR (note) 133

NOTE Circuit 133, RFR (Ready for Receiving) is commonly assigned to the connector pin that is

alternatively used for circuit 105, RTS. It is sometimes referred to by that name.

表7:发送时转

V.24信号的映射表

Control Signal Byte DTE sending

bit number, name

3, RTC

4, RTR

7, IC

8, DV

signal

DTR 108/2

DCE sending

DSR 107

CTS 106

RI 125

DCD 109

V.24 circuit signal V.24 circuit

RFR (note) 133

always 0- -

always 1- -

NOTE Circuit 133, RFR (Ready for Receiving) is commonly assigned to the connector pin that is

alternatively used for circuit 105, RTS. It is sometimes referred to by that name.

假如一端由于流控的原因,不能传输数据帧,但它想自己停止接收更多的帧,它为了发送

流控信号,可以继续发送不包含用户数据的帧(比如,只有控制信号字节和可选的中止信号字节)。

EA位就是扩展位,其值为1,表示当前就是本域的最后一个字节。

Bit No

1 2 3 4 5 6 7 8

signal EA B1 B2 B3 L1 L2 L3 L4

第26共39页

杭州波导软件有限公司

图11:中止信号字节的格式(可选的)

中止信号字节通过数据流能携带被DLC检测到的中止信号的信息。每个位的含义如下

表:

表8:中止信号字节的含义

Bit

B1

B2

B3

Value

1

0

0

0

Meaning

字节编码了一个中止信号

字节没编中止信号

保留,发送方置0,接收方忽略

保留,发送方置0,接收方忽略

L1-L4 4-bit value Length of break in units of 200ms

L1-L4是中止的长度(break length),L1是最低有效位,L4是最高有效位。

当一端接收到一个中止字节,它将处理接收到的信息,并且通过适当的途径传递它。这

不在本文档的描述范围内。

3.4.6.3.8.

不支持命令NSC(Non Support Command)

当接收端不支持某种类型的命令时,发该命令帧作为回应。

Length字节不含值1,并且只有一个值字节。

Type域字节格式如下:

Bit No.

1 2 3 4 5 6 7 8

signal EA CR 0 0 1 0 0 0

值字节包含不支持命令的命令格式。

值字节(value octet)格式如下:

Bit No.

1 2 3 4 5 6 7 8

signal EA CR Command type

3.4.6.3.9.

远程端口协商RPN(Remote Port Negotiation)

这个命令是可选的。这个命令用来配置远程端口通信设置的。

所以的设备都要保证在发送数据前,通信设置被正确的配置。如果协商没完成,将对所

有参数采用默认值。

在连接状态,当通信设置变动后,设备必须发送PRN。端口线路状态(Port Line Status)

变动后,也一样要发PRN。

Command Length Value

RPN 1 or 8 octet1

(DLCI)

Value

octet2

Value

octet3

Value

octet4

Value

octet5

Value

octet6

Value

octet7

Value

octet8

optional optional optional optional optional optional optional optional

RPN的type域字节格式如下:

Bit No.

1 2 3 4 5 6 7 8

signal EA CR 0 0 1 0 0 1

Length字节包含值1或8,并且它有1个或8个值字节。

DLCI字节格式如下:

Bit No.

1 2 3 4 5 6 7 8

DLCI signal EA 1

第27共39页

杭州波导软件有限公司

DLCI字节的第2位没用,固定为1。EA位,依据3.2.1.2的描述。Value数组:

端口值字节(Port Value Octet)格式如下:

Value Octet Bit1

2

3

4

5

6

7

8

B1

D1

FLC1

Bit2

B2

D2

FLC2

Bit3

B3

S

FLC3

Bit4

B4

P

FLC4

Bit5

B5

PT1

FLC5

Bit6

B6

PT2

FLC6

Bit7

B7

res

res

Bit8

B8

res

res

XON1 XON2 XON3 XON4 XON5 XON6 XON7 XON8

XOF1 XOF2 XOF3 XOF4 XOF5 XOF6 XOF7 XOF8

PM1

PM9

PM2 PM3 PM4

PM12

PM5 PM6 PM7 PM8

PM16 PM10 PM11 PM13 PM14 PM15

一端向另外一端发送一条RPN命令,它的各个域,都设置了想要的值的,参数掩码指

明了哪些参数被设置了值。

当另一端接收到RPN命令后,将根据下面的规则,作回应:

DLCI值不能变。

接收方将接收到发送方提议(proposed)的端口值字节,并且回复一个把所有能接受参

数的参数掩码置1的数据帧。假如接收方不接受任何提议的值,它回复一个把不支持参数的

参数掩码都置0的帧。对这些参数掩码置1的参数,新的值,将被接受并且被使用。

假如命令里只包含了一个值字节,它被解释位一个请求,接收方将用当前的端口值的设

置,进行回应。

假如发送方认为回应是可以接受的,也就是说,各比特位相匹配(match),发送方将开

始根据端口值字节使用DLC。假如回应是不可接受的,发送方将启动另一个参数修改了的

RPN命令,直到最终协商好,或者向更高层传递失败的信息。

B1-B8指明了波特率,见下表。

表12:B位的含义

Meaning

2400bit/s

4800bit/s

7200bit/s

9600bit/s

19200bit/s

38400bit/s

57600bit/s

B1 B2 B3 B4 B5 B6 B7 B8

0

1

0

1

0

1

0

0

0

1

1

0

0

1

1

0

0

0

0

0

1

1

1

1

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

115200bit/s 1

230400bit/s 0

所有其他的B位的值都是保留的。默认值是1100 0000(9600)。

D1-D2指示了数据位的数量。

D1 D2

00 5 bits

01 6 bits

10 7 bits

11 8 bits - default

S位指明了停止位的数量。S=0:1停止位,S=1:1、5停止位。默认值S=0。

P位指明了奇偶校验。P=0:无校验,P=1,有校验。默认值P=0。

第28共39页

杭州波导软件有限公司

PT1-PT2指明了了校验的类型。

PT1 PT2

00 odd parity

01 even parity

10 mark parity

11 space parity

FLC1-FLC6,默认值为0,没有流控。

Bit1 XON/XOFF on input

Bit2 XON/XOFF on output

Bit3 RTR on input

Bit4 RTR on output

Bit5 RTC on input

Bit6 RTC on output

Note. The RTR is mapped to either CTS (circuit 106) or RFR (circuit 133). The RTC is

mapped to either DTR (circuit 108/2) or DSR (circuit 107). (Circuit 133, RFR(Ready for

Receiving) is commonly assigned to the connector pin that is alternatively used for circuit 105,

RTS. It is sometimes referred to by that name)

XON1-XON8,XON字符(默认值DC1)。

XOF1-XOF8,XOFF字符(默认值DC3)。

PM1-PM8,参数掩码。

参数掩码用来指明哪些参数被RPN命令所协商。对一个命令来说,参数掩码将被理解

为:0=没改变;1=有改变。对应一个回应来说,0=不可接收的;1=可以接收并且使用的。

值字节7和8的比特位掩码如下:

Bit1 bit rate

Bit2 data bits

Bit3 stop bits

Bit4 Parity

Bit5 parity type

Bit6 XON character

Bit7 XOF character

Bit8 reserved

PM9-PM16,也是参数掩码。

Bit1 XON/XOFF on input

Bit2 XON/XOFF on output

Bit3 RTR on input

Bit4 RTR on output

Bit5 RTC on input

Bit6 RTC on output

所以保留的值,都被发送方设置为0,被接收方所忽略。

远程线路状态RLS(Remote Line Status)

3.4.6.3.10.

远程线路状态RLS(Remote Line Status)

这个命令是可选的。

第29共39页

杭州波导软件有限公司

这个命令指明了远程端口线路的状态。

连接状态下,当远程端口线路状态改变时,设备必须发送RLS命令。

RLS命令使用如下的type域格式:

表13:type域字节

Bit No.

1 2 3 4 5 6 7 8

signal EA C/R 0 0 1 0 1 0

Length字节包含值2,它有两个值字节。

表14:DLCI字节

Bit No.

1 2 3 4 5 6 7 8

D L C I signal EA 1

DLCI字节的第2位没用,固定为1。EA位,依据3.2.1.2的描述。

表15:RLS字节

Value Octet

Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8

1 L1 L2 L3 L4 res res res res

一端向另外一端发送一条RLS命令,它的各个域,都设置了想要的值的。当另外一端

接收到RLS命令后,它必须用包含它接收到的值的RLS回应帧回应。

L1-L4位指明了线路状态。L1置0,表示没出现错误。L1置1,指明了如下的错误:

L2-L4:

100 越界错误(Overrun Error) - 接收到的字符有不可读的字符

010 校验错误(Parity Error) - 接收到的字符的校验位不正确

001 装配错误(Framing Error) - 一个字符不是以停止符结束的

Res位,由发送方置0,被接收方忽略。

3.4.6.3.11.

服务协商命令SNC(Service Negotiation Command)

这个命令用来查询和设置特殊DLC的特殊服务的。它以特殊的数字视频类型为例子。

在一些情况下,AT命令和原始数据在同一个DLC上混合,是不太合适的。这些情况下,

可以建立一些特殊的DLC,传输一些特殊的数据类型。这种情况的例子,尤其对视频传输

更有用,当AT命令控制了链接,在DLC上传输时,音频数据可以由另一个DLC运载。在

数据流里,用AT命令发送ESC序列,这种机制是可供选择的。假如这个命令没被用,DLC

默认设置为正常的AT命令模式。假如这个命令使用了,在DLCI字节指明的DLC,修改为

用来运载特殊字节类型。这个命令的发起方,也可以查询每个DLCI的特殊服务。

SNC的格式如下:

表16:SNC格式

Byte No. 1 2 3 4 5

Meaning Type field code Length DLCI Service Value octet Voice Codec

(optional) Value octet

(optional)

Type域字节格式:

表17:type域字节

Bit No.

1 2 3 4 5 6 7 8

signal

EA C/R 0 0 1 0 1 1

Length字节包含值1或值3,它有一个或三个值字节。

表18:DLCI字节

Bit No.

1 2 3 4 5 6 7 8

第30共39页

杭州波导软件有限公司

signal EA 1 D L C I

DLCI字节的第2位没用,固定为1。EA位,依据3.2.1.2的描述。

表19:服务值字节

Value Octet

Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8

1 EA S1 S2 S3 S4 S5 S6 S7

EA位,依据3.2.1.2的描述。

表20:音频编码值字节

Value Octet

Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8

1 EA V1 V2 V3 V4 V5 V6 V7

EA位,依据3.2.1.2的描述。

表21:服务值的各个比特位

Value Bit Service

S1

S2

S3

S4

S5

S6

S7

Value Bit Service

V1

V2

V3

V4

V5

V6

V7

Voice (coded – GSM 06.21)

Voice (coded - PCM 64 kbit/s U-law)

Voice (coded ADPCM 32kbit/s) ITU-T G.726

Voice (coded halfrate)

Voice (coded - PCM 64kbit/s A-law)

Voice (coded PCM 128kbit/s)

Reserved

Data

Voice

Reserved

Reserved

Reserved

Reserved

Reserved

表22:音频编码值的各个比特位

发送方传输一个SNC命令,它的各个域,都设置成该特殊DLC可以使用的所有可能的

服务的值。接收方用它选择的值的集合,以一个SN回应帧回复它。接收方构建回应帧的时

候,必须遵守如下的规则:

DLCI值不能变。

接收方可以而选择发送方提议的服务的子集,但不能是超集。接收方所选择的,才是

有效的。假如接收方不支持发送方提议的任何服务,它把服务字节置回复。

即使选择了数据服务,音频编码值字节也总要出现的(present)。这种情况下,该字节

的V1-V7比特位,都置0。

0值,意味着标准AT命令模式。

假如命令里没有包含值字节,它被解释位一个请求,并且接收方用所有可能的服务回应。

假如发送方认为回应是可以接收,也就是说,服务别特务都匹配(match),发送方根据

服务,开始使用DLC。假如回应是不可接受的,发送方将发起另外一个修改了参数的PNC

命令,直到最终协商好,或者向更高层传递失败的信息。

假如DLC上没有执行过服务协商,它在标准AT模式下运行。这种情况下,一个来电

的指示,在另一个(that)DLC上。

第31共39页

杭州波导软件有限公司

发送方把保留位置0,接收方忽略这些保留位。

3.4.7. 电源控制与唤醒机制

对各种类型的MS和一些TE来说,设备耗电非常少,这是非常重要的。比如,在非激

活的条件下,进入各种省电状态,就能达到这个目标。假如TE和MS都希望进入省电状态,

MUX系统必须能够完全关闭。通过使用MUX的控制通道,来达到这个功能。

假如TE和MS都希望进入省电状态,一个PSC命令在MUX的控制通道上,发送到另

外一端。接收端接收到这个消息,将完全传输当前进行中的所有的帧,向上层报告一个忙或

者电源关闭的情况,冻结所有的定时器,发送回一个PSC回应帧。当PSC命令的发起方,

收到确认后,它就可以进入省电状态了。

每一端都可以发送PSC命令,请求另外一端进入省电状态。接收方必须用PSC回应帧,

确认PSC命令帧,但不一定要遵从命令而进入省电状态。如果没有收到回应帧,发送方重

发命令帧,但是,必须先执行唤醒流程。

每一端都可以从省电状态,通过发送由连续的标识字符组成的唤醒信号,发起唤醒流程。

当另一端收到标识字符时,如果必要它将醒来(wake-up),并且发送标识字符。当发起端接

收到这些字符后,它停止发送标识字符,并且开始传输第一个数据帧。当接收端检测到有效

帧后,它将停止发送标识字符。两端都解冻它们的定时器,像以前一样继续运行。

假如T3时间内,唤醒流程收不到回应帧(连续的标识字符),将向上层发出一个警告,

并且停止标识字符的传输。

3.4.8. 流控

3.4.8.1. RTR流控

图12显示了DTE到DCE的链接。本段定义的流控方案,同样适用于DTE-DTE的链

接。07.10的两端都用RTR(RFR/CTS)流控配置过。对本地应用程序来说,流控信号就是

其他三个流控信号和对方设备的RTR信号的联合。标签为FCS1-FCS3的流控信号定义如下:

FCS1 MSC命令或者type2的集成层的控制信号字节的第2位。每个DLCI都流控。

FCS2 07.10通过控制通道命令Fcon和Fcoff(basic模式)聚合的流控。

FCS3 07.10 内部的缓冲区管理 (implementation specific)

流控信号FCS1-FCS3跟对端的RTR信号组合在一起,产生了本地的RTR输入信号。

比如,为了模拟DTE串口的CTS信号的表达式是:

= AND FCS1 AND FCS2 AND FCS3

在moden状态命令(当使用集成层1,3和4)的第2位(FC)和第4位(RTR),或

控制信号字节(当使用集成层2)的第2位(FC)和第4位(RTR), 流控模拟器复制了发

送的RTR信号。

第32共39页

杭州波导软件有限公司

3.4.8.2. XON/XOFF流控

当嵌入了XON/XOFF字符,一些07.10的实例可以检测来自本地应用程序的XON/XOFF

字符。这种情况下,字符遵照07.10,但不发送给对端的07.10实例,比如XON/XOFF字符

被过滤出来,流控信号作为07.10流信号传送,见图13。

如果输出(output)使用了XON/XOFF流控,07.10将用XON/XOFF字符实现本地应

用程序的流控,比如,XON/XOFF字符根据07.10流控信号(参见图14),被插进数据流。

第33共39页

杭州波导软件有限公司

3.5. 集成层Convergence Layer

集成层的定义,允许带结构的数据,通过MUX传输,不丢失结构和其他与数据流相关

的参数。集成层通常用来通过一个DLC,运载V.24的状态,或者用来确保一个声音编码帧

的边界受到保护。

集成层决定数据是否被ERM模式或者non-ERM模式的流程所运载。

特殊的集成层用于连接被使用的DLCI,但是可能通过MUX控制信道的使用,跟这些

默认的DLCI进行协商。

3.5.1. 类型1-未结构化的字节流

未结构化的字节流数据,比如64kbit/s的未编码的声音或者不带V.24控制信号的常规

异步数据,被直接插入到I域。这种情况下,可以这样说,集成层是空的。

Type1是每个DLC的默认的集成层。

3.5.2. 类型2-带参数的未结构化的字节流

传输V.24控制信号相关的一个数据流,它每个I域的第一个字节包括信号的状态,见

下图。扩展位的使用,允许添加其他字节来满足其他的情况。目前,可选的第二个字节,被

定义为处理中断信号的传输。

Bit No 1 2 3 4 5 6 7 8

Signal EA FC RTC RTR Reserved 0 Reserved 0 IC DV

图15:控制信号的字节格式

控制信号字节的描述如下:

Bit1。EA为1表示本字节是该域的最后一个字节,其他字节EA位为0。

Bit2。DLC的流控(Flow Control)。Non-ERM模式下,设备不能接收帧时,置1。ERM

第34共39页

杭州波导软件有限公司

模式下,发送方,永远置0,接收方忽略它。

Bit3。准备好发送(Ready To Communicate)。设备准备好发送的时候,置1。

Bit4。准备好接收(Ready To Receive)。设备准备好接收数据的时候,置1。

Bit5/6。保留。发送方要置0,接收方忽略它。

Bit7。来电(Incoming Call)标识。该位置1指明有个来电。

Bit8。数据有效(Data Valid)。该位置1指明有效的数据正被传送。

接收方和发送方的V.24控制信号字节的各BIT位,分别在表23和表24中。

Table 23: Mapping from the control signal octet by a receiving entity

Control Signal Byte DTE receiving

bit number, name

2, FC

3, RTC

4, RTR

7, IC

8, DV

signal

DSR

CTS

RI

DCD

V.24 circuit

107

106

125

109

DLC flow control -

DCE receiving

signal

DTR

RFR (note)

ignored

ignored

V.24 circuit

108/2

133

-

-

DLC flow control -

NOTE Circuit 133, RFR (Ready for Receiving) is commonly assigned to the connector pin that is

alternatively used for circuit 105, RTS. It is sometimes referred to by that name.

Table 24: Mapping to the control signal octet by a sending entity

Control Signal Byte

bit number, name

2,FC

3,RTC

4,RTR

7,IC

8,DV

DTE sending

signal

frame flow control

DTR

RFR (note)

always 0

always 1

V.24 circuit

-

108/2

133

-

-

DCE sending

signal

frame flow control

DSR

CTS

RI

DCD

V.24 circuit

-

107

106

125

109

NOTE. Circuit 133, RFR (Ready for Receiving) is commonly assigned to the connector pin that is

alternatively used for circuit 105, RTS. It is sometimes referred to by that name.

Non-ERM模式下,FC位为DLC提供帧的流控。如果一端不能接收数据帧了,比如,

由于缓冲区管理的问题,它将置FC位为1。当它又能接收数据帧了,它将置FC位为0。如

果一端接收一个FC位置1的数据帧,它将停止传输数据帧,直到收到一个FC位置0的数

据帧。

如果一端由于流控的原因,不能传输数据帧了,但它想自己停止接收数据帧,或者想在

控制信号中发送一个改变信号或者想发送一个中止状态,它要继续发送不包含用户数据(比

如只包括控制信号的字节和可选的中止信号的字节)的帧。

ERM模式下,FC位没有用,将被发送方置0,被接收方忽略。如果一端已经不再(被

防止)发送I帧,例如,正接收一个RNR帧,如果它想在控制信号中发送一个改变信号,

或者想发送一个中止状态,它要继续发生一个不包含用户数据的UI或者UIH帧。

Bit No 1 2 3 4 5 6 7 8

Signal EA B1 B2 B3 L1 L2 L3 L4

图16:中止信号的字节格式

中止信号字节携带能让DLC检测出来的中止信息。其意义如表25。

表25:中止信号的字节的含义

第35共39页

杭州波导软件有限公司

Bit

B1

B2

B3

Value

1

0

1

0

1

0

Meaning

Octet encodes a break signal

Octet does not encode a break signal

Discard data in buffers

Do not discard data in buffers

Transmit break signal onwards as soon as possible

Transmit break signal onwards in sequence

L1-L4 4-bit value Length of break in units of 200ms

L1是break length的最低位,L4是最高位。

当一端接收到中止字节(break octet),它将处理这个信息,并用适当的方法传递它。这

不在本文档论述范围之内。

I域的其他字节包括该DLC所需的数据。

3.5.3. 类型3-不可中断的帧数据

一个不可中断的帧数据的例子就是由连续的音频数据帧组成的音频编码数据。音频编码

数据数据帧,带有完整的帧结构,在尽可能短的时延下,到达音频解码器,是非常重要的。

最简单的把办法是确保把一个完整的音频数据帧放进一个I域中。在传输过程中,即使高优

先级的数据在等待,这个数据帧也不能变短(shortened压缩?)。

在传输器(transmitter)那,数据的每个帧,都被插进一个I帧,UI帧或UIH帧的I域

中。接收器作为完整帧,处理数据,传输它。

音频编码数据应该使用UI帧或UIH帧传输,因为重新传输的延时,通常是不能接受的。

3.5.4. 类型4-可中断的帧数据

当时延不像type3那么重要时,这种类型的集成层,被用来传输有结构的数据。结构化

的数据可以被分割成多帧,并且可以在另外一端重新装配。按PPP封装的IP数据,就是一

个例子,它的数据可以运载在Type4的集成层上。

每个type4的数据帧的第一个字节是一个控制字节,如下图17。

Bit No 1 2 3 4 5 6 7

Signal EA - - - - - B F

Figure 17: Format of Type 4 octet

EA位以后扩展,如果需要用到多个字节时。这里设置为1。

B和F位用来指示该数据帧是一个序列的第一个数据帧,中间的数据帧或者最后一个数

据帧。它的含义如下面表26所示。

表26:B位和F位的含义

B位 F位 含义

1

0

0

1

0

0

1

1

一个序列的第一帧

一个序列的中间帧

一个序列的最后一帧

数据完全被包含在一个数据帧中

第36共39页

杭州波导软件有限公司

注意1:假如其他的帧结构,比如第二层协议,已经包含在数据流中,按PPP封装的IP

数据可以使用type1的集成层运载。

注意2:如果一个数据帧作为最后一个数据帧进行编码,或者所有的数据包含在一个数

据帧中,数据帧不能被压缩,因为,压缩会导致帧头(header)含义的错误。构造不包含任

何数据的数据帧作为最后一个数据帧,或者当数据帧需要压缩时避免使用11编码(11 code),

是明智的。

3.6. DLCI值

默认情况下,所有DLC使用了type1的集成层。其他层的使用,可以通过MUX的控

制通道进行协商。

表27:DLCI分配表

用法Usage

Multiplexer control channel

AT commands (07.07 and 07.05)

AT commands (07.07 and 07.05)

AT commands (07.07 and 07.05)

AT commands (07.07 and 07.05)

AT commands (07.07 and 07.05)

AT commands (07.07 and 07.05)

AT commands (07.07 and 07.05)

AT commands (07.07 and 07.05)

Reserved

DLCI 0为控制通道保留。

DLCI 62为basic模式下BOFC和EOFC的ETSI目的保留,也只能这么用。

DLCI 63为HDLC模式下的ETSI目的保留(由于特别的含义),也只能这么用。

在DLC指定优先级的信息的缺省情况下,使用这个表。

DLCI编号(10进制) Priority优先级

0

1-7

8-15

16-23

24-31

32-39

40-47

48-55

56-61

62-63

0

7

15

23

31

39

47

55

61

3.7. 系统参数

MUX定义了下面这些的系统的参数。T1,N1,N2和k可以通过控制通道进行协商,

或者用这里给的默认值。T2和T3通过AT+CMUX命令进行设置。

3.7.1. 确认时间T1

T1就是通道一端在采取其他动作(比如重发)之前,等待确认信息的时间。通道两端

可以有不同的T1值。

单位是毫秒。Times of up to 2.55 seconds may be used.

默认值是100ms,最小值是10ms。

第37共39页

杭州波导软件有限公司

3.7.2. 帧的最大长度N1

N1定义了帧的信息域,能容纳的字节的最大数量。它不包括为了透明而增加的字节。

默认值是64字节(advanced)或者31字节(basic),范围是1-32768。

注意:如果使用了a Type 2 convergence layer,N1要小心选择了。帧必须足够大,以包

含完整的协议帧。

3.7.3. 最大重发次数N2

N2定义了重发的次数。通道两端可以有各自不同的N2值。

默认值是3,范围是0-255。

3.7.4. 窗口大小k

窗口大小参数k定义了一个DLC能理解的最大的I帧的数目。不同的方向,需要用同

一个值。窗口大小不能大于7。

这个参数只使用于错误恢复模式激活的情况下。

默认值是2,范围是1-7。

3.7.5. 控制通道的响应时间T2

T2就是MUX的控制通道重发一个命令前的等待时间。

T2必须大于T1。单位也是毫秒。Times of up to 2.55 seconds may be used.

默认值是300ms,最小值是20ms。

3.7.6. 唤醒流程的响应时间T3

T3就是发送端在无响应报警之前,对省电唤醒命令所等待的时间。

单位是秒。Times of up to 2.55 seconds may be used.

默认值是10s,最小值是1s。

3.8. 启动和关闭MUX

启动MUX使用+CMUX命令。这个命令指明了启动MUX,使用的ERM还是non-ERM。

发送SABM,初始化DLCI 0。然后,使用同样的3.4.1的流程,建立其他的DLC。MUX可

以跟已经建立的DLC,协商参数。

关闭MUX,可能有TE或MS端发起。先要用3.4.2的流程,释放除了DLC 0的所有

DLC。然后,MUX通过控制通道,发送一个关闭的消息。这个消息被双方确认后,就退出

了多串口模式。如果在T2时间内收不到对方对关闭命令的回应,发起方必须重发关闭命令,

如果在T3的时间内还收不到,必须强行关闭。

第38共39页

杭州波导软件有限公司

4. Error Recovery Mode

错误覆盖模式,用的不多,但是比没有覆盖模式安全,并且只能在高级模式中使用。帧

模式是I帧。在这里不做介绍。

第39共39页

2024年3月22日发(作者:臧靖荷)

杭州波导软件有限公司

CMUX协议文档

修订情况记录:

版本号 修订人 修订原因

V0.8

V1.0

徐兵林 新建

高金山 完成

修订日期

2008-11-4

2009-2-11

审核

测试

签收

第1共39页

杭州波导软件有限公司

目录

CMUX协议文档 ............................................................................................................................. 1

1. 引言 ............................................................................................................................................. 4

1.1. 编写目的 .......................................................................................................................... 4

1.2. 编写背景 .......................................................................................................................... 4

1.3. 参考资料 .......................................................................................................................... 4

1.4. 名字解释 .......................................................................................................................... 4

2. CMUX协议框架.......................................................................................................................... 5

3. Non Error Recovery Mode ............................................................................................................ 8

3.1. 服务接口定义 ................................................................................................................... 8

3.1.1. 服务模型 .................................................................................................... 8

3.1.2. 启动CMUX服务模式 .............................................................................. 9

3.1.3. 建立DLC服务 .......................................................................................... 9

3.1.4. 数据服务 .................................................................................................. 10

3.1.5. 功耗控制 .................................................................................................. 10

3.1.5.1. Sleep模式 .................................................................................................. 11

3.1.5.2. Wake up模式 ............................................................................................ 11

3.1.6. 释放DLC服务 ........................................................................................ 11

3.1.7. 关闭服务 .................................................................................................. 11

3.1.8. 控制服务 .................................................................................................. 11

3.1.8.1. 07.10协议服务 .......................................................................................... 12

3.1.8.2 虚拟端口服务 ............................................................................................ 13

3.2. 数据帧结构..................................................................................................................... 14

3.2.1. 帧域 .......................................................................................................... 14

3.2.1.1. 标志域(Flag Sequence Field) .............................................................. 14

3.2.1.2. 地址域(Address Field)......................................................................... 14

3.2.1.3. 控制域(Control Field) ......................................................................... 15

3.2.1.4. 信息域(Information Field) ................................................................... 15

3.2.1.5. 长度指示域(Length Indicator) ............................................................ 15

3.2.1.6. FCS域(Frame Checking Sequence Field) ............................................ 15

3.2.2. 格式约定 .................................................................................................. 16

3.2.3. 帧有效性 .................................................................................................. 16

3.2.4. 帧中止 ...................................................................................................... 16

3.2.5. 数据帧之间的填充 .................................................................................. 16

3.2.6. 基本Basic ................................................................................................ 16

3.2.6.1. 约束 ........................................................................................................... 17

3.2.7. 高级Advanced ......................................................................................... 17

3.2.7.1. 控制字节透明 ........................................................................................... 17

3.2.7.2. 开始/停止传输-扩展透明 ........................................................................ 17

3.2.7.3. 流控(Flow-control)透明 ...................................................................... 18

3.2.7.4. 帧的结构 ................................................................................................... 18

3.3. 帧类型 ............................................................................................................................ 18

第2共39页

杭州波导软件有限公司

3.4. 过程和状态..................................................................................................................... 20

3.4.1. 建立DLC链路 ........................................................................................ 20

3.4.2. 释放DLC链路 ........................................................................................ 20

3.4.3. 信息传输 .................................................................................................. 21

3.4.4. 帧变量 ...................................................................................................... 21

3.4.5. 超时的考虑 .............................................................................................. 22

3.4.6. 多路控制通道 .......................................................................................... 22

3.4.6.1. 控制消息格式 ........................................................................................... 22

3.4.6.2. 控制消息类型参数 ................................................................................... 23

3.4.7. 电源控制与唤醒机制 .............................................................................. 32

3.4.8. 流控 .......................................................................................................... 32

3.5. 集成层Convergence Layer ............................................................................................ 34

3.5.1. 类型1-未结构化的字节流...................................................................... 34

3.5.2. 类型2-带参数的未结构化的字节流 ...................................................... 34

3.5.3. 类型3-不可中断的帧数据...................................................................... 36

3.5.4. 类型4-可中断的帧数据.......................................................................... 36

3.6. DLCI值 ........................................................................................................................... 37

3.7. 系统参数......................................................................................................................... 37

3.7.1. 确认时间T1 ............................................................................................ 37

3.7.2. 帧的最大长度N1 .................................................................................... 38

3.7.3. 最大重发次数N2 .................................................................................... 38

3.7.4. 窗口大小k ............................................................................................... 38

3.7.5. 控制通道的响应时间T2 ........................................................................ 38

3.7.6. 唤醒流程的响应时间T3 ........................................................................ 38

3.8. 启动和关闭MUX .......................................................................................................... 38

4. Error Recovery Mode ................................................................................................................. 39

第3共39页

杭州波导软件有限公司

1. 引言

1.1. 编写目的

本文档根据GSM07.10协议同时结合E901 Mobile参考代码,对CMUX多串口协议进

行了大致的描述。由于7.10协议可以使用两种传输模式non-error和error模式,本文档只介

绍non-error模式。

1.2. 编写背景

1.希望CMUX协议有一个总体框架;

2.想要了解CMUX多串口协议的通讯设计;

1.3. 参考资料

1.GSM07.10协议

2.E901 Mobile参考CMUX通讯代码

1.4. 名词解释

1.CMUX

2.ABM

3.ERM

4.DLC

5.FCS

6.SARM

7.UAU

8.DM

9.UIH

10.UI

11.PSC

12.MSC

13.HDLC

多串口协议

Asynchronous Balanced Mode

异步平衡模式

Error-Recovery Mode错误校验模式

Data Link Connection数据链路连接

Frame Check Sequence

帧校验序列

Set

Asynchronous Balanced Mode

设置异步平衡模式

Unnumbered Acknowledgement

未编号的确认信息

Disconnected Mode

断开模式

Unnumbered Information with Header Check

未编号的带校验头的信息

Unnumbered Information

未编号的信息

Power Saving Control

省电控制

Modem状态命令

High-level data link control高级数据链路控制

第4共39页

杭州波导软件有限公司

2. CMUX协议框架

多路复用协议提供在单个物理通信通道之上虚拟出多个并行的逻辑通信通道的能力,一

般应用于TE(Terminal Equipment)与MS(Mobile Station)之间,TE相当于智能手机的AP端,

MS相当于智能手机的MODEM端,下图给出了典型的协议层次关系:

蓝色部分就是MUX多路复用层,它利用底层的物理串口链接收发数据,同时向上层提

供若干个逻辑上独立使用的收发通道(上图中提供了四个逻辑通道,不同颜色表示)。每个

逻辑通道独立创建,可以拥有软件流控制。在实际使用中,TE端的MUX向MS端的MUX

发起通道建立请求,设置通道参数等,是主动的一方;MS端的MUX等待TE端的服务请

求,根据自身能力提供相应服务。也就是说,两者的角色是不对称的。

第5共39页

杭州波导软件有限公司

GSM07.10协议就是一个提供MUX功能的标准协议,也是实际中较广泛使用的协议。

在E901项目中,NXP的5209 MODEM软件提供标准的07.10 MUX功能,AP端开发了07.10

MUX的驱动,如上图所示,AP 端的MUX驱动利用了物理串口FFUART(COM1:),同时向

系统提供了三个逻辑串口(COM7: COM9:COM8:),其中COM7:是AT命令口TE<MS;

COM9:是URC口 TEMS;COM8:是数据端口TE<MS,当建立GPRS/EDGE数据连接

时使用。这样对RIL驱动而言,只看到COM7和COM9这两个虚拟串口,对PPP模块而言,

只看到COM8虚拟口,真正的物理串口COM1只对MUX驱动有意义,其他驱动看不到也

不关心COM1。

TE终端和MS终端之间的每个通道,称作一个DLC链路,它们是先后相互独立的建立

起来的。其数据传输采用8BIT字符的Start-Stop的方式进行传输,双方的数据交互使用了

后面定义的帧结构。出于缓冲区管理的目的,每条DLC链路都有各自的流控。总的链路也

有全面的流控的机制。

DLC有两种工作模式Error-Recovery Mode(ERM)错误校验模式和Non-Error-Recovery

第6共39页

杭州波导软件有限公司

Mode (non-ERM)模式。在DLC链路上可以同时使用ERM和nor-ERM模式。采用哪种模式,

在DLC建立的时候就决定好了。如果使用ERM校验模式,必须把DLC配置成ISO HDLC

透明机制,但是否使用ERM校验模式,是可选的。

non-ERM模式使用UI帧和UIH帧来装载用户数据。而ERM模式使用I帧装载用户数

据。

CMUX支持三种操作选项,分别是Basic,Advanced without Error Recovery和Advance with

Error Recovery。其中前两种不支持错误纠正。

Basic:

1)数据长度指示器代替HDLC的透明机制;

2)与HDLC的flag标志位不同;

3)不能在数据链路上使用XON/XOFF流控

4)从数据同步丢失中恢复,需要比较长的时间。

Advanced without Error Recovery

1)异步的HDLC跟ISO/IEC 13239

.协议一致;

2)

可以

在数据链路上使用XON/XOFF 流程控制;

3)从数据同步丢失中恢复,很快。

Advance with Error Recovery

1)使用HDLC ERM流程。

第7共39页

杭州波导软件有限公司

3. Non Error Recovery Mode

Non Error Recovery用在Basic模式和Advanced模式,它是一种不可靠的数据传输,所

以在链路很可靠的情况下才使用它。它有一套简单的流程;Advanced提供了数据透明机制:

它可以传输管理和控制信息;它允许MS或TE进入省电模式;它分了几个层,可以原封不动

的装载不同类型的数据。

透明机制必须在MUX会话开始的时候建立,它是整个MUX会话的一个特征。

这套简单的流程,使用UIH帧装载传输数据。这些帧比较容易处理,因为它使用的 Frame

Check Sequence(FCS)校验机制,可以事先计算,而不需要一个字节一个自己的去计算。

这套流程的使用是很直接的,不需要实现HDLC的状态机。

与可靠性相比,当及时的传递数据更重要时,该通道UI帧或UIH帧,都可以用。当对可

靠性要求比较高时,那就采用UI帧吧。

3.1. 服务接口定义

服务接口用在数据链路层与上层应用之间。这些接口由原语和参数界定。

3.1.1. 服务模型

第8共39页

杭州波导软件有限公司

从图中可以看到双方通讯的两端都需要串口模拟实体,在实体和逻辑层之间建立的数据

流通道和控制通道。图中的左端是主动请求发起端。右端是接收方。

3.1.2. 启动CMUX服务模式

mode = [Basic | HDLC - UIH frames | HDLC - UI frames | HDLC - frames].,如果控制通道

用了HDLC模式,那么其它用了DLC模式的参数配置可以忽略。

system_parameters = Port speed [9,6 | 19,2 | 38,4 | 57,6 | 115,2 |

230,4 kBit/s],

Maximum Frame Size [1 – 128 in Basic mode,

1 – 512 in HDLC modes

default: 31 for the basic

option and 64 for the

advanced option]

Acknowledgement Timer [0,01s-2,55s,

default: 0,1s]

Maximum number of retransmissions [0 – 100,

default : 3]

Response timer for the multiplexer control channel [0,01s-2,55s,

default: 0,3s]

Wake up response timer [1s – 255s, default 10s]

Window size for error recovery mode [1 – 7,

default : 2]

accept = [true | false]

一点要注意的是各个虚拟通道的一些参数可以不同。根据(图2)中,启动CMUX服务,需

要双方(左边是发起方,右边是接收方)建立4条消息,

1) 发起方:TS0710_t (mode, system_parameters)

2)发起方:TS0710_tion (mode, system_parameters

3)接收方:TS0710_se (mode, system_parameters, accept)

4)接收方:TS0710_m (mode, system_parameters, accept)

这4条消息建立过程大致如下:

首先发起方发起request(请求)消息,接着,接收方接到indication(指示)消息,马上接

收方发出response(反馈)消息,最后,发起方收到confirm(确认)消息。这个过程做一些

系统参数配置。

3.1.3. 建立DLC服务

DLCI = 1-63 (DLCI number)

System parameters = Type of frame [UIH | UI | I, default: UIH],

第9共39页

杭州波导软件有限公司

Convergence layer [1 - 4, default: 1]

Priority [0-63]

Acknowledgement Timer [0,01s-2,55s,

default: 0,1s]

Maximum Frame Size [1 – 32768,

default: 31 for the basic option and

64 for the advanced option]

Maximum number of retransmissions [0 – 255,

default : 3]

Window size for error recovery mode [1 – 7,

default : 2]

Accept = [true | false]

建立服务,是配置各个通道的参数,让通道能工作。它需要4条消息:

1) 发起方:

TS_0710_DLC_t(DLCI, system_parameters)

2) 发起方:TS_0710_DLC_tion(DLCI, system_parameters)

3) 接收方:TS_0710_DLC_se(DLCI, system_parameters, accept)

4)

接收方:

TS_0710_DLC_m(DLCI, system_parameters, accept)

大致的过程和启动服务的流程差不多。建立服务是建立通道,当然是配置通道参数,后者是

配置系统参数。

3.1.4. 数据服务

数据服务使用了两条消息:

1) TS_0710_t(DLCI, User_data)

2) TS_0710_tion(DLCI, User_data)

DLCI = [1 – 63] DLC over which the data is to be transmitted.

User_data= Data to be transferred organised in accordance with the

convergence layer of the DLC

3.1.5. 功耗控制

功耗控制包括sleep模式和wake up模式

第10共39页

杭州波导软件有限公司

3.1.5.1. Sleep模式

有三条消息:

1) TS_0710_t

2)TS_0710_tion

3)TS_0710_m

注意的是这里不需要接收方发出反馈(Respone)消息,当然有这种情况,就是接收方没有进入

Sleep模式,也被认为是进入Sleep模式。

3.1.5.2. Wake up模式

有两条消息:

1)TS_0710_tion

2)TS_0710_se

3.1.6. 释放DLC服务

用来断开DLC通道,有两条消息

1)

TS_0710_DLC_t(DLCI)

2)

TS_0710_DLC_tion(DLCI)

参数:

DLCI = [1 – 63] Number of the DLC to be released.

同建立通道一样,最大的可以有63个通道。

3.1.7. 关闭服务

两条消息:

1) TS_0710_t

2) TS_0710_tion

关闭CMUX服务,和启动CMUX对应。

3.1.8. 控制服务

这里把控制服务分成独立的一段。主要是控制服务比较复杂。分作两部分:07.10协议服务

Port Emulation 服务。

第11共39页

杭州波导软件有限公司

3.1.8.1. 07.10协议服务

 DLC 参数判定

DLC 参数判定用来设置具体DLC参数,有四个消息;

1)

TS0710_t (DLC, DLC parameters)

2)

TS0710_tion (DLC, DLC_parameters)

3)

TS0710_se (DLC, DLC_parameters, accept)

4)

TS0710_m (DLC, DLC_parameters, accept)

用来改变一个具体的DLC通道的参数。

DLC_parameters= frame type [ UIH | UI | I ,

default: UIH ]

Convergence Layer Type [ Type 1 | Type 2 | Type 3 | Type 4,

default: Type 1]

Priority [1-63,

default: according to table in subclause 5.6]

Acknowledgement timer [10 ms - 25.5 sec,

deault: 100 ms]

Maximum Frame Size [1 – 32768,

default: 31 for the basic option and

64 for the advanced option]

Maximum number of retransmissions [0 – 100,

default : 3]

Response timer for the multiplexor control

channel [0,01s-2,55s, default: 0,3s]

Wake up response timer [1s – 255s, default 10s]

Window size for error recovery mode [1 – 7,

default : 2]

accept = [true | false]

 DLC 服务判定服务

用来判别DLC 服务是那一项具体的服务。

1)

TS0710_t (DLC, Service_parameters)

2)

TS0710_tion (DLC, Service_parameters)

3)

TS0710_se (DLC, Service parameters, accept)

4)TS0710_m (DLC, Service_parameters, accept)

service_parameters = Service [ data | voice 64kbit/s A-law PCM | reserved 1 | reserved 2 ],

voice codec [ GSM 06.21 | 64kbit/s u-law PCM | coded ADPCM 32kbit/s | coded half rate |

128 kbit/s PCM | reserved ]

第12共39页

杭州波导软件有限公司

 测试服务

1)TS0710_t (Test data)

2)TS0710_m (Test data)

 流程控制

1)

TS_0710_t(DLCI,State)

2)

TS_0710_tion(DLCI, State)

DLCI = [1 – 63] DLC over which the data is to be transmitted.

State = enabled (data may be transferred), disabled (data may not be transferred)

控制使能或者不使能数据传输。

3.1.8.2 虚拟端口服务

 移动DLC参数判定服务

1) TS0710_t (DLC, Port_parameters)

2)TS0710_tion (DLC, Port_parameters)

3)TS0710_se (DLC, Port parameters, accept)

4)TS0710_m (DLC, Port_parameters, accept)

port_parameters = Port speed [2,4 | 4,8 | 7,2 | 9,6 | 19,2 | 38,4 | 57,6 | 115,2 |

230,4 kBit/s],

Data bits [ 5 | 6 | 7 | 8,

default: 8 bits |

Stop bits [ 1 | 1,5,

default: 1 bit |

Parity [ no parity | parity,

default: no parity |

Parity Type [ odd | even | mark | space]

accept = [true | false]

 控制参数服务

1)TS0710_t (DLC, Control_parameters)

2)TS0710_tion (DLC, Contol_parameters)

3)TS0710_se (DLC, Contro_parameters)

4)TS0710_m (DLC, Control_parameters)

system_parameters = Modem Signal [DTR/DSR | RTS/CTS | RI | DCD ],

Break Signal [0—3 s in steps of 200 ms,

default 0ms ],

Buffers [do not discard buffers, discard buffer

default: do not discard buffers],

Break signal sequence [ as soon as possible | in sequence,

第13共39页

杭州波导软件有限公司

default: in sequence]

 DLC通道指示服务

1)

TS0710_t (DLC, Line Status parameter)

2)

TS0710_tion (DLC, Line Status parameter)

Line status parameter = Port speed [no errors, overrun error, parity error, framing error]

3.2. 数据帧结构

3.2.1. 帧域

Flag(1B) Address (1B) Control(1B) Length(1~2B) Info(Length长度,可变) FCS(1B) Flag(1B)

注意:数据长度指示域,可能有,可能没有,如果没有采用透明机制,则有数据长度指示

域。

3.2.1.1. 标志域(Flag Sequence Field)

每一帧开始和结束都有一个标识flag,基本模式Flag固定为0xF9。高级模式为0x7E。

3.2.1.2. 地址域(Address Field)

Bit No. 1

Signal

2 3 4 5 6 7 8

DLCI EA C/R

图2:地址域的格式

DLCI是DLC(Data Link Control数据链路控制)的标识号(identify)。

EA位表示该域是否只有本字节。为1表示本字节就是长度域,为0表示后续还有一个字

节。这里只能为1,以后扩展协议后,会有为0的情况。

C/R(Command/Response)用来指示是命令还是响应。Initiator是指MUX初始化的那一

方,而responder是响应MUX初始化的那一方。

表1:C/R位的用法

Command/response Direction

Command

Response

C/R value

Initiator -> Responder 1

Responder -> Initiator 0

Initiator -> Responder 0

Responder -> Initiator 1

如主机建立的MUX,主机发命令包时,Address为0x7,猫响应Address也是0x7。

第14共39页

杭州波导软件有限公司

3.2.1.3. 控制域(Control Field)

表2:控制域的编码

Frame Type

SABM (Set Asynchronous Balanced Mode)

UA (Unnumbered Acknowledgement)

DM (Disconnected Mode)

DISC (Disconnect)

UI (Unnumbered Information)

1 2 3 4 5 6 7 8

备注

1 1 1 1 P/F 1 0 0

1 1 0 0 P/F 1 1 0

1 1 1 1 P/F 0 0 0

1 1 0 0 P/F 0 1 0

UIH(Unnumbered Information with Header check) 1 1 1 1 P/F 1 1 1

1 1 0 0 P/F 0 0 0

可选

P/F是Poll/Final位,表示测试/返回。后续会介绍。

比如建立DLC的时候,主机发SABM帧, 并把P置1,如果成功,对方返回UA帧,并把F

置1,否则返回DM帧,并把P置1。

3.2.1.4. 信息域(Information Field)

信息域,它是实际数据域。UI帧或UIH帧,才有该域。

3.2.1.5. 长度指示域(Length Indicator)

只有在基本模式下,该域才存在。可以是1个字节,也可以是2个字节长度;

Bit No. 1

Signal

2 3 4 5 6 7 8

E/A L1 L2 L3 L4 L5 L6 L7

图3:长度域的首字节

2 3 4 5 6 7 8 Bit No. 1

Signal

L8 L9 L10 L11 L12 L13 L14 L15

图4:长度域的第二个字节

EA位表示该域是否只有本字节。为1表示本字节就是长度域,为0表示后续还有一个

字节。

3.2.1.6. 校验域(Frame Checking Sequence Field)

帧的校验序列。它是两个CRC校验码,异或后,再取反的结果。这两个CRC校验码,都

是8位的,生成的多项式为x8 + x2 + x + 1。一个是xk*(x7+x6+x5+x4+x3+x2+x1+1),其中k是

校验数据的BIT位的数目,一个是x8*(校验数据),校验数据,就是该帧的实际数据。由于比

较复杂,可以参考CRC校验原理。在包为UIH帧时,实际数据域,不参与校验,只校验Address,

Control和Length这几个域。

第15共39页

杭州波导软件有限公司

3.2.2. 格式约定

所有传输的字符以“一个起始位,八个数据位,无奇偶校验位和一个停止位”进行传输。

所有的域,先传输域的第1位。对于字节而言,也就是低位先传。

地址,命令,响应和序列数,都先传低位。

FCS序列,先传高次方的项的系数。

注意:这些约定意味着常常需要转换BIT位顺序。

3.2.3.

帧有效性

检验数据传输是否正确,可以根据下面的条件判断:

1)is not properly bounded by two flags不正确的边界条件位;

2)在两个边界条件位(flags)之间,至少有三个字节。

3)FCS的CRC校验错误;

4)地址域大于一个字节。

无效帧,通常会在不通知发送方的情况下被丢弃。Multiplexer的MS或TE端接收到无效

帧后,所要做的处理,由它的实现者去考虑。然而,接收到FCS校验域错误的帧的提示信息,

对音频/视频的DLC或许很有用。

3.2.4. 帧中止

不支持帧的中止。

3.2.5. 数据帧之间的填充

除了省电模式唤醒的过程,在数据帧与数据帧之间,需要填充一些stop标识。这种填充

了标识字符的情况下,接收方应该能正确处理。如果接收端,收到了多于3个连续的标识,

它在第一时间开始传输连续的标识(参见省电部分)。

3.2.6. 基本Basic

Flag

Address

Control

Length Indicator

Information

FCS

Flag

1B 1B 1B 1B/2B

长度不确定

1B 1B

图5:basic模式的帧的结构

在基本模式下的flag为下面的格式:=0xF9

Bit 1 2 3 4 5 6 7 8

Data

1 0 0 1 1 1 1 1

图6:basic模式的标识域

第16共39页

杭州波导软件有限公司

3.2.6.1. 约束

1)结束flag也可能是下一帧的开始标志。

2)在高级的模式中flag不一样。

3)不支持DC1/XON和DC3/XOFF的控制字符。

3.2.7. 高级Advanced

如果MUX会话开始,就使用了高级模式,那么,它就可以用于各种数据帧了。这种机

制基于控制字节透明(a control octet transparency)。它基于每帧的开(Opening)和闭(Closing)

的Flag标志的出现是唯一的。这些标志不可能出现在数据帧的信息域。如果在TE-MS链路上,

出现了同步的丢失,这种机制允许快速的同步恢复。

3.2.7.1. 控制字节透明

下面的透明机制应用于每个数据帧,从地址域到FCS域(含)。ESC控制字节,是一

个透明标识符,它标识了应用了下面透明流程的数据帧的一个字节。ESC控制字节编

码如下:

传输器(transmitter)将检查从开标识到闭标识的一个数据帧,包括地址域,控制域,

FCS域。FCS域是这样计算的:

- 当出现了标识或ESC控制字节时,补足该字节的第6位,并且

- 在传输的前一个字节与本字节中间,插入一个ESC控制字节(Insert a control escape

octet immediately preceding the octet resulting from the above prior to transmission)。

接收器(receiver)将检查两个标识字节之间的数据帧,收到一个ESC控制字节,并且

预先进行FCS计算:

- 丢弃ESC控制字节,并且

- 通过补足它的第6位,恢复紧接着的字节。

其他字节值也可通过传输器,包含在透明流程中。因此,包含哪些东西,取决于前述的

系统和应用程序的约定。

3.2.7.2. 开始/停止传输-扩展透明

传输器(transmitter)对追加到标志域和ESC控制字节上的其他字节应用上述的透明流

程。目前,仅有的其他字节是流控(flow-control)字符。流程参见3.2.6.3。

第17共39页

杭州波导软件有限公司

3.2.7.3. 流控(Flow-control)透明

流控(Flow-control)透明选项,为ISO/IEC646(例如1000100x和1100100x分别表示

x可以是0或者1)DC1/XON和DC3/XOFF控制字符,提供了透明的流程。这就确保了字节流

不包含像流控字符(不管奇偶校验)那样,能被中间设备打断的数值。

3.2.7.4. 帧的结构

帧的结构如图7所示。注意,这种结构不包括同步(例如,开始和停止位)或者透明目

的所增加的信息。传输的顺序从左往右。

透明机制被激活的情况下,帧的结构如下所示:

Flag

Address

Control

Information

FCS

Flag

1B 1B 1B

长度不确定

1B 1B

图7:advanced模式的帧结构

在高级模式下的flag为下面的格式:=0x7E

Bit 1 2 3 4 5 6 7 8

Data

0 1 1 1 1 1 1 0

图8:advanced模式的标识域

注意:结束flag也可能是下一帧的开始标志。

3.3. 帧类型

1) Set Asynchronous Balanced Mode (SABM) command

2) Unnumbered Acknowledgement (UA) response

3) Disconnected Mode (DM) response

4) Disconnect (DISC) command

5) Unnumbered information with header check (UIH) command and response

6) Unnumbered Information (UI) command and response

3.3.1. SABM command

SABM命令帧用来把指定的一端设置成异步平衡模式(ABM),这种模式下,所有的控

制域的长度都是一个字节。另外一端接收到SABM命令帧后,第一时间发送一个UA回应帧,

作为确认。接收到该命令,DLC发送和接收的状态,都将被置0。

3.3.2. UA response

UA回应帧,是对SABM和DISC这两个命令帧的确认。

第18共39页

杭州波导软件有限公司

3.3.3. DM response

它用于报告一端(station)逻辑上从数据链路上断开的状态。链路断开后,将收不到任

何命令,直到收到SABM重新建立通道为止。如果在链路断开状态,收到DISC命令,就应

该发一个DM作为响应。

3.3.4. DISC command

DISC命令用于终止通道。一端用它通知另外一端,它正在挂起操作并且将进入逻辑断

开模式。在处理这个命令以前,接收一端,用UA命令去回应,作为对收到DISC命令的确认。

用DLCI 0通道传送的DISC命令,跟MUX的关闭命令(见3.4.6.3)具有相同的意思。关

于关闭流程的更多信息,参加3.8.2。

3.3.5. UIH command/response

UIH命令帧/响应帧,用来传递不带有能影响任何一端的V(S)和V(R)变量的信息。

被传输的信息的完整性与传输到正确的DLCI相比,不太重要时,可以用UIH。UIH的帧,

FCS只对地址域,控制域和长度域,进行计算。

UIH命令帧/响应帧的接收,不是顺序的编号(被数据链路流程检验)。因此,假如数

据链路在受保护的该命令部分的传输过程中发生了异常,UIH数据帧可能丢失;假如对该命

令的回复过程中出现了异常,UI数据帧可能会重复。UIH命令帧/响应帧,没有指明回应帧。

3.3.6. UI command/response

UI命令帧/响应帧,用来传递不带有能影响任何一端的V(S)和V(R)变量的信息。

UI命令帧/响应帧的接收,不是顺序的编号(被数据链路流程检验)。因此,假如数据链路

在受保护的该命令部分的传输过程中发生了异常,UI数据帧可能丢失;假如对该命令的回复

过程中出现了异常,UI数据帧可能会重复。UI命令帧/响应帧,没有指明回应帧。

对UI数据帧来说,FCS对所有域(地址域,控制域,长度域,信息域)进行计算。是否

支持UI数据帧,是可选的。

第19共39页

杭州波导软件有限公司

3.4. 过程和状态

TE

AT+CMUX=„„

OK

SABM(0)

UA(0)

SABM(1)

UA(1)

SABM(2)

UA(2)

SABM(3)

UA(3)

UIH(1,“ATrn”)

UIH(1,“OKrn”)

UIH(0,CLD)

UIH(0,CLD-ACK)

MS

3.4.1. 建立DLC链路

多数情况,DLC链路是由TE建立的,然而,协议上是对等的,MS也可以建立它,但本

文不叙述这种情况。

建立过程如下:首先发起方发送P位为1的SABM命令,地址域是通道的编号。响应方

发F位为1的UA作为回应。如果响应方没准备好,或者不愿意建立,那么,它就回一个F位

为1的DM帧。

一旦DLC建立成功,就意味着进入了连接状态,可以传输数据了。

如果T1时间以内,收不到UA或DM的响应,就重发SABM。这个动作可以一直重复,直

到得到响应,或者上层应用采取了其他措施。

如果没有协商过程,DLC的参数就是默认的。

3.4.2. 释放DLC链路

双方都可以发送P位为1的DISC命令,来释放DLC链路。另外一方回应F位为1的UA帧。

如果释放成功,DLC就进入断开状态。

如果收到DISC命令时,发现已经是断开状态了,就发一个DM作为回应。

如果T1时间内,没有收到UA或者DM的响应,就重发DISC命令。

这个动作可以一直重复,

直到得到响应,或者上层应用采取了其他措施。

第20共39页

杭州波导软件有限公司

3.4.3. 信息传输

3.4.3.1. 信息数据

信息使用UI或UIH进行传输。UIH一定要支持,UI是可选的。

当知道数据被正确的接收非常重要时,就采用UI,例如IP业务包。传输出错无所谓时,

使用UIH。由于及时性的关系,不能采用差错恢复的机制时,可以使用UI或UIH,比如音频

数据。

双方都要把P位置0。C/R位,参见上面的描述。

信息的最大长度,受系统的参数所限制。

3.4.3.2. 优先级

每个数据流,都有对应的优先级。总共有0-63级别的优先级,数字越小,表示优先级越

高。TE位每个DLC指定一个优先级,并且,用控制通道,通知MS。

如果一条消息缺省优先级,DLC将根据3.6中的DLCI分配表指定它的优先级。传输器

(transmitter)控制哪些帧要传输,以及对它们按何种结构进行封装,并且不描述这些工作

是如何完成的。假如比现在正在传输的数据的优先级更高的数据正在等待,传输器有如下几

个可以采用的选项:

a) 先传输完当前帧。

b) 中止对当前帧的打包,传输当前的FCS和终止标识Flag(只对advanced),并且开

始传输更高优先级的数据。

带有更高优先级数据的DLC,不会阻止任何低优先级的DLC。高优先级和低优先级的帧

的交叉,是必要的,因为这能避免低优先级通道被永远堵塞。

3.4.4. 帧变量

P位置1,表示通道的一端向另外一端请求一个或者一组回应(response)。F位置1,表

示通道一端指明发一个响应帧,对另外一端的P命令进行回应。

在命令帧和响应帧里,P/F位,最好用一个函数进行设置。

3.4.4.1. P位函数

P位置1,向另外一端请求F位置1的响应帧。

在一个特别的DLCI,在给定的时间和给定的方向,只有一个P位置1的帧。

接收到一个P位置0的SABM或者DISC命令帧,接收到的帧,将被丢弃。

如果接收到未被请求的DM响应,这个帧要做与P/F设置无关的处理。

通道的一端在发送另外一个P位置1的帧之前,它会从另外一端收到一个F位置1的回应

帧。如果在系统定义的时间段以内,没有收到回应帧,重发一个P位置1的帧,用于错误恢

复的目的,是允许的。

第21共39页

杭州波导软件有限公司

3.4.4.2. F位函数

F位置1的回应帧,一端回应另外一端的P位置1的命令帧时,使用它。要求在第一时间

回应。

一端可以随时异步发送F位置0的回应帧。但如果接收到的是F位置0的UA回应帧,接受

的帧,将被丢弃。

如果接收到未被请求的DM响应,这个帧要做与P/F设置无关的处理。

假如一端接收到一个P位置1的命令帧,F位置1的回应帧的传输,将优先于其他命令。

但模式设置命令(SABM或者DISC)是个例外。

3.4.5. 超时的考虑

为了检测无回应或者回应丢失的情况,每端都应该提供一个响应超时的函数(T1)。

超时后,应该启动错误恢复的流程。

为了解决争夺的情况,超时函数的时长,在两端最好不要相等。

一端传输过一帧,等待回应时,超时函数就应该启动。收到回应,则停止计时。

如果响应超时函数超时了,重发P位置1的命令帧,超时函数重新开始计时。

3.4.6. 多路控制通道

在TE和MS通信开始时,使用3.8.1的流程,建立了DLCI 0通道作为控制通道。它用来在

两个MUX(multiplexer)之间传递信息。它用ERM模式或者non-ERM模式的流程,这个在

用+CMUX命令的时候,就决定了的。如果ERM的流程是可用的,就用它们。

3.4.6.1. 消息格式

Type Length Value1 Value2 … Value n

所有在多个MUX之间被传递的信息,都使用上述的type,length,value的格式。

上述的每个单元格至少占用1个字节,type和length有扩展位,所以,它们有可能多于1

个字节。

type域的第一个字节的bit位格式如下:

Bit No.

Value

Bit No 1

1 2 3 4 5 6 7 8

EA CR T1 T2 T3 T4 T5 T6

2 3 4 5 6 7 8

考虑EA=1时,长度域的扩展字节的bit位格式如下:

Value EA T7 T8 T9 T10 T11 T12 T13

EA位就是扩展位,其值为1表示当前就是本域的最后一个字节。

C/R位指示该信息是命令帧,还是回应帧。

第22共39页

杭州波导软件有限公司

T位表示类型编码。每个命令都有自己独特的编码方法。2^6=64,这就是说一个字节的

type域,能表式63种不同的信息类型。单字节的信息类型,在本文档中已经定义。

length的第一个字节的bit位格式如下:

Bit No. 1

Value

2 3 4 5 6 7 8

EA L1 L2 L3 L4 L5 L6 L7

后续字节,也是类似的格式。EA的意义跟上面的相同。

L1是最低位,L7是最高位。2^7=128,也就是一条信息最大可以有127个字节的value

值。

在不超过最大长度的情况下,一帧可以包含多条信息。但一条信息不能分割封装在多帧

中。

3.4.6.2. 操作流程

消息都是成对存在的,一个命令消息和一个相应的回应消息。假如C/R位置为1,消息

是命令,假如它置0,消息是回应。一个回应消息,跟引发它的命令一样,拥有同样的T位。

假如在T2的时间内,一个命令没有产生一个回应,命令将被重新发送N2次。假如N2

次的发送,都没有收到回应,MUX(multiplexer)的控制通道被认为有错,并且发出一个警

报。错误情况的解决方法,相应的执行。

3.4.6.3. 消息类型和处理(Action)

3.4.6.3.1. 参数协商PN(Parameter Negotiation)

这个流程是可选的。如果这个命令不支持,DLC都使用默认值。

在一个DLC用3.4.1的机制建立之前,TE和MS必须对本DLC使用的参数进行协商。这些

参数都由PN决定。

PN使用下面的type域字节:

Bit No. 1

Value

2 3 4 5 6 7 8

EA CR 0 0 0 0 0 1

Length域字节包括值8和下面8个值字节。值字节包括表3的信息。

表3:PN

Value Octet Bit1

1

2

3

4

5

6

7

8

D1

I1

P1

T1

N1

N9

K1

Bit2 Bit3 Bit4

D2

I2

P2

T2

N2

D3

I3

P3

T3

N3

D4

I4

P4

T4

N4

N12

0

Bit5 Bit6 Bit7 Bit8

D5

P5

T5

N5

D6

P6

T6

N6

0

0

T7

N7

0

0

T8

N8

CL1 CL2 CL3 CL4

N10 N11

K2 K3

N13 N14 N15 N16

0 0 0 0

NA1 NA2 NA3 NA4 NA5 NA6 NA7 NA8

各个域的编码如下:

D位定义了其他信息提及的DLCI,D1是最低有效位。

I位定义了用来在特殊DLC装载信息的数据帧的类型。见表4。

第23共39页

杭州波导软件有限公司

表4:I位的含义

Meaning

Use UIH frames

Use UI frames

I1 I2 I3 I4

0

1

0

0

1

0

0

0

0

0

0 Use I frames (note) 0

其他值保留。默认值是0000。缺省协商的情况下,(为DLCI>0)使用的帧类型,跟MUX

控制通道使用的相同。

CL位定义了特殊DLC使用的集成层的类型。参见表5。

表5:CL位的含义

Meaning CL1 CL2 CL3 CL4

Type1

Type2

Type3

0

1

0

0

0

1

0

0

0

0

0

0

其他值保留。默认值是0000。

P位定义了指派给特殊DLC的优先级。范围是0-63,0是最低的优先级。P1是最低有效

位。默认值由DLCI的值给定,参见3.6。

T位定义了确认时间T1,参见3.7.1。单位是毫秒,T1是最低有效位。

N位定义了最大帧的大小N1,参见3.7.2。该参数是六位的数字,N1是最低有效位。

NA位定义了重发的最大次数N2,参见3.7.3。该参数是八位数字,K1是最低有效位。

TE向MS传输一个参数协商(PN)命令,该命令的域里,赋值成TE想要为特殊DLCI

使用的值。MS回应一个参数协商(PN)回应,该回应带有MS提议的值。MS构建回应时,

参照下面的规则:

- DLCI值不变。

- 使用I帧或UI帧,是可选的,因此,没实现UI帧或I帧,MS采用UIH帧回应。

- MS不会改变被TE提议的集成层。

- MS不会改变被TE提议的优先级。

- T1值是TE使用的,是不可协商的;MS将插入它自己的T1。建议每方使用不同的T1。

- 假如没有足够的内存,MS将为最大帧的大小N1,提议一个更小的值。

- N2是TE使用的,是不可协商的;MS将插入它自己的N2值。

- 假如没有足够的内存,MS将为窗口大小k,提议一个更小的值。

假如TE认为MS的回应是可以接受的,TE将根据3.3.1的流程,建立DLC。假如回应是不

可接受的,TE将发起另一个带有新参数的PN命令,或者向上层传递失败信息。

假如网络上有一个来电到达MS,这时没有已经建立好的DLC,MS将发起PN流程,并

建立一个DLC。这种情况实际上是不会发生的,因为TE通常为各种功能建立DLC,在容量

交换后,它与MS所共享。来电的提示,将抛出(be through?)一个07.07或者07.05的结

果代码(result code)。

3.4.6.3.2. 省电控制PSC(Power Saving Control)

参见3.4.7。省电控制消息使用如下的type域字节:

Bit No. 1

Value

2 3 4 5 6 7 8

0 0 1 0 EA CR 0 0

Length字节包含值0,没有无值字节。

假如一端想进入省电状态,它传输一个PSC命令;另一端回复一个PSC回应。

假如一端想请求让另外一端进入省电状态,它传输一个PSC命令;另外一端回复一个

PSC回应。响应端可以进入省电状态,但这不是必须的。

第24共39页

杭州波导软件有限公司

3.4.6.3.3. 关闭MUX(Multiplexer Close Down)

参见3.8.2。

MUX的CLD命令用于重置链路为非多串口的正常AT命令模式。它的type域字节如下:

Bit No. 1

Value

2 3 4 5 6 7 8

EA

C/R

0 0 0 0 1 1

Length字节包含0值,没有值(value)字节。

3.4.6.3.4. 测试命令

测试命令用来测试TE和MS的链接。Length字节描述了值的字节数量,它用于验证模型。

对端将回应具备相同的值的字节。它的type域字节的格式如下:

Bit No. 1

Value

2 3 4 5 6 7 8

EA CR 0 0 0 1 0 0

3.4.6.3.5. 流控开FCon(Flow Control On)

流控命令用来处理聚集的流(aggregate flow)。当任何一端可以接收新信息的时候,

它发送这个命令。

Length字节包含值0,没有值(value)字节。它的type域字节如下:

Bit No. 1

Value

2 3 4 5 6 7 8

EA CR 0 0 0 1 0 1

3.4.6.3.6. 流控关FCoff(Flow Control Off)

流控命令用来处理聚集的流(aggregate flow)。当任何一端不能接收新信息的时候,

它发送这个命令。另外一端不能发送数据帧,除了用控制通道(DLC=0)。

Length字节包含0值,没有值(value)字节。它的type域字节如下:

Bit No. 1

Value

2 3 4 5 6 7 8

EA

C/R

0 0 0 1 1 0

3.4.6.3.7. 猫状态命令

MSC

Modem Status Command)

想往一个数据流中传送V.24控制信号,这是通过发送MSC命令来完成的。MSC命令有

一个强制的控制信号字节和一个可选的中止信号字节。当basic模式时,这个命令才有效

(relevant)。

这个命令将在DLC建立之后,优先于任何用数据,进行传输。

Command

Length

DLCI

V.24 signals

Break Signals(optional)

这个命令包含值2或值3,并且有2或3个值字节。

DTE和DCE都使用这个命令,相互通知它们自己V.24控制信号的状态。MSC命令的长

度是4或5字节,这依赖于中止信号。

Command域字节的格式如下:

Bit No. 1

Value

2 3 4 5 6 7 8

EA CR 0 0 0 1 1 1

C/R位用来指示它是命令还是回应。

每当信号改变,DTE或DCE发送这个命令,来指明每个信号的当前的状态。当DTE或

DCE接收到猫命令,它总是发送回一个回应。接收方或发送方的V.24信号到控制信号字节

里的BIT位的映射表,分别在表6和表7中给出。

MSC命令中,发送方自己的V.24信号,将被发送;但在回应中,它复制了从将被送回

第25共39页

杭州波导软件有限公司

的命令帧里,接收到的V.24信号。

DLCI域标识了该命令应用的(specific)DLC。第2位总被置1,EA位根据3.2.1.2的描

述设置。

Bit No. 1

Value

2 3 4 5 6 7 8

DLCI EA 1

图9:地址域的格式

紧跟着DLCI域的是控制信号域,它包含信号状态的表现(representation),见图10。

扩展位的使用,允许添加其他字节,以满足其他情况。目前,可选的第二个字节被定义为用

来处理中止信号的传输。

Bit No. 1

Value

2 3 4 5 6 7 8

EA FC RTC RTR Reserved0 Reserved0 IC DV

图10:控制信号字节的格式

控制信号字节的描述如下:

EA位就是扩展位,其值为1,表示当前就是本域的最后一个字节。

FC(Flow Control)流控位,其值为1,表示不能接收数据帧。

RTC(Ready To Communicate)位。其值为1,表示设备准备好发送数据。

RTR(Ready To Receive)位。其值为1,表示设备准备好接收数据。

Bit5/Bit6,保留位,以后使用。发送方置0,接收方忽略它。

IC(Incoming Call)位。其值为1,表示一个来电。

DV(Data Valid)位。

其值为1,表示有效数据正在发送。

控制字节映射到V.24信号,根据下表:

表6:接收

时转

V.24信号的映射表

Control Signal Byte DTE receiving

bit number, name

3, RTC

4, RTR

7, IC

8, DV

DSR

CTS

RI

DCD

107

106

125

109

DCE receiving

V.24 circuit

108/2

-

-

DTR

-ignored

-ignored

signal V.24 circuit signal

RFR (note) 133

NOTE Circuit 133, RFR (Ready for Receiving) is commonly assigned to the connector pin that is

alternatively used for circuit 105, RTS. It is sometimes referred to by that name.

表7:发送时转

V.24信号的映射表

Control Signal Byte DTE sending

bit number, name

3, RTC

4, RTR

7, IC

8, DV

signal

DTR 108/2

DCE sending

DSR 107

CTS 106

RI 125

DCD 109

V.24 circuit signal V.24 circuit

RFR (note) 133

always 0- -

always 1- -

NOTE Circuit 133, RFR (Ready for Receiving) is commonly assigned to the connector pin that is

alternatively used for circuit 105, RTS. It is sometimes referred to by that name.

假如一端由于流控的原因,不能传输数据帧,但它想自己停止接收更多的帧,它为了发送

流控信号,可以继续发送不包含用户数据的帧(比如,只有控制信号字节和可选的中止信号字节)。

EA位就是扩展位,其值为1,表示当前就是本域的最后一个字节。

Bit No

1 2 3 4 5 6 7 8

signal EA B1 B2 B3 L1 L2 L3 L4

第26共39页

杭州波导软件有限公司

图11:中止信号字节的格式(可选的)

中止信号字节通过数据流能携带被DLC检测到的中止信号的信息。每个位的含义如下

表:

表8:中止信号字节的含义

Bit

B1

B2

B3

Value

1

0

0

0

Meaning

字节编码了一个中止信号

字节没编中止信号

保留,发送方置0,接收方忽略

保留,发送方置0,接收方忽略

L1-L4 4-bit value Length of break in units of 200ms

L1-L4是中止的长度(break length),L1是最低有效位,L4是最高有效位。

当一端接收到一个中止字节,它将处理接收到的信息,并且通过适当的途径传递它。这

不在本文档的描述范围内。

3.4.6.3.8.

不支持命令NSC(Non Support Command)

当接收端不支持某种类型的命令时,发该命令帧作为回应。

Length字节不含值1,并且只有一个值字节。

Type域字节格式如下:

Bit No.

1 2 3 4 5 6 7 8

signal EA CR 0 0 1 0 0 0

值字节包含不支持命令的命令格式。

值字节(value octet)格式如下:

Bit No.

1 2 3 4 5 6 7 8

signal EA CR Command type

3.4.6.3.9.

远程端口协商RPN(Remote Port Negotiation)

这个命令是可选的。这个命令用来配置远程端口通信设置的。

所以的设备都要保证在发送数据前,通信设置被正确的配置。如果协商没完成,将对所

有参数采用默认值。

在连接状态,当通信设置变动后,设备必须发送PRN。端口线路状态(Port Line Status)

变动后,也一样要发PRN。

Command Length Value

RPN 1 or 8 octet1

(DLCI)

Value

octet2

Value

octet3

Value

octet4

Value

octet5

Value

octet6

Value

octet7

Value

octet8

optional optional optional optional optional optional optional optional

RPN的type域字节格式如下:

Bit No.

1 2 3 4 5 6 7 8

signal EA CR 0 0 1 0 0 1

Length字节包含值1或8,并且它有1个或8个值字节。

DLCI字节格式如下:

Bit No.

1 2 3 4 5 6 7 8

DLCI signal EA 1

第27共39页

杭州波导软件有限公司

DLCI字节的第2位没用,固定为1。EA位,依据3.2.1.2的描述。Value数组:

端口值字节(Port Value Octet)格式如下:

Value Octet Bit1

2

3

4

5

6

7

8

B1

D1

FLC1

Bit2

B2

D2

FLC2

Bit3

B3

S

FLC3

Bit4

B4

P

FLC4

Bit5

B5

PT1

FLC5

Bit6

B6

PT2

FLC6

Bit7

B7

res

res

Bit8

B8

res

res

XON1 XON2 XON3 XON4 XON5 XON6 XON7 XON8

XOF1 XOF2 XOF3 XOF4 XOF5 XOF6 XOF7 XOF8

PM1

PM9

PM2 PM3 PM4

PM12

PM5 PM6 PM7 PM8

PM16 PM10 PM11 PM13 PM14 PM15

一端向另外一端发送一条RPN命令,它的各个域,都设置了想要的值的,参数掩码指

明了哪些参数被设置了值。

当另一端接收到RPN命令后,将根据下面的规则,作回应:

DLCI值不能变。

接收方将接收到发送方提议(proposed)的端口值字节,并且回复一个把所有能接受参

数的参数掩码置1的数据帧。假如接收方不接受任何提议的值,它回复一个把不支持参数的

参数掩码都置0的帧。对这些参数掩码置1的参数,新的值,将被接受并且被使用。

假如命令里只包含了一个值字节,它被解释位一个请求,接收方将用当前的端口值的设

置,进行回应。

假如发送方认为回应是可以接受的,也就是说,各比特位相匹配(match),发送方将开

始根据端口值字节使用DLC。假如回应是不可接受的,发送方将启动另一个参数修改了的

RPN命令,直到最终协商好,或者向更高层传递失败的信息。

B1-B8指明了波特率,见下表。

表12:B位的含义

Meaning

2400bit/s

4800bit/s

7200bit/s

9600bit/s

19200bit/s

38400bit/s

57600bit/s

B1 B2 B3 B4 B5 B6 B7 B8

0

1

0

1

0

1

0

0

0

1

1

0

0

1

1

0

0

0

0

0

1

1

1

1

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

115200bit/s 1

230400bit/s 0

所有其他的B位的值都是保留的。默认值是1100 0000(9600)。

D1-D2指示了数据位的数量。

D1 D2

00 5 bits

01 6 bits

10 7 bits

11 8 bits - default

S位指明了停止位的数量。S=0:1停止位,S=1:1、5停止位。默认值S=0。

P位指明了奇偶校验。P=0:无校验,P=1,有校验。默认值P=0。

第28共39页

杭州波导软件有限公司

PT1-PT2指明了了校验的类型。

PT1 PT2

00 odd parity

01 even parity

10 mark parity

11 space parity

FLC1-FLC6,默认值为0,没有流控。

Bit1 XON/XOFF on input

Bit2 XON/XOFF on output

Bit3 RTR on input

Bit4 RTR on output

Bit5 RTC on input

Bit6 RTC on output

Note. The RTR is mapped to either CTS (circuit 106) or RFR (circuit 133). The RTC is

mapped to either DTR (circuit 108/2) or DSR (circuit 107). (Circuit 133, RFR(Ready for

Receiving) is commonly assigned to the connector pin that is alternatively used for circuit 105,

RTS. It is sometimes referred to by that name)

XON1-XON8,XON字符(默认值DC1)。

XOF1-XOF8,XOFF字符(默认值DC3)。

PM1-PM8,参数掩码。

参数掩码用来指明哪些参数被RPN命令所协商。对一个命令来说,参数掩码将被理解

为:0=没改变;1=有改变。对应一个回应来说,0=不可接收的;1=可以接收并且使用的。

值字节7和8的比特位掩码如下:

Bit1 bit rate

Bit2 data bits

Bit3 stop bits

Bit4 Parity

Bit5 parity type

Bit6 XON character

Bit7 XOF character

Bit8 reserved

PM9-PM16,也是参数掩码。

Bit1 XON/XOFF on input

Bit2 XON/XOFF on output

Bit3 RTR on input

Bit4 RTR on output

Bit5 RTC on input

Bit6 RTC on output

所以保留的值,都被发送方设置为0,被接收方所忽略。

远程线路状态RLS(Remote Line Status)

3.4.6.3.10.

远程线路状态RLS(Remote Line Status)

这个命令是可选的。

第29共39页

杭州波导软件有限公司

这个命令指明了远程端口线路的状态。

连接状态下,当远程端口线路状态改变时,设备必须发送RLS命令。

RLS命令使用如下的type域格式:

表13:type域字节

Bit No.

1 2 3 4 5 6 7 8

signal EA C/R 0 0 1 0 1 0

Length字节包含值2,它有两个值字节。

表14:DLCI字节

Bit No.

1 2 3 4 5 6 7 8

D L C I signal EA 1

DLCI字节的第2位没用,固定为1。EA位,依据3.2.1.2的描述。

表15:RLS字节

Value Octet

Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8

1 L1 L2 L3 L4 res res res res

一端向另外一端发送一条RLS命令,它的各个域,都设置了想要的值的。当另外一端

接收到RLS命令后,它必须用包含它接收到的值的RLS回应帧回应。

L1-L4位指明了线路状态。L1置0,表示没出现错误。L1置1,指明了如下的错误:

L2-L4:

100 越界错误(Overrun Error) - 接收到的字符有不可读的字符

010 校验错误(Parity Error) - 接收到的字符的校验位不正确

001 装配错误(Framing Error) - 一个字符不是以停止符结束的

Res位,由发送方置0,被接收方忽略。

3.4.6.3.11.

服务协商命令SNC(Service Negotiation Command)

这个命令用来查询和设置特殊DLC的特殊服务的。它以特殊的数字视频类型为例子。

在一些情况下,AT命令和原始数据在同一个DLC上混合,是不太合适的。这些情况下,

可以建立一些特殊的DLC,传输一些特殊的数据类型。这种情况的例子,尤其对视频传输

更有用,当AT命令控制了链接,在DLC上传输时,音频数据可以由另一个DLC运载。在

数据流里,用AT命令发送ESC序列,这种机制是可供选择的。假如这个命令没被用,DLC

默认设置为正常的AT命令模式。假如这个命令使用了,在DLCI字节指明的DLC,修改为

用来运载特殊字节类型。这个命令的发起方,也可以查询每个DLCI的特殊服务。

SNC的格式如下:

表16:SNC格式

Byte No. 1 2 3 4 5

Meaning Type field code Length DLCI Service Value octet Voice Codec

(optional) Value octet

(optional)

Type域字节格式:

表17:type域字节

Bit No.

1 2 3 4 5 6 7 8

signal

EA C/R 0 0 1 0 1 1

Length字节包含值1或值3,它有一个或三个值字节。

表18:DLCI字节

Bit No.

1 2 3 4 5 6 7 8

第30共39页

杭州波导软件有限公司

signal EA 1 D L C I

DLCI字节的第2位没用,固定为1。EA位,依据3.2.1.2的描述。

表19:服务值字节

Value Octet

Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8

1 EA S1 S2 S3 S4 S5 S6 S7

EA位,依据3.2.1.2的描述。

表20:音频编码值字节

Value Octet

Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8

1 EA V1 V2 V3 V4 V5 V6 V7

EA位,依据3.2.1.2的描述。

表21:服务值的各个比特位

Value Bit Service

S1

S2

S3

S4

S5

S6

S7

Value Bit Service

V1

V2

V3

V4

V5

V6

V7

Voice (coded – GSM 06.21)

Voice (coded - PCM 64 kbit/s U-law)

Voice (coded ADPCM 32kbit/s) ITU-T G.726

Voice (coded halfrate)

Voice (coded - PCM 64kbit/s A-law)

Voice (coded PCM 128kbit/s)

Reserved

Data

Voice

Reserved

Reserved

Reserved

Reserved

Reserved

表22:音频编码值的各个比特位

发送方传输一个SNC命令,它的各个域,都设置成该特殊DLC可以使用的所有可能的

服务的值。接收方用它选择的值的集合,以一个SN回应帧回复它。接收方构建回应帧的时

候,必须遵守如下的规则:

DLCI值不能变。

接收方可以而选择发送方提议的服务的子集,但不能是超集。接收方所选择的,才是

有效的。假如接收方不支持发送方提议的任何服务,它把服务字节置回复。

即使选择了数据服务,音频编码值字节也总要出现的(present)。这种情况下,该字节

的V1-V7比特位,都置0。

0值,意味着标准AT命令模式。

假如命令里没有包含值字节,它被解释位一个请求,并且接收方用所有可能的服务回应。

假如发送方认为回应是可以接收,也就是说,服务别特务都匹配(match),发送方根据

服务,开始使用DLC。假如回应是不可接受的,发送方将发起另外一个修改了参数的PNC

命令,直到最终协商好,或者向更高层传递失败的信息。

假如DLC上没有执行过服务协商,它在标准AT模式下运行。这种情况下,一个来电

的指示,在另一个(that)DLC上。

第31共39页

杭州波导软件有限公司

发送方把保留位置0,接收方忽略这些保留位。

3.4.7. 电源控制与唤醒机制

对各种类型的MS和一些TE来说,设备耗电非常少,这是非常重要的。比如,在非激

活的条件下,进入各种省电状态,就能达到这个目标。假如TE和MS都希望进入省电状态,

MUX系统必须能够完全关闭。通过使用MUX的控制通道,来达到这个功能。

假如TE和MS都希望进入省电状态,一个PSC命令在MUX的控制通道上,发送到另

外一端。接收端接收到这个消息,将完全传输当前进行中的所有的帧,向上层报告一个忙或

者电源关闭的情况,冻结所有的定时器,发送回一个PSC回应帧。当PSC命令的发起方,

收到确认后,它就可以进入省电状态了。

每一端都可以发送PSC命令,请求另外一端进入省电状态。接收方必须用PSC回应帧,

确认PSC命令帧,但不一定要遵从命令而进入省电状态。如果没有收到回应帧,发送方重

发命令帧,但是,必须先执行唤醒流程。

每一端都可以从省电状态,通过发送由连续的标识字符组成的唤醒信号,发起唤醒流程。

当另一端收到标识字符时,如果必要它将醒来(wake-up),并且发送标识字符。当发起端接

收到这些字符后,它停止发送标识字符,并且开始传输第一个数据帧。当接收端检测到有效

帧后,它将停止发送标识字符。两端都解冻它们的定时器,像以前一样继续运行。

假如T3时间内,唤醒流程收不到回应帧(连续的标识字符),将向上层发出一个警告,

并且停止标识字符的传输。

3.4.8. 流控

3.4.8.1. RTR流控

图12显示了DTE到DCE的链接。本段定义的流控方案,同样适用于DTE-DTE的链

接。07.10的两端都用RTR(RFR/CTS)流控配置过。对本地应用程序来说,流控信号就是

其他三个流控信号和对方设备的RTR信号的联合。标签为FCS1-FCS3的流控信号定义如下:

FCS1 MSC命令或者type2的集成层的控制信号字节的第2位。每个DLCI都流控。

FCS2 07.10通过控制通道命令Fcon和Fcoff(basic模式)聚合的流控。

FCS3 07.10 内部的缓冲区管理 (implementation specific)

流控信号FCS1-FCS3跟对端的RTR信号组合在一起,产生了本地的RTR输入信号。

比如,为了模拟DTE串口的CTS信号的表达式是:

= AND FCS1 AND FCS2 AND FCS3

在moden状态命令(当使用集成层1,3和4)的第2位(FC)和第4位(RTR),或

控制信号字节(当使用集成层2)的第2位(FC)和第4位(RTR), 流控模拟器复制了发

送的RTR信号。

第32共39页

杭州波导软件有限公司

3.4.8.2. XON/XOFF流控

当嵌入了XON/XOFF字符,一些07.10的实例可以检测来自本地应用程序的XON/XOFF

字符。这种情况下,字符遵照07.10,但不发送给对端的07.10实例,比如XON/XOFF字符

被过滤出来,流控信号作为07.10流信号传送,见图13。

如果输出(output)使用了XON/XOFF流控,07.10将用XON/XOFF字符实现本地应

用程序的流控,比如,XON/XOFF字符根据07.10流控信号(参见图14),被插进数据流。

第33共39页

杭州波导软件有限公司

3.5. 集成层Convergence Layer

集成层的定义,允许带结构的数据,通过MUX传输,不丢失结构和其他与数据流相关

的参数。集成层通常用来通过一个DLC,运载V.24的状态,或者用来确保一个声音编码帧

的边界受到保护。

集成层决定数据是否被ERM模式或者non-ERM模式的流程所运载。

特殊的集成层用于连接被使用的DLCI,但是可能通过MUX控制信道的使用,跟这些

默认的DLCI进行协商。

3.5.1. 类型1-未结构化的字节流

未结构化的字节流数据,比如64kbit/s的未编码的声音或者不带V.24控制信号的常规

异步数据,被直接插入到I域。这种情况下,可以这样说,集成层是空的。

Type1是每个DLC的默认的集成层。

3.5.2. 类型2-带参数的未结构化的字节流

传输V.24控制信号相关的一个数据流,它每个I域的第一个字节包括信号的状态,见

下图。扩展位的使用,允许添加其他字节来满足其他的情况。目前,可选的第二个字节,被

定义为处理中断信号的传输。

Bit No 1 2 3 4 5 6 7 8

Signal EA FC RTC RTR Reserved 0 Reserved 0 IC DV

图15:控制信号的字节格式

控制信号字节的描述如下:

Bit1。EA为1表示本字节是该域的最后一个字节,其他字节EA位为0。

Bit2。DLC的流控(Flow Control)。Non-ERM模式下,设备不能接收帧时,置1。ERM

第34共39页

杭州波导软件有限公司

模式下,发送方,永远置0,接收方忽略它。

Bit3。准备好发送(Ready To Communicate)。设备准备好发送的时候,置1。

Bit4。准备好接收(Ready To Receive)。设备准备好接收数据的时候,置1。

Bit5/6。保留。发送方要置0,接收方忽略它。

Bit7。来电(Incoming Call)标识。该位置1指明有个来电。

Bit8。数据有效(Data Valid)。该位置1指明有效的数据正被传送。

接收方和发送方的V.24控制信号字节的各BIT位,分别在表23和表24中。

Table 23: Mapping from the control signal octet by a receiving entity

Control Signal Byte DTE receiving

bit number, name

2, FC

3, RTC

4, RTR

7, IC

8, DV

signal

DSR

CTS

RI

DCD

V.24 circuit

107

106

125

109

DLC flow control -

DCE receiving

signal

DTR

RFR (note)

ignored

ignored

V.24 circuit

108/2

133

-

-

DLC flow control -

NOTE Circuit 133, RFR (Ready for Receiving) is commonly assigned to the connector pin that is

alternatively used for circuit 105, RTS. It is sometimes referred to by that name.

Table 24: Mapping to the control signal octet by a sending entity

Control Signal Byte

bit number, name

2,FC

3,RTC

4,RTR

7,IC

8,DV

DTE sending

signal

frame flow control

DTR

RFR (note)

always 0

always 1

V.24 circuit

-

108/2

133

-

-

DCE sending

signal

frame flow control

DSR

CTS

RI

DCD

V.24 circuit

-

107

106

125

109

NOTE. Circuit 133, RFR (Ready for Receiving) is commonly assigned to the connector pin that is

alternatively used for circuit 105, RTS. It is sometimes referred to by that name.

Non-ERM模式下,FC位为DLC提供帧的流控。如果一端不能接收数据帧了,比如,

由于缓冲区管理的问题,它将置FC位为1。当它又能接收数据帧了,它将置FC位为0。如

果一端接收一个FC位置1的数据帧,它将停止传输数据帧,直到收到一个FC位置0的数

据帧。

如果一端由于流控的原因,不能传输数据帧了,但它想自己停止接收数据帧,或者想在

控制信号中发送一个改变信号或者想发送一个中止状态,它要继续发送不包含用户数据(比

如只包括控制信号的字节和可选的中止信号的字节)的帧。

ERM模式下,FC位没有用,将被发送方置0,被接收方忽略。如果一端已经不再(被

防止)发送I帧,例如,正接收一个RNR帧,如果它想在控制信号中发送一个改变信号,

或者想发送一个中止状态,它要继续发生一个不包含用户数据的UI或者UIH帧。

Bit No 1 2 3 4 5 6 7 8

Signal EA B1 B2 B3 L1 L2 L3 L4

图16:中止信号的字节格式

中止信号字节携带能让DLC检测出来的中止信息。其意义如表25。

表25:中止信号的字节的含义

第35共39页

杭州波导软件有限公司

Bit

B1

B2

B3

Value

1

0

1

0

1

0

Meaning

Octet encodes a break signal

Octet does not encode a break signal

Discard data in buffers

Do not discard data in buffers

Transmit break signal onwards as soon as possible

Transmit break signal onwards in sequence

L1-L4 4-bit value Length of break in units of 200ms

L1是break length的最低位,L4是最高位。

当一端接收到中止字节(break octet),它将处理这个信息,并用适当的方法传递它。这

不在本文档论述范围之内。

I域的其他字节包括该DLC所需的数据。

3.5.3. 类型3-不可中断的帧数据

一个不可中断的帧数据的例子就是由连续的音频数据帧组成的音频编码数据。音频编码

数据数据帧,带有完整的帧结构,在尽可能短的时延下,到达音频解码器,是非常重要的。

最简单的把办法是确保把一个完整的音频数据帧放进一个I域中。在传输过程中,即使高优

先级的数据在等待,这个数据帧也不能变短(shortened压缩?)。

在传输器(transmitter)那,数据的每个帧,都被插进一个I帧,UI帧或UIH帧的I域

中。接收器作为完整帧,处理数据,传输它。

音频编码数据应该使用UI帧或UIH帧传输,因为重新传输的延时,通常是不能接受的。

3.5.4. 类型4-可中断的帧数据

当时延不像type3那么重要时,这种类型的集成层,被用来传输有结构的数据。结构化

的数据可以被分割成多帧,并且可以在另外一端重新装配。按PPP封装的IP数据,就是一

个例子,它的数据可以运载在Type4的集成层上。

每个type4的数据帧的第一个字节是一个控制字节,如下图17。

Bit No 1 2 3 4 5 6 7

Signal EA - - - - - B F

Figure 17: Format of Type 4 octet

EA位以后扩展,如果需要用到多个字节时。这里设置为1。

B和F位用来指示该数据帧是一个序列的第一个数据帧,中间的数据帧或者最后一个数

据帧。它的含义如下面表26所示。

表26:B位和F位的含义

B位 F位 含义

1

0

0

1

0

0

1

1

一个序列的第一帧

一个序列的中间帧

一个序列的最后一帧

数据完全被包含在一个数据帧中

第36共39页

杭州波导软件有限公司

注意1:假如其他的帧结构,比如第二层协议,已经包含在数据流中,按PPP封装的IP

数据可以使用type1的集成层运载。

注意2:如果一个数据帧作为最后一个数据帧进行编码,或者所有的数据包含在一个数

据帧中,数据帧不能被压缩,因为,压缩会导致帧头(header)含义的错误。构造不包含任

何数据的数据帧作为最后一个数据帧,或者当数据帧需要压缩时避免使用11编码(11 code),

是明智的。

3.6. DLCI值

默认情况下,所有DLC使用了type1的集成层。其他层的使用,可以通过MUX的控

制通道进行协商。

表27:DLCI分配表

用法Usage

Multiplexer control channel

AT commands (07.07 and 07.05)

AT commands (07.07 and 07.05)

AT commands (07.07 and 07.05)

AT commands (07.07 and 07.05)

AT commands (07.07 and 07.05)

AT commands (07.07 and 07.05)

AT commands (07.07 and 07.05)

AT commands (07.07 and 07.05)

Reserved

DLCI 0为控制通道保留。

DLCI 62为basic模式下BOFC和EOFC的ETSI目的保留,也只能这么用。

DLCI 63为HDLC模式下的ETSI目的保留(由于特别的含义),也只能这么用。

在DLC指定优先级的信息的缺省情况下,使用这个表。

DLCI编号(10进制) Priority优先级

0

1-7

8-15

16-23

24-31

32-39

40-47

48-55

56-61

62-63

0

7

15

23

31

39

47

55

61

3.7. 系统参数

MUX定义了下面这些的系统的参数。T1,N1,N2和k可以通过控制通道进行协商,

或者用这里给的默认值。T2和T3通过AT+CMUX命令进行设置。

3.7.1. 确认时间T1

T1就是通道一端在采取其他动作(比如重发)之前,等待确认信息的时间。通道两端

可以有不同的T1值。

单位是毫秒。Times of up to 2.55 seconds may be used.

默认值是100ms,最小值是10ms。

第37共39页

杭州波导软件有限公司

3.7.2. 帧的最大长度N1

N1定义了帧的信息域,能容纳的字节的最大数量。它不包括为了透明而增加的字节。

默认值是64字节(advanced)或者31字节(basic),范围是1-32768。

注意:如果使用了a Type 2 convergence layer,N1要小心选择了。帧必须足够大,以包

含完整的协议帧。

3.7.3. 最大重发次数N2

N2定义了重发的次数。通道两端可以有各自不同的N2值。

默认值是3,范围是0-255。

3.7.4. 窗口大小k

窗口大小参数k定义了一个DLC能理解的最大的I帧的数目。不同的方向,需要用同

一个值。窗口大小不能大于7。

这个参数只使用于错误恢复模式激活的情况下。

默认值是2,范围是1-7。

3.7.5. 控制通道的响应时间T2

T2就是MUX的控制通道重发一个命令前的等待时间。

T2必须大于T1。单位也是毫秒。Times of up to 2.55 seconds may be used.

默认值是300ms,最小值是20ms。

3.7.6. 唤醒流程的响应时间T3

T3就是发送端在无响应报警之前,对省电唤醒命令所等待的时间。

单位是秒。Times of up to 2.55 seconds may be used.

默认值是10s,最小值是1s。

3.8. 启动和关闭MUX

启动MUX使用+CMUX命令。这个命令指明了启动MUX,使用的ERM还是non-ERM。

发送SABM,初始化DLCI 0。然后,使用同样的3.4.1的流程,建立其他的DLC。MUX可

以跟已经建立的DLC,协商参数。

关闭MUX,可能有TE或MS端发起。先要用3.4.2的流程,释放除了DLC 0的所有

DLC。然后,MUX通过控制通道,发送一个关闭的消息。这个消息被双方确认后,就退出

了多串口模式。如果在T2时间内收不到对方对关闭命令的回应,发起方必须重发关闭命令,

如果在T3的时间内还收不到,必须强行关闭。

第38共39页

杭州波导软件有限公司

4. Error Recovery Mode

错误覆盖模式,用的不多,但是比没有覆盖模式安全,并且只能在高级模式中使用。帧

模式是I帧。在这里不做介绍。

第39共39页

发布评论

评论列表 (0)

  1. 暂无评论