通信人家园

标题: LTE测量报告消息  [查看完整版帖子] [打印本页]

时间:  2014-11-18 22:14
作者: nail3     标题: LTE测量报告消息

本帖最后由 nail3 于 2014-11-19 21:13 编辑

LTE的测量报告格式如图所示,将各级消息体展开,会在首字符位置出现u、c1、m、还有t=1,t=2字符,哪位给解释一下,这些字符是啥意思?我也查看了相关规范,没找到,LTE的规范本来就繁杂,这些消息体级数太多,不太容易搞清楚。如果在协议上能找到这些明确的解释的话,麻烦告诉一下,在哪个协议的哪个章节,省得吧几十个36/23/...协议翻个遍都找不到,谢谢。ps:谁能告诉我怎么贴图?


时间:  2014-11-19 12:51
作者: lph_2000

找协议看看吧
时间:  2014-11-22 09:59
作者: nail3

[ 本帖最后由 nail3 于 2014-11-22 15:19 编辑 ]

我作了一些研究和搜索,把一篇之前与此相关的介绍贴出来,值得注意的是,RRC消息格式都是用通用的ASN.1语言编写的,符合该语言规范,可以找相应的语法资料参考。
   以下是引用:
信令内容其实就是由一套完整的结构体的内容组成,只是由于一条消息可能通过很多事件触发,从而导致调用的结构体的内容不同。我们知道引用一个结构体内的变量,就是通过点“.”这个符号一层一层向下延伸的。比如RRC_DL_DCCH_MSG.message.u.radioBearerSetup.u.later_than_r3.criticalExtensions.u.r4.radioBearerSetup_r4.rrc_StateIndicator = TRRC_cell_DCH可以看出该字段是经过很多个结构体内一层一层的数据结构嵌套下来的,每一次向下加的点就是程序执行一个单步的过程,最后完成一个完整的内容的封装。 我们最关心的,其实就是这一长串结构体中最后那个字段代表的含义。这些字段的大多数都是由简单的单词或者单词的缩写构成的,而字段的值可以直接表示内容,比如RRC的信令,也可以是编码了的,比如UE和CN之间的信令(多数可以通过解码工具来得到具体内容),还可以在协议的“消息及信息元素的功能性描述及内容”找到对应的解释。对于一个完整的字段来说,经常会出现我们将前面的结构名称都搞清楚了,但是最后一个关键字符却是一个字母,常见的如 t,m,u,n,它们是代表什么?就寻找关键字段来说,可能不需要了解了,但是如果要完全了解信令的结构,就继续往下看吧。一、代表信令的结构字段例:RRC_DL_DCCH_MSG.message.t = 15RRC_DL_DCCH_MSG.message.u.radioBearerSetup.t = 2这个t究竟是什么意思?下面告诉你typedef struct EXTERN TRRC_IntraFreqEvent {int t;union {/* t = 1 */TRRC_Event1a *e1a;/* t = 2 */TRRC_Event1b *e1b;/* t = 3 */TRRC_Event1c *e1c;/* t = 4 */ /* t = 5 */ TRRC_Event1e *e1e;/* t = 6 */TRRC_Event1f *e1f;/* t = 7 *//* t = 8 */TRRC_ThresholdUsedFrequencye1h;/* t = 9 */TRRC_ThresholdUsedFrequencye1i;} u;} TRRC_IntraFreqEvent;typedef struct EXTERN TRRC_UL_TimingAdvanceControl_LCR_r4_enabled { struct { unsigned ul_SynchronisationParametersPresent : 1;unsigned synchronisationParametersPresent : 1; } m;TRRC_UL_SynchronisationParameters_r4ul_SynchronisationParameters;TRRC_SynchronisationParameters_r4synchronisationParameters;} TRRC_UL_TimingAdvanceControl_LCR_r4_enabled;以上一个同频测量事件的定义,它是一个结构体,使用了联合(union)这种定义方式,联合的意思就是在一个结构体中定义多种类型相似的数据结构,但是每一次只能引用其中的一种,为了能方便的使用这些结构体,定义了一个变量t, t表示一个联合体中的结构索引,可以使用变量t的值来判别什么时候使用该联合中的一种结构体。对于一条信令来说,可能有好几种事件都能触发它,但是不同的事件对应该条信令的内容不同(比如测量报告中上报的事件1g,2a,测量控制包括开始测量,修改测量,终止测量),我们就使用t来确定信令中某一个部分的具体内容。而u就代表一个t确定了之后的结构体,结构体中的变量就通过u.xxxx来引用了,比如:RRC_DL_DCCH_MSG.message.t = 15(表示使用联合中t=15对应的结构体) RRC_DL_DCCH_MSG.message.u.radioBearerSetup.t = 2(u中定义了联合,t=2) 而m表示协议中定义的可选项是否存在,它总是和Present对应的,=1则后面会再列出该结构的内容,=0则不列出。比如:RRC_DL_DCCH_MSG.message.u.radioBearerSetup.u.later_than_r3.criticalExtensions.u.r4.m.v4d0NonCriticalExtensionsPresent = 1RRC_DL_DCCH_MSG.message.u.radioBearerSetup.u.later_than_r3.criticalExtensions.u.r4.radioBearerSetup_r4.m.integrityProtectionModeInfoPresent = 0 RRC_DL_DCCH_MSG.message.u.radioBearerSetup.u.later_than_r3.criticalExtensions.u.r4.radioBearerSetup_r4.m.cipheringModeInfoPresent = 0而字符n,通常是表示它后面的结构体数组元素的个数。所以通过上面对信令的内容字段和结构字段的介绍,能够帮组我们了解信令的基本结构框架,这样能更清晰,简单地找到那些关键字段,而不比纠缠在t=2究竟是什么意思这些问题上了。




通信人家园 (https://www.txrjy.com/) Powered by C114