📄 zlg500.h
字号:
///////////////////////////////////////////////////////////////////////////
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 + -