3.2 多卡识别时防碰撞算法的实现
当读写器处于工作状态时,其天线覆盖范围内的所有标签都将被激活,随时准备响应读写器的命令,这就造成了标签的碰撞。
在ISO15693协议中,适用于多卡识别的命令有Inventory、Stay quiet等。Inventory用以查询天线覆盖范围内的UID(标签识别号),其帧格式包括Flags(标志位)、Mask length(掩码长度)、Mask value(掩码值)等。读写器发送Inventory命令时须定制所需的时隙长度,并在指令域后添加掩码码长和码值。假设Mask length,Mask value均为0,时隙长度slot设为16,则读写器在slot=0时发送Inventory命令,工作区域内卡号尾数为0的标签将会首先响应,并以一定的帧格式发回自己的UID,随后在时隙slot=1时,读写器继续发送EOF,工作区域内尾数为1的标签将会响应。依此类推,直到读写器发出第15个EOF,一个完整的Inventory命令结束。若在工作区域内有两张标签的卡号分别为****82H和****12H,则在slot=2时,两张卡均响应且产生碰撞。此时需记录下碰撞位置2,然后在下一个Inventory命令中,设置Mask length=4、Mask value=2,则在新一轮的slot中,两张标签将分别在slot=8和slot=1时响应,这样就很好地解决了防碰撞问题。Stay quiet命令用于使工作区内与发送帧中UID相同的标签处于静止状态,不再响应任何ISO命令。下面给出防碰撞算法的实现编码(以16时隙为例):
function push(mask,address);pushes on private stack
function pop(mask,address);pops from private stack
function pulse_next_pause;generates a power pulse
function store(VICC_UID);stores VICC_UID
function poll_loop(sub_address_size as integer);
address length must be four (4) bits.
pop(mask,address)
mask=address & mask;generates new mask;send the Request
mode=anticollision
send_Request(Request_cmd,mode,mask length,mask[0])
for address=0 to(2^sub_address_size-1)
if no_collision_is_detected then;VICC is inventoried
store(VICC_UID)
else;remember a collision was detected
push(mask,address)
endif
pulse_next_pause
next sub_address;if some collisions have been detected and not yet processed,the function calls itself recursively to process the last;stored collision
if stack_not_empty then poll_loop (sub_address_size)
end poll_loop
main_cycle
mask=null address=null
push(mask,address) poll_loop(sub_address_size)
end_main_cycle
4 测试
研发设计过程中,对该读写器的性能进行了多项测试,主要测试项目及测试结果如下:
(1)运行稳定性:在长时间不关机情况下,运行正常,无死机或重新启动现象,读写能力正常,工作距离有±5cm轻微浮动。
(2)与上位机通信情况:正常。
(3)虚检漏检情况:无。
(4)防碰撞能力:每秒40个。
(5)读写距离:单天线1.1m左右,双天线1.8m~2m。
(6)速率问题:下行信号最快速率26.48kb/s,上行信号最快速率为26.69kb/s。对于开放式门禁系统完全满足实际需求。对于那些对读写距离或速度有更高要求的系统,如仓库管理、不停车自动收费等系统需要用UHF频段的射频识别系统甚至是有源的射频识别系统方案来解决。
本文设计了一种符合ISO-15693协议的HF频段RFID读写器,配合适当的天线,读写距离可达1.1m左右,多卡识别能力可达每秒40张。基于该读写器的门禁系统已投入应用,系统工作稳定,效果良好。与市面上现有的HF频段长距离读写器相比,在工作距离相同的情况下,多卡防碰撞识别能力有显著提高,且产品信价比高,系统灵敏度好,运行稳定可靠。在此读写器的基础上,只要稍加改动也可开发成其他RFID应用系统,如考勤系统、公交车收费系统、超市自动售货、电子防盗、图书馆、洗衣店等管理系统等。