串行通信链路复用协议在嵌入系统上开发
扫描二维码
随时随地手机看文章
随着移动通信技术的迅速发展,具备无线通信功能的移动终端也迅速发展起来。这些移动终端支持普通的话音、短消息等业务,随着gprs网络覆盖的迅速扩大,越来越多的手持/车载移动终端也开始支持gprs上网业务。如何在一个终端设备上整合这些业务,这是许多移动终端设备开发者面对的问题。笔者在开发一款车载移动终端过程中,采用了3gpp的ts 27.010协议,成功地整合了这些业务。 1 ts27.010协议介绍在常用的gsm/gprs通信模块中(如siemens的mc35mc35、wavecom的q2400q2400等),只能通过一个普通9针的异步串口与终端设备te(terminal equipment)进行通信。te和ms?mobile station?需要通过这个串口交换各种类型的数据,例如:语音、传真、数据、sms、cbs、电话号码本的维护、电池状态、gprs、ussd等。如何在一个串口上同时支持这么多的业务?例如,在数据通信过程中,怎样发送或接收sms?为了解决这些问题,3gpp提出了一个协议--ts27.010协议(terminal equipment to mobile station multiplexer protocol)。有了multiplexer,即使在数据连接过程中,也可以发送sms。其它业务组合也可以同时进行。例如,数字语音和sms同时发送。multiplexer的存在使得一个完整的系统能够根据需要进行划分。3gpp 的multiplexer设计非常灵活,并且独立于ms/te平台,已有的应用程序不需要改动即可工作。在设计multiplexer时,特别考虑到采用电池供电的设备的需求,所以包含了省电模式控制等很重要的功能,并且multiplexer本身在运行时也尽量使用最小的功耗和内存。multiplexer基于iso的hdlc标准设计,工作于有多种选项的单模式下。但是basic option并不遵从hdlc。在基本选项模式下,multiplexer没有透明机制,也没有错误恢复功能。但是在高级选项(advanced option)模式下,使用hdlc的透明机制,且multiplexer有一个方便的再同步机制,能够在dc1/dc3(xon/xoff)流控打开的链路上工作,且包含了错误恢复功能。3gpp的multiplexer依赖于一个控制信道。在这个控制信道上,te和ms交换控制信息,例如参数协商、节电控制信息、流控信息等。multiplexer是一个可选项,如果支持这个功能,就应使用at+cmux命令激活它。 multiplexer为te和ms在一个起始/停止模式的、具有分帧功能的串行链路上传输数据流提供了一套机制。图1给出了不同的协议层及其功能示意。multiplexer层负责将数据按字节流的方式传输,不再进行进一步的组帧;如果数据需要按一定结构传输,就需要增加一个会聚层来完成这些功能。multiplexer为te上的进程和ms上相对应的进程提供了一条虚连接,这样te和ms上的进程就可以通过这条虚连接通信。例如,te上的sms应用程序可以通过一条multiplexer通道与ms上的sms处理程序连接起来。 ts27.010规范使用8bit字符的start-stop传输模式,两个mulitplexer实体间的通信使用了规定的帧格式。te和ms之间的每个信道称为一条数据链路连接dlc(data link connection),这些dlc被依次独立地建立起来。每个dlc都可以有自己的流控机制。multiplexer有三种工作模式:basic、advanced without error recovery和advanced with error recovery。这三种模式特点如下:·basic:长度标识代替hdlc的透明机制;使用与hdlc不同的标志字;不能用于具有xon/xoff流控的链路;从同步丢失状态中恢复需要更长的时间。·advanced without error recovery:遵从iso/iec13239的异步hdlc过程;可以用于具备xon/xoff流控的链路上;可以更快地从失同步状态恢复。·advanced with error recovery:使用了hdlc的错误恢复过程。
2 wavecom gsm/gprs模块multiplexing协议介绍 笔者选用了wavecom的q2403a,这是一款e-gsm/gprs 900/1800的双频模块。这个模