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

📄 sam.h

📁 很强的射频卡reader源代码
💻 H
字号:
/****************************************************************************
*                                                                           
* File:         SAM.H(SAM CARD)                                     
*                                                                           
* Created:      2003.1.20                                                    
*                                                                           
* Editor        JOHN CHENG
*                                                                           
* Compiler:     KEIL C51 V7.00                                              
*                                                                           
* Description:                 
*                                                                           
*****************************************************************************
*                                                                           
* Version | Date     |  PCB  | Description                                          
* --------+----------+-------+------------------------------------------------ 
* V100    | 25/12/02 | 00.01 | Initial version,TypeA and TypeB 
* V110    | 15/01/03 | 00.02 | reset pin control by FIFO out pins.Adding two new command
*         |          |       | (READ EEPROM C6 and WRITE EEPROM C7).
*         |          |       | delay using a fixed time,not "for loop".
*         |          |       | New routine funtions is generated in main funtion.          
* V120    | 20/01/03 |       | Modify reader.h,adding rc500cmd.h	    
* V130    | 08/02/03 |       | Adding some funtions about SAM
****************************************************************************/

//define SAM card message //
#define inf_SAMerr  0x09    //SAM card reply error.
#define inf_nSAM    0x0A    //Not SAM card reply

//-------------------------------------------------------------------------------------------------
//Below define is SAM command code(0x70-0x7F) 
//-------------------------------------------------------------------------------------------------
#define  CMD_SAM_ATR        0x70      //Answer to reset
#define  CMD_SetBaudrateSAM 0x71      //Set SAM card baudrate
#define  CMD_SAM_Gen        0x72      //Send generic command to SAM card 
#define  CMD_Generic_T0		0x73

//FIFO Control register (write only) for 16550 UART 
#define Enable_XMIT_RCVR 1         //Enable FIFO 
#define MDA_Mode         8         //set TXD & RXD pins to 1 
#define RCVR_RST         2         //Reset reciver buffer counter
#define XMIT_RST         4         //Reset transmiter buffer counter 
#define RCVR_T_1         0         // 1 byte triger 
#define RCVR_T_4         0x40      // 4 bytes triger 
#define RCVR_T_8         0x80      // 8 bytes triger 
#define RCVR_T_14        0xC0      // 14 bytes triger

//To select SAM or Inside reader refer from cSAM_I and cSAM_O pin
/*---------------------------------------------------------------------------------------------------------
cSAM_I | cSAM_O | Selected 
-----------------------------------------------------------------------------------------------------------
   0   |   0    | Inside received and transmited
   0   |   1    | Inside + SAM received 
   1   |   0    | SAM transmit  
   1   |   1    | SAM Transmit and received. NOT used this because SAM TX and RX connet together
---------------------------------------------------------------------------------------------------------*/
sbit cSAM_I=P1^4;
sbit cSAM_O=P1^5;

//extern byte SLE_authenticate(byte *UID,byte KEY_page,byte Value_page);
extern unsigned char SLE_authenticate(unsigned char KEY_page,unsigned char CNT_page, unsigned char Key_number);
extern unsigned char T1ExchangeAPDU(unsigned char LEN, unsigned char *Buffer);
extern unsigned char SLE_authenticate_1(unsigned char KEY_page,unsigned char Value_page);
extern unsigned char inf_Authenticate(unsigned char pAddress,unsigned char KeyADR,unsigned char *Buffer);
extern unsigned char inf_Authen_Sequence_B1(unsigned char *Buffer);
extern unsigned char inf_Authenticate_A(unsigned char pAddress,unsigned char KeyADR,unsigned char *Buffer);
extern unsigned char inf_Read_mac(unsigned char pAddress,unsigned char *Buffer);
extern unsigned char SLE_Read(unsigned char pAddress,unsigned char number_mode,unsigned char *Buffer);
extern unsigned char SLE_Write(unsigned char pAddress,unsigned char number_mode,unsigned char *Buffer);
extern void 		 RF_Field(unsigned char mode);
extern unsigned char SLE_RestrictWrite(unsigned char pAddress,unsigned char number_mode,unsigned char *Buffer);
extern unsigned char SLE_WriteRead(unsigned char pAddress,unsigned char number_mode,unsigned char *Buffer);
extern unsigned char SLE_ResWriteRead(unsigned char pAddress,unsigned char number_mode,unsigned char *Buffer);
extern void          TransmitToSAM(unsigned char length,unsigned char *buffer);
extern void 		 Seq_SAM(unsigned char length);
extern unsigned char EnableSAM_Receive(void);

//Rountine from SAM_GenericCmd.C
extern unsigned char SAM_GenericCmd(unsigned char LRC_Flag, unsigned char length, unsigned char *buffer);

//Rountine form SLE_GenericCmd.C
extern unsigned char SLE_GenericCmd(unsigned char CRC_flag, unsigned char length, unsigned char *buffer);

extern 	unsigned char GetBytes(unsigned char _cl);
extern 	unsigned char GetByte(void);
extern 	unsigned char Sam_Command(unsigned char _len,unsigned char *buffer);

⌨️ 快捷键说明

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