Недавно я переписал цикл защиты от столкновения ISO 14443-3 и выяснил, что он на самом деле неправильно определен в стандарте.Протокол предотвращения столкновения ISO 14443-3 неверен
Пример: две карты в поле будет ввести анти-столкновения цикл:
карта UID =
AB CD EF GH IJ KL xx xx xx
(10 байт/тройной размер UID)карта UID =
AB CD EF 88 GH IJ KL
(7 байт/двойной размер UID)
Они оба попадают в антиколлизионном каскадном уровень 2, где:
будет передавать: UID CL2 =
88 GH IJ KL
- в качестве88
является каскад тег, указывающий, что его UID большебудет передавать: UID CL2 =
88 GH IJ KL
- в качестве фактического UID=> нет colision.
PCB отправит SELECT, и обе карты ответят SAK, где будет столкновение в бит2.
В стандарте ISO/IEC 14443-3 ничего не говорится о запрете использования uid [3] 0x88
, только uid [0] запрещается быть 0x88
.
Я прав, или я что-то пропустил? Я знаю, что очень низкая вероятность (1: 2^56), что одновременно появляются две такие карты в поле. Но, тем не менее, это неверно (и генеральный директор компании, над которой я работаю, обязательно придет посмотреть, что мы делаем с двумя такими карточками в своем кошельке).
Не могли бы вы перефразировать это предложение: * Нигде в стандарте iso 14443-3 не написано, что uid3 не может быть 88, только uid0 не может быть 88. * Я не совсем понимаю это. –