⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mc2005_icc.h

📁 上海数传信息科技有限公司的所有模块使用的都是2.4Ghz频段
💻 H
字号:
#ifndef _MC2005_ICC_H
#define _MC2005_ICC_H
/*Card apis*/
#define ICC_POWER_ON 1
#define ICC_POWER_OFF 0

extern short ICC_interface_power(short isOn);

#define ICC_CLOCK_16M 0
#define ICC_CLOCK_8M 1
#define ICC_CLOCK_4M 2
#define ICC_CLOCK_2M 3
#define ICC_VOLTAGE_5 0
#define ICC_VOLTAGE_3 1
#define ICC_VOLTAGE_1_8 2

extern void ICC_deactivate_current_sock(void);


#define	ICC_SOCK_MAIN 0
#define ICC_SOCK_SAM 1
#define ICC_SOCK_AUX1 2
#define ICC_SOCK_AUX2 3
extern short ICC_select_sock(short sock_num);
extern short ICC_get_curr_sock(void);

#define ICC_SOCK_CARD_PRESENT 1
#define ICC_SOCK_CARD_ABSENT 0
extern short ICC_sock_check(short sock_num);


// ic card pin descriptions:
#define ICC_PIN_VCC                   0
#define ICC_PIN_RST                   1
#define ICC_PIN_CLK                   2
#define ICC_PIN_C4                    3
#define ICC_PIN_GND                   4
#define ICC_PIN_C6                    5
#define ICC_PIN_IO                    6
#define ICC_PIN_C8                    7
#define ICC_PIN_READ                  0x00000000
#define ICC_PIN_SET                   0x00010000
#define ICC_PIN_CLR                   0x00020000
#define ICC_PIN_SWITCH_OUT            0x00030000
#define ICC_PIN_SWITCH_IN             0x00040000

typedef struct {
  unsigned short     delay_unit;
  unsigned short     IIC_flag;
  unsigned short     send_length;
  unsigned short     read_length;
  unsigned char      * send_buffer;
  unsigned char      * read_buffer;
} typ_IIC_param_block;


#define ICC_IIC_LSB_1ST              0x10
#define ICC_IIC_WITH_ACK             0x08
#define ICC_IIC_END_NOTACK           0x04
#define ICC_IIC_WITH_STOP            0x02
#define ICC_IIC_WITH_START           0x01

typedef struct {
  unsigned int	 isT1               : 1;
  unsigned int	 isConverted        : 1;
  unsigned int   VccOn              : 1;
  unsigned int   VolIndex           : 2;
  unsigned int   ClkIndex           : 3;
  unsigned int   isSyncCard         : 1;
  unsigned int   PSC32th            : 1;
  unsigned int   CKU                : 1;
  unsigned char  Fi, Di, D, Dividor, PI1, II, N, PI2, WI;
  unsigned char  IFSI, CWI, BWI;
  unsigned short BWT, CWT;
  unsigned long  WWT;
} typ_cpucard_param;

//for cards which ATR timing is ISO compliant
#define ICC_CPUC_ATR_FLAG_ISO 0
//for cards which ATR timing is EMV compliant
#define ICC_CPUC_ATR_FLAG_EMV 1
//for cards which ATR waiting timing is 6 to 10 times long to ISO, such as WatchData.
#define ICC_CPUC_ATR_FLAG_LONGATR 2

extern short ICC_cpucard_ATR(unsigned char * dbuf,
                    unsigned char * len,
                    unsigned short clk_index,
		    unsigned short vol_index,
		    unsigned short ATR_FiDi,
		    unsigned short flags);

extern short ICC_T0_TPDU( short isIn,
                    short CLA,
                    short INS,
                    short P1,
                    short P2,
                    short P3,
                    unsigned char * databuff,
                    unsigned short * pSW);

extern short ICC_T1_frame( unsigned char * pfrm_send,
                    unsigned short len_send,
                    unsigned char * pfrm_rx,
                    unsigned short * len_rx );

extern short ICC_cpucard_PTS( unsigned char * pPTS_request,
                unsigned short len_PTS_request,
                unsigned char * pPTS_responce,
                unsigned char * len_PTS_responce);

extern short EMV_ISO_PBOC_atr_check(
  unsigned char * pBuff,
  unsigned char len,
  unsigned char isPBOC);

#define EMV_ISO_atr_check(a,b) EMV_ISO_PBOC_atr_check((a),(b),0)
#define PBOC_atr_check(a,b) EMV_ISO_PBOC_atr_check((a),(b),1)

extern short ICC_cpucard_get_param(typ_cpucard_param * pDes);

extern short ICC_cpucard_set_param(typ_cpucard_param * pSrc);

#define ICC_ACTIVITY_INSERT 1
#define ICC_ACTIVITY_WITHDRAW 2
#define ICC_ACTIVITY_NULL 3

extern short ICC_card_activity(short sock_num);

extern short ICC_memcard_pin_session(unsigned long pin_flag);

extern short ICC_memcard_IIC_session(typ_IIC_param_block * picb);

extern short ICC_memcard_IIC_session_standard(typ_IIC_param_block * picb);

extern  short ICC_memcard_atr( unsigned char * dbuf,
                               unsigned char * len,
                               unsigned short vol_index);
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -