Mifare UltraLight又称为MF0,从UltraLight(超轻的)这个名字就能够看出来,它是一个低成本、小容量的卡片。低成本,是指它是目前市场中价格最低的遵照ISO14443A协议的芯片之一;小容量,是指其存储容量只有512bit(Mifare S50有8192bit)。html
Mifare UltraLight的512bit存储容量分红16个Page,每一个Page包含4个字节,以下图所示:url
Page0和Page1以及Page2的第1个字节是卡片的7字节序列号及其校验字节,其中BCC0=0x88⊕SN0⊕SN1⊕SN2,BCC1=SN3⊕SN4⊕SN5⊕SN6,SN0是制造商代码,因为Mifare UltraLight是NXP公司出品,于是SN0固定为04H。Page2的第2个字节Internal做为内部数据保留。以上共10个字节出厂时固化在存储区内,用户没法更改。spa
Page3是一次性烧录(One Time Programmable,OTP)页,该页的内容在卡片出厂时所有被写为“0”,用户使用时只能把某一位的内容写为“1”,而永远也不能把“1”写为0,也就是说,新写入的4字节内容与卡内原来的 内容进行异或,异或后的结果存储在卡片中。3d
Page4-Page15是可读写的用户数据区,出厂时其内容初始化为0,用户能够任意读写。htm
Page2的第3和第4个字节用于将存储区锁定为只读。以下图所示,L4-L15的某一位设置为1,则对应序号的Page内容锁定为只读,每个Page均可以单独设置。Lotp用于锁定Page3为只读。“螳螂捕蝉,黄雀在后”,Lotp-L15能够锁定别人,这些位自己又被三个BL位锁定,BL15-10用于锁定L15-L10,BL9-4用于锁定L9-L4,BLotp用于锁定Lotp。全部的这16个锁定位也具备OTP特性,通俗的讲就是这些“锁”没有“钥匙”,一旦锁死就再也改不回来了,因此锁定时必定要当心。blog
Mifare UltraLight的读写操做和 Mifare S50是彻底兼容的,这里的“兼容”是指两者可使用同一个读卡器硬件,同一套软件。固然若软硬件彻底相同就不是两种卡了,两者的区别主要体如今软件操做上,包括如下4个方面:get
一是Mifare UltraLight的卡序列号有7个字节,而Mifare S50的卡序列号只有4个字节,所以在卡片防冲突选择阶段须要两层(Cascade,93H和95H)操做;it
二是Mifare UltraLight没有密码,不须要验证;软件
三是Mifare UltraLight的Page至关于Mifare S50的BLOCK,所以Mifare UltraLight有16个BLOCK,且每一个BLOCK只有4个字节,而Mifare S50有64个BLOCK,每一个BLOCK有16个字节;硬件
四是Mifare UltraLight没有电子钱包功能。
基于以上四点,在Mifare S50的程序中在卡请求命令成功执行后,若是判断卡类型字节为Mifare UltraLight(0044H),则在以后的操做中增长第二层防冲突选择,卡选择成功后直接对卡片的0-15块进行读写操做,每次读写只关注前4个字节,不使用电子钱包功能,这样就能够两种卡片彻底兼容了。
Mifare UltraLight适合一次性、不须要回收的低成本的电子票证、景区门票等场合的解决方案,听说推出Mifare UltraLight的原本目的是想与125KHz的ID卡竞争,并做为磁条卡的替代方案。从目前的状况看,Mifare UltraLight与ID卡的竞争状况并不乐观,而磁条卡的替代品也大可能是ID卡。