首页 > 试题

library怎么读

更新时间:2022-11-14 16:06:37 阅读: 评论:0

数学考试蒙题顺口溜-电流单位换算


2022年11月14日发(作者:脖子美白)

USBReader开发文档

1、版本说明(版本V1.00)

*Allrightsrerved,Specificationssubjecttochangewithoutnotice.

2、返回值说明:

2.1函数返回值代码表:

0x00命令执行成功

0x01命令操作失败(失败原因请参考2.2底层单片机上传代码表)

0x02地址校验错误

0x04读写器返回超时

0x05数据包流水号不正确:

0x07接收异常

0x0A参数值超出范围

2.2底层单片机上传代码表:

0x80:参数设置成功

0x81:参数设置失败

0x82:通讯超时

0x83:卡不存在

0x84:接收卡数据出错

0x87:未知的错误

0x85:输入参数或者输入命令格式错误

0x8f:输入的指令代码不存在()

0x8A:在对于卡块初始化命令中出现错误(仅用于14443命令)

0x8B:在防冲突过程中得到错误的序列号(仅用于14443命令)

0x8C密码认证没通过(仅用于14443命令)

0x90卡不支持这个命令(仅用于15693命令)

0x91命令格式有错误(仅用于15693命令)

0x92在命令的FLAG参数中,不支持OPTION模式(仅用于15693命令)

0x93要操作的BLOCK不存在(仅用于15693命令)

0x94要操作的对象已经别锁定,不能进行修改(仅用于15693命令)

0x95锁定操作不成功(仅用于15693命令)

0x96写操作不成功(仅用于15693命令)

3SystemCommands

5、intSetSerNum(unsignedchar*newValue,

unsignedchar*buffer);

函数功能:设置8个字节的产品序列号。

输入参数:描述

*newValue8个字节的读写器序列号

*buffer用来返回接收到的数据的指针

输出参数:

*buffer返回STATUS后的状态,如果设置成功,则*buffer=0x80

如果设置失败,则*buffer为底层(读卡器单片机)上传的错误代码(参照底层协议代码表2.2)

返回值:

0x00,设置成功

0x01,设置失败

6、intGetSerNum(unsignedchar*buffer);

函数功能:

读取由厂家预设的1个字节的读卡器地址和8个字节序列号.

输入参数:

*buffer传入一个指针,用来返回接收到的数据

输出参数:

*bufferbuffer[0]读写器地址

buffer[1...8]8个字节的读写器序列号

返回值:

0x00,操作成功

0x01,操作失败

6、intWriteUrInfo(intnum_blk,

intnum_length,

char*ur_info);

函数功能:

读卡器提供4个块(每个块不能大于120个字节),共480个字节空间的用户数据区。用户可以根据

需要,储存相应的用户信息到读写器中.

输入参数:

num_blk区域号

num_length数据长度

*ur_info用户数据

返回值:

0x00,操作成功

0x01,操作失败

7、intReadUrInfo(intnum_blk,

intnum_length,

char*ur_info);

函数功能:

读取读卡器中提供4个块(每个块不能大于120个字节)的数据.

输入参数:

intnum_blk区域号

intnum_length读取的数据长度

*ur_info待读入的用户数据

输出参数:

*ur_info如果:操作失败,则ur_info[0]为错误代码

如果:操作成功,则ur_info[0..N]为读取的用户信息数据

返回值:

0x00,操作成功

0x01,操作失败

8、intGetVersionNum(char*VersionNum);

函数功能:

读取读写器的版本号.

输入参数:

*VersionNum待读入的版本号

输出参数:

*VersionNum如果:操作失败,则VersionNum[0]为错误代码

如果:操作成功,则VersionNum[0..N]为读入的版本号

返回值:

0x00,操作成功

0x01,操作失败

9、intControlLED(unsignedcharfreq,

unsignedcharduration,

unsignedchar*buffer);

函数功能:设置灯的工作状态,包括,灯亮的周期以及循环的次数

输入参数:freq周期数

duration次数

*buffer待返回的参数

输出参数:

*buffer如果:操作失败,则buffer[0]为错误代码(参考2.2)

如果:操作成功,则buffer[0]为成功标志,即为0x80

返回值:

0x00,操作成功,

0x01,操作失败

10、intControlBuzzer(unsignedcharfreq,

unsignedcharduration,

unsignedchar*buffer);

函数功能:设置蜂鸣器的工作状态,包括,蜂鸣器的工作周期以及循环的次数

输入参数:

freq周期数

duration次数

*buffer待返回的参数

输出参数:

*buffer如果:操作失败,则buffer[0]为错误代码(参考2.2)

如果:操作成功,则buffer[0]为成功标志,即为0x80

返回值:

0x00,操作成功

0x01,操作失败

4、ISO14443Type-ACommands

4.1Type-ACommands

4.1.1intMF_Request(

unsignedcharinf_mode,

unsignedchar*buffer);

函数功能:发送ISO14443A寻卡指令.

输入参数:

inf_mode寻卡模式

0x01–Idle模式(一次只对一张卡操作)

0x00–All模式(一次可对多张卡操作)

*buffer待返回的参数

输出参数:

*buffer如果:操作失败,则buffer[0]为错误代码

如果:操作成功,则buffer[0..1],返回2个字节的数据串

返回值:

0x00,操作成功

0x01,操作失败

4.1.2intMF_Anticoll(

unsignedchar*snr,

unsignedchar&status);

函数功能:

检测卡片数量,单卡或多卡,并返回4个字节的卡号。(如果有多张卡,就返回其中一张卡的卡号)

输入参数:

*snr传送一个指针,返回4个字节的卡号

&Status传送一个指针,返回卡片的数量

输出参数:

如果操作成功

Status检测到的卡片的数量(0x00表示检测到单卡,0x01表示检测到多卡)

*snr4个字节的卡号(snr[0..3])

如果操作失败

*snr为错误代码(具体参考2.2)

返回值:

0x00,操作成功,

0x01,操作失败

4.1.3intMF_Select(

unsignedchar*snr);

函数功能:

选择卡,使卡进入被选择的状态…

输入参数:

*snr传送一个指针,传入4个字节卡号,并且返回4个字节的卡号

输出参数:

Status检测到的卡片的数量

*snr4个字节的卡号(snr[0..3])

返回值:

0x00,操作成功,

0x01,操作失败

4.1.4intMF_Halt();

函数功能:

选择卡,使卡进入被中断的状态…

输入参数:

返回值:

0x00,操作成功,

0x01,操作失败

4.2MifareAppilicationCommands

4.2.1intMF_Read(unsignedcharmode,

unsignedcharblk_add,

unsignedcharnum_blk,

unsignedchar*snr,

unsignedchar*buffer);

函数功能:

在指定位置读取指定长度的数据

输入参数:

mode,读取模式

(RequestIdle+KeyAmode=00,RequestIdle+KeyBmode=02,

RequestAll+KeyAmode=01,RequestAll+KeyBmode=03)

(以上数字均为十六进制数字)

blk_add,读取块地址

num_blk,读取块数目

*snr,一个指针,传递的是六个字节的密钥

*buffer等待接受输出的指针变量

输出参数:

如果操作成功

*snr,4个字节的卡号

*buffer,读取到的数据(具体数量为:num_blk*16)

如果操作失败

buffer[0]错误代码(具体参考2.2)

返回值:

0x00,操作成功,

0x01,操作失败

4.2.2intMF_Write(unsignedcharmode,

unsignedcharblk_add,

unsignedcharnum_blk,

unsignedchar*snr,

unsignedchar*buffer);

函数功能:

在指定位置写入数据

输入参数:

mode,要写的模式

(RequestIdle+KeyAmode=00,RequestIdle+KeyBmode=02,

RequestAll+KeyAmode=01,RequestAll+KeyBmode=03)

blk_add,要写块地址

num_blk,要写块数目

*snr,待写入的数据

*buffer,传入的指针符号..用来传出数据

输出参数:

如果操作成功

snr[0..3],4个字节的卡号

如果操作失败

buffer[0]错误代码(具体参考2.2)

返回值:

0x00,操作成功,

0x01,操作失败

4.2.3intMF_InitVal(

unsignedcharmode,

unsignedcharSectNum,

unsignedchar*snr,

unsignedchar*value);

函数功能:

初始化卡

输入参数:

mode,初始化模式

(RequestIdle+KeyAmode=00,RequestIdle+KeyBmode=02,

RequestAll+KeyAmode=01,RequestAll+KeyBmode=03)

SectNum,要初始化的扇区号00-0F

*snr,6字节密钥(以指针的形式传入)

*value4字节的要初始化的数据

输出参数:

如果操作成功:

snr[0..3],4个字节的卡号

如果操作失败:

snr[0],错误代码(具体参考2.2)

返回值:

0x00,操作成功,

0x01,操作失败

4.2.4intMF_Dec(

unsignedcharmode,

unsignedcharSectNum,

unsignedchar*snr,

int*value);

函数功能:

对卡的指定扇区进行减值操作。

输入参数:

mode,模式控制

(RequestIdle+KeyAmode=00,RequestIdle+KeyBmode=02,

RequestAll+KeyAmode=01,RequestAll+KeyBmode=03)

SectNum,要写值的扇区号00-0F

*snr,6字节密钥(以指针的形式传入)

value要减的值,4个字节长度

输出参数:

如果操作成功

snr[0..3],4个字节的卡号

value[0..3]4个字节操作后的数据串

如果操作失败

snr[0]错误代码(具体参考2.2)

返回值:

0x00,操作成功,

0x01,操作失败

4.2.5intMF_Inc(

unsignedcharmode,

unsignedcharSectNum,

unsignedchar*snr,

int*value);

函数功能:对卡的指定扇区进行加值操作。

输入参数:

mode,模式控制

(RequestIdle+KeyAmode=00,RequestIdle+KeyBmode=02,

RequestAll+KeyAmode=01,RequestAll+KeyBmode=03)

SectNum,要加值的扇区号00-0F

*snr,6字节密钥(以指针的形式传入)

value要加的值,4个字节长度

输出参数:

如果操作成功

snr[0..3],4个字节的卡号

value[0..3]4个字节操作后的数据串

如果操作失败

snr[0]错误代码(具体参考2.2)

返回值:

0x00,操作成功,

0x01,操作失败

4.2.6intMF_Getsnr(

unsignedcharmode,

unsignedcharhalt,

unsignedchar*snr

unsignedchar*value);

函数功能:返回1个字节的单卡或多卡标识,4个字节的卡号。

输入参数:

mode,模式控制(模式控制26or52)

0x26–Idle模式(一次只对一张卡操作)

0x52–All模式(一次可对多张卡操作)

halt,是否需要halt卡(halt选择00or01)

00不需要执行halt指令

01读写器执行halt指令

snr,返回的1个字节的单卡或多卡标识(如果读卡不成功,返回错误码)

value返回的4个字节的卡号

输出参数:

如果操作成功

snr[0],1个字节的单卡或多卡标识

value[0..3]返回的4个字节的卡号

如果操作失败

snr[0]错误代码(具体参考2.2)

返回值:

0x00,操作成功,

0x01,操作失败

4.2.7intMF_Restore(

unsignedcharmode,

intcardlength,

unsignedchar*carddata);

函数功能:

按照选择的模式,进行数据的发送

输入参数:

mode,模式控制0x00—不需要进行CRC校验

0x01—需要进行CRC校验

cardlength,卡数据长度

*carddata,发送时(卡数据)接收时(返回数据)

输出参数:

如果操作成功

carddata[0..N],接收返回数据

如果操作失败

carddata[0]错误代码(具体参考2.2)

返回值:

0x00,操作成功,

0x01,操作失败

14443Type-BCommands

5.1intRequestType_B(

unsignedchar*buffer)

函数功能:该命令执行ISO14443B中的REQB命令,获取卡片的PUPI代码

输入参数:

*buffer,卡片复位后的数据串(ATQB)

输出参数:

如果操作成功:

*buffer,卡片复位后的数据串(ATQB)

buffer[0]卡片复位数据的长度

buffer[1..N]操作后的数据串(ATQB)

如果操作失败:

buffer[0]错误代码(具体参考2.2)

返回值:

0x00,操作成功,

0x01,操作失败

5.2intAntiType_B(

unsignedchar*buffer);

函数功能:该命令执行ISO14443B中的AnticollB命令

输入参数:

*buffer,卡片返回的数据串(ATQB)

输出参数:

如果操作成功:

buffer[0..N],卡片返回的数据串(ATQB)

如果操作失败:

buffer[0]错误代码(具体参考2.2)

返回值:

0x00,操作成功,

0x01,操作失败

5.3intSelectType_B(

unsignedchar*SerialNum);

函数功能:该命令执行ISO14443B中的ATTRIB命令,给已知PUPI的卡片分配一个识别号CID

输入参数:

*SerialNum,卡的序列号

返回值:

0x00,操作成功,

0x01,操作失败

5.4intRequest_AB(

unsignedchar*buffer);

函数功能:

该命令执行几集成了ISO14443B中的,REQUEST和ATTRIB命令,通过一个命令使卡复位。

输入参数:

*buffer,返回操作后的卡的序列号4个字节

输出参数:

如果操作成功:

buffer[0..3],返回操作后的卡的序列号4个字节

如果操作失败:

buffer[0],错误代码(具体参考2.2)

返回值:

0x00,操作成功,

0x01,操作失败

5.5intAPI_ISO14443TypeBTransCOSCmd(

unsignedchar*cmd,

intcmdSize,

unsignedchar*buffer);

函数功能:

ISO14443传送命令,可以通过此命令向卡发任意有效的命令,数据

输入参数:

*cmd,待发送的数据

cmdSize,数据长度

*buffer,回收的数据

输出参数:

*buffer,回收的数据

如果:操作成功,则buffer[0..N]为从卡返回的数据

操作失败,则buffer[0]为错误代码

返回值:

0x00,操作成功,

0x01,操作失败

6ISO15693COMMANDS

6.1ISO15693_Inventory(unsignedchar*Cardnumber,

unsignedchar*pBuffer);

函数功能:

此命令通过防冲突用于得到读卡区域内所有卡片的序列号(能得到的卡片数量与模块天线的输出

功率有关,一般能对2~6卡进行防冲突)

输入参数:

*Cardnumber,返回的卡的数量(一个字节)

*pBuffer返回的数据(包括FLAG和DSFID和8*n个字节的卡号)

输出参数:

如果:操作成功

*Cardnumber返回的卡的数量(一个字节)

*pBuffer返回的数据(包括FLAG和DSFID和8*n个字节的卡号)

如果:操作失败

*Cardnumber为错误代码

返回值:

0x00,操作成功,

0x01,操作失败

6.2intISO15693_Read(

unsignedcharflags,

unsignedcharblk_add,

unsignedcharnum_blk,

unsignedchar*uid,

unsignedchar*buffer);

函数功能:

用来读取1个或多个扇区的值,如果要读每个块的安全位,将FLAGS中Option_flag置为1,即

FLAG=0X42,每个扇区将返回5个字节,包括1个表示安全状态字节和4个字节的块内容,这时候

每次最多能读12个块。如果FLAG=02,将只返回4字节的块内容,这时候每次最多能读63个块。

输入参数:

flags0x02不带uid

0x22带uid

0x42不带uid但是要读安全位

blk_add,要读的起始块号

num_blk,块的数量

*uidUID信息

*buffer返回值

输出参数:

如果:返回操作成功

buffer[0]返回的flagbuffer[1..N]Data

操作失败,

buffer[0]为错误代码

返回值:

0x00,操作成功,

0x01,操作失败

6.3intISO15693_Write(

unsignedcharflags,

unsignedcharblk_add,

unsignedcharnum_blk,

unsignedchar*uid,

unsignedchar*data);

函数功能:对一个块进行写操作(每次只能写一个块)

输入参数:

flags0x02不带uid

0x22带uid

0x42不带uid但是要读安全位

blk_add,要写的起始块号

num_blk,写的块的数量

*uidUID信息

*data写入的数据

输出参数:

如果:操作失败,则data[0]为错误代码

返回值:

0x00,操作成功,

0x01,操作失败

6.4intISO15693_Lock(

unsignedcharflags,

unsignedcharnum_blk,

unsignedchar*uid

unsignedchar*buffer);

函数功能:用于锁定块内容。注意:此过程不可逆(不能解锁)块锁定后内容不能在修改。

输入参数:

flags0x02不带uid

0x42不带uid但是要读安全位

0x22带uid

num_blk,要锁的块号

*uidUID信息

*buffer返回值

输出参数:

如果:操作成功,则buffer[0]值为0x80

如果:操作失败,则buffer[0]为错误代码

返回值:

0x00,操作成功,

0x01,操作失败

6.5intISO15693_StayQuiet(

unsignedcharflags,

unsignedchar*uid,

unsignedchar*buffer);

函数功能:

此命令用于将卡置于静止的状态,必须用地址模式,如果发送的数据与被操作的卡的序列号相同,

操作成功后,卡将进入静止状态,否则状态不变。

输入参数:

flags标识字节1个字节

*uidUID信息

*buffer返回值

输出参数:

如果:操作成功,则buffer[0]返回的0x80,表示操作成功

如果:操作失败,则buffer[0]为错误代码(具体参考2.2)

返回值:

0x00,操作成功

0x01,操作失败

6.6intISO15693_Select(

unsignedcharflags,

unsignedchar*uid,

unsignedchar*buffer);

函数功能:

此命令必须用地址模式,如果发送的数据与被操作的卡的序列号相同,操作成功后,卡将进入被

选择状态,否则状态不变。

输入参数:

flags标识字节1个字节

*uidUID信息

*buffer返回值

输出参数:

如果:操作成功,则buffer[0]为的0x80,表示操作成功

如果:操作失败,则buffer[0]为错误代码

返回值:

0x00,操作成功

0x01,操作失败

6.7intISO15693_RetToReady(

unsignedcharflags,

unsignedchar*uid,

unsignedchar*buffer);

函数功能:

操作成功后,卡回到Ready状态。

输入参数:

flags标识字节1个字节

0x02不带uid

0x42不带uid但是要读安全位

0x22带uid

*uidUID信息

*buffer返回值

输出参数:

如果:操作成功,则buffer[0]的值为0x80,表示操作成功

如果:操作失败,则buffer[0]为错误代码(具体参考2.2)

返回值:

0x00,操作成功

0x01,操作失败

6.8intISO15693_WriteAFI(

unsignedcharflags,

unsignedcharafi,

unsignedchar*uid,

unsignedchar*buffer);

函数功能:

对卡进行写AFI操作。

输入参数:

flags标识字节1个字节

0x02不带uid

0x42不带uid但是要读安全位

0x22带uid

afi待写的AFI

*uidUID信息

*buffer返回值

输出参数:

如果:操作成功,则buffer[0]值为0x80,表示操作成功

如果:操作失败,则buffer[0]为错误代码(具体参考2.2)

返回值:

0x00,操作成功

0x01,操作失败

6.9intISO15693_LockAFI(unsignedcharflags,

unsignedchar*uid,

unsignedchar*buffer);

函数功能:

用于锁定卡的AFI,锁定后AFI不可以更改

输入参数:

flags标识字节1个字节

0x02不带uid

0x42不带uid但是要读安全位

0x22带uid

*uidUID信息

*buffer返回值

输出参数:

如果:操作成功,则buffer[0]返回的0x80,表示操作成功

如果:操作失败,则buffer[0]返回为错误代码

返回值:

0x00,操作成功

0x01,操作失败

6.10intISO15693_WriteDSFID(

unsignedcharflags,

unsignedcharDSFID,

unsignedchar*uid,

unsignedchar*buffer);

函数功能:

对卡的进行写DSFID操作

输入参数:

flags标识字节1个字节

0x02不带uid

0x42不带uid但是要读安全位

0x22带uid

DSFID要写的DSFID字节,长度为1个字节

*uidUID信息

*buffer返回值

输出参数:

如果:操作成功,则buffer[0]值为0x80,表示操作成功

如果:操作失败,则buffer[0]值为错误代码(具体参考2.2)

返回值:

0x00,操作成功

0x01,操作失败

6.11intISO15693_LockDSFID(

unsignedcharflags,

unsignedchar*uid,

unsignedchar*buffer);

函数功能:

用于锁定卡的DSFID,锁定后DSFID不可以更改

输入参数:

flags标识字节1个字节

0x02不带uid

0x42不带uid但是要读安全位

0x22带uid

*uidUID信息

*buffer返回值

输出参数:

如果:操作成功,则buffer[0]返回的0x80,表示操作成功

如果:操作失败,则buffer[0]返回为错误代码

返回值:

0x00,操作成功

0x01,操作失败

6.12intISO15693_GetSysInfo(

unsignedcharflag,

unsignedchar*uid,

unsignedchar*Buffer);

函数功能:

用于得到卡的详细信息,具体内容请参考,ISO15693协议资料

输入参数:

flags标识字节1个字节

0x02不带uid

0x42不带uid但是要读安全位

0x22带uid

*uidUID信息

*buffer返回值

输出参数:

如果:操作成功,

则Buffer[0]:Flags

Buffer[1]:INFOFlags

Buffer[2..9]:UID

Buffer[10]:DSFID

Buffer[11]:AFI

Buffer[12..N]:Otherfields

如果:操作失败,则Buffer[0]返回为错误代码

返回值:

0x00,操作成功

0x01,操作失败

6.13intISO15693_GetMulSecurity(

unsignedcharflag,

unsignedcharblkAddr,

unsignedcharblkNum,

constunsignedchar*uid,

unsignedchar*pBuffer);

函数功能:用于获取卡的各个块的安全状态位的数据

输入参数:

flag0x02不带uid

0x22带uid

0x42不带uid但是要读安全位

blkAddr,要读的起始块号

blkNum,读的块的数量

*uidUID信息

*pBuffer返回值

输出参数:

如果:操作成功

*pBuffer返回的数据

pBuffer[0]返回的flagspBuffer[1..N]Blockcuritystatus(块的安全状态)

如果:操作失败,则pBuffer[0]为错误代码(具体参考2.2)

返回值:

0x00,操作成功

0x01,操作失败

6.14intISO15693_TransCOSCmd(

unsignedchar*cmd,

intcmdSize,

unsignedchar*buffer);

函数功能:一个通用命令,用户可以通过此命令,对卡进行各种操作。

输入参数:

*cmd,需要发送的数据

cmdSize,数据长度

*buffer返回值

输出参数:

如果:操作成功

*buffer返回的数据

buffer[0..N]从卡返回的数据

如果:操作失败,则buffer[0]为错误代码

返回值:

0x00,操作成功

0x01,操作失败

本文发布于:2022-11-14 16:06:37,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/18460.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:穗是哪里
下一篇:保留意见
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图