From: http://hi.baidu.com/jasonzang1982/blog/item/060b0b3b5ad073f9b211c79d.html
TE: terminal equipment
MS: mobile station
Allows a number of simultaneous sessions over a normal serial asynchronous interface.
1. TE通過物理通道發送AT+CMUX=0通知MS進入mux模式;
2. MS響應OK表示同意;
3. TE依次發送SAMB0,1,2,3,建立編號為0~3的邏輯通道;
4. MS響應UA表示同意;
5. TE在通道1上發送命令UIH(1,"AT/r/n");
6. MS也在通道1上響應UIH(1,"OK/r/n").
0710一共定義了6種包(不包括error recover mode)
1. Set Asynchronous Balanced Mode (SABM)--建立邏輯通道;
2. command Disconnect (DISC) command-取消邏輯通道;
3. Unnumbered Acknowledgement (UA) response-響應建立通道;
4. Disconnected Mode (DM) response-響應取消邏輯通道;
5. Unnumbered information with header check (UIH);
6. Unnumbered Information (UI).
0710支援三種模式: Basic,Advanced,Advance with error recovery.
Basic: Flag(1Byte) Adderss (1Byte) Control(1Byte) Length(1~2Byte) Info(Length指定長度,可變) FCS(1Byte) Flag(1Byte).
Flag固定為0xF9;
Adderss 邏輯通道編號,類似於MAC地址.bit1 為 E/A,bit2 為 C/R,bit3~8為邏輯通道號. E/A
為1表示當前位元組是否是該項的最後一個位元組,這裡只能為1; C/R用來指示命令發送方是否是通道發起方,是則為1
如TE建立的邏輯通道1,往該通道上發命令包時,Adderss為0x7,MS響應Adderss也是0x7;
Control 為上面說的包類型,其中bit5為P/F,大致可以這麼理解,SAMB,DISC包及其響應時,P/F為1(響應為DM時,該位可以是0或1);
Length 為Info項長度,bit定義依次為 E/A,L1,L2,...,L7,(L8,...,L15),長度小於128時,E/A為1,不編碼第二個位元組 Info 類容取決域包類型;
FCS 為校正碼,UIH,UI包的區別就在這裡,UIH不對Info項編碼,只編碼Adderss,Control,Length.
Advanced模式包格式為 Flag(1Byte) Adderss (1Byte) Control(1Byte) Info(不定長) FCS(1Byte) Flag(1Byte)
Flag固定為0x7E;
兩種模式的區別就是Advanced模式沒有Length一項,而是採取了特定格式編碼,來決定包何時結束,發包方對Flag除外其他項編碼,碰到0x7E,0x7D等字元則在其前插入0x7D,接受方去掉相應0x7D.這樣碰到單獨的0x7E則表示包的結束和開始.