[Datasheet S50卡]NXP S50卡读写细节说明

本文详细介绍了NXP S50卡(M1卡)的通讯过程、安全管理、EEPROM特性,以及读写操作中的三次身份认证流程。内容包括扇区结构、存储布局、访问权限和操作命令示例,提供了理解和开发此类射频卡的实用信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

S50卡也成为M1卡,可以理解为一个带射频功能的EEPROM,可以存储1KByte的卡片,分为16个区;

1、通讯过程

通过射频芯片提供能量给卡片,卡片供电后可以支持读写命令,加减值命令等;框图如下:

图片

2、安全管理

2.1 制造商为每个设备编程了7字节UID或4字节NUID标识符

2.2 随机ID支持

2.3 相互三通身份验证(ISO/IECDIS9798-2)每个扇区单独设置两个密钥,以支持具有密钥层次结构的多应用程序

3、EEPROM

3.1 1kB,由4个块中的16个扇区组成(一个块由16个字节组成)

3.2 每个内存块的用户可定义的访问条件

3.3 数据保留时间为10年

3.4 支持200000次擦写

4、系统框图

图片

5、通讯流程

5.1 防碰撞检测

同时有多张卡靠近读卡器,会检测到多个卡号;

5.2 选卡

选择其中的一个卡号,进行定向通讯;

5.3 三次身份认证

秘钥认证后才能进行卡片的操作,每个存储器有A、B两组秘钥,其中B秘钥的权限能够完全覆盖A秘钥;可以修改A秘钥的内容;

5.4 进行卡的操作,读、写、存储、加值、减值

读写数据与加值和减值的区别,在于卡片协议的定义,读写数据只是对卡片的某个字节进行读写;

加减值操作,对存储的格式,卡片会做特殊处理;后续会讲;

图片

6、三次认证秘钥流程

6.1 读取器指定要访问的扇区,并选择键A或B

6.2 从扇区中读取密钥和访问条件。然后卡片发送一个数字给读卡器认证(通过一个)。

6.3 使用密钥和其他输入来计算响应。响应,连同来自阅读器的随机认证,然后被传输到卡(通过两个)。

6.4 卡片通过与自己的认证进行比较来验证读卡器的反应,然后计算对认证的反应并将其传输(通过三次)。

6.5 读卡器器通过将卡片与自己的认证进行比较来验证卡片的响应。

认证完成后,读卡器与卡片之间的通讯会被加密。

7、存储

1024×8位EEPROM内存分为4个块的16个扇区。一个块包含16个字节。

图片

7.1厂商信息块

图片

7.2 数据块

每个扇区有3个数据块,分为读写块和值块;值块用于电子钱包,公交卡等,里面的金额进行加减值操作;

值块只能通过值块格式的写入操作生成值块:

值:表示已签名的4字节值。值的最低有效字节存储在最低地址字节中。负值以标准的2´补体格式存储。由于数据完整性和安全性,一个值存储三次,两次非倒置,一次倒置。

Adr:表示在实现强大的1字节备份管理时,可用于存储块的存储地址。地址字节存储四次,两次倒,非倒。在增量、递减、恢复和传输操作的过程中,地址保持不变。它只能通过写命令来更改。

图片

根据这个图可以看出,值块能够存储的数据最大4个字节;内部存储格式有校验,04存储正常值,47存储取反数据,8~11存储正常值;地址也有存储,上面画横线的就是取反值;

图片

7.3 扇区控制器

每个扇区的块3为整个扇区的秘钥区,存储A、B的秘钥内容;

图片

操作类型主要分为:

图片

图片

访问权限

图片

通过状态位做识别

图片

看着是不是有点晕呢,还有这些状态位如果生成了,如何搞成16进制呢,计算总感觉有点麻烦。这个时候就会想到工具。还真有人做出了这个工具。

图片

8、操作命令

图片

图片

每个命令手册都给出了示例:

比如:读取厂商ID

图片

让读卡器安装这个报文发送,卡片就会返回对应的报文;

还可以通过手机,安装NXP公司的软件taginfo,前提是有NFC功能。
可以读取卡片中的内容做验证,方便开发。

在这里插入图片描述

支持文件导出,xml格式

在这里插入图片描述

更多linux知识点推荐:

【Linux文件系统】NFS文件系统如何生效

[Linux文件系统]文件系统的反解压操作镜像生产原始目录

[Linux字符驱动] DIDO 74HC595实现遥控遥信功能

[linux字符驱动]Watchdog如何躲过linux的启动时间

[Linux字符驱动] LED点灯试验

[Linux 驱动]模块加载RTX8025驱动

[linux kernel] 内核下RX8025对接系统时钟

[linux kernel]内核启动阶段控制IO口时序输出

[职场吐槽]如何缓解焦虑

[linux kernel] 内核下ksz8081驱动调试

[linux kernel] 内核下ksz9031驱动调试

[linux kernel]内核图形化裁剪配置

[linux kernel]内核移植过程记录

[linux kernel] 内核启动流程梳理

[linux 底层]u-boot EMMC驱动

[linux 底层]u-boot图形化裁剪配置

[Linux 底层]U-boot ksz9031网络驱动调试

[Linux 底层]U-boot调试命令使用技巧

[Linux 底层]U-boot编译移植

[Linux 底层]U-boot烧录脚本介绍SecureCRT

[Linux 底层]bootstrap移植裁剪及编译

[Linux 底层] 平台软件分层介绍

[Linux 驱动] RS485测试程序编写

[Linux 驱动] CAN测试程序编写

推荐阅读:

芯片手册解读 | Linux底层 | 职场吐槽 | C语言视频

关注微信公众号,回复“S50资料”,下载数据手册及工具软件。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值