ГО С Т Р ИСО/МЭК15693-3— 2011
Приложение В
(справочное)
Псевдокод терминального оборудования
для антиколлизии
Данный псевдокод курсивным шрифтом описывает, как можно реализовать антиколлизию в терминальном
оборудовании VCD, используя рекурсивносгь. В данном случае отсутствует описание механизма коллизии.
Алгоритм для 16слотов
function push (mask, address)
.
поглощает
в
приватное стековое ЗУ
function pop (mask, address); извлекает из приватного стекового ЗУ
function pulse_next_pause ; генерирует силовой импульс
function store(VICC_UID); запоминает VICC_UID
function poiljoop (sub_address_size as integer)
; длина адреса должна быть 4 бита
pop (mask, address)
mask
=
address & mask
;
генерирует новую маску
; посылает запрос
mode = anticollision
send_Request (Request cmd. mode, mask length, mask)
; произведена инвентаризация VICC
;
запомнить, что коллизия была обнаружена
for address
=
0 to (2l’sub_address_s/ze - 1)
if no_collision_is_detected then
store (VICC_UID)
else
push (mask, address)
endif
pulse_next__pause
next sub_address
; если коллизия была обнаружена, но еще не обработана, функция
; вызывает себя рекурсивно для обработки последней записанной коллизии
if stack_not_empty then poiljoop (sub_address_size)
end poll_loop
main_cycle:
mask
=
null
address
=
null
push (mask, address)
pollJoop(sub_address_size)
end__main_cycle
33