0

我正在为一个个人项目使用“摩托罗拉emdk”。我看到TagData.TagIDTagData.MemoryBankData不同(MEMORY_BANK.TID选择时)。

.NET 文档没有提供信息,它只是说明:

TagData.TagID 属性

获取标签 ID

我深入研究了“Motorola EMDK for C”API,这是 .NET SDK 封装的低级接口,它提供了更多详细信息:

UNIT8* pTagID

标签 ID,对于 C1G2,此字段是指 EPC 数据。

...这清除了一切,除了MEMORY_BANK.EPC也不匹配TagData.TagID

我查看了 Class 1 Gen 2 规范(http://www.gs1.org/sites/default/files/docs/uhfc1g2/uhfc1g2_2_0_0_standard_20131101.pdf),标签数据结构中描述的字段似乎都与此相对应TagID财产。

我确实想知道TagData.TagIDSDK 是否会生成一些任意的、不透明的值作为唯一标识每个标签的方法,但我注意到在不同的会话中使用相同的值,所以它绝对是确定性的,但它是什么意思?

我写了一个程序来转储标签和TagID属性的所有内存库,这就是我得到的:

TagData.TagID: "0000000000000000000C7D16" Bank: MEMORY_BANK_EPC     , BankData: "743E30000000000000000000000C7D16"
TagData.TagID: "0000000000000000000C7D16" Bank: MEMORY_BANK_RESERVED, BankData: "0000000000000000"
TagData.TagID: "0000000000000000000C7D16" Bank: MEMORY_BANK_TID     , BankData: "E20060031A8A034E"
TagData.TagID: "0000000000000000000C7D16" Bank: MEMORY_BANK_USER    , BankData: "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"

TagData.TagID: "3330323135385F303031"     Bank: MEMORY_BANK_EPC     , BankData: "EB1728003330323135385F303031"
TagData.TagID: "3330323135385F303031"     Bank: MEMORY_BANK_RESERVED, BankData: "0000000000000000030004180CFA"
TagData.TagID: "3330323135385F303031"     Bank: MEMORY_BANK_TID     , BankData: "E2801130200029431C9701C2"
TagData.TagID: "3330323135385F303031"     Bank: MEMORY_BANK_USER    , BankData: "00000000"

TagData.TagID: "54573630354C5F303037"     Bank: MEMORY_BANK_EPC     , BankData: "B63E280054573630354C5F303037"
TagData.TagID: "54573630354C5F303037"     Bank: MEMORY_BANK_RESERVED, BankData: "0000000000000000030004190CFA"
TagData.TagID: "54573630354C5F303037"     Bank: MEMORY_BANK_TID     , BankData: "E2801130200021A11D4501C2"
TagData.TagID: "54573630354C5F303037"     Bank: MEMORY_BANK_USER    , BankData: "00000000"

TagData.TagID: "54573630354C5F303132"     Bank: MEMORY_BANK_EPC     , BankData: "D5AA280054573630354C5F303132"
TagData.TagID: "54573630354C5F303132"     Bank: MEMORY_BANK_RESERVED, BankData: "0000000000000000030004190CFA"
TagData.TagID: "54573630354C5F303132"     Bank: MEMORY_BANK_TID     , BankData: "E2801130200021F11D4501C2"
TagData.TagID: "54573630354C5F303132"     Bank: MEMORY_BANK_USER    , BankData: "00000000"

更新

看来我看的不够仔细!

TagData.TagID包含在 中,EPC例如:

TagData.TagID: "3330323135385F303031"     Bank: MEMORY_BANK_EPC     , BankData: "EB1728003330323135385F303031"

EPC:  "EB1728003330323135385F303031"
TagID:        "3330323135385F303031"

根据 C1G2 规范,EPC 的开头保留如下:

0x0000 to 0x000F - StoredCRC         - 0xEB17
0x0010 to 0x001F - StoredPC          - 0x2800
0x0020 to 0x020F - Actual EPC value  - 0x3330323135385F303031
0x0210 to 0x021F - XPC_W1 (Optional) - null
0x0220 to 0x022F - XPC_W2 (Optional) - null

那就清楚了!

但我现在的问题是:可以TagID相信它是全球独一无二TID的吗?我的理解是EPC不需要唯一,它只是一个任意字符串而不是序列号。如果是这种情况,那么在 EPC 冲突的情况下会发生什么?

4

1 回答 1

1

无法保证这些字段中的任何一个都是唯一的。所有这些都可以通过打印机或阅读器进行更新。因此,您应该信任您的 RFID 标签供应商或自己打印它们。EPC 冲突对阅读器而言不是问题,仅对您的软件而言。

于 2014-05-06T02:18:40.850 回答