九游娱乐(China)官方网站使用场景较少导致市面上很少有撑抓这类卡的读写开发-九游娱乐(China)官方网站
新闻资讯

你的位置:九游娱乐(China)官方网站 > 新闻资讯 >

九游娱乐(China)官方网站使用场景较少导致市面上很少有撑抓这类卡的读写开发-九游娱乐(China)官方网站

发布日期:2024-11-09 04:15    点击次数:172

FeliCa是Sony所开发出来的非构兵式IC卡期间。称呼由英语中代表“幸福”的 "Felicity" 和 "Card"(卡片)组合而成,是Sony的注册商标。FeliCa 是为了非构兵式IC卡而开发出来的通讯期间。非构兵式IC卡由读写时送出的载波涵养而供给电力,由载波的调变与卡片读写换取。举例 ISO 14443 type B,使用ASK10%调变,及NRZ编码。与此比较,FeliCa的调变雷同是 ASK10%,但不同的是聘任曼彻斯特编码。

开头被提案为 ISO 14443 type C, 但未被采纳。之后,FeliCa和其向后相容样貌被门径化为 ISO 18092(Near Field Communication, NFC, 近距离通讯)。在日本国内,被算作 JICSAP IC卡规格 V2.0 “第四部分 高速处理用IC卡”和日本鉄说念サイバネティクス契约会的IC卡规格而给予门径化。

FeliCa和一般的IC卡雷同有适用于现款卡或识别卡的期间,但为了条件高速处理特质(自动充值开发、大楼收支管束等)或结帐(便利商店)等等的运用,将教唆集加以稀奇化。因此和 ISO 7816-3 的基本教唆并不相容。且 IC芯片里面的内存固定为16字节长的记载,因此和 ISO 7816-3规则的档案结构亦不相容。

加密处理方面,互相认证使用Triple DES,通讯使用DES或Triple DES。莫得公开密钥加密的规格。双模子式(构兵/非构兵)天然不错有公开密钥加密,但只在构兵通讯时使用。

互相认证时、缩退码被作为加解的密码来使用。不是说每一个花样个别认证、它是通过复数的探询码加密生成的键称为腐臭码,这个腐臭码最多可供16个花样使用。缩退码生不能正本的密码。这么,不裁汰安全级别的情况下终了高速化处理。相较于标签NFC期间来说,Felica显得有点“另类而独到”。因此,它的商场占有率低,使用场景较少导致市面上很少有撑抓这类卡的读写开发。

由于Felica卡在咱们这里基本上莫得被使用。是以,当今市面上撑抓Felica卡的智能卡读写器就比较少了。因此,诺塔斯智能科技有限公司为了匡助客户科罚读写Felica卡的周折,研发了一款撑抓多种契约的NFC读写器。

开头,它撑抓ISO14443 TYPE A、ISO14443 TYPE B和ISO15693等多种契约,不错与多种类型的非构兵式智能卡和电子标签进行通讯,从而知足用户在不同场景下的需求。

此外,诺塔斯L12-2823读写器提供了多种平台和多说话的二次开发包,包括丰富的函数接口和范例源码,使得用户在进行二次开发时大略轻便照搬范例,大大裁汰了开发难度,提升了开发服从。以下内容是对于基于Felica期间的NFC标签读写范例,供世界参考。

开头,运行化一下 unit LotusCardDriver;,这是里面界说了开发的多样参数,需要援用进来。windows环境中还需要援用LotusCardDriver.dll;这个文献分为32位和64位,这个要凭证我方花样运行的操作系统弃取正确的版块。

第一步,确立读写器与上位机开发的硬件通讯,这里咱们在使用windows操作系统的

电脑上进行演示。

{/**

* 绽放开发

*

* @param strDeviceName

* 串口开发称呼

* @param nVID

* USB开发VID

* @param nPID

* USB开发PID

* @param unRecvTimeOut

* 收受恭候长度

* @param nUsbDeviceIndex

* USB开发索引

* @return 句柄

*/}

function LotusCardOpenDevice(pszDeviceName:PAnsiChar;nVID, nPID, nUsbDeviceIndex, unRecvTimeOut:Integer;pExtendReadWrite:TLotusCardExtendReadWriteCallBackFunc):Integer;stdcall; external DLL_NAME;

第二步、树立读卡器的读卡类型,由于读写器撑抓多种卡类型,这里需要运行化卡类型。

/**

* 树立卡片类型

* @param nDeviceHandle

* 开发句柄

* @param cCardType 卡片类型 A='A'/'a' B='B'/'b' F='F'/'f' C='C'/'c'

* @return true = 得胜

*/}

function LotusCardSetCardType( nDeviceHandle:Integer; cCardType:AnsiChar):BOOL; stdcall; external DLL_NAME;

{ /**

* Felica寻卡

* @param nDeviceHandle

* 开发句柄

* @param unTimerSlot timer slot 0x00 0x01 0x03 0x07 0x0F

* @param tLotusCardParam 参数(读写缓冲)

* @return true = 得胜

*/}

function LotusCardFelicaPolling(nDeviceHandle:Integer; unTimerSlot:Byte; sttpLotusCardParam:PLotusCardParamStruct):BOOL; stdcall; external DLL_NAME;

{

第三步,引申读写卡函数

function LotusCardNfcVWriteNBlock(nDeviceHandle:Integer; unBlockIndex:DWORD; unBlockCount:DWORD; pUid:PByte; pBuffer:PByte; unBufferLength:DWORD):BOOL; stdcall; external DLL_NAME;

{ /**

* Felica寻卡

* @param nDeviceHandle

* 开发句柄

* @param pUid 参数 UID 8字节

* @param pPMM 参数 PMM

* @param pPSC 参数 Primary System Code

* @return true = 得胜

*/}

function LotusCardNfcFRequest(nDeviceHandle:Integer; pUid, pPMM, pPSC:PByte):BOOL; stdcall; external DLL_NAME;

{ /**

* Felica读卡

* @param nDeviceHandle

* 开发句柄

* @param unBlockIndex 参数 块索引

* @param pUid 参数 UID 8字节

* @param pBuffer 参数 缓冲

* @param punBufferLength 参数 缓冲长度 复返适度长度

* @return true = 得胜

*/}

function LotusCardNfcFReadBlock(nDeviceHandle:Integer; unBlockIndex:DWORD; pUid, pBuffer:PByte; punBufferLength:PDWORD):BOOL; stdcall; external DLL_NAME;

{ /**

* Felica读卡

* @param nDeviceHandle

* 开发句柄

* @param unBlockIndex 参数 块索引

* @param unBlockCount 参数 块数目

* @param pUid 参数 UID 8字节

* @param pBuffer 参数 缓冲

* @param punBufferLength 参数 缓冲长度 复返适度长度

* @return true = 得胜

*/}

function LotusCardNfcFReadNBlock(nDeviceHandle:Integer; unBlockIndex:DWORD; unBlockCount:DWORD; pUid, pBuffer:PByte; punBufferLength:PDWORD):BOOL; stdcall; external DLL_NAME;

{ /**

* Felica写卡

* @param unBlockIndex 参数 块索引

* @param pUid 参数 UID 8字节

* @param pBuffer 参数 缓冲

* @param punBufferLength 参数 缓冲长度 复返适度长度

* @return true = 得胜

*/}

function LotusCardNfcFWriteBlock( nDeviceHandle:Integer; unBlockIndex:DWORD; pUid, pBuffer:PByte; punBufferLength:PDWORD):BOOL; stdcall; external DLL_NAME;

{ /**

* Felica写卡

* @param unBlockIndex 参数 块索引

* @param unBlockCount 参数 块数目

* @param pUid 参数 UID 8字节

* @param pBuffer 参数 缓冲

* @param punBufferLength 参数 缓冲长度 复返适度长度

* @return true = 得胜

*/}

function LotusCardNfcFWriteNBlock( nDeviceHandle:Integer; unBlockIndex, unBlockCount:DWORD; pUid, pBuffer:PByte; punBufferLength:PDWORD):BOOL; stdcall; external DLL_NAME;

引申读写完成之后,不错对开发进行关闭。

/**

* 关闭开发

*

* @param nDeviceHandle

* 开发句柄

*/}

procedure LotusCardCloseDevice(nDeviceHandle:Integer);stdcall; external DLL_NAME;//'LotusCardDriver.dll';

以上是基于Felica期间的NFC标签读写范例,为了浅易用户巡视骨子成果。绽放PC测试器具,双击TestLotusCardReader.exe引申文献,弃取Felica功能菜单。如下图所示:

点击“读数据”按钮,读取适度如下:

示例中修改第5块数据内容,如下所示:

以上内容是基于Felica期间的NFC标签读写九游娱乐(China)官方网站,接待世界进行期间交流。



友情链接:

Powered by 九游娱乐(China)官方网站 @2013-2022 RSS地图 HTML地图