• 大小: 0.01M
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: 其他  

资源简介

psam.7z

资源截图

代码片段和文件信息

/****************************************Copyright (c)**********************************
========================================================================================
                    文件描述
    
========================================================================================
编写: cj  tel:15767637491  qq :773208906
日期:2019-06-29 09点54分
***************************************************************************************/
#include “includes.h“
#include “delay.h“

uint8_t psam_atr_tab[40];        
uint8_t psam_err_arq_data = 0;   
ISO7816_ATR psam_rest_atr;

// F ? D
const uint32_t f_tab[16] = {0 372 558 744 1116 1488 1860 0 0 512 768 1024 1536 2048 0 0};                        
const uint32_t d_tab[8] = {0 1 2 4 8 16 0 0};
uint8_t ATR_init_iso7816_flag = 0;

/***************************************************************************************
函数名称: uint32_t psam1_reset(uint8_t *response)
函数功能: psam1卡复位应答
输入参数: 
返 回 值: 
***************************************************************************************/
uint8_t psam_reset(uint8_t psam)
{
    uint8_t i j data err;
   // uint8_t protocol;
    ATR_init_iso7816_flag = 0;
    //==================================================================================
    // 初始化7816
    //==================================================================================
    psam_init();                     // 初始化7816
    delay_ms(20);
    pasm_rst_write(0 0);
    pasm_rst_write(1 0);
    delay_ms(10);
    //==================================================================================
    // 清全局变量参数
    //==================================================================================
    psam_rest_atr.TS      = 0;
    psam_rest_atr.T0      = 0;
    psam_rest_atr.Tlength = 0;
    psam_rest_atr.Hlength = 0;
    memset(psam_atr_tab 0  40);
    memset(psam_rest_atr.T 0 SETUP_LENGTH);
    memset(psam_rest_atr.H 0 HIST_LENGTH);
    //==================================================================================
    // 复位线拉高 准备接受ATR
    //==================================================================================
    pasm_rst_write(psam 1);
    //==================================================================================
    // 准备接受ATR
    //==================================================================================    
    for (i = 0 j = 0; i < 40; i++)
    {
        err = iso7816_rcv_byte(psam &data ISO7816_RCV_TIMEOUT);
        if (!err)
        {
            if ((j == 0 && (data == 0x3b || data == 0x3f)) || j > 0)
                psam_atr_tab[j++] = data;
        }
        else if (j > 0)
        {
            break;
        }
    }
    //==================================================================================
    // 判断是否应答成功
    //==================================================================================
    if (psam_atr_tab[0] =

评论

共有 条评论