STM32单片机的PSAM卡驱动模块设计 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

STM32单片机的PSAM卡驱动模块设计

来源:中国一卡通网  作者:不详  发布时间:2014-03-07 09:35:09  字体:[ ]

关键字:PSAM卡  CPU卡  IC卡  

摘   要:本文设计的PSAM卡驱动模块,无论是软件的代码还是硬件的电源转换模块都具有很好的可移植性,方便在不同的系统中应用,并且提供了对外的接口函数,方便上层系统应用工程师的调用。该模块可以应用到固网支付、POS终端等设备上。

  APDU指令的格式如表1所列。

STM32单片机的PSAM卡驱动模块设计——中国一卡通网

  APDU指令的命令头内容如表2所列。

STM32单片机的PSAM卡驱动模块设计——中国一卡通网

  APDU指令响应结构如表3所列。

  APDU指令响应内容如表4所列。

  (1)主要的数据结构

  Typedef struct{

  u8 Cla; //命令的类型

  u8 Cmd; //命令的编码

  u8 P1; //具体命令参数1

  u8 P2; //具体命令参数2

  u8 P3; //在发送模式的为Lc;//在接收模式时为Le

  u8*Data_Ptr;//命令和相应的数据字段

  u8 RspCode[2];//APDU响应的内容

  }APDU;

  (2)主要功能函数

  ①函数名:PSAM_APDU_Out

  功能描述:读取智能卡的数据。

  参数:*Data_out,返回从智能卡中读出的数据;PSAMConfig,智能卡的配置。

  返回值:读取数据成功标志(0为失败,1为成功)。

  ②函数名:PSAM_APDU In

  功能描述:向智能卡写数据。

  参数:*Data_in,向卡上写入的数据;PSAMConfig,智能卡的配置。

  返回值:写入数据成功标志(0为失败,1为成功)。

  ③函数名:PSAM_Send1 Byte

  功能描述:向智能卡发送1字节数据,并判断接收方是否成功接收。如果没有成功,则向收方发送两次该数据。

  参数:SendByte,待发送的字节数据。

  返回值:SendStatus,数据发送是否成功标志(成功为0x01,失败为0x00,超时为0xFF)。

  ④函数名:PSAM_Send1Block

  功能描述:向智能卡发送n个字节数据。

  参数:*SendPtr,待发送的字节数据指针;DataLen,传送的字节数;ByteDir,字节方向。

  返回值:SendStatus,数据发送是否成功标志(成功为0x01,失败:0x00)。

  ⑤函数名:PSAM_Receive1Byte

  功能描述:接收智能卡的1字节数据,当检测到奇偶出错时,可请求2次智能卡从发当前字节数据。

  参数:无。

  返回值:DataBuf,其中高字节是数据接收是否成功标志(成功为0x01,失败为Parity error(0x55),timeout overflow(0xff))低字节是收到的有效字节数据。

  ⑥函数名:PSAM_Reset

  功能描述:对智能卡进行复位操作,并等待智能卡的应答,如果应答成功则返回复位成功标志,否则返回复位失败标志。

  参数:*uiATR,保存复位应答信息的指针。

  返回值:复位成功标志(0x01为复位成功,0x00为复位失败)。

  4 模块测试

  通过串口调试助手对系统进行测试,分析发送和返回的数据,判断该模块工作是否正常。图7为发送对PSAM卡的复位操作的命令。图8为发送对PSAM卡进行透明数据流传输的命令。

STM32单片机的PSAM卡驱动模块设计——中国一卡通网
STM32单片机的PSAM卡驱动模块设计——中国一卡通网

  结语

  本文设计的PSAM卡驱动模块,根据上述软件和硬件的设计思路进行的设计得到了实际的验证,取得了令人满意的效果。无论是软件的代码还是硬件的电源转换模块都具有很好的可移植性,方便在不同的系统中应用,并且提供了对外的接口函数,方便上层系统应用工程师的调用。该模块可以应用到固网支付、POS终端等设备上。

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖