В автомобильных сетях обмен информацией обычно охватывает несколько электронных блоков управления (ЭБУ). Для сигналов, связанных с безопасностью — скорость автомобиля, положение селектора, режим автомобиля/питания — целостность и достоверность данных критичны. Модуль симуляции AUTOSAR E2E в TSMaster реализует сквозную защиту данных (End-to-End): данные не будут искажены, потеряны или повреждены при передаче. В статье — инструкция по работе с AUTOSAR E2E в TSMaster.
Ключевые слова: TSMaster, AUTOSAR, E2E, CRC, Rolling Counter, внедрение ошибок.
1. Обозначения и символы
Стили и обозначения, используемые в интерфейсе модуля, приведены в таблицах ниже (рис. 1-1, 1-2).


2. Обзор функций
Модуль симуляции AUTOSAR E2E на основе механизма AUTOSAR E2E и заданной пользователем конфигурации выполняет защиту и проверку данных, а через UI показывает, корректны ли E2E-данные на отправке и приёме. Основные функции:
- отправка E2E-сообщений;
- проверка E2E-сообщений;
- внедрение E2E-ошибок (fault injection);
- прочие функции разработки и тестирования.
В настоящее время модуль AUTOSAR E2E поддерживает CAN, CAN FD и SOME/IP; в дальнейшем планируется поддержка LIN, FlexRay и Ethernet.
3. Окна модуля
Модуль AUTOSAR E2E состоит из двух основных областей: «Состав сети» и «Информация».
3.1. Состав сети
«Состав сети» в виде дерева показывает E2E-информацию из загруженного ARXML-файла: сеть → узел → сообщение → группа сигналов → сигнал (рис. 3-1).

В дереве есть колонки «Сеть — сообщение — группа сигналов — сигнал», «Тип», «Имя конфигурации» и «Тип конфигурации» (рис. 3-2 – 3-5).



3.2. Информация
В области «Информация» отображаются: данные алгоритма Profile, соответствующего выбранной группе сигналов (SignalGroup), а также сведения о проверке E2E при отправке и приёме (рис. 3-5).

Назначение элементов окна (рис. 3-6):

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


▲ Либо в TSMaster: «Analysis» → «Databases» → выберите нужную шину → правой кнопкой по каналу добавьте базу данных (рис. 4-3). Загрузка базы возможна и через API (рис. 4-4).


После этих действий база данных успешно загружена в TSMaster.
4.1.2. Просмотр информации AUTOSAR E2E
В TSMaster откройте «Simulation» → «AUTOSAR E2E» (рис. 4-5).

4.1.3. Включение AUTOSAR E2E
Чтобы включить AUTOSAR E2E, достаточно в RBS-симуляции активировать соответствующий узел — механизм реализации и проверки AUTOSAR E2E включится автоматически: «Simulation» → «CAN RBS Simulation» (рис. 4-6).

4.1.4. Проверка E2E-информации
После выполнения предыдущих шагов запустите измерение и включите RBS-симуляцию — в окне сообщений шины видны отправляемые кадры (рис. 4-7).

В окне сообщений видно, что сигналы CRC и RC (Rolling Counter) меняются в реальном времени, но по этому окну нельзя понять, корректны ли E2E-данные. Вернитесь в просмотрщик AUTOSAR E2E и посмотрите на соответствующую E2E SignalGroup: зелёный — данные корректны, красный — ошибка, чёрный — информация по SignalGroup не обнаружена (рис. 4-8).

Статусы E2E-проверки (рис. 4-9):

5. Внедрение E2E-ошибок
TSMaster предоставляет набор функций внедрения ошибок для тестирования. Доступные типы внедрения:
- потеря сообщения;
- фиксация значения сигнала;
- ошибка CRC;
- ошибка RC (Rolling Counter).
5.1. Внедрение ошибки CRC
Для внедрения ошибки CRC задайте значение CRC в C-скрипте или Python-скрипте TSMaster. Пример кода на C (рис. 5-1):

5.2. Внедрение ошибки RC
Аналогично для RC: значение Rolling Counter задаётся в C-скрипте или Python-скрипте TSMaster — код аналогичен примеру выше, используется событие RC.
6. API
6.1. can_rbs_fault_inject_handle_on_autosar_crc_event

6.2. can_rbs_fault_inject_handle_on_autosar_rc_event
