如何利用SDL开发TD-SCDMA高层信令

2007-03-09 19:03:27来源: 互联网
摘要:介绍TD-SCDMA系统的UE结构以及根据实际工作经验提出利用SDL开发TD-SCDMA高层信令系统的方法。 关键词:TD-SCDMA系统 SDL语言 MSC 实时操作系统 1 SDL语言介绍 SDL(规范描述语言)广泛地用于描述通信系统的行为。它是CCITT推荐的规范描述语言。经过ITU-T的发展和标准化,定义在兰皮书Z.100建议中。ITU-T在1988年推出了第一个正式版,以后每四年进行一次增补更新。作为国际标准化的正式语言,它被用来规范实时多任务系统的描述。SDL与其它一些相关技术如Z.120建议——消息序列图和Z.105建议及抽象语法符号一起形成一个完整的描述语言。 在协议软件的开发流程中,SDL被应用在系统规范描述和设计阶段。它完全独立于硬件实现与操作系统。Telelogic Tau公司提供的SDL软件不仅可以用于规范描述和设计,还可以把SDL的描述和设计直接生成标准的C代码。用户也可以直接在SDL描述和设计中嵌入C代码,从而完成图1中的实现部分的功能。经SDL描述产生的C代码(包括嵌入的C代码)可以直接与多种嵌入式(或非嵌入式)实时多任务操作系统集成,如NUCLUES、pSOS、Solaris、Vrtx、OSE等,集成后的代码可以直接在目标板上运行,从而方便用户进行协议软件的开发。 与SDL相对应的MSC(信息序列图),是ITU-T规范中用来表示信息序列的语言。在1991年,ITU-T对MSC进行了标准化。用MSC图可以方便地表示出信号的流向,即信号是从什么进程发送到什么进程,信号是否带有参数、具体的参数值等都可以直观地表示在SDL MSC图中,这对了解和分析信号在各个模块间的传递带来了很大的方便。不仅如此,通过MSC图还可以将SDL的各功能有机地联系在一起。在软件的跟踪及调试过程中,使用Simulator和Validator可以产生MSC图。在软件的TTCN测试过程中,MSC图还经常被用于分析测试的结果。通过MSC图还可以直观地描述信号发送的先后次序,而这些在SDL描述中是办不到的。 开发的最后一步是使用TTCN进行测试。TTCN(树表结合表示法)是由ISO和ITU定义在ISO/IEC 9646-3中的一个规范测试语言 ,是ISO/IEC 9646的第三部分标准,用于OSI一致性测试集的测试表示法。树表结合表示法,顾名思义,就是采用以树和表格为表现形式的测试表示法,其中表格主要用于数据类型、原语、协议观察点、约束等,而树则用于描述测试集、测试例、测试步。对标准有效性的验证和通信软件的一致性测试就显得非常重要。 用SDL设计的系统是一个等级结构的系统,它包括了系统、功能块和进程等。一个系统可以包含多个块,每个块可由一个或多个进程组成。进程是SDL系统中的最小处理单元,采用EFSM描述,所有用户的处理和操作都在进程中完成。在系统级下定义的内容(信号、数据结构等)可以在该系统下所有的块和进程中使用,在块下定义的内容可以在该块的任何进程中使用。 正是SDL的这些特点,在开发协议软件中起着不可比拟的作用,下面以SDL开发TD-SCDMA高层信令简单说明SDL的使用。 2 TD-SCDMA系统结构 首先介绍一下TD-SCDMA系统结构。根据TSM协议的要求和实际开发产品的需要,可将TD-SCDMA系统用户终端协议软件分成图2所示的系统结构(没有包括分组数据业务部分)。整个系统结构满足TSM协议的分层结构,同时根据控制和软件的需要增添了TSR、HL1模块,是一个SDL块级的TD-SCDMA的UE端高层信令结构。整个系统共有六个模块,每个模块对应SDL中的一个块,每个模块分别完成不同的功能。下面简要介绍每个模块的功能和接口。 CM模块完成连接管理功能,包括呼叫控制、短消息和附加业务三部分,即图2中的CM块。 MM模块完成在电路交换模式下的移动性管理功能,实现UE的移动性、安全性以及连接管理,即图2中的MM块。 TSR模块是一个信号中转模块,是MM子层的一部分,主要实现信号路由的功能;同时基于CM子层中各实体的多实例(如建立多个呼叫)特性,对CM模块进行多实例的管理。 RRM模块完成无线资源管理和控制功能。在空闲模式下,RRM模块执行小区选择和小区重选、为响应网络寻呼或高层的RR建立请求而发起RR连接建立以及切换等任务;在RR连接建立过程中,RRM控制HL1模块发起立即指派过程、主信令链路的建立过程;在连接模式下,RRM主要完成连接模式的资源管理,如指派、信道模式改变和切换等控制过程;处理随路信令,如分析和处理系统信息类型5、类型6;发送测量报告以及对在FACCH信道上接收到的层3消息进行分析和处理等任务。另外RRM模块还控制HL1模块对服务小区和邻近小区的测量等过程。 DL模块完成无线连接控制功能,主要包括:信道上提供一个或多个数据链路的连接,不同的连接通过数据链路连接标识DLCI区分;提供帧类型的识别机制;允许层3消息在2个层3对等实体之间进行透明传输;顺序控制,以保持帧通过一条数据链路连接后的顺序;具有在数据链路上对格式和操作性错误的检测功能;当出现数据链路的不可恢复性错误时,具有向层3实体报告错误的机制;具有流量控制的功能;在RACH上完成接入请求后,当需要建立一条数据链路时具有解决冲突的功能。 HL1模块是连接协议层与物理层的桥梁。按系统的硬件设计,协议层和应用层的任务由ARM处理器完成,DSP处理器负责完成具体的物理层底层任务,如信源和信道的编解码、交织、各种物理层参数的测量、扩频及调制等。两种处理器之间通过中断交换数据。HL1根据协议层的请求,通过对协议层的任务分解和规划,对物理层资源进行调度和控制。主要包括:在小区选择过程中,HL1模块控制物理层进行邻近小区的码功率的测量,解读BSIC,解读DwPTS的相位,读取BCCH块等任务;在空闲状态下,HL1模块控制物理层执行服务小区和邻近小区的测量,解读服务小区的系统信息和最强6个邻近小区的系统信息类型1,并把测量结果和读取的系统信息报告给RRM模块;在随机接入过程中,根据RRM模块的控制信号,HL1模块控制并调度物理层执行随机接入过程的消息发送与接收;在连接模式下HL1控制物理层执行数据的收发、服务和邻近小区的测量以及切换过程等。 图2中,每个模块对应SDL描述中的一个块级结构,在每个块级结构中又可以分成很多个进程,高层信令可以通过PHI信道和物理层进行通信。向上可以通过MMI、CMMI、MMSIM信号和人机界面进行信息交互。而人机界面可以由WINCE系统完成,硬件驱动部分可以直接编程实现[3]。 3 利用SDL系统开发TD-SCDMA方法 在图2的TD-SCDMA系统描述中,可以利用Telelogica Tau AB公司的SDL Editor将其描述成标准的SDL描述形式。但不是系统所有的部分都可以使用SDL开发。在硬件驱动、物理层具体的算法、信道的编解码以及SIM卡的操作等都需要C语言(或者其他语言)完成。最后将所有的代码编译成一个可以执行的目标代码。具体过程如图3所示。系统开发代码运行平台是ARM,操作系统是NUCLUES PLUS。 利用SDL实现TD-SCDMA高层信令软件过程如下: 第一步:首先根据详细报告的描述,定义出所有的数据结构。例如保存系统信息的结构体、IMSI码结构、TMSI码以及任务规划等结构定义,这些数据结构可以C/C++语言格式或是ANS.1格式完成,它们都可以被SDL使用。C/C++描述可以被SDL提供的CPP2SDL.EXE工具很方便地转换成SDL,可以直接使用PR文本[8]。 第二步:利用SDL工具将图2中完成的TD-SCDMA系统描述和生成相关的PR描述,根据需要编译成不同的C/C++代码,最常用的有两种:一种是在目标板上运行的代码?穴通常选用Cadvanced模式?雪,另一种是可以提供给TTCN测试的代码。 第三步:由于生成的目标代码和测试代码具有很好的一致性,利用TTCN可以检查出SDL设计中的问题,以保证SDL设计的正确性。这也是利用SDL进行TD-SCDMA系统开发的优势之一。根据TSM 11(TD-SCDMA系统测试规范)系列所编写的测试例,方便进行协议的一致性测试,最大可能地发现开发中出现的问题,避免了这些错误带到板级调试中,从而加快了软件开发速度。 第四步:SDL描述生成的C源代码要在ARM硬件系统上运行,还需要与选定的RTOS操作系统进行集成。SDL可以与多种RTOS系统相互集成,它们的集成原理相同。根据 SDL的进程任务,在RTOS系统中的处理情况可以分成两种,一种是深度集成,另外一种是轻度集成。它们的效果相同,其区别在于深度集成将SDL描述中的每一个进程作为RTOS中的一个进程来处理,而轻度集成则将整个SDL系统作为一个RTOS进程进行处理。在实际应用中,大多使用第二种方法。这种方法便于SDL和RTOS系统的集成,集成时只需要修改SDL的接口文件setenv.c。在该接口文件中,增加下列NUCLEUS的函数: NU_Create_Memory_Pool() NU_Allocate_Memory() NU_Create_Task() 前两个函数被NUCLEUS用来分配内存,保存SDL进程控制块。NU_Create_Task()函数用于创建NUCLEUS的任务,它是SDL进程与NUCLEUS接口的关键函数。该函数共有11个参数:Task_Ptr、“SDL_fn”、SDL_main、0、NULL、Stack_Ptr、MANAGER_STACK_SIZE、MANAGER_ TASK_PRIORITY、MANAGER_TIME_SLICE、NU_PREEMPT、 NU_START;其中Task_Prt是指向进程的控制块、“SDL_fn”是进程的名字、Stack_Ptr是进程的堆栈指针、MANAGER_STACK_SIZE是堆栈的大小;MANAGER_TIME_ SLICE是进程可以占用的最大时间(以ticks来计算)。经过修改后的接口函数只要与SDL生成的源代码和操作系统提供的代码一起编译即可。每次启动系统后,NUCLEUS将SDL描述当作是一个独立的任务进行处理。SDL进程由SDL内核管理,而整个SDL系统则由NUCLEUS管理。NUCLEUS系统有自己一套完整的消息处理机制,同时SDL生成的代码也有自己一套信号处理机制,它们相互独立,共同作用组成应用系统[9]。 最后将SDL生成的代码、NUCLUES代码和所编写的硬件驱动统一编写成ARM运行代码。 在整个软件开发过程中,实际开发过程不是完全由第一步到第四步这么简单,有时它们交织在一起。在TTCN以及目标板测试中发现的问题反馈到设计过程,不断修正,直到系统的最后完善。 从以上过程描述可以看出SDL有以下优势: (1)SDL工具可以同时支持图形(GR)和文本描述(PR),并且可以相互转换。图形方式方便设计人员直观了解设计结果,而文本方式便于保存。 (2)便于软件设计,可以将详细设计报告和代码设计过程有机地结合在一起,SDL可以把利用SDL描述的详细报告部分直接生成所需要的代码。 (3) 由于SDL具有一致性的目标源代码和测试代码,可以利用TTCN直接测试,大大提高了SDL设计的源代码的正确性。同时SDL具有丰富的MSC接口,在测试的Validator、Simulator、TTCN过程中都有MSC图输出,可以提供设计人员检查设计中存在的问题。 SDL生成的代码可以在多种实时多任务平台上运行,可以方便地与pSOS、Nuclues Plus、Solaris、VxWorks、OSEDelta等RTOS系统相互集成,具有较好的可一致性。 SDL工具可以将整个软件开发过程、需求报告、总体设计报告、详细设计报告、代码设计及测试和维护集成一体。各个部分的设计都可以使用SDL的不同功能来描述,最大限度地节省人力和物力。 图3 利用SDL开发TD-SCDMA系统模式(UE端) 本文没有介绍SDL的UML部分可以完成软件开发的需求分析、总体或概要设计。结合SDL的功能,Telelogical Tau AB提供的SDL工具将软件开发的全过程有机地结合在一起,从需求分析到代码生成。加快了软件开发速度,缩短了软件开发周期。在整个TD-SCDMA高层项目开发中,SDL工具软件起关键作用。 但是SDL在协议软件的开发中也不是万能的,虽然SDL的描述直观、方便,但是SDL生成的代码非常复杂,不便于修改和阅读。这也是惟一对SDL担忧的地方。通常在生成代码中一个不起眼的BUG,将永远都不会找到。

关键字:利用  开发  scdma  高层

编辑: 引用地址:http://www.eeworld.com.cn/wltx/qtjs/200703/2801.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
利用
开发
scdma
高层

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved