如何利用SDL开发TD-SCDMA高层信令
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的函数
《如何利用SDL开发TD-SCDMA高层信令(第2页)》