Главная > Схемотехника > Искусство схемотехники, Т.3
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

11.14. Эмуляторы, системы проектирования, логические анализаторы и макетные платы

Если вы разрабатываете прибор с микропроцессорным управлением, то каким образом выполнить написание, ассемблирование, отладку и загрузку в ПЗУ программы для него? Это серьезная проблема, особенно для начинающих работать с микропроцессорами. Для решения ее можно предложить целый ряд методик, от простого автономного способа под названием «прожги и ломай» (burn and crash) до изощренных систем проектирования и эмуляторов языков высокого уровня. В настоящем разделе мы попытаемся описать, чем можно сегодня воспользоваться и насколько это полезно при разработке приборов с микропроцессорным управлением.

«Прожги и ломай».

Это красочное название описывает простейший способ разработки программы для микропроцессорной аппаратуры. Заключается он в следующем. Сначала с помощью ассемблера или компилятора на компьютере общего назначения (возможно вашей настольной машине) вы получаете коды выполнимой программы, которые можно записать в РПЗУ. Если процессор - мишень, т. е. микропроцессор разрабатываемого прибора отличается от процессора использованного компьютера, вам понадобится «кроссассемблер»; в противном случае можно воспользоваться «родным» ассемблером компьютера. Теперь можете запрограммировать РПЗУ (это «прожги») и испытать программу в вашем приборе (это «ломай»). Дальнейшая отладка заключается в обнаружении неправильностей, вызванных ошибками в программе (или в аппаратуре), исправлении программы или включении в нее диагностических тестов, и повторных испытаниях. Поиск ошибок - широкое поле для остроумных приемов. Например, вставив в отлаживаемую программу соответствующие строки, вы можете использовать ЭЛД-индикаторы или другие порты в диагностических целях, выводя информацию о том, что происходит в программе. Не забывайте и о традиционных инструментах мира электроники - логическом пробнике, осциллографе, а также (в минуту отчаяния) о логическом анализаторе (см. ниже).

Заменители ПЗУ. Методика «прожги и ломай», описанная выше, является медленной процедурой. Хотя иногда она адекватна стоящей перед вами задаче, вам, скорее всего, быстро надоест повторение одних и тех же операций стирания РПЗУ под ультрафиолетовой лампой и программирования его в программаторе. Можно предложить способы ускорения этой процедуры: (а) Вместо РПЗУ используйте ЭРПЗУ. Программируются они не быстрее, но зато не надо тратить столько времени на стирание, (б) Используйте на время разработки не РПЗУ, а КМОП ОЗУ с резервным батарейным питанием (энергонезависимое). Эти микросхемы столь же быстры, как и обычные ОЗУ (т. е. «программируются» мгновенно) и имеют выводы, совместимые с РПЗУ, так что их можно вставлять в панельку разрабатываемого вами прибора, предназначенного для установки ПЗУ с программой. ОЗУ с резервным батарейным питанием поставляют многие фирмы (Dallas, Thomson -Mostek и ); можно их сделать и самим, (в) Используйте «эмулятор ПЗУ». Это небольшая коробочка с кабелем и -контактным разъемом DIP на конце. Разъем вставляется в панельку для РПЗУ в вашем приборе, и коробочка эмулирует ПЗУ. Фактически, однако, она содержит двухпортовое ОЗУ, которое вы загружаете из вашего компьютера через последовательный порт. Использование эмулятора ПЗУ обеспечивает максимальную скорость отладки; так как для изменения программы вам не надо каждый раз вынимать и вставлять микросхемы памяти - вы просто загружаете новую программу в эмулятор, который остается включенным в налаживаемый прибор.

Эмуляторы ПЗУ выпускаются под названиями или (последний поставляется фирмой Onset Computer Corp., Норт-Фалмут, Миннесота).

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

Аппаратный эмулятор.

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

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

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

Системы разработки.

«Система разработка" - это обобщенный термин для комбинации кросс-ассемблера, программатора РПЗУ и аппаратного эмулятора.

Традиционно такие средства выпускались в виде внушительных автономных систем, однако в настоящее время большую популярность завоевывают вставные платы, использующие компьютер в качестве вычислительной базы, и, возможно, управляющие внешним блоком, содержащим дополнительные схемы. Как бы они не выглядели, вам необходимо приобрести такого рода систему, если вы специализируетесь на разработке микропроцессорных устройств, ориентированных на конкретный микропроцессор. Обычно системы разработки предлагаются фирмами, выпускающими микропроцессорные семейства. Некоторые фирмы, кроме того, изготавливают «универсальные эмуляторы», в которые можно вставлять платы с микропроцессорами разных типов. Системы разработки выпускаются, в частности, фирмами Hewlett-Packard, Tektronix, Microcosm, Applied Microsystems.

Логические анализаторы.

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

Анализ состояний. В этом режиме на вход статического анализатора подается синхронизирующий тактовый сигнал от вашей схемы (обычно тактовый сигнал ЦП), а сонм выводов (торчащих из анализатора) подключается к линиям данных и адреса, а также к другим интересующим вас сигналам. Хороший логический анализатор обслуживает 60-80 каналов при тактовой частоте до 25 МГц или больше. Затем вы устанавливаете сигнал запуска так, чтобы зафиксировать интересующее вас программное событие. Обычно в анализаторе имеется несколько регистров распознавания слов, в которые вы можете вводить любую последовательность 0,1 и X (произвольное состояние); это, разумеется, биты адреса и данных. В хорошем логическом анализаторе предусматривается возможность комбинирования выходов регистров распознавания слов в виде булевых выражений и функций состояния; например, можно образовать сигнал запуска от десятого прохода некоторой подпрограммы.

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

Временной анализ. В режиме временного анализа логический анализатор работает от асинхронного тактового сигнала высокой частоты, обычно 100 МГц, который фиксирует логические состояния меньшего числа входных линий (чаще всего 16). Логика запуска поневоле проще и допускает обычно лишь одно слово распознавания. Анализатор ожидает установленного условия запуска, после чего заполняет свою память быстрыми выборками. В режиме временного анализа вы можете наблюдать кратковременные выбросы и другие искажения формы сигнала, которые незаметны в режиме анализа состояний. Можно перейти в режим «обнаружения выбросов», когда анализатор ищет два перепада, возникающих в течение 10 не-периода дискретизации.

Перекрестный запуск.

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

Логические анализаторы с перекрестным запуском образуют расщепленный информационный кадр, что дает возможность, просматривая состояния, наблюдать также и форму сигналов. В области логических анализаторов наиболее известны имена Gould, Hewlett-Packard, Philips и Tektronix.

Макетные платы.

В 70-х гг., когда широкую популярность стали завоевывать -разрядные микропроцессоры, такие, как 6800 и , для каждого нового микропроцессора выпускалась макетная плата. Это был набор аппаратуры, куда входили небольшая клавиатура, шестнадцатеричный дисплей, ПЗУ, РПЗУ-монитор, несколько параллельных и последовательных портов, а также собственно плата для монтажа на ней схем, добавляемых пользователем. Вы могли, выполнив ручное ассемблирование небольшой программы, ввести ее посредством клавиатуры и наслаждаться результатом. Для инженерного мира, начинающего осваивать микропроцессоры, макетные платы предоставляли простой способ приобретения знаний и навыков.

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

<< Предыдущий параграф Следующий параграф >>
Оглавление