Проектирование цифровых устройств на микроконтроллерах


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

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

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

Рассмотрим пример разработки схемы и написания программы для микроконтроллера. Прежде всего не нужно забывать, что программа не может существовать отдельно независимо от схемы устройства. Если при написании программы для универсального компьютера, такого как IBM PC можно не задумываться о схеме, так как она стандартная, то перед написанием программы для микроконтроллера необходимо разработать схему устройства, в состав которого будет входить микроконтроллер. Мельчайшие изменения в принципиальной схеме устройства приводят к изменению программы, написанной для этого устройства.

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

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

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

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

Разработка структурной схемы.

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

Рисунок 1. Структурная схема устройства измерения времени.

В простейшем случае генератор импульсов эталонной длительности должен вырабатывать минутные импульсы. В качестве генератора эталонных импульсов мог бы подойти кварцевый генератор, так как этот тип генераторов обладает высокой стабильностью колебаний. Но кварцевые генераторы вырабатывают колебания в диапазоне от 1 до 30 МГц. Это соответствует временным интервалам от 0.03 до 1 мкС. Тем не менее, если воспользоваться делителем частоты, можно получить импульсы с периодом 1 минута.

Выберем частоту работы кварцевого генератора. Мы предполагаем использовать микроконтроллер семейства MCS-51, поэтому выберем частоту кварцевого генератора обычную для этих микроконтроллеров - 12 МГц. Тогда для формирования секундных импульсов (частота 1 Гц) потребуется делитель частоты на 12000000. Для формирования минутных импульсов потребуется ещё один делитель частоты. Так как в минуте содержится 60 секунд, то нам потребуется делитель на 60.

Уточнённая структурная схема разрабатываемого микропроцессорного устройства приведена на рисунке 2.

Рисунок 2. Уточнённая структурная схема устройства измерения времени.

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

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

Структурная схема часов с учётом блока индикации и блока коррекции времени приведена на рисунке 3.

Рисунок 3. Структурная схема часов.

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