Page 1 of 3

Руководство по обновлению прошивки модулей (FORScan v2.4)

Posted: Thu May 11, 2023 6:02 am
by support_team

Глоссарий

Posted: Thu May 11, 2023 6:02 am
by support_team
Глоссарий

"Испорченный" модуль - это модуль, который был запрограммирован неудачно и не работает должным образом после перезагрузки. Такой модуль остается программируемым, поэтому его можно восстановить в 99% случаев.

EEPROM (Electronically Erasable Programmable Read-Only Memory) - электрически стираемое перепрограммируемое ПЗУ (ЭСППЗУ)

FEPS (Flash EEPROM Programming Signal) - сигнал программирования флеш-памяти EEPROM (18 В на контакте 13 разъема OBDII, требуется для программирования старого ECU)

FMFU (Ford Module Firmware Update) - Обновление прошивки модуля Ford

MCU (Microcontroller Unit) - микроконтроллер

MFU (Module Firmware Update) - Обновление прошивки модуля

PBL (Primary Boot Loader) - Первичный загрузчик

ROM (Read-Only Memory) - Постоянное запоминающее устройство (ПЗУ)

SBL (Secondary Boot Loader) - Вторичный загрузчик


Назад к содержанию

1.1. Базовые принципы: Введение

Posted: Thu May 11, 2023 10:30 am
by support_team
1.1. Базовые принципы: Введение

Функция обновления прошивки модуля первого поколения появилась в автомобилях Ford, оснащенных ECU EEC-V, уже давно - в конце 1990-х годов. Она была доступна только для блока управления силовым агрегатом (PCM) и блока управления коробкой передач (TCM), и требовала специальной поддержки сигнала FEPS.

Второе поколение появилось в середине / второй половине 2010-х годов, когда компания Ford разработала свою систему общей глобальной диагностики, которая используется до сих пор. Начиная с 2010-2011 модельного года, многие модули в автомобилях Ford имеют функцию обновления прошивки модуля. А в новейших автомобилях почти все модули могут быть перепрограммированы.

В 2020 году компания Ford представила функцию обновления по воздуху (Over-The-Air, OTA), которую можно отнести к третьему поколению функции обновления прошивки модуля.

В автомобилях Mazda до 7-го поколения (2019 + МГ Mazda 3 /CX-30) реализованы те же функции обновления прошивки модуля, что и в автомобилях Ford, но в меньшем объеме: даже в предпоследнем, шестом поколении Mazda поддерживается обновление прошивки только для модулей управления силовым агрегатом (PCM) и управления коробкой передач (TCM), а также для небольшого количества других модулей.

В данный момент отсутствует информация о внедрении в моделях Mazda 7-го поколения функции обновления прошивки модуля Ford.


Назад к содержанию

1.2 Базовые принципы: Процесс обновления флеш-памяти и прошивки

Posted: Thu May 11, 2023 11:37 am
by support_team
1.2 Базовые принципы: Процесс обновления флеш-памяти и прошивки

Каждый модуль представляет собой электронный блок, управляемый микроконтроллер (MCU) - своего рода мини-компьютер. Модуль оснащен флеш-памятью, в которой хранятся исполняемый код и программные данные. Код и данные содержатся в файлах прошивки.

На рисунке 1а показано, как все вышеописанное можно отобразить в виде блок-схемы.

Image
Рисунок 1a. Организационная структура памяти

Показанное на данном рисунке разделение на блоки ROM и Flash является условным: оба сегмента расположены в перезаписываемой флеш-памяти микроконтроллера, однако сегмент ROM недоступен для перепрограммирования в рамках функционала обновления прошивки модуля. Кроме того, на рисунке представлен упрощенный вид: ROM может состоять из нескольких сегментов, которые могут разделять сегменты Flash во флеш-памяти микроконтроллера.

В качестве первого блока всегда выступает Первичный загрузчик (PBL). Первичный загрузчик обычно жестко зашит в ROM и не может быть перепрограммирован. Его задача - при включении модуля запуститься (взять управление) и затем запустить исполняемое приложение, которое реализует основную функциональность модуля. В Первичном загрузчике также реализованы некоторые базовые функции, позволяющие осуществлять взаимодействие с дилерским оборудованием.

Приложение, которое реализует основную функцию модуля (управление двигателем для PCM, управление тормозами для ABS и т.д.), содержится в файле прошивки под названием “Стратегия”.

Данные, необходимые для работы данного приложения, содержатся в других файлах прошивки. Эти данные могут быть представлены различными типами прошивки - “Калибровка”, “Конфигурация” и т.д. Например, изображения модуля управления панелью приборов (IPC) хранятся в калибровочной прошивке, а настройки модуля управления аккумулятором (BCM) хранятся в прошивках конфигурации.

Процесс загрузки выполняется следующим образом:

1. Питание включено, микроконтроллер модуля запускает Первичный загрузчик.
2. Первичный загрузчик пытается найти и запустить приложение (исполняемый файл).
3. Если приложение запущено правильно, модуль находится на связи в обычном режиме работы.

Функции обновления прошивки модуля недоступны в обычном режиме работы. Чтобы выполнить обновление прошивки, модуль должен быть переведен в специальный режим программирования, а диагностическое оборудование должно загрузить в оперативную память Вторичный загрузчик (SBL). Вторичный загрузчик разблокирует функции стирания флеш-памяти и перепрограммирования.

Процесс обновления прошивки с помощью FORScan выполняется следующим образом:

1. Модуль находится в обычном режиме работы, FORScan переводит его в специальный режим программирования, загружает Вторичный загрузчик в память модуля и запускает его.
2. FORScan начинает программировать файл прошивки №1:
2.1. Открывает и анализирует файл прошивки. Файл прошивки содержит один или несколько блоков.
2.2. Стирает часть флеш-памяти модуля, выделенную для этого файла прошивки
2.3. Заливает файл прошивки поблочно. Первый блок заливается следующим образом:
2.3.1. Запрашивает начало заливки блока из модуля. Модуль подтверждает заливку и возвращает размер пакета данных, который должен быть использован для заливки.
2.3.2. Отправляет данные блока в пакетах требуемого размера. Модуль должен подтверждать получение каждого пакета.
2.3.3. После передачи блока модуль возвращает контрольную сумму полученных данных, и FORScan сравнивает ее с контрольной суммой, имеющейся в файле прошивки.
2.4. Если прошивка содержит более одного блока, все последующие блоки заливаются точно таким же образом (шаги 2.3.1-2.3.3)
3. Если доступны дополнительные файлы прошивки, они заливаются таким же образом и выполняются все те же действия (2.1-2.4).
4. После заливки всех файлов прошивки FORScan запрашивает у модуля, доступно ли действующее приложение, показывает результат пользователю, затем переводит модуль из режима программирования в обычный режим.


Назад к содержанию

1.3 Базовые принципы: Система шин данных

Posted: Thu May 11, 2023 12:30 pm
by support_team
1.3 Базовые принципы: Система шин данных

Модули взаимодействуют друг с другом посредством системы шин данных.

Первые программируемые модули использовали шину Ford SCP (SAE J1850 PWM), в более новых моделях используются шины CAN.

Если модули установлены на разных шинах, для маршрутизации трафика используются специальные шлюзы. В более старых моделях роль шлюза играл один из модулей, а в автомобилях последнего поколения уже используются выделенные шлюзы.

При программировании модулей необходимо учитывать следующие нюансы:

1. Разные шины работают с разными скоростями. MS-CAN работает в 4 раза медленнее, чем HS-CAN, поэтому программирование займет до 4 раз больше времени.
2. Доступ к некоторым модулям и их программирование осуществляется не напрямую, а через шлюз.
3. Во многих случаях требуется прервать внутренний обмен данными между модулями (опция "Остановить активность в шинах").


Назад к содержанию

1.4. Базовые принципы: Концепция "Сборки", номера деталей и уровень калибровки

Posted: Thu May 11, 2023 12:31 pm
by support_team
1.4. Базовые принципы: Концепция "Сборки", номера деталей и уровень калибровки

Производитель рассматривает каждый модуль как сборку (“assy”), которая включает в себя аппаратное обеспечение и прошивку.

Сборка имеет номер детали (part number), который обычно совпадает с номером детали модуля, который мы используем для заказа этого модуля по каталогу запасных частей. Номер детали имеет следующий формат:

JK2T-14G371-FCC, где JK2T - префикс, 14G371 - основная часть, FCC - суффикс.

Основная часть определяет тип элемента и обычно остается неизменной в разных версиях. Например, -12A650- всегда означает сборку модуля управления силовым агрегатом (PCM), независимо от того, какого модельного года этот PCM, 2001 или 2020. Префикс - это некоторое внутренне сгенерированное число, которое определяет семейство детали. Суффикс - это также некоторое внутренне сгенерированное число, которое определяет версию детали.

Номера деталей формируются с использованием не только цифр, но и заглавных латинских букв, за некоторыми исключениями (например, буквы I, O, W не используются). Ранжирование латинских букв производится по алфавиту (например, А меньше B, B меньше E, E меньше X и т.п.).

Порядок формирования номера позволяет понять, как номера зависят друг от друга. Общее правило заключается в том, что более новые версии имеют более высокие номера.

Например, у нас есть 3 номера:

JK2T-14G371-FDA
JK2T-14G371-FDB
JK2T-14G371-FDC

Мы видим, что префиксы и основные части у номеров совпадают, а суффиксы FDA, FDB, FDC отличаются лишь последней буквой и поэтому очень близки друг к другу, так как A+1=B, B+1=C.

Соответственно, мы можем сделать из этого следующий вывод:

JK2T-14G371-FDB - это следующая версия после JK2T-14G371-FDA
JK2T-14G371-FDC - это следующая версия после JK2T-14G371-FDB.

Следует отметить, что сравнение номеров версий не дает нам достаточной информации о совместимости между версиями. Если разница только в последней букве, то это обычно означает, что модули принадлежат к одной ветви и, скорее всего, детали совместимы. Однако разница всего лишь в предпоследнем символе может указывать на совершенно другой модуль другого производителя и с другим оборудованием.

Аппаратное обеспечение и все файлы прошивки также имеют свои собственные номера деталей. Номер сборки обычно (но не всегда) зависит от внутренних компонентов. При изменении одного из компонентов (аппаратного обеспечения или прошивки) изменяется и номер сборки. Однако не все компоненты участвуют в формировании номера сборки. Номер сборки обычно формируется из номеров аппаратного обеспечения, прошивок стратегии и калибровки, при этом несколько сборок с одинаковыми номерами могут содержать разные файлы конфигурации.

Упомянутая выше концепция номера сборки (когда номер сборки является производным от номеров программного и аппаратного обеспечения) хороша, но имеет два серьезных недостатка:

- она не применима для некоторых модулей по разным причинам
- после обновления прошивки номер сборки не может быть изменен (номер жестко зашивается производителем в модуль на этапе изготовления).

Обе проблемы довольно сильно затрудняют распознавание фактической версии прошивки модуля. Чтобы их решить, компания Ford использует термин “Уровень калибровки”.

Говоря кратко, “Уровень калибровки” означает "виртуальный" номер сборки, который формируется динамически путем использования данных по всем прошивкам в памяти модуля. FORScan “вычисляет“ “Уровень калибровки” каждого блока в процессе подключения к автомобилю.


Назад к содержанию

1.5. Базовые принципы: Особенности номеров деталей Mazda

Posted: Thu May 11, 2023 12:32 pm
by support_team
1.5. Базовые принципы: Особенности номеров деталей Mazda

Компания Mazda использует тот же принцип формирования номеров деталей, но с некоторыми особенностями. Помимо сокращенной функциональности обновления прошивок модулей (так как обновление прошивок модулей Ford реализовано только в определенных модулях), есть и другие небольшие отличия.

Во-первых, Mazda использует другие номера деталей. Например, если основная часть номера у модуля управления силовым агрегатом (PCM) компании Ford будет обозначаться как 12A650, то та же самая часть у компании Mazda будет обозначаться как 18881.

Второе отличие заключается в том, что у компании Mazda нет строгих правил для суффиксов, например, номера могут вообще его не иметь:

L3DT-18881-

или выглядеть необычно, например:

GHR1-437AS-3-00

в этом случае "3-00" является суффиксом, где (как мы предполагаем) 3 - это номер версии, а 00 - номер подверсии. Таким образом, разные версии одного и того же модуля будут выглядеть следующим образом:

GHR1-437AS-3-00
GHR1-437AS-3-10
GHR1-437AS-3-20
GHR1-437AS-3-30
GHR1-437AS-3-40
GHR1-437AS-3-50
GHR1-437AS-3-60
GHR1-437AS-3-70
GHR1-437AS-3-80
GHR1-437AS-3-90


Назад к содержанию

2.1. Функция обновления прошивки модуля в FORScan: Организация основных функций

Posted: Thu May 11, 2023 12:36 pm
by support_team
2.1. Функция обновления прошивки модуля в FORScan: Организация основных функций

Функция обновления прошивки модуля в FORScan реализована отдельно для каждого модуля. Функционал групповых обновлений прошивки отсутствует: если некоторые модули должны обновляться в паре (например, модули управления силовым агрегатом и коробкой передач), пользователь должен выполнять эти операции последовательно.

Функция обновления прошивки модуля отображается в разделе "Конфигурация и программирование" для каждого модуля, для которого она поддерживается. Функция отображается, если выполняются следующие условия:

1. FORScan идентифицировал модуль (прочитал номер сборки и нашел его в базе данных).
2. FORScan поддерживает функцию обновления прошивки модуля для этого модуля.

Таким образом, если для какого-либо модуля не отображается функция обновления прошивки, значит FORScan по какой-то причине не может идентифицировать модуль, либо функция программирования этого модуля еще не реализована.

После запуска функции обновления прошивки модуля FORScan добавляет вкладку "Обновление прошивки модуля" в верхней части окна приложения. На этой вкладке отображается функциональный экран обновления прошивки модуля. Ход выполнения, статус и другая информация отображаются на вкладке "Лог". При необходимости FORScan переключается между вкладками "Лог" и "Обновление прошивки модуля", чтобы информировать пользователя о статусе выполнения данного процесса.

Функциональный экран вкладки "Обновление прошивки модуля" состоит из трех областей: Рабочей области, Панели параметров и Панели кнопок, как показано на рисунке 2а:

Image
Рисунок 2a. Организация основных функций

Подробное описание этих областей в следующих разделах.


Назад к содержанию

2.2. Функция обновления прошивки модуля в FORScan: Рабочая область

Posted: Thu May 11, 2023 12:41 pm
by support_team
2.2. Функция обновления прошивки модуля в FORScan: Рабочая область

Рабочая область предназначена для отображения информации о прошивках, также она позволяет пользователю выбирать нужные файлы прошивки.

Рабочая область состоит из четырех столбцов, в которых представлена следующая информация (слева направо):

1. Наименование позиции и информация о ней.
2. Текущая прошивка в модуле (запрограммированная в данный момент).
3. Выбранная прошивка для заливки в модуль.
4. Статус позиции, дополнительная информация и элементы управления.

На рисунке 2b показан пример рабочей области:

Image
Рисунок 2b. Рабочая область обновления прошивки модуля

Данные представлены в виде строк.

Первая строка всегда представляет собой номер детали (номер сборки), считываемый из модуля.

Вторая строка - Уровень калибровки (значение этих цифр описано в Разделе 1.4 Базовые принципы: Концепция "Сборки", номера деталей и уровень калибровки).

Третья строка - это всегда идентификатор оборудования, четвертая строка - это всегда Вторичный загрузчик.

В пятой и последующих строках отображаются прошивки модуля. Конечное количество строк зависит от количества прошивок, доступных для данного модуля.

Первый столбец представляет следующую информацию по файлам прошивки:
- тип файла прошивки: Стратегия, Калибровка, Конфигурация и т.д.;
- тип интерфейса (CAN, USB и т.д.);
- идентификатор данных файла прошивки (DID), используемый Ford.

Во втором столбце отображается текущий статус модуля: файлы прошивки, которые были запрограммированы в модуле на данный момент.

В третьем столбце указаны значения "Для программирования", то есть файлы прошивки, которые будут залиты в модуль.

В верхней ячейке находится переключатель режимов программирования. На данный момент представлены три режима:

1. Доступный- FORScan предлагает к использованию совместимые прошивки той же ветки;
2. Заводской - FORScan предлагает прошивку для этого модуля, программируемую на заводе. Чтобы реализовать эту функцию, FORScan необходимо загрузить из Интернета файл, содержащий As Build Data (AB), поэтому требуется подключение к Интернету. Если файл AB не содержит информации о прошивке выбранного модуля, эта функция не будет работать;
3. Произвольно - FORScan позволяет пользователю вручную выбирать любые программные файлы, заранее сохраненные на локальный диск компьютера (ноутбука).

Вторая ячейка в третьем столбце позволяет выбрать уровень калибровки (только в режиме "Доступный"), как показано на рисунке 2c:

Image
Рисунок 2c. Выбор уровня калибровки

Совместимость прошивок рассчитывается с использованием довольно сложного алгоритма. Более подробную информацию можно найти в Разделе 3.4. Руководство по программированию: База данных прошивок.

В режиме Произвольно пользователь должен нажать кнопку с 3 точками, чтобы открыть диалоговое окно ввода имени файла / выбора файла, как показано на рисунке 2d:

Image
Image
Image
Рисунок 2d. Выбор файла прошивки в режиме “Произвольно”

Обратите внимание, что по умолчанию файлы фильтруются по номеру основной части, однако пользователь может использовать фильтр *.VBF и выбрать любой файл (опасно!).

В последнем, четвертом столбце содержатся дополнительные элементы управления и информации:
- кнопка с 3 точками - используется для ручного выбора файлов, разблокирована только в режиме Произвольно;
- цветной квадрат - представляет текущий статус файла прошивки (см. ниже);
- в зависимости от статуса файла отображается либо информация о статусе, либо размер файла прошивки в байтах.

Возможные статусы файлов прошивки:
- Зеленый - файл доступен на локальном диске и будет залит;
- Красный - файл отсутствует на локальном диске, необходимо скачать его;
- Желтый - файл не будет залит по какой-либо причине: либо он не поддерживается текущим методом программирования, либо игнорируется (если отключена опция "Программировать также не изменившиеся прошивки").


Назад к содержанию

2.3. Функция обновления прошивки модуля в FORScan: Панель опций

Posted: Thu May 11, 2023 12:46 pm
by support_team
2.3. Функция обновления прошивки модуля в FORScan: Панель опций

На данной панели доступны 3 опции:

1. Программировать также не изменившиеся прошивки.

Процедура обновления прошивки модуля была разработана таким образом, чтобы быть максимально гибкой. Это означает, в частности, что файлы прошивки могут быть залиты отдельно. Таким образом, пользователь может залить, например, только файл Конфигурации или Калибровки и не заливать файл Стратегии.

Нюанс заключается в том, что многие модули требуют одновременной заливки всех файлов прошивки, даже если они не отличаются от уже залитых в модуль прошивок. Если будут запрограммированы не все файлы, такой модуль может оказаться "испорченным". Поэтому настоятельно рекомендуется оставлять эту опцию включенной, если только вы не знаете веской причины для ее отключения.

Итак, если этот параметр не выбран, FORScan сравнивает текущие и новые файлы прошивки и программирует только те файлы, которые были изменены. На рисунке 2e показано, как может выглядеть экран, если данный параметр отключен:

Image
Рисунок 2e. Опция «Программировать также не изменившиеся прошивки» отключена

На данном конкретном примере мы видим, что выбранный Уровень калибровки отличается от текущего лишь прошивкой типа "Image", которая не может быть залита с помощью FORScan. Таким образом, в данном примере выполнять перепрограммирование не имеет смысла.

2. Остановить активность в шинах

Если эта опция включена, FORScan отправляет широковещательные сообщения в систему шин данных, чтобы проинформировать каждый модуль о том, что начинается процедура программирования. Таким образом, FORScan переключает систему шин данных в режим программирования.

FORScan продолжает удерживать систему шин данных в этом режиме на протяжении всего времени программирования. В зависимости от используемого адаптера, FORScan удерживает или всю систему, или только одну конкретную шину данных.

Эта опция включена по умолчанию и рекомендуется оставлять ее включенной, так как без нее программирование некоторых модулей не будет выполнено должным образом.

3. Режим восстановления

Данная опция активирует специальный режим восстановления. Он используется, если запрограммированный модуль "зависает", то есть перестает реагировать на какие-либо команды.

По умолчанию эта опция отключена. При включении опции "Режим восстановления", опция «Остановить активность в шинах" автоматически отключается, поскольку они являются взаимоисключающими.
Примечание: Этот режим не предназначен для восстановления "испорченного" модуля.

Более подробное описание использования данного режима можно найти в Разделе 4.4. Поиск и устранение неисправностей: Режим восстановления.

4. Игнорировать контрольную сумму

При загрузке прошивки в формате VBF, FORScan сравнивает контрольную сумму каждого залитого в ECU блока данных с контрольной суммой, указанной в VBF файле. Если контрольная сумма не совпала, FORScan считает, что заливка прошивки прошла неудачно и пытается перезалить блок данных.

Такое поведение программы может быть нежелательным в случае, если пользователь пытается загрузить модифицированный VBF файл, у которого контрольная сумма не соответствует данным в файле.

Данная опция в подобных случаях позволяет исключить проверку контрольной суммы.


Назад к содержанию