唐超+孙昕
【摘 要】针对完整的TETRA协议分析仪协议栈逻辑复杂和开发难度大的问题,提出了一种满足实际需求的简化开发方案。通过对TETRA协议分析仪协议栈处理软件的架构、同步过程和用户面/信令面检测过程的分析,给出了协议处理软件的主流程框图,并完成该软件的开发。目前该软件已投入到北京市正通TETRA网络的现场测试中,测试结果证明该软件具有完整、准确的测试能力。
【关键词】TETRA 协议分析仪 协议栈 用户面 信令面
中图分类号:TN929.52 文献标识码:A 文章编号:1006-1010(2014)-20-0063-05
Development of Protocol Stack Processing Software for TETRA Protocol Analyzer
TANG Chao, SUN Xin
(School of Electronic and Information Engineering, Beijing Jiaotong University, Beijing 100044, China)
[Abstract] Complete protocol stack in TETRA protocol analyzer is characterized by rigorous logic, which means the difficulty of development. Therefore, a simplified scheme which can satisfy the real demand is proposed. According to the analysis of the architecture of protocol stack processing software in TETRA protocol analyzer, synchronization process and user/signaling plane detecting process, the flow diagram of the protocol processing software is shown. In addition, the development of this software is finished. The software is put into the field tests of Beijing JustTop TETRA network. It is proved that the test capacity of this software in TETRA protocol analyzer is complete and accurate.
[Key words]TETRA protocol analyzer protocol stack user plane signaling plane
1 概述
TETRA协议分析仪可以完成对现有TETRA网络的定期测试和TETRA设备的协议一致性测试,有利于TETRA数字集群系统的开发[1]。TETRA协议分析仪协议栈处理软件是TETRA协议分析仪的重要组成部分,它具有帧和复帧同步、配置扰码、用户面/信令面检测以及完整、准确地记录上下行数据等功能。因此,开发TETRA协议分析仪协议栈处理软件,对于提升TETRA设备的质量,推广TETRA数字集群系统的应用具有重要意义。
2 协议分析仪的软件架构
TETRA协议分析仪协议栈处理软件主要包括屏幕显示及控制部分和协议处理模块。协议分析仪的结构如图1所示:
图1 协议分析仪的结构
协议栈处理软件直接与用户交互,按照用户的指示,根据信令数据控制下MAC层正确解码信令数据和业务数据,并完成对指定频点的监测以及协议数据的处理、显示和转发。分析仪还具有自动识别指定频段内TETRA信号的功能,以便用户了解当前的无线环境,并对相应频点进行监控。协议处理模块负责处理下MAC解调、解码后的TETRA空中接口协议栈的数据链路层和网络层数据。
协议处理模块的主要功能是同步处理和协议数据转发。除了广播帧外,协议处理模块一般不对数据链路层和网络层的数据进行分析。但是,由于TETRA系统在解码时需要区分用户面和信令面,因此协议处理模块需要通过解析部分信令来获取这方面的信息。
在协议分析仪中,空中接口协议栈可分为物理层、数据链路层和网络层。空中接口协议栈的结构如图2所示。
其中,物理层负责接收监测频率的信号;下MAC层解调并解码物理层接收到的数据;上MAC层完成同步、时隙分配信息记录和MAC-RESOURCE PDU过滤等功能;LLC层完成首部数据过滤功能;MLE层完成首部信息过滤和后续数据转发功能;CMCE实体完成用户面/信令面检测功能;SNDCP完成用户面/信令面检测功能;MM实体的数据不需要进行处理。
3 协议栈处理软件的设计
3.1 同步过程
TETRA采用时分复用(TDMA)技术,每个时隙都可以被视为1个单独物理信道。在TETRA分析仪开始工作后,硬件部分通过搜索基站发送数据中的训练序列与基站进行同步[2]。TETRA的业务数据大部分都涉及到时隙分配,如果分析仪没有完成对一二三四时隙的划分,那么它就无法在4个时隙上正常工作。同步过程信令交互流程如图3所示:
图3 同步过程信令交互流程
在分析仪硬件完成同步之后,协议处理模块可以正确解码BSCH上的数据,根据其中包含的复帧号、帧号和时隙号,设置硬件与基站获得准确的时隙同步。此外,协议处理模块还需要提取广播数据中的基站色码、国家码和网络码计算扰码,并将扰码发送给下MAC层,以便下MAC层能够正确解码其他TETRA信道的数据。因为TETRA的移动台会主动和基站进行同步,所以协议分析仪和基站同步后,就可以在对应的上行频率上接收到移动台发送的数据[3]。endprint
3.2 用户面/信令面检测过程
TETRA系统主要支持2种业务:分组数据业务和语音业务,这2种业务在数据链路层分别承载在信令信道(SCH/F)和业务信道(TCH/F)上。为了降低硬件的复杂度,TETRA系统这2种逻辑信道上的训练序列完全一致,但编码方式却截然不同。在TETRA基站和移动台设计中,需要通过内部原语,由网络层指示下MAC层当前时隙是处于用户面还是信令面。如果处于信令面,下MAC层就按照SCH/F进行解码,否则按照TCH/F进行解码。但是,TETRA协议分析仪只能抓取空中接口的数据,而无法获得基站或移动台的内部原语,只能通过对空中接口的信令进行分析获得用户面或信令面的信息。用户面/信令面检测信令交互流程如图4所示:
图4 用户面/信令面检测信令交互流程
以全双工呼叫为例,描述TETRA系统的用户面/信令面切换过程。全双工呼叫流程如图5所示:
在呼叫建立阶段,主呼方会在主控信道(MCCH)向基站发送U-SETUP PDU,然后基站向两移动台发送D-SETUP、D-CALL-PROCEEDING、D-INFO和D-ALERT等CMCE实体PDU,这些PDU是承载在信令信道上的,属于信令面数据。
在呼叫建立成功时,基站会给主呼方、被呼方分别发送1个D-CONNECT PDU和D-CONNECT-ACK PDU,这2个信令的MAC层的首部信息会包括时隙分配信息,指示主呼方和被呼方工作在哪个时隙上,协议处理模块会记录该时隙分配信息,并指示下MAC层将分配的时隙从信令面转换到用户面,接收语音业务数据。
在呼叫过程中,分析仪在分配时隙上处于用户面接收语音业务数据。
在呼叫结束阶段,基站会根据移动台的拆线申请(U-DISCONNECT PDU),给主呼方和被呼方各发送D-RELEASE PDU。协议处理模块接收到D-RELEASE PDU后,会通知下MAC层将当前业务时隙从用户面转换到信令面。
4 实现和测试
4.1 实现
协议栈处理软件的实现分为3个阶段:首先设计协议处理模块和硬件部分、显示模块以及上位机的接口;然后划分功能模块,编程实现;最后对编写的软件程序进行测试[4-5]。
协议栈处理软件的主流程如图6所示。
协议栈处理软件主要包括中断处理线程、数据处理线程和显示线程。在分析仪正常工作时,硬件部分在每个时隙(~14.167ms)产生1次外部中断,外部中断立即触发中断处理线程执行,在中断处理线程接收全部数据之后,释放处理数据指示;在下次中断到来之前,数据处理线程根据数据处理指示进行工作,将接收到的数据发送给上位机和显示线程,并对接收到的数据进行分析和处理。
4.2 测试
(1)使用分析仪的扫频功能,对851—866MHz频段进行扫描,屏幕显示出当前的频谱环境,并使用“TETRA识别”功能过滤当前频段内的TETRA信号。TETRA信号识别结果如图7所示。
(2)在过滤之后的频谱中,选择863.812 5MHz作为监控频率(北京市正通网TETRA频点)。
(3)软件部分将监控信息发送到上位机和屏幕显示部分,用户得到该载波的监控信息如图8所示。
测试过程分为以下阶段:
协议处理模块获得广播同步信道(BSCH)上的数据,其中系统码值为“1”,色码值为“14”,国家码值为“460”,网络码值为“101”。在正确配置扰码之后,解码广播网络信道(BNCH)上的数据,位置信息(LA)值为“3 009”,该载波信号强度为“-81dBm”。
协议处理模块获得处于信令面的网络层D-CONNECT PDU和D-CONNECT-ACK PDU数据,以及MAC层的时隙分配数据,指示下MAC在分配时隙处于用户面,接收语音数据业务。
接收语音数据业务,逻辑信道类型为TCH/F,且CRC校验结果为“TRUE”,即正确。
测试结果证明协议栈处理软件可以对现有TETRA网络进行协议分析,并完整、准确地解码用户面和信令面数据,满足测试预期。
5 结束语
TETRA协议分析仪可以帮助用户监控TETRA网络的覆盖情况,检查网络盲区并优化网络,还可以将TETRA系统通信信息实时显示和记录,这对于推广TETRA数字集群设备和维护空中电波秩序有极大的促进作用,同时也对我国开发自主知识产权的TETRA数字集群系统带来一定的参考价值。
参考文献:
[1] 彭潇. GSM终端设备自动测试系统设计与实现[D]. 北京: 北京邮电大学, 2008.
[2] ETSI EN 300 392-2 V2.4.2. Terrestrial Trunked Radio (TETRA); Voice plus Data (V+D); Part 2: Air Interface (AI)[S]. 2004.
[3] ETSI TS 100 392-15 V1.4.1. Terrestrial Trunked Radio (TETRA); Voice plus Data (V+D); Part 15: TETRA Frequency Bands, Duplex Spacing and Channel Numbering[S]. 2010.
[4] 宋政育,孙昕. TETRA数字集群系统上MAC层协议栈的开发[J]. 移动通信, 2009(12): 35-39.
[5] 律倩,孙昕. TETRA数字集群直通模式上MAC层的研究与开发[J]. 移动通信, 2011(19): 70-74.
作者简介
唐超:北京交通大学电子信息工程学院硕士研究生,目前主要研究方向为数字集群通信系统。
孙昕:现任北京交通大学电子信息工程学院教授、博士生导师,目前主要研究方向为信息论、专业移动通信以及数字信号处理等。endprint
3.2 用户面/信令面检测过程
TETRA系统主要支持2种业务:分组数据业务和语音业务,这2种业务在数据链路层分别承载在信令信道(SCH/F)和业务信道(TCH/F)上。为了降低硬件的复杂度,TETRA系统这2种逻辑信道上的训练序列完全一致,但编码方式却截然不同。在TETRA基站和移动台设计中,需要通过内部原语,由网络层指示下MAC层当前时隙是处于用户面还是信令面。如果处于信令面,下MAC层就按照SCH/F进行解码,否则按照TCH/F进行解码。但是,TETRA协议分析仪只能抓取空中接口的数据,而无法获得基站或移动台的内部原语,只能通过对空中接口的信令进行分析获得用户面或信令面的信息。用户面/信令面检测信令交互流程如图4所示:
图4 用户面/信令面检测信令交互流程
以全双工呼叫为例,描述TETRA系统的用户面/信令面切换过程。全双工呼叫流程如图5所示:
在呼叫建立阶段,主呼方会在主控信道(MCCH)向基站发送U-SETUP PDU,然后基站向两移动台发送D-SETUP、D-CALL-PROCEEDING、D-INFO和D-ALERT等CMCE实体PDU,这些PDU是承载在信令信道上的,属于信令面数据。
在呼叫建立成功时,基站会给主呼方、被呼方分别发送1个D-CONNECT PDU和D-CONNECT-ACK PDU,这2个信令的MAC层的首部信息会包括时隙分配信息,指示主呼方和被呼方工作在哪个时隙上,协议处理模块会记录该时隙分配信息,并指示下MAC层将分配的时隙从信令面转换到用户面,接收语音业务数据。
在呼叫过程中,分析仪在分配时隙上处于用户面接收语音业务数据。
在呼叫结束阶段,基站会根据移动台的拆线申请(U-DISCONNECT PDU),给主呼方和被呼方各发送D-RELEASE PDU。协议处理模块接收到D-RELEASE PDU后,会通知下MAC层将当前业务时隙从用户面转换到信令面。
4 实现和测试
4.1 实现
协议栈处理软件的实现分为3个阶段:首先设计协议处理模块和硬件部分、显示模块以及上位机的接口;然后划分功能模块,编程实现;最后对编写的软件程序进行测试[4-5]。
协议栈处理软件的主流程如图6所示。
协议栈处理软件主要包括中断处理线程、数据处理线程和显示线程。在分析仪正常工作时,硬件部分在每个时隙(~14.167ms)产生1次外部中断,外部中断立即触发中断处理线程执行,在中断处理线程接收全部数据之后,释放处理数据指示;在下次中断到来之前,数据处理线程根据数据处理指示进行工作,将接收到的数据发送给上位机和显示线程,并对接收到的数据进行分析和处理。
4.2 测试
(1)使用分析仪的扫频功能,对851—866MHz频段进行扫描,屏幕显示出当前的频谱环境,并使用“TETRA识别”功能过滤当前频段内的TETRA信号。TETRA信号识别结果如图7所示。
(2)在过滤之后的频谱中,选择863.812 5MHz作为监控频率(北京市正通网TETRA频点)。
(3)软件部分将监控信息发送到上位机和屏幕显示部分,用户得到该载波的监控信息如图8所示。
测试过程分为以下阶段:
协议处理模块获得广播同步信道(BSCH)上的数据,其中系统码值为“1”,色码值为“14”,国家码值为“460”,网络码值为“101”。在正确配置扰码之后,解码广播网络信道(BNCH)上的数据,位置信息(LA)值为“3 009”,该载波信号强度为“-81dBm”。
协议处理模块获得处于信令面的网络层D-CONNECT PDU和D-CONNECT-ACK PDU数据,以及MAC层的时隙分配数据,指示下MAC在分配时隙处于用户面,接收语音数据业务。
接收语音数据业务,逻辑信道类型为TCH/F,且CRC校验结果为“TRUE”,即正确。
测试结果证明协议栈处理软件可以对现有TETRA网络进行协议分析,并完整、准确地解码用户面和信令面数据,满足测试预期。
5 结束语
TETRA协议分析仪可以帮助用户监控TETRA网络的覆盖情况,检查网络盲区并优化网络,还可以将TETRA系统通信信息实时显示和记录,这对于推广TETRA数字集群设备和维护空中电波秩序有极大的促进作用,同时也对我国开发自主知识产权的TETRA数字集群系统带来一定的参考价值。
参考文献:
[1] 彭潇. GSM终端设备自动测试系统设计与实现[D]. 北京: 北京邮电大学, 2008.
[2] ETSI EN 300 392-2 V2.4.2. Terrestrial Trunked Radio (TETRA); Voice plus Data (V+D); Part 2: Air Interface (AI)[S]. 2004.
[3] ETSI TS 100 392-15 V1.4.1. Terrestrial Trunked Radio (TETRA); Voice plus Data (V+D); Part 15: TETRA Frequency Bands, Duplex Spacing and Channel Numbering[S]. 2010.
[4] 宋政育,孙昕. TETRA数字集群系统上MAC层协议栈的开发[J]. 移动通信, 2009(12): 35-39.
[5] 律倩,孙昕. TETRA数字集群直通模式上MAC层的研究与开发[J]. 移动通信, 2011(19): 70-74.
作者简介
唐超:北京交通大学电子信息工程学院硕士研究生,目前主要研究方向为数字集群通信系统。
孙昕:现任北京交通大学电子信息工程学院教授、博士生导师,目前主要研究方向为信息论、专业移动通信以及数字信号处理等。endprint
3.2 用户面/信令面检测过程
TETRA系统主要支持2种业务:分组数据业务和语音业务,这2种业务在数据链路层分别承载在信令信道(SCH/F)和业务信道(TCH/F)上。为了降低硬件的复杂度,TETRA系统这2种逻辑信道上的训练序列完全一致,但编码方式却截然不同。在TETRA基站和移动台设计中,需要通过内部原语,由网络层指示下MAC层当前时隙是处于用户面还是信令面。如果处于信令面,下MAC层就按照SCH/F进行解码,否则按照TCH/F进行解码。但是,TETRA协议分析仪只能抓取空中接口的数据,而无法获得基站或移动台的内部原语,只能通过对空中接口的信令进行分析获得用户面或信令面的信息。用户面/信令面检测信令交互流程如图4所示:
图4 用户面/信令面检测信令交互流程
以全双工呼叫为例,描述TETRA系统的用户面/信令面切换过程。全双工呼叫流程如图5所示:
在呼叫建立阶段,主呼方会在主控信道(MCCH)向基站发送U-SETUP PDU,然后基站向两移动台发送D-SETUP、D-CALL-PROCEEDING、D-INFO和D-ALERT等CMCE实体PDU,这些PDU是承载在信令信道上的,属于信令面数据。
在呼叫建立成功时,基站会给主呼方、被呼方分别发送1个D-CONNECT PDU和D-CONNECT-ACK PDU,这2个信令的MAC层的首部信息会包括时隙分配信息,指示主呼方和被呼方工作在哪个时隙上,协议处理模块会记录该时隙分配信息,并指示下MAC层将分配的时隙从信令面转换到用户面,接收语音业务数据。
在呼叫过程中,分析仪在分配时隙上处于用户面接收语音业务数据。
在呼叫结束阶段,基站会根据移动台的拆线申请(U-DISCONNECT PDU),给主呼方和被呼方各发送D-RELEASE PDU。协议处理模块接收到D-RELEASE PDU后,会通知下MAC层将当前业务时隙从用户面转换到信令面。
4 实现和测试
4.1 实现
协议栈处理软件的实现分为3个阶段:首先设计协议处理模块和硬件部分、显示模块以及上位机的接口;然后划分功能模块,编程实现;最后对编写的软件程序进行测试[4-5]。
协议栈处理软件的主流程如图6所示。
协议栈处理软件主要包括中断处理线程、数据处理线程和显示线程。在分析仪正常工作时,硬件部分在每个时隙(~14.167ms)产生1次外部中断,外部中断立即触发中断处理线程执行,在中断处理线程接收全部数据之后,释放处理数据指示;在下次中断到来之前,数据处理线程根据数据处理指示进行工作,将接收到的数据发送给上位机和显示线程,并对接收到的数据进行分析和处理。
4.2 测试
(1)使用分析仪的扫频功能,对851—866MHz频段进行扫描,屏幕显示出当前的频谱环境,并使用“TETRA识别”功能过滤当前频段内的TETRA信号。TETRA信号识别结果如图7所示。
(2)在过滤之后的频谱中,选择863.812 5MHz作为监控频率(北京市正通网TETRA频点)。
(3)软件部分将监控信息发送到上位机和屏幕显示部分,用户得到该载波的监控信息如图8所示。
测试过程分为以下阶段:
协议处理模块获得广播同步信道(BSCH)上的数据,其中系统码值为“1”,色码值为“14”,国家码值为“460”,网络码值为“101”。在正确配置扰码之后,解码广播网络信道(BNCH)上的数据,位置信息(LA)值为“3 009”,该载波信号强度为“-81dBm”。
协议处理模块获得处于信令面的网络层D-CONNECT PDU和D-CONNECT-ACK PDU数据,以及MAC层的时隙分配数据,指示下MAC在分配时隙处于用户面,接收语音数据业务。
接收语音数据业务,逻辑信道类型为TCH/F,且CRC校验结果为“TRUE”,即正确。
测试结果证明协议栈处理软件可以对现有TETRA网络进行协议分析,并完整、准确地解码用户面和信令面数据,满足测试预期。
5 结束语
TETRA协议分析仪可以帮助用户监控TETRA网络的覆盖情况,检查网络盲区并优化网络,还可以将TETRA系统通信信息实时显示和记录,这对于推广TETRA数字集群设备和维护空中电波秩序有极大的促进作用,同时也对我国开发自主知识产权的TETRA数字集群系统带来一定的参考价值。
参考文献:
[1] 彭潇. GSM终端设备自动测试系统设计与实现[D]. 北京: 北京邮电大学, 2008.
[2] ETSI EN 300 392-2 V2.4.2. Terrestrial Trunked Radio (TETRA); Voice plus Data (V+D); Part 2: Air Interface (AI)[S]. 2004.
[3] ETSI TS 100 392-15 V1.4.1. Terrestrial Trunked Radio (TETRA); Voice plus Data (V+D); Part 15: TETRA Frequency Bands, Duplex Spacing and Channel Numbering[S]. 2010.
[4] 宋政育,孙昕. TETRA数字集群系统上MAC层协议栈的开发[J]. 移动通信, 2009(12): 35-39.
[5] 律倩,孙昕. TETRA数字集群直通模式上MAC层的研究与开发[J]. 移动通信, 2011(19): 70-74.
作者简介
唐超:北京交通大学电子信息工程学院硕士研究生,目前主要研究方向为数字集群通信系统。
孙昕:现任北京交通大学电子信息工程学院教授、博士生导师,目前主要研究方向为信息论、专业移动通信以及数字信号处理等。endprint