БИБЛИОТЕКА НОРМАТИВНЫХ ДОКУМЕНТОВ

ГОСТ Р ИСО/МЭК 18000-62-2014. Национальный стандарт Российской Федерации. Информационные технологии. Идентификация радиочастотная для управления предметами. Часть 62. Параметры радиоинтерфейса для связи в диапазоне частот 860 - 960 МГц, тип B

Приложение A

(справочное)

 

КОНТРОЛЬ 16-БИТОВЫМ ЦИКЛИЧЕСКИМ ИЗБЫТОЧНЫМ КОДОМ (CRC-16)

 

A.1. Пример схемы кодирования/декодирования кода CRC-16

Пример схемы кодирования/декодирования кода CRC-16 приведен на рисунке A.1. Алгоритм использует полином и начальное значение, определенное в таблице A.1 (полином для вычисления кода CRC-16, x16 + x12 + x5 + 1, соответствует стандарту CRC-CCITT, ITU Recommendation X.25).

 

Таблица A.1

 

Прообраз кода CRC-16

 

Прообраз кода CRC-16

Тип кода CRC

Длина

Полином

Начальное значение

Остаток

по ИСО/МЭК 13239

16 бит

x16 + x12 + x5 + 1

FFFFh

1D0Fh

 

ГОСТ Р ИСО/МЭК 18000-62-2014. Национальный стандарт Российской Федерации. Информационные технологии. Идентификация радиочастотная для управления предметами. Часть 62. Параметры радиоинтерфейса для связи в диапазоне частот 860 - 960 МГц, тип B

 

Рисунок A.1 - Пример схемы контроля кодом CRC-16

 

Для вычисления значения кода CRC-16 необходимо загрузить CRC-регистр Q[15:0] начальным значением FFFFh (при этом Q15 содержит старший бит, а Q0 - младший), а затем на вход, обозначенный "данные", нужно подать синхронизованную битовую последовательность данных, которые требуется закодировать, начиная со старшего бита (MSB). После последнего такта ввода данных в регистре Q[15:0] получится двоичное дополнение кода CRC-16. Инверсия битов позволяет вычислить значение кода CRC-16.

Существуют два метода контроля данных кодом CRC-16:

Метод 1: В CRC-регистр Q[15:0] загружается начальное значение FFFFh, затем на вход "данные" подается синхронизованная битовая последовательность полученных данных и кода CRC-16, начиная со старшего бита. Контроль кодом CRC-16 считается выполненным успешно, если в регистре оказалось значение Q[15:0] = 1D0Fh.

Метод 2: В CRC-регистр Q[15:0] загружается начальное значение FFFFh, затем на вход "данные" подается синхронизованная битовая последовательность полученных данных, начиная со старшего бита. Все полученные биты кода CRC-16 вместе с данными инвертируются и также подаются на вход "данные", начиная со старшего бита. Контроль кодом CRC-16 считается выполненным успешно, если в регистре оказалось значение Q[15:0] = 0000h.

A.2. Примеры вычислений кода CRC-16

Пример 1: Ниже показаны:

(a) - вычисление кода CRC, который использует устройство опроса типа B при передаче радиочастотной метке команды SUCCESS (код 09h);

(b) - выполнение радиочастотной меткой контроля данных полученной команды. Устройство опроса передает пакет данных, указанный в таблице A.2, но код CRC-16 вычисляется только для кода команды SUCCESS (09h).

 

Таблица A.2

 

Пример пакета команды системы типа B

 

Признак заголовка (Preamble detect)

Заголовок (Preamble)

Разделитель (Start delimiter)

Код команды SUCCESS

Код CRC-16

2 бита

девять символов '0' манчестерского кода

11 00 11 10 10

09h

CRC-16

 

Вычисление кода CRC-16: в таблице A.3 указаны значения 16 бит CRC-регистра при побитовом введении в него кода команды 09h. Биты кода CRC-16, которые передает УСО в команде, инвертированы по отношению к результату шага 8 таблицы A.3, т.е. радиочастотной метке передается значение 8F26h.

 

Таблица A.3

 

Значения регистра Q[15:0] для команды SUCCESS

(см. таблицу A.2)

 

Шаг

Бит входных данных (кода команды SUCCESS)

Значение CRC-регистра Q[15:0]

1

0

EFDFh

2

0

CF9Fh

3

0

8F1Fh

4

0

0E1Fh

5

1

0C1Fh

6

0

183Eh

7

0

307Ch

8

1

70D9h

 

Контроль кодом CRC-16: как указано в таблице A.1, радиочастотная метка может выбрать один из двух методов проверки полученной команды кодом CRC-16. В таблице A.4 показан первый метод, при котором радиочастотная метка подает на вход "данные" CRC-регистра синхронизированную битовую последовательность полученных данных и кода CRC-16 {data, CRC-16}, начиная со старшего бита. Конечное значение CRC-регистра Q[15:0] должно быть равно 1D0Fh. На шаге 0 таблицы A.4 предполагается, что CRC-регистр предварительно загружен значением FFFFh, данные введены в регистр, после чего его значение оказалось Q[15:0]=70D9h перед вводом кода CRC-16. Таблица A.4 показывает значения 16 бит CRC-регистра (см. рисунок A.1) при побитовом вводе кода CRC-16 в регистр.

 

Таблица A.4

 

Первый метод контроля кодом CRC-16 для последовательности

бит {код команды SUCCESS, код CRC-16}

 

Шаг

Бит входных данных (полученного кода CRC-16)

Значение CRC-регистра Q[15:0]

0

Введен код команды

70D9h

1

1

F193h

2

0

F307h

3

0

F62Fh

4

0

FC7Fh

5

1

F8FEh

6

1

F1FCh

7

1

E3F8h

8

1

C7F0h

9

0

9FC1h

10

0

2FA3h

11

1

4F67h

12

0

9ECEh

13

0

2DBDh

14

1

4B5Bh

15

1

8697h

16

0

1D0Fh

 

В таблице A.5 показан второй метод контроля кодом CRC-16, при котором радиочастотная метка подает на вход "данные" CRC-регистра синхронизированную битовую последовательность полученных данных, начиная со старшего бита. Затем радиочастотная метка инвертирует все биты полученного кода CRC-16, подает их на вход "данные" и проверяет конечное значение регистра Q[15:0], которое должно быть равно 0000h. На шаге 0 таблицы A.5 предполагается, что CRC-регистр предварительно загружен значением FFFFh, данные введены в регистр, после чего его значение оказалось Q[15:0]=70D9h перед вводом инвертированного кода CRC-16. Таблица A.5 показывает значения 16 бит CRC-регистра (см. рисунок A.1) при побитовом вводе в регистр инвертированного кода CRC-16.

 

Таблица A.5

 

Второй метод контроля кодом CRC-16 для последовательности

бит {код команды SUCCESS, инвертированный код CRC-16}

 

Шаг

Бит входных данных (инвертированного полученного кода CRC-16)

Значение CRC-регистра Q[15:0]

0

Введен код команды

70D9h

1

0

E1B2h

2

1

C364h

3

1

86C8h

4

1

0D90h

5

0

1B20h

6

0

3640h

7

0

6C80h

8

0

D900h

9

1

B200h

10

1

6400h

11

0

C800h

12

1

9000h

13

1

2000h

14

0

4000h

15

0

8000h

16

1

0000h