Как работают эмуляторы и как они записываются? Простая схема Эмулятора Лямбда-Зонда. Как работает эмулятор Adblue

16 ответов

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

Основная идея:

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

Эмуляция процессора:

Существует три способа обработки эмуляции процессора:

  • Интерпретация
  • Динамическая перекомпиляция
  • Статическая перекомпиляция

Со всеми этими путями у вас есть общая цель: выполните часть кода, чтобы изменить состояние процессора и взаимодействовать с "оборудованием". Состояние процессора - это конгломерация регистров процессора, обработчиков прерываний и т.д. Для заданного целевого процессора. Для 6502 у вас будет число 8-разрядных целых чисел, представляющих регистры: A , X , Y , P и S ; у вас также будет 16-разрядный регистр PC .

С интерпретацией вы начинаете с IP (указатель инструкции - также называемый PC , счетчик программ) и читаете инструкцию из памяти. Ваш код анализирует эту инструкцию и использует эту информацию для изменения состояния процессора, указанного вашим процессором. Основная проблема с интерпретацией заключается в том, что она очень медленная; каждый раз, когда вы обрабатываете данную инструкцию, вы должны ее декодировать и выполнять требуемую операцию.

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

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

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

Они объединяются, чтобы сделать статическую перекомпиляцию полностью неосуществимой в 99% случаев. Для получения дополнительной информации Майкл Стейл провел большое исследование статической перекомпиляции - лучшее, что я видел.

Другая сторона эмуляции процессора - это способ взаимодействия с оборудованием. Это действительно имеет две стороны:

  • Время процессора
  • Обработка прерываний

Время работы процессора:

Некоторые платформы - особенно старые консоли, такие как NES, SNES и т.д. - требуют, чтобы ваш эмулятор имел строгое время для полной совместимости. С помощью NES у вас есть процессор PPU (блок обработки пикселей), который требует, чтобы процессор аккуратно помещал пиксели в свою память. Если вы используете интерпретацию, вы можете легко подсчитывать циклы и эмулировать правильное время; с динамической/статической перекомпиляцией, все это/много/сложнее.

Обработка прерываний:

Прерывания - это основной механизм, с которым процессор взаимодействует с оборудованием. Как правило, ваши аппаратные компоненты сообщают CPU о том, что прерывает его. Это довольно просто - когда ваш код выдает заданное прерывание, вы смотрите таблицу обработчика прерываний и вызываете правильный обратный вызов.

Эмуляция оборудования:

Есть две стороны для эмуляции данного аппаратного устройства:

  • Эмуляция функциональности устройства
  • Эмулирование реальных интерфейсов устройства

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

Фактический интерфейс устройства немного сложнее. Это, как правило, некоторая комбинация регистров с отображением памяти (например, части памяти, которые устройство наблюдает за изменениями в передаче сигналов) и прерывания. Для жесткого диска у вас может быть область с отображением памяти, где вы размещаете команды чтения, записи и т.д., Затем читайте эти данные.

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

Ресурсы:

Я думаю, что здесь был очень хороший ввод, но есть дополнительные тонны . Я более чем счастлив помочь с любыми вопросами; Я был очень расплывчатым в большинстве случаев просто из-за огромной сложности.

Обязательные ссылки в Википедии:

Общие ресурсы эмуляции:

  • Zophar - вот где я начал с эмуляции, сначала загрузил эмуляторы и в итоге разграбил их огромные архивы документации. Это самый лучший ресурс, который у вас может быть.
  • NGEmu - Не так много прямых ресурсов, но их форумы непобедимы.
  • RomHacking.net - Раздел документов содержит ресурсы, касающиеся архитектуры машин для популярных консолей.

Проекты эмулятора для ссылки:

  • - это платформа эмуляции.NET, написанная в Nemerle и перекомпилирующая код на С# на лету. Отказ от ответственности: Это мой проект, поэтому прошу прощения за бесстыдную версию.
  • BSnes - Удивительный эмулятор SNES с целью обеспечения точности цикла.
  • MAME - аркадный эмулятор . Отличная рекомендация.
  • 6502asm.com - Это эмулятор JavaScript 6502 с прохладным небольшим форумом.
  • dynarec"d 6502asm - Это небольшой взлом, который я сделал за день или два. Я взял существующий эмулятор от 6502asm.com и изменил его, чтобы динамически перекомпилировать код для JavaScript для увеличения скорости.

Ссылки на перекомпиляцию процессора:

  • Исследование статической перекомпиляции, сделанное Майклом Стелом (ссылка на выше), завершилась в этой статье , и вы можете найти источник и такие .

Добавление:

Прошло уже больше года с момента отправки этого ответа и со всем вниманием, которое он получал, я решил, что пора обновить некоторые вещи.

Возможно, самая захватывающая вещь в эмуляции прямо сейчас - libcpu , начатая вышеупомянутым Майклом Стилом. Это библиотека, предназначенная для поддержки большого количества ядер процессора, которые используют LLVM для перекомпиляции (статические и динамические!). Он получил огромный потенциал, и я думаю, что он будет делать большие вещи для эмуляции.

Парень по имени Виктор Мойя дель Баррио написал диссертацию на эту тему. Много хорошей информации на 152 страницах. Вы можете скачать PDF .

Если вы не хотите регистрироваться в scribd , вы можете использовать Google для заголовка PDF, "Изучение методов программирования эмуляции" . Для PDF существует несколько разных источников.

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

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

Если вы вообще не заботились о производительности, вы можете легко эмулировать большинство старых процессоров, используя очень элегантные объектно-ориентированные программы. Например, процессору X86 потребуется что-то, чтобы поддерживать состояние регистров (легко), что-то для поддержания состояния памяти (легко) и что-то, что будет принимать каждую входящую команду и применять ее к текущему состоянию машины. Если вам действительно нужна точность, вы также эмулируете переводы памяти, кеширование и т.д., Но это выполнимо.

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

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

Учитывая очень медленную производительность старых видеоигр (NES/SNES и т.д.), эмуляция на современных системах довольно проста. На самом деле, еще более удивительно, что вы могли просто скачать набор из каждой игры SNES когда-либо или любой игры Atari 2600, считая, что когда эти системы были популярны, имея свободный доступ к каждому картриджю, это было бы мечтой.

Я знаю, что этот вопрос немного стар, но я хотел бы добавить что-то к обсуждению. Большинство ответов здесь сосредоточены вокруг эмуляторов, интерпретирующих машинные инструкции систем, которые они эмулируют.

Однако существует очень известное исключение, называемое "UltraHLE" (). UltraHLE, один из самых известных эмуляторов, когда-либо созданных, эмулировал коммерческие игры Nintendo 64 (с достойной производительностью на домашних компьютерах) в то время, когда это считалось невозможным. На самом деле, Nintendo все еще выпускала новые названия для Nintendo 64, когда была создана UltraHLE!

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

Концепция UltraHLE заключалась в том, чтобы сделать возможным невозможное путем эмуляции вызовов библиотеки C вместо вызовов на уровне машины.

Создав собственный эмулятор микрокомпьютера BBC 80-х (тип VBeeb в Google), вам нужно знать несколько вещей.

  • Вы не эмулируете реальную вещь как таковую, это будет реплика. Вместо этого вы эмулируете State . Хорошим примером является калькулятор, реальная вещь имеет кнопки, экран, футляр и т.д. Но для эмуляции калькулятора вам нужно только подражать кнопкам вверх или вниз, какие сегменты ЖК-дисплея включены и т.д. В принципе, набор чисел представляя все возможные комбинации вещей, которые могут измениться в калькуляторе.
  • Вам нужно только, чтобы интерфейс эмулятора появлялся и вел себя как настоящая вещь. Чем более убедительно это, тем ближе эмуляция. То, что происходит за кулисами, может быть чем угодно. Но для простоты написания эмулятора существует ментальное отображение, которое происходит между реальной системой, то есть чипами, дисплеями, клавиатурами, печатными платами и абстрактным компьютерным кодом.
  • Чтобы эмулировать компьютерную систему, проще всего разбить ее на более мелкие куски и подражать этим кускам индивидуально. Затем объедините всю партию для готового продукта. Очень похоже на набор черных ящиков со входом и выводом, который прекрасно поддается объектно-ориентированному программированию. Вы можете подразделить эти куски, чтобы облегчить жизнь.

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

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

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

Когда вы разрабатываете эмулятор, вы интерпретируете сборку процессора, над которой работает система (Z80, 8080, PS CPU и т.д.).

Вам также необходимо эмулировать все периферийные устройства, которые имеют система (видеовыход, контроллер).

Вы должны начать писать эмуляторы для систем simpe, таких как старый добрый Game Boy (который использует процессор Z80, я не ошибаюсь) ИЛИ для C64.

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

Это также покажет вам, почему вам нужен процессор с несколькими ГГц для эмуляции 1 МГц.

Я никогда не делал ничего такого, чтобы подражать игровой консоли, но я пошел курс, когда задание состояло в том, чтобы написать эмулятор для машины, описанной в Andrew Tanenbaums . Это было весело и дало мне много аха. Возможно, вам захочется выбрать эту книгу, прежде чем погрузиться в реальный эмулятор.

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

В этих же целях эмулятор форсунок ГБО 2 поколения ставится на авто с инжекторными ДВС. Насколько важно данное дополнение и действительно ли можно сделать эмулятор форсунок ГБО своими руками?

Какую функцию выполняет эмулятор?

Эмулятор форсунок - это умная электронная конструкция, способная обмануть штатный электронный блок управления двигателя.

После принудительного отключения бензиновых инжекторов от топливной системы, ЭБУ определяет это как неисправность. Логика в этом есть, так как «мозги» блока «не знают» о том, что запускается газобаллонная установка. Ситуация воспринимается штатной электроникой как обрыв магистрального питания к бензиновым форсункам. На электронное табло выводится предупреждение «check engine». Работа двигателя автоматически переводится в аварийный режим. Это негативно сказывается на функционировании всех узлов силового агрегата.

Чтобы избежать такой стрессовой ситуации, вводится схема подключения эмулятора форсунок ГБО 2 поколения. Прибор имитирует функции бензиновых форсунок. Но топливо через прибор не проходит, его задача сводится к отправке соответствующего сигнала на штатный ЭБУ.

Эмуляция начинается с момента получения соответствующего сигнала от переключателя топлива. Эмулятор ГБО 2 поколения способствует корректной работе топливной системы на альтернативном горючем.

Подобная схема применяется только на инжекторных ТС при монтаже ГБО 2го поколения (например, на ВАЗ 2112). Для карбюраторных систем он не нужен. Последующее газовое оборудование выпускается с уже встроенными эмуляторами.

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

Как подключать?

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

Чтобы правильно выполнить подключение эмулятора ГБО, следует знать, что:

  • у большей части бензиновых инжекторов сопротивление 100 Ом, нужно убедиться, что технические характеристики устройства позволяют его использовать;
  • разъем прибора должен подходить к модели машины;
  • число цилиндров, которое поддерживает устройство, должно соответствовать ТС;
  • чтобы выполнить подключение эмулятора форсунок ГБО 2 поколения, следует изучить схему, которая прилагается к комплекту устройства;
  • соединяют прибор двумя кабелями, обычно синий идёт на «плюс», черный - на «минус»;
  • устройство подключается между бензиновыми инжекторами и ЭБУ машины.

Монтаж и регулировка эмулятора форсунок для ГБО 2 поколения осуществляются одновременно, иначе есть вероятность неисправностей.

Типичные из них следующие:

  • некорректно работает система зажигания;
  • прекращается подача газового топлива;
  • нестабильная работа двигателя на холостом ходу при действующем ГБО;
  • провалы при движении или на холостых оборотах.

Чтобы избежать таких проблем, нужно обратиться к специалистам, которые знают, как проверить эмулятор форсунок ГБО 2 поколения.

Какой эмулятор подойдёт?


Выбор прибора зависит от числа цилиндров и модели авто. В самой общей классификации устройства подразделяются на две группы: для европейских и японских марок. У автомобилей различные разъёмы. Следующий пример покажет, как правильно понимать маркировку на приборах, чтобы не ошибиться в выборе.

Обозначение Stag 2-E4 расшифровывается следующим образом:

  • Stag - название производителя (в данном примере, польского);
  • 2 - для ГБО 2-й генерации;
  • Е - для европейских машин;
  • 04 - число цилиндров, на который рассчитан эмулятор форсунок.

Если вместо «Е» стоит «J», значит, emulator ставится на японские машины. Для европейских машин разъём, который идёт с прибором, не подойдёт.

Что касается вопроса самодельных конструкций. Есть домашние умельцы, которые разбираются в электронике и могут сами спаять приборы по схеме. Нужны реле, диоды, нагрузочное сопротивление в 100 Ом, провода с разъёмами. Стоит ли усложнять жизнь? Готовые приборы по цене доступные, не трудно найти нужную модель. Достаточно менеджеру магазина назвать марку и модель автомобиля на газу.

Если не укомплектовать эмулятором форсунок инжекторное транспортное средство с газовым оборудованием 2-го поколения, можно пропустить серьёзную поломку из-за постоянного игнорирования сигнальной надписи «check engine». Придётся проверять на стенде автомобиль, чтобы найти неисправность либо впоследствии потратиться на дорогостоящий ремонт. В данном случае экономии не получится.

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

ГБО 2 поколения у многих ассоциируется с карбюраторными двигателями. Отличие этих систем ГБО от популярного ГБО 4 в том, что в 4-м поколении вся работа построена на автоматике и работе ЭБУ, тогда как во 2-м поколении половина узлов механизирована и работает по принципу избыточного давления в магистралях.

Однако бывают случаи, когда подключение ГБО 2 поколения на инжектор оказывается самым оптимальным вариантом. Например, монтаж на машины 90-х годов с пробегом свыше 300 тыс. км. Отличия ГБО на инжектор от карбюраторных комплектов 2-го поколения:

  • более точный впрыск топлива через газовые форсунки. В карбюраторных системах газ подается в карбюратор;
  • наличие эмулятора лямбда-зонда;
  • быстрое переключение между газом и бензином за счет наличия электроники (в карбюраторных системах эта функция реализована с задержкой).
Настройки ГБО 2 на инжекторе более упрощенные за счет наличия электронных систем. Если на карбюраторе они сводятся к регулировке редуктора, то на инжекторных двигателях все несколько сложнее.

Устраняем неисправности ГБО на инжектор

Ниже мы перечислили наиболее частые неисправности ГБО 2 поколения .

1. Двигатель не работает на газу или плохо заводится. Возможны решения:

  • проблемы с мультиклапаном;
  • не работает редуктор или забиты его фильтры;
  • проблемы с регулировкой ГБО;
  • нарушена герметичность впускной системы;
  • вместе с газом одновременно подается и бензин (проблемы с эмулятором работы инжектора или проблемы с бензоклапаном).
2. Обмерзает газовый редуктор, из-за чего ГБО не работает вовсе. Возможный ремонт ГБО 2 поколения :
  • необходимо долить тосол или найти утечку;
  • забиты магистрали подачи охлаждающей жидкости;
  • есть нарушения в герметичности газовых клапанов.
3. Двигатель на холостых оборотах работает неустойчиво. Причины:
  • проблемы с системой холостого хода на карбюраторе;
  • не отрегулирован редуктор (давление в магистрали);
  • необходимо слить конденсат из редуктора.
4. Провалы при резком повышении оборотов мотора. Причины:
  • неисправность в зажигании автомобиля;
  • забиты фильтры, магистрали или мультиклапан.
5. Хлопки во впускном коллекторе. Возможные неисправности:
  • проблемы со свечами, катушкой зажигания, высоковольтными проводами;
  • сбита регулировка газобаллонного оборудования;
  • нарушены зазоры между седлами и клапанами, неправильно остановлен ремень ГРМ.
Помните, что своевременный ремонт и обслуживание ГБО, а также устранение неисправностей на начальных этапах снижает риск более серьезных проблем с оборудованием. Доверяйте ремонт ГБО в Харькове только профильным СТО!

Если вы не нашли в этом списке признаков неисправности вашего ГБО, то приезжайте в KOSTA GAS, где вам сделают лучший ремонт ГБО в Харькове . Наши специалисты разбираются в любых типах ГБО и готовы помочь вам в любом вопросе: оптимизация

11. ВНУТРИСХЕМНЫЕ ЭМУЛЯТОРЫ

11.1. ПРИНЦИП РАБОТЫ ВНУТРИСХЕМНЫХ ЭМУЛЯТОРОВ

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

Итак, внутрисхемным эмулятором (ВСЭ) называют отладочное средство, которое подключается к отлаживаемой или тестируемой системе через микропроцессорный разъем и обеспечивает управление системой путем подмены (эмуляции) отдельных функциональных узлов прототипа МПУ, в первую очередь МП, соответствующими узлами эмулятора. Внутрисхемный эмулятор - это наиболее мощное и универсальное отладочное средство.

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

Конструктивно эмуляторы могут быть либо встраиваемые в ПК (т.е. вставляемые в слот компьютера), либо выносные (в отдельном корпусе, соединенные с ПК через параллельный LPT порт или последовательный порт RS-232).

Эмулятор содержит целевой МП, ОЗУ, устройства ввода-вывода (УВВ), блок управления эмулятором, шину управления и системную шину эмулятора и соединяется с прототипом МПС с помощью разъема (вилки), имеющих ту же маркировку и спецификацию, что и целевой МП. Указанный разъем вставляется в гнезда контактной колодки (розетки) прототипа МПС, предназначенной для установки МП. Обычно стыковка внутрисхемного эмулятора с отлаживаемой системой производится при помощи эмуляционного кабеля со специальным эмуляционным модулем. Эмуляционный модуль вставляется вместо микроконтроллера в отлаживаемую систему.

Эмулятор обычно поддерживает какое-то одно семейство микропроцессоров (на-

пример INTEL 8031/8051/8052, INTEL 8080/8085 или ATMEL AVR), а конкретный микропроцессор в семействе определяется сменным эмуляционным модулем. Таким образом можно наращивать парк эмулируемых процессоров, приобретая дополнительные эмуляционные модули.

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

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

Однако имеется очень существенное отличие эмулятора от реального МП: при установке в конструктив прототипа реального МП без эмулятора отсутствует возможность контролировать внутреннее состояние и управлять поведением прототипа, за ис-

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

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

лее полного выявления логических ошибок в ПС необходимо по возможности наибольшую часть ПС выполнить и проверить только в составе эмулятора без подключения прототипа МПС. После выявления ошибок на этом этапе следует переходить к другим этапам отладки МПС.

Эмуляторы могут содержать элементы логического анализатора - трассировщик ипроцессор точек останова (Breakpoint Processor - ВР). Трассировщик запоминает пройденный процессором путь, причем ненужную информацию можно игнорировать (например, запомнить только обращения к программной памяти в некоторой области адресного пространства). ВР позволяет устанавливать точки останова, анализируя состояние процессора (например остановиться после цикла из N обращений к ячейке А, при условии что в ячейку В во время прерывания была записана величина X). Надо подчеркнуть, что и трассировщик, и ВР-процессор работают в темпе реального времени.

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

11.2. ПЕРВЫЕ ВНУТРИСХЕМНЫЕ ЭМУЛЯТОРЫ

Даже в начале разработок встраиваемых микроконтроллеров внутрисхемные эмуляторы были самым совершенным инструментом. В 1975 году компания Intel создала свой первый настоящий внутрисхемный эмулятор MDS-800, предназначенный для микропроцессоров 8080. Правда, это были довольно дорогие (в 1975 году MDS-800 стоил 20 тыс. долл.) и громоздкие системы (MDS-800 имел экран, клавиатуру и два дисковода для гибких дисков диаметром 20 см).

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

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

В чем эмуляторы были похожи на мониторы так это в ориентации на язык ассемблера. Так было в 70-х годах прошлого столетия, когда ни один язык высокого уровня не мог сравниться с нынешней распространенностью в индустрии встраиваемых компьютеров языка Си. Да и код, создаваемый первыми компиляторами языков высокого уровня, не был достаточно компактен, чтобы уместить его во встраиваемых системах.

Из-за высокой стоимости и сравнительной ненадежности некоторых первых эмуляторов многие пользователи отказывались от них в пользу ПЗУ-мониторов. Это может показаться шагом назад, однако разработчики предпочитают двигаться вперед в решении своей задачи, а не тратить время на борьбу с ненадежным оборудованием. Симуляторы были недоступны, и мониторы были единственным выходом в этой ситуации.

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

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

11.3. КЛАССИФИКАЦИЯ ВНУТРИСХЕМНЫХ ЭМУЛЯТОРОВ И ИХ ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ

11.3.1. Классификация внутрисхемных эмуляторов

Функционально внутрисхемные эмуляторы делятся на стыкуемые с внешней вычислительной машиной (обычно это бывает IBM PC) и функционирующие автономно.

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

11.3.2. Функциональные возможности ВСЭ

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

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

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

При работе внутрисхемного эмулятора в составе интегрированной среды столь же просто можно осуществить и переход к отладке проекта с помощью имеющегося от- ладчика-симулятора или приступить к занесению в ПЗУ микроконтроллера отлаженной программой.

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

11.3.3. Достоинства и недостатки внутрисхемных эмуляторов

К достоинствам внутрисхемных эмуляторов следует отнести

широкий набор функциональных возможностей, что делает внутрисхемные эмуляторы наиболее мощным и универсальным средством отладки;

работу внутрисхемного эмулятора в реальной схеме электронного блока, в котором предполагается робота микроконтроллера или ЦПОС;

большая гибкость моделирования временных и электрических характеристик микроконтроллера, что связано с преимущественно программным методом их моделирования

Однако внутрисхемные эмуляторы имеют и недостатки.

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

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

11.4. СОВРЕМЕННЫЕ ВНУТРИСХЕМНЫЕ ЭМУЛЯТОРЫ

Современный эмулятор, как и вся электронная техника, стал меньше в размерах, быстрее в операциях, приобрел множество функций и стал стоить намного дешевле. Все этим он обязан "потере" встроенного экрана, клавиатуры и флоппи-дисков, благодаря чему удалось повысить его надежность и удешевить производство. В то же время повысилась скорость вычислений эмулятора, что обеспечило не влияющую на основной режим работы эмуляцию операций в реальном масштабе времени со скоростью, о которой еще несколько лет назад приходилось только мечтать. Последнее объясняется тем, что, в целом, быстродействие встраиваемых целевых систем, по сравнению с эмуляторами, возросло не столь сильно. В них по-прежнему используется 8-Мгц микро-

процессор семейства 8051, в то время как в хост-системе на месте 16-МГц процессора 80286 уже стоит Pentium4 с рабочей частотой 2000 МГц.

Наконец-то внутрисхемные эмуляторы освободились от ассемблера и могут работать с языками высокого уровня (как минимум с Си).

Благодаря поддержке расширенных средств управления объектами в формате OMF (Object Module Format) современные эмуляторы могут отображать текст на языке высокого уровня с полным описанием типов и символов. В некоторых недорогих эмуляторах поддержка расширенных OMF-средств все еще отсутствует. Кроме уже упоминавшихся дисплея и пользовательского интерфейса, в современных ВСЭ отсутствуют микропереключатели (больше не нужны). Конфигурирование и задание параметров теперь выполняется программным образом (с сохранением во флэш-памяти или ПЗУ). В число таких параметров входят тактовая частота целевой системы, тип процессора (и семейство), а также конфигурация периферийных устройств.

Благодаря удешевлению памяти многие эмуляторы оснащены буферами трассировки значительных объемов, причем этот факт преподносится как одно из достоинств эмулятора. Некоторые производители все-таки проанализировали, что же на самом деле требуется для повышения эффективности, и пришли к выводу, что лучше тратить меньше времени на трассировку 1К байтов, чем долго ворошить 8К байтов в поисках возникшей проблемы. Всё это требует хорошего набора триггеров и хранения нужной информации в буфере. В состав нужной информации входят:

адреса выполненных инструкций (а также не загруженных и проигнорирован-

метки кодов и названия переменных, внешние сигналы, порты и т.д.

состояния шины, результаты команд чтения/записи, подтверждения прерываний и

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

Должна также существовать возможность объединения этих режимов с целью, например, трассировки на основе абсолютных циклов с отображением ситуации до (или после) события в виде операторов языка высокого уровня.

Некоторые эмуляторы лишь регистрируют в буфере трассировки точки перехода в программе, а затем при анализе содержимого динамически воссоздают на его основе исходный текст. Вместе с механизмами определения моментов запуска и останова и выявления обращений к библиотекам это может дать весьма мощную систему трассировки, не требующую большого объёма буфера трассировки. Кроме того, должна существовать возможность доступа к содержимому буфера трассировки во время исполнения программы средствами эмулятора (а не позднее средствами текстового редактора).

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

Во многих случаях для создания внутрисхемного эмулятора требуются специализированные микросхемы, которые есть только у производителя кристаллов. Для решения этой проблемы полупроводниковая промышленность предлагает такое средство, как FPGA-матрицы. Они часто используются в составе недорогих эмуляторов, для того

чтобы создать у будущего пользователя впечатление практически тех же возможностей, что и у более дорогих ВСЭ. Впечатление сохраняется до тех пор, пока вы не начнете этим ВСЭ пользоваться и не обнаружите, что по эффективности он не сравним с настоящим эмулятором, особенно там, где вам как раз и нужны его возможности как системы "жесткого" реального времени.

Эта новая дешёвая технология породила множество так называемых "универсальных" эмуляторов, которые могут работать с несколькими семействами микропроцессорных устройств. Однако если бы всё было так просто, применение FPGA-матриц для выпуска многоархитектурных эмуляторов привлекло бы многих ведущих производителей ВСЭ. И по стоимости было бы замечательно, однако на практике так не произошло!

Одной из "преходящих" проблем в истории внутрисхемных эмуляторов оказалась проблема последовательных соединений. В те времена, когда скорость передачи по параллельным линиям связи составляла 1200, 2400, 4800 и (при известном старании) 9600 бод, панацеей считалось соединение персонального компьютера и ВСЭ параллельными линиями связи. Некоторые производители даже встраивали эмулятор непосредственно в персональный компьютер! Современные же последовательные линии вполне нормально работают на скорости 115200 бод. Даже весьма крупные программы загружаются за секунды. Параллельные шины ушли со сцены, во многих системах уступив место линиям Ethernet.

11.5. НОВЫЕ ВОЗМОЖНОСТИ ВНУТРИСХЕМНЫХ ЭМУЛЯТОРОВ

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

11.5.1. Анализ использования кода

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

Анализ использования данных определяет, к каким областям данных осуществлялся доступ в процессе тестирования, позволяя выявлять потенциально опасные операции чтения (READ), выполняемые до инициализации данных операцией записи (WRITE). Для аттестации встраиваемой программы она должна работать на целевом оборудовании в режиме реального времени. Такое возможно только с использованием ВСЭ. На симуляторе может быть выполнен и анализ использования кода, однако не в реальном аппаратном окружении, к тому же ПЗУ-монитор (если только не поставляется в составе продукта) меняет распределение памяти (и в любом случае не обеспечивает работу в реальном масштабе времени).

11.5.2. Подсчет времени исполнения

Подсчет времени исполнения прикладных программ требует от симуляторов работы в режиме настоящего, "жесткого", а не псевдореального времени. Симуляторы могут показывать длительность исполнения в циклах и процентах, но не в миллисекун-

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

11.6. ВНУТРИСХЕМНЫЙ ЭМУЛЯТОР МИКРОКОНТРОЛЛЕРОВ СЕМЕЙСТВА

Возможности "реального" внутрисхемного эмулятора проиллюстрируем на примере модели PICE-51 отечественной фирмы «Фитон».

11.6.1. Общее описание PICE-51

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

Рис. 11.1. Внешний вид внутрисхемного эмулятора PICE-51

Применение программируемых матриц большой емкости позволило резко сократить размеры эмулятора без какого-либо ущерба его функциональным возможностям, минимизировать отклонения электрических и частотных характеристик эмулятора от характеристик эмулируемого процессора и, тем самым, добиться максимальной точности эмуляции на частотах до 30 МГц при напряжениях питания от 3.3 В до 5 В.

Перезагружаемая аппаратная структура эмулятора обеспечивает эмуляцию практически всех микроконтроллеров семейства 8051 как отечественного производства, так и фирм: Intel, Philips, Siemens, Atmel, Dallas, Temic, OKI, AMD, MHS и других.

Мощный программный интерфейс в среде Windows, представляет собой интегрированную среду разработки, поддерживающую все этапы разработки программного

обеспечения от написания исходного текста программы до ее компиляции и отладки. Программа поддержки эмулятора ориентирована на отладку программ на языке высокого уровня по исходному тексту.

Эмулятор состоит из основной платы PICE-51 размером 80 х 76мм, сменного адаптера под конкретный процессор POD-51-XX и сменной эмуляционной головки ADP-51-XX под конкретный тип корпуса (рис. 11.2). На основной плате реализованы: трассировщик, процессор точек останова. Плата сменного адаптера содержит эмулирующий процессор под конкретный тип микроконтроллера. Эмуляционные головки обеспечивают установку эмулятора в колодки DIP и PLCC на плате пользователя. Питание эмулятора осуществляется от блока питания +5 В, 0,5 А или непосредственно от отлаживаемого устройства. Связь с компьютером - по гальванически развязанному каналу RS-232C на скорости 115 КБод.

Рис. 11.2. Структура эмулятора PICE-51

11.6.2. Характеристики аппаратуры

Точная эмуляция - отсутствие каких-либо ограничений на использование программой пользователя ресурсов микроконтроллера.

До 256K эмулируемой памяти программ и данных. Поддержка банкированной модели памяти. Распределение памяти между эмулятором и устройством пользователя

с точностью до 1-го байта.

До 512K аппаратных точек останова по доступу к памяти программ и данных.

Аппаратная поддержка для отладки программ на языках высокого уровня.

Трассировка 8 произвольных внешних сигналов.

4 выхода синхронизации аппаратуры пользователя.

Трассировщик реального времени с буфером объемом от 16К до 64K фреймов по 64 бита с доступом "на лету". Трассировка адреса, данных, сигналов управления, таймера реального времени и 8-ми внешних сигналов пользователя.

Программируемый фильтр трассировки.

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

Четыре комплексных точки останова, которые могут быть использованы независимо или в комбинациях по условиям AND/OR/IF-THEN.

48-разрядный таймер реального времени.

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

Управляемый генератор тактовой частоты для эмулируемого процессора. Возможность плавного изменения тактовой частоты от 500 кГц до 40 МГц.

Гальванически развязанный от компьютера канал связи RS-232C со скоростью обмена 115 КБод.

Встроенная система самодиагностики аппаратуры эмулятора.

11.6.3. Характеристики программного обеспечения

Программное обеспечение ориентировано на работу в среде Windowsв на IBMсоместимых компьютерах с процессорами типа 386/486/Pentium;

Встроенный многооконный редактор предназначен для написания исходных текстов программ. Редактор поддерживает операции с блоками текста, поиск/замену, цветовое выделение синтаксических конструкций языка ассемблера и Си;

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

PICE-51 обеспечивает символьную отладку и отладку по исходному тексту для программ, созданных с помощью следующих компиляторов:

o ассемблерASM51 фирмыIntel ;

o ассемблер MCA-51 фирмы Фитон/МикроКосм; o компилятор PL/Mфирмы Intel;

o ассемблер и компиляторСи фирмыIAR Systems ;

o ассемблер и компиляторСи фирмыAvocet Systems Inc./HiTech ;o ассемблер и компилятор

терфейса и опций отладки. Обеспечивается совместимость файлов конфигурации с симулятором PDS-51. Обеспечена переносимость проектов между эмулятором PICE-51 и симулятором PDS-51;

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

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

Таблица 11.1. Сравнительные характеристики некоторых эмуляторов для микроконтроллеров семейства 8051

поставщик

Эмулируемые микро-

Все известные

Все основные

Все основные

Все основные

контроллеры семейст-

разновидно-

разновидности

разновидно-

разновидности

Максимальная частота

эмуляции

Максимальный объем

эмулируемой памяти

Возможности перерас-

Блоками по

Блоками по

Блоками по 16

С точностью до

пределения памяти

1-го байта

между эмулятором и

устройством пользова-

До 16 K фрей-

До 32 K фрей-

До 4 K фрей-

До 64 К фрей-

Буфер трассировки

мов по 48 бит

мов по 80 бит

мов по 48 бит

мов по 64 бита

Доступ "на лету" к

эмулируемой памяти и

Корпус

Весь эмулятор -

ISA формате,

в эмуляцион-

кабели 2 мет-

мм, кабель,

мм, кабель,

ной головке

размером

Цена за сопоставимую

конфигурацию постав-

ки: поддержка 80С51,

25 MHz, 128K RAM,

буфер трассировки

объемом 16K фреймов

Заключение

Микропроцессорную систему можно заставить выполнять программу под управлением внешней, главной системы, которая берет на себя функции ЦПУ целевой системы. Поведение шин, памяти и схем ввода-вывода целевой системы может отслеживаться главной системой, даже если целевая система не имеет устройств ввода-вывода или имеет, но они неисправны. Большинство ВСЭ располагает возможностью трассировки в реальном масштабе времени.

Эмулятор позволяет разработчику осуществить прогон программы (или фрагментов программы) в реальном времени, вести пошаговую отладку программы, запуск про-

Система второго поколения в основном устанавливается в автомобили на карбюраторные или инжекторные и моно инжекторные двигатели, оснащенные лямбда-зондом.

Улучшения

Улучшены показатели динамики и рационально расходуется топливо.

Отличается от первого поколения — редуктором. В нем вакуумный запорный клапан заменили электромагнитным. Соответственно изменился переключатель вида топлива. Теперь можно открывать подачу газа электроникой.

Бензин отключается электроникой — клапан уже не нужен.

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

Схема

Система второго поколения, имеет следующую конструкцию:



1. Баллон
2. Мультиклапан + Блок вентиляции
3. Шланги и трубопроводы высокого давления (газовая магистраль)
4. Заправочное устройство
5. Газовый клапан с фильтром (электромагнитный)
6. Редуктор (газовый испаритель)
7. Дозатор газа
8. Смеситель (миксер)
9. Бензиновый клапан (электромагнитный) или Эмулятор работы инжектора
10. Переключатель вида топлива (газ-бензин)

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

Электрическая схема

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



Основным электрическим узлом в схеме является переключатель газ-бензин и он устанавливается в обязательном порядке независимо от типа двигателя.

1. Баллон

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

Баллон цилиндрической формы — наиболее часто встречающаяся форма на установках ГБО первого поколения.



Баллон тороидальной формы — разработан для крепления в месте хранения запасного колеса. Такая форма позволяет удобно разместить баллон в машине сохранив в ней полезное место, например в кузове универсал.






Разброс в стоимости у балонов присутствует, лучше всего к установке тороидальные варианты.

2. Мультиклапан и Блок вентиляции

Вместе с баллоном устанавливается - мультиклапан. Он запрещает заполнение баллона свыше 80%. Баллоны недолжны быть заполнены на 100%.

Свободное пространство необходимо в баллоне для обеспечения безопасности. Даже в случае нагревания баллона до +70 C, что невозможно даже в случае суровой эксплуатации машины, жидкость заполнит остаточный объем.




Стоимость мультиклапана в пределах 2000 руб. Есть варианты и за 1500 руб.

Мультиклапан выполняет и другие функции:

  • Заполнение в процессе заправки
  • Определение уровня газа
  • Подача газа
  • Перекрытие подачи газа
  • Ограничение объема заправки. (до 80%)

    Мультиклапан устанавливается в — Блок вентиляции. Он позволяет избежать возможного накопления газа в результате каких-либо непредвиденных обстоятельств.


    Съемная крышка обеспечивает легкий доступ к мультиклапану.



    В среднем венткамера обойдется в 300 рублей.

    3. Шланги и трубопроводы

    Выполнен из меди и позволяет выдерживать давление в 45 бар, от 6 до 8 мм в диаметре. Баллон связан с мультиклапаном и редуктором посредством именно этого трубопровода.



    Трубопровод должен быть закреплен на днище автомобиля, далеко от выхлопной трубы и подвески автомобиля.

    В месте крепления должны быть эластичные прокладки для гашения вибрации.


    На заправочную магистраль подаеться трубопровод диаметром — 8 мм. На все остальные связки — 6 мм.

    Шланг резиновый, используется для установки тосольного соединения от места врезки в магистраль к редуктору и для установки соединения редуктора с форсунками.


    Все цены указываются за 1 метр.

    4. Выносное заправочное устройство

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




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


    5. Газовый клапан с фильтром

    Этот клапан автоматически перекрывает подачу газа от баллона к двигателю.

    Газовый клапан закрыт, когда на него не подано напряжение (12v). Когда электрическая цепь замкнута клапан открывается и открывает подачу газа.



    На поверхности клапана нанесены стрелки, которые указывают направление потока газа - то есть от баллона к двигателю.

    Средняя стоимость клапана —



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

    В клапане также установлен — Фильтр (для очистки поступающего газа). Фильтры бавают разных размеров и форм, все зависит от типа используемого клапана.



    Стоимость фильтра также зависит от его типа и составляет 100-150 рублей.

    6. Редуктор

    Обеспечивает теплообмен для испарения газа и редукцию давления необходимого для подачи к двигателю.


    Редукторы выпускаются в различных исполнениях:

  • ПНЕВМАТИЧЕСКИЙ для автомобилей с карбюраторами;
  • ЭЛЕКТРОННЫЙ для инжекторных;
  • ТУРБО для автомобилей с турбонаддувом.



    Стоимость не сильно отличается и находиться в переделах 3000 рублей.


    7. Дозатор газа

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



    Подрегулировать подачу можно регулирующим винтом. Дозатор с двумя регулировочными винтами необходим для подачи газа к камерам в 2-х камерном карбюраторе.



    Вещица простая, стоит в пределах 100 рублей.

    8. Смеситель

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

    Для каждого типа транспортного средства существует специфическая модель смесителя.



    Смесители также можно разделить на несколько групп:
    1. Смесители, устанавливаемые в верхней части карбюратора;
    2. Смесители – проставки, которые устанавливаются в среднюю часть карбюратора.
    3. Штуцера, так называемые врезки вставляемые в карбюратор при помощи сверления.
    4. Вилкообразная система, состоящая из трубок, которые вставляются в карбюратор без сверления.
    5. Смесители для систем впрыска различных модификаций.


    9. Бензиновый клапан

    Блокирует подачу бензина когда автомобиль работает на газе. Клапан закрыт, когда электричество не подано на него и открывается при включении.



    Он устанавливается в двигательном отсеке только на карбюраторных машинах между бензонасосом и карбюратором.

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



    Стоимость клапана в пределах 1000 руб.

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

    Эмулятор работы инжектора

    При установке ГБО, подача бензина прерывается путем отключения форсунок. Штатный ЭБУ отключение инжектора инициирует как обрыв форсунок, включает лампу неисправности (Check Engine) и переводит работу двигателя в аварийный режим (последнее происходит редко).

    Эмулятор работы инжектора служит для того, чтобы ЭБУ не видел обрыва форсунок.



    Рассмотрим его схему.



    При работе на бензине, цепь замкнута, а при работе на газу цепь размыкается и пускается через нагрузочные резисторы, тем самым не показывая ЭБУ обрыв проводов.

    Эмулятор подбирается по количеству форсунок двигателя, обычно это 2, 4, 6 форсуночные модели.

    Стоимость такого эмулятора в пределах 1500 руб.

    10. Переключатель вида топлива

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



    Все переключатели делятся на три основные группы.

    1. Для инжекторных двигателей. В переключателях такого типа есть три положения: бензин, газ и автоматический режим.
    2. Для карбюраторных двигателей с установкой электронного редуктора. В данных переключателях положение "ГАЗ" снабжено автоматическим отключением питания от запорной арматуры.
    3. Для карбюраторных двигателей с установкой вакуумного редуктора. А на этом переключателе газ-бензин установлены два тумблера. Один на переключение вида топлива, второй для подкачки газа перед пуском двигателя.

    Стоимость переключателей обычно не превышает 1000 рублей.



    Со всеми переключателями поставляется схема подключения и монтажный набор.

    Установка

    ГБО 2го поколения обычно ставят на карбюраторные автомобили. Очень часто цена оборудования является решающим параметром.
    Если автомобиль не премиум сегмента, то нет никакого смысла ставить на него дорогое оборудование.

    Стоимость всего газового оборудования с его установкой начинается от 15000 руб.

    Можно также приобрести все оборудование в виде миникомплекта, для самостоятельной установки.
    Средняя цена составляет 6000 руб.



    Обычно такой комплект состоит из:

  • электронный редуктор Lovato
  • клапан газа
  • клапан бензина
  • мультиклапан Lovato
  • венткамера
  • переключатель топлива
    Опытный мастер всегда может ответить вам на вопрос: подходит ли ГБО 2го поколения для вашего инжекторного автомобиля или нет.

    Установка ГБО 2-го поколения на современные инжекторные автомобили проводилась в основном тогда, когда еще не изобрели системы 4го поколения.

    Газобаллонное оборудование второго поколения полностью отвечает экологическим требованиям Евро-1.

    К нормам Евро-2 системы приближаются только в отдельных случаях. Это послужило главной причиной того, что на рынке появились системы 3го и 4го поколения. Сохраняйте у себя полезные страницы!