Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

WIEGAND-PARITY-ERROR IP-Телефония и СКУД

Ошибка Wiegand: Ошибка четности бит (Parity Mismatch 26/34-bit Stream)

Обновлено: 21.08.2026 · Официальная документация ↗

Математика контроля четности в форматах Wiegand 26 и 34 bit

Для обнаружения одиночных ошибок передачи во всех стандартных форматах Wiegand используется контроль четности (Parity Bits): первый бит посылки является четным битом паритета (Even Parity), а последний бит — нечетным битом паритета (Odd Parity).

Структура стандартного формата Wiegand 26 (H10301)

  • Бит 1 (Even Parity $E$): Вычисляется по первым 12 битам данных (биты 2–13). Сумма единиц в блоке вместе с битом $E$ обязана быть ЧЕТНОЙ.
  • Биты 2–9: Код организации / объекта (Facility Code, 8 бит, диапазон 0–255).
  • Биты 10–25: Номер карты (Card ID, 16 бит, диапазон 0–65535).
  • Бит 26 (Odd Parity $O$): Вычисляется по младшим 12 битам данных (биты 14–25). Сумма единиц вместе с битом $O$ обязана быть НЕЧЕТНОЙ.

Если контроллер СКУД принимает ровно 26 бит, но математический пересчет паритета $E$ или $O$ не сходится, генерируется ошибка Wiegand Parity Mismatch, а событие доступа отбрасывается как искаженное.

Бизнес-риски

Сотрудники с валидными пропусками получают отказ в доступе (Access Denied / Bad Parity). Служба безопасности видит в журнале СКУД «фантомные» номера карт (например, карта №12450 считывается как №45201 из-за инверсии бита).

Алгоритм устранения ошибки четности Wiegand

Сценарий 1: Проверка правильности подключения жил Data 0 и Data 1

Самая распространенная причина ошибки паритета — перепутанные местами провода Data 0 (зеленый) и Data 1 (белый). При этом все нули превращаются в единицы (побитовая инверсия):

  1. Если контроллер фиксирует постоянный Parity Error на всех картах подряд — поменяйте местами Data 0 и Data 1 на клеммнике считывателя или контроллера.
  2. Проверьте чтение карты: номер должен начать считываться корректно.

Сценарий 2: Расчет и валидация контрольной суммы скриптом Python

# Скрипт проверки четности Wiegand 26-bit
def verify_wiegand26(bit_string):
    if len(bit_string) != 26:
        return False, "Invalid Length"
    even_bits = bit_string[1:13] # Биты 2-13
    odd_bits = bit_string[13:25]  # Биты 14-25
    
    # Проверка Even Parity (Бит 1)
    even_calc = 0 if (even_bits.count('1') % 2 == 0) else 1
    even_valid = (int(bit_string[0]) == even_calc)
    
    # Проверка Odd Parity (Бит 26)
    odd_calc = 1 if (odd_bits.count('1') % 2 == 0) else 0
    odd_valid = (int(bit_string[25]) == odd_calc)
    
    return (even_valid and odd_valid), f"Even: {even_valid}, Odd: {odd_valid}"

print(verify_wiegand26("10000001000000000000001010"))

Сценарий 3: Несоответствие формата Wiegand в СКУД (26-bit vs 34/37/58-bit)

Если считыватель настроен на выдачу полного 34-битного UID карты (Mifare / EM-Marine), а контроллер жестко ожидает 26-битный формат:

  • Контроллер отрезает первые 26 бит из 34, в результате чего хвостовой бит паритета попадает в середину данных и расчет четности гарантированно дает сбой.
  • Решение: В конфигураторе СКУД измените формат входного порта с Wiegand-26 на Wiegand-34 (1 Even + 32 Data + 1 Odd) или Wiegand-Auto.

Типовые ошибки администраторов

  • Попытка чтения банковских карт и смартфонов в режиме Wiegand-26: Банковские EMV чипы генерируют динамический 4-байтный или 7-байтный UID, требующий формата Wiegand 34 или Wiegand 58.
  • Отключение контроля четности («Ignore Parity»): Маскирует проблему помех на линии, приводя к открытию дверей по случайным ложным кодам.
Ошибки считывания карт и путаница в форматах Wiegand?
Инженеры ITSTM настроят маски форматов карт любой битности (26/34/37/58 bit) в ПО СКУД и устранят сбои валидации идентификаторов.
💡 Практика специалистов: Если ошибка паритета возникает периодически только на определенных картах из одной партии, проверьте формат кодирования чипа. Китайские перезаписываемые брелоки (T5577) часто прошиваются дубликаторами с ошибкой в 26-м бите, что выявляется только на контроллерах со строгой проверкой паритета.

Частые вопросы (FAQ)

Чем отличается Wiegand 26 от Wiegand 34?

Wiegand 26 содержит 1 бит Even + 8 бит Facility Code + 16 бит Card ID + 1 бит Odd. Wiegand 34 содержит 1 бит Even + 32 бита данных (UID) + 1 бит Odd, что позволяет передавать полные 4-байтные номера смарт-карт Mifare.

Почему при переполюсовке Data0/Data1 считыватель не сгорает?

Обе линии являются слаботочными логическими линиями открытого коллектора (+5V TTL). Переполюсовка между ними абсолютно безопасна электрически и приводит лишь к логической инверсии данных.

Что означает опция 'Ignore Parity' в настройках контроллера?

Опция заставляет контроллер игнорировать первый и последний биты паритета и извлекать только полезную нагрузку. Это повышает шанс считывания карты на зашумленных линиях, но резко снижает безопасность.

Как считываются карты HID Corporate 1000 по Wiegand?

Формат Corporate 1000 использует 35-битное или 48-битное кодирование с несколькими битами четности (полиномиальный паритет в начале и конце кадра).

Полезные материалы
Рекомендуем