ISO15693協(xié)議和ISO14443A/B協(xié)議是常見的三種通信協(xié)議,其中ISO15693協(xié)議的理論讀寫距離≤1m,ISO14443A/B協(xié)議的理論讀寫距≤10cm.遵循ISO15693協(xié)議的標(biāo)簽常見的有ICODE1和ICODE2,TagIT等等.
友我科技IC卡讀卡器web插件系統(tǒng)對(duì)ISO15693標(biāo)簽開放了全部接口,可以通過(guò)javascript來(lái)操作ISO15693標(biāo)簽。

ISO15693標(biāo)簽web插件api接口
15693標(biāo)簽或者卡片尋卡,獲取卡片UID
15693標(biāo)簽或卡片,讀塊數(shù)據(jù)
ISO15693ReadBlock(StartBlock, BlockNums, DataFormat)
參數(shù):
StartBlock: 開始?jí)K號(hào)
BlockNums:要讀的塊數(shù)量
DataFormat:返回?cái)?shù)據(jù)的格式,0:16進(jìn)制字符串,1:普通ascii字符串。
15693標(biāo)簽或卡片,寫塊數(shù)據(jù)
ISO15693WriteBlock(Block, Data, DataFormat)
參數(shù):
Block: 塊號(hào)
Data:要寫入的數(shù)據(jù)字符串,由于一個(gè)數(shù)據(jù)塊可能有4字節(jié)或者8字節(jié),系統(tǒng)會(huì)根據(jù)實(shí)際情況進(jìn)行4字節(jié)或者8字節(jié)進(jìn)行裁減,不夠的補(bǔ)充16進(jìn)制0。
DataFormat:要寫入的數(shù)據(jù)的格式,0:16進(jìn)制字符串,1:普通ascii
15693標(biāo)簽或卡片,鎖數(shù)據(jù)塊
參數(shù): Block:要鎖定的數(shù)據(jù)塊塊號(hào)
參數(shù):AFI:要寫入的AFI值,1個(gè)字節(jié)16進(jìn)制字符串。
參數(shù):無(wú)
15693標(biāo)簽或卡片,寫DSFID
ISO15693WriteDSFID(DSFID)
參數(shù):DSFID:要寫入的DSFID值,1個(gè)字節(jié)16進(jìn)制字符串。
15693標(biāo)簽或卡片,鎖定DSFID
ISO15693標(biāo)簽web盤庫(kù)例程
在安裝了友我科技IC卡讀卡器web插件后就可以通過(guò)js腳本對(duì)ISO15693標(biāo)簽進(jìn)行操作了。首先ISO15693盤庫(kù)的代碼如下:
function Start()
{
rfidreader.Repeat=1;
rfidreader.HaltAfterSuccess=1;
rfidreader.Request15693CardUID();
}
友我科技IC卡讀卡器web插件通過(guò)回調(diào)函數(shù)返回盤庫(kù)的標(biāo)簽:
rfidreader.onResult(function(resultdata)
{
switch(resultdata.FunctionID)
{
case 2:
if(resultdata.Result>0)
{
ISO15693UID= resultdata.strData;
}
break;
}
}
);
ISO15693標(biāo)簽的讀和寫,由于ISO15693標(biāo)簽的每塊字節(jié)數(shù)有4字節(jié)和8字節(jié), 寫數(shù)據(jù)前需要對(duì)所操作的卡片有了解。
function BlockRead()
{
var blockid;
blockid = 4;
rfidreader.HaltAfterSuccess=0;
rfidreader.ISO15693ReadBlock(blockid,1,0);
}
讀到的數(shù)據(jù)通過(guò)回調(diào)函數(shù)返回:
rfidreader.onResult(function(resultdata)
{
switch(resultdata.FunctionID)
{
case 37:
if(resultdata.Result>0)
{
ISO15693UID = resultdata.CardNo;
ISO15693BlockData = resultdata.strData;
}
else
{
alert("Error");
}
break;
}
}
);
ISO15693標(biāo)簽寫數(shù)據(jù):
function BlockWrite()
{
var blockid;
var data;
blockid = 4;
data = "11223344";
rfidreader.HaltAfterSuccess=0;
rfidreader.ISO15693WriteBlock(blockid,data,0);
}
回調(diào)函數(shù)返回結(jié)果:
rfidreader.onResult(function(resultdata)
{
switch(resultdata.FunctionID)
{
case 38:
if(resultdata.Result>0)
{
ISO15693UID = resultdata.CardNo;
alert("寫入成功" );
}
else
{
alert("Error");
}
break;
}
}
);