




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
RFID非接触式IC卡读写器用户手册V1.021、通信协议描述1.1 协议概述该协议是上位机与读写器之间的通讯协议。通讯的格式是:1位起始位,1位长度标志位,若干数据位,1位异或校验位,1位结束位。通讯的最大长度为64字节。1.2 字符定义字符数值定义STX0x02通讯开始LEN-数据长度DATA-数据BCC-异或校验ETX0x03通讯结束1.3 通讯过程示意图1.4 数据格式Command(2 bytes)Data0Datam2、指令集2.1 指令一览表指令码功能0xC001寻卡(ISO/IEC15693)0xC005读取某一块的信息(ISO/IEC15693)0xC006将信息写入某一块(ISO/IEC15693)0xC007将某一块锁定(ISO/IEC15693)0xC008写入AFI(ISO/IEC15693)0xC009锁定AFI(ISO/IEC15693)0xC00A写入DSFID(ISO/IEC15693)0xC00B锁定DSFID(ISO/IEC15693)0xC00C获取系统信息(ISO/IEC15693)0x3224寻卡(ISO/IEC14443A存储卡)0x3225休眠卡片(ISO/IEC14443A存储卡)0x3241激活卡片(ISO/IEC14443A存储卡)0x3243读取某一块的信息(ISO/IEC14443A存储卡)0x3244将信息写入某一块(ISO/IEC14443A存储卡)0x3245读余额(ISO/IEC14443A存储卡)0x3246写入余额(ISO/IEC14443A存储卡)0x3247余额加值(ISO/IEC14443A存储卡)0x3248余额减值(ISO/IEC14443A存储卡)0x324B卡片复位(ISO/IEC14443A智能卡)0x324C发送应用命令(ISO/IEC14443A智能卡)2.2 状态返回值返回值意义0x0000操作成功0xFFFF操作失败3、二次开发接口函数说明3.1 适用于符合ISO/IEC14443A标准的存储卡的接口函数3.1.1 Mifare S50/S70卡片特性 S50具有1K字节的EEPROM,S70具有4K字节的EEPROM S50分为16个扇区,每个扇区包括4块,每块16个字节,以块为存取单位 S70分为40个扇区,共256个块,每块16个字节,以块为存取单位 用户可自定义每个存储块的访问条件 每张卡有唯一序列号,为32位 具有防冲突机制,支持多卡操作 非接触传送数据和无源 至少10年数据保存期 至少10万次擦写 读写距离在100mm内 工作频率为13.56MHz3.1.2 函数使用注意事项该二次开发接口函数库提供用于下发命令至读写器的函数,这些函数能够控制读写器对卡片进行寻卡及读写操作。在对卡片进行操作前必须先寻卡,寻卡成功后才能对卡片进行后续操作。卡片的读写操作是以块为单位,每块为16个字节。不同扇区可以用不同的密钥进行认证,每个扇区又可以使用A密钥或B密钥进行认证。3.1.3 函数说明(1)寻卡int find_14443(BYTE* type, BYTE* card_uid );/功能: 寻卡/入口参数: /出口参数: type,指示寻卡成功的卡片为A类卡或是B类卡/ card_uid,指示用于存放UID的起始地址/返回值: 返回0,通信失败/ 返回1,操作成功/ 返回0xff,操作失败/说明: 获取卡片UID/(2)HALT卡int set_halt();/功能: 使卡片休眠/入口参数: /出口参数: /返回值: 返回-2,尚未寻卡/ 返回0,通信失败/ 返回1,操作成功/ 返回0xff,操作失败/说明: 在HALT卡前必须已经寻卡成功/(3)激活卡片int set_active();/功能: 激活卡片/入口参数: /出口参数: /返回值: 返回-2,尚未寻卡/ 返回0,通信失败/ 返回1,操作成功/ 返回0xff,操作失败/说明: 可以令处于休眠状态的卡片处于激活状态/(4)读块int read_block(int page,int block,unsigned char pswtype,unsigned char *psw,unsigned char *des_data,int* des_len);/功能: 读取一个块的值/入口参数: page,指定要读取的块所在的扇区/ block,指定要读取的块的块号/ pswtype,指定用于认证的密钥的类型,其值可为0x0a或者0x0b/ psw,指示用于认证的密钥的值的起始地址/出口参数: des_data,指示用于存放读取的数据的起始地址/ des_len,指示用于存放返回读取数据长度的起始地址/返回值: 返回-2,尚未寻卡/ 返回-1,传入参数错误/ 返回0,通信失败/ 返回1,操作成功/ 返回0xff,操作失败/说明: pswtype用于指于认证密钥为A密钥或为B密钥,对应A密钥pswtype必/ 须为0x0a,对应B密钥pswtype必须为0x0b。/(5)写块int write_block(int block,int page,unsigned char pswtype,unsigned char *psw,unsigned char *src_data,int src_len)/功能: 往一个块写入指定的值/入口参数: page,指定要写入的块所在的扇区/ block,指定要写入的块的块号/ pswtype,指定用于认证的密钥的类型,其值可为0x0a或者0x0b/ psw,指示用于认证的密钥的值的起始地址/ src_data,指示用于存放要写入的数据的起始地址/ src_len,指示用于存放返回写入数据的长度/出口参数: / /返回值: 返回-2,尚未寻卡/ 返回-1,传入参数错误/ 返回0,通信失败/ 返回1,操作成功/ 返回0xff,操作失败/说明: pswtype用于指于认证密钥为A密钥或为B密钥,对应A密钥pswtype必/ 须为0x0a,对应B密钥pswtype必须为0x0b。/(6)读余额int read_account(int page,int block,unsigned char pswtype,unsigned char *psw,LONG* account)/功能: 从指定的块里读取钱包的余额(在调用该函数前必须确保钱包已初始化)/入口参数: page,指定钱包所在的扇区/ block,指定钱包所在的块的块号/ pswtype,指定用于认证的密钥的类型,其值可为0x0a或者0x0b/ psw,指示用于认证的密钥的值的起始地址/出口参数: account,指示用于存放要读取的余额的起始地址/返回值: 返回-2,尚未寻卡/ 返回-1,传入参数错误/ 返回0,通信失败/ 返回1,操作成功/ 返回0xff,操作失败/说明: pswtype用于指于认证密钥为A密钥或为B密钥,对应A密钥pswtype必/ 须为0x0a,对应B密钥pswtype必须为0x0b。/ 读余额前必须确保参数指定的扇区和块已初始化为钱包,否则可以通过调/ 用write_account()函数来初始化为钱包/(7)写余额(初始化)int write_account(int page,int block,unsigned char pswtype,unsigned char *psw,LONG account)/功能: 往钱包写入指定的值/入口参数: page,指定钱包所在的扇区/ block,指定钱包所在的块的块号/ pswtype,指定用于认证的密钥的类型,其值可为0x0a或者0x0b/ psw,指示用于认证的密钥的值的起始地址/ account,指示用于要写入的值/出口参数: / /返回值: 返回-2,尚未寻卡/ 返回-1,传入参数错误/ 返回0,通信失败/ 返回1,操作成功/ 返回0xff,操作失败/说明: pswtype用于指于认证密钥为A密钥或为B密钥,对应A密钥pswtype必/ 须为0x0a,对应B密钥pswtype必须为0x0b。/(8)加余额int add_account(int page,int block,unsigned char pswtype,unsigned char *psw,long addAccount)/功能: 往钱包加上指定的值/入口参数: page,指定钱包所在的扇区/ block,指定钱包所在的块的块号/ pswtype,指定用于认证的密钥的类型,其值可为0x0a或者0x0b/ psw,指示用于认证的密钥的值的起始地址/ addAccount,指示用于要往钱包加上的值/出口参数: / /返回值: 返回-2,尚未寻卡/ 返回-1,传入参数错误/ 返回0,通信失败/ 返回1,操作成功/ 返回0xff,操作失败/说明: pswtype用于指于认证密钥为A密钥或为B密钥,对应A密钥pswtype必/ 须为0x0a,对应B密钥pswtype必须为0x0b。/(9)减余额int sub_account(int page,int block,unsigned char pswtype,unsigned char *psw,long subAccount)/功能: 往钱包减去指定的值/入口参数: page,指定钱包所在的扇区/ block,指定钱包所在的块的块号/ pswtype,指定用于认证的密钥的类型,其值可为0x0a或者0x0b/ psw,指示用于认证的密钥的值的起始地址/ subAccount,指示用于要减去的值/出口参数: / /返回值: 返回-2,尚未寻卡/ 返回-1,传入参数错误/ 返回0,通信失败/ 返回1,操作成功/ 返回0xff,操作失败/说明: pswtype用于指于认证密钥为A密钥或为B密钥,对应A密钥pswtype必/ 须为0x0a,对应B密钥pswtype必须为0x0b。/3.2 适用于符合ISO/IEC14443A标准的CPU卡的接口函数3.2.1 CPU卡片特性 符合ISO/IEC14443A标准 工作频率为13.56MHz 内置MCU与COS(chip operating system) 支持DES/3DES算法,高安全性 存在文件系统,支持多种格式的存储 交易流程规范化3.2.2 函数使用注意事项该二次开发接口提供函数的功能为:下发命令至读写器,再由读写器转发相应的命令至CPU卡,由CPU卡进行相应的处理,并将处理结果通过读写器上传至上位机程序。在卡片进行操作之前,必须进行复位,使卡片处于激活状态。交易结束后,使用DESELECT命令使卡片处于HALT状态。3.2.3 函数说明(1)复位bool card_reset()/功能: 对CPU卡进行复位,完成寻卡、防冲突和选卡功能,操作成功后卡片处于/ 激活状态/入口参数: /出口参数: / /返回值: 返回-1,传入参数错误/ 返回0,操作或通信失败/ 返回1,操作成功/ /说明: 在对卡片发送应用命令前,必须先进行复位,复位成功后才能进行后续操/ 作。复位操作的前提是卡片处于非激活状态。/(2)发送应用命令bool app_command(int comm_len, unsigned char *comm, int *resp_len, unsigned char *resp)/功能: 传输应用命令至卡片,由卡片的COS处理后返回数据/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年哈尔滨医科大学公开招聘工作人员241人笔试模拟试题及答案解析
- 2025福建福州市光明港公园管理处基建科外业工作人员招聘1人笔试参考题库附答案解析
- 2025广西南宁市青秀区凤岭北路中学工勤招聘笔试备考试题及答案解析
- 2025年大庆油田有限责任公司秋季招聘(600人)笔试备考题库及答案解析
- 2025年度济南市工会社会工作专业人才联合招聘(47人)笔试模拟试题及答案解析
- 2025重庆销售分公司秋季高校毕业生招聘30人笔试参考题库附答案解析
- 2025青海海西州州本级公益性岗位招聘52人笔试模拟试题及答案解析
- 快递代理合作协议范本与操作指南
- 2026国家能源集团榆林化工煤制油重大项目筹建处招聘岗位(74人)笔试模拟试题及答案解析
- 2025年健康食品行业市场趋势分析报告
- 2025至2030中国血液辐照器行业项目调研及市场前景预测评估报告
- 九上第19课:法国大革命和拿破仑帝国-
- 2025年民航维修考试题库及答案
- 医院电梯司机安全培训课件
- 云南省烟草公司2025秋招网申-申论题模板及答案
- 2024年中国农业银行浙江省分行招聘真题
- 医院拆除工程方案范本(3篇)
- 11.3.2 两数和(差)的平方 课件 华东师大版数学八年级上册
- 污水处理厂二次污染防治方案
- 第6课 从小爱科学 第1课时(课件)2025-2026学年道德与法治三年级上册统编版
- 广东省上进联考2025-2026学年新高三秋季入学摸底考试生物(含答案)
评论
0/150
提交评论