Интерфейс ========= .. contents:: :local: .. Frequently asked questions should be questions that actually got asked. Formulate them as a question and an answer. Consider that the answer is best as a reference to another place in the documentation. BiSS-C (Bidirectional Synchronous Serial Communication) является одним из наиболее распространенных интерфейсов в промышленности благодаря своей высокой скорости передачи данных, точности и надежности. BiSS-C представляет собой синхронный интерфейс передачи данных, который использует два провода для передачи данных и два провода для синхронизации. BiSS-C использует синхронный двунаправленный протокол передачи данных, который позволяет передавать данные в обоих направлениях между мастером и слейвом. BiSS-C поддерживает скорость передачи данных до 10 Мбит/с, имеет механизм компенсации задержки на длинных линиях связи. Кроме того, BiSS-C обеспечивает высокую степень защиты от помех и интерференции благодаря использованию дифференциального сигнала передачи данных. BiSS-C имеет широкую поддержку в промышленном оборудовании и находит применение в многих отраслях, включая машиностроение, автоматизацию производства, робототехнику и другие промышленные приложения, где требуется высокоскоростная передача данных с датчиков и энкодеров. Интерфейс BiSS C совместим с интерфейсом SSI. .. seealso:: `BiSS-C official website `_ Больше информации доступно на сайте BiSS® LENZ BiSS® C B3 интерфейс однооборотного энкодера ------------------------------------------------- Интерфейс LENZ B3 является исполнением BiSS® C двунаправленного изохронного интерфейса точка-точка для быстрой передачи угловой информации однооборотного энкодера, чтения EDS (электронный даташит) и конфигурации энкодера. .. _lenz_b3_interface: Подключение энкодера: ~~~~~~~~~~~~~~~~~~~~~ .. image:: ./Electrical_connection.png :width: 800 :alt: Схема подключения Типичный цикл запроса углового положения однооборотного энкодера ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. image:: ./interface_B3.png :width: 800 :alt: Цикл запроса углового положения Одиночный цикл обмена строится следующим образом: - Когда линия не используется, мастер устанавливает высокий уровень на сигнале ``MA``. Энкодер указывает готовность, устанавливая высокий уровень на сигнале ``SLO``. - Мастер запрашивает получение углового положения энкодера, начиная передачу импульсов синхронизации на сигнале ``MA``. - Энкодер отвечает на запрос, устанавливая низкий уровень на сигнале ``SLO`` на втором фронте импульса на сигнале ``MA``. Это период ``ACK``, который длится 4 импульса ``MA``. Энкодер передает данные мастеру синхронно с импульсами ``MA``. - Через 4 импульса ``MA`` энкодер передаёт стратовый бит ``Start`` (высокий уровень). - Следущий бит --- ``CDS`` (Control Data Slave), который является ответом на бит ``CDM`` (Control Data Master) мастера, полученный в период ожидания ``Timeout`` в предыдущем цикле. - Далее энкодер передаёт 24 бита данных об угловом положении, начиная со старшего значащего разряда (``MSB``). Незадействованные младшие разряды устанавливаются в ``0``. - Следующие два бита ``nE`` (notError) и ``nW`` (notWarning) --- логические ``1`` при нормальном функционировании энкодера. - Далее контрольная сумма с полиномом ``x**6 + x**1 + x**0`` кода угла и битов ``nE`` и ``nW``. Контрольная сумма передаётся инвертировано. - Когда все данные переданы, мастер останавливает синхронизирующие импульсы и устанавливает высокий уровень на сигнале ``MA``. - Пока энкодер не готов для следующего цикла запроса, он устанавливает низкий уровень на сигнале ``SLO`` (период ожидания ``Timeout`` не менее 13 мкс). - Когда энкодер готов для следующего цикла запроса, он сообщает об этом мастеру, устанавливая высокий уровень на сигнале ``SLO``. Структура данных энкодера, интерфейс B3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: Структура данных энкодера, интерфейс B3 :header-rows: 1 :widths: 5 1 5 20 :class: tight-table * - Данные - Длина - Значение - Описание * - Начало - 2 - ``0b11`` - Готовность энкодера ``1`` на линии ``SLO`` и ``1`` на второй импульс ``MA``. * - ``ACK`` - 4 - ``0b0000`` - `Acknowledge`. Период, равный 4 импульсам `MA`, в течение которого энкодер вычисляет угловое положение * - ``Start`` - 1 - ``0b1`` - Стартовый бит * - ``CDS`` - 1 - - `Control Data Slave`. Бит ответа энкодера на ``CDM`` мастера, полученного на предыдущем цикле обмена. * - Код угла - 24 - <код угла> - Начиная со старшего значащего разряда. Незадействованные разряды устанавливаются в ``0``. * - ``nE`` - 1 - ``0b1`` - `notError`. Логическая ``1`` при корректных данных угла или неполной инициализации * - ``nW`` - 1 - ``0b1`` - `notWarning`. Eсли недостаточно данных для определения достоверного положения датчика при перезапуске или зазор между ротором и статором превышает допуск, устанавливается в ``0``. * - ``CRC`` - 6 - - Контрольная сумма с полиномом ``x**6 + x**1 + x**0`` кода угла, ``nE`` и ``nW`` (инвертированная). * - Пауза - >13 мкс - - Каждый ``SCD`` цикл заканчивается таймаутом длительностью не менее 13 мкс. ``notError`` бит. Если ``nE`` выставляется в ``0``, то датчик функционирует с нарушением. Бит выставляется в низкий уровень, если энкодер определяет, что предыдущее значение (грубого отсчета) менее вероятно, чем текущее, и сообщает наиболее вероятное значение угла (грубого отсчета). Необходимо проверить качество монтажа энкодера. Так же бит ошибки может устанавливаться при отказе некоторых элементов энкодера. В любом случае, это критическая ошибка. ``notWarning`` бит. Это некритическая ошибка. Бит выставляется в низкий уровень, если недостаточно данных для определения достоверного положения энкодера при перезапуске или зазор между ротором и статором превышает допустимый. Энкодер работает и показывает наиболее вероятное значение угла. .. note:: При увеличении зазора между статором и ротором энкодера вырастет погрешность, но нужно контролировать биты ``nE`` и ``nW``. .. list-table:: Длина данных SCD (*Single-Cycle Data*), интерфейс B3 :header-rows: 1 :widths: 4 4 4 4 :class: tight-table * - Код угла - nE - nW - CRC * - b31...b8 - b7 - b6 - b5...b0 .. note:: Если после периода ``ACK`` энкодер выдает стартовый бит ``1`` (``Start``), и 26 битов ``0`` (угловые данные, ``nE`` и ``nW``), а ``CRC = 111111``, то скорее всего ротор установлен неправильной стороной. Убедитесь, что ротор обращен к статору стороной с надписью **Inner side**. Цоколёвка разъёма B3 ~~~~~~~~~~~~~~~~~~~~ В однооборотных энкодерах используется разъём 6-pin Molex Picoblade или Amphenol FCI 10114830-10106LF. Ответная часть: FCI 10114826-00006LF и 10114827-002LF. .. image:: ./Picoblade_6p.png :width: 300 :alt: Внешний вид разъёма на энкодере .. list-table:: Цоколёвка разъёма B3 :header-rows: 1 :widths: 4 4 4 :class: tight-table * - Контакт - Цепь - Цвет * - 1 - Vcc - Красный * - 2 - GND - Черный * - 3 - MA+ - Жёлтый * - 4 - MA- - Зелёный * - 5 - SLO+ - Синий * - 6 - SLO- - Белый LENZ BiSS® C B4 интерфейс многооборотного энкодера -------------------------------------------------- Интерфейс LENZ B4 реализован в многооборотных энкодерах. Типичный цикл запроса углового положения многооборотного энкодера ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Одиночный цикл обмена многооборотного энкодера аналогичен однооборотному со следующими уточнениями (см. :ref:`lenz_b3_interface`): - Далее энкодер передаёт 40 бит данных о количестве оборотов и угловом положении: - 16 бит данных числа оборотов - 24 бита данных углового положения, начиная со старшего значащего разряда (``MSB``). Незадействованные младшие разряды устанавливаются в ``0``. - Контрольная сумма с полиномом ``x**6 + x**1 + x**0`` кода количества оборотов, кода угла и битов ``nE`` и ``nW``. Контрольная сумма передаётся инвертировано. Структура данных энкодера, интерфейс B4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: Структура данных энкодера, интерфейс B4 :header-rows: 1 :widths: 5 1 5 20 :class: tight-table * - Данные - Длина - Значение - Описание * - Начало - 2 - ``0b11`` - Готовность энкодера ``1`` на линии ``SLO`` и ``1`` на второй импульс ``MA``. * - ``ACK`` - 4 - ``0b0000`` - `Acknowledge`. Период, равный 4 импульсам `MA`, в течение которого энкодер вычисляет угловое положение * - ``Start`` - 1 - ``0b1`` - Стартовый бит * - ``CDS`` - 1 - - `Control Data Slave`. Бит ответа энкодера на ``CDM`` мастера, полученного на предыдущем цикле обмена. * - Код количества оборотов - 16 - <код оборотов> - от 0 до 65535 * - Код угла - 24 - <код угла> - Начиная со старшего значащего разряда. Незадействованные разряды устанавливаются в ``0``. * - ``nE`` - 1 - ``0b1`` - `notError`. Логическая ``1`` при корректных данных угла или неполной инициализации * - ``nW`` - 1 - ``0b1`` - `notWarning`. Eсли недостаточно данных для определения достоверного положения датчика при перезапуске или зазор между ротором и статором превышает допуск, устанавливается в ``0``. * - ``CRC`` - 6 - - Контрольная сумма с полиномом ``x**6 + x**1 + x**0`` кода оборотов, кода угла, ``nE`` и ``nW`` (инвертированная). * - Пауза - >13 мкс - - Каждый ``SCD`` цикл заканчивается таймаутом длительностью не менее 13 мкс. .. list-table:: Длина данных SCD (*Single-Cycle Data*), интерфейс B4 :header-rows: 1 :widths: 4 4 4 4 4 :class: tight-table * - Код оборотов - Код угла - nE - nW - CRC * - b47...b32 - b31...b8 - b7 - b6 - b5...b0 Цоколёвка разъёма B4 ~~~~~~~~~~~~~~~~~~~~ В многооборотных энкодерах используется разъём 10-pin Molex Picoblade или Amphenol FCI 10114830-10110LF. Ответная часть: FCI 10114826-00010LF и 10114827-002LF. Многооборотность обеспечивается подключением внешнего элемента питания, который подключается к цепям ``Vbat`` и ``GND_bat``. Схема многооборотности *Battery Backup* обеспечивает работу счетчика оборотов даже при отсутствии основного питания энкодера. Рекомендуется использовать литиевый элемент питания 3,6 В / 1200 мА/ч. .. image:: ./Picoblade_10p.png :width: 400 :alt: Внешний вид разъёма на энкодере .. list-table:: Цоколёвка разъёма B4 :header-rows: 1 :widths: 4 4 4 :class: tight-table * - Контакт - Цепь - Цвет * - 1 - Vbat - Красный * - 2 - GND_bat - Черный * - 3 - NC - Жёлтый * - 4 - Vin - Зелёный * - 5 - GND - Синий * - 6 - NC - Белый * - 7 - MA+ - Оранжевый * - 8 - MA- - Фиолетовый * - 9 - SLO+ - Коричневый * - 10 - SLO- - Серый