Цепи питания.
Закончив разработку схемы прибора, уже не хочется обременять себя такими деталями, как питание и заземление. Не поддавайтесь этому искушению. Наша схема использует «5-вольтовую логику», что на практике часто означает 5 В ± 5 % (в нашем примере ЦП и некоторые периферийные микросхемы требуют напряжения питания от +4,75 В до +5,25 В). Далее, в цепях питания не должно быть больших импульсных выбросов, избавиться от которых можно с помощью щедрого использования керамических конденсаторов 0,1 мкФ с некоторой добавкой танталовых электролитических конденсаторов большей емкости. Крайним случаем «большого выброса» является угрожающее перенапряжение, могущее возникнуть из-за отказа последовательных стабилизаторов напряжения в цепи питания +5 В. На этот случай стоит предусмотреть схему автоматического шунтирования источника питания при перенапряжении — либо на основной плате, либо в самом источнике питания. Выбирая источник питания, учтите, что микропроцессорная плата может легко потреблять 1 А и более, а по печатным проводникам, питающим вставные платы, может протекать и много ампер. Поэтому заранее запланируйте токонесущие печатные проводники достаточно большого сечения, а также сильноточные соединительные разъемы.Как было показано в разд. 9.11
, особую важность представляют заземляющие проводники как на самих печатных платах, так и между ними. Эти проводники должны иметь минимальную индуктивность. Лучше всего отвести под них один слой многослойной печатной платы, хотя «решетчатое» заземление на двухслойной плате часто дает удовлетворительные результаты (подробнее об этом в следующей главе). Наконец, последний совет касается схемы сброса при включении питания. RC-цепочка (с диодом), изображенная на рис. 11.10, заманчиво проста, однако она не будет отзываться на короткие броски напряжения, достаточные для нарушения работы выполняемой программы. Если микропроцессор встроен в прибор, то результатом будут сбои в работе прибора, причем для восстановления его работоспособности вам придется каждый раз выключать и снова включать питание! Мы сталкивались с таким явлением и в промышленном оборудовании, и в собственных разработках. Самое надежное — использовать хорошую современную схему сброса, например серии МАХ690 фирмы Maxim.Разделавшись с аппаратным конструированием, которое оказалось совсем несложным, перейдем к действительно твердому орешку — программированию.
Разминка: сварим яйцо.
Наш усреднитель сигналов потребует весьма сложного комплекса программ, как это обычно и бывает в мире задач реального времени. Внимательное чтение последующих разделов вознаградит читателей, собирающихся разрабатывать собственные микропроцессорные системы, так как они смогут детально познакомиться с большинством особенностей программного обеспечения аппаратуры, управляемой микропроцессором.Перед тем, однако, как нырнуть в море, полное акул, давайте намочим ноги в мелкой луже простого (и несколько легкомысленного) примера программы для нашей микропроцессорной системы общего назначения. Компьютеры, вообще говоря, предназначены для избавления нас от рутинной работы. Пусть наш прибор каждое утро в 8 часов в течение 5 минут варит нам яйцо!
Представим, что твердотельное реле (рис. 11.10) подключено к небольшому кипятильнику, опущенному в чашку с сырым яйцом. Рассмотрим программу 11.2.
Для упрощения программы будем считать, что компьютер запущен и календарь-часы установлены. (В дальнейшем мы рассмотрим, как выполнить эти малоинтересные, но немаловажные действия!) Программа начинается с засылки нулевого байта в порт ЭЛД, чтобы выключить кипятильник; далее календарь-часы устанавливаются в 24-часовой режим при выключенных прерываниях. После этого программа входит в цикл ("WAKE", пробуждение) непрерывного опроса цифры часов в микросхеме календаря-часов, пока не будет прочитана цифра «8»; в этот момент в порт ЭЛД посылается байт, заполненный единицами, в результате чего включается кипятильник и загораются все ЭЛД.
Далее программа входит во второй цикл ("COOK", кипячение) непрерывного опроса цифры минут в микросхеме календаря-часов, пока не будет прочитана цифра «5»; в этот момент в порт ЭЛД посылается нулевой байт, выключающий кипятильник и гасящий ЭЛД. Наконец, программа переходит к третьему циклу ("WAIT", ожидание) опроса, как и в первом цикле, цифры часов, пока она не перестанет быть «8». В этот момент осуществляется безусловный переход в первый цикл ожидания 8 часов (уже завтрашних).