问题
搞通信标准化的人最常翻阅的协议可能就是3GPP的38.331,网上下载有pdf和word版本的。有如下问题:
- word版本打开文件经常被卡死。
- pdf能打开,但是不好编辑ASN.1的代码。
- 单从两个版本的文档里很难梳理各个IE之间的逻辑层级关系。
起初我尝试将所有的RRC代码手动敲入vscode里面,工作量被劝退。后来遍寻网络发现了了一个小程序,完美解决我的问题。
如何将word转化为ANS.1的文件
下载 txt2asn1:https://github.com/Dybinx/txt2asn1
- 将word的协议转化为.txt文件,并选择其他编码:Unicode
2. 在命令行输入
./txt2ans1.exe 38331-xxx.txt
,回车
这样在文件夹里可以看到3833-h40.asn.1
如何查看ASN.1的文档
- 安装visual studio code
- 安装ans.1的扩展插件
使用效果
任意搜索定位某个IE
查看某个IE的定义
譬如,在FrequecyInfoDL-SIB
上右击,选择转到定义,就会立刻跳转到该IE定义位置:
查看哪些IE应用了该IE
这样可以较为清晰的明确逻辑层级关系。
其他
目前我的段位只是看懂,还不涉及到亲手写RRC,所以一些Debug的功能还没有研究过。后续有需要可以再出博客。
遗留问题
目前可以清晰有条理地查看RRC了,但是如果想知道这个信令是什么意思,还得回头翻文档。
所以在网上搜到了个在线RRC,非常好用,如果对版本要求不那么高的话,可以忽略上述流程,无脑使用:在线RRC
附录
R17版本的RCC,我已经转换完毕,分享给大家