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

📄 zlg500.h

📁 smart2300平台全部驱动例程 LPC2378所有中间件
💻 H
📖 第 1 页 / 共 2 页
字号:
///////////////////////////////////////////////////////////////////////////
uint8 PICC_Anticoll(uint8 nSelectCode, uint32 *pCardSN);

///////////////////////////////////////////////////////////////////////////
//	函数名:	PICC_Select
//	描述:		选择卡片。
//	输入参数:	nSelectCode -- 选择码,可为一级(SEL_CODE1)、二级(SEL_CODE2)
//							   和三级(SEL_CODE3)。
//				nCardSN		-- 欲选择的卡片号码。
//	输出参数:	pSAK		-- 选择应答指针。
//	返回值:	OK——成功;其它——失败。
///////////////////////////////////////////////////////////////////////////
uint8 PICC_Select(uint8 nSelectCode, uint32 nCardSN, uint8 *pSAK);

///////////////////////////////////////////////////////////////////////////
//	函数名:	PICC_ActiveTypeA
//	描述:		激活A型卡,此操作是卡片请求、防碰撞和选择三个步骤的综合。
//	输入参数:	nSelectCode -- 选择码,可为一级(SEL_CODE1)、二级(SEL_CODE2)
//							   和三级(SEL_CODE3)。
//	输出参数:	pCardType	-- 卡片的类型指针。
//				pCardSN		-- 卡片序列号指针。
//	返回值:	OK——成功;其它——失败。
///////////////////////////////////////////////////////////////////////////
uint8 PICC_ActiveTypeA(uint8 nRequestCode, uint16 *pCardType, uint32 *pCardSN);

///////////////////////////////////////////////////////////////////////////
//	函数名:	PICC_Halt
//	描述:		将之前选择的卡片挂起。
//	输入参数:	无。
//	输出参数:	无。
//	返回值:	OK——成功;其它——失败。
///////////////////////////////////////////////////////////////////////////
uint8 PICC_Halt(void);

///////////////////////////////////////////////////////////////////////////
//	函数名:	PICC_AuthKeyE2PROM
//	描述:		通过保存在读卡模块E2PEOM的密钥来验证相应的卡块。
//	输入参数:	nSectorNumber	-- 密钥所在的密钥区区号。
//				nKeyType		-- 密钥类型,KEYA或KEYB。
//				nCardSN			-- 要验证的卡号。
//				nBlockNumber	-- 要验证的卡内块号。
//	输出参数:	无。
//	返回值:	OK——成功;其它——失败。
///////////////////////////////////////////////////////////////////////////
uint8 PICC_AuthKeyE2PROM(uint8 nSectorNumber, uint8 nKeyType, uint32 nCardSN, uint8 nBlockNumber);

///////////////////////////////////////////////////////////////////////////
//	函数名:	PICC_AuthKeyDirect
//	描述:		使用直接密钥来验证相应的卡块。
//	输入参数:	pKey			-- 6字节的密钥指针。
//				nKeyType		-- 密钥类型,KEYA或KEYB。
//				nCardSN			-- 要验证的卡号。
//				nBlockNumber	-- 要验证的卡内块号。
//	输出参数:	无。
//	返回值:	OK——成功;其它——失败。
///////////////////////////////////////////////////////////////////////////
uint8 PICC_AuthKeyDirect(const uint8 *pKey, uint8 KeyType, uint32 nCardSN, uint8 nBlockNumber);


///////////////////////////////////////////////////////////////////////////
//	函数名:	PICC_ReadBlock
//	描述:		读卡片数据块,一块数据的大小为16字节。
//	输入参数:	nBlockNumber -- 卡内块号。
//	输出参数:	pBlockData	 -- 存放块数据的缓冲区,其大小至少为16字节。
//	返回值:	OK——成功;其它——失败。
///////////////////////////////////////////////////////////////////////////
uint8 PICC_ReadBlock(uint8 nBlockNumber, uint8 *pBlockData);

///////////////////////////////////////////////////////////////////////////
//	函数名:	PICC_WriteBlock
//	描述:		写数据到卡片指定的块,一块数据的大小为16字节。
//	输入参数:	nBlockNumber -- 卡内块号。
//				pBlockData	 -- 要写的块数据的缓冲区,其大小为16字节。
//	输出参数:	无。
//	返回值:	OK——成功;其它——失败。
///////////////////////////////////////////////////////////////////////////
uint8 PICC_WriteBlock(uint8 nBlockNumber, const uint8 *pBlockData);

///////////////////////////////////////////////////////////////////////////
//	函数名:	PICC_ULReadBlock
//	描述:		读Ultralight卡片数据块,一块数据的大小为4字节。如需要一次读
//				取4块连续数据(16字节),可使用PICC_ReadBlock()函数,但不能
//				用PICC_WriteBlock()函数来一次写4块数据。
//	输入参数:	nBlockNumber -- 卡内块号。
//	输出参数:	pBlockData	 -- 存放块数据的缓冲区,其大小至少为4字节。
//	返回值:	OK——成功;其它——失败。
///////////////////////////////////////////////////////////////////////////
uint8 PICC_ULReadBlock(uint8 nBlockNumber, uint8 *pBlockData);

///////////////////////////////////////////////////////////////////////////
//	函数名:	PICC_ULWriteBlock
//	描述:		写数据到Ultralight卡片指定的块,一块数据的大小为4字节。
//	输入参数:	nBlockNumber -- 卡内块号。
//				pBlockData	 -- 要写的块数据的缓冲区,其大小为4字节。
//	输出参数:	无。
//	返回值:	OK——成功;其它——失败。
///////////////////////////////////////////////////////////////////////////
uint8 PICC_ULWriteBlock(uint8 nBlockNumber, const uint8 *pBlockData);


///////////////////////////////////////////////////////////////////////////
//	函数名:	PICC_ReadValue
//	描述:		读取卡片内指定的块的数值,数值为32位有符号数,一块只能存放
//				一个数值,有固定的存放格式,具体请参考Mifare 1的数据手册。
//	输入参数:	nBlockNumber -- 数值所在的卡内块号。
//	输出参数:	pValue		 -- 存放读取的数值的缓冲区指针。
//	返回值:	OK——成功;其它——失败。
///////////////////////////////////////////////////////////////////////////
uint8 PICC_ReadValue(int32 *pValue, uint8 nBlockNumber);

///////////////////////////////////////////////////////////////////////////
//	函数名:	PICC_WriteValue
//	描述:		写数值到卡片,一块只能存放一个数值。
//	输入参数:	nValue		 -- 要写的数值。
//				nBlockNumber -- 要写数值的卡内块号。
//	输出参数:	无。
//	返回值:	OK——成功;其它——失败。
///////////////////////////////////////////////////////////////////////////
uint8 PICC_WriteValue(int32 nValue, uint8 nBlockNumber);

///////////////////////////////////////////////////////////////////////////
//	函数名:	PICC_OperateValue
//	描述:		操作数值。
//	输入参数:	nOperationMode 		-- 操作模式,可为增加(INCREMENT)、减少
//									  (DECREMENT)和恢复(RESTORE)三种。
//				nValue		 		-- 与原数值相运算的数值,当为恢复操作时没有意义。
//				nSourceBlockNumber	-- 原数值所在的块号。
//				nDestBlockNumber	-- 操作后的数值存放的块号。
//	输出参数:	无。
//	返回值:	OK——成功;其它——失败。
///////////////////////////////////////////////////////////////////////////
uint8 PICC_OperateValue(uint8 nOperationMode, int32 nValue, 
						uint8 nSourceBlockNumber, uint8 nDestBlockNumber);

///////////////////////////////////////////////////////////////////////////
//	函数名:	PICC_AutoDetect
//	描述:		设置自动检测卡片的参数。
//	输入参数:	nOutMode 	  -- 输出模式,可为AD_SERIAL_OUT、AD_INT_ENABLE、
//							     AD_CONTINUE和AD_HALT的组合。
//				nTxMode		  -- 天线驱动模式,可为AD_TX_ALERT、AD_ONLY_TX1、
//							     AD_ONLY_TX2和AD_ALL_TX的任一种。
//				nRequestMode  -- 请求模式,可为REQ_STD和REQ_ALL任一种。
//				nAuthMode	  -- 验证模式,0为不验证,'E'为用E2PROM的密钥验证,
//								 'F'为直接密钥验证。
//				nKeyType	  -- 密钥类型,为KEYA或KEYB。
//				pKey		  -- 6字节的密钥,在直接验证时使用,其它可设为NULL。
//				nSectorNumber -- 密钥所在的扇区,在用E2PROM验证时使用,其它可设为0。
//				nBlockNumber  -- 要读取数据的卡内块号。
//	输出参数:	无。
//	返回值:	OK——成功;其它——失败。
///////////////////////////////////////////////////////////////////////////
uint8 PICC_AutoDetect(uint8 nOutMode, uint8 nTxMode, uint8 nRequestMode, uint8 nAuthMode, 
					  uint8 nKeyType, const uint8 *pKey, uint8 nSectorNumber, uint8 nBlockNumber);
					  
///////////////////////////////////////////////////////////////////////////
//	函数名:	PICC_ReceiveDetectData
//	描述:		接收模块自动检测到卡片主动发送上来的数据。
//	输入参数:	无。
//	输出参数:	pTxNumber	  -- 读到卡片的天线编号指针,1为Tx1,2为Tx2,3为Tx1和Tx2全驱。
//				pCardType	  -- 卡类型指针。
//				pCardSN	  	  -- 卡号指针。
//				pBlockData	  -- 卡块数据缓冲区指针,块号由PICC_AutoDetect()指定。
//				nSectorNumber -- 密钥所在的扇区,在用E2PROM验证时使用,其它可设为0。
//				nBlockNumber  -- 要验证的卡内块号。
//	返回值:	OK——成功;其它——失败。
///////////////////////////////////////////////////////////////////////////
uint8 PICC_ReceiveDetectData(uint8 *pTxNumber, uint16 *pCardType, uint32 *pCardSN, uint8 *pBlockData);

///////////////////////////////////////////////////////////////////////////
//	函数名:	PICC_ReadDetectData
//	描述:		读取模块自动检测到卡片的数据。
//	输入参数:	nMode		  -- 检测模式,0——停止检测;1——继续检测。
//	输出参数:	pTxNumber	  -- 读到卡片的天线编号指针,1为Tx1,2为Tx2,3为Tx1和Tx2全驱。
//				pCardType	  -- 卡类型指针。
//				pCardSN	  	  -- 卡号指针。
//				pBlockData	  -- 卡块数据缓冲区指针,块号由PICC_AutoDetect()指定。
//	返回值:	OK——成功;其它——失败。
///////////////////////////////////////////////////////////////////////////
uint8 PICC_ReadDetectData(uint8 nDetectMode, uint8 *pTxNumber, uint16 *pCardType, uint32 *pCardSN, uint8 *pBlockData);


#ifdef __cplusplus
	}
#endif

#endif	// __ZLG500_H

⌨️ 快捷键说明

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