设为首页 收藏本站
密码:
用户名:
站内搜索: 标题 内容
基于SDL实现TETRA协议的方法
[作者]:佚名 [来源]:矩阵通信技术论坛 [时间]:2008-8-22 10:44:40

SDL工具介绍SDL(Specification and Description Language,规范描述语言)是一种形式化语言,该语言基于扩展的有限状态自动机,特别适合描述通信系统的行为。它经过ITU-T的发展和标准化,定义在Z.100建议中。SDL作为国际标准化的描述语言,常与其它一些相关技术如Z.120建议中的MSC(Message Sequence Chart,消息序列图)和Z.105建议及ASN.1(Abstract Syntax Notation One,抽象语法符号)一起形成一个完整的描述语言。在众多的SDL开发工具中Telelogic 公司开发工具TAU特别适合协议描述和开发,TAU提供的SDL软件不仅可以用于规范描述和设计,还可以把SDL的描述和设计直接生成标准的C代码,以及SDL语言的模拟和验证功能。一般使用SDL开发软件的流程如图1 SDL开发协议流程所示。在协议软件的开发流程中,MSC常用于协议需求分析阶段;SDL一般被应用在概要设计和详细设计阶段;在模拟验证阶段,使用SDL结合MSC的方法验证SDL语言设计;在协议实现阶段SDL工具可以把描述和设计转换成c/c++代码,SDL还提供在SDL设计中直接嵌入c/c++代码的功能;在测试阶段使用TTCN进行协议测试。SDL设计的系统包括系统、功能块、进程和信号等。一个系统可以包含一个或多个功能块,每个功能块可由一个或多个进程组成。进程描述SDL系统中的实体行为,它是基于EFSM描述,所有协议实体的处理和操作都由进程完成。系统中交互信息用信号、数据结构描述,传递信号的通路为信道。设计好的SDL系统可使用经SDL工具产生的C代码(包括嵌入的C代码),这些代码可以直接与多种嵌入式(或非嵌入式)实时多任务操作系统集成,如UC/OS-II、NUCLUS、Solaris、VxWorks、OSE等,集成后的代码可以直接在目标板上运行,从而方便开发者进行协议软件的移植。与SDL一起使用的MSC(信息序列图),是ITU-T Z.120 建议中给出的一种形式化语言,用来描述多个实体之间和实体与环境之间消息交互的顺序。在需求分析阶段,使用MSC清晰的描述协议各实体之间信息交互以及实体与系统环境的交互顺序。协议实体之间的交互和实体环境之间的交互通过信号的传递来描述。用MSC图可以方便地表示出信号的流向,即信号是从什么实体发送到什么实体,信号是否带有参数、具体的参数值等都可以直观地表示在MSC图中。另外,在软件模拟和验证阶段,使用Simulator和Validator功能实时产生MSC图,通过分析MSC图来验证跟踪SDL的设计。最后,开发者可以使用TTCN进行协议测试。TTCN(Tree and Tabular Combined Notation,树表联合表示法)是由ISO定义在ISO/IEC 9646-3中的一个规范测试语言,用于OSI一致性测试集的测试表示法。树表联合表示法,就是采用以树和表格为表现形式的测试表示法,其中表格主要用于数据类型、原语、协议观察点、约束等,而树则用于描述测试集、测试例、测试步。正是SDL设计工具的这些特点,在开发协议软件中得到广泛应用,本文以SDL开发Tetra协议介绍SDL的使用方法。2 Tetra协议软件 TETRA(Terrestrial Trunked Radio,泛欧集群无线电)是欧洲电信标准协会ETSI制定的数字集群移动通信标准。它丰富的调度功能和快捷的接通时间(小于300ms),因此被广泛用于军队、警察等专用通信部门。本文结合海信通信公司开发数字集群手机协议的实际需求,首先介绍Tetra系统的协议结构。 Tetra手机协议软件分成图2所示的Tetra手机协议结构(没有包括分组数据业务部分)。 Tetra手机协议结构采用分层结构设计,包括应用层(Application Layer)、网络层(Net Layer)、数据链路层(LLC Layer)。同时网络层分为CMCE( 电路模式实体)、MM(移动管理)和MLE(移动链路管理)。数据链路层包括LLC(逻辑链路控制)和MAC(媒体接入控制)。根据图2的协议结构,Tetra手机协议软件系统分为6个模块,每个模块对应SDL设计中的一个功能块,每个模块完成不同的功能。应用模块完成协议业务的功能,包括人机界面,键盘事件处理和手机设置等功能。即图2 的Application块。网络模块用于负责网络业务和网络过程,包括CMCE模块、MM模块和MLE模块。 CMCE模块负责处理CC(呼叫控制)、SDS(短消息)的功能;CC模块处理基本业务呼叫的建立、维持和清除、寻址和呼叫身份码控制。即图2的CMCE块。 MM模块处理手机移动性功能,包括小区选择、注册、鉴权、附属等功能。即图2的MM块。 MLE模块用来管理手机到基站/基站至手机的连接、登记区域内的移动性、识别码管理、业务质量选择和协议鉴别。即图2的MLE块。 LLC模块负责处理多路逻辑链路以支持同时发生的业务,并负责数据传送与重传、分段/合段和逻辑链路处理。即图2的LLC块。 MAC模块负责信道分配及物理层的数据复用。为了实现这些功能,MAC用数据原语与高层进行通信,并用逻辑信道与低层进行通信。媒体接入控制层实现TDMA的帧同步、交织/去交织、信道编码、随机接入过程、分片/合片、在AACH上无线链路质量的无线信号场强指示(RSSI)和消息删除率(MER)测量、支持LLC重传过程的MER测量。即图2的MAC块。如图2所示,每个模块对应SDL描述中的一个功能块,在每个功能块分为多个进程,高层信令可以通过TP-SAP/TPC-SAP信道和物理层进行通信。向上可以通过TNCC-SAP、TNSDS-SAP、TNMM-SAP和人机界面进行信息交互。而人机界面可以在UC/OS-II系统下完成,硬件驱动部分可以直接编程实现。3 利用SDL工具开发Tetra协议的方法在图2的Tetra手机协议结构系统描述中,可以利用Telelogic TAU公司的SDL Editor将其描述成标准的SDL描述形式。但不是系统所有的部分都可以使用SDL开发。在硬件驱动、物理层具体的算法、信道的编解码以及SIM卡的操作等都需要C语言(或者其它语言)完成。最后将所有的代码编译成一个可以执行的目标代码。具体过程如图3SDL开发软件流程所示。系统开发运行平台是TI公司的OMAP(ARM+DSP)双核平台,操作系统是实时操作系统UC/OS-II。根据图3所示的流程,详细介绍SDL实现Tetra手机协议软件过程如下:第一步:首先根据需求分析和概要设计的描述,定义出所有的数据结构。例如MMI、MM/CMCE等实体通信应用的结构定义,这些数据结构使用C/C++语言格式定义完成,它们通过CPP2SDL工具被SDL使用。第二步:利用SDL设计工具的系统、模块、进程等元素详细描述Tetra手机协议的软件结构,这些描述和第一步生成的PR描述,根据需要编译成不同的C/C++代码,最常用的有两种:一种是在目标板上运行的代码我们选用Cmicro模式,另一种是可以提供给TTCN测试的代码。第三步:由于生成的目标代码和测试代码具有很好的一致性,利用TTCN可以检查出SDL设计中的问题,以保证SDL设计的正确性。根据Tetra测试规范编写的测试范例保证了协议的一致性测试,最大可能地发现开发中出现的问题,避免了这些错误带到板级调试中,从而加快了软件开发速度。第四步:最后SDL描述生成的C代码,运行在ARM硬件平台上,因为手机软件是个多任务处理机制,所以还需要与选定的UC/OS-II操作系统进行集成。根据SDL设计的进程任务与UC/OS-II集成可分成两种,一种是深度集成,另外一种是轻度集成。它们区别在于深度集成将SDL描述中的每一个进程作为操作系统中的一个进程来处理,而轻度集成则将整个SDL系统作为一个操作系统进程进行处理。如图4所示。在海信集群手机软件应用中,我们使用轻度集成的方法。这种方法便集成时只需要修改SDL的接口文件env.c,SDL的内核通过env中的xInEnv() and xOutEnv()完成OS(操作系统)环境的信息交互,如图4所示。XInEnv()用于从系统环境接收信号,这些信号由SDL内核处理;xOutEnv()把SDL产生的信号发送到系统任务处理。经过修改后的接口函数只要与SDL生成的源代码和操作系统提供的代码一起编译即可。每次启动系统后,UC/OS-II将SDL描述当作是一个独立的任务进行处理。SDL进程由SDL内核管理,而整个SDL系统则由UC/OS-II管理。UC/OS-II系统有自己一套完整的消息处理机制,同时SDL生成的代码也有自己一套信号处理机制,它们相互独立,共同作用组成应用系统。最后将SDL生成的代码、UC/OS-II代码和所编写的硬件驱动统一编写成ARM运行代码。实际开发过程并不是从第一步到第四步那么简单,通常软件开发一个迭带的过程。利用SDL模拟验证和TTCN测试以及目标板测试中发现的问题反馈到设计过程,修改SDL设计,直到系统的最后完善。从以上过程描述可以看出SDL有以下优势: (1) SDL工具可以同时支持图形(GR)和文本描述(PR),并且可以相互转换。图形方式方便设计人员直观了解设计结果,而文本方式便于保存。 (2)便于软件设计,可以将详细设计报告和代码设计过程有机地结合在一起,SDL可以把利用SDL描述的详细报告部分直接生成所需要的代码。 (3) 由于SDL具有一致性的目标源代码和测试代码,可以利用TTCN直接测试,大大提高了SDL设计的源代码的正确性。同时SDL具有丰富的MSC接口,在测试的Validator、Simulator、TTCN过程中都有MSC图输出,可以提供设计人员检查设计中存在的问题。 SDL生成的代码可以在多种实时多任务平台上运行,可以方便地与PSOS、Nuclues、Plus、Solaris、VxWorks、OSE等RTOS系统相互集成,具有较好的可移植性。 SDL工具可以将整个软件开发过程、需求报告、总体设计报告、详细设计报告、代码设计及测试和维护集成一体。各个部分的设计都可以使用SDL的不同功能来描述,最大限度地节省人力和物力。本文没有介绍SDL的UML部分可以完成软件开发的需求分析、总体或概要设计。结合SDL的功能Telelogic Tau提供的SDL工具将软件开发的全过程有机地结合在一起,从需求分析到代码生成。加快了软件开发速度,缩短了软件开发周期。在整个海信Tetra手机协议项目开发中,SDL工具软件起关键作用

发表评论:
标题: 50个字
*您还可以输入100个字
中通资讯网首页 | 中国对讲机市场 | 中国集群通信网 | 中国火腿网 | 中通射频网 | 中通卫星导航网 | 中通无线数传网 | 中通论坛 | ZTong English

主办单位:深圳中通信息科技发展有限公司 电话:83322680(咨询) 83327811(业务) 传真:83323192
2007 Zhongtong Information Teehnnology Development Co.,Ltd Rights Reserved
深圳市中通信息科技发展有限公司 未经同意请勿转载 粤ICP备06018845号