📄 paypass_anticollision.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 + -