我正在尝试使用非接触式OmniKey 5321读卡器读取智能卡信息.
编辑:添加了赏金.
我正在.NET 3.5程序中编写C#3,所以这是一个Windows应用程序.
该卡上印有一些信息,我会假设,卡片数据中存在某些信息(下面有卡片和读卡器的照片.)
该卡上印有以下信息:
1* 00447 21091328-32
使用OmniKey读卡器附带的诊断应用程序时,我会收到以下信息:
Smart Card Name: iCLASS 16KS UID:EE 74 0E 00 FB FF 12 E0 ATR : 3B 8F 80 01 80 4F 0C A0 00 00 03 06 0A 00 1A 00 00 00 00 78 Protocol : ISO 15693 (Part 2)
现在,我已经考虑了一些转换:
这是我的问题:
这是照片,如果它给你任何信息.
uniqueidentifier smartcard smartcard-reader winscard iso-15693
我正在尝试使用nfc安卓库读取ISO15693 RFID标签:
以下是有关标签的更多信息:http://img42.com/gw07d+
标签ID已正确读取,但标签中的数据未正确读取.
onCreate
方法:
// initialize NFC
nfcAdapter = NfcAdapter.getDefaultAdapter(this);
nfcPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, this.getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
Run Code Online (Sandbox Code Playgroud)
onNewIntent
方法:
if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction()) || NfcAdapter.ACTION_TECH_DISCOVERED.equals(intent.getAction())) {
currentTag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
byte[] id = currentTag.getId();
Tag_data_TextDisplay.setText("TagId:" + Common.getHexString(id));
for (String tech : currentTag.getTechList()) {
if (tech.equals(NfcV.class.getName())) {
NfcV nfcvTag = NfcV.get(currentTag);
try {
nfcvTag.connect();
txtType.setText("Hello NFC!");
} catch (IOException e) {
Toast.makeText(getApplicationContext(), "Could not open a connection!", Toast.LENGTH_SHORT).show();
return;
}
try {
byte[] cmd = new byte[]{
(byte) …
Run Code Online (Sandbox Code Playgroud) 我看到很多论坛都说RFID与NFC不同.我完全同意这一点,因为两者都有不同的标准并且在不同的频率上运行.
经过一些进一步的研究,我发现一些RFID标准(HF-RFID)存在于13.56 MHz频段,与NFC使用频率相同(见此处).但是,我没有发现任何明确说明NFC设备和HF-RFID可以互操作的东西.此外,我看过一个在线视频,其中有人正在使用支持三星NFC的手机阅读HF-RFID标签.
我知道NFC和RFID都使用射频.
我的问题是,可以使用支持NFC的手机读取HF-RFID(13.56 MHz)标签吗?
而且,HF-RFID阅读器还可以用来读取NFC标签?
有没有人测试过这个并给出任何链接,它确认它可能吗?
在我的 NFC 应用程序中,我遇到了一个命令,该命令似乎需要比transceive()
方法允许的更多时间来响应。结果我得到一个TagLost异常。
还有就是方法setTimeout(int timeout)
的IsoDep
标签,但据我所知不是NfcV
标签。
有谁知道是否有办法增加NfcV
操作的超时值?
“喂,哥,怎么了?”
我在 NDEF 消息格式方面遇到了麻烦。
我浏览了 NFC 论坛,了解如何使用带有有效载荷的单个 NDEF 记录(文本 RTD)构建 NDEF 消息,因此我可以通过 I2c 对我的标签 (M24LR16E) 进行编程。
除此之外,我使用外部编写器对我的标签进行了编程,以获得格式良好的记录示例。
然后我通过 I2C 使用完全相同的值对我的标签进行编程,一切运行良好。更改有效载荷字符给了我成功的证明 =)
“但你来这里并不是为了向我们展示一切都很好,不是吗?”
你是对的,知道我正在尝试改变有效载荷长度,但我遇到了麻烦。一旦我更改了 NDEF 记录的 PAYLOAD_LENGTH,它就不再被识别为一个。我将 PAYLOAD_LENGTH 从 10 改为 5,所以这不是溢出配置字段的问题。
“好故事,给我看一些代码/配置”
这是我的记录配置:
另外,我注意到如果在 NDEF 消息之前覆盖 6 个字节,则 NDEF 消息将不再被识别。我不知道这些数据是什么,因为 NFC 规范没有谈论这个,标签数据表也没有。
“你应该问一个问题……”
嗯,嗯...
我的读者:带有 NXP 的“TagInfo”应用程序的 Nexus 4
我正在尝试使用 WRITE MULTIPLE BLOCKS 命令通过NfcV
对象将一些数据写入 NXP ICODE SLIX SL2S2002 标签(ISO 15693):
private void writeTagData(Tag tag) throws Exception {
int offset = 0;
int blocks = 19;
String _writedata = "1hello34567850000071234561815064150220161603201016022018112233445552031033";
byte[] data = _writedata.getBytes(StandardCharsets.UTF_8);
data = Arrays.copyOfRange(data, 0, 4 * blocks );
byte[] id = tag.getId();
boolean techFound = false;
for (String tech : tag.getTechList()) {
if (tech.equals(NfcV.class.getName())) {
techFound = true;
NfcV nfcvTag = NfcV.get(tag);
try {
nfcvTag.connect();
} catch (IOException e) {
Toast.makeText(this, "IO Exception", Toast.LENGTH_LONG).show(); …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的Android应用程序中阅读恩智浦开发的NFC标签.可以使用Android读取标签:NXP的应用程序和另一个正确读取它.
确切的标签类型是"ICODE SLI-L(SL2ICS50)",RF技术是"Type V/ISO 15693"(从这些工作应用中获取的数据).存储器由2个页面组成,每个页面有4个块,每个块有4个字节 - 我只想将整个数据存储在存储器中.
标签必须使用Android的NfcV
类处理,标签的数据表在这里可用,但很难找到使用的任何工作代码示例NfcV
.我尝试了几个由数据表自己总结的东西,并尝试了我在谷歌找到的PDF中的通信样本,但没有任何效果.
我的活动中的相应方法(我使用NFC Foreground Dispatch)如下所示:
public void onNewIntent(Intent intent) {
android.nfc.Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
NfcV tech = NfcV.get(tag);
try {
tech.connect();
byte[] arrByt = new byte[9];
arrByt[0] = 0x02;
arrByt[1] = (byte) 0xB0;
arrByt[2] = 0x08;
arrByt[3] = 0x00;
arrByt[4] = 0x01;
arrByt[5] = 0x04;
arrByt[6] = 0x00;
arrByt[7] = 0x02;
arrByt[8] = 0x00;
byte[] data = tech.transceive(arrByt);
// Print …
Run Code Online (Sandbox Code Playgroud) 我有一些 ISO15693 / Tag-it HF-I Plus 芯片,需要在上面写点东西。这些芯片是完全新鲜的,我现在读了很多 pdf 告诉我的都是一样的。但是没有任何效果,我一直收到 Transceive Failed 错误。
我在收发命令中发送这些数据:
Byte: <data>
0: 0x00 // pdf says the tag understands only flag = 0x00
1: 0x21 // write single block
2-10: ID // needs to be send for this tag, only supports addressed mode
11: 0x00 // Block ID, try to write to block 0
12-16: DATA // LSB First
17-18: CRC16 // do i need to send this? and if yes, LSB first?
Run Code Online (Sandbox Code Playgroud)
我尝试了非常不同的标志和写入模式,但它们都不起作用:
Flags: 0x01, …
Run Code Online (Sandbox Code Playgroud)