位置:51电子网 » 技术资料 » 接口电路

ST7267单片机与SIM卡的接口设计

发布时间:2008/8/16 0:00:00 访问次数:762

  随着信息技术的不断发展,手机逐渐成为现代社会必不可少的工具。但是,一旦手机丢失,存在sim卡内的资料也就丢失了,因而造成了很多不必要的麻烦。为了保存这些重要的资料,在电脑上做必要的备份显得十分重要了。本文利用st7267单片机的gpio端口,实现了对sim卡的读写。

1 硬件电路的设计

  1.1 st7267单片机概述
  
  st7267具有usb2.o的硬件接口,大容量存储控制接口可以支持各种类型的nand flash。具有54 kb的rom和4kb的ram空间。

  1.2 sim卡接口电路
  
  sim卡引脚功能的定义如表1所列。

  st7267单片机与sim卡的接口电路如图1所示。该电路主要由外围有源晶体y2提供4mhz、稳定的时钟频率给sim卡,电源由一颗ldo输出3.3v、纯净的直流电到sim卡的cl_vcc上。这里选择st7267的pe2脚作为i/o引脚,通过一个4.7kω的上拉电阻与sim卡实现通讯;选择pe3脚作为sim卡的复位控制引脚。

  2 底层软件设计
  
  sim卡的数据传输方式与其他存储卡不同,它遵循iso7816标准。因此在进行sim卡读写设计时应该注意数据传输时每一个数据位的宽度,然后按照iso7816的标准编写程序。首先是接收到正确的复位应答信号(atr),其次是向sim卡发送命令,得到正确的返回数据和状态标志。

  2.1 etu的计算

  etu(基本时间单位)就是sim卡i/o脚上输入/输出每一位数据的时间,计算公式是;

  其中:参数f和d分别是时钟频率转换因子和波特率调整因子,这里使用默认的速率,即f=372,d=1;使用的时钟频率f是4mhz。可以计算出基本时间单位是93μs。

  2.2 基本数据帧结构

  通信使用的协议是iso7816-3所规定的t=0的异步半双工字符传输协议。基本的数据帧是由1个起始位(低电平)、8个数据位和1个奇偶校验位组成的,如图2所示。其中,校验位是将8个数据位与其自身做偶校验,也就是其中1的个数必须足偶数。起始位不做校验运算。在保护时间内sim卡和单片机都要处于高电平(即i/o口是高电平)。在t=o协议里,如果sim卡或者单片机检测到奇偶校验结果不正确,则在保护时间内把i/o端口拉低,以示出错。

  2.3 sim卡的apdu结构
  
  应用协议数据单元apdu(application protocol data units)包括了命令apdu以及应答apdu,其结构如下:

  其中:cla是指令的类别,a0被制定为gsm的应用;ins是指令代码;pl、p2、p3是指令参数,p3指示的是数据的长度;data就是要传输的数据;swl和sw2就是命令处理后返回的状态。

  2.4 基本程序模块的设计
  
  设mybit为从i/o端口采样的存储变量,设parity为奇偶校验变量,parlty的初始化值为0。每次从i/o口采样后,mybit都要与parity进行一次“异或”,结果放入parity。这样采样9次后,如果parity的最终值是0,就说明奇偶校验正确;如果不是0,就说明读取数据失败,返回错误信息,要求发送者重发。
  
  按照以上接收一个字节程序的框架,可以很方便地设计出发送一个字节的程序。只是在发送字节时,在发送完奇偶校验位后,一定要转为接收模式。如果在接下来的一个etu里,i/o端口保持高电平,则说明发送数据正确;如果i/o端口被拉低,为低电平,就说明发送数据错误,要重发。

  结语
  
  本文介绍了基于st7267读写sim卡的方法。相对于其他硬件读卡芯片,这种用软件实现的方法更加灵活,而且可以实现多种设备(例如u盘和sim卡读卡器)的整合,这样可以降低产品的成本。

  
 欢迎转载,信息来自维库电子市场网(www.dzsc.com)



  随着信息技术的不断发展,手机逐渐成为现代社会必不可少的工具。但是,一旦手机丢失,存在sim卡内的资料也就丢失了,因而造成了很多不必要的麻烦。为了保存这些重要的资料,在电脑上做必要的备份显得十分重要了。本文利用st7267单片机的gpio端口,实现了对sim卡的读写。

1 硬件电路的设计

  1.1 st7267单片机概述
  
  st7267具有usb2.o的硬件接口,大容量存储控制接口可以支持各种类型的nand flash。具有54 kb的rom和4kb的ram空间。

  1.2 sim卡接口电路
  
  sim卡引脚功能的定义如表1所列。

  st7267单片机与sim卡的接口电路如图1所示。该电路主要由外围有源晶体y2提供4mhz、稳定的时钟频率给sim卡,电源由一颗ldo输出3.3v、纯净的直流电到sim卡的cl_vcc上。这里选择st7267的pe2脚作为i/o引脚,通过一个4.7kω的上拉电阻与sim卡实现通讯;选择pe3脚作为sim卡的复位控制引脚。

  2 底层软件设计
  
  sim卡的数据传输方式与其他存储卡不同,它遵循iso7816标准。因此在进行sim卡读写设计时应该注意数据传输时每一个数据位的宽度,然后按照iso7816的标准编写程序。首先是接收到正确的复位应答信号(atr),其次是向sim卡发送命令,得到正确的返回数据和状态标志。

  2.1 etu的计算

  etu(基本时间单位)就是sim卡i/o脚上输入/输出每一位数据的时间,计算公式是;

  其中:参数f和d分别是时钟频率转换因子和波特率调整因子,这里使用默认的速率,即f=372,d=1;使用的时钟频率f是4mhz。可以计算出基本时间单位是93μs。

  2.2 基本数据帧结构

  通信使用的协议是iso7816-3所规定的t=0的异步半双工字符传输协议。基本的数据帧是由1个起始位(低电平)、8个数据位和1个奇偶校验位组成的,如图2所示。其中,校验位是将8个数据位与其自身做偶校验,也就是其中1的个数必须足偶数。起始位不做校验运算。在保护时间内sim卡和单片机都要处于高电平(即i/o口是高电平)。在t=o协议里,如果sim卡或者单片机检测到奇偶校验结果不正确,则在保护时间内把i/o端口拉低,以示出错。

  2.3 sim卡的apdu结构
  
  应用协议数据单元apdu(application protocol data units)包括了命令apdu以及应答apdu,其结构如下:

  其中:cla是指令的类别,a0被制定为gsm的应用;ins是指令代码;pl、p2、p3是指令参数,p3指示的是数据的长度;data就是要传输的数据;swl和sw2就是命令处理后返回的状态。

  2.4 基本程序模块的设计
  
  设mybit为从i/o端口采样的存储变量,设parity为奇偶校验变量,parlty的初始化值为0。每次从i/o口采样后,mybit都要与parity进行一次“异或”,结果放入parity。这样采样9次后,如果parity的最终值是0,就说明奇偶校验正确;如果不是0,就说明读取数据失败,返回错误信息,要求发送者重发。
  
  按照以上接收一个字节程序的框架,可以很方便地设计出发送一个字节的程序。只是在发送字节时,在发送完奇偶校验位后,一定要转为接收模式。如果在接下来的一个etu里,i/o端口保持高电平,则说明发送数据正确;如果i/o端口被拉低,为低电平,就说明发送数据错误,要重发。

  结语
  
  本文介绍了基于st7267读写sim卡的方法。相对于其他硬件读卡芯片,这种用软件实现的方法更加灵活,而且可以实现多种设备(例如u盘和sim卡读卡器)的整合,这样可以降低产品的成本。

  
 欢迎转载,信息来自维库电子市场网(www.dzsc.com)



相关IC型号

Warning: Undefined variable $stockkeys in G:\website_51dzw\www.51dzw.com\code\tech\view.php on line 152

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式