Как работают эмуляторы и как они записываются? Как работает эмулятор Adblue. Какой эмулятор подойдёт

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

Улучшения

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

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

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

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

Схема

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



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го поколения. Сохраняйте у себя полезные страницы!

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

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

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

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

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

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

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

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

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

    В этих же целях эмулятор форсунок ГБО 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 поколения имеют несколько обязательных условий, которые требуется выполнить для продуктивной работы всей системы.

    Эмулятор форсунок – что это?

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

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

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

    Важно! Бензонасос при переходе на газ не отключается, так как бензин охлаждает и омывает свою часть системы, в том числе форсунки бензинового типа. Также в бензобаке должно присутствовать топливо.

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

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

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

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

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

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

    На нашем сайте есть статьи про различные газовые форсунки:

    Установка и настройка

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

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

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

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

    • стандартное сопротивление электронного механизма должно быть около 100 ОМ;
    • установка устройства должна учитывать наличие или отсутствие саморегуляции;
    • для каждого инжектора есть свой механизм, например, для «европейцев» подойдет устройство с маркировкой EI, а для японцев – JI. Это позволит подобрать устройство с соответствующими разъемами и характеристиками;
    • стоит учитывать количество цилиндров, так как в соответствии с этим идет индивидуальный подбор эмулятора;
    • требуемый предел задержки перехода варьируется от нуля до 5 секунд. Диапазон устанавливается в соответствии с конфигурацией двигателя индивидуально, сразу после монтажа.

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

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

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

    В заключение

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

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

    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 . Это было весело и дало мне много аха. Возможно, вам захочется выбрать эту книгу, прежде чем погрузиться в реальный эмулятор.