Стантдарт KIWI
Существует три основных стандарта автомобильных систем GPS навигации: Navteq, GDF, KWI.
многие японские компании (прежде всего Мицубиси, Тойота, Ниссан), а также General Motors используют системы навигации, построенные на базе стандарта консорциума KIWI-W. Subaru - используют навигации производства Kenwood (тоже KWI).
Описание структуры файлов этого стандарта - расширение KWI.
KIWI - формат используется для описания карт и объектов, может содержать мета данных, например, голосовые сообщения.
Основные файлы на диске:
LOADING.KWI - загрузчик
ALLDATA.KWI - картографическая информация в специальном формате KIWI
INDEXDAT.KWI - поисковые и справочные индексы
Все эти файла, как правило, записывались на HDD
Пример структуры разделов HDD (MMCS R03)
1. Maps
2. blank
3. Loading
4. ScreenData
5. CDDB
6. AVUnit
На новых моделях, как напрмер MMCS W-11 и W-12, которая устанавливается на Аутлендер третьего поколения, вместо жесткого диска появилось два гнезда для SD карт одна под навигацию другая предположительно для музыки
Здесь описана классическая структура стандарта, но каждый производитель всегда вносит свои коррективы. http://www.kiwi-w.org/documents_eng.html
[свернуть]
LOADING.KWI — загрузчик
Скрытый текст
Это контейнер, который состоит из секций.
В общем случае лоадинг может содержать и одну секцию и больше...главное, что он содержит загрузчик для ОС.... саму ОС (не важно какую) он может и не содержать - загрузчик может ссылаться на другой файл, содержащий ОС....
Пример описания лоадинга на базе ОС WinCE (loading.kwi MITSUBISHI).
1. Заголовок.
1. Loader (boot)
2. Firmware (OS)
3. Screendata (FS)
У W11, W12 доплнительные секции:
4. Графические файлы *.bmp
5. Фалы типа *FONT.BIN — судя по названию, для отображения фонтов на экране.
Структура заголовка Loading.kwi
На примере loading.kwi MITSUBISHI:
Адрес -> Длина -> Назачение
0-1 ------> 2 ------>количество размещеных систем.
2-3 ------> 2 ------>Резерв
4-F ------> 12 ----->Идентификация и управленческая информация
10-11 ---> 2 ------> Количество частей в Loading
12-13 ---> 2 ------> резерв
14 ------> 1 ------> Категория модуля №1: 0- программа инициализации, 1 – программа, 2 – библиотека, 3 – data, + 40h (64) тестовый, + 80h (128) – сервисный диагностический
15-17 ----> 3 ------> Резерв
14-53 ------> 64 ------> 01 Категория Unit №1, NR261RM.MLD.ORG NR261RM.- русская голова,
NR261J11 – японская голова
NR261EM - европа
Эти параметры сравниваются внутри BOOT
.MLD.ORG признак BOOT
00000113 Номер версии (F)
00000113 Номер версия (G)
00000101 Номер версия (J)
00000111 Номер версии (E)
54-93 ------> 64 ------> 01 Категория Init №2, NR261RM.SHx.ORG NR261RM.- русская голова,
NR261J11 – японская голова
NR261EM – Европа
MMC13 – W11 , W12
NR242RM - русский вариант W-12;
NR242EM - европейский вариант;
NR242UM - американский вариант;
NR242AM - австралийский вариант.
Эти параметры сравниваются внутри BOOT
.SHx.ORG признак OS
00000400 Номер версии модуля OS (F)
00000500 Номер версии модуля OS (G)
00011403 Номер версии модуля OS (J)
00006203 Номер версии модуля OS (E)
94-D3 ------> 64 ------> 03 Категория Unit №3 NR261RM.SCN.ORG NR261RM.- русская голова,
NR261J11 – японская голова
NR261EM - европа
Эти параметры сравниваются внутри BOOT
.SCN.ORG признак DATA
00000400 Номер версии модуля FS (F)
00000500 Номер версии модуля FS (G)
00000000 Номер версии модуля FS (J)
00006203 Номер версии модуля FS (E)
D4-D5 ----> 2 ------> 1D 60 1D 60 дата, на которую функции модуля становится действительным.
Дата отображается с количество дней считается с 1 января 1997 года как день 0 на основе UTC.
По умолчанию должен быть установлен с "00 (16)" Если Дата не задана.
Примерно: 10/07/2027
D6-D7 ----> 2 ------> 1D 60 1D 60 дата, на которую функции модуля становится не действительным.
D8-117 ----> 64 ------> Это поле используется для описания модуля для пользователя.
118-11B ----> 4 ------> 00 00 04 00 400 (400*2 =800) В этом поле стартовый адрес программного кода (если есть) Unit умноженое на 2
11С-11F ----> 4 ------> 00 03 74 00 37400 (37400*2 = 6А800) В этом поле размер программного кода (если есть) Unit умноженое на 2
120-1D3 ----> 180 ------> Это поле используется изготовителем модуля, чтобы указать информацию, относящуюся к производителю.
[свернуть]
Описание Loader (boot)
Файл (контейнер) для хранения стартового образа прошивки в формате NB0, он в свою очередь запакован в контейнер BIN (файл формата bib).
Главным показателем того, что перед Вами находится прошивка в контейнере этого типа, является сигнатура BOOOFF.(именно с точкой на конце) , в начале образа.
В нем находится файл nk.exe — ядро системы.
Описание bib формат (файлы bin) http://msdn.microsoft.com/en-us/library/ms898171.aspx
[свернуть]
Описание Firmware (OS)
Файл (контейнер) для хранения рабочего образа прошивки в формате NB0.
Главным показателем того, что перед Вами находится прошивка в контейнере этого типа, является сигнатура BOOOFF.(именно с точкой на конце) , в начале образа.
В нем находятся все модули и файлы системы в разобраном виде. Стандарт PE format. http://kaimi.ru/2011/07/pe-%D1%84%D0...6%D0%B8%D1%8F/
[свернуть]
Структура Screendata (FS)
Это простой, даже не архивированный контейнер. В нем, по определенной логике лежит информация (жестко записанная) - в каком каталоге должны находиться файлы этой секции
Структура UNIT ScreenData в loading.kwi:
Первый блок:
4h первые -> Количество записей в блоке
4h вторые -> Размер блока от начала блока (в размер входят первые 4h и вторые 4h))
Данные: список каталогов -> Разделитель «00h»
Второй блок:
4h первые -> Количество записей в блоке
4h вторые -> Размер блока от начала блока (в размер входят первые 4h и вторые 4h)
Данные: список имен с каталогом, содержащий последовательность
записи файлов (по порядку)-> Разделитель «00h» (индексный)
4h первые -> Размер файла
далее -> Имя файла заканчивается.
Разделитель «00h»
Третий блок:
Начало: в конце второго блока, начинается файл данных
Данные: по порядку по размеру файла как во втором блоке.
Все данные и адреса считываются ил прошивки по-байтово в обратном порядке - "ногами вперед" — Little-Endian
DWORD num_LE; // little-endian
DWORD num_BE; // big-endian
LE по умолчанию для x86 и SH4.
ScreenData на HDD - это тот же образ, что в loading.kwi, но уже развернутый в выше упомянутом каталоге
[свернуть]
[свернуть]
JRemaker
Скрытый текст
Программа JRemaker. Предназначена для редактирования прошивок от автомагнитол на базе формата контейнера файл: loading.kwi.
OS: WinCe 2.11, 3.0, 4.20, 6.0.
Разработана на основе анализа структуры LOADING.KWI - загрузчик, установленных на атомобилях MITSUBISHI - R01, R02, R03, J03, J05, N04, W11, W12.
Совместима для работы также с E-01..E-06, J-01/02/04/11, N-01, N-02, N-03, N05
В Японии FM диапазон вещания ограничен более жестко (76...90 МГц) Для обхода этого ограничения необходимо установить FM-модулятор, который расширит диапазон до требуемого российского 108 МГц. Как правило модулятор имеет антенное гнездо и антенный выход и провод питания +12.
1) MMCS среднего поколения (начиная с J-01 от 2006г. и до R-03) имеют в своем составе радиотюнер. Также его имеют MMCS последнего поколения (начиная с J-11 от 2011г. и до нынешней W-12), а предыдущее самое первое поколение MMCS не имело встроенного радиотюнера (например, на Аутлендере первого поколения), а еще более ранние назывались MDS и не имели жесткого диска вообще.
2) в различных странах различные диапазоны для FM-радио, например,
-- Европа/Россия 87..108 МГц с шагом 0,1 МГц;
-- СССР/Россия дополнительно 65,9..74 МГц УКВ;
-- Америка 87..108 МГц с шагом 0,2 МГц;
-- Япония 76..90 МГц с шагом 0,1 МГц,
соответственно, и MMCS-ы для различных регионов изначально имеют локализацию. Причем программно-аппаратную.
Один из вариантов:
----В Японии FM диапазон вещания ограничен более жестко (76...90 МГц) Для обхода этого ограничения необходимо установить FM-конвертер, который расширить диапазон до требуемого российского 108 МГц. Как правило модулятор имеет антенное гнездо и антенный выход и провод питания +12. FM-конвертер позволяет без каких-либо программно-аппаратных изменений в радиотюнере сдвинуть диапазон. Наиболее востребованы и широко применяются такие:
-- для приема УКВ на стандартном российско-европейском тюнере (87..108);
-- для приема российского FM (87..108 с шагом 0,1) на американском тюнере (87..108 с шагом 0,2);
-- для приема российского FM (87..108 с шагом 0,1) на американском тюнере (76..90 с шагом 0,1).
При этом на экране радиотюнера не реально отображается частота принимаемой станции.
3) если же все-таки переделывать ПО и оборудование самой MMCS, то точно нужно перепрошивать микроконтроллер, управляющий синтезатором частоты, наиболее просто это будет с адаптацией американки, т.к. диапазон одинаков (уважаемый Ежик Пых перешивал Ренесасовский NEC микроконтроллер под шаг 0,1). Для японки возможно еще дополнительно прийдется перестраивать контура в ВЧ-блоке...
[свернуть]
Адаптация NTSC ТВ к российскому ТВ
Скрытый текст
Если TV тюнер встроен в головное устройство, устанвливается дополнительный внешний тюнер.
Тюнер обеспечивает возможность приема телевизионных передач цветного изображения в системах PAL/SECAM D/K и отображение принятого сигнала на штатных NTSC мониторах автомобилей японского и американского рынков.
Такие устройства могут коммутировать сигналы формата RGB+SYNC, RGB+HSync+VSync, RGsB.
Данное устройство позволяет подключить ТВ-тюнер к навигационному дисплею автомобиля по RGB+SYNC в случае отсутствия стандартного AV-входа.
Также возможно подключать ТВ-тюнер к навигационным мониторам, где сигналы синхронизации либо формата RGB+HSync+VSync (MITSUBISHI), либо синхронизация передается в канале зеленого цвета (MITSUBISHI, BMW)
Встроенный аналоговый ТВ-тюнер имеют толаько японские варианты MMCS. Остальные редакции его не имеют. В связи с вытеснением аналогового TV цифровым DVB-(T)/T2, аналоговое ТВ скоро возможно скоро будет не актуальным"
[свернуть]
Примеры модификации loading.kwi для MMCS
Скрытый текст
Пример № 1 Руссификация японки
Скрытый текст
NR261RM.- русская голова,
NR261J11 – японская голова
Смотрим раздел Стурктура заголовка loading.kwi
Вариант №1 -> R03G:
Имеет 3 Unit: 10-11 ---> 2 ------> Количество частей в Loading = 3
Категория Unit №1, NR261RM.MLD.ORG
Категория Unit №2, NR261RM.Shx.ORG
Категория Unit №3, NR261RM.SCN.ORG
MLD, SHx, SCN -> ссылки на 3 адреса: Unit №1:
118-11B ----> 4 ------> 00 00 04 00 = (400*2 =800) В этом поле стартовый адрес программного кода Unit умноженое на 2
11С-11F ----> 4 ------> 00 03 74 00 = (37400*2 = 6А800) В этом поле размер программного кода Unit №2: -> 218... Unit №3: -> 318...
Вариант №2 -> J05 + R03G:руссификация японки
Имеет 3 Unit: 10-11 ---> 2 ------> Количество частей в Loading = 4
Категория Unit №1, NR261J11.MLD.ORG
Категория Unit №2, NR261RM.MLD.ORG
Категория Unit №3, NR261RM.Shx.ORG
Категория Unit №4, NR261RM.SCN.ORG
MLD (японский),MLD (русский), SHx(русский), SCN(русский) -> ссылки на 4 адреса: Unit №1:
158-11B ----> 4 ------> 00 00 04 00 = (400*2 =800) В этом поле стартовый адрес программного кода Unit умноженое на 2
11С-11F ----> 4 ------> 00 03 74 00 = (37400*2 = 6А800) В этом поле размер программного кода Unit №2:
258-11B ----> 4 ------> 00 00 04 00 400 (400*2 =800) В этом поле стартовый адрес программного кода Unit умноженое на 2
11С-11F ----> 4 ------> 00 03 74 00 37400 (37400*2 = 6А800) В этом поле размер программного кода Unit умноженое на 2 Unit № 1 и Unit № 2 ссылаются на один адрес Unit №3: -> 358... Unit №4: -> 458...
[свернуть]
Пример № 2 Maintance от американки:
Скрытый текст
Программа JRemaker:
- Current - R03_G
- Donor - N03 или N04 можно попрбовать с другими версиями американки
-- Надо скопировать из донора в current следующие файлы:
1) HMIManager.exe
2) gs_hmi_string.tbl,
3) HMI.scrn
4) HMI_BMP.symb
5) can.exe Новые возможности:
>Выбор языка при старте (при выборе языка меняется язык не только MMCS, но и язык отоббражения информации в ETAKS
> через кнопку INFO в меню появляется "тех. обслуживание" -> Maintenance - это специализированный календарь по графику технического обслуживания.
MMCS через can получает данные по maintenance и использует для некоторых расчетов для этотго графика.
В русской такой функции нет, can.exe урезанный по этим функциям соответственно maintenance не работает.
Теперь должен работает в полном объеме.
[свернуть]
[свернуть]
MMCS — Описание, характеристика
Скрытый текст
Описание
Скрытый текст
классификацию самих MMCS, можно разделить на три поколения:
-- пред-MMCS (чаще называемые MDS) были модульными и состояли из отдельных блоков: монитор, CD-радио, блок навигации, ТВ-тюнер и т.п. Жесткого диска не имели, а LOADING и карты грузились с DVD (у меня есть один такой производства Aisin под маркой Mitsubishi);
-- нулевое поколение MMCS это дальнейшее развитие MDS, но в навигационном блоке появился жесткий диск (такие устанавливались на Outlander первого поколения, производитель MELCO);
-- первое поколение MMCS это моноблочный вариант с жестким диском "все-в-одном", который в основном здесь и рассматривается (такие устанавливались на Outlander XL, производитель MELCO).
Есть 3 варианта работы MMCS с BT:
1. Не поддерживается (J-01)
2. Поддерживается старый блок - (R-01, R-02, E-01, E-02, E-03, N-02, N-03, P-01, C-01, J-02, J-03, J-04)
4. Поддержка нового блока - адресная книга, USB, BT Audio (R-03, E-04, E-05, E-06, P-02, C-02, J-05, N-05)
Известны следующие аппаратные редакции устройств.
Для японского региона:
J-01 [8750A082]
J-02 [8750A072]
J-03 [8750A141]
J-04 [8750A115]
J-05 [8750A224]
Для американского региона:
N-01 [8750A069]
N-02 [8750A142]
N-03 [8750A183]
N-04 [8750A???]
N-05 [8750A???]
Для европейского региона:
E-01 [8750A070]
E-02 [8750A143]
E-03 [8750A184]
E-04 [8750A???]
E-05 [8750A???]
E-06 [8750A???]
Для русского региона:
R-01 [8750A169]
R-02 [8750A170]
R-03 [8750A211]
Для австралийского региона (под маркой Mitsubishi, но производитель KENWOOD):
A-01 [8750A132]
A-02 [8750A???]
A-03 [8750A???]
A-04 [8750A196]
соответственно, поскольку австралийские варианты крайне экзотичны у нас и, вероятно, серьезно отличаются по архитектуре, то упомянуты для полноты перечня.
-- второе поколение MMCS это дальнейшее развитие, т.е. обновленный вариант, у которого вместо жесткого диска используется SD-карта памяти (такие устанавливаются на Outlander III).
J-11 [8750A???]
W-11 [8750A???]
W-12EU [8750A374]
W-12RU [8750A391]
[свернуть]
Характеристика
Скрытый текст
R03 и ее аналоги
Скрытый текст
• WinCe 4.2
• Процессор Renesas SH7770
• 30 Гб жесткий диск
---- R-01 Toshiba MK3029GAC
---- R-02 Toshiba MK4036GAC
---- R-03 Toshiba MK4050GAC
---- Вариант установки SSD PATA https://out-club.ru/board/showpost.p...postcount=6574
• Навигационная система double wide DIN
• дисплей
----ЖК-панель Sharp LQ070 формально 7-дюймовая (реально чуть меньше, т.е. 6.95") с физическим разрешением 480×234
• Предварительно установленны европейские японские российские дорожные карты
• Touch screen полнофункциональный экран
• Регулировки Аудио кнопками руля
• 8 Гб музыкальный сервер (22 ГБ для навигации)
• Cовместима с MP3 и WMA
• DVD / CD слот
• Стандартный TMC-тюнер (ТВ-в японской версии)
• Информация бортового компьютера
• Опция пользовательских настроек систем автомобиля (открытие с пульта, освещение в дневное время, работа стеклоочистителей, индикаторы) (( в европейско-американской версии))
• Подключаются 6 динамиков стандартной системы и 9 динамиков
Rockford Fosgate
• 4 канала х 45W
• Телефонный адаптер для подключения портативного аудио оборудования
(необязательно) MZ313870
[свернуть]
W12 и ее аналоги
Скрытый текст
MMCS W-11 и W-12 устанавливается на Аутлендер третьего поколения. Типоразмер, модуль блютус , кан модуль такой же как на предыдущих моделях вместо жесткого диска появилось два гнезда для SD карт одна под навигацию другая видимо для музыки DVD диски не воспроизводит, разьемы подключения другие, чем у R-03
Добавлено через 6 часов 31 минуту
Благодаря нашему уважаемому форумчанину kidanov был найден уникальный лоадинг на новую MMCS, содержащий модули для 4 регионов, включая Японию, с ее поддержкой DVD!
Добавлено через 6 часов 32 минуты
Ошибка, Японии как раз нет
Добавлено через 12 минут
Немного о закачке модулей типа *.dll - так назывемых "сторонних" - тех файлов, которые мы захотим вставить в loading.kwi как модули, но их мы будем либо создавть сами, либо брать не из loading.kwi (MMCS):
Предлагаю такие правила:
- обязательное условие - в этом файле, если по стукртуре его предусмотрено, должна быть секция релокации
- если ее нет:
-- но должна быть - закачка такой библиотеки на усмотрение пользователя (90% она не будет работать, или с ошибками, но такая возможность будет)
-- не должно быть (resource-only dll,библиотеки математических функций, или библиотека взаимодействия с драйвером, где функции транслируются в обращение к драйверу (cправка от YDean)) - без проблем будут закачены в loading.kwi
Также любую *.dll, можно по желанию, закачать как файл.
Этот алгортим для импорта внешних *.dll - буду завтра реализовывать
Если есть другие предложения - готов обсудить
Я пробовал заменить Navi.exe на Total Commander (SH4 версия).
вышли мне Total Commander (SH4 версия)
Не корректно просто переименовать модуль
Хотя опыт интересный
Надо Total Commander прописать в реестре и поставить его на загрузку первым после nk.exe
Navi - это Navi. Total это Total
Добавлено через 1 минуту
Цитата:
Сообщение от vadimus_ca
Есть какой-то демо-софт под SH4, на котором можно тренироваться?
Я пробовал заменить Navi.exe на Total Commander (SH4 версия).
При старте и нажатии кнопки навигации показывались невиданные раньше сообщения о загрузке навигации, и эти все и ограничилось.
так не получится...как уже говорил holod - в этой сборке wince используются нестандартные (самописные) библиотеки, поэтому нельзя запустить любое ПО собранное под SH4....
так не получится...как уже говорил holod - в этой сборке wince используются нестандартные (самописные) библиотеки, поэтому нельзя запустить любое ПО собранное под SH4....
Я не специалист, но у меня появились определенные сомнения в истинности этого утверждения.
К примеру, номерные фунции в Navi.exe, импортированные из corelib.dll, IDA прекрасно именует.
К тому же Отаку, который изо всех известных мне исследователей MMCS прошел дальше всех, утверждает, что у нас "pretty much standard WinCE".
Его последнее достижение - лоадинг, показывающий в движении не только DVD, но и RES/Aux - привязывается под конкретный серийник.
Насколько я понял, для этого (привязки по серийнику) он использует свой кастом код.
Я почти готов заплатить за этот лоадинг 25 фунтов, что он просит.
Я не специалист, но у меня появились определенные сомнения в истинности этого утверждения.
К примеру, номерные фунции в Navi.exe, импортированные из corelib.dll, IDA прекрасно именует.
К тому же Отаку, который изо всех известных мне исследователей MMCS прошел дальше всех, утверждает, что у нас "pretty much standard WinCE".
никто не говорит, что там всё самописное, стандартное ядро wince там используется для связи с железом....а вот сами функции вывода информации на экран и прочее - скорее всего свои...
вот я как-то находил статью о сотрудничестве Renesas и Microsoft http://resource.renesas.com/lib/eng/...8/viewson.html
примерная структура есть на этой картинке, т.е. "Device Mgr Process" и "Filesys Process" мелкософтовые, а вот Direct Draw и Direct Sound скорее всего свои...
к сожалению, изображение утрачено
"Device Mgr Process" и "Filesys Process" мелкософтовые, а вот Direct Draw и Direct Sound скорее всего свои...
Не совсем так.
В той же статье сказанно, что для ускорения вывода на экран в режиме реального времени используется низкоуровневый API:
"To support the increasing use of high speed map drawing, Microsoft has cooperated with Renesas to provide the GDI-Sub, sub-set interface of Windows GDI graphic library in PC. This interface has been tuned to enable applications to access the graphics processor directly for even smoother playback."
Так что это нечто противоположное - вместо долгого вывода через DirectDraw программа может напрямую работать с аппаратными функциями - в первую очередь с прямым доступом к фрейм-буферу.
в модуле ЖК-экрана имеется видеоконтроллер от Toshiba TC90A64AF, на который удалось найти только распиновку (даташит найти пока не смог). Именно в нем и "зарыта собака". Причем, наткнулся на сайте владивостокских ребят на аппаратную доработку для японских навигаций от Clarion обвязки этого чипа, что позволяет просматривать видео в формате PAL -- вполне возможно, что это и для MMCS должно сработать...
про эту микросхему я в курсе, вот эти ребята продают конвертер для нее за 2500р..
вот только дороговато, чтобы чисто проверить подойдет ли нам...
так я не понял, эти "владивостокские ребята" сделали поддержку PAL или только обсуждают ее?..
Добавлено через 4 минуты
Цитата:
Сообщение от AS21
спасибо за инфу
Разбираюсь
Поработайте с другими функциями
может что еще всплывет
пока разбираешься, дабы не терять время, можешь выгрузить все модули из оригинальной (чистой) прошивки от R-03F и выложить их?....
Его последнее достижение - лоадинг, показывающий в движении не только DVD, но и RES/Aux - привязывается под конкретный серийник.
Насколько я понял, для этого (привязки по серийнику) он использует свой кастом код.
Я правильно понял - он нашел AUX в движении и прораммно его заремарил, как DVD вдвижении?
Цитата:
Сообщение от MadLord
выгрузить все модули из оригинальной (чистой) прошивки от R-03F и выложить их?...
Я это делаю JRemaker - DUMP... если в разобраном виде
или через Экспорт - если надо в обраном виде, но по одному модулю или функции
Или ты имел ввиду, что-то другое?
Я это делаю JRemaker - DUMP... если в разобраном виде
или через Экспорт - если надо в обраном виде, но по одному модулю или функции
Или ты имел ввиду, что-то другое?
мне надо в собранном для IDA, т.к., как я уже писал выше, у меня Export не работает....нужны все модули...