RF射频卡的介绍与与手机NFC的通信

xiaoxiao2021-02-28  213

1、简单介绍

射频卡的8K位EEPROM分为16个扇区,每扇区由四块组成,每块由16个字节。每个扇区的四块中的块三(第四块)包含了该扇区的KEYA(6字节)、存取控制(4字节)和KEYB(6字节),其余的三块位数据块。在0块至63块中,0块为固化块,其中有厂家代码等特殊内容。它广泛应用在身份鉴别、信用鉴别、自动化控制、安全防范等领域,其安全性、保密性,实用性是目前各种通用防范电路无法比拟的。 射频卡是一种无源内藏特殊密匙数码的密码卡,它利用双向无线电射频技术,完成卡的数码识别,亦即代表了持卡人的身份和相关信息。它的基本工作原理并不复杂,标签进入磁场后,接收解读器发出的射频信号,凭借感应电流所获得的能量发送出存储在芯片中的产品信息,或者由标签主动发送某一频率的信号,解读器读取信息并解码后,送至中央信息系统进行有关数据处理。

2、介绍S70卡

该射频卡有40个扇区,4K字节 前面32个扇区中,每个扇区有4块,每块16个字节 后8个扇门中,每个扇区有16个数据块,每块有16字节 0扇区同样不保存数据,只有1-15块中保存数据 总计算可以有效保存31*48+8*240=3408字节(最后一块不使用) 扇区1-31作为POS(系统软件)写入区 扇区32-39作为表计返写区

3、逻辑数据地址映射

S70卡每个扇区由数据块和控制块组成,实际用来存储数据的空间是不连续的。 因此对各扇区的数据块进行映射转换,定义逻辑上连续的数据存储空间。 它分为0-31为小扇区 32-39大扇区 S70卡根据保存属性分为三个区域: 卡信息区、写入区、反写区 扇区1位信息区、2-31写入区、32-39返写区 扇区1由POS制卡时写入 读卡过程 :读取信息区内容-->验证--->读取后续写入区

4、POS写入区

扇区2-31为写入区 包含三类数据: 1、充值token/修改密钥token 2、POS需要设置到表计的参数: 计量、价格、预付费、友好时段、STS密钥、参数密钥 3、POS需要从表计获取数据: 所有参数、表计充值记录、计量信息、充值信息、状态信息、事件及告警信息

5、表计返写区

扇区32-39位表计返写区 数据: 1、充值、修改密钥的结果代码 2、设置参数结果代码 3、POS指定读取的数据项目 4、表计主动返写最近产生的时间记录

6、密钥及控制字

所有卡所有扇区控制字固定为 08778F69 KeyA 只读,KeyB读写 KeyA 固定为0x524443415244(左边高字节) KeyB 固定为0x12DEF3456789(左边高字节)

7、表计参数密钥管理

系统根密钥产生算法(AES加密算法 、STA算法)

密文由 根密钥明文和POS代码混合加密生成 1-16字符根密钥明文 1-16字符POS代码 根密钥明文= 加密密码= 根密钥明文.PadLeft(16, ‘0’) POS代码.PadLeft(16, ‘0’) 根密钥密文= AES(根密钥明文, 加密密码) 16字节根密钥密文

8、NFC在android中的使用

android SDK中有三种NDEF数据的操作 1、从NFC便签中读取NDEF格式的数据 2、向NFC便签中写入NDEF格式的数据 3、通过android Beam技术奖NDEF数据发送到另一个NFC设备中 NFC三重过滤机制 1、NDEF_DISCOVERED 只过滤固定格式的NDEF的数据,比如文本指定协议(HTTP FTP SMB等)URI 2、TECH_DISCOVERED 当ACTION_NDEF_DISCOVERED指定的过滤机制无法匹配Tag时,就会使用这种过 滤机制进行匹配,这种过滤机制并不是通过Tag的数据进行匹配的,而是根据 Tag支持的数据存储格式进行匹配,因此这种机制使用范围很广 3、TAG_DISCOVERED 如果将NFC的过滤机制看成if….else…if….语句的话,那么这种机制相当于 else语句,前面两种都失败了之后,就会用这个来处理了,这种机制用来处理未 识别的Tag eg: <intent-filter> <!--指定NDEF_DISCOVERED--> <action android:name="android.nfc.action.TECH_DISCOVERED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <meta-data android:name="android.nfc.action.TECH_DISCOVERED" android:resource="@xml/nfc_tech_filter" /> 限制设备: <uses-feature android:name="android.hardware.nfc" android:required="true"/> 权限: <uses-permission android:name="android.permission.NFC" />
转载请注明原文地址: https://www.6miu.com/read-17637.html

最新回复(0)