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

Ключевые слова: TSMaster, симуляция Ethernet-коммуникаций, Automotive Ethernet, RBS.

1. Обозначения и условные символы

Стили и символы, используемые в руководстве, пояснены в таблицах ниже (рис. 1-1, 1-2).

Пояснение стилей
Рис. 1-1. Пояснение стилей оформления
Пояснение символов
Рис. 1-2. Пояснение условных символов

2. Обзор функций

При разработке ПО пользователи сталкиваются со сценариями, где требуется симуляция Ethernet-коммуникаций:

  • обмен между несколькими ЭБУ для функциональной проверки, когда реальные ЭБУ ещё не разработаны полностью;
  • моделирование сложных коммуникационных режимов и отказов для тестирования робастности системы — воспроизвести такие сценарии на реальных ЭБУ трудно;
  • обновление автомобильного ПО и проверка совместимости с другими версиями — нужны реальные ЭБУ разных версий;
  • совместная проверка взаимодействия ЭБУ от разных поставщиков, когда их совместная работа затруднена;
  • прочие задачи разработки и тестирования.

Для решения этих задач в TSMaster разработан модуль симуляции Ethernet-коммуникаций. Модуль использует Ethernet-протоколы и призван высокоточно имитировать обмен между реальными ЭБУ, предоставляя пользователю полноценное и эффективное решение.

Модуль симуляции Ethernet-коммуникаций воспроизводит процесс отправки и приёма сообщений реальными ЭБУ и проверяет точность и стабильность ПО при обработке сообщений разных типов. Модуль гибко моделирует различные отказные сценарии для тестирования робастности системы: сетевые задержки, потерю пакетов, инжекцию ошибочных сообщений — это помогает проверить поведение ПО в сложных условиях обмена.

3. Окно модуля

Модуль симуляции Ethernet-коммуникаций состоит из трёх функциональных областей:

  • панель инструментов;
  • отображение узлов;
  • список сообщений.

3.1. Панель инструментов

Набор часто используемых функций (рис. 3-1).

Панель инструментов
Рис. 3-1. Панель инструментов модуля симуляции Ethernet-коммуникаций

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

Значки окна
Рис. 3-2. Пояснение значков окна

3.2. Отображение узлов

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

Отображение узлов
Рис. 3-3. Отображение узлов

3.3. Список сообщений

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

Список сообщений
Рис. 3-4. Список сообщений

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

Столбцы списка сообщений
Рис. 3-5. Пояснение столбцов списка сообщений

4. Примеры использования

В этом разделе — практика работы с симуляцией Ethernet-коммуникаций.

4.1. Импорт базы данных Ethernet

Импортировать базу данных Ethernet (arxml/xml) можно следующими способами:

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

Перетаскивание файла базы данных
Рис. 4-1. Перетаскивание файла базы данных
Выбор канала и базы данных
Рис. 4-2. Выбор канала и базы данных

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

Добавление базы данных
Рис. 4-3. Добавление базы данных

После этих действий база данных успешно добавлена в TSMaster.

4.2. Конфигурация симуляции Ethernet-коммуникаций

4.2.1. Выбор канала

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

Выбор канала Ethernet
Рис. 4-4. Выбор канала Ethernet

4.2.2. Общая конфигурация

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

Общая конфигурация
Рис. 4-5. Общая конфигурация TCP/IP Stack

4.3. Симуляция Ethernet-коммуникаций

4.3.1. Настройка сообщений

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

Настройка сообщений
Рис. 4-6. Настройка сообщений

4.3.2. Запуск симуляции

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

Запуск симуляции
Рис. 4-7. Запуск симуляции

4.3.3. Захват сообщений Ethernet

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

Захват сообщений симуляции
Рис. 4-8. Захват сообщений симуляции

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

Кнопка Detail View1
Рис. 4-9. Отображение разобранной информации
Панель данных 1
Рис. 4-10. Панель данных 1

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

Кнопка Detail View2
Рис. 4-11. Панель данных 2: выбор
Панель данных 2
Рис. 4-12. Панель данных 2: поля и сырые данные

4.4. Моделирование отказов

4.4.1. Моделирование сетевой задержки

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

Моделирование сетевой задержки
Рис. 4-13. Моделирование сетевой задержки

4.4.2. Моделирование потери пакетов

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

Моделирование потери пакетов
Рис. 4-14. Моделирование потери пакетов

4.4.3. Моделирование ошибочных сообщений

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

Редактирование поля Data
Рис. 4-15. Редактирование поля Data

5. Программные интерфейсы (API)

5.1. Список API

5.1.1. eth_rbs_set_pdu_phase_and_cycle_by_name

eth_rbs_set_pdu_phase_and_cycle_by_name
Рис. 5-1. API eth_rbs_set_pdu_phase_and_cycle_by_name

5.1.2. eth_rbs_configure

eth_rbs_configure
Рис. 5-2. API eth_rbs_configure

5.1.3. eth_rbs_activate_all_networks

eth_rbs_activate_all_networks
Рис. 5-3. API eth_rbs_activate_all_networks

5.1.4. eth_rbs_activate_network_by_name

eth_rbs_activate_network_by_name
Рис. 5-4. API eth_rbs_activate_network_by_name

5.1.5. eth_rbs_activate_node_by_name

eth_rbs_activate_node_by_name
Рис. 5-5. API eth_rbs_activate_node_by_name

5.1.6. eth_rbs_activate_pdu_by_name

eth_rbs_activate_pdu_by_name
Рис. 5-6. API eth_rbs_activate_pdu_by_name

5.1.7. eth_rbs_set_signal_value_by_element

eth_rbs_set_signal_value_by_element
Рис. 5-7. API eth_rbs_set_signal_value_by_element

5.1.8. eth_rbs_set_signal_value_by_address

eth_rbs_set_signal_value_by_address
Рис. 5-8. API eth_rbs_set_signal_value_by_address

5.1.9. eth_rbs_get_signal_value_by_element

eth_rbs_get_signal_value_by_element
Рис. 5-9. API eth_rbs_get_signal_value_by_element

5.1.10. eth_rbs_get_signal_value_by_address

eth_rbs_get_signal_value_by_address
Рис. 5-10. API eth_rbs_get_signal_value_by_address

5.1.11. eth_rbs_start

eth_rbs_start
Рис. 5-11. API eth_rbs_start

5.1.12. eth_rbs_is_running

eth_rbs_is_running
Рис. 5-12. API eth_rbs_is_running

5.1.13. eth_rbs_stop

eth_rbs_stop
Рис. 5-13. API 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-14. Добавление редактора C-мини-программ

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

Добавление события запуска программы
Рис. 5-15. Добавление события запуска программы

5.2.3. Пояснение кода

В области кода добавленного события запуска введите приведённый пример (рис. 5-16). Код периодически отправляет заданное сообщение и в процессе отправки динамически изменяет передаваемое значение. Логика такова:

  1. Отметить PDU-сообщение с именем PDUTXDemo1_0, переведя его в активное состояние.
  2. Задать параметры сообщения PDUTXDemo1_0: фаза 0 мс, период отправки 500 мс.
  3. Установить значение сигнала SignalDemo1_0_0 равным 1.
  4. Запустить симуляцию Ethernet-коммуникаций и начать периодическую отправку сообщений.
  5. После запуска симуляции выполнять цикл, попеременно устанавливая значение сигнала SignalDemo1_0_0 в 0 и 1.
  6. После завершения цикла остановить симуляцию Ethernet-коммуникаций.
Пример кода периодической отправки
Рис. 5-16. Пример кода периодической отправки сообщения

5.2.4. Компиляция и выполнение

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

При ошибке компиляции внимательно изучите сообщения, найдите и исправьте ошибки в коде, затем повторите компиляцию.

При успешной компиляции редактор автоматически сгенерирует исполняемый файл, соответствующий коду, — запустите его для проверки работы программы (рис. 5-17).

Компиляция кода
Рис. 5-17. Компиляция кода

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

Запуск проекта
Рис. 5-18. Запуск и подключение проекта

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

Запуск скомпилированного файла
Рис. 5-19. Запуск скомпилированного файла

5.2.5. Результат выполнения

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

Результат выполнения
Рис. 5-20. Результат выполнения скомпилированного файла

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

Захват сообщений
Рис. 5-21. Захват сообщений