西克 | 真科技系列!深度刨析超高频Gen2协议!
供稿:西克中国
- 关键词:西克,RFID,读写器
- 摘要:我们在之前的推送介绍过,除了市面常见读写器读写功能外,西克读写器还配备了强大的标签和数据处理功能,用来辅助对标签信息进行多次过滤和加工,从而减少上位机的工作量。
我们在之前的推送介绍过,除了市面常见读写器读写功能外,西克读写器还配备了强大的标签和数据处理功能,用来辅助对标签信息进行多次过滤和加工,从而减少上位机的工作量。
当我们在面对实际的应用时候,我们不仅可以利用这个强大的数据处理功能,我们也可以合理利用超高频现有规范,来改善读取效果。
今天,就让我们开始进行新的硬核讨论:让我们透视下EPC Class1 Gen 2,也就是我们常说的ISO18000-6C协议规范里有哪些玄机。
在2004年EPC Global组织联合全球数十个顶尖科技企业,在经过多次更新后发布的EPC Class1 Generation 2(简称Gen2)空中接口协议硬件标准,一年半后ISO经过核准将其写入了ISO18000-6标准,并作为C类也就是超高频RFID标准。
该标准无论是在硬件通用性,技术性能以及成本和可拓展性上都具有较大的优势。既然是通用标准,了解其中通讯规则会对我们实施超高频项目中起到很大的“避坑”作用。
我们今天了先解下几个关键信息:
盘存 Inventory
超高频读写器在工作时候,会通过无线电载波向外发出讯号并开始执行盘存过程,这一步会包含多种命令,只有当这一步顺利完成时候,射频范围内的可读标签才能够被正确读取,反之则无法正确读取。这也是包括西克在内大多数超高频阅读器开始工作的关键一步。
西克读写器在默认出场时候已经配置好适用于大多数场景的盘存算法设置(Inventory-algorithm),用户也可根据实际需求直接使用可视化页面进行高阶配置。
询问命令 Query
该命令是6C标准中的关键命令,正是因为这个命令超高频6C标准才能够实现多标签“防碰撞”的读取效果,从而大批量读取标签。在6C标准下的读写器使用的是半双工通讯方式,也就是由读写器主动发起通信,而后标签返回信息,你一句我一句往复完成通讯的。
在阅读器发送Query命令时候,会自带一个参数Q,这个Q的值决定了整个射频系统的清点效率。为什么这么说?按照协议描述,Q的值可以设定为0~15的整数,标签收到命令后会从0~2Q随机产生一个数字作为标签的应答槽。
读写器可以让标签应答槽中的数字不断变小直至为0,此时标签返回一个16位的随机数(RN16)与读写器通讯。我们可以理解为标签会有一个随即响应概率,该值为
由此可见合适的Q值对于多标签的读取效率有很大关系。
例如Q为0时候,那么随机数只能为1,如果出现多标签的时候就会发生冲突,多标签就无法读取;又如环境中有5个标签,Q值设置为10,则会有1024个槽计数器,理论上需要数1024次才能盘存出这5个标签,效率就又太低。阿杰也会在后续文章和大家讨论Q算法。
但是需要记住,西克读写器可以直接在可视化界面对Q值进行定义。
读写器与标签响应过程
我们参考协议中单标签响应过程:
在读写过程中每次均为读写器发出清点命令(Query/QueryAjust/QueryReq)获取标签的16位随机数(RN16),此数值代表了标签在此次清点过程中的身份信息,读写器获得该随机数后发送ACK命令(Acknowledge)进而获取标签的编码信息,包括PC,常用的EPC和CRC值。
到此为止,读写器获取的EPC信息已经可以满足用户进行使用,如果用户需要对标签的其他数据区进行操作,读写器会再发送一次Req_RN(Request Random Number)指令,也就是再做身份信息获取动作,然后标签再返回RN16,然后读写器再进行读写或者锁杀等操作。
这也是为什么我们建议通常进行托盘追溯或非大容量应用中,我们建议使用EPC作为被标记物的信息储存区,因为这样可以大大加快读取速度。
会话层 Session
这是一个非常有趣的参数,我们首先看下协议中对于这个参数的解释是什么:
阿杰尝试多次在实战中反复理解这段话,总结下就是:Session就是标签读写时候的跳转条件,目标是将射频覆盖区域内所有标签全部盘存到,用户可以针对不同场景选用不同会话层来实现不同盘存方式进而高效率盘存。需要注意的是这里的Session和后续的Session SL是两个不同概念。
我们看下协议中的这个图:
每个标签进入射频区域后都会有4个会话层,每个会话层都有两个状态A和B,默认初始状态为A,在标签响应ACK命令后状态会被更改为B,当标签离开射频区域后,或按照IC种类不同达到一定时间后状态又会变为A。
首先假设标签已经被放入了射频区域内,那么此时状态一定是A,我们先在举例几个场景:
🔹 S0条件下,所有标签一旦离开射频区域内,状态则会立刻变为A;如果标签不离开射频区域,则标签一定会是B状态,如果读写器一直找不到A状态标签,则可以理解为标签均为B状态,也就是读写器完成了本盘存。
🔹 S1条件下,标签从A状态变为B状态开始计时,500ms~5s后状态会自动转变为A,无论标签是不是在射频场内这个状态更改必定会发生。
🔹 S2和S3条件下,当标签离开射频区域内开始计时,至少2s后标签返回A状态。这里的时间取决于IC厂家设计的不同。
可见不同的条件标签的盘存效率会有不同,需要针对不同场景进行优化以达到可靠的读取效果,例如S2和S3就是用于超大量标签盘存,S0就比较适合单标签应用等。
欢迎您在评论区留言
告诉我们您对本次推文的看法