В разработке автомобильной электроники симуляция Ethernet-коммуникаций стала ключевым элементом тестирования ЭБУ, диагностики и сетевого анализа. TSMaster предоставляет инженерам эффективное решение для симуляции обмена по Automotive Ethernet. Это руководство разбирает конфигурацию Ethernet-коммуникаций в TSMaster, приём и передачу сообщений, симуляцию протоколов и приёмы автоматизации тестирования.
Ключевые слова: TSMaster, симуляция Ethernet-коммуникаций, Automotive Ethernet, RBS.
1. Обозначения и условные символы
Стили и символы, используемые в руководстве, пояснены в таблицах ниже (рис. 1-1, 1-2).


2. Обзор функций
При разработке ПО пользователи сталкиваются со сценариями, где требуется симуляция Ethernet-коммуникаций:
- обмен между несколькими ЭБУ для функциональной проверки, когда реальные ЭБУ ещё не разработаны полностью;
- моделирование сложных коммуникационных режимов и отказов для тестирования робастности системы — воспроизвести такие сценарии на реальных ЭБУ трудно;
- обновление автомобильного ПО и проверка совместимости с другими версиями — нужны реальные ЭБУ разных версий;
- совместная проверка взаимодействия ЭБУ от разных поставщиков, когда их совместная работа затруднена;
- прочие задачи разработки и тестирования.
Для решения этих задач в TSMaster разработан модуль симуляции Ethernet-коммуникаций. Модуль использует Ethernet-протоколы и призван высокоточно имитировать обмен между реальными ЭБУ, предоставляя пользователю полноценное и эффективное решение.
Модуль симуляции Ethernet-коммуникаций воспроизводит процесс отправки и приёма сообщений реальными ЭБУ и проверяет точность и стабильность ПО при обработке сообщений разных типов. Модуль гибко моделирует различные отказные сценарии для тестирования робастности системы: сетевые задержки, потерю пакетов, инжекцию ошибочных сообщений — это помогает проверить поведение ПО в сложных условиях обмена.
3. Окно модуля
Модуль симуляции Ethernet-коммуникаций состоит из трёх функциональных областей:
- панель инструментов;
- отображение узлов;
- список сообщений.
3.1. Панель инструментов
Набор часто используемых функций (рис. 3-1).

Значки окна пояснены на рис. 3-2.

3.2. Отображение узлов
Показывает узлы базы данных. Наведите курсор на узел и дважды щёлкните, чтобы отметить его или снять отметку (рис. 3-3).

3.3. Список сообщений
Показывает все сообщения базы данных (рис. 3-4).

Назначение каждого столбца списка сообщений пояснено на рис. 3-5.

4. Примеры использования
В этом разделе — практика работы с симуляцией Ethernet-коммуникаций.
4.1. Импорт базы данных Ethernet
Импортировать базу данных Ethernet (arxml/xml) можно следующими способами:
▲ Перетащите файл базы данных в окно TSMaster — по умолчанию база загрузится на канал 1 соответствующего типа шины. Затем в TSMaster можно перепривязать базу к нужному каналу (рис. 4-1, 4-2).


▲ В TSMaster выберите «Анализ» → «Базы данных», выберите нужный тип шины, щёлкните правой кнопкой по каналу и добавьте базу данных (рис. 4-3).

После этих действий база данных успешно добавлена в TSMaster.
4.2. Конфигурация симуляции Ethernet-коммуникаций
4.2.1. Выбор канала
В TSMaster выберите «Аппаратное обеспечение» → «Выбор каналов» и в появившемся окне задайте каналы Ethernet — виртуальные или реальные аппаратные (рис. 4-4).

4.2.2. Общая конфигурация
В TSMaster выберите «Аппаратное обеспечение» → «TCP/IP Stack», в появившемся окне откройте общую конфигурацию и отметьте опцию «Сохранять конфигурации, динамически созданные во время работы» — иначе они будут удалены при отключении (рис. 4-5).

4.3. Симуляция Ethernet-коммуникаций
4.3.1. Настройка сообщений
В TSMaster выберите «Симуляция» → «Симуляция Ethernet-коммуникаций». В появившемся окне отметьте сообщения и задайте значение Interval (мс) — сообщения будут отправляться с заданным периодом. Также можно задать значение Data (рис. 4-6).

4.3.2. Запуск симуляции
Запустите проект в TSMaster. Выберите «Симуляция» → «Симуляция Ethernet-коммуникаций» и в появившемся окне нажмите «Запустить симуляцию» (рис. 4-7).

4.3.3. Захват сообщений Ethernet
В TSMaster выберите «Анализ» → «Сообщения». В окне сообщений Ethernet будут видны отправленные симуляцией сообщения (рис. 4-8).

После захвата нажмите «Detail View1» (кнопка в красной рамке на рис. 4-9), чтобы открыть панель данных 1; при нажатии на сообщение слева отображается разобранная информация (рис. 4-10).


Нажмите «Detail View2» (кнопка в красной рамке на рис. 4-11), чтобы открыть панель данных 2; при нажатии на сообщение слева отображается разобранная информация: в верхней части — разобранные поля, в нижней — исходные данные в шестнадцатеричном и ASCII-виде (рис. 4-12).


4.4. Моделирование отказов
4.4.1. Моделирование сетевой задержки
В окне симуляции Ethernet-коммуникаций измените значение Interval (мс), чтобы задать период отправки сообщения, и значение Phase (мс), чтобы задать фазу отправки. На рис. 4-13 задан период 500 мс и фаза 100 мс — так моделируется сетевая задержка.

4.4.2. Моделирование потери пакетов
В окне симуляции Ethernet-коммуникаций снимите отметку с нужного сообщения — при симуляции оно отправляться не будет, что моделирует потерю пакетов (рис. 4-14).

4.4.3. Моделирование ошибочных сообщений
В окне симуляции Ethernet-коммуникаций измените поле Data, задав ошибочное значение, — так моделируется отправка сообщения с ошибочными данными (рис. 4-15).

5. Программные интерфейсы (API)
5.1. Список API
5.1.1. eth_rbs_set_pdu_phase_and_cycle_by_name

5.1.2. eth_rbs_configure

5.1.3. eth_rbs_activate_all_networks

5.1.4. eth_rbs_activate_network_by_name

5.1.5. eth_rbs_activate_node_by_name

5.1.6. eth_rbs_activate_pdu_by_name

5.1.7. eth_rbs_set_signal_value_by_element

5.1.8. eth_rbs_set_signal_value_by_address

5.1.9. eth_rbs_get_signal_value_by_element

5.1.10. eth_rbs_get_signal_value_by_address

5.1.11. eth_rbs_start

5.1.12. eth_rbs_is_running

5.1.13. eth_rbs_stop

5.2. Пример использования API
В этом разделе показано, как вызовами API реализовать ряд функций: включение отправки сообщений, задание периода отправки, установку значений данных сообщения и запуск симуляции.
5.2.1. Инициализация окружения
Следуя разделам 4.1 и 4.2, последовательно выполните импорт базы данных Ethernet, выбор канала и включение нужных опций конфигурации.
5.2.2. Как вызывать API
Добавьте редактор C-мини-программ в модуле «Проектирование» → «C-мини-программы». Редактор поддерживает вызов всех API из раздела 5.1 (рис. 5-14).

В редакторе C-мини-программ доступно несколько типов событий; для примера возьмём событие запуска программы. Щёлкните правой кнопкой, чтобы добавить событие запуска, и напишите нужную логику в его области кода — при запуске программы этот код выполнится автоматически (рис. 5-15).

5.2.3. Пояснение кода
В области кода добавленного события запуска введите приведённый пример (рис. 5-16). Код периодически отправляет заданное сообщение и в процессе отправки динамически изменяет передаваемое значение. Логика такова:
- Отметить PDU-сообщение с именем
PDUTXDemo1_0, переведя его в активное состояние. - Задать параметры сообщения
PDUTXDemo1_0: фаза 0 мс, период отправки 500 мс. - Установить значение сигнала
SignalDemo1_0_0равным 1. - Запустить симуляцию Ethernet-коммуникаций и начать периодическую отправку сообщений.
- После запуска симуляции выполнять цикл, попеременно устанавливая значение сигнала
SignalDemo1_0_0в 0 и 1. - После завершения цикла остановить симуляцию Ethernet-коммуникаций.

5.2.4. Компиляция и выполнение
В редакторе C-мини-программ нажмите кнопку «Компилировать» — редактор сразу начнёт компиляцию кода. По завершении система выдаст результат: «Компиляция успешна» или «Ошибка компиляции».
При ошибке компиляции внимательно изучите сообщения, найдите и исправьте ошибки в коде, затем повторите компиляцию.
При успешной компиляции редактор автоматически сгенерирует исполняемый файл, соответствующий коду, — запустите его для проверки работы программы (рис. 5-17).

Поскольку симуляция Ethernet-коммуникаций требует запущенного проекта TSMaster, перед выполнением сгенерированного исполняемого файла убедитесь, что TSMaster запущен и проект подключён. Только в этом состоянии исполняемый файл отработает без ошибок (рис. 5-18).

В окне редактора C-мини-программ нажмите кнопку «Запустить», чтобы выполнить исполняемый файл (рис. 5-19).

5.2.5. Результат выполнения
После запуска исполняемого файла откройте окно симуляции Ethernet-коммуникаций: его содержимое полностью соответствует настройкам, выполненным вызовами API в примере, — отмеченные сообщения, заданный период отправки, значения сигналов сообщения; видно, что симуляция успешно запущена (рис. 5-20).

Одновременно в окне «Сообщения Ethernet» видны отправляемые сообщения: значения данных циклически изменяются — это эффект попеременной установки сигнала в 0 и 1 в цикле примера. По завершении цикла симуляция останавливается: пример полностью отработал (рис. 5-21).
