首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用AT+CRSM使用SFI读取SIM?

如何使用AT+CRSM使用SFI读取SIM?
EN

Stack Overflow用户
提问于 2015-10-01 06:12:44
回答 1查看 3.2K关注 0票数 3

AT+CRSM可用于读取SIM卡的基本文件(EF)。(3 3GPP 27.007)我可以使用以下格式成功地读取许多EF文件:

代码语言:javascript
复制
at+crsm=176,<EF-FILE-ADDR-IN-DEC>,0,0,<BYTE-LENGTH-TO-READ>

有几个文件我已经成功地手动读取和解析,包括EF-UST、EF-SPN、EF-EST、EF-ACL和EF-SPDI。

然而,我无法阅读两个EFs,即EF-PNN和EF-OPL.我已经确认EF-UST显示服务n45 & n46为“可用”。但使用上述格式,AT命令抛出以下CME错误: 105,129即0x69,0x81,根据ETSI TS 102.221指示“与文件结构不兼容的命令”。

这两个EFs的一个独特之处是它们都有一个SFI (短文件标识符)。我甚至尝试将at+crsm的“at+crsm”编码为EF的Bit8=1、Bit7,6=0和Bit5,4,3,2,1=SFI地址。但没有成功!

有谁知道如何使用AT+CRSM读取SFI吗?

EN

回答 1

Stack Overflow用户

发布于 2019-06-28 11:12:28

简单介绍:文档:3 3GPP 51.011

  • 每个SIM基本文件(EF)都有自己的“文件结构”:(51.011中的9.3节)。('00‘:透明;'01’:线性固定;'03':循环)
  • 通过对合适的EF文件的前15字节“获取响应”和解码14字节的内容,可以检测到文件的结构。(请看51.011页第24页,其中描述了字节的含义)。例如:"AT+CRSM=192,EF-FILE-ADDR,0,0,15“
代码语言:javascript
复制
- the command "176 - read binary" used by you "at+crsm=176," can be used only in the case of "transparent" structure of file.
- if you want to read records from "linear fixed" or "cyclic", the command "178 - read record" can be helpfull.

AT的分词说明: CRSM Set请求:

代码语言:javascript
复制
+CRSM=<command>[,<fileid>[,<P1>,<P2>,<P3>[,<data>[,<pathid>]]]]

命令命令由ME传递给SIM;

  • 176:读二进制
  • 178:阅读记录
  • 192:获取响应(获取所选信息)
  • 214:更新二进制文件
  • 220:更新记录
  • 242: STATUS (获取当前目录的信息)当然还有更大的命令类型集。看一看51.011第9.2条

P1、P2、P3:ME传递给SIM的整数类型参数:通常不需要设置这些参数,因为它们具有适当的默认值(见下表)。其中一个有用的任务是拆分大型二进制文件以进行读写操作,因为AT命令行可能只有多达200个字符(包括头)。

  • 命令 P1 P2 P3
  • 状态\ '00‘\ '00’\ Lgth (默认为22)
  • 读取二进制偏移量高(Default=0)、偏移量低(Default=0)
  • 更新二进制偏移量高(Default=0)、偏移量低(Default=0)
  • 阅读记录: Rec,No回车模式(Default=4) \ Lgth (不关心!)
  • 更新记录: Rec不,Default=4,\ Lgth (不关心!)
  • 得到回应'00‘\ '00’\ Lgth (不关心!)

偏移量高和偏移量低是16位地址的高低部分(地址化以P1=0和P2=0开头)。此功能可用于读取/写入带有后续命令的大型SIM文件。注意:默认值取决于调制解调器固件的实现。

模式定义了线性、固定和循环文件的读/写模式:

  • 02:下一个
  • 03:前
  • 04:绝对/电流mode2

参考文献编号要读取的记录的编号。如果是mode=02或03,则值应为0。

Lgth是读或写数据的长度:

  • 对于读二进制和写二进制,应在EF状态信息确定的合理范围内给出偏移量和长度。对于读取二进制文件,可以省略P3或将其设置为0;然后根据EF状态信息计算长度信息。对于写二进制文件,如果P3小于该值,则可以根据长度计算值(取决于调制解调器固件)。
  • 读取记录和写入记录时,必须始终读取或写入完整的记录(见GSM 11.11 20/8.5和8.6)。对于读取记录,可以省略P3或将其设置为0;然后根据EF状态信息计算长度信息。对于写记录,如果P3值小于该值,则使用从该值的长度计算的值进行校正。
  • GET响应是完整的文件或目录信息。自动检测到长度;参数P3不关心。
  • 获取状态是目录信息。默认长度为22。

最后,示例如何从EFpnn读取多条记录(结构:线性固定;标识符: 6fc5)

获得某项记录AT+CRSM=178,28613,1,4,0获得第二记录AT+CRSM=178,28613,2,4,0

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32880552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档