TSMaster — программная платформа инструментария для работы с автомобильными шинами, разработанная TOSUN: полноценный инструмент для проектирования, симуляции, анализа, диагностики и калибровки шин, поддерживающий весь цикл разработки — от анализа требований до реализации системы. TSMaster подключает, конфигурирует и управляет всеми интерфейсными картами TOSUN, закрывая задачи мониторинга шин, симуляции, диагностики, калибровки, BootLoader, управления I/O, измерений и EOL, а также поддерживает оборудование Vector, Kvaser, PCAN, Intrepid, ZLG и других производителей для совместной мультиканальной симуляции и тестирования. Пользователей TSMaster становится всё больше, и вопросы, которые они задают в процессе работы, мы регулярно собираем для совместного изучения. Смотрим, какие Q&A вошли в этот выпуск.
Ключевые слова: TSMaster, CAN FD, TDC, loop delay, LIN, контрольная сумма, PID, FAQ.
1. Вопросы по CAN FD в TSMaster
Вопрос 1. Есть ли в TSMaster настройка включения TDC (Transmitter Delay Compensation — компенсация задержки передачи в поле данных) для CAN FD, или она включена по умолчанию?
В TSMaster TDC для CAN FD включён по умолчанию: без него приём и передача в FD-режиме работать не будут.
Вопрос 2. Какое значение offset у TDC задано по умолчанию?
В TSMaster это значение вычисляется динамически в зависимости от битрейта: это пропорция, а не фиксированная величина.
1.1. Полезная теория: что такое loop delay (задержка петли)?
В процессе «обратного считывания» CAN-трансивер выполняет два преобразования: передатчик преобразует последовательность цифровых уровней 0 и 1 в дифференциальные уровни, а приёмник — дифференциальные уровни обратно в последовательность 0 и 1. Поскольку преобразование занимает время, физическая задержка неизбежна. На рис. 1 ЭБУ отправляет один кадр: изменение цифрового уровня на выводе RX запаздывает относительно TX на некоторое время.

На рис. 2 показан фрагмент CAN FD-кадра под осциллографом в увеличенном масштабе: изменение уровня RX отстаёт от TX более чем на 100 нс.

1.2. Что такое TDC?
TDC — Transceiver Delay Compensation, компенсация задержки трансивера.
В поле данных CAN FD при использовании повышенного битрейта (с установленным битом BRS) длительность бита (bit time) мала, и задержка, вносимая loop delay локального CAN-трансивера, может превысить Phase_Seg1 (см. рис. 3 — интервал time segment перед точкой сэмплирования): предположим, loop delay составляет 255 нс; если битрейт поля данных CAN FD-кадра ≥ 4 МГц, то bit time ≤ 250 нс, что приводит к обнаружению bit error. Таким образом, loop delay трансивера ограничивает битрейт поля данных CAN FD-кадра.

Поэтому для преодоления этого ограничения введена функция TDC (компенсация задержки трансивера): в поле данных CAN FD-кадра передатчик должен использовать новую точку сэмплирования SSP (Secondary Sample Point — вторичная точка сэмплирования), игнорируя точку сэмплирования SP (sample point), на которую влияет loop delay трансивера.
Secondary Sample Point складывается из loop delay трансивера и конфигурируемого смещения компенсации задержки трансивера (transceiver delay compensation offset).
Loop delay трансивера измеряется в каждом передаваемом кадре от бита EDL (он же FDF) до фронта следующего бита r0 — как промежуток между фронтом переданного бита и фронтом принятого бита (см. рис. 4 и 5). Одного измеренного loop delay недостаточно для определения secondary sample point, поскольку он привязан к фронтам битов.


Смещение компенсации (transceiver delay compensation offset) сдвигает secondary sample point от фронта к середине bit time, в сторону от его границ. Поэтому значение offset не может превышать длительность bit time фазы данных.
Если secondary sample point расположить слишком близко к границе бита CAN (см. рис. 3, поле Sync_Seg), при сэмплировании битов фазы данных возможны проблемы. Чтобы TDC работал надёжно, offset нужно задавать оптимальным. Для сэмплирования в оптимальной зоне TDC offset рекомендуется вычислять по формуле (см. рис. 3):
Offset = Phase_Seg1 + Prop_Seg + 2
На рис. 6 показано положение SSP при таких настройках.

1.3. Условия включения Transceiver Delay Compensation
Итак, обобщим сказанное выше:
- Условие 1: кадр должен быть кадром CAN FD (для классического CAN неприменимо, поскольку его bit time значительно больше loop delay) с установленным битом BRS (битрейт фазы данных выше битрейта фазы арбитража); SSP действует на поле данных CAN FD-кадра;
- Условие 2: TDC применяется только к CAN FD-кадрам, передаваемым ЭБУ, и не применяется к принимаемым ЭБУ кадрам CAN FD.
* Материалы раздела «полезная теория» собраны из сети.
2. Вопросы по LIN-сообщениям в TSMaster
Вопрос 1. Какова максимальная поддерживаемая задержка отправки LIN-сообщений?
Максимум — 255 мс, это ограничение аппаратного уровня. Текущая реализация именно такова.

Вопрос 2. Почему при работе через таблицу расписания (scheduler) возникает ошибка контрольной суммы, а при одиночной отправке ошибки нет?
Проверка показала, что алгоритм контрольной суммы ведомого ЭБУ некорректен, поэтому ошибка контрольной суммы при работе таблицы расписания — это нормальное сообщение об ошибке. А при одиночной отправке контрольная сумма действительно не проверяется, поэтому ошибка не возникает.

Вопрос 3. Когда TSMaster выступает ведущим узлом и отправляет сообщения, приём показывает «receive data timeout», но изредка несколько кадров всё же принимается — что это?
Со стороны TSMaster виден только симптом — изредка принимаются отдельные кадры. Для анализа конкретной причины нужно осциллографом снять форму сигнала LIN-кадров. Ниже две осциллограммы: снятая клиентом с проблемного сообщения и наша, эталонная. Из сравнения видно, что у клиента стоп-бит поля данных сильно растянут — отсюда можно сделать вывод, что данные ответа ЭБУ клиента, скорее всего, некорректны.


Вопрос 4. Что означают квадратные скобки [ ] в идентификаторе LIN-сообщения? Например, [50]10.

Это PID (Protected ID) шины LIN — он однозначно соответствует ID, соответствие можно посмотреть по таблице.

3. Итоги
Выше мы подробно разобрали и систематизировали несколько частых вопросов по двум темам — CAN FD и LIN-сообщения в TSMaster. Если у вас остались вопросы по программе, обращайтесь в техподдержку TOSUN.