Модуль базовой диагностики TSMaster состоит из двух частей: параметры BasicDiagnostic и CombinedService. Команды, выполняемые полностью независимо, помещаются в BasicDiagnostic; команды, требующие сочетания нескольких запросов, — в CombinedService. Разбираем настройку обеих частей.
Ключевые слова: TSMaster, UDS, BasicDiagnostic, CombinedService, Session Control, Download File, Checksum, CRC.
1. Добавление и удаление сервисных команд
Наведите курсор на сервисную команду, которую нужно добавить или удалить, нажмите правую кнопку мыши и в раскрывшемся меню выберите действие (рис. 1-1).

2. Настройка параметров сервиса BasicDiagnostic
На примере Session Control настраиваются следующие параметры (рис. 2-1):

- Имя сервиса — можно задать понятное и удобное для управления имя.
- Is Function ID — отправлять ли диагностический запрос этого сервиса по функциональному идентификатору (Functional ID).
- Выбор типа подсервиса — например, у Session Control параметр DiagnosticSessionType содержит типы сессий, показанные на рисунке выше.
- Порядок байтов списка параметров — поддерживаются Motorola и Intel.
- Список параметров — помимо диагностического ID и ID подсервиса сервис может нести параметры, передаваемые тестируемому ЭБУ. Список параметров задаётся отдельно для кадров запроса и ответа; пользователь может добавлять и удалять параметры разных типов (рис. 2-2).

ID сервиса и ID подсервиса (например, DiagnosticSessionType у SessionControl) обязательны, список параметров — опционален. После изменения конфигурации в верхней части окна в реальном времени отображается пример фактического диагностического сообщения (рис. 2-3): при показанной настройке тестер отправит сервисное сообщение 10 02 xx xx xx (xx — переменные параметры, определяемые введёнными пользователем данными), а ожидаемый положительный ответ — 50 02 xx.

2.1. Типы параметров диагностических сервисов
Диагностический модуль поддерживает 7 типов данных параметров: UInt, Int, Single, Double, HexArray, ASCII и SystemVar (рис. 2-4).

- UInt — беззнаковое целое; длина данных не более 32 бит и кратна 8: 8, 16, 24 или 32 бита.
- Int — знаковое целое; длина данных не более 32 бит и кратна 8: 8, 16, 24 или 32 бита.
- Single — число с плавающей точкой одинарной точности, фиксированная длина 32 бита; пользователь вводит и получает значение напрямую.
- Double — число с плавающей точкой двойной точности, фиксированная длина 64 бита.
- HexArray — массив шестнадцатеричных значений, длина кратна 8; вводятся данные в шестнадцатеричном виде.
- ASCII — строка ASCII, длина кратна 8; вводится массив ASCII-символов, перед отправкой преобразуется в шестнадцатеричный вид.
- SystemVar — системная переменная, длина кратна 8. Системные переменные TSMaster поддерживают типы UInt, Int, Single, Double, UIntArray, DoubleArray, HexArray, String и др.; конкретный тип определяется определением самой переменной.
3. Настройка сообщений CombinedService
3.1. Download File
Из составных сервисов в настоящее время поддерживается сервис скачивания файла (Download File) (рис. 3-1).

- Имя сервиса — задайте имя конфигурации.
- Алгоритм CRC — выберите алгоритм контрольной суммы для файла (подробнее о CRC — в разделе 3.2).
- Загрузка исполняемого файла — TSMaster поддерживает форматы Hex, S19, Mot и bin. После загрузки в нижней части окна отображаются сегменты, адреса и длины, содержащиеся в файле.
- Удаление — удалить загруженный исполняемый файл.
- Hex viewer — в TSMaster встроен просмотрщик-редактор исполняемых файлов TSHexViewer (рис. 3-2): с его помощью можно просматривать подробную информацию о загруженном Hex-файле.
- TransferExit (0x37) — выбор типа параметров команды завершения передачи.

3.2. Checksum
При загрузке программы в ЭБУ для гарантии целостности данных применяется алгоритм контрольной суммы. В составные сервисы диагностического модуля TSMaster встроены основные CRC-алгоритмы (рис. 3-3).

После выбора алгоритма диагностический модуль вычисляет контрольные суммы исполняемого файла: и для каждого блока (Block), и для файла целиком (рис. 3-4).

Вычисленные значения Checksum регистрируются как системные переменные (рис. 3-5).

Диагностический модуль TSMaster умеет передавать системные переменные как параметры команд. Например, для типовой проверки целостности загруженного файла настройте команду RoutineControl, как на рис. 3-6.

3.3. Загрузка бинарного файла
Форматы Hex и S19 содержат начальный адрес и длину данных внутри файла. Бинарный файл (Binary) начального адреса не содержит, поэтому при его загрузке пользователь вручную вводит начальный адрес сегмента данных (рис. 3-7): при загрузке Binary программа автоматически открывает окно установки начального адреса. Адрес задаётся в шестнадцатеричном виде в диапазоне [0x00000000, 0xFFFFFFFF]; задайте значение и подтвердите. При отмене используется адрес по умолчанию 0x00000000.

После установки адреса и загрузки у Binary-файла появляется начальный адрес сегмента данных (рис. 3-8).

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