1、S50(M1)卡基础知识
1.每张卡有唯一的序列号,32位(bit)。
2.卡的容量是8Kbit的EEPROM。
3.分为16个扇区,每个扇区分为4块,每块16个字节,以块为存取单位。
4.每个扇区都有独立的两组密码和访问控制权限。
2、内部信息扇区0的块0用来固化厂商代码。
每个扇区的块3作为控制块,存放:密码A(6字节)、存取控制(4字节)、密码B(6字节)。
每个扇区的块0、1、2作为数据块,其作用如下:
1.作为一般的数据存储,可以对其中的数据进行读写操作;
2.用作数据值,可以进行初始化值、加值、减值、读值操作。
3、存取控制
每个扇区的密码和存取控制都是独立的,存取控制是4个字节,即32位(在块3中)。每个块都有存取条件,存取条件是由密码和存取控制共同决定的。每个块都有相应的三个控制位,这三个控制位存在于存取控制字节中,相应的控制位决定了该块的访问权限,控制位如图:
就是说,每个扇区的所有块的存取条件控制位,都放在了该扇区的块3中,如图:
4、数据块的存取控制对数据块,与就是块0、1、2的存取控制是由对应块的控制位来决定的:
表中A/B表示密码A或密码B,N表示任何条件下都不能实现。
如:当块0的存取控制位C10C20C30=100时:
验证密码A或密码B正确后可读取;验证密码B正确后可写,不能进行增值、减值操作。
从表中得知:对数据块的存取控制,由于存取控制由三个控制位所决定,所以相应的访问条件就产生了8种。 要想对数据块进行操作,首先要看该数据块的控制位是否允许对数据块的操作,如果允许操作,再看需要验证什么密码,只有验证密码正确后才可以对该数据块执行相应操作。 一般密码A的初始(默认)值都是0xFF078069。
对应的控制位:
5、控制块的存取控块3(控制块)的存取操作与数据块不同,如图:
如:当块3 的存取控制位C13C23C23=001时:
密码A:不可读取,验证密码A或密码B正确后,可写;
存取控制:验证密码A或密码B正确后,可读取,可写;
密码B:验证密码A或密码B正确后,可读取,可写。
其默认的数制控制和控制块的控制如下:
6、工作原理电气部分: 卡片的电气部分由一个天线和一个芯片组成。
天线:就是几组绕线的线圈,体积小。
芯片:已经封装在芯片内 ASIC(专用集成电路,是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路)。 目前用CPLD(复杂可编程逻辑器件)和 FPGA(现场可编程逻辑阵列)来进行ASIC设计是最为流行的方式之一,它们的共性是都具有用户现场可编程特性,都支持边界扫描技术,但两者在集成度、速度以及编程方式上具有各自的特点,这样理解,ASIC就是卡片特点的一个集成电路。 卡片的ASIC包含了一个高速(106KB)的RF接口、一个控制单元、一个8K的EEPROM
工作过程: 读卡器会向M1卡发送一组固定频率的电磁波,卡片内有一个LC串联谐振电路,其工作频率与读卡器发送的电磁波频率相同,遂在电磁波的激励下,LC串联谐振电路会发生共振,从而使电容内产生电荷,在电容的另一端接有一个单向导电的电子泵,电子泵将产生的电荷转移到另一个电容中存储。当存储电容中的电荷达到2V的时候,此时电容就作为电源为其他电路提供工作电压,所以卡片就可以向读卡器发送数据,或者从读卡器接收数据,实现了读卡器与卡片的通信。
7、M1与读卡器的通信通信的流程图如示:
复位应答(Request) M1卡的通信协议和通信波特率是定义好的,当有卡片进入读卡器的工作范围时,读卡器要以特定的协议与卡片通信,从而确定卡片的卡型。
防冲突机制(AnticollisionLoop) 当有多张卡片进入读写器操作范围时,会从中选择一张卡片进行操作,并返回选中卡片的序列号。
选择卡片(SelectTag) 选择被选中的卡的序列号,并同时返回卡的容量代码。
三次相互确认(3 Pass Authentication) 选定要处理的卡片后,读写器就要确定访问的扇区号,并且对扇区密码进行密码校验。在三次互相认证后就可以通过加密流进行通信。每次在选择扇区的时候都要进行扇区的密码校验。
对数据块的操作:读(Read):读一个块的数据;写(Write):在一个块中写数据;增值(Increment):对数据块中的数值进行加值;减值(Decrement):对数据块中的数值进行减值;传输(Transfer):将数据寄存器中的内容写入数据块中;中止(Halt):暂停卡片的工作;
二、