USB免驱RFID读写器编程解析之一:智能卡篇
随着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)
(转载请注明出处: 友我科技网站 http://www.youwokeji.com.cn)
USB免驱RFID读写器编程解析之一:智能卡篇的更多相关文章
- RFID 读写器 Reader Writer Cloner
RFID读写器的工作原理 RFID的数据采集以读写器为主导,RFID读写器是一种通过无线通信,实现对标签识别和内存数据的读出和写入操作的装置. 读写器又称为阅读器或读头(Reader).查询器(Int ...
- C++ MFC实现基于RFID读写器的上位机软件
C++ MFC实现基于RFID读写器的上位机软件 该博客涉及的完整工程托管在https://github.com/Wsine/UpperMonitor,觉得好请给个Star (/▽\=) 运行和测试环 ...
- 技巧.【转】在虚拟机Vmware中使用HID设备(如USB免驱键盘)
ZC:我的环境:Win7x64.VMware10 ZC:我的处理: ZC: (1).usb.generic.allowHID = "TRUE" (本来就有,将它的位置提前) ZC: ...
- Google Chome浏览器下如何开发UHF读写器
google Chrome浏览器不支持ocx,也就不能通过ocx来连接UHF读写器,只能使用RFID读写器云服务插件,通过javascript语言来连接和操控UHF读写器YW-602H.RFID读写器 ...
- IC卡接口芯片TDA8007的读写器设计
摘要:阐述T=0传输协议,给出IC卡读写器中使用的IC卡APDU指令流程和原理框图:重点介绍其中的IC卡接口芯片Philips的TDA8007,给出通过TDA8007对CPU IC卡上下电过程.具体程 ...
- NFC应用(二)读写器模式
NFC第二种应用场境就是所谓的读写器模式.既然有卡,当然就会有读写器,这两种模式是配合在一起使用的.两个卡放一起不能通信,两个读写器模式的设备也不能通信. NFC读写器一般支持以下一种或多种协议:Mi ...
- usb免驱动摄像头实验
1.编译openwrt系统内核使它支持usb,进入在/openwrt/trunk上执行make menuconfig 2.1). 添加USB 相关支持Kernel modules —> USB ...
- PC/SC双界面读写器开发指南
友我科技PCSC双界面读写器YW-606开发指南 1.建立资源管理器的上下文 函数ScardEstablishContext()用于建立将在其中进行设备数据库操作的资源管理器上下文(范围). 函数原型 ...
- Android NFC M1卡读写&芯片卡读写(CPU卡读写)(RFID读写)
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/sgn5200/article/detai ...
随机推荐
- Java_垃圾回收算法
参考:<深入理解JAVA虚拟机>第二版 3.3 垃圾收集算法 由于垃圾收集算法的实现涉及大量的程序细节,而且各个平台的虚拟机操作内存的方法又各不相同,只是介绍几种算法的思想及其发展过程. ...
- win10环境下为mongoDB创建用户并认证登录
一.配置mongoDB的bin目录到环境变量中的path;例如:D:\DatabaseService\MongoDB\Server\4.0\bin 二.cmd打开控制台,然后输入mongo回车,可以进 ...
- 【译】如何使用docker-compose安装anchore
如何使用docker-compose安装anchore,本篇译自Install with Docker Compose. Preface 在本节中,您将学习如何启动和运行独立的Anchore引擎安装, ...
- 设计模式(含UML、设计原则、各种模式讲解链接)
一.统一建模语言UML UML是一种开放的方法,用于说明.可视化.构建和编写一个正在开发的.面向对象的.软件密集系统的制品的开放方法 UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进 ...
- default(T);
在泛型类型中,由于泛型类型即可以是引用类型也可以是值类型,所以不能用null来表示默认值.这里通过default来进行.引用类型的default将泛型类型初始化null,值类型的default将泛型类 ...
- .NET开源类库Nini手册(INI、XML、注册表的配置应用)-中文翻译
目录 1.简介 1.1什么是应用程序配置数据? 1.2问题 1.3介绍Nini 2.入门 2.1一个简单的例子 2.2默认值 2.3设置.保存和删除键 2.4添加和删除配置 2.5键值扩展 3.高级主 ...
- Flipcart 爬取流程
第一步:爬取分类url from requests_html import HTMLSession session =HTMLSession() #https://www.flipkart.com/l ...
- Prism_ViewModelLocator(5)
ViewModelLocator ViewModelLocator用于绑定视图的DataContext,以使用标准命名约定的一个ViewModel的实例. Prism ViewModelLocator ...
- angular cli + primeNG
目录: 1.安装 angular cli 2.创建项目 3.构建路由 4.新建组件 5.组件之间的通信 6.引入primeNG 7.修改primeNG组件样式 8.问题 -------------- ...
- (草稿)如何判断一名UiPath开发人员是否合格?
一名合格的UiPath开发人员究竟需要具备什么核心技能?业务梳理?沟通技巧?VB.net吗?VBA吗?Python?还是SQL?出于多种原因,关于这一点总是众说纷纭,莫衷一是.尽管这些技术都算沾边,但 ...