随着RFID应用的普及,越来越多的软件工程师需要使用RFID读写器编程来实现自己的需求。为了使软件工程师更快的了解RFID读写器的使 用,本文选择一款市面上常用的USB免驱RFID读写器SDT-HA来做解析。USB免驱一般是使用USB HID接口,因为windows系统本身带有HID接口的驱 动,所以不需要单独发布驱动程序。

要编写RFID读写器的程序,先必须了解RFID读写器读写的卡的内存结构。现在广泛使用的是以M1(S50)卡及其兼容卡为代表的智能卡,以 下将详细介绍S50卡的内存结构。

标准S50智能卡有8Kbits内存,相当于1K字节,实际可以用来的存储数据的有752字节,为什么会缩水,在稍后的内存介绍中将会解释。

标准S50智能卡有16个扇区,每个扇区有4块,每块有16个字节。这全部算下来就是16*4*16=1024字节(1K)。由于块是卡结构的最小管理 单位,所以我们在读写这张卡的时候就是按照块来操作的,就是说必须是16个字节。每4个块组成了一个扇区单元,组成扇区单元的目的就是为 了管理卡的密钥,也就是卡的密钥和扇区是对应的。有16个扇区,也就有16组密钥各自独立的工作着。某组密钥只是对这个扇区(4个块)管用 ,与其他的扇区无关。这种设计可以使此智能卡可以同时作多达16种不同的应用。

每个扇区的密钥都存放在该扇区的最后一块,占用了一个单独的块。密钥分为A密钥和B密钥,关于密钥可以参见文章《关于S50卡密钥A和密钥B》

第0扇区的第0块用于保存序列号等相关数据,是只读的,不能写入任何数据。如果我们按照顺序定义块,那么块号就是从0到63。0到3块 为第0扇区,4到7块为第1扇区,依此类推,第60到63块为第15扇区。其中第0块是只读的,第3块,7块....第63块全部是密钥块,不能用来保存 数据, 所以总的可以保存数据的块为16*3-1=47块,共47*16=752字节。

(转载请注明出处: 友我科技网站 http://www.youwokeji.com.cn)

最新版RFID读写器产品手册下载

(转载请注明出处: 友我科技网站 http://www.youwokeji.com.cn)

最新版RFID读写器产品手册下载

USB免驱RFID读写器编程解析之一:智能卡篇的更多相关文章

  1. RFID 读写器 Reader Writer Cloner

    RFID读写器的工作原理 RFID的数据采集以读写器为主导,RFID读写器是一种通过无线通信,实现对标签识别和内存数据的读出和写入操作的装置. 读写器又称为阅读器或读头(Reader).查询器(Int ...

  2. C++ MFC实现基于RFID读写器的上位机软件

    C++ MFC实现基于RFID读写器的上位机软件 该博客涉及的完整工程托管在https://github.com/Wsine/UpperMonitor,觉得好请给个Star (/▽\=) 运行和测试环 ...

  3. 技巧.【转】在虚拟机Vmware中使用HID设备(如USB免驱键盘)

    ZC:我的环境:Win7x64.VMware10 ZC:我的处理: ZC: (1).usb.generic.allowHID = "TRUE" (本来就有,将它的位置提前) ZC: ...

  4. Google Chome浏览器下如何开发UHF读写器

    google Chrome浏览器不支持ocx,也就不能通过ocx来连接UHF读写器,只能使用RFID读写器云服务插件,通过javascript语言来连接和操控UHF读写器YW-602H.RFID读写器 ...

  5. IC卡接口芯片TDA8007的读写器设计

    摘要:阐述T=0传输协议,给出IC卡读写器中使用的IC卡APDU指令流程和原理框图:重点介绍其中的IC卡接口芯片Philips的TDA8007,给出通过TDA8007对CPU IC卡上下电过程.具体程 ...

  6. NFC应用(二)读写器模式

    NFC第二种应用场境就是所谓的读写器模式.既然有卡,当然就会有读写器,这两种模式是配合在一起使用的.两个卡放一起不能通信,两个读写器模式的设备也不能通信. NFC读写器一般支持以下一种或多种协议:Mi ...

  7. usb免驱动摄像头实验

    1.编译openwrt系统内核使它支持usb,进入在/openwrt/trunk上执行make menuconfig 2.1). 添加USB 相关支持Kernel modules —> USB ...

  8. PC/SC双界面读写器开发指南

    友我科技PCSC双界面读写器YW-606开发指南 1.建立资源管理器的上下文 函数ScardEstablishContext()用于建立将在其中进行设备数据库操作的资源管理器上下文(范围). 函数原型 ...

  9. Android NFC M1卡读写&芯片卡读写(CPU卡读写)(RFID读写)

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/sgn5200/article/detai ...

随机推荐

  1. JS---DOM---为元素绑定事件和解绑事件的兼容代码

    1. 绑定事件的兼容 function addEventListener(element,type,fn) { if(element.addEventListener){ element.addEve ...

  2. 【译】ModSecurity事务生命周期

    本篇简要介绍ModSecurity Transaction Lifecycle,也即ModSecurity的事务生命周期. Transaction Lifecycle In ModSecurity, ...

  3. jQuery使用工具集

    //jq-util.js$.extend({ Util:{ /* 浏览器 */ browser:{ IE: !!document.all, IE6: !!document.all && ...

  4. Leetcode刷题笔记(Python 找出所有相加之和为n的k个组合,组合中只允许含有1-9的正整数,并且每种组合中不存在重复的数字。)

    eg:输入:k=3,n=9 输出: [[1,2,6],[1,3,5],[2,3,4]] 输入:k=2,n=5 输出:[[1,4][2,3]] #!/usr/bin/env python # -*- c ...

  5. Graylog 环境搭建与使用

    graylog 官网地址: www.graylog.org graylog 简易架构图: graylog 生产架构图: graylog 有两个版本,1.企业版:2.开源版 下面使用开源版本搭建日志中心 ...

  6. Java 9 ← 2017,2019 → Java 13,来看看Java两年来的变化

    距离 2019 年结束,只剩下 33 天了.你做好准备迎接 2020 年了吗? 一到年底,人就特别容易陷入回忆和比较之中,比如说这几天的对比挑战就火了! 这个话题登上了微博的热搜榜,也刷爆了朋友圈, ...

  7. Spring Boot 2.X 国际化

    国际化文件的编写 messages.properties init project 7月前 messages_en_US.properties init project 7月前 messages_zh ...

  8. SpringCloudConfig对称加密 yml配置文件while parsing a block mapping

    错误的配置!!! #-----------------db------------------ mybatis: type-aliases-package: com.book.product.pojo ...

  9. Consul初探-集成ocelot

    前言 由于 Consul 的高可用性.丰富的API.友好的 Web 控制台界面等特点,Consul 的发展非常迅猛,得益于 .NETCore 社区的快速发展和社区成员的贡献,我们现在可以非常方便快速的 ...

  10. 【Cef编译】 CefSharp编译失败,检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”

    编译CefSharp生成后一个libcef_dll_wrapper.lib时,供CefSharp使用.结果CefSharp编译的时候报错.遇到以下异常: libcef_dll_wrapper.lib( ...