4. Какова максимальная нагрузка по току входов и выходов МК семейства 68HC12?
5. Что произойдет с VOH и VOL, если будет превышена нагрузка по току?
6. Какие два условия должны быть выполнены, чтобы светодиод светился?
7. Почему схема сопряжения со светодиодом, представленная на рис. 5.3, не будет работать? Предложите рабочий вариант схемы при условии, что прямой ток светодиода 15 мА, а прямое падение напряжения 1,7 В?
8. Опишите два способы защиты от дребезга механических контактов.
9. Что такое выход с тремя состояниями?
10. Как работает твердотельное реле? В каких случаях его следует использовать?
1. В тексте главы были введены две виртуальные серии логических элементов (DP1 и SB2). Для этих серий были приведены электрические параметры для входов и выходов:
DP1:
VIH= 2,0 В, VIL= 0,8 В, IOH= –0,4 мА, IOL= 16 мА
VOH= 3,4 В, VOL= 0,2 В, IIH= 40 мкА, IIL= –1,6 мА
SB2:
VIH= 2,0 В, VIL= 0,8 В, IOH= –0,4 мА, IOL= 8 мА
VOH= 2,7 В, VOL= 0,4 В, IIH= 20 мкА, IIL= –0,4 мА
Определите, могут ли логические элементы серии DP1 быть подключены к элементам серии SB2? Если да, то чему равен коэффициент разветвления SB2 для DP1?
2. Можно ли подключать элементы серии DP1 к выходам МК семейства 68HC12?
3. Можно ли подключать элементы серии SB2 к выходам МК семейства 68HC12?
4. На рис. 5.5 подтягивающие резисторы подключены к напряжению питания VCC. Представьте, что схему изменили, и эти же резисторы подключили к общему выводу. Как должна измениться таблица рис. 5.5?
5. На рис. 5.5 была приведена схема подключения к МК клавиатуры из 16 клавиш. Разработайте аппаратную схему декодирования кода клавиш подобной клавиатуры. На выходе схемы должен формироваться ASCII код нажатой клавиши. МК не должен использоваться для решения поставленной задачи.
6. Опишите своими словами принцип действия схем противодребезговой защиты, приведенных на рис. 5.10.
7. Разработайте блок-схемы алгоритмов для каждой из функций программы управления ЖК дисплеем из разделов 5.6.2 и 5.6.3.
8. Разработайте схему сопряжения МК с твердотельным реле (рис. 5.19), считая, что прямое падение напряжения на светодиоде равно 1,7 В, прямой ток светодиода равен 20 мА.
9. Опишите, как работает МДП-транзистор.
10. Используя дополнительные источники и Интернет (www.irf.com), составьте реферат о параметрах современных мощных МДП-транзисторов.
11. Некоторый датчик формирует на выходе в нижней точке шкалы измерения напряжение 30 мВ, в верхней точке шкалы — 500 мВ. Разработайте интерфейс сопряжения этого датчика с МК семейства 68HC12.
12. Повторите задание предыдущего вопроса, но при условии, что в нижней точке шкалы измерения напряжение равно 500 мВ, а в верхней точке шкалы выходное напряжение составляет –30 мВ.
1. На рис. 5.5 подтягивающие резисторы подключены к напряжению питания VCC. Представьте, что схему изменили, и эти же резисторы подключили к общему выводу. Разработайте программу формирования кода нажатой клавиши для такой схемы подключения клавиатуры.
2. Разработайте алгоритм и блок-схему программы для аппаратного подключения переключателей и светодиодов рис. 5.11. Зеленый светодиод на выходе PC0 должен светиться, если нажата кнопка на входе PB0. На остальных выводах порта PC0 должны гореть красные светодиоды. Если нажата кнопка на входе PB1, должны светиться зеленые светодиоды на выходах PC0 и PC1. И так далее, для всех кнопок, заканчивая PB7, при нажатии которой должны загореться 8 зеленых светодиодов.
3. Измените текст программы параграфа 5.8.2, разрешив доступ по комбинации из шести правильных символов.
Глава 6ДОБРО ПОЖАЛОВАТЬ В РЕАЛЬНЫЙ МИР!
ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ ВЫ СМОЖЕТЕ:
• Определить реальные ограничения проекта, которые могут не позволить микроконтроллерной системе правильно работать.
• Изложить правила обращения с устройствами на базе КМОП и разработать рекомендации.
• Определить источники и внутренних и внешних помех для микроконтроллерной системы.
• Перечислить основные организации, ответственные за обеспечение директив и руководств по электромагнитной совместимости (ЭМС).
• Рассказать о методах проектирования, позволяющих минимизировать чувствительность к помехам.
• Применить программные методы защиты, чтобы минимизировать чувствительность к помехам.
• Описать методы обнаружения помех.
• Применить методы управления питанием, позволяющие снизить мощность, потребляемую микроконтроллерной системой.
• Понять изменения, определяемые выбором батарейного источника питания для микропроцессорной системы.
• Определить основные свойства супервизоров для управления микропроцессорами.
• Определить и реализовать меры энергосбережения.
Что можно сказать обо всей этой главе? После того, как вы рассмотрели цели главы, вы могли бы подумать, что глава представляет собой совокупность собранных с бору по сосенке разделов, которые неудобно размещать в любой другой главе. Мы согласны с тем, что в главе рассматривается много различных тем; однако, все они связаны общей нитью. Если при разработке реальных устройств проигнорировать любую из рассматриваемых здесь проблем, система вообще не сможет функционировать. Хуже все то, это поведение схемы при этом может носить случайный, непредсказуемый, или невоспроизводимый характер. В этой главе мы имеем дело с реальными проблемами разработки, которые необходимо решать. Мы приводим всесторонний список исходных материалов для дальнейших разделов, в которых читатель может разыскать дополнительную информацию.
6.1. Ужасные истории об ошибках проектирования
Мы начнем с нескольких «ужасных историй» о проектах, которые работали неправильно. Обратите особое внимание на специфические причины этих сбоев. После этого мы покажем Вам некоторые методы, которые позволяют превратить хороший проект, созданный на бумаге, в нормально работающее практическое устройство.
6.1.1. Случай квадратичного генератора
Прежде, чем обсудить первый случай, приведем некоторую основную информацию о восстановлении сигнала. Полезная методика создания аналогового сигнала заданной формы, состоит в том, чтобы разделить сигнал на ряд аналоговых данных. Аналоговые значения в отдельных точках преобразуются затем в двоичные коды от $00 до $FF. При этом минимальный сигнал в 0 В соответствует числу $00, а максимальный сигнал, например, в 5 В соответствует числу $FF. Аналоговые данные, расположенные между этими двумя экстремальными значениями преобразуются по линейному закону в 8-разрядный двоичный код. Не правда ли эта методика что-то вам напоминает? Конечно, это процесс аналого-цифрового преобразования (АЦП), который мы уже обсуждали в главе 4.
Чтобы восстановить аналоговый сигнал, отдельные двоичные коды последовательно пересылаются на цифро-аналоговый преобразователь (ЦАП). Перед тем, как продолжить рассмотрение, проведем короткий обзор основных концепций для ЦАП.
Цифро-аналоговый преобразователь. Цифро-аналоговый преобразователь (ЦАП) преобразует входной многоразрядный двоичный код в соответствующий аналоговый выходной сигнал (см. рис. 6.1). Мы не будем обсуждать различные методы преобразования, применяемые в ЦАП. Мы просто представим ЦАП как «черный ящик» и опишем его функции с помощью блок-схемы. Аналоговый выходной сигнал создается суммированием взвешенных двоичных входных сигналов, как показано на рисунке.
Рис.6.1. Цифро-аналоговый преобразователь
Цифро-аналоговый преобразователь (ЦАП) преобразует многоразрядный двоичный входной код в соответствующий аналоговый выходной сигнал. Аналоговый выходной сигнал создается суммированием взвешенных двоичных входных сигналов. Символ UMAX соответствует максимальному напряжению
Например, когда на входе ЦАП формируется код $CA, старший двоичный бит умножается на половину значения UMAX. Следующий по старшинству бит умножается на четвертую часть UMAXи так далее. Все взвешенные биты суммируются, давая в результате аналоговое значение.
Примем, что FS = VRH – VRLпредставляет собой максимальный размах напряжения для 8-разрядного 5-вольтового ЦАП. В этом случае высокий уровень опорными напряжениями составляет 5 В, а низкий — с 0 В. А как определить, например, аналоговое выходное напряжение соответствующее двоичному входному коду $CA?
Это напряжение можно определить, используя следующую взвешенную сумму для входного кода $CA:
UВЫХ = 5 [(1×1/2) + (1×1/4) + (0×1/8) + (0×1/16) + (1×1/32) + (0×1/64) + (1×1/128) + (0×1/256)] = 3,945 В
Аналоговый сигнал может быть затем создан путем цифровых данных на входах ЦАП, чтобы получить аналоговую реконструкцию. Методика восстановления аналогового сигнала из отдельных двоичных точек может использоваться при многих различных типах сигналов [Barrett 1979, Welch 1997].
Обсудим теперь сбой в разрабатываемом квадратичном генераторе. На рис. 6.2 показано, как эта методика может использоваться, чтобы генерировать сигналы, связанные квадратичной зависимостью (напряжения синусоидальной и косинусоидальной формы). Схема включает в себя программируемый кварцевый CMOS генератор PXO1000 фирмы Statek. Частота генератора устанавливается вручную с помощью DIP переключателей. Генератор является таймером для 8-разрядного двоичного счетчика на базе CMOS, который обеспечивает непрерывный счет от $00 до $FF. Выходной сигнал этого счетчика подается на две отдельных NMOS микросхемы памяти EPROM размером 2048 б, которые сохраняют данные для синусоидальной и косинусоидальной волны. Выходные сигналы с микросхем памяти подаются на отдельные 8-разрядные CMOS цифро-аналоговые преобразователи, которые опять преобразуют отдельные двоичные данные в аналоговый сигнал. Сигналы с ЦАП подаются на операционные усилители, которые осуществляют сдвиг нулевого уровня выходного сигнала ЦАП, и могут также обеспечить подстройку коэффициента усиления.
Рис. 6.2. Квадратичный генератор
На бумаге проект работает вполне правильно. Однако, когда схема была реализована, оказалось, что она является хорошим генератором помех. В чем была проблема? В первоначальном проекте отсутствовали резисторы сопротивлением 4.7 К в выходных цепях NMOS памяти. В главе 5 мы указали, что мы можем обычно напрямую связывать входы и выходы микросхем одного семейства. Однако, при соединении микросхем из различных семейств, мы должны быть очень осторожны. Обратите внимание, что в этом проекте, мы переходим от счетчика CMOS к памяти NMOS и затем обратно на ЦАП CMOS. Мы должны тщательно спроектировать интерфейс между CMOS и NMOS и затем интерфейс NMOS к CMOS. Чтобы эта схема правильно работала, должны быть включены нагрузочные резисторы в выводы NMOS. Это позволяет входам ЦАП на базе CMOS правильно распознавать состояния выходов NMOS. Нагрузочные резисторы показаны на рис. 6.2.
Из этого примера вы можете видеть важность тщательного выбора цепей связи между всеми компонентами внутри схемы. Особую осторожность следует проявлять при соединении микросхем из различных семейств.
6.1.2. Случай таймера для лазерного излучения
Рассмотрим теперь экспериментальную установку для научно-исследовательской работы, которая касалась методов задания времени облучения для записывающего лазера. В эксперименте, лазер управлялся ТТЛ-совместимым импульсом, формируемым ПК. При высоком значении импульса, лазерный затвор был открыт, при низком — закрыт. Цель экспериментов состояла в том, чтобы изучить влияние лазера на ткани глаза при глазной хирургии. В идеале, мы хотели бы привязать работу лазера к временной метке видеозаписи эксперимента. В коммерческом проекте задания времени было найдено и проверено оборудование, обеспечивающее оптимальную стоимость для малобюджетного проекта.
После рассмотрения имеющихся на рынке микросхем, были выбраны цифровые таймеры серии 74LSXX. Компоненты использовались, чтобы создать пятиразрядный счетчик, который управлял бы несколькими семисегментными дисплеями с помощью микросхем драйверов дисплея. Считывание с семисегментных дисплеев производилось оптически объективом фотокамеры, производящей запись эксперимента. Электроника счетчика/дисплея была установлена в пластмассовом корпусе, и окно было вырезано так, чтобы были видны показания дисплея, как это показано на рис. 6.3.
Рис. 6.3. Дисковый прерыватель лазерного излучения поочередно фокусирует на исследуемой точке ткани сначала луч лазера, а затем объектив камеры. Поле обзора камеры, табло дисплея, и путь лазерного луча оптически съюстированы компанией
Поле обзора камеры, табло дисплея, и путь лазерного луча были оптически съюстированы компанией. «Дисковый прерыватель» поочередно фокусирует на исследуемой точке ткани сначала луч лазера, а затем объектив камеры. Без такой синхронизации, высокая интенсивность лазера выводила бы видеокамеру в область насыщения. Окна дискового прерывателя были расположены друг против друга, чтобы чередовать пропускание лазерного луча и подсветки для камеры. Скорость двигателя, вращающего диск прерывателя, была стабилизирована таким образом, чтобы момент появления окна, открывающего объектив камеры был синхронизован со скоростью передачи кадров камеры. Это было необходимо для создания устойчивого изображения.
В теории, открытое состояние лазерного затвора, определялось не только импульсом от ПК, но также и импульсом синхронизации. Таким образом, затвор открывался при появлении обоих сигналов на входах схемы И, и счетчик определял бы время открытия затвора.
Схема счетчик/дисплей работала очень хорошо в лаборатории фирмы-производителя. Однако, когда она была перенесена в лазерную лабораторию, в работе появились сбои. Подозрение пало на помехи, и мы стали кропотливо изолировать источники помех. Мы не делали никаких попыток стандартной защиты схемы счетчик/дисплей от помех, пока не столкнулись с этой проблемой. Было достаточно трудно ввести эту защиту после того, как схема была уже создана. Как вы думаете, что за проблема могла бы здесь быть? Какие корректирующие меры должны быть приняты?
Зная, что двигатели являются известным источником помех, мы подозревали, что источником помехи был двигатель дискового прерывателя. Часто микроконтроллеры используются, чтобы управлять двигателями. В главе 5, мы показали, как оптически изолировать схему управления от двигателя. Однако, в этом примере, схема счетчик/дисплей не имела никакого прямого подключения к электросети, питающей двигатель. Фактически, схема счетчик/дисплей и двигатель была включена от разных источников постоянного напряжения. Решение проблемы помех от этого типа двигателя была исследована более подробно. Мы использовали следующие методы, чтобы защитить схему счетчика/дисплея от помех, создаваемых двигателем:
• Сигнал управления с ПК на таймер был подан экранированным кабелем. Экран кабеля был заземлен. Кабель был проложен далеко от двигателя.
• Помехоподавляющие (шунтирующие) конденсаторы были установлены на каждой микросхеме между источником и землей в схеме счетчика/дисплея. Кроме этого, помехоподавляющие конденсаторы были установлены на шинах питания платы счетчика/дисплея.
• Пластмассовый корпус счетчика/дисплея был обмотан заземленной медной лентой. Медный экран был также установлен на окне корпуса дисплея. Он был также электрически связан с медной лентой. Экран и лента обеспечили защиту корпуса схемы счетчика/дисплея.
После применения этой защиты от помех, схема стала работать в соответствии с проектом, и эксперименты были без труда завершены.
Какой урок можно извлечь из этого проекта? Не был проведен полный анализ среды. А он должен выполняться как нечто само собой разумеющееся, когда устанавливаются исходные требования для проекта. Как нечто само собой разумеющееся, должна быть также включена в любой проект, выполняемый на интегральных микросхемах, и защита от помех. Имеются много стандартных методов снижения помех, и внутренних и внешних по отношению к схеме. В заключение, оказывается, что чрезвычайно дорого вводить защиту от помех после того, как изделие было отправлено заказчику. В вышеупомянутом сценарии, проблема возникла внезапно, во время сбора экспериментальных данных.
Мы провели изучение двух случаев, чтобы иллюстрировать следующие общие проблемы в микропроцессорных систем:
• Неподходящие методы связи микросхем;
• Проблемы помех, связанные с внешними и внутренними источниками;
• Проблемы помех, связанные с аналоговой электроникой.
Теперь, рассмотрев некоторые общие реальные проблемы, мы посвятим остальную часть главы описанию методов, которые действительно превращают проект на бумаге в проект, хорошо работающий на практике, позволяющий уйти от реальных ловушек.