标签锁定失败的原因以及标签销毁时销毁密钥不能全为0

来源:互联网 发布:通话软件实现原理 编辑:程序博客网 时间:2024/06/09 14:46

1  标签锁定失败的原因

我遇到的原因是锁定时候无法执行pParms->operationSucceeded = 1;。导致boa报错:cgi_header: unable to find LFLF。但是读写标签的时候此句话没有问题。或许是库文件底层处理的问题。


如果标签已经被永久锁定、或者密码/存储区不存在、或者密码/存储区不能锁定或解锁,这些情况都会导致执行标签锁定失败。

参见协议 6.3.2.11.3.5 Lock (mandatory)部分

Specifically, if a Tag receives a Lock it cannot execute because one or more of the passwo rds or memory banks do not exist, or one or more of  the Action  fields attempt to change a permalocked value, or  one or more of the passwords or memory banks are either not lockable or not unlockabl e, the Tag shall ignore the entire  Lock and instead backscatter an error code 

标签锁定后可以重新锁定,比如对同一个区域使其永不可写,此操作可以多次执行,但是只能对此区域执行相同的权限,不能原来是永不可写,后来是可写。


2 标签销毁时销毁密钥不能全为0销毁的时候访问密码无所谓正确与否!

销毁密码默认存储在Reserved memory区,默认值全0.但是如果是全0,则不能这些销毁命令。必须改为非零值才可以销毁标签。

参见规范中的6.3.2.1.1.1 Kill password

The kill password is a 32-bit value stored in Reserved memory 00h to 1Fh, MSB first. The default (unprogrammed)
value shall be zero. An Interrogator may use the kill password to (1) recommission a Tag, and/or (2) kill a Tag and
render it nonresponsive thereafter. A Tag shall not execute a recommissioning or kill operation if its kill password
is zero. A Tag that does not implement a kill password operates as if it has a zero-valued kill password that is
permanently read/write locked.


原创粉丝点击