TETRA数字集群系统上MAC层协议栈的开发
2009-09-24宋政育孙昕
宋政育 孙 昕
【摘要】文章首先描述了TETRA空中接口协议栈的结构和主要功能,然后详细阐述了上MAC协议栈的功能、工作原理及其开发过程,最后对所开发的协议栈进行了仿真和测试。仿真测试结果与《ETSI TS 100 392-2 TETRA V+D Part 2: Air Interface》协议一致。
【关键词】TETRA数字集群 空中接口 上MAC层 协议栈
1 引言
集群通信系统是多信道共用的专业移动通信系统,向正在申请服务的设备或用户自动分配信道,主要用于指挥调度等业务。它通过频率共用缓解频率资源紧缺的状态,同时又通过基站集中使用、统一控制,有效地降低用户组网费用。2000年原信息产业部推荐了TETRA和iDen两种数字集群的标准,其中TETRA数字集群系统以其开放性好、保密性强以及频谱利用率高等优点,在全球许多国家得到了广泛的应用。
上MAC是TETRA数字集群移动通信系统的重要组成部分,TETRA数字集群协议栈上MAC功能的开发对TETRA数字集群通信系统国产化具有重要意义。
2 TETRA数字集群协议栈的结构
TETRA数字集群空中接口协议栈参照ISO/OSI七层模型,自下而上可分为物理层、数据链路层和网络层,如图1所示:
TETRA数字集群空中接口的第一层为物理层,负责调制和解调、收/发转换、频率校正、码元同步及移动台功率控制等。
第二层为数据链路层(DLL),完成从网络层至物理层的映射,可分为媒体接入控制层(MAC)和逻辑链路层(LLC),其中MAC层又可分为上MAC层和下MAC层。MAC负责信道分配及物理层的数据复用,用数据原语与高层进行通信,用逻辑信道与低层进行通信。MAC实现TDMA的帧同步、交织/去交织、信道编码、随机接入过程、分片/重组、AACH上无线链路质量的RSSI(接收信号强度指示)和MER(消息删除率)测量、支持LLC重传过程的MER测量。在上MAC层实现控制面(C面)和用户面(U面)的分离,用户面的业务传送至用户面,而控制面的信息则传送至协议栈。LLC负责处理多路逻辑链路以支持同时发生的业务,并负责数据传送与重传、分段/合段以及逻辑链路处理。DLL经三个业务接入点(SAP)与上一层进行通信,经两个SAP与物理层进行通信。
第三层为网络层,可分为两个子层:较低子层称为移动链路实体(MLE),负责控制较低层与无线电相关的功能;较高子层包括移动性管理(MM)、电路控制实体(CMCE)以及分组数据(PD)三部分,它们被统称为子网接入功能(SNAF)。
空中接口各层之间通过业务接入点相互访问,通过原语进行数据交换,对等层之间通过协议数据单元(PDU)进行数据与信息交互。
3 上MAC的主要功能及工作原理
上MAC主要具有随机接入控制、信令分片和重组、无线信道管理和维护、保留时隙授予和管理、业务信道窃用、逻辑信道复用和解复用、第二层地址管理以及功率控制等功能。
(1)随机接入控制
在公共控制信道(MCCH)的上行链路上,当多个移动台发送信令时,可采取随机接入或保留接入的方式。当移动台发起初始接入时,则必须使用随机接入的方式。
因为随机接入采用ALOHA协议,移动台接入的成功率与接入参数的设置密切相关,所以基站侧上MAC应合理设置这些参数,通过广播PDU将其发送给移动台。移动台侧上MAC根据这些参数,决定何时开始进行随机接入。通过基站和移动台上MAC信息交互,实现上行信令的随机接入,并保证较高的接入成功率。
(2)信令分片和重组
当上层所发送信令的长度超过一个物理时隙所能承载的长度时,上MAC需要缓存该信令,并进行分片,然后在多个时隙上利用多个MAC块来传输这些分片。
当上MAC从下层接收到分片的信令时,不能直接将该信令向上层传递,而应在相应的信道上接收到所有的分片之后,在本层对这些分片进行重组,然后向上层传递重组的完整信令。由于每个信令的分片没有序号,所以上MAC必须顺序地发射或接收这些分片。如果在传输中有任何一个分片发生错误,那么就放弃这个信令传输过程,发送侧LLC必须请求重新发送该信令。
当发送分片信令的第一个分片时,应该使用完整MAC首部(在下行链路上使用MAC-RESOURCE PDU,在上行链路上使用MAC-ACCESS或者MAC-DATA PDU);当发送后续的分片(MAC-FRAG PDU)和最后的分片(MAC-END或者MAC-END-HU PDU)时,只需使用简化MAC首部。
(3)无线信道管理和维护
无线信道管理和维护是上MAC的核心功能之一。上MAC负责为电路模式的呼叫分配业务信道,为分组数据业务提供PDCH信道;并且在业务和分组数据传输过程中维护这些信道,在完成传输之后释放这些信道。
(4)保留时隙授予和管理
在随机接入之后,当移动台要求发送更多的信令消息时,或者当基站向移动台发送请求移动台侧LLC进行响应的消息时(例如:基站侧LLC基本链路和高级链路确认消息的发送),使用保留接入。基站侧上MAC根据当前信道的时隙使用情况,授予移动台保留时隙,并管理这些保留时隙。移动台侧上MAC就可以在这些保留时隙中向基站发送信令。在完成保留接入之后,移动台重新返回到随机接入状态。
(5)业务信道窃用
如果需要在处于业务模式的信道上传输端到端的U面信令(例如同步和加密等)、C面信令(例如越区切换)以及MAC本层的控制信令,那么利用窃用信道(STCH)来传输这些信令。通常,利用STCH发送重要的、紧急的以及需要立即发送的消息。
尽管在STCH上不需要等待就可以传输信息,但是频繁地窃用信道将降低业务的QoS,因此需谨慎使用STCH。对于高层的信令,通过原语中的窃用许可参数,指示是否允许窃用。对于不需要立即传输的信令(例如功率控制),可以在18帧的慢相关信道(SACCH)上延迟发送这些信令。
(6)逻辑信道复用和解复用
在上MAC和下MAC接口,定义了不同类型的逻辑信道,每类逻辑信道有不同的差错控制方法和突发形成方式。通常,逻辑信道可分为业务信道(TCH)和信令信道(SCH),其中业务信道携带电路模式数据;信令信道携带控制信息,主要包括BNCH(携带网络信息)、BSCH(携带同步信息)、BLCH(用于基站线性化)、CLCH(用于MS功放线性化)、SCH/F(携带双向全时隙MAC块控制信息)、SCH/HD(携带下行半时隙MAC块控制信息)、SCH/HU(携带上行半时隙MAC块控制信息)、AACH(携带下行ACCESS-ASSIGN PDU,占据广播块)以及STCH(携带TMA和TMB接入点的消息,占据业务信道的半时隙)。
在上行链路中,下MAC将接收到的数据传送至上MAC,其逻辑信道复用的方式为SCH/HU+SCH/HU、SCH/F、STCH+STCH、STCH+TCH、TCH以及CLCH+SCH/HU。
在下行链路中,上MAC按时隙(MAC块)将数据传送至下MAC,一个时隙内的若干逻辑信道按一定的准则复用,形成突发。下行链路的逻辑信道复用方式为SCH/F+AACH、SCH/HD+SCH/HD+AACH、SCH/HD+BNCH+AACH、STCH+STCH+AACH、STCH+TCH+AACH、BSCH+BNCH+AACH、BSCH+SCH/HD+AACH、BLCH+SCH/HD+AACH以及BLCH+BNCH+AACH。
(7)第二层地址管理
在上MAC层中,上行链路和下行链路TMA接入点的地址使用方法不同。
在上行链路中,上MAC从MAC PDU中提取地址和地址类型,并将其传送至网络层。上MAC所使用的上行地址类型为SSI、USSI、SMI以及Event Lab。
在下行链路中,上MAC从TMA原语中提取地址和地址类型,并将其转化为MAC PDU中的地址。上MAC所使用的下行地址类型为SSI、USSI、SMI、Event Lab、SSI+Event Label、SSI+Usage Marker、SMI+Event Label以及广播地址(全1)。
(8)功率控制
功率控制分开环功率控制和闭环功率控制两种。通过功率控制,可以降低邻道干扰和同频干扰。
开环功率控制由移动台独立完成,移动台测量下行链路的信号质量和信号强度等,并根据测量结果调节上行链路发射功率。由于上行和下行链路的衰落往往是不相关的,因此这种方法并不可靠。
为了更可靠地控制移动台的发射功率,可以采用闭环功率控制。基站可通过发送包含“功率控制”元素的MAC-RESOURCE PDU控制移动台的发射功率。当移动台发射信令或业务数据时,必须服从基站的功率控制命令。
4 上MAC协议栈的开发
4.1 开发工具
由于TETRA数字集群空中接口协议栈开发具有较高的复杂性,若采用纯人工编码,则会由于开发人员风格不一致,水平不相同,而导致协议栈存在较多的潜在错误,且调试困难。因此,必须利用软件开发工具,通过系统工程的方法来管理协议软件的整个开发过程,加速协议栈的开发,使生成的代码具有较高的可靠性和较好的一致性。基于此,选用Telelogic公司的通信开发软件Tau G2进行TETRA数字集群协议栈的开发。Tau G2将通信软件开发中常用的SDL/MSC引入到了UML语言中,开发人员只需要通过UML建模和编写相对较少的代码,就可以实现一个复杂的协议栈开发。
4.2 开发流程
为了方便程序的开发、升级以及维护,首先根据上MAC的功能将其分为Transmitter和Receiver两个模块,分别负责数据的发送和接收。如果Transmitter和Receiver两个模块协同工作处理一些信令,那么需要定义一些全局变量,并使用这些全局变量进行两个模块之间的交互。TETRA数字集群协议只定义了空中接口部分,因此上MAC实体与LLC和下MAC通信的原语需自行定义,将原语和PDU定义为结构体,并将其作为层与层之间信号的参数来实现各层之间的通信。然后编写PDU的编解码函数,协议栈对等层之间通过PDU传递信息,上MAC要分解来自对等层的PDU,对PDU中的请求做出应答,将应答后的指令以PDU的形式发出。随后使用图形化的UML和SDL语言描述协议,实现协议栈的功能。最后,编写测试用例进行协议一致性测试。图2示出了上MAC协议栈开发的流程:
4.3 仿真测试
在完成上MAC协议栈功能开发之后,需要编写各种测试用例,对所开发的上MAC协议栈进行协议一致性测试。由于TAU G2中含有TTCN Suite测试套件,因此利用测试语言TTCN-3设计测试用例。图3示出了上MAC下行链路发送信令的仿真测试过程:
在运行该测试用例之后,图3所示的仿真测试过程与《ETSI TS 100 392-2 TETRA V+D Part 2: Air Interface》协议的描述一致,该测试过程分为下列四个阶段:
(1)第一阶段:LLC向上MAC发送TMA-DATA-IN-BUFFER信号,该信号表示上层有待传输的信令,等待上MAC的响应;
(2)第二阶段:在上MAC接收到TMA-DATA-IN-BUFFER信号之后,向LLC发送MAC-READY信号,该信号表示上MAC已经准备发送信令;
(3)第三阶段:LLC向上MAC发送TMA-UNITDATA-REQ信号,该信号携带TMA-UNITDATA- REQ原语的所有参数;
(4)第四阶段:在上MAC接收到TMA-UNITDATA-REQ信号之后,根据其携带的原语参数构成MAC-RESOURCE PDU,通过TMV-UNITDATA-REQ信号将该PDU发送到下MAC。
5 结束语
TETRA数字集群系统广泛地应用于交通、消防、水利、公安、武警、法院和检察院等特殊部门,实现TETRA数字集群系统的国产化,对保障我国的国家安全有着重要的作用。上MAC协议栈的开发对TETRA数字集群协议栈的研究与开发具有一定的参考价值,为开发我国自主知识产权的TETRA数字集群系统积累了经验。
参考文献
[1]ETSI TS 100 392-2 V2.6.1(2005-05). Terrestrial trunked radio(TETRA); voice pluse data (V+D); Part 2: air interface(AI)[S].
[2]Draft EN 300 392-1 V1.1.1(1998-07). Trans-European trunked radio(TETRA); voice plus data (V+D); Part 1: general network design[S].
[3]孙昕, 李海. TETRA数字集群空中接口协议栈体系结构分析[J]. 移动通信, 2008(3):34-37.
[4]郑祖辉, 鲍智良, 经明等. 数字集群移动通信系统[M]. 北京: 电子工业出版社, 2002.
[5]刘宇红, 白伟. SDL语言及其在通信系统中的应用[J]. 通信技术, 2002(12):82-83.
[6]宋茂强. 通信软件设计基础[M]. 北京: 北京邮电大学出版社, 2001.