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

📄 paypass_anticollision.h

📁 读RF卡的源代码
💻 H
字号:
//=============================================================================
//                  Copyright (C) INSIDE Contactless 1998-2005
//
// INSIDE Contactless reserves the right to make changes, without notice,
// to any product (including application note) herein to improve
// reliability, functionality, or design. INSIDE Contactless advises its
// customers to obtain the latest version of device data sheets to verify,
// before placing orders, that the information being relied upon by the
// customer is current.
//
// INSIDE Contactless makes no warranty that the use will not infringe any
// third party patent, copyright or trademark.
//
// Information furnished by INSIDE Contactless is believed to be accurate
// and reliable. However, INSIDE Contactless does not assume any liability
// resulting from the application or use of any product described within.
//
// All rights are reserved. Reproduction in whole or in part is prohibited
// without the written consent of the copyright owner.
//
//      Bat 11a,
//      Parc Club du Golf,
//      Z.A.C. du Pichaury                      Tel :   +33 (0)4.42.39.33.00
//      13856 Aix-en-Provence Cedex 3           Fax :   +33 (0)4.42.39.63.19
//      FRANCE                                  Email : info@insidefr.com
//
//-----------------------------------------------------------------------------
// Project Code : PICOREAD RF ISO15693-3 READER
// Project Name : APPLICATION NOTE
// Module Name  : PRD_PAYPASS_ANTICOLLISION_TTAL1_H
// Platform dev : Keil 礦ision 3 (IDE ) + Keil ARM Compiler
// Target       : LPC2129 (ARM7TDMI Core)
// Language     : C ANSI
// Revision     : 1.1
// Description  : ISO15693-3 commands management
//=============================================================================
// When		Who	Ver		What
// 06-04-24	MCY	1.1		Create this header
//=============================================================================
#ifndef __PRD_PAYPASS_ANTICOLLISION_H__
#define __PRD_PAYPASS_ANTICOLLISION_H__

#include "PRD_Config.h"     			// Reader Configuration functions 

// ALLOW TO SHOW THE PRINTF IN THE DEBUG MODE
//#define MODE_DEBUG	     			// ALLOW TO SHOW THE PRINTF IN THE DEBUG MODE 
//#define MODE_DEBUG_ERRORHANDLING		// ALLOW TO SHOW THE PRINTF IN THE DEBUG MODE in errorhandling function
//#define TTAL1

#define PAYPASS_MODULE_VERSION 0x30313031
  
// TIME-OUT DEFINES	

#define _FDT_A_PICC_MIN		  	(85-14)//(85-14) // =9*9,44 - time between end of last bit sent and timer start 	    // for REQA/WUPA,SELECT & ANTICOLLISION CMD
#define	_FWT_ATQB     		  	  566		// for REQB/WUPB CMD
#define	_FWT_DEACTIVATION	  	 5280		// for DESELECT A&B CMD
#define	_FWT_ACTIVATION		 	 5280		// for RATS	CMD

#define	_T_RESET		 	 	 9440		//

#define _FWT_COMMON_MAX			 77333		// FWT MAX FOR A & B = 8192 ETU= 77332.48 us


// ADD SOF(13 etu only in type B) + 1 BYTE(10etu) DELAY BECAUSE OF PICOREAD BUFFER  
#define _PICOREAD_TIMEOUT_OFFSET_A		   97 // 10 etu = 94 祍
#define _PICOREAD_TIMEOUT_OFFS_A_TC		   (_PICOREAD_TIMEOUT_OFFSET_A  * (ONE_U_SECOND))
#define _PICOREAD_TIMEOUT_OFFSET_B		  217    // 23 etu = 217 祍

// FDT_A_PICC_MAX for testing timer value
// 148 祍 = 90 祍 (_FDT_A_PICC_MIN) + 58 祍 (PicoRead Offset)
#define _FDT_A_PICC_MAX 	  	 0x94
#define _FDT_A_PICCMAX_TC 	  	(_FDT_A_PICC_MAX  * (ONE_U_SECOND))
#define _FDT_A_PICCMIN_TC		(_FDT_A_PICC_MIN  * (ONE_U_SECOND))

#define _FDT_A_PCD_MIN			 500

// CALCULATE FWT OR SFGT
#define _SFGT			  		 0x01		// TO CALCULATE SFGT WITH SFGI
#define _FWT			  		 0x00		// TO CALCULATE FWT WITH FWI

// ERROR RETURN
#define	TRANSMISSION_ERROR		   30
#define	PROTOCOL_ERROR			   31
#define	TIME_OUT_ERROR			   32
#define CARD_CONNECT_ERROR		   45
#define ABORT_ERROR                46
#define COLLISION_ERROR            47

// POLLING RETURN
#define END_POLLING_A			   33
#define END_POLLING_B			   34
#define RETRY_POLLING			   35

// COLLISION RETURN
#define	END_COLLISION_A            36
#define	END_COLLISION_B            37

// RESET RETURN
#define END_RESET				   128

// ACTIVATE RETURN
#define END_ACTIVATE_A			   39
#define END_ACTIVATE_B			   40

// LOOP-BACK FUNCTION RETURN
#define END_TRANSMIT			   41
#define END_TRANSMIT_MX			   42
#define END_ANTICOL			   	   43


extern void 			v_fnProtocolChange			(unsigned char p_pProtocolChoice, unsigned char* p_pP6Config, unsigned char p_pRFReceiveEOF, StructReader* p_pStructReader);
extern void 			v_fnResetWait				(void);	
extern void 			v_fnResetField				(short p_dMicroSec);	

extern unsigned char 	b_fnSendReceiveREQAWUPA		(unsigned char p_pcmd,unsigned char* p_pabBuffer,StructReader* p_pStructReader,unsigned short* p_pabATQALength) ;
extern unsigned char 	b_fnSendReceiveREQAWUPA_Transparent (unsigned char p_pcmd,StructReader* p_pStructReader) ;
extern unsigned char 	b_fnSendReceiveREQBWUPB_Transparent (unsigned char p_pcmd,StructReader* p_pStructReader);
extern void 			v_fnSendHALTA				(StructReader* p_pStructReader);		
extern unsigned long 	b_fnFWT_SFGTCalculate		(unsigned char p_pchoice,unsigned char p_pabBuffer,unsigned p_bAddDelta);
extern unsigned char    b_fnSendReceiveHALTB		(unsigned char* p_pabBuffer,StructReader* p_pStructReader);
extern unsigned char 	b_fnSendReceiveSELECT_ISOA	(unsigned char p_pSEL,unsigned char* p_pabBuffer, StructReader* p_pStructReader);
extern unsigned char 	b_fnSendReceiveANTICOLLISION_ISOA (unsigned char p_pSEL,unsigned char* p_pabBuffer, StructReader* p_pStructReader);

extern unsigned char 	b_fnPayPassAnticollision	(StructReader* p_pStructReader);
extern void 			v_fnExceptionProcessing		(unsigned char p_error_type);
extern unsigned char 	b_fnSendReceiveREQBWUPB_PayPass(unsigned char p_pcmd,unsigned char* p_pabBuffer,StructReader* p_pStructReader, unsigned short* p_bATQBLength);
extern void 			v_fnSendPreparATTRIB_PayPass(unsigned char* p_pabBuffer,StructReader* p_pStructReader);
extern unsigned char	b_fnSendReceiveRATS_PayPass (unsigned char* p_pabBuffer,StructReader* p_pStructReader);
extern unsigned char 	b_fnPolling					(unsigned char* p_abATQResponse, unsigned short* p_bATQLength, StructReader* p_pStructReader) ;
extern unsigned char 	b_fnCollisionA				(unsigned char* l_abBuffer,unsigned char* p_abUID, unsigned char* p_bUIDLength, StructReader* p_pStructReader);
extern unsigned char 	b_fnCollisionB				(unsigned char* l_abBuffer, StructReader* p_pStructReader)  ;
extern unsigned char 	b_fnActivateA				(unsigned char* p_abATQAResponse_polling, unsigned char* p_abUID, StructReader* p_pStructReader) ;
extern unsigned char 	b_fnActivateB				(unsigned char* p_abATQBResponse_polling, StructReader* p_pStructReader);
extern unsigned char 	b_fnRemoveA					(StructReader* p_pStructReader);
extern unsigned char 	b_fnRemoveB					(StructReader* p_pStructReader);
extern unsigned char 	b_fnLoopBackFunction		(StructReader* p_pStructReader);
extern unsigned char 	b_fnPayPassAnticollisionErrorHandling(unsigned char p_bSentIsoCommand, unsigned char p_bISOCommandStatus,unsigned char* p_abReceivedData,unsigned short p_wISOCommandReceiveLength);
extern unsigned char    b_fnPayPassPollingAndConnect(unsigned char* p_abATQResponse, unsigned short* p_bATQLength, StructReader* p_pStructReader,unsigned char p_bStartLoopBack);
extern void 			v_fnSendToHostEcho	(char* p_acString);
extern void 			v_fnReceivedFromHostSendAPDU	(void);

extern unsigned long 	g_bPayPassTimeoutValue;

extern unsigned char	g_abP6Config14443A_PayPass[8];
extern unsigned char	g_abP6Config14443B_PayPass[8];
extern unsigned short 	g_bATQBLength;
extern unsigned char 	g_abATQAResponse[2];
extern unsigned short 	g_bATQALength;
extern unsigned char 	g_abATQBResponse[16];
extern unsigned char 	g_abATQResponse[16];
extern unsigned long 	g_FWT_SFGT;
extern unsigned char 	g_abRATS_ATTRIB[30];
extern unsigned char 	g_abAPDU_Data[300];
extern unsigned short	g_bAPDULength;
extern unsigned char 	g_bUIDLength;	  
extern unsigned char    g_Anticollision_choice;
extern unsigned char    g_abUID[16];
extern unsigned short   g_bATQLength;

extern unsigned char 	g_bLastBitSentValue;
extern unsigned short   g_iFDT_A_PICC_Shift;





#endif // __PAYPASS_ANTICOLLISION_H

⌨️ 快捷键说明

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