通信人家园

标题: 使用lameditor和asn1c开源工具解析北京LTE现网 RRC SIB ASN1消息  [查看完整版帖子] [打印本页]

时间:  2014-10-26 14:52
作者: putaoshu     标题: 使用lameditor和asn1c开源工具解析北京LTE现网 RRC SIB ASN1消息

本帖最后由 post927 于 2014-11-1 18:24 编辑

(原文刊于被sina关闭的我的sina博客. 目前所有博文已经迁移至:sdr-x.github.io )

主要参考了这篇blog:
http://blog.csdn.net/peng_yw/article/details/22437251

本工作是这个LTE小区搜索项目的一部分: https://github.com/JiaoXianjun/LTE-Cell-Scanner解析RRC SIB ASN1消息的程序已经封装为一个matlab函数parse_SIB(),并用在这个Matlab/LTE_DL_receiver.m 脚本中,用来将PDSCH信道解调出来的SIB原始比特正确解析为SIB消息。成功解析的北京4G现网的三个SIB消息,见三个附件。

具体方法:
1. 根据LTE RRC 的spec生成ASN1描述文档
从这里:
http://www.3gpp.org/ftp/Specs/archive/36_series/36.331/
下载36.331协议文档。
把36331-ac0.zip解压缩,得到36331-ac0.doc
把36331-ac0.doc另存为36331-ac0.txt.

从这里
http://sourceforge.net/projects/lameditor/
下载lameditor工具,并编译安装好。
然后执行:

cd lameditor-1.0/src/getasn/
把36331-ac0.txt拷贝到上述目录,然后运行:

./getasn 36331-ac0.txt
至此,得到LTE协议的ASN1描述文件36331-ac0.asn

2. 为LTE协议解析生成ASN1解码器
从这里:
https://github.com/vlm/asn1c
获取asn1c工具,并编译安装。
然后执行:

cd asn1c/examples/ mkdir sample.source.LTERRC cd sample.source.LTERRC
把第一步里得到的36331-ac0.asn拷贝到目录sample.source.LTERRC,然后执行:

asn1c  -S /usr/local/share/asn1c -fcompound-names -fskeletons-copy -gen-PER -pdu=auto 36331-ac0.asn
得到编译工具所需的源文件。在正式编译我们所需的工具之前,需要对源文件做如下修改:
文件converter-sample.c:

在#include <asn_internal.h>后面,加入:
#define PDU BCCH_DL_SCH_Message
#define ASN_PDU_COLLECTION

文件per_opentype.c:
在ASN_DEBUG("Too large padding %d in open type", (int)padding);后面,加入:
padding = padding % 8;
并且注释掉:_ASN_DECODE_FAILED;

现在编译解码工具,执行:

make -f Makefile.am.sample
得到解码工具progname

3. 解码工具的使用。
执行:

./progname recv_bits.per -p BCCH-DL-SCH-Message
recv_bit.per即收到的PDSCH上的SIB的原始bit存成的二进制文件。-p用来指定消息类型,PDSCH上的SIB的消息类型为:BCCH-DL-SCH-Message
运行命令之后,会打印出解析出来的SIB消息各个字段的名称、内容。

附件是几个现网的SIB原始二进制bit文件(per后缀)以及解析出来的SIB消息(ASN1格式)(txt后缀)


LTE-SIB-Beijing.zip (5.44 KB, 下载次数: 68)







附件: LTE-SIB-Beijing.zip (2014-10-26 14:52, 5.44 KB) / 下载次数 68
https://www.txrjy.com/forum.php?mod=attachment&aid=MjQ3NzcyfDNkZGE0YjU1fDE3NTI5NzA4Mjd8MHww
时间:  2014-11-1 16:48
作者: nupt1996


时间:  2014-12-7 13:16
作者: titata

不错

时间:  2015-6-2 17:52
作者: 小雨泡泡泡

赞楼主,技术大牛

时间:  2015-10-28 10:05
作者: ha3

及人之所急,非常好的帖子!


时间:  2015-11-6 11:37
作者: song2015

学习学习

时间:  2015-11-30 16:43
作者: hcgsb

非常好,完美地解决了我的问题

时间:  2016-1-18 14:24
作者: dingdang10

楼主分享的资料特别有用,谢谢啦。。。

时间:  2016-1-24 21:44
作者: faker

马克之,改天用得上再来仔细研究。
时间:  2016-2-25 10:35
作者: fgh198295

支持一下
时间:  2016-4-14 11:23
作者: unitspeace

流弊啊
时间:  2016-7-29 18:04
作者: roylwm

很受用,谢谢
时间:  2016-8-10 19:16
作者: shflyeagle

开发LTE RRC消息工具参考之用。谢谢。
时间:  2016-10-3 10:07
作者: changlong123

啊啊啊啊啊呃呃温热
时间:  2016-12-8 17:49
作者: opticalv2v

可以一时
时间:  2017-11-8 21:28
作者: johnzhuking

我正在做这方面的研究,非常感谢楼主提供SIB消息解析的资料

时间:  2018-3-14 13:41
作者: liquan_zhang

不知道附件是啥东东
时间:  2018-3-17 15:17
作者: CaptainSSS

最近正在研究这个,非常棒,感谢楼主!


时间:  2019-10-21 21:29
作者: haoranz

非常感谢,最近在学习asn1编解码部分,帮助十分大





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