硬件结构

本文主要介绍SIM卡的硬件结构、使用的通信协议和通信方式。

硬件结构

SIM卡实际是装有微处理器的芯片卡,它的是根据ISO 7816标准来设计的,其内部按功能模块划分,可以分为5个部分:

  • 微处理器CPU

    这是SIM卡的核心部分,负责处理所有的计算和逻辑操作,比如执行加密算法、处理输入/输出数据等。

  • 程序存储器ROM

    存储SIM卡的固定信息,比如操作系统和预装的应用程序。这些信息一旦写入,就不能再改变。

  • 工作存储器RAM

    在程序执行复杂计算或者任务处理时,存储一些临时数据。

  • 数据存储器EEPROM

    数据存储区,可以被多次读写的存储空间,用于存储电话簿、短信、用户身份认证密钥等可变的信息。我们经常可以在SIM卡上看到标注了“xxxk”,表示的就是这个存储区的大小。比如128K,表示的就是EEPROM存储区大小为128K。

  • 串行通信单元

    SIM卡与ME进行通信的唯一通道,支持半双工串行通信模式。

其硬件架构大致如下:

SIM卡电器管脚

SIM卡的触点分配,遵循ISO 7816-2协议的规定,具体如下:

触点号 说明 触点号 说明
C1 电源电压 C5
C2 复位 C6 编程电压
C3 时钟 C7 输入/输出
C4 保留 C8 保留

一般SIM卡都会有8个触点,使用过程中,至少保证有5个触点与设备是连接状态才能保证SIM卡正常工作,这5个触点是:VCC、GND、RST、CLK和I/O。

  • C1触点:电源电压触点(VCC),有1.2v/1.8V/3V/5V几种规格。5V供电的SIM卡已经很少使用,现在主要是1.8V和3V供电的SIM卡。
  • C2触点:复位信号触点(RST)。
  • C3触点:时钟信号触点(CLK),频率在1~5MHz,由终端设备提供,CLK应维持在复位应答期间所用频率的正负10%之内。
  • C4触点:保留。
  • C5触点:接地端触点(GND)。
  • C6触点:编程电压触点(VPP),在5V供电的SIM卡中可用作供电引脚,在1.8V和3V的SIM卡中,该引脚通常悬空。
  • C7触点:数据触点(I/O),是SIM卡和终端设备之间的唯一通信通道,支持半双工串行通信,有发送和接收两种状态。
  • C8触点:保留。

SIM卡与设备的通信

SIM卡和设备之间的通信不仅遵循ISO 7816标准,还涉及到STK(SIM Application Toolkit)协议。eSIM通过APDUM实现,其遵信ISO 7816标准。

STK协议

STK全称为SIM Application Toolkit,中文译为SIM卡应用工具包,是GSM协会定义的一种标准,用于开发和部署在SIM卡上运行的应用。

STK协议定义了一套指令集,允许SIM卡和手机之间进行交互。通过STK,SIM卡可以向手机发送命令,让手机执行一些操作,如显示菜单、发送短信、启动一个电话等。

APDU全称为Application Protocol Data Unit,中文译为应用协议数据单元。 通过APDU指令,可以完成对eSIM数据的读取、删除、添加、更新、逻辑通道的管理、终端能力的上报等功能。

通信方式

SIM卡和设备之间的通信,是由SIM卡的操作系统和设备的操作系统之间通过APDU传递特定的命令与数据来实现,这些命令和数据是按照ISO 7816标准和STK协议等规范来定义的。

ISO 7816-3定义了电信号和传输协议,确保数据可以安全、可靠地在SIM卡和设备之间进行传输。

ISO 7816-4定义了命令和数据结构,描述了如何通过命令来操作SIM卡,如读取数据、写入数据、验证密码等。

STK协议基于ISO 7816-3和ISO 7816-4标准,增加了一些专门针对SIM卡和手机交互的指令。这些指令在SIM卡和手机设备之间传递,允许SIM卡进行复杂的操作和交互。

本文中不再详述ISO 7816标准中规定的具体命令与数据结构,将在后续《APDU》章节对命令以及数据结构进行说明。用户也可自行参考ISO 7816标准文件、STK协议以及ESTI标准中关于SIM卡的规范文档进行详细的了解。