Пауль Хоровиц - Искусство схемотехники. Том 3 [Изд.4 е] стр 27.

Шрифт
Фон

Пауль Хоровиц, Уинфилд Хилл - Искусство схемотехники. Том 3 [Изд.4-е]

Рис. 11.35.Типы запоминающих устройств.

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

11.13. Другие микропроцессоры

Как и любой дарвиновский процесс, эволюция микропроцессоров протекала в нескольких расходящихся направлениях. В борьбе за выживание менее приспособленным угрожает опасность вымирания. Примером различающихся эволюционных путей являются процессоры с отдельными командами ввода-вывода и с "вводом-выводом, отображаемым на память". В последнем случае регистры периферийных устройств выглядят просто как ячейки памяти (представителем первого направления является МП 8086, второго - МП 68000). Далее, можно выделить машины, использующие для большинства арифметических операций не регистры, а память. Другая альтернатива в конструировании микропроцессоров касается использования выводов микросхемы: в некоторых ЦП выводы являются многофункциональными, что позволяет повысить гибкость микросхемы. Различаться могут размеры слов (4, 8, 16 или 32 бит) и стеков, а также элегантность (или полнота) системы команд. Каждое семейство микропроцессоров имеет собственный язык ассемблера (вечный камень преткновения для начинающих). Микропроцессоры обычно выполняются по КМОП-технологии, но можно найти и такие, которые используют nМОП-технологию или биполярную логику.

Еще большие различия можно обнаружить у микропроцессоров, предназначенных для решения разных задач. С одной стороны, имеются "однокристальные" процессоры со встроенными ОЗУ и ПЗУ, параллельными портами, УСАПП, таймерами и даже аналого-цифровыми преобразователями. Другая крайность представлена мощными 32-разрядными ЦП 80486, 68040 и АМ29000, которые перекрывают вычислительные возможности больших компьютеров, но для полной реализации своих совершенных качеств требуют обширного аппаратного и программного обеспечения. Микросхемы повышенной степени интеграции занимают золотую середину; например, микросхема Н16 представляет собой комбинацию в одном кристалле ЦП 68000 с двумя УСАПП, таймерами и каналами прямого доступа.

В настоящей главе во всех примерах использовался МП 68008, но мы не хотели бы оставить у читателя впечатление, что другие микропроцессоры хуже. В табл. 11.8 перечислены наиболее популярные из доступных в настоящее время микропроцессоров. Таблицу нельзя рассматривать, как исчерпывающий список всего имеющегося в продаже.

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

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

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

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

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

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

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке