Протокол последовательной связи μFR для устройств серии μFR
Устройства серии μFR могут устанавливать связь через виртуальный COM-порт FTDI, поэтому устройства рассматриваются как стандартное оборудование COM-порта.
Параметры связи #
Считыватели с последовательным интерфейсом FTDI #
Считыватели μFR Classic и μFR Advance с USB-подключением:
Последовательная связь: 1 Мбит / с, 8-N-1, Управление потоком: Нет;
Контакт RTS используется для сброса устройства. Когда RTS установлена, устройство находится в состоянии сброса. Когда RTS чист, устройство находится в нормальном состоянии.
Считыватели μFR BaseHD с установленным встроенным ПО "поддержка μFR" (например, считыватели XR и μFR XRc):
Последовательная связь (с использованием драйвера VCOM FTDI): 250 кбит/с, 8-N-1, Управление потоком: Нет;
Считыватели без последовательного интерфейса FTDI #
RS485 (подключение без преобразователя USB/RS-485)::
Переменная скорость передачи данных может быть установлена с помощью программного инструмента. Текущая скорость передачи данных должна быть известна при изменении скорости передачи данных. Скорость передачи данных по умолчанию составляет 250 кбит/с.
μFR Classic Nano RS232 и размер карты RS232:
UART / TTL: 115200 бит / с, 8-N-1, Управление потоком: Нет.
115200 бит/с является скоростью передачи данных по умолчанию. Переменная скорость передачи данных может быть установлена с помощью программного инструмента.
PIN-код 4 на разъеме используется для сброса устройства. Если напряжение на этом контакте высокое (3,3 В), то устройство находится в состоянии сброса. Если напряжение низкое (0 В), то прибор находится в нормальном рабочем состоянии.
Если устройство подключено к нашему преобразователю RS232 в TTL, то уровень напряжения на контакте 4 контролирует RTS. Когда RTS очищена, устройство находится в состоянии сброса. Когда RTS установлена, устройство находится в нормальном состоянии.
Во время обновления встроенного ПО контакт RTS должен быть подключен к контакту 4 на устройстве.
Распиновка для модели UART / TTL представлена ниже:
Для целей связи между считывающими устройствами и хост-ПК создается проприетарный протокол D-Logic под названием «последовательный μFR».
Вся связь инициируется хостом (ПК или другими платформами), к которым подключено устройство.
Максимальное количество данных, передаваемых одной командой или получаемых одним устройством ответа, из версии прошивки 3.9.44 составляет 256 байт, а до — 192 байта.
Как правило, существует два типа пакетов:
- CMD – команда, отправляемая хостом на устройство
- ANS – ответ, отправленный с устройства на хост
CMD может быть коротким или длинным набором. Короткое множество CMD всегда имеет длину 7 байт, в то время как длинное множество CMD, называемое CMD_EXT может иметь переменную длину.
Ответы:
- ACK – Подтверждение, все в порядке, устройство ждет следующего CMD или CMD EXT
- ERR — произошла ошибка, байт ошибки определяет ERR_TYPE
- RSP — ответ от устройства на CMD или CMD_EXT
Константы связи байт определяют тип пакета, который можно увидеть в первых трех байтах каждого пакета.
Первым байтом каждого пакета является байт HEADER. Второй байт всегда CMD_CODE. Третий байт — это байт TRAILER.
Таблица 1. Константы связи
CMD_HEADER | 0x55 | CMD_TRAILER | 0xAA |
ACK_HEADER | 0xAC | ACK_TRAILER | 0xCA |
RESPONSE_HEADER | 0xDE | RESPONSE_TRAILER | 0xED |
ERR_HEADER | 0xEC | ERR_TRAILER | 0xCE |
КОНТРОЛЬНАЯ СУММА #
Все контрольные суммы в этом документе вычисляются одинаково: для вычисления контрольной суммы используется строка байтов, каждый байт XOR-ed со следующим до конца строки. Конечное значение увеличивается с 0x07.
Например, пакет CMD имеет 7 байт, где 7-й байт является контрольной суммой предыдущих 6 байт:
КОНТРОЛЬНАЯ СУММА = (Byte1 XOR Byte2 XOR Byte3 XOR Byte4 XOR Byte5 XOR Byte6) + 0x07
Коды CMD #
Каждая команда имеет соответствующее значение — см. ОБЗОР КОМАНД.
Коды ошибок #
При возникновении ошибки устройство ответит пакетом ERR. Каждая ошибка имеет соответствующее значение, которое можно найти в таблице в Приложении: КОДЫ ОШИБОК.
Пакет CMD #
ПАКЕТ CMD может быть коротким – 7 байт или EXT-концом с переменной длиной. В случае пакета EXT CMD четвертый байт пакета CMD больше 0, содержащий целое значение – длину CMD_EXT пакета. При выдаче CMD_EXT всегда первым идет основной пакет CMD длиной 7 байт. Если все как положено, устройство ответит пакетом ACK, ожидая CMD_EXT пакета. При ошибке устройство ответит пакетом ERR. CMD_EXT состоит из различных параметров, в зависимости от типа команды, поэтому CMD_EXT не имеет фиксированной длины и порядка параметров.
ПАКЕТ CMD имеет следующую структуру:
ПАКЕТ CMD имеет следующую структуру:
Обязательная 7-байтовая структура пакетов CMD |
||||||
---|---|---|---|---|---|---|
Байт 1 | Байт 2 | Байт 3 | Байт 4 | Байт 5 | Байт 6 | Байт 7 |
CMD_HEADER | CMD_CODE | CMD_TRAILER | CMD_EXT_Length | CMD_Par0 | CMD_Par1 | КОНТРОЛЬНАЯ СУММА |
- Байт 1: CMD_HEADER, как определено в таблице 1.Константы связи, 0x55
- Байт 2: CMD_CODE, как определено в таблице 2. CMD_CODE ценности
- Байт 3: CMD_TRAILER, как определено в таблице 1.Константы связи, 0xAA
- Байт 4: CMD_EXT_Length: Если 0, то "CMD EXT" не используется); Значение ELSE — длина всего CMD_EXT пакета
- Байт 5: CMD_Par0: параметр команды0, принимает различные значения в зависимости от команды
- Байт 6: CMD_Par1: параметр команды 1, принимает различные значения в зависимости от команды
- Байт 7: CHECKSUM – Контрольная сумма байтов от 1 до 6, как описано выше
CMD_EXT пакет имеет следующую структуру:
CMD_EXT пакет имеет следующую структуру:
CMD_EXT структура пакетов | |||
Байт 1 | … | Байт N | Байт N+1 |
Байты параметров от 1 до N |
CMD_EXT_CHECKSUM |
Параметр байт от 1 до N – различные параметры, значения которых зависят от типа команды
- CMD_EXT_CHECKSUM — Контрольная сумма байтов от 1 до N
- CMD_EXT_Length — это количество всех байтов, включая CMD_EXT_CHECKSUM; например, длина N+1
Типы пакетов ANSWER #
Устройство может отвечать следующими типами пакетов:
ACK – Пакет подтверждения
Если команда и пакет CMD правильно настроены (структура и контрольная сумма) и необходимо отправить дополнительный пакет CMD_EXT, устройство ответит пакетом ACK.
ERR – Пакет ошибок
Если произошла ошибка, устройство ответит пакетом ERR. Некоторые команды могут возвращать набор ERR_EXT.В этом случае пакет ERR_EXT приходит сразу после пакета ERR.
RSP – Ответный пакет
Если отправлен правильно настроенный пакет CMD или CMD_EXT, устройство ответит RSP или пакетом RSP_EXT, который зависит от выданной команды. Например, если CMD требуется ответ, достаточно короткий для пакета RSP, RSP_EXT пакет не будет. В противном случае, если CMD или CMD_EXT требуется ответ с большим количеством байтов, RSP_EXT придет сразу после пакета RSP. Распространена ситуация при чтении данных с помощью команды LinearRead, где устройство ответит строкой байтов данных карты.
ACK – Пакет подтверждения #
Пакет ACK имеет следующую структуру:
Пакет ACK имеет следующую структуру:
Структура пакетов ACP |
||||||
Байт 1 | Байт 2 | Байт 3 | Байт 4 | Байт 5 | Байт 6 | Байт 7 |
ACK_HEADER | CMD_CODE | CMD_TRAILER | Нерелевантный, не используется в пакете ACK | КОНТРОЛЬНАЯ СУММА |
- Байт 1: ACK_HEADER, как определено в таблице 1.Константы связи, 0x55
- Байт 2: CMD_CODE, как определено в таблице 2. CMD_CODE ценности. Устройство ACKузнавает, что предыдущая команда отправлена правильно
- Байт 3: ACK_HEADER, как определено в таблице 1.Константы связи, 0x55
- Байт 4: Байт 5, Байт 6: Не используется в пакете ACK, значения 0x00
- Байт 7: CHECKSUM – Контрольная сумма байтов от 1 до 6, как описано выше
ERR – пакет ошибок #
Пакет ERR имеет следующую структуру:
Обязательный 7-байтовый ERR |
||||||
Байт 1 | Байт 2 | Байт 3 | Байт 4 | Байт 5 | Байт 6 | Байт 7 |
ERR_HEADER | ERROR_CODE | ERR_TRAILER | ERR_EXT_Length | Err_Val0 | Err_Val1 | КОНТРОЛЬНАЯ СУММА |
- Байт 1: ERR_HEADER, как определено в таблице 1.Константы связи, 0xEC
- Байт 2: ERR_CODE, как определено в таблице 3. КОДЫ ОШИБОК.
- Байт 3: ERR_TRAILER, как определено в таблице 1.Константы связи, 0xCE
- Байт 4: если ERR_EXT существует, этот байт содержит длину пакета ERR_EXT (включая ERR_EXT контрольную сумму)
- Байт 5: Возможная дополнительная информация об ошибке может быть определена в ERR_Val0
- Байт 6: Возможная дополнительная информация об ошибке может быть определена в ERR_Val1
- Байт 7: CHECKSUM – Контрольная сумма байтов от 1 до 6, как описано выше
ERR_EXT и имеет следующую структуру:
ERR_EXT структура пакетов | |||
Байт 1 | .. | Байт N | Байт N+1 |
Ошибка байтов от 1 до N | ERR_EXT_CHECKSUM |
- Байт 1: Первый байт ERR_EXT
- …
- Байт N: N-n-й байт ERR_EXT
- Байт N+1: ERR_EXT_CHECKSUM, контрольная сумма от байт от 1 до N, вычисляется, как объяснялось ранее.
RSP – пакет ответа #
Пакет RSP имеет следующую структуру:
Обязательный 7-байтовый RSP |
||||||
Байт 1 | Байт 2 | Байт 3 | Байт 4 | Байт 5 | Байт 6 | Байт 7 |
RSP_HEADER | CMD_CODE | RSP_TRAILER | RSP_EX_length | RSP_Val0 | RSP_Val1 | КОНТРОЛЬНАЯ СУММА |
- Байт 1: RSP_HEADER, как определено в таблице 1.Константы связи, 0xED
- Байт 2: CMD_CODE, как определено в таблице 2. CMD_CODE ценности
- Байт 3: ERR_TRAILER, как определено в таблице 1.Константы связи, 0xDE
- Байт 4: Если RSP_EXT существует, этот байт содержит длину пакета RSP_EXT (включая RSP_EXT контрольную сумму)
- Байт 5: Возможная дополнительная информация о RESPONSE может быть определена в RSP_Val0
- Байт 6: Возможная дополнительная информация о RESPONSE может быть определена в RSP_Val1
- Байт 7: CHECKSUM – Контрольная сумма байтов от 1 до 6, как описано выше.
T
RSP_EXT структура пакетов | |||
Байт 1 | .. | Байт N | Байт N+1 |
БайтЫ RSP от 1 до N | RSP_EXT_CHECKSUM |
- Байт 1: Первый байт RSP_EXT
- …
- Байт N: N-n-й байт RSP_EXT
- Байт N+1: RSP_EXT_CHECKSUM, контрольная сумма от байт от 1 до N, вычисляется, как объяснялось ранее.