Эмулятор с газового оборудование зачем нужен. Как это работает? Какой эмулятор подойдёт

Эмулятор с газового оборудование зачем нужен. Как это работает? Какой эмулятор подойдёт

25.05.2019

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

Выхлопные газы, выделяемые автомобилем, содержат опасное вещество NOx. Назначение SCR – минимизация объемов негативных выбросов при помощи мочевины AdBlue. Реактив позволяет выполнить ядовитого вещества на воду и азот.
EGR – используется аналогично SCR для снижения выброса оксида азота. Устройство выполняет перенаправление отработавших газов во впускной коллектор.
AdBlue используется SCR для минимизации объемов выброса NOx в отработанных газах.
AdBlue – жидкое вещество, не имеющее запаха и не являющееся токсичным элементом.
Мочевину в странах Северной Америки называют DEF, а европейские государства называют реактив AdBlue.

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

В SCR часто возникают неисправности, что стало дополнительным аргументом в пользу отключения мочевины AdBlue.
Контролем впрыска реактива и функционирования приборной панели занимается специальный блок DCU или программный модуль в устройстве контроля двигательного агрегата. Эти приспособления точно определяют объемы поставки мочевины и создают сигнал для модуля дозировки. В комплексе предусмотрен замкнутый цикл контроля.

Замерзание Adblue происходит при температурных показателях -11 градусов Цельсия. Деактивация двигательной системы может стать причиной кристаллизации реактива.

Чтобы защитить SCR, в случае низкотемпературной работы, следует выполнить прогревание AdBlue перед стартом двигательного агрегата. Процесс подачи мочевины возможен после полного оттаивания реактива.
В случае работы грузовых автомобилей в холодных условиях РФ деактивация мочевины имитатором данных станет правильным решением.

Как работает эмулятор Adblue

  • В транспортное средство, работающее на базе ЕВРО-5, эмулятор AdBlue монтируют через CAN модуль. Ошибки в системе управления AdBlue – недопустимы!
  • Все данные приборов системы AdBlue копируются в блок памяти эмулятора.
  • Активация эмулятора AdBlue запускает процесс отправки сигнала, посредством CAN модуля, в систему машины скопированных сохраненных данных об исправности устройства AdBlue.
  • При движении машины имитатор AdBlue выполняет обмен данными с определенными блоками средства передвижения и производит отправку модифицированных данных с имитированными сведениями о потреблении мочевины.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В заключение

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

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

В последнее время тренд на установку газобаллонного оборудования второго поколения на инжекторный автомобиль существенно пошел на спад. Но, довольно большая доля автомобилистов попрежнему интересуются тем, как установить и какие конструктивные особенности нужно вносить в автомобиль при этом. Сегодня мы расскажем про узел системы, без которого невозможно установить ГБО 2 поколения на инжекторный автомобиль – это эмулятор форсунок.

Зачем нужен эмулятор форсунок

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

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

Таким образом, эмулятор форсунок ГБО 2 поколения выполняет три основные функции:

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

Обратите внимание! На ГБО 4 поколения эмулятор форсунок отдельно не докупается, так как этот узел уже встроен в газовый электронный блок управления.

Маркировка эмулятора форсунок

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

Основная схема маркировки выглядит следующим образом:
Производитель, тип ГБО, тип эмулятора, количество цилиндров. Например маркировка «STAG2 E4» означает, что это изделие производителя STAG, подходит для ГБО 2 поколения, имеет электронное управление и предназначено для 4 цилиндровых ДВС.

Аналогично «Stag2E-6» — производитель STAG, подходит для ГБО 2 поколения, имеет электронное управление и предназначено для 6 цилиндровых ДВС.

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

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

Подключение эмулятора форсунок

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

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

  • Большинство бензиновых инжекторов имеют сопротивление 100 Ом. Убедитесь в том, что устройство, которое Вы хотите установить, поддерживает именно это сопротивление. Обычно сопротивление указывают в технических характеристиках изделия.
  • Убедитесь, что разъем на эмуляторе такой же, как и на Вашем автомобиле.
  • Убедитесь, что устройство поддерживает нужное Вам кол-во цилиндров ДВС.
  • Внимательно изучите схему подключения, она должна ити в комплекте вместе с устройством.

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

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 фреймов

Заключение

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

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



© 2024 globusks.ru - Ремонт и обслуживание автомобилей для новичков