Микропроцессорные системы управления - Южный ...
-
Upload
khangminh22 -
Category
Documents
-
view
1 -
download
0
Transcript of Микропроцессорные системы управления - Южный ...
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Технологический институт
Федерального государственного образовательного учреждения высшего профессионального образования
«Южный федеральный университет»
Ю.И. Иванов, Н. И. Чернов, В.Я.Югай
Микропроцессорные системы управления
Допущено Учебно-методическим объединением вузов по образованию в области автоматизированного машиностроения (УМО AM) в качестве
учебного пособия для студентов высших учебных заведений, обучающихся по направлению подготовки «Автоматизированные технологии и
производства»
I ii т Таганрог 2009
УДК 517.11 (075.8)
Рецензенты:
Доктор технических наук, профессор, проректор Таганрогского государственного -педагогического университета Витиска Н.И. ' •
Доктор технических наук, профессор Ростовского государственного университета путей сообщения Иванченко В.Н.
Иванов Ю.И., Чернов Н.И., Югай В.Я. Микропроцессорные системы управления: Учебное пособие. — Таганрог: Изд-во ТТИ ЮФУ. 2009. -321 с.
В пособии рассматриваются основы теории дискретных автоматического управления, а также вопросы проектирования таких систем на основе микропроцессоров.
В теоретической части работы рассмотрен математический аппарат, методы анализа и синтеза дискретных (импульсных) систем управления, а также особенности математического описания микропроцессорных систем автоматического управления.
В рамках задачи проектирования микропроцессорных систем рассмотрены арифметические и логические основы микропроцессоров, архитектура микропроцессоров и микропроцессорных систем и их программирования.
В обеспечение задачи аппаратной реализации микропроцессорных систем управления рассмотрены аппаратно-программные реализации некоторых компонентов микропроцессорных систем управления.
Предназначено для студентов специальностей 220301. 220302, 180305.
Табл. 38. Ил. 343. Библиогр.: 29 назв.
530,5^3
БИБЛИОТЕКА | * У'-гетсаш'^ч^сш^ институтI
}лк*>у s г.ТаганрФг©
© Иванов Ю.И., Чернов Н.И., Югай В.Я., 2009
© ТТИ ЮФУ, 2009
3
Содержание Предисловие 5 Введение 6 I. Дискретные системы автоматического управления i 1.1. Общие сведения о дискретных системах автоматического управления 7 1.1.1. Классификация дискретных систем автоматического управления 7 1.1.2. Структуры дискретных систем автоматического управления 10 1.2. Математический аппарат описания дискретных систем автоматического
управления 13 1.2.1. Модели импульсных сигналов 13 1.2.2. Решетчатые функции 13 1.2.3. Разностные уравнения 16 1.2.4. Дискретные преобразования Лапласа и Фурье 18 1.2.5. Передаточные функции, временные и частотные
характеристики импульсных систем управления 26 1.2.6. Описание импульсных систем управления в пространстве состояний 35 1.3. Линейные импульсные системы автоматического управления 39 1.3.1. Понятие линейной дискретной системы управления 39 1.3.2. Структурные преобразования линейных дискретных систем 40 1.3.3. Свойства линейных дискретных систем 41 1.4. Анализ импульсных систем автоматического управления 51 1.4.1. Дискретизация непрерывных процессов 51 1.4.2. Аналоговые модели дискретных сигналов ....52 1.4.3. Дискретизация простейшей импульсной системы 52 1.5. Синтез дискретных систем управления 57 1.5.1. Идеология синтеза дискретных систем управления 57 1.5.2. Преобразование непрерывных регуляторов в дискретную форму .....58 1.5.3. Модальная коррекция регуляторов 63 1.5.4. Апериодическое управление 68 1.5.5. Синтез регуляторов по эталонной модели 72 1.5.6. Синтез регуляторов с помощью билинейного преобразования .'. 76 1.6.Особенности микропроцессорных систем управления 78 1.6.1. Модель цифровой системы управления ...78 1.6.2. Методы исследования цифровых систем управления 79 1.6.3. Передаточные функции звеньев цифровой системы автоматического управления 79 1.6.4. Алгоритмические основы построения цифровых систем автоматического управления 89 И. Микропроцессорные устройства цифровых систем у правления.. 94 II.1. Арифметические основы микропроцессоров 94 II. 1.1. Системы счисления 94 II. 1.2. Кодирование информации 96 II. 1.3. Арифметические операции 101 II. 1.4. Погрешности выполнения арифметических операций 105 И. 2. Логические основы микропроцессоров 109 П.2.1. Логические переменные и функции 109 П.2.2. Логические элементы и синтез комбинационных схем, 112 II.2.3. Типовые комбинационные схемы 120 П.2.3. Типовые последовательностные схемы 125 И. 3. Алгоритмические основы микропроцессоров 139 И.3.1. Исходные понятия программирования 139 И.3.2. Логические схемы алгоритмов 139 П.3.3. Структурограммы 141
4
П.3.4. Разветвляющиеся алгоритмы 142 П. 4. Архитектура микропроцессорной системы 144 П.4.1. Понятие микропроцессорной системы 144 И.4.2. Архитектура микропроцессорной системы 145 ПАЗ. Система памяти 170
— Н.4.4. Система ввода-вывода 176 П.4.5. Дополнительное оборудование микропроцессорной системы 187 П.4.6. Микропроцессорные системы и микроконтроллеры 200 II. 5. Программное обеспечение микропроцессоров 207 П.5.1. Общие сведения 207 П.5.2. Основные элементы языка Ассемблера 207 П.5.3. Типовые приемы программирования 211 П.5.4. Понятие о системном программном обеспечении 212 Ш. Микропроцессорные системы автоматического управления 213 ШЛ. Аппаратные средства реализации микропроцессорных систем
управления 213 Ш.1.1. Структурная схема микропроцессорной системы управления 213 Ш.1.2. Аналогово-цифровые преобразователи 213 Ш.1.2. Цифро-аналоговые преобразователи 224 III. 1.3. Микроконтроллеры 230 1П. 1.4. Дополнительное оборудование микропроцессорных систем 249 1П. 1.5. Некоторые аспекты функциональной организация
микропроцессорной системы управления 252 III. 2. Программирование микропроцессорных систем управления 256 Ш.2.1. Программирование дискретной передаточной функции системы управления 256 Ш.2.2. Реализация цифровых фильтров в виде подпрограмм 259 Ш.2.3. Интегрированная среда разработки AVR Studio 260 Ш.2.4. Программирование микроконтроллеров AVR в среде программирования PonyProg 264 Ш.З. Реализация микропроцессорных систем автоматического
управления 267 Ш.3.1. Характеристики процессов управления 267 Ш.3.2. Идентификация характеристик процессов 268 Ш.3.3. Подключение внешних устройств к микроконтроллеру (на примере Atmel) 269 Ш.3.4. Часы реального времени на основе микроконтроллера Atmel 286 Ш.З.5. Система управления муфельной печью 287
Библиографический список зог Приложения зоз 1. Листинг программы часов реального времени 303 2. Классификация и маркировка интегральных схем 314
Предисловие
Эта книга разрабатывалась первоначально как учебное пособие по дисциплине «Микропроцессорная техника в системах управления». Однако в процессе разработки возникла идея сделать ее пособием по проектированию дискретных (точнее, импульсных) систем автоматического управления.
Такое изменение постановки задачи привело к существенному изменению первоначальных представлений о существе и объеме этой книги. В основу формирования содержания ее вторами была положена концепция «все включено», т. е. в ней должен был находиться весь необходимый теоретический и прикладной материал по проектированию дискретных систем автоматического управления, чтобы читатель, пользуясь только этой книгой, мог найти все необходимые материалы для проектирования цифровой системы автоматического управления. Именно эта концепция привела эту книгу к виду, предлагаемую вниманию читателя.
Книга состоит из трех разделов: I. Дискретные системы автоматического
управления. Здесь излагаются основы теории дискретных систем автоматического управления. Приводятся общие сведения о системах управления этого класса, рассматривается математический аппарат анализа и синтеза линейных дискретных систем управления, а также некоторые методы синтеза дискретных регуляторов с помощью аналоговых и цифровых методов. Этот раздел имеет целью дать читателю необходимые сведения из теории дискретных систем и особенностях их проектирования. Уровень изложения материала предполагает наличие у читателя знаний о математическом аппарате анализа и синтеза непрерывных линейных систем автоматического управления.
II. Основы микропроцессорной техники. Здесь рассмотрены арифметические и логические основы цифровой техники, типовые комбинационные и последовательностные цифровые схемы, элементы памяти, архитектура микропроцессоров и микропроцессорных сис
тем и их функционирование. Здесь также приведены аппаратно-программные реализации некоторых типовых узлов микропроцессорных систем (клавиатуры, индикации, цифровых часов...). Этот раздел дает читателю материал для изучения микропроцессоров и микроконтроллеров, являющихся ядром любой современной дискретной системы автоматического управления.
III. Проектирование цифровых систем автоматического управления. Материал этого раздела подразделяется на две части:
алгоритмическое и аппаратно-программное описание компонентов цифровой системы автоматического управления;
- структурное и параметрическое проектирование цифровых систем автоматического управления.
В первой части этого раздела рассмотрены элементы структуры микропроцессорной реализации цифровой системы управления, способы алгоритмизации задач, выполняемых этими структурами, а также их статические и динамические характеристики, оказывающие влияние на характеристики системы в целом.
Во второй части этого раздела рассмотрена проблематика и методы синтеза цифровых систем с заданными техническими характеристиками на основе микропроцессоров и микроконтроллеров.
Раздел I подготовлен Черновым Н. И., раздел II подготовлен совместно Черновым Н.И. и Югаем В.Я., раздел III в большей части подготовлен Ивановым Ю.И. Общая редакция книги выполнена Черновым Н.И.
Авторы сознают, что уровень использования авторами концепции «все включено», характер и объем изложения материала не претендуют ни на идеальность, ни на полноту (в том числе и методическую), однако надеются, что книга окажется нужной и полезной будущим специалистам по проектированию и эксплуатации цифровых систем автоматического управления.
6
ВВЕДЕНИЕ
Окружающий нас мир технических систем достаточно быстро и неотвратимо становится
' «дискретным». Появляются и стремительно развиваются все новые прикладные области использования цифровой формы представления, обработки и передачи информации: вычисления, связь, телевидение, управление. Именно последняя область дискретного представления, обработки и использования информации стала побудительным мотивом к написанию авторами этой книги.
В начале 70-х годов в результате бурных темпов развития и достигнутых высоких результатов в области микроэлектроники и вычислительной техники, сконцентрированных в технологии БИС, начал формироваться новый класс технических средств автоматики и автоматизированного управления - цифровые системы управления.
Термином «цифровые системы» обычно обозначаются системы, в которых цифровой регулятор на базе компьютера применяется для управления непрерывным динамическим объектом - судном, поворотной антенной и т.п. Цифровые системы управления техническими объектами получили широкое распространение благодаря преимуществам, которые обеспечивает цифровой регулятор:
- замена нескольких аналоговых регуляторов (возможность управления несколькими величинами);
- гибкость закона управления, реализуемого программно-аппаратными средствами;
- повышение надежности. Цифровая система управления
представляет собой дискретно-аналоговую систему, т.е. в ней существуют непрерывные и дискретные сигналы, а также звенья их преобразующие, поэтому математическое описание линейной дискретно-аналоговой системы имеет особенности, состоящие в следующем:
- аналоговая часть описывается с помощью передаточной функции, использующей непрерывное преобразование Лапласа в/?-области
- цифровая часть описывается с помощью передаточной функции, использующей дискретное преобразование Лапласа (z-преобразование) в виде
где Y[p) - выходная (управляемая) переменная, U*(p) - управляющее воздействие на объект, z = esT, U' (z) - дискретное представление управляющего воздействия, A*(z) -дискретное представление сигнала рассогласования (ошибки) на входе дискретного регулятора.
Отличительной особенностью цифровых систем управления является также дискретизация сигнала по уровню, величина которой определяется разрядностью производимых вычислений. Так, в случае 8-разрядной системы, весь диапазон изменения значения сигнала делится на 256 участков и цифровой код, соответствующий этому сигналу может принимать лишь одно из 256 значений. Это, очевидно, накладывает ограничение на точность цифровой системы управления.
Второй отличительной особенностью микропроцессорных систем является последовательное во времени выполнение команд процессором. Все команды, каждая из которых имеет конечное время выполнения, исполняются последовательно, одна за другой. Следовательно, от момента начала выполнения алгоритма до получения конечного результата проходит некоторый интервал времени. Это отрицательно сказывается, в частности, на быстродействии, области устойчивости и полосе пропускания цифровых систем управления. Однако процесс повышения быстродействия микропроцессорных устройств идет неуклонно вперед и в настоящее время существуют микропроцессоры, минимальное время выполнения команды у которых достигает 5 не.
Несмотря на указанные проблемы (успешно решаемые технологией) в настоящее время, идет полномасштабное внедрение микропроцессорной техники практически во все сферы деятельности, где еще вчера господствовали аналоговые методы обработки информации.
Ъ>А{Р) У(Р) ЩР1-
7
I. ДИСКРЕТНЫЕ СИСТЕМЫ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ
1.1. Общие сведения о дискретных системах автоматического управления
1.1.1. Классификация дискретных систем автоматического управления
Понятие дискретной системы. С точки зрения теории автоматического управления любую систему можно рассматривать как совокупность объекта управления и управляющей подсистемы. Объект управления есть функциональный преобразователь сигнала управления в выходной сигнал, а подсистема управления - преобразователь входного сигнала (задания) в сигнал управления, обеспечивающий значение выходного сигнала объекта управления, соответствующее заданному значению (цели).
Система управления представляет собой множество взаимодействующих объектов, среди которых обычно выделяют объект управления, (привод, исполнительный механизм), датчики и управляющее устройство (регулятор). Обмен информацией между ними происходит с помощью сигналов. Различают аналоговые (непрерывные) сигналы (рис. 1.1, д), определенные при любых значениях времени t внутри рассматриваемого интервала, и дискретные сигналы, определенные только в дискретные моменты времени /о, t\, t2,... (рис. 1.1, б).
Если информация в системе кодируется уровнями сигналов-функций непрерывного времени (рис. 1.2, а), то система называется непрерывной. В этом случае время и уровни сигналов принадлежат множествам мощности континуума.
Дискретные - это такие системы, в которых непрерывный входной сигнал может быть квантован по некоторому параметру.
Квантование в дискретных системах управления обусловлено:
1. Реализацией алгоритмов в микроконтроллерах. Как правило, в дискретных системах применяются итеративные алгоритмы, реализуемые в режиме реального времени. Например, решение управления вида
x-f(x) = 0 может быть получено с помощью алгоритма Пикара
»
о / о т 2Т зт 4Т / о I у II уJ/ у | /
а б в
Рис. 1.1. Типы сигналов: а - непрерывные, 6-дискретные, в - с информационной огибающей
2. Системой или процедурой измерения, что иллюстрируется следующими примерами:
- при вращении радара информация о дальности и направлении поступает за один оборот антенны, следовательно, модель с квантованием является естественным способом описания работы радара;
- в автоматизированных системах управления технологическими процессами многие параметры не могут быть измерены непосредственно, в результате образец продукта анализируется «на стороне» с помощью аналитических приборов;
- в экономических системах информация об изготовленных продуктах выдается только через определенный промежуток времени (день, смену, и т. д.).
3. Импульсным характером выполения операций в системах, которым изначально присуще квантование, т.к. информация в них передается импульсами, например: - тиристорное управление (рис. 1.2); электронные устройства, использующие тиристоры являются системами с квантованием, т.к. ток протекает в их цепях в дискретные моменты времени.
- в биологических системах передача нервных сигналов производится в форме импульсов, поэтому такие системы рассматриваются как дискретные.
- двигатель внутреннего сгорания - система с квантованием, т.к. подсистему зажигания можно рассматривать как таймер, синхронизирующий работу двигателя: в каждый момент зажигания создается импульс крутящего момента.
Классификация дискретных систем. Все дискретные системы подразделяют на две основные категории.
I. Системы, дискретные по своей природе, в которых существенная информация измеряется только в дискретные моменты времени.
—W^n' -и
•
Рнс 1.2. Электрическая схема стиристорным управлением: а - принципиальная схема,
б- временная диаграмма тока в нагрузке
Существует большое количество физических, биологических явлений, а также социальных и экономических процессов, которые могут быть описаны только дискретными моделями.
II. Системы, в которых непрерывная информация намеренно квантуется для получения новых, по сравнению с непрерывными системами, свойств (упрощение реализации, повышение надежности, увеличение точности и т.д.). Это системы, в состав которых входят компоненты вычислительной техники, в первую очередь, микропроцессоры.
Во всех приведенных примерах все системы периодические, управление ими достаточно сложное, но оно существенно упрощается, если рассматривать процессы, в них протекающие, в момент квантования как стационарные и дискретные.
В зависимости от выбранного параметра квантования дискретные системы делятся на три класса:
- системы с квантованием по уровню {релейные);
- системы с квантованием по времени или дискретизацией {импульсные);
- системы с квантованием по уровню и по времени {релейно-импулъсные, щфровые) системы.
Отметим, что в зависимости от вида преобладающих типов процессов, протекающих в системах последнего класса, их можно рассматривать как релейные, либо как импульсные системы. Существуют также дискретные системы, в которых информация кодируется частотой импульсов (числоимпульсные системы).
Кроме того, в дискретных системах с об
ратной связью замыкание контура происходит дискретно во времени.
Релейные - это системы, где в контуре регулирования стоит релейный элемент (реле), т.е. контур обратной связи замыкается тогда, когда ошибка | д \ > а (а - зона нечувствительности реле, заранее заданная величина) и размыкается, когда ошибка | д \ ^ Ъ (отключение реле), где а > Ь. Отсюда следует, что в релейных системах производится квантование. по уровню <$о (рис. 1.3, а), при котором в произвольные моменты времени выделяются значения непрерывного сигнала, достигшие одного из допустимых дискретных уровней. Отметим, что релейные системы существенно нелинейны и их нельзя заменять линейными математическими моделями. Для построения систем, оптимальных по быстродействию, (важный класс) в большинстве случаев используют системы с релейными элементами.
Я 4Г Я IT
Рис 1.3. Квантование сигнала: а — по уровню, б- по времени, е - по уровню и по времени
В импульсных системах производится квантование сигнала по времени, при котором в дискретные моменты времени выделяются значения непрерывного сигнала (рис. 1.3, б). Эти моменты отстоят друг от друга на постоянную величину Т, называемую шагом квантования.
В релейно-импульсных системах дискретизация производится по уровню и времени одновременно, т.е. в равноотстоящие моменты времени непрерывный сигнал заменяется одним из фиксированных (допустимых) дискретных значений (рис. 1.3, в). Из сравнения классификации дискретных систем с приведенной выше классификацией дис-кретйых сигналов, видно, что системы с амплитудной и широтной модуляциями - это релейные системы, а системы с фазовой и число-импульсной (не показанной на рис. 1.3) модуляциями - импульсные системы. Что же касается комбинированных систем, то они относятся к классу цифровых систем автоматического управления, в которых имеет место, как квантование, так и дискретизация сигналов.
Преобразование непрерывных сигналов в дискретные. Процесс преобразования непрерывных сигналов в дискретные называется модуляцией и осуществляется использованием
9
некоторых дискретных звеньев систем управления, осуществляющих процесс такого преобразования. Примеры некоторых видов модуляции приведены на рис. 1.4.
g.Ji
м Ш -Jrk-
«.А
h т
g.y+
7L
Рис. 1.4. Варианты выходных последовательностей дискретных звеньев: а-экстраполяция нулевого по
рядка, б— амплитудная модуляция, в— широтная модуляция, г - фазовая модуляция
Как следует из рис. 1.4, виды модуляции отличаются природой постоянных и модулируемых параметров в зависимости от входной величины х. Так, для амплитудной модуляции постоянным параметром является период выходной последовательности Тп = const, а переменным - амплитуда сигнала выходной последовательности А = var . Аналогично для широтной модуляции постоянным параметром является амплитуда А = const, а модулируемым пара
метром является длительность (ширина) импульсов выходной последовательности Ти = var. Наконец, для фазовой модуляции постоянным параметром является амплитуда А - const, а модулируемым параметром является запаздывание (фаза) импульса относительно начала периода <p = var. Все виды модуляции разделяются на модуляцию первого рода (значения модулируемого параметра от-считываются в фиксированные равноотстоящие моменты времени) и второго рода (моменты отсчета значения модулируемого параметра зависят от значения непрерывного входного сигнала).
Зависимость модулируемого параметра выходных импульсов от значения входного сигнала называется статической характеристикой элемента, осуществляющего преобразование непрерывного входного сигнала в модулированный выходной сигнал. Так, для элемента с амплитудной модуляцией статическая характеристика имеет вид, показанный на рис. 1.5.
Рис. 1.5. Статическая характеристика элемента с амплитудной модуляцией
В области малых значений входного сигнала х она аппроксимируется линейным выражением
к = — = tga. X • • . • ' • : 1.ЙК-Й-Н
Для элемента с широтной модуляцией статическая характеристика показана на рис. 1.6.
ТА т..
-ДГ-4 >• х
Рис. 1.6. Статическая характеристика элемента с широтной модуляцией
Коэффициент передачи импульсного элемента для этого вида модуляции равен
% -X X
10
где у - относительная длительность импульса. Как известно [1], релейные системы управ
ления существенно нелинейны и для их исследования методы анализа линейных систем не-
- пригодны. Это обстоятельство выводит их из класса рассматриваемых в настоящем пособии линейных систем.
Импульсные системы относятся к линейным системам, а цифровые легко сводятся к импульсным, если частота квантования непрерывного сигнала в них достаточно велика (это позволяет пренебречь эффектом амплитудной модуляции и рассматривать выходную переменную как непрерывный сигнал).
Поэтому под дискретными системами в дальнейшем изложении будем понимать импульсные и цифровые системы. Особенности применения методов анализа импульсных систем к цифровым системам будут оговорены дополнительно.
Преобразование дискретных сигналов в непрерывные. Проблема преобразования дискретного сигнала в непрерывный («восстановления» непрерывного сигнала из дискретного) состоит в том, что в процессе дискретизации информация о поведении непрерывного сигнала между моментами дискретизации теряется и не может быть восстановлена. Поэтому в процессе восстановления сигнал между моментами квантования экстраполируется некоторым стандартным образом. Структурный элемент, выполняющий эту задачу, называется экстра-полятором.
Различают экстраполяторы нулевого (фиксаторы), первого, второго и т.д. порядков.
Экстраполятор нулевого порядка (фиксатор) запоминает предыдущее значение (площадь) входного сигнала ы(/)до прихода следующего импульса, как показано на рис. 1.7.
>• / Т2ПТ4Т
Рис. 1.7. Графическое представление работы фиксатора
Ошибка представления восстановленного непрерывного сигнала из дискретного есть разность между исходным сигналом е(/)и восстановленным u(t).
Экстраполятор первого порядка выполняет линейную экстраполяцию на основе двух предыдущих значений дискретного сигнала, как показано на рис.1.8.
Т 2ТУГ
Рис. 1.8. Графическое представление работы зкстраполятора первого порядка
Непрерывный сигнал на интервале nT<t< (и +1)Г восстанавливается по закону линейной экстраполяции. На практике использование фиксатора первого порядка может дать некоторый выигрыш в точности восстановления сигнала при частотном квантовании достаточно гладких сигналов [9].
Экстраполяторы более высоких порядков практически не используются в связи со снижением их эффективности относительно роста сложности алгоритмов их работы и аппаратных затрат на их реализацию.
1.1.2. Структуры дискретных систем автоматического управления
Разомкнутые и замкнутые системы. Дискретные системы управления можно разделить на два класса: разомкнутые и замкнутые. Цель управления в обоих случаях - обеспечить требуемые значения управляемых величин (это может быть курс судна, глубина погружения подводного аппарата, скорость вращения турбины и т.п.), однако способы достижения цели в них различны.
В разомкнутой системе (рис. 1.9) дискретная часть преобразует непрерывные управляющие сигналы (задающие воздействия), на основе которых вырабатываются сигналы управления объектом.
Возмущающие воздействия
Управляющее Сигналы Управляемые воздействия Дискретный
регулятор управления _
Объект величины Дискретный
регулятор Объект
Рис. 1.9. Разомкнутая цифровая система
Использование такого (программного) управления возможно только в том случае, когда модель управляемого процесса известна точно, а значения управляемых величин полностью определяются сигналами управления.
11
При этом влияние внешних возмущений игнорируется.
Замкнутые системы (рис. 1.10) - это системы с обратной связью, с помощью которой управляющая подсистема получает инфор-
Ъбзмугцающие воздействия
Управляющие воздействия
Дискретный Ц регулятор
Сигналы управления
Управляемые величины
Датчики <-Сигналы обратной связи
Рис. 1.10. Замкнутая цифровая система
мацию осостоянии объекта управления. Это позволяет учитывать как неизвестные заранее неточности знаний о модели процесса, так и влияние внешних возмущений (помех измерений, нагрузки двигателя, сил и моментов, вызванные морским волнением и ветром) и тем самым улучшить качество управления. Поэтому большинство технических систем управления строятся с использованием обратной связи.
Представления структурных схем. Из изложенного выше следует, что любую импульсную автоматическую систему управления можно представить взаимодействующими импульсной (ИЧ) и непрерывной {НЧ) частями, как показано на рис. 1.11.
А Н Iff
у, <
"V > ИЧ « > НЧ <
ИЧ НЧ
1 Рис. 1.11. Обобщенная структурная схема
импульсной системы
Если в импульсной части выделить собственно преобразователь непрерывного сигнала^ в дискретный 8 (реальный импульсный элемент РИЭ или импульсный модулятор), то приведенная на рис. 1.11 структурная схема приобретает вид, показанный на рис. 1.12.
К РИЭ
« % НЧ
Рис. 1.12. Структурная схема импульсной системы с реальным импульсным элементом
В свою очередь реальный импульсный элемент можно представить последовательным
соединением идеального импульсного элемента ИИЭ и формирователя Ф. В результате структурная схема импульсной системы приобретает вид, показанный на рис. 1.13.
К_!к. РИЭ h \ИИЭ
ф г ^ НЧ
Рис. 1.13. Структурная схема импульсной системы с выделенным идеальным импульсным элементом
Идеальный импульсный элемент - это элемент, на выходе которого выдаются импульсы бесконечно малой ширины и бесконечно большой амплитуды, площадь которых конечна и численно равна входному сигналу импульсного элемента в начале периода повторения. Таким образом, на выходе идеального импульсного элемента реализуются 8-импульсы, но не единичной, а переменной площади. Другими словами, идеальный импульсный элемент создает под воздействием входного сигнала 8 идеальные мгновенные 8-импульсы 8*, равные по мощности значению входного сигнала в момент квантования. Формирователь Ф преобразует идеальные 8-импульсы в импульсы и, создаваемые реальным импульсным элементом, т.е. является непрерывным фильтром, реакция которого на входной импульс 8* совпадает по форме с реакцией реального импульсного элемента на импульс последовательности S. Если площадь импульса последовательности 8* равна 1, то эта реакция представляет собой весовую характеристику формирователя w0 (7).
Объединив формирователь Ф с непрерывной частью в один структурный элемент системы, получим представление ее в виде дискретного фильтра, как показано на рис. 1.14.
КО г , _is(/)x s>7']
Sri ИИЭ wn\P)Y\ ' | Дискретный фил тр .
y[nT] = y(t)
Рис. 1.14. Представление системы в виде дискретного фильтра
Дискретным фильтром считают импульсный элемент (ключ) с приведенной непрерывной частью Wn{p) на выходе. За истинный сигнал фильтра принимают выходную последовательность у\п7], только в дискретные моменты времени и =..., -2 , - 1 , 0, 1, 2,...
12
Последнее обстоятельство определяет широкое применение в теории дискретных систем управления методов цифровой фильтрации, применяемых при цифровой обработке сигналов, что объясняется следующими причинами:
-наличие эффективных и относительно простых методов построения фильтров;
- большими успехами в области технологии микросхем с высокой степенью интеграции;
- успехами в части разработки технических средств и программного обеспечения ЭВМ, особенно с появлением микропроцессоров.
1.2. Математический аппарат описания дискретных систем автоматического управления
13
1.2.1. Модели импульсных сигналов
Базовым инструментом исследования импульсных систем управления является математический аппарат, применяемый в исследовании непрерывных систем управления. Для исследования импульсных систем те или иные разделы этого аппарата соответствующим образом «дискретизированы»: понятие обычной непрерывной функции заменено понятием решетчатой функции, дифференциальное уравнение заменено разностным уравнением, преобразование Лапласа заменено дискретным преобразованием Лапласа (z-преобразованием) и т.д. В цифровых системах соответствующие общие понятия импульсных систем интерпретируются с учетом особенностей аппаратно-программной реализации этих систем, их коррекции и синтеза регуляторов.
Поэтому логику дальнейшего изложения целесообразно строить в соответствии с этой ситуацией, т.е. вначале рассмотреть основные положения математического аппарата импульсных систем управления, а затем - особенности его применения в цифровых системах.
Математически импульсные сигналы представляются в виде:
- непрерывной последовательности чисел, символически обозначаемых как
Ш- {*М- N, < п < 7V,
где Nj и N2 - номера начального и конечного значения последовательности соответственно, Т - период повторения (квантования, дискретизации);
- некоторой функциональной зависимости g" (/), совпадающей по значениям с зависимостью g[t) в дискретных точках временной оси.
Графическое представление непрерывного сигнала показано на рис. 1.16, а в виде графика изменения величины сигнала во времени, а его представление в виде последовательности равноотстоящих на величину Г значений - на рис. 1.15,5.
*(') -g[»r]
9 я о ? v 9
У:
S["T]
О Т2Т1Т4Г... б
? Р 9
•пТ
О Т2ТУГ4Т... -*-пТ
Рис. 1.15. Изображения непрерывного сигнала (а), решетчатой функции (б) и смещенной решетчатой
функции (в)
1.2.2.Решетчатые функции
Понятие решетчатой функции. Проведенная в соответствии с рис. 1.16 замена непрерывной функции £•(/) последовательностью дискретных значений g[nT] есть переход к представлению непрерывной функции так называемой, решетчатой функцией. Механизм такой замены может быть описан следующим образом. При использовании некоторого способа модуляции непрерывного сигнала g(r)ero можно заменить последовательностью дискретных значений g[nT], такой, что
г , [ git) при t-nT, gHHn т , ( Лт <1Л>
L J [0 припТ<t<[n + \)T. Пример 1.1. Непрерывной функции
g(t) = е"°" соответствует решетчатая функция
-апТ g[nT] = g(t)[anT=e
Точно также непрерывной функции g(t) = kt соответствует решетчатая функция
s["T] = g(t)l_nT=knT.
14
Рассматриваются также смещенные решетчатые функции
g[nT,yT] = g(t), t = nT + yT = T[n + y],
состоящие из последовательности значений, соответствующих моментам времени
Т (пТ + уТ),0<у<\ (рис. 1.16, в), где у = -*- -
относительная длительность импульса, а 1 - у - скважность. Для них определено два времени - основное, кратное Т, и промежуточное, изменяющееся от 0 до Т. Изменяя у от 0 до 1 (или уТ от 0 до Г), можно получить семейство решетчатых функций, определяющих исходную непрерывную функцию g(/) при всех
значениях t и, тем самым определить значения g[«7'] на интервале пТ,(и+l)Т.
Можно также определить решетчатую функцию, как функцию относительного времени 7=—. При этом обычная решетчатая функция приобретает вид
8(f) = g[nT)Lr=s[4r-^ г
а смещенная решетчатая функция есть
g[nT,yT] = g[n,y] при Т = п + у.
Некоторые из наиболее важных последовательностей, используемых в цифровой обработке сигналов, приведены в табл. 1.1.
Таблица 1.1. Некоторые дискретные последовательности
Наименование последовательности
Цифровой единичный импуль (отсчет)
• Единичный импульс, задержанный на по отсчетов
Единичный скачок
Убывающая экспонента
Косинусоида
Комплексная экспонента
Математическое описание
8о(")'-1. и = 0, О, п*0.
# ( " - " о ) = 1, " = «0, 0, п*)10
S-. У ' [0, л<0.
8{п)- а'", п>0, О, п < 0.
g(n)=c Inn
g(n) = e/a"' = = cos(n) + j хг'и(п)
Графическое представление
ч О О ' О О О О О » - "
х(п) х ( п - п ь ) , и 0 = ' !
-*•«
ч о о шп.
U
о о Т Т ? Р -*-п
1
cos (со,, л)
ж и •О 1 г->
ГГ«
В качестве замечаний к табл. 1.1 отметим, что единичный скачок связан с единичным импульсом соотношением:
8-i{n) = Ё £ о И >
а для изображения комплексной экспоненты нужны раздельные графики для действительной и мнимой частей.
Дифференцирование решетчатых функций. Понятие производной естественным образом распространяется на решетчатые функции в соответствии с их определением.
15 В качестве первой производной для решет
чатой функции (т.е. скорости ее изменения) рассматриваются разности соседних значений (первые разности, разности первого порядка). Вспомним, что для непрерывных функций производная в точке х определялась, как разность значений в точках х и х + Ах. Эти разности описываются в виде:
-прямая
A'g[«] = g[n + l]-g[n]; (I.2,a)
- обратная
A-1g[n]=g[n]-g[ri-l]. (1.2,6)
Аналогами второй производной (т.е. ускорения изменения) являются разности соседних первых разностей (вторые разности, разности второго порядка):
-прямая
А^[п] = А1(&18[п]) = А1
Е[п + \]-А18[п] =
= (^[«+2]-g[« + l])-(g[« + l]-g[«]) = (L3'a> = g[n + 2]-2g[n + l]-g[n];
- обратная
д-ад=л-(д-ад)=
= g[n}-2g[n-\}-g[n-2).
Третьей производной непрерывной функции соответствуют третьи разности (разности соседних разностей второго порядка, разности третьего порядка):
- прямая
A3g[«] = A1(A2g[«]) = A2(AV[«]) =
= A2g[n + ]]-A2g[n] = = (g[n + 3]-2g[n + 2] + g[n + l])--(g[n + 2]-2g[n + l] + g[n]) = = g[n + 3]-3g[n + 2] + 3g[n + l]-g[n]',
- обратная
A->g[n] = А- (Д-^М) = A"2 (A-g[»]) = A"VH -
-A-2g[n-l] = (g[n]-2g[n-l] + g[n-2])--(g[n-\]-2g[n-2] + g[n-3]) = = g[n]-3g[n-\] + 3g[n-2] + g[n-3].
Подобным образом могут быть определены разности (производные) высших порядков. Общее выражение для определения разностей произвольного порядка имеют вид:
-прямой
А^[«] = А ' [Д^Н] = = Д*-1£[и + 1]-А*- ,
<ф] = к = g[n + k]--g[n + k-l] +
к(к-1) г •:... (1.4,а)
. +(-1Г,д»М+(-1)**[о]=
=Х(-1)'с№+*-']' - обратной
A-"g[n] = A-lA-Mg[n]]= = A-Mg[n]-A-Mg[n-\]= (1.4,6)
Ы)
где к\ С =
' i!(Jfc-i)!
есть число сочетаний из к элементов по i (коэффициенты бинома Ньютона).
Пример 1.2. Последовательные разности функции g[w] = n* являются многочленами убывающих степеней. Так при к = 2 имеем:
g[n] = n2;
Alg[n] = (n + lf -п2 = 2и + 1; A2g(«) = (« + 2)2-2(n + l)2 + « 2 =2; A3g(«) = A4=... = 0.
Пример 1.3. Последовательные разности факториальной функции
g[«] = «'' =п{п-\)...(п-к)
16
определяются следующим образом:
Ш'^кпЩ A 2 « w ^ ( i t - 1 ) « M ;
Ak-'n[k]=k(k-\)...\ = k\
Пример 1.4. Последовательные разности показательной функции #[и] = еа" определяются как
A]g[n] = ea{n+l)-ean=(ea-\)ean;
A2g[n] = еа{п+2) - 2еа(п+,) + еап = (еа - \f еап;
Akg[n] = (ea-l)kea
Очевидно, что если g[n] определена только для положительных п, то для п < О все обратные разности V* g[n] равны нулю и тогда их можно исключить из рассмотрения.
Простейшие свойства конечных разностей приведены ниже:
- если g[n] = const, то -Akg[n] = A-kg[n] = 0,k=Ui;
Л1 (%[«]) = кАлф], A"1 (kg[n}) = kA-xg[n];
- A' (g [я] + g2 И) = A'g, [«] + Alg2 [»];
A"' (g, W + g2 [«]) - A-'g, [«] + A"'g2 [»];
Интегрирование решетчатых функций. Аналогом интеграла для решетчатой функции g[n] является конечная сумма:
- неполная
- полная °"Ли]=)ЕЛи]+•«["]•
Таким образом, в соответствии с определением получаем
^ ( 2 ) = g[o] + g[i];
Отсюда следует также, что g[n] является для 2g(«) разностью первого порядка, поскольку
1.2.3. Разностные уравнения
Понятие разностного уравнения. Дифференциальные уравнения для решетчатых функций принимают форму разностных уравнений (уравнений в конечных разностях):
- в прямых разностях
атАту[п\ + ат_хАт-'у[п\+ ... + а0у[п] = ^blA'g{n] + bl^A'-lg[n]+ ... +b0g[n];
- в обратных разностях
атА-ау[п] + ат_^т-ЪИ+ - +'fly[«] = =b,A-'g[n\ + bl_A-i'-l)g[n)+... +b0g[n]
(1.5)
(1.6)
В общем виде после раскрытия разностей различных порядков разностное уравнение можно представить так:
ату[п + т] + ат_ху[п + т -1] + ... ... + aiy[n + l] + a0y[n] =
= b,g[n + l] + bl_ig[n + l-\] + •••+Ag[n + l] + b0g[n],
(1.7)
где
^ШШ''Ш) ^Z(-f^.-/=0 /=0
£ » = *[o] + g[i]+... + *[/i-i]
т" (k-i)!(m-k)!'
Структурная схема реализации разностного уравнения (1.7) имеет вид, показанный на рис. 1.16, где символом Т обозначен элемент задержки. Уравнение (1.7) есть разностное уравнение m-го порядка, и представляет собой рекуррентное выражение, которое легко программируется и позволяет вычислить значение у\п\ при известных текущем значении входа g[n] и т предшествующих значениях выхода jv[w-l],..., у [ и - т ] .
Если коэффициенты а,. (/ = 0, т) и
bj (j = О, /) постоянны, то линейное неодно-
17
«О»]
Рис. 1.16. Структурная схема реализации уравнения (1.7)
родное (с правой частью) разностное уравне-0 ние (1.7) m-го порядка выражает обобщенную U управляемую координату импульсной системы
у[п] через известную управляющую функцию g[n\-
Если at и bj есть функции времени, то уравнение (1.7) описывает- нестационарную дискретную систему, параметры которой изменяются во времени.
Если а, и bj зависят от координат системы, то уравнение (1.7) описывает поведение нелинейной импульсной системы.
Операторные модели. Использование операторной записи для описания линейных непрерывных систем управления (см. [12,13]) позволяет заменить дифференциальные уравнения алгебраическими и, тем самым упростить решение многих задач анализа и синтеза дискретных систем управления. Это прием применяется и в теории дискретных систем, где вместо оператора дифференцирования s -dldt используют операторы прямого и обратного сдвига на 1 такт.
Оператор прямого сдвига (сдвига вперед, предсказания, упреждения, экстраполяции), обозначаемый символом С, позволяет получить значение следующего элемента последовательности на основе значения предыдущего элемента:
g[n + l] = Cg[n], g[n + k]^kg[n]. (1.8)
Очевидно, что этот оператор физически нереализуем, т.к. в реальной ситуации получить будущие (еще не существующие в данный момент времени) значения сигнала за счет текущего значения невозможно. Тем не менее,
формальное применение этого оператора вполне допустимо.
Оператор обратного сдвига £"' (сдвига назад, интерполяции) позволяет получить предыдущий элемент последовательности {g[k]}
-ЯЛ основе текущего элемента:
s[»-i]=c'*M- (1.9)
Он соответствует запаздыванию на 1 такт и является физически реализуемым в том смысле, что для его применения не требуется будущих значений сигнала. Для того чтобы перейти к любому т-му предшествующему элементу последовательности, надо применить оператор обратного сдвига т раз:
g[n-m] = (Criy g[n]
при целом т > О . При использовании этих операторов разно
сти первого порядка (1.2) могут быть описаны как
Л'ф] = ф+1] -g[n] =Cg[n] ~g[n] ={С-Ы"\ • Щп] =^-g(H=g[^44^=(i-c,)g[H.
Точно также разности второго порядка (1.3) могут быть описаны как
A>g[n] =Д(лф]) КН[(И)*И) =^ l ) 2 gM'
и т.д. В общем случае описание разности произвольного А>го порядка (1.4) может быть получено в виде
VM>
Используя операторы сдвига С, и С, ' , можно записать разностное уравнение в виде
(«и(с-1Г+^-1(с-1Г' + -+«о)я»] =
=(ft /(c-i) /+*w(c-0M + -+*o)ef«] или
+ ...+^(1-С1)т)я»] =
18
=^ + ды(^С'У +... +*ь(1-с-,)')*м-
Тогда формально связь между импульсными сигналами {g[п]} и {у[п]} может быть записана в операторной форме
у[п]« W (Q g [и] или у In] = W (С*) g [я],
где функции
и
(Mi)
являются различными формами передаточной функции разностного уравнения. Полиномы в числителе и знаменателе передаточной функции могут иметь разные степени (в случае нулевых старших коэффициентов), причем для физически реализуемых законов управления степень числителя передаточной функции должна быть не выше степени знаменателя (иначе дай вычисления уЩ требуется знать ёудущт значения последовательности {.§[«]}).
В теории импульсных систем управления находят применение оба типа моделей. Ранние работы в этой области использовали только оператор прямого сдвига и модели первого вида (1,10), на основе которых были развиты классические методы анализа и синтеза цифровых регуляторов. В современной литературе чаще используется оператор обратного' сдвига и передаточные функции второго вида (1.11). Их использование обеспечивает существенные преимущества при решении задач синтеза цифровых регуляторов*'
Уравнение (1.7) записано в виде, удобном для решения методом прямой подстановки. Имея набор начальных условий (например* gft] для i - - I , —2, ,*,» -М) и входную последовательность gfit], по формуле (1?) можно вычислить последовательность т4д) для т > 0. Например, разностное уравнение
е иачальнымм условиями
можно решить подстановкой*
y[0]=g[0]-3y[-l] = 0, y[l]=g[l]-3y[0]=2, y[2]=g[2]-3y[l] = 0, y[3]=g[3]-3y[2] = 12, y[4]=g[4]-3y[3]=-16,
Значение разностных уравнений состоит также в том, что они непосредственно определяют способ построения цифровой системы.
Пример 1.3. Построить структурную реализацию уравнения
у[п] = - а1У[п-1] + b0g[n] + blg[n-l].
Решение. Приведенное уравнение можно реализовать с помощью схемы, показанной на рис. 1.17:
g(n-l)
Т А
г У(") s(") h> г У(")
h> у{» -1 ) ~|
т а,
Рис. 1.17. Структурная реализации уравнения
1.2.4, Дискретные преобразовавня Лапласа и Фурье
Для решения уравнения (1.7) моаа» пользоваться методами классической теории разностных уравнений. Однако проще ишштьзоштъ для решения дискретное преобразование Лапласа в форме ^-преобразования. Рассмотрим его подробнее.
Дискретное щреобраюеагше Лтивеш (z-мрФ&ёр&мшмкжёг, Ш-щре»б§жжлю№е) является одним щ математических методов, разработанных для анализа и лроекгароваяш импульсных систем. Аппарат э-преобрааовваннч играет дш цифровых систем ту же рошь, что в ирсобрхзованив Ддаааеа дня непргры&ньгх систем:* Вводится г-преобразоваиие иешяяь-кимш способами*
К Решетчатая функция ^(^^^пажучвяяиа т медрерыЕмюи функции g (#) юугевд ее дискр©шзщиМг может бита, записана в шар
/Н')=&М-#'^йГ]- ':;-: ПгЛ)
19
В этом выражении g[nT] есть величина значения элемента последовательности g[nT] в дискретный момент времени «Гот начала процесса, а 6[/-«Г] - единичная дельта-функция, равная 0 при t < пТ и 1 -при t>nT.
Найдем преобразование Лапласа от выражения (1.12). Поскольку g[nT] есть константа, то она может быть вынесена за знак преобразования Лапласа, а преобразование Лапласа L [ 5 [/ - яГ]] есть преобразование оператора чистого запаздывания. Тогда выражение (1.12) может быть записано в виде
L{g{nT)}=±g[nT}L{b[t-nT]} = "N°
'ISM***; КПЗ) v
л=0
Обозначим z = еТр. Тогда можно записать преобразование Лапласа от g'(nT) (а, следовательно, и от g(t)) в безразмерном времени в виде
L{g[nT]}=Z{g[nT]} = tg[nT]z-*. (Ы4)
Это и есть z-преобразование функции g(t). 2. Пусть {g[n]} -полубесконечная последо
вательность (g[ri] = 0 при всех п < 0):
№ ] } = { # ] , g[l),g[2],...} (1.15)
Z-преобразованием последовательности (1.15) называется функция G(z) комплексной переменной z, определяемая как сумма членов ряда Лорана
tf(z)=Z{s[4=Ig[*]*- = Ы)
.мЖ&+..,&+... (1.16)
Последовательность (1.15) называется оригиналом, а соответствующая ей функция G(z) (1.16) - изображением. Если условие
|g[«|<Mea (1.17)
где М > 0 и a - постоянные, выполняется, то ряд (1.16) сходится при |г|>е". Из теоремы Коши-Адамара (см. [16]) следует, что ряд (1.16) сходится абсолютно вне кругаz>R, где
R- й#М-Нетрудно видеть, что выражения (1.14) и
(1.16) полностью совпадают. Пример 1.4. Пусть
g[n] = b" nn\nb
Тогда ряд Лорана для этой последовательности при Ъ Ф 0 сходится в соответствии с выражением (1.17) при \z\ >|й|, т.е. при a = In |ft|. При этом z-преобразованием последовательности \Ьп\ является функция
п( \ л Ъ Ь" ! z G(z) = l + - + ... + — + ... = г =
К ' z z" г_Ь 2-Ь
Из соотношения z - ерТ следует, что при использовании декартовых координат для р (т.е. полагая р - a + /со) и полярных - для z (т.е. полагая г-рем) получим отображение плоскости р на плоскость z в виде
pe^/^WV^, т.е.
Поскольку p = e'°,q> = (uT.
ср = соГ + 2knj,
то всякой точке плоскости р соответствует бесчисленное множество точек плоскости z. Для обеспечения однозначности отображения области плоскости z на соответствующую область плоскости р необходимо и достаточно, чтобы эта область плоскости z состояла из точек, удовлетворяющих условию
2fot<cp<2(/fc + l)7t.
Приведенным соотношениям соответствуют следующие отображения элементов р-преобразования в элементы z-преобразования:
- мнимая ось/)-плоскости (р = ja> для - сю < W для -п < (р < я) отображается в окружность единичного радиуса (рис. 1.18);
20 Im[S]
RcJS]
Im[z]
RcM
Рис. 1.18. Отображение мнимой оси /мгслоскости на г-плоскость
(это условие необходимо для сохранения частотных характеристик аналогового фильтра);
- левая половинар - плоскости ( Re(p) < 0) отображалась в часть z-плоскости внутри единичного круга (|z| < 1) (рис. 1.19);
Рис. 1.19. Отображение левой полуплоскости р-плоскости на z-плоскость
Это свойство необходимо для сохранения устойчивости аналогового фильтра.
Если последовательность [g[n]} есть решетчатая функция для непрерывной функции g{t), то построенная для этой последовательности функция
есть дискретное преобразование Лапласа функции g(t), соответствующее периоду повторения Т. Очевидно, что если g(V) есть оригинал последовательности {g[«]}, то условие (1.16) для нее выполняется при соответствующем выборе Миа.
Таким образом, для всякой непрерывной функции g(t), являющейся оригиналом для функции-отображения G{p) при обычном преобразовании Лапласа, существует решетчатая функция Я*[и^] (последовательность g[«]), для которой определено дискретное преобразование Лапласа G* (z). Дискретное преобразование Лапласа G' (г) называют еще ^-преобразованием и обозначают как
Пусть |gi[«]} и {g2["]} - последовательности, равные нулю при п < 0, а
№]}=гЫ"1} " {02П=2Ы4 -их изображения (z-преобразования). Важнейшие связи между исходными последовательностями-оригиналами и их дискретными отображениями приведены ниже.
Линейность. Для любых чисел ai и а2 справедливо равенство
Z{a1g,[n] + a2g2[n]}=alG,[z] + a2G2[z].
Начальное значение. Начальное значение последовательности может быть вычислено как
g(0) = limG(z). (1.18)
Конечное значение. Если функция (1 -z~l)G(z) не имеет полюсов в областиг>1и конечное значение последовательности {g[n]} существует, оно может быть вычислено как
limg(/?) = lim(l-z-')G(z). (1.19)
Обратный сдвиг. Рассмотрим последовательность {g[n - т]}, сдвинутую вправо (запаздывающую) на целое число тактов т > 0 по отношению к исходной последовательности № ] } (рис. 1.20).
Ф>
-о-о-о-о-
g[n-m}>
Оо
-> п -о-о-о-о-о-о-о-о-0 0
Рис. 1.20. Запаздывающая последовательность Тогда
Z{g[n-m]}=z-mG(z), (1.20)
где G{z) - изображение последовательности № ] } •
Прямой сдвиг. Аналогично рассмотрим сдвиг последовательности вперед (упреждение). Для целого т > 0 имеем
Z{g[n+m]}=: tfOO-DtfK . (1.21)
21
Свертка решетчатых функций {#*[«]} и
{&М}' к о т о Р а я определяется как последова
тельность
g [»]=Ё а [пЫ [и - »]=Z а [" ~ *К М m=0
имеет изображение, равное произведению изображений этих функций:
z{g[n]}=G>(z)G2(z)- £22, а)
Точно также произведению оригиналов соответствует свертка изображений.
Другие свойства z-преобразования описаны в [2,3,5].
Процедура нахождения z-преобразованш непрерывной функции g(i) включает следующие 3 этапа:
- определение решетчатой функции 00
g* (7) = ^gfwT7], как выходного сигнала иде-
ального квантователя с периодом квантования Т;
- определение дискретного преобразования Лапласа
L{g{t)}^tg[nT]e^,
где/» = а +jco, при этом а характеризует степень затухания составляющих функцииg*(t), a со характеризует частотные свойства составляющих функции g*(t);
- замена ер наz в выражении L\g* (t)}, чтобы получить
G(*)=f>KK • с1-22»6)
Выражения (1.22) используются для нахождения z-преобразования функции g(t) или g(nT). Приведем примеры нахождения z-преобразования для некоторых часто встречающихся на практике функций.
Пример 1.5. Найти z-преобразование единичной ступенчатой функции:
* , ( ' ) ' |1для/>0, О /<0.
Решение. Выполняем перечисленные выше этапы.
1. Единичная ступенчатая функция Gp(/) квантуется идеальным квантователем, на выходе которого образуется последовательность единичных импульсов:
*;(О=Е*('-»Г) (1.23) я=0
2. Применение преобразования Лапласа к выражению (1.23) дает
0'(Р) = Т,ГТ (1.24)
где ряд (1.24) сходится при \е'Тр |< 1, а чтобы выразить G (р) в компактной форме, умножим обе части выражения (1.24) на е'рТ
G\p)epT = ерТ^ерпГ =^ё*а*)т
л=0 л=0
и вычтем результат из (1.24), тогда
G'(p)(l-epT) = YjepnT -Je'p(n+1)r = л=0
откуда = \-е-рТ+е-рТ-е-р2Г+... = \,
1 G'(p) = r ,-рт (1.25)
оРТ 3. Замена z = ер в выражении (1.25) дает
G(Z)-1-Z1 2-1 '
Пример 1.6. Найти z-преобразование экспоненциальной функции g(t) = е'"', где а -действительное постоянное число.
1. Находим выходную последовательность g\t) идеального квантователя, на вход которого подается функция g(f) = е'"1:
*(')=£«- аТ
Лг=0
2. Дискретное преобразование Лапласа от g\t):
G{p)=L{g\t)}=±e-Te^=Y/a^T.(\2e) л=0 <Ы>
22
Умножим обе части выражения (1.26) на е-(а*рп)Т
G(p)eia+p)T =Ye~{a+p")Te~(a+p)r =уе^а+^"+^т. л=0 л=0
и результат вычтем из выражения (1.26)
G(p)(\-e-ia+p)T) = fje-ia+pn)T - l y » ^ - 1 ) ) ' / ' =1. л=0
Если -("+/>)'/• <1 , то
G(P) = 1
1_е-(°+р)т • (1.27)
3. Замена z = е р в выражении (1.27) дает
G(z) = . -e-°Tz~l z-e°J
Пример 1.7. Пусть решетчатая функция (рис. 1.21) задана своими значениями при п < 4:
g[n} 1,5
1~ I 2Г ЗГ 4Г -1
Рис. 1.21. Задание решетчатой функции своими значениями
Непосредственно из графика получаем g[0] = 2, g[T] = -l, g[2T] = 3, g[37-] = i,5, g[4T] = 0, т.е. имеем
G(z) = 2-zA+3z-z+\,5z-\ m В инженерной практике используются таб
лицы z-преобразований, которые можно найти в справочниках и учебниках. Дискретное преобразование Лапласа для некоторых решетчатых функций приведено в табл.1.2 (см. след. стр).
Обратное z-преобразование. Если для заданной непрерывной функции g(t) существует единственная отображающая ее решетчатая функция g [ « r ] , то для данной решетчатой
функции существует бесконечное множество непрерывных функций-оригиналов, совпадающих по значению с решетчатой функцией в моменты времени пТ (п - целое и большее 0) и отличающихся друг от друга значениями в другие моменты времени, как показано на рис.1.22.
i i i _ / 1 2Г УГ AT 5Г*
Рис. 1.22. Неоднозначность обратного г-преобразования функции gp(t)
Эти функции называются огибающими. Среди них выделяется основная огибающая, содержащая гармоники наименьшей частоты (наиболее плавно соединяющая точки решетчатой функции).
Неоднозначность обратного z-преобразования является одним из ограничений, о котором нужно помнить при его применении.
В общем случае обратное z-преобразование может быть определено различными методами.
1. Разложением на простые дроби. Суть его состоит в представлении z-отображения функции G(z) суммой простейших дробей, для которых выражения оригиналов известны. Затем в соответствии со свойством линейности полученные таким образом слагаемые-оригиналы алгебраически суммируются для получения оригинала решетчатой функции g[nJ] (или соответствующей *> непрерывной функции g(0).
Пусть задано z-преобразование G(z) некоторой функции g(t). Для нахождения обратного z-преобразования g[nT] необходимо разложить G(z)lz на простые дроби
G(z) А В • + •
С z+a z+b z+c
• + ....
где a, b, с - отрицательные полюсы G(z) ,А, В, С - значения вычетов Re(z) в этих полюсах.
Затем находим _,/ ч Az Bz Cz
G(Z): • + • z + a z + b z + c - + ..
23 Таблица 1.2
Дискретное преобразование Лапласа для некоторых решетчатых функций
*( ' ) О(Р) G(z) G(z,y)
5(0 - 1 -
5(t-kT) - z-* -
КО 1
Р Z
z-\ z
z-\
? 1
Р2
Tz Tz Tyz (z-lf^-l
? 1
Р2 (z-\f Tz Tyz
(z-lf^-l
I,2
2
1 РЪ
T2z(z + l)
2(z-lf T2z y2 2y + l 2
^ - l ' ( z - l ) 2 ' ( z - l ) 3 J I,2
2
1 РЪ
T2z(z + l)
2(z-lf {'-*f y2 2y + l 2
^ - l ' ( z - l ) 2 ' ( z - l ) 3 J
еш 1 /> + а
z z р-щт еш 1
/> + а z-e-aT z-e~aT
1-е а ' а z ( l - e - )
( z - l ) ( z - e - ) z
z-\ < ze~aT
1-е а ' ^ ( ^ + а ) z ( l - e - )
( z - l ) ( z - e - ) z
z-\ < z-e?
е-" '-е-" Ъ-а z z ze~"',T ze'b',r е-" '-е-"
(р + а)(р + Ь) z-e°T z-ehT z-e-v i-e*
sin со/ со zsincor z2sinycor + zsin(l-y)co7'
z2 -2zcosco7' + l sin со/
/72+со2 z2 -2zcoscor + l z2sinycor + zsin(l-y)co7'
z2 -2zcosco7' + l
COSCO/ ^ z2 -zcoscor z2 -2zcoscor + l
z2 cosyu)7, + zcos(l-y)ra7' COSCO/
р2+со2
z2 -zcoscor z2 -2zcoscor + l z2 - 2z cos со Г +1
и, используя таблицы z-преобразований, определяем g[n 7].
Пример 1.8. Найти обратное преобразование функции
( 1 - е - ) * G(z) = ( , - l ) ( z - e - ) '
где а - положительное постоянное число, Т - период квантования.
Решение. Разлагаем G(z)/z на простые дроби
G(z) _ 1 1
Находим z z-\ z-eaT
G(z) = z z
,-aT
Из таблицы z-преобразований обратное z-преобразование (z"1) представляется временной функцией, значения которой в моменты квантования определяется как
g(nT) = 1 - е •вТ
Следовательно, импульсная функция времени может быть записана как
• 2. Разложением в степенной ряд (ряд Ло
рана). Из выражения (1.16) следует, что
G{z)=g{0)+g(T)z-]+g(2T)z-2
+...+g{kT) z~k+.
24 Следовательно, коэффициенты ряда соответствуют значениям g[nT\ в моменты квантования.
Пусть, например,
Тогда деление «углом» дает
z-P 0CZ
az-оф a + оф V + ap V ' + apV2 +... ap ap-apV
apV с ф У - а р У 2
сфУ2
Таким образом, g[n] = a/3". m Пример 1.9. Разложить выражение переда
точной функции
w{,)- 5 °'5г v ; z2-1.5z + 0.5
в ряд Лорана. Решение. Выполняем деление многочле
на-числителя на многочлен-знаменатель:
0.5г 0.5z- 0.75+0.25?" | 0.5?"'
0.75 + 0.25Z"1
0.75 + 1.1255"+0.375Г z-1 .5z + 0.5
0.75z"2
0.875z"'+0.375z"2
0.875z~' + 1.3125z"2+0.4375z"3 z2-1.5z + 0.5
0.875z'
Ряд Лорана представляется суммой
Jf(zj = 0.5z-1 + 0.75z~2 +0.875z-3 +...
Графическое представление полученного разложения показано на рис. 1.23.
ко' L
о о о о о о о о
0.8 о 0.6
о 0.4
0 ' 2 4 6 8 10
Рис. 1.23. Графическое представление разложения
передаточной функции G(z) = — '• z -1.5z + 0.5
Пример 1.10. Определить обратное z-преобразование функции:
о(& itte$ z2-(\ + e-aT)z + e аТ
Решение. Последовательное деление числителя на знаменатель дает
G(z) = ( l-e-" r)z l+(l-e-2 a r)z-2 + ...
Видно, что
g{nT)= ]-е-°"т,гг = 0,\,2,...
Следовательно
g(t) = i(l-^)S(t-nT). • Отметим, что разложение, как на простые
дроби, так и в степенной ряд соответствует представлению передаточной функции разностного уравнения суммой (параллельным соединением) элементарных слагаемых.
Основное различие между рассмотренными двумя методами состоит в том, что метод разложения на простые дроби дает решение для g[nT\ в компактной форме, в то время как решением второго метода является последовательность чисел. Разумеется, что оба метода эквивалентны, т.к. и для последовательности чисел может быть найдено выражение в компактной форме.
Модифицированное z-преобразование. Для того чтобы получить возможность анализировать процессы между моментами квантования, различными авторами были введены дискретные преобразования, названные модифицированным дискретным преобразованием Лапласа [1] и модифицированным z-преобразованием [2,3]. Мы рассмотрим вариант модифицированного z-преобразования, получивший наибольшее распространение в отечественной литературе [5].
Предположим, что импульсный элемент выбирает значения функции g(/) не при t„ = пТ, а в моменты t„Y = пТ +уТ, где 0 < у < 1. Тогда модифицированное z-преобразование для сигнала g(t), обозначаемое как Z(g( / )} , представляет собой z-преобразование для решетчатой функции, которое может быть вычислено как
25
G{z,yyZy{g{t)} = Z{g[n,y\}=Y.s[^Yn • ш{пТ) = ^[пТ\Ъ[г~пТ],
Пусть, например, g(t) = eal,t>0. Тогда
Применив формулу суммы бесконечно убывающей последовательности (в соответствующей области сходимости), получим? ^J
G(z,y) = eayTz
z-e -аТ '
имеющий операторное представление
G'(p) = L{g'(t)} = ±g[„T)L{bT[t~nT]} = л=0
= ±g[nT\e->"\ л=0
может быть представлен комплексным рядом Фурье
1 +Х I -ко
ЩМП Zg[nT]e-^> Д Е«[Л®-««Ь)]-
Для вычисления модифицированного z-преобразования более сложных функций существуют подробные таблицы.
В зарубежной литературе используется несколько иной вариант модифицированного z-преобразования [2,3]:
Zm{g{t)}=Z{g(nT-T + mT)}, 0<m<T.
Связь между этими преобразованиями выражается формулой
Дискретное преобразование Фурье. Периодическая последовательность 5-импульсов
Sr(0=X5('-w:r)
может быть представлена комплексным рядом Фурье
§ г Ш = 1 ^ ' , где
соп 2л
есть частота квантования по времени, а сп -коэффициенты Фурье, определяемые выражением
Г/2
1 -Г/2
1_ Т
Тогда импульсный сигнал (решетчатая функция)
Записанная функция является четной, поэтому, заменяя п на - п и изменяя порядок суммирования, получим
G*(y«) = - £ g [ y ( c u + /7C00)].
Преобразование Лапласа для этого выражения есть
G>)4£ZM'KWH т 1
-ко (1.28)
•*• « = — с о
т.е. представляет бесконечный ряд, состоящий из сдвигов функции G{p) В частотной области на величину «со0.
Из (1.28) следует, что преобразование Лапласа на выходе идеального импульсного элемента является периодической функцией с периодом квантования, кратным со. о •
Последнее уравнение устанавливает связь между операторными изображениями непрерывной функции g(t) и решетчатой функции g[«r ] (т.е. между непрерывным и дискретным преобразованиями Лапласа) и справедливо при выполнении условия g(t)\< = 0 . В
противном случае необходимо пользоваться выражением
G'(P) = + ±fjG(P + nj(u0). (1.29)
Используя известное соотношение между преобразованиями Лапласа и Фурье, с помо-
26
щью этой операции можно определить спектральные или частотные характеристики идеального импульсного элемента. Если все полюсы G'(p) - левые, то из (1.28) заменой р -> /со получаем
1 + 0 0
G* (jrco) = - *Г (?[/(со + лсо0)], •* »ss—оо
т.е. частотный спектр выходного сигнала идеального импульсного элемента есть сумма частотных спектров непрерывного входного сигнала, смещенных на «со0 по оси частот.
Периодичность (?*(/©) видна из рассмотрения амплитудного спектра G*(/co) , показанного на рис. 1.24.
Непрерывный сигнал J G ( / ( B | / 7 '
f -2tc
т ч>. 2<о„
-в>» %
Дискретный сигнал Ь ' (у'ш)|
ЛЛ1Ж1ЛА -2ш. -ю.
Рис. 1.24. Амплитудный спектр функции G* (У»)
а — непрерывной, б - дискретной
1.2.5. Передаточные функции, временные и частотные характеристики дискретных
систем управления
Дискретная передаточная функция. Выше было отмечено, что импульсная система управления отличается от непрерывной наличием в ней импульсного элемента (см. рис. 1.12). Он может быть представлен совокупностью идеального импульсного элемента вырабатывающего идеальные 5-импульсы, площадь которых конечна и численно равна входному сигналу импульсного элемента в начале периода повторения, и формирователя, преобразующего идеальные 5-импульсы в реальные.
Поскольку идеальный импульсный элемент последовательно соединен с формирующим элементом, передаточная функция импульсного элемента есть произведение передаточных функций идеального импульсного элемента и
формирователя. Следовательно, в общем случае передаточная функция импульсной системы по аналогии с передаточной функцией непрерывной системы может быть определена как отношение z-изображения выходного сигнала к z-изображению входного сигнала при нулевых начальных условиях
W{z) = ш Пример 1.12. Пусть импульсная система
описывается разностным уравнением
+ у[ПТ]=0Ау[(п-1)Т]-0Лу[{п-2)Т]
+Ag(nT)-3Ag[(n-l)f].
Определить передаточную функцию системы.
Решение. Для получения передаточной функции сгруппируем члены, содержащие однотипные переменные
y[r,T]-0Ay[(n-l)f}+0,ly[(ri-2Jf]= =Ag(nT)-3Ag[{n-l)f],
а затем заменим разности их представлением в форме дискретного преобразования Лапласа
y(z)(l-0.4z-' +0. lz-2)y[nT] =G(z)(l-3z-1).
Тогда передаточная функция для этой системы будет
v ' G(z) l-OAz'1+0,\z-2 * • Очевидно, что конкретный вид передаточ
ной функции при прочих равных условиях будет определяться, во-первых, структурой системы (замкнутая или разомкнутая) и, во-вторых, передаточной функцией импульсного и формирующего элементов.
Передаточные функции, а также частотные характеристики импульсных элементов для входных сигналов других типов приведены в табл. 1.3.
Весовая функция. При входном сигнале в виде единичной последовательности в действительном виде
g[n] = S[n] = G[n] = l[n]
или в форме дискретного преобразования Лапласа
27
Таблица 1.3 Передаточные функции и частотные характеристики формирующих звеньев для некоторых
типов импульсов
Форма импульса Передаточная функция Комплексный коэффициент передачи Частотные характеристики
W(p) = 1-е •уТр
fV(je>) = yT-sin
соуГ
-+-> соуГ
му7'
уТ Т
]£ lLrr т 2
+± W(p) =
( уУУ-V 1 - е 2
v ут
. 4щТ
^ I щТ ГУ
h W(p) = T-
п
У
4-V уТ Т
7V.+ -у
(l+e*") W(j<o)= 2уГ_^Т_ 71 i-p^Y
шу7' WJ. W(jm)
W(p) = - т Тр + -
W(j®) = ут м ^ W(jm)
3 U^' уТ т
J у ХГг >ш
>ш
G{z) = Ydg[n]z-=g[0]^l
передаточная функция
W 1 ' G(z) 1 V ;
есть реакция системы на единичный дискретный импульс (рис. 1.25),
*Н >П
«И W(z) щ о о о
°о
Рис. 1.25. Реакция системы на единичный импульс
т.е. весовая функция системы
w[n] = y[n].
Связь весовой функции с дискретной передаточной функцией выражается соотношением
Если время замкнутого состояния ключа мало, то сигнал на его выходе можно заменить последовательностью £-функций g*[nT\, с площадью g[nT\, т.е.
g*[nT\=g[nT\b(t-nT).
В этом случае реакция непрерывной части Wm(p) - это суперпозиция весовых функций w(l), которую можно рассматривать и как непрерывный сигнал y(t), и как дискретную последовательность у[пТ\.
Если идеальный импульсный элемент выдает последовательность 8-функций, то для непрерывной части совместно с формирующим элементом, как было показано выше, можно вывести понятие приведенной непрерывной передаточной функции Wn (/?):
при этом ГП(Р)=К(Р)К{Р),
K{p) = L{wn{t)},
W(z) = z{w[n]}. где wn (?) - приведенная весовая функция (весовая функция приведенной части системы).
28 Знание приведенной решетчатой весовой
функции wn (t) позволяет найти реакцию импульсного фильтра на входную величину произвольного вида g(t).
Рассмотрим реакции на отдельные значения входной величины в дискретные моменты времени:
на g[0]: у[п] = wn{n] g[0]; Hag[l]: у[п] = wn [n-l] g[l];
где
nag[m]: y[n] = wn [n-m] g[m].
Следовательно, реакция на всю входную последовательность будет равна:
y[n] = J\vn[n-m]-g[m] = w„[m]-g[n-m] = m=0 ш=0
Л!=0
Здесь первоначально изменен порядок суммирования (свертка), а затем оператором запаздывания z = еТр учтено запаздывание. Если устремить я к бесконечности, то, очевидно, что сомножитель для g[n] есть дискретная передаточная функция.
Пример 1.13. Пусть непрерывная часть системы (см. рис. 1.13) имеет передаточную функцию Wm (/?), а формирующий элемент является фиксатором, передаточная функция которого есть
\-е~урТ
Необходимо получить выражение дискретной передаточной функции приведенной разомкнутой системы Wn (z) при различных Wm (р).
Общее решение задачи состоит в следующем. Дискретная передаточная функция приведенной непрерывной части Wn (z) есть z-преобразование передаточной функции последовательного соединения непрерывной части системы Wm(p) и формирующего элемента
wn (z)=z Щ;. wm {р)} z\^y-wm Ц =
w»
»Ц*) = 1 Х № \
тШшР¥^ Ч=пТ
Для непрерывной части в виде интегрирующего звена (астатическое звено первого порядка) имеем:
- передаточная функция непрерывной части
р
- приведенная передаточная функция непрерывной части
Р Р
- приведенная весовая функция
™n{nT) = L-^^kt[_nT=knT;
- дискретное представление передаточной функции непрерывной части
Wm{z) = ^hnTz-n = п=0
кТг (z-1)2
- выражение дискретной передаточной функции системы
w (z\ = z~l W«Az) = z-\ kTz = кТ Л 2 ) Z Z Z ( Z - 1 ) 2 2 - 1 '
Для непрерывной части в виде апериодического звена имеем:
- передаточная функция непрерывной части
wm{p)- Тр + \
- приведенная передаточная функция непрерывной части
Wn{p) jwi. •=к f-\ 1 >
р р{Тр+\) [р р+ут,
приведенная весовая функция
29
wn(ra)=t1\k rv j л ./> />+Vr
^[лГ]-**™"];
- дискретное представление передаточной функции непрерывной части
wM=k \ z - 1 z-eZ^J i/г'йг
- выражение дискретной передаточной функции системы
Щ*)= z-1 Wm{z)_z-\
=к
Z Z
х_е-Чт-пт
1 1 z V z-1 z-e-ч'-' УТ-пГ
z-e •)/Т-пТ •
Если непрерывная часть дискретной системы имеет более слоо/сное выражение передаточной функции, то для получения выражения дискретной передаточной функции системы можно представить выражение передаточной функции непрерывной части в виде суммы простейших дробей. Так, передаточная функция дискретного фильтра
Wm{P^p(TlP+\)(T2p+l)..(Tnp+l) =fiTiP+i)
может быть представлена в виде
р м(т,р + \у
а дискретная передаточная функция системы -в виде
. ^ - i С ,
ff,/.)_*-l Wm{z) = z-\ ~p+Ch{T,P + l)_ Z z z z
kT , f rV Q ( 1 " e " r / 7 ' ' ) ТА Ь z-e-T» •
Точно также произвольная передаточная функция непрерывной части
wm{p) = , П(^+1) Л 7=1
может быть разложена на простые дроби в виде:
кУ-^-=кУ-^- npuv = 0,
wm{p)= p H ^ + i P ыр+ут, при v = l,
-+- ^ c, %TiP+\
а дискретная передаточная функция системы для этих случаев приобретает вид
н1М^&н ^ ( z ) =
z [ t>(^+l) j tT z-e^ кт .^ q z— l ,_| z—e
£7* z+1
от л
2 (z-1)2 z-1
» q . ( i - ^ )
z -e
Таким образом, для определения дискретной передаточной функции системы необходимо выполнить следующую последовательность действий:
- определить приведенную передаточную функцию непрерывной части системы wn{p) = w,ln{p)w,l4{p)-
- определить с помощью обратного преобразования Лапласа переходную функцию приведенной непрерывной части wn(t) = f{w{p)};
- определить приведенную весовую (решетчатую) функцию wn [пТ] = wn (?) _ ..;
- определить сумму ряда
л=0
Сложную передаточную функцию приведенной непрерывной части необходимо представить суммой простых дробей и выполнить над ними приведенные выше действия. При этом искомая дискретная передаточная функция определится как
м*)=£м*)-
30
Если вычисление суммы ряда Wn{z) невозможно, то следует использовать возможности, предоставляемые /^-преобразованием.
Основная трудность дальнейших преобразований, имеющих целью получение дискретной передаточной функции всей системы, заключается в получении дискретной передаточной функции приведенной непрерывной части Wn{p). При этом необходимо помнить, что если непрерывная часть системы задана в виде соединения каких-либо звеньев, то нельзя определить дискретную передаточную функцию каждого звена, а затем воспользоваться правилами о соединениях динамических звеньев: z-преобразование необходимо определять от всей передаточной функции Wn(p). Исключение из этого правила составляют приближенные методы получения z-преобразования, например, методы подстановки и подбора корня.
Для получения точного ^-преобразования по непрерывной передаточной функции можно воспользоваться методом неопределенных коэффициентов (теорема о вычетах):
ВД=ЕН-^ВД z-e" р=р,
/=0
С
z-lA(0) £ В{Р)
Z-^SJ(P)
(1.31)
В выражении (1.31) В(р) и А(р) -полиномы числителя и знаменателя передаточной функции непрерывной части системы, а
Щр) АР) dp
есть производная от характеристического многочлена.
После определения дискретной передаточной функции непрерывной части, легко определяются передаточные функции всей системы:
- Wn(z) = W0(z)—Z{ Wn(p)} - переда-z
точная функция разомкнутой системы;
W (z) - Ф(г) = — 2 i - ? передаточная функция
\+w„(z) замкнутой системы;
- ФЛг) = передаточная функция 5 l + Wn(z)
замкнутой системы по ошибке. Отметим, что, как и в непрерывных систе
мах, дискретная передаточная функция может быть представлена в полиномиальной
Wn(*hbo?+blC+- + bk (1-32) z +a^z +... + ак
либо в факторизованной
м Ш(*-ь) TI("J)
формах. В последнем выражении Ь0 - числовой коэффициент, а действительные или комплексные числа £;,., i = (\,M) (корни полинома
числителя), Zj, j = (l,Nj (корни полинома знаменателя) называются нулями и полюсами передаточной функции соответственно. Для физически реализуемого объекта должно выполняться условие М <N.
Представление передаточной функции с помощью нулей и полюсов часто позволяет повысить точность вычислений.
Частотная характеристика. Если в передаточную функцию подставить p = ja>, т.е.
2я положить z" = eja, где со = Тпа>0, со0 = относительная частота, то получим частотную характеристику импульсной системы управления.
Пусть входная последовательность
Ф] = eJ™ _ О О < Й < О О
поступает на вход линейной системы с импульсной характеристикой w[n]. Тогда выходная последовательность определится как
у[п}= £ w[m]eM"-m) = eJe>n £ w[m] /я— -да /л=-оо
= g[n]w(eJ»).
•j mm __
31 Таким образом, отклик системы совпадает с
входной последовательностью с точностью до комплексного множителя W(eJC"j, который
i выражается через импульсную характеристику как
W(eJ")=1£lw[n]eJam . • (1.34)
Это и есть частотная характеристика или комплексный коэффициент передачи системы для каждого значения со.
Пример 1.13. Вычислить частотную характеристику системы с импульсной характеристикой:
w[n] = апил[п\ \\а\<\).
Частотная характеристика описывается выражением:
W(ei" ) = %anejan = YXaeia J . (1.35) л=0 л=0
*i(/»)t
Wr(jo)
>t \J r-i ^ + -(е>„'+с»0)-л»„ -{u>„ -a>0) -ffl, 0 J0 (а>„'-ша)ш„ (»„'+»„)
б к и*)
-^~с
Рис. I 27. Частотные характеристики систем: а - непрерывной, б и в — импульсной системы с
непрерывной частью при а>п > 2а>0 и <оп < 2а0
соответственно
Частотные характеристики импульсных систем представляют собой периодические функции частоты и имеют вид, показанный на рис. 1.27, а - для непрерывной части системы и на рис. 1.27, б, в - для импульсной системы с той же непрерывной частью и идеальным импульсным элементом при различных соотношениях между зп и <у0, где а0 - частота повторения импульсов, ап~ полоса пропускания частот непрерывной части САУ.
Из рассмотрения частотных характеристик импульсных систем управления (1.27, б, в) можно записать:
- если соп > 2а>0, то частотные характеристики непрерывной и импульсной САУ в пределах полосы пропускания полностью совпадают;
- если соп < 2а>0, то частотная характеристика непрерывной и импульсной системы управления в пределах полосы пропускания частот не совпадают, следовательно, при исследовании такой системы необходимо пользоваться дискретными передаточными функциями.
Из приведенных графиков видно, что частотные характеристики системы есть бесконечно повторяющиеся частотные
характеристики непрерывной части системы управления с полосой пропускания зп.
Периодичность частотных характеристик импульсных систем, а также их симметричность относительно сд = 0 означает, что для их полного описания достаточно иметь частотную характеристику в диапазоне изменения частот
0<а><ж или 0<а><0,5а>п.
Свойство периодичности частотных характеристик дискретных систем объясняется тем, что гармоническая решетчатая функция
g[nT] = Д. Sin соТ
на входе импульсного фильтра не изменяется при изменении частоты огибающей со на любую величину, кратную со0, т.е.
Sin сопТ = Sin {con + kco0) Т,
как показано на рис.1.28. Чтобы импульсную систему можно было рассматривать как непрерывную, необходимо ещё накладывать ограничения на ча-
32 4
1 i X \ 1 \ 1 \ 1 \
0.5 1 1 \
0 j | \
1 \ 1 1 1
-0.5 1
1 1 i 1 1
-1 V \ i V
\ 1 V 4
3T
Рис. 1.28. Наложение кратных частот
стоту приведенного внешнего воздействия в виде:
юРйсоп-о)0, (1.36)
где mF - спектр (наибольшая частота) внешнего воздействия, приведенного к входу импульсного элемента.
Условие (1.36) показывает на то, что в пределах полосы пропускания со0 не появится искажения частотной характеристики непрерывной части системы от действия внешнего воздействия.
Итак, если будет выполнено условие
(0п>2а)0,
C0F<0)n-(OQ, (1.37)
то импульсную САУ можно исследовать как САУ непрерывного действия. Условия (1.37) есть теорема Котельникова-Шеннона применительно к системам управления с амплитудно-импульсной модуляцией.
Пример 1.14. Построить частотные передаточные функции дискретных систем, непрерывные части которых представляют собой интегрирующее и апериодическое звенья.
Решение. Для системы с непрерывной частью в виде интегрирующего звена импульсная передаточная функция системы есть
кТ W(z)--z-\
а комплексный коэффициент передачи
кТ W(ja>) = -ejmT-\
По формуле Эйлера из последнего выражения получаем
V0'~coswT-l+jsindr 2 J 2 8 2 '
Амплитудно-фазовая частотная характеристика показана на рис. 1.29 и представляет собой прямую, параллельную мнимой оси и проходящую по отрицательной полуплоскости.
Im А
й> = я / Г -»»Re
С/о.—1— 2 s 2
ш = 0 Рис. 1.29 Амплитудно-фазовая частотная
характеристика дискретной системы с интегрирующим звеном
Для системы с непрерывной частью в виде апериодического звена импульсная передаточная функция системы есть
W{z) = -
т\ 1-е
z-e т,
а комплексный коэффициент передачи
W(ja>)=-
*\ 1-ет>
eJe>T-er>
Представим его в виде
/
Щм}=г
. П 1-е1'
v J -jarctg-
sinojf
costvT-e
\\-2e T,co$aT+ ( J Л e 2
V J
Амплитудно-фазовая частотная характеристика, соответствующая последнему выражению, представляет полуокружность радиуса
33
R =
l + e
с центром на вещественной оси на расстоянии
С =
L ке~т'
1 + е
от начала координат. Она приведена на рис. 1.30.
ш = я/1
Рис. 1.30. Амплитудно-фазовая частотная характеристика дискретной системы
с апериодическим звеном • Билинейное преобразование. Для прибли
женного перехода от непрерывной системы к ее дискретной модели может быть использовано билинейное преобразование Тастина
Р+-2 г - 1 Т z + \
с помощью которой производится замена комплексной переменной р в передаточной функции непрерывной системы и переход к дискретной модели.
Обратная подстановка (билинейное м>-преобразование)
\ + wT/2 Z<r \-wT/2
(1.38)
с помощью которой производится замена комплексной переменной z в передаточной функции дискретной системы, позволяет перейти от дискретной системы к псевдонепрерывной.
Если z-ejal , то из (1.38) можно получить выражение для переменной w:
w=-z-\ _е>ш -1 _(cos(pr-l)+./sin<pr_ г+1 ~ e f + 1 ~(coscor+l)+7'sin©r"
= / sin со Г
l + cos©r
0 . ©Г ©Г 2 sin—cos—-; 2 2
2 cos 2 © ^
где переменная Л выполняет функцию частоты. Связь между частотой со и псевдочастотой X определяется соотношением
1 2 , ю Г
Г 6 2
Преимущества метода билинейного преобразования во многом связаны с тем, что при
2 со< — частота и псевдочастота практически
совпадают, т.е. со ~ X. Можно показать, что при использовании фиксатора нулевого порядка частотная характеристика W* (jX) совпадает с
F(j(£>) на низких частотах. Логарифмические частотные характери
стики. Они являются удобным и наглядным математическим аппаратом анализа и синтеза систем. В непрерывном случае логарифмические частотные характеристики строятся для систем, состоящих из устойчивых звеньев, корни характеристических полиномов которых расположены в левой полуплоскости комплексной ^-плоскости (p-a + ja)). Для применения аппарата логарифмических частотных характеристик к дискретным системам необходимо преобразовать область их устойчивости (единичный круг на z-плоскости) к,виду области устойчивости непрерывных систем. Для этой цели используется билинейное преобразование, рассмотренное выше. Отображение единичного круга z-плоскости в плоскость w показано на рис. 1.31.
Im w jo А.
ь[\
а> = ж > = 0 а -2-
/
"Г
-> Re w
Рис. 1.31. Отображение единичного круга г-плоскости в плоскость w
Для анализа и синтеза псевдонепрерывных систем в частотной области вводится псевдочастотная передаточная функция
W{jk) = W(w)\ =W(z)\ [+jW2;
34
на основе которой строятся логарифмические амплитудная и фазовая частотные характеристики, как это делается в непрерывных системах.
Пример 1.15. Построить логарифмические частотные характеристики дискретных систем из примера 1.14.
Решение. Передаточная функция непрерывной части системы в виде интегрирующего звена есть
w{P)=t, Р
а приведенная передаточная функция системы с экстраполятором нулевого порядка (фиксатором)
В соответствии с определением весовая функция определяется как
w (Р) = W{p)
1{Х) = 2Щ J*
+ 201g Т 1-у—Д 2 <P{^) = --~arctg-X.
Графическое представление их приведено на рис. 1.32.
*>«.• *• х
Р
* я
Рис 1.32. Логарифмические характеристики системы с интегрирующим звеном
Передаточная функция непрерывной части системы в виде апериодического звена есть
следовательно, выражение для Wn (р) есть операторное представление весовой функции непрерывной части системы.
Оригинал весовой функции есть
а его дискретное представление имеет вид
win] = w(t)\ - knT.
Тогда дискретная передаточная функция есть
2 „=0 z \Z~4 Z _ i
W(p) = -+ Tp
а приведенная передаточная функция системы с экстраполятором нулевого порядка (фиксатором)
k _ W{p) Wn{p) =
р{\ + Тр)
является операторным представлением весовой функции. Оригинал весовой функций в непрерывном представлении есть
гсм)-±-ч,)-*рМ}-|.-*
Применив к последнему выражению преобразование Тастина, получим выражение псевдочастотной передаточной функции
W{jA) = КГ 1+Ф]/Нд| !
k\\-j-X
jA
Выражения для логарифмических частотных характеристик, полученные на основании последнего выражения, имеют вид
а в дискретном
м'Гя] = и'(У)| =—е~
Тогда дискретная передаточная функция имеет вид
Ш=—f*e-.z-=£l te =
fe l
35
Применив к последнему выражению билинейное преобразование, получим
W(jA) = f 1/Л-I 2
Логарифмические частотные характеристики, полученные на основе этого выражения, приведены на рис. 1.33.
*>(*). -2л4
* Я
Рис. 1.33. Логарифмические характеристики системы с апериодическим звеном первого
порядка
1.2.6. Описание дискретных систем управления в пространстве состояний
Описание импульсной системы управления в пространстве состояний возможно двумя способами:
- введением переменных состояния в разностное уравнение системы (прямой переход);
- аналитическим решением разностного уравнения непрерывной части с заданным экс-траполятором (чаще всего - экстраполятором нулевого порядка).
Введение переменных состояния в разностное уравнение системы производится следующим образом. Рассматривая систему как дискретный фильтр с входным сигналом gf/гГ] и выходным сигналом у[яГ] , можно описать его передаточную функцию выражением
V ' П.( Л 1 J_ „ Т - ' _L Л.Г, -7-4 G{z) \ + axz ' +... + a z
b0z" + bxzq'x+... + bq _B(z) zq+a,zg-l+... + aq
(1-39)
Из этого выражения следует разностное уравнение, описывающее рассматриваемую систему
A(z)Y(z) = B(z)G(z).
В действительной области это уравнение приобретает вид
у[п + т] + аху\п + т -1] +
+а2у[п + т-2] +... + ату[п]=
= bQg[n + m] + bxg[n + m-\] +
+b2g[n + m-2] + ... + bmg[n].
(1.40)
Введем следующие переменные состояния:
хх[п] = у[п]; х2[п] = у[п + \] = я,[я + 1]; хз [п] '= У[П + 2] = х2[п +1]
Хт[Щ = У[п+МЩ=-ХяЬ{п + Цш,
(1.41)
Подставив их в предыдущее разностное уравнение, получим
или
у [п + т] + аху\п + т -1] +... + атхх [п] -
= b0g[n + m] + bxg[n + m-\] + ... + bmg[n],
у[п + т] = хт[п + 1] =
= -¥»H-¥,-i[»]---amxx[n] + +b0g[n + m] +
+blg[n + m-l] + ..: + bmg[n]?
(1.42)
(1.43)
Совокупность уравнений (1.41) и (1.42) (или (1.43)) составляют дискретное представление разностного уравнения, соответствующего передаточной функции (1.40) в форме задачи Ко-ши и могут быть описаны в виде векторного разностного уравнения состояний в матричной форме
ф+\\ ф+1] ф+1]
xJn+\]
0 1 0 0 0 1 0 0 0
-я» -Чя -ч-
0 о 1
4"} ф]
g[n+q-\] in+q-2]
и уравнения выхода
Я И Ы С « с-
хх[п] х2[п] хз[п]
•И
36
или в векторной форме
х[п +1] = Ах[п] + Bg[n]; у[п] = Сх[п].
(1.44)
Реализация системы уравнений (1.44) представляется структурной схемой, приведенной на рис. 1.34.
*№
47'ь х[и+1] х[я]
в pQ^i-i-1 с =эб=с> я»]
Рис. 1.34. Структурная схема импульсной системы в векторной форме
Поскольку из (1.41) х, [и] = >[»], следовательно, Y(z) = JST, (Z) и из передаточной функции (1.39) следует, что выход системы можно определить как
В разностной форме последнее выражение с учетом (1.40) может быть представлено как
у[п] = bqxx [п] + bqrlxx [п +1] +... + Ьйхх [n + q], i или
где JC, [и] есть решение уравнения (1.45). Подставив в последнее выражение значе
ние JC9[H + 1] ИЗ (1.41), получим уравнение выхода
у[п]=(Ъ,-Ц)ф]+(*н-Ь0ачА)ф}+... ( 1 М )
Последнее вьфажение можно записать в матричной форме
\[п]~
ЛНЬ-м) (*и-н-.) - fo-W] +М4
которой соответствует структурная схема, приведенная на рис. 1.35.
«М-
« к ' < г-4
J
*,И1 ЧИ &Л»] *> и \[п] •ф] - 1л - -. ,-' J •
— < *
"1
>—6* «и о
^ — .
м
Рис 1.35. Структурная схема системы в разностной форме
В векторной форме уравнение (1.45) имеет вид
y[n] = Cx[n] + b0g[n].
Положив в уравнении (1.41) Ь0 =6, = ... = &„,_, = 0,6Ш =1, получим
ф+1]
ф + \)
О 1 о 0 0 1 0 0 0
о о 1
-ч
ф] ф]
ф ] ] 1Л
№
у[п]=[\ 0 .». 0] ф] ф]
ХМ.
Таким образом, уравнения состояния и выхода системы принимают вид
х(й + 1) = Ах(и) + Вм(и); у(п) = Сх(я) + du(n).
Аналитическое решение разностного уравнения непрерывной части с заданным экс-траполятором производится на основе дифференциального уравнения непрерывной части системы
x'(/) = Ax(/) + Bs(f) ( Ш )
и уравнения выхода
y(t) = Cx(t) + du(t).
Решение этого уравнения при начальном состоянии х(0) есть
х(/) = Ф(г)х(0) + jO(t-x)Bg(x)dx . (1.48)
37
Здесь переходная матрица Ф(г) есть матричная экспонента, определяемая как
Если g{t) = g[nT]
(т.е. входной сигнал - дискретный), то при начальном состоянии х[и7']для nT<t<(n + l)T, выражение (1.48) приобретает вид
x(t) = Ф[; - пТ] х[пТ] + g(nT)j<b(t -xJBdi, о
а для £ = (и + 1)Г
г х[(и+1)г]=Ф[Г]х[и]+г(и2г,)|ф[(и+1)2п-т]Шх.
о
Введем обозначения:
пг = (п + 1)Т-х; А]=Ф(Т) = еА';
т В] =\ф[т]В(1т,
с помощью которых разностное уравнение состояния (1.47) принимает вид
х ^ + ^А.хЭД + В ^ и ] , (1.49)
а уравнение выхода
y[n] = Cx[n] + dg[n]. (1.50)
Базис пространства состояний X можно изменить на другой базис V, применяя к исходному базису неособенное преобразование Т
V=TX.
При этом исходное представление системы (1.49) - (1.50) заменяется на
v[n + l]-Avv[«] + Bvg[w] y[n] = Cy\[n] + dg[n]
где
Av = ТА,ТJ, Bv = ТВ,, Cv = СТ ' .
В заключение обсуждения вопроса об описании систем в пространстве состояний следует рассмотреть способы решения разностных уравнений. В качестве наиболее распространенных выделим следующие:
1. Использование во временной области рекуррентной процедуры, описываемой в виде
x[l] = A,x[0] + B,g[0]; x[2]=A1x[l]+B1g[l]=Afx[0]+A,B,g[0]+B1g[l];
(1-51) X[/,]=A1"x[0]+XAi,B1g[»-/].
В этих выражениях первое слагаемое есть решение однородного разностного уравнения, а второе - частное решение неоднородного уравнения.
2. Использование разностного представления входного сигнала дает возможность представить уравнение состояния (1.49) в виде
z[x[z]-x(0)]=AIX[g]+^G[z]
или X[z] = [zE-A,]"1zx(0) +
+ [zE-A1]~1B1G[z]. (1.52)
Подставляя полученное представление в уравнение выхода (1.50), получим
y[z]-C[zE-A1]"'zx(0) +
+ С ^ Е - А ^ ' в , ^ G[z] . (1.53)
Сравнивая (1.52) с (1-53), видим, что
AJ^Z-^zE-A,]"'*}.
Из (1.52) можно получить импульсную передаточную функцию системы, связывающую z-изображения входного и выходного сигналов при нулевых начальных условиях
W(z) = - \ i = C\zE-A.] B,+d. К ' G(z) l 1J '
Подставляя выражение (1.53) в уравнение выхода (1.50) при нулевых начальных условиях (т.е. при х(0) = 0) получим выражение функции выхода
38
^[»]=£СА;- , В 1 Я [« - / ] + ^[«] . /=I
Если входной сигнал представляет собой единичный импульс
то решетчатая функция на выходе системы есть ее весовая функция
-L [d прип = 0 y\n\-w\n\ = < , п J l J [САГ'В, прип>0
Отсюда следует связь между импульсными весовой и передаточной функциями
0Q oQ
W(z)=YAA2'" =d+ЕСАГВ1г~" • (1-54) я=0 я=1
Теперь рассмотрим использование билинейного преобразования в пространстве состояний.
Если дискретная модель задана в пространстве состояний
^ ( z ) = C(zE-A)" 1 B + D ,
то билинейное преобразование дает
Г М = С„,(№Е-А,,)-Ч+В-И,,
где Е - единичная матрица соответствующего размера, при этом
A w = | E + | ( A + Ef|,B,=|(A + E) - 'B 5
С„ = С(А + Е)~\ D „ = D - C ( A + E) ~ В .
При этом необходимо, чтобы матрица (А + Е) была обратима, иначе передаточная
функция W' (w) будет неправильной (степень
ее числителя будет больше степени знаменателя).
Пример 1.16. Рассмотрим непрерывный объект с фиксатором нулевого порядка:
w0(p) 0.1
(р + 1)(р + 0Л) *ф(р)= \-е ,-рт
Р
При Г = 0.2 дискретная модель приведенной непрерывной части имеет вид
• , , , pm 0.00186(z+0.929) WJz)=z\W0(p)WJp)}=-. Ь '-.
п\ ) \ О\У] Ф\У)} (z_0.980)(z-0.819)
Применение билинейного преобразования (1.38) дает псевдонепрерывную модель
W*{w)- -3.652- IQ 'V -0.00960W+0.0997 (w-0.997)(w+0.l)
Ее частотная характеристика W* (jX) (сплошная линия на рис. 1.36) при X < Т/2 практически совпадает с частотной характеристикой непрерывной части F(JCU) (штриховая линия).
*• О), л
Рис. 1.36. Логарифмическая частотная характеристика W'(j)J)
В области высоких частот (при X > Г/2) логарифмическая амплитудно-фазовая частотная характеристика (ЛАФЧХ) W* (j~k) имеет нулевой наклон (постоянное значение коэффициента усиления). Построение высокочастотной части ЛАФЧХ подробно описано в [5].
1.3. Линейные дискретные системы автоматического управления
39
1.3.1. Понятие линейной дискретной системы управления
Импульсную систему будем называть линейной, если ей соответствует линейный оператор
y = G[g], (1.55) такой что
G(algl+a2g3) = alyi+a2y2.
Здесь ои и а2 - произвольные числа, {gi = gi [«]} и {g2 = gi [и]} - две входные последовательности, а {yi =у\ [и]} и {у2 -уг [и]} - соответствующие им выходные последовательности, такие что
y^=G(g^),y2=G{g2).
Систему называют стационарной, если соответствующий ей оператор не изменяется с течением времени, т.е. сдвиг входной последовательности во времени (без изменения ее формы) на любое число отсчетов т приводит к точно такому же сдвигу выходной последовательности. Если последовательности {g[n\} и {у[п]} связаны соотношением (1.55), то для стационарной системы при всех целых т справедливо равенство
G (g[« - w]) = у[п - т\.
Рассмотрим импульсную систему управления, представленную на рис. 1.37. Отличительным от непрерывной системы структурным звеном импульсной системы является идеальный импульсный элемент.
5(0 Т МО - » Ч') \(>)
Рис. 1.37. Структурная схема импульсной системы
Входной сигнал идеального импульсного элемента 8(f) есть разность между входным воздействием (задающим, управляющим сигналом g{t)) и реакцией системы на это воздействие и выражается в виде
5(')=г(')-Я')
в непрерывном времени или
**(') = * ' ( ' ) ' - / ( ' ) (1-56)
в дискретном. Последнее соотношение часто называют уравнением ошибки замкнутой системы относительно оригиналов.
Используя дискретное преобразование Лапласа, последнее уравнение можно представить в г-форме
A(z) = G(z)-Y(z). (1.57)
При наличии управляющего и отсутствии возмущающего воздействий, т.е. g(t)*Q и / (f) = 0 выходной сигнал системы определяется величиной управляющего сигнала A(z) и передаточной функцией системы
Y(z) = W(z)A(z). (1.58)
Подставив (1.57) в (1.58), получим
W(z) \ + W{z)
где 0{z)
W(z) ~l + W(z)
есть импульсная передаточная функция замкнутой системы.
Подставив теперь (1.59) в (1.58), получим уравнение замкнутой системы относительно изображения ошибки по задающему воздействию
М 2 ) = Г ^ О Д = ф д ( 2 ) с ? 0 0 ' (1-60)
где
м&- \ + W{z)
есть передаточная функция замкнутой системы по ошибке.
При наличии возмущающего и отсутствии управляющего воздействий, т.е. g(t) = Q и
40
f(i) 5*0 структурная схема системы может быть преобразована к виду, показанному на рис.1.38.
/(')-»»>(/>) П, «(')=Л Y5 ад - ЧР) - ад -*.?р-г>*(')
Т
IT Ш<)
Рис. 1.38. Структурная схема импульсной системы
Здесь в соответствии с (1.57) сигнал ошибки равен
A(z) = - r ( z ) ,
а выходной сигнал системы определяется суммой двух составляющих:
- от возмущающего воздействия
Yx{Z) = Wf(ZyF{z);
- от управляющего воздействия
Y2(z) = ~W(z)-Y(z).
Таким образом,
Y{z) = Y]{z)+Y2(z)=Wf{z).F{z)~W(zyY(z).
Отсюда
Y(z)= WF^),F(Z) = 0JZ)F(Z),
где
М# Mz) 1 + Pf(z)
есть передаточная функция замкнутой системы по возмущающему воздействию.
Отсюда следует, что правила преобразования структурных схем импульсных систем несколько отличаются от аналогичных правил для непрерывных систем. Рассмотрим эти правила подробнее.
1.3.2. Структурные преобразования линейных дискретных систем
Пусть W\{z) и W-iiz) ~ импульсные передаточные функции двух импульсных звеньев, составляющих дискретную систему. Тогда в зависимости от способа соединений этих звеньев импульсная передаточная функция системы будет иметь некоторый эквивалентный вид. Для лучшего представления особен
ностей структурных преобразований импульсных систем рассмотрим параллельно аналогичные преобразования одних и тех же структурных схем для непрерывных и импульсных систем.
1. Последовательное (каскадное) соединение звеньев (рис. 1.39):
g[nT] Щ:) W2(r) дпт]
Рис. 1.39. Последовательное соединение звеньев
В непрерывной системе передаточная функция такого соединения звеньев
W{p) = Wx{p)W2{p).
В дискретной системе
W(z) = Z{Wl{p)W2(p)} = Wl(Wi(z))1
т.е. в общем случае
W(z)*Wt(z)W2(z)\
2. Параллельное соединение звеньев с суммированием на выходе (рис. 1.40):
g[nT) ад
ад о-
Y[nT) •
Рис. 1.40. Параллельное соединение звеньев
В непрерывной системе
W(p) = W1(p)±W2(p).
В дискретной системе
W{z)=Z{Wt(p)±W2(p)} = Wi{z)±W2{z).
3. Соединение с включением одного звена в цепь обратной связи (встречно-параллельное включение, (рис. 1.41)):
"^->о— ад 1 к
ад
ад < !
Рис. 1.41. Встречно-параллельное соединение звеньев
41 Для этого случая дискретная передаточная
функция замкнутой системы есть
Ф ( х ) - Wx{z)
Пример 1.17. Пусть
Тогда
_ 0,2 + z r l + г'2 » 1-0,3*-'
1 "(l-O^z-'J + O^ + z-'+z"2'
+ z-'+z-2.
»£-,_ (z)=Ф(г)= r r—
l-0,3z" 1
-1 _-2 0.8-1.3Z-1 - z
U J. Свойства линейных дискретных систем управления
Физическая реализуемость системы означает, что в ней реакция на воздействие не может появиться раньше самого воздействия. Для физически реализуемой системы сигнал на выходе не может появиться раньше, чем сигнал на входе, поэтому w[n] = 0 для п < 0. В противном случае система может предсказывать будущее, что невозможно, такая система является физически нереализуемой.
Система называется правильной, если степень числителя ее передаточной функции меньше степени знаменателя. Физически это означает, что
lim W (z) = const Ф оо.
При невыполнении ЭТОГО условия импульсная характеристика при жОсодержит ненулевые значения, и система будет физически нереализуемой.
Рассмотрим одноконтурную замкнутую систему с единичной обратной связью, структурная схема которой приведена на рис. 1.42.
VH ад и [я J, ад УН 1
ад ад
Рис 1.42. Структурная схема одноконтурной замкнутой системы
Здесь Wp{z) и W0{z) обозначают дискретные передаточные функции регулятора и объекта управления, соответственно, которые могут быть записаны в виде отношений полиномов:
Далее мы везде предполагаем, что объект и регулятор - физически реализуемые элементы, т.е. обе функции в (1.61) правильные (степени их числителей не выше степеней знаменателей):
тр<пр и т0 <, п0. (1.62)
Тогда система на рис. 1.42 физически реализуема, если
тр +т0 <пр +п0. (1-63)
При нарушении условия (1.63), т.е. при равенстве степеней числителя и знаменателя дискретных передаточных функций для объекта регулятора выражения (1.61) они приобретают вид константных выражений, например, таких
Wp(z) = -,W0{z) = l, z-b
где а и Ь - постоянные. Соответствующие этим передаточным функциям разностные уравнения имеют вид:
- для объекта у[п] = и[п\;
- для регулятора
u[n] = bu[n-l] + S[n]-aS[n-l];
- для цепи обратной связи
S[n] = g[n]-y[n].
Согласно второму равенству, для расчета и[п\ регулятор использует и[п -1] , д[п] и д[п -1] . Объединяя первое и третье уравнения находим, что S[n] = g[n] - и[п] , т.е. значение
42
д[п] само зависит от и[п], которое еще неизвестно. Иными словами, для того, чтобы рассчитать значение и[п] надо его заранее знать! Это явление называется алгебраическим цик-
:•_ лом. В_ связи с этим обстоятельством системы с алгебраическим циклом можно считать физически нереализуемыми.
Объединяя приведенные выше уравнения, получаем
и[п] = Ьи[п -1] + g[n] - «[и] -ад[п-\]. (1.64)
Здесь неизвестное значение и[п] входит как в левую, так и в правую часть равенства. Формально равенство (1.63) можно рассматривать как уравнение относительно и[п]. С математической точки зрения оно разрешимо в виде
г , iHfn-ll + g M + o'Jfn-ll «["]=—-—-—Y — '
так что формально смоделировать эту систему все-таки можно. На практике алгебраические циклы почти не встречаются благодаря тому, что дискретные модели объектов с экстрапо-лятором - это, как правило, строго правильные функции от 2.
Устойчивость является необходимым условием работоспособности системы и по определению есть свойство системы возвращаться в первоначальное состояние после прекращения действия внешних возмущений. Это свойство восходит к свойству устойчивости решения дифференциальных (для непрерывных систем) или разностных (для дискретных систем) уравнений.
В зависимости от вида признака устойчивости существуют различные определения устойчивости. Опишем некоторые из них.
Устойчивость по A.M. Ляпунову. Пусть дискретная система (возможно, нелинейная и нестационарная) задана уравнением в пространстве состояний
y[n + l] = f(n,y[n\). (1.65)
Решением этого уравнения является некоторая последовательность
обращающая это уравнение в тождество. Обозначим для этого вектора символом | } |
некоторую, например, евклидову норму
Решение {>"*[«]} уравнения (1.64) при начальных условиях у(0) = у*о называется устойчивым, если для заданного е>0 существует такое 8(s) > 0, что при любых начальных условиях, удовлетворяющих условию
\\Уо-Уо\\<ь>
для я > О выполняется отношение
\\у["]-у'о\\<е-
Геометрически это означает, что все траектории, начинающиеся в б-окрестности точки у'0, отклоняются от решения у'[п] не более чем на s по выбранной норме.
Для дискретной линейной системы (в том числе и нестационарной) устойчивость любого решения разностного уравнения
х[п +1] = Ах[п] + Ви[п]
означает устойчивость всех остальных решений, поэтому здесь можно говорить об устойчивости системы. Более того, линейная система устойчива (асимптотически устойчива) тогда и только тогда, когда устойчиво (асимптотически устойчиво) тривиальное решение у[п] s 0 однородного уравнения системы.
4 " + 1] = ^JC[«]. 0-66)
Это значит, что для устойчивости системы необходимо и достаточно, чтобы при любых начальных условиях j[0] = >'0 решение системы (1.66) оставалось ограниченным, а для асимптотической устойчивости - стремилось к нулю при любых начальных условиях j>[0] = у0, т.е.
ИтЯ«] = 0. (1.67)
Устойчивость по входу-выходу означает. что при любом ограниченном входном сигнале и любых начальных условиях сигнал выхода ограничен.
Следует отметить, что асимптотически устойчивая система всегда устойчива по входу-
43
выходу, т.е. асимптотическая устойчивость -самое сильное условие. Далее под устойчивостью всегда будем понимать асимптотическую устойчивость.
Решение уравнения (1.66) может быть описано в виде
с[п] = А"; 'О'
а его устойчивость определяется собственными числами Xj,г = 11,ЛПматрицы А. Эти числа вычисляются как корни уравнения
det(}JE-A) = 0,
где Е - единичная матрица размера NxN. Для устойчивости системы и выполнения
условия (1.67) необходимо и достаточно, чтобы все собственные числа А,, матрицы А подчинялись условию Xt < 1, т.е. чтобы их значения находились внутри единичного круга, как показано на рис. 1.43.
Рис. 1.43. Область устойчивости в плоскости г
Для доказательства справедливости этого утверждения достаточно привести матрицу А к диагональной или жордановой формам. Аналогичное условие может быть получено и для дискретных передаточных функций. Для них условие асимптотической устойчивости, аналогичное (1.66), может быть записано через весовую характеристику следующим образом:
Km win] = 0. П-»оо
Поскольку передаточная функция является дробно-рациональной функцией, т.е. может быть представлена в виде отношения двух полиномов
В{г) W(z) =
A(Z)'
и полином знаменателя (характеристический полином) может быть разложен на множители
ц=1
то на основе теоремы о вычетах обратное преобразование передаточной функции может быть выполнено в виде
г л ^ „ B(z) w[n] = £Res N : ы ' П(*-Ч)
я-1
-£ М-1
П Щ-Я1 ц=1 N; ц=/
Отсюда следует, что поведение импульсной весовой функции определяется числами Я,,. Если эти числа по модулю меньше 1, то
КтЛГ'=0
при любом i и система устойчива (асимптотически устойчива). Поскольку собственные числа 'kj матрицы А являются корнями харак-тери стического полинома, то аналогичный результат существует и для А (г) с кратными корнями. Таким образом, устойчивость линейной импульсной системы определяется расположением полюсов характеристического полинома передаточной функции системы.
При использовании в передаточной функции переменной С, = z-1 вместо z условие устойчивости меняется на противоположное: система с несократимой передаточной функцией W(C,) асимптотически устойчива только если все ее полюсы находятся вне единичного круга на плоскости С,.
Алгебраические критерии устойчивости. Для непрерывных систем такими критериями являются критерии Рауса и Гурвица.
Критерий Рауса применим и для импульсных систем при использовании билинейного и'-преобразования аргумента z с помощью уже приводившегося ранее соотношения
z = -1 + и> l-w'
(1.67)
с помощью которого: - дискретная система преобразуется к
псевдонепрерывной; - расположение корней характеристическо
го полинома на w-плоскости соответствует расположению их в аналогичной непрерывной системы на/?-плоскости.
Смысл этого преобразования рассмотрим на примере полинома второго порядка.
44
Пример 1.18. Пусть система описывается передаточной функцией с характеристическим полиномом
A{z)-z2 + axz + au.
Его характеристическое уравнение есть
(1.68)
Производим подстановку (1.67)
z + axz + a0 =0.
(l + wf 1 + w , + а . +а0 = 0. ( l_ w ) 2 ]\-w °
Приводя последнее выражение к общему знаменателю, получим
(l + w) +al(l + w)(l-w) + a0(].-w) = 0
или ( l -a 0 -a , )w 2 + +2(1 - a0)w + (1 + а0 + а,) = 0.
(1.69)
Как известно, в линейных системах критерий Рауса для полинома второго порядка сводится к тому, что все коэффициенты должны быть одного знака. Применяя эти условия к уравнению (1.69)
( l - a o - a , ) > 0 , (1-а 0 )>0, (1 + а0 + я ,)>0,
получим а 0 <1, а 0 > а , - 1 , а0>-а1-\. (1.70)
Область плоскости {а0, а,}, ограниченная этими условиями, приведена на рис. 1.44.
Рис. 1.44. Область устойчивости для полинома второго порядка
Критерий Гурвица для импульсных систем формулируется аналогично: с помощью подстановки (1.67) характеристический полином замкнутой системы записывается в виде характеристического уравнения с аргументом w и для него выполняются предусмотренные
критерием преобразования. Рассмотрим его работу на примере.
Пример 1.19. Передаточная функция разомкнутой системы задана выражением
W(z) = k(z + 0.5)(z +1.065)
(z-l)(z-0.135)(z-0.0183)'
Требуется: - для значения к = 0.3 оценить устойчи
вость замкнутой системы; - определить критическое значение коэф
фициента усиления. Для решения поставленных задач
используем критерий Гурвица. Передаточная функция замкнутой системы будет
*(z + 0.sj(* + 1.06S) z3 +djZ2 + d2z + d3
где коэффициенты dt определяются на основе передаточной функции разомкнутой системы, при этом dy=k- 1.153, с/2 = 0.156 + 1.565А:, с/3 = 0.533£- 0.00247. Для к = 0.3 получим
d\ =-0.853, d2 = 0.525, tf3 = 0.157.
В характеристическом уравнении замкнутой системы сделаем замену
\ + м> 1-W
и после несложных преобразований получим
Д » = 2.32^+3.7^+1.05 \w + 0.929.
Для системы 3-го порядка условие устойчивости, вытекающее из критерия Гурвица, определяется выражением
d}d2 —dQd3 >0.
Подставим численные значения коэффициентов в это выражение и получим
3.7 * 1.051- 2.32* 0.929 >0.
Замкнутая система при заданном значении коэффициента усиления прямой цепи устойчива.
Для неизвестного значения коэффициента усиления после применения билинейного
45
преобразования к характеристическому полиному Ф(г) получим
d, = 2.311+0.032*, dx = -0.966k + 4, rf2 =1.698 -2.164A;, </3 = 3.098* + 0.0053.
Из анализа выражений для коэффициентов характеристического уравнения следует, что необходимое условие устойчивости для коэффициентов do и dj, выполняется всегда, коэффициент d\> 0, если к < 4.14, a d2 > 0, если it < 0.785. В соответствии с критерием Гурвица условием нахождения системы 3-го порядка на колебательной границе устойчивости является равенство
d[d2 -d0d3 = 0 .
Подставим значения коэффициентов и после элементарных преобразований получим квадратное уравнение относительно коэффициента усиления
* 2-8.767*+ 3.41=0.
Решение уравнения дает два значения: к = 0.408 и А: = 8.36. Сравнивая эти результаты с полученными выше, можно сделать вывод, что (к) = 0.408.
• Критерий Джури. Существуют также ал
гебраические критерии устойчивости, разработанные специально для импульсных систем. К ним относится, в частности, критерий Джури, формирование которого аналогично формированию критерия Рауса и состоит в построении специальной таблицы, по значению элементов первого столбца которой делается вывод об устойчивости системы. Построение этой таблицы производится следующим образом. Пусть характеристический полином имеет вид
A(z) = anz" + a„_xz"'] + ... + atz + a0.
Составим табл. 1.4. Первая и вторая строки таблицы - это коэффициенты характеристического полинома, выписанные в прямом и обратном порядке. Третья строка вычисляется как разность первой и второй, умноженной на цк так что ее последний элемент равен нулю. Четвертая строка - это третья, записанная в обратном порядке. Схема повторяется до (2N +1)-й строки, которая состоит из одного элемента.
Таблица 1.4 Коэффициенты характеристического полинома
<*„ * - 1 «I « 0 ш ап °0 «1 «л-1 я„ ш ап
а(Л-0 "л-1 ар> 4п-1)
<£$ 'ф 4п-1)
... ... • •. • • . . • *
я
Элементы таблицы определяются в соответствии с выражениями
С использованием данных приведенной таблицы критерий Джури формулируется следующим образом. Если ап > 0, то корни уравнения (1.63) лежат внутри единичного круга тогда и только тогда, когда все а„ , к = 0,...,п~1, положительны. Если среди а„ нет равных нулю, то количество отрицательных и„ ' равно количеству корней вне единичного круга.
Таблица Джури для полинома второго порядка (1.68) выглядит так:
1 «1 «0 ^ 2 = а 0
«0 °х 1
^ 2 = а 0
\-а20 а, (1-а ( а,- °' \-а20 а, (1-а (
* ~ l + «o а,(1-а0) 1-«о2
* ~ l + «o
1~а2о-а?(1-а0)/\ + а0
а условия устойчивости сводятся к неравенствам
\-ап 1-<>0, 1 + а0. '(1 + а0)2-а,2]>0
или а0<\, а 0 > а , - 1 , а 0 >-а , - 1 ,
что полностью совпадает с (1.66). Частотные критерии устойчивости. В
качестве частотных критериев устойчивости линейных импульсных систем используются соответствующие аналоги частотных критериев устойчивости линейных непрерывных сие-
46
тем управления - критерии Михайлова и Найквиста.
Критерий Михайлова. В соответствии с принципом аргумента число корней характеристического полинома замкнутой системы
A{z) = a„z" + an^z"~l +... + atz + a0
внутри единичного круга можно определить по числу полных оборотов вектора A{z)B(z) вокруг начала координат при изменении комплексной переменной z вдоль границы этого круга, т.е. при z = e je, - я < 9 < я . Таким образом, для устойчивой системы
Aarg^(eye) = 27ni, -тс<в<тс.
В силу свойства симметрии А(е*\ = А(е*\, где черта сверху означает комплексно-сопряженное выражение. Поэтому достаточно рассмотреть лишь половинный интервал [0, ж].
На рис. 1.45 показаны годографы Михайлова для полиномов
A(z) = (z-0.2f и
A(z) = (z-\2){z + 02)\
которые соответствуют устойчивой и неустойчивой дискретным системам третьего порядка.
йЦе*) ReA{efi)
1тЛ(е^) imdie0)
Рис. 1.45. Годограф Михайлова для сметем 3-го порядка
а — устойчивая система, В — неустойчивая система
Критерий Намквшстй' Пусть дана дискретная передаточная функция разомкнутой системы ЯР'(г) и требуется определить, устойчива ли замкнутая импульсная система с единичной отрицательной обратной связью (рис. 137).
g(t) i W{z)
Я»)
Будем предполагать, что функция W{z) -строго правильная (степень ее числителя меньше степени знаменателя).
Передаточная функция замкнутой системы равна
W(z) 0(z) =
l + W(z)
и характеристическое уравнение имеет вид
\ + W(z) = 0.
Для дискретных систем граница области устойчивости - это единичная окружность в плоскости z , ее уравнение может быть записано в виде z = ej6, -%<Q<n. Для построения годографа Найквиста используется верхняя полуокружность, которая соответствует диапазону 0 < 9 < я .
Если разомкнутая система устойчива, для устойчивости замкнутой системы необходимо и достаточно, чтобы годограф wie^j не охватывал точку (-1,0) при изменении 9 от 0 до ж.
Если функция W (г) имеет полюса в точке г = 1 (разомкнутая система содержит дискретные интеграторы), то нужно обходить контур, минуя точку z =1, по четверти окружности малого радиуса г (см. рис. 1.47).
Re г
Ыг 2 = -1(9 = к) = 1(6 = 0)
Рве 1.46. Система с единичной отрицательней обратной связью
Рис. 1.47. Контур обхода для построения годографа Найквиста
Если разомкнутая система неустойчива, то для устойчивости замкнутой системы годограф должен охватывать точку (—1,0) на угол тх (против часовой стрелки), где т - число неустойчивых полюсов W (г) .
Термин «неохват точки (-1,0)» означает, что общее изменение угла поворота радиуса-вектора, проведенного из точки (—1,0) к частотной характеристике W\e*h равно нулю при изменении 0 от 0 до к.
На рис. L48 показаны годографы Найквиста .для разомкнутых систем е передаточными функциями вида
у Л Л . * ( * - * * ) { j ~ г - 0 . 2 5 $
47
где К - постоянный коэффициент. I Ляг Ляг
t т
а б Рис. 1.48. Годограф Найквиста: а - устойчивая
система, б - неустойчивая система
При К= 0,3 система устойчива, годограф (рис. 1.48, а) не охватывает точку (-1,0), тогда как при К = 0,6 (рис. 1.48, б) замкнутая система неустойчива. Можно показать, что критическое значение К, при котором система теряет устойчивость, равно К* = 0,417 . В этом случае годограф проходит через точку (-1,0).
Запасы устойчивости. Для оценки запаса устойчивости цифровой системы можно использовать классические понятия запасов устойчивости по амплитуде gm и по фазе <рт которые определяются по годографу Найквиста так же, как и для непрерывных систем. Если W0(z) - дискретная передаточная функция приведенной непрерывной части, годограф Найквиста представляет собой кривую W0{eje\ при ве[0, ж], изображенную на комплексной плоскости (рис. 1.49). Если разомкнутая система устойчива, эта кривая, как отмечено выше, не должна охватывать точку.
Рис. 1.49. Определение запасов устойчивости по годографу Найквиста
Запас устойчивости по амплитуде gm — это наименьший дополнительный коэффициент усиления в контуре, при котором система теряет устойчивость (то есть, при увеличении масштаба графика в gm раз он пройдет через точку (-1, 0), соответствующую границе устойчивости). При использовании логарифмических частотных характеристик запас устойчивости удобно измерять в децибелах, например, значению gm -2 соответствует запас 1ш=20/^2 = 0.602Дб.
Запас устойчивости по фазе <рт - это минимальный дополнительный фазовый сдвиг
(вызванный, например, запаздыванием сигнала обратной связи), при котором система становится неустойчивой при неизменном коэффициенте усиления контура. Если объект неустойчив, то устойчивость теряется и при уменьшении коэффициента усиления контура, то есть, при повороте графика на угол <рт по часовой стрелке он пройдет через точку (-1, 0).
Во многих случаях более информативен показатель колебательности М , который определяется как отношение максимума частотной характеристики замкнутой системы к ее значению при нулевой частоте (рис.1.50).
Для того, чтобы система имела показатель колебательности меньше заданного значения М , частотная характеристика разомкнутой системы (годограф Найквиста) не должна заходить внутрь запретной области вокруг точки ) (-1, 0). Эта область представляет собой круг
М радиуса —-—- с центром в точке
а 6
Рис. 1.50. Показатель колебательности: а- определение, б - запретная область
для годографа Найквиста
Показатели качества дискретной системы наиболее просто определяются по кривой переходного процесса, вызванного единичным ступенчатым воздействием
ко-> z-1
Изображение переходной функции будет
z-1 AH(z)
Дискретные значения переходного процесса могут быть найдены путем разложения изображения H{z) в ряд Лорана, которое реализуется простым делением числителя изображения переходной функции на ее знаменатель. После деления получим
48
Щг)=с^ +qzA +С/2 +...+qz> +....=да"'. (1.71)
1=0
С другой стороны, по определению z-преобразования
H{z)=±h(nT)z-". (1.72) л=0
Сравнивая (1.71) с (1.72), можно заключить, что коэффициенты разложения С, равны дискретным значениям h{nT) переходной функции.
Пример L20. Передаточная функция замкнутой системы задана выражением
0.3(z + 0.5)(z +1.065) Ф(г) = - i = - ^ 1—.
z3 - 0.853z2 + 0.625z + 0.157
Считая, что Т = 0.1, построить переходную функцию. Для изображения переходной функции получим
ние превышает 60%, что является следствием малых запасов устойчивости.
По аналогии с непрерывными системам!! точность дискретных систем управления t установившемся режиме можно оценивав с помощью коэффициентов ошибок. В общем случае коэффициенты ошибок дискретной системы определяются выражением
' dp- д е 'Г ) р=0 • (1.73)
Для вычисления реально используемых коэффициентов Со, Сь Сг выведены формулы
С0=ФЛ(2)\Ы,
Q=zT-0&{z)\^,
C2=2zT T^0A{z) + zT^0,{z)
(1-74)
tf(z) = <Z>(z) Введением в передаточную функцию z -1
0.3z3+0.4695z2+0.15975z z4 -1.853z3 +1.4786z2 - 0.468z -0.157'
Разделим числитель на знаменатель
#(z) = 0.3z-' +1.0255z"2 +1.614z"3 + 1.62z^ + + 1.14z-5 + +0.634Z-6 + .503z"7 + 0.783z-8 + + 1.183z-9 + 1.37z-'° + ... .
Отложив на графике ординаты дискретных значений и соединив их отрезками, получим переходную функцию системы (рис.1.51).
< 1.70 1.53 1.36
L < 1.70 1.53 1.36
>-и i
< 1.70 1.53 1.36 \
< 1.70 1.53 1.36
\ / \ 1.02 0*5
/ \ И 1.02 0*5 / у / ^ V J f 1.02 0*5
/ \ > г — 1 / 051 034 0.17
/ 1 / 051 034 0.17
г 051 034 0.17 J 051 034 0.17
/ -*• 1 О 0.10.20.3 0.4 0.5 0.6 0.7 0.80.91.0 1.1 1.2 1.3 1.41.51.61.71.81.92.0
Рис.1.51. Переходная функция системы • Продлив вычисления дальше, можно
определить все показатели качества, но уже и так ясно, что переходный процесс неудовлетворителен, т.к. перерегулирова-
прямои цепи звена z -1 , что соответствует
введению интегратора, системе можно придать астатизм. Передаточная функция разомкнутой системы в этом случае имеет вид
W(z) = r z V'5(z)
z-1 A(z) (1.75)
Здесь v - порядок астатизма. Передаточная функция замкнутой системы по ошибке будет равна
<*>дМ = (z-l)^(z)
(z-\)vA(z) + zvB(z) (1.76)
Очевидно, что при v = 1, коэффициент i ошибки по положению С0 = 0. При ' астатизме второго порядка (v = 2) получим, !
что Со = О, С] = 0 и т.д. Робастность. При синтезе замкнутой ди(
кретной системы автоматического управленг ее передаточная функция не может быть вь брана произвольно, она должна удовлетворят определенным требованиям. Прежде всеп желаемая передаточная функция замкнуто системы 0}ц{г) должна удовлетворять условю физической реализуемости, которое выполш t ется, если Фж(г) представляет собой правши ную дробь по z (п>т).
49 Условие физической реализуемости явля
ется необходимым, но в общем случае недостаточным. При практической реализации дискретных (цифровых) корректирующих цепей их характеристики могут несколько отличаться от необходимых. Если это отличие вызовет малое изменение процессов в замкнутой системе управления, то такая система представляет собой грубую систему. Если же малое отличие характеристик качественно изменит процесс, то система уже не будет грубой. Следовательно, всякая синтезированная система должна удовлетворять условию грубости.
Предположим, что параметры дополнительной корректирующей цепи несколько отличаются от расчетных. Тогда передаточная функция замкнутой системы Ф(г). будет несколько отличаться от желаемой Ф»{г). Оценим отклонение (вариацию) Ф(г) от Фж{г)
ЬФ{г) = Ф{г)-Фж(г).
Обозначим как Wkll(z) передаточную функцию корректирующей цепи. Тогда, по определению вариации, можно записать
*£$fw- (1.77)
При последовательной коррекции в прямой цепи передаточная функция разомкнутой системы есть
где Wu{z) = BQ{Z) /A0(Z) - передаточная функция неизменяемой части системы, а передаточная функция замкнутой системы запишется как
W,{z)Wm[z) * ( * ) = \ + W0{z)Wm{z)
В соответствии с выражением (1.77) производную передаточной функции замкнутой системы по передаточной функции корректирующей цепи получим в виде
W0{z) - 8 ^ ( z ) . (1-78)
Передаточную функцию корректирующей цепи можно представить в виде
А0(г)\-Фж(г)
Вариация Wm{z\ вызванная изменениями полиномов 4) (г) и В0 (z), равна
Учитывая выражение(1.79)для W^z)из (1.80), можно получить
ЫМ- *ж{*) М*) \-ФЖУ)Ш
SB0(z) Щг)
Подставим это выражение в (1.78) и, учитывая (1.79) и W0(z) , после преобразований получим окончательное выражение для вариации передаточной функции замкнутой системы
Щ2)=Фж{г)[\~ФжЩ Щ(2) Щг) '|_.Д(г) 4>{г)_
.(1.81)
Если передаточная функция неизменяемой части не имеет нулей и полюсов по модулю больших единицы (устойчивая и минимально-фазовая неизменяемая часть), то и вариация 5Ф(г) не будет содержать неустойчивых полюсов, и передаточная функция
* Ф(г) = Фж (г)+ 5<P(z) (1.82)
будет соответствовать устойчивой замкнутой системе. Чем меньше по абсолютной величине будут вариации SQ{z) и 5P(z\ тем меньше будет отличаться передаточная функция замкнутой системы от желаемой и тем меньше будет отличаться процесс в системе от желаемого.
Если же передаточная функция неизменяемой части системы имеет нули или полюсы, по модулю больше единицы, что соответствует неминимально-фазовой или неустойчивой неизменяемой части, то эти нули и полюсы будут совпадать с полюсами вариации 0-81) замкнутой системы, как бы ни были малы вариации 5 о (z) и 5BQ (z) . Следовательно, передаточная функция замкнутой системы, определяемая выражением (1.82), будет соответствовать неустойчивой системе. В этом случае система является негрубой, ибо при небольшом отличии параметров корректирующей цепи от заданных замкнутая система становится неустойчивой. Отсюда следует, что кор-
50
ректирующая цепь не должна содержать нулей и полюсов, которые близки к неустойчивым нулям и полюсам передаточной функции неизменяемой части системы. Иначе говоря,
.- для обеспечения грубости замкнутой системы управления нельзя сокращать неустойчивые нули и полюсы передаточной функции неизменяемой части разомкнутой системы с полюсами и нулями передаточной функции корректирующей цепи.
Этот вывод накладывает определенные ограничения на желаемую передаточную функцию замкнутой системы.
Представим числитель и знаменатель передаточной функции неизменяемой части системы W0(z) = B0(z) /A0(z) в виде
B0(z) = B+0{Z)B-(z))
A0(z) = 4{z)^{z)j'
где Bl (г) и А£ (z) имеют все нули по моду
лю меньше единицы, а полиномы В^ (z) и
А^ (г) - больше единицы. Тогда
^Ш • -' Для устойчивости неизменяемой части сис
темы должно выполняться условие
(в этом случае все корни характеристического полинома по модулю меньше единицы), а для минимально-фазовости неизменяемой части -условие
(в этом случае все корни полинома числителя по модулю меньше единицы). Если неизменяемая часть разомкнутой системы неустойчивая и неминимально-фазовая, то передаточную функцию цепи коррекции (1.73) можно представить в виде
w (г) 4'(')<М') ш ат
вые нули передаточной функции W0(z), т.е. нули BQ {Z) , как видно из (1.84), должны входить в число нулей <P^(z), а неустойчивые полюсы W0(z), т.е. нули А^(г), должны входить в число нулей передаточной функции замкнутой системы по ошибке
ФА(г) = \-Фж(г). ( i
Действуя аналогично, можно определить J
условия грубости для систем с последователь- (
ной коррекцией в цепи обратной связи и для 1
параллельной коррекции. В результате можно -получить следующие выводы?.' ]
- для минимально-фазовой и устойчивой неизменяемой части разомкнутой системы ус- < ловия грубости заведомо выполняются, и по-этому выбор желаемой передаточной функции замкнутой системы не стеснен ограничения- ' ми;
- для неминимально-фазовой и устойчивой ] неизменяемой части разомкнутой системы условия грубости одинаковы при любом виде коррекции и накладывают определенные or- > раничения на выбор Фм(г) - она должна со- ' держать неустойчивые нули передаточной 1 функции W^z);
- для минимально-фазовой и неустойчивой . неизменяемой части разомкнутой системы возникают дополнительные ограничения на выбор Фж{?), вытекающие из условия грубости, для последовательной коррекции в прямой цепи и параллельной коррекции (см. (1.84));
- для неминимально-фазовой и неустойчивой неизменяемой части разомкнутой системы управления ограничения на выбор желаемой передаточной функции замкнутой системы возникают при всех видах коррекции.
Выше мы рассматривали замкнутую систему при одном внешнем воздействии, приложенном к входу импульсного элемента. Изменение точки приложения входного воздействия изменяет вид передаточной функции замкнутой системы. Поэтому в силу неизбежных флюктуации в различных точках замкнутой системы управления следует выбирать Фж(г), исходя из наиболее жестких условий грубости, выведенных из анализа формулы (1.84). Таким образом, для всех видов коррекции Фф:) должна содержать нули 2?0~(z), а
ФХ*) = 1 - Фя£г) - нули A; (Z) . Для того, чтобы WKtl(z) не содержала неус
тойчивых нулей и полюсов W0(z), неустойчи-
51
1.4. Анализ дискретных систем автоматического управления
1.4.1. Дискретизация непрерывных процессов
Дискретизация. Наиболее широко распространенным инженерным методом исследования цифровых систем является их дискретизация, т.е. переход к дискретным моделям, описывающим процессы только в моменты квантования t„ = nT при целых О > п . Для использования этого метода необходимо умение решать следующие задачи:
1. Выполнять z-преобразование решетчатой функции g[n]~g(nT), п>0, соответствующей управляющей функции системы g(t)c известным преобразованием Лапласа G{p) .
2. Выполнять квантование аналогового сигнала y(t) на выходе непрерывного объекта и строить решетчатую функцию у[и] = у[иГ] для формирования сигнала ошибки рассогласования, управляющего цифровым регулятором.
3. Определять значения сигнала y{t) не только в моменты квантования, но и между ними.
Рассмотрим эти задачи и их решение подробнее.
Квантование непрерывных функций. Пусть заданы функция g{t), такая, что g(/) = 0 при / < 0 и интервал квантования Т. Построим решетчатую функцию g\n\ - g(w2"), и найдем ее z-преобразование:
G(z) = ±g[n]z-. и=0
Такую процедуру будем обозначать
Пусть теперь известно преобразование Лапласа G(p) для функции g(t) • С помощью обратного преобразования Лапласа (или по таблицам) можно найти соответствующий ему оригинал g (г) и затем построить функцию
G(z) как z-преобразование для последова
тельности g[n] = g(nT). Такой переход от
G(p) к G[z) будем символически обозначать
G(z) = z{G(P)}.
Пример 1.21. Для функции с изображением Лапласа
G(p) = - L _ р-а
найти выражения соответствующей ей дискретной последовательности и дискретного преобразования Лапласа.
Решение. По таблицам преобразований Лапласа находим соответствующий оригинал
Тогда g(t) = ea',t>0
g[n] = g(nT) = e°
и по определению
я=0
Z (1.85)
1 „«Г -I 1-е z z - е
iT •
Существует возможность прямого перехода от G(p) к G(z) с помощью интегральной формулы [1,2].
Восстановление непрерывных функций. Пусть известно z-преобразование G(z) решетчатой функции, полученной при квантовании некоторой непрерывной функции g(t) с периодом Г и показанной на рис. 1.52.
О Т IT ЪТ 4Г 5Т
Рис. 1.52. Восстановление непрерывного сигнала
Для восстановления значений g[/j] = g [« r ] в моменты квантования можно использовать интегральную формулу обратного z-преобразования:
g[„] = -LfG(z)2"* 2тд{ z
Она позволяет вычислить значения функции только в моменты квантования, а значения
52
непрерывного сигнала g(t) между этими моментами не могут быть определены однозначно. Одной решетчатой функции может соответствовать множество аналоговых сигналов, и по дискретному изображению <?(z) невозможно определить, какая из них подвергалась квантованию (см. рис. 1.28). Это еще раз демонстрирует тот факт, что при квантовании происходит потеря информации.
1.4.2. Аналоговые модели дискретных сигналов
Аналоговая модель экстраполятора. Как показано в разделе 1.3, экстраполятор - это элемент с дискретным входом и аналоговым выходом, который преобразует числовую последовательность {#["]} в аналоговый сигнал управления u(t), поступающий на объект управления. Поскольку его импульсная характеристика h(t) (реакция на единичный дискретный импульс S\n\) есть функция непрерывного времени, то при соответствующем преобразовании входного сигнала экстраполятор можно рассматривать как аналоговый элемент. Справедливость подобного утверждения базируется на следующих предпосылках.
Входной сигнал экстраполятора {g[«]| (см. (1.12))можно представить в виде решетчатой функции
g{n) = Y,s[n\5[m-n). (1.86)
Действительно, при любом т в правой части остается только одно ненулевое слагаемое (при п= т). Используя принцип суперпозиции для линейных систем, выходной сигнал экстраполятора u(t) можно записать как реакцию экстраполятора на входной сигнал
«(0=2>*Н*('-я7)- с-87)
Теперь рассмотрим линейную непрерывную систему с импульсной характеристикой h (t) при импульсном входе
g{nT)^g[n]S{t~nT). (1.88) л=0
Из теории линейных стационарных систем известно, что реакция непрерывной системы на сигнал (1.88) равна
00
u{t)=jh(r)g*(t-T)dT= р, -со (]
= ]п(т)^[пЩ-т-пТ)<1т.
Таким образом, реакция экстраполятора с импульсной характеристикой h(t) на дис- п кретный сигнал (1.86) совпадает с реакцией непрерывной системы с такой же импульсной характеристикой на аналоговый сигнал (1.88). Это позволяет рассматривать экстраполятор как аналоговое звено с импульсной характеристикой h(t) и передаточной функцией
л
H{p) = \h(t)e-"dt, <, о
при условии, что дискретный входной сигнал (1.86) заменяется импульсным аналоговым ( сигналом (1.88) (рис. 1.53).
Экстраполятор W Экстраполятор
а I
• т{р) — •
б Рис. 1.53. Модели экстраполятора:
а - гибридная, б - аналоговая
Как будет показано далее, использование аналоговой модели экстраполятора позволяет легко находить преобразования Лапласа непрерывных сигналов в цифровой системе.
1.4.3. Дискретизация простейшей импульсной системы
Импульсная модель дискретного сигнала. Исследуем более подробно свойства сигналов вида
g{t) = ig["]S{t-nT), (1.89)
где g[n] - некоторая числовая последовательность. Преобразование Лапласа для (1.89) есть
53
G,{p) = ]g(t)e-p'dt = ]g[n]S(t-nT)e->>'dt.
Изменяя порядок суммирования и интегрирования, и используя свойство дельта-функции (1.88), имеем
G*(^) = Z^№ npl
При замене z-e р1 получаем z-преобразование последовательности g[n] :
G(*) = G'(p)l_z=±g[»y. t . :• О
Пусть последовательность g[n]] была получена квантованием непрерывного процесса g(/) с изображением по Лапласу G(p). Если
функция G[p) убывает при \p\rf. со, по край
ней мере, как у—г, то связь между G* (р) и ) \Р\
G(p) определяется формулой [9]
G'(p) = - + l-±G(p + nja)0). (1.90)
2л где а>0 = -— - угловая частота квантования.
Если же G{p) убывает при \р\—* со быстрее,
чем г-г|, имеем g(0) = 0, так что первое сла-\Р\
гаемое в правой части (1.90) отсутствует. Из формулы (1.90) следует периодичность
преобразования Лапласа импульсного сигнала
G'(p + mjcD0) = G,{p) (1.91)
для любого целого т . Дискретная модель объекта с экстрапо-
лятором. Простейшей импульсной системой будем называть разомкнутую систему, состоящую из экстраполятора и линейного непрерывного объекта, которые заданы передаточными функциями W0(p) и W0(p) соответственно (см. рис. 1.54).
*( ' ) К(Р) W0{P)
у{')^< yjt)
Входной импульсный сигнал g* (t) вида (1.89), моделирующий последовательность |g[n]}, проходит через звено с передаточной функцией
K(P)=W0{P)WO{P))-
Тогда преобразование Лапласа сигнала y(t) вычисляется как
Y{p)=G'{P)Wn{p)=a{p)W0{p)W0{p).(1.92)
Предположим, что из сигнала y(t)) выбираются (с помощью импульсного элемента) дискретные значения з>[и] = ;у(иГ). Найдем
связь между последовательностями {g[w]l и
у[п\.
Будем считать, что функция Wn (р) убыва
ет при р —* со быстрее, чем т—т, так что \Р\
>>(0) = 0. Для этого достаточно, чтобы
limWn(p)-0, поскольку для любого экстра-
полятора /?(0)?too и передаточная функция Н(р) убывает, по крайней мере, как т—г.
\Р\ Изображение импульсного сигнала
по Лапласу при у(0) == 0 имеет изображение
| СО
=-=. Z wn (Р+»тр' (Р+пМ)!-
Учитывая, что в силу свойства периодичности
G*(p + nja>0) = G'(p),
и обозначив
W'{p)=-YJWn{p + nja)o), 1 *=-«
получим
r\p) = W'(p)&{p). (1.93)
Рис. 1.54. Простейшая импульсная система
54
Можно показать (см. [8,10]), что все изображения в (1.93) являются функциями переменной z = ерТ (или £ = е'рТ ). Тогда
Y(z) = W(z)G(z),
где G(2) И Y{Z) обозначают z-преобразования последовательностей {#["]} и
>>[и]}, а функция
W(z) = W'(p)lT_i=Z{Wn(p)} (1.94)
представляет собой дискретную модель приведенной непрерывной части - объекта с экстра-полятором. Она определяет линейный закон преобразования управляющей последовательности |g[«]} в у[п]] при нулевой начальной энергии системы.
Если рассматривать процессы в простейшей цифровой системе только в моменты квантования, можно сказать, что Wn (z) - это ее дискретная передаточная функция.
Замкнутые формулы. Пусть передаточная функция объекта имеет вид
Woipht^-ыР-а, (1.95)
где а, и Д, z' = (l,...,/V) - постоянные. Найдем дискретную модель для объекта (1.95) с фиксатором нулевого порядка
1-е •рТ
ЫР):
Для Wn (р) = W0 (p)W30 (р) из (1.93) и (1.94) следует
Т „=-«, р + jnm0
2л Заметим, что при со0 = — и целых п
= 1-е-рТеч2х"=1-е-рТ.
Поэтому, выполнив замену ерГ = z, получа-
p + jna0
*-КЫРУ\
Дня функции (1.95) имеем
г [мР{р-<*,),
Ъ. 1 ^ 1 N
— Y.z z ti1 Р{р-а,)\
В последнем равенстве использовано свойство линейности z-преобразования. По таблицам z-преобразований находим
А К-1)-./>(/>-«/)] *,(*-1)(*-ев ' г)"
Тогда окончательно получим
W{z)^ke а,Т - 1 ^ « , - г - е 0 ' Г '
(1.97)
ем
Из формулы (1.97) видно, что полюса непрерывной передаточной функции W0 (р) преобразуются в полюса дискретной модели W(z) по правилу
Если непрерывная система устойчива, т.е. Reb. <0для всех /, дискретная модель также устойчива, поскольку |z,| < 1.
К сожалению, получить простые зависимости для преобразования нулей передаточной функции при квантовании не удается, существуют только предельные результаты (при очень больших или очень малых периодах квантования).
Процессы между моментами квантования. Для вычисления непрерывного сигнала на выходе объекта управления можно вычислить обратное преобразование Лапласа для изображения Y(p) (1.83). Такой подход, развитый в [10], позволяет получить аналитическое выражение для сигнала y(t) при известном входном сигнале, однако приводит к громоздким вычислениям.
55 Наибольшее распространение получил дру
гой метод, основанный на использовании модифицированного z-преобразования. Рассмотрим последовательность у[п,у] значений сигнала y(t) в моменты tn = пТ + уТ, где 0 < у < Т. Связь между смещенным ^-преобразованием выходного сигнала y(t)) и z-преобразованием
входной последовательности |g[«]} определяется модифицированной дискретной передаточной функцией
_Y{z,y) W(z,y)--
G(z) •
Для системы, изображенной на рис. 1.52, она может быть вычислена как по таблицам модифицированного z-преобразования.
Пусть W0 (/>) имеет вид (1.95) и используется экстраполятор нулевого порядка. Тогда
z {Mp{p-at)
По таблицам модифицированного z-преобразования находим
h z Zr%p{p-a)\ a,z-\
Окончательно получим
( ЛУТ ( z - l )
z — e а,Т
Г{*.Г) = Т, b(^-i)z-(e^-e"T)
-е ",Т
Легко проверить, что при подстановке у = О последнее выражение совпадает с (1.97).
Дискретизация моделей в пространстве состояний. Пусть непрерывный объект задан моделью в пространстве состояний:
х' - Ах + Ви, у = Сх + Du,
(1.98)
где х(г) — вектор состояния, н( / )— вектор управляющих воздействий, у (t) — вектор выхода, А , В , С и D — постоянные матрицы соответствующих размеров.
Пусть в момент времени tn ~пТ вектор состояния равен х\п\. Тогда решение линейного дифференциального уравнения в (1.98) при пТ <t<{n + \)T имеет вид
x{t) = eK{-nT)x{n}+ \ex^m{r)dr .(1.99) пТ
Здесь е ' обозначает матричную экспоненту, которая определяется как сумма сходящегося ряда
"•,AV е =Е + — +
At А У 1! 2! • + E SV I
Используя относительное смещение у и выполнив замену переменных tk=nT + yT и о = х~пТ, при 0 < у < 1 получаем
уг x{nT+yf) =еАуТх[п\ + \е*гГ-а)Ш{пТ+а)с1ст.
о
Будем считать, что на входе объекта используется фиксатор нулевого порядка, т.е., u{t)-g{t) для пТ<t<(n + \)T. Тогда
гт х(пТ + уТ) = eArTx[n]+ J eA[rT-a)daBu[n].
о Таким образом, уравнения состояния дис
кретной модели при 0 < у < Т можно представить в виде
х[п,у] = Ф[у)х[п] + Г[у)и[п\,
y[n,y] = Cx[n,y] + Du[n]= (1.100)
= СФ(у)х[п] + (В + СГ(у))и[п],
где гт
Ф(Г) = еАут, r(y)=$eA{rT-'r)dcT-B.
При у = 1 получаем дискретную модель процессов в моменты квантования
х[п +1] = Фх[п] + Ти[п],
у[п] = Сх[п] + Т)и[п]. (1.101)
Модели (1.100) и (1.101) точно описывают динамику объекта при условии, что входной сигнал и (7) не меняется между моментами квантования. Бели используется более сложный экстраполятор, матрица Г изменится. Более того, в некоторых случаях (например, при наличии запаздывания в управлении [9]) в первом уравнении могут появиться члены, зависящие от предыдущих значений последовательности g[n]. Применяя z-преобразование к
56
левой и правой частям (1.101) при нулевых начальных условиях ( х(0) = 0 ), получаем
- zX(z}=<I>X(z) + rG(z), Y(z) = CX(z) + DG(z).
(1.102)
где заглавные буквы обозначают изображения соответствующих последовательностей.
Отсюда следует
y(z)=[c(zE-<&)4r+D]G(z)=Fr(z)G(z), где
^ ( г ) = С(гЕ-Ф)_1Г + Р
есть дискретная передаточная функция разомкнутой системы.
1.5. Синтез дискретных систем управления
1.5.1. Идеология синтеза дискретных систем управления
Выше было указано, что дискретные сис-:мы управления представляют собой некото->ie множества взаимодействующих непре->шных (объектов и исполнительных меха-язмов) и дискретных (измерительных и 1равляющих) элементов. В то же время для гшения задачи синтеза обычно используются детородные математические модели - либо зпрерывные, либо Дискретные. Выбор моде-я обусловлен соотношением между временем вантования и временем регулирования.
Если период квантования мал, то соседние искретные значения сигналов отличаются езначительно и последовательность их может ассматриваться как непрерывный сигнал. В гом случае расчеты правомерно проводить по епрерывным моделям, а при необходимости меть дискретное представление алгоритма правления следует провести его дискретиза-ию (дискретную аппроксимацию) с периодом вантования, сохраняющим достигнутое каче-гво процесса управления.
При изначально цифровой реализации ал-оритма управления вначале производится искретизация процесса управления, и расчет роцесса проводится по дискретным матема-ическим моделям.
Коррекцию дискретных систем управления южно осуществлять как непрерывными, так и [искретными звеньями. При этом непрерыв-ая коррекция производится введением непре-•ывных корректирующих звеньев в непрерывную часть, а дискретная коррекции - путем введения дискретных корректирующих звень-!В в дискретную часть системы. Варианты юдключения непрерывных корректирующих 'стройств показаны на рис. 1.55.
^Ч>- и'Д/ФО-* М Р )
МР)
'о(р) У(<)
Рис. I.5S. Варианты подключения непрерывных корректирующих устройств в дискретных системах:
а - последовательное, б — параллельное, в - с обратной связью
Варианты подключения дискретных корректирующих звеньев показаны на рис . 1.56.
s(,) .Г) ii £-"£ *М*) Ts
К(Р) Щр) А?) V
ii £-"£ *М*) Ts
К(Р) Щр) %
:Т -Ямр\—$М—<Н^5 но
. , — •
»iW К(.р
МУ-\К(Р\—<\МР)
Ь ^ ЩТ7\ Щ*)
*МР) У(')
••—•
Рис. 1.56. Варианты подключения дискретных корректирующих устройств в дискретных системах:
а - последовательное, б — параллельное, в - с обратной связью
Дискретные передаточные функции разомкнутых дискретных систем приведены ниже:
- для последовательной коррекции
- для параллельной коррекции
^ч> -.ад)—»ад ад яо т,^гртм\,
^#[ - для коррекции местной отрицательной
обратной связью
58
z-\
W(z) =
\wp{p)w0{Py P ) #№
Выбор способа коррекции определяет сложность корректирующего устройства.
Наиболее сложным является этап формализации требований к качеству установившихся и переходных процессов в виде желаемой передаточной функции разомкнутой или замкнутой системы. Его результат есть определенный компромисс между динамическими свойствами объекта, условиями реализуемости алгоритма, требованиями к качеству системы управления и т.д.
1.5.2. Преобразование непрерывных регуляторов в дискретную форму
Задача преобразования (переоборудования). Пусть спроектирована непрерывная система управления, удовлетворяющая всем необходимым требованиям (рис. 1.57).
8(f) 9 ffp(p) W0(P) ж
Рис. I.S7. Непрерывная система
Здесь W0 (р) и Wp (р) обозначают передаточные функции объекта и регулятора.
Задача преобразования (переоборудования) заключается в том, чтобы заменить непрерывный регулятор WP (/?) цифровым регулятором (который включает импульсный элемент, формирующий элемент с дискретной передаточной функцией W0(z)) так, чтобы сохранить все существенные свойства замкнутой системы (рис. 1.58).
*(') О К(р) МР) Регулятору
МР) ж
Рис. 1.58. Преобразованная цифровая система
Методы такого преобразования можно разделить на две группы. К первой группе относятся методы, которые направлены на обеспечение близости свойств отдельно взятого цифрового регулятора (например, его импульсной или переходной характеристики) к свойствам
исходного непрерывного регулятора. При этом регулятор рассматривается изолированно, без учета других элементов, поэтому нельзя гарантировать даже устойчивость преобразованной замкнутой системы. К методам этой группы относятся:
- применение численных методов интегрирования;
- частотная коррекция дискретного аналога непрерывного регулятора;
- отображение нулей и полюсов непрерывного регулятора в г-плоскость;
- фиктивное квантование непрерывного регулятора.
Цель методов второй группы - обеспечить близость свойств замкнутых систем на рис. 1.45 и рис. 1.46. Такой подход позволяет гарантировать устойчивость цифровой системы, однако приводит к значительно более сложным алгоритмам. К ним относятся:
- аппроксимация частотной характеристики непрерывной системы;
- аппроксимация интегральных показателей качества непрерывной системы.
Рассмотрим указанные методы подробнее. Численное интегрирование. Простейшие
методы преобразования основаны на приближенной замене интегрирующего звена его дискретной моделью. Это позволяет получить дискретную передаточную функцию цифрового регулятора, сделав соответствующую замену переменных непосредственно в передаточной функции непрерывного регулятора WP{p).
Пусть g(t) и y(t) — входной и выходной сигнал непрерывного интегратора, показанного на рис. 1.59, а.
gill 1 -Н — М £Н у (4
Рис. 1.59. Интегратор (а) и его дискретная модель (б) '
Если известно значение у[п] = у(пТ), то
пТ+Т
у[п + \] = у(пТ + Т) = у[п}+ j* g{t)dt. пТ
Непрерывный интегратор можно приближенно заменить дискретной моделью (рис. 1.59, б):
y[n+l]=3(y[n],y[n-l],...,g[n+l],g["],..),
59
•де З(-) — некоторый алгоритм расчета сле-(ующего значения выхода, который может )ыть построен на основе любого метода чис-[енного интегрирования.
Например, при использовании метода Эй-\ера (метод прямых разностей, или метод ле-swx прямоугольников), иллюстрируемого рис. .58, а имеем
y[n + \] = y[n] + Tg[n].
Применяя оператор сдвига вперед z, полу-
{z-\)y[n] = Tg[n],
*• t
О пТ пТ + Т > /
Рис. 1.59. Численное интегрирование на основе метода Эйлера (метод трапеций)
Соответствующая замена
2 z-\ p-f Т z + \
называется преобразованием Тастина. Пример 1.21. Дискретизация непрерывного
регулятора > t
WP(p) = K0 р-а
Рис. 1.58. Численное интегрирование на основе методов прямых (а) и обратных (б) разностей
откуда следует, что дискретная передаточная функция этого звена равна
z - 1
Таким образом, преобразование по методу Эйлера сводится к замене
1 Т >
или р z-\
2-Х Р-* (1.103)
Аналогично можно построить правило замены для метода обратных разностей или правых прямоугольников (рис. 1.58, б):
р-> z-\
где KQ, а и р - вещественные числа, с помощью методов Эйлера, обратных разностей и Тастина дает, соответственно, дискретные регуляторы
, ч z-(l + aT) WPF(z) = K0 ) f,
W„{z) = K0- К j
WPT(z) = K0
г (рГ-1 ) + Г
г ( а 7 ' - 2 ) + (аГ + 2) z ( p r - 2 ) + ( p r + 2)
zT
Все регуляторы имеют тот же самый порядок (равный 1), что и непрерывный регулятор. Они достаточно хорошо моделируют регулятор Wp (р) при малых интервалах квантования, однако при увеличении Т их свойства существенно отличаются от свойств непрерывного оригинала.
• Для повышения точности аппроксимации
можно использовать более сложные методы, например,замены
Из теории численных методов известно, что точность рассмотренных методов прямоугольников невысока. Для повышения точности используется метод трапеций (рис. 1.59), который описывается формулой
ф + . 1 ] = у[«] + - £ [ я + 1] + £[и].
Р<-
3 1 Т z2+4z + \ 10 z4+z3-z-\ Т z*+6z3+6z2-6z + ]
соответствующие методам интегрирования Симпсона и Уэддля [6]. Однако при этом по-
60
рядок переоборудованного регулятора будет выше, чем порядок непрерьюного.
Частотная коррекция. Частотная характеристика системы представляет собой ее реакцию- на периодический сигнал ем, где со -частота и j = v - 1 . Для непрерывного регулятора с передаточной функцией WP (/?) она вычисляется как WP (усо). Частотная характеристика дискретного регулятора, полученного в результате преобразования, определяется при подстановке z = eJal. Для преобразования Тас-тина получаем
WP(eja,T) = WP f2eJmT-l
TeJaT+l (1.104)
что очевидно не совпадает с WP(jco) непрерывной системы. Аргумент в правой части (1.104) можно привести к виду
2е**-\ 2е1е,т12~еч,оТ12 2 <йТ „ Те"1" +1 Те*г/2+е-мг/2 "Т" 2
где Х- 2 (оТ J'gT псевдочастота. Это значит,
что частотная характеристика цифрового регулятора на частоте ю совпадает с частотной характеристикой непрерывного регулятора на
2 частоте X. При © < — частота и псевдочастота
Т мало отличаются, т.е., со ~ Я,.
Можно показать, что другие рассмотренные преобразования также искажают частотную характеристику регулятора. Это может быть нежелательно, например, если надо дис-кретизировать полосовой фильтр или фильтр-пробку (блокирующий сигналы определенной частоты), поскольку полученный цифровой фильтр будет иметь другую рабочую частоту. В этом случае используется модифицированное преобразование Тастина с предварительной частотной коррекцией
Р<-(Оп z-\
tg(a>0T/2)z + l
Легко проверить, что оно не дает искажений амплитудной характеристики на частоте ©о, хотя искажения на остальных частотах остаются.
Устойчивость регулятора. Если непрерывный регулятор устойчив, будет ли он устойчив после преобразования в дискретную форму?
При использовании метода Эйлера пол) ( плоскость Re р<0 (область устойчивости не i прерывных систем) отображается на полу плоскость Re z < 1 (рис. 1.60, а). Часть это| области находится вне единичного круга (о§ ласти устойчивости дискретных систем), щ этому устойчивому регулятору W30 (р) мозвд соответствовать неустойчивый дискретны! регулятор.
imz Imz
Рис 1.60. Преобразование области устойчивости
Пример 1.22. Пусть в непрерывной системе передаточная функция регулятора есть
Используя замену (1.103), получаем дискретный регулятор с дискретной передаточной функцией
wP(z)= Т „ > ( 1 Л 0 5 )
которая имеет полюс в точке z - 1 + рГ. Если регулятор Wp (/?) устойчив (J3 < 0), то его дискретная модель (1.105) становится неустойчивой при $Т<- 2. •
Метод обратных разностей отображает полуплоскость Re р < 0 на внутреннюю часть круга |г-0.5(<0.5 (рис. 1.60, б). Поэтому устойчивость регулятора всегда сохраняется, и даже неустойчивый регулятор при преобразовании может стать устойчивым. Замена (1.103) для регулятора из примера 1.20 дает дискретную передаточную функцию
Wr(z) = zT *(1-рг)-Г
которая имеет полюс в точке z = 1
1-рГ . Та
ким образом, при Р < 0 устойчивость сохраняется, а при РГ > 2 неустойчивому регулятору соответствует устойчивая дискретная модель.
Преобразование Тастина отображает полуплоскость Re р<0 на внутреннюю часть единичного круга (рис. 1.60, в), т.е. устойчивость
(или неустойчивость) регулятора сохраняется всегда.
В то же время ни один из описанных методов не может гарантировать сохранение устойчивости замкнутой системы, поскольку регулятор рассматривается изолированно и влияние остальных элементов системы вообще не учитывается.
Отображение нулей и полюсов непрерывного регулятора в z-плоскость. Один из простейших способов преобразования сводится к отображению нулей и полюсов непрерывного регулятора из плоскости р в плоскость z по следующим правилам:
- все полюсы функции WP (р) преобразуются в полюсы дискретного регулятора по за-кону z-ev ;
- все конечные нули функции WP (р) преобразуются в нули дискретного регулятора по закону z = ерТ;
- все нули функции Wp (/?) в точке р = <х> преобразуются в нули дискретного регулятора в точке z = - 1 ; если надо обеспечить запаздывание на 1 такт, один из нулей отображается в точку z = оо ;
- коэффициент усиления К цифрового регулятора WP (г) выбирается так, чтобы совпадали коэффициенты передачи на некоторой частоте; во многих случаях используется условие, гарантирующее сохранение коэффициента усиления в установившемся режиме:
X\mWP(z) = \imWP (р) . (1.106)
Считается, что передаточная функция имеет q нулей на бесконечности, если степень ее числителя меньше степени знаменателя на q .
Пусть непрерывный регулятор задан в виде
м UP-*)
WP(P)=K0^ , ЩР-PJ)
где zf (/ = 1,...,М), р, {i = \,...,N) - соответственно нули и полюсы функции W30 (р) ,аК0-коэффициент. Предполагается, что M>N, т.е., функция Wp (р) имеет N - М нулей на бесконечности. Тогда дискретная передаточная функция дискретного регулятора, преобразованного по методу отображения нулей и полюсов, имеет вид
61
М ' Q
где Q = N-M или Q = N-M-\ (для регулятора с запаздыванием). Коэффициент К выбирается из условия (1.106), которое принимает вид
и м т-**Т) ПК)
K.2QJ^_ ^ ,
1ШШ П Ы Пример 1.23. Пусть Wp (р) = ——. Переда-
р-# точная функция такого регулятора имеет один полюс в точке s = Р и один нуль на бесконечности. Полюс отображается в точку z = ерг, а нуль - в точку z = - 1 . Коэффициент усиления непрерывного регулятора в установившемся режиме равен 1. Для того, чтобы обеспечить выполнение условия (106), надо при-
ерг-1 нять К = Кп , так что
0 20
2pj z-e'
Аналогично можно получить регулятор, дискретная передаточная функция которого -строго правильная функция (нуль в р = оо переходит в z = оо ):
W(z) = KePiT-1 1
ш Фиктивное квантование. Еще один метод
преобразования состоит в том, чтобы мысленно установить на входе непрерывного регулятора фиктивный (несуществующий) импульсный элемент с экстраполятором, а на выходе -еще один импульсный элемент (рис. 1.61, а). Далее остается найти дискретную передаточную функцию W(z) полученной дискретной системы (рис. 1.51, б)
W{z) = Z[W0(p)Wo{p)}.
62
*(') I^*\»\ *ЛР) WO(P) MOj^yl»}
d»l W(p) У1»] — •
Рис. 1.61. Фиктивное квантование: a - структурная схема, б - условное обозначение
При использовании фиксатора нулевого порядка имеем
При подаче на вход такого регулятора единичного дискретного скачка g[n] = l,n>0 с изображением
G(Z) : 2 - 1
имеем Y{z) = W(z)G(z) = W(z)
г -1
Учитывая (107), получаем
г(^г\Щ\=2{г0(р)},
/ ч WJp) где У0(р)~ —- - изображение выхода
Р у ft) непрерывного регулятора при подаче на
его вход единичного скачка g(/) = l(?) с изо
бражением G(p) = — . Таким образом, реак-Р
ции непрерывного и дискретного регуляторов на единичный скачок совпадают в моменты квантования.
Для сравнения методов преобразования на рис. 1.62 показаны логарифмические амплитудные частотные характеристики различных дискретных моделей непрерывного регулятора laigA 20 lg л
Сплошная линия соответствует непрерьш ному регулятору, пунктирная - использова нию преобразования Тастина, штриховая -фиктивному квантованию с фиксатором нуле вого порядка.
При малых интервалах квантования все ха рактеристики практически совпадают, для больших Т при 1 < со ближе всего к оригиналу идет линия, соответствующая преобразованию Тастина, хотя при 1 > со коэффициент усиления такого регулятора резко уменьшается.
Лпроксимация частотной характеристики. При использовании изложенных выше методов преобразования регулятор рассматри вался изолированно от остальных элементов замкнутой системы. Поэтому такая дискретизация в принципе может даже привести к потере устойчивости (при больших интервалах квантования). Кроме того, невозможно гарантировать и сохранение показателей качества системы. Более совершенны методы, которые рассматривают замкнутую систему в целом. Один из возможных подходов основан на сближении частотных характеристик замкнутых систем (исходной и преобразованной).
Рассмотрим снова систему на рис. 1.46, которая состоит из объекта и регулятора. Ее частотная характеристика может быть найдена как
v ' \ + W0(ja>)Wr(jay
Для цифровой системы-аналога определим частотную характеристику как
0(ja>) = Wn{eJO>T)WP(eJmT)
l + W^e^Wp^y
10'
где "в \z) — дискретная передаточная функция приведенной непрерывной части:
Wn(z) = Z{Wo(p)W0(p)}.
Интуитивно ясно, что чем точнее совпадают частотные характеристики, тем ближе свойства исходной и преобразованной систем. Поэтому имеет смысл выбирать цифровой регулятор так, чтобы минимизировать интеграл (т.е. площадь между двумя кривыми)
Рис. 1.62. Частотные характеристики непрерывного регулятора: а - Т= 0.5, б — У =2.
63
*м=\ КО'®) - ^ С/®)! ^ -*min 1 7»
->mm
для заданного частотного диапазона [й>ь <w2]. Обычно при этом порядок регулятора вы
бирается заранее, так что остается наилучшим образом определить его неизвестные коэффициенты, т.е. решить задачу параметрической оптимизации с помощью численных методов нелинейного программирования.
Этот подход учитывает поведение замкнутой системы и позволяет задать диапазон частот, наиболее важный в данной задаче. Однако существуют примеры, когда построенная таким образом преобразованная система оказывается неустойчива (не учитывается вид фигуры, ограниченной площадью).
Оптимальное преобразование. Еще один метод предполагает оптимизацию переходного процесса при действии на вход системы эталонного сигнала, например, единичного скачка. Если на вход непрерывной системы на
рис. 1.45 подается сигнал 8\Ч, имеющий изо
бражение по Лапласу , то изображение
сигнала выхода Уо V) при нулевых начальных условиях равно
у(п\= ЫЕВМ оКР) \+wo{p)w0{P)-
•МР).
Для цифровой системы на рис. 1.46 изобра
жение выхода У у) имеет вид [3,4,10]
' й\_ W0(p)W„(p)W„(e") Y(p)-uz{wo(p)wt(p)]wr(e»)Z^
где в z-преобразованиях сделана замена z = e . Задача заключается в том, чтобы найти такой оптимальный стабилизирующий регулятор "p\zJ, при котором интегральная квадратическая ошибка между выходами исходной и переоборудованной систем достигает минимума:
00
J = \(y0{t)-y{t))2dt^min_
Для этой задачи известно точное аналитическое решение (см. [4,10]), гарантирующее устойчивость получаемой замкнутой системы. Однако порядок оптимального регулятора
"р \z) оказывается достаточно высоким.
1.5.3. Модальная коррекция регуляторов
Задача модального синтеза. Многие практические методы проектирования цифровых регуляторов основаны на использовании дискретной модели непрерывной части. Все сигналы рассматриваются только в моменты квантования, т.е. система считается чисто дискретной. Это позволяет применять для синтеза регуляторов хорошо разработанные методы теории дискретных систем, т.е. задача оптимизации регулятора трансформируется в задачу размещения полюсов дискретной передаточной функции системы.
Рассмотрим одноконтурную цифровую систему, изображенную на рис. 1.63.
?(')-
Рис. 1.63. Одноконтурная цифровая система
Поскольку входной сигнал поступает на импульсный элемент, такая система имеет дискретную передаточную функцию и может рассматриваться в дискретном времени. Эквивалентная дискретная система показана на
рис. 1.64, где P\z)— дискретная модель объекта с экстраполятором:
W(z) = Z{W0(p)Wo(p)},
Т/ *м — » *м —» %{р) >•{<), *м — » *м —» %{р)
В соответствии с равенством Парсеваля [16] этот критерий (при условии сходимости интеграла) можно записать в виде
Рис. 1.64. Эквивалентная дискретная система
Пусть дискретная модель объекта и дискретная передаточная функция регулятора записаны в виде отношения полиномов:
64
Щ,(*)-
WP{z) =
MzWY BP[ZM)
щ • Будем считать, что
m0<n0> mP<np
(1.108)
a. 109)
т.е. объект и регулятор физически реализуемы, причем передаточная функция объекта - строго правильная. Последнее условие исключает из рассмотрения системы с алгебраическими циклами, которые не встречаются в прикладных задачах. Как и для непрерывных систем, полюсы дискретной передаточной функции замкнутой системы определяют ее устойчивость и быстродействие. Часто их (а также соответствующие им движения) называют модами системы. Поэтому задача проектирования может быть поставлена следующим образом: найти цифровой регулятор, при котором полюсы дискретной передаточной функции замкнутой системы расположены в заданной области комплексной плоскости. Такую зада-
x(nT+rT)=eA>Tx[n] + je^T-<r)da-Bu(nT+a)t о
поэтому с помощью П-регулятора всегда можно стабилизировать устойчивый объект (при малом К ). Если объект неустойчив, то может оказаться, что никаким П-регулятором его стабилизировать нельзя.
При изменении К корни характеристического полинома ^з{2) описывают на комплексной плоскости траектории, которые называются корневым годографом. Построив эти кривые, можно попытаться выбрать такое значение К, при котором все корни лежат в заданной области (заметим, что это не всегда возможно).
Пример 1.24. Пусть объект с передаточной функцией
W (z) = *^М о{ } (z + 0.5)(z-0.l)(z-0.3)
требуется стабилизировать с помощью П-регулятора "о \z) = "~. Корневой годограф показан на рис. 1.65.
чу называют задачей модального синтеза ре-\ ^ гулятора.
Регуляторы низкого порядка. В приклад- в ных задачах желательно, чтобы порядок регу-1 в) лятора был наименьшим. Подавляющая часть реальных объектов позволяет получить приемлемые показатели качества процесса управ-! Щ ления при использовании регуляторов не вы-j /и ше второго порядка. Рассмотрим такие регу-j р* ляторы подробнее.
Простейший пропорциональный регулятор (или П-регулятор) представляет собой усилитель "PXZJ — 'K, Тогда характеристический полином принимает вид I MI
A3(z) = KB0{z) + A0{z), ( I110)
Задача заключается в выборе коэффициен-i , . ла
та К так, чтобы все корни полинома ^-з (z) от были расположены внутри заданной области щ комплексной плоскости. Во всяком случае, на они должны быть внутри единичного круга, кроме того, обычно ограничивается степень то устойчивости и колебательность [13,15].
Очевидно, что при К = 0 корни полинома в левой части (ПО) совпадают с корнями'
ис Решение. Характеристический полином Ра
замкнутой системы (1.110) для исследуемого объекта есть
4(z)=^-0.8)+(z+0.5)+(z-0.l)+(z-0.3),
о—о—O-l *-Re
Рис. 1.65. Корневой годограф
Отсюда видно, что объект устойчив в разомкнутом состоянии, при К = 0 корни характеристического полинома расположены в точ-1 ках z = - 0,5, z = 0,1 и z = 0,3, обозначенных белыми кружками. Хорошо видно, что первые два корня при увеличении К сближаются и при К = 0,046 превращаются в пару комплексно-сопряжённых корней. Далее они расходятся, так что при К > 0,76 оказываются за пределами единичной окружности, т.е. замкнутая система становится неустойчивой. Третий корень при
65
К-* оо стремится к точке z = 0,8 (т.е. к нулю передаточной функции оставаясь внутри области устойчивости.
Часто используется также дискретный про-чорщонально-гттеграпъный регулятор (ПИ-уегулятор), передаточная функция которого )авна
М')=к» + Ки _ KnPz + Ки~ КпР
z-\ •1 .(1.111)
Тогда характеристический полином принимает вид 4(zHv+^-**K(*)^-H(%ii2) Для полинома (1.112) можно выделить об-
гасти на плоскости параметров *-пр ~ и, со-«•ветствующие устойчивым системам. Такая фоцедура, разработанная Ю.И. Неймарком, шывается D-разбиением [15].
Пример L25. Пусть для управления объек-ом с дискретной передаточной функцией
P(z) = z-\
спользуется ПИ-регулятор (1.111). Тогда ха-актеристический полином (1.112) имеет вид
А(г) = z2 + 8xz + 50
ъ?8х=КПр-2,8й=\ + КИ-КПр. Применением условий устойчивости (1.70) \+кИ-кПр<\->кИ<кп^ 1+КИ-КПр>КПр-2-1^ КИ>2КПр-4}
\ + КИ-КПр>-КПр + 2-1^КИ>01
Таким образом, область допустимых пар %> К и ограничена прямыми КИ =КПр,
™ис. 1.66. Область устойчивости на плоскости
КИ = 2КПр-4 и КИ =0 (заштрихованная об ласть на рис. 1.66).
В более сложных случаях для поиска области устойчивости используют численные методы.
В промышленных системах широко распространены пропорцгюнально-интегралъно-дифференциальные регуляторы (ПЦЦ-регуляторы). Классический аналоговый ПИД-регулятор имеет передаточную функцию
p\f) Пр р Т^р + 1, (1.113)
где КПр, КИ и КД - коэффициенты пропорционального, интегрального и дифференциального каналов, а Т0- малая постоянная времени инерционного звена. При дискретизации (113) преобразуется к виду [9]
Wp{Z): КЛр+ ~ • + 1 z-y
Пр'
К-пр ~ &и
где у = ет°- Для выбора коэффициентов Kt
КИ и Кд можно зафиксировать один из них (например "? ) и построить на плоскости область допустимого расположения оставшейся пары коэффициентов с помощью D-разбиения.
Задача размещения полюсов. При увеличении порядка регулятора увеличиваются и возможности, которыми обладает проектировщик. В частности, расширяется класс объектов, которые можно стабилизировать, полюса дискретной передаточной функции замкнутой системы (корни характеристического полинома) можно разместить более точно.
Если порядок регулятора увеличить до пР-\, полюса дискретной передаточной функции замкнутой системы почти всегда могут быть точно размещены в произвольных точках комплексной плоскости. Такая задача называется задачей размещения полюсов. Она может решаться как в пространстве состояний [9], так и в частотной области (через передаточные функции).
Рассмотрим дискретный объект и регулятор вида (1.108). Пусть характеристический полином замкнутой системы имеет вид
66
а желаемый характеристический полином задан в виде
4(*) = П(2-4)' |Л|<1, /:=Щ
Требуется выбрать полиномы BP(z)
и •dp \z) так, чтобы выполнялось равенство
во iz)Bp (г) + 4> (z)4> (z) = А\ (z) ( Ш 4 ) Если полиномы 4э (zj и °о \z) - взаимно
простые (не имеют общих множителей), уравнение (114) разрешимо при любом AKZ). Однако необходимо обеспечить еще и физическую реализуемость регулятора, т.е. выполнение условия
Как будет показано, это можно гарантировать, если
п^)-2п°~1 • (1.115)
Исключение составляют системы, в которых дискретная передаточная функция объекта
сократима (полиномы ^o\z) и Bo\z) имеют общие множители).
Полиномиальные уравнения. Уравнение (114) представляет собой линейное полиномиальное уравнение, в котором неизвестными
являются полиномы Щ \z) и Ар (z) Теория полиномиальных уравнений для скалярного случая подробно изложена в [14], ниже кратко излагаются её основные положения.
Решением полиномиального уравнения
(1.114) называется пара полиномов BP\Z) и
•Ар \z) - обращающая его, в тождество. Уравнение (1.114) разрешимо тогда и только тогда, когда наибольший общий множитель полиномов Bp\z) и Ap\z) является делителем желаемого характеристического полинома
. В этом случае оно имеет бесконечное множество решений вида
BP{z) = B,p{z) + A0(z)^(z)>
Л(*)=4(Ю+5о(*№),
где "Р \z) и -Ар \z) - любое решение уравнения (114), a b\z) - нуль или произвольный полином.
Среди всех решений есть такое, для которо
го тр - по ~ 1, оно называется решением м\
нималъной степени относительно ВР \z). Щ этом
пР=тах[т0~\,пА.(г)-п0\^ ( Ш
поскольку по крайней мере два члена в ур$ нении (1.114) должны иметь одинаковую си пень. Существует также решение минимши
ной степени относительно -^р \z), для котор го пр<т0-\ и
mP=max\n0-\,nA(z)-m0Y Если
ищ (1.1Г
то уравнение (1.114) называется правильным, оба минимальных решения совпадают.
Обычно полиномиальное уравнение <ж дится к системе линейных уравнений ОТНОЙ }
тельно неизвестных коэффициентов. Пример 1.26. Требуется решить уравнение ,
( BP(z)(z + 2) + AP(z)(z2 -z + l) = z + 0.5.(1.11!
Р е ш е н и е . Поскольку условие (1.117) и полняется, уравнение - правильное и мож ;
искать (единственное) минимальное решение г
виде . BP(z) = a,z + a0j AP(z) = p0j
где ai , Оо и Ро — неопределенные коэффш с
енты. Приравняем коэффициенты при один; ковых степенях z в левой и правой чаи (1.118): ' j
z°:2a0+p0=0.5; ] z1: 2 a , + a 0 - p 0 = l ; z 2 : a , + p 0 = 0 , H
или в матричной форме
где штриховые линии отделяют подматриц относящиеся к коэффициентам полино* Р Вр [z) и Ар (z ) р е ш а я ЭТу систему, получия Т1
^ ( z ) = 0.214z +0.357^ Л , ( г ) = -0.214.
"2 0 Г а0 "0.5"
1 2 -1 а, = 1
_° 1 Г; с 0
67
Физическая реализуемость регулятора. Проверим, какие решения полиномиального равнения (1.114) соответствуют физически эеализуемым регуляторам, для кото-)ЫКГПр йпр.
Будем рассматривать решения минималь-юй степени относительно ВИ (z) За исключе-даем особых случаев, можно считать, что m?unP-\t Сначала предположим, что урав-гение (1.114) правильное, т.е.,
BP(z) = z + 0.75, AP(z) = \,
так что регулятор Wp (z) = z + 0.75 физически нереализуем.
Пример 1.27. Многие реальные технические объекты, например, привод жесткого диска компьютера, могут быть приближенно описаны моделью двойного интегратора с передаточной функцией
W0{P) = ~ .
ПА-Лг)<т0+П0-
Учитывая, что для дискретных моделей ре-яьных объектов то<по, из (1.116) находим
пр <т0 -\<п0 -\ = тР.
Применить метод размещения полюсов в задаче синтеза цифрового регулятора для управления таким объектом.
Решение. При использовании фиксатора нулевого порядка
\~е-рТ
Таким образом, пе <тр к регулятор не яв-[яется физически реализуемым.
Рассмотрим второй случай, когда уравне-ие (1.114) - неправильное. Тогда из (1.116) ледует
ЛЗ(')
Таким образом, для того, чтобы ДПФ регу-ятора была правильной, а регулятор - физи-ески реализуемым, достаточно выполнить словие
Пр > П0 - 1 > ГПр ,
ткуда следует (1.115). В особых случаях (при специальном выборе
олинома "з{2)) регулятор может оказаться изически реализуемым и при нарушении ус-овня (1.115). Например, пусть B0[z) = \ и {,{z) = z2 -0.25. Выбрав A] (z) = z2 +0.25, аходим решение уравнения (1.114):
BP(z) = 0.5, Ap(z) = \,
)ответствующее физически реализуемому аудитору Wp (z) = 0.5 Е с л и ж е ВЬ1брать
дискретная передаточная функция приведенной непрерывной части равна
U z \ р J z V / 2(z-l/ Откуда
BP(z) = T2(z + l), AP(z) = 2z2 -4z + 2.
Выберем желаемый характеристический полином
4{z)=z(z-0.5)(z-0.25)=z3-OJ5z2+OA25z.
Минимальное решение полиномиального уравнения (1.114)
Bp{z)f(z+\)+Ap(z)(lz2 -Az+2)=£ -Q75Z2 +0.125
имеет вид
^ ) ^ ( 2 3 * - 1 7 ) , Л ( - ) = -
и соответствует регулятору
Г 17\ z + —
V 32у
A*3(z) = z2 +z+ 0.25,
:шение (1.114) минимальной степени относи-тно Bp{z) имеет вид
WP{z) = 16Г -(23з-17)
z + -]7 32
(1.119)
68
Поскольку полином ^3\z) был выбран в соответствии с условием (115), этот регулятор физически реализуем. Легко проверить, что при выборе А3 (z ) = (z-0.5 )(z-0.25) (с нарушением (1.115)) получаемое решение соответствует физически нереализуемому регулятору.
• - •
Размещение полюсов в плоскости С Практически для всех моделей реальных объектов функция WP (z) _ C Tp0 r o правильная (степень ее числителя меньше степени знаменателя), так что функция w
P\},) = Vyp\z)\^ содержит множитель С, в числителе:
wPW= т4Й (1.120)
где Вр\С) и ^Р\ь) - полиномы. В этом случае использование оператора запаздывания Ф~2 (вместо z) позволяет всегда получать физически реализуемые регуляторы [10].
Пример 1.28. Для рассмотренного выше двойного интегратора
МО= 2(<Г-1)2
это дает
ВР(С) = Т2С{С + 1), АР(С) = 2С2-4<; + 2.
Выберем желаемый характеристический полином с корнями в точках X, = 2и % =;4:
A;{£) = {Z-2)(C-4) = C2-6£ + S.
Решая уравнение
В0(£)ВР(£) + А0{£)А1,(£) = А;{С),
находим
17
Поскольку Ар (0) •*• 0 s т 0 такой регулятор, имеющий дискретную передаточную функцию
-(23Г'-17) —Ц-(23-17С) : wP(C)=4C - 1 6 Г
4 + —С 8 Ъ 32
физически реализуем. Заметим, что при замене Ф ~z он совпадает с выражением (119). Соответствующий характеристический полином в плоскости z равен
Al(z) = z(z-0.5)(z-0.25). • Таким образом, можно отметить две осо
бенности решения задачи размещения полюсов в плоскости С,:
1. При выполнении (1.120) всегда получается физически реализуемый регулятор. Поэтому далее мы будем использовать в основном методы синтеза в плоскости С,.
2. Если порядок желаемого характеристического полинома •"з\Ф) выбран ниже, чем 2 по ~ 1, часть полюсов дискретной передаточной функции замкнутой системы автоматически размещается в точке z - 0. За исключением особых случаев, их число равно
2 " о - 1 - " , ; ( г ) -
1.5.4. Апериодическое управление
Размещение полюсов. Представляет интерес особый случай, когда все желаемые полюса в плоскости z располагаются в точке z = О, т.е. A3\z)-z _ г д е ~ПА'3(г). При этом переходные процессы в цифровой системе заканчиваются за конечное время, что принципиально невозможно в линейных непрерывных системах.
При переходе в плоскость переменной С, характеристический полином принимает вид
A'3(C) = Bp(t)B0{C) + Ap{t)A0(£),
так что дискретная передаточная функция замкнутой системы на рис. 57 равна
КЬ) \+wp{C)w0{c)
Пусть
•МсЫЬ
Ф{С)=вРв0=ьтст +bmSr-' +...+К+К
69
где bl\i = \,-,N) _ коэффициенты полинома. Это значит, что замкнутая система представляет собой фильтр с конечной импульсной характеристикой (КИХ-фильтр). Выход системы может быть вычислен как
y[n] = bmg[n-m] + bm,xg[n-m + \] + ...
... + blg[n-l] + b0g[n).
При подаче на вход единичного дискретного импульса или ступенчатого сигнала переходный процесс полностью заканчивается за N тактов. Это явление не имеет аналога для непрерывных систем. Такое управление иногда называют апериодическим (в англоязычной литературе — deadbeat control) [7,8,9].
Пример 1.29. Построим апериодический закон управления для двойного интегратора с фиксатором нулевого порядка:
1 „ . , ч \-е-рТ
%(р)-рТ^эо(р) = р
Дискретная модель приведенной непрерывной части имеет вид
Wo(z) = Z{Wo(p)W30(p)} = 2(z-lf
%(£) = 2(С-1) 2
Апериодический регулятор определяется в оезультате решения задачи размещения полю-:ов при выборе . Соответствующее юлиномиальное уравнение
вр{ф2?+т2с)+Мфс2-4С+2)=\
шеет минимальное решение
1 3
соответствующее регулятору
W, ю= ^ ( 5 - 3 ? ) ^ ( З Г ' - З )
Ж 4
На рис. 1.67 показаны переходные процессы в цифровой системе при апериодическом управлении с периодами квантования 2 , 0 = Т и1 = 7\
А 100 Г = 0.2 50 - Т = \
-50 -100
щ I
3 4 5 * • !
б
Рис. 1.67. Апериодическое управление: а - сигналы выхода; б - сигналы управления
Можно показать, что при уменьшении интервала квантования в m раз значение сигнала управления на первом шаге увеличивается в 2пг раз, поэтому при апериодическом управлении нежелательно использовать малые интервалы квантования.
Процессы минимальной длительности. Рассмотрим дискретизированную цифровую систему, в которой модели элементов заданы передаточными функциями от переменной t, (рис. 1.68).
МО А"1
Рис. 1.68. Дискретизированная система
Пусть дискретная модель объекта с экстра-полятором описывается несократимой дискретной передаточной функцией
М<г)= Bolt) А, (СУ
(1.121)
где В0 (С) и Аз (<f) - полиномы, а входной сигнал имеет изображение (^-преобразование)
G(C) = Во (О МСУ
где BG (С) и Аз (С) ~ полиномы. Требуется построить регулятор, обеспечи
вающий затухание дискретного сигнала ошибки 3[п\ за минимальное время. Далее излагается решение этой задачи, основанное на идеях монографии [14].
С, -преобразование последовательности е[п\ имеет вид
70
т- Ш uwP{C)w0(£)
BGBP{C)B0{£) (1.122)
Для того чтобы сигнал ошибки стал равен нулю за конечное число тактов, необходимо и достаточно, чтобы Изображение НО было полиномом, т.е. числитель в (122) должен нацело делиться на знаменатель. Кроме того, полином Е\С) должен иметь минимально возможную степень, при этом характеристический полином замкнутой системы
А;(С)=ВР{С)В0{С)+АР{С)МС)
должен быть устойчив. Пусть - наибольший общий полино
миальный множитель полиномов МО и
Аз \0, т.е.
где AQQ (£") и АО0 [С) ~ полиномы, не имеющие общих множителей.
Будем предполагать, что полином s\£) ус
тойчив. Выделим в полиномах -До (О, 4,0(О и -ДДъ) устойчивый и неустойчивый сомножители (корни которых расположены соответственно вне и внутри единичного круга в плоскости Q:
в0{с) = К(С)МО, А0(С) = МОМО,
BG(C) = B+C{C)B-(C)_
(1.123)
Здесь верхние индексы « + » и «-» обозначают соответственно устойчивые (все полюса которых расположены вне единичного круга) и строго неустойчивые полиномы (все их полюса находятся внутри единичного круга). Такое разложение полиномов на сомножители называют факторизацией.
Подставив (1.123) в (1.122), после сокращений получаем
40= AQQ уВрВ0В0 + APSAQAQ)
Чтобы это выражение было полиномом, необходимо сократить множитель Лгов знаменателе. Это возможно только при выборе
MO = AGoK,
где МО - полином. Тогда
"G^G-^GQAJ-^O 40= ВРВ*В~ + APb0sA^A^
Учтем, что в знаменателе этого выражения стоит характеристический полином замкнутой системы, который должен быть устойчивым. Следовательно, он не может сократить неустойчивые полиномы BG и А^ . Тогда получаем
Ц*Щ =t(BpB+oB-+APb0sA+
oA^) ( i . i 2 4 } l i К
е ш а Ф 31
HI
тс щ
где £(0 ~ неизвестный полином, степень которого должна быть минимальна. Заметим, что выбрав
%lC) = AJ-e AG0{£) = B+oe, (1.125)
полиномы, где 0(0 и s(0 ~~ некоторые можно сократить устойчивый множитель A^BQ В левой и правой части (1.124), так что
B^ = 4{B-oe + APsA^e).
Поскольку дискретная модель (1.121) несократима, полиномы Ва и sA0 н е Могут имел общих множителей. Кроме того, неустойчивы! полином Щ и устойчивый '"-р также не имея общих множителей. Следовательно, всегда
можно выбрать полиномы ®\Q) и s\h) ВД чтобы выполнялось равенство
B-e + AcsA^e^B* (].&\
и полином £\ь) имел минимальную степень
за то Ьу ус
ре, (И
л» дга
тг=щ-\.
При этом ^ = б , так что изображение ош» ки имеет вид
E{C) = B-GASs,
ЧИЕ
щ
71 а длительность переходного процесса (в тактах) равна
N = mm=nR_e+n0+in0-l.
Как видно из последнего выражения, быстродействие системы ограничивают неустойчивые нули и полюса дискретной передаточной функции объекта управления Ми) , а также неустойчивые нули изображения входного сигнала " 4 W .
Используя (1.125), получим ДПФ регулятора в виде
МО- е & Азое Во
(1.127)
Характеристический полином замкнутой системы устойчив, поэтому замкнутая система устойчива и регулятор физически реализуем. Как следует из (1.127), регулятор компенсирует устойчивые нули и полюса объекта управления. Такие регуляторы называются компенсационными [7]. Дискретная передаточная функция разомкнутой системы сократима, поэтому в системе возможны скрытые колебания. Компенсация допустима только для устойчивых нулей и полюсов, поскольку сокращенные нули и полюса модели объекта становятся корнями характеристического полинома замкнутой системы. При компенсации неустойчивых множителей вся система в целом будет неустойчива при ненулевых начальных условиях.
Если полином W0{£) неизвестен, для определения полиномов в(£) и е(£) вместо '126) используют уравнение [14]
3>0 + 4гОл£е = 1.
Тогда кратчайший переходный процесс, юстижимый при неизвестном wo(C), имеет шительность
N = mG ~п~0 -т0 - 1 .
Пример 1.30. Построим регулятор, обеспе-ивающий минимальную длительностью переодного процесса, при
Дискретные модели непрерывной части и входного сигнала имеют вид
где
Тогда yl=eT ~Т-\, у0=Тет +1-ет.
i?0(C) = C(Y,C + Yo),
4,(g=(c-i)(c+0' Bc{Q = -\,AG{Q = t>-\.
Учитывая, что у0 > у, > 0 и ет > 1 при всех Т > 0, находим
Решая уравнение (126), получаем в = - 1 и е = 1, что соответствует регулятору с дискретной передаточной функцией (1.127)
MQ- С,-* еТ-1 У,С + Уо Го?" +7i
Регуляторы, построенные по этим формулам при Т- 0, 2 и Т= 1, имеют вид
Г = 0.2: WP(Q =
Т = \: WP(C,) =
53.5(С'-0.819)
С"1 + 0.936 '
2.72 (С1--0.368)
С + 0 . 7 1 8
Так как Е(£) = 1 , сигнал ошибки совпадает с единичным дискретным импульсом 8\п\, и переходный процесс в моменты квантования заканчивается за 1 такт.
На рис. 1.69 показаны переходные процессы в замкнутых системах при подаче на вход единичного ступенчатого сигнала.
По графикам видно, что при уменьшении интервала квантования мощность управляющего сигнала возрастает. Переходный процесс в моменты квантования действительно заканчивается за 1 такт, однако между этими моментами наблюдаются скрытые колебания,
72
вызванные компенсацией нуля модели объекта. На плоскости z соответствующий нуль
У - 1
1.5
1 (1
(<)
Л'л г = 0 '2 Т = \ & i
100 50 0
-50 -100
k ,Г = 0.2 , П п п „ г - 1
0.5
& i
100 50 0
-50 -100 ДОМ*
0 1 2 3 а
4 5 * '
& i
100 50 0
-50 -100 1 2 3 4 5 *
Рис. 1.69. Переходные процессы минимальной длительности:
а - сигналы выхода; б - сигналы управления
У расположен в точке z = — - на отрицательной Го
части вещественной оси. Такому множителю соответствует выраженный колебательный процесс, который и наблюдается на рис. 1.69.
Чтобы избавиться от нежелательных скрытых колебаний, надо отказаться от компенсации «опасного» нуля, включив соответствующий множитель в В~р:
Тогда минимальное решение уравнения (1.126) имеет вид
' ( C ) -Y.+Yo
т=-Y.+Yo
-С+1
и соответствует регулятору с дискретной передаточной функцией (1.127)
wPm- c-v е'С - 1 Y.C+Yi+Yo ( Y O + Y I ) . C + Y,
Хотя в этом случае переходные процессы заканчиваются не за 1 такт, а за два, скрытые колебания отсутствуют (рис. 1.70).
m 2.5 2.0 1.5 Т = 0.2 10Г7?Г-051/ Т=\ 0 1 2 3 4 5
а •*-t
Рис. 1.70. Переходные процессы без компенсации нуля:
а) сигналы выхода; б) сигналы управления
Итак, при использовании апериодического управления:
- все корни характеристического уравнении замкнутой системы размещаются в начале ко ординат на плоскости z;
- переходный процесс в моменты квантова ния заканчивается за конечное число тактов;
- при малых интервалах квантования тре-буется большая мощность управления;
- при компенсации нулей и полюсов объе] та могут возникать скрытые колебания.
1.5.5. Синтез регулятора по эталонной модели
Системы с двумя степенями свободы Рассмотрим дискретную систему с двумя ре гуляторами (рис. 1.71). Иногда такие системк называют системами комбинированного управления или системами с двумя степеням свободы (англ. - two-degrees-of-freedom system 2-DOF system).
SfiiM
Рис. 1.71. Дискретная система с двумя степеням» свободы
Регулятор состоит из двух блоков - регулятор! WPQ (£) в контуре управления и корректи
рующего регулятора WP\ (<£), который обрабатывает только входной сигнал.
В классической схеме (рис. Щ Wpl (< ) = Wpo (^), что ограничивает возможности управления. Дело в том, что регулято( должен решать две задачи. С одной стороны необходимо обеспечить достаточный запас устойчивости контура, требуемый уровень давления помех и внешних возмущений другой стороны, желательно получить качественные переходные процессы. Часто нево! можно удовлетворительно решить обе задачи t помощью одного регулятора, и разработчи» вынужден выбирать компромиссное решение,
В схеме на рис. 1.61 каждая из упомянут» задач решается с помощью отдельного per)*
тора. Блок "/>о (С)) обеспечивает устойчиво» контура, подавление помех и компенсации внешних возмущений. Регулятор Wn (С) ^
(
73 жит для того, чтобы повысить точность системы в установившемся режиме и получить переходные процессы с требуемыми характеристиками.
Полиномиальный алгоритм синтеза регулятора. Представим передаточные функции объекта и регуляторов в виде отношений полиномов:
вп (С) К (С) т> где полином А(£) - наименьшее общее кратное знаменателей дискретных передаточных функций цифровых регуляторов. Тогда схема на рис. 64 может быть в полиномиальном виде (рис. 1.72).
М РШ -КЗ-» !М<г) * l>a(i)/МО
вп(() *•
Рис.1.72 Полиномиальное представление структурной схемы системы
Пусть задана некоторая желаемая устойчивая передаточная функция замкнутой системы (эталонная модель)
w (г) = Вж Ш
где Вж (<£) и Аж (^) - полиномы, причем полином АЖ(С^ - устойчивый. Требуется выбрать полиномы Вро (С), ВР1 (С,) и A{Q так, чтобы дискретная передаточная функция Ф(С) замкнутой системы на рис. 1.69 совпадала с WX(Q, т.е.
или ВпВ0 Вж
ВпВо+ААо А ж (1.128)
Кроме равенства (1.128), при разработке алгоритма управления надо учитывать дополнительные ограничения:
- замкнутая система должна быть устойчи-
- регулятор должен быть физически реализуемым;
- для повышения точности необходимо обеспечить большой коэффициент усиления контура на низких частотах.
Если полином В0 (£) имеет неустойчивые множители, они не могут сократиться в левой части (1.128), поэтому должны входить в Вж (С,). Представим полином В0 (£) в виде В0((;) = В+
0В-, где ВЩ и В' (С) обозначают устойчивый и строго неустойчивый сомножители. Тогда требуется выбирать полином Вж (С,) в виде
вж(£,) = вовжо, (1.129)
где Вжо — некоторый полином. При этом условие эквивалентности (1.128) запишется в виде
ВпВд В ВР0В+
оВ-о+ААо
'ж
*ж (1.130)
Уравнение (1.130) может иметь множество решений. Например, в ряде случаев возможно управление без обратной связи (при ВР0 = 0), или управление с обратной связью по ошибке (при Вп - Вро). Далее излагается метод синтеза регулятора с двумя степенями свободы, основанный на подходе работы [9]. При выполнении (1.130) он позволяет гарантировать выполнение всех требований.
Если полином Вд не имеет общих множителей с Вжо, он должен быть делителем знаменателя в левой части (1.131). Однако он не может быть делителем ^ ж , поскольку дискретная модель объекта несократима. Следовательно, полином А должен делиться на В*0. Кроме того, для повышения точности и обеспечения астатизма желательно включать в состав регулятора дискретное интегрирующее звено. Поэтому принимаем
л(с) = я0+(с-1)Ч, (1-131)
где / — натуральное число (порядок астатизма), а Д, (С,) В+
0 - некоторый полином. Тогда из (1.130) после сокращений получаем
В р\ В жо ВР0Во-+{С,-1)' А,Ао Л
74
что эквивалентно системе полиномиальных уравнений
ВРйВ-0 + ( ; -1) ' \А0 = Axq, (I.i 32)
относительно Вро, ВР] и Д,. Здесь q(£)-устойчивый полином, который можно выбирать произвольно. Заметим, что полином Вх может быть сразу найден из первого уравнений в (1.132). Второе уравнение всегда разрешимо относительно полиномов В0 и AQ , если полиномы В~ и (^ -1) не имеют общих множителей.
Осталось ответить на вопрос: будет ли получаемый регулятор физически реализуемым? Дня дискретных моделей реальных объектов выполняется (1.120), т.е. В~0 (0)= 0. В силу устойчивости полиномов Аж и q имеем Аж (0)<7(0)*0. Тогда из второго уравнения в (1.132) следует, что Д, ( 0 ) * 0 и с учетом (1.131) получаем -4(0)^0, т.е. оба регулятора физически реализуемы.
Это говорит о том, что использование переменной С, позволяет автоматически получать физически реализуемые регуляторы при единственном ограничении (1.131).
Заметим, что алгоритм решения этой задачи из [9], использующий вычисления в z-плоскости, требует специальных мер для обеспечения физической реализуемости регулятора. Таким образом, при выполнении условия (1.131) алгоритм аналитического синтеза регулятора на основе эталонной модели можно записать следующим образом:
1. Факторизовать полином
в0{$=в№в№. 2. Задать желаемую Д П Ф замкнутой систе
мы вида Вж
Аж
в-пв 'оджо лж
3. Выбрать порядок астатизма системы / . 4. Выбрать устойчивый полином qfe). 5. Найти решение полиномиального урав
нения ВРОВ~О +(С-0 'A>A 0=AMq (133)
относительно полиномов "РО (С) и 4 (C) . 6. Построить дискретные передаточные
функции регуляторов
В„ ЩМ=^ вп А 1 Щ
А 5 - (^-1)Ч '
(Щ д [ в
п р
(135)
У
Выбор вспомогательного полинома 9(C), который иногда называется многочленом наблюдателя [9], не влияет на дискретную передаточную функцию замкнутой системы от входа g к выходу у. Важно, чтобы он был устойчивым, поскольку его корни являются корнями характеристического полинома замкнутой системы. В большинстве случаев достаточно выбирать q(C,) = 1 .
Тем не менее, полином q влияет на другие п
передаточные функции системы, например, на дискретную передаточную функцию по возмущению, приложенному к входу объекта управления (рис. 1.73).
гд
Рис. 1.73 Дискретная система с возмущением I
Передаточная функция замкнутой дискретной системы от в х о д а / к выходу у равна
на кв
т-ъ АВР гд PC В0ВР + ААР
Используя (1.134) и (1.133), получаем
Мс-ОЧ МО= АЖЧ
Следовательно, корни полинома g являются полюсами Wf (С,).
П р и м е р 1.31. Рассмотрим пример синтез! регулятора с д в у м я степенями свободы. Объект управления (электродвигатель постоянного тока) описывается передаточной функцией
С01
pei
а ; pet
75
W0{p) = P(P + 1)'
Требуется построить цифровой регулятор с двумя степенями свободы и фиксатором нулевого порядка, обеспечивающий переходные процессы, соответствующие эталонной непрерывной модели
ЩО{Р) = - ^ р + р
р = 1.5.
Построим дискретную модель объекта управления:
wo(;hz{wo(p)H0{p)}\ K(z-a)
(,-l)(z-p) 2 = C ,"(C-I)(P;-I) :
где
К = е'т-\ + Т, Р = е~т, а = 1-me) l-e~T +Т
Можно показать, что при Т > 0 а < 1, и тогда
Л(С) = (С-1)(РС-1), %(Q=-*(aC-i), я;(с)=С-
Эталонная дискретная модель может быть найдена с использованием метода фиктивного квантования с фиксатором нулевого порядка
Bx{Q=z{wm{p)w30{P)}J-^^,(U36)
где "эо I/7) - передаточная функция фиксатора нулевого порядка, и d = в'р' < 1. Тогда
яж(С)=0-<0С,лж(СН-^.
Поскольку полином Лж содержит i?^ как сомножитель, условие (1.130) выполнено и 4о (C)=i-rf.
При выборе 1 = 0 и ?(С) = 1 минимальное решение уравнения (1.133) имеет вид
*M(C) = - K + l + P-rf, 4 ( С ) = 1, (1.137)
а дискретные передаточные функции блоков Регулятора вычисляются как
М0= -pc+.i+p-t/ ^(1-оС)- '
1-йГ A-(l-oC)
(1.138)
При этом будет скомпенсирован нуль дис
кретной модели объекта в точке С,——. При а
уменьшении Т этот нуль стремится к точке £ = - 1 , что соответствует колебательному процессу.
Компенсировать его нежелательно, поэтому он должен быть включен в множитель В„:
Для того, чтобы выполнялось условие (1.130), можно выбрать эталонную модель в виде
аС-1 _(1-^)Са^-1 "&(Cb4V(0- а-1 (l-O а-1 ' где дополнительный множитель а - 1 в знаменателе выбран так, чтобы сохранить коэффициент усиления для постоянного сигнала, т.е.
Тогда получаем регуляторы
у.С + Уо
К (Q
К(1-а)(\ + ^) \-d
£(1-а) (1 + д4) (Г 139)
где уь уо и д. определяются решением уравнения (1.134). На рис. 1.64 показаны переходные процессы в системах с компенсацией нуля (рис. 1.74, а) и без компенсации (рис. 1.74, б) при 5 , 0 = Т.
С). Я')
Л л ' «
е('М«) 2
1
]РГ^ /
/' Я')
~& 4 6 8 10
Рис.1. 74. Переходные процессы: а - с компенсацией нуля, б - без компенсации нуля
76 По графикам видно, что компенсация нуля
приводит к скрытым колебаниям, которые нежелательны.
•
1.5.6. Синтез регуляторов с помощью билинейного преобразования
Алгоритм синтеза регулятора. Алгоритм синтеза регулятора с использованием билинейного преобразования может быть описан в виде следующей последовательности шагов:
1. Построить дискретную модель объекта с
экстраполятором ^п\2)-^\уо\Р)^Ф\Р)). 2. Применив w-преобразование (1.138) к
Wn\z), построить передаточную функцию эквивалентной псевдонёпрерывной системы
wiffl, 3. Построить непрерывный регулятор
WP (w) ддя эквивалентной псевдонепрерывной системы.
4. Применив преобразование Тастина (1.102) к передаточной функции построить цифровой регулятор.
Такой подход позволяет использовать все методы теории непрерывных систем, однако является приближенным. Во многих случаях синтез на основе билинейного преобразования приводит к тому же результату, что и переоборудование непрерывного регулятора с помощью преобразования Тастина. Однако использование билинейного преобразования позволяет более точно учитывать свойства дискретной системы в области высоких частот.
Использование ЛАФЧХ. В инженерной практике широко используется частотный метод синтеза корректирующего цифрового регулятора с помощью логарифмической амплитудно-фазовой частотной характеристики. Ниже излагается общий подход к выбору желаемой логарифмической амплитудно-фазовой характеристики для цифровых систем [5].
Логарифмическая амплитудно-фазовая характеристика для частотной передаточной функции (рис. 1.75) строится в плоскости псевдочастоты.
Рис. 1.75. Запретные зоны для логарифмической амплитудно-фазовой характеристики астатических
систем
Логарифмическая амплитудная частотная характеристика (сплошная линия на рис. 1.75) и логарифмическая фазовая частотная характеристика (штриховая линия там же) определяются зависимостями
20 \%А=20 lg|*T ( Д ) | ? ср = arg W* (jX).
Учитываются два вида ограничений: требуемая точность и запас устойчивости (точнее, показатель колебательности М).
Требования к точности определяются по эквивалентному гармоническому воздействию. Пусть входной сигнал имеет вид
где gmax и OD - известные амплитуда и угловая частота сигнала, a \j/ - неизвестная фаза. Первая и вторая производные такого сигнала имеют вид
g'(f) = -ffl2gmaxsin((0* + \)/)5
а их амплитуды равны
о max — ш о т а х , огаах — отах .
Предположим, что заданы ограничения на максимальную первую и вторую производные сигнала, smax и «max. Тогда эквивалентное частота (т.е., частота гармонического воздействия с теми же параметрами) и амплитуда вычисляются как
g" (g'* f "Э — .* 0 = — —
ст '• 5max »* о S
о max
2 Если и э < ~ , то частота практически сов
падает с псевдочастотой и можно принять ^э = ю э . При синусоидальном входном сиг»
ле можно выразить амплитуду ошибки через частотную характеристику как
81 = 8* 8п 6га
1 + W*(j(a3) 1 + Г ( Д э ) Г ( Д Э )
предполагая, что г \^э)\>>^. Поэтому, если задана допустимая максимальная ошибка 8шах, запретная зона для ЛАЧХ определяется точкой Л* с координатами
А Хэ, 20 lg O I T
81 max J
Для астатических систем логарифмическая амплитудная частотная характеристика должна проходить выше запретной зоны, которая определяется двумя пересекающимися в точке Аь прямыми с наклонами 20 дБ/дек и 40 дБ/дек (рис. 69). Построение аналогичных зон для других типов систем рассмотрено в [5].
Для того, чтобы ограничить показатель колебательности М замкнутой системы, строят запретные области для логарифмической фазовой частотной характеристики, в которые она не должна заходить. Они соответствуют запретным кругам для годографа Найквиста (см. рис. 45, б). Как следует из рис. 45, б, на фазовую частотную характеристику накладываются ограничения в диапазоне амплитуд от
М М 7ГТ ДО I/ 1 • Для любого М и заданной М + 1 М - 1 амплитуды А требуемый запас по фазе вычисляется как
А2+с r| = arccos- 2Ас ' (1.140)
77
М2
где <- - М2 _ л - смещение центра запретной круговой области на рис. 45, б от мнимой оси.
В целом последовательность построения желаемой логарифмической амплитудно-фазовой характеристики состоит из следующих шагов:
1. Используя известные характеристики входного сигнала rmax и гтах, определить час-тоту и амплитуду эквивалентного гармонического воздействия; построить точку Ак и запретную область для логарифмической амплитудной частотной характеристики.
2. Выбрать интервал квантования, соответствующий условию
2 А,0 « -ТА
3. Определить частоту среза %с, учитывая требования к быстродействию системы и выбранный интервал квантования.
4. Выбрать желаемый показатель колебательности М и построить запретную зону для логарифмической фазовой характеристики по формуле (1.140), считая, что наклон логарифмической амплитудной частотной характеристики в районе частоты среза составляет 20 дБ/дек.
Дальнейший синтез сводится к стандартной процедуре коррекции, применяемой в теории непрерывных систем управления: логарифмической амплитудной частотной характеристики корректирующего последовательного регулятора строится как разница между желаемой и исходной логарифмической амплитудной частотной характеристики. Полученный регулятор преобразуется в цифровую форму с помощью преобразования Тастина.
78
1.6. Математическое описание микропроцессорных систем автоматического управления
1.6,1, Модель цифровой системы управления
Введение микропроцессора в контур управления делает систем цифровой. Цифровая ©иетема управления может реализовать не только традиционные типы регуляторов, но и формировать более сложные алгоритмы управления (адаптации, оптимизации, робаст-ные, интеллектуальные).
Выше было отмечено, что в цифровых системах управления непрерывные сигналы квантуются по времени и по уровню (рис. 1.3, в), т.е. они являются релейно-импульеными сие-темами. Обобщенная модель цифровой системы управления приведена на рис. I.??.
V -»j nag |—Д-> т -*i
Рис. Ь77% МЫмк цифр»«1 системы
Квантован» по времени с дискретностью Г (дашкретшацю) производится мультиплексором» кметрукшию входящим в состав анамо-гово-цифрового преобразоватеда АЦЦ» а квантов*»© но уровню - собственно аналогово* цифровым преобразователем. Оцифрованный « г а м обрабатываете» микропроцессором МО по определена©! прмрамме» затем преобразуется цифро-аналоговым преобразователем ЩШ в «шогшую форму и поступает в непрерывную часть системы ШЧ, в качестве которой выступает общ» управления.
Приведенная обобщенная модель цифровой шстемы м ш быт* ремизов»», по-разному в шжтттт т решаемой задачи управления, харш^рстяк объекта и щ д ш факторов. Не-юащрш т возможных видов функциональных схем одаюмерных сштем приведены на рис
J^^^-Q^^ &(') я к
Рис. 1.78. Структурные схемы одномерных цифровых систем управления с обратной связью:
а - цифровой, б - с аналоговой
На схемах приняты следующие обозначения: АЦП - аналогово-цифровой преобразователь, ЭВМ - ЦВМ или цифровой регулятор, ЦДЛ - цифро-аналоговый преобразователь, Э - экстраполятор (обычно нулевого порядка), ИМ - исполнительный механизм, ОУ - объект управления, Д - датчик.
Схемы отличаются только положением внешнего сравнивающего устройства. На первом рисунке сравнение задающего сигнала с сигналом обратной связи выполняется в цифровом виде непосредственно в самой машине. На втором рисунке имеется специальное аналоговое внешнее сравнивающее устройство.
Суммарное время преобразования сигнала из аналоговой формы в цифровую, его обработки в микропроцессоре и обратного преобразования в аналоговую форму составляет задержку в канале управления т». Ее величина обычно гораздо меньше постоянных времени исполнительного устройства и объекта управления, поэтому полагают» что АЦП и ЦАП работают синхронно. Представляя дискретизато-ры на входе и выходе идеальными импульсными элементами, микропроцессор — дискретным фильтром, а квантователи по уровню -многоступенчатыми нелинейными элементами» можно представить структурную схем)* цифровой системы в виде, показанном иа рис. 179.
- £ - -*Oi^^@-*@Hsr- : , 0 L i 4SH4^r J I >
Рис I B . < I CrpjllCTJBMSS; СЛ t'Ml
При большой разрщдаости ЛЦЦ ш ЩШ эффект квантования по урока» «ист© метен© ее
В этом ©пуча® «гвобвцеапввя схема енешш упрщдшш еаоднжж к
еявме е шшютудрой мздушшрей ш шющшю-
79 ной частью в виде линейного дискретного фильтра ЛДФ и показана на рис. 1.80.
нч\-г*
Рис. 1.80. Обобщенная модель цифровой системы без учета квантования по уровню
Цифровая система может быть связной многомерной, если осуществляется управление многосвязным объектом или несвязной многомерной, если осуществляется управление группой несвязных одномерных объектов. К первой группе можно отнести, например, гидрогенератор, в котором напряжение, частота и давление связаны между собой. Ко второй группе можно отнести многозонные печи нагрева, в которых можно рассматривать управление, как многоканальное. Здесь система распадается на совокупность одномерных систем, т.е. основой для исследования служит одномерная система.
1.6.2. Методы исследования дискретных систем управления
В современной теории управления существует три группы методов исследования цифровых систем [1-11]:
- методы, основанные на приближенном сведении цифровой системы к чисто непрерывной системе, при этом игнорируются все процессы, связанные с квантованием и наличием цифровых элементов;
- методы, которые сводятся к исследованию дискретной модели цифровой системы, при этом рассматриваются только значения сигналов в моменты квантования и игнорируются все процессы между этими моментами;
- точные методы исследования, при которых цифровая система рассматривается в непрерывном времени без каких-либо упрощений и аппроксимаций.
При использовании методов первой и второй групп гибридная непрерывно-дискретная система фактически подменяется другой, более простой, что может привести к качественно неверным результатам. С другой стороны, точные методы проектирования, разработанные в [10,11], используют весьма сложный математический аппарат и поэтому пока не получили широкого распространения в инженерной практике. Их применение особенно важно в сложных случаях, например, при относительно
больших интервалах квантования. Поэтому в настоящей книге рассматриваются только методы первых двух групп.
1.6.3. Передаточные функции звеньев цифровой системы автоматического
управления
Передаточная функция микропроцессора. Как было показано в первом разделе передаточную функцию любого звена в форме z-преобразования можно представить, как отношение выходной величины к входной, взятой в цифровой форме:
где G(z) И Y(Z) - z-преобразования решетчатых функций входа gfw?7] и выхода ^[иГ],
W(z) = b„+bm_,zl +...+ L
ап+ап-х* +-- + a0z (1.142)
причем m<n. При m = n разделив передаточную функ
цию на z", получим
W{z)J°+b>Z~\+--+b"Z~n . (1.143)
Подставив в выражение (1.141) передаточную функцию (1.143), получим
Щ =W[z)-G{z) = 4+^'+---Ч^г ) ; (1Л44) w w w c^+c^z'+.-.+ay откуда
Y(z)(a0+a]z-l+...+ anz"')^
= G{z)(b0+b^+...+ bnz-).
Переходя в действительную область, произведем замену
Y(z)->y[nT], a0Y(z)->aQy[nT], alY{z)z-,^a]y[(n-\)T]
и т.д. Тогда в итоге получим разностное уравне
ние
80
где
а0у[пТ]+а1у[(п-1)т]+...+ а„у[(п-т)Т] =
= Ь05[пТ] + Ь,б[(п - 1)Г] +...+Ьпё[(п -т)Т],
- сигнал ошибки, являющийся входным сигналом для микропроцессора.
Тогда выходной сигнал микропроцессора определяется как
Я « Г ] = ^ И + А 4 ( " - 1 ) 7 Т ] + -...+b„S[(n-m)T]—a,y[{n-\)T]-...{UAS) ...-any[(n-m)f]
или m m
У[пТ}=^б[(п-1)т]-^1У[{п-г)т]лищ
где
Последнее выражение представляет собой алгоритм управления, реализуемый микропроцессором.
Способ реализации такого алгоритма очень прост. Он программируется и вводится в память машины (в ПЗУ). В последнее время все процессоры имеют виртуальную память. Для каждого момента дискретизации машина формирует сигнал управления по (1.146). Алгоритм этого вида является одним из самых распространённых алгоритмов обработки информации. Он относится к рекурсивным алгоритмам. Кроме регулирования управления этим алгоритмом описываются процессы рекурсивной фильтрации, и другие методы первичной обработки сигналов в реальном времени. Существуют нерекурсивные алгоритмы обработки сигналов, в которых выходной сигнал представляется прямой суммой:
к
1000.
Но такая реализация алгоритма требует больших аппаратных затрат.
Передаточные функции цифровых регуляторов. Рассмотрим передаточные функции регуляторов низкого порядка, наиболее широко применяемых в реальных системах управления.
Пропорциональный регулятор (й-регулятор). Пропорциональными регулятора ми (П-регуляторами) называются такие циф ровые регуляторы, которые обеспечиваю! пропорциональность между изменением положения регулирующего органа и величиной отклонения. Характеристика цифрового П-регулятора приведена на рис. 1.81, а.
Если пренебречь зоной нечувствительности, свойственной реальным регулятором, собственными инерционностями отдельных узлов регулятора, временем отработки заданного значения регулирующего воздействия, то идеализированное уравнение П-регулятора без учета квантования по уровню имеет вид:
Рис.1.81. Характеристики, определяющие работу П-регулятора
"(')-щ при кб[пТ\>ц ,
ЦпТ] при nT<t<(n+l)T, -иг<1у[пТ]<и2Д]4в) -щ при кЗ[пТ\<-щ ,
где б[«7] - значение отклонения ^\4~s(t)-y(i) в дискретные моменты времени Т,2Т,ЗГ,..., пТ.
Параметрами настройки дискретного П-регулятора являются коэффициент к, и время цикла Т.
Квантование по уровню входной выходной и\Ч координат П-регулятора оценивается абсолютными &g з Дм и относительными &g/Agmax, Au/Au
max значениями величин квантов этих координат:
81 Квантование по уровню координат
регулятора вызывает автоколебания в системе, в которой используется такой регулятор. Из рис. Ш.5, б видно, при определенных начальных условиях положение равновесия (Ag = 0) соответствует двум значениям выходной координаты и+ и и_, это приводит к возникновению автоколебаний. Амплитуда автоколебаний, которую можно представить в виде соответствующего числа квантов входной или выходной координат регулятора, зависит от соотношения между данным и критическим значениями коэффициента усиления системы. Под критическим значением к\ подразумевается коэффициент усиления, соответствующий границе устойчивости системы. Исследования показали, что если значение коэффициента усиления в 2 раза меньше критического, то амплитуда автоколебаний меньше 0.5 кванта, если в 1,5 раза - то меньше одного кванта. Это утверждение до некоторой степени иллюстрируется рис. Ш.5, б, где tg а = к -среднее значение коэффициента усиления системы, в которой имеет место квантование по уровню, a tg Окр (прямая ии') -критическому значению коэффициента усиления для случая, когда tgaKp = 1,5 tg а. Из рис. Ш.5, б видно, что при tgaKp > tga прямая с углом наклона акр будет пересекать кривую, соответствующую характеристике регулятора, только в 3-х точках. Если относительные значения величин квантов выбрать достаточно малыми, например:
регулирующего воздействия достигает величины, соответствующей поданному скачкообразному отклонению Ау (рис.1.81, а).
По аналогии назовем цифровым И-регулятором регулятор, в уравнении которого операция интегрирования заменена операцией суммирования величин отклонений, определяемых в моменты времени Т,2Т,ЗТ, ...,пТ. Без учета квантования по уровню уравнение идеализированного цифрового И-регулятора имеет вид
«(')=*22>'л
при пТ< /<(«+! )Т.
3-*)/]98i
(1.147)
*• t
> t
Рис. 1.82. Характеристики, определяющие работу И-регулятора
Ди |и, | + |и2
-< 0.005; ^ Ае
< 0.005
и обеспечить выполнение указанного выше условия выбора коэффициента усиления, то при больших возмущениях квантование по уровню практически не скажется на характере переходных процессов в системах с цифровым регулятором.
Интегральный регулятор (И-регулятор). Интегральными регуляторами (И-регуляторами) называются регуляторы, которые обеспечивают пропорциональную зависимость между скоростью перестановки регулирующего органа и величиной отклонения:
du(t) dt
-~Щ или u{t) = ~j5(t)dt, *u -Л/ 0
где Г„ - время, в течение которого изменение
Кривые изменения регулирующего воздействия идеализированного цифрового И-регулятора при скачкообразном изменении входного сигнала приведены на рис. Ш.6, б. Цифровой И-регулятор характеризуется двумя параметрами: коэффициентом kj и временем цикла Т. При Т -> 0 и при Tu = Т/к2 поведение цифрового и аналогового И-регуляторов совпадает. Квантование по уровню, свойственное цифровым И-регуляторам, не будет сказываться, если величины квантов 8 и An выбраны достаточно малыми и в системе значение (\,5+2)к2<ккр.
Пропорционально-интегральный регулятор (ПИ-регулятор). Пропорционально-интегральным регулятором (ПИ-регулятором) называется регулятор, который обеспечивает пропорционально-интегральный закон регулирования. Скорость перестановки регулирующего органа в системах с ПИ-регуляторами пропорциональна величине
82 отклонения и производной от отклонения. Идеализированное уравнение ПИ-регулятора имеет вид
Параметрами настройки ПИ-регуляторов являются Кр и Ти— время интегрирования или время удвоения, т.к. обычно Т„ определяют как время, в течение которого координата и достигает своего удвоенного значения, т.е. значение и = 2^,#(0) при скачкообразном изменении <5(г) (рис. 1.83, а).
Идеализированное уравнение цифрового ПИ-регулятора имеет вид
и^)=ЩпТ] + к2^8[гТ] (1.148) i
пр И и7 '< '< (л + 1)2г'.
> /
и *t5[/,r]+A2£5[/T]
А28
-> 1
циапъный регулятор. Пропорционально-интегрально-дифференциальными (ПИД-регуляторами) называются регуляторы, идеализированное уравнение которых имеет вид
u(t)=kn Щ]^ЩШ
Т„ Д149, в)
а передаточная выражением
функция определяется
1 ^(Р) = кп+~-+ТдР) 1иР
где кп - коэффициент передачи пропорциональной части регулятора, ТЦ - постоянная времени интегрирования, Тд - постоянная времени дифференцирования, uv) - выходная величина регулятора (управление), а МО-сигнал рассогласования.
Аналоговый ПИД-регулятор имеет три параметра настройки: кр - коэффициент пропорциональности, Ти - время интегрирования или время удвоения, Тй -время дифференцирования или время предварения. Параметры кр и Ти у ПИД-регуляторов определяются как и у ПИ-регуляторов. Время Тд может быть определено из графика на рис.1.84, а, когда Ти - оо, а вменяется по линейному закону.
Уравнение идеализированного цифрового ПИД-регулятора имеет вид
и(г) = ЩпТ] + к2£ьт-1
+ВДиГ|-5[(л-1)Г]} (1.149, )
Рис. 1.83. Характеристики, определяющие работу ПИ - регулятора
Кривая изменения выходной координаты идеализированного цифрового ПИ-регулятора при скачкообразном изменении входного сигнала (рис. 1.83, б). Этот регулятор можно охарактеризовать тремя параметрами: коэффициентами к\ и к2 и временем цикла Т. При Т-> О коэффициент к} -> кр, а выражение
, ^ 1и, следовательно к2
к -к hlL-T '" к *
Пропорционсшъно-интегралъно-дифферен-
пpияГ</<(«+l)7 , . Кривые изменения выходной координаты
цифрового ПИД-регулятора при скачкообразном и линейном законе изменения входной величины приведены на рис. 1.84, б и 1.84, в соответственно.
Рис. 1.84. Характеристики, определяющие работу ПИД-регулятора
83 При квантовании с малой длительностью
такта Г это уравнение можно преобразовать в разностное с помощью дискретизации, заключающейся в замене производной разностью первого порядка, а интеграла - соответствующей интерполяционной формулой (по методу прямоугольников, трапеций, Симпсона и т.д.).
При использовании метода прямоугольников получаем
(1.150,о)
При использовании метода трапеций имеем
ФНЛФ (Г s[o]+s[«f
vv /=1
ША*-% (1.150,6)
Для программной реализации в микропроцессорной системе более пригодны рекуррентные алгоритмы, в которых текущее значение управляющей переменной и\п) вычисляется через предыдущее значение и(п-1) и поправочный член &и\п) и которые имеют вид:
-для метода прямоугольников
Ди[и] = и [и] - и[п -1] -= &08[и]+А,6[и-1] + г>25[«-2],(1Л51)
где
«i=«H-6[0]+б[и] fr
\\ ) ы\
\
f(8[«]-5[«-l]);
• для метода трапеций
и[п] = и[п -1] + q0S[n] + +qtS[n-\] + q28[n-2], (1.152)
кШЩ, b,=-
( Т\ кп+2-*—— (1.153)
г т
Этому разностному уравнению соответствует дискретная передаточная функция регулятора
- 2
П ' 8(z) 1-г"1 q2z (1.154, б)
которая может быть получена из передаточной функции непрерывного регулятора (1.149, а) приближенным представлением оператора р через оператор z. В простейшем случае при использовании метода трапеций имеем
WP{z) = WP f2(*-l)l
(1.155)
При Г-*0 можно установить связь между параметрами аналогового и цифрового ПИД-регуляторов:
к к к -к -*-Т = Т -2-Т = Т
Согласно [5], существуют различные модификации дискретньгх ПИД-регуляторов. Так, например, возможно повышение порядка регулятора за счет фильтрации сигнала рассогласования перед его дифференцированием. Этому закону управления в аналоговом регуляторе соответствует передаточная функция
WP(p) = k l . - U - 7 ^ ТИр \ + Т,р
2(z-l) Произведя замену р на т(~,\\-> П01ХУ1ШМ
дискретную передаточную функцию регулятора более высокого порядка
WP{z) = b0 + bxz ' + b2z 2
l + a,z"' +a2z'2 (1.156)
которой соответствует рекуррентное соотношение
84
и[и] = < «[н -1]+а2и[п - 2]Ь08[п] + +Ь1Ь[п-\]+Ь28[П-2], ( 1 Л 5 7 )
4с, 2с, -1 1 + 2с, 1 + 2с,
1 + 2с,+с„+-7—й-1 •" O i l 1 '
* о = * 2(1 +2с,)
А2=А
1 + 2с,
= * " 4(с1 +сд)"
" 1 + 2с, У
с,(2-ся) + 2сд + ^ - 1
где ч И ___ * См —
1 + 2с,
• - - с Д
В общем виде алгоритм работы регулятора описывается рекуррентным соотношением вида
u[n] = alu[n~l]+... + atiu[n-^.] + +605[n]+*18[n-l] + ... + i v 5[«-v ] s
( L 1 5 8 )
что соответствует передаточной функции вида
Обычно в регуляторах принимают А> * 0 ,а ао = >•; кроме того, исходя аз требований нулевой статической ошибки, должно выполняться условие °\ + аг+—+ап = Ц v
Другой вид модификации регулятора заключается в раздельной обработке сигнала рассогласования Щш сигнала обратной связи У у), как показано на рис, 1,85.
дИ W r^ *>w, W0(z) Y(z)
J к
wt>\*t W0(z) i ^
i
i 1
Рис 1,85. Структура одноконтурной системы управления с дискретным регулятором
Это дает возможность избежать резких изменений управляющей переменной "wnpn резких изменениях сигнала задания 8{1).
В общем случае, вводя дополнительные параметры ri, получают обобщенный алгоритм цифрового регулятора в виде следующего рекуррентного выражения
u[n] = axu[n-\)+... + avu[n-\)] +
+Ъ0у3[п]+..лЪчу3[п-ч]+ (1.160) +r0y[n]+... + rv[n-v].
Исходный алгоритм (1.158) получается при подстановке в (1.160) г> = ~* .
Таким образом, алгоритмы цифровых регуляторов могут быть построены на основании рекуррентных соотношений вида (1.157) или (1.160). ^
Двухпозищонный I регулятор. Двухпозиционными регуляторами (ДП-регуляторами) называются регуляторы, в системах с которыми регулирующее воздействие на объект принимает только два значения. Т Идеализированное уравнение регулятора ? с 'учетом Гзоны f возврата двухпозиционного релейного элемента 2е
!/ имеет вид/5
u{t) = UMsign[8(nT)-S], u(t) = UMsign[Ab(nT) + Д8].
Характеристики цифрового ДП-регулятора приведены на рис.1.86, а, б.
и
-и,
U, Ах V,.
-+Ьх
а б Рис. 1.86. Характеристики ДП-регулятора
Обычно зона 2d гистерезисной петли не превышает 1% от диапазона изменения Ах (рис.1.86, а) и поэтому часто при анализе динамических свойств системы с ДП -регуляторами этой зоной пренебрегают. В некоторых системах предусматривают регулировку величины максимального воздействия ±UM. В этом случае величина Ци является параметром настройки РД -регулятора.
По сравнению с аналоговым ДП-регулятором цифровой ДП-регулятор вносит
85 дополнительное запаздывание, которое может достигать величины, равной Т, что видно из рис. 1.86, б.
Передаточные функции экстраполяторов (ПАП). В качестве экстраполяторов в цифровых системах управления используются экст-раполяторы нулевого (фиксаторы) и первого (линейные экстраполяторы) порядков. Экстра-поляторы высших порядков чаше рассматриваются как теоретические объекты.
В общем случае работа экстраполятора описывается импульсной характеристикой (весовой функцией)
, , \\ при и = 0, 11 [0 при п* О, w\
или, что то же самое - передаточной функцией
Ф=1тгШщФ%щ, а его передаточная функция имеет вид
tf,(/0=b('K"^: 1-е- \2
р ) Ip+f]
Передаточные функции цифровых систем управления. При достаточно малом периоде квантования Т (не превосходящем О 5Г Т "••JXP, где V - наименьшая постоянная времени в системе) системы управления можно рассматривать как непрерывные и пользоваться непрерывными методами их расчета.
Рассмотрим для примера одноконтурную систему регулирования частоты вращения двигателя постоянного тока, структурная схема которой представлена на рис. 1.87.
Экстраполяпгор нулевого порядка функционирует в соответствии с импульсной характеристикой
fl при О < t < Т, W н=- Onput> Т,
а его передаточная функция есть
1 -р'р1
•£(У Y,x(nT)t>{,-nr)
Рис. 111.24. Структурная схема последовательного соединения цифро-аналогового преобразователя и
экстраполятора
Экстпраполятор первого порядка функционирует в соответствии с импульсной характеристикой
Й[и] = t — ilrT l + —^-npukT<l<(k + l)T,
OnpukT<t>(k + l)T,
т.е. на интервале kT<t<(к + \)Т ВЫходной сигнал линейного экстраполятора формируется по закону
•2м£ - ) 5 1 К{Р) и %ВП V- , К* о •2м£ К{Р) 1+W Wsp*+rllP+\
У Кос К„ Кос К„
Рис. I. 87. Одноконтурная система регулирования частоты вращения двигателя постоянного тока
Она состоит из регулятора частоты вращения Р, реализованного в микропроцессорной системе программно, вентильного силового преобразователя ВП и двигателя постоянного тока ДПТ, инерционность которого определяется двумя постоянными времени и, причем, обычно Тм » Тя > ТВп- Примем за аналоговый прототип регулятора ПИД-регулятор с передаточной функцией, определяемой выражением (1.154, а) и приведем ее к следующему виду:
МРУ-1 + КпТИр + ТДТИр
ТИР (1.162)
Выберем параметры регулятора так, чтобы скомпенсировать большие постоянные времени объекта управления ^мн^я, т.е. примем
л-п1и ~JM> 1Д1И ~1М1Я (1.163)
Тогда структурная схема системы примет вид, показанный на рис. 1.88.
86
«ч ,/" • " » 8 К-вп кд <о
IS р 1 + ТвпР тиР р У
р if К1Т ~- л-ос К1Т
Рис.1.88. Преобразованная одноконтурная система регулирования частоты вращения двигателя
постоянного тока
В этом случае передаточная функция замкнутой системы примет вид
Ф{р) = W(p)
(1.164)
где Г = Ги/К, К = КвпКдвКтгКос,
Характеристический полином передаточной функции (1.164) обычно представляется в виде Т'р +2§р + 15 г д е ^ _ коэффициент колебательности, оптимальное значение которого для
таких систем —(т.е . около 0.707). С учетом
этого соотношения получим
Т'и= 2Твп,
ТИ=2ТВПК, (1.165) откуда
а передаточная функция замкнутой системы при таком выборе параметров регулятора будет иметь вид
Wt{p)- 2Т2впр2+2Твпр + \
"-ос"-тг
2Твпр + \
(1.166)
Таким образом, на основании уравнений (1.163) и (1.166) можно определить оптимальные параметры регулятора К-п, 1ц и -*д, а затем, выбрав период квантования Т<0.5ТВП^ вычислить по формуле (1.151) коэффициенты "о, "\ и Ь2 передаточной функции цифрового ПИД-регулятора и осуществить конкретную настройку алгоритма его работы по рекуррентному соотношению (1.152). В реальных системах постоянная времени вентильного преобразователя составляет
единицы мс, поэтому период квантования в таких системах должен быть, как правило, не более 1 мс, что предъявляет высокие требования к быстродействию аппаратуры и временной экономичности алгоритмов и программ вычислений.
Указанное ограничение особенно актуально для сложных многоконтурных систем управления, в которых существует несколько регуляторов, реализуемых в микропроцессорной системе программным путем последовательно.
В качестве иллюстрации вышеописанных особенностей рассмотрим еще цифровую трехконтурную следящую систему подчиненного управления, содержащую три каскадно включенных регулятора: регулятор положения, регулятор частоты вращения и регулятор тока. Структурная схема системы показана на рис. 1.89. Синтез регуляторов в такой системе производится, начиная с внутреннего токового контура, как наиболее быстродействующего. Оптимальным для него является ПИ-регулятор, передаточная функция которого получается из (1.149, а) при Тд = 0.
-<Р> *М - № »VW -Sft-i ,FM ПЕП^ПШЕ >jte JJJL
Рис. 1.89. Структурная схема следящей системы с каскадным включением регуляторов
Порядок выбора оптимальных параметров и дискретизации тот же, как и при синтезе ПИД-регулятора. Наилучшим для данной системы регулятором частоты вращения (РЧВ) является П-регулятор, имеющий передаточный коэффициент К, оптимальное значение которого выбирается так же, как при синтезе ПИ-регулятора. Синтезированная система для внешнего контура показана на рис.1.90.
* " $ 7-6- 1+7>
Рис. 1.90. Структурная схема внешнего контура следящей системы
Здесь
-Ко =
^•дт^ос^тг ,Т0=4ТЕ вп
87 Если пренебречь достаточно малой посто
янной времени Го, получим идеальный следящий привод с передаточной функцией замкнутой системы
"СЛ.З ~
КоКрп +1 1 Тпрр + 1
(1.167)
где Крп - коэффициент передачи П-регулятора положения.
Как видно из (1.167), инерционность привода, его запаздывание 7#/>, обратно пропорционально добротности Кт=КоКрП. Для того, чтобы уменьшить запаздывание и ошибку слежения в установившемся режиме (при движении с постоянной скоростью), в регулятор вводят дополнительную коррекцию по скорости, как показано на рис. 1.90 пунктиром.
В этом случае установившаяся ошибка слежения будет определяться как
Ьсл.ут. =~^~~ KVV3 -*гД<Р, (1.168)
где Kv - коэффициент коррекции по скорости, Дф3 - приращение координаты (угла поворота) за время квантования Т. Оптимальным является соотношение Kv = УК со, а обычно выбираю т / ^ 1/Ко,.
На рис. 1.91 показана структурная схема одной из возможных реализаций цифрового регулятора положения с инкрементным датчиком, осуществляющего коррекцию по скорости.
i» , - 6-*- к„ I
Рис. 1.91. Структурная схема внешнего контура следящей системы (а) и реализация регулятора
положения с коррекцией по скорости
Задание и сигнал обратной связи здесь представляются в виде приращений угла Дф3 и Аф за время квантования Т. Поэтому регулятор содержит интегральную составляющую и способен выполнять коррекцию по скорости. Реализуемый им закон управления можно представить в виде
или при дискретизации и вычислении интеграла по методу прямоугольников
1=0
+KvA<p3[n]. а. 169)
Алгоритм работы цифрового регулятора по этой формуле показан на рис. 1.92.
По таймеру Т Reg.P
1 Лб = А(р3 -Д<р
X {/„ = U„ + Де
3 ,г
Uf:=A<?3Kl,
4 " и=и„+ик
5 " ю, = U
( Возврат ]
Рис. 1.92. Алгоритм работы цифрового регулятора
При больших величинах периода квантования применяются апериодические компенсационные регуляторы, синтез которых проводится путем дискретизации непрерывной системы и представлением объекта дискретной передаточной функцией Дискретная передаточная функция объекта управления может быть представлена в виде
Wo{zyb0+blZ-\+...+.bnZ-
+ az + --- + a„z (1.170)
причем обычно п < т. Работа обьгчного апериодического компен
сационного регулятора ограничивается тем условием, что при ступенчатом воздействии переходный процесс должен закончиться за т тактов. Тогда передаточная функция регулятора будет иметь вид
* , ( * ) = *(*)
\-A(z) L+hz'l+--- + bmz' aQ + axz +... + anz
(1-171)
88 а коэффициенты передаточной функции выбираются так, чтобы ее нули компенсировали полюсы передаточной функции объекта управления. Кроме того, следует учесть, что
ах + а2+... + я„ = 1, (1.172, а)
bo + bl+...+ bm = \/K. (1.172,6)
Учитывая поставленные условия, получим Q(z) = B(z),P{z) =v4(z), откуда с учетом (1.172) можно вычислить значения коэффициентов регулятора через коэффициенты объекта управления
Я\ = аЩъР\ = Ъщъ q2 = a2qoP2 = b2qa
Цт = ОтЦоРп = b„qo qo=l/(bo+h+...+bn), q0=l/[K(a]+a2+...+am)].
(1.173)
Пример 1.32. Выполнить синтез цифрового регулятора частоты вращения для системы, структурная схема которой изображена на рис. 1.93.
- * о - ч »М '"«"£ Гм=иЛ^ с * AV «•
Рис. 1.93. Структурная схема системы управления двигателем постоянного тока
Решение. При пренебрежении инерционностью вентильного преобразователя (ТВп = 0), передаточная функция объекта управления в системе, приведенной к виду, показанному на рис. 1.94,
" > д » ¥r{z) и — >
&оФ) , rt 1 > ¥r{z) и — >
&оФ)
Рис.1.94. Преобразованная структурная схема системы управления двигателем постоянного тока
будет равна
W0B{p)- К ТмТяР
2+ТмР + 1 0-174).
где К = КвпКдвКссКтг-Применив метод прямоугольников для вы
полнения дискретного интегрирования, получим дискретную передаточную функцию объ-
Ш%* ЩЩ К
где см = Т/УТ, Ся = Тя/Т.
Приведем передаточную функцию к стандартному виду
W0{z) = \ + axz ' + a2z 3 - , (1.175)
где Ьо=К/(смся + см+ 1), ах = -(2смся + смУ(смся + сы + 1), а2 = (смсяУ(смся + см + 1).
Передаточная функция апериодического регулятора будет иметь вид
WP(z) = q0+q]z-l+q2z- (1.176)
где <7о, Ч\ и #2 могут быть вычислены по формулам (1.173).
С целью получения рекуррентной формулы для вычисления управляющего воздействия, умножим числитель и знаменатель выражения (1.176) на (1-z-1) и получим дискретную передаточную функцию
У E(z) = go +(<9i ~А>К' + ( & -Qi)2'1 'Яг2'
1-z-1
(1.177)
Из формулы (1.177) получаем рекуррентное соотношение для вычисления управляющего воздействия
и[п) =м[и-1]+q0z[n]+($ -q0)e[n-\]
Ч%-«Ил-21-48[и-3]-+ (1.178)
екта
По формуле (1.178) может быть построен алгоритм работы регулятора, аналогично алгоритму рекурсивного фильтра, показанному на рис. 4.5.
При выборе периода квантования в апериодическом регуляторе следует исходить из того, что, поскольку синтез ведется из условия конечного времени управления при ступенчатом возмущении за m тактов, то при уменьшении периода квантования Т будет увеличиваться начальное управляющее воздействие и(0) = ?о
89 Так, для рассматриваемого регулятора час
тоты вращения из формулы (1.173) имеем соотношение
"о ~ * ~ Т2 т
К к к Приняв К = 1 и Тм = 107>, получим
TJT qQ=u(0) 10 21 5 8.5 3 5 2 3.4
Рассчитаем значение управляющей переменной и[п] при ступенчатом управлении Y = 1.
и[0] = q0; и[1] =?o + #i =q0(l+al); и[2] =q0 + qi + q2 = ?о(1 + ах + а2).
Рассчитаем а\ и а2 для ТМ1Т= 3, получим а{= -0.98; а2=0.184; и[0]=^0 = 5; «[1]=0,1; и[2] = 1.0.
Временная диаграмма работы регулятора при единичном ступенчатом управлении показана на рис. 1.95.
3 2.0 1.5 1.0 0.5
ОТ IT 2Т УГ 4Т
Рис. 1.95. Временная диаграмма изменения управляющего воздействия при ступенчатом
управлении
Как видно из диаграммы, при Т = Гм/3 для того, чтобы переходный процесс закончился за три такта, в первый такт регулятор должен воздействовать на объект с интенсивностью, в пять раз большей, чем в установившемся режиме, т.е. м[0]=5м[2].
Поэтому не следует выбирать слишком малые периоды квантования. Примерная рекомендация
T>Tz/m, (1.179)
где Г г - суммарная постоянная времени, a m -порядок объекта управления.
1.6.4. Алгоритмические основы построения цифровых систем автоматического управления
Алгоритмы цифровых регуляторов. Функцию цифрового регулятора могут выполнять импульсные фильтры, (пассивные четырехполюсники) или микроконтроллеры. По сравнению с аналоговым регулятором, цифровой регулятор в состоянии обеспечить гораздо лучшее качество управления и, кроме того, цифровой регулятор более гибок, т.к. алгоритм управления, реализующий закон регулирования, легко может быть изменен сменой программы цифрового регулятора.
Рассмотрим реализацию ПИД-регулятора на базе микропроцессорной системы с использованием аппаратного таймера и системы прерываний. Схема алгоритма его работы показана на рис. 1.96.
С MAIN } i
lt[n~\]=^tl[fl]-£ >-1]=е[п-2]=0
\ Разрешение прерываний
• ' Фоновая программа
С INTO \ I
Запрос по таймеру
Вывод и[п\ па ЦАЛ
Т Запуск АЦП
±.
Готовность АЦП ~~~Ы'
С Return J
f INT I }
Опрос АЦП [получение y[n])
Вычисление е[п\ и Ди[п]
Вычисление и[п]-и[п~ l]+.dw[n]
Сохранение e[n-2]=e[n-l], е[п-1]=е[п]
I f Return J
Рис. 1.96. Схема алгоритма цифрового ПИД-регулятора
90 Главная программа MAIN устанавливает
начальное значение переменных, производит инициализацию всех устройств, разрешает прерывания и вызывает фоновую программу. Па-сигналу-таймера формируется запрос на прерывание фоновой программы ЗПРО. В подпрограмме обслуживания этого прерывания INT 0 обеспечивается вывод управляющего воздействия на ЦАП, либо передача его на программно-аппаратный драйвер исполнительного устройства, либо передача его на другой регулятор в случае многоконтурной (каскадной) САУ, а также запуск АЦП для измерения сигнала обратной связи у[п]. Сигнал готовности АЦП вызывает запрос на следующее прерывание ЗПР1 и процессор переходит к подпрограмме обслуживания INT 1, где выполняется реализация алгоритма управления по рекуррентному соотношению ГГЙД-регулятора.
Временная диаграмма работы описанного алгоритма приведена на рис. 1.97.
и ц _ _ 1 _ _ >
п п in i Л \\
г * <— >ч >
Рис. 1.97. Временная диаграмма выполнения алгоритма по схеме рис. 1.96
Как видно из временной диаграммы, время квантования Г задается таймером, вычисления по алгоритму регулятора начинаются по запросу ЗПР1 и продолжаются в течение времени tpEr» а фоновая программа занимает оставшееся время и, кроме того, работает во время преобразования данных в АЦП, Требования к скорости вычислений, определяемой быстродействием процессора и сложностью алгоритма, вытекают из необходимости соблюдения неравенства fPH- < 7Л
Как видно из формул (1.175), (1-176), цифровой регулятор представляет собой рекурсивный фильтр. Сложный фильтр (регулятор) может быть реализован последовательным или параллельным соединением более простых фильтров. Реализацию таких систем программным путем иногда называют последовательным иди параллельным программированием [1].
Если регулятор содержит интегральную составляющую, удобно представить его дискретную передаточную функцию в виде двух слагаемых - интегратора и рекурсивного фильтра. Тогда основными модулями алгоритма являются блоки программной реализации интегратора И с ограничением и рекурсивного фильтра.
Как показано в [6], регулятор описывается дискретной передаточной функцией вида
^ z ) - ! ( ^ + i + ^ - ' + . . . + ^ 'С'180 '*)
где kff = Т/Ти - коэффициент передачи интегратора, а, - коэффициенты рекурсивного фильтра. К- порядок рекурсивного фильтра.
Согласно дискретной передаточной функции, представленной формулой (1.180, а), числовой код на выходе регулятора вычисляется как сумма
Np = Nn+ Ир.ф.,
где Nfi - код на выходе интегратора, определяемый по методу трапеций или прямоугольников, Ыр,ф, - код на выходе рекурсивного фильтра.
Для ограничения кода ошибки Ne и кода на выходе интегратора Nfi и регулятора NP используется макрокоманда LIM.
Алгоритм программной реализации работы цифрового регулятора с интегратором, построенным по методу правых прямоугольников, показан на рис. 1.99. Передаточная функция такого регулятора имеет вид
w \ ( i - i Y i V + " V - ( L 1 8 i l ol
Согласно формуле (1.180, б), код на выходе интегратора вычисляется, исхода из рекуррентного соотношения
#4«]=^и-1]+,адК (i.isi)
а код на выходе рекурсивного фильтра представляет собой
Np,m, [»} = Щ,[*] + «• + bKN, [«-*] =
или в виде ШФ^^С+Щ-Щ , (1.1*2.6)
где
91 Nc=b0Ne(n), Ny=blNe[n-l] + ... + bJNe[n-j]t
N2 = axNP0 [n -1] +... + ajNP0 [n - j] . . . . . . .
В блоках 1 и 2 алгоритма, представленного на рис. 1.99, производится вычисление и ограничение сигнала рассогласования (ошибки) Ne. В блоках 3 и 4 вычисляется интеграл от ошибки.
1 f Начало J Ne = 0
N. = Ny-N
2 1
i « / ( W , ) |
>
3 A
>
N,:-N. + KmN,
>
4 i Яи/я
>
LIM(N,)
>
5 1
> Nc=BaN,
> б 4 />« > 7 : = l
>
1
>
Рис 1.99. Алгоритм цифрового регулятора
Программе рекурсивного фильтра соответствуют блоки 5... 11, а в блоках 12 и 13 вычисляется и ограничивается значение кода на выходе регулятора NP.
Аналогово-цифровые преобразователи. Для преобразования непрерывного сигнала в цифровую форму необходимо выполнить 3 основные операции:
- выполнить квантование по времени (прерывание сигнала по времени с помощью модулятора);
- измерить значение непрерывного сигнала в моменты прерывания,
т.е. в дискретные моменты; - выполнить квантование по уровню, т.е.
представить измеренную величину сигнала в форме числового кода.
Динамические свойства. АЦП можно представить в виде последовательного соединения модулятора (импульсного цифрового элемента) и квантователя по уровню, как показано на рис. 1.100.
—^» л — > J1
\£
Сигнал прерывается в моменты времени 0, Т, 2Т,..., где Т - период дискретности. На выходе АЦП сигнал описывается кодовой группой. Если АЦП имеет разрядность а, то число уровней ц = 2а - 1 (рис. Ш.11).
Погрешность квантователя всегда будет равна половине уровня младшего разряда. В первом случае погрешность будет большой: 0.5/4 » 10%, а во втором случае она будет значительно меньше.
Модель. Если разрядность а Щ$) и больше, это значит, что единица младшего разряда будет значительно меньше диапазона изменения входного сигнала g(t), поэтому можно пренебречь влиянием ступенчатости характеристики и линеаризировать статическую характеристику путём проведения прямой через центры ступенек. В результате получим, что квантователь можно представить в виде пропорционального звена с коэффициентом передачи АЦП k = tg у ( рис. 1.101). Линейная модель АЦП показана на рис. 1.102.
8о А ,
-0.5 JFY \ i X 1 г "
0.5 ёт
уровней =>АЦП 3-разрядный
а к >о
ШШДШОв
1023 уровней => АЦП 10- разрядный б
Рис. 1.101. Представление выходного сигнала АЦП
Так как система считается линейной, то коэффициент к можно отнести к непрерывной части системы. Тогда линейную модель АЦП можно представить в виде, показанном на рис. 1.103. , , /а
1 &0 — •
Рис. 1.102. Линейная модель АЦП
* ) . 1 Рис. 1.100. Цифровая модель АЦП Рис. Г.103. Линейная модель АЦП
92 Наибольшая ошибка при переходе от нели
нейной характеристики к линейной не будет превышать по модулю значения 0.5*£, где о-значение младшего разряда.
Цифроаналоговые преобразователи. One* рация преобразования сигнала из цифровой формы в аналоговую называется декодированием. При декодировании двоичное число, представленное в виде группы импульсов, преобразуется в импульс с амплитудой, равной значению числа.
Например, двоичное число
N = 11000110
представляет значение, равное
Динамические свойства. Декодирующее устройство, согласно (1), выполняет арифметическую операцию сложения. ЦАП бывают, как правило, 8-10-разрядными.
Модель. Статическая характеристика декодирующего устройства может быть с высокой точностью представлена коэффициентом передачи к - 1 0 , как показано на рис. 1.104.
^ ^ J%#y
РнсЛЛ04. Статическая характеристика цифроаналогового преобразователя
Этот коэффициент можно отнести к непрерывной части системы и представить выходной сигнал аншюгово-цифрового преобразователя выражением
которому соответствует структурная схема, приведенная на рис. 1.10S.
± Фр Рис. 1.105. Структурное представление аналого-
цифрового преобразователя
Пример 1.33. Пусть в системе, представленной дискретным фильтром (см. рис. 1.17), используется экстраполятор нулевого порядка. Определим его передаточную функцию
На вход экстраполятора поступает дельта функция с амплитудой 5(0). Экстраполято| запоминает это значение на один такт i формирует прямоугольный импульс, щ показано на рис. 1.106.
Для решения задачи искусственно продлщ этот импульс в бесконечность, т.е. условие посчитаем, что экстраполятор формируя ступенчатый сигнал а дли сохранения истинного положения дополнит рисунок ступенчатым воздействием -8(0) • l(t- Т). Теперь выходной сигни экстраполятора можно определить как
Рис 1.106. Преобразование сигнала в экстраполяторе
«Г( |)=6(0)1(Г)-6(О)1(/-Г)=6(0)(1(Г)-1(/-Г})
Передаточная функция экстраполятора нулевого порядка примет вид
W^P) L (5 (0)6(1)}-
£ { 8 ( 0 ) ( i ( 0 - l Q - r ) ) }
L {5(0)8(0}
j e-"T _ I - e~pT
P P P
(1.183)
С учетом ранее сделанного обозначения ~г>т _ е г ~ ж, окончательно подучим
и . i \ г—1 1 PJS4)
ножитель определяет передаточную z
функцию идеального импульсного элемента, а 1_
множитель - передаточную функцию формирователя.
Структурная схема, соответствующая выражению (1.184) показана на рис. 1.107.
± 1 р
1 ъГ 1 р
1 1 1
г-^^z-1
1 г г-^^z-1
9 -
Рис L107. Структурная схема, соответствующая выражению (1.184)
93 1
Множитель р выражения (1.31) относят к непрерывной части системы и считают, что ее приведенная передаточная функция определяется выражением
Wn{p) = ~wo{p).
Теперь структурную схему импульсной системы с таким регулятором можно изобразить в виде, показанном на рис. 1.108.
•т$т (*->)/' Дискретный
_J*^Mtmop_
* VP МР)
Рис 1.108. Структурная схема импульсной САУ
94 II. МИКРОПРОЦЕССОРНЫЕ УСТРОЙСТВА ЦИФРОВЫХ СИСТЕМ
УПРАВЛЕНИЯ
ИЛ. Арифметические основы микропроцессоров
Н.1.1. Системы счисления
Реализация требуемых функций преобразования сигналов, которые для цифровых устройств сводятся к различным вычислительным процедурам, в значительной степени зависит от способов представления данных. Важным фактором, определяющим особенности выполнения различных вычислительных процедур, является система счисления. Система счисления (нумерация) - совокупность символов и правил изображений чисел с их помощью.
Системы счисления делятся на 2 класса: непозиционные (значение символа не зависит от местоположения его в изображении числа) и позиционные (значение символа определяется его позицией в изображении числа).
Примерами непозиционных систем счисления являются Римская нумерация (используемые символы - 1 , V, X, L, С, М, Т,...), а также системы счисления, применявшиеся в государствах древнего Востока. Они не получили широкого применения в современном мире из-за трудностей выполнения в них арифметических операций.
Позиционные системы счисления получили наиболее широкое распространение благодаря простоте выполнения арифметических операций за счет поразрядного их выполнения. Поэтому рассмотрим их подробнее.
Позиционные системы счисления отличаются друг от друга следующими характеристиками:
- основанием системы счисления ^, определяющим количество символов системы, используемых для изображения чисел: 0, 1,..., q-l.
- количеством разрядов (позиций), используемых для представления целой части чисел " и дробной части т;
Произвольное число А однозначно представляется в позиционной системе счисления с основанием ' , разрядностью целой части чисел п и разрядностью дробной части т в виде:
A = an-qH+a„_l-qn-]+... + a0-q0 + + а_, • q~l + а_2 • q'2 +...а_я • q'mp *
гдеяН0^"1!-Обычно эта запись представляется в упро
щенной форме в виде
А = а„ап-\ао>а-\а-г — а-т,
т.е. знаки межцу слагаемыми пропускаются, а основание системы счисления подразумевается.
В цифровой технике наиболее часто используются позиционные системы счисления с основаниями 16 (шестнадцатеричная), 10 (десятичная), 8 (восьмеричная) и 2 (двоичная). При этом в цифровой форме наряду с числовой информацией часто кодируется алфавитная, звуковая, цветовая и другие виды информации. Представление первых 16 чисел натурального ряда в этих системах счисления показано в табл. II. 1 -
Таблица 11.1 Представление чисел
в различных системах счисления
Нату Представление в системе счислеральное
ния с основанием ральное 16 10 8 2 число 16 0 0 0 00 0000 1 1 1 01 0001 2 2 2 02 0010 3 3 3 03 ООП 4 4 4 04 0100 5 5 5 05 0101 6 6 6 06 оно 7 7 7 07 0111 8 8 8 10 1000 9 9 9 11 1001 10 А 10 12 1010 11 В 11 13 1011 12 С 12 14 1100 13 D 13 15 1101 14 Е 14 16 1110 15 F 15 17 1111
При использовании р разрядов в системе счисления с основанием ^ можно представить N=q различных чисел. При понижении основания системы счисления с Я\ до Чг, Чг < < ? i ,
95 для представления одного и того же количества чисел требуется
log?! О I55L
Рг=Р\ log?2
разрядов. По соображениям простоты аппаратной реализации значений символов и алгоритмов выполнения арифметических операций наиболее применяемой является двоичная система счисления. Поэтому далее будем рассматривать вопросы представления и кодирования информации, а также выполнения арифметических и логических операций, именно для этой системе счисления.
Перевод чисел из одной системы счисления в другую. Правила такого перевода зависит от соотношения между основаниями старой и новой систем счисления.
При qHOe< Чет коэффициенты представления числа в новой системе счисления получаются в виде остатков от деления целой части остатка числа на основание новой системы счисления по правилом деления в старой системе счисления - для целой части и в виде целой части произведения дробной части числа на основание новой системы счисления по правилам умножения старой системы счисления - для дробной части числа.
Пример II. 1. Представить числа 98.6875(ю) и АВ.6Е(|6) в двоичной системе счисления.
Решение. Представление первого числа реализуется следующим образом:
Целаячасть: Дробная часть:
0)6875 | *2
13750 i * 2
017500 j *2
115000
Т1Ю000
98(10)= 110010(2) 0.6875(ю) = 0.1011<2)
Таким образом,
98.6875™ = 1100010.101 U . ЧЩ (2)-
Представление второго числа реализуется аналогично:
.0 ЪА\ 2
vi СП
0 '6£ \*2
OiDC 1*2
Шгё _{*2 1170
1*2 5{Ж) 1JC0
*2 1|80 1*2
Г]оо 0.00
Таким образом, АВ.6Е(Щ= 1010 1100.01101 ПО, W.
Разумеется, для представления второго числа необходимо знать правила умножения и деления в шестнадцатеричной системе счисления.
Процесс преобразования может быть завершен за конечное число шагов, либо оказаться бесконечным. В последнем случае производится прерывание процесса при достижении заданной точности представляемого числа.
При qnm > qcm перевод сводится к представлению числа в виде многочлена по степеням старой системы счисления.
Пример II.2. Представить восьмеричное число 432.2(8) и двоичное число 1110.10(2) в десятичной системе счисления.
Решение. Представляем восьмеричное число в виде суммы произведений значений разрядов на вес каждого разряда в новой системе счисления
432.2(g) = 4*82 + 3*8' + 2*8° + 2*8-1 = 282.25(ю).
110.10г^=1*23+1*22+1*21 + 0*2°+1*2-1 J(2)" + 0*2_2+ 1*2_3 = 14.625 (10)-
Перевод чисел из систем счисления с основанием, кратным степени двойки в двоичную систему и обратно упрощается. Так, для перевода 16-ричного числа в двоичное необходимо каждую 16-ричную цифру представить двоичной тетрадой и записать последовательность тетрад. Точно так же для перевода 8-ричного числа в двоичное необходимо каждую 8-ричную цифру представить двоичной триадой и записать последовательность триад.
Пример П.З. Представить шестнадцате-ричное число АВ.6Е(]6) и восьмеричное число 432.2(8) в двоичной системе счисления, пользуясь упрощенной методикой.
96
Решение. Представляем каждую шестна-дцатеричную цифру тетрадой, а каждую восьмеричную - триадой, в результате получим:
АВ.6Е{16) =10101100.0110 1110(2)
432.2{8) =100 011010.010(2).
Перевод чисел из двоичной системы счисления в 8- и 16-ричную производится путем разбиения двоичного числе на триады или тетрады влево и вправо относительно места фиксации точки, разделяющей целую и дробную часть. Недостающие разряды в крайних триадах или тетрадах заполняются нулями.
Пример П.4. Перевести двоичное число 1101100.01101(2) в 8 _ р и ч н у ю и 16-ричную системы счисления.
Решение. Представляем каждую восьмеричную цифру триадой, а каждую шестнадца-теричную -тетрадой, в результате получим:
^^^Ш, 1101100.01101{2) =001101100.011 010 = 154.32{8)
1101100.01101(2) = 01101100.01101000 = 6С68(1б)
В цифровой технике наиболее применяемой является двоичная система счисления. Поэтому далее будем рассматривать арифметические основы микропроцессорной техники применительно к двоичной системе счисления, другие системы счисления будут использоваться для иллюстративных целей.
II. 1.2. Кодирование информации
При наиболее распространенном в цифровой технике двоичном представлении данных единицей информации является бит - один двоичный разряд, имеющий значение 0 или 1; 8 бит составляют байт; 16 бит (2 байта) -слово, 32 бита (4 байта) - двойное слово и т.д.
Формат двоичных данных в технических средствах, т.е. смысл и значение каждого бита, строго фиксирован и зависит от особенностей
аппаратной реализации. Можно также указать, что расположение битов данных в разрядной сетке определяется формой представления ин формации. Наиболее часто используются 2 формы представления чисел - естественная « нормальная.
Естественная форма характеризуется по стоянным весом битов данных в разрядной сетке независимо от величины отображаемого числа:
Зн Ниф! ровая часть
крайний левый бит - знаковый, следующий бит - старший бит двоичного кода числа (бит с максимальным весом) и далее слева направо с убыванием веса битов.
Классическим представлением числа в естественной форме является изображение его в виде правильной дроби, причём точка фиксируется перед старшим (знаковым) разрядом Поэтому представление числа в естественной форме называют ещё представлением в форме с фиксированной точкой. Знак "+" отображается нулём, а "-" единицей в знаковом разряде,
В микропроцессорах используются различные модификации естественного представления чисел. В частности стандарт IEEE предусматривает следующие форматы представления целых двоичных чисел:
- байт со знаком и без знака (8 бит); - слово со знаком и без знака (2 байта); - двойное слово со знаком и без знака (4
байта); - учетверённое слово со знаком и без знака
(8байт). Для представления числа с фиксированной
точкой в р разрядах его величина должна находиться в пределах
или 2-"<А<2°-2-р
2-"<А<1-2-р
т.е. минимальное число - единица младшего разряда, а максимальное - единица за вычетом единицы младшего разряда. Для указанных выше форматов стандарта ШЕЕ диапазон вычислений составляют числа -2" < \А\ < 2рА дм форматов со знаком и 0 < \А\ < 2м для форматов без знака. Число, меньшее 2~р, представляется машинным нулем.
Для представления чисел, находящихся за пределами заданного диапазона, используется масштабирование чисел, заключающееся » представлении их в виде
97
• А-2к.
При этом в т + к - разрядной сетке значащими являются только т разрядов, что приводит к неэффективному использованию разрядной сетки.
В нормальной форме число А записывается в виде
[А] = тА-рА}
где т 'А - мантисса числа А, а РА - порядок числаЛ.
При использовании нормальной формы число в разрядной сетке представляется, в виде
ЗМ Цифровая часть мантиссы Зп Цифровая часть порядка
Здесь правый бит - знак мантиссы, после знакового бита - фиксированное число бит двоичного кода величины мантиссы, далее -знак порядка и двоичный код величины порядка. При этом диапазон представления мантиссы есть
2"1 <тА<\ иди 0.5<тА<\}
т.е. старший разряд мантиссы должен быть ненулевым (нормализованное представление числа). Операция приведения числа к такому виду называется операцией нормализации и заключается в сдвиге мантиссы так, чтобы ее старшая единица оказалась в старшем разряде разрядной сетки с соответствующим изменением порядка. Нормализация приводит к изменению положения точки в мантиссе в зависимости от величины числа (мантисса «плавает»), поэтому представление числа в нормальной форме называют еще представлением в форме с плавающей точкой.
Диапазон представления порядка равен
-{У-\)<рА<Г-\.
Тогда диапазон представления чисел в нормальной форме равен
2-».2^)<А<(1-2-"').2^)
Пример П.5. Представить числа Л = -1011.П01(2) и * = 0.00011(2) в н о р м а л и .
зованном виде в форме с плавающей точкой. Решение.
Л = -1011.1101 ( 2 )=-0.1011П01-2 4 =
= 1.10111101.0.100;
Я = 0.00011 (2)= 0.11-2~3 =0.11.1.011.
Сравнение естественной и нормальной форм представления показывает, что:
- первая отличается простотой выполнения арифметических операций и, соответственно, простотой аппаратных средств их реализации, однако имеет малый диапазон представляемых чисел и неравномерную погрешность результатов выполнения операций в диапазоне представления чисел;
- вторая имеет большой диапазон представления чисел и равномерную погрешность, но требует больших аппаратных и/или временных затрат на реализацию арифметических операций.
Поэтому естественную форму представления целесообразно использовать в микропроцессорах и микроконтроллерах, а нормальную форму - в персональных компьютерах.
Десятичная система счисления используется человеком в своем 97ласссическом виде для выполнения вычислений, либо как привычное средство отображения при вводе-выводе данных. Использование двоичной системы счисления в цифровых устройствах связано с рядом проблем.
Проблема оптимизации выполнения арифметических операций заключается в возможном уменьшении числа используемых арифметических операций и соответствующем сокращении аппаратных и временных затрат на их реализацию. С этой целью в качестве основной арифметической операции обычно используется сложение. Вычитание заменяется сложением с отрицательным числом, умножение -сложением со сдвигом, деление - вычитанием со сдвигом.
Проблема надежности функционирования решается путем использования такого представления информации, которое позволило бы обнаруживать и, возможно, исправлять ее искажения в процессах преобразования.
Наконец, проблема оптимизации общения с оператором состоит в выборе такого представления информации, которое облегчало бы оператору ее восприятие в процедурах ввода-вывода данных при минимальных дополнительных затратах для получения такого представления.
Перечисленные проблемы решаются путем соответствующего кодирования информации. Ниже рассматриваются некоторые из кодов,
98 используемых для решения перечисленных проблем.
Для оптимизации Выполнения арифметических операций, как было отмечено выше, в качестве -основной операции используется сложение. Вычитание реализуется в виде сложения с отрицательным числом: А=В^А*{-В), Отрицательное число -В в любой системе счисления формируется как T?BtmMm Щ * где К - некоторое число, определяющее теп кода представления отрицательного числа в данной системе счисления.
Наиболее употребительными для чисел являются три типа кодов: прямой, обратный и дополнительный.
Отобрмкенш Положительных чисел во всех трех кодах совпадают между собой
Для прямого кода отрицательного числа 1 = 1 и , следовательно» его отображение отличается только I в знаковом бите
[-^]=Щи1 А н т - А .
Дм представления отрицательных чисел в обрастаем и допояййтепьном кедах введем сведущи» тонжтт:
Is Офдщ&юш положительного числа А
Шжш
то
щтчш как dfempa» этих чжт.. Таким обр-
%. Щтттттт ишташшыадге чнеша А
Дополнительный код отрицательных чисел реализуется как обращение этих чисел. Таким образом, для дополнительного кода К = q".
Сформируем правила получения обратного и дополнительного кодов для отрицательных двоичных чисел.
Получение обратного кода: в знаковый разряд поставить единицу, а числовые разряды заменить инверсными.
Получение дополнительного кода: получить обратный код числа и прибавить к нему единицу младшего разряда либо оставить в обратном коде неизменными младшие нули и первую, следующую впереди них, единицу, а остальные старшие разряды заменить инверсными.
Пример П.б. Получить обратные и дошл нительные коды чисел -3152(]0), -8174(8) и -Ю110(2).
Решение. H152]^=104-1-|3152(10)| =
= 1.9999(1О)-О.3152м=1.6847(10);
[-3152^=10431521 = = 1.0000W-0.3152(18J=16848„
= 1.7777W-0.6174W=1J603|;S)
=tmmm -шп4т =i. \тщ.
=1,1111^-0.101 Шт = 1,.в1Й©1и ;
[-ioi%L^HIiw%lh
Ёшп
то
ML«i4
4,11.,.! -ЦЧг-и'.---«J+W«Л=
Обраяные и дршшш1шшы© щади шеи»»
чмощвмш чащ, чт зиаш в них шщя0юш\ туш разрдашк знав «*» юэбршается я*| С®, а «н» как 11, Цбшнв» тщете юрамцетавлгй111!
римшнюшв if*
жег оказаться, что А + В>\, в этом случае в знаковых разрядах возникает комбинация символов 10 или 01.
Проблема оптимизации общения с оператором заключается в использовании оптимальных двоичных кодов представления десятичных чисел. Для представления десятичных цифр 0, 1, ..., 9 в двоичной системе счисления необходимо четыре двоичных разряда, создающих 16 кодовых комбинаций, из которых используются только 10. Поэтому можно по-
/tlO
строить Чб различных двоично-десятичных кодов, среди которых чаще всего используются коды двух типов: взвешенные и невзвешен-ные.
Во взвешенных кодах каждая позиция (разряд) имеет свой вес и значение 4-разрядной кодовой комбинации равно сумме весов ее единичных разрядов. Примеры взвешенных кодов приведены в табл. II.2.
В некоторых кодах отдельные десятичные цифры представляются не единственным образом. Например, в коде "2-4-2-1" цифра 4 может изображаться комбинацией 0100, как приведено выше, а может изображаться и комбинацией 1010. Для исключения этого выбор кода для представления десятичных цифр производится на основе принципа дополняемости. Код называется самодополняющимся, если представление в нем цифры 9-N подумается из представления цифры N путем инвертирования всех его разрядов. Сумма весов этого кода, должна быть равна 9.
Таблица II.2 Примеры взвешенных кодов
Десятич Изображ гние десятичной цифры в ная
цифра коде ная
цифра «8-4-2-1» «2-4-2-1» «6-4-2-(-3>> 0 0000 0000 0000 1 0001 0001 0101 2 0010 0010 0010 3 ООП ООН 1001 4 0100 0100 0100 5 0101 1101 1011 6 ОНО 1100 ОНО 7 0111 1101 1101 8 1000 1110 1010 9 1001 1111 1111
Существует 4 самодополняющихся кода с положительными весами (коды «2-4-2-1», «3-3-2-1», «4-3-3-1» и «5-2-1-1») и 13 кодов со смешанными весами.
Невзвешенные коды отличаются отсутствием постоянных весов разрядов. Среди них наибольшее распространение получили «код с избытком 3» и рефлексные коды, характеризующиеся тем, что соседние кодовые комби-
99
наций в них отличаются друг от друга только в одном разряде. Из рефлексных кодов наибольшее распространение получили код Грея. Представление десятичных цифр в этих кодах приведено в табл. П.З.
Код Грея часто используется благодаря простоте процедуры перехода к нему из двоичной системы счисления. Если ап,аИ_и...,а0 -кодовый набор Грея, a bnibnA,...,bQ - кодовый набор в двоичной системе счисления, то
a. ^b,®bM,Q<,iun-\b
Для кодирования нечисловой (символьной) информации используются стандартизованные символьные коды, среди которых преобладают коды ASCII и EBCDIC. Символьные коды являются средством ввода- вывода информации. Они кодируют не только собственно информацию, но и управление устройством ввода-вывода: пробел, возврат каретки и т.д.
Предварительно следует отметить, что для кодирования всех букв алфавитов (русского и латинского), знаков препинания, математических операций, специальных символов и служебных команд необходимо более 100 кодовых комбинаций, т.е. не менее 7 двоичных разрядов.
Таблица Ш1 Представление чисел в невзвешениых кодах
Десятичная цифра
Изображение в коде Десятичная цифра «с избытком 3» Грея
0 ООП 0000 1 0100 0001 2 0101 ООН 3 ОНО 0010 4 0111 оно 5 1000 0Ш 6 1001 0101 7 1011 0100 8 1011 поо 9 1100 1101 10 1101 1Ш 11 1110 1110 12 пи 1010 33 0000 1011 14 0001 1001 15 0010 1000
Код ASCII (American Standard Code for Information Interchange) - 7 разрядный двоичный код, предназначенный для передачи информации по каналам связи. В отечественной технической литературе этот код получил наименование АС-КОИ, т.е. «алфавитный стандартный код обмена информацией», или КОИ-7. Он хороню приспособлен для передачи алфавитно-цифровой информации о© каналам связи, но менее приго-
100
ден для представления результатов решения математических и инженерных задач. В нем коды латинских и русских букв совпадают, поэтому для их различения перед символом должен быть введен символ РУС (нижний регистр); ЛКТ (верхний регистр).
Для ЭВМ, использующих фиксированный формат представления данных в виде восьмиразрядного слова (байта), разработан 8-разрядный код EBCDIC (Extended Byniary-Goded-Decimal Interchange Code, т.е. расширенный двоично-кодированный десятичный код внутреннего обмена). Восемь разрядов позволяют закодировать 256 символов, поэтому расширение кода EBCDIC не представляет трудностей. Для использования его было введено кодирование русских букв, начертание которых не совпадает с латинскими. В таком виде он получил название «Двоичный код для обмена и обработки информации» (ДКОИ-8). Помимо ДКОЙ-8, применяются еще четыре кодировки символов, совпадающих по кодам для английских букв, но различных по кодам для русских букв.
Символьные коды являются средством ввода-вывода информации при взаимодействии с внешним миром. В них кодируется не только собственно информация, но и управление устройством ввода-вывода: пробел, возврат каретки, абзац и др.
Пример 11.7. Цепочка символов
DOE, JOHNP.-50
может быть представлена следующей цепочкой двоичных комбинаций в коде ASCII, выраженных в 1 б-ричной системе счисления;
54 Sf 55 37 М Оа 5а 5f 58 5е 00 «2 2е 2d 35 50 DOE
Шатрам щхмт 4 J O H N + P . - 5 0
Лробш
Суть пробмтЫ' надежности функционирования заключается в том, что при выполнении обработки и передачи информации всегда существует ненулевая вероятность искажения каждого бита. В необходимых случаях желательно пользоваться кодами, позволяющими обнаруживать и исправлять такие искажения.
Наиболее вероятно искажение одиночного символа» поэтому ограничимся рассмотрением обнаружения и исправления одиночной ошибки. Появление одиночной ошибки изменяет кодовый набор, т.е. приводит к неправильно
му, но допустимому кодовому набору. Возможность обнаружения одиночной ошибки обеспечивается использованием таких кодов, в которых искажение бита превращает его в недопустимый. Примерами таких кодов могут служить коды с проверкой на четность и «2 из 5», приведенные в табл. П.4.
Первый из них - это обычный двоичный код, в котором введен дополнительный контрольный бит чётности. Контрольному биту присваивают такое значение, при котором число единиц в кодовом наборе всегда четно, Контролирующая способность кода заключается в том, что искажение любого одиночного бита (или нечетного их числа) нарушает четность кодовой комбинации.
Таблица П.4 Изображение десятичных цифр
корректирующими кодами
Десятичная цифра
Изображение в коде Десятичная цифра с проверкой
на четность «2 из 5» 0 1 2 3 4 5 6 7 8 9
00000 00011 00100 00110 00100 01010 01100 01111 10001 10010
00011 11000 10100 01100 10010 01010 00110 10001 01001 00101
Для рассмотрения возможности исправления ошибок введем понятие кодового расстояния. Кодовым расстоянием между двумя кодовыми наборами называется количество разрядов, в которых они отличаются друг от друга. Код обладает способностью к обнаружению одиночной ошибки, если его кодовое расстояние не меньше 2.
Пусть имеем код, состоящий из 2-х кодовых комбинаций: 000 и 111. Одиночная ошибка превращает первую комбинацию в 001, 010 или 001, а вторую в 110,101 или 011. Любая из них является запрещенной. Кроме того, характер искажения позволяет выявить исходную информацию: если в искаженном наборе только одна единица, то исходным набором был, вероятнее всего, набор 000, если две единицы - то Ш . Здесь также обнаруживается и двойная ошибка: при этом всегда появляется запрещенная комбинация.
Очевидно, что кодовое расстояние для наборов 000 и 111 равно 3. Таким образом, код с кодовым расстоянием, равным 3, способен исправлять одиночную и обнаруживать двойную ошибку. Аналогично, код с расстоянием 4 ис-
101 правляет одиночную и обнаруживает двойную и тройную ошибки и т.д.
П.1.3. Арифметические операции
Арифметические операции в естественной форме представления двоичных чисел.
При выполнении арифметических операций в классической естественной форме необходимо иметь в виду следующие основополагающие моменты:
1. Знаковые разряды чисел участвуют в выполнении операций наряду с цифровыми разрядами.
2. Рассматриваются операции над числами И - 1 , т.е. над числами в интервале
(-1-н-2~т)< \А\ <(!-=- - 2 т )
ш Результат сложения чисел А и В, записан
ных в некотором коде, представляется при |Л+.8|<1В том ж е коде, в противном случае
(т.е. при |л + 5 | > 1) результат признается неверным (переполнение разрядной сетки)..
Поскольку представления положительных чисел в обратном и дополнительном кодах совпадают между собой и с представлением в прямом коде, то сложение в прямом коде отдельно не рассматривается.
Правила сложения в обратном коде сводятся к следующему:
1. Производится, поразрядное сложение чисел (в том числе и знаковых разрядов) по правилам сложения в двоичной системе счисления. Возникающие переносы складываются с цифрами следующего старшего разряда.
2. При возникновении переноса, из знакового разряда он складывается с младшим разрядом результата. Если при этом возникает перенос, то он распространяется в соответствии с правилами сложения в двоичной системе счисления.
Пример П.8. Сложить числа Л = 0.1001(2)=0.5625(10) и
5 = -0.0101(2) = -0.3125(10) в о б р а т н о м к о д е >
Решение. Получим обратные коды складываемых чисел:
[ Л Ц=[4 , = 0 - 1 0 0 1 (2 )=0 .5625 ( 1 0 ) ;
[5Ц=1-ИП-0.0101 (2 )=9.9999-0.3125 (10) , или [*L.=1.1010,,, =9.9999-9.6874,,
В двоичной СС В десятичной СС
0.1001 0.5625 + +
[В]^ 1.1010 9.6874 + КЦ
lA+BU J00011 ^0.2499 / U 1 / U 1
0.0100 0.2500
Перенос из знакового разряда
Пример П.9. Сложить числа А = -0.1001(2)=--0.5625(10) и В = -0.0101{2)=-
Решение -0.3125(10) в обратном коде.
В двоичной СС В десятичной СС
[ 4 * "Ю0
> L +U01° 9.4374
+9.6874
[A + BL„ 11-0000 19.1248
f\ /\ U , 1.0001
U 9.1249
Перенос из знакового разряда
• Правила сложения в дополнительном коде
состоят в следующем: 1. Производится поразрядное сложение чи
сел (в том числе и знаковых разрядов) по правилам двоичной системы счисления. Возникающие при этом переносы складываются с цифрами следующего старшего разряда.
2. При возникновении переноса из знакового разряда он игнорируется.
Пример П.10. Сложить числа Л = 0.1001(2)=0.5625(10) и
В = -0.0101(2) = -0.3125(10) в д О П О Л Н И т е л ь н о м
коде. Решение
В двоичной СС В десятичной СС
0.1001 1.1011
0.5625 + 9.6875 +[*L
[A + B h « -10.0100 „ 10.2500
Перенос из знакового разряда (игнорируется)
0.0100 0.2500
•(2) »
Пример П.11. Сложить числа Л = -0.1001(2)=-0.5625(1О) й
В = -0.0101(2) = -0.312*щ в дополнительном коде.
Решение
102 в ее
[4. 1.0Ш
Г
9Л375
• Выше бьгаа шшчега аошожнооть иеполь-
штшт модифицированных кодов (кодов с даум» :|ШШ1ЫМЙ разрядами) дда выявления тщшттт^ Рассмотрим выявление пере-ЙМШММ шш примере модифицированного до-пшннташшг© тт^
Пример 1 Ш , Сложить числа
* « ft. 1ОДф * U.S6^SW в цотоаштедьном Мо-дафэдмрммюм тт.
Решение шоп
*
1 Прнвврзннне 1р4з»щш ваашетрвруют как
ш ш ш ^ пак а шчивдвш (нрем етешми © ЧШЙШ щшшшшшаш® знака) чаееа в всю-
Шттшш ® адомш «ад© ир©ю*ади©» •ВДЙЙШ дай щяфрййй шщ. Знак ршрьшга едредешёш* «ж щтш щ© ш д р ю 2 знаков
Р%«1%*Щф &дщшч«*(Э£ ЩдаяиящййСй:
mm ш~ %=»
(щзвдп- %тщц чвд>;
- частичные произведения записываются в виде чисел со знаком, т.е. знаковый разряд участвует в операции умножения;
- при сложении частичных произведений [ отрицательных множимых на цифры множителя недостающие нули представляются в обратном коде, т.е. в виде Я - 1 ;
- число разрядов произведения должно быть равно сумме чисел разрядов сомножителей.
Следует отметить, что реализация операции умножения с использованием обратного кода не получила достаточного распространения в связи с аппаратной сложностью и большими временными затратами. Поэтому рассмотрим только реализацию этой операции в дополнительном коде.
Умножение в дополнительном коде описывается в общем виде как
l km I km t km
Конкретный вид этого выражения зависит от соотношения значений сомножителей. Возможны следующие их сочетания:
1.А>0, В>0 ; 2 .А>0, В<0 ; 3,А<0, В>0 ; 4 .А<0, В<0 .
Первый случай соответствует умножению в прямом коде и рассмотрен выше.
Второй случай реализуется в щде
и ©эетоиг щ двуж сшгашингс - ©уммы частшнда. прщзведряш! июжи-
шго ж разрщм мншшшщ, вкшмия зшяо-
™ кодикщрздощвго ©ИНЖЙВЗГО *® I а i». Щрниф Е 1 4 Первишшкки. ^ЙОЗ
тт. ш дшймиипрйвввгм
103 В двоичной СС
Частичные произведения В десятичной СС
Корректирующие слагаемые
0.1001 4^1.1011
N. 01001
01001 01101
. 01001 ^ 0 1 1 0 0 1 010011
ЧоиШН'
0.5625 9.6875
^ 2 8 1 2 5 V 39375
^ 4 2 1 8 7 v 45000
49218 33750
ЧГ
*3867 50625
^54482
l.llOIUOlL, =-0.00101101. 94375^Щ 9.82321875*, =-0.17678125,,
[роцесс умножения ясен из примера. Вначале производится поразрядное умножение на очередную цифру множителя со сдвигом, включая знаковый разряд, и сложение частичных сумм. Затем проводится коррекция результата прибавлением к его старшим разрядам дополнительного кода множимого, при этом его знаковый разряд выходит за пределы разрядной сетки и теряется.
3. Выражение, описывающее случай А < О, В > 0, имеет вид
[AABl=lAUBlP+knA-s], лдоп •
Оно состоит из двух слагаемых: - суммы частичных произведений отрица
тельного множимого на разряды множителя
L idmi I Лпр ',
- корректирующего слагаемого кв \Г&\доп. В отличие от предыдущего случая такое
введение коррекции требует хранения множителя до окончания процесса умножения, что требует дополнительных аппаратных затрат. Устранение этого недостатка производится введением 0 в дополнительном коде (т.е. 1) в каждое частичное произведение (это выглядит как представление 0 дополнительным кодом при формировании частичных сумм). В итоге процесс умножения состоит в формировании только первой из описанных составляющих произведения.
Пример П.15. Перемножить в дополнительном коде числа А = * ло01(2) = ~°-5б25(ю) и Я = 1.0101(2)=-0.3125(1О)
Решение
В дюичной СС В десятичной СС
Изображение 0 в дотшштетшм кеде
ч 1.0111
* 0.0101 1110111 10111
1110100 OPOOOW"
^
S
Частичные $мш
1.11010011 = -0.00101101.
9.4375 Ч ^ , 0.3125
971875 **• Ч . 1887S0 ^
985937 ч 943751 *>
992968
51Я2Ж-0 .Ш78Ш.
4. Случай А < О, В < 0, реализуется следующим образом:
Этот случай аналогичен случаю 2: здесь также используется представление 0 в дополнительном коде и корректирующее слагаемое в виде дополнительного кода множимого.
Решение В двоичной СС В десятичной СС
Изображение 0 в дополнительном коде Корректирующее слагаемое
1.0111 1.1011
Шош 0111
010010 ГОШ
фооп ^ 10111 Ч^Шоооо
^ 0 1 0 0 1 10000и iLnrirtr
Частичные суммы
9.4375 9.6875
0.00101101,. 0.17578125,,
Существует 2 основных метода деления: с восстановлением и без восстановления остатка. Отметим, что при выполнении деления чисел в классической естественной форме делимое обязательно должно быть меньше делителя, иначе, результат будет больше 1.
В методе деления с восстановлением остатка после неверного подбора цифры частного (т.е. в случае, когда результат, вычитания оказывается отрицательным) производится "восстановление" значения делимого и повторный подбор цифры частного.
Пример П.16. Разделить число Л = 0.01111^=0,46875^, на число Я = 0.11000(1,=0.75и с восстановлением ос-татка.
Решение
104
они 11000
Ретыпат отвщтелъный: ч частное - 0,, 1 . 1 0 1 1 1 т татант-тте остатки 110 00 и со удвоение
1.1000 0.0101
Резуяытт тиюжшеяышв: в честное -1, удтете втштт
Результат тщшщтемшый: е частное - О, ткстантзенж остатка к его йтевге'
('огамшя яолажюпяькый: в чванное - 1 , окончание демнт
011 I 10 1 1000
0 0 1 1 0 0 1 1 0 0 0
1.10 100 f 1 1 0 0 0
0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0
Метод деления без восстановления остатка может быть описан в виде следующего алгоритма:
1. Вычесть из делимого А делитель В . Если остаток ^о ^ О т 0 с т а р Ш а я цифра частного (целая часть) равна 1, иначе она равна 0.
2. Удвоить остаток. 3. Если % к®, то добавить делитель, если
Ri - 0 , то вычесть делитель. Если полученный после этого остаток $ы - У, то очередная цифра частного равна 1, иначе она равна 0.
4. Повторить п.п. 2,3 п раз. Пример IL17. Разделить число
Л = О.ОШ1{1)=0.46875<!0)
5 = 0.11000^ = 0.75 \щ на число
без восстановления остатка.
Решение
Ряршш отрицательный: е частное - О, yxtiotmt вошка и щтбаиете дештеа
Рекмпап м ш п к н ы И : в чжтте - \, удвоят отнят к i w m i i K дешев
Резумжш атршнмемтМ: в частное - О, удютя оаттт и цриомгент дежтш
_ 0 1 1 1 1 " 1 1 0 0 0 1.101 1 1 0
1 1 0 0 0
1.1000
0.0101
Денете заатеяв
0 0 1 1 0 0
0 0 1 100
1.101000
1 1 0 0 0
0 0 0 0 0
Арифметические операции в форме с плавающей точкой. Особенности выполнения арифметических операций определяются особенностями самой формы представления чисел.
Сложение производится в следующей последовательности:
- выравнивание порядков; - сложение мантисс; - нормализация результата. Выравнивание порядков состоит в том, что
число с меньшим порядком сдвигается вправо на величину разрядности порядков слагаемых.
Сложение мантисс производится в соответствии с правилами сложения в двоичной системе счисления в прямом, обратном или дополнительном коде.
При сложении чисел с одинаковыми знаками сумма может оказаться больше 1, произойдет переполнение, означающее нарушение нормализации влево. Для нормализации производится сдвиг на 1 разряд вправо с одновременным увеличением порядка на 1.
При сложении чисел с разными знаками результат может оказаться меньше -2 и имеет место нарушение нормализации вправо. Тогда производится операция, обратная предыдущей
Пример П.18. Выполнить сложение чисел
Л = 0.6875-2^10) =00.1101.0.011(2)
•£ = 0.625-2j0) =00.1010.0.100(2)
в нормальной форме. Решение 1. Разность порядков (порядок второго чис
ла для выполнения операции вычитания берется в дополнительном коде)
0.011 1.100
+ A] 00.01101.0.100 B) 00.10100.0.100
[Л + В] 01.00001.0.100
1У
[Л + Я] = 00.100001.0.101(2) =0.13125 ' (ю) •
Операции нормализации и выравнивании порядков являются источниками погрешностей из-за возможности потери младших разрядов мантиссы при сдвиге за пределы разрядной сетки машины.
При умножении чисел с плавающей ТОЧКОЙ мантиссы перемножаются, а порядки склады-
1.111 = 1.001
отрицательна, значит, первое число необходимо сдвинуть на 1 разряд вправо.
2. Выполняем сложение нормализованных чисел:
Нарушение нормализации влево Переполнение свидетельствует о наруше
нии нормализации влево, поэтому необходима нормализация с одновременной коррекцией порядка. Выполнив коррекцию, получаем окончательный результат:
ваются. Поскольку произведения двух чисел, меньших 1, всегда меньше 1, то нарушение нормализации вправо возможно только на 1 разряд.
Пример П.19. Перемножить числа ^=_0.78125-2^0) =1.11001.1.100 и
В = 0.59375-2|10) =0.10011.0.001
ной форме. Решение
(2) в нормаль-
*-1.11001.1.100 ,Ф х ( ^-0.10011.0.001
11001 11001
11001 .0111011011.1.101
Нарушение нормализации вправо
После выполнения нормализации получаем окончательный результат
1.1110110.1.100(2)
1 При делении частное чисел с плавающей
точкой есть результат деления мантиссы делимого на мантиссу делителя, а его порядок определяется разностью порядков делимого и делителя. Результат деления может оказаться больше 1, поэтому необходима нормализация вправо, с одновременным увеличением порядка.
Арифметические операции в двоично-десятичных кодах. Наиболее часто из двоично-десятичных кодов используется код «8-4-2-1» (BCD-код), поэтому выполнение арифметических операций рассмотрим только для этого кода. Поскольку средством представления десятичных цифр являются двоичные числа, то, естественно, сложение и вычитание их проводится по правилам этих действий в двоичной системе счисления. Однако разница в значениях оснований десятичных чисел и двоичной формы их представления должна учитываться путем коррекции конечного результата выполнения операций.
Суть коррекции заключается в следующем. Перенос при сложении двоичных тетрад, представляющих десятичные цифры, возникает, когда сумма их превышает 15, а при сложении десятичных цифр - когда сумма их превышает 9. Разница 15 - 9 = 6(2) = 0110(2> должна быть Добавлена при сложении (изъята при вычитании) к результату, если он представляет собой запрещенную комбинацию (т.е. 1010... 1111) или возникает перенос в следующий десятич-
105
ный разряд (заем из предыдущего десятичного разряда). Выполнение операций, сложения и вычитания в BCD-коде рассмотрим на примерах.
Пример 11.20. Выполнить сложение десятичных цифр в BCD-коде:
Решение Перенос из предыдущего разряда
Код десятичной коррекции 19
Перенос в следующий разряд Результат превышает 9,10|
1 0 0 1
Пример П.21. Выполнить вычитание десятичных цифр в BCD-коде.
Решение _13 1 0 1 1 Л Q 1 0 1
8
Результат превышает 9( (10)
Код десятичной коррекции
\ 1 1 0 0 1 1 0 1 0 0 0
Операции умножения и деления для BCD-кодов отсутствуют, т.к. единицей информации в АЛУ обычно является байт, а в BCD-коде в байте размещается две цифры. Алгоритмы обработки двух цифр сразу достаточно сложны, поэтому более рациональным оказываются перевод чисел в двоичные эквиваленты и применение двоичной арифметикой.
Н.1.4. Погрешности выполнения арифметических операций
Ограниченность величины разрядной сетки ЭВМ, невозможность точного представления отдельных чисел в той или иной системе счисления, а также неточность представления результатов выполнения деления чисел являются источниками погрешностей вычислений в ЭВМ. Поэтому для корректного представления исходных данных для вычислений и правильной оценки полученных результатов необходимо иметь некоторое представление о погрешностях выполнения арифметических операций.
Абсолютная погрешность алгебраической суммы нескольких приближенных чисел не превосходит суммы абсолютных погрешно-
106
стей этих чисел. Предельная абсолютная погрешность алгебраической суммы равна сумме предельных абсолютных погрешностей слагаемых:
Д^Д, ,+ . . . .+Д х
Из последнего выражения следует, что предельная абсолютная погрешность алгебраической суммы не может быть меньше предельной абсолютной погрешности наименее точного из слагаемых, т.к. увеличение точности за счет остальных слагаемых невозможно. Поэтому для упрощения вычислений не следует сохранять лишние знаки и в более точных слагаемых.
Таким образом, при сложении чисел различной абсолютной точности необходимо:
- выделить число (числа) с наибольшей абсолютной погрешностью;
- более точные числа округлить с сохранением количества цифр, на единицу больше, чем в выделенном числе;
- выполнить сложение; - округлить результат на один знак. Пример П.22. Сложить числа: х\ = 0.1732,
х2 = 17.45, х3 = 0.00033, *4 = 204.4, х5 = 7.25, л:б
= 144.2, *7 =0.0112, х8= 0.634, ^=0 .771 Решение 1. Выделяем числа наименьшей точности хц
и Хб, верные с точностью до 0.1. 2. Округляем остальные числа до 0.01:
д:, =0.17, х2 =17.45, х3=0, х5=7.25, х7 =0.01, JC 8 =0.63 , х 9 = 0 .
3. Производим сложение чисел: Z = 374.88. 4. Округляем результат на один знак:
1 = 374.9. Оценим точность результата. Для этого
найдем полную погрешность, состоящую из трех компонентов:
- суммы предельных погрешностей исходных данных (единица младшего значащего разряда):
Ах< =0.0001; Д,з =0.01; Ах% =0.000001;
А,, =0.1; ДХ5 =0.01; Д,6 =0.1;
Д„ =0.0001; Д, =0.001; А, =0.0001. Тогда
Д, = 2^ =0.221301 < 0.222;
- абсолютной величины суммы ошибок округления (с учетом знака):
А2 =|0.0O32+QO00333+0.0O12+0.O04-O.00l| =
=0.009733<0.001
- погрешности округления результата:
Д3=0.02; следовательно
Дв = Д, + Д2 + А3 = 0.243 < 0.03, и тогда
Е = 374.9 ±0.3. • Рассмотрим теперь выполнение сложены
при использовании масштабирования. В этом случае выполнению сложения предшествует выбор масштабных коэффициентов для исходных операндов и определение масштабного коэффициента для результата. После определения результата операции истинное значение его определяется умножением полученного значения на масштабный коэффициент результата.
Пример П.23. Сложить числа А = -100101110(2)=-302(10) и В = 1001101010(2) = 620{10) в формате «байт со
знаком». Оценить погрешность представления исходных слагаемых и результата сложения.
Решение 1. Выбираем масштабные коэффициенты:
2 7 - 1 2 7 - 1 ivxA А 302 29
мв max
в 2 7 - 1 620
*2 -3
м, _ " т о т 2 7 --1 «2~:
••г\
620-302
2. В качестве рабочего выбираем масштабный коэффициент М = МВ=2 _ Масштабир)-1 ем, округляем.и представляем в формате «бай!| со знаком» исходные числа:
А =А-Тг =-100101110-2~3 =-100110=1.100110, В' =В-2"3 =^1001101010-2 3 =0.1001101.
3. Выполняем сложение чисел в дополнительном коде:
Заполнение старшего разряда [OUn = 1
1. 1011010
+
\А+ВЪ
0.1001101
0.010011
4. Определяем значение результата сложения:
Т' Е = — = 0.0100111-23 =0.0100111000^=312,
I При вычитании близких чисел их необхо
димо брать с достаточным запасом верных цифр. Если предполагается пропадание первых т цифр, а результат нужно получить с и веривши знаками, то исходные данные нужно брать с rrfrn верными знаками.
Относительная погрешность произведения нескольких приближенных чисел, отличных от нуля, не превышает суммы относительных погрешностей этих чисел.
Для нахождения абсолютной погрешности произведения " = -V •••'*;> и частного и=х/Уможно воспользоваться соотношением:
4,=|*К. Предельная относительная погрешность
произведения равна сумме, предельных относительных погрешностей сомножителей
Если все сомножители, кроме одного, являются точными, то предельная относительная погрешность совпадает с предельной относительной погрешностью приближенного сомножителя: $„ ~ 8Х\, а предельная абсолютная погрешность в х1-х2-...-х,_, • хм •... • хп р ^ больше предельной абсолютной погрешности приближенного сомножителя.
Зная предельную относительную погрешность произведения, можно определить его абсолютную погрешность:
При перемножении чисел разной относительной точности (т.е. с разным числом верных значащих цифр) целесообразно выполнить следующую последовательность действий:
- выделить сомножитель с наименьшим количеством верных значащих цифр (наименее точное число);
- округлить детальные сомножители так, чтобы они содержали на одну значащую цифру больше;
-сохранить в произведении число верных значащих цифр, равное ему в наименее точном сомножителе.
107 Пример П.24. Найти произведение чисел
хх = 3.6 ^ х2 = 84.489 в с е цифры которых верны.
Решение. В первом числе две значащие цифры, поэтому во втором оставляем на одну цифру больше: х2 = 84.5. Тогда произведение
*, -х2 = 3.6-84.5 = 294-102 «2.9-102,
т.е. оставлены две значащие цифры, как в наименее точном сомножителе.
• Относительная погрешность частного не
превышает относительных погрешностей делимого и делителя. Предельная относительная погрешность частного равна сумме предельных относительных погрешностей делимого к делителя:
Правила приближенного деления аналогичны правилам приближенного умножения.
Пример 11.25. Вычислить частное и = х/у, х = 5.735, у =1.23 ? е с л и в с е тфры
верны в широком смысле. Определить предельные погрешности результата.
Решение. Поскольку число верных значащих цифр в числах отличается на 1, то выполняем деление без предварительного округления:
« = 5.735:1.23 = 4.66
Zr (с округлением до числа знаков в наименее точном сомножителе).
Предельная относительная погрешность
Sl=Sl+5'y =1/5735 + 1/123 = = 0.00018 + 0.00813 = 0.0083 = 83%.
Поскольку 0.04 > 1-10" , то цифра сотых долей является сомнительной. Чтобы записать результат только с верными цифрами, необходимо произвести округление и учесть его погрешность:
и, =4.7* Д*ч = А;, + Д^, = 0.04 + 0.04 = 0.08 * 0. l j
и значит и = 4.7±0.1,
• Пример 1.26. Оценить величину погрешно
сти результата сложения, выполненного в
108
примере 24 с учетом того, что истинное значе-
ние суммы равно J °(">). Решение. Абсолютные погрешности пред
ставления слагаемых равны АА =А-/С =100101.110-100101=Q 110(2) =Q75(]0)
Ад =В~Й =1001101010-1001101=001^ = 0 2 ^
Абсолютная погрешность представления результата не должна превышать абсолютной погрешности суммы
А2 = А^ +АВ = 0.75(]0) + 0.25(]d) = 1(10)
Абсолютная погрешность результата равна
Av= — = Д„. •23=htn,-23=S, М (ю) № - " ( ю ) .
Фактическое же значение погрешности ре. зультата равно
318-312 = 6.
109
П.2. Логические основы микропроцессоров
П.2.1. Логические переменные и функции
Применение двоичного кодирования требует соответствующего аппарата для формализации процедур преобразования двоичных переменных и проектирования технических средств выполнения этих преобразований. Математическим аппаратом для описания, как цифровых устройств, так и определенных процедур преобразования цифровых данных
вляяется алгебра логики (алгебра высказываний, алгебра Буля).
Алгебра логики основана на понятии истинности или ложности высказывания. В соответствии с двоичной природой высказываний их условно называют логическими переменными Х\, Хъ . . , х„ и обозначают " 1 " в случае истинности и "0" в случае ложности. Высказывания могут быть простыми (содержащими одно законченное высказывание) или сложными (образованы из простых высказываний,
связанных некоторыми логическими связями). Формализация и преобразование связей между логическими переменными осуществляются в соответствии с правилами алгебры логики (Буля).
Функция от двоичных переменных f(xl,x2,...,xn), принимающая значения из той же области, что и логические переменные, называется логической функцией (булевой функцией или функцией алгебры логики). Эта функция, так же как и ее аргументы, принимает только значения 0 и 1.
Две логические переменные х, и х2 дают только 4 различные комбинации значений, на которых образуются всего 16 возможных логических функций, приведенных в табл. П.5. Определенную логическую функцию Можно представить в виде таблицы истинности или логического выражения, оба эти представления использованы в табл. П.5.
Логические функции двух аргументов Таблица II.5
Х\ 0 0 1 1 Логическое выражение функции
Наименование функции х2 0 1 0 1
Логическое выражение функции
Наименование функции
Jo\X\>X2) 0 0 0 0 0 Константа 0
J\\X\ >х2 ) 0 0 0 1 At ОС Ar-j Конъюнкция (И)
Щ\ХрХ2) 0 0 1 0 Л | ОС Лу Запрет по х2
/ з ( * 1 > * 2 ) 0 0 1 1 Ь Переменная х1
J4 Vх!>Х2) 0 1 0 0 х\ &х2 Запрет по х]
Js\,X\'X2 ) 0 1 0 1 Х2 Переменная х2
/ б ( * Р * 2 ) 0 1 1 0 х1®х2 = = х1&х2\/х]&х2
Сумма по модулю 2 (неравнозначность)
Jl\Xx,X2J 0 1 1 1 xl V х2 Дизъюнкция (ИЛИ)
А \Х\ ' Х2 ) 1 0 0 0 Лг • Л"у ~" Л] ОС Л т Стрелка Пирса (И-НЕ)
j 9 ух^, х2) 1 0 0 1 Л:, D х2 -
= xl&x2vxl&x2
Эквивалентность (равнозначность)
/юу-^'^) 1 0 1 0 х2 Инверсия (отрицание) х2
Ju V- i' J 1 0 1 1 Л-i л A i *~~" Л] V Л^\ Импликация от х2 к л
110 Окончание табл. II.5
*, 0 0 1 1 Логическое выражение функции
Наименование функции
Jll\X\iX2 ) 1 1 0 0 \ Инверсия (отрицание) *2
Jx-j\X\,X2) 1 1 0 1 •Art "г Л>ч ™~* <r\rt V • Л<> Импликация от х^ к х2
JU\X\,X2 ) 1 1 1 0 х,|х, =3^ v х2 Штрих Шеффера (ИЛИ-НЕ)
J[5[x:l,x2 ) 1 1 1 1 1 Константа 1 . (
Описание логической функции в форме таблицы истинности (первые столбцы табл. 11,5) содержит все возможные комбинации аргументов хх и х2 и соответствующие каждой этой комбинации двоичные значения этой функции. Применение специального символа для каждой логической функции, представленной в форме логического выражения, как это показано в табл. П.5, на практике весьма неэффективно. Например, для функций 3 аргументов определяется уже 8 их наборов, а число возможных вариантов для логических функций равно 256, для 4 аргументов - число функций равно 21б=65536 и т.д.
Свойства логических функций позволяют записать произвольную логическую функцию в виде сложного высказывания, логические связи которого определены ограниченным набором ранее заданных функций. Этот универсальный набор определенных функций называют функционально полным базисом. Функционально полный базис можно реализовать в различных вариантах, каждый из вариантов будет основан на небольшом числе определенных функций. Например, функционально полный базис может содержать только 1 функцию: "стрелку Пирса" или "штрих Шеффера".
Таблицы истинности просто и наглядно отображают функциональные зависимости, но практически непригодны для проектирования цифровых устройств. Логические выражения позволяют, как анализировать алгоритмы преобразования данных для уже существующих устройств, так и по алгоритмам преобразований данных создавать требуемые устройства. Именно поэтому запись функций в форме логических выражений имеет большое практическое значение.
В силу особенностей аппаратной реализации цифровых устройств широкое применение получил основной функционально полный I зис, который образуется тремя функциями; инверсией, конъюнкцией и дизъюнкцией.
Инверсия является функцией от одной переменной: у-х.
Конъюнкция (функция И) и дизъюнкция (функция ИЛИ) рассматриваются как функций от многих переменных:
у-хх &х2 или у = х1лх2 (конъюнкция), у = X, v х2 (дизъюнкция).
Для их обозначения вместо специальных символов & (л) и v иногда используют символы, принятые в обычной алгебре для умножения (конъюнкция) и сложения (дизъюнкция). Хотя в табл. 1.5 эти функции определены как функции двух аргументов, они могут рассматриваться и для любого большего числа аргументов. Объединения некоторого числа аргументов с помощью операций конъюнкции и дизъюнкции называются конъюнктивными и дизъюнктивными термами соответственно. Если конъюнктивный или дизъюнктивный терм объединяет полное множество аргументов данной логической функции, то он называется минтермом или макстермом соответственно.
Для формирования сложных высказываний, необходимых при записи произвольных логических функций в форме логических выражений, используют различные алгебраические преобразования, которые основаны на свойствах элементарных функций базиса. Свойства элементарных функций основного базиса приведены в табл. 1.6.
Il l
Свойства функций основного базиса Таблица П.6
Свойства Логические выражения
Соотношения xvQ = x; *<60 = 0; xvx = x; х&х = х; *v l = l; х&\ = \; xvx = l; х&х=0;
Двойное отрицание х = х
Коммутативность х{ vx2 = x2vxl; х1&х2 =х2&х1.
Дистрибутивность хх v (х2 & хг) = (х, vx^&fa vx3); х, &(х2 vx,) = (x, &x2)v(xt &х}).
Ассоциативность х, v(% vх3) = (л:, vx2)vx3; xt &(х2&х3) = (х] &х2)&х3.
Поглощение дг, v(x, &х2) = х}
Склеивание (xlvx2)&(x)vx2) = xi; (*, & х2) V (*, & х2) = хх.
Теорема де Моргана хх vx2 = *, &х2;
Теорема де Моргана x1&x2=xxv х2
По известному логическому выражению произвольной функции в заданном базисе записать таблицу истинности несложно. Необходимо определить значения функции на всех возможных наборах аргументов, и занести их в таблицу. Например, сумму по модулю 2 (табл. П.5) в основном базисе (И-ИЛИ-НЕ) можно записать в виде выражения y=(xl&x2)v(xl &х2), и определить ее значения на всех комбинациях значений аргументов: у(0,0) = 0, у{0Л) = 1, ^(1,0) = 1, y(U)=o.
Переход от таблицы истинности к логическому выражению является более сложной задачей. Проблемы этого преобразования связаны также и с тем, что для одной и той же функции существуют различные варианты логических выражений, которые существенно отличаются по форме, но тождественны по таблице истинности. Как правило, получение требуемого логического выражения выполняется в два этапа. На первом этапе логическое выражение записывают в определенной стандартной форме, а на втором этапе логическое выражение преобразуют в форму, более эффективную для практического применения.
Для указанного выше основного базиса применяют две формы преобразования табли
цы истинности в стандартное логическое выражение: совершенную дизъюнктивную нормальную форму (СДНФ) и совершенную конъюнктивную нормальную форму (СКНФ). Эти формы эквивалентны, и любая из этих форм может быть преобразована в другую по теореме де-Моргана. Рассмотрим более подробно СДНФ.
В СДНФ каждый набор значений аргументов логической функции определяется мин-термом, который записывается как конъюнкция значений аргументов. Если для данного набора аргумент имеет значение 1, в минтерме этот аргумент указывается соответствующей логической переменной. Если аргумент равен 0, то указывается инверсия этой переменной. Например, для функции трех переменных значениям аргументов х1-\,х2=0,х3=\ соответствует минтерм х{ & х2 & х3, а значениям х, = 0,х2 = 0, х, = 1 - минтерм Зс, & х2 & хъ. При этом минтерм принимает значение лог. «1» только при данных значениях набора переменных, и значение лог. «0» для всех других наборов. Таким образом, каждый набор аргументов будет определен своим минтермом.
Запись логического выражения функции производится дизъюнкцией минтермов для тех наборов аргументов, при которых функция принимает значение 1. Следовательно, полу-
112
ченная СДНФ содержит дизъюнкцию единичт ных минтермов, а каждый минтерм является конъюнкцией всех аргументов с их прямыми или инверсными значениями. Как указьшалось ранее, эта форма записи используется как промежуточная, так как для проектирования цифровых устройств она излишне громоздка и не учитывает особенностей реализации.
Эти особенности обычно связаны с рекомендуемым применением каких-либо базисных логических элементов, наиболее просто реализующих аппаратно определенные логические функции. Например, функции И-НЕ, ИЛИ-НЕ используются в качестве базисных функций для изготовления логических элементов в различных микроэлектронных технологиях, а функции И, ИЛИ, НЕ и сумма по модулю 2 используются в программировании для реализации логических условий циклов.
Н.2.2. Логические элементы и синтез комбинационных схем
Логические элементы. Запись логического выражения произвольной функции в определенном базисе при ограниченном наборе операций (функций) преобразования двоичных переменных позволяет создавать разнообразные цифровые устройства при ограниченной номенклатуре элементов. Как правило, имеется набор типовых базовых элементов, предназначенных для синтеза любых более сложных схем.
Элементарные логические операции над двоичными переменными реализуются устройствами, называемыми логическими элементами. Число входов логического элемента соответствует числу аргументов, а выходной сигнал - воспроизводимой им булевой функции. Стандартное представление логических переменных, с помощью электрических сигналов следующее: единичное значение переменной отображается высоким уровнем сигнала, нулевое - низким уровнем сигнала. Уровни сигналов жестко не фиксируются, например, напряжение в диапазоне 2,4В- -5,0В считается высоким, а напряжение менее 0,4В - низким, другие значения не формируются и не могут поступать при корректной работе логических элементов.
Цифровые устройства делят на два основных класса. К первому классу относятся схемы, в которых значения выходных сигналов однозначно определяются значениями входных сигналов в тот же момент времени. Такие устройства называются комбинационными или
логическими автоматами без памяти. В схемах второго класса выходные сигналы определяются не только значениями входных сигналов в данный момент времени, но и состоянием схемы, которое зависит от сигналов, поданных на ее входы в предыдущие моменты времени, Такие схемы в отличие от комбинационных содержат элементы памяти (триггеры) и называются последователъностными или логине-1 скими автоматами с памятью. Причем, элемен-! ты памяти последовательностных схем могут также строиться на базовых логических эле- [ ментах.
Для преобразования логических сигналов необходимы электронные схемы с компонентами, имеющими два основных состояния. Два состояния могут использоваться для формирования требуемых электрических сигналов высокого и низкого уровня, а такими компонентами обычно являются так называемые электронные ключи, имеющие два состояния: замкнуто - низкое сопротивление, разомкнуто - высокое сопротивление. Функции электронных ключей можно реализовать различными структурами, построенными на различных полупроводниковых приборах. Далее рассматриваются примеры схем логических элементов, выполняющие базовые логические опера-ЦИИ;
На рис. 11.2 приведена схема и условное обозначение инвертора, который реализуе! логическую функцию НЕ (отрицание), т. е. |
R1 ts^ky=* I 1
а б
Рис. II.2. Логический элемент НЕ (инвертор): я - упрощенная принципиальная схема, б - условно!
графическое обозначение
В качестве электронного ключа в этом инверторе (рис. II.2, а) используется биполярны" транзистор п-р-п типа. При входном напряжении (Уа) менее 0,5-0,6 В биполярный транзистор находится в режиме отсечки, т.е. коллекторный ток, определяющий величину выходного напряжения инвертора, близок к нулю, % ( следовательно, выходное напряжение (w практически равно напряжению питания (Щ Это состояние транзистора можно интерпр6'
113
тировать, как состояние разомкнутого ключа. Если входное напряжение превышает определенное значение (уровень логической 1 на входе инвертора), транзистор находится в режиме насыщения. Его коллекторный ток достигает максимальной величины, определяемой только напряжением питания +Е и резистором Ш, а выходное напряжение не превышает 0,1-02 В. Это состояние можно рассматривать как замкнутый ключ. • Изменяя входное напряжение от нуля до
максимального значения, которое ограничивается, как правило, напряжением питания можно построить передаточную характеристику (рис. П.З, а). В диапазоне напряжений £/«, которые соответствуют диапазону сигналов логического 0, ключ разомкнут, а выходное напряжение ивых находится в диапазоне сигналов логической 1. Для С/ диапазона сигналов логической 1 ключ замкнут, и, следовательно, формируется выходной сигнал диапазона логического 0. Таким образом, для рассматриваемой схемы у = 1 при х = О и у = 0 при х = 1, а реализуемая логическая функция - инверсия.
и„А
Рис. П.З. Графики изменения выходных сигналов инвертора
Напряжения сигналов в области, лежащей между уровнями логических 0 и 1, показаны на рис. П.З, а пунктирной линией. Эти напряжения формируются в инверторе только при переходе транзисторного ключа из одного состояния в другое. Сигналы переходной области, выделенной на рис. И.З, а серым цветом, в статическом режиме недопустимы. Рассмотренная передаточная характеристика отражает свойства транзисторного ключа именно в статическом режиме.
В действительности при переключении транзистора происходят различные инерционные процессы, которые заметно ограничивают скорость переключения. Эти ограничения скорости переключения определяют быстродействие логических элементов. Временные диа
граммы сигналов инвертора, отражающие конечное время переключения биполярного транзистора, показаны на рис. П.З, б.
При переключении входного сигнала £4* от уровня 0 к уровню 1 выходной сигнал переключается Uewc от уровня 1 к уровню 0 через интервал времени /10 (рис. 36), эта временная задержка определяется конечной скоростью нарастания тока в транзисторе и паразитными емкостями его ^«-переходов. Обратное переключение сигналов инвертора также происходит с задержкой (/"). Как правило, эти задержки довольно значительны и требуют применения специальных мер для их уменьшения. Следует отметить, что рассмотренная схема инвертора достаточно наглядно отражает принципы формирования логических сигналов, но для получения приемлемых для практического применения свойств должна подвергнуться существенной модификации.
На рис. П.4, а приведен пример схемы логического элемента, реализующего функцию И (конъюнкция).
9 +Е
VD1
X,
Г п ш у=х,&х2
хг— -y = xl&xz
1 Я б
Рис. II.4. Логический элемент И: а - упрощенная принципиальная схема, б - условное
графическое обозначение
В качестве ключей в логическом элементе используются диоды с /гл-переходом. Открытое или закрытое состояние диодов определяется только полярностью приложенного к нему напряжения. Если хотя бы на одном из входов этой схемы (х\, Хг) будет низкое напряжение логического 0, то подключенный к этому входу диод открыт, а сигнал на выходе схемы соответствует логическому 0. При высоком напряжении на обоих входах оба диода закрыты, и на выходе логического элемента формируется сигнал высокого уровня, соответствующий логической 1. Такой алгоритм формирования сигнала реализует операцию конъюнкции.
Условное графическое обозначение логического элемента И (рис. П.4, б) построено аналогично предыдущему: прямоугольник со входами справа и выходом слева, символ функции (&) в верхней части условного обозначения.
Практическое применение данной схемы в настоящее время весьма ограничено в силу низкого быстродействия и повышенного уровня сигнала логического 0.
114
На рис. П.5 показан пример логического элемента ИЛИ при включении транзисторов по схеме с общим коллектором.
При такой схеме транзистор является повторителем входного сигнала, а параллельное соединение-транзисторов VTI и VTZ обеспечивает суммирование их выходных токов. Так
у=х^х2
у-о
а б Рис. П.5. Логический элемент ИЛИ:
а - упрощенная принципиальная схема, 6 - условное графическое обозначение
как при нулевых входных сигналах (рис. П.5, а) транзисторы закрыты, а при единичных уровнях сигналов транзисторы переходят в открытое состояние, выходной сигнал у будет нулевым, только при*! = х2 = 0.
Для любых других состояний входных сигналов выходной сигнал у - единичный. Этот алгоритм работы реализует функцию ИЛИ, условное обозначение этого логического элемента показано на рис. П.5, б с символом данной логической функции (1) в верхней части прямоугольника.
Рассмотренные примеры схем демонстрируют возможности реализации логических функций основного базиса, однако на практике в настоящее время не применяются. В целом их свойства не удовлетворяют современным требованиям и не учитывают особенностей и основных ограничений микроэлектронных технологий. Далее будут рассмотрены примеры логических схем, обладающих всеми необходимыми свойствами и получивших широкое применение на практике.
Логические элементы ТТЛ-типа. Основой схемной реализации транзисторно-транзисторной логики (ТТЛ) стала замена матрицы диодов (рис. П.4) многоэмитгерным транзистором (МЭТ) - интегральным элементом, объединяющим свойства диодных логических схем и транзисторного ключа. Отличие МЭТ заключается в том, что он имеет несколько независимых друг от друга эмиттеров, но один коллектор и базу.
Рассмотрим работу МЭТ на примере схемы 4И-НЕ (рис. П.б) с простым инвертором (од-нополярным ключом).
F,, щ
Рис П.б. Логический элемент И-НЕ на основе многоэмиттерного транзистора:
а - с управлением сигналом единичного уровня, в - с управлением сигналом нулевого уровня,
в - условное графическое обозначение
Если на все входы МЭТ подано напряжение, соответствующее уровню 1 (рис. II.6, а), все эмиттерные переходы входного транзистора закрыты. При этом ток, поданный в базу МЭТ через резистор R1, течет от источника +Е в цепь коллектора, смещенного в прямом направлении, и далее в базу транзистора VTL Транзистор VT2 при этом находится в режиме насыщения и напряжение на выходе схемы соответствует уровню логического 0.
Если на один или более входов МЭТ подано напряжение уровня логического (^соответствующие переходы база-эмиттер МЭТ смещаются в прямом направлении (рйс. П.б, б). Ток, поданный в его базу через резистор Ш, течет в цепи этих эмиттеров. При этом ток коллектора МЭТ уменьшается, транзистор VT2 выключается и напряжение на выходе схемы становится равным уровню логической 1.
Ограничения практического применения схемы (рис.П.б) связаны с неудовлетворительными свойствами простого инвертора (Щ Требуемым усовершенствованием для схем ТТЛ-типа стал ключ со сложным инверторов (¥72 - УТ4) - двухполярный кнюч (рис. 1.7,4
Выходной сигнал логического 0' формируется открытым состоянием ключа FT3 по схеме с общим эмиттером, а выходной сигнал логической I - открытым состоянием ключа П ио схеме с общим коллектором. Это позволил увеличить быстродействие, помехоустои '•
115 вость, нагрузочную способность и снизить требования к параметрам транзисторов.
- Г J . . I *Е
J-I 1 "* т Г т
LVD
й :ЛГч-:
а б Рис Н.7. Логический элемент 4И-НЕ: а - прин
ципиальная схема элемента, б - схема включения многоэмиттерного транзистора (б)
Схемотехнически почти все логические элементы ТТЛ-типа могут быть образованы комбинированием двух базовых схем: логического элемента И-НЕ (рис. П. 7, а) и расширителей по ИЛИ (рис. П. 7, б) на разное число входёв. Как было показано ранее (рис. 1.5), функцию ИЛИ можно реализовать суммированием выходных токов транзисторных ключей. Эта возможность лежит в основе построения расширителя по ИЛИ (рис. П. 7, б). Много-эмштерный транзистор VT1 расширителя обеспечивает для входных сигналов JC,- тождественность свойств схем и выполнение для них функций И, а параллельное соединение нескольких расширителей по выходным цепям у и уг - выполнение для их выходных сигналов функции ИЛИ.
Расширитель по ИЛИ совместно с логическим элементом 2И-НЕ образует логический элемент 2И-2ИЛИ-НЕ, реализуемая логическая функция у = (.*, & х2) v (х3 & х4) . Присоединяя дополнительные расширители к узлам 1, 2 (рис. П.8), можно увеличить число объединений по логическому входу ИЛИ.
Графическое обозначение логического элемента приведено на рис.П.8, б, первая логическая операция (И) отражена символом & в дополнительном поле, вторая (ИЛИ) - символом 1 в основном поле, третья (НЕ) - кружком у выхода.
т-\ т-\
X , —
* > X,
а рис Ц.8. Логический элемент 2И-2ИЛИ-НЕ:
" ""пРинЦипиальная схема, б - условное графическое обозначение
Для всех схем ТТЛ-типа, имеющих возможность расширения по ИЛИ,, максимальное число объединений равно 8. Также ограничено число входов по И. Большие выходные и сравнительно невысокие входные токи способствуют хорошему согласованию схем между собой. Параметры отечественных интегральных схем (ИС) ТТЛ- типа следующие (на примере ИС серии КОЗ, К155): время задержки 10 не, мощность потребления 10 мВт, уровень интеграции от единиц до нескольких десятков логических элементов в кристалле, набор ИС более 60 модификаций с различными реализуемыми функциями, напряжение питания +5 В, амплитуда логического сигнала 2,4-4 В.
К достоинствам ИС ТТЛ-типа можно отнести:
- хорошие электрические параметры и характеристики;
- сравнительно высокое быстродействие при средней мощности потребления или среднее быстродействие при малой мощности потребления;
- высокую помехоустойчивость; - высокие статические и динамические на
грузочные способности; - широкий функциональный набор эле
ментов; - удобство применения (монтажа, компо
новки, охлаждения и т. д.), что обеспечивает относительно простые инженерные методы конструирования на них электронной аппаратуры.
Таким образом, в ИС ТТЛ-типа удачно сочетаются высокие схемотехнические, технологические, логические и конструктивные качества, которые отвечают потребностям самого широкого круга разработчиков цифровых устройств различного назначения.
В недалеком прошлом ТТЛ ИС были самым распространенным типом логических элементов благодаря хорошему сочетанию комплекса технико-экономических характеристик. Для решения специальных задач существовали и другие конструктивно-технологические типы логических элементов на биполярных транзисторах. Например, реализация высокого быстродействия связана с применением эмиттерно-связанных логических элементов (ЭСЛ), построенных на ключах - переключателях тока, максимальный уровень интеграции обеспечивается в интегральной инжекционной логике (И2Л), построенной на ключах с инжекционным питанием.
В настоящее время большое распространение получили логические элементы, исполь-
116
зующие ключи на полевых транзисторах с шолированным затвором, так называемых МОП-транзисторов. Это связано и с преимуществами схемотехники логических элементов: уменьшением числа компонентов, простой структурой схем, уменьшением уровня потребляемой мощности и т.д., и технологическими особенностями производства интегральных схем.
Логические элементы на МОП-транзисторах. Интегральные схемы на МОП-структурах (металл-оксид-полупроводник) имеют быстродействие хуже, чем элементы на биполярных транзисторах, например,. ТТЛ -типа. Однако ИС МОП-типа отличаются меньшей мощностью потребления, большой нагрузочной способностью и помехоустойчивостью, требуют меньшей площади на поверхности полупроводникового кристалла, технологически проще и дешевле. Поэтому они широко применяются, особенно в цифровых устройствах не самого высокого быстродействия или в устройствах, для которых важна высокая степень интеграции. Большинство микропроцессорных устройств универсального назначения производится по МОП-технологиям.
В отличие от биполярных транзисторов, требующих подачи тока во входные цепи для переключения в открытое состояние, в основе работы МОП-транзисторов лежит эффект управления электрическим полем (полевые транзисторы). При любом режиме МОП-транзистора управляющий ток в цепи его затвора равен 0. В зависимости от типа проводимости МОП-транзисторов различают транзисторы с каналом р-типа и n-типа. Тип проводимости канала МОП-транзистора определяет направление тока его выходной цепи и полярности напряжений между его электродами.
На рис. П.9, а приведена схема простейшего инвертора на МОП-транзисторах с я-каналом, эта схема является полным аналогом инвертора на биполярном транзисторе (рис. II.2).
+Е о +Е
п-канал
у=х
канал
р-канал
Рис П.9. Инверторы на МОП-транзисторах: а - на транзисторах с я-каналом, б - на транзисторах
ср-ка налом
На затвор нижнего транзистора поступав входной сигнал х. Вместо резистора в выходной цепи инвертора используется МОП-транзистор такого же типа проводимости, нос более высоким сопротивлением канала в от-крытом состоянии. Этот верхний по схеме транзистор постоянно находится в открытом состоянии, т.к. на его затвор подано постоянное напряжение питания +Е. Применение однотипных транзисторов в схеме является существенным преимуществом для микроэлектронной технологии производства логических элементов.
Если входной сигнал х = 1 (высокий уровень), на затвор поступает высокое напряже ние и нижний транзистор находится в откры том состоянии. Это обеспечивает формирование на выходе низкого уровня сигнала у • При поступлении на вход сигнала низкого уровня сопротивление транзистора становится очень большим и на выходе устанавливается высокое напряжение (у - 1).
Вместо нагрузочного л-канального МОП-транзистора можно использовать МОП-транзистор р-ттт, управление которым производится отрицательным напряжением относительно подложки.
Здесь при поступлении на вход высокого напряжения открывается нижний транзистор, а верхний закрывается, и, наоборот, при поступлении на вход низкого напряжения открывается верхний транзистор, а нижний закрывается. Схемы с дополняющими транзисторами отличаются очень малой мощностью потребления, так как при любом уровне сигналов один из транзисторов открыт, а другой всегда закрыт. Следовательно, ток протекает только в момент переключения транзисторов. Кроме того, быстродействие этого инвертора выше, так как заряд и разряд паразитных емкостей при переключении производится через малые сопротивления открытых транзисторов.
Логические элементы, построенные по данной структуре (рис. П.9, б), получили самое широкое распространение и получили название КМОП интегральных схем из-за применения комплементарных транзисторов. Технология производства несколько усложняется, однако существенное улучшение практически всех остальных свойств является важным фактором их высокой популярности.
Логические элементы, реализующие функции И, ИЛИ, строятся соответственно последовательным и параллельным включением МОП-транзисторов. При этом обычно на выходе схем реализуются функции И-НЕ, ИЛИ-НЕ. Для КМОП логических элементов суще-
117 ствуют простые правила построения структур. Если выходные цепи транзисторов одного типа проводимости соединены параллельно, то транзисторы другого типа проводимости включаются последовательно и наоборот. Входные сигналы должны поступать на затворы транзисторов попарно, каждая такая пара образована транзисторами разных типов проводимости. Для элементов И-НЕ и-канальные транзисторы соединяются последовательно, а для ИЛИ-НЕ - параллельно.
Пример схемы логического элемента ЗИЛИ-НЕ и его условное графическое изображение приведены на рис. II. 10.
Транзисторы с и-каналом VTI-VT3 соединены параллельно, транзисторы с р-каналом VT4-УТ6 - последовательно, входные сигналы поступают на попарно соединенные затворы транзисторов VT\<r+VT4, VTl^VTS, VT3++VT6. Выходной сигнал высокого уровня формируется только в случае открытого состояния VT4-Ш, подключенных последовательно, и закрытого состояния VT1-VT3, подключенных параллельно, следовательно, у = 1 при X] = Х2 = х3 = 0. Для всех других наборов входных сигналов хотя бы один /ьканальный транзистор закрыт, а его комплементарный «-канальный транзистор открыт, т.е. у = 0. Этот алгоритм работы схемы соответствует логической функции ИЛИ-НЕ.
га
Т5 I
+Е
Ю ш
y = X,VX2VX}
х3.
и а б
Рис П.10. КМОП логический элемент ЗИЛИ-НЕ: а -принципиальнаясхема,б -условное
графическое обозначение
Приведенные примеры схемной реализации показывают, что базовые логические функции Доступны в виде логических элементов различного конструктивно-технологического исполнения. Конечно, общие технико-экономические показатели, такие как стоимость, быстродействие, потребляемая мощность и т.п., зависят от этого исполнения. Но зти факторы не имеют какого-либо существенного значения для выполняемых алгорит
мов преобразования логических переменных. Поэтому в дальнейшем будут использоваться только условные обозначения логических элементов, отражающие реализуемые логические функции.
Синтез логических функций. Рассмотрим особенности построения логических устройств, реализующих требуемые функции преобразования двоичных переменных с использованием базовых логических элементов. Как указывалось ранее, любую логическую функцию можно представить в форме таблицы истинности или логического выражения. Так как для любой функции возможны различные варианты логических выражений, необходимы алгоритмы преобразования логических выражений в форму, наиболее удобную для построения устройства с применением заданного набора базовых логических элементов. Все алгоритмы преобразования основаны на свойствах базовых логических функций, приведенных в табл. 1.6.
В предыдущем разделе рассмотрен алгоритм получения исходного для дальнейшего преобразования логического выражения в виде СДНФ. Рассмотрим построение схемы логического устройства на примере функции, заданной в форме таблицы истинности (табл. 1.7). Наборы аргументов указаны в формате Х3Х2Х1 в виде последовательности трехразрядных двоичных чисел от 000 до 111. Для каждого набора аргументов указано значение функции (табл. 1.7). Ранее указывалось, что наборы аргументов в таблице истинности можно приводить в произвольной последовательности.
Таблица 1.7 Таблица истинности логической функции
Аргументы
3 ' 1' 1
Функция y = f(xi,x2,xl)
000 0 001 0 010 0 011 1 100 0 101 1 по 1 111 1
Запишем логическое выражение функции в форме СДНФ, функция принимает единичное значение для четырех наборов аргументов, соответствующие им минтермы имеют вид:
х3 & х2 &xt, х3&хг&х}, X) &х2 &3с,, х} & хг & х1.
11.8
СДНФ запишем в виде дизъюнкции этих минтермов:
у = щ&хг&х{ vxi&xl&xlvxi&x2&x} vx3 &хг&х1
Определим типы требуемых логических элементов. В качестве входных сигналов необходимы три аргумента и их инверсии. Каждый минтерм формируется конъюнкцией входных сигналов - это требует 4 элемента ЗИ, для выполнения их дизъюнкции необходим логический элемент 4ИЛИ. Таким образом, общее количество логических элементов трех типов равно 8, Соответствующая схема логического устройства для реализации в СДНФ приведена на рис. ИЛ 1.
В схеме логического устройства (рис. II. 11) для наглядности изображения входные сигналы и их инверсии сведены в шину, показанную утолщенной линией. Каждый сигнал имеет уникальный номер на входе шины, а сигналам, поступающим на логические элементы ЗИ, также присвоены соответствующие номера. Выходной сигнаи устройства формируется на выходе элемента 4ИЛЖ
я» 1 И р" » * ' У
3 i * ?Т_ Т" 4
5 1 _ м
а j -1 L - » У
« з 3 «
* L • j & s
Pet. 11.11. СДНФ-феаттцня дмтеанмго утрвиста»
Так как бадьшмжгв© базовых логических элемент» в наиболее распространенных типах интегральных сжм формируют выходные сигналы с инверсией,, выражение для реализации функции у цвлеенюбраоанев преобразован» в форму, содержащую соответствующие базовые злемштарные фуящдан: И-НЕ, ШШ-НЕ. Это преобразование шеедожи© выпшшнпь по теореме дв Моргана |таби, 116). В результате для построения догачешого устройства, подучим выражение:
Тогда для построения логического устройства нео&одимн 3 эпемента НЕ, 4 элемента
ЗИ-НЕ и один элемент 4И-НЕ, как показано на рис. 11.12.
Другие варианты преобразования выполняют различными средствами минимизации логического выражения. Одним из способов минимизации является применение карт Кар-но. Карты Карно, как и другие методы минимизации, позволяют уменьшить суммарное количество/ переменных в логическом выражении, и, следовательно, сократить количество требуемых логических элементов, а также количество их входов.
Исходной формой для карты Карно служит логическая функция, записанная в виде таблицы истинности. Карта Карно также представляет
№ ш i3^t=n
ц-1 ^-рь FLTR-J
Рис 11.12. Схема логического устройства на элементах И-НЕ
собой табличную форму записи. В отличие от таблицы истинности в ней наборы аргументов должны располагаться не в произвольном, а в строго определенном порядке. При этом каждому набору аргументов соответствует заранее заданное положение в таблице, а эта таблица является, матрицей значений функции.
Аргументы необходимо разделить на две-примерно равные группы, аргументы одной группы будут задавать значения в матрице по горизонтали, а другой группы — по вертикали. Тоща полное значение каждого набора аргу-ментов определяется их значениями на пересечении соответствующих строю! и столбца таблицы. Следовательно, та&яшр (матрица значений функции) содержит 2'" элементов.
Процесс» алгоритм н результат минимизации логической функции рассмотрим на примере построения карим Карно для рассмотренной ваше догачеспои фуупщет. Д18
нее чмся© переменных, я = 3„ етедевзтельно количеств© ячеек таблицы ршв© 2"' = 8, но этому ©два группа ©одержит таиьш -Чь а Ш' г » груши—два аргумента д&, ж%.
Так как. в гоерюй грунте нашив© едка apf)" мент, щго -значения в т А м п р жкяашо указы-
119
вать произвольно, например, верхняя строка -i^анижняя строка -х , (табл. П.8).
Таблица П.8 Карта Карно функции .у "Дхз^^хО
Аргументы х3х2 х3х2 Х3Х2 Х3Х2
х, Я 0П_ 001 0 ~
101
х, W 010. 0 "
_001_ 0
_100_ " о
Аргументы второй группы, определяющие значения наборов в столбцах, должны располагаться по следующему правилу: аргументы в двух соседних столбцах не должны отличаться более чем значением одной переменяй. Причем, это ограничение должно касать-ci и крайних столбцов: левого и правого, так как эти столбцы тоже рассматриваются, как соседние. Для единственного аргумента первой группы это правило также выполняется, т.е. в соседних строках отличаются значения голью одной (в данном случае единственной) переменной.
Выбрав, например, для первого (правого) и последнего (левого) столбца значения аргументов х3, получим, что для второго и третьего столбцов аргументы должны иметь значения х3. В табл. П.8 над пунктирной лишен для справки приведены значения наборе аргументов каждого элемента таблицы.
После распределения наборов аргументов s карте Карно в соответствии с указанными правилами необходимо перенести из таблицы ясинности соответствующие им значения шпиесшй функции. В результате получим вруКарно в форме табл. П.8.
Вели в карте Карно в соседних по горизонт е или вертикали ячейках таблицы значения фувкщш одинаковы, эти ячейки можно объекта». Такое объединение ячеек таблицы юзвэаяег сократить переменную, имеющую в эти яейках противоположные значения и, км самым упростить логическое выражение в •ШИВШИЙ СО свойствами базовых функ-Ш. Дтятабл. П.8 объединение двух правых и » верхней строки позволяет исключить краненную хз в соответствии со следующим лрмбрвованием:
J, =(*з & х2 & х,) v (х3 & х, & х,) =
=(х3 v х,)(х2 & X, ) = х2 & X,.
Такщ образом, в объединенных ячейках ийивд один аргумент (х3) имеет прямое и "«РЖе значение, другие аргументы (хь х2)
одинаковы. Следовательно, аргумент, значение которого меняется в объединении, может быть исключен из логического выражения, в то время как остальные аргументы, общие для обеих ячеек таблицы, образуют конечное выражение. В соответствии с этим алгоритмом при объединении верхней правой и нижней правой ячеек исключаем аргумент х\ и получаем
у2=х3&х2,
а для объединения правой и левой ячеек верхней строки получаем
у3 =х3 &х,.
Аналогичным образом в картах Карно можно объединять ячейки не только по две, но и по 4, 8, 16 и т.д. Допускается объединение ячеек с одинаковым значением функции не только вдоль соседних строк или столбцов (только по горизонтали или вертикали), но и одновременно образующих соседние строки и столбцы. Например, при объединении 4 ячеек они могут располагаться не только вдоль строки или столбца, но и образовать квадрат (две ячейки одной строки с вертикально примыкающими двумя ячейками соседней строки).
Если объединяются 4 ячейки, то прямые и инверсные значения будут чередоваться у двух аргументов, и эти аргументы исключаются из конечного выражения, которое будет содержать только аргументы, общие для всех ячеек. Соответственно 8 ячеек в группе исключает три аргумента, 16 ячеек - 4 аргумента и т.д. Следует иметь в виду, что формируемые группы ячеек таблицы и соответствующие им промежуточные логические выражения должны включать все ячейки с выбранным значением функции. Кроме того, любые ячейки могут одновременно быть элементами нескольких объединений. Для рассматриваемого примера - это три группы по 2 ячейки с единичным значением функции, а одна ячейка таблицы входит во все три группы. Если какие-либо ячейки не образуют группы по 2, 4, 8 и т.д. ячеек, они должны указываться в полном логическом выражении функции в виде минтерма так, как это выполняется для СДНФ.
Выполнив дизъюнкцию полученных промежуточных значений уи у2, уг, запишем минимизированное выражение логической функции в виде
у=у v.y2 v_y3 =(xj &х,) v(x, &x>) v(x3 &X,) .
120
Это выражение преобразуем в форму, ориентированную на применение базовых, логических элементов И-НЕ:
y=(x2&xi\&(x3&x2)&(x38cxi).
и, его реализуя, получим минимизированную схему (рисЛ. 13).
*!
хг
хз
О-
СИ 1 — I & I У
Рис. 11.13. Схема минимизированного логического устройства
В данном варианте логическое устройство содержит всего 4 логических элемента И-НЕ с меньшим числом входов. Таким образом, в результате проведенных преобразований логического выражения мы получили не только уменьшение числа логических элементов, но и сокращение числа сигналов в схеме логического устройства.
Следует отметить, что минимизация по картам Карно не ориентирована на оптимальность схем логических устройств в определенном элементном базисе. Эта процедура направлена только на сокращение числа переменных в получаемом логическом выражении и в общем случае может приводить к нескольким вариантам конечных логических выражений.
Для более сложных функций, например функций с большим числом аргументов, объединение ячеек таблицы в карте Карно можно проводить разными способами. Каждый вариант будет приводить к сокращению разных аргументов и соответствующим образом определять форму получаемого логического выражения.
В целом, задачу синтеза комбинационного логического устройства можно решать так же, как и показано в рассмотренных примерах:
- по таблице истинности получить логическое выражение, это выражение можно записать в СДНФ или в сокращенной форме, применяя какой-либо алгоритм минимизации;
- определить номенклатуру базовых логических элементов и в соответствии с ней преобразовать логическое выражение, используя
известные свойства базовых логических функций;
- по преобразованному логическому выражению построить схему комбинационного логического устройства;
- если проведенные этапы синтеза дают несколько вариантов решений, оценить их эффективность реализации по номенклатуре и количеству логических элементов (например, меньшее количество типов элементов при увеличении числа однотипных элементов может оказаться экономичнее, также эффективнее реализация с более простой структурой связей между элементами схемы и т.п.).
В номенклатуре ИС различного типа, выпускаемых электронной промышленностью, кроме базовых логических элементов производятся функционально законченные устройства, которые реализуют алгоритмы типовых операций преобразования логических сигналов. Поэтому комбинационные устройства можно проектировать не только путем синтеза на базовых логических элементах, но и применением этих стандартных узлов, и эта возможность существенно упрощает решение задач проектирования. В следующих разделах рассмотрены типовые функциональные узлы цифровых устройств.
II.2.3. Типовые комбинационные схемы
Рассматриваемые в данном разделе устройства относятся к классу комбинационных логических схем, они не содержат элементов памяти и являются функционально законченными узлами, реализующими стандартные one-, рации преобразования двоичных сигналов.
Сумматор - электронный узел, выполняющий операцию суммирования цифровых кодов двух чисел. При сложении двух чисел, представленных в двоичных кодах, происходит сложение этих чисел в данном г'-м разряде и прибавление единицы переноса (если она возникает) из младшего (/ - 1)-го разряда.
По способу обработки многоразрядных чисел различают сумматоры последовательные, параллельные и параллельно-последовательные. По способу организации суммирования сумматоры могут быть комбинационными и накапливающими.
Сумматор для сложения многоразрядных чисел представляет собой набор одноразрядных сумматоров, имеющих входы для слагаемых и переноса из младшего разряда и выходы суммы и переноса в старший разряд. Наи-
121
большее применение в микропроцессорной технике получили комбинационные параллельные сумматоры, которые состоят из п одноразрядных сумматоров. Двоичные коды слагаемых поступают одновременно на входы всех одноразрядных сумматоров, а результат суммирования на их выходах формируется также в параллельном формате.
В общем виде под сложением подразумевается образование слова с числовыми значе-НЙЯМИ5(5Ь*2 s„), равного поразрядной сумме числовых значений двух исходных слов: Цхьхъ -. х„) и Y(yh уъ ..., у„). Рассмотрим вопросы построения одноразрядного сумматора. Значение i-го разряда слова образуется в соответствии с правилом
' ' [ при {xi+yl+Pi-i)<K р,=0 J
/ > / = 1 J
где st- сумма в /-м разряде; р1Л - перенос из соседнего младшего разряда; р, - перенос в соседний старший разряд; q - основание системы счисления (для двоичного кода q = 2).
На вход сумматора поступают двоичные сигналы слагаемых х,, yt и переноса Р,.\ из соседнего младшего разряда. Сумматор имеет два выхода, по одному из которых выдается сумма 5,-, а по второму - перенос pt в старший разряд. Для приведенного выше правила суммирования и двоичного кодирования чисел составим таблицу истинности. Так как аргументами для одноразрядного двоичного сумматора являются три переменные х,, yh и р1Л, а выходными функциями - две переменные st и h таблицу истинности получим в форме табл. П.9. ;
Применяя описанный в предыдущем разделе алгоритм синтеза комбинационных схем, построим схему одноразрядного комбинационного
Таблица П.9 Таблица истинности двоичного сумматора
*( 0 1 0 1 0 1 0
У< 0 0 1 1 0 0 1
Рн 0 0 0 0 1 1 1
—-iL_ 0 1 1 0 1 0 0
__#__ 0 0 0 1 0 1 1
смотренным ранее примером. Для выходного сигнала суммы логическое выражение получаем по теореме де Моргана из формы СДНФ, в указанном элементном базисе это выражение не поддается минимизации. В соответствии с этими результатами получим схему, приведенную на рис. 11.14.
Необходимо обратить внимание на то, что наборы входных сигналов для элементов ЗИНЕ, формирующих сигнал суммы, в соответствии с получаемыми по таблице истинности логическими выражениями не совпадают с сигналами рассмотренных ранее примеров.
Так как сумматор является стандартизованным функциональным узлом, для него также можно построить условное графическое обозначение (рис. 11.15) и в дальнейшем использовать его для изображения сумматора в схемах.
В условном обозначении символом функции суммирования служат буквы SM в основном поле, а входные и выходные сигналы обозначены соответствующими буквами в дополнительных полях (слева и справа).
СИ т-1 Рм [V aJJ
S, .
0-1 — | & i PI
Рис. 11.14. Схема одноразрядного комбинационного сумматора
SM
сумматора в элементном базисе И-НЕ. Формирование сигнала переноса совпадает с рас-
Рис. 11.15. Условное обозначение одноразрядного сумматора
122
Сумматоры выпускаются в виде ИС средней степени интеграции и обычно одна ИС содержит 4 одноразрядных сумматора с независимо формируемыми сигналами. Из этих сумматоров можно создавать устройства с требуемыми наборами сигналов и структурами связей. Стандартная постановка задачи для суммирования предполагает суммирование двух n-разрядных чисел, для выполнения этой операции можно построить параллельный сумматор.
Параллельный сумматор - это сумматор, в котором используются параллельные коды; в таких сумматорах имеется отдельная схема суммирования для каждого разряда. На рис. П. 15 приведена схема параллельного п-разрядного сумматора с последовательным переносом.
Коды чисел X и Y должны параллельно и поразрядно поступать на п одноразрядных сумматоров. Перенос, формируемый в каждом разряде, поступает на вход следующего по старшинству разряда. В младшем разряде на вход переноса всегда поступает 0, а перенос из самого старшего разряда, показанный на рис. 1.15 как сигнал С, является признаком переполнения разрядной сетки и говорит о превышении максимального значения п-разрядного двоичного кода. Сигналы суммы S, поступают с выходов одноразрядных сумматоров в параллельном формате.
Xi
У*
Рм
SM Si
Pi
s„ Xi
У*
Рм
SM Si
Pi
Хп
Xi
У*
Рм
SM Si
Pi Уп
Xi
У*
Рм
SM Si
Pi с
Xi
У*
Рм
SM Si
Pi
XI
yi
Рм
SM i. Si
Pi
s2 х2 XI
yi
Рм
SM i. Si
Pi
х2 XI
yi
Рм
SM i. Si
Pi У2
XI
yi
Рм
SM i. Si
Pi
Xi
У!
Pi.,
SM s,
Pi
Si X I
Xi
У!
Pi.,
SM s,
Pi
X I Xi
У!
Pi.,
SM s,
Pi У1
0 г Xi
У!
Pi.,
SM s,
Pi
Рис. 1.15. Схема «-разрядного параллельного сумматора с последовательным переносом
Быстродействие такого сумматора определяется временем суммирования в разряде сумматора tc и временем распространения перено
са /р„ последовательно по всему л-разрядному сумматору, т. е. T = te+(n~l)tpi,. Следовательно, при формировании переноса от самого младшего к самому старшему разряду возникают заметные временные задержки получения результата. Дня повышения быстродействия сумматоры выполняют с использованием схем с ускоренным распространением переносов (параллельным или групповым). Цепь сквозного переноса является частью схем сумматоров и представляет собою цепь последовательно включенных схем И - ИЛИ. При этом в формировании сигнала переноса /-го разряда участвуют выходные сигналы всех предшествующих разрядов. Цепь сквозного переноса позволяет существенно снизить задержку формирования суммы, но и приводит к заметному усложнению структуры сумматора. Вопросы построения цепи сквозного переноса рассмотрены в литературе [ ].
Дешифратор - логическая схема, содержащая п входов и Т выходов и преобразующая «-разрядное двоичное слово в управляющий сигнал, который возникает только на одном из его выходов. Другими словами, дешифратор представляет собой совокупность схем И, формирующих управляющий сигнал "1" на соответствующем выходе, в то время как на остальных выходах сигналы отсутствуют. В табл. 11.10 отражены возможные состояния сигналов дешифратора на три входа (п = 3) и восемь выходов.
Таблица 11.10 Таблица истинности трехвходового дешифратора
Xl х2 Щ У° у, Уг Уз У< У5 Уб Уг 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 о о 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1 |о 0 0 0 0 0 0 1
Выходы дешифратора имеют нумерацию, совпадающую с десятичным представлением двоичного числа от 0 до 2" ' . Если, например, входное слово имеет код 101, то единичный сигнал будет только на пятом выходе дешифратора, т. е. ys = /. Число логических элементов дешифратора определяется числом выходов. Для схемной реализации каждого выхода дешифратора достаточно иметь один логический элемент И с числом входов, равным числу разрядов входного слова дешифратора, т.е. каждый выходной сигнал является минтермом вход-
123 ных сигналов, рассмотренном ранее для записи логического выражения функции в форме СДНФ. Отличие для дешифратора заключается в том, что каждый минтерм определяет свой независимый выходной сигнал
Полный дешифратор - дешифратор, имеющий столько выходов т, сколько различных комбинаций может иметь и-разрядное двоичное число на его входах, т. е. т = 2". Дешифратор может быть и неполным, например, для двоично-десятичного кодирования используется только 10 двоичных комбинаций из 16 возможных. В этом случае для дешифратора достаточно только 10 выходных сигналов.
По способу организации преобразования входного слова дешифраторы подразделяют на одноступенчатые (линейные) и многоступенчатые (прямоугольные, пирамидальные).
В соответствии с таблицей истинности (табл. 11.10) построим схему полного линейного трехразрядного дешифратора. Для наиболее распространенного элементного базиса И-НЕ удобнее реализовать линейный дешифратор с инверсными выходами, т.е. значения выходных сигналов yi в таблице истинности необходимо инвертировать. Тогда активным выходным сигналом будет уровень 0, и для каждого значения входного кода на соответствующем выходе будет активный сигнал, а на всех остальных выходах - пассивный (1).
На рис. П. 16, а приведена схема линейного дешифратора на три входа, у которого число выходов /я=23=8 с инверсными сигналами.
Дешифратор состоит из 8 логических элементов ЗИ-НЕ и 3 инверторов. Условное графическое обозначение дешифратора приведено На рис. 1.16, б. Символ функции дешифратора DC, инверсные выходные сигналы отображаются кружками у выходных выводов. Дешифраторы, как и другие функционально законченные узлы, выпускаются промышленностью в виде ИС средней степени интеграции или являются компонентами других устройств. Например, в ИС памяти дешифраторы выполняют функции адресации для выбора требуемых данных в матрицах запоминающих ячеек большого объема. В дешифраторах из-за ограниченности числа выводов ИС разрядность входного кода и число выходов невелико, типовое число разрядов входного кода 3-4, и, соответственно, число выходов 8-16.
Если длина дешифрируемого двоичного слова больше возможного числа входов, используют многоступенчатое (каскадное) построение дешифратора. Для применения дешифраторов в таких структурах ИС содержат
дополнительный вход управления. Дополнительный сигнал выполняет функции разрешения или запрета на формирование выходных
i 2 &
&
&
&
& i
&
->о 2 &
&
&
&
& i
&
1 • „ • 4 &
&
&
&
& i
&
, У ° i 2 6 &
&
&
&
& i
&
( 000 i
2о 3 I
&
&
&
&
& i
&
-,, т —
&
&
&
&
& i
&
1 У |
г \ . 11 6
&
&
&
&
& i
&
001 г \ . 4 2
&
&
&
&
& i
&
Т. 2
&
&
&
&
& i
&
5 3
&
&
&
&
& i
&
Уз Г~Т 6
&
&
&
&
& i
&
010 2 7 i 6 1
&
&
&
&
& i
&
i
22 1
&
&
&
&
& i
&
i
22 3
&
&
&
&
& i
&
Уз 6
&
&
&
&
& i
&
\ 011
2
&
&
&
&
& i
&
1 4
&
&
&
&
& i
&
У4 5
&
&
&
&
& i
&
100
1
&
&
&
&
& i
& 2
&
&
&
&
& i
& У5 5
&
&
&
&
& i
& 101
2
&
&
&
&
& i
&
3
&
&
&
&
& i
&
Уб 5
&
&
&
&
& i
&
по 1
&
&
&
&
& i
&
3
&
&
&
&
& i
&
, У7 5
&
&
&
&
& i
&
111
&
&
&
&
& i
&
DC °т 2° 1 ь
2 6 2' 3 Ь-
4 f V- 5 А.
6 i 7 4.
б
Рис. 11.16. Линейный дешифратор с инверсными выходами:
а - функциональная схема, б - условное графическое обозначение
сигналов. Например, для инверсного сигнала разрешения при активном (нулевом) уровне дешифратор формирует выходные сигналы в соответствии с кодом, поступающим на его входы. При пассивном (единичном) уровне сигнала разрешения все выходные сигналы находятся в пассивном состоянии независимо от поступающего входного кода.
На рис. 11.17 приведена схема двухступенчатого дешифратора с использованием сигналов разрешения, формируемых линейным дешифратором.
В качестве функциональных узлов двухступенчатого дешифратора используются трехразрядные линейные дешифраторы. Дешифратор DD1 своими выходными сигналами формирует сигналы разрешения Е для остальных восьми дешифраторов DD2-DD9, с выходов которых поступают выходные сигналы всего устройства.
Шестиразрядный входной код (adr0-adr5) функционально разделен на две части. Старшие разряды кода (adr3-adr5) поступают на дешифратор первой ступени (DD1), формируя сигналы разрешения Е для второй ступени, первая ступень выбирает один из восьми выходных дешифраторов в соответствии со своими входными кодами. Для кода старших
124
2"
2'
2 !
IE
DC
DD2
01 II 21 31 41 51 61 7 |
outu
2 2"
2'
2 !
IE
DC
DD2
01 II 21 31 41 51 61 7 |
, outl 2
2"
2'
2 !
IE
DC
DD2
01 II 21 31 41 51 61 7 |
, out2 ! 0Ut3 . 0UI4
3
2"
2'
2 !
IE
DC
DD2
01 II 21 31 41 51 61 7 |
, out2 ! 0Ut3 . 0UI4 KtiO -
•drl 2
2"
2'
2 !
IE
DC
DD2
01 II 21 31 41 51 61 7 |
, out2 ! 0Ut3 . 0UI4
2"
2'
2 !
IE
DC
DD2
01 II 21 31 41 51 61 7 |
2"
2'
2 !
IE
DC
DD2
01 II 21 31 41 51 61 7 |
t
7
1
2"
2'
2 !
IE
DC
DD2
01 II 21 31 41 51 61 7 | . out7
t
7
1 2"
2 '
2 J
E
DC
DDl
0O=-t
7
1 2°
2'
2 !
)E
DC
DD3
01 11 21 31 41 5^ 6< 7(
outS 2"
2 '
2 J
E
DC
DDl
liT 3
7
2 2°
2'
2 !
)E
DC
DD3
01 11 21 31 41 5^ 6< 7(
OUI9 2"
2 '
2 J
E
DC
DDl
3
7
2 2°
2'
2 !
)E
DC
DD3
01 11 21 31 41 5^ 6< 7(
outIO
2"
2 '
2 J
E
DC
DDl
3
7
3
2°
2'
2 !
)E
DC
DD3
01 11 21 31 41 5^ 6< 7(
outIO
2"
2 '
2 J
E
DC
DDl
»I *
7
3
2°
2'
2 !
)E
DC
DD3
01 11 21 31 41 5^ 6< 7(
2"
2 '
2 J
E
DC
DDl
3 6 -4 0 - - f
7
2°
2'
2 !
)E
DC
DD3
01 11 21 31 41 5^ 6< 7(
«itl2 out 13
2"
2 '
2 J
E
DC
DDl 6 0 - —L 7
2°
2'
2 !
)E
DC
DD3
01 11 21 31 41 5^ 6< 7(
outl4
H
2"
2 '
2 J
E
DC
DDl »
2°
2'
2 !
)E
DC
DD3
01 11 21 31 41 5^ 6< 7( 0UII5
2"
2 '
2 J
E
DC
DDl
2°
2'
2 !
)E
DC
DD3
01 11 21 31 41 5^ 6< 7(
_L
<?E
DC _out56 _out57
ОП158
_out59 _out60 _out61 _out62
out63
Рис. П.17. Двухступенчатый дешифратор с инверсными выходами
разрядов 000 активный сигнал разрешения Е поступает на дешифратор DD2, для кода 001 -на DD3 и т.д.
Младшие разряды входного кода (adrO-adr2) поступают параллельно на все 8 выходных дешифраторов. Но активным, т.е. формирующим активный уровень выходного сигнала, будет только один выходной дешифратор, на который поступил сигнал разрешения. Например, при коде 000000 активный сигнал логического нуля будет поступать с выхода outO, при 000001- с выхода outl, при 001001- с выхода out9 и т.д. до кода 111111 и выхода out63. Данная структура дешифратора (рис. П.17) позволяет построить полный дешифратор для кода 2б и, следовательно, 64 выхода.
Сигнал разрешения дешифратора первой ступени в данном примере (рис. П.17) имеет постоянный активный'уровень 0. При необходимости его можно использовать для дальнейшего увеличения разрядности входного кода, аналогичным образом можно построить третью ступень, четвертую ступень и т.д. Следует учитывать, что быстродействие многоступенчатых дешифраторов снижается, например, при двухступенчатой структуре время задержки определяется уже суммой задержек первой и второй ступени, т.е. примерно в два раза больше, чем в линейном дешифраторе.
Мультиплексор - комбинационная логическая схема, содержащая я информационных входов, £ управляющих адресных входов и 1 выход, сигнал на этом выходе определя
ется сигналом того информационного входа, адрес которого указан управляющим кодом. Следовательно, мультиплексор является коммутатором, который переключает информационные сигналы нескольких входов на общий выход в соответствии с поступающим двоичным кодом адреса входа.
Мультиплексор фактически является комбинацией дешифратора адресного кода и коммутационных элементов, выполняющих функции переключения информационных сигналов в соответствии с выходными сигналами дешифратора. Если в качестве коммутационных элементов применяются аналоговые ключи, такой мультиплексор позволяет коммутировать аналоговые сигналы и называется аналоговым мультиплексором.
Для коммутации цифровых сигналов можно использовать базовые логические элементы И, ИЛИ, подавая на них вместе с информационными двоичными сигналами управляющие выходные сигналы дешифратора адреса. Для реализации и аналоговых, и цифровых мультиплексоров необходимы линейные дешифраторы с прямыми выходами и соответствующей разрядностью адресного кода. Пример схемы цифрового мультиплексора с 4-мя входными каналами показан на рис. 1.18, а, а его условное графическое обозначение-на рис. 1.18,6. 1п0
Inl
adrl
DC
Out
InO
Inl MUX
In2
In3
adrO
adr l
i E
Рис. 11.18. Мультиплексор с 4-мя входными каналами: а - функциональная схема, б - условное графи
ческое обозначение
Мультиплексоры, так же как и другие комбинационные устройства, выпускается в виде ИС с разными функциональными возможностями. Кроме того, достаточно широкое применение имеют демультиплексоры - устройства, выполняющие противоположные коммутационные функции. В демультиплексорах один общий входной сигнал коммутируется на один из выходов, адрес которого также определяется двоичным кодом. Например,
демультиплексором может служить линейный дешифратор с прямыми выходами и входом разрешения Е. Если подавать общий информационный сигнал на вход Е, то в соответствии с адресным кодом дешифратора сигнал Е будет передан на выход, выбранный этим адресом.
12.4. Типовые последовательностные схемы
Все рассмотренные ранее логические схемы относятся к устройствам комбинационного типа. Однако большинство алгоритмов преобразования цифровых данных работают как последовательности отдельных операций и требуют сохранения определенных промежуточных результатов для их последующего использования. Такие последовательности операций не могут выполняться без элементов памяти, обеспечивающих хранение двоичных данных в течение требуемого времени. Основным логическим устройством, реализующим функции хранения двоичных данных (памяти данных), является триггер. Как указывалось ранее, логические устройства, содержащие элементы памяти, называют последовательностными, а их сигналы определяются не только поступающими в данный момент входными сигналами, но и данными, которые хранятся в элементах памяти и зависят от ранее поступавших сигналов.
Триггер — электронное устройство, с помощью которого можно записывать и хранить двоичную информацию. Он имеет два состояния равновесия, эти состояния характеризуются двумя сигналами - Q> Q . Выходные сигналы всегда взаимно инверсные и определяют состояние триггера: единичное при Q ~ 1, Q = 0 и нулевое при Q ~ "• Я ~ *.
Основным элементом триггера, выполняющим функции хранения данных, является биста-бильная ячейка (рис. II. 19).
1 0
1 J 1—
I 1 Ал
Рис 11.19. Бистабильная ячейка
Бистабильная ячейка состоит из двух инверторов, входным сигналом каждого инвертора является выходной сигнал другого, обра-
125
зуя «логическое кольцо». Это кольцо без внешних сигналов поддерживает на выходах сигналы, соответствующие одному из двух состояний равновесия.
Действительно, Q=0 автоматически определяет на инверсном выходе сигнал 1, а тот, в свою очередь, поддерживает начальное нулевое состояние. При противоположных уровнях сигналов также получается состояние равновесия. Таким образом, данная структура (рис, 1.19) позволяет обеспечивать хранение одной двоичной переменной двумя возможными состояниями равновесия.
Для практического применения бистабиль-ной ячейки необходимы средства управления ее состоянием, поэтому любой триггер можно представить в виде структуры, показанной на рис. 11.20.
ш S и гА и ч R/ ё 5 Ё. 5 i
й
Рис. Н.20. Стандартная структура триггера
Схема управления триггера по заданным алгоритмам обрабатывает поступающие сигналы управления и определяет состояние бис-табильной ячейки, в том числе обеспечивая и режим хранения данных. Схема управления триггера может быть комбинационным логическим устройством, но может содержать и собственные элементы памяти.
Триггеры различаются но алгоритмам управления и требуемым для управления сигналам, причем существует несколько стандартных алгоритмов работы и соответствующих им типов триггеров, основные из низе ММ-, D- JK- и Т-триггеры. Кроме этого, различают асинхронные и тактируемые (синхроннее) триггеры. В синхронных триггерах в дополнение к информационным входным сигналам в схему управления постукает тактовый сигнал С. Этот сигнал непосредственно не определяет состояние бистабильной ячейки, а выполняет только функции разрешения ш изменение ©е состояния В' соответствии с поступающими информационными сигналами. То есте» м&шю утверждать, что изменение выходных сигналов триггера синхронизировано тактовым сигналом,
Бистабильная ячейка и схема управления не всегда могут быть разделены из отдеяыиые элементы. Достаточно часто это межи» сделать только условно, одна и те же элементы участвуют в выполнении обеих функций, ,Г
126 построения базовой для триггеров структуры RS-триггера необходимо простые инверторы (НЕ) заменить на логические элементы И-НЕ, ИЛИ-НЕ.
На рис. 11.21 приведена функциональная схема (а) и условное графическое обозначение (б) простейшего асинхронного RS-триггера.
Таблица 1.10 Таблица состояний RS-триггера
т? г № а б
Рис. 11.21. Асинхронный RS-триггер на элементах ИЛИ-НЕ: а - функциональная схема, б - условное
графическое обозначение 0
В графическом обозначении символом функции триггера является буква Т в основном поле. Состояние триггера и хранимая двоичная информация определяются прямым и инверсным выходными сигналами. В отличие от комбинационных устройств состояние триггера зависит не только от сигналов R и S, но и от предшествующего состояния, характеризуемого его выходным сигналом Q„„i. В соответствии с этим логическое выражение для выходного сигнала триггера в общем виде является функцией всех трех переменных:
Qn =AR,s,Qn-d •
По аналогии с таблицей истинности для комбинационных устройств составим таблицу состояний триггера. В таблице состояний рассматриваются все наборы двоичных аргументов R, S, Q„.i логической функции Q„. Более наглядно свойства триггера отображаются, если для каждой пары значений входных сигналов R, S рассмотреть значения выходного сигнала при обоих предшествующих состояниях Q„_i .Тогда получим таблицу состояний RS-триггера в форме табл. 11.10, определяя уровни выходных сигналов для логических элементов ИЛИ-НЕ.
При R=S=0 состояние триггера не меняется (Qn= Qn-i), т.е. реализуется режим хранения данных - триггер сохраняет состояние, в котором он находился до поступления на его входы нулевых сигналов..
При R=l и S=0 триггер устанавливается в нулевое состояние (Q„=0), при R=0 и S=l - в единичное состояние (Q„=l); для этих комбинаций входных сигналов устанавливается состояние, не зависящее от предшествующего.
При R=S=1 на прямом и инверсном выходах устанавливается нулевой
S R Q,M Q„ Q„ Примечание
0 0 0 0 1 Хранение Q„=Q„-i
0 0 1 1 0 Хранение Q„=Q„-i
0 1 0 1 0 1 Установка 0 Q„=o 0 1 1 0 1
Установка 0 Q„=o
1 0 0 1 0 Установка 1 Qn=l 1 0 1 1 0
Установка 1 Qn=l
1 1 0 0 0 Запрещено Qn=Qn
1 1 1 0 0 Запрещено
Qn=Qn
сигнал. Бистабильная ячейка превращается в два независимых инвертора, т.е. нарушаются связи «логического кольца». При переходе к хранению информации (R=S=0) триггер может устанавливаться в любое из возможных состояний, поэтому такая комбинация входных сигналов запрещена.
По таблице состояний (табл. 11.10) функционирование RS-триггера можно описать логическим выражением:
О =S vQ Т, S &R =0.
Заменив логические элементы ИЛИ-НЕ элементами И-НЕ, получим схему RS-триггера с инверсными входами (рис. 11.22).
S
г *ff R Ч-1_5
Q
Q
Рис. 11.22. Асинхронный RS-триггер с инверсными входами: а - функциональная схема, б - условное
графическое обозначение
Работа этой схемы аналогична работе рассмотренной выше схемы. Разница состоит только в том, что активным уровнем входных сигналов является уровень логического 0: режим хранения - R=S=1, запрещенный режим -- R=S=0, установка 1 - R=l и S=0, установка О - R=0 и S=l, с соответствующим изменением логического выражения.
Запрещенный режим, являющийся одним из свойств RS-триггера, может искажать данные. Конечное быстродействие элементов цифровых устройств приводит к эффекту «состязаний»: при изменении каких-либо сигналов корректно сформированные результаты изменений появляются с задержкой, возможно принимая нежелательные промежуточные зна-
127 чения в переходном режиме. Появление же входных сигналов запрещенного режима неизбежно приводит к неопределенности хранящихся в триггере данных и, следовательно, к получению некорректных результатов их преобразования. Одним из эффективных методов устранения эффекта «состязаний» в цифровых устройствах является синхронизация - применение периодических тактовых последовательностей сигналов, которые разрешают прием и обработку данных только в те интервалы времени, когда переходные режимы уже завершаются.
Применение синхронизации в триггерах достаточно распространено, она позволяет существенно расширить их функциональные возможности. Для преобразования асинхронного триггера в тактируемый (синхронный) необходимы дополнительные логические элементы, как показано на рис 11.23. Дополнительные логические элементы И-НЕ (рис. 11.22, а) переводят триггер в режим хранения при С=0, так как на бистабильную ячейку поступают сигналы режима хранения независимо от значений сигналов на входах R и S. Когда 0=1, по входам R и S триггер работает так же, как и асинхронный.
1 ц г Рис. 11.23. Тестируемый RS-триггер: а - функцио
нальная схема, б - условное графическое обозначение
Традиционно принято сигналы синхронизации обозначать буквой С, как показано в условном графическом обозначении такого триггера на рис. 11.23, б. Данный способ синхронизации принято называть тактированием по уровню, так как разрешение или запрет на изменение состояния триггера зависит только от уровня сигнала синхронизации. Другой, более важный для реализации ряда функциональных возможностей способ - это тактирование фронтом сигнала синхронизации.
При тактировании фронтом изменение состояния триггера происходит только в момент переключения сигнала синхронизации. Тактирование может' производиться передним фронтом (переключение 0—»1) или задним фронтом (переключение 1—*0) синхросигнала. Этот способ синхронизации требует усложнения схемы управления триггера и, как правило. реализуется в двухступенчатых структурах, называемых также двухтактными.
Двухступенчатый (двухтактный) RS-триггер состоит из двух тактируемых уровнем RS-триггеров, алгоритм взаимодействия которых принято называть ведущий-ведомый (master-slave). Изменение состояния выходных сигналов двухступенчатого триггера производится в два этапа. На первом этапе в ведущем триггере в соответствии с поступившими информационными сигналами формируется состояние, определяющее будущее состояние выходного (ведомого) триггера, но само изменение состояния выходного триггера не производится. На втором этапе запрещается изменение состояния ведущего триггера и одновременно производится передача сформированного в ведущем триггере состояния в выходной триггер. По данному алгоритму работает KS-триггер, схема которого приведена на рис. 11.24.
п 43-
.1 Т¥ _ §
sC Я я
Рис.. 11,24. Тактируемый фрвктш ШИгряпгерг а - функциоаальдея схема, б ~ уеяввяое гщфнчтше
обозяачеяш
В триггере (рис, 11.24, а) первому такту (этапу) изменения состояния соответствует сигнал синхронизации С—I, так как яа ведомый триггер сигнал синхронизации (С%) поступает' с инверсией, оя в жшмш этого тасга находится в режиме хранения. Изменения состояния велушего триггера (Qy. яршшэди-щие в этом интервале т .. .. аЁегаиш сигналов Si и R|, не влияют на вытащите шгшям (Q1), Е момент переключеяии синхросигнала 1—*0 состояние ведущего тряпгера (Qg) §'лтшруеТ' ся, так как он иершэдйяг в режим хранения. Одновременно ведомый гри ер• i .уешдпт в режим приема сигналоь S2,, Шг н, следовательно, его выходные сигналы будут ИОМвряп-
- - - . - ' - , - - " . Пока продолжается второй таит (С=в)\ лю
бые изменений входных гм:ияг.'л Е и S ие .ю-гут привести к каиим.пти€-о измеие'-''^гм сх"йа-лов в тли таг. • « - 7р-'"ге;:. наии дится Б режиме хранения и не реагирует иаэтм изменения. Новый пипсл рас-сты ийнинтьетет е' момента обратит;о иершл-тонн ш ЕЙшр©£яг* ваяа при пс'.' про иг хоти1": ьооурао- .<• те:гз.тч<г/ •лапт с оФоутотаием иш ет-йгний в-сснгдашго; so-сгояния.
128
Таким образом, можно утверждать, что состояние триггера по выходным сигналам изменяется только в момент переключения синхросигнала te*0 и соответствует значениям входных сигналов R и S только в этот момент времени. __
Для обозначения этой особенности работы триггера условное графическое обозначение (рис. 11.23, б) содержит дополнительную линию у входа С. Наклон этой дополнительной линии определяется активным фронтом синхросигнала; для данного примера активный фронт - задний и наклон линии сверху вниз (\), при переднем активном фронте - наклон снизу вверх (/). Двухступенчатая структура триггера дополнительно отображается двойным Т (ТТ) в символе функции основного поля на условном обозначении.
Тактирование фронтом снижает вероятность приема сигналов запрещенных входных состояний, но не устраняет ее полностью. В связи с этой особенностью управления RS-триггеры имеют ограниченное применение. На их основе обычно реализуют различные устройства с алгоритмами управления, лишенными неопределенности, которая характерна для RS-триггеров.
Один из режимов управления, получивший название счетного режима, реализуется введением обратных связей для формирования нового состояния триггера. В счетном режиме по каждому входному сигналу производится переключение триггера в состояние, противоположное предшествующему, такой триггер называют Т-триггером или триггером со счетным входом.
На рис. П.25 показана структура обратных связей в тактируемом фронтом RS-триггере для перехода к счетному режиму и условное графическое обозначение Т-триггера. Алгоритм переключения триггера в состояние, противоположное предшествующему по каждому активному фронту сигнала С, будет реализован, если сигнал S определяется предшествующим состоянием инверсного выхода, а сигнал R - прямого выхода.
Е
п т ^ _5
_S
а 6 Рис 11.25. Т-трштер: а - функциональная схема, б -
условное графическое обозначение Необходимо понимать, что счетный режим
возможен только в двухступенчатой структуре, так как необходимо сохранять сигналы
предшествующего состояния до тех пор, пока не завершено формирование сигналов нового состояния. В данном случае вторая ступень задает сигналы управления по предшествующему состоянию, а изменение состояния происходит только тогда, когда первая ступень уже переходит в режим хранения сформированного ранее нового состояния.
Временные диаграммы сигналов на рис. 11.26 иллюстрируют счетный режим работы триггера.
АС
1 X / U l f Q-R 'r+ т • -1 \ ь f5=S ! 1
| 1 L Рис. П.26. Временные диаграммы сигналов Т-
триггера
Первое переключение Т-триггера по заднему фронту сигнала С происходит по сигналу S=l, поступающему с инверсного выхода, второе переключение - по сигналу R=l, поступающему с прямого выхода, и т.д.
Если входной сигнал периодический с периодом т, то период выходного сигнала 2т (см. рис. 11.25), и это свойство Т-триггера достаточно широко применяется в делителях частоты. Если рассматривать входные сигналы Т-триггера как последовательность двоичных переменных, то выходной сигнал является суммой по модулю 2 входных сигналов. Эта особенность счетного режима служит основой построения счетчиков сигналов, являющихся распространенным функциональным узлом в цифровых устройствах.
Другой, широко применяемый алгоритм работы получил название D-триггера или триггера задержки. Для управления состоянием D-триггера используется один информационный сигнал D и обязательный сигнал синхронизации С. Режим хранения в этом триггере реализуется только при пассивном уровне синхросигнала, при активном синхросигнале выходное состояние повторяет состояние сигнала D. Именно поэтому его называют триггером задержки, так как сигнал D задерживается в выходном сигнале до поступления активного сигнала С.
В соответствии с этим D-триггер может быть только тактируемым и наличие сигнала С обязательно, в противном случае он теряет
т способность хранить данные и просто повторяет поступающий сигнал D. D-триггеры могут быть одноступенчатыми (тактируемыми уровнем синхросигнала) или двухступенчатыми (тактируемыми фронтом синхросигнала). Временные диаграммы сигналов одноступенчатого D-триггера показаны на рис. 11.27.
ниш "О" / "Г
~ т — ' — f 1»-
1ДЛ—I Рис. 11.27. Временные диаграммы сигналов D-
триггера
tpH С=0 (первый интервал времени для ала С во временной диаграмме) D-триггер
в режиме хранения, поэтому изменения сигнала входа D не влияют на его состояние (Q=0), Во втором временном интервале (С=1) триггер в режиме приема, поэтому все изменения сигнала D повторяются на выходе Q. В третьем интервале (С=0) триггер хранит неизменным начальное состояние этого интервала (Q=l). Несмотря на переключение сигнала D в этом интервале, изменение состояния триггера произойдет только в начале четвертого интервала при С=1. Для двухступенчатого D-триггера изменение состояния будет происходить только один раз за период синхросигнала, это изменение определяется уровнем сигнала D в момент активного фронта синхросигнала.
Рассмотренные ранее RS-триггеры можно легко преобразовать в D-триггер. Беям 5 ss Д a R = D __ состояние триггера будет
соответствовать сигналу D после каяодого активного сигнала С. Обратите внимание, что информационные сигналы В и S никогда не принимают запрещенные значения и, следовательно,'Неопределенности в состоянии триггера не происходит ни при каких обстоятельствах.'По этим сигналам также не могут формироваться и значения, обеспечивающие режим хранения.
.На рис. 11.28, а показано включение инвертора для преобразования RS-триггера в Ш-триггер, а на рис. 11.28, б приведено его условное графическое обозначение. В зависимости от свойств исходного триггере можем получить • D-триггер, тактируемый уровнем или Фронтом, поэтому наклонная ЛИНИЯ ВХОДЯ С показана пунктиром. Если используется двух-с^пенчатый триггер (тактируемый фронтом).
введение обратной связи (&mQ , щ, рш, П.28, в) переводит D-триггер в счетный режим,, рассмотренный выше.
W Н -4с 44
Рис, И.2& D-триггер; a - фуянцявняяыш» у mam roe графическое «бошлчюю, 4 '? ЩШ№№Щ№
счетмого триггер* и* Р-григг #р#
Основной режим работ В-триггера, птм* ляющий записывать и хранить данные, м&т&* рые поступают на его информационный «кед, широко используется три построения регнеГ' ров - устройств, шытйяттцт ш Фвтвтм функции хранения данных иди щтёртттт их форматов.
Другим ржтртжражтшш н и ш щтщт является Ж-трйгтер, Ш нет сохраняют* я ш ° висимые входы установив «аэдда® ©ШШЙШ триггера; S - втщ установки 1, К - шэд fern* мошки 0, В огаичне от BS-tgvirrepa гамйнш--ция сигналов J-K—1 не являете* тщр^щттзй? а переводят триггер ш ©четеий ршзщ.- Ш шш режиме JK-трнтгер терешштж^т ш wswm* ние, противоположное ярвця^ярамвшу щ, следовательно, невпрещеяешюеш ©Фетшиет не происходит.
Так ЕЖ ететоий реями являете» едиш да основяых, Жй-трттр т&ш яздветэд Щ/& ступенчатой егрутурЩ, я «Прим© ЙЙЙЙ» всегда должны у«йетдашми> да |кршрйЮ¥1№ сигналов ущтшкшя, Ш сбившими <е ;рй^ занюню особенноспями ШЯШР шетяшго* JK--триггер, вводя я©о#йадяии» ДЙИЯВЙМШ * Я§-триггер (рис.. ll.,2<fe>.
ДрНШННЯ8ШШ& ШтШШШЁН Ш » ттт практшш ею НШЙЙВЙФГ |ps®»tMW решивши # »1 . Еети -иригт^ | я ^ мкадго» sipg-
ливших шгдажш JH1 и КИЮ,, даяшшда p w шямше уштвж ш ИЙ*ЩЙ& дашштар • ярда© не ф^рм^даш- Цда JNKHl <§$$№№&
130
получается стандартная структура триггера в счетном режиме. Для J=K=0 получаем режим хранения, в том числе и при активном фронте синхросигнала. Таким образом, сохраняя отдельные и независимые входы установки, JK-триггер также исключает неопределенность ВЫХОДНОГО" состояния.
Так как счетный режим является одной из особенностей JK-триггеров, наибольшее применение они получили в счетчиках различного типа, которые достаточно распространены, как стандартные цифровые узлы.
Триггеры всех перечисленных типов выпускаются промышленностью в виде отдельных ИС или в составе более сложных функциональных узлов. Как правило, в триггерах комбинируют несколько алгоритмов управления состоянием. Например, двухступенчатый триггер какого-либо типа дополнительно содержит асинхронные входы установки выходного состояния. Эти входы обычно используют для независимой установки всех сигналов в определенное состояние, чаще всего для начального сброса всех элементов памяти в исходное состояние.
Триггеры, реализуя связанные с хранением данных функции, вместе с комбинационными логическими элементами образуют основной элементный базис цифровых устройств различного назначения. В таких стандартных цифровых узлах, как регистры и счетчики, триггеры являются основными функциональными элементами.
Регистр - функциональное устройство, предназначенное для приема и запоминания п-разрядного двоичного кода, а также для выполнения определенных операций преобразо^ вания этого кода. Он представляет собой упорядоченную совокупность триггеров с заданным алгоритмом управления входными и выходными сигналами. Разрядность регистра, т.е. длина двоичного кода, соответствует количеству используемых в нем триггеров. Каждый триггер регистра обеспечивает хранение и преобразование одного бита.
С помощью регистров можно осуществлять хранение данных с возможностью) быстрого доступа к ним, операции преобразования: последовательного формата в параллельный и наоборот, сдвига, эквивалентного умножению или делению числа на 2к, и т.п. По способу приема и передачи информации различают последовательные, параллельные и параллельно-последовательные регистры.
Выполнению требуемых в регистрах операций функционально лучше всего соответствуют D-триггеры. Хотя в регистрах и возможно
применение любых других разновидностей триггеров, рассмотрим основные структуры, построенные на D-триггерах.
Самой простой структурой является параллельный регистр. Практически параллельный регистр представляет собой набор и триггеров с независимыми информационными входами и выходами. Функциональная связь триггеров в регистре обусловлена только общими сигналами записи, которые управляют приемом сигналов, поступающих на информационные входы.
Данные на информационные входы должны поступать одновременно, изменение этих информационных сигналов должно завершаться к моменту поступления активного состояния сигналов записи. Последующие изменения информационных входных сигналов допустимо выполнять только при пассивном состоянии сигналов записи. Основным входом для сигнала записи обычно является вход тактирования триггеров. Тогда выходные сигналы неизменны и доступны для обработки данных в любые интервалы времени, кроме тех, в которых производится прием новых сигналов. Данные на входах и выходах поступают одновременно в форме параллельного двоичного кода во всех триггерах регистра, именно с этим свойством связано название - параллельный регистр.
На рис. 11.30 приведена схема параллельного 4-разрядного регистра, построенного на D-триггерах. Эта структура соответствует функциональным возможностям типовой ИС средней степени интеграции. Триггеры в регистре, содержащие асинхронный вход сброса в нулевое состояние R, также стандартны. Информационными входами регистра являются D-входы триггеров. Запись данных, поступающих на эти входы, производится общим для всех триггеров тактовым сигналом С.
<ъ D
.С
R
Т
<
Q*
=±ft
Qn:
D j
Рис. 11.30. Параллельный 4-х разрядный регистр
В зависимости от типа триггеров запись данных может разрешаться активным уровнем сигнала (С=1 для одноступенчатых триггеров) или активным фронтом сигнала (С=1—»0 для двухступенчатых триггеров). Полагая по традиции, что разряды двоичного числа в регистре располагаются справа налево, крайнему
правому разряду присваиваем вес 2° и индекс О для его сигналов. Веса следующих двоичных разрядов и соответствующие им индексы последовательно нарастают.
Второй вход записи - это вход установки (R) всех выходных сигналов в нулевое состояние. Его стандартным назначением является начальный сброс данных в исходное состояние. При поступлении R=l все выходные сигналы Q/ устанавливаются в 0 независимо от сигналов на других входах, так как обычно приоритет асинхронного входа R выше. Дальнейшей работа регистра в стандартном режиме требует, чтобы постоянно поддерживался уровень сигнала R=0, в противном случае регистр не будет принимать сигналы других входов.
Для описания работы устройств не обязательно отображать структуру внутренних связей регистра, стандартное условное графическое обозначение (рис. 11.31) в достаточной мере дает информацию о функциональных особенностях регистра. Символ функции регистра - буквы RG в основном поле условного обозначения.
Основным функциональным назначением параллельных регистров является хранение данных с возможностью быстрой записи (один такт синхросигнала триггеров) и постоянной готовностью выходных данных для обработки во все остальные интервалы времени. Например, такие
О» KG D, а 0'-0, 0,
X сь в Q,
Рис 11.31. Уставное обозначение параллельного регистра
регистры содержатся в любом микропроцессоре и обеспечивают хранение промежуточных результатов преобразования данных, выполнял функции сверхоперативного запоминающего устройства и поддерживая возможность самого быстрого доступа к данным.
Более сложные функции выполняют последовательные регистры, называемые также регистрами сдвига. Особенность регистров сдвига заключается в обработке сигналов последовательного формата. Параллельный формат, рассмотренный выше, эффективен с точки быстродействия: одна операция выполняется в течение одного такта синхросигнала. Прячем речь идет не только еб операциях записи для хранения, но и о любых операциях преобразо-*®Ш .данных. Как указывалось ранее, дам не-
131
ключения искажений данных в переходные периоды, когда производится их изменение, широко применяется синхронизация (тактирование). При параллельном формате, когда все биты двоичного кода поступают одновременно, один период (такт) синхросигнала соответствует времени, необходимому для формирования всех информационных сигналов одной операции. У параллельного формата ест* существенный недостаток - для передачи многоразрядного двоичного кода требуется соответствующее число сигналов и линий ввода-вывода. Одновременная передача большого количества сигналов усложняет структуру связей, да и не всегда возможна, В современных интерфейсах, предназначенных для организации обмена данными между различными устройствами, физически невозможно реализовать отдельиук» линию ввода-вывода для каждого бита данных,
В последовательном формате «-разрядный двоичный код передается: по одной линии ввода-вывода последовательно во времени — в одном такте передается один бит. Конечно, время в п раз увеличивается, но требуется только одна сигнальная линия. Именно последовательный формат является основным видом представления данных практически в© всех применяемых интерфейсах микропроцессорной техники,
В отличие от параллельного регистра, ш котором можно применять ш одностутжииишиё, и двухступенчатые триггеры, регистр сдвига можно построить только та деухсгуиеячатмж триггерах. Необходимо ташюе иовямаш. я@ка длится процесс записи, «защии ратае наступивший бит должен храниться ш триггерах регистра. Данные дам вбраНоткм мшшю иео@д&-зовать только после завершения ярима, таж как данные подвергаются изменениям в течение всех п тактов записи.
Так как обработка ддашаик в мякршрярг-серных, устройствах иршааэдштея ш параллельном формате, а гоэсиедшшетьймв фдршт в основном необходим дам яравд£д$|> ююда-вывода? современные реетветрав сдаявг» «йяичи© поддерживают я парядяшьмый, я п ш ж д ш -тельный ршимы, Нсвдбм% в (дшмашедш случаев pwerp** сддаяга бшжшсятш ш ~шщшм~ дедьионшосяедшажилшу «шву, Ш иакик. реда-страх вдамвявяы рашетшда шмбйиаряю р ^
pca'j'Mfaps •: вой j--..aruJ*s ддаищ, шшииш остальных ршиаш •едар-йвшзда memsmw <ж
ц - >- / реалижаарж-
132
реализации режимов последовательного ввода и вывода с сохранением параллельного вывода. Как уже отмечалось, последовательный формат требует обязательного применения двухступенчатых (двухтактных) триггеров. Для последовательного формата необходимо обеспечить последовательную передачу хранящихся в триггерах состояний по каждому синхросигналу. Эту операцию каждого такта можно выполнять, если соединить D-вход каждого следующего триггера с выходом предыдущего триггера (рис, 11.32).
У cf
У Do°ln
О.
Рис 11.32.4-х разрядный регистр сдвига
В регистре сдвига (рис. П.32) отсутствуют входы параллельной записи, так как D-входы триггеров служат для приема сигналов последовательного формата. Параллельная запись сохраняется только в виде сброса в нулевое состояние сигналом R. Входом для последовательной записи является вход триггера младшего разряда двоичного числа D0, выходом данных последовательного формата - выход триггера старшего разряда Q3. Данные последовательного формата поступают на входе и выходе, начиная со старшего разряда двоичного кода. Передача каждого бита сопровождается тактовым сигналом С. Таким образом, прием данных возможен только в последовательном формате, а выдача - в последовательном и параллельном форматах.
Условное графическое обозначение такого регистра показано на рис. П.ЗЗ.
RG
Out
Рис. 11.33. Условное графическое обозначение регистра сдвига
Дополнительным элементом обозначения для регистра сдвига является стрелка над символом функции RG; направление стрелки указывает направление сдвига: налево - в сторону старших разрядов, направо - в сторону младших разрядов двоичного числа.
Алгоритм работы этого регистра иллюстри-руется временными диаграммами сигналов на рис. 11.34 и рис. 11.35. На первой временной диаграмме (рис. П.ЗЗ) показаны сигналы в ре-гистре при последовательной записи кода 1011.
Сигнал R=l в начальном интервале времени (0) производит установку всех выходных сигналов в нулевое состояние, в течение всей остального времени R=0 для того, чтобы не нарушалась обработка других сигналов.
Входной информационный сигнал In должен принимать состояние первого бита (1) в начале 1-го такта записи. По активному (заднему) фронту 1-го тактового импульса С этот бит записывается в триггер Qo, что показано на временной Диаграмме (рис. 1.33) пунктирной линией со стрелкой. В этом же такте преды-1 дущее значение Q0 перепишется в Q b Q, - в Q2, Qi:- в Q3; так как всё эти сигналы были нулевыми, изменений в их состоянии не происходит. В результате сформируется выходной код 0001.
П. 1! ШЖШХ .
In ! ! V
J iiUJ п Г I, :_jno~ I
1 t * ! m\ p,
AQj "!-*-,
L-. Q. i i i *r,
Рис 11.34. Временные диаграммы сигналов в регистре сдвига при приеме
К моменту активного фронта 2-го тактового импульса С входной сигнал In уже переключается в 0, поэтому в регистре запишется Qo=0. Этот же тактовый импульс, поступая одновременно на все триггеры регистра, перепишет значения сигналов из триггера в триггер, обеспечивая последовательный сдвиг двоичного кода. На выход поступит двоичный код 0100.
В 3-м такте поступает 1п=1, в результате приема этого сигнала и последовательной перезаписи состояний триггеров произойдет сдвиг вправо на один разряд, а выходной код будет иметь значение 0101. В 4-м такте, завершающем прием последовательного кода, поступает 1п=1 и в результате последовательной перезаписи будет сформирован выходной
код 1011. После 4-го такта выходной код принятого в последовательном формате двоичного числа может обрабатываться уже в параллельном формате.
В целом, со стороны внешних сигналов процесс приема последовательного кода можно охарактеризовать следующим образом:
- для записи п-разрядного двоичного кода необходимо п тактовых импульсов;
- изменение значения бита входного кода должно завершаться до начала активного фронта каждого тактового импульса, первым должен поступать бит, который записывается в дальний от входа триггер;
- пока продолжается прием данных, выходной код меняется, на каждом такте происходит сдвиг текущего значения выходного кода на один разряд;
- значение выходного кода в параллельном формате, полностью соответствующее принимаемому последовательному коду, доступно только по завершению последнего такта записи.
Так как поступление каждого тактового импульса производит сдвиг всего двоичного кода на один разряд от входного триггера к выходному, регистр может служить не только для приема, но и для передачи данных в последовательном формате. Данные для передачи необходимо предварительно записать в регистр и затем передавать в виде сигналов на выходе триггера старшего разряда, формируя п тактовых импульсов. Временные диаграммы сигналов при передаче приведены на рис. 11.35.
,R
t
с
о / ,1п
1 у | 2 \ / з у J 4 \ tb
с
о / ,1п i
! t
|Qo i 1 1 1 1
! t
tQ' I 1 t
0 I 0 I !\ i
AQJ : 1 1 • 1/ 1 • b,
Рис. П.35. Временные диаграммы сигналов в регистре при передаче
В начальный момент времени (такт 0) в триггерах должен быть записан двоичный код для передачи (1011). Если на входе последовательной записи In сигнал нулевой, по заднему фронту 1-го тактового импульса С произойдет
133
сдвиг выходных сигналов триггеров на один разряд, на выходы поступит код 0110. По 2-му тактовому импульсу сформируется кодООП, по 3-му импульсу - код 0001, по 4-му импульсу - код 0000. Следовательно, последовательный код на выходе Q3 передается в течение тактов 0-3, после 4-го тактового импульса выходной код соответствует нулевому сигналу входа In.
Прием выходной двоичной последовательности требует тактовой последовательности, синхронизированной с формируемыми сигналами, причем для данного примера (рис. 11.34) необходимо запись данных производить с опережением на полпериода тактового сигнала. Изменение выходного кода производится по заднему фронту, для предотвращения искажений при записи прием необходимо выполнять с опережением, например, по переднему фронту.
В соответствии с процессами, происходящими в обоих режимах регистра сдвига, можно утверждать, что прием очередного последовательного кода и выдачу ранее записанного можно вести одновременно. Для этого необходима одна тактовая последовательность, синхронизированная с поступающими кодами на входе и формируемыми сигналами на выходе.
Как видно из временных диаграмм, в процессе приема и передачи выходные сигналы изменяются, сдвигая выходные коды в каждом такте работы. В тех случаях, когда промежуточные изменения недопустимы, применяют двухступенчатую структуру последовательно-параллельного регистра, образованного регистром сдвига и параллельным регистром (рис. 11.36).
Поел, ввод
~чС
RG
Парая. вывод
и Поел, вывод
Рис. 11.36. Последовательно-параллельный регистр
Параллельный регистр обеспечивает постоянство выходных кодов, а регистр сдвига -преобразование форматов. Перезапись данных в параллельный регистр производится в те моменты времени, когда данные в регистре сдвига уже преобразованы в параллельный формат. Если в регистре сдвига тактирование должно осуществляться только фронтом синхросигна-
134
ла, то в параллельном регистре тактирование синхросигналом параллельного вывода данных может использоваться по уровню.
Регистры сдвига применяются не только для преобразования форматов данных. Очевидно, что сдвиг на один двоичный разряд эквивалентен умножению или делению числа в регистре на 2, так как перемещение бита в соседний разряд автоматически увеличивает или уменьшает его вес.
При выполнении и умножения, и деления в одном и том же регистре необходимо управлять направлением сдвига: сдвиг в сторону старших разрядов увеличивает веса битов (умножение), сдвиг в сторону младших разрядов -уменьшает веса (деление). Регистры с управляемым направлением сдвига называют реверсивными регистрами. В реверсивных регистрах дополнительный сигнал направления определяет способ формирования входного сигнала D каждого триггера. Сигнал D определяется либо состоянием соседнего слева триггера, либо состоянием соседнего справа в зависимости от сигнала направления. Такой способ построения связей между триггерами несложно реализовать с помощью базовых элементов И, ИЛИ.
Для расширения возможностей применения при ограниченной номенклатуре ИС регистры так же, как и другие типы стандартизованных узлов, выпускаются в виде многофункциональных устройств. Как правило, регистры поддерживают различные режимы ввода-вывода, позволяя в каждом конкретном случае реализовать определенные, требуемые для этого применения режимы работы. Рассмотренные примеры показывают лишь структуры, иллюстрирующие выполнение основных операций преобразования в регистрах.
В микропроцессорных устройствах регистры являются весьма распространенными компонентами, участвуя в реализации многочисленных функциях хранения и преобразования данных. Типичными операциями можно назвать операции обмена данными между отдельными устройствами микропроцессорной системы, здесь основные функции связаны с применением регистров различных типов.
Счетчик представляет собой устройство, которое предназначено для подсчета числа сигналов, поступающих на его вход, и отображения этого числа в виде двоичного кода, хранящегося в триггерах. Количество разрядов счетчика определяется наибольшим числом, которое должно быть получено как результат его работы. Для счета и выдачи результатов в
счетчиках имеется один вход и и выходов в соответствии с количеством разрядов.
В общем случае двоичный счетчик имеет М=2П устойчивых состояний. Счетчик, установленный в определенное состояние, сохраняет его до тех пор, пока на вход не поступит следующий сигнал. Каждый входной сигнал переводит счетчик в следующее состояние, эти состояния образуют строго упорядоченную последовательность. Последовательность состояний счетчика соответствует последовательности чисел 0, 1, 2, ..., М—1. Если в какой-то момент времени счетчик находится в i-м состоянии, то оно определяется числом поступивших на счетчик сигналов. При подаче на вход счетчика М-го входного сигнала на выходе его возникает сигнал переполнения и счетчик возвращается в начальное состояние 0, т. е. можно сказать, что счет единичных сигналов осуществляется в нем по модулю М или с периодом счета, равным М.
Счетчики широко применяются в микропроцессорной технике и других устройствах автоматики, например, для формирования адресов, команд, счета количества циклов выполнения операций, формирования кода в аналого-цифровых преобразователях и т. д.
По целевому назначению счетчики подразделяют на простые (суммирующие или вычитающие) и реверсивные. В простых счетчиках сигналы поступают с одним знаком, т. е. эти счетчики переходят от состояния к состоянию только в одном направлении. Суммирующий счетчик предназначен для выполнения счета в прямом направлении, т. е. для сложения. С подачей на вход очередного сигнала состояние счетчика увеличивается на единицу. Вычитающий счетчик предназначен для выполнения счета единичных сигналов в режиме вычитания. Каждый сигнал, поступающий на вход такого счетчика, уменьшает его выходной код на единицу. Реверсивные счетчики предназначены для работы и в режиме сложения, и в режиме вычитания.
По способу организации счета счетчики подразделяются на асинхронные (последовательные) и синхронные (параллельные). В асинхронных счетчиках сигналы от разряда к разряду передаются последовательно, естественным путем: только изменение выходного сигнала предыдущего разряда служит причиной изменения состояния следующего разряда. В синхронных счетчиках сигналы состояния от разряда к разряду передаются параллельно, а изменение состояния производится принудительно и одновременно с помощью синхросигналов триггеров счетчика.
Наиболее простая структура характерна для асинхронного двоичного счетчика. Как отмечалось ранее, триггер в счетном режиме производит суммирование входных сигналов по модулю 2. При соединении двух Т-триггеров можно получить суммирование по модулю 4, трех - по модулю 8 и т.д. Именно на этой возможности основана схема счетчика, представленная на рис. 11.37.
X 1 -4 \т - j
135
0. пппппппппппппппп,
! пШш 1 пп, i ,Q,
t* t
J f t t
Рис. 11.37. Асинхронный двоичный счетчик
В данном двоичном счетчике могут применяться любые триггеры со счетным режимом, как уже отмечалось, чаще всего применяют JK-триггеры. Важным ограничением является необходимость тактирования триггеров задним фронтом синхросигнала. В этом случае счетчик работает как суммирующий, для триггеров с активным передним фронтом - счетчик вычитающий.
Входным сигналом каждого последующего Т-триггера (/+1)-го разряда служит сигнал (Q,) состояния предыдущего триггера /-го разряда, а входной сигнал хсч поступает на вход триггера первого разряда. Веса двоичных разрядов и соответствующие им индексы последовательно нарастают. Такое распределение весов противоположно традиционному для записи чисел, но удобнее для отображения связей в схемах счетчиков. Сигнал R выполняет стандартную функцию установки начального состояния 0000. Работу счетчика удобнее описать с помощью временных диаграмм сигналов (рис. П.38).
Как и в других устройствах с памятью, сигналом R = 1 устанавливаем триггеры в начальное состояние. Входные сигналы хсч, которые изменяют состояние счетчика поступают на вход триггера младшего разряда двоичного кода Q0. По каждому заднему фронту этого сигнала триггер изменяет состояние на противоположное предшествующему. Входным сигналом для второго триггера служит выходной сигнал первого, поэто-му его каждый задний Фронт изменяет состояние второго триггера. Таким же образом второй триггер управляет состоянием третьего, а третий - состоянием четвертого. Моменты времени, в которые происходят первые переключения каждого триггера, показаны на временных диаграммах (рис. П.38) пунктирными линиями.
Рис. 11.38. Временные диаграммы сигналов двоичного счетчика
Условное графическое обозначение двоичного счетчика (рис. 11.39) строится по таким же принципам, как и других функциональных узлов, символом функции счетчика служит СТ2 в основном поле условного обозначения.
-х„
Рис. 11.39. Условное обозначение 4-х разрядного двоичного счетчика
По временным диаграммам можно составить таблицу состояний счетчика (табл. II. 11).
Таблица 1.11 Таблица состояний суммирующего
двоичного счетчика
%сч Q3 Q2 Q, Qo ^сч Q3 Q2 QJ Qo
0 0 0 0 0 8 1 0 а 0
1 0 0 0 1 9 1 0 0 1
2 0 0 1 0 10 1 0 1 0
3 0 0 1 1 11 1 0 1 1
4 0 I 0 0 12 1 1 0 0
5 0 1 0 1 13 1 1 0 1
6 0 1 ] 0 14 1 1 1 0
7 0 1 1 I 15 1 1 1 1
Последовательность двоичных чисел, характеризующих состояния счетчика, соответствует числу входных импульсов Хсч, поступивших на его вход. После каждого импульса число увеличивается на 1, определяя режим работы, как
136
суммирование входных сигналов. При поступлении 16-го импульса счетчик возвращается в состояние 0000, а сигналом переполнения может служить задний фронт выходного сигнала старшего разряда (0з).
Нетрудно показать, что применение в счетчике триггеров, переключающихся по переднему фронту синхросигнала, изменяет режим счетчика на вычитающий. Действительно, при поступлении первого же входного импульса триггер Qo переключится в 1, передний фронт этого сигнала переключит Qi в 1, Qi переключит 02, а 02, в свою очередь, - Q3. Поэтому начальное состояние счетчика 0000 изменится в состояние 1111, далее, по следующему входному импульсу будет состояние 1110, затем — 1101 и т.д. Последовательность смены состояний теперь соответствует уменьшению чисел от максимального к начальному, что и характерно для вычитающего счетчика.
Следует отметить, что тот же вычитающий режим реализуется в рассмотренном ранее счетчике, если на входы триггеров подавать инверсные выходные сигналы предыдущих разрядов. С точки Зрения характера переключений этот способ изменения режима счетчика полностью эквивалентен и позволяет легко реализовать реверсивный счетчик с управляемым направлением счета. Дополнительные логические элементы И-ИЛИ на рис. 11.40 выполняют функции управления режимом по сигналам "+" и "-". Так как счет одновременно в обоих режимах невозможен, можно сформировать общий сигнал управления режимом с инвертированием значений, например, 1 -суммирование, 0 - вычитание.
Ом-
Qi
£
тт
•R Ь-Г
Ом
а Рис. 11.40. Управление режимом счета в реверсивном
счетчике
Недостаток асинхронного счетчика с последовательным переносом от разряда к разряду заключается в зависимости длительности переходного процесса от его разрядности. Это связано с тем, что возрастает задержка поступления сигнала на вход С некоторого /-го разряда относительно времени поступления входного сигнала хсч. С ростом разрядности счетчика понижается предельная частота его работы. Кроме того, последовательный перенос приводит к возникновению промежуточных состояний в переходном процессе.
Например, при суммирующем переключении из состояния 0111 происходит последовательная смена состояний 0111 —• 0110 —* 0100 —* 0000 -^ 1000. Хотя и длительность промежуточных состояний, определяемых быстродействием триггеров, невелика, они могут привести к ошибкам обработки выходных данных. Поэтому, несмотря на простоту реализации, асинхронные счетчики имеют ограниченное применение.
Для повышения быстродействия и, главное, устранения ошибочных промежуточных состояний счетчики выполняются с параллельным переносом. В таких счетчиках наиболее эффективно применение Ж-триггеров. В параллельных счетчиках входной сигнал хсч поступает одновременно на тактовые входы всех триггеров, а состояния всех предыдущих триггеров формируют сигналы разрешения для данного триггера. Сигналами разрешения в триггерах и служат сигналы J, К: при нулевых сигналах - запрет переключения, при единичных - счетный режим.
Определить алгоритм формирования этих сигналов можно по таблице состояний двоичного счетчика (табл. 1.11). Для режима суммирования необходимо рассматривать последовательность состояний от начального 0000 к конечному 1111, для режима вычитания последовательность состояний обратная - 1111 -»0000.
Рассмотрим режим суммирования. Первый триггер Qo переключается каждым входным сигналом, поэтому разрешение должно поступать постоянно. Второй триггер Qi переключается при предыдущем значении Qo=l, переход состояний 1—*2, 3—»4, 5—>6 и т.д. Третий триггер Q2 переключается, когда оба триггера перед ним находились в состояниях 1, переход состояний 3—>4, 7—»8 и т.д. Четвертый триггер переключается, когда все три предыдущих триггера в состояниях 1, переход состояний 7—*8, 15—• 16(0). В общем случае правило для формирования сигналов разрешения в режиме суммирования можно сформулировать следующим образом: в параллельном счетчике сигналы разрешения определяются единичными состояниями всех предыдущих разрядов.
Для режима вычитания первый триггер Qo переключается каждым входным сигналом, поэтому разрешение также должно поступать постоянно. В этом режиме смена состояний счетчика по табл. 1.11 производится в обратном порядке от большего кода к меньшему,
137 т.е. снизу вверх по таблице. Второй триггер Q, переключается при предыдущем значении Q0 = О, переход состояний 14—>13, 12~>11, 10-»9 и т.д. Третий триггер Q2 переключается, когда оба триггера перед ним находились в состояниях 0, переход состояний 12->11, 8->7 и т.д. Четвертый триггер переключается, когда все три предыдущих триггера в состояниях 1, переход состояний 8-»7, 0(16) -> 15. Тогда правила для формирования сигналов разрешения в режиме вычитания - сигналы разрешения определяются нулевыми состояниями всех предыдущих разрядов.
По этим правилам несложно построить параллельный счетчик на JK-триггерах. Пример такой реализации суммирующего 4-разрядного счетчика показан на рис. П.41.
Рис 11.41. Суммирующий 4-разрядный счетчик
Входной сигнал счетчика хсч поступает одновременно на входы тактирования всех триггеров. Входы J и К первого триггера Q0 можно использовать как общий сигнал разрешения работы счетчика EI. Пока EI = 0, первый триггер, а, следовательно и все остальные, не переключаются даже при поступлении сигналов хсч. Так как сигналы разрешения триггеров определяются единичными состояниями предыдущих триггеров, счетчик последовательно увеличивает выходной код по каждому сигналу хет. Сигнал переноса Р формируется при единичных состояниях всех триггеров и предназначен для формирования переноса в следующий разряд. Задний фронт этого сигнала поступает в момент сброса счетчика в исходное состояние по 16 входному сигналу.
Необходимо помнить, что в отличие от асинхронного счетчика, изменение фронта сигналов тактирования триггеров не приводит к изменению направления счета. В параллельном счетчике при этом произойдет только временной сдвиг момента переключения в новое состояние. Как было показано, направление счета в параллельном счетчике определяется только способом формирования сигналов разрешения для триггеров. Применяя в цепях формирования сигналов разрешения логические элементы И-ИЛИ, несложно реализовать Реверсивный счетчик.
В силу одновременности переключения триггеров общим сигналом тактирования быстродействие в параллельных счетчиках определяется задержкой только одного триггера, а не всей последовательности триггеров. Промежуточные состояния кода в переходном режиме также не возникают. Однако структура связей существенно усложняется: чем больше разрядность, тем больше сигналов определяет формирующиеся сигналы разрешения и тем больше должно быть число входов у логических элементов И.
В счетчиках, выпускаемых в виде ИС, введение дополнительных связей внутри завершенной структуры невозможно. В этих случаях можно использовать комбинированную, параллельно-последовательную структуру. Триггеры в составе отдельной ИС образуют параллельный счетчик, а отдельные параллельные счетчики включены каскадно, создавая последовательную структуру (рис. 11.42).
ге £ rll
Рис. 11.42. Параллельно-последовательный 12-разрядный счетчик
На схеме 12-разрядного счетчика показано функциональное назначение сигналов, свойства комбинированной структуры , аналогичны свойствам асинхронного счетчика, так как перенос от группы к группе триггеров производится последовательно, параллельное изменение состояний внутри каждой группы, конечно, приводит к соответствующему повышению быстродействия.
Во всех рассмотренных схемах счетчиков последовательность 2" состояний формируется как последовательность двоичных чисел.. В то же время существуют счетчики с иной последовательностью состояний. Одна из таких, достаточно широко применяемых структур получила название счетчика Джонсона. Счетчик Джонсона строится на основе регистра сдвига, замкнутого инверсной обратной связью в кольцевую структуру (рис. 11.42).
Назначение входных сигналов такое же, как и в предыдущих счетчиках, но формируемые состояния существенно отличаются. После сигнала сброса R=l на все выходах формируются нулевые сигналы, а входные
138 %. -
tfr-tfr- \ In
•*-RG
Q. In S5 0.
0.
ч1-' Q. _& № о, _St
Q. * R 4> R Q>
R
Рис. П.43.8-разрядный счетчик Джонсона
сигналы Хсч, поступающие на входы тактирования (сдвига) в регистрах, будут определять последовательность состояний, приведенную в табл. 1.12.
Таблица 11.12 Таблица состояний 8-разрядного счетчика Джонсона
хс. 9? 9* 9г Qi Q? 9* 9i 9<i 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 3 0 0 0 0 0 4 0 0 0 0 5 0 0 0 6 0 0 7 0 8 9 0 10 0 0 11 0 0 0 12 0 0 0 0 13 0 0 0 0 0 14 0 0 0 0 0 0 15 0 0 0 0 0 0 0
Так как сигнал, замыкающий кольцо в регистрах, инвертируется, то при нулевом значении Q? на вход 1-го регистра поступает 1. Пока состояние этого разряда не меняется каждым сигналом Хсч производится запись -1 в младший разряд Qo и сдвиг предыдущих значений на один разряд (смена состояний от 0 до 8). Как только в старшем разряде запишется 1, на вход In будет поступать 0, и начнется запись нулевых значений них последовательный сдвиг в регистрах (состояния от 8 до 15). 16-й входной импульс вернет выходной код в исходное состояние, следовательно, модуль счета 16. В общем случае счетчик Джонсона имеет 2*л состояний, в отличие от 2" состояний двоичного счетчика. Двоичные коды на выходах счетчика Джонсона нельзя рассматривать как взвешенный двоичный код, т.е. выходные коды не являются последовательностью нарастающих двоичных чисел с весами разрядов 2'. Кроме того, формируется лишь небольшая часть возможных значений 8-разрядного двоичного кода: всего 2*8=16 из возможных 28=256 полного двоичного кода. Соответствие между числом входных импульсов и выходным кодом отражено в табл. 11.12.
Так же как и в двоичном счетчике, модуль счета определяется количеством триггеров. Хотя и при равном их количестве модуль счета в счетчике Джонсона меньше, они достаточно широко применяются как параллельные счетчики с недвоичным модулем счета.
Реализация недвоичного модуля счета возможна не только в счетчике Джонсона. Любой двоичный счетчик, рассмотренный ранее, можно преобразовать в счетчик с заданным модулем счета меньшим 2". Для этого необходимо каким-либо способом исключить определенную часть состояний, являющихся «лишними» для выбранного способа кодирования. Например, широко применяемый двоично-десятичный код 8-4-2-1 допускает значения 0000-1001, соответствующие двоичным кодам десятичных цифр, то есть недопустимыми являются коды 1010-1111.
В асинхронных недвоичных счетчиках обычно используется комбинационная схема для определения недопустимых состояний с формированием сигнала установки счетчика в начальное состояние. Примером такой реализации является двоично-десятичный суммирующий счетчик на рис. 11.44.
и &
С
х„
Рис. И.44. Асинхронный двоично-десятичный счетчик
По таблице состояний двоичного счетчика (табл. 1.11) несложно определить, что комбинация сигналов <2з=1, Qi=l не появляется ни в одном из разрешенных состояний двоично-десятичного счетчика (0000-1001), но соответствует первому же недопустимому состоянию 1010. Поэтому для формирования сигнала сброса в начальное состояние (0000) достаточен анализ только этих сигналов (логический I элемент И на рис. 1.43).
В параллельных недвоичных счетчиках более эффективен другой способ для устранения недопустимых состояний. Анализируя последовательность состояний двоичного счетчика, можно определить алгоритм формирования сигналов разрешения J, К для триггеров счетчика, который обеспечит их переключение в требуемой последовательности. Примеры такой реализации подробно рассмотрены в литературе.
139
ч Алгоритмические основы программирования
П.3.1. Исходные понятия программирования
Исполнитель - человек или автоматическое устройство, умеющее выполнять вполне определенный конечный набор действий.
Предписание - приказ на выполнение некоторого набора действий.
Система предписаний - совокупность допустимых предписаний.
Программа - последовательность предписаний на выполнение определенной работы.
Всякое действие производится над некоторыми объектами. Один из них -переменная - имя объекта, принимающего свое значение в процессе вычислений.
Значение переменной можно: - переслать в другую переменную (при
этом значение исходной переменной не меняется, а значение второй переменной принимает значение исходной переменной);
- изменить по результату выполнения некоторой операции (/ = / +1, / = А+В и т. п.).
Присвоение -назначение имени некоторому объекту.
Алгоритм - это правило, определяющее процесс переработки исходных данных в искомые результаты и сформулированное на некотором языке. Правило характеризуется понятностью для исполнителя, массовостью и определенностью. В случае применимости к исходным данным правило потенциально осуществимо.
По своей структуре алгоритмы могут быть: -линейными; -циклическими; -ветвящимися. Линейный алгоритм - алгоритм, в котором
решение задачи представляется последовательностью действий (этапов) «от начала до конца».
Циклический алгоритм - алгоритм, в котором имеют место случаи многократного (циклического) повторения некоторой последовательности этапов. Для определения необходимого количества этих повторений после каждого выполнения цикла производится проверка некоторого условия. Выполнение условия вызывает выход из цикла и переход к следующему этапу выполнения программы.
Ветвящийся алгоритм - алгоритм, в котором выбор последовательности этапов решения задачи определяется некоторым условием, формируемым в процессе решения задачи. Например, алгоритм решения системы двух уравнений с двумя неизвестными:
ахх + Ьху = сА а2х + Ь2у = с2)
описывается формулами:
_ схЪ2-с2Ьх _ахс2-а2сх
ахЪ2-а2Ъх ахЬ2-а2Ъх
Очевидно, что перед выполнением вычислений значений переменных х и у целесообразно провести проверку знаменателя на нуль и, в зависимости от этого производить вычисления, либо завершить задачу сообщением «система не имеет решения».
Разработанный алгоритм можно описать различными способами:
- на естественном языке; - в виде блок-схемы (логической схемы),
граф-схемы или структурограммы. - на алгоритмическом языке. Для того чтобы записать алгоритм в виде,
облегчающем дальнейший переход'к записи на алгоритмическом языке, определим некоторые соглашения по терминологии.
Начало и конец алгоритма будем обозначать словами «Начало» и «Конец» соответственно.
Этап обработки данных будем обозначать «v = выражение». Это значит, что после выполнения действий, описываемых правилом вычисления «выражение», переменной v будет присвоено значение результата.
Этап проверки условия будем описывать так: «если условие, то перейти к п. А, иначе к п. В».
Этап перехода к заданному этапу будем описывать так: «перейти к п. N».
И.3.2. Логические схемы алгоритмов
Схема алгоритма - графическое представление алгоритма, дополненное элементами словесной записи. Каждый пункт алгоритма изображается графическим
140
элементом установленной формы (ГОСТ 19.002-80,19.003-80):
< ~ >
- блок вычислений (последовательность)
- блок модификации
- логический блок (проверка условия)
- стандартная программа (подпрограмма)
CZJ
CZD О О
г L
- блоки ввода-вывода
- блок начала - конца
• внутристраничныи соединитель
- межстраничный соединитель
-комментарии
Графические элементы соединяются линиями потока информации, при этом число входных линий блока не ограничивается, а выходная линия может быть только одна (для логических блоков - две или более). Точку входа линии оформлять стрелкой.
Блок может включать несколько однотипных операций:
1 с—д
1
Для повышения наглядности схемы при большом числе линий и их пересечений производится упорядочение ее структуры с использованием соединителей как в пределах листа, так и между листами:
/71 /~7
Нумерация блоков производится в верхней части графического элемента в разрезе его
из контура:
Существенным недостатком блок-схем является их громоздкость. Для более компактного представления логических схем алгоритмов и программ используются граф-схемы. Граф-схема изображается в виде совокупности точек (вершин), которые соединяются стрелками:
в •
Точке на граф-схеме соответствует один блок блок-схемы. Стрелки указывают направление переходов.
Анализ граф-схемы позволяет доказать работоспособность изображаемой с ее помощью блок-схемы. Это основывается на следующем утверждении: граф-схема алгоритма считается верной, если каждая из точек граф-схемы лежит на конечном пути, ведущем из точки входа в точку выхода, то есть если выполняются следующие два условия:
- не должно быть точек, которые не могут быть достигнуты из точки входа;
- не должно быть точек, которые не ведут в точку выхода.
Структурное программирование. Циклические алгоритмы. Структурное программирование — это методология разработки и документирования алгоритмов. Оно воплощает принципы системного подхода в программировании и основано на следующих принципах:
1. Алгоритм и программа должны составляться поэтапно (по шагам);
2. Сложная задача должна разделяться на достаточно простые части с одним входом и одним выходом;
3. Логика алгоритма и программы должна основываться на минимальном наборе элементарных базовых структур.
Фундаментом структурного программирования является теорема о структурировании: любая задача может быть описана алгоритмом (или программой), представленным ограниченным числом элементарных базовых управляющих
141 структур. Такими базовыми структурами являются:
Последовательность Ветвление
s2
Р " > 1
S, s2
№1 *
Цикл с предусловием То же с постусловием
Такой набор базовых структур обладает функциональной полнотой, то есть любой алгоритм может быть представлен их композицией.
По своей структуре алгоритмы и программы могут быть линейными, циклическими и ветвящимися. Линейные алгоритмы мы рассматривали на предыдущем занятии. Очевидно, что для представления линейных алгоритмов достаточно одной базовой структуры «последовательность».
При большом числе повторяющихся однотипных операций программа решения задачи будет громоздкой. Для ее упрощения целесообразно выделить последовательность операций в так называемый цикл, то есть многократно повторяющуюся часть алгоритма, после выполнения которой производится переход к следующему пункту алгоритма. Общая структура циклической программы имеет следующий вид:
( К&пец.J
Блоки 2,3 и 4 составляют тело цикла.
Цикл с одним входом и одним выходом и не содержащий других циклов внутри себя, называется простым. Цикл, в котором имеетея более одного входа и выхода, либо содержащий ветвления или вложенные в него циклы, называется сложным.
Характеристики цикла: - вид цикла (простой или сложный); - способ задания очередных обрабатываемых данных; - количество повторений цикла. Пример П.5. Разработать блок-схему алго
ритма вычисления произведения натуральных чисел п и т с использованием операции сложения. Результат обозначусь через к.
Решение:
Изображение- этого же алгоритма с щью граф-схемы выглядит так;
П 3.3. Струк1урвгрв»шы
Структурограммы ( ш и н Язеш-Шнайдермана) реализуют тшт етрряижяг® программирования е схемах алгэрвшйв, €5ии представляют собой схему передач упродишин от блока к блоку не с лошощыю» дашкш вш-фориация, а с шпющде лредотавяеяии юи>-женности структур-
142 Поскольку структурное программирование
основано на использовании базового набора элементарных структур, то необходимо определить этот набор и здесь. Он включает в себя:
Блок обработки:
Блок следования:
у:= a+b*Cosx z:= х2 +у2/4
Блок решения:
Блок варианта:
< ^ ^ ^ М : N
N:=N-M
> ^ ^ ^
N:=N-M M-M-N
^ \ ^ ~ . N:=N-M
M-M-N NOD:=M
Цикл с предусловием:
П ока S х„
Цикл с постусловием:
До/>и
В остальном изображение алгоритмов с помощью структурограмм аналогично изображению с помощью блок-схем.
Пример П.6. Разработать структурограмму алгоритма умножения чисел п и т с использованием операции сложения.
Решение:
Начало
Ввод(п.т) К:~0, i:«l
К:=к+ , i :=l i > т
Н?1Г7^—^ _ — - - Да" Печать к
Конец
П.3.4. Разветвляющиеся алгоритмы
Процессы обработки данных, в которых в зависимости от значения некоторого признака обработка производится по одному из нескольких возможных направлений, называется разветвляющимися. Каждое из этих возможных направлений называется ветвью. Признак разветвления - это параметр, характеризующий свойство исследуемых данных и который может иметь два или более значений. В качестве признака могут использоваться:
- знак числа ("+" или "- "); - отношение числа к нулю (=0, >0, <0, *0); - характер отношений между операндами
(a<b, a=b, а*Ь). Проверка значения признака состоит в про
верке выполнения логического условия. Оно называется простым, если ему соответствует только две ветви разветвляющегося процесса, иначе оно называется сложным.
Существует два вида разветвляющихся программ, различающих простые логические условия:
- с непересекающимися ветвями:
- с пересекающимися ветвями:
Да _ _ ^ * ^ Лог. Нет ~^-чОП<ер ат <№*- ' ' ~^-чОП<ер ат <№*-
Ветвь 1
~^-чОП<ер ат <№*-
h i
Ветвь 2
+ Продолжение вычислении
Сложное логическое условие - это условие содержащее более двух ветвей. Оно может быть представлено в виде некоторой логической функции простых логических условий:
При программировании сложных логических условий размещение ветвей в памяти необходимо производить в соответствии со статистической оценкой частоты перехода на ту или иную ветвь программы. При этом ветви с большей частотой следует располагать левее.
условие L-
"^условие 2>
,. условие р^>
' • 1 • • '
Ветвь 1 Ветвь 2 Ветвь р Ветвь р +1
144
II. 4. Архитектура микропроцессорной системы
П.4.1. Понятие микропроцессорной системы
Любую систему обработки информации можно представить структурной схемой, приведенной на рис. 11.48.
Аналоговые _^ Аналоговые сигналы Электронная
система с сигналы
Цифровые сигналы —.
неизменяемой логикой {обработка и хранение информагрш)
-Цифровые сигналы
неизменяемой логикой {обработка и хранение информагрш)
Цифровые коды =$ =£> Цифровые
коды
Рис. 11.48. Электронная система
Она моделирует так называемую систему с «жесткой логикой», способ обработки информации в которой определяется структурой связей между элементами системы. Любое изменение функции (алгоритма) преобразования входной информации в выходную требует введения новых (удаления ставших ненужными) элементов и изменения структуры связей между элементами системы, т.е. ее перепроектирования, изготовления и отладки. Такой способ построения системы целесообразно использовать только при массовом потреблении и редком изменении алгоритма преобразования информации, т.е. для построения специализированных систем. Он имеет свои достоинства:
- специализированная система (в отличие от универсальной) никогда не имеет аппаратурной избыточности, то есть каждый ее элемент обязательно работает в полную силу (конечно, если эта система грамотно спроектирована);
- специализированная система может обеспечить максимально высокое быстродействие, так как скорость выполнения алгоритмов обработки информации определяется в ней только быстродействием отдельных логических элементов и выбранной схемой путей прохождения информации.
Самым большим недостатком цифровой системы на "жесткой логике" является то, что для каждой новой задачи ее надо проектировать и изготавливать заново. Это процесс длительный, дорогостоящий, требующий высокой квалификации исполнителей. А если решаемая задача вдруг изменяется, то вся аппаратура должна быть
полностью заменена. В нашем быстро меняющемся мире это довольно расточительно.
Путь преодоления этого недостатка довольно очевиден: надо построить такую систему, которая могла бы легко адаптироваться под любую задачу, перестраиваться с одного алгоритма работы на другой без изменения аппаратуры и задавать тот или иной алгоритм путем ввода в систему некой дополнительной управляющей информации, программы работы системы, как показано на рис. 11.49.
Аналоговые сигналы
Цифровые сигналы
Электронная система с неизменяемой логикой (обработка
~* Аналоговые сигналы
Цифровые сигналы
Цифровые коды =*
и хранение информации) 2 Цифровые
коды
Т Управляющая информация (программа)
Рис. 11.49. Программируемая (она же универсальная) электронная система
Тогда система станет универсальной, или программируемой, не жесткой, а гибкой. Именно эти качества и обеспечиваются в микропроцессорных системах.
Но любая универсальность приводит: - к избыточности, причем, чем проще ре
шаемая задача по сравнению с возможной для данной системы, тем избыточность выше;
- к существенному снижению быстродействия, при этом оно, как правило, находится в обратной зависимости от гибкости и универсальности системы.
Таким образом, системы на "жесткой логике" хороши там, где решаемая задача не меняется длительное время, где требуется самое высокое быстродействие, где алгоритмы обработки информации предельно просты. Универсальные, программируемые системы хороши там, где часто меняются решаемые задачи, где высокое быстродействие не слишком важно, где алгоритмы обработки информации сложны.
Следует отметить, что за последние десятилетия быстродействие универсальных (микропроцессорных) систем сильно выросло (на несколько порядков). К тому же большой объем выпуска микросхем для этих систем
145 привел к резкому снижению их стоимости. В результате область применения систем на "жесткой логике" резко сузилась. Более того, высокими темпами развиваются сейчас программируемые системы, предназначенные для решения одной задачи или нескольких близких задач. Они удачно совмещают в себе как достоинства систем на "жесткой логике", так и программируемых систем, обеспечивая сочетание достаточно высокого быстродействия и необходимой гибкости. Именно это обстоятельство привело к широкому применению микропроцессоров в цифровых системах автоматического управления.
Обобщенная структура цифровой системы управления представлена на рис. 11.50.
* • МПС " , им V, ОУ У, * • МПС им ОУ
Рис. 11.50. Обобщенная структура цифровой системы управления
Сравнение ее с аналогичной структурой непрерывной системы показывает, что основным отличием цифровой системы является выполнение непрерывного регулятора в виде микропроцессорной системы (МПС). Поэтому для проектирования цифровых систем управления необходимо рассмотреть аппаратную и программную компоненты МПС и процесс преобразования требуемого закона управления объектом в программу работы МПС и ее отладки.
П.4.2. Архитектура микропроцессорной системы
Типичная структура микропроцессорной системы приведена на рис. 11.63.
Рис. 11.63. Структура микропроцессорной системы
Она включает в себя три основных типа устройств:
-процессор;
- память, включающую оперативную память (ОЗУ, RAM - Random Access Memory) и постоянную память (ПЗУ, ROM - Read Only Memory), которая служит для хранения данных и программ;
- устройства ввода/вывода (УВВ, I/O -Input/Output Devices), служащие для связи микропроцессорной системы с внешними устройствами, для приема (ввода, чтения, Read) входных сигналов и выдачи (вывода, записи, Write) выходных сигналов.
Все устройства микропроцессорной системы объединяются общей системной шиной (она же называется еще системной магистралью или каналом).
Процессор заменяет практически всю "жесткую логику", которая понадобилась бы в случае традиционной цифровой системы. Он выполняет арифметические функции (сложение, умножение и т.д.), логические функции (сдвиг, сравнение, маскирование кодов и т.д.), временное хранение кодов (во внутренних регистрах), пересылку кодов между узлами микропроцессорной системы и многое другое. Количество таких элементарных операций, выполняемых процессором, может достигать нескольких сотен.
При этом надо учитывать, что все свои операции процессор выполняет последовательно. Конечно, существуют процессоры с параллельным выполнением некоторых операций, встречаются также микропроцессорные системы, в которых несколько процессоров работают над одной задачей параллельно, но это редкие исключения.
С одной стороны, поодедовахеяъиое выполнение операций — несомненное достоинство, так как позволяет с помощью всего одного процессора выполнят*, любые, самые сложные алгоритмы обработки информация",
Но последовательное' выполнение оперений приводит к тому, что время выполнения алгоритма зависит от его вычислительной сложности: простые алгоритмы выпояняются быстрее сложных.
Память микропроцессорной системы подразделяется, как указывалось выше, ш оперативную ш постоянную, В пергой хранятся рабочие копии программ ббрэбдаки данных и результаты промежуточных: вычислений, а в© второй хранятся исходные данные, основные колик программ ш окончательные результаты их работы.
146
Устройства ввода-вывода связывают микропроцессорную систему с внешним миром. Они вводят в систему текущие данные с внешних устройств-датчиков информации и выводят во внешний мир результаты анализа входных 'данных" и сигналы управления внешними устройствами.
Системная магистраль включает в себя четыре основные шины нижнего уровня:
- шина адреса (Address Bus); - шина данных (Data Bus); - шина управления (Control Bus); - шина питания (Power Bus). Шина адреса служит для определения
адреса (номера) устройства, с которым процессор обменивается информацией в данный момент. Каждому устройству (кроме процессора), каждой ячейке памяти в микропроцессорной системе присваивается собственный адрес. Когда код какого-то адреса выставляется процессором на шине адреса, устройство, которому этот адрес приписан, понимает, что ему предстоит обмен информацией. Шина адреса может быть однонаправленной или двунаправленной.
Шина данных — это основная шина, которая используется для передачи информационных кодов между всеми устройствами микропроцессорной системы. Обычно в пересылке информации участвует процессор, который' передает код данных в какое-то устройство или в ячейку памяти или же принимает код данных из какого-то устройства или из ячейки памяти. Но возможна также и передача информации между устройствами без участия процессора. Шина данных всегда двунаправленная.
Шжоупртяежж в отличие от шины адреса и шины данных состоит из отдельных управляющих сигналов. Каждый из этих сигналов во время обмена информацией имеет свою функцию. Некоторые сигналы служат дня стробйрованмя передаваемых или принимаемых данных (то есть определяют моменты времени, когда информационный код выставлен на шину данных). Другие управллвдщне сигналы могут использоваться для подтверждения приема данных, для сброса всех устройств в исходное состояние, для тактирования всех устройств и т.д. Линии шины управления могут быть однонаправленными или. двунаправленными.
Наконец, штат тытттш предназначена не для пересылки информационных сигналов, а для питания системы. Она состоит из линий питания и общего провода. В микропроцессорной системе может быть один
источник питания (чаще +5 В) или несколько , источников питания (обычно еще -5 В, +12 В , и -12 В). Каждому напряжению питания , соответствует своя линия связи. Все устройства подключены к этим линиям , параллельно.
Если в микропроцессорную систему надо , ввести входной код (или входной сигнал), то с процессор по шине адреса обращается к г нужному устройству ввода/вывода и v принимает по шине данных входную информацию. Если из микропроцессорной k системы надо вывести выходной код (или выходной сигнал), то процессор обращается по с шине адреса к нужному устройству й ввода/вывода и передает ему по шине данных выходную информацию. 0
Если информация должна пройти сложную многоступенчатую обработку, то процессор н может хранить промежуточные результаты в н системной оперативной памяти. Для в обращения к любой ячейке памяти процессор л выставляет ее адрес на шину адреса и передает / в нее информационный код по шине данных р или же принимает из нее информационный код с по шине данных. В памяти (оперативной и постоянной) находятся также и управляющие коды (команды выполняемой процессором программы), которые процессор также читает по шине данных с адресацией по шине адреса. Постоянная память используется в основном для хранения программы начального пуска микропроцессорной системы, которая выполняется каждый раз после включения питания. Информация в нее заносится изготовителем раз и навсегда.
Таким образом, в микропроцессорной системе все информационные коды и коды , ; команд передаются по шинам последовательно, по очереди. Это определяет сравнительно невысокое быстродействие микропроцессорной системы. Оно ограничено обычно даже не быстродействием процессора (которое тоже очень важно) и не скоростью обмена по системной шине (магистрали), а именно последовательным характером передачи информации по системной шине (магистрали).
Архитектура микропроцессора - это пользовательское представление о ег° логической организации, определяющей возможности микропроцессора по аппаратной и программной реализации функций микропроцессорной системы. Понятие архитектуры микропроцессора отражает:
— его структуру, т.е. совокупность компонентов, составляющих микропроцессор,
I
я связей между ними; для пользователя достаточно ограничиться регистровой моделью микропроцессора; Щ способы представления и форматы данных;
- способы обращения ко всем программно-доступным для пользователя элементам структуры ( адресация к регистрам, ячейкам постоянной и оперативной памяти, внешним устройствам);
набор операций, выполняемых микропроцессором;
-характеристики управляющих слов и сигналов, вырабатываемых микропроцессором и поступающих в него извне;
- реакцию на внешние сигналы ( система обработки прерываний и т.п.).
Структурная схема процессора приведена на рис. 11.51. Для выполнения возложенных на него функций в структуру процессора входят внутренние регистры RG, арифметико-логическое устройство (АЛУ, ALU Arithmetic Logic Unit) , мультиплексоры, буферы, регистры и другие узлы. Работа всех узлов синхронизируется общим внешним тактовым
8 - разрядная тутре-ияя штш дштыж
Регистр комта} Регистр О
Регистр В
tv-yj
Регметз С
Регжтр аафдаэ| Г J [
п — II в 11 4 Штш жрш*
;РИс1Ь51- Структурная схема мигрояроиесгвра
сигналом процессора.. Таким обрами* процессор представляет собой довольно сложное аппаратно-программное цифровое устройство. Рассмотрим его осяовияе компоненты.
Арафштико-тгтеское устройство, В со-став любо! ЭВМ вжедапг арифметшо-логичесжое устройство (АЛУ)- Он© виишияет некоторый набор арифметических я м$т&-ских операций над входными словами (шю-Рандами) фишаяроиваия®» разрядности, выдавая резрпиапг в вид© выходного слижа той ж«
147
разрядности. Вид выполняемой в АЛУ ешра-ции задается устройству внешним иодом операции Коп, При арифметических операциях АЛУ учитывает перенос из младших разрядов и генерирует перенос в старшие разряды результата. Логические операции выполняются параллельно и независимо над соответствующими битами операндов.
При выполнении операций АЛУ формирует ряд признаков, хранящихся некоторое время в регистре признаков PSW- Они используются для оценки полученного результата и, возможно, выбора направления дальнейших вычислений. В числе формируемых признаков:
- признак переноса в старшие разряды (де--релолнения разрядной сейш);
- примак лояупереноса (переноса да младшей тетрады в следующую);
- признак нулевого (либо ненулевого1) результата;
- признак четкости (ш#о нечетности) результата, И Т.Д.
Приящш дейстшт шмйкшщшитт АЛУ у д о б н о ПОЯСНИТЬ 6 ЯШЙОЩЬЮ (|рЯЩИ©ЙШЬЙ©Й
схемы, приведенного на рис, 1IJ2.. Зда» изобретши© двужразрядиое АЛУ* ©feeaPffliKSS ' щее выявляв»© чежвех ШВЦШЯЙЙ:.' ш§шр§д-ииж яояиешик Ж, ИЛИ,, жшвтющег® Kff l и арнфмешчесяого слетшив.. Схвш теетрй©-iia на ocuwfg набора М ^ Ш Ш Р Й Й И Ж у&¥^ рожш? жшлшгащях «^жиие (aigjPiiftWy ш вяжвдиях мудашяяяка9р®е ЙЯШ, Муяиив-лексоры передают т яшедн АЛУ №Ш№№ сигналы тех щ»*Й!Вйввдщ»1Ий» ^етрзйе»^ es>-терме ршвщшг шш ради©,, задай»рд> ЙЭДЙМ операций.-
ОЙрври
(fli
HI
Смтй ШЖ. :щтщ>тшщштФ ф р м р а ш н ю
Ш2 - мршйяшв» цщрдаюй (штш фщрр-
148 Признаки Z и Р формируются всегда, а при
знак F2 - только при выполнении операции арифметического сложения.
Реальные АЛУ имеют, как правило, значительно большее число выполняемых операций, а их структура синтезируется по таблицам истинности.'-
Регистры микропроцессора. Регистры являются важной составной частью любого микропроцессора. Они участвуют в реализации основных логических функций микропроцессора независимо от количества регистров. Каждый регистр микропроцессора может использоваться для временного хранения одного слова данных. Некоторые регистры имеют специальное назначение, другие - многоцелевое. Регистры последнего типа называются регистрами общего назначения и могут использоваться программистом по его усмотрению. Благодаря таким возможностям лица, более искушенные в программировании, добиваются лучших результатов.
Количество и назначение регистров в микропроцессоре зависит от архитектуры последнего. Однако почти все микропроцессоры имеют шесть основных регистров: состояния, буферные, команд, адреса памяти, счетчик команд и аккумулятор. Остальные регистры предназначены для упрощения и облегчения работы программиста.
Еще раз подчеркнем, что каждый основной регистр микропроцессора имеет свое определенное назначение, а поэтому имеется в его составе. Только понимание влияния каждого основного регистра на поток данных в микропроцессоре позволяет получить правильное представление о функционировании последнего.
Аккумулятор - главный регистр микропроцессора при различных манипуляциях с данными. Большинство арифметических и логических операций осуществляется путем использования АЛУ и аккумулятора. Любая из таких операций над двумя словами данных {операндами) предполагает размещение одного из них в аккумуляторе, а другого в памяти или еще каком-либо регистре. Так, при сложении двух слов, называемых условно А и В и расположенных в аккумуляторе и памяти со* ответственно, результирующая сумма G загружается в аккумулятор, замещая слово А. Результат операции АЛУ тоже обычно размещается в аккумуляторе. Следует помнить, что исходное содержимое последнего при этом теряется.
Операцией другого типа, использующей аккумулятор, является программируемая переда
ча данных из одной части микропроцессора в другую. Речь идет о пересылке данных между портом ввода-вывода и областью памяти, между двумя областями памяти и т.п. Выполнение операции «программируемая передача данных» осуществляется в два этапа: сначала выполняется пересылка данных из источника в аккумулятор, а затем из аккумулятора в пункт назначения.
Кроме того, микропроцессор может выполнять некоторые действия над данными непосредственно в аккумуляторе. Например, аккумулятор может быть очищен путем записи двоичных нулей во все его разряды, установлен в единичное состояние посредством записи двоичных единиц во все разряды. Содержимое аккумулятора можно сдвигать влево или вправо, получать его инвертированное значение, а также выполнять другие операции.
Аккумулятор является наиболее универсальным регистром микропроцессора: для выполнения любой операции над данными, прежде всего, необходимо поместить их в аккумулятор. Как показано на рис. 11.52, данные поступают в него с внутренней шины данных микропроцессора. В свою очередь, аккумулятор может посылать данные на эту шину. Следует обратить внимание на наличие буфера на пути прохождения данных из аккумулятора в АЛУ.
Количество разрядов аккумулятора соответствует длине слова микропроцессора, т.е. 8, ..., 64 бит. Однако некоторые микропроцессоры имеют аккумуляторы двойной длины. Такой аккумулятор можно рассматривать или как одно устройство, или как два отдельных аккумулятора. В первом случае второй аккумулятор пары используется для записи дополнительных битов, появляющихся при выполнении некоторых арифметических операций. Например, при умножении двух 8-битовых слов результат - 16-битовое слово - размещается в аккумуляторе двойной длины.
У некоторых микропроцессоров имеется группа аккумуляторов. Если их, например, два - аккумуляторы А и В, то микропроцессор должен располагать двумя различными командами для загрузки в них данных с выхода АЛУ: одной командой - для записи данных в аккумулятор А, другой - для записи данных в аккумулятор В. Кроме того, должны быть две соответствующие команды очистки этих аккумуляторов.
Преимущество «многоаккумуляторных» микропроцессоров по сравнению с «одноакку-муляторными» в том, что первые предоставляют возможность выполнения операций с пе-
редачей данных от аккумулятора к аккумулятору. Данные могут временно храниться в одном аккумуляторе, пока другой используется для выполнения каких-либо иных действий. Когда вновь возникает необходимость в данных, содержащихся в первом аккумуляторе, пересылать их не нужно, поскольку они уже находятся там.
Что же касается функционирования микропроцессора с одним аккумулятором, то операции выполняются именно над его содержимым, и по завершении очередной операции результат приходится записывать в память или в другой регистр.
Счетчик команд - это один из наиболее важных регистров микропроцессора. Как известно, программа - это последовательность команд, хранимых в памяти микроЭВМ и предназначенных для того, чтобы инструктировать машину, как решать поставленную задачу. Для корректного выполнения последней команды должны поступать в строго определенном порядке. На счетчике команд лежит ответственность следить за тем, какая команда выполняется, а какая подлежит выполнению следующей. Часто счетчик команд имеет намного больше разрядов, чем длина слова данных микропроцессора. Так, в большинстве 8-раэрядных микропроцессоров, адресующихся к памяти объемом 65К, число разрядов счетчика команд равно 16. И на это имеются достаточно веские основания. В любой из 65 536 областей памяти микроЭВМ общего назначения может находиться информация о том или ином шаге программы, т.е. в пределах диапазона значений адресов от 0 до 65 535 программа может начаться и закончиться в любом месте. Чтобы обратиться к любому из этих адресов, счетчик команд должен располагать 16 двоичными разрядами. Еще раз подчеркнем, что где бы команды программы ни располагались, они следуют друг за другом в определенном порядке.
Согласно рис. 11.52 счетчик команд соединен с внутренней шиной данных микропроцессора. Теоретически этот счетчик может получать данные об адресах программы из любого блока микропроцессора,, подключенного к внутренней шине. Однако на практике данные обычно поступают в счетчик команд из памяти микроЭВМ.
Когда микропроцессор начинает работать, по команде начальной установки в счетчик команд загружаются данные из области памя-ти> заданной проектировщиком микропроцессора. Перед пуском программы необходимо поместить начальный адрес для программы в
область памяти, указанную проектировщиком* Когда программа начинает выполняться, первым значением содержимого счетчика команд является этот, заранее определенный адрес.
В отличие от аккумулятора счетчик команд не может выполнять операций различного типа. Набор команд, его использующих, крайне ограничен по сравнению с подобным набором для аккумулятора.
Перед выполнением программы счетчик команд необходимо загрузить числом - адресом области памяти, содержащей первую команду программы. Обратите внимание, что на рис. 11.52 регистр адреса памяти и адресная шина расположены ниже счетчика команд. Адрес области памяти, содержащей первую команду программы, посылается из счетчика команд в регистр адреса памяти, после чего содержимое обоих регистров становится одинаковым. Длина регистра адреса памяти определяется объемом адресуемой памяти..
Адрес местоположения первой команды программы посылается по адресной шине к схемам управления памятью, в результате чего считывается содержимое области с указанным адресом. Этим содержимым конечно, должна быть команда. Память пересылает эту команду в специальный регистр блока микропроцессора, называемый регистром команд.
Для правильного понимания излагаемого ниже отметим следующее. После извлечения команды из памяти микропроцессор автоматически дает приращение содержимому счетчика команд. Это приращение счетчик'команд получает как раз в тот момент, когда микропроцессор начинает выполнять команду, только что извлеченную из памяти. Следовательно, начиная с этого момента, счетчик команд «указывает», какой будет следующая команда на протяжении всего времени выполнения текущей команды. Об этом важно помнить, потому что, программируя работу микроЭВМ, можно столкнуться с необходимостью использования текущего значения счетчика команд. При этом необходимо четко сознавать, что в каждый данный момент счетчик команд указывает не на текущую выполняемую команду, а команду, следующую за ней.
Счетчик команд может быть загружен иным содержимым при выполнении особой группы команд (например, многократно повторяющейся последовательности команд, т.е. подпрограммы или цикла). Вместо того чтобы писать эту часть программы каждый раз, когда в ней возникает необходимость, такую запись можно сделать лишь один раз и возвращаться к ее повторному выполнению, отступая от ос-
150
новной последовательности команд. После того как в счетчик команд записан начальный адрес подпрограммы, счетчик получает приращения по мере выполнения команд этой подпрограммы. Так продолжается до тех пор, пока не встретится команда возврата в главную программу.
Регистр адреса памяти. При каждом обращении к памяти микроЭВМ регистр адреса памяти указывает адрес области памяти, которая подлежит использованию микропроцессором. Регистр адреса памяти содержит двоичное число - адрес области памяти. Выход этого регистра называется адресной шиной и используется для выбора области памяти или в некоторых случаях для выбора порта ввода-вывода.
В течение подцикла выборки команды из памяти регистры адреса памяти и счетчика команд имеют одинаковое содержимое, т. е. регистр адреса памяти указывает местоположение команды, извлекаемой из памяти. После декодирования команды счетчик команд получает приращение. Что же касается регистра адреса памяти, то он приращения не получает.
В течение подцикла выполнения команды содержимое регистра адреса памяти зависит от выполняемой команды. Если в соответствии с командой микропроцессор должен произвести еще одно обращение к памяти, то регистр адреса памяти подлежит вторичному использованию в процессе обработки этой команды. Для некоторых команд адресация к памяти не требуется. Такова, например, команда очистки аккумулятора. При обработке таких команд регистр адреса памяти используется лишь один раз - в течение подцикла выборки команды из памяти.
В большинстве микропроцессоров регистры адреса памяти и счетчика команд имеют одинаковое число разрядов. Как и счетчик команд, регистр адреса памяти должен располагать количеством разрядов, достаточным для адресации любой области памяти микроЭВМ. У большинства 8-разрядных микропроцессоров, например, количество разрядов регистра адреса памяти равно 16. Такой регистр можно разделить на два отдельных регистра, каждый из которых имеет независимое подключение к шине данных микропроцессора. Один из этих регистров называют регистром старшего байта, (СБ), другой - регистром младшего байта, (МБ).
Поскольку регистр адреса памяти подключен к внутренней шине данных микропроцессора, он может загружаться от различных источников. Большинство микропроцессоров
располагают командами, позволяющими загружать этот регистр содержимым счетчика команд, регистра общего назначения или какой-либо области памяти. Некоторые команды предоставляют возможность изменять содержимое регистра адреса памяти путем выполнения вычислений: новое значение содержимого этого регистра получается путем сложения или вычитания содержимого счетчика команд с числом, указанным в самой команде. Адресация такого типа получила название адресации с использованием смещения.
Регистр команд предназначен исключительно для хранения текущей выполняемой команды, причем эта функция реализуется микропроцессором автоматически с началом цикла «выборка-выполнение», называемого также машинным циклом.
Как отмечалось выше, машинный цикл состоит из двух подциклов - выборки и выполнения. За исключением загрузки команды, в период подцикла выборки программист не может по-другому использовать регистр команд. Согласно схеме на рис. 11.52, этот регистр соединен с внутренней шиной данных, однако он только принимает данные, посылать данные на шину он не может.
Хотя функции регистра команд ограничены, роль его в работе микропроцессора велика, поскольку выход этого регистра является частью дешифратора команд.
Напомним еще раз последовательность реализации цикла «выборка-выполнение». Сначала команда извлекается из памяти, затем счетчик команд настраивается на указание следующей команды, подлежащей выполнению. При извлечении команды из соответствующей области памяти копия команды помещается на внутреннюю шину данных и пересылается в регистр команд. После этого начинается под-цикл выполнения команды, в течение которого дешифратор команд «читает» содержимое регистра команд, сообщая микропроцессору, что делать для реализации операций команды.
Число разрядов регистра команд зависит от типа микропроцессора: иногда оно совпадает с числом разрядов слова данных, в других случаях равно лишь 3 или 4.
Наличием регистра состояния подлинная вычислительная машина отличается от простого калькулятора. Указанный регистр предназначен для хранения результатов некоторых проверок, осуществляемых в процессе выполнения программы. Разряды регистра состояния принимают то или иное значение при выполнении операций, использующих АЛУ и некоторые регистры.
Запоминание результатов упомянутых проверок позволяет использовать программы, содержащие переходы (нарушения естественной последовательности выполнения команд).
При наличии в программе перехода выполнение команд начинается с некоторой новой области памяти, т. е. счетчик команд загружается новым числом. В случае условного перехода такое действие имеет место, если результаты определенных проверок совпадают с ожидаемыми значениями. Указанные результаты находятся в регистре состояния.
Возможности программирования с передачей управления (переходами) - отличительная характеристика вычислительной машины по сравнению с калькулятором. Регистр состояния предоставляет программисту возможность организовать работу микропроцессора так, чтобы при определенных условиях менялся порядок выполнения команд. Можно сказать, что микропроцессор принимает решение о том или ином продолжении хода вычислений в зависимости от указанных условий. Калькулятор такие решения принимать не может.
Итак, использование содержимого разрядов состояния привело к появлению нового набора команд микропроцессора. Эти команды предназначены для изменения хода выполнения программы в соответствии со значением, принимаемым тем или иным разрядом состояния. Традиционный способ использования этих специальных команд предполагает загрузку счетчика команд новым содержимым, если значение определенного разряда состояния становится равным 1.
Как ранее отмечалось, при выполнении операций АЛУ разрядам регистра состояния присваиваются единичные значения. Типичным примером таких операций являются арифметические, при реализации которых возможно генерирование единичного бита переноса, формирование нулевого результата двоичных нулей во всех разрядах) или и то и другое одновременно. Так, если при сложении двух 8-битовых чисел получается результат больше, чем 11111111, то появляется единичный бит переноса, который, в свою очередь, устанавливает в 1 одноименный разряд регистра состояния. Приведем три примера такой операции:
J1101110 I111000Q
111011110
,00111111 +01000001 010000000
.11011110 +11011010 111011110
Рис. 11.53. Формирование признаков переноса и отрицательного результата
151
В первом и третьем примерах имеет место и перенос (бит переноса равен 1), и признак отрицательного результата (бит отрицательного результата равен 1), во втором примере переноса нет и значение соответствующего разряда регистра состояния равно 0.
Если по окончании выполнения операции все разряды аккумулятора содержат биты, равные 0, то в регистре состояния бит нулевого результата становится равным 1. В рассматриваемом нами микропроцессоре этот бит может быть установлен в единичное состояние и некоторыми операциями, реализуемыми с участием регистров общего назначения.
Например, часто требуется записать определенную величину в некоторый регистр (назовем его регистром D), а затем уменьшать ее на значение некоторой константы при каждом «проходе» через определенную точку программы. После каждого изменения содержимого этого регистра проверяется значение разряда нулевого результата, в регистре состояния. Если содержимое регистра D оказывается равным 0, разряд нулевого результата устанавливается в 1. Программа (или ее часть), проверяющая наличие нуля в регистре D, продолжает повторяться до тех пор, пока в регистре состояния не будет обнаружено единичное значение разряда нулевого результата.
Проиллюстрируем сказанное примером использования регистра состояния для проверки содержимого некоторого регистра, получающего отрицательные приращения! Словеснбе описание соответствующей программы может иметь следующий вид:
1. Загрузить в регистр число 1100г. 2. Уменьшить содержимое регистра на Ь. 3. Проверить, равно ли единице значение
разряда нулевого результата в регистре состояния.
4. Если нет, возвратиться к выполнению шага 2.
5. Если да, прекратить действия. Кратко охарактеризуем некоторые наиболее
часто используемые разряды регистра состояния.
1. Перенос заем (С). Данный разряд указывает, что последняя выполненная операция сопровождалась переносом или заемом (отрицательным переносом). Значение разряда переноса устанавливается равным 1, если в результате сложения двух двоичных чисел имеет место перенос из 8-го разряда результата. Отрицательный перенос (заем) фиксируется в регистре состояния при вычитании большего числа из меньшего.
152 2. Нулевой результат^). Принимает еди
ничное значение, если после окончания операции во всех разрядах регистра результата обнаружены двоичные нули. Установка этого разряда в 1 происходит не только при отрицательном приращении содержимого регистра, но и при любой другой операции, результат которой - число из двоичных нулей.
3. Знаковый (N). Принимает единичное значение, когда старший значащий бит содержимого регистра, предназначенного для записи результата операции, становится равным 1. При выполнении арифметических операций с числами в дополнительном коде единичное значение старшего значащего бита показывает, что в регистре находится отрицательное число.
Указанные три разряда состояния используются в большинстве микропроцессоров. Многие микропроцессоры располагают дополнительными разрядами состояния, применение которых не «стандартизовано». Для правильного использования таких разрядов программист должен хорошо понимать особенности работы с командами двоичной арифметики, поскольку разряды регистра состояния принимают единичные значения только в результате выполнения определенных арифметических операций. «Нестандартными» разрядами располагают не только операции, выполняемые с помощью АЛУ или с участием регистров. Подобные разряды регистра используются как индикаторы «включения» или «выключения» некоторых дополнительных программно-аппаратных средств микропроцессора. Поскольку такие разряды содержат информацию об аппаратных средствах, их значение следует анализировать перед принятием решения об использовании возможностей этих средств.
В некоторых микропроцессорах предусмотрены специальные команды для сброса или очистки всех разрядов состояния. Однако имеются микропроцессоры, допускающие «только чтение» содержимого регистра состояния. Чтобы понять, как пользоваться «нестандартными» разрядами регистра состояния, необходимо в каждом конкретном случае обращаться к технической документации интересующей вас модели микропроцессора.
Не все разряды регистра состояния используются микропроцессором. В неиспользуемые разряды регистра состояния обычно «навсегда» записываются двоичные, единицы, (рис. П.54).
2 N С 1 1 I 1 I
Рис. 11.54. Слово состояния микропроцессора с тремя модифицируемыми битами Z, N и С
Содержимое регистра состояния может быть загружено во внутреннюю шину данных микропроцессора, однако регистр состояния не имеет возможности принимать данные, поступающие по шине. Если, например, записываемый в аккумулятор результат операции - положительное число без переноса, то слово состояния равно 0001 1111. Если же результат операции — отрицательное число без переноса, то в регистре состояния формируется число 0101 1111.
Буферные регистры АЛУ. На рис. П.51 показаны два буферных регистра, каждый из ко-
• торых предназначен для временного хранения одного слова данных. Один их этих регистров (ближайший к аккумулятору на рис. П.52) называется буфером аккумулятора АЛУ. О его функциональном назначении речь пойдет несколько позже. Что касается другого буферного регистра, то в него на временное хранение поступают данные с внутренней шины микропроцессора. Необходимость в таком регистре вызвана отсутствием в АЛУ своего запоминающего устройства. В состав АЛУ включены только комбинационные схемы, и поэтому при поступлении исходных данных на входе АЛУ немедленно появляются результирующее данные на его выходе как следствие выполнения операций данной программы.
АЛУ должно получать данные с внутренней шины микропроцессора, модифицировать их, а затем помещать обработанные данные в аккумулятор. Но это неосуществимо без регистра временного хранения данных. Вот почему столь существенна его роль в функционировании микропроцессора. Отметим, что буферные регистры не могут быть использованы программистом.
Если на вход описанного выше буферного регистра могут поступать данные только с внутренней шины данных микропроцессора, то на вход другого буферного регистра, именуемого буфером аккумулятора, данные могут поступать, кроме того, и с выхода аккумулятора. Когда в арифметической или логической операции АЛУ участвуют два слова, одно из них поступает из аккумулятора. Результат подобной операции помещается в аккумулятор. Буфер аккумулятора позволяет избежать ситуации, при которой вход и выход АЛУ одновременно подсоединены к одной и той же точке схемы. Как и другой буферный регистр, буфер аккумулятора недоступен программисту для использования.
Регистры общего назначения. Все микропроцессоры имеют также некоторое количест-
153 во внутренних регистров, предоставляемых в распоряжение пользователей. Эти регистры получили название регистров общего назначения. В некоторых микропроцессорах они служат в качестве запоминающих устройств, в других функциональные возможности этих регистров не уступают возможностям аккумулятора. Последнее достигается в том случае, если АЛУ может помещать в них данные. Гипотетический микропроцессор, описываемый в данной книге, имеет три регистра общего назначения: В, С и D (см. рис. 11.51). Поскольку в нашем случае АЛУ не помещает данные в эти три регистра, последние не обладают функциональными возможностями аккумулятора. Тем не менее, при выполнении многих команд используются эти регистры общего назначения.
Для реализации многих операций использование 8-разрядных регистров В, С и D идентично. Выбор конкретного регистра для выполнения определенного вида работ определяется лишь тем, какой из них доступен и кажется наиболее удобным. Обычно операции, использующие эти регистры, влияют на содержимое регистра состояния. Следовательно, любой из регистров В, С или D можно использовать в качестве счетчика отрицательных приращений. Так, если содержимое используемого для этих целей регистра D становится равным нулю, разряд нулевого результата регистра состояния принимает единичное значение.
Регистры В и С совместно могут выполнять функции 16-разрядного регистра специального назначения. Будем называть их регистровой парой ВС. Рассматриваемый нами микропроцессор обладает адресацией такого типа, при которой содержимое пары регистров ВС загружается в регистр адреса памяти. Это позволяет выполнять регистровые арифметические операции с помощью 16-разрядного регистра. Так, можно задавать приращение содержимому тары регистров ВС, а затем использовать это содержимое для адресации памяти.
Следует помнить, что регистры В и С в любое время могут функционировать и как независимые регистры. Таким образом, регистры В и С можно использовать совместно или раздельно, а регистр П всегда выступает в роли отдельного 8-разрядного регистра.
Схемы управления. Роль схем управления в микропроцессоре чрезвычайно важна и заключается в поддержании требуемой последовательности функционирования всех остальных его звеньев. По «распоряжению» схем управления очередная команда извлекается из реги
стра команд, определяется, что необходимо делать с данными, а затем генерируется последовательность действий по выполнению поставленной задачи.
Обычно работа схем управления микропро-граммируется. Это свидетельствует о сходстве архитектуры системы управления микропроцессора с архитектурой некоторого микропроцессора специального назначения. Мозкяо сказать, что схемы управления - это маленький микропроцессор внутри микропроцессоре. Одна из главных функций схем управления — декодирование команды, находящейся в регистре команд, посредством дешифратора команд, который в результате выдает сигналы, необходимые для выполнения команды.
Одной из важных входных линий управления, соединяющих микропроцессор с внешними устройствами, является линия связи с генератором тактовых импульсов (таймером), синхронизирующим во времени работу микропроцессора. Принимаемые тактовые сигналы схемы управления преобразуются в многофазные синхросигналы. Рис, 11.55 иллюстрирует указанное преобразование на. примере формирования двух етввроситтош с разными фазами из исходных тактовых импульсов. (Иногда микропроцессор использует сформированные подобным ебразом шнжросдатаяи с четырьмя различными фазами)
Я к . е ш т а | || | _ _ [ | |i
С5втэ0йввжжжр фЕ | I 1 '! * [: ji
Рис. 1LS5. Фврмярюздме даун шкцтсилкшдае с рятытш. фшют
В сеответетЕВйи с рис, 11.55 в тетевре ©дюш» периода иакговяж импульсе® ш мй^йяряр©-сере возможны да© груяии вебнтай:: первая — в© время действия шшрэеигшш с фаэаЙ <$>„ „ вторая - во шршя дейетвия шюршадашш Ф фазой $,. Как правдою, <ЙШ»Й ущтежшя т-mpmpftor £ЙГМЯЙ в сввтежтш с wu шш иной фазой синзфвсюлвщкяв ш фэршщявт * эти момент щ^шшш «етшшжраида© выходные сигналы дри виявюяк уорейет* тшЩр как память шят уетрЛотю ш®д»-м»@д®,
В качестве иетдаюиш -икташк ширжвш обычно иоияк^етш юшэрйяший ттщтщр — ЯШЙИНЙЙ или рирршяшй» ШМЦЙШадШЙ S ЯЙИВ-
уврввяиш шшиишот даашиврие дцэрию; «ж-
154
циальные функции такие, как управление последовательностью включения питания управление процессами прерываний.
Прерывание - это своего рода запрос, поступающий на схемы управления от других устройств-(памяти, ввода-вывода) Прерывание связано с использованием внутренней шины данных микропроцессора. Схемы управления принимают решение, когда и в какой последовательности другие устройства могут пользоваться внутренней шиной данных.
Структура внутренних связей между элементами процессора. Другой важной характристикои процессора, определяющей его возможности по преобразованию информации, является структура связей между его компонентами, а также между ним и другими компонентами микропроцессоной системы.
При так называемой классической структуре связей, показанной на рис. п.56, все сигналы и коды между устройствами передаются по отдельным линиям связи. Каждое устройство, входящее в систему передает свои сигналы и коды независимо от других устройств. При этом в системе получается очень много линий связи и разных протоколов обмена информацией.
Устройство 1
I Устройство 3
Устройство пво 2 |
JL Устройство 4
Рис. 11.56. Классическая структура связей
Для достижения максимальной универсальности и упрощения протоколов обмена информацией в . микропроцессорных системах применяется так называемая шинная структура связей между отдельными устройствами, входящими в систему.
Шиной принято называть множество идущих параллельно проводников, имеющих одинаковое функциональное назначение. В цифровой технике многоразрядные шины используются для передачи параллельных двоичных кодов с одного устройства на другое.
Суть шинной структуры связей показана на рис. 11.57 и сводится к следующему. Очень часто требуется подключать многоразрядную шину к выходу одного из многих цифровых устройств - источников параллельного двоичного кода, то есть осуществлять мультиплексирование этой шины. Номер активного источника
передающего на шину свой код, задается при этом с помощью двоичного адреса.
Очевидно, что можно решить эту задачу установив мультиплексоры с нужным числом входов в каждом из разрядов шины. Именно так и сделано при составлении функциональ ной схемы АЛУ (см. рис.П.52). Однако в общем случае, такое решение оказывается неэкономичным. Повышенные аппаратные затраты связаны здесь с многократным дублированием одинаковых и включенных параллельно по входам дешифраторов, входящих в состав мультиплексоров.
Рис. 11.57. Шинная структура связей
При шинной структуре связей все сигналы между устройствами передаются по одним и тем же линиям связи, но в разное время (это называется мультиплексированной передачей) причем передача по всем линиям связи может осуществляться в обоих направлениях (так называемая двунаправленная передача) Группа линий связи, по которым передаются сигналы или коды, как раз и называется шиной (англ. bus).
Достоинства шинной организации связей состоят в следующем:
при шинной огранизации количество линий связи существенно сокращается а правила обмена (протоколы) упрощаются;
- при шинной структуре связей легко осуществляется пересылка всех информационных потоков в нужном направлении, например, их можно пропустить через один процессор, что очень важно для микропроцессорной системы;
- все устройства, подключенные к шине, должны принимать и передавать информацию по одним и тем же правилам (протоколам обмена информацией по шине), следовательно, все узлы, отвечающие за обмен с шиной в этих устройствах, должны быть единообразны, унифицированы.
Однако у шинной структуры связей есть и существенные недостатки:
- при шинной структуре связей вся информация передается по линиям связи последовательно во времени, по очереди, что
снижает быстродействие системы по сравнению с классической структурой связей;
- все устройства подключаются к каждой линии связи параллельно, поэтому любая неисправность любого устройства может вывести из строя всю систему, если она портит линию связи; по этой же причине отладка системы с шинной структурой связей довольно сложна и обычно требует специального оборудования.
В системах с шинной структурой связей применяют три существующие разновидности выходных каскадов цифровых микросхем, показанные на рис. 11.58:
- стандартный выход или выход с двумя состояниями (обозначается 2С, 2S, реже ТТЛ, TTL);
- выход с открытым коллектором (обозначается ОК, ОС);
- выход с тремя состояниями или (что то же самое) с возможностью отключения (обозначается ЗС, 3S).
7" f А %
Вых. 2С~
Вых. f
it /™
\ ОК 4
f\L f-й
Вых.
ь V V а б в
Рис. 11.58. Три типа выходов цифровых микросхем
Ниже модели каждого типа приведено его условное графическое изображение, применяемое при построении принципиальных схем цифровых устройств.
У выхода 2С два ключа замыкаются по очереди, что соответствует уровням логической единицы (верхний ключ замкнут) и логического нуля (нижний ключ замкнут). У выхода ОК замкнутый ключ формирует уровень логического нуля, разомкнутый -логической единицы. У выхода ЗС в рабочем (низкоимпедансном) состоянии ключи могут замыкаться по очереди (как в случае 2С), а в высоимпедансном состоянии отключаются от внутреннего содержимого микросхемы одновременно, образуя третье, высокоимпедансное, состояние. Переход в это состояние (Z-состояние) управляется сигналом на специальном входе EZ.
Выходные каскады типов ЗС и ОК позволяют объединять несколько выходов микросхем для получения
155
мультиплексированных или двунаправленных линий.
Идея построения мультиплексированной шины иллюстрируется рис. 11.59.
Вых. Вых. Вых. &L
Рис. 11.59. Мультиплексированная линия
Здесь выходы нескольких цифровых устройств ОК объединены одной линией с входом цифрового устройства. В каждый момент времени только одно из устройств-источников информации может передавать ее устройству-приемнику. Принципиальная схема, обеспечивающая мультиплексирование многоразрядной шины, приведена на рис.И.60. ш>
-д.
Рис.И.60. Принципиальная схема мультиплексирования многоразрядной шины
Эта схема содержит ряд цифровых устройств LF0...LF„, выдающих информацию на шину D3...D0, а также единственный дешифратор, преобразующий поступающий извне адрес активного устройства в набор сигналов выбора устройств (микросхем, кристалл о в ) ^ . . . ^ .
В каждый момент времени здесь активно лишь одно устройство, которое переводится в активное состояние (выбирается) ложным значением сигнала выбора. Именно оно определяет код, выставленный на шине. Иногда говорят, что активное устройство «захватывает шину».
Остальные же устройства пассивны, то есть фактически отключены от шины. Этот режим обеспечивается истинными значениями логических сигналов на их входах выбора.
Микросхемы, имеющие выходы стремя состояниями, удобно рассматривать с помощью модели (рис.П.61), использующей электромагнитное реле.
156 l.F _5 л
l ч — А , ^ - ,
: з -« ф ь к i з i4
4 — О — д 1_|—l_J >
- ~ 4L Piic.II.61. Модель цифрового устройства, имеющего выходы с тремя состояниями
Основой модели здесь является цифровой блок LF, выполняющий требуемые функции цифровой обработки. Однако выходы этого блока подсоединены к выводам микросхемы не непосредственно, а через размыкающие контакты реле К.
Если микросхема выбрана (сигнал выбора CS = 0 )» контакты реле замкнуты, и выходы с тремя состояниями являются обычными стандартными выходами логических элементов, входящих в цифровой блок. В этом состоянии микросхема передает свой код на шину.
Если же микросхема не выбрана (CS=lX контакты реле разомкнуты, то есть выходы цифрового блока просто отключены' от выводов микросхемы, а, следовательно, и -от выходной шины. Это -третье состояние выходов (в дополнение к двум обычным: «логический ноль» и «логическая единица») часто называют высокоимпедансным.
В реальных устройствах, функции реле К и его контактов конечно же выполняют полупроводниковые структуры.
В случае выходов ЗС {рте, 11.62) необходимо обеспечить, чтобы на линии всегда работал только один активный выход, а все остальные выходы находились бы в это время в 'третьем СОСТОЯНИЙ, иначе возможны конфликты.
Pee. IL61., Двунаправленная линия
Элементы, имеющие выходы с тремя состояниями ши открытым коллектором, не только вводят в состав сложных цифровых устройств, те и выпускают в вице отдельных ьшогоразрщвыж микросхем. В частности, выпускаются многорврядные микросхемы повторителей шш инверторов, имеющие выходы с тремя состояниями и повышенную нагрузочную способность. Такие микросхемам называют шинными формирошасгедями. Они исполь
зуются в тех случаях, когда нужно связать с многоразрядной шиной цифровые устройства, не имеющие выходов с тремя состояниями, либо имеющие маломощные выходы.
Форматы данных в микропроцессоре. В микропроцессорной системе (рис. 11.54) разрядность шины и регистров данных - 8, поэтому способы кодирования данных будем рассматривать применительно к однобайтовому формату. Этот формат данных является достаточно типичным для микропроцессорных средств. Байт данных D обозначим, начиная со старших разрядов, следующим образом:
Способы кодирования данных в двоичном формате, рассмотренные ранее, типичны для микропроцессорных средств. Байт О при выполнении команд преобразования данных в микропроцессоре можно интерпретировать как целое число без знака, целое число со знаком, логическую переменную или символьную переменную. Операции в других форматах данных, например, для дробных чисел, чисел с плавающей точкой и т.п., требуют применения специальных алгоритмов преобразования и способов кодирования. Так как арифметические операции в системе команд микропроцессоров приводят к наиболее эффективным вычислительным процедурам в формате целых чисел, при проектировании систем управления целесообразно числовые данные приводить именно к этому формату путем масштабирования. Рассмотрим выполнение операций преобразования данных для разных способов кодирования.
Для целых чисел без знака каждый бит Д имеет вес 2' в соответствии со стандартным двоичным кодированием, диапазон изменения чисел О — 255 (2S-1). В текстах программ числа без знака можно указывать в десятичном формате (0 - 255), в двоичном формате (ОЫЮООООбО - 0Ы1111Ш, ОЪ - стандартный признак двоичного формата) и шестнадцате-ричном (hex) формате (0x00 - Oxff, Ох - стандартный признак hex-формата). В hex-формате для основания системы счисления 16 в дополнение к десятичным символам используют первые б букв латинского алфавита а, Ь, с, d, е, f. Наиболее функционален hex-формат, так как он лучше соответствует- исходному двоичному кодированию' байта данных. Для hex-формата байт условно разбивается на две тетрады, а каждая тетрада записывается как отдельный Ьех-символ.
157 Иногда применяют двоично-десятичное ко
дирование (упакованный bed-формат) с кодированием двух десятичных символов в каждой тетраде. Дня выполнения арифметических операций bed-формат неудобен, так как результат формируется в двоичном формате и требуется его коррекция для восстановления исходного bed-формата. Диапазон чисел для однобайтового bed-формата 0 - 99.
Для кодирования чисел со знаком применяются стандартные арифметические коды. Старший разряд байта D7 становится битом знака числа, а величина числа определяется оставшимися 7 битами D0-D6.B дополнительном коде знак "+" соответствует нулевому знаковому биту, а знак "-" соответствует единичному знаковому биту. Величина числа в дополнительном коде для положительного и отрицательного числа формируется различными способами.
Для положительных чисел применяют обычное двоичное кодирование величины. Для отрицательных чисел формируют дополнение, т.е. инверсию двоичного кода величины с прибавлением 1 младшего разряда (JWCDuDsD^DjDiDiDi)*!) . Восстановление двоичного кода величины отрицательного числа также требует' инверсии с прибавлением 1 младшего разряда. Диапазон однобайтовых чисел для дополнительного кода (—128) — (+127). Применение дополнительного кода позволяет использовать одни и те же арифметические операции для чисел без знака и чисел со знаком, так как знаковый бит преобразуется в этих операциях вместе с другими битами чисел.
Примеры оддобайтового кодирования чисел приведены в табл. II. 1.
ТФяшо® ИЛ Евднрвоашюе чмеы еюнойайтьом ф^рипе
ДвэищщВ гащ&ига ДЯИНИК
Дрршши-имй фор-
мят |«иш» без аника я? ет
ЗШВЯЙМ))
. —
Неж-
((•ваше
мае)
ВеФ-
Olilill»l ш
287
7$
ИИ ИЗ»
§хШ ;J*>
0Ы1Ф1ШМ
ш
287
7$
ИИ ИЗ»
<Ы&> <МКШёй 6 :."v.'.:.' Ю'кЙв "Г":::.'.-.'.
штши
ш
287
7$
ИИ ИЗ»
fc# шакошйЧЕй1"' |P$SS
оыишпа
ш
287
7$
ИИ ИЗ» йШЗ ,?3
В первом столбце примеров приведен д&©= ичный код байта данных, в оетаяшш етея§= цах - интерпретация этого байте дея ршямх способов кодирования,
При выполнении s микродр ©цеееоре ©верхний сложения бейтов 1 и 2 получим;
01011001+11011001^00110010
с флагами
Z^Uf §г0,0-1, А€^1, Р ^ ,
Примечания: 1- Для чясет fe знш» (19*217 ЙИ»
0х59+<Ы9) байт резуяьшж 50 P&J2), а фиг переноса ОИ бзнвдвзет, т® рщ?м?$ж @р>§ш* реванш ввддел ш шрфщшш &мш?&$$п'Шш~® формата и этот флаг дамш шв^щр^гйре»--вадоя, как бит # (2*^25#) <^ммж-
2, Для ЧИНЯ ш злэшм ((+ШЩ--3^) @Ш$ резуяваш шттжжеямшШ-; Ф5$# фяш" шрш§>--еа давиеи иянюрвршдам^ шк I» ЙШШЩЙЙ зшчшия в т&м еяучш.
При вы.оавййвяй g мйкрар§Ш5шр© <$№&$№--I#M ©1шш#ш бййш» Зш4 шщряш
© фязгаш 2Н», §И„ СНЙ, i4€Nt,fN§l
фэтрвша,, & фанг ш ш SHI iife^M» йштершг задавшие (Ш81рш*авд §т&$щ?з$шш Щ-,.
2.. Дщ mums <ss> тттт Й+1ЭДИЭД ^вйт
§Ni„ вширю ашщшш; 1% -каш? «вет®?
Щ(§ЙЙШ«Ш!8С «шкш1 }В тш^жф }1жшщ тшщ*--
!«wsffti«i! ^ЧЙТОШШГ шрм шйвтлттш mmmmw
MW aid в я ййаднщйчг й^мйирййа«да fell® яшррлад^» ((ЭД) # йййш ртягриярр Ш 0^ШШ^ « ф^ршрямшшв иже* фшта-1№5)даф«Ш41«№ 1ШЙШВДВ11 ШДЙМШВИ jafic Ш ц р р
158
нее значение флага переноса С (А8=А8+В8+С) и формирует новые значения флагов.
В операциях над многобайтовыми числами преобразование всех младших байтов должно интерпретироваться, как операция над числами без знака, но с-учетом значения флага переноса. Знак числа может присутствовать только в старшем бите самого старшего байта.
Для логических операций байт данных D должен интерпретироваться как однобайтовая логическая переменная, в которой каждый бит В| является независимым элементом. Как правило, логические операции выполняются побито и также побитно формируют байт результата. Например, операция "логическое И" ana В выполняет побитную конъюнкцию содержимого аккумулятора А и регистра В (Af=Ai&B?s А«=А«&В6э . . . Ао=Ао&ВоХ флаги S, Ж, Р соответствуют байту результата в аккумуляторе, а флаги переноса - нулевые {О=АС=0), так как перенос не производится.
Операции логического сдвига могут выполнять дебетовое смещение байта данных аккумулятора и в направлении старших разрядов (сдвиг влево), и в направлении младших разрядов (сдвиг вправо). Значение флага переноса в операциях сдвига зависят от направления: при сдвиге влево - С=Аъ при сдвиге вправо — С=А§, Использование флага переноса позволяет выполнять сдвиг многобайтовых переменных по алгоритмам, аналогичным алгоритмам арифметических операций над многобайтовыми числами.
Если байт данных при сдвиге интерпретировать как число без знака, сдвиг вправо эквивалентен делению числа на 2, а сдвиг влево -умножению на 2. Дли чисел со знаком, так называемый арифметический сдвиг, при сдвиге необходимо обеспечить сохранение знака, т.е. старший (знаковый) бит числа при сдвиге должен быть неизменным.
Символьный формат4данных в основном предназначен для текстовых сообщений. Специальных команд обработки символьных данных нет, они могут преобразоваться как числовые или логические переменные. Так как для ввода текстов или их отображения используются компьютерные средства, кодирование в символьном формате обычно производят стандартными компьютерными кодами. Таким стандартным символьным кодом однобайтового 'формата является, например, код ASCII. ASCII предназначен для кодирования всех символов, используемых на клавиатуре персонального компьютера. Например, символьной переменной 'А' соответствует однобайтовый ASCII-код 0x41, символьной переменной 'к' -
ASCII-код 0x6b, символьной переменной '2' -ASCII-код 0x32 и т.п. Полную таблицу кода ASCII можно найти в любой литературе, описывающей форматы компьютерного кодирования данных.
Данные других форматов, кроме рассмотренных в данном разделе, также можно обрабатывать в микропроцессорной системе. При выборе алгоритмов преобразования необходимо учитывать, что система команд микропроцессора содержит операции над числовыми и логическими переменными. Следовательно, операции преобразования данных других форматов необходимо приводить к эквивалентным операциям, реализуемым в системе команд.
В целом, система команд и форматы данных микропроцессора являются универсальными средствами преобразования. Очевидно, что эффективность работы микропроцессорной системы в силу ограниченного набора команд различна для различных форматов данных. Поэтому применяемые форматы данных-весьма важный компонент реализуемых алгоритмов преобразования. Следующий важный элемент в организации работы микропроцессорной системы - процедуры адресации данных, именно адресация обеспечивает доступ к данным для алгоритмов преобразования.
Способы адресации устройств микропроцессора. Выше указывалось, что чаше всего команда микропроцессора состоит из кода операции и адреса. Представьте себе, например, 8-рядный микропроцессор с памятью объемом 65К. У программиста должна иметься возможность доступа к содержимому любой из 65 536 областей памяти. Для адресации к этим областям длина адресной части команды должна быть достаточной для размещения 16 бит. Конечно, двоичный код команды длиной ! 8 бит не может включать в себя код операции ! и 16-битовую адресную часть.
Большинство микропроцессоров имеет команды различной длины. Как правило, необходимы команды длиной в одно, два или три слова. Однако имеются команды и без адреса. Например, команде, приказывающей микропроцессору остановить работу, адрес не нужен. Но безадресных команд мало. Число битов, образующих двоичный код команды, не может быть произвольным, например 7,12 или 14. Оно должно быть кратно длине байта (машинного слова). Следовательно, 8-разрядный микропроцессор может иметь команды длиной 8,16 или 24 бит.
Длина команды зависит от дайны используемого в ней адреса. Хотя различные микропроцессоры и располагают наборами команд,
щ принципы адресации в них, как правило, одни и те же. Тип обращения (адресации) к данным принято называть способом адресации. Опишем кратко эти способы.
Неявная адресация. Однобайтовая команда 8-разрядного микропроцессора - это одна из 256 различных комбинаций 8 бит, образующих машинное слово (байт). Такого количества различных команд достаточно для рассматриваемого нами микропроцессора. Однако он располагает 65 536 областями памяти, для адресации которых адресная часть команды должны быть больше той, которую может предоставить 1-байтовая команда. Неприемлемым в данном случае является и такое решение, когда на месте адресной части размещаются сами данные. Однобайтовые данные нельзя разместить в 1-байтовой команде, часть битов которой должна всегда быть предоставлена коду операции.
Каким же образом можно использовать 1-байтовую команду для адресации к данным? Ответ таков: 1-байтовые команды не адресуются к данным, расположенным в памяти; они оперируют данными, загруженными в регистр. регистровую пару или данными, хранимыми в области памяти, адрес которой находится в регистровой паре. Например, 1-байтовая команда пересылки данных из регистра А в регистр В состоит из кода операции, адреса источника данных (регистра А) и адреса приемника данных (регистра В) (рис. 11.64).
0 1 I !
0 0' ) 1
0 1 1 1 I
1
Код операции Адрес Адрес (Жоп) регистра В регистра Л
Рис. 11.64. Команда пересылки содержимого регистра А в регистр В с использованием неявной
адресации
Адреса источника и приемника указаны ш команде неявно; иногда говорят, что они «встроены» в команду. Вот почему такая адресация называете» неявной.
Однобайтовые команды выполняются быстрее любых других команд. Известно, что для выполнения какой-либо команды микропроцессору необходимо осуществить две последовательности олераци й. назы в ас- ч ыс i J и /л J М выборки и выполнения. В случае 1-байтовой команды микропроцессор затрачивает на это Два нвкроцикла: один — на операцию выборки, Другой — на операцию выполнения, В дальнейшем вы сможете убедиться, что для квшщ. с Другими способами адресации требуете!
большее количество микроцикяов, Иначе № воря, команды с неявной адресацией ©тяича* ются наибольшей величиной быстродействия.
Непосредственная адресация. Этот еяоеоб адресации нетруден для понимания, Код операции команды с непосредственней адртаци* ей размещается в первом байте. Сразу ж ш кодом операции следуют данные, занимающие 1 или 2 байт. Эта данные берутся не т mmwm, их предоставляет машине программист яри записи команды. Следовательно, ири штмь* зевании данного способа адресации и© требуется указания адреса памяти, необходим т м н ко код операции, после которого записываются данные.
Чтобы ответить на шпрос о том, в тшш случаях целесообразно межяъттжш непосредственней адресация, рассмотрим яришр программы загрузки шкуиуждар. f-разрадным двоичным числом. Такая §жр$тш осуществляется яря каящом шыт&яшжмш программы. Указанную программу мшкш ршав--эовагь посредством шмавды, шм «ящревйй которой шрмжшывшт мнкр&врвщсфвву загрузить в аккумулятор даанм® дмшшШ з 1 байт, сдодудощие непжредешшя© ж шм@ш операции (рис, IL65),
Загружт ржгшш^ш ишвщцрйййишжш
Рис ШУИ. ШрмяФ§ шшм0л € яеяе«$8Д&№бш$Ш
Подобна ммжвду/ шш®8ш ШШТШЖА РКГЖСТРА ШПаОСРЕЩрТВШШШЛЯ, ж®* нечш, s ш&м смущт » «щ ш е р р щ , я дравиде содержат инфоршдош © ддаяичиш ш$щ.
течем»© перши® щмки щршз&щктй ш1§щш
Оверацян, заийвашме ж р а ш бййвеш шш№-да (кюдяи «вжради»!, iw«ipM|ps«pss®p штм*-няет щщ дашшод, шредевашейяиам» до тш~ рым iafiiowu При шжмз$№в№ш нетшцщиг-
рашещшие дашзд» ч ж >щ. рде ЙШЭДКШШ <&&.-до ШМЩЯЙ, Ойшш» «wnjjta ЯШМКВЙГ ЙШ$Щ>-димвепь цшмащЕИпь дашю© ® твзш-mxfSis) щ^--гам шесте шшшши и ишйпь «ВДШМНЙЖЬ *дре.-
lb»!*» йфш^ия. Зйзшщм се яряжйй адресаций ш г р еда* дшвнк, jptwp© 2 ияш $
160 байтам. Первый байт предназначен для кода операции, второй и, если имеется, третий - для адреса. Адрес указывает область памяти, в которой находятся подлежащие обработке данные. Совместное использование второго и третьего байтов команды позволяет адресоваться к любой из 65 536 областей памяти.
Прямая адресация, как правило, представляется наиболее естественной и простой для понимания. При неявной адресации адрес местоположения данных «встроен» в команду, и программист лишен возможности самостоятельно обращаться к данным по их адресу. При непосредственной адресации данные указываются в самой команде, следуя сразу за кодом операции. В этом случае программист тоже не может адресоваться к данным. И только при прямой адресации у него имеется такая возможность, явным образом задавая адрес необходимых данных. Примером использования такой адресации может служить команда записи содержимого аккумулятора в память по адресу OOOEie (рис. 11.66).
Загрузка аккумулятора прямая
00, (») 0£, •(к)
1 - й байт
2-й байт
3 - й байт
Рис 11.66. Пример команды с прямой адресацией
Этот адрес, заданный в шестнадцатеричной форме, занимает второй и третий байты 3-байтовой команды. (Адреса задаются в шестнадцатеричной форме, а содержимое адресуемых областей памяти - в двоичной.
Рассмотрим еще один пример, поясняемый блок-схемой алгоритма (рис. 11.67) и описанием, состояния памяти и аккумулятора по мере выполнения каждой операции.
( Начало
)
Л ' Очистка аккумулятора О
' ' Загрузка аккумулятора содержимым области 000£ ©
' г с Останов )
Рис. 11.67. Блок-схема алгоритма очистки аккумулятора с его последующей загрузкой содержимым
области памяти с адресом 000Е
Перед началом выполнения рассматриваемой программы аккумулятор загружен результатом выполнения предыдущей операции. Первая команда данной программы - очистка аккумулятора - расположена в области памяти с адресом 0000. Занимающая три следующих байта памяти вторая команда - это команда загрузки в аккумулятор содержимого области памяти с адресом 000Е, т.е. двоичного числа 01010101. Последняя команда - останов - занимает 1 байт памяти.
Содержимому аккумулятора можно было бы присвоить значение 0101 0101 также и посредством команды загрузки с непосредственной адресацией, но в этом случае загружаемые данные должны находиться в областях памяти, смежных с кодом операции этой команды. И если в дальнейшем эти же данные потребовались бы для другой команды, к ним трудно было бы получить доступ. При прямой адресации таких проблем не возникает, так как микропроцессор имеет возможность производить обращение к любой области памяти. В последнем примере благодаря использованию команды с прямой адресацией любое количество команд программы может обращаться к области памяти с адресом 000Е. Проиллюстрируем это, расширив рассмотренную программу добавлением одной команды (рис. 11.68).
С Начало )
' < Очистка аккумулятора О
1 ' Загрузка аккумулятора содержимым области 000£ ©
1 < Загрузка регистра В содержимым области 000£ 0
1 '<
( _ Останов
)
Рис. 11.68. Блок-схема алгоритма очистки аккумулятора с последующей загрузкой его и
регистра В содержимым области 000Е
Программа по-прежнему размещается в памяти, начиная с адреса 0000. Но после очистки аккумулятора и его загрузки содержимым области памяти с адресом 000Е программа не завершается, а имеет место загрузка регистра В содержимым той же области памяти. Содержимое памяти, аккумулятора и регистра!)
161 до и после выполнения команд программы показано на рис. 11.69. v
Начальное содержимое аккумулятора
Начальное содержимое регистра В
11110110 11101101 Содержимое
после каждой операции аккумулятора регистра В
00000000 11101101
01010101 11101101
01010101 01010101 01010101 01010101
Рис. 11.69. Содержимое аккумулятора и регистра В до и после выполнения программы, описываемой
алгоритмом на рис. 11.68
Начальное содержимое аккумулятора и регистра В определяется предшествующими операциями и может быть произвольным. При выполнении данной программы две различные команды с прямой адресацией пользуются одними и теми же данными, хранимыми в области памяти с адресом 000Е. Отметим, что на содержимое регистра В не оказывают влияния ни очистка аккумулятора, ни его загрузка, двоичным числом 0101 0101. Команда загрузки регистра В помещает в последний копию тех же данных, которые загружены в аккумулятор.
Применение прямой адресации связано с использованием дополнительного (по сравнению с ранее рассмотренными типами адресации) числа микроциклов. Во-первых, микропроцессору необходимо произвести выборку кода операции команды. После его декодирования следует извлечь из памяти еще 2 байта, являющихся значением адреса местоположения обрабатываемых данных. При каждом дополнительном обращении к памяти требуется еще один микроцикл. После извлечения кода операции и байтов адреса следует этап выполнения команды, на который затрачивается четвертый микроцикл. Следовательно, время выполнения команд с прямой адресацией в два раза больше, чем команд с непосредственной адресацией. Прямую адресацию целесообразно использовать, если необходимо иметь возможность размещать данные в любой области памяти. Поэтому при написании программы рекомендуется использовать как можно меньше команд с прямой адресацией, так как для их выполнения требуется больше времени.
В некоторых микропроцессорах используется прямая адресация, реализуемая за три микроцикла. В таких случаях команда имеет Мину 2 байта: один - для кода операции, дру
гой - для адреса. Но 1-байтовый адрес не позволяет адресоваться ко всем областям памяти объемом 65К. Например, в 8-разрядном микропроцессоре 8-битовое слово - второй байт команды с прямой адресацией - позволяет обращаться только к одной из 256 областей. Специальный код операции информирует, что такая команда имеет 1-байтовый адрес. Обычно отсчет этих адресов в памяти начинается с области, адрес которой равен 0. Диапазон значений, охватываемый такими 1-байтовыми адресами, принято называть нулевой страницей памяти. Так, адреса первых 256 областей памяти 8-разрядного микропроцессора принадлежат диапазону десятичных значений от 0 до 255 (двоичных - от 0000 0000 до 1111 1111, шестнадцатеричньгх - от 00 до FF). При адресации 2-байтовым словом диапазон подобных десятичных значений простирается от 0 до 65 535 (двоичных - от 0000 0000 0000 0000 до 1111111111111111, шестнадцатеричньгх - от 0000 до FFFF). На рис. 11.70 схематически изображены два описанных диапазона адресов -1- и 2-байтовый.
Слово 0 Слово I
Диапазон значений 2-байтовых адресов
Слово 255 Слово 256
» Диапазон 1 значений \ 1 - байтовых
J' адресов на
нулевой странице
\ \ Слово 65535 |
Рис. 11.70. Области памяти, адресуемые 1-й 2-байтовыми командами прямой адресации
Преимущество команд с 1 -байтовыми адресами по сравнению с 2-байтовыми заключается в меньших затратах времени на их выполнение, поскольку при этом «экономится» один микроцикл. Команды с 1-байтовыми адресами целесообразно применять в тех случаях, когда требуется многократно обращаться к сравнительно небольшому количеству байтов данных, размещающихся в первых 256 областях памяти.
В 16-разрядном микропроцессоре с памятью объемом 65К прямая адресация предполагает использование только одного 16-битового адресного слова, так как оно позволяет адресоваться к любой области указанной памяти. Набор команд 16-разрядного микропроцессора состоит из команд длиной в одно или два слова.
Поскольку в 8-разрядных микропроцессорах применяются команды с прямой адресацией, имеющие длину в два или три слова памяти, возникает проблема их идентификации. Обычно такие команды различной длины
162
L Начало J Загрузка начального адреса
Файла в регистровую пару ВС ш Ввод данных из порта ввода -
вывода 01 в аккумулятор ш Запись содержимого аккумулятора в па мять, адресуемую регистровой парой В(
Увеличение содержимого регистров на 1 © Переход к вводу очередных данных ( 5
имеют разные мнемонические имена, т. е. разные мнемонические обозначения кодов операций. Так 2-байтовые команды с прямой адресацией называют иногда командами прямой адресации или командами адресации нулевой страницы,^ 3-байтовые - командами расширенной прямой адресации.
Косвенная адресация. Большинство микропроцессоров располагает еще одним способом адресации к памяти, реализуемой командами длиной только в одно слово. Такая адресация называется косвенной или иногда косвенной регистровой. Помимо кода операции, в такой команде указывается номер регистра, содержимое которого - адрес местоположения данных в памяти. Этим подобные команды отличаются от команд непосредственной адресации, содержащие данные в самих себе, или от команд прямой адресации, которые включают адреса этих данных. Так, при использовании косвенной адресации в 8-разрядном микропроцессоре соответствующая команда указывает, в какой регистровой паре размещается адрес местоположения данных в памяти.
Косвенная адресация удобна при обращении к часто используемым областям памяти, и особенно в тех случаях, когда данные организованы в виде некоторого списка или файла (набора). Иначе говоря, использование косвенной адресации дает наибольший эффект при записи и чтении следующих друг за другом областей памяти. Примером может служить задача организации файла данных в памяти согласно блок-схеме алгоритма на рис. 11.71.
В основу организации этого файла положен принцип косвенной регистровой адресации. Из порта ввода-вывода данные загружаются в аккумулятор, а затем записываются в следующие друг за другом области памяти. Используемые для этого команды подробно рассматриваются в гл. 10. Каждому пронумерованному блоку блок-схемы алгоритма соответствует одна команда. Процедура, описываемая блок-схемой алгоритма, состоит из следующих шагов:
1. Задание начального адреса формируемого файла данных. Осуществляется посредством команды загрузки регистра, использующей непосредственную адресацию.
2. Загрузка аккумулятора данными из порта ввода-вывода с номером 01. Выполняется соответствующей командой ввода данных.
Рис. 11.71. Блок-схема алгоритма загрузки данных в смежные области памяти с использованием
косвенной регистровой адресации
3. Запись копии содержимого аккумулятора в область памяти, адресуемую регистровой парой ВС. Осуществляется командой записи в память, использующей косвенную адресацию. Обратите внимание, что в регистре, указываемом этой командой, находятся не загружаемые в память данные, а только их адрес. После выполнения загрузки необходимо принять новый байт данных и записать его в следующую, смежную область памяти.
4. Увеличение содержимого регистровой пары ВС на 1. Выполнение этой операции необходимо для того, чтобы в регистровой паре оказался адрес области памяти, заполняемой следующей.
5. Переход к повторению загрузки аккумулятора очередными данными из порта ввода-вывода (возврат к блоку 2). Осуществляется после того, как регистр указывает адрес области памяти, «ожидающей» очередные данные. Содержимое регистра увеличивается каждый раз на 1. Если бы регистр перезагружался, механизм единичных приращений был бы нарушен и новые данные записывались в одну и ту же область.
Система команд микропроцессора. Состав и последовательность операций, выполняемых в процессе исполнения алгоритма, а также места размещения исходных данных и результатов выполнения операций определяются управляющей информацией (программой). Программа
фактически представляет собой представление алгоритма решаемой задачи на языке понятном процессору.
Множество команд, выполняемых процессором, образует систему команд процессора. Структура и объем системы команд процессора определяют его быстродействие, гибкость, удобство использования. Всего команд у процессора может быть от нескольких десятков до нескольких сотен. Система команд может быть рассчитана на узкий круг решаемых задач (у специализированных процессоров) или на максимально широкий круг задач (у универсальных процессоров). Коды команд могут иметь различное количество разрядов (занимать от одного до нескольких байт). Каждая команда имеет свое время выполнения, поэтому время выполнения всей программы зависит не только от количества команд в программе, но и от того, какие именно команды используются.
В общем случае система команд процессора включает в себя следующие четыре основные группы команд:
- команды пересылки данных; - арифметические команды; -логические команды; - команды переходов. Команды пересылки данных занимают
очень важное место в системе команд любого процессора. Они служат для пересылки данных в различные устройства хранения информации, которыми располагает микроЭВМ, а также для пересылки данных из этих устройств. К числу областей хранения
163
информации относятся как ячейки памяти, так и регистры. Более точно они выполняют следующие важнейшие функции:
- загрузка (запись) содержимого во внутренние регистры процессора;
- сохранение в памяти содержимого внутренних регистров процессора;
- копирование содержимого из одной области памяти в другую;
- запись в устройства ввода/вывода и чтение из устройств ввода/вывода.
Команды пересылки данных, возможно, следовало бы называть командами «копирования», потому что практически они осуществляют перемещение именно копии данных. Так, например, одна из этих команд перемещает данные из аккумулятора в область памяти. После выполнения данной команды и в области памяти, и в аккумуляторе находятся одни и те же данные. Очень редко в ходе выполнения команды пересылки данных разрушаются данные, находящиеся в исходном месте.
Как и любая другая команда, команда пересылки данных состоит из двух частей кода операции и адресной части. Во всех командах пересылки данных должны быть указаны как источник, так и место назначения данных.
Код операции в команде пересылки данных задает источник данных и способ адресации. Адресация может быть одного из трех видов: непосредственная, прямая и косвенная.
Восьмиразрядный микропроцессор может иметь 1-, 2- и 3-байтовые команды пересылки данных. Ниже будут рассмотрены команды пересылки всех форматов.
Таблица 11.13 Типовые команды пересылки данных
Название команды
Мнемоника команды
Содержание команды
Представление команды в памяти
Загрузка регистра непосредственная
LDA г, Данные Данные —> г LDAr Загрузка регистра непосредственная
LDA г, Данные Данные —> г Данные
Загрузка регистра непосредственная
LDA г, Данные Данные —> г
Загрузка регистра прямая
LDD г, Адрес М ^ г LDDr Загрузка регистра прямая
LDD г, Адрес М ^ г Ст. байт адреса
Загрузка регистра прямая
LDD г, Адрес М ^ г
Мл. байт адреса
Загрузка регистра прямая
LDD г, Адрес М ^ г
Загрузка аккумулятора косвенная
LDIA М-*А LDI А Загрузка аккумулятора косвенная
LDIA М-*А
Загрузка регистровой пары непосредственная
LRP В, Данные (М+1)-*В
LRP В Загрузка регистровой пары непосредственная
LRP В, Данные (М+1)-*В Ст. байт данных
Загрузка регистровой пары непосредственная
LRP В, Данные (М+1)-*В
Мл. байт данных
Загрузка регистровой пары непосредственная
LRP В, Данные (М+1)-*В
164 Окончание табл.Н.13
Пересылка из регистра в регистр
MOV rl, г2 r2 —rl MOV rl, г2 Пересылка из регистра в регистр
MOV rl, г2 r2 —rl
Запись аккумуля-тора-в-память прямая
STA А, Адрес А-*М STAA Запись аккумуля-тора-в-память прямая
STA А, Адрес А-*М
Ст. байт адреса
Запись аккумуля-тора-в-память прямая
STA А, Адрес А-*М
Мл. байт адреса
Запись аккумуля-тора-в-память прямая
STA А, Адрес А-*М
Запись аккумулятора в память косвенная
STIA А-+М STI А Запись аккумулятора в память косвенная
STIA А-+М
Арифметические команды рассматривают умножение, деление); коды операндов как числовые двоичные или - команды операций с плавающей запятой двоично-десятичные коды. Эти команды могут (сложение, вычитание, умножение, деление); быть разделены на пять основных групп: - команды очистки;
- команды операций с фиксированной запя- - команды инкремента и декремента; той (сложение, вычитание, - команда сравнения.
Таблица 11.14 Типовые арифметические команды
Название команды
Мнемоника команды
Содержание команды
Представление команды в памяти
1 2 3 4 Сложение с регистром
ADD г А + г->-А ADD г Сложение с регистром
ADD г А + г->-А
Сложение с памятью прямое
ADD М, Адрес А + М - * А ADDM Сложение с памятью прямое
ADD М, Адрес А + М - * А
Ст. байт адреса
Сложение с памятью прямое
ADD М, Адрес А + М - * А
Мл. байт адреса
Сложение с памятью прямое
ADD М, Адрес А + М - * А
Сложение с непосредственными данными
ADD I, Данные А + Данные —* А ADD! Сложение с непосредственными данными
ADD I, Данные А + Данные —* А
Данные
Сложение с непосредственными данными
ADD I, Данные А + Данные —* А
Сложение с регистром и переносом
ACDr А+г + С-»А ACDr Сложение с регистром и переносом
ACDr А+г + С-»А
Сложение с памятью и переносом прямое
5-
ACD М, Адрес А + М + С —А ACDM Сложение с памятью и переносом прямое
5-
ACD М, Адрес А + М + С —А
Ст. байт адреса
Сложение с памятью и переносом прямое
5-
ACD М, Адрес А + М + С —А
Мл. байт адреса
Сложение с памятью и переносом прямое
5-
ACD М, Адрес А + М + С —А
Сложение с памятью и переносом косвенное
ACIM М + А + С-+А ACI М Сложение с памятью и переносом косвенное
ACIM М + А + С-+А
Сложение с непосредственными данными и переносом
ACDI, Данные Данные + А + С —> А ACD1 Сложение с непосредственными данными и переносом
ACDI, Данные Данные + А + С —> А
Данные
Сложение с непосредственными данными и переносом
ACDI, Данные Данные + А + С —> А
Вычитание с регистром
SUB г А - г — А SUB г Вычитание с регистром
SUB г А - г — А
Вычитание с памятью прямое
SUB М, Адрес А - М — А SUBM Вычитание с памятью прямое
SUB М, Адрес А - М — А
Ст. байт адреса
Вычитание с памятью прямое
SUB М, Адрес А - М — А
Мл. байт адреса
Вычитание с памятью прямое
SUB М, Адрес А - М — А
Вычитание с памя- SUIM А - М - » А SUI М SUIM А - М - » А
165
Вычитание с непосредственными данными
Вычитание с регистром и переносом
Вычитание с памятью и переносом прямое
Вычитание с памятью и переносом косвенное Вычитание с непосредственными данными и переносом Десятичная коррекция аккумулятора^
SUB I, Данные
SCBr
SCB М, Адрес
SCI М, Адрес
SCB I, Данные
DAD А
Команды инкремента и декремента регистра либо регистровой пары, приведенные в табл. 11.15, имеют функциональное назначение, отличное от вычисления неко-
А ~ Данные —»А
А - г - С - * А
А - М - С — А
А - М - С - + А
А - Данные - С -+ А
Окончание табл. 11.14
SUBI Данные
SCBr
SCBM Ст. байт адреса Мл. байт адреса
SCIM
SCB I Данные
DAD А
торого результата. В них добавление или вычитание единицы чаще всего имеет целью определение следующего адреса записи либо чтения данных.
Типовые команды инкремента и декремента Таблица 11.15
Название команды
Мнемоника команды
Содержание команды
Представление команды в памяти
Приращение положительное регистра
INCr Г+1 ^ Г INCr Приращение положительное регистра
INCr Г+1 ^ Г
Приращение отрицательное регистра
DEC г r - 1 — r DEC г | Приращение отрицательное регистра
DEC г r - 1 — r
Приращение положительное регистровой пары
IRP ВС + 1 -» ВС IRP I Приращение положительное регистровой пары
IRP ВС + 1 -» ВС
Приращение отрицательное регистровой пары
DRP ВС-1-»ВС DRP Приращение отрицательное регистровой пары
DRP ВС-1-»ВС
1 Команды умножения и деления реали
зуются чаще как подпрограммы на основе операций сдвига, сложения и вычитания. Они будут рассмотрены позже в качестве примеров реализации операций на языке ассемблера.
Команды сравнения предназначены для сравнения двух входных операндов. По сУга, они вычисляют разность этих двух операндов, но выходного операнда не
шруют, а всего лишь изменяют биты в
регистре состояния процессора (PSW) то результату этого вычитания. Следующая за командой сравнения команда (обычно это команда перехода) будет анализировать биты в регистре состояния процессора и выполнять действия в зависимости от жж значений (о командах перехода речь идет в разделе 3.3.4). В некоторых процессорах предусмотрены команды цепочечного сравнения двух, последовательностей операндов; находящихся в памяти. Команды сравнения приведены в табл. 11.17.
166 Таблица 11.17
Типовые команды сравнения
Название команды
Мнемоника команды
Содержание команды
Представление команды в памяти
СРАВНЕНИЕ регистра с аккумулятором
СМРг А - г СМРг
СРАВНЕНИЕ непосредственно адресуемой памяти с аккумулятором
CMP М, Адрес А - М . СМРМ СРАВНЕНИЕ непосредственно адресуемой памяти с аккумулятором
CMP М, Адрес А - М .
Ст. байт адреса
СРАВНЕНИЕ непосредственно адресуемой памяти с аккумулятором
CMP М, Адрес А - М .
Мл. байт адреса
СРАВНЕНИЕ непосредственно адресуемой памяти с аккумулятором
CMP М, Адрес А - М .
СРАВНЕНИЕ косвенно адресуемой памяти с аккумулятором
CMIM А - М CMI М СРАВНЕНИЕ косвенно адресуемой памяти с аккумулятором
CMIM А - М
СРАВНЕНИЕ косвенно адресуемой памяти с аккумулятором
СМ1М А - М CMI М СРАВНЕНИЕ косвенно адресуемой памяти с аккумулятором
СМ1М А - М
СРАВНЕНИЕ непосредственных данных с аккумулятором
СМРI, Данные А - Данные СМР 1 СРАВНЕНИЕ непосредственных данных с аккумулятором
СМРI, Данные А - Данные Данные
СРАВНЕНИЕ непосредственных данных с аккумулятором
СМРI, Данные А - Данные
Логические команды производят над операндами логические (побитовые) операции, то есть они рассматривают коды операндов не как единое число, а как набор отдельных битов. Этим они отличаются от арифметических команд. Логические команды выполняют следующие основные операции:
- логическое И, логическое ИЛИ, сложение по модулю 2 (исключающее ИЛИ);
- логические, арифметические и циклические сдвиги;
- проверка битов и операндов; - установка и очистка битов (флагов)
регистра состояния процессора (PSW). Этим командам, как и арифметическим,
требуется один или два входных операнда, и формируют они один выходной операнд. Они приведены в табл. П. 18.
Типовые логические команды Таблица 11.18
Название команды
Мнемоника команды -
Содержание команды
Представление команды в памяти
И над регистром и аккумулятором
AND г А&г — А AND г И над регистром и аккумулятором
AND г А&г — А
И над непосредственно адресуемой памятью и аккумулятором
AND М, Адрес А&М->А ANDM И над непосредственно адресуемой памятью и аккумулятором
AND М, Адрес А&М->А
Ст. байт адреса
И над непосредственно адресуемой памятью и аккумулятором
AND М, Адрес А&М->А
Мл. байт адреса
И над непосредственно адресуемой памятью и аккумулятором
AND М, Адрес А&М->А
И над косвенно адресуемой памятью и аккумулятором
ANIM А&М-+А ANI М И над косвенно адресуемой памятью и аккумулятором
ANIM А&М-+А
И над непосредственными данными и аккумулятором
AND I, Данные А & Данные —»А ANDI И над непосредственными данными и аккумулятором
AND I, Данные А & Данные —»А
Данные
И над непосредственными данными и аккумулятором
AND I, Данные А & Данные —»А
ИЛИ над регистром и аккумулятором
OR г A v г->А OR г ИЛИ над регистром и аккумулятором
OR г A v г->А
ИЛИ над непосредственно адресуемой памятью и аккумулятором
OR М, Адрес A v М-+А ORM ИЛИ над непосредственно адресуемой памятью и аккумулятором
OR М, Адрес A v М-+А
Ст. байт адреса
ИЛИ над непосредственно адресуемой памятью и аккумулятором
OR М, Адрес A v М-+А
Мл. байт адреса
ИЛИ над непосредственно адресуемой памятью и аккумулятором
OR М, Адрес A v М-+А
Окончание таблЛШ Название команды ИЛИ над косвенно адресуемой памятью и аккумулятором ИЛИ над непосредственными данными и аккумулятором
ИСКЛЮЧАЮЩЕЕ ИЛИ над регистром и аккумулятором ИСКЛЮЧАЮЩЕЕ ИЛИ над непосредственно адресуемой памятью и аккумулятором
ИСКЛЮЧАЮЩЕЕ ИЛИ над косвенно адресуемой памятью и аккумулятором ИСКЛЮЧАЮЩЕЕ ИЛИ над непосредственными данными и аккумулятором
Инверсия аккумулятора
Мнемоника команды ORIM
OR I, Данные
XORi
XOR М,Адрес
XOIM
XORI, Данные
СМ А
Команды сдвигов (табл. П. 19) позволяют побитно сдвигать код операнда вправо (в сторону младших разрядов) или влево (в сторону старших разрядов). Тип сдвига
Содержание команды A v М -»А
Представление команды в памяти
от м \
A v Данные -* А
А® г-»А
А@М-*А
А ® Данные —»А
'OKI Данные
ЖОМ г
ХОЙМ Cm, байт aSpem Мл. байт вЗртв
Д&тш
(логический, арифметишкйй шмя цшжяпчеетй) впрещяяет, ттш %дег щ»§® значение стармивд §тж^щт щшш щрш®) ИЛИ младшего бит (щт щки® *яш>>|, & ШШЙР
Типовые швмямдм емжттт ТябиннрЯДО
Название ко-
Циклический сдвиг аккумулятора вле-
Циклическнй сдвиг аккумулятора. вправо Сдвиг аккумулятора влево
Сдвиг аккумулятора вправо
Мнемоника команды
RAL
RAM
SAL
SAR
Садерашяме «©-_мавдь1____^___
**p^p*{cii«.,pip- ^ ' W j - *
определяет, будет яи где-т© сохранено прежнее значение старшего бита (при сдвиге влево) или младшего бита, (при сдвиге вправе). Например, при логическом cdmtze вправо в маршем разряде кода операнда Устанавливается нуль» а ШЩДЙШЙ §дарад •вписываете* в качестве флага перенося ш регистр состояния процессора, А яря аРифмептчесгшм еётае вправе значение
шт еджюцгй),, ш щ и » ! рщрщ -каше
Яр» <£ДШ« SSSpff® ИМИ в р М » ЧШЙЙЙЙ (Sfl|pfitlW яря ®щтт- шш>% Яр» зчадда s щявд$> <адяда* ЖЖФГ ЮЭДИ» ЙОТ» Ш> МЩИШ> ф и г йКр«ЙШй8.
168 записывается значение старшего бита при циклическом сдвиге влево и младшего бита при циклическом сдвиге вправо. Соответственно, значение бита флага переноса будет переписываться в младший разряд при циклическом сдвиге влево и в старший разряд при циклическом сдвиге вправо.
Команды переходов предназначены для организации всевозможных циклов, ветвлений, вызовов подпрограмм и т.д., то есть они нарушают последовательный ход выполнения программы. Эти команды записывают в регистр-счетчик команд новое значение и тем самым вызывают переход процессора не к следующей по порядку команде, а к
Команды переходов с дальнейшим возвратом в точку, из которой был произведен переход, применяются для выполнения подпрограмм. Эти команды называются также командами вызова подпрограмм.
любой другой команде в памяти программ. Некоторые команды переходов предусматривают в дальнейшем возврат назад, в точку, из которой был сделан переход, другие не предусматривают этого. Если возврат предусмотрен, то текущие параметры процессора сохраняются в стеке. Если возврат не предусмотрен, то текущие параметры процессора не сохраняются.
Команды переходов без возврата делятся на две группы:
- команды безусловных переходов; - команды условных переходов. Типовые команды переходов приведены в
табл. 11.20.
Таблица 11.20
Использование подпрограмм позволяет упростить структуру основной программы, сделать ее более логичной, гибкой, легкой для написания и отладки. В то же время надо учитывать, что широкое использование
Типовые команды переходов Название команды
Мнемоника команды
Содержание команды
Представление команды в памяти
Переход безусловный
JMP, Адрес JMP Ст. байт адреса Мл. байт адреса
Переход, если нуль JZ, Адрес Л Ст. байт адреса Мл. байт адреса
Переход, если не нуль
JNZ, Адрес JNZ Ст. байт адреса Мл. байт адреса
Переход, если перенос
JC, Адрес JC Ст. байт адреса Мл. байт адреса
Переход, если нет переноса
JNC, Адрес JNC Ст. байт адреса Мл. байт адреса
Переход, если минус
JN, Адрес JN Ст. байт адреса Мл. байт адреса
Переход, если не минус
JNN, Адрес JNN Ст. байт адреса Мл. байт адреса
подпрограмм, как правило, увеличивает время подпрогамм приведены в табл. 11.21, выполнения программы. Команды вызова "
Типовые команды вызова подпрограмм Таблица 11.21
Название команды Вызов подпрограммы безусловный
Вызов подпрограммы, если нуль
Вызов подпрограммы, если не нуль
Вызов подпрограммы, если перенос
Вызов подпрограммы, если нет переноса
Вызов подпрограммы, если минус
Мнемоника команды CALL, Адрес
CZ, Адрес
CNZ, Адрес
СС, Адрес
CNC, Адрес
Содержание ко-манды СК->Стек
СК 'г* Стек
СК -* Стек
СК —* Стек
СК —* Стек
CN, Адрес СК -> Стек
Представление команды в памяти
CALL Cm. байт адреса Мл. байт адреса
CZ Ст. байт адреса Мя. байт адреса
cm Ст. байт адреса Мл. байт адреса
CjL Ст. байт адреса Мя. байт адреса
CMC Ст. байт адреса Мя. байт адреса
Cm, байт адреса Мя. байт адреса
Вызов подпрограммы, если не минус
CNN, Адрес СК —• Стек ЖМ
Ст. байт адреса Мя. байт адреса
Возврат из подпрограммы
RET Стек —» СК
Для установки и сброса разряда маски в «лог. О» либо в «лог.1» регистра состояния служат команды, приведенные в табл.11.22.
'штат 1 Ш Команды установки и сброса маски ив ирерьшани»
Название команды Сброс маски прерывания
Установка маски прерывания
Мнемоника команды CLI
STI
Содержание команды О —* Разряд «Прерыв а я » PSW
1 — > Разряд «Прерывание» PSW
Яредстаажвш: котяшщт ив изшяш
Г Ш1
170
11.4.3. Система памяти
Классификация видов памяти. Важность памяти определяется не только тем, что она является одним из основных элементов любой вычислительной системы, но и тем, что харак-
- D - Dynamic (динамическая); - S - Static (статическая); - Р - programmable (перепрограммируе
мая); - RAM - Random Access Memory (память
с произвольным доступом, ОЗУ); - ROM - Read Only Memory (память толь
ко для чтения, ПЗУ); - FRM - Fast Page Mode (память с режи
мом быстрого переключения страниц); - EDO - Extend Data Output (с расширен
ным выводом данных); - BEDO - Burst EDO (пакетный EDO); - CDRAM - Cache DRAM (кэшированная
DRAM); - EDRAM - Enhanced DRAM; - SDRAM - Synchronous DRAM (син
хронная DRAM); - ESDRAM - Extended Static DRAM (рас
ширенная DRAM); - DDR SDRAM - Double Date Rate
SDRAM (с удвоенной скоростью передачи); - RDRAM - Ramous DRAM (DRAM с вы
сокоскоростной шиной); - SLDRAM - SyncLine DRAM (DRAM с
пакетной передачей по синхронизированной линии связи);
- SB SRAM - Sync Burst SRAM (синхронная пакетная SRAM);
теристики памяти определяют быстродействие всей системы. Классификация видов памяти приведена на рис. 11.72.
Значения символов приведенных на рис. II. 72 аббревиатур приведены ниже:
- РВ SRAM - Pipelined Burst SRAM (кон вейерная пакетная SRAM);
- FRAM - Ferroelectric RAM (сегнето-электрическая RAM);
- MRAM - Magnetic RAM - магнитный вентиль в виде полупроводникового кристалла (t доступа хб не);
- PROM - Programmable Read Only Memory (однократно программируемая ROM)
- EPROM - Erasable Programmable Read Only Memory (многократно программируемая ROM, с возможностью удаления содерт жимого);
- EEPROM - Electrically Erasable Programmable Read Only Memory (электрически многократно программируемая ROM).
Основными операциями в памяти, в общем случае, являются:
- запись - занесение информации в память; - считывание - выборка информации из
памяти. Основными характеристиками систем
памяти являются: - информационная емкость - максимально
возможное количество байтов хранимой информации;
- ширина выборки (разрядность) -количество разрядов информации, записываемых в ЗУ или извлекаемых из него за одно обращение;
Динамическая
Асинхронная
-]fWDftw|
Синхронная
DRAM 1
\EDO DRAM\
-tlEDO DRAlA
EDRAM ]
Память
Статическая
Энергонезависимая
Асинхронная Синхронная
SDRAM I—I SRAM I
Неперепрог-раммируемая
юг- ~г% - SB SRAM
PBSRAM L_
lepenpor-раммируемая
ROM
PROM
EPROM
EEPRM
iFlash-EPROi »AJ
—j FRAM \
—{ MRAM I;
Рис. 11.72. Классификация видов памяти
- время обращения {быстродействие) -характеризуется временем цикла обращения к ЗУ, т.е.1 интервалом времени от момента поступления кода адреса до установления информации на выходе.
- способность сохранения информации при отключении питания.
По способу организации доступа к памяти различают ЗУ с произвольным доступом {адресные) и ЗУ с последовательным доступом (безадресные).
По * функциональному назначению различают сверхоперативные ЗУ (СОЗУ), оперативные ЗУ (ОЗУ), постоянные ЗУ (ПЗУ), перепрограммируемые постоянные ЗУ (1ШЗУ), стековые ЗУ.
СОЗУ представляют собой набор регистров, содержание которых непосредственно используется при обработке информации в микропроцессоре. СОЗУ встроено в БИС микропроцессора и предназначено для хранения команд, операндов и результатов промежуточных вычислений. Разрядность СОЗУ соответствует разрядности микропроцессора.
По способу хранения информации различают статические и динамические ЗУ. В статических запоминающих устройствах (SRAM) схемы ячеек памяти повторяют бистабильные структуры триггеров, но содержат минимальное число элементов, их возможности ограничиваются только требуемыми функциями. Пример такой структуры на многоэмиттерных биполярных транзисторах показан на рис. II. 46.
Сигнал "Выбор ячейки" поступает от дешифратора адреса, сигналы данных ("Уст. 1", "Уст. О", "Вых.") формируются через буферы ввода-вывода. На схеме ячейки памяти (рис. II. 45) цепи управления не показаны, для хранения 1 бита требуется, по крайней мере, 4 элемента (2 транзистора и 2 резистора), аналогичные структуры можно строить и на полевых транзисторах. Важным свойством статических ячеек памяти всех типов является постоянная готовность к выполнению операций, их быстродействие ограничивается только скоростью формирования сигналов. Недостаток статических ячеек - относительно большое число
Рис. II. 46. Ячейка памяти статического запоминающего устройства
элементов. Как правило, такие структуры применяют в запоминающих устройствах ограниченного объема данных при высоких требованиях к быстродействию.
В динамических ячейках памяти (DRAM) для хранения данных используется напряжение заряда паразитной входной емкости МОП-транзистора. Эта емкость может быть заряжена до напряжения логического 0 или 1, и пока напряжение заряда не выходит за определенные границы, ему соответствует определенное состояние МОП-транзистора. Для хранения 1 бита в этом случае требуется только 1 транзистор, а функции хранения данных выполняет его входная емкость. Пример ячейки памяти динамического типа показан на рис. II. 47.
В динамической ячейке памяти, кроме основного МОП-транзистора, который выполняет функции хранения данных с помощью напряжения заряда паразитной емкости затвора, показаны управляющие цепи, содержащие МОП-транзисторы для подключения входной и выходной цепи по сигналу "Выбор ячейки". Для хранения 1 бита требуется всего 1 элемент, а в процессе хранения данных ток не потребляется. Такие структуры широко применяются в запоминающих устройствах большой емкости.
2 > — в • .
Выбор ячейки % т
Рис. II. 47. Ячейка памяти динамического запоминающего устройства
Особенностью применения динамических запоминающих устройств является необходимость периодического восстановления заряда в процессе хранения данных. Несмотря на высокое входное сопротивление цепей управления в МОП-транзисторах, из-за весьма малой величины заряда, обеспечивающего хранение данных, происходит постепенное изменение напряжения. Это напряжение может выйти за допустимые границы в течение нескольких мс, а это приведет к неизбежному искажению' хранящихся данных. Для того чтобы предотвратить потерю данных, необходимо выполнять регенерацию, т.е. считывание и повторную запись данных для восстановления управляющего заряда. Процедура регенерации обычно выполняется автоматически внутренней схемой управления запоминающего устройства.
172
Процесс регенерации может замедлить выполнение операций и, кроме того, ограничение уровня потребляемого тока в цепях управления запоминающих устройствах большой емкости приводит к снижению быстродействия. Поэтому динамические запоминающие устройства "обладают меньшим быстродействием, чем статические,, обеспечивая хранение гораздо больших объемов данных.
Обобщенная структура модуля памяти приведена на рис. 11.73.
структура модуля Рис. 11.73.
Ячейки памяти организована в матриц}?,, количество элементов в шторой равно 'требуемому количеству слов, которое необходимо хранить в памяти. Из матриц составляются блоки, количество матриц в которых равно разрядности записываемой или считываемой информации. Управление блокам производится одновременно, так что запись или чтение разрядов каждого слова информации производится одновременно в выбранном ячейке каждого блока. Полный адрес слова в памяти состоит из адреса столбца и адреса строки.
Дшжмжескт ттттъ отличается тем, что ее запоминающим элементом явдается конденсатор. Если он заряжен, то в нем хранится логическая «1», если разряжен - то логический «О». Поскольку в любом реальном швденеа-торе существуют токм утечки, та заряженный конденсатор со временем разряжается т информация может быть утрачена» Для поддержания заряда необходим© периодически проводить регенерацию памяти' {обычно каждые 2 мс). Это обстоятельств© и определяет особенности структуры и функционирования динамической памяти.
Режим линии ввода-вывода (ввод, вывод, регенерации) определяете» сигналами управления СА&, ОЕ» WE, Считываемый сигнал усиливается усилителями ечитыванш УС, но
подается на линию ввода-вывода (в режиме вывода), либо снова записывается в ячейку (в режиме регенерации).
Быстродействие микросхемы динамической памяти определяется величиной цикла обращения к памяти. Он включает в себя время указания адреса и время записи (чтения). Этот цикл называется временем доступа и составляет величину 40-60 не (появление данных на выходе БИС с частотой 16,7- 25 МГц).
Временная диаграмма показывает зависимость тактовой частоты системной шины от типа памяти. Она характеризует число тактов, необходимых для выполнения четырех последовательных операций считывания данных. Например, временная диаграмма 5-2-2-2 означает, что для считывания первой порции (бита, байта, слова) необходимо 5 тактов процессора, а для каждого из трех последующих - по два такта.
Интегральные схемы DRAM, как правило, предназначены для хранения сравнительно больших объемов данных, для них характерна минимальная стоимость на единицу объема данных. Например, серия интегральных схем DRAM MT48LC компании Micron Technology обеспечивает емкость 64-512 Мбит с различным форматом данных, из-за большого числа сигналов адресной шины выпускается в 54-выводных корпусах.
Типовым примером статических запоминающих устройств с произвольным доступом (SRAM) может служить серия интегральных схем НМ62256В компании Hitachi. Расположение выводов в корпусе DD? показано на рис. 0.74.
Рмс. .11.74, Корпус статической HM622S6B
(SRAM) серии
Сигналы в НМ62256В поддерживают стандартный интерфейс управления, ячейки памяти предназначены для однобайтового формата. Общий объем данных 32К однобайтовых ячеек, поэтому для адресации необходим 15-разрядный код (сигналы А0-А14). Линии ввода .вывода (I/O0-X/Q7) предназначены для передачи байта данных в обоих направлениях. Время выполнения операции чтения/записи данных составляет 35-80 не, потребляемая
мощность в режиме хранения менее 1 мкВт, но существенно возрастает при выполнении чтения/записи.
Статическая память имеет аналогичную DRAM организацию, но не нуждается в регенерации. Она поэтому более быстродействующая (время доступа 10-15 не), но потребляет большую мощность. Поэтому SRAM используется для специальных целей, прежде всего - кэширования.
Существуют следующие разновидности статической памяти:
- Async SRAM (асинхронная SRAM); - Sync Burst SRAM (синхронная пакетная
SRAM); - Pipelend Burst SRAM (конвейерная па
кетная SRAM). Микросхемы типа Async SRAM имеют
время доступа 12, 15 и 20 не. Это позволяет процессору читать данные в пакетном режиме без тактов ожидания, с временной диаграммой 3-2-2-2 на частотах 50 МГц и выше.
Микросхемы Sync Burst SRAM имеют время доступа 8,5, 10, 13,5 не и временную диаграмму 2-1-1-1 на тактовой частоте до 66 МГц, либо 3-2-2-2 на частотах 75 МГц и выше.
РВ Burst SRAM позволяет работать без тактов ожидания на частотах более 75 МГц (временная диаграмма 3-1-1-1).
Ячейку памяти статического ОЗУ можно рассматривать как регистр памяти с тремя состояниями выхода, дополненный простейшей логикой управления. Функциональная схема такой ячейки приведена на рис. 11.75.
Dn-
— — ся—|7|г CS2—*—*Ц* SB
ю
Pne.JI.75. фушвшшляыит схема ячейки в « ш статического ОЗУ
Ячейка имеет двунаправленные вывода* D«...Dib по которым виз либо принимает записываемое слово в режиме записи, либо выдает зашеанный щэд т. выход режиме чтении. Ячейка запоминает входя©* код в регистре, если сигналы записи WR ш ~Ш равны ©ow~ веютвеаиоОи L
173
Если же WR- U а Ю)т 4 ячейка выдает на выводы D*...Do слово, хранящееся ш регистре. Как при записи» так и при чтении ячейка должна^ быть выбрана сигналами CSl=CS2 = Q- В противном случае эти яро* цессы будут блокированы.
Введя для рассмотренной ячейки памяти условное обозначение» показанное на рие,11,76, и объединив множество таких ячеек дешифратором адреса, легко построить статическое ОЗУ произвольной емкости.
и ** Запись— т т
Чтемм"~ Ш щ 'Hi
Щ
=
Втборм
Ш щ 'Hi
Щ
Рие.ИЛб, ¥шшаш ®§штчтт шч$Шш стапкчмюге 0Ш
Его функщюншыш схема представши ш ршсЛЛ.
РтеЛ.7% стаж «яшшчшвшр ту
Все ячейки ътмшж дан»® €UF едмерйши--т® tmm/mm: атшш mSmmmm (ШШ% "Чтение" (МО) и штт ш§щ» вретаа» CS - Одет» акташва* ш> ©era» <®§мшяв9етш
Шж Ш» ттт ш тжЗШ? §щря£ шчвдрв® риж^-
храшга- дшмш •товннда вира йвдетришйаш ЙЖ-
щетине ©ярщедашшш ящадеташташш дав-ивдх з фирме теш»,, ЙЖ^ШКШЙЙ шшш тшщж--
174
должна постоянно поступать энергия от источников питания.
Энергонезависимая память имеет аббревиатуру NVRAM (Non Volatile - не временная RAM), не нуждается в электропитании и сохраняет данные в течение длительного времени. Она используется, например, для хранения кода BIOS компьютера и карт расширения, скан-кодов клавиатуры и т.д.
В последние годы разрабатываются новые структуры и соответствующие микроэлектронные технологии для производства устройств памяти. В этих разработках, сохраняя основные свойства RAM, используют новые принципы, которые позволяют производить энергонезависимое хранение данных. Запись данных производится в сегнетоэлектриках или ферромагнитных материалах. К настоящему времени выпускаются законченные изделия на основе сегнетоэлектриков (FRAM компании Ramtron) и магниторезистивных ячеек (MRAM компании Freescale Semiconductor). Устройства FRAM и MRAM, обеспечивая хранение данных при отключении питающих напряжений, являются достаточно эффективным дополнением к широко применяемым устройствам SRAM и DRAM. К сожалению, по стоимости и возможности интеграции с изделиями традиционных микроэлектронных технологий новые устройства пока неконкурентоспособны.
Способы повышения скорости обмена данными. Для повышения скорости обмена между процессором и памятью используются специальные технологии и регистры памяти:
- пакетный режим; - чередование памяти • - страничная организация памяти; - кэширование памяти. Пакетный режим затрагивает данные не по
байтно, а пакетами по 32 или 64 бит. Режим был организован в процессорах 80486 (и выше). Вместо одного слова процессор считывает по три, расположенные рядом.
Чередование адресов памяти предполагает специальное расположение логически связанных данных. При этом в процессе регенерации в одном чипе (кристалле) памяти информация для работы считывается из другого чипа. Организацию и управление чередованием памяти осуществляет контроллер, логически объединяющий два банка в один и распределяющий адресное пространство так, чтобы соседние адреса находились в разных банках.
Страничная организация памяти основана на том, что память представляется набором страниц, и сигнал RAS подается только при
переходе со страницы на страницу. Если же обрабатываемая информация находится в пределах страницы, то процесс работы с ней происходит на более высокой скорости.
Кэширование памяти производится для ускорения доступа к данным за счет применения промежуточной (буферной) памяти небольшой емкости (256 Кб - 2 Мб). Она работает на частоте процессора и поэтому при обращении к ней не требуется циклы ожидания.
Модульная организация памяти. Для уменьшения площади материнской платы, занимаемой памятью, была разработана модульная организация памяти. Каждый модуль устанавливается в специальный разъем (слот). Слоты организуются в группы, называемые банками. Банк должен быть заполнен.
Различают несколько типов модулей памяти.
SIP-модули (Single In-line Package - одноразрядные модули) представляли собой небольшую плату с размещенными на ней микросхемами DRAM. Плата имела 30 выводов, размеры 1,7x8 см. Использовались на материнских платах с процессором Intel 80386 и имели проволочные контакты.
SIMM- модули (Single In-Line Memory Module) - имеют примерно тот же размер, но отличаются печатными PAD - контактами типа «вилка». Это повысило надежность контактов. Первые SIMM имели 30 выводов (короткие), позже появились SIMM с 72-мя выводами. 30 выводные SIMM-модули - 8 разрядные (9-разрядные с контролем четности), а 72-выводные SIMM - 32-разрядные (с контролем четности 36-разрядные, а с коррекцией ошибок - 40-разрядные).
DIMM- модули (Dual In-Line Memory Module) отличаются электрической независимостью контактов на обеих сторонах платы. Наиболее распространенными являются 168-контактные 64-разрядные DIMM-модули, имеющие по 84 контакта с каждой стороны, предусмотрены ключи - конструктивные элементы, предотвращающие неправильную установку модулей (в форме вырезов).
RIMM- модули (Rambus In-Line Memory Module) - 184-контактные модули высокоскоростной оперативной памяти, поддерживающие канал Direct Rambus (16-разрядная шина с тактовой частотой 400 МГц). Пропускная способность RIMM - модуля в 2-3 раза превышает аналогичную характеристику DIMM-модулей. На материнской плате может располагаться до 3 RIMM-модулей. Они снабжаются SPD-схемой памяти (Serial Presuse Detect) - энергонезависимая микросхема с информа-
цией о модуле и производителе. На модуле могут располагаться от 1 до 16 элементов DRAM. Umm=2,5 В.
Flash-память. В последние годы наибольшее распространение получили устройства со стиранием и записью данных электрическими сигналами (EEPROM) на основе, так называемой Flash-памяти. Ячейки Flash-памяти обеспечивают высокую плотность записи в полупроводниковых структурах и технологически могут интегрироваться с другими стандартными цифровыми компонентами в составе одной интегральной схемы. Поэтому Flash-память выпускается и в виде отдельных устройств памяти, и в составе функционально законченных изделий таких, как микроконтроллеры. Срок службы таких устройств памяти постоянно растет: количество циклов перезаписи становится практически неограниченным, время хранения данных достигает десятков лет; стоимость же существенно снижается. Благодаря этим факторам Flash-память широко применяется в различных устройствах, требующих энергонезависимого хранения данных, например, микроконтроллерах, Flash-дисках, аудиоплейерах, цифровых фотоаппаратах и т.п.
Как уже отмечалось, процедуры чтения данных Flash-памяти могут выполняться средствами стандартного для микропроцессорных устройств интерфейса, скорость доступа к данным в одной ячейке памяти такая же, как у RAM среднего быстродействия. Выбор определенной ячейки в матрице запоминающего устройства выполняется стандартной двоичной адресацией, формат данных также стандартный.
Однако процесс стирания и записи данных в ячейках Flash-памяти требует гораздо больше времени, чем чтение данных и требует формирования специальных сигналов. Например, типовая длительность стирания-записи составляет 5 мс. Для ускорения этих операций матрицу запоминающих ячеек разделяют на страницы, каждая из которых образована достаточно большим количеством ячеек. Процесс записи проводят через буферную RAM с объемом, равным объему страницы. Данные для записи на первом этапе заносят в буфер. На втором этапе проводят стирание и запись страницы в едином цикле. Такая организация процедуры позволяет производить обновление данных при записи достаточно быстро, но лишает возможности обращения к единственной ячейке. Хотя для изменения данных в отдельных ячейках возможно чтение всей страницы в буфер, изменение данных отдельных ячеек и
175
повторная запись модифицированных данных и тех, которые остались неизменными.
Двухступенчатая процедура записи с промежуточной буферизацией данных не предусмотрена стандартным интерфейсом памяти, потому запись данных производят с помощью специальных устройств, называемых программаторами, а запись данных - программированием. Как правило, для программирования Flash-памяти используют какой-либо последовательный интерфейс, т.к. необходимо передавать не только адреса и данные, но и команды выполнения различных операций процедуры записи.
В качестве примера интегральной схемы Flash-памяти рассмотрим АТ45ВШ642 компании Atmel. Объем данных в AT45DB642 составляет 64 Мбита, формат ячейки памяти - 1 байт. Для операций чтения поддерживается интерфейс с параллельной передачей байта данных. Выполнение любых операций с данными требует передачи кода команды, двоичных адресов и самих данных. Поэтому любой рабочий цикл начинается с передачи команды, за которой должен обязательно постушт* адрес и только на последнем этапе передаются данные. Для снижения числа, линий вееда-вывода в параллельном интерфейсе вес кода, включая коды команд, поступают поочередно по 8 линиям ввода-вывода, Стандартные средства программирования требуют применения последовательного интерфейса ЯЧ, который также реализован в AT45DB&42,
Операции с данными могут прошдшъея через любой из 2 буферов 'RAM, объем жшщщ»-го буфера соответствует объему страницы 1056 байт. Как указывалось ржиее, запись данных в ячейки производится толь» явстрааи*!-но. Выполнение операций с данными вошюж-но .для отдельного1 байта или страншда, для обработки массивов данных странице объединяются 8 блоки (8 страши.) и сектора (32 блока).
Для снижения СТОИМОСТИ мтепршшшх. схем в устройствах flash памяти отзшшвзетш от реализации параяяетяюго шггерфешж я «© операции обмена данными еылржшшг <I£$R&3 последовательный интерфейс.. Например, * микросхеме АТ24С256 компънхк. Айве! >&§ш-мом32 Кбайт все зр.тат^* зыгтмгтютш через последовательный интерфейс К С эю яаж©-ляет выпуская» микросхему е дадершм $-выводном корпусе.
Применение и ---п'-: I*LC% тшжгриммшт. схем Иа«в-ла*вппи для жраюем» мед»® программ и RAM' зля хранения данинш шш&жшяг создавать недорогую, tm еесшз. ^фшташшр®
176
клавиатурой снаожаются оконечные устройства ЭВМ.
- специальная клавиатура, применяемая в практике проектирования конкретной системы; в ней клавиши имеют обозначения, семантически совпадающие с управляемыми ими элементами этой системы.
Большинство клавиатур построено по одному и тому же принципу, иллюстрируемому рис. 11.78.
систему хранения данных в микропроцессорных устройствах. Важной особенностью всех этих устройств памяти является возможность технологической интеграции с другими стандартными цифровыми элементами, это позволяет выпускать в виде готовых к применению интегральных схем-различные функционально законченные устройства. Например, практически все современные микроконтроллеры содержат встроенную Flash-память для хранения кодов программ.
П.4.4. Система ввода-вывода
Устройства ввода-вывода. Для ввода данных в микропроцессор и для их вывода используются устройства различного типа. Выбор устройства ввода-вывода зависит от источника информации, с которым работает микропроцессор.
Устройства ввода-вывода делятся на две группы:
- для связи человека с ЭВМ; - для связи микропроцессора с техниче
скими средствами. Специфика устройств первой группы со
стоит в то, что эти устройства должны, во-первых, обеспечивать передачу обычных арифметических знаков операций, нескольких специальных математических символов и знаков пунктуации, т.е. относительного небольшого количества символов, а, во-вторых, процесс взаимодействия человека с машиной протекает медленно, т.е. данные можно вводить или выводить с небольшой скоростью. Как правило, для ввода данных используется клавишное устройство, а для отображения информации — цифровой или символьный дисплей.
Специфика устройств второй группы состоит в том, что, во-первых, связь микропроцессора с другими устройствами, например с накопителями на магнитных дисках, производится с использованием различных кодов, т.е. особенности человеческого восприятия информации здесь не учитываются, а, во-вторых, ввод и вывод данных осуществляются с высокой скоростью.
Наиболее распространенным устройством, с помощью которого человек вводит данные в микропроцессор, является клавишные устройства, подразделяемые на три группы:
- простая клавиатура для ввода цифр; такую клавиатуру имеют обычные электронные калькуляторы;
- клавиатура для ввода полного набора буквенно-цифровых символов; обычно такой
ГТИI 1 2-разрядный счетчик
1- 1— Дешифратор 4 из 2
Рис. II78. Функциональная схема клавиатуры
На этом рисунке изображена обычная матрица ключей, имеющая вертикальные линии (колонки) и горизонтальные линии (строки). Колонки клавиатуры сканируются, т.е. на них последовательно подаются сигналы. Сначала сигнал подается на первую колонку, затем - на вторую, третью и, наконец, на четвертую колонку. Затем эти действия повторяются. Сканирование может выполняться как самим микропроцессором, так и с помощью отдельной интегральной схемы - сдвигового регистра. Для этой цели можно использовать также двоичный счетчик и дешифратор (см. рис. 11.78). Вертикальные линии матрицы клавиатуры связаны с горизонтальными линиями матрицы с помощью ключей. В рассмотренном примере используется 16 ключей. Такое количество ключей соответствует матрице 4x4.
Линии, по которым поступают сигналы сканирования, и горизонтальные линии матрицы клавиатуры связаны со схемой кодирования. Эта схема выполняет две функции. Сначала она несколько раз подряд проводит проверку замыкания контактов ключа. Это делается для того, чтобы быть уверенным, что замыкание контактов действительно имеет место. Многократная проверка позволяет избежать появления ошибок. Такой прием называют защитой от дребезга контактов. Так, если 10 раз подряд было установлено, что один и тот же контакт находится в замкнутом состоя-
нии, то велика вероятность того, что определенная вертикальная линия и определенная горизонтальная линия действительно соединены друг с другом посредством ключа. Таким образом, делается вывод, что клавиша клавиатуры, соответствующая пересечению вертикальной и горизонтальной линий матрицы клавиатуры, нажата.
После того как произведена проверка надежности замыкания контактов, может быть выполнено кодирование выходных данных. Схема кодирования представляет собой ПЗУ. Она воспринимает информацию, поступающую на вертикальные и горизонтальные линии матрицы клавиатуры, и образует необходимые выходные сигналы, которые могут быть представлены в параллельной или последовательной форме.
Аппаратные средства, обеспечивающие функционирование клавиатуры микропроцессорных систем, обычно реализуются одним из двух способов:
- сканирование вертикальных линий клавиатуры и формирование выходных сигналов клавиатуры выполняется самим микропроцессором; для этого матрица клавиатуры должна соединяться с портами ввода-вывода микропроцессора, а для защиты от дребезга требуется специальная подпрограмма;
- использование для выполнения этих функций специальных интегральных схем.
В состав систем, имеющих клавиатуру, как правило, входит и устройство отображения информации (индикатор, дисплей и т. п.). Для отображения информации с помощью дисплеев используются буквенно-цифровые и специальные символы. Имеются три различных типа устройств отображения, которые аналогичны трем рассмотренным типам клавиатуры: - простые индикаторы, предназначенные для отображения только цифр; -точечные матрицы 5x7 или 5 х 9; -дисплеи специального назначения. '••В' простом индикаторе для отображения
цифры может использоваться сегментная структура, состоящая, например, из семи сегментов, показанная на рис. 11.79, и позволяющая отобразить символы шестнадцатеричного кода и некоторые другие символы.
С L
Рис. 11.79. Сениеелиевткый индикатор
177
Точечная матрица (приведена на рие, 11,80) позволяет формировать большие буквенно-цифровые символы, а также прописные, строчные буквенные и мнемонические символы (например, стрелки, звездочки и т.п.),
• • • • » • » • • • • » • • • • • • • • * • к • » « • • • » • • • • • » • # # •
Рис. IIJ0, Точечный ииткатр
В дисплеях специального назначения отображаются не отдельные буквенно-цифровые, символы, а специальные обозначения или сообщения, соответствующие функциям конкретной системы.
Буквенно-цифровые устройства отображу ния можно также подразделить на- устройства, обеспечивающие получение «твердой» (печатающие устройства, принтеры) или шятшй» копии (видеотерминалы от 24 до 48 строк, в каждой из которых обычно содержится 40, Ш или 132 символа).
Интерфейсы, Щшш обеспечения евши микропроцессора с различными внешними устройствами используются два вида интерфейса.
Параллельный интерфейс, Простейшим является параллельный интерфейс. При использовании параллельного интерфейса микропроцессор за каждую операцию обмена обесяе*»' вает передач}' количества бит ияфермадщ, равного1 его разрядности. На рис. VLSI яред,-ставлена схема обеспечения шряяяешявш ввода-вывода, данных.
Шина данных мжчрш^шмр» штетт дауяаирашейш*; s» wmsemsmm & мшм щ^ ществляется ее %феррс«яюс.. В (ржейийщрв-
178
ваемой схеме представлен буфер, стробируе-мый сигналом «Чтение устройства ввода-вывода». В качестве стробйрующего сигнала используется также сигнал «Запись в устройство ввода-вывода». Линии, по которым подаются указанные сигналы, аналогичны линиям ввода-вывода в схеме управления памятью, однако данные линии используются для подачи сигналов только во время выполнения операций ввода-вывода.
Сигнал «Чтение устройства ввода-вывода» поступает, когда микропроцессор готов к приему на шину данных микропроцессора данных из адресованного порта ввода-вывода. Этот сигнал поступает также на шинный формирователь. Линия подачи сигнала «Запись в устройство ввода-вывода» находится в активном состоянии, когда микропроцессор готов к записи данных в адресованный порт. Кроме того, последний сигнал подается в качестве стробйрующего сигнала в буфер выходных данных.
В рассматриваемой схеме обеспечения ввода-вывода данных используется регистр состояния, с помощью которого микропроцессор проверяет состояние порта ввода-вывода. Обычно регистр состояния, входной и выходной регистры имеют подряд идущие адреса портов ввода-вывода. Например, регистр, состояния может адресоваться как порт ввода-вывода с адресом 00, входной регистр — как порт ввода-вывода с адресом 01, а выходной регистр - как порт ввода-вывода с адресом 02.
Регистр состояния имеет только два разряда. Нулевой разряд регистра состояния устанавливается в состояние лог. 1 путем подачи сигнала «Входные данные готовы». После наступления прерывания микропроцессор должен выполнить программу обработки прерывания, соответствующую устройству, вызвавшему прерывание. Так как по сигналу «Входные данные готовы» устанавливается в 1 нулевой разряд регистра состояния, микропроцессору доступна информация о состоянии порта ввода-вывода. Теперь микропроцессор может воспользоваться командой In .для передачи данных, находящихся на входных линиях, в аккумулятор.
Команда Out микропроцессора служит для вывода данных. Данные, подаваемые микропроцессором на шину данных, помещаются в буфер данных. Вместе с тем устанавливается в лог. «1» первый разряд регистра состояния. Такому значению указанного разряда регистра состояния соответствует рабочее состояние линии «Выходные данные готовы». Тем самым внешнее устройство информируется о том, что
новые данные готовы к выводу. Этот разряд состояния сбрасывается внешним устройством, которое подает сигнал «Данные приняты». Если микропроцессору необходимо узнать, имеются ли данные, подлежащие выводу, он может ввести слово состояния порта ввода-вывода и проанализировать первый разряд этого слова.
Пара рассмотренных сигналов позволяет микропроцессору и внешнему устройству проверить готовность данных к передаче; таким образом, устраняется возможность потери данных и обеспечивается их корректная передача.
Схемы, подобные рассмотренной схеме обеспечения ввода-вывода, могут разрабатываться с использованием обычных микросхем, однако для этой цели могут быть использованы и специально созданные большие интегральные схемы. Обычно несколько параллельных портов ввода-вывода может размещаться на кристалле самого микропроцессора или на кристаллах, реализующих другие функции микропроцес- | сорной системы. Такой подход к размещению портов ввода-вывода приводит к созданию микропроцессорных систем с небольшим количеством кристаллов. Например, обычным решением является размещение двух или большего числа портов ввода-вывода в боль- j шой интегральной схеме, реализующей ПЗУ с масочным программированием. Такой модуль может использоваться со вместно с кристал- \ лом микропроцессора и кристаллом ОЗУ. Используя элементы трех указанных типов, мож- | но построить микропроцессорную систему, включающую в себя некоторое количество портов ввода-вывода и большее количество модулей ПЗУ и ОЗУ, чем у микроЭВМ, реали- I зованных на одном кристалле.
В некоторых микропроцессорах обращение к устройствам ввода-вывода организовано аналогично обращению к памяти. Устройствам ввода-вывода ставят в соответствие слова памяти и определенные адреса. Устройства подключаются к адресной шине памяти, а для управления обменом данными между ними и микропроцессором используются сигналы «Чтение из памяти» и «Запись в память». В этом случае при обращении к устройствам ввода-вывода не требуется использовать специальных команд ввода-вывода. Недостатком такого способа памяти является то, что часть адресного пространства памяти используется для адресации устройств ввода-вывода, размер этой части определяется количеством используемых в системе устройств ввода-вывода- :
Обычно в микропроцессорных системах используется 5-10 портов ввода-вывода, и поэтому указанного затруднения, как правило, не возникает.
Организация вводачвывода по аналогии с обращением к памяти упрощает процесс обмена данными, что является достоинством такого способа организации ввода-вывода. Исключается необходимость в специальных командах ввода-вывода и сигналах управления, которые при обычном способе организации передает шина управления микропроцессора. Так как адресами устройств ввода-вывода манипулируют как словами памяти, все команды микропроцессора, предназначенные для обращения к памяти, могут использоваться и для работы с устройствами ввода-вывода. Поэтому при программировании не обязательно ограничиваться простыми командами ввода-вывода. Можно, например, выполнить сложение вводимого слова данных с содержимым аккумулятора или сравнить входные данные с содержимым аккумулятора. В более совершенных микропроцессорах, в наборе команд которых имеются команды пересылки содержимого некоторой области памяти в другую область памяти, вводимое слово данных с помощью одной команды можно переслать из устройства ввода в определенную область памяти.
Фирмой Hewlett-Packard был разработан стандарт на организацию параллельной передачи данных между электронными контрольно-измерительными приборами и микропроцессором. Указанный стандарт получил широкое распространение, как в США, так и в Западной Европе. На основании этого стандарта была создана шина IEEE-488, показанная на рис.П.82. I*'этой системе микропроцессор служит контроллером. Он определяет диапазоны измерений и функции, которые должен выполнить вольтметр. Кроме того, микропроцессор указывает, когда вольтметр должен подать данные на шину. Как печатающее устройство, так я микропроцессор принимают данные. Допел-нитеяьно • к необработанным результатам измерений, поступающим на печатающее устройство, микропроцессор
179
подает на шину соответствующие вычиеяей-ные им параметры, Эти параметры тамже выдаются да печать;
Скорость передачи данных по мшн# НЕЕ» 488 может превышать 1 МбаЙт/е> Фяттестш скорость передачи данных по шине ограничивается быстродействием устройств? подключаемых к шине.
Рабочее расстояние для линий дарадасж-ного ввода-вывода ограничивается 1=2 М/При увеличении длины кабеля возрастает сто емкость, поэтому становится невозможной передача данных на высокой скорости, Дяяну ЛИНИЙ параллельной передачи даявмх можно увеличить до 10-20 м путем жп®ятввжж гаециальныж формировавшей и путем уменьшения скорости передачи. Однако даябяейшее увеличение длины линий яри трттмытШ передаче данных практически невозможно.
Последовательный интерфейс и рттр" сальный асинхронный пржтжереёятш Широкое применение способа' птштштттМ-передачи мтшът еёътмятш главным <s#pa-зом отсутствием ограничений^ щтушщт способу параллельной передачи;
При последовательной жестких ограничений на длину дянии ие яа-каадиваетш. Но, ярквде чем мттьтшшя®' ватмшую передачу данных, яшёящщям® ив-полни» преоЩтшштте мтжш я? ящршжш' дай формы в яоеледошдаюяр®, яаяршер.,, <Р ишштаввиием ©деягевогр регистра..
Вначале дтшые загдокшкав з ©дидашия" регистр. Содержимое сдайте®»*» ряиетра сдаигаежя яа ®дия рэзри я§» ш и р и ш и и каждого тжвжяг© тмтуя&щ, даям® да шш>-де тзигаго сдвигового |яда&С1|яа @$м$ж ЙЩР» я©-следовательяун» фэрму.. Ш$в»м яри ЛШВДЙ»--щяшиюй яецееде^ тшШ бит слога) жшг следужмвяй ш> шредк^ ёш одезй» , м т,д, Пшюдям* тшщЩ, тшшя ( бит слова деювмж.- Пдкодвдс дшшж m щряшяидай фдрйй » ЙШЯВДМФ-телвяуи» ярежиэалюв »а Р®- ИJ31
ri да 11 5> 1' * Ф 1)
ЁН W I: m \\№ № Ш №\Ш да Щр-
5J, ВДимтйумияр me • ^ w . ' _ #
• :
Рис 11.82. CipjnnjrpMM схем* ешежешы с • кишкм IE£E-4S#
180 Чтобы принять данные в последовательной
форме и преобразовать их в параллельную форму, необходимо выполнить действия, обратные по отношению к описанным выше. Данные, поступающие в последовательной форме, вводятся бит. за битом в сдвиговый регистр. После заполнения сдвигового регистра данные из него в параллельной форме передаются в микропроцессорную систему.
Устройство, обеспечивающее преобразование данных из параллельной формы в последовательную и обратное преобразование, называетсяуниверсальным асинхронным приемопередатчиком (УАПП, UART). Такое устройство реализуется в виде БИС.
Кроме преобразования формы представления данных, приемопередатчик выполняет важные функции контроля и управления. Приемопередатчик добавляет к каждому передаваемому слову данных 2 бит - стартовый бит и стоп-бит. Поэтому вместо передачи, например, 8-битового слова данных фактически требуется передать 10 бит данных. Дополнительные биты используются принимающим приемопередатчиком для установления границ начала и конца передаваемого слова данных. На рис.11. 84 изображено 8-битовое слово данных и показаны дополнительные стартовый и стоп-биты.
Старт, бит D7 D6 D5 0 4 0 3 D2 D1 DO Стоп.
бит.
Рис. 11.84. Байт данных со стартовым и стоповым битами
Стартовый бит всегда имеет значение лог. «О», стоп-бит - лог. «1». Скорость передачи данных описанным способом принято измерять в бодах. Один бод равен одному биту в секунду, и поэтому скорость в бодах выражает, сколько бит в секунду может быть передано по соответствующему каналу передачи данных. Например, скорость передачи 1200 бод означает, что за одну секунду будет передано 120 10-битовых символов: стартовый бит, 8 бит данных и стоп-бит.
При передаче сигналов со скоростью 110 бод используется особый формат передаваемых данных: здесь имеется один стартовый бит и два стоп-бита. Соответствующее слово данных будет иметь длину 11 бит. На рис. 11.85 представлен формат 11-битового слова данных, используемый в системах передачи данных, работающих со скоростью 110 бод.
Такая скорость передачи сигналов используется в механических стартстопных телеграфных аппаратах. В отличие от указанных
телеграфных аппаратов видеотерминалы могут работать со скоростями, достигающими 9600 бод. В некоторых системах используется 1.5-битовый сигнал окончания, который может генерироваться специальными УАПП.
Старт, бит
Старт, бит D? 0 6 Р5 D4 D3 02 D1 D0 Стоп,
бит
Рис. 11.85. Формат 11 битового слова данных
Обычно для работы асинхронного приемопередатчика требуется последовательность тактовых импульсов, период следования которых в 16 раз меньше времени передачи 1 бита данных. Например, для работы приемопередатчика со скоростью 1200 бод необходима последовательность тактовых импульсов, частота следования которых равна 19,2 кГц. Тактовые импульсы используются для синхронизации входного сигнала и для генерирования выходного сигнала.
Типичные УАПП подключаются к портам параллельного ввода-вывода микропроцессора. Однако некоторые приемопередатчики можно подсоединять непосредственно к шине микропроцессора.
Синхронизация приемопередатчика полностью не зависит от синхронизации микропроцессора. Следовательно, после того как микропроцессор поместил передаваемое слово данных в регистр передатчика, он не может знать, когда ему удастся загрузить в регистр передатчика следующее слово данных. Для разрешения этой коллизии в УАПП имеется регистр состояния, в котором специальный бит устанавливается в определенное состояние, когда приемопередатчик примет слово данных, и устанавливается в другое состояние по завершении передачи слова данных. Передача последовательного сигнала с использованием УАПП требует хранения битов состояния в регистре состояния приемопередатчика и микропроцессор должен ждать до тех пор, пока приемопередатчик не установит определенное значение бита состояния; анализ бита состояния позволяет микропроцессору определить готовность приемопередатчика к загрузке в него нового слова.
В некоторых УАПП предусмотрены разряды регистра состояния, которые позволяют выполнять программное управление скоростью работы приемопередатчика.
Для связи человека с ЭВМ широко используются терминалы; для обеспечения передачи данных между терминалом и ЭВМ часто применяются асинхронные приемопередатчики. Для человека взаимодействие с ЭВМ предпоч-
181 тительно осуществлять с помощью буквенно-цифровых символов. С этой целью используется специальный код, называемый Стандартным американским кодом для обмена информацией (American Standard Code for Information Interchange, или сокращенно ASCII).
При передаче 8-битовых кодов восьмой бит может либо иметь постоянное значение (логический 0 или логическая 1), либо значение, позволяющее обнаруживать некоторые ошибки при передаче символов. Если используется код с обнаружением ошибок, то восьмой бит называют контрольным битом четности. Большинство УАПП осуществляют формирование и проверку бита четности.
Для обнаружения ошибок при передаче данных может использоваться как контроль на четность, так и контроль на нечетность. После приема слова данных приемопередатчик проверяет в нем контрольный бит. Если обнару
живается нарушение четности (нечетности), то приемопередатчик записывает в регистр состояния признак ошибки. Затем УАПП может выдать запрос на повторную передачу данных. Проверкой на четность удается выявить 50% возможных ошибок. Очевидно, будет обнаруживаться только нечетное число ошибочных битов. Если ошибка возникнет сразу в двух битах, то обнаружить ее контролем на четность не удастся.
Кроме того, универсальный асинхронный приемопередатчик может обнаруживать ошибки синхронизации (кадрирования). Ошибки кадрирования происходят, когда приемопередатчик не идентифицирует стартовый бит. Структурная схема универсального асинхронного приемопередатчика представлена на рис 11.86.
«У им Блок
управления
Входные данные в параллельном коде D7 D6 D5 D4 D3 D2 D1 DO k I i I I I i i
Выходной буфер передатчика
16хСкоросгь передачи Е бодах
Строб вывода слова состояния
I I I I I I I I Регистр передатчика
Регистр состояния
1 I I I
Регистр приемника
I I I i I Выходной буфер приемника
~Т~Г~Т~~Г~Т~~Г~1 г D7 D6 05 D4 D3 D2 D1 DO
Выходные данные в параллельном коде
Строб ввода данных
t> Выходные данные в последовательной форме
Входные данные в последовательной форме
Строб вывода данных ,
Рис. 11.86. Структурная схема универсального асинхронного приемопередатчика
В схеме приемопередатчика можно выделить четыре основные части: приемную, передающую, регистр состояния и блок управления. Передающая часть состоит из выходного буфера и регистра передатчика. Этот регистр является сдвиговым регистром; на его выходе последовательно появляются: стартовый бит, биты данных DO - D7 и стоп биты. Подлежащее передаче 8-битовое слово данных загружается в выходной буфер по заднему фронту сигнала стробирования входных данных. По переднему фронту этого сигнала начинается
последовательная передача данных, т.е. по переднему фронту начинается процесс сдвига содержимого регистра. С выхода сдвигового регистра данные поступают на линию, предназначенную для последовательной передачи данных.
Приемник является почти зеркальным отражением передатчика. Сначала данные последовательно вводятся в регистр приемника. При этом регистр приемника, обнаружив стартовый бит, выполняет 10 или 11 сдвигов своего содержимого. После того как регистр при-
182
емника выполнит все сдвиги, 8-битовое слово данных может быть передано в выходной буфер приемника. Эта передача данных осуществляется при поступлении сигнала разрешения вывода данных.
Как сдвиговый регистр передатчика, так и сдвиговый регистр приемника управляются тактовыми импульсами, период следования которых в 16 раз меньше времени передачи одного бита данных. При выбираемом таким образом периоде следования тактовых импульсов гарантируется, что время сдвига не превысит одной тридцать второй части от времени передачи 1 бита данных. Указанная степень синхронизации сохраняется, даже если последовательность тактовых импульсов, определяющая скорость передачи данных по линии, и входные данные являются асинхронными.
Как показано на рис. 11.86, регистр состояния приемопередатчика имеет два выхода. Во-первых, пять его разрядов состояния связаны с отдельными выводами БИС. Во-вторых, все слово состояния может быть загружено в выходной буфер приемника.
Эта загрузка выполняется при подаче сигнала «Строб вывода слова состояния». Регистр состояния содержит перечисленные ниже разряды.
Наложение. Значение лог. «1» в данном разряде означает, что текущее слово данных «набегает» на предыдущее слово данных. Такая ситуация возникает, когда предыдущее слово данных не было передано в выходной буфер приемника до начала поступления следующего слова данных.
Ошибка кадрирования. Значение лог. «1» в соответствующем разряде регистра указывает на то, что приемопередатчик не смог обнаружить стоп-бита, следующего за битами слова данных. Возможно, приемопередатчик пропустил фактический стгфтовый бит и в качестве такового принял один из битов слова данных.
Ошибка четности. Лог. «1» в данном разряде свидетельствует о том. что приемопередатчик обнаружил ошибку, выявляемую контролем по четности (или нечетности). Точное условие контроля устанавливается блоком управления, входящим в состав приемопередатчика.
Буфер передатчика пуст. Значение лог. «1» в этом разряде означает, что следующее слово данных может быть загружено в буфер передатчика.
Буфер передатчика свободен. Значение лог. «1» в этом разряде означает, что следующее
слово данных может быть загружено в буфер передатчика.
Данные готовы. Значение лог. «1» в данном разряде означает, что в буфере приемника содержатся новые данные. Это слово данных выбирается из буфера путем подачи сигнала «Строб вывода данных».
Так как слово состояния приемопередатчика можно записать в выходной буфер приемника, с помощью команды In его можно переслать в аккумулятор микропроцессора. Здесь с помощью команды сравнения можно выполнить проверку значения разрядов слова состояния.
Такой приемопередатчик может использоваться либо в автономном режиме, либо совместно с микропроцессором. При втором варианте использования приемопередатчик подключается к порту микропроцессора.
Существуют и более сложные универсальные приемопередатчики, реализованные также в виде БИС. Они могут непосредственно соединяться с шиной данных и адресной шиной микропроцессора. При использовании таких приемопередатчиков нет необходимости в применении дополнительных схем, которые требуются для обеспечения взаимодействия микропроцессора и автономного приемопередатчика. Для обеспечения работы приемопередатчиков часто используют специальные генераторы синхроимпульсов, частота которых численно равна скорости передачи, выраженной в бодах, умноженной на 16. Такой специальный генератор вырабатывает синхроимпульсы, соответствующие всем стандартным \ скоростям передачи данных. Благодаря использованию кварцевого резонатора генери- \ руемые последовательности синхроимпульсов j отличаются стабильностью и точностью. |
Линии последовательной передачи данных. Обычно линии последовательной передачи данных подключаются к устройствам с использованием одного из стандартов, показанных табл. 11.23.
Последовательный порт RS-232. Последовательный порт EIA RS-232C, разработанный Ассоциацией предприятий электронной промышленности США, до сих пор является стандартной периферией современных компьютеров (правда, на переносных компьютерах он встречается все реже и реже). Уровню логической 1 соответствует напряжение + 12 В (сигнал высокого уровня), а уровню логического 0-напряжение -12 В
183 Таблица П. 23
Скоростные характеристики передачи данных основных шин и портов
Тип шины/порта
Последоват/ порт RS-232 Стандартный LPT-порт GPIB IEEE 488.1/488.2 ЕСР/ЕРР LPT-порт USB 1.1/2.0 Fireware ШЕЕ 1304а/1394Ь CF Туре 11/Туре III PCMCIA CardBUS PCI PCI-E(*l/xl6)
Максимальная пропускная способность, Мбит/с
0,115 0,92(0,115x8)
1,0/8,0 3,0
12,0/480,0 400,0/800,0
128,0/528,0 264(16x16) 1056 (33x32) 1056(33x32) 2048/32768
(сигнал низкого уровня). Кроме того, определены специальные сигналы, которыми обмениваются модемы при установлении связи. Данные передаются через порт последовательно, один за другим. Для осуществления двустороннего обмена данными используется дополнительная цифровая линия. В общем случае сюда необходимо добавить линии готовности приемника и источника, линию обнаружения несущей и т.д. В результате СОМ-порт компьютера представляет 9-контактный разъем (ранее существовал 25- контактный аналог).
Большая разность уровней сигналов обеспечивает хорошую помехозащищенность, поэтому по последовательному интерфейсу данные могут передаваться на расстояния до 100 метров.
Возможны два метода передачи данных: синхронный и асинхронный. В первом случае данные передаются в соответствии с тактами опорного сигнала, передающегося по отдельной цифровой линии. Этот метод реализуется при передаче данных между цифровыми устройствами: микроконтроллерами, цифровыми потенциометрами, микросхемами генераторов и т.д.
В персональном компьютере используется асинхронный режим работы последовательного порта, при котором обмен данными происходит на известной фиксированной частоте. Информация передается в виде байтовых посылок, каждая из которых содержит стартовый бит, указывающий на начало передачи данных, 8 бит данных, бита контроля четности и одного или полутора бит стоп-битов.
Бит четности используется для простейшего контроля за ошибками, он бывает трех видов:
-битчетности не используется (no parity),
- бит четности имеет значение «1», если сумма бит посылки является четной (Even parity),
- бит нечетности имеет значение «1», если сумма бит посылки является нечетной (Odd parity).
Скорость передачи данных измеряется в бодах. Отличие от бит/с заключается в том, что в этом случае учитываются все служебные биты при передаче информации. Типичные значения скорости передачи данных составляют 1200, 2400, 9600, 14400, 19200, 28800, 33600,52800, 105600 бод.
Параллельный порт. Как следует из названия, в параллельном порте используется параллельная передача данных по восьми цифровым линиям (один байт). В настоящее время этот порт является двунаправленным, то есть можно обмениваться данными между компьютером и устройством. При минимальной конфигурации порта необходимо 11 линий: 8 -данные, 2 линии подтверждения и «земля». Максимальная дальность передачи данных составляет 10 метров, а скорость - до 1 Мбит/с,
GPIB (IEEE 488), GPIB (General Porpose Interface Bus) - шина общего пользования была предложена компанией Hewlett-Packard более 40 лет назад и имела в то время название НРШ. После утверждения стандарта шины в международном институте стандартизации ей было присвоено сокращение ИИЖ-4Ш.1, а впоследствии, после принятия более совершенного протокола обмена данными, — название ИЕЕЕ-488.2.
Стандарт. ЮЕЕЕ-488 разрешает подключение к одной шине до 15 приборов, Топология шины может быть произвольной; линейной, звезда, дерево и т.д. Каждое из устройств имеет свой уникальный реконфигурируемый' адрес для обеспечения адресного обмена данными.
Одно из 15 устройств, подавленных к шине, должно выполнять роль юнтроляера-арбитра. Как правило, в роли контроллера выступает интерфейсная плата GPIB в компьютере. Передача данных происходит по параллельным линиям с использованием технологии Talker - Listener (Передатчик — Приемник) и может достигать скоростей до 8 Мбайте/с, Дая-ные посылаются в устройство и принимаются обратно' в символьном АвСН-формате, Большое количество команд, являются стащдарти-ми для широкого ряда приборов, например команда запроса идентификатора устройства *ПШ?. Тем не менее, для полной работа с прибором необходимо знать систему сто ш&* манд, которая должна быть предшишиеш производителем.
184
В настоящее время стандартными устройствами с GPIB-интерфейсом являются внешние модульные осциллографы, спектральные анализаторы, генераторы сигналов и другие производителей Agilent, Tektronix и т.д.
USB.B настоящее время широкое распространение получила универсальная последовательная шина USB (Universal Serial Bus). Причина популярности кроется в дешевой практической реализации и достаточной гибкости архитектуры.
По этой шине в общей сложности к одному контроллеру USB может быть подключено до 128 устройств.
Первоначальная версия Full speed USB (USB 1.1) позволяла передавать данные со скоростью до 12 Мбит/с. Утвержденный вскоре стандарт Ш speed USB (USB 2.0) быстрее первоначального в 40 раз, что позволяет использовать USB-шину для передачи оцифрованных данных и видеоизображения.
Физически USB-шина состоит из четырех проводов: линия питания +5В, «земля» и двух разнонаправленных линий данных.
С точки зрения программиста недостатком USB-шины является необходимость написания драйверов для любого устройства, поскольку стандартных типов устройств со стандартными драйверами не существует. По этой же причине возникают сложности подключения устройства собственными силами: необходимо досконально знать протоколы обмена командами и данными между прибором и компьютером. Дополнительным ограничением скорости передачи потоковых данных является необходимость использовать прерывания.
Fireware (ШЕЕ 1394). Последовательная шина FireWire (ЮЕЕЖ 1394) используется для подключения устройств, передающих большие объемы данных: видеокамеры, жесткие диски и другое высокоскоростное оборудование. Впервые шина была предложена компанией Apple в 1990 году в качестве дешевой альтернативы шине SCSI (необходимо отметить, что шина ПЖЖ 1394 использует метод последовательной передачи данных, a SCSI - параллельной передачи). На рынок PC шина пришла в 1997 году, она была предусмотрена в спецификации РС97. Обозначения DEEE1394: Fireware (торговая марка Apple Computers) и iXINK (торговая марка SONY) являются синонимами.
Интерфейс FireWire поддерживает синхронную и асинхронную передачу данных и предоставляет возможность подключения до 63 устройств на один иорт. В стандарте IEEE 1394а предусмотрена скорость передачи дан
ных 100, 200 и 400 Мбит/с. Более новая спецификация IEEE 1394b, которая уже доступна в настоящее время, поддерживает скорость передачи до 800 Мбит/с. При этом стандарты являются совместимыми вниз, и различные пары устройств могут обмениваться данными на отличающихся скоростях, например, на 100 и на 400 Мбит/с.
Для связи используется 6/4-х жильный медный кабель или, достаточно редко, оптоволокно. По одному из шести проводов подается напряжение питания от 8 до 40 В (ток до 1,5 А), что позволяет отказаться от источников питания в периферийных устройствах, еще один провод является «землей», а четыре других в виде двух экранированных витых пар используются для передачи данных. Для уменьшения размера разъема на мобильных устройствах используется 4-контактный кабель без проводов питания.
Для обеспечения связи микропроцессорных систем применяются, кроме того, два других стандарта организации высокоскоростной последовательной передачи данных. Один стандартный способ организации управления каналом связи реализуется в виде процедур высокоуровневого управления каналом передачи данных (HDLC), второй - в виде процедур синхронного управления каналом передачи данных (SDLC). Стандарт на процедуры высокоуровневого управления каналом передачи данных был разработан Международной организацией по стандартизации (ISO). Фирма IBM установила стандарт на процедуры синхронного управления каналом передачи данных. В обоих стандартах допускается возможность передачи слов данных желаемой длины. Процедуры высокоуровневого управления каналом передачи данных и процедуры синхронного управления каналом передачи данных используются в системах связи ЭВМ и терминалов для организации связи терминалов и в спутниковых системах связи. Для передачи данных в соответствии с указанными стандартными процедурами часто используются коаксиальные линии, скорость передачи данных по которым может превышать 1 Мбит/с. Таким образом, данные стандартные процедуры предусмотрены для обеспечения последовательной высокоскоростной передачи данных. Они применяются в системах, время передачи сообщений в которых должно быть очень малым.
Шины PCI и, в последнее время, PCI-Express (PCI-E) являются стандартными компонентами большинства современных персональных компьютеров и обеспечивают воз-
можность передачи данных со скоростью до 4 Гбайт/с. При этом необходимо отметить, что шина PCI использует метод параллельной передачи данных по 4 байта за такт, a PCI-E является последовательной шиной.
На физическом уровне шина PCI-E образована двумя парами проводников: одна для передачи данных, вторая - для приема. Такое построение позволяет всем подключенным устройствам работать на полной скорости, в то время как в параллельной шине PCI пропускная Способность распределялась мезкду всеми подключенными устройствами. Слот PCI-E состоит из одного, двух, четырех, восьми или шестнадцати независимых каналов передачи данных. Одно последовательное соединение PCI-E обеспечивает пропускную способность 256 Мбайт/с. Пропускная способность одинакова в обе стороны, поскольку шина является полнодуплексной, то есть может передавать данные "туда" и "обратно" одновременно, по разным каналам. Таким образом, с учетом полного дуплекса, пропускная способность одного последовательного подключения РО-Е составляет 512 Мбайт/с, а при использовании 16 независимых линий — до 4 Гбайт/с в одном направлении и до 8 Гбайт - в обоих,
'Некоторые универсальные асинхронные приемопередатчики вырабатывают сигналы управления и сигналы, используемые для установления связи между двумя модемами- М&-дем (сокращенное- название деодулягара-демодулятора) может, например, претбрэзвши-вать двоичный передаваемый сигнал (токэд^ю посыпку) в тоновый сигнал частотой 127# Гщ для логической I и в тоновый сигнал частотой 1070 Гц, евштеетагеувдщий логическому ®-Сигналы танк частот могут яередашли» я® телефонным линиям и и© некоторым дашишм линиямпостедшательиой передачи даяянж..
Использование модемов и УАЮШ дам передачи данныж на большие расстояния иллюстрируется рис, П.87,
УА1И1 преобразует параияелыше даш&ае ш последоваивашьнро 4№9РМУ и обрата». Ш&щш&я модуинрропг сигнал перед яередачвй я ЖЙМ®> дулмругаг щюше приема. Линия «жам МШЙГ был* орокщвой (ткмефош&я, «ЮОМШШЯМЕШ!) либо беапцйшадншй (рздшдияи))..
Режшм ещршж ш ешеттш прерштш- Шят к шараартввшэвиюб системе дадашмш® несюиыю© утряаат вмязшмщщ, л е й » т них в яряшвешьмии миявдеитг шрешии ш и впребомль я&аяужтавяш. Ш Фшш щрш
» евдашйв® ©ф§квте
Ф о£3^ I
\ \ тт_ 1 1
П И да
F«,JIJ7, CtpymfpM ттш щ^мят мттж s №--
к&игрот ф»шт тщгтятж т§тш (fm яя--зиштмий мшщ 0врт» фмшш шш р^Шиф;
евшего шраюиа ярчщш®!» <р §йишйшв? текущей иряршми да «ятяв&ш зтщтш
- с шмевди© яр*што> ,9§ет^да ЙР жшщ> -ш
рас, IfflJS яредеявша шшшшйй даршиг 1 » _ _ _ _ ^
\тЩ№ЖШ1!!р1№}1М№& 1
^V^^ сЖётйшпт'гт/ттШ 1
^А. Фтт'гмт/ш.ши'
рада ярдаШ5да«вя ггецвшяяш BS ящщмшщр
шйшда « ащряй»! (fit ]ШРШ ш>тштшщ№-трш тттшт $щт& <(Ш№0& ш<8$щтшь-!»»>>• Шж дада цшред ЕР [j«»»MfRg сйшотй-нда
186 порта ввода-вывода имеет значение 1, то вызывается программа обслуживания, соответствующая порту ввода-вывода с адресом 01. После выполнения программы обслуживания осуществляется возврат в программу опроса, микропроцессор загружает в аккумулятор содержимое регистра состояния порта 02 и проверяет разряд «Запрос на обслуживание».
Описанные действия (анализ значения разряда «Запрос на обслуживание»; если запрос обнаруживается, то - выполнение программы обслуживания) производятся для всех портов ввода-вывода, имеющих регистры состояния.
Запуск этой программы производится без использования устройств ввода-вывода. Программы опроса могут быть использованы только для тех устройств ввода-вывода, которые могут находиться в состоянии ожидания обслуживания.
Другой способ запуска программы обслуживания устройства ввода-вывода состоит в подаче и обработке так называемых запросов на прерывание, подаваемых устройствами ввода-вывода. Микропроцессоры имеют специальные входы, на которые могут подаваться запросы на прерывание. Существуют некоторые отличия в механизмах прерываний различных микропроцессоров, однако все они предназначены для достижения единой цели.
Действия микропроцессора после появления запроса на прерывание напоминают аппа-ратно-реализованный вызов подпрограммы и включают в себя:
- завершение выполнения текущей команды;
- запись в стек содержимого счетчика команд;
- загрузка счетчика команд содержимым двух определенных областей памяти (адреса столбца и строки первой команды программы обработки прерывания);
- выборка следующей команды из области памяти, адрес которой определяется содержимым этих областей.
Для выхода из программы обработки прерывания используется команда возврата. При этом из стека извлекается сохраненное ранее значение счетчика команд, благодаря чему может быть продолжено выполнение прерванной программы, начиная с команды, перед реализацией которой произошло прерывание.
Для обработки прерываний, поступающих одновременно от нескольких внешних устройств, предусматриваются различные приоритеты устройств и дисциплины облужива-ния прерываний.
В микропроцессорах, имеющих несколько входов для подачи запросов на прерывание, приоритетность прерывания определяется значением адреса программы обработки соответствующего прерывания (вектором прерывания).
В некоторых микропроцессорных системах используются внешние аппаратные средства, обеспечивающие ввод различных векторов в микропроцессор, имеющий один вход запросов на прерывание (блок приоритетного прерывания). Логический блок, выполняющий подачу векторов, связывается с шиной микропроцессора и при поступлении запроса на прерывание вызывает выполнение двух действий:
- подачу логической схемой сигнала на вход запроса на прерывание микропроцессора;
- запись в адресуемый регистр микропроцессора двоичного числа-адреса программы обработки прерывания.
Таким образом, для каждого запроса на прерывание будет формироваться определенный вектор.
Реакция процессора на сигнал прерывания определяется также флагом маски регистра состояния, устанавливаемым и сбрасываемым командами STI и CLI соответственно. Если маска прерывания не установлена, т. е. разряд «Прерывание» в регистре состояния микропроцессора имеет значение 0, то при поступлении запросов на прерывание микропроцессор будет реагировать на эти запросы и выполнять обработку прерываний. Если же маска прерывания установлена в 1, микропроцессор не будет реагировать на сигналы, поступающие на вход маскируемого прерывания.
Часто маску прерывания устанавливает программа обработки прерывания в самом начале своего выполнения. Тем самым предотвращается возможность других прерываний до тех пор, пока не завершится выполнение программы обработки текущего прерывания. Маска прерывания снимается на некотором этапе выполнения текущей программы обработки прерывания, когда уже могут быть разрешены другие прерывания.
Прямой доступ к памяти (ПДП) - это один из способов организации быстрой пересылки данных при обмене информацией с памятью. Известно, например, что время доступа к памяти с относительно хорошими характеристиками памяти микропроцессорной системы лежит в диапазоне 300-500 не. При столь малом времени доступа к памяти микропроцессор должен быть способен выполнять не менее 2 млн пересылок в секунду.
В большинстве случаев ЦДЛ реализуется •путем использования специального контроллера ЦДЛ. На время выполнения ЦДЛ микропроцессор должен быть лишен возможности обращения к памяти (рис. 11.89).
С ш Системная магистраль
Рис. II. 89. Структурная реализация прямого доступа к памяти
Для того чтобы начать реализацию режима ПДП, микропроцессор загружает в контроллер ПДП содержимое некоторого внешнего регистра, представляющее собой начальный адрес файла данных. Кроме того, в другой регистр (счетчик пересылок), находящийся в контроллере ПДП, загружается количество байтов, подлежащее пересылке. Затем микропроцессор переходит в режим запрещения подачи адресов и данных по шинам и передает управление памятью котроллеру ПДП.. Контроллер ПДП последовательно подает на адресную шину памяти микропроцессорной системы адреса ш вырабатывает сигналы управления чтением и записью. При пересылке каждого байта осуществляется отрицательное приращение содержимого регистра-счетчика. Когда в результате отрицательных приращений содержимое счетчика становится равным 0, во внешнее устройство выдается сообщение, что пересылка данных завершена. Будучи узко специализированным устройством, контроллер ЦДЛ выполняет все эти действия очень быстро. В современных микропроцессорах- время ЦДП-пересыяок практически приближается ко времени цикла намята. Закончив пересылку данных в память ила из нее» жоятроляер ИДИ. снова передаст
s микропроцессору-
П„45. Допшшнтсямшое обврудодааиие
Мнкронроцессвряая техника имеет вешва широкую обяисть применения, ,аршш »«а>
117 дящую за область непоервдетевнинж вычиея#= ний. При этом прикладная область жгюяьт* вания микропроцессоров, помимо тб&ттт особенностей алгоритмов обработки даням», часто накладывает различные оеобеяиосгя не функционирование систем на ведам штро* процессоров (режим реального цюмеия, частота тактирования, аналоговый я цифровой ввод и вывод, количество я дисциплины об* елуживания прерываяяй я т,д,), Удо8ЯСгаор>-ние этим особенностям прикладной обдаск* обеспечивается иетяьтшвтшм ДОЙОЯЯЯВЁЯЬ-ного оборудования, шкяючашвщт
- таймеры я процессоры событий; - ширеггаоимпульеяы^ шщятщт? - модули последовательного адоддавдэдя^ - модули аналогового адоддовдодо - контроллеры периферийных tg$6§ffl$t; - модули АЦП; - модули ЦДЛ; - задающие тздяодне гтщштрш шщш^
сов; - ашщшны© ертвш» ®@шттяш шиш--
ной работы мщшртщющящт-.-Tatinepu т прщееещж ев&шшШ, Шт№>*
шнястео зад» уирвишищ, жтрш р@шт$--жтет с помощью шхршрвцеее&рщ, ip$p§>F мсполшии» як 0 ршшим ирешящ, -тж. ящр* чеиие шформащии © £ № ш и ш унорш&8Ш#® объекта,, шяюлшяш яадбшдемш p®smw® # выдач» ущтшмштщж. «дадейщюй деяш© быть д|шш©дв» »immm йш^рм® щрт®--яи, л е е м » * » ® д м ЙВЙШШГ© и ш а ш ш
улржмжмжт «<§тевт.
утршзтмж ш лшяшш я ш » sai^ f p i w толш» т [ЩЙШЗШИЯЙЙЛ-. л$щшй§р> яезффжшш -рж mm fe шдада ,, «s» &№>
©мяаяюяик цшчетяияс яирщедде. 'ЛЬдаш^ # бвяыииийда© ш^ашишщ юяря^рящй-еормю сюявем «ттшщнтш отщшш П&ШЩЩШ- решети ® цпздашод рййййвн <Р
- дам вг|рю«» явфбрйащ*! # ^ВЙЙФИН «яущяая»» ижк ЙИИ шшк « $ & « # «до шшашк ддашш® датймащ;
- ,щяю (fepM^psaatffi» $яршмгацш&
]&&>дрв> -щШщт дни *$шрадшчр *ш^№1чрщщшр8 яцщмаюшда <ЙЙЙЯЙ т-- яш
тттш тйштШ,, тшвтщут® чдаадряшмшиг
188
таймером-счетчиком. Структура типичного 16-разрядного таймера-счетчика приведена на рис. П.89.
Коэффициент деления Ж Предварит. делитель
CLK Г cue
Направление счета НИ,
.Прерывание по обнулению
£ О Шина данных
k Прерывание по ""*" перепашенню
РИС. 11.89. Структура модуля таймера-счетчика
Источником счетных импульсов может быть либо системный синхросигнал f с фиксированной частотой (возможно предварительно деленной в заданное число раз), либо один из входов микроконтроллера. В первом случае устройство выполняет функции таймера, так как фактически считает интервалы времени постоянной длительности. Во втором случае устройство выполняет функции счетчика событий (отрицательных или положительных перепадов) на входе микросхемы.
Счет может производиться либо в одном, либо в обоих направлениях. В последнем случае направление счета определяется уровнем сигнала H/L на соответствующем входе микросхемы. При переходе содержимого счетчика из наибольшего состояния в наименьшее и наоборот могут генерироваться соответствующие внутренние запросы на прерывание.
Рассмотренный «классический» модуль таймера-счетчика широко применяется в различных моделях относительно простых микропроцессорных системах. Он может использоваться для измерения временных интервалов и формирования последовательности импульсов. Основными недостатками «классического» таймера-счетчика являются:
- потери времени на выполнение команд пуска и останова таймера, приводящие к появлению ошибки при измерении временных интервалов и ограничивающие минимальную длительность измеряемых интервалов времени единицами мс;
- сложности при формировании временных интервалов (меток времени), отличных от периода полного коэффициента счета, равного (Кде^г2";
- невозможность одновременного обслуживания (измерения или формирования импульсного сигнала) сразу нескольких каналов.
Первые два перечисленных недостатка были устранены в элементной базе современых микропроцессоров путем использования дополнительной логики на счетном входе, позволяющей тактовым импульсам поступать на вход счетчика, если уровень сигнала на одной из линий ввода равен «1». Такое решение повышает точность измерения временных интервалов, так как пуск и останов таймера производится аппаратно. Также в усовершенствованном таймере реализован режим перезагрузки счетчика произвольным кодом в момент переполнения. Это позволяет формировать временные последовательности с периодом, отличным от периода полного коэффициента счета.
режим работы
числа модулей
Многоканальный реализуется:
- увеличением таймеров/счетчиков;
- модификацией структуры модуля тайм-счетчика, при которой увеличение числа каналов достигается не за счет увеличения числа счетчиков, а за счет введения дополнительных аппаратных средств входного захвата (input capture - 1С) и выходного сравнения (output compare -ОС). Эти модули, называемые ещё модулями быстрого ввода-вывода, предназначены для быстрой генерации события на выходе микросхемы, либо быстрой реакции на событие на её входе без участия процессора.
Принцип действия канала входного захвата таймера-счетчика в основных режимах работы иллюстрируют рис. 11.90,11.91.
Коэффициент "-мния
Предварит, делитель
L ах ч CLK
ш [ \ Шина дачных
_ ь Прерывание по " * захвату
Рис. 11.90. Структурная схема модуля таймера-счетчика во входном режиме
Во входном режиме (рис. 11.90) таймер модуля считает импульсы системного
синхросигнала, проходящие, возможно, через предделитель частоты.
В момент, когда на соответствующем входе микросхемы происходит заданное событие, содержимое таймера фиксируется в регистре времени события и вырабатывается запрос на прерывание. Таким образом, запоминается время события, которое затем может быть считано процессором по соответствующей команде. Этот режим используется в частности для измерения частоты и длительности входного сигнала.
Использование режима входного захвата позволяет исключить ошибки измерения входного интервала времени, связанные со временем перехода к подпрограмме обработки прерывания, так как копирование текущего состояния счетчика осуществляется аппаратными, а не программными средствами. Однако время перехода на подпрограмму обработки прерывания накладывает ограничение на длительность измеряемого интервала времени, так как предполагается, что второе событие захвата произойдет позже, чем код первого события будет считан микропроцессором.
В выходном режиме (рис.И.91) таймер модуля считает импульсы, поступающие с постоянной частотой, соответствующей сигналу синхронизации (возможно деленной на предварительном делителе).
Коэффициент деленйг
делитеяь
CLK х а& =}
«
[ ) Шина данных
. Прерывание но сравнению
Рис 11.91. Структура аппаратных средств канала выходного сравнения модуля таймера-счетчика
В регистр времени события предварительно записывается по команде определенное число. Компаратор сравнивает каждый момент времени содержимое таймера и содержимое регистра времени события. В момент, когда их содержимое становится равным друг другу, происходит заданное событие на соответствующем выходе микросхемы и вставляется запрос на прерывание. Таким °°разом, можно запрограммировать 014>еделённое выходное событие в заданное
189
время и осуществить его без участия процессора. Этот режим используется, в частности, для генерации ШИМ.
Программируемый таймер. Одной из наиболее популярных интерфейсных микросхем микропроцессорного комплекта КР580 является программируемый таймер КР580ВИ53. Эта микросхема предназначена для формирования частотных сигналов, измерения и отсчета интервалов времени под программным контролем со стороны микроЭВМ. Общая функциональная схема таймера показана на рис.И.92.
Шина данных (
w
Шина управления
Шина адреса_
-Ш, RD
Схема управления
Щ
АО РУС А1 CWO
С1П ОГ2
TV
~\ ОАТЕО^
Канал О
САЩ CLKI
Капая \
СП
яга
А ^
\—• GATE2 С1Щ
Качая г
стг 0W1
А ^
\—• GATE2 С1Щ
Качая
шг
•OUT1
Рис. И.92. Общая функциональная схема программируемого таймера
Основой таймера являются три одинаковых канала, имеющих по два входа для внешних сигналов синхронизации (CLK) и* управления (GATE) и по одному выходу (OUT). Каждый канал содержит шестнадцатиразрядный вычитающий счетчик (ST), шестнадцатиразрядные ре-гистры предустановки счетчика (DW) и «чтения на лету» (RG). Конкретная аппаратная конфигурация в каждом из каналов и, соответственно, выполняемые им функции определяются загрузкой управляющих слов SW0-..SW2 в специальный блок регистров схемы управления (РУС).
Таймер связан с микроЭВМ выводами D7...D0 двунаправленной шины данных, а также входами:
CS ~ «выбор кристалла»; jfj) - «чтение»; \УЛ -«запись»; А1, АО - двухразрядный адрес внутреннего
порта. С точки зрения микропроцессорной систе
мы таймер ассоциируется с четырьмя портами безусловного вывода и тремя портами безусловного ввода. Соответствие адресов портов и
190
приемников или источников информации таймера приведено в табл. 11.24.
Таблица11.24 Адреса портов, приемники и источники информации программируемого таймера
Ад рее "Режим работы А1 А2 Вывод (запись)
CS=O,WR=O Ввод (чтение) CS = 0> RD = 0
0 0 DW0 CTOmraRGO 0 1 DW1 СТ1 или RG1 1 0 DW2 CT2 или RG2 1 1 РУС Запрещено
Для выполнения «чтения на лету» используется некоторая модификация управляющего слова CWR. Его формат приведен на рис.П.94.
от 07 Р б ] 0 5 | Р Ч | р э | D2 01 00
О О
произвопьиы
Номер канала I "дюичномкоде
При подаче питания все каналы таймера оказываются в неопределенном состоянии. Поэтому перед использованием каналов во внешней схеме или в самой микропроцессорной системе, они должны быть инициализированы, настроены с помощью управляющих слов SW0...SW2. Формат управляющего слова SW представлен на рис.П.93.
CW
D7 06|О5|04|03|D2|01 JD0 a s a h r ^ T — , , ' „ ' ' Ж
0-д минный смет 1-йЮично-десятичньой
Номер реялмэ «нала 0...5 • дюичном иоде
0 1-4аг*чтмп.&айтвСТ,С№Д0 1 0-»п*нтстЛайтаСТ.ОУУ^О 1 1-senWro6oMxeaUTO»CTpwpo
Номер канала ь двоичном коде
Рис 11.93. Формат управляющего слова SW
Управляющее слово устанавливает для каждого из каналов режим работы счетчика (в двоичном или двоично-десятичном коде), режим канала (его конфигурацию) и формат обмена данными с микропроцессорной системой (только младшим байтом, только старшим байтом или обоими байтами шестнадцатиразрядных кодов).
Каждое управляющее слово обычно сопровождается одним или двумя байтами данных (в зависимости от принятого при инициализации формата обмена), загружаемых в регистр предустановки DW. При чтении одного из портов ввода таймера микроЭВМ обычно получает (в заданном формате обмена) текущее содержимое соответствующего счетчика СТ.
В ряде случаев, особенно при высокой частоте синхронизации счетчика или двухбайтовом обмене, оказывается удобнее сначала переписать текущее содержимое счетчика в регистр «чтения на лету» RG и лишь затем вводить этот код в микропроцессорную систему.
Рис. 11.94. Формат управляющего слова SWR
Вывод этого слова по адресу блока РУС осуществляет перепись кода счетчика СТ в регистр RG. В одной или двух (в зависимости от принятого формата обмена) последующих операциях чтения этого канала будет участвовать регистр RG. Затем снова будет читаться счетчик СТ.
Каналы имеют следующие режимы работы: 0 - прерывание по окончании счета; 1 - программируемый одновибратор; 2 - генератор частоты; 3 - генератор прямоугольных импульсов; 4 - задержка строба с программным запус
ком; 5 - задержка строба с аппаратным запус
ком. В каждом из режимов инициализации обес
печивается своя собственная функциональная схема канала. Например, для режима 0 такая схема (упрощенная) изображена на рис.И.95.
< ШИНАДДННЫХ и«я*>1М,«:Й1»СТ
ОЙГ СТ «tmi t i .U i i СТ
П ОДТЕ
«JL
umajt
06 R6
«л. SiSt
со от
не и. 6»Я|
00
Q7
3*.байта
и.баит»
СТ 1 1 А О
10 32 М т "ВТ «12
№4 где АШ tva 12708
Ucs
-К
с* BF
и . M l
00
)0?
ВаВт
)07
о
п р—- ь Рис.11.95.Упрощенная функциональная схема
канала таймера в режиме О
На схеме, кроме счетчика СТ и регистра предустановки DW, показаны шинные формирователи, подключенные к выходам счетчика, элемент ИЛИ и триггер, формирующий выходной сигнал. Не указаны
ш цепи управления чтением и записью кодов, а также регистр «чтения на лету» и относящиеся к нему цепи. Вычитающий счетчик имеет динамический вычитающий счетный вход С и два входа разрешения счета VI и V2.
Пусть в исходном состоянии триггер находится в единице, счет импульсов синхронизации при этом запрещен по входу V2 счетчика. На вход GATE подается единичный сигнал разрешения счета. Пусть далее микроЭВМ загружает в регистр DW младший байт кода предустановки, и затем старший байт. Одновременно с загрузкой старшего байта идет и предустановка счетчика. По ее окончании задний фронт импульса «запись старшего байта» сбрасывает триггер в нуль, разрешая счет импульсов в счетчике. Содержимое счетчика уменьшается с частотой сигнала синхронизации CLK. Момент появления в счетчике нулевого кода регистрирует элемент ИЛИ, который вновь устанавливает триггер в единицу, запрещая дальнейший счет. В результате временные диаграммы работы канала (при GATE=1) принимают вид, представленный на рис.5.10. Легко видеть, что в режиме 0 канал таймера формирует отрицательный импульс, отсчитываемый от момента окончания загрузки старшего байта. Длительность импульса fy определяется частотой импульсов синхронизации fcLK и числом No, загруженным в счетчик при предустановке в соответствии с соотно-
шением tu = ——. Нулевое значение сигнала JCLK
на управляющем входе GATE позволяет внешней схеме приостановить счет импульсов в счетчике.
Режим 1 очень похож на режим 0, при GATE=1, отличаясь тем, что длительность отрицательного выходного импульса отсчитывается от переднего фронта управляющего сигнала GATE.
Режимы 4 и 5 отличаются от режимов 0 и 1 соответственно только формой выходного сигнала на выходе OUT. В этих режимах на выходе формируется короткий отрицательный импульс в момент обнуления счетчика.
В режимах 2 и 3 в момент обнуления счетчика обеспечивается его повторная автоматическая загрузка кодом, находящимся в регистре предустановки DW. В результате обеспечивается счет по модулю No импульсов, поступающих по входу CLK. Нулевой сигнал GATE запрещает счет, единичный - разрешает его, передний фронт GATE всегда инициирует чикл предустановки и счет с начального зна-
191
чения. Выходной сигнал режима 2 - короткий отрицательный импульс, режима 3 - меандр.
Аппаратные средства усовершенствованного таймера позволяют решить многие задачи управления в реальном времени. Однако по мере роста сложности алгоритмов управления отчетливо проявляются ограничения модулей усовершенствованного таймера, а именно:
- недостаточное число каналов захвата и сравнения, принадлежащих одному счетчику временной базы, что не позволяет сформировать синхронизированные между собой многоканальные импульсные последовательности;
- однозначно определенная конфигурация канала (или захват или сравнение) часто не удовлетворяет потребностям решаемой задачи;
- формирование сигналов по методу ши-ротно-импульсной модуляции (ШИМ) требует программной поддержки, что снижает максимально достижимую частоту выходного сигнала.
Поэтому следующим этапом развития модулей подсистемы реального времени микроконтроллеров стали модули процессоров событий. Этот контроллер предназначен для обеспечения некоторого блока событий в заданное время без участия процессора. Заданные события выполняются на микропрограммном уровне. Такими блоками событий могут быть:
- передача блока информации из одного места памяти (или устройства ВВ) в другое;
- последовательный опрос нескольких каналов АЦП;
- передача информации по последовательному каналу связи. Использование такого механизма обработки событий позволяет снизить загрузку процессора и распараллелить процесс обработки информации. Конкретный набор устройств ВВ, их характеристики и возможные режимы работы зависят от модели микропроцессора.
Впервые модули процессоров событий были использованы компанией Intel в микроконтроллерах семейства 8xC51Fx. Этот модуль получил название программируемого счетного массива (Programmable Counter Array - РСА).
РСА обеспечивает более широкие возможности работы в реальном масштабе времени и в меньшей степени расходует ресурсы центрального процессора, чем стандартный и усовершенствованный таймеры-счетчики. К преимуществам РСА также можно отнести более простое программирование и более высокую точность.
192 К примеру, РСА может обеспечить лучшее временное разрешение, чем таймеры 0, 1 и 2 микроконтроллеров семейства MCS-51, так как счетчик РСА способен работать с тактовой частотой, втрое большей, чем у этих таймеров. РСА также "может-решать многие задачи, выполнение которых с использованием таймеров требует дополнительных аппаратных затрат (например, определение фазового сдвига между импульсами или генерация ШИМ-сигнала). РСА состоит из 16-битного таймера-счетчика и пяти 16-битных модулей сравнения-защелки, как показано на рис. 11.96.
/ _ 12 f_ 4
Переполнение таймера О т
Внешний , вывод (ЕС1)~
уОО
/J0
/ Л
Режим IDLE— т Таймер-счетчик
Модуль О
Модуль 1
"> Модуль 2
Модуль 3
Модуль 4
Рис. 11.96. Структура процессора событий МК семейства Intel 8xC51Fx
Таймер-счетчик РСА используется в качестве базового таймера для функционирования всех пяти модулей сравнения-защелки. Вход таймера-счетчика РСА может быть запрограммирован на счет сигналов от следующих источников:
- выход делителя на 12 тактового генератора микроконтроллера;
- выход делителя на 4 тактового генератора микроконтроллера;
- сигнал переполнения таймера 0; - внешний входной сигнал на выводе ECI. Любой из модулей сравнения-защелки
может быть запрограммирован для работы в следующих режимах:
- защелкивания по фронту и/или спаду импульса на входе CEXi;
- программируемого таймера; - высокоскоростного выхода; - широтно-импульсного модулятора. Модуль 4 может быть также
запрограммирован как сторожевой таймер (Watchdog Timer - WDT).
Режим защелкивания по импульсу на входе микропроцессора эквивалентен режиму входного захвата (1С) усовершенствованного таймера. Режимы программируемого таймера и высокоскоростного выхода близки по своим функциональным возможностям к режиму выходного сравнения (ОС).
В режиме ШИМ на соответствующем выводе микропроцессора формируется последовательность импульсов с периодом, равным периоду базового таймера/счетчика РСА. Значение 8-разрядного кода, записанное в младший байт регистра-защелки соответствующего модуля, задает скважность формируемого сигнала. При изменении кода от 0 до 255 скважность меняется от 100 % до 0,4 %.
Режим ШИМ очень прост, с точки зрения программного обслуживания. Если изменение скважности не предполагается, то достаточно один раз занести соответствующий код в регистр данных модуля, проинициализировать режим ШИМ, и импульсная последовательность будет воспроизводиться с заданными параметрами без вмешательства программы.
Назначение и особенности работы сторожевого таймера будут рассмотрены далее отдельно.
При работе модуля сравнения-защелки в режиме защелки, программируемого таймера или высокоскоростного выхода модуль может сформировать сигнал прерывания. Сигналы от всех пяти модулей сравнения-защелки и сигнал переполнения таймера РСА разделяют один вектор прерывания. Иными словами, если прерывания разрешены, то и сигнал переполнения таймера РСА и сигнал от любого из модулей вызывают одну и ту же подпрограмму прерываний, которая должна сама идентифицировать источник, вызвавший ее.
Для работы с внешними устройствами таймер-счетчик РСА и модули сравнения-защелки используют выводы Р1 порта микропроцессора. Если какой-либо вывод порта не используется при работе РСА, или РСА не задействован, порт может применяться стандартным образом.
Тенденция развития подсистемы реального времени современных микропроцессоров находит свое отражение в увеличении числа каналов процессоров событий и расширении их функциональных возможностей.
Широтно-импульсный модулятор. Встроенный ШИМ предназначен для генерации широтно-модулированного сигнала на выходе микросхемы без участия процессора. Структура таймера приведена на рис. 11.97.
На таймер блока подается системный синхросигнал (возможно через предделитель).
193 Коэффициент
Предварит, делитель
Г Сброс
CLK
rv
CLK
ь: с Шина данных
(77)
Рис. 11.97. Структурная схема широтно-импульсного модулятора
В регистр периода процессор записывает число, соответствующее периоду ШИМ. При совпадении содержимого этого регистра и таймера, последний сбрасывается в нулевое состояние и на соответствующем выходе микросхемы формируется положительный перепад. В регистре длительности процессор записывает число, соответствующее длительности импульса. При совпадении его содержимого с содержимым таймера, на выходе микросхемы формируется отрицательный перепад.
При такой организации возможная разрядность ШИМ зависит от частоты сигнала. В некоторых моделях микроконтроллеров используются специализированные многоканальные модули ШИМ, в частности для управления приводом (80С196МС Intel).
Модуль последовательного ввода-вывода. Модуль последовательного ввода-вывода используется для обмена данными между микропроцессором и удаленным периферийным узлом. Данные передаются в последовательном коде, то есть биты передаются во временной последовательности Друг за другом по одному каналу связи. Это даёт возможность использовать один канал связи вместо нескольких в случае параллельного кода. Однако при этом снижается быстродействие канала связи. Различают полудуплексные и дуплексные каналы последовательной связи. В случае полудуплексного канала данные передаются по одному и тому же каналу в обе стороны, но в каждый конкретный момент времени только в одну сторону. В случае дуплексного канала Данные передаются по двум каналам (в одну
сторону - по одному, в другую - по другому). При этом появляется возможность передавать информацию в обе стороны одновременно.
Преобразовать данные из параллельной формы в последовательную несложно. Вначале данные загружаются в сдвиговый регистр. Содержимое сдвигового регистра сдвигается на один разряд при поступлении каждого тактового импульса; данные на выходе такого сдвигового регистра будут иметь последовательную форму. Чтобы принять данные в последовательной форме и преобразовать их в параллельную форму, необходимо выполнить действия, обратные по отношению к описанным выше. Данные, поступающие в последовательной форме, вводятся бит за битом в сдвиговый регистр. После заполнения сдвигового регистра данные из него в параллельной форме передаются в микропроцессорную систему.
Устройство, обеспечивающее преобразование данных из параллельной формы в последовательную и обратное преобразование, называется, как указывалось ранее, универсальным асинхронным приемопередатчиком (УАПП). Кроме преобразования формы представления данных, приемопередатчик выполняет важные функции контроля и управления.
Приемопередатчик добавляет к каждому передаваемому слову данных 2 бит - стартовый бит и стоп-бит. Поэтому вместо передачи 8-битового слова данных фактически требуется передать 10 бит данных. Дополнительные биты используются принимающим приемопередатчиком для установления границ начала и конца передаваемого слова данных. На рис. 11.98 изображено 8-битовое слово данных и показаны дополнительные стартовый и стоп-биты.
Старт, бит D7 D6 D5 D4 D3 D2 D1 DO Стол,
бит
Рис. 11.98. Байт данных со стартовым и стоповым битами
Стартовый бит всегда имеет значение лог. «О», стоп-бит - лог. «1».
Скорость передачи данных описанным способом принято измерять в бодах. Один бод равен одному биту в секунду, и поэтому скорость в бодах выражает, сколько бит в секунду может быть передано по каналу передачи данных. Например, скорость передачи 1200 бод означает, что за одну секунду будет передано 120 10-битовых символов: стартовый бит, 8 бит данных и стоп-бит.
194
При проектировании большинства современных УАПП предполагается, что они будут подключаться к портам параллельного ввода-вывода микропроцессора. Однако некоторые приемопередатчики можно подсоединять непосредственно к тдине микропроцессора. В УАПП имеется регистр состояния, в котором специальный бит устанавливается в определенное состояние, когда приемопередатчик примет слово данных, и устанавливается в другое состояние по завершении передачи слова данных. Передача последовательного сигнала с использованием УАПП требует хранения битов состояния в регистре состояния приемопередатчика. Напомним, что синхронизация приемопередатчика полностью не зависит от синхронизации микропроцессора. Следовательно, после того как микропроцессор поместил передаваемое слово данных в регистр передатчика, он не может знать, когда ему удастся загрузить в регистр передатчика следующее слово данных. Микропроцессор должен ждать до тех пор, пока приемопередатчик не установит определенное значение бита состояния; анализ бита состояния позволяет микропроцессору определить готовность приемопередатчика к загрузке в него нового слова.
В некоторых УАПП предусмотрены разряды регистра состояния, которые позволяют выполнять программное управление скоростью работы приемопередатчика.
По методу синхронизации различают синхронные и асинхронные каналы связи. При синхронном методе передачи (рис. 11.99) каждый передаваемый бит данных синхронизируется импульсом в канале синхронизации. При этом по каналу данных передаются только собственно данные.
CLK,
Рис. 11.99. Синхронная передача сигнала
Такой метод передачи позволяет обеспечить скорость передачи порядка 1 Mbit/c. Однако, для его организации необходим дополнительный канал синхросигнала.
При acuHxpoHHOAt методе передачи (рис. 11.100) канал синхронизации отсутствует. Это вызывает необходимость передавать по каналу данных дополнительную информацию для синхронизации приемной стороны.
А Старт --1 бит , 1 /—\ 1—\г ~м—\ г \ Я р (-Г Е [ Стоп бит
Рис. 11.100. Асинхронная передача сигнала
Первым в посылке передается "стартовый" бит нулевого уровня. Приняв его, приемная сторона подстраивает фазу своих синхросигналов в соответствии с моментом прихода стартового бита. После него один за другим следуют биты данных. В конце цепочки данных может следовать бит четности Р для проверки правильности приема. Заканчивается посылка стоповым битом единичного уровня. Частота передачи, то есть время передачи одного бита, заранее должна быть согласована на передающей и приемной сторонах. Такой метод передачи позволяет обеспечить скорость передачи до 100 Kbit/c.
Микропроцессор может содержать либо отдельные синхронные и асинхронные порты ввода-вывода, либо универсальный порт, способный работать в обоих режимах.
Структурная схема универсального асинхронного приемопередатчика представлена на рис П. 86 и рассмотрена ранее.
Модули последовательного ввода-вывода. Наличие в составе 8-разрядного микроконтроллера модуля контроллера последовательного ввода/вывода стало в последнее время обычным явлением. Задачи, которые решаются средствами модуля контроллера последовательного ввода/вывода, можно разделить на три основные группы:
- связь встроенной микроконтроллерной системы с системой управления верхнего уровня, например, с персональным компьютером. Чаще всего для этой цели используются интерфейсы RS-232C и RS-485;
- связь с внешними по отношению к микроконтроллеру периферийными ИС, а также с датчиками физических величин с последовательным выходом. Для этих целей используются интерфейсы I2C, SPI, а также нестандартные протоколы обмена; - интерфейс связи с локальной сетью в мультимикроконтроллерных системах. В системах с числом микропроцессоров до пяти обычно используются сети на основе интерфейсов I2C, RS-232C и RS-485 с соб ственными сетевыми протоколами высокого уровня. В более сложных системах все более популярным становится протокол CAN.
195 С точки зрения организации обмена
нформацией упомянутые типы интерфейсов оследовательной связи отличаются режимом ередачи данных (синхронный или синхронный), форматом кадра (число бит в ссылке при передаче байта полезной нформации) и временными диаграммами игналов на линиях (уровни сигналов и оложение фронтов при переключениях).
Число линий, по которым происходит пере-ача в последовательном коде, обычно равно вум (I2C, RS-232C, RS-485) или трем (SPI, екоторые нестандартные протоколы). Данное бстоятельство позволяет спроектировать мо-ули контроллеров последовательного обмена жим
образом, чтобы с их помощью на шаратном уровне можно было реализовать есколько типов последовательных нтерфейсов. При этом режим передачи шхронный или асинхронный) и формат здра поддерживаются на уровне логических тшгав, а реальные физические уровни «налов для каждого интерфейса получают с мощью специальных ИС, которые называют риемопередатчиками, конверторами, шсиверами. Среди различных типов встроенных
жгроллеров последовательного обмена. лорые входят в состав тех или иных %-врядных микроконтроллеров, сложился гандарт ""де-факто" — модуль UART Jniversal Asynchronous Receiver and rausmitter). UART — это универсальный синхронный приемопередатчик. Однако мьшинство модулей PART, кроме синхронного режима обмена, способны также • гшшзоватъ режим синхронной передачи 1ННЫХ. Не все производители микроконтроллеров
яюлцуют термин UART для обозначения ш модуля контроллера последовательного эмена. Так, в микроконтроллерах фирмы Iotorola модуль асинхронной риемонередачи. который падл е ржи й-агт и ж.-; 5ЖИМУ асинхронного обмена,, чт и UART.. риняго называть SCI (Serial Сош.шта!шда iteriace). Следует отметить, что модуль типа CI обычае реализует' только ргжим инхронного обмена, то есть ©го 'Ункционажыиые гетмодр СТМ уж& "с раваеиию с модулями ТИП a, UAJRT (JT.-&< ываюти ишжючшяи: моя тпем * - ^меиш SCJ
мнкрокотрвдшфере MC&UHCvfc-BI» крыванепсш модуль с tw >, р б>иВ'©-асикжршяш федачидаиннж.
Модули типа UART в асинхронном режиме работы позволяют реализовать протокол обмена для интерфейсов KS-232C, ВД4ПА, RS-485, в синхронном режиме = нестандартные синхронные протоколы обмену и в некоторых моделях =- §Р1, 1 микроконтроллерах фирмы МШтМ традиционно предусмотрены два модуля последовательного обмена: модуль §С% е возможностью реализации только протокол» асинхронной приемопередачй для интерфейсов ММ-ЖС, UH-422A, Ш4М и модуль контроллера синхронного итерфей§& в стандарте 8PL
Протоколы интерфейсов шшшъшшж @шШ на основе ME (1гС я САМ) тямщшт $&짧
_ сложная логика работы. Поэтому м@№$р®ящш САШ интерфейса всегда шмтяшшшя з щд# самостоятельного модем, Мнгерфейе 1*С § возможностью рзб&ш ШШ Ш ШЩЩ§М? !Ж ш ведомом режиме.,, тшш §§мчж поддерживается етщшишш мдщуяш (МОДУЛЬ 80С№№0Ш&№]ШШ@ Ш§рШ 3 микроконтроллере ШСШ фирмы 9Ш1ф), ffe если реализуется тшвдо §#демн§ ршаш 1*Ср то s мищфшпршяерв ШСШ фщрмы MleroeMp оя уеяеши® е&шшш & Ш%: шсчройю одного ш т@г© ж* МФЩМ^ Ш едив да прснокаяав ©еувд&гшяя&еш? ш$шш иипяршшяярш,
к -. ян •- е я ш тщюшщршщрш ®§> встроенными -шдршми шшршш^ш CAW й модулями ^ ш ш р ш и ш » мшщр1отмвйш$ интерфейса «p»|^pMfea» (стцадйшв ЩЩ (ШЬтяВ Sel^l Вя»).. ЖящщвШ да шт. нтерфейет шьет® ммштшт шшш® шрттшш «#»««&. дав « и ш и и € «горним зтщт" зЩршщяаш т штщжтШ
Чоо tu , J cjb •> «ft b-tVfts&s ffegjf.--
•Шл- й»г;"--й-гг1".'> -^n?y??" s a a ^ s .v М1да0>й1|рщшр--ic®pfts>§ СЙ№1№»Р {«щсркй i i i s M i w w ваед&-
П|И«'1да11ш« jeipsifeiiisw ЯЙШШВДШВД)
ЛетрШЩЯЮЙ ,«o»Siofis«^ шщщжжшь
Ш®Й»»5« йа^шшяие Илиада <at«p№c$. Ш®швш^:~;у^ ч$тж&$- тмт «ттттмт дм ттцрт» щрщш$№$$® даачшавд йшедншвд
196
компаратор позволяет реализовать на микропроцессоре интегрирующий аналогов цифровой преобразователь (АЦП).
Однако более широкие возможности для работы с аналоговыми сигналами дает АЦП, встроенный' в микроконтроллер. Чаще всего он реализуется в виде модуля многоканального АЦП, предназначенного для ввода в микроконтроллер аналоговых сигналов с датчиков физических величин и преобразования этих сигналов в двоичный код.
Модуль АЦП предназначен для преобразования входной аналоговой информации в цифровую и передачи ее в процессор для дальнейшей обработки. Микропроцессорные управляющие системы имеют, как правило, несколько каналов АЦП. Структурная схема АЦП приведена на рис. П.101.
!
П г
m I
"ti
SS"
-У t?
Фиксация Номер Старт канала преобразователя
[ ) Шина данных
прерывание по окончанию преобразования
Рис. П.101. Структурная схема блока ЛЦП
Преобразование информации на том или ином канале инициализируются соответствующей командой. Преобразования начинаются выбором требуемого канала, который осуществляется записью номера канала в специальный служебный регистр. Аналоговый мультиплексор пропускает на выход сигнал выбранного канала. После этого подается сигнал фиксации на устройство выборки-хранения. Оно фиксирует уровень выбранного аналогового сигнала на весь период преобразования. Затем подается сигнал начала преобразования. АЦП представляет собой, как правило, АЦП последовательных приближений (см. далее). Время преобразования составляет обычно около 10 ms. После окончания преобразования АЦП выдает сигнал готовности, по которому его выходная информация записывается в буферный регистр, с которого она затем может быть считана процессором по соответствующей команде. При этом вырабатывается запрос на прерывание. Некоторые микропроцессорные системы имеют блоки АЦП, способные работать в
автоматическом режиме, опрашивая несколько каналов последовательно без участи процессора(80С166, Intel).
Тактовые генераторы. Современные микроконтроллеры содержат встроенные тактовые генераторы, которые требуют минимального числа внешних времязадающих элементов. На практике используются три основных способа определения тактовой частоты генератора: с помощью кварцевого резонатора, керамического резонатора и внешней RC-цепи.
Типовая схема подключения кварцевого или керамического резонатора приведена на рис. 11.102, а.
мк ХТЛ1Л
XTAL2
С2 | 1
ХТЛ1Л
XTAL2
ХТЛ1Л
XTAL2
, " мк ir XTALI
I XTAL2
б
Рис. П.102. Тактирование микроконтроллера: а - с использованием кварцевого или керамического
резонаторов и б - с использованием RC-цепи
Кварцевый или керамический резонатор Q подключается к выводам XTAL1 и XTAL2, которые обычно представляют собой вход и выход инвертирующего усилителя. Номиналы конденсаторов С1 и С2 определяются производителем микроконтроллера для конкретной частоты резонатора. Иногда требуется включить резистор порядка нескольких МОм между выводами XTAL1 и XTAL2 для стабильной работы генератора.
Использование кварцевого резонатора позволяет обеспечить высокую точность и стабильность тактовой частоты (разброс частот кварцевого резонатора обычно составляет менее 0,01%). Такой уровень точности требуется для обеспечения точного хода часов реального времени или организации интерфейса с другими устройствами. Основными недостатками кварцевого резонатора являются его низкая механическая прочность (высокая хрупкость) и относительно высокая стоимость.
При менее жестких требованиях к стабильности тактовой частоты возможно использование более стойких к ударной нагрузке керамических резонаторов. Многие керамические резонаторы имеют встроенные конденсаторы, что позволяет уменьшить количество внешних подключаемых элементов i с трех до одного. Керамические резонаторы
шеют разброс частот порядка нескольких десятых долей процента (обычно около 0,5 %).
Самым дешевым способом задания актовой частоты является использование вешней RC-цепи, как показано на рис. 11.99, >. Внешняя RC-цепь Не обеспечивает высокой очности задания тактовой частоты (разброс истот может доходить до десятков фоцентов), Это неприемлемо для многих филожений, где требуется точный подсчет (ремени. Однако имеется масса практических адач, где точность задания тактовой частоты ю имеет большого значения.
Зависимость тактовой частоты от юминалов RC-цепи зависит от конкретной «ализации внутреннего генератора и (риводится в руководстве по применению штроллера.
Практически все микроконтроллеры [опускают работу от внешнего источника актового сигнала, который подключается ко ходу XTAL1 внутреннего усилителя. При юмощи внешнего тактового генератора можно адать любую тактовую частоту шкроконтроллера (в пределах рабочего [иапазона) и обеспечить синхронную работу ^скольких устройств.
Некоторые современные гакроконтроллеры содержат встроенные RC-ши кольцевые генераторы, которые юзволяют контроллеру работать без внешних (впей синхронизации. Работа внутреннего итератора обычно разрешается путем фограммирования соответствующего бита югистра конфигурации микроконтроллера.
В большинстве моделей микропроцессоров астата времязадающего элемента (резонатора иш RC-цепи) и частота тактирования fBus кестко связаны коэффициентом деления 'строенного делителя частоты. Поэтому вменение частоты программным путем не федставляется возможным. Однако ряд юследних семейств микропроцессоров например, НС08 фирмы Motorola) имеют в »оем составе схему тактирования, 'снованную на принципе синтезатора частоты '< контуром фазовой автоподстройки (PLL -ihase loop lock). Такая схема работает как 'множитель частоты и позволяет задавать актовую частоту с помощью низкочастотного юарцевого резонатора, что снижает уровень шекгромагнитного излучения микропроцессора. Коэффициенты деления «Шура PLL могут быть изменены "Рограммным путем, что позволяет снизить •актовую частоту (и, соответственно, "иребляемую мощность) в промежутки
197 времени, когда высокое быстродействие не требуется.
Минимизация энергопотребления. В активном режиме (Run mode) микропроцессор исполняет рабочую программу, и все его ресурсы доступны. Потребляемая мощность имеет максимальное значение РяШ. Большинство современных микропроцессоров выполнено по КМОП-технологии, поэтому мощность потребления в активном режиме сильно зависит от тактовой частоты.
Мощность потребления микроконтроллера в активном режиме является одной из важнейших характеристик контроллера. Она в значительной степени зависит от напряжения питания микроконтроллера и частоты тактирования.
В зависимости от диапазона питающих напряжений все микропроцессоры можно разделить на три основные группы:
- микропроцессоры с напряжением питания 5,0 В±10%. Эти микропроцессоры предназначены, как правило, для работы в составе устройств с питанием от промышленной или бытовой сети, имеют развитые функциональные возможности и высокий уровень энергопотребления.
- микропроцессоры с расширенным диапазоном напряжений питания: от 2,0...3,0 В до 5,0-7,0 В. Микропроцессоры данной группы могут работать в составе устройств как с сетевым, так и с автономным питанием.
- МК с пониженным напряжением питания: от 1,8 до 3 В. Эти микроконтроллеры предназначены для работы в устройствах с автономным питанием и обеспечивают экономный расход энергии элементов питания.
Малый уровень энергопотребления является зачастую определяющим фактором при выборе способа реализации цифровой управляющей системы. Особое значение имеет этот фактор в условиях ограниченной мощности источника энергии (батарейное питание при размещении системы управления в климатически труднодоступных местах либо при большой удаленности системы управления). Современные микропроцессоры предоставляют пользователю большие возможности в плане экономии энергопотребления и имеют, как правило, следующие экономичные режимы работы:
1. Режим ожидания (Wait mode, Idle mode или Halt mode). В этом режиме прекращает работу центральный процессор, но продолжают функционировать периферийные модули, которые контролируют состояние объекта управления. При необходимости сигналы от
198
периферийных модулей переводят микроконтроллер в активный режим, и рабочая программа формирует необходимые управляющие воздействия. Перевод микропроцессора из режима ожидания в рабочий режим осуществляется по прерываниям от внешних источников или периферийных модулей, либо при сбросе микроконтроллера. В режиме ожидания мощность потребления микропроцессора PWATT снижается по сравнению с активным режимом в 5...10 раз;
2. Режим останова (Stop mode, Sleep mode или Power Down mode). В этом режиме прекращает работу как центральный процессор, так и большинство периферийных модулей. Переход микропроцессора из состояния останова в рабочий режим возможен, как правило, только по прерываниям от внешних источников или после подачи сигнала сброса. В режиме останова мощность потребления микропроцессора PSTOP снижается по сравнению с активным режимом примерно на три порядка и составляет единицы микроватт.
Два последних режима называют режимами пониженного энергопотребления. Режимы ожидания и останова существенно отличаются временем перехода из режима пониженного энергопотребления в активный режим. Выход из режима ожидания обычно происходит в течение 3...5 периодов синхронизации микропроцессора, в то время как задержка выхода из режима останова составляет несколько тысяч периодов синхронизации. Кроме снижения динамики работы системы значительное время перехода в активный режим является причиной дополнительного расхода энергии.
Следует, также иметь в. виду, что зависимость тока потребления от напряжения питания микропроцессора почти прямо пропорциональна. Поэтому снижение напряжения питания весьма существенно понижает мощность потребления микропроцессора. Но при этом уменьшается максимально также и допустимая частота тактирования, то есть выигрыш в потребляемой мощности сопровождается снижением производительности системы.
Поэтому, выбирая частоту тактового генератора, не следует стремиться к предельно высокому быстродействию микропроцессора в задачах, которые этого не требуют. Часто определяющим фактором оказывается разрешающая способность измерителей или формирователей временных интервалов на основе таймера или скорость передачи данных по последовательному каналу.
В большинстве современных микропроцессоров используется статическая КМОП-технология, поэтому они способны работать при сколь угодно низких тактовых частотах вплоть до нулевых. В справочных данных при этом указывается, что минимальная частота тактирования равна dc (direct current, пошаговый режим, на пример, для отладки). Мощность потребления микроконтроллера при низких частотах тактирования обычно отражает значение тока потребления при fosc = 32768 Гц (часовой кварцевый резонатор).
Аппаратные средства обеспечения надежной работы. Прикладная программа, записанная в память программ микропроцессора, должна обеспечивать его надежную работу при любых комбинациях входных сигналов. Однако в результате электромагнитных помех, колебаний напряжения питания и других внешних факторов предусмотренный разработчиком ход выполнения программы может быть нарушен. С целью обеспечения надежного запуска, контроля работы микропроцессора и восстановления работоспособности системы в отсутствие оператора все современные микропроцессоры снабжаются аппаратными средствами обеспечения надежной работы. К ним относятся:
- схема формирования сигнала сброса; - модуль мониторинга напряжения пита
ния; - сторожевой таймер. Схема формирования сигнала сброса. При
включении напряжения питания микропроцессор должен начать выполнять записанную в памяти программу работы. На этапе нарастания напряжения питания микропроцессор принудительно переводится в начальное состояние, которое называют состоянием сброса. При этом устанавливаются в исходное состояние внутренние магистрали микропроцессора, сигналы управления и регистры специальных функций. Последние определяют начальное состояние периферийных модулей микропроцессорной системы, которые чаще всего по умолчанию неактивны.
С целью обеспечения надежного запуска от любых источников питания с различной динамикой нарастания напряжения большинство современных микроконтроллеров содержат встроенный детектор напряжения питания (схема Power-On-Reset - POR), который формирует сигнал сброса при нарастании напряжения питания. В частности, входящий в состав микроконтроллеров семейства PIC16 ;
199 таймер установления питания (PWRT) начинает отсчет времени после того, как напряжение питания пересекло уровень около 1,2... 1,8 В. По истечении выдержки около 72 мс считается, что напряжение достигло номинала.
Сразу после выхода из состояния сброса микропроцессор выполняет следующие действия:
- запускает генератор синхронизации микропроцессора. Для стабилизации частоты тактирования внутренними средствами формируется задержка времени;
- считывает энергонезависимые регистры конфигурации в соответствующие регистры ОЗУ (если необходимо);
- загружает в счетчик команд адрес начала рабочей программы;
- производит выборку первой программы из памяти программ и приступает к выполнению программы. I Адрес ячейки памяти, в которой хранится код первой исполняемой команды, называют вектором начального запуска или вектором сброса. В некоторых микропроцессорах этот адрес однозначно определен и приведен в техническом описании (они имеют фиксированный вектор сброса). В других микропроцессорах вектор сброса может быть произвольно определен пользователем. На этапе программирования микропроцессора необходимый вектор начального запуска записывается в ячейки с фиксированными адресами, и при выходе микропроцессора из сброса автоматически загружается в счетчик команд. О таких микропроцессорах говорят, что они имеют загружаемый вектор сброса.
Для перевода микропроцессора в состояние сброса при установившемся напряжении питания достаточно подать сигнал высокого или низкого уровня (в соответствии со спецификацией микропроцессора) на вход сброса (RESET). Обычно для формирования сигнала сброса при включении напряжения питания и нажатии кнопки сброса используют RC-цепь. Типовые схемы формирования сигнала сброса представлены на рис. П. 103.
Кнопка Кн предназначена для "ручного" сброса микропроцессора при отладке. Диод VD препятствует попаданию на вход RESET отрицательного напряжения при выключении питания. Номиналы R и С определяют задержку времени, необходимую для завершения всех переходных процессов при сбросе (указываются в техническом описании на микропроцессор). Триггер Шмитта на входе Допускает подачу сигнала сброса с ненормированной длительностью фронта. При
1 3D
> •
С
мк
Reset
3D > •
С П" *• i\ S
VD JJ *•
i — „ — i
VD - V ' Resell
j > j >
Рис. 11.103. Типовые схемы формирования сигнала внешнего сброса:
а - с высоким активным уровнем сигнала сброса, 6 - низким активным уровнем сигнала сброса
отсутствии триггера Шмитта на входе приходится использовать специальную внешнюю схему формирователя.
В современных микропроцессорах линия RESET обычно является двунаправленной и имеет низкий активный уровень. При нажатии кнопки "сброс" или включении питания буфер линии устанавливается в режим ввода и реализует так называемый внешний сброс. Микропроцессор может перейти в состояние сброса также по сигналам устройств контроля состояния, которые имеются в составе контроллера.
В этом случае говорят, что он находится в состоянии внутреннего сброса. При этом буфер линии RESET устанавливается в состояние вывода с низким логическим уровнем на выходе. Данный сигнал может быть использован для установки в начальное состояние периферийных ИС.
Детектирование пониженного напряжения питания. В реальных условиях эксплуатации может сложиться такая ситуация, при которой напряжение питания микропроцессора опустится ниже минимально допустимого, но не достигнет порога отпускания схемы POR. В этих условиях микропроцессор может "зависнуть". При восстановлении напряжения питания до номинального значения микропроцессор останется неработоспособным.
Для восстановления работоспособности системы после "просадки" напряжения питания микроконтроллер необходимо снова сбросить. Для этой цели в современных микроконтроллерах реализован дополнительный блок детектирования пониженного напряжения питания. Такой модуль используется в микроконтроллерах семейства НС08 фирмы Motorola, аналогичный модуль имеется в составе семейства PIC17 фирмы Microchip. Рассматриваемый модуль генерирует сигнал внутреннего сброса при снижении напряжения питания до уровня чуть ниже минимально допустимого. Уровень срабатывания блока
200
детектирования пониженного напряжения питания значительно превышает напряжение сохранения данных в ОЗУ микропроцессора. Событие сброса по сигналу блока пониженного напряжения питания отмечается специальным битом в одном из регистров микроконтроллера. Следовательно, программно анализируя этот бит после сброса, можно установить, что данные целы, и продолжить выполнение программы.
Сторожевой таймер. Если, несмотря на все принятые меры, микропроцессор все же "завис", то на случай выхода из этого состояния все современные контроллеры имеют встроенный модуль сторожевого таймера. Принцип действия сторожевого таймера показан на рис. П. 104.
Код счетчика ^s^ | сторожевого ^s^ I таймера ^ ^ Сброс по
^-s\ . ^ переполнению $^s^ ^s^ сторожевого
^ ^ ^s"^ таймера
Программный сброс счетчика сторожевого
таймера
Рис 11.104. Принцип действия сторожевого таймера
Основу сторожевого таймера составляет многоразрядный счетчик. При сбросе микроконтроллера счетчик обнуляется. После перехода микроконтроллера в активный режим работы значение счетчика начинает увеличиваться независимо от выполняемой программы. При достижении счетчиком максимального кода генерируется сигнал внутреннего сброса, и микроконтроллер начинает выполнять .рабочую программу сначала.
Для исключения сброса по переполнению сторожевого таймера рабочая программа микроконтроллера должна периодически сбрасывать счетчик. Сброс счетчика сторожевого таймера осуществляется путем исполнения специальной команды (например, CLRWDT) или посредством записи некоторого указанного кода в один из регистров специальных функций. Тогда при нормальном, предусмотренном разработчиком, порядке исполнения рабочей программы переполнения счетчика сторожевого таймера не происходит, и он не оказывает влияния на работу микропроцессора. Однако, если исполнение рабочей программы было нарушено, например, вследствие "зависания", то велика вероятность того, что счетчик не
будет сброшен вовремя. Тогда произойдет сброс по переполнению сторожевого таймера, и нормальный ход выполнения рабочей программы будет восстановлен.
Модули сторожевых таймеров конкретных микроконтроллеров могут иметь различные особенности:
- в ряде микропроцессоров векторы внешнего сброса и сброса по переполнению сторожевого таймера совпадают. Это не позволяет выявить причину сброса программным путем и затрудняет написание рабочей программы. Более высокоуровневые микроконтроллеры имеют либо различные векторы сброса, либо отмечают событие сброса по переполнению сторожевого таймера установкой специального бита в одном из регистров специальных функций;
- в некоторых микропроцессорах при переходе в один из режимов пониженного энергопотребления, когда рабочая программа не выполняется, автоматически приостанавливается работа сторожевого таймера. В других микропроцессорах сторожевой таймер имеет независимый тактовый генератор, который продолжает функционировать и в режиме ожидания. В этом случае необходимо периодически выводить микроконтроллер из состояния ожидания для сброса сторожевого таймера. В PIC-контроллерах фирмы Microchip выработка таких сбросов может быть запрещена путем записи нуля в специальный бит конфигурации WDTE.
Использование сторожевого таймера существенно повышает способность к самовосстановлению системы на основе МК.
Н.4.6. Микропроцессорные системы и микроконтроллеры
Понятие контроллера. Обычно под встроенной системой управления (контроллером) подразумевается процессор со всеми необходимыми для его работы компонентами, по определенной программе реагирующий на некие воздействия со стороны среды функционирования (сигналы с датчиков, таймеров, нажатия на кнопки и пр.) и вырабатывающий ответные управляющие сигналы, поступающие на различные объекты этой среды (индикаторы, динамики, двигатели и пр.).
Как и универсальные компьютеры, встроенные контроллеры пережили не слишком продолжительный, но зато весьма стремительный этап развития и миниатюризации - от многотонных ящиков с ламповой начинкой до
небольших плат, легко умещающихся на ладони или в кармане. Постоянно расширялась и сфера их применения. Если первые контроллеры можно было «встроить» разве что в промышленный процесс, то теперь такие устройства применяются повсеместно - от спутников и марсоходов до утюгов и тостеров.
В процессе миниатюризации функциональные блоки, которые в обычных компьютерных системах размещались в отдельных интегральных схемах (процессор, память, порты ввода-вывода, таймеры, контроллеры прерываний и пр.) стали объединять на одном кристалле. Так появились микроконтроллеры или, как их принято называть в отечественной литературе, однокристальные ЭВМ. Такой подход позволил значительно сократить не только размеры встроенных систем, но также сложность и сроки их разработки, а следовательно и стоимость. Сокращение числа компонентов повлекло за собой повышение надежности готовых устройств. В некоторых случаях для построения полноценной встроенной системы достаточно одной микросхемы - микроконтроллера. «Основным признаком в классификации микроконтроллеров и микропроцессоров для встроенных систем является разрядность. В настоящее время .промышленностью выпускаются 4-, 8-, 16- и 32-разрядные микроконтроллеры. Однако встречаются и весьма экзотические варианты. Так МС14500 фирмы Motorola, набор команд которого состоит из 16 инструкций, имеет разрядность 1 бит и способен работать с неограниченным объемом памяти.
Микроконтроллеры можно дифференцировать также по степени универсальности. Выпускаются как системы широкого применения с программируемой памятью, так и узкоспециализированные контроллеры для определенной области, или даже для конкретного устройства, зачастую с уже записанной в чип программой. Однако выпуск таких микроконтроллеров экономически оправдан лишь при крупносерийном или массовом производстве.
В тех встроенных системах, где требуется значительная вычислительная мощность, могут применяться и обычные универсальные микропроцессоры вместе с необходимыми для их работы компонентами. Выпускаются также микроконтроллеры, на базе ядра распространенных универсальных микропроцессоров (Motorola 68ЕС300, Intel 386ЕХ, ЮМ PowerPC 403GB).
Особенности микроконтроллеров заключены в различных областях, связанных с их
201
проектированием, изготовлением и использованием.
Технология. Первые микроконтроллеры выпускались по «-МОП и /»-МОП-технологиям. В настоящее время большинство микроконтроллеров изготавливаются по КМОП-технологии. КМОП-микроконтроллёры потребляют значительно меньше энергии, что дает им преимущество в применении в устройствах с батарейным питанием. Кроме того, эта технология позволяет делать процессорное ядро статическим, т.е. способным работать в широком диапазоне частот (от 0 до нескольких десятков МГц). Кроме того, такие микроконтроллеры обладают большей устойчивостью к внешним электромагнитным шумовым воздействиям.
Архитектура. Современные микроконтроллеры выпускаются с фон-неймановской и гарвардской типами архитектур. Фон-неймановская архитектура подразумевает выборку инструкций и данных по одной общей шине. В гарвардской для инструкций и данных выделяются отдельные шины, что позволяет распараллелить операции выборки команд и операндов, и повысить за счет этого производительность.
Следует также различать CISC- и RISC-микроконтроллеры. Команды RISC-процессоров очень просты и почти всегда выполняются за один такт. Для реализации операции, обрабатываемой CISC-процессором как одна команда, RISC должен выполнить последовательность микрокоманд. Достоинством CISC-микроконтроллеров является сокращенный объем программного кода и экономия усилий программиста, затраченных на его написание. Однако RISC-процессоры производительнее, занимают меньше места на кристалле и потребляют значительно меньше энергии, чем CISC. Поэтому в последнее время появляется все больше типов микроконтроллеров с RISC-архитектурой.
Внутренняя память программ. Одной из характерных особенностей большинства микроконтроллеров является наличие встроенной в кристалл программной памяти. Среди видов памяти наиболее распространенными являются масочная, однократно программируемая, перепрограммируемая (с ультрафиолетовым или электрическим стиранием), флэш-память, а также память на основе ОЗУ с батарейным питанием. Масочная память программируется на заводе-изготовителе в технологическом цикле производства микросхемы и изменению не подлежит. Выпуск микроконтроллеров с масочной памятью оправдан при массовом
202
производстве. Однократно программируемые микроконтроллеры применяются в тех случаях, когда нет необходимости часто менять содержимое программы в выпускаемом изделии. Микроконтроллер позволяет пользователю однократно записать-необходимую программу. Перепрограммируемая память (EPROM) позволяет при необходимости изменить программу как на этапе проектирования, так и в готовом изделии. В последнее время появляется все больше микроконтроллеров с флэш-памятью, которая рассчитана на большее число циклов перезаписи, чем обычная EPROM. Память на ОЗУ с батарейным питанием применяется в приложениях, критичных к скорости доступа.
Часто возникает потребность защитить программу, зашитую в чипе, от несанкционированного доступа. Во многих микроконтроллерах для этой цели предусматривается программирование специальных битов защиты.
Прерывания Как уже отмечалось выше, в большинстве применений микроконтроллеры по определенной программе реагируют на внешние воздействия. При этом источники воздействия либо периодически опрашиваются микроконтроллером, либо задействуется механизм прерываний. Использование прерываний зачастую позволяет реагировать на события более оперативно и сократить программный код. При поступлении сигнала прерывания контроллер прекращает выполнение программы и, по соответствующему вектору, производит переход на начало обработчика прерывания (если позволяет текущее состояние микроконтроллера). По завершению обработки прерывания происходит возврат к выполнению основной программы. Многие микроконтроллеры имеют специальные регистры для разрешения или запрета как конкретных прерываний, так и всех в целом, а также регистры для задания приоритетов прерываний.
Следует также отметить, что большинство 4-битных микроконтроллеров используют невекторную систему прерываний, а большинство 8-, 16- и 32^битных - векторную арбитражную или приоритетную системы. В невекторной системе существует всего один адрес, по которому происходит переход при получении любого сигнала прерывания. Обычно по этому адресу размещают инструкции последовательного опроса поступивших сигналов с целью определения источника прерывания, причем порядок опроса программист задает на свое усмотрение. Время реакции на прерывание при этом весьма велико и тем больше, чем позже опрашивается конкретный бит. В векторной
системе каждому прерыванию соответствует свой вектор, ранжирование прерываний происходит автоматически и, если не предусмотрен механизм приоритетов, отсутствует возможность управлять порядком вызова обработчиков. Достоинство векторной системы - высокая скорость реакции на прерывание.
Встроенная периферия. Весьма характерным отличием микроконтроллеров от универсальных микропроцессоров является наличие у первых расположенной на одном кристалле с процессорным ядром периферии (портов ввода \ вывода, таймеров, последовательных интерфейсов, аналого-цифровых и цифро-аналоговых преобразователей, компараторов и пр.).
Среди прочих периферийных устройств стоит отметить наличие в некоторых контроллерах сторожевого таймера (Watchdog Timer). Сторожевой таймер запускается при сбросе микроконтроллера, либо программным путем. Через определенные промежутки времени программа должна сбрасывать таймер. Если этого не происходит, таймер переполняется, происходит сброс микроконтроллера и программа начинает выполняться заново. Использование сторожевого таймера позволяет избежать паразитного зацикливания программ, что конечно, не устраняет проблемы, но во многих случаях позволяет смягчить последствия.
ISP и JTAG. Наиболее современные микроконтроллеры обладают возможностью внутрисистемного программирования (ISP) и поддерживают интерфейс тестирования и отладки JTAG. ISP позволяет программировать внутреннюю память микроконтроллера прямо на плате проектируемого или уже готового устройства. При помощи JTAG можно осуществлять тестирование внутренних ресурсов, подавать значения на внешние выводы чипа, производить отладку. Все данные передаются через специальный последовательный порт микроконтроллера.
Питание иупра&чение энергопотреблением. Изначально большинство микроконтроллеров рассчитывались на напряжение питания 5В. Однако в последнее время появляется все больше типов с номинальным напряжением 3,3 В и менее. Это связано, в первую очередь, с переходом на новые технологические нормы (меньшие транзисторы должны рассеивать меньшую мощность), а также с расширяющейся сферой приме нения микроконтроллеров в малогабаритных устройствах с батарейным питанием.
Во многих микроконтроллерах предусмотрена возможность управления потребляемой
201 мощностью, путем их перевода программными средствами в холостой режим или режим останова. Холостой режим характеризуется тем, что работа процессорного ядра приостанавливается, в рабочем состоянии остаются лишь генератор синхросигналов и сторожевой таймер (если имеется). Регистры сохраняют свое значение. Выход из этого режима возможен по прерыванию или по сигналу сброса. Также может быть предусмотрен специальный таймер холостого режима, который периодически «пробуждает» микроконтроллер для выполнения активных действий. В этом режиме микроконтроллер потребляет около 30% номинальной мощности. В режиме останова работа внутри чипа полностью прекращена (включая таймеры и счетчики). Выход из режима возможен по сигналу сброса (иногда по сигналу внешнего прерывания). В режиме останова потребляемый ток может достигать 1 мкА и менее. Многоканальный аналоговый коммутатор К служит для подключения одного из источников аналоговых сигналов (РТхО...РТх7) ко входу АЦП.
Выбор источника сигнала для преобразования осуществляется посредством записи номера канала коммутатора в соответствующие разряды регистра управления АЦП.
Два вывода модуля АГЩ используются для задания опорного напряжения Um: W^Fd ~ верхний предел Um, Ущп - НИЖНИЙ предел. Разность потенциалов на входах У «вей и Уряг и составляет \Зт, Разрешающая способность АЦП составляет' U0„/2B, где п — числю двоичных разрядов в. слове результата. Максимальное значение опорного напряжение как правило, равно напряжению питания МК, Баш измеряемое напряжение !JU« > УЩРВ, т© результат- преобразования будет равен FF, код 00. соответствует напряжениям tiU« < YKEJL-Дяя достижения максимальной тачшетв измерения следует выбрать- шкеямаяни» допустимее значение Vm. В жот етучи© напряжение смещения нуля входного буфера ш нелине&ность иередашочяо» жаракгериешвй 4Шр1 будут вносить отиоеишиыи© мальве шкрешности.
аде» вышшиеи я© методу явеисшшжвмшвд прибшшвеищя, Лршшгаеоет ш тех. мщеж» f-разрядннх МК разрящюегь АЦИ « ш е составляет S разреди», СштаетаеттелЩ; формат щкяргжжтш ре,?>да';з*'лш i > <- > АЦП — одаюбябтшшй. И^вдкчши® ©шетшжя--№ е ш ь модули АЦП жшр@шшршяе$@® дщш
управления пр$обрт0шт§тмш чшты ат-электроприведов* разрешающая §тш§@$ит¥Ъ которых равна 10 разрядам, Два шадшш разряда результата шяучат § тм§щш дополнительного жш/Щрё дтжёт, ш связанного с реншром шттщтмтышг§ приближения.
Длительное» такта ттФршммш §щш генератор синжршизадаи; едим тш ртт туи периодам частоты тщ№@ф£4м& Шрт» преобразования для тпжы% м©муш% АЩ1 микроконтроллер» тшшяя®? т едймвд дё» десятмо» микросекунд.
Источником тжртммшш м&щям МЩ может служить шщттшй Ш£*-§ш$тщ? (F) или шяут&тя № Ш | Ш Ш Ш Ш тактирования шшшщттт мшжщтш шкрохвтр&теря, Ш шщтж §щчш ш@Ш¥Ш синхронизации АЦП @§ттжш@ тшш¥Ш ояпшимюй, т €&я> дай., Шиэрм ршшв--дуется в тешичешш тштш»,- Ш &¥®рш случае шы&ртвшя о® щр^тм ®тЩщ»штм (mm штшт тштшт яшэдэдящкй мм шдуям АЩИ, Ш ШФГ щнШ » (ёшшю яешщр§«. шдрм& щш^шщ/т щшртш»--рушшй дюввд@т щшптш fgm-
триггера гттттжм МШШМ,- Ш Ш ЩЩ&ШШШ
тярж- яа щершашив.. Жж йршвад, « < к perwesgsa ре^даетш» <£ 5®шщвдг -spares^
Лльяшадш! мвд рюй АЯр1 ЙШШ¥ IRSMWSS» режим ДШФШШИЙВД амрйш: ушшвш ОДИЙГ© да #шш |шадйр9 f^saw 5Ш ЙШЖ ечкредаж; яшм^шшк. Мш$®ш улвй ШМр--шде кадрив Л р 1 «вшу «ЯЙ!® ,{psiw*t*i ар»> маядашшш® дашрщ, ^ и «ширя» ЙЙЙЖР
июшяшяя® шчинй^аш «ивдраддаЖ-* (ЩЙЙМР .щади»» д®«рйавр шдащ) wmm мттт^
ршшеш©.. ©доаш> С^ИЩШР ВД^РР--
fflifmwa. ШИ^ЧШЙШЙ! тшти тттшт»
204
вания коэффициента заполнения в режиме шим.
Наиболее популярные микроконтроллеры. MCS-48 (Intel). Самый первый микроконтроллер (1976г.)- Имеет внутреннюю с ультрафиолетовым стиранием (объемом 1 Кбайт) или внешнюю (объемом до 4 Кбайт) память программ, внутреннюю (64 байта) и внешнюю (до 256 байт) память данных, три порта ввода \ вывода, внутренний таймер \ счетчик. Число прерываний ограничено двумя - внешним и от таймера. Система прерываний - векторная арбитражная. Фирмой Intel выпускалось несколько модификаций (80(С)48, 80(С)35, 8039, 8049), отличавшихся технологией изготовления, наличием или отсутствием внутренней памяти программ, объемом внутреннего ОЗУ, а также допустимой тактовой частотой. Выпускались и отечественные модификации этого процессора (КР1816ВЕ48 \ ВЕ35 \ ВЕ39 \ ВЕ49, КР1830ВЕ48 \ ВЕ35). Когда-то был очень популярен, но в настоящее время активно вытесняется с рынка своим младшим собратом - MCS-51.
MCS-51 (Intel). Самый популярный микроконтроллер. Семейство MCS-51 является несомненным чемпионом по числу разновидностей и количеству компаний, выпускающих его модификаций. На сегодняшний день существует более 200 модификаций этого семейства, выпускаемых почти 20-ю компаниями. Базовая модель имеет 4 Кбайт внутренней памяти программ, 128 байт внутренней памяти данных. Разрядность адресной шины позволяет обращаться к 64 Кбайт внешней памяти программ и 64 Кбайт памяти данных. К возможностям, позаимствованным от MCS-48, добавились второй таймер, еще одно внешнее прерывание, последовательный интерфейс, четыре банка основных регистров, регистры специальных функций (SFR). Число портов ввода \ вывода достигло четырех. Появилось такие нововведения как битовый процессор, значительно облегчавший операции с битами, а также программируемые биты защиты от несанкционированного доступа к программному коду. Была усовершенствована и система команд - добавились новые инструкции и методы адресации, увеличена глубина стека. В целом MCS-51 получился настолько удачным, что надолго стал «законодателем мод» в мире микроконтроллеров. Как самой Intel, так и изготовителями клонов выпускается множество модификаций на любой вкус, отличающихся объемом внутренней памяти, тактовой частотой, составом внутренней периферии и пр. Среди наиболее известных - 80(С)51, 80(С)31,
80(С)52, 80C52FX, 80C51GB (Intel), АТ89С5х, АТ89С1051, АТ89С2051 (Atmel), DS87C520, DS87C530 (Dallas), 8хС552, 8хС592, 8хС451 (Philips) и др. Выпускались также и отечественные аналоги - КР816ВЕ51 \ ВЕ31, КР1830ВЕ5ПВЕ31.
MCS-151, MCS-251 (Intel). Эти микроконтроллеры были представлены в 1995-1996 годах. Они призваны увеличить производительность систем, основанных на 8051, выпускаются в таких же корпусах и могут быть установлены на платах вместо них без изменений в схемах. Увеличение производительности достигается за счет сокращения времени доступа к внутренней (за два такта считываются две команды, против 12 и одной у MCS-51) и внешней памяти и, соответственно, увеличенной скорости выполнения инструкций. MCS-251 в добавок к этому отличаются модифицированной структурой процессора, увеличенным адресным пространством памяти и расширенной системой команд.
MCS-96 (Intel). 16-битные микроконтроллеры третьего поколения. Отличаются высокой тактовой частотой (до 50 МГц). Позволяют осуществлять операции в форматах «байт» (8 бит), «слово» (16 бит), а некоторые операции -в формате «двойное слово» (32 бит). Обладают усовершенствованной системой команд, позволяющей создавать компактные и эффективные программы, а также разнообразием встроенной периферии (параллельные и последовательные порты, блоки процессоров событий, многоканальные аналого-цифровые преобразователи, широтно-импульсные модуляторы, трехфазные генераторы, генераторы меандра, сторожевые таймеры и пр.). Адресное пространство - 64 Кбайт (до 1 Мбайт у подсемейства NT). В состав семейства MCS-96 входят несколько подсемейств: ВН, KB, КС, KR, NT, МС.
80188, 80186, 80386ЕХ (Intel). Изготовлены на основе ядра популярных микропроцессоров фирмы Intel - 8088, 8086 и 80386 соответственно. Внутрь каждого чипа включили два канала DMA, два таймера \ счетчика, контроллер прерываний и устройство регенерации динамического ОЗУ. Кроме того, появились модификации с последовательными интерфейсами и расширенными возможностями по управлению энергопотреблением. Ну и конечно, программистам стала доступна вся мощь ядра х86. Однако главная изюминка этих микроконтроллеров - совместимость с программным обеспечением для PC, которого разработано великое множество, а также возможность исполь-
205 зования стандартных средств разработки для PC - компиляторов, ассемблеров и пр.
6805, 68hcll, 683хх (Motorola). 6805 и 68hcll - 8-битные микроконтроллеры с фон-неймановской архитектурой, основанные на ядре ранее выпущенного Motorola микропроцессора 6800. В зависимости от модификации могут включать встроенные EPROM или ОТР, порты ввода \ вывода, таймеры, аналого-цифровые преобразователи, ШИМ-модуляторы и прочую периферию. 683хх -мощные 32-разрядные микроконтроллеры (на основе процессорного ядра 68020) с развитой периферией.
18 (Zilog). Система команд этого 8-битного микроконтроллера построена аналогично системе команд хорошо известного микропроцессора Z80. Выпускаются с масочной или однократно программируемой памятью программ. Имеют шесть прерываний, защиту от падения напряжения питания. Предусмотрены также автоматический сброс при включении питания, программируемый бит защиты памяти программ, а также режим пониженного электромагнитного излучения. В состав микроконтроллеров входят сторожевой таймер, один или два таймера \ счетчика, два аналоговых компаратора, четыре порта ввода \ вывода.
TMS370 (Texas, Instruments). 8-битные микроконтроллеры, в чем-то схожие с MCS-51 (имеют 256 внутренних регистров, аккумулятор А, стек в регистровом адресном пространстве). Содержат также встроенную память программ (масочную, ОТР или EEPROM), два таймера \ счетчика, сторожевой таймер, порты ввода \ вывода, последовательный интерфейс и пр. Система команд характеризуется наличием инструкций умножения 8x8 и деления 16/8. Тактовая частота - до 20МГц.
PIC (Microchip). Популярное семейство RISC-микроконтроллеров. Отдельные шины для инструкций и данные (гарвардская архитектура) допускает одновременную выборку программы и данных. Высокая тактовая частота (20 МГц), выполнение инструкций за один такт, небольшой набор инструкций - 33 у 16С5х против 90 у MCS-48, чипы с небольшим числом выводов, широкий диапазон допустимого напряжения питания (3-6 В) и малое энергопотребление - все это делает PIC идеальным для применений, требующих значительной производительности при малых затратах. Производится несколько подсемейств:
Р1С16С5х - базовое подсемейство с 12-разрядными командами;
PIC16C6x, \7х \8х, PIC14000 - расширенное подсемейство с 14-разрядными командами;
РЮПСхх - высокопроизводительное семейство с 16-разрядными командами;
Р1С12С5хх - мини-чипы (8 выводов) с 12-разрядными командами.
A VR (Atmel). Еще одно семейство RISC-микроконтроллеров, которое в последнее время претендует на то, чтобы отнять пальму первенства на рынке у PIC. Разрядность команд -32 бита. AVR имеет достаточно большой для RISC-процессора набор инструкций - 89 и более (в зависимости от модификации). Базовое семейство имеет 32 регистра общего назначения, каждый их которых может быть использован в качестве аккумулятора. Позволяет адресовать до 8 Мбайт памяти программ и до 8 Мбайт памяти данных. Доступна опция внутрисистемного программирования (ISP), т.е. контроллер можно перепрограммировать, не вынимая из готового изделия. Минимально допустимое напряжение питания - 2.7 В. Мощная периферия - все порты ввода-вывода могут программироваться поразрядно: ввод с Z-состоянием, ввод с pull-up, вывод, аналоговый компаратор, дуплексный UART с собственным генератором, EEPROM данных, 8-разрядный таймер. Начиная с AT90S2313 добавлен 16-разрядный таймер и внутреннее ОЗУ. В последних моделях появляется АЦП и возможность работы с внешней памятью. Все последующие кристаллы имеют то же самое ядро, но наращиваются объемы памяти программ и данных, количество портов, таймеров, появляется аппаратное умножение/деление и т.д. В целом нужно отметить, что* по сравнению с PIC, AVR обладают большей производительностью и более широким набором встроенной периферии, однако энергопотребление у них несколько выше, чем у PIC.
SIMATIC S7-200. Микроконтроллеры предназначены для решения задач управления и регулирования в небольших системах автоматизации. При этом, SIMATIC S7-200 позволяют создавать как автономные системы управления, так и системы управления, работающие в общей информационной сети. Область применения контроллеров SIMATIC S7-200 исключительно широка и простирается от простейших задач автоматизации, для решения которых в прошлом использовались простые реле и контакторы, до задач комплексной автоматизации. SIMATIC S7-200 все более интенсивно используется при создании таких систем управления, для которых в прошлом, из соображений экономии, необходимо было разрабатывать специальные электронные модули. Спектр моделей микроконтроллеров включает в себя:
208 больше, чем 2 - 1 . Константы, представляемые в машинном коде двумя байтами, не могут быть больше 216 - 1. Константы могут быть выражены в любой из четырех систем счисления. Систему счисления указывают латинской .буквой, записанной справа от константы. Здесь используются следующие обозначения: В - двоичная, D - десятичная, Q - восьмеричная, Н - шестнадцатеричная. Константы, не помеченные буквой, считаются записанными в десятичной системе счисления. Константы, записанные в шестнадцатеричной системе счисления и начинающиеся с цифр А, В, С, D, Е, F, должны быть дополнены слева незначащим нулем.
В ассемблере предусмотрена автоматическая генерация констант, соответствующих печатным символам кода ASCII. Такие константы иногда называют символьными. Для того, чтобы воспользоваться этой возможностью, достаточно записать константу в исходном тексте в виде соответствующего символа ASCII, заключенного в апострофы.
Примеры записи констант: 01001111В -двоичная, 36 - десятичная, ООН - шестнадцатеричная, 0FABCH - шестнадцатеричная, 'В ' - символьная.
Метка представляет собой символическое (буквенно-цифровое) имя, присвоенное программистом адресу какой-либо ячейки памяти микроЭВМ, содержимому этой ячейки или цифровой части многобайтной команды.
Метка должна состоять не более чем из шести символов и начинаться с буквы. Запрещено использовать в качестве меток аббревиатуры команд и псевдокоманд, а также имена программно доступных регистров микропроцессора. Часто используют в качестве меток слова, обозначающие характерные точки или фрагменты программы.
Примеры записи меток: START, TEST, TBL23, Ml. i
Мнемоника команды микропроцессора. Мнемоника команды микропроцессора
берется из его системы команд. При этом буквенная часть мнемоники воспроизводится в тексте программы полностью. В цифровой части мнемоники на месте обобщенного обозначения: D8, D16, N или ADR указывается либо конкретная константа, либо соответствующая метка.
Примеры записи мнемоник команд микропроцессора приведены ниже:
MOV А, В, XRA L, RRL, STA 0FAABH,
JMP TEST2, CPI 'L', ADI 06Н, LXI Н, TABL32.
Мнемоника псевдокоманды ассемблера. Мнемоника псевдокоманды ассемблера есть буквенно-цифровая запись директивы управления порядком ассемблирования. Эти мнемоники передают программе-ассемблеру информацию, необходимую для правильной трансляции исходного текста в машинные коды.
В состав мнемоники обязательно входит аббревиатура соответствующей директивы, могут входить также метка (МЕТ) и аргумент, передаваемый ассемблеру (ARG).
В качестве аргумента мнемоник могут выступать метки и константы.
Обычно используются следующие мнемоники:
1. ORG ARG - размещать последующие машинные коды программы в памяти микропроцессора с адреса, определяемого аргументом ARG. Эта директива обычно записывается в начале программы. Если же там этой директивы нет, то ассемблер будет размещать машинные коды программы с нулевого адреса памяти;
2. END - закончить ассемблирование текста программы;
3. MET EQU ARG - присвоить метке МЕТ численное значение, определяемое аргументом ARG;
4. DW ARG - зарезервировать столько очередных ячеек памяти, каково численное значение аргумента ARG;
5. DB ARG - записать в очередную ячейку памяти численное значение аргумента ARG, представленное восьмиразрядным двоичным кодом (байтовым словом). Директива может иметь несколько аргументов, разделенных запятыми. В этом случае она записывается следующим образом: DB ARG1,ARG2,...,ARGN. При этом байты, определяемые этими аргументами, заносятся в последовательные ячейки памяти. В качестве аргументов, кроме упомянутых выше констант и меток, в псевдокоманде DB ARG могут фигурировать строки из символов ASCII, заключенные в апострофы, например, DB 'ERROR'. При этом в последовательные ячейки памяти будут записаны соответствующие байтовые коды ASCII.
6. DW ARG - записать в пару очередных ячеек памяти численное значение аргумента ARG, представленное шестнадцатиразрядным двоичным кодом (двухбайтным словом). Директива может иметь несколько аргументов,
209 разделенных запятыми, например, DW ARG1, ARG2,..., ARGN. При этом двухбайтовые слова, определенные этими аргументами, записываются в последовательные ячейки памяти.
Комментарий представляет собой произвольную комбинацию символов. Ассемблер не обрабатывает комментарии, и поэтому нет строгих правил их построения. Обычно в качестве комментариев используют краткие пояснения к тексту программы.
Таблица II Примеры записи мнемоник псевдокоманд
ORG END TABL MASK EQU DS DB DB DB DW
8000H
EQU
0010Ш1В
9 57H 'L' ODH, 'ALFA', OAH, ODH TABL1, TABL2,378AH
0АВСШ
Запись программ на языке Ассемблера. Каждая строка текста программы может содержать от одного до четырех заполненных полей. Формат полной, то есть содержащей все четыре поля, строки представлен на рис.Н.9.
МЕТКА КОД ОПЕРАНДЫ КОММЕНТАРИЙ
Рис.П.9.Формат строки текста, записываемого на языке Ассемблера
Мнемоники команд микропроцессора, а гакже псевдокоманд ассемблера, кроме МЕТ
EQU ARG, размещаются в полях «код» и «операнды».
Директива MET EQU ARG занимает все три левых поля.
Мнемоники команд микропроцессора и псевдокоманд ассемблера (кроме MET EQU ARG) могут быть снабжены метками, имеющими смысл адресов ячеек памяти, в которых размещены соответствующие машинные коды. Такие метки записываются в поле «метка» и дополняются справа символом «:» (двоеточие). Метки, входящие с состав директив MET EQU ARG, и тоже размещающиеся в поле «метка», вовсе не обязательно имеют смысл адреса и не дополняются двоеточием.
Поле «метка» может быть единственным заполненным полем строки. В этом случае метка относится к первой последующей команде микропроцессора или директиве ассемблера.
Любая строка программы может (но не обязана) содержать поле «комментарий». Это поле всегда начинается символом «;» (точка с запятой), за которым следует собственно комментарий.
Поле «комментарий» может быть единственным заполненным полем строки.
Запишем с помощью рассмотренных правил простейшую программу (программа 1) на языке Ассемблера. Пусть эта программа должна взять число в одной ячейки памяти, сложить его с числом из другой ячейки и записать их сумму в третью ячейку. Текст такой программы представлен в табл.11.10. *
Таблица 11.10 Программа 1. Текст на языке Ассемблера
МЕТКА код ОПЕРАНДЫ
АО EQU 02 ВО EQU 03
ORG 8000Н
START: LDA ADA0 МЕТКА код ОПЕРАНДЫ
MOV В, АО LDA ADB0 ADD ВО STA ADSUM
HLT
ADA0: DBA0 ADB0: DBB0 ADSUM: DS1
END
Рассмотрим использование меток в этой программе.
Метка START отмечает начальный адрес программы в памяти микроЭВМ. В нашем
КОММЕНТАРИЙ ПРОГРАММА 1 УСТАНОВИТЬ А0=2 ОСТАНОВИТЬ В0=3 НАЧАТЬ ПРОГРАММУ С АДРЕСА 8000Н ЗАГРУЗИТЬ АО В РЕГИСТР А КОММЕНТАРИЙ СОХРАНИТЬ АО В РЕГИСТРЕ В ЗАГРУЗИТЬ ВО В РЕГИСТР А ВЫЧИСЛИТЬ АО + ВО СОХРАНИТЬ РЕЗУЛЬТАТ ОСТАНОВИТЬ МИКРОПРОЦЕССОР ;ЯЧЕЙКА ДЛЯ АО ;ЯЧЕЙКАДЛЯВ0 :ЯЧЕЙКА ДЛЯ СУММЫ ДОНЕЦ ТЕКСТА ПРОГРАММЫ
случае START = 8000Н, так как именно с этого адреса будет размещать программу директива ORG ARG. Наличие метки START не является здесь обязательным, так как на нее не
210
ссылается ни одна из команд или псевдокоманд программы. Эта метка введена для удобства программиста.
Программа использует три ячейки памяти, снабженные метками ADAO, ADBO, ADSUM. Эти метки имеют смысл, адреса этих ячеек (адрес числа АО, адрес числа ВО, адрес суммы). Метки АО и ВО имеют смысл данных байтового формата - исходных слагаемых АО и ВО. Этим меткам присвоены численные значения директивами MET EQU ARG, то есть установлено А0=2, В0=3. В результате при ассемблировании программы в ячейку ADA0 запишется число 2, а в ячейку ADB0 - число 3. Ячейка ADSUM в программе зарезервирована для размещения результата. Этот результат появляется там только после выполнения программы. До этого содержимое ячейки ADSUM неопределенно.
Понятие о работе программы-Ассемблера. Программа-Ассемблер дважды просматривает строчка за строчкой исходный текст программы. При первом просмотре выполняются следующие действия:
— устанавливается исходное значение счетчика адресов размещения. При этом в него заносится адрес, указанный в псевдокоманде ORG ARG или 0, если такая директива отсутствует;
- начиная с начального адреса, размещаются друг за другом в порядке, заданном текстом программы, машинные коды команд микропроцессора, данные по директивам DB ARG или DW ARG, резервируется память по директиве DW ARG. Если какая-то информация об адресах и данных задана в программе с помощью меток, то под эту информацию резервируется
Машинные коды Исходный текст
память. Размещение очередного кода в памяти или резервирование очередной ячейки сопровождается увеличением на единицу (инкрементом) счетчика размещения;
- все метки, встреченные ассемблером при просмотре, заносятся в специальную таблицу меток;
- всем меткам, отмеченным в поле метки двоеточием, присваивается соответствующее значение счетчика размещения, которое тоже указывается в таблице;
- выполняются, если это возможно, директивы MET EQU ARG. Численные значения, определяемые этими директивами, также заносятся в таблицу меток.
По директиве END первый просмотр заканчивается и начинается второй просмотр.
При втором просмотре: - из текста выбираются все метки, не отме
ченные двоеточием, то есть входящие в состав мнемоник;
- по таблице меток каждой из них присваивается соответствующее численное значение, которое заносится в зарезервированные при первом просмотре ячейки памяти;
Ассемблирование заканчивается, если все метки, занесенные в таблицу, получили конкретное численное значение. Если же этого не произошло, регистрируется ошибка.
Работу ассемблера по переводу текста программы в машинные коды иллюстрирует рис.П.105. Здесь изображен документ, включающий в себя исходный текст программы, машинные коды соответствующих команд, адреса размещения этих машинных кодов и таблицу меток.
Адрес Код Метка Операнды Комментарий
АО ВО
ЗА 47 СЗ 02 03
07 80 START: 09 80
8000 8003 8004 8007 02 ADA0: 8008 03 ADB0: 8009 ЗА 08 80 МО' 800С 80 800£> 32 11 80 8010 76 8011 XX ADSUM:
; Программа 1 EQU 02 -^Установить АО = 2 EQU 03 ;Установитъ ВО = 3 ORG 8000Я ; Начать прорамму с адреса 8000Я LDA ADA0 ; Загрузить АО в регистр А MOV В, А ; Сохранить АО в регистре В JMP МО ; Перейти к метке МО DB АО ; Ячейка для АО DB АО ; Ячейка для ВО LDA ADB0 ; Загрузить ВО в регистр А ADD В ; Вычислить A0 + B0 STA ADSUM ;Сохранить результат HLT ;Останов процессора DS 1 ; Ячейка для результата END ; Конец текста программы
Таблица меток АО = 02 ВО = 03 START = 8000# ADA0 = i001H /ШВ0 = 8008# Д/0 = 8009Я ADSUM = 8011//
Рис.П.105. Листинг (протокол ассемблирования) программы 1
211
Программа 1, фигурирующая в этом документе, есть программа 1, описанная выше и отличающаяся только тем, что здесь ячейки памяти с исходными данными размещены в середине текста программы. Разделы документа «машинные коды» и «таблица меток» заполнены в ходе построчного чтения исходного текста в соответствии с изложенной выше методикой.
Рассмотренный документ называют протоколом или листингом ассемблирования. Аналогичный документ готовится и в ходе ассемблирования исходного текста программой-ассемблером. Он может быть выдан на печать или на экран дисплея. В протоколе, генерируемом ассемблером, дополнительно нумеруются строки и указываются обнаруженные ассемблером ошибки. Естественно, при ассемблировании могут быть обнаружены только
Часто бывает удобнее использовать в командах не сами константы, а их символические имена-метки. Метке может присвоить численное значение, как программист, так и про-
Во втором случае эта же метка (с двоеточи-зм) должна отмечать одну из команд или псев-
LXI Н, TABU ; 3AJ
' 3AJ TABL1: DS7 ] п п
Очистка регистров. Очистка регистров яв-мется частным случаем загрузки - загрузкой елевым кодом. Поэтому для очистки регист-)ов и регистровых пар используют команды шла MVI В,0 или LXI Н,0.
Для очистки аккумулятора обычно исполь-|уется команда XRA А. Эта команда использует в качестве обоих операндов поразрядного «исключающего ИЛИ» содержимое аккумулятора и результат также помещает в аккумулятор. Проиллюстрируем очистку аккумулятора
синтаксические ошибки - нарушения правил составления исходного текста. Логические ошибки в программах ассемблер обнаружить не может. Для облегчения работы программиста ассемблер не только находит ошибки и помечает неправильные строки в листинге, но и сообщает о характере ошибки буквенным кодом.
IL5.3. Типовые приемы программирования
Загрузка регистров. Загрузка регистров (регистровых пар) числовой константой, как правило, производится с помощью команд, имеющих непосредственную адресацию.
Примеры загрузки регистров и регистровых пар имеют вид:
грамма-ассемблер. В первом случае программист указывает это значение явно в псевдокоманде MET EQU ARG. Этот случай иллюстрирует следующий фрагмент программы:
докоманд программы, например, следующим образом:
; ЗАГРУЗИТЬ В ПАРУ HL АДРЕС TABL1
; ЗАРЕЗЕРВИРОВАТЬ 7 ЯЧЕЕК ПАМЯТИ ; ДЛЯ ТАБЛИЦЫ TABL!
этой командой, считая, что в нем содержится код 11110000:
11110000 ф ппоооо ,
00000000
Очевидно, что результат этой операции при любом содержимом аккумулятора будет" нулевым. Иногда аккумулятор очищают командой SUB А.
Установка признака переноса С. Установка признака переноса С при сохранении всех
MVI В,38Н ЗАГРУЗИТЬ 38Н В РЕГИСТР В MVI C.'L* ЗАГРУЗИТЬ КОД ASCII БУКВЫ L В РЕГИСТР С MVI D, 01011111В ЗАГРУЗИТЬ 01011111В В РЕГИСТР D LXI H, 3829Н ЗАГРУЗИТЬ 3829Н В ПАРУ HL LXI D, 0FABCH ЗАГРУЗИТЬ 0FABCH В ПАРУ DE
ALFA EQU 38Н ; УСТАНОВИТЬ ALFA = 38Н
. . , „ „ , . _ , ; ЗАГРУЗИТЬ .ALFA В MVI В, ALFA р Е г и с т р в
212
остальных признаков результата производится командой STC.
Сброс признака переноса С. Сброс признака переноса С при сохранении всех остальных признаков результата можно выполнить фрагментом, программы:
STC ;УСТАНОВИТЬ С=1 CMC ; ИНВЕРТИРОВАТЬ С
Если нужно сбросить признак переноса, а остальные признаки не важны, следует воспользоваться одной из команд ANA А или ORAA.
Установка признаков Z, S, Р. Установка признаков Z, S, Р в соответствии с кодом, содержащимся в аккумуляторе, также производится одной из команд ANA А или ORA А.
Выделение фрагмента двоичного кода. Выделить фрагмент двоичного кода, нужный бит или группу битов можно с помощью операции поразрядного логического И исходного кода и кода-маски. В маске выделяемые биты должны иметь единичные значения, а остальные - нулевые. Например, старшую тетраду байта, содержащегося в аккумуляторе, выделит следующий фрагмент программы:
Циклические программы с заданным числом циклов. Циклические программы с заданным числом циклов обычно организуют с помощью команд непосредственной загрузки одного из регистров, декремента этого регистра и команды JNZ ADR. Общая структура такой циклической программы имеет вид:
MVI С, 08Н
; ВЫПОЛНИТЬ 8 ЦИКЛОВ
Ml:
DCR С
ВСЕ ЦИКЛЫ ВЫПОЛНЕНЫ?
JNZ Ml
НЕТ, ПОВТОРИТЬ, ИНАЧЕ
П.5.4. Понятие о системном программном обеспечении
Программное обеспечение ЭВМ принято делить на два класса - системное и прикладное. Прикладное программное обеспечение разрабатывают пользователи ЭВМ. Оно предназначено для решения конкретных вычислительных задач или задач управления. Системное программное обеспечение разрабатывают, как правило, конструкторы ЭВМ. Оно предназначено для управления устройствами ввода-вывода, входящими в состав ЭВМ. Системные программы обеспечивают:
- стандартные формы взаимодействия прикладных программ с устройствами ввода-вывода;
- стандартные формы взаимодействия пользователя с машиной в процессе подготовки, отладки и запуска прикладных программ.
Системное программное обеспечение ЭВМ, снабженных устройствами массовой памяти на магнитных дисках, обычно называют операционной системой. Важнейшим компонентом системного программного обеспечения является программа-монитор, обеспечивающая прием и исполнение команд человека-пользователя, подаваемых с устройства ввода.
MASK . . „пплпп •> МАСКА ДЛЯ СТАРШЕЙ EQU ПИООООВ Т Е Т р А Д Ы
""„ к , л с „ ; ВЫДЕЛИТЬ СТАРШУЮ AN1 MASK ТЕТРАДУ
Сравнение байтовых кодов. Сравнение байтовых кодов друг с другом обычно производят с помощью команд сравнения CMP' R или CPI D8. Как уже отмечалось, эти команды не меняют содержимого аккумулятора, но устанавливают биты регистра признаков F точно также, как и команды вычитания SUB R или SUI D8. При равенстве D8 (или кода в регистре R) коду в аккумуляторе признак Z по командам сравнения устанавливается в единицу, поэтому далее обычно следует команда условной передачи управления JZ ADR или JNZ ADR, осуществляющая ветвление программы или выход из цикла по условию.
213
III. МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ УПРАВЛЕНИЯ III.l. Аппаратные средства реализации микропроцессорных систем управления
Ш.1.1. Структурная схема микропроцессорной системы управ
ления
Рассмотрим структуру аппаратных средств микропроцессорной системы управления. Обобщенная структурная схема системы приведена на рис. III.-1. Она повторяет в идее все рассмотренные ранее структуры таких систем
и отличается аппаратной направленностью представления звеньев системы.
Датчики системы контролируют параметры состояния объекта и внешней среды. Их выходные сигналы являются информацией, определяющей выбор алгоритма либо его частя отработка которых обеспечивает надлежащее состояние либо поведение объекта упртяфмия в существующих условиях его функционирования
/('), *(')
Объект
Датчики состояния среды
\ fiU) Исполнительный
механизм
Измерительные контроллеры
1Ж Датчика
состояния объекта
Интерфейсные бло -ки связи с объектом
ё["Т) t и\пТ\
Измерительные контроллеры
Микропроцессор т
Дисплей X
Я"Т\
Интерфейсные блоки связи с периферией
Пульт оператора
у'О) К йругой ЭВМ . _$»
Рис. III.l. Структурная схема микропроцессорной системы ущтшшшт
Измерительные контроллеры преобразуют информационные сигналы в цифровую форму, т.е. являются фактически аналогово-цифровыми (на входе системы) и цифроанало-говыми (на выходе) преобразователями.
Для ввода и корректировки программ, ввода констант и других данных служит пульт оператора, связанный с микропроцессором посредством интерфейсного блока. Посредством аналогичного по назначению блока данные из микропроцессора могут быть выведены надисплей.
На основе результатов обработки входной информации на выходе микропроцессора формируется цифровой сигнал управления, преобразуемый в аналоговую форму и согласуемый по параметрам с исполнительным механизмом,, который воздействует непосредственно на объект управления.
Рассмотрим компоненты приведенной структурной схемы более подробно и под «аппаратным» углом зрения,
Ш.1.2. Аишшг#вв-щщфр#вые преобразователи
Динамические свойства. ния непрерывного сигнала в цифр©! необходимо выполнять 3 ©сдашме ©лермии::
- выполнит*, бстаетеетияе ш еу^мшв (прерывание сигнала во вршекя с гакшящм® модулятора);
- измерять значение иещерьшюш <ЙШШЩ в моменты прерывания, хс, ш щжщ&еЕШбФ м@-мешгы;
- ИНИЮЯЙШЬ квантование аю> цэш»®,, Т.Ф.. предстаешь тшерешщ'Ю жмиттщ' вшшш * форме числового кода-
АЦП можно иредетшии. ш мре штащиш--твдьного ееедшшж мадрмшра (йилршш>-ГО f j / ' t r / . к ' . ' г ^1:> г, - ' 5 Л SvguSBIHtlBSnSJJSI ЯК) yjjoe а ю, как тжттт ш ряс ПИ..
214
Ш ± т ТР
г£> gjg]
Рис. Ш.2. Цифровая модель АЦП
Сигнал прерывается в моменты времени О, Т, 2Т, ..., где Т - период дискретности. На выходе АЦП сигнал описывается кодовой группой. Если АЦП имеет разрядность а, то число уровней и. = 2а - 1 (рис. Ш.З).
g[nT]
-0.5 Ы') 0.5
7 уровнен => АЦП 3 — х разрядный
g[nT]
-0.5
У\ •Л
^—bs(t)
1023 урф&т => АЦП Ш — х разрядный
а 6
Рис. Ш.З. Представление выходного сигнала АЦП
Погрешность квантователя всегда будет равна половине уровня младшего разряда. В первом случае погрешность будет большой: 0.5/4 я 10%, а во втором случае она будет значительно меньше.
Если разрядность а>10 и больше, это значит, что единица младшего разряда будет значительно меньше диапазона изменения входного сигнала g(0, поэтому можно пренебречь влиянием ступенчатости характеристики и линеаризовать статическую характеристику путём проведения прямой через центры ступенек. В результате получим, что квантователь можно представить в виде пропорционального звена с коэффициентом передачи АЦП k = tgy (см. рис. Ш.З). Линейная модель АЦП показана на рис. Ш.4.
* ( ,!Н ± *('1 *£®
Рис. Ш.4. Линейная модель АЦП
Так как система считается линейной, то ко
эффициент к можно отнести к непрерывной части системы. Тогда линейную модель АЦП можно представить в виде, показанном на рис. Ш.5.
т ± Рис. III.5. Линейная модель АЦП
Погрешности АЦП. АЦП преобразует входной аналоговый сигнал в выходной цифровой код. Для реальных преобразователей, изготавливаемых в виде интегральных микросхем, процесс преобразования не является идеальным: на него оказывают влияние как технологический разброс параметров при производстве, так и различные внешние помехи. Поэтому цифровой код на выходе АЦП определяется с погрешностью. В спецификации на АЦП указываются погрешности, которые дает сам преобразователь. Их обычно делят на статические и динамические. При этом именно конечное приложение определяет, какие характеристики АЦП будут считаться определяющими, самыми важными в каждом конкретном случае.
Статические погрешности АЦП. В большинстве применений АЦП используют для измерения медленно изменяющегося, низкочастотного сигнала (например, от датчика температуры, давления, от тензодатчика и т.п.), когда входное напряжение пропорционально относительно постоянной физической величине. Здесь основную роль играет статическая погрешность измерения. В спецификации АЦП этот тип погрешности определяют аддитивная погрешность (Offset), мультипликативная погрешность (Full-Scale), дифферен- ] циальная нелинейность (DNL), интегральная нелинейность (INL) и погрешность квантования. Эти пять характеристик позволяют полностью описать статические погрешности АЦП.
Идеальная передаточная характеристика АЦП. Передаточная характеристика АЦП -это функция зависимости кода на выходе АЦП от напряжения на его входе [25-26]. Такой график представляет собой кусочно-линейную функцию из 2N "ступеней", где N - разрядность АЦП. Каждый горизонтальный отрезок этой функции соответствует одному из значений выходного кода АЦП (см. рис III.6). Если соединить линиями начала этих горизонтальных отрезков (на границах перехода от одного значения кода к другому), то идеальная передаточная характеристика будет представлять
215 собой прямую линию, проходящую через начало координат.
код
А
1/8 2/8 3/8 4/8 5/8 в/8 7/8 Until Uax
Рис. Ш.6. Идеальная передаточная характеристика 3-разрядного АЦП
Рис. Ш.6 иллюстрирует идеальную передаточную характеристику для 3-разрядного АЦП с контрольными точками на границах перехода кода. Выходной код принимает наименьшее значение (000) при значении входного сигнала эт 0 до 1/8 полной шкалы (максимального значения кода этого АЦП). Также следует отме-гить, что АЦП достигнет значения кода полюй шкалы (Ш) при 7/8 полной шкалы, а не зри значении полной шкалы. Таким образом, тереход в максимальное значение на выходе троисходит не при напряжении полной шкалы, i при значении, меньшем на величину наименьшего значащего разряда (LSB), чем вход-юе напряжение полной шкалы. Передаточная сарактеристика может быть реализована со мещением -1/2 LSB. Это достигается смеще-ием передаточной характеристики влево, что мещает погрешно'сть квантования из даалазо-ia-1... 0 LSB в диапазон -1/2 ... +1/2 LSB, как [оказано на рис,Ш.2.
Из-за технологического разброса парамет-юв при изготовлении интегральных микро-тем реальные АЦП не имеют" идеальной пе-«даточной характеристики. Отклонения от щеальяой передаточной характеристики ей-едеяяют етагическую погрешность АЦП я [риводатся в технической документации.
Аддитивная погрешность. Идеальная яере-Дточная характеристика АЦП пересекает ш-ало координат, а первый переход кода прояе-•одвг при достижений значения I L.SB Адди-ивная погрешность (погрешность сл'еигяия)) южет быть определена как смещение всей передаточной характеристики вяево или вира-о относительно оси входного напряжения, как •оказано на рис.Ш.7. Таким образом, в ояре-йение аддитивной яогряияоети АЦП каме-енно включено «шещввие 1/2ILSB,.
№# w$ 4/§ т §№ т шт
Рис. 1IL7, Переда»вчяяя м р ш ш р ш м » смещением и» -4/2 %ШШ
Погрешность смещения иум = зямейш иет, когда выходной код АЦП равш нулю (рис. ILLS),
if JFI Ь J JI I p* in. (HIM"ffc^ШиМШрвЯрИ
где Цж«и - :ШРШЙ«© ЙЩЩЙЩГ® ш ф з ш в щ ,
или в В|шщй»таж ш яотш® н ш к :
f t» ^ЙШМ
< - " • .••;.!;.--of-v $йЩШШ$т> таяв» шттябф щщтштш ®§§зШ §тттт> тетму Щ€шшшй:'в ршкжйй керщшечймда'
Эю иршюиегош как яюшаадш яаадшда авро .-
216
даточной функции, что иллюстрирует рис. Ш.9.
код / i Епш : :
i !' 1»
но 1»
но $С\ 101
100
101
100
еа 010
001
дао 0 Ш 2/8 Ш * В 5/8 6/В 7/8 Urnu
Рве, Ш.9. Мультипликативная погрешность АЦП
Погрешность полной шкеты - относительная разность между реальным и идеальным значениями предела шкалы преобразования при отсутствии смещения нуля. Определяется по формуле
"am U •100%.
ш
Эта погрешность является мультипликативной составляющей полной
погрешности. Иногда указывается соответствующим числом ЕМР.
Дифференциальная нелинейность. У идеальной передаточной характеристики АЦП ширина каждой "ступеньки" должна быть одинакова. Разница в длине горизонтальных отрезков этой кусочно-линейной функции из 2N
"ступеней1* представляет собой дифференциальную нелинейность (DNL).
Величина наименьшего значащего разряда у АЦП составляет Vre/2N, где Vrcf - опорное напряжение, N - разрешение АЦП. Разность напряжений между каждым кодовым переходом должна быть равна величине LSB. Отклонение этой разности от LSB определяются как даффереацнапьная нелинейность. На рис. ШЛО зтО' показано как неравные промежутки между "шагами" кода или как "размытость" границ переходов на передаточной характеристике АЦП.
Дифференциальной нелинейностью АЦП в данной точке "и" характеристики преобразо-?ан'Н1 называется разность между значением кванта преобразования Н„ и средним значением кванта преобразования Н. В спецификациях на конкретные АЦП значения дифференциальной нелинейности выражаются в долях LSB asm процентах от полной шкалы. Для характеристики, приведенной на рис. ШЛО:
1/8 2/8 3/8 4/8 5/8 6/8 7/8 Until
Рис. ШЛО. Дифференциальная нелинейность АЦП
Интегральная нелинейность. Интегральная нелинейность (EVL) - это погрешность, которая вызывается отклонением линейной функции передаточной характеристики АЦП от прямой линии, как показано на рис. III. 11.
КОД
А
Uex 1/8 2/8 М ffl М И 7/8 Untu
Рис. Ш.11. Интегральная нелинейность АЦП
Обычно передаточная функция с интегральной нелинейностью аппроксимируется прямой линией по методу наименьших квадратов. Часто аппроксимирующей прямой просто соединяют наименьшее и наибольшее значения. Интегральную нелинейность определяют путем сравнения напряжений, при которых происходят кодовые переходы. Для идеального АЦП эти переходы будут происходить при значениях входного напряжения, точно кратных LSB. А для реального преобразователя такое условие может выполняться с погрешностью. Разность между "идеальными" уровнями напряжения, при которых происходит кодовый переход, и их реальными значениями выражается в единицах LSB и называется интегральной нелинейностью.
Интегральная нелинейность - максимальное отклонение реальной характеристики преобразования от оптимальной - показана на
217 )ис.Ш 11. Оптимальная характеристика нахо-щтся эмпирически так, чтобы минимизиро-1ать значение погрешности нелинейности. Не-шнейность обычно определяется в относительных единицах, но в справочных данных фиводится также и в ЕМР. Для характеристи-си, приведенной на рис. Ш.11, величина интегральной нелинейности определяется как
w пш
Погрешность квантования. Одна из наибо-iee существенных составляющих ошибки при «мерениях с помощью АЦП - погрешность квантования - является результатом самого процесса преобразования. Погрешность квантования - это погрешность, вызванная значением шага квантования и определяемая как '/г величины наименьшего значащего разряда JLSB). Она не может быть исключена в аналого-цифровых преобразованиях, так как является неотъемлемой частью процесса преобразования, определяется разрешающей способностью АЦП и не меняется от АЦП к АЦП с равным разрешением.
Разрешающая способность - величина, обратная максимальному числу кодовых комбинаций на выходе АЦП. Разрешающая способность выражается в процентах, разрядах или децибелах и характеризует потенциальные возможности АЦП с точки зрения достижимой точности. Например, 12-разрядный АЦП имеет разрешающую способность 1/4096, или 0,0245% от полной шкалы, или -72,2 дБ.
Разрешающей способности соответствует приращение входного напряжения АЦП Uex при изменении выходного кода на единицу младшего разряда. Это приращение является шагом квантования. Для двоичных кодов преобразования номинальное значение шага квантования
где U - номинальное максимальное входное напряжение АЦП (напряжение полной шкалы), соответствующее максимальному значению выходного кода, п - разрядность АЦП. Чем больше разрядность преобразователя, тем выше его разрешающая способность.
Температурная нестабильность АЦП характеризуется температурными коэффициентами погрешности полной шкалы и погрешности смещения нуля.
Апертурная погрешность. Пусть мы оцифровываем синусоидальный сигнал
x{t) = As'm27rf0t.
В идеальном случае отсчёты берутся через равные промежутки времени. Однако в реальности время момента взятия отсчёта подвержено флуктуациям из-за дрожания фронта синхросигнала (clock jitter). Полагая, что неопределённость момента времени взятия отсчёта порядка А/, получаем, что ошибка, обусловленная этим явлением, может быть оценена как
EAn<\x'(t)At\<2A7Tf0At.
Легко видеть, что ошибка относительно невелика на низких частотах, однако на больших частотах она может существенно возрасти. Типовые значения величин смещения фронта синхронизации от дрожания для различных разрядностей АЦП приведены в табл. Ш. 1.
Таблица Ш.1 Допустимые значения дрожания фронта
синхронизации АЦП различной разрядности
Разрядность /ЩП
Максимальная частота входного сигнала
Разрядность /ЩП
44.1 кГц
192 кГц
1 МГц
10 МГц
100 МГц
8 28.2 НС
6.48 НС
1.24 НС
124 ПС
12.4 ПС
10 7.05 НС
1.62 НС
311 ПС
31.1 ПС «
3.11 ПС
12 1.76 НС
405 ПС
77.7 ПС
7.77 ПС
777 фс
14 441 ПС
101 ПС
19.4 ПС
1.94 ПС
194 фс
16 110 ПС
25.3 ПС
4.86 ПС
486 фс
48.6 фс
18 27.5 ПС
6.32 ПС
1.21 ПС
121 фс
12.1 фс
24 430 фс
98.8 фс
19.0 фс
1.9 фс
190 фс
Из этой таблицы можно сделать вывод о целесообразности применения АЦП определенной разрядности с учётом ограничений, накладываемых дрожанием фронта синхронизации (clock jitter). Например, бессмысленно использовать прецизионный 24-битный АЦП для записи звука, если система распределения синхросигнала не в состоянии обеспечить сверхмалой неопределенности.
Эффект апертурной погрешности может быть проигнорирован, если её величина сравнительно невелика по сравнению с ошибкой квантования. Таким образом, можно устано-
218 вить следующие требования к дрожанию фронта сигнала синхронизации:
Д/<- 1 2qnf
где q — разрядность АЦП. Динамические характеристики АЦП.
Возникновение динамических погрешностей связано с дискретизацией сигналов, изменяющихся во времени. Можно выделить следующие параметры АЦП, определяющие его динамическую точность.
Максимальная частота дискретизации (преобразования) - это наибольшая частота, с которой происходит образование выборочных значений сигнала, при которой выбранный параметр АЦП не выходит за заданные пределы. Измеряется числом выборок в секунду. Выбранным параметром может быть, например, монотонность характеристики преобразования или погрешность линейности.
Время преобразования (t„p) - это время, отсчитываемое от начала импульса дискретизации или начала преобразования до появления на выходе устойчивого кода, соответствующего данной выборке. Для одних АЦП, например, последовательного счета или многотакт-ного интегрирования, эта величина является переменной, зависящей от значения входного сигнала, для других, таких как параллельные или последовательно-параллельные АЦП, а также АЦП последовательного приближения, примерно постоянной. При работе АЦП без устройства выборки и хранения (УВХ) время преобразования является апертурным временем.
Время выборки (стробирования) - время, в течение которого происходит образование одного выборочного значения. При работе без УВХ равно времени преобразования АЦП.
Динамические характеристики АЦП обычно определяют с помощью спектрального анализа, по результатам выполнения быстрого преобразования Фурье (БПФ) над массивом выходных значений АЦП, соответствующих некоторому тестовому входному сигналу.
На рис. III. 12 представлен пример частотного спектра измеряемого сигнала.
Нулевая гармоника соответствует основной частоте входного сигнала. Все остальное представляет собой шум, который содержит гармонические искажения, тепловой шум, шум \/fu шум квантования. Некоторые составляющие шума генерируются самим АЦП, некоторые
| / ~ Нулевая аарионика
i I к. X ltbia.L,J>4iilltli I i l l 1м
mtiifeiJiafc.j'j'BL
Рис. Ш.12. Частотный спектр выходных данных АЦП
могут поступать на вход АЦП из внешних цепей. Гармонические искажения, например, могут содержаться в измеряемом сигнале и одновременно генерироваться АЦП в процессе преобразования.
Отношение "сигнал/шум". Отношение "сигнал/шум" (SNR) - это отношение среднеквадратического значения величины входного сигнала к среднеквадратическому значению величины шума (за исключением гармонических искажений), выраженное в децибелах:
£ Ж = 2 0 1 о ё ^ ( ^ д В . ^NOISE(RMS)
Это значение позволяет определить долю шума в измеряемом сигнале по отношению к полезному сигналу.
Шум, измеряемый при расчете SNR (рис. 111.13), не включает гармонические искажения, но включает шум квантования.
А
Основная гармоника
Уровень шума
тшштш Рис. III. 13. SNR - отношение "сигнал/шум"
Для АЦП с определенным разрешением именно шум квантования ограничивает возможности преобразователя теоретически лучшим значением отношения сигнал/шум, которое определяется как:
57^ = 6.02^ + 1.76,
где JV- разрешение АЦП. Классификация АЦП. В настоящее время
известно большое число методов преобразования напряжения в код. Эти методы существен-
219
о отличаются друг от друга потенциальной очностью, скоростью преобразования и ложностью аппаратной реализации. На рис. [1.14 показаны возможности основных типов Л П в зависимости от разрешения и частоты искретизации.
Разрядность АЦП
10 100 1к 10к ЮОк 1М ЮМ 100М 1G 10G
Рис. 111.14. Зависимость разрешения от частоты дискретизации для различных типов АЦП
В основу классификации АЦП положен ризнак, указывающий на то, как во времени азворачивается процесс преобразования ана-оговой величины в цифровую. В основе пре-бразования выборочных значений сигнала в ифровые эквиваленты лежат операции кван-ования и кодирования. Они могут осуществиться с помощью либо последовательной, ли-о параллельной, либо последовательно-араллельной процедур приближения цифро-ого эквивалента к преобразуемой величине.
Параллельные АЦП. Рис. III. 15 показывает прощенную схему 3-разрядного параллельно-о АЦП (для преобразователей с большим разжиганием принцип работы сохраняется).
Здесь используется массив компараторов, аждый из которых сравнивает входное напряжение с индивидуальным опорным напря-кением. Такое опорное напряжение для каж-(ого компаратора формируется на встроенном фецизионном резистивном делителе.
Значения опорных напряжений начинаются :о значения, равного половине младшего зна-ащего разряда (LSB), и увеличиваются при переходе к каждому следующему компаратору ? шагом, равным Vm /23. В результате для 3-разрядного АЦП требуется 23-1 или семь компараторов. А, например, для 8-разрядного параллельного АЦП потребуется уже 255 (или (2 -1)) компараторов.
С увеличением входного напряжения компараторы последовательно устанавливают свои выходы в логическую единицу вместо логического нуля, начиная с компаратора, отвечающего за младший значащий разряд. Дешифратор преобразует (23-1) - разрядное цифровое слово с выходов компараторов в двоичный 3-разрядный код.
Uex Uon о-
R12
Ч>\
R I
R j
R |
R
и, R
U,<
R Ч > '
={>
т •=£5-rf> Ц>
\ 8:3
СЭР
U3P
R/2
Рис. Ш.15. Структурная схема параллельного АЦП
Параллельные АЦП - достаточно быстрые устройства, но они имеют свои недостатки. Из-за необходимости использовать большое количество компараторов параллельные АЦП потребляют значительную мощность. Например, восьмиразрядный преобразователь типа МАХ108 (фирмы MAXIM - http.V/www.maxim-ic.com) позволяет получить 1,5 млрд отсчетов в секунду при времени задержки прохождения сигнала не более 1 не. Недостатком этой схемы является высокая сложность. Действительно, «-разрядный параллельный АЦП сдержит 2"-1 компараторов и 2я согласованных резисторов. Следствием этого является высокая стоимость (сотни долларов США) и значительная потребляемая мощность. Тот же МАХ108, например, потребляет более 4 Вт.
Очевидно, на сегодняшний день самые быстрые АЦП изготавливает фирма Atmel. В табл. Ш.2 приведен перечень АЦП с их параметрами.
220
Высокоскоростные АЦП фирмы Atmel Таблица Ш.2
Device Resol SAR IB ENO В С PD P
AT84AD004B 8-bit 500 Msps 1 GHz 7 bit 2 1.4W LQFP144
AT84AD001B' 8-bit 1 Gsps 1.5 GHz 7.4bit 2 1.4W LQFP144
AT84AS003 10-bit 1.5Gsps 3 GHz >8bit 6.5W EBGA317
AT84AS004 10-bit 2 Gsps 3 GHz 7.8bit 6.5W EBGA3I7
TS83102G0B 10-bit 2 Gsps 3.3 GHz 8bit 4.6W CBGA 152
TS83102G0BMGS 10-bit 2 Gsps 3.3 GHz 8bit 4.6W CI-CGA152
AT84AS008 10-bit 2.2 Gsps 3.3 GHz >8bit 4.2W CI-CGA152, CBGA 152
AT84AS001 12-bit 500 Msps 1.5 GHz 12bit 2.3W EBGA192
EV8AQ160 8-bit 5 Gsps 2.5 GHz 7.5bit 4 3.9W EBGA380
Обозначения в верхней строке таблицы: IB = Input Bandwidth, С = Channels, SAR = Sampling Rate, PD = Power Dissipation, P = Package.
АЦП последовательного счета. Этот преобразователь состоит из компаратора, счетчика и ЦАП (рис. III, 16). На один вход компаратора поступает входной сигнал, а на другой - сигнал обратной связи с ЦАП.
Пуско
1 6 -
Uex о-
Uom
Uuan Стоп
ЦАП Счетчик
КОД
Рис. Ш.16. Структурная схема АЦП последовательного счета
Работа преобразователя; начинается с момента прихода запускающего импульса, который включает счетчик, суммирующий число импульсов, поступающих от генератора тактовых импульсов/ Выходной нарастающий код счетчика подается на ЦАП. С выхода ЦАП ступенчато-нарастающее напряжение Umn подается на инвертирующий вход компаратора. С помощью компаратора это напряжение непрерывно сравнивается с входным и как только на выходе ЦАП напряжение достигнет величины напряжения Um, на выходе компаратора сформируется сигнал "Стоп" для счетчика. К концу преобразования на выходе счетчика установится код, пропорциональный входному напряжению.
Время преобразования АЦП этого типа является переменным и определяется величиной входного напряжения. Его максимальное значение соответствует максимальному входному напряжению и при разрядности двоичного счетчика N и частоте тактовых импульсов/такт равно
2 " - 1 'ПР. МАКС А ТАКТ
Например, при «=10 и /такт =1 МГц tnpMKC = 1024 мкс, что обеспечивает максимальную частоту выборок порядка 1 кГц.
Таким образом, особенностью АЦП последовательного счета является небольшая частота дискретизации, достигающая нескольких килогерц. Достоинством АЦП данного класса является сравнительная простота построения, определяемая последовательным характером выполнения процесса преобразования.
АЦП следящего типа. В отличие от АЦП последовательного счета этот преобразователь не имеет управляющего входа "Пуск", поэтому он все время находится в режиме преобразования-рис. III. 17.
3> -3>
1/цап
ЦАП РввВрСивНЫи счетчик
КОД
Рис. Ш.17. Структурная схема АЦП следящего типа
221 Два компаратора преобразователя А1 и А2
осуществляют непрерывное сравнение входного аналогового напряжения с выходным напряжением ЦАП и вырабатывают управляющие сигналы для реверсивного счетчика. Если входное напряжение больше выходного напряжения Uuan, то реверсивный счетчик работает как суммирующий с тактовой частотой f, а если меньше - то, как вычитающий. В результате осуществляется непрерывное слежение за изменением входного напряжения. И как следствие, даже в том случае, если входное напряжение неизменно, в выходном коде будет постоянно изменяться самый младший разряд.
АЦП следящего типа находят применение в тех случаях, когда известно, что входной сигнал не претерпевает резких изменений (т.е. для гладких сигналов).
АЦП последовательного приближения (поразрядного кодирования). Рис. III. 18 показывает упрощенную схему АЦП последовательного приближения.
Рлспр #<}«л иттлъ
t> Uon о—• ЦАП
1ц.".7а
Рис. III. 18. Структурная схема АЦП последовательного приближения
В основе АЦП данного типа лежит специальный регистр последовательного приближения. В начале цикла преобразования все выходы этого регистра устанавливаются в логический 0, за исключением первого (старшего) разряда. Последнее достигается тем, что на первом выходе распределителя устанавливается 1, которая поступает на старший разряд регистра. Благодаря этому на выходе внутреннего цифро-аналогового преобразователя устанавливается напряжение, значение которого равно половине Uon. А выход компаратора переключается в состояние, определяющее разницу между сигналом на выходе ЦАП и измеряемым входным напряжением. Если входное напряжение Um больше чем 1/2£/„„,то на выходе компаратора устанавливается 1, которая Разрешает запись на втором такте 1 в старший Разряд регистра. В третьем такте 1 устанавливается на следующем выходе распределителя
импульсов, а на выходе ЦАП устанавливается напряжение, равное 1/2 Uon + 1/4 Uon, которое с помощью компаратора сравнивается с ГУет, как показано на рис. III. 19.
КОД
011
010
Рис. III.19. Временная диаграмма работы 3-х разрядного АЦП последовательного
приближения
Если напряжение на входе меньше чем 1/2 иоп + 1/4 Uon, то на выходе компаратора устанавливается 0 и в четвертом такте в регистр записывается 0. Таким образом, преобразования осуществляются для каждого разряда. В конце преобразования всех разрядов формируется сигнал конца цикла преобразования (КПП), который свидетельствует о готовности данных на выходе АЦП для считывания.
Время преобразования АЦП последовательного приближения зависит от его разрядности, и определятся по формуле
tnp =2-At-N + 4-At,
где N - разрядность АЦП, М - время одного такта преобразования.
Данный класс АЦП занимает промежуточное положение по быстродействию, стоимости и разрешающей способности между последовательно-параллельными и интегрирующими АЦП и находит широкое применение в системах управления, контроля и цифровой обработки сигналов.
АЦП двойного (двухтактного) интегрирования. На рис. Ш.20 приведена упрощенная структурная схема АЦП двухтактного интегрирования.
•Шех0_
-Uon
I N д|
- 1 — 1 _ ^
I N H * I N д|
- 1 — 1 _ ^ *— Пум Степ
I N д|
- 1 — 1 _ ^ *— Пум Счетчик ~t_J 1 Счетчик
&И ~t_J 1 Счетчик
&И . Г 1
Счетчик &И . Г
1 {} 1 . Г
1 {} t
ГИ ч' 'у
КОД
Рис. Ш.20. Структурная схема АЦП двухтактного интегрирования
222
Входной сигнал заряжает конденсатор С интегратора в течение фиксированного периода времени - /„, который обычно составляет один период частоты питающей сети (50 или 60Гц) или кратен ему. Этот промежуток времени определяется длительностью импульса, который формируется на выходе формирователя импульса (ФИ). В течение импульса ключ S находится в верхнем по схеме положении.
Величина напряжения, до которого зарядится конденсатор интегратора за время действия этого импульса, определяется постоянной времени интегратора (RC) и величиной входного напряжения. По окончании t„ ключ S переводится в нижнее положение, на вход интегратора подается отрицательное опорное напряжение U0„ и конденсатор интегратора начинает перезаряжаться - на нем увеличивается входное напряжение. С этого же момента времени на вход счетчика поступает разрешающий сигнал для счета. Как только напряжение на выходе интегратора достигнет 0, сработает нуль-компаратор и своим сигналом на выходе остановит счетчик. При этом на выходе счетчика установится число, пропорциональное уровню входного сигнала. Очередной цикл преобразования начинается по команде "Пуск" (для упрощения на схеме не показан).
Для сравнения на рис. III.21 приведены два графика.
Рис.Ш.21. Временные диаграммы АЦП двухтакт-. ного интегрирования
График изменения напряжения на конденсаторе интегратора, показанный пунктирной линией, приведен для более низкого входного напряжения. Также следует обратить внимание на то, что скорость заряда конденсатора на первом участке (во время действия to) зависит от Uex, а на втором определяется Uon, С и R, и не изменяется.
АЦП двухтактного интегрирования имеют высокую точность и высокую разрешающую способность, а также имеют сравнительно простую структуру. Это дает возможность выполнять их в виде интегральных микросхем. Основной недостаток таких АЦП - большое время преобразования, обусловленное привязкой
периода интегрирования к длительности периода питающей сети. Например, для 50 Гц -оборудования частота дискретизации АЦП двухтактного интегрирования не превышает 25 отсчетов/с. Конечно, такие АЦП могут работать и с большей частотой дискретизации, но при увеличении последней помехозащищенность падает.
Все вышесказанное обуславливает наибольшее применение АЦП двухтактного интегрирования в измерительных приборах -мультиметрах, вольтметрах и т.д.
Сигма-Дельта-АЦП. Для проведения большинства измерений часто не требуется АЦП со скоростью преобразования, которую даёт АЦП последовательного приближения, зато необходима большая разрешающая способность. Сигма-дельта-АЦП могут обеспечивать разрешающую способность до 24 разрядов, но при этом уступают в скорости преобразования. Так, в сигма-дельта-АЦП при 16 разрядах можно получить частоту дискретизации до 100000 отсчетов/с, а при 24 разрядах эта частота падает до 1000 отсчетов/с и менее, в зависимости от устройства.
Своим названием эти преобразователи обязаны наличием в них двух блоков: сумматора и интегратора. Один из принципов, заложенных в такого рода преобразователях, позволяющий уменьшить погрешность, вносимую шумами, а, следовательно, увеличить разрешающую способность - это усреднение результатов измерения на большом интервале времени.
Основные узлы АЦП - это сигма-дельта-модулятор и цифровой фильтр. Схема п-разрядного сигма-дельта модулятора первого порядка приведена на рис. Ш.22. Работа этой схемы основана на вычитании из входного сигнала Uj(f) величины сигнала на выходе ЦАП, полученной на предыдущем такте работы схемы. Полученная разность интегрируется, а затем преобразуется в код параллельным АЦП невысокой разрядности. Последовательность кодов поступает на цифровой фильтр нижних частот.
I/O* "\ Ov. АЦП N Цифровой ФНЧ p-lp>—
АЦП Цифровой ФНЧ
ЦАП Ы ЦАП S i — '
=>ад
Рис. Ш.22. Структурная схема модулятора сигма-дельта АЦП
Порядок модулятора определяется численностью интеграторов и сумматоров в его схеме. Сигма-дельта-модуляторы N-ro порядка
Додержат N сумматоров и N интеграторов и ^Обеспечивают большее соотношение сиг-[нал/шум при той же частоте отсчетов, чем модуляторы первого порядка.
Структурная схема сигма-дельта АЦП первого порядка приведена на рис. 111.23 .
И I цлп 1Ы
Цифровой —N ФНЧ Z ^ Дкщютер ~_^ КЩ
Рис. Ш.23. Сигма-дельта АЦП первого порядка
Аналоговый сигнал подается на интегратор, выход которого подсоединен к компаратору, который, в свою очередь, присоединен к 1-разрядному ЦАП в петле обратной связи. Путем серии последовательных итераций интегратор, компаратор, ЦАП и сумматор дают поток последовательных битов, в котором содержится информация о величине входного напряжения.
Результирующая цифровая последовательность затем подается на фильтр нижних частот для подавления компонентов с частотами выше частоты Котельникова (она составляет половину частоты дискретизации АЦП). После удаления высокочастотных составляющих
223
следующий узел - дециматор - прореживает данные.
Основная особенность сигма-дельта-АЦП состоит в том, что частота следования выборок, при которых происходит анализ уровня напряжения измеряемого сигнала, существенно превышает частоту появления отсчетов на выходе АЦП (частоту дискретизации). Эта частота следования выборок называется частотой передискретизации. Так, сигма-дельта-АЦП со скоростью преобразования 100k отсч/с, в котором используется частота передискретизации в 128 раз больше, будет производить выборку значений входного аналогового сигнала с частотой 12.8М отсчетов/с. В рассматриваемом АЦП дециматор будет оставлять 1 отсчет из каждых полученных 128 в выходной цифровой последовательности.
Еще одно замечательное свойство отличает сигма-дельта-АЦП от других типов - низкая потребляемая мощность от источника питания.
Наибольшее число разновидностей АЦП этого типа в настоящий момент изготавливает фирма TEXAS INSTRUMENTS. С полным перечнем можно познакомиться на сайте фирмы, а здесь (табл. Ш.З) приведем параметры самых экономичных по потребляемой мощности и широкополосных.
Таблица Ш.З Параметры АЦП ADS1244 / 1245
Наименование параметра ADSI244 ADS1245 Разрешение, разрядов 24 24 Число дифференциальных входных каналов, шт.
1
Производительность, SPS 15 105 Входное напряжение, В ±5В/±2,5 ±2,5 Линейность, % 0,0008/0,0015 0,0015 Внешний интерфейс последовательный последовательный
или SPI Потребляемая мощность, мВт
0,3мВт /0,5 50-100
Тип корпуса MSOP-10 TSSOP-16
На основе ADS1271 изготовлены четырех и восьмиканальные АЦП ADS1274 и ADS1278. Их параметры приведены в табл. Ш.4.
Обычно сигма-дельта-АЦП применяются в разнообразных системах сбора данных и в из
мерительном оборудовании (измерение давления, температуры, веса и т.п.), когда не требуется высокая частота дискретизации и необходимо разрешение более 16 разрядов.
Параметры АЦП фирмы TEXAS INSTRUMENTS Тяблица Ш 4
Rcsolution(Bits) Sample Rate (max) Architecture
ADS1271 24 J05kSPS De!ta-5i,gma
ADS1274 24 128kSPS Delto-Sigraa
ADS12Z8 '24 I2»SPS Delta-Sienna
224
Окончание табл.Ш.4
Input Channels (DitT) 1 4 8 Power Consumption(Typ)(mW) 92 285 530
Bipolar Input Type Pseudo Pseudo Pseudo SNR(dB) 109 111 111 SFDR(dB) -108 -109 -109 INL (+/- %)(Max) 0.0015 0.0012 0.0012 No Missing Codes(Bits) 24 24 24 Analog Voltage AV/DD(Min)(V) 4.75 4.75 4.75 Analog Voltage AV/DD(Max)(V) 5.25 5.25 5.25 Logic Voltage DV/DD(Min)(V) 1.65 1.65 1.65
Logic Voltage DV/DD(Max)(V) 3.6 1.95 1.95
Input Type Voltage Voltage Voltage Analog Input BW(MHz) 0.05 0.062 0.062 Input Configuration Range +/-2.5V +/-2.5V +/-2.5V
No. of Supplies 2 3 3 Pia/Package 16TSSOP 64HTQFP 64HTQFP
Ш.1.3. Цифро-аналоговые преобразователи
АЦП и ПАП выполняют взаимно-обратные функции, поэтому и характеризуются такими же параметрами. Если поменять местами оси на графике рис. Ш.6, то получим статическую характеристику трехразрядного ПАП - рис. 111.24.
Unix ЦАП
000 001 010 011 100 Й1 110 111(1000) ^•код
Рис. Ш.24. Статическая характеристика трехразрядного ЦАП
Статические характеристики ЦАП. Идеальная характеристика ЦАП представляет собой прямую линию, соединяющую начало координат с точкой, соответствующей полной шкале (1000, Unu]). Любые отклонения от этой линии свидетельствуют о статических погрешностях ПАП. К ним относятся: нелинейность, дифференциальная нелинейность, абсолютная нелинейность, погрешность, обусловленная разрешающей способностью, смещение нуля, смещение уровня ПШ и монотонность [27].
Так как аналогичные параметры для АЦП были рассмотрены достаточно подробно, то для ПАП приведем лишь их краткую характеристику.
Разрешающая способность - это наименьшее приращение во входном коде, вызывающее различимое изменений выходного напряжения ЦАП. Теоретически разрешающая способность пропорциональна числу (разрядов) кодовых комбинаций.
Погрешность смещения нуля является разностью между действительным и идеальным значениями выходного напряжения ЦАП, когда на него подан код, соответствующий нулевому напряжению на выходе.
Погрешность смещения полной шкалы - это разница между действительным выходным и опорным напряжениями ЦАП при входном коде, соответствующем полной шкале.
Нелинейность - это максимальное отклонение выходного напряжения ЦАП от линии, проходящей через нуль и точку, соответствующей полной шкале, при любом входном коде. Она может выражаться в процентах от ПШ или в единицах младшего значащего разряда.
Абсолютная нелинейность - это максимальное отклонение выходного напряжения ЦАП от идеальной характеристики при любом входном коде.
Дифференциальная нелинейность является мерой различия между смежными значениями уровней выходного напряжения и определяется разностью соседних выходных уровней дей-
225 ствительного и идеального ЦАП по всему диапазону напряжений. Если обозначить через ия действительный перепад выходного напряжения преобразователя при изменении входного кода на единицу, а через С/й - идеальный перепад, то дифференциальную нелинейность можно выразить в виде
Н„ и»-и. и.;
100%
Очевидно, что дифференциальная нелинейность также может быть выражена в долях младшего разряда.
Монотонность характеристики показывает, что по мере возрастания входного кода напряжение на выходе ЦАП увеличивается во всем диапазоне своих значений и никогда не убывает между двумя соседними значениями входного кода.
Динамические характеристики ЦАП. Динамические параметры ЦАП определяются по изменению выходного сигнала при скачкообразном изменении входного кода.
Максимальная частота преобразования -наибольшая частота дискретизации, при которой параметры ЦАП соответствуют заданным значениям. Максимальная частота и время установления определяют быстродействие ЦАП.
Время установления выходного напряжения или тока tycm - интервал времени от подачи входного кода до вхождения выходного сигнала в заданные пределы dU- рис. 111.25.
Рис. Ш.25. Переходная характеристика ЦАП
Скорость нарастания - максимальная скорость изменения выходного сигнала во время переходного процесса. Определяется как отношение приращения выходного напряжения Ш к времени At, за которое произошло это приращение.
Классификация ЦАП. Для классификации Цифро-аналоговых преобразователей используют различные признаки, характеризующие их функционирование. Наиболее часто используются следующие признаки:
по характеру входного кода: - параллельные, - последовательные; по виду выходного сигнала: - с токовым выходом, - с напряжением; по виду используемой весовой матрицы: - с двоично-взвешенными резисторами, - с резистивной матрицей R-2R, - с матрицей, выполненной на переключае
мых конденсаторах; по возможности изменения знака опорного
сигнала: - с неизменным знаком (фиксированным
значение опорного сигнала), - с изменяемым знаком (такие ЦАП назы
ваются умножающие); по виду ключей: - с ключами, выполненными на биполяр
ных транзисторах (с токовыми ключами), - с ключами, выполненными на полевых
транзисторах; по скорости преобразования: - низкоскоростные,
' - среднескоростные, - высокоскоростные, - сверхскоростные; по принципу преобразования входной кодо
вой комбинации (по тому, как во времени разворачивается процесс преобразования цифровой величины в аналоговую):
~ последовательные, - параллельные, - последовательно-параллельные. . Учитывая большое разнообразие типов
ЦАП, рассмотрим наиболее часто встречающиеся на практике.
ЦАП с двоично-взвешенными резисторами и опорным источником напряжения. Работа схемы ЦАП с двоично-взвешенными резисторами (рис. Ш.26 ) основана на суммировании токов.
°- О е*>
ач" кг код Р»Ч
Si&t -cb-a©f~ <^&г
Хлго-А^У
Рис. Ш.26. ЦАП с двоично-взвешенными резисторами и опорным источником напряжения
Идея построения схемы состоит в том, что ток каждого последующего разряда, начиная со старшего, в два раза меньше предыдущего
226
(в соответствии с весами разрядов двоичного числа). Поэтому в этой схеме R2 = 2Rb R3 = 2R2 и т.д. Или в общем виде
где п - номер разряда. Операционный усилитель с резистором об
ратной связи Roc выполняют функцию преобразователя «ток-напряжение». Достигается это благодаря известному факту - если усилитель находится в линейном режиме, то напряжение между его входами равно нулю (свойство виртуального нуля). Поэтому ток и-го разряда находится по формуле
-- on п~ к ' Если в разряде кодовой комбинации 1 соот
ветствующий ключ в схеме переводится в верхнее положение, то ток разряда протекает на вход усилителя. Общий суммарный ток iex зависит от количества 0 и 1 в кодовой комбинации, поданных на вход цифро-аналогового преобразователя:
,- .- f & где X - логическая переменная, принимающая значения «-го разряда (0 или 1).
Также, благодаря свойству виртуального нуля, ток в цепи обратной связи операционного усилителя равен ioc - - /ет, а выходное напряжение схемы равно падению напряжения на резисторе Roc.
В результате выходное напряжение находим, как функцию, зависящую от двоичной кодовой комбинации, поданной на вход ЦАП
U =-U ^ У - ^ . w еых on 0
У / _ , 0л-1
Рассмотренная схема при всей ее простоте обладает целым рядом недостатков.
При высокой разрядности ЦАП токоза-дающие резисторы должны быть согласованы с высокой точностью. Наиболее жесткие требования по точности предъявляются к резисторам старших разрядов, поскольку разброс токов в них не должен превышать тока младшего разряда.
Другим недостатком является различие весовых резисторов при высокой разрядности ЦАП в тысячи раз. Так, например, для десятиразрядного ЦАП при i?i=10 КОм находим R]0 =
29R\ = 5,12 МОм. Большой диапазон сопротивлений резисторов в схеме делает затруднительным изготовление ее в виде интегральной микросхемы.
ЦАП с резистивной матрицей R-2R и опорным источником напряжения отличаются использованием резисторов только двух номиналов R и 2R, как показано на рис. 111.27.
Рис. IYL.21. ЦАП с резистивной матрицей R-2R и опорным источником напряжения
Работа этой схемы, так же как и предыдущей, основана на суммировании токов. Поэтому принципиальной разницы в работе схем нет. Разница заключается только в формировании токов разрядов.
В схеме, изображенной на рис. III.27, для формирования токов разрядов используется резистивная матрица R-2R. Принцип работы этой матрицы основан на том, что ее каждый последующий разряд, начиная с младшего, нагружен на эквивалентное сопротивление, равное 2R. Причем, благодаря тому, что выводы резисторов 2R с помощью ключей подключаются или к общей шине или к инвертирующему входу усилителя (фантомному нулю), токи разрядов при переключении ключей не изменяются. В результате ток каждого последующего разряда i„ получается в два раза меньше, чем предыдущий.
Выходное напряжение в этой схеме определяется по формуле
U =_[/ I f iL. вых " О /? '—' Т л _ |
Благодаря наличию в рассматриваемой схеме резисторов только с двумя номиналами, она легко реализуется в виде интегральной микросхемы. Следует обратить внимание и на тот факт, что выходное напряжение ЦАП зависит не от абсолютного значения номиналов резисторов, а от их отношения. Так как при изготовлении микросхем все резисторы вы-
227 полняются в одном технологическом цикле, их номиналы могут сильно различаться от микросхемы к микросхеме, но в самой микросхеме отношение резисторов получается высокоточным.
В СССР первой микросхемой ЦАП, выполненной с резистивной матрицей R-2R, была КР572ПА1 (ее аналог AD7520 и более современный AD7533, см. рис Ш.22).
572ПА1 - это десятиразрядная матрица R-2R с управляющими ключами, выполненными на полевых транзисторах. Ее отличие от схемы, приведенной на рис. Ш.27, заключается в отсутствии операционного усилителя.
Рассмотренная схема преобразователя также не лишена недостатков. Одним из основных ее недостатков является влияние сопротивления ключей (особенно в старших разрядах) на результирующее выходное напряжение.
ЦАП с резистивной матрицей R-2R и опорными источниками тока (рис. 111.28).
Рис. III.28. ЦАП с резистивной матрицей R-2R и опорными источниками тока
В этом типе преобразователей каждый бит кодовой комбинации является управляющим для соответствующего источника тока. Под воздействием Х„ включаются или выключаются источники тока. . В схеме, приведенной на рис. 111.28, вклад я-го источника тока в iex определяется числом, ступеней резистивной матрицы R-2R, через которые он пройдет. В этой схеме предполагается, что все токи источников тока равны между собой.
Управляемые источники тока могут быть выполнены, например, по схеме, показанной на рис. 111.29. р
I ~~I +Vcc
и0„О У VT1 VTN
В качестве переключателей тока S„ применяются также и биполярные дифференциальные каскады, в которых транзисторы работают в активном режиме. Это позволяет сократить время установления до единиц не.
Высококачественные источники тока имеют большое внутреннее сопротивление, поэтому влияние сопротивлений ключей в схеме на рис. Ш.28 оказывается пренебрежимо малым.
По сравнению с предыдущими схемами за счет уменьшения влияния сопротивлений ключей цифро-аналоговые преобразователи, выполненные на источниках тока, обладают более высокой точностью.
Существуют и другие схемотехнические решения ЦАП на основе источников тока, в которых токи источников тока имеют разные веса. Поэтому они выполняются без резистив-ных матриц.
ЦАП на переключаемых конденсаторах. ^Цифро-аналоговые преобразователи на пере
ключаемых конденсаторах можно разделить на два типа - параллельные и последовательные.
Параллельные ЦАП на переключаемых конденсаторах в основном имитируют рассмотренные выше схемы. В качестве примера на рис. 111.30 приведена схема ЦАП с двоично-взвешенными конденсаторами.
КОД
X , i
"—;-©Чг— •V, С/2
^ -€Ц •
Рис. Ш.29. Управляемые источники тока
С)
Рис. Ш.ЗО. ЦАП с двоично-взвешенными конденсаторами
Работа схемы основана не на суммировании токов, как в предыдущих схемах, а на перераспределении зарядов между конденсаторами.
Каждый цикл преобразования состоит из двух тактов. В первом такте все ключи переводятся в нижнее положение и конденсаторы разряжаются. Затем ключи, на управляющий вход которых приходит 1 (в соответствии с кодовой комбинацией), переводятся в верхнее положение, а остальные - остаются в нижнем.
228
Отдельный ключ S на втором такте переводится в верхнее положение всегда.
Выходное напряжение ЦАП находится по формуле
1 N 2 и =-и АуА_ У> вых ' - ' on л Z—i ъп-\ •
f. я=1 ^
При изготовлении рассмотренной схемы в виде интегральной микросхемы возникают проблемы, схожие со схемой ЦАП с двоично-взвешенными резисторами. При большой разрядности ЦАП отношение величин емкостей конденсаторов становится недопустимо большим. Существуют схемотехнические решения, позволяющие значительно уменьшить этот "разброс". С ними можно познакомиться в [28].
Последовательный ЦАП на переключаемых конденсаторах, изображенный на рис. 111.31, не имеет резистивного аналога. В этой схеме конденсаторы используются не только как делители напряжения, но и как элементы памяти.
—ен—г-е-Von
S2 >-. О <ь а S4 Ф С2 1/еых
Рис. Ш.31. Структурная схема ЦАП с переносом заряда
Цикл преобразования начинается с подготовки конденсатора С2, для этого замыкается ключ 54 и конденсатор С1 разряжает. В дальнейшем в течение цикла преобразования ключ S4 находится в разомкнутом состоянии. Преобразование начинается с младшего разряда. Если в младшем разряде 1, то замыкается ключ 51 и конденсатор С\ заряжается до напряжения Uon, а если в младшем разряде 0, то замыкается ключ 52 и конденсатор С\ разряжается. Затем оба ключа 51 и 52 размыкаются, а ключ 53 замыкается и происходит перераспределение зарядов между конденсаторами С1 и С2. В следующем такте ключ 53 размыкается, а один из ключей 51 или 52 замыкается (в зависимости от состояния следующего разряда) и т.д. Процедура преобразования происходит до старшего разряда. В конце цикла преобразования на конденсаторе С2 устанавливается напряжение пропорциональное кодовой комбинации. При этом весь цикл преобразования осуществляется за 2Nтактов.
Достоинствами рассмотренного преобразователя являются монотонность его характеристики и компактность.
Однако из приведенного описания работы следует, что для обеспечения правильного функционирования схемы (управления ключами) требуется достаточно сложное устройство. К недостаткам устройства следует отнести и погрешности, которые возникают вследствие просачивания импульсов управления ключами, а также влияния паразитных емкостей ключей.
Существуют и другие схемотехнические решения последовательных ЦАП на переключаемых конденсаторах [28].
ЦАП на основе широтно-импульсного модулятора. Принцип работы ЦАП с широтно-импульсным модулятором (ШИМ) заключается в последовательном преобразовании двоичной кодовой комбинации в длительность импульса, а затем выделения из этого импульса постоянной составляющей, которая пропорциональна кодовой комбинации. На рис. 111.32 приведена структурная схема преобразователя.
КОД-г=$
Рис. 111.32. ЦАП на основе широтно-импульсного модулятора
В настоящее время функциональный преобразователь "цифровой код - длительность импульса" (т) легко реализуется на основе микроконтроллера путем использования в нем одного из таймеров в режиме PWM. Сигнал 5(/) на выходе такого преобразователя имеет вид, изображенный на рис. Ш.ЗЗ.
Рис. Ш.ЗЗ. Форма сигнала на выходе преобразователя код-длительность импульса
Периодический сигнал S(t) может быть представлен тригонометрическим рядом Фурье
'г 2i-S(t) = E - + — > —Sinn—— + COS n(Qj T я n=in J
Если из спектра сигнала S(t) убрать все высокочастотные гармоники, то в его спектре останется только постоянная составляющая
229
зависящая от отношения длительности импульса к его периоду.
Последнее соотношение объясняет необходимость установки фильтра нижних частот на выходе схемы на рис. IH.32.
На сайте фирмы Atmel приведен пример построения цифрового устройство записи и воспроизведения речи на основе микроконтроллера с использованием ЦАП на основе ШИМ. В этом примере достаточно подробно выполнен анализ требований, предъявляемых к периоду импульсов и частоте среза ФНЧ для достижения желаемых характеристик ЦАП. С примером можно познакомиться по ссылке [29].
Основным недостатком ЦАП с широтно-импульсным модулятором является его низкое быстродействие.
На основе широтно-импульсных модуляторов в системах автоматического управления строятся мощные электронные усилители для управления различными нагревательными элементами, электроприводами и т.д. При этом сам объект управления выполняет функцию фильтра нижних частот.
Оптимизация выбора БИС АЦП и БИС ЦАП. Эта задача является многокритериальной и критерии оптимальности (КО) по отношению друг к другу являются противоречивыми. Поэтому практически невозможно выбрать определенный тип АЦП и ЦАП, который бы обеспечивал все оптимальные значения параметров преобразования.
В этой связи существует определенная •трудность нахождения экстремального по всем компонентам векторного критерия Q>Ql,Q2,...,Qs, где Q; -параметр качества.
Для упорядочения критерия оптимальности введем обобщенную функцию цели, которая отражает комплексный характер критерия качества преобразователя.
Оптимизируемыми критериями для АЦП являются:
- число разрядов. (Аг); -абсолютная погрешность {8)', — частота преобразования /г; —диапазон входных, напряжений &U: — количество источников питания (я); — потребляемая мощность (Р%. - совместимость, с МП и ТТЛ уровнями ($); —температурный диапазон AT. Для ЦАП такими критериями являются; - число разрядов (И);
- абсолютная погрешность (S); ~ время установления входного тока t,; - потребляемая мощность (i>); - совместимость с МП и ТТЛ уроюями (S); - температурный диапазон AT. Определив исходные критерии оптималь
ности, можно записать выражения функции цели для АЦП и ЦАП соответственно i виде
F_N-fe-6N'S'bT 1 Зп'Р Г"'
1 S-t,-n-P'
Необходимо, однако, привести значения критериев оптимальности к одной безразмерной величине, так как частные критерии оптимальности измеряются в различных системах единиц.
Запись функции цели в виде полинома дает возможность найти оптимальное решение путем нахождения максимума функции.
При решении задачи многокритериальной оптимизация векторный критерий оптимальности с помощью' оператора
преобразуется в эквивалентной ему по важности вектор
В общем случае результаты сравнения векторных критериев оятамалъноетя-.яо шжиотш остаются неизменными при любом монотои-ном допустимом преобразовании вектора Q, т.е. если оператор Ч* представляет''сдовокуп-иость Wi монотонно возрастающих функции.
Применим тажое преобразование мяя нормализации частных критериев олтшмаяьиосвд.
Используем в качестве функции преебцш©-вання. WД^.) положительное яшметше преобразование;
Выберем значения шиффюшршто® CJ, я df, следующим 'образом;
230
где Q* = Q(x') = min Q, (x),
a'=a(*;)=niax£(*). 4 ' xeg
Тогда
В этом случае частные критерии оптимальности Qi (дг) при помощи нормализации оказываются приведенными к безразмерному виду, общему началу отсчета и единому интервалу изменения [0,1]. При этом каждую компоненту *¥, (Qi)- Qi (х) нормализованного вектора Т (2) можно интерпретировать как оценку потери оптимальности по i-му частному критерию и Q, (JC) = 0 в точке х'. Тогда промежуточное значение 0 < Q, (х) < 1 будет характеризовать степень удаления точки Q(x) от минимального значения Q' /-го частного критерия оптимальности. По условию векторные критерии не удовлетворяют критерию доминирования и являются противоречивыми, т.е.
е* <е>я /бг.и Q) <е;Для у6г2. При этом выбор одного из векторных кри
териев зависит от лица, принимающего решение. Исходя из функциональных возможностей и назначения микроконтроллера введем предпочтение критериев по убывающему принципу:
-для АЦП 1. Совместимость с МП и ТТЛ уровнями
Щ. 2. Частота преобразования fc. 3. Потребляемая мощность (Р). 4. Напряжение питания (U). 5 Число разрядов (N); 6. Абсолютная погрешность (5) . 7. Диапазон входных напряжений Д£/ .
-для ПАП 1. Совместимость с МП и ТТЛ уровнями
2. Время установления входного тока ti. 3. Потребляемая мощность (Р). 4. Напряжение питания U. 5. Число разрядов (N). 6. Абсолютная погрешность (<5).
Далее, зная, что частные критерии оптимальности - количественны, соизмеримы по важности (т.е. каждому из них можно поста
вить в соответствие некоторое число ai, которое численно характеризует его относительную важность по отношению к другим), и однородны, для векторной оптимизации, можно применить метод взвешенных сумм.
III. 1.4. Микроконтроллеры
Архитектура микроконтроллеров семейства AVR и megaAVR. Микроконтроллеры являются весьма универсальным средством, могут применяться и применяются для решения самых разнородных задач. Их универсальность определяется особенностями микропроцессорной организации обработки данных, рассмотренными в предыдущей главе. Функциональные возможности многих микроконтроллеров, в том числе и их аппаратных средств, ориентированы на реализацию алгоритмов управления. Весьма существенно то, что микроконтроллеры относятся к числу массовых, недорогих и доступных интегральных схем, номенклатура микроконтроллеров постоянно расширяется.
Среди выпускаемых в настоящее время микроконтроллеров выделяются микроконтроллеры семейства AVR фирмы Atmel. Эти микроконтроллеры обладают низким уровнем потребления, невысокой стоимостью при весьма значительных функциональных возможностях, высоким быстродействием и возможностью многократной перезаписи программ. Хотя и аналогичные по характеристикам микроконтроллеры выпускаются многими фирмами, по общему комплексу свойств семейство AVR одно из наиболее эффективных в классе недорогих 8-разрядных микроконтроллеров. Основная область применения таких микроконтроллеров в системах автоматизации - реализация в реальном масштабе времени алгоритмов управления, не требующих сложных вычислительных процедур и временем реакции от единиц миллисекунд и более.
Естественно, что микроконтроллеры AVR не являются универсальным средством "на все случаи". При определенных требованиях может быть необходимым применение значительно более дорогих 16- или 32-разрядных микроконтроллеров, процессоров цифровой обработки сигналов, программируемых логических интегральных схем и т.п. Тем не менее, существует большое число разнообразных задач, при решении которых недорогие и простые в применении 8-разрядные микроконтроллеры вне конкуренции.
231 Очевидно, что для построения системы ав
томатического управления одного микроконтроллера недостаточно. Допустимый диапазон изменения входных и выходных сигналов, особенности интерфейсов ввода-вывода микроконтроллера, как правило, требуют различных дополнительных средств управления, устройств сопряжения и индикации, с помощью которых можно обеспечить управление различными объектами (электроприводы постоянного и переменного токов, системы стабилизации температуры, системы контроля параметров и т.п.). Состав и характеристики этих дополнительных средств определяются свойствами конкретных объектов управления и используемыми алгоритмами работы. Однако поскольку характеристики контроллеров семейства AVR делают их пригодными для построения систем управления объектами весьма широкой номенклатуры, рассмотрим далее построение микропроцессорных систем управления на примере микроконтроллеров данного семейства. Знание особенностей применения микроконтроллера семейства AVR позволяет достаточно легко перейти к изучению вопросов применения любого другого микроконтроллера этого класса.
Микроконтроллеры семейства AVR фирмы Atmel с усовершенствованной RISC-архитектурой обладают эффективными программно-аппаратными ресурсами для решения различных задач. Семейство микроконтроллеров AVR содержит и простые модели с минимумом необходимых ресурсов, и весьма сложные модели megaAVR с существенно увеличенным объемом памяти, количеством портов ввода-вывода и других средств. Высокая эффективность микроконтроллеров AVR обеспе
чивается развитой системой команд, выполняющихся, как правило, за один рабочий такт, аппаратной реализацией многих стандартных функций (таймеры, модуляторы ШИМ, параллельные и последовательные порты ввода-вывода, компаратор, АЦП и др.) и возможностью внутрисистемного программирования, т.е. записи программ и данных в память микроконтроллера непосредственно в схеме работающего устройства.
Общие архитектурные особенности и программная совместимость микроконтроллеров AVR позволяют использовать одни и те же алгоритмы и рабочие программы на разных моделях. Единственным ограничением их применимости может- служить только отсутствие необходимых да я исполнения программ аппаратных средств в. более простых моделях микроконтроллеров. Микроконтроллеры
megaAVR отличаются от классического семейства AYR расширенным набором интерфейсных функций, поддержкой дополнительных команд, увеличенным объемом памяти, сохраняя особенности архитектуры и программную совместимость.
Архитектура и общая организация микроконтроллеров AVR достаточно типична для микропроцессорных средств, обладает необходимой универсальностью для программной реализации различных алгоритмов и в общих чертах аналогична описанной ранее. Важным дополнением являются средства аппаратной реализации стандартных интерфейсных функций и соответствующие алгоритмы и процедуры обеспечения эффективного взаимодействия с ними. Определенные огличия в других деталях архитектуры и организации работы, связанные, как правило, с повышением эффективности используемых средств и спецификой реализуемых алгоритмов, будут описаны ниже.
Существенной общей особенностью всего семейства AVR является использование 32 регистров общего назначения и гарвардской архитектуры с тремя раздельными адресными пространствами: памяти программ (FLASH), оперативной памяти данных (НАМ), программируемой постоянной памяти данных (EEPROM). FLASH и ЕЮРЕОМ шшлшштт энергонезависимыми и, как обычно, сохраняют данные при отсутствии питающих напряжений. RAM - это' стандартная эиергозависи-мая оперативная память. Система команд поддерживает стандартные операции с однобайда-выми данными, возможны определенные операции с двухбайтовыми словами и отдельным» битами. Каждый из 32 восыиираздоршх регистров общего назначения может служите регистром-аккумулятором. Основной формат кодов команд — 2 байта, формат данных'"— 1 байт.
Управление и доступ к дополнительным аппаратным средствам микроконтроллеров производятся с помощью специальных управляющих регистров — регистров ВШДЙ-ВМШДЖ. Эти регистры определяют параметры ш режимы работа устройств мшрошятролиерш, обеспечивают необходимый обмеи данными с ними. Каждое устройств® аппаратной реализации содержит индивидуальный набор регистров ввода-вывода,, жоторые я мшжшшшш основными средствами обеспечения шаимодейет-ввя. Взаимодействие между функциями, реализуемыми программно я ш№8ратн&т преикв©-дитея формированием запросов прервдший.. Система прерываний позволяет ойетужзшааь программные прерывания, маужреяяие преры-
232
вания всех, устройств микроконтроллеров через регистры ввода-вывода и внешние прерывания. Внутренние аппаратные и внешние прерывания фиксируются в таблице векторов прерываний со строго закрепленными адресами.
Общие особенности микроконтроллеров всего семейства AVR позволяют более детальное их изучение проводить для одной из моделей семейства. В дальнейшем работа микроконтроллеров AVR будет рассматриваться на примере модели ATmegal6 со средними программно-аппаратными ресурсами.
Микроконтроллер ATmegal6 (рис. 111.34) со 131 командой в системе команд содержит:
/ J . U - 1 - t U U J
ж управления
Буфер порта А
Ж Регистры данных
1 ¥ ж Регистры
¥~? ж Р*п*стр
управления
- * АЦП Ь >
^2* TWI Т
« Программный
Ж к>
< ^ FLASH ж:
^ Ц * ; Таймеры
RAM ; ^ >
Устройство управления
Ж
Ж
<*г£ Генераторы
Регистры общего £ $
Т Г
ф ^ EEPROM
«
Y - У « Блок прерываний
Регистры данных
131
г л « Регистр
управления
а
USART
Регистр управления
Ж
й. ж Буфер порта о
XTAL1
ХТА12
Рис. Ш.34. Структурная схема микроконтроллера ATmegal6
- 8-разрядное арифметико-логическое устройство (АЛУ);
- память программ (FLASH) объемом 16 Кбайт;
- электрически программируемое ПЗУ (EEPROM) объемом 0,5 Кбайт (также с возможностью внутрисистемного программирования;
- статическое ОЗУ (RAM) объемом 1 Кбайт;
- 32 регистра общего назначения; - 4 двунаправленных параллельных вось
миразрядных порта ввода-вывода; - последовательный синхронный интер
фейс SPI;
- последовательный асинхронный интерфейс USART;
- последовательный интерфейс TWI; - 2 8-разрядных и 1 16-разрядный таймеры
с возможностью реализации модуляторов ШИМ;
- сторожевой таймер с автономным генератором;
- аналоговый компаратор; - 8-канальный 10-разрядный АЦП. Разумеется, приведенная структурная схема
отображает только логическую организацию микроконтроллера и его основные средства программной и аппаратной реализации требуемых функций. Средства программной реализации аналогичны рассмотренным ранее, хотя и имеют определенные особенности. Все остальные устройства, показанные на рис. Ш.34, предназначены для аппаратной реализации различных интерфейсных функций и будут рассмотрены позже.
АЛУ микроконтроллера выполняет стандартный набор операций преобразования данных однобайтового формата. Практически все эти операции выполняются за один такт микроконтроллера. В megaAVR дополнительно содержится умножитель, выполняющий умножение аппаратно с формированием двухбайтового произведения за два такта. Регистр флагов, не показанный на рис. Ш.34, также имеет однобайтовый формат, в микроконтроллере рассматривается, как один из регистров ввода-вывода, и в данной структуре называется SREG.
Количество регистров общего назначения однобайтового формата увеличено до 32, регистры R0 - R31. Существенные особенности этих регистров: каждый регистр может выполнять функции аккумулятора, операции с константами (непосредственная адресация) доступны в регистрах R16 - R31, для регистровой адресации шесть последних регистров общего назначения R26 - R31 могут объединяться в регистровые пары X, Y и Z соответственно.
Так как память разделена на три независимых области - FLASH, RAM и EEPROM (рис. 111.35), каждая из этих областей имеет разное функциональное назначение, обладает самостоятельной системой и средствами адресации, требует применения разных команд доступа.
FLASH - постоянное запоминающее устройство и предназначено для хранения кодов программы, адресация в этой области памяти производится программным счетчиком.
233 Память программ Память данных Память данных
$ 0 0 0
Прикладной со*тор
F L A S H (8 К х 16)
$000 Регистры общего
назначения
$01Е
$000
EEPROM (0, 5 К KB)
$1FF
$ 0 0 0
Прикладной со*тор
F L A S H (8 К х 16)
$020
Р е г и с т р ы в в о д а - в ы в о д а
S05F
$000
EEPROM (0, 5 К KB)
$1FF
$ 0 0 0
Прикладной со*тор
F L A S H (8 К х 16)
$ 0 8 0
R A M 1 К х 8
$ 4 5 F
$000
EEPROM (0, 5 К KB)
$1FF
$ 0 0 0
Прикладной со*тор
F L A S H (8 К х 16)
$ 0 8 0
R A M 1 К х 8
$ 4 5 F Загрузочный сесор
5 1 F F F
$ 0 8 0
R A M 1 К х 8
$ 4 5 F Загрузочный сесор
5 1 F F F
Рис. 111.35. Структура памяти микроконтроллера ATmegal6
Изменение адреса FLASH в программном счетчике производится в соответствии, со стандартной организацией микропроцессорной системы. Как и обычно, для изменения адреса в программном счетчике можно применять команды управления микроконтроллера. FLASH можно использовать и для хранения констант, чтение этих констант производится специальной командой Ipm с регистровой адресацией через регистр Z.
FLASH объемом 16 Кбайт предназначена для хранения кодов программ и констант, в том числе и при выключенном питающем напряжении, и состоит из 8 К двухбайтовых ячеек с адресами $000 - $1FFF. Запись данных производится специальным программатором в процедуре внутрисистемного программирования, допустимое количество циклов перезаписи не менее 10000. Большинство кодов команд имеют 16-битовый формат, поэтому, как правило, одна ячейка флэш-памяти хранит код 1 команды или две 8-битовых константы.
В микроконтроллерах megaAVR FLASH-память условно разделяется на две секции. Основной объем - прикладная секция, эта область предназначена для хранения кодов прикладных программ. Дополнительная область -загрузочная секция, она обеспечивает поддержку функций самопрограммирования, т.е. записи кодов в прикладную секцию без программатора с помощью специальной процедуры и команды spm. Эта команда производит постраничную очистку и постраничную запись данных в FLASH память. Пока выполняется процедура самопрограммирования, управление передается программе, хранящейся в загрузочной секции. Применение процедуры самопрограммирования позволяет производить модификацию прикладных программ без программатора, но требует создания программы загрузочной секции, которая обеспечивает управление функциями записи в прикладную секцию и может быть записана только программатором.
Адрес границы между прикладной и загрузочной секции определяется управляющими битами Fuse bits (BOOTSZ1, BOOTSZ0). Значения этих битов могут изменяться только программатором.
В памяти данных EEPROM образует отдельное адресное пространство объемом 0,5К однобайтовых ячеек с адресами $000 - $1FF и хранением данных при выключении питающего напряжения. Доступ к данным в EEPROM производится специальной процедурой с особым алгоритмом адресации через соответствующие регистры из файла регистров ввода-вывода. Эта процедура по организации ближе к процедурам ввода-вывода и будет рассмотрена позднее, программно доступно и чтение, и запись данных. Запись данных также может производиться программатором в процедуре внутрисистемного программирования.
Третье адресное пространство является основной рабочей областью памяти данных и включает 32 регистра общего назначения с адресами $000 - $01F, 64 регистра ввода-вывода с адресами $020 - $05F и, собственно, RAM объемом 1К однобайтовых ячеек с адресами $060 - $45F. Такая организация памяти данных позволяет адресовать все регистры как ячейки RAM с известными адресами либо использовать для их адресации соответствующие обозначения или адреса в регистровых файлах. Например, регистр управления АЦП имеет адрес RAM $026, адрес в файле регистров ввода-вывода $06 или символическое имя ADCSRA.
Адресация ячеек памяти в третьем адресном пространстве производится стандартными способами. При прямой адресации адрес содержится в командах STS k, Rr и LDS Rd, к, где к - адрес в диапазоне $000 - $45F, Rr и Rd любые из регистров общего назначения. Косвенная адресация возможна регистрами X, Y, Z. Каждый из этих адресных регистров образован парой регистров общего назначения; X -R27 - R26, Y - R29 - R28, Z - R31-R30. Также возможна стековая адресация с помощью указателя стека (пара регистров SPH-SPL файла регистров ввода-вывода), обычно в качестве вершины стека используется наибольший адрес ОЗУ с символическим именем RAMEND, для данного микроконтроллера -это физический адрес $45F. Данные в командах с непосредственной адресацией являются элементами кодов программы и вместе с ними хранятся в FLASH.
Адресация регистров общего назначения стандартная: в команде указывается номер регистра (например, mov R2, F0 - передать байт
234 данных из R0 в R2) или присвоенное ему в программе символическое имя (например, MOV R2, TEMP, где TEMP - символическое имя регистра). Обращение к файлу регистров ввода-вывода производится командами IN, OUT (например,- OUT SPL, R16 - передать байт данных из регистра R16 в регистр ввода-вывода SPL) с использованием, как правило, символических имен (символические имена регистров ввода-вывода приведены в приложении).
Необходимо обратить внимание не только на отличия в командах адресации регистров, но и на их совершенно разное функциональное назначение. Регистры общего назначения, как и в любой микропроцессорной системе, содержат данные для программного преобразования. Следовательно, команды преобразования данных выполняются только над содержимым регистров общего назначения. Дополнительная особенность микроконтроллера -каждый регистр общего назначения может быть аккумулятором при выполнении любых команд преобразования данных. Система команд и организация программной обработки данных микроконтроллеров семейства AVR достаточно типична для микропроцессорных средств и будет рассмотрена позднее.
С точки зрения программного преобразования регистры ввода-вывода, как правило, доступны только для операций чтения и записи. Байты данных в регистрах ввода-вывода строго связаны с работой соответствующих аппаратных интерфейсных средств. Поэтому обмен данными с этими регистрами производится либо для программного управления функциями и режимами аппаратных интерфейсных средств, либо для приема от них данных, сформированных в результате выполнения заданных функций.
Функции, выполняемые комплексом аппаратных интерфейсных средств, являются важнейшими характеристиками микроконтроллера и в значительной степени определяют эффективность его работы. Особенности применения регистров ввода-вывода для организации взаимодействия с аппаратными интерфейсными средствами будут рассмотрены позже.
С точки зрения логической организации микроконтроллера, каждое из устройств аппаратной реализации интерфейсных функций можно рассматривать как определенный набор регистров ввода-вывода, изменение данных в этих регистрах и является средством координации и управления их работой.
Интерфейсные устройства микроконтрол
лера показаны на структурной схеме (см. рис. 111.34) и включают следующие узлы:
- 4 параллельных восьмиразрядных порта для ввода-вывода данных в параллельном формате;
- последовательный синхронный интерфейс SPI;
- последовательный синхронно-асинхронный интерфейс USART;
- последовательный многоточечный интерфейс TWI;
- 3 таймера-счетчика; - 8-канальный 10-разрядный аналого-
цифровой преобразователь; - аналоговый компаратор; - блок обработки 3 сигналов внешних пре
рываний; - сторожевой таймер. На структурной схеме (см. рис. 111.34) и в
дальнейшем при описании микроконтроллеров будут использованы названия и обозначения, используемые фирмой Atmel.
Внешние выводы микроконтроллера: - VCC и GND (общий) - источник питания
цифровых элементов; - AVCC, AGND (общий аналоговый),
AREF - питание и опорное напряжение АЦП, его мультиплексора и аналогового компаратора;
- RESET - сигнал внешнего сброса (низкий уровень длительностью более 1,5 мкс), при включении питания сброс микроконтроллера производится автоматически;
- XTAL1 и XTAL2 - соответственно вход и выход тактового генератора (для подключения частотозадающего кварцевого резонатора и общей синхронизации с другими устройствами), аналогичные электроды вспомогательного генератора асинхронного режима таймера 2 - выводы РС6 и РС7;
- РАО - РА7, РВО - РВ7, РСО - РС7, PD0 -PD7 - 32 линии ввода-вывода, объединены в 4 восьмиразрядных порта (PORTA, PORTB, PORTC, PORTD).
PORTA, PORTB, PORTC, PORTD могут использоваться как стандартные двунаправленные порты ввода-вывода либо для передачи сигналов других устройств микроконтроллера. Альтернативные функции PORTA: передача аналоговых сигналов через мультиплексор на вход АЦП. Альтернативные функции PORTB: РВО и РВ1 - внешние входы ТО и Т1 таймеров О и 1 соответственно, РВ2 и РВЗ - входы AIN0 и AIN1 аналогового компаратора или вход внешнего прерывания INT2 и выход сигнала OCR0 таймера 0, остальные - сигналы синхронного последовательного интерфейса SPI
235 (РВ4 - SS, PB5 - MOSI, PB6 - MISO, PB7 -SCK). Альтернативные функции PORTC: РСО и PCI - сигналы SCL и SDA последовательного интерфейса TWI, РС6 и РС7 - вход и выход вспомогательного генератора таймера 2. Альтернативные функции PORTD: PD0 и PD1 - сигналы RXD и TXD асинхронного последовательного интерфейса UART соответственно, PD2 и PD3 - сигналы внешних прерываний ШТО и ШТ1, PD4-PD7 - сигналы ОС1В ОС1А, ICP, ОС2 таймеров 1 и 2.
Система команд микроконтроллеров AVR. Система команд микроконтроллеров megaAVR содержит 131 команду и предусматривает выполнение стандартных операций пересылки данных, арифметических и логических операций, команд управления. К дополнительным возможностям, реализованным в системе команд, можно отнести:
- выполнение двух операций одной командой (например, команда LD R24, Х+ производит пересылку байта данных из ОЗУ в регистр R24 с последующим инкрементом адреса в регистре X);
- операции с отдельными битами (например, команда CBR г18, 2 очищает (обращает в 0) бит 1 регистра R18);
- операции с данными не только в файле регистров общего назначения, но и в файле регистров ввода-вывода (например, команда SBI PORTC, РС7 устанавливает (обращает в 1) бит 7 регистра PORTC);
- условные команды управления по состоянию любого бита регистра состояния SREG или других регистров (например, команда BRTC label выполняет переход к метке label, если флаг копирования Т очищен). ' В дальнейшем будут использоваться стан
дартные мнемонические обозначения, как для команд, так и для их параметров. Стандартные мнемонические обозначения (имена) регистров и отдельных битов в них содержатся в специальных файлах, например, ral6def.inc, и включаются с помощью директив компилятора в тексты программ. Регистр состояния (флагов) микроконтроллера SREG (рис. III.36) играет важную роль в рабочих программах, биты этого регистра определяют условия для выполнения команд управления.
I Т : Н S V ъ\с\ Рис. 111.36. Регистр состояния микроконтроллера
SREG
Флаги регистра SREG (начиная ее старшего бита):
I - флаг глобального разрешения прерывания, разрешает (1) или запрещает (0) все аппаратные прерывания.
Т - флаг копирования бита, может быть скопирован из любого бита (или в любой бит) любого регистра общего назначения.
Н - флаг переноса между младшей и старшей тетрадой байта данных.
S - флаг знака, определяется суммой по mod 2 флагов N ® V.
V - флаг переполнения (дополнения до двух).
N - флаг отрицательного результата (соответствует значению бита 7 результата операции).
Z - флаг нулевого результата операции. С - флаг переноса. При использовании команд с анализом фла
гов регистра SREG необходимо учитывать, что эти флаги формируются не всеми операциями, например, операции пересылки данных флаги не изменяют.
В мнемонических обозначениях команд всегда первым указывается регистр, в который помещается результат операции: любой регистр файла регистров общего назначения, файла регистров ввода-вывода,, ячейка ОЗУ. Ограничения на параметры и операнды команд приведены в примечании. В' описании команд приняты следующие обозначения:
RD - регистр, в который помещается результат операции (любом регистр общего назначения).
RR - регистр, из которого поступает байт данных для операции (любой регистр общего назначения).
К - константа (байт данных), число в десятичном формате от 0 до 255, в шестиадцатв-ричном формате могут использоваться два варианта обозначения: 0x00 - faff или $©§ - .Щ, в двоичном формате — следующее обозначение: оьоооооооо - в ы ш и н
К - константа адрес (два байта в пределах, каждого адресного пространства),, -также может указываться в десятичном, шеетиэддзтс-ричном или двоичном формат
X, Y, Z — регистры косвенной адресации (в файле регистров общего назначения регистр Ж - В27,, ШМ; регистр Y - Ш% B2S; регистр Z -Ю§, R31).
Р — регистр файла регистров вводэ-еыводз, В — бит от О1 до 7 в любом регистре {старший
бит - 7, мяадишй бит - 0), PC — программный счетчик, STACK -стек. РМ - измять программ (FLASH).
236 Команды сгруппированы по функциональ
ному назначению и приведены в таблицах. Каждая строка таблицы - одна команда, первый элемент в строке - мнемоническая запись команды, второй - содержит краткое описание
команды, третий элемент - отображает формируемые флаги (если флаги не указаны, команда их не изменяет), последний элемент -указывает на особенности выполнения команды.
Таблица III.4 Арифметические и логические команды
Команда Описание Флаги Примечание add Rd, Rr Сложение, Rd <— Rd+Rr HVNCZ
asrRd Арифметический сдвиг вправо, старший бит Rd(7) не изменяется, остальные биты Rd сдвигаются вправо, флаг С«— Rd(0)
VNCZ
lslRd Логический сдвиг влево, все биты
Rd смещаются влево, младший бит Rd(0 )<-0^a rC— Rd(7
VNCZ
IsrRd Логический сдвиг вправо, все биты Rd смещаются вправо, старший бит Rd(7) <- 0, флаг С<- Rd(0)
VNCZ
rolRd Циклический сдвиг влево с переносом, все биты Rd смещаются влево, младший бит Rd(0) <— С, флаг С *— Rd(7)
VNCZ
rorRd Циклический сдвиг вправо с переносом, все биты Rd смещаются вправо, старший бит Rd(7) <— С, флаг С «- Rd(0)
VNCZ
tstRd Тест на ноль или минус, Rd не изменяется, флаги Z и N определяются содержимым Rd, V «—О
SVNZ
cp Rd, Rr Сравнение, содержимое регистров не изменяется, флаги формируются в соответствии с результатом вычитания Rd-Rr
HVNCZ
cpc Rd, Rr Сравнение с учетом переноса, содержимое регистров не изменяется, флаги формируются в соответствии с результатом вычитания Rd - Rr - С
HVNCZ
cpi Rd, К Сравнение с константой, содержимое регистров не изменяется, флаги формируются в соответствии с результатом вычитания Rd - К
HVNCZ d=(16-31)
mul Rd, Rr Умножение чисел без знака Rl:R0<-Rd*Rr CZ
muls Rd, Rr Умножение чисел со знаком Rl:R0<-Rd*Rr CZ
mulsu Rd, Rr
Умножение числа со знаком на число без знака (Rr - без знака) Rl:R0«-Rd*Rr
CZ
fmul Rd, Rr Умножение дробных чисел без знака Rl :R0 <- Rd*Rr*2 CZ d,r=(16-23)
fmuls Rd, Rr Умножение дробных чисел со знаком Rl :R0 <- Rd*Rr*2 CZ d,r=(16-23)
fmulsu Rd, Rr Умножение дробных чисел со знаком и без знака (Rr - без знака) Rl:R0*-Rd*Rr*2
CZ d,r=(16-23)
Арифметические и логические команды реализуют стандартный набор операций с однобайтовыми данными микроконтроллера с RISC-архитектурой.
Примеры: - команда ADD R3, R16 выполняет сложе
ние содержимого регистров R3 и R16, и раз
мещает результат в R3, содержимое регистра R16 не изменится, результат сложения определит значения флагов Н, V, N, С, Z;
- команда SUBI R21, $F0 выполняет вычитание из содержимого регистра R21 числа 240 (в шестнадцатеричном формате $F0), полученная разность будет записана в R21, результат
237 вычитания определит значения флагов Н, V, N, С, Z (в примечании указано ограничение на используемые в этой команде регистры общего назначения R16-R31);
- команда AND R3, R4 выполняет поразрядную логическую операцию И (конъюнкцию) содержимого регистров R3 и R4, результат будет записан в R3, содержимое R4 не изменится, по результатам операции формируются только флаги V, N, Z;
- команда ASR R0 выполняет деление на 2 числа со знаком в регистре R0, т.е. выполнится сдвиг вправо на один разряд всех битов регистра R0, кроме старшего знакового бита 7, младший бит 0 будет перемещен во флаг С, остальные флаги V, N, Z определяются результатом деления.
При подготовке программ необходимо учитывать ограничения, указанные в примечаниях. Например, операции с константами допустимы не для всех регистров общего назначения. Во всех остальных случаях так же, как и в
дальнейшем, регистры Rd и Rr - любые из регистров общего назначения.
Как и обычно, флаги регистра состояния SREG определяются результатом выполнения текущей операции. Если какой-либо флаг для команды не указан, это означает, что флаг данной операцией не изменяется. Команды сравнения не изменяют данные в регистрах, но, формируя соответствующие флаги, позволяют использовать команды управления по состоянию этих флагов.
Команды умножения формируют двухбайтовый результат умножения однобайтовых чисел и помещают его в регистры R1:R0. В зависимости от модификации команды сомножители могут быть числами без знака (все 8 бит значащие), числами со знаком (старший бит - знак числа). Если хотя бы один сомножитель число со знаком, то произведение тоже число со знаком, т.е. старший бит - знак, остальные 15 бит - значащие. В командах умножения дробных чисел (FMTJL) результат умножения сдвигается на один разряд влево.
Таблица Ш.5 Команды пересылки данных
Команда Описание Флаги Примечание
mov Rd, Rr Пересылка данных между регистрами, Rd <— Rr Нет
movw Rd, Rr
Пересылка данных между парами регистров, Rd:R(d-l) <- Rr:R(r-l) Нет
ldi Rd, К Загрузка константы в регистр, Rd Нет d=(16-31)
Ids Rd, k Пересылка данных в Rd из ОЗУ (адрес k), Rd *- ОЗУ(к) Нет
sts k, Rr Пересылка данных из Rr в ОЗУ (адрес к), ОЗУ(к) *- Rr Нет
in Rd, P
Пересылка данных из регистра ввода-вывода Р в регистр Rd,
Rd+-P Нет
out P, Rr Пересылка данных из регистра Rr в регистр ввода-вывода Р, Р <— Rr Нет
push Rr Пересылка данных из регистра Rr в стек, STACK <- Rr Нет
pop Rd Пересылка данных в регистр Rd из стека, Rd *- STACK Нет
Команды пересылки косвенной адресации с использованием регистров X, Y, Z
Id Rd,X Пересылка данных в регистр Rd из ОЗУ с адресом, указанным регистром X, Rd <- ОЗУ(Х)
Нет
Id Rd,-X
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным регистром X, и предшествующим декрементом X, Rd <- ОЗУ(Х-1), Х * - Х - 1
Нет
Id Rd, X+
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным регистром X, и последующим инкрементом X, Rd<-03y(X) , Х<-Х+1
Нет
st X, Rr Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром X, ОЗУ(Х) *- Rr
Нет
238 Продолжение табл. Ш.5
Команда Описание Флаги Примечание
st -X,Rr
Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром X, и предшествующим декрементом X, ОЗУ(Х-1) <- Rr,
Х « - Х - 1
Нет
st Х+, Rr
Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром X, и последующим инкрементом X, 03y(X)<-Rr, Х<-Х+1
Нет
Id Rd, Y Пересылка данных в регистр Rd из ОЗУ с адресом, указанным регистром Y, Rd <- ОЗУ(У)
Нет
Id Rd,-Y
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным регистром Y, и предшествующим декрементом Y, Rd <- 03Y(Y-1), Y <- Y-1
Нет
Id Rd, Y+
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным регистром Y, и последующим инкремен
т о м Y, Rd <- ОЗУ(У), Y «- Y+1
Нет
ldd Rd, Y+k Пересылка данных в регистр Rd из ОЗУ с адресом, указанным регистром Y со смещением k, Rd <— ОЗУ(У+к)
Нет
st Y, Rr Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром Y, 03Y(Y) <- Rr
Нет
st -Y, Rr
Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром Y, и предшествующим декрементом Y, 03Y(Y-1) <- Rr, Y <-Y-l
Нет
st Y+, Rr
Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром Y, и последующим инкрементом Y, ОЗУ(У) <- Rr, Y <- Y+1
Нет
std Y+k, Rr
Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром Y со смещением к,
03V(Y+k) <- Rr
Нет к=(0 - 63)
Id Rd,Z Пересылка данных'в регистр Rd из ОЗУ с адресом, указанным регистром Z, Rd +- ОЗУ(У)
Нет
Id Rd,-Z i
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным регистром Z, и предшествующим декрементом Z Rd <- 03Y(Z-1), Z<-Z-l
Нет
Id Rd,Z+
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным регистром Z, и последующим инкрементом Z, Rd <- 03Y(Z), Z — Z+1
Нет
ldd Rd, Z+k
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным регистром Z со смещением к, Rd *- ОЗУ (Z+k)
Нет к=(0 - 63)
1 Пересылка данных из регистра Rr в st Z, Rr ОЗУ с адресом, указанным регист-
| POMZ, 03Y(Z)<-Rr Нет
st -Z, Rr
Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром Z, и предшествующим декрементом Z, ОЗУ(г-1) <- Rr, Z < -
Z-l
Нет
239
Окончание табл. Ш.5
Команда Описание Флаги Примечание
st Z+, Rr
Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром Z, и последующим инкрементом Z, 03y(Z) *- Rr, Z «- Z+1
Нет
std Z+k, Rr
Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром Z со смещением k, 03y(Z+k) <-Rr
Нет к=(0 - 63)
1pm Пересылка данных в регистр R0 из FLASH по адресу, указанному регистром Z, R0<-PM(Z)
Нет
Ipm Rd, Z Пересылка данных в регистр Rd из FLASH по адресу, указанному регистром Z, Rd<-PM(Z)
Нет
1pm Rd, Z+
Пересылка данных в регистр Rd из FLASH по адресу, указанному регистром Z, и последующим инкрементом Z, Rd«-PM(Z)
Нет
spm Специальная команда записи в FLASH для загрузочной секции
Команды пересылки данных также реализуют стандартный набор операций:
- пересылка байта данных между регистрами общего назначения (mov);
- пересылка байта данных между регистром общего назначения и регистром ввода-вывода (in, out);
- пересылка байта данных (с прямой или косвенной адресацией) между регистром общего назначения и ОЗУ (Id, st) или стеком (pop, push).
Команда загрузки константы в регистр (Id i) допустима только для регистров R16 - R31. Любые команды пересылки данных флаги не формируют, формирование флагов по содержимому байтов данных при необходимости можно выполнить командами сравнения.
В команде двухбайтовой пересылки данных (movw) в качестве регистровой пары приемника и источника данных должны указываться регистры с нечетными порядковыми номерами (Rl, R3, . . . R31), второй байт для пересылки всегда находится в регистре с номером на единицу меньше. Например, movw R5, R17 производит передачу двух байт из регистровой пары R17-R16 в R5-R4.
В мнемонических обозначениях команд можно использовать физические адреса регистров или, что обычно более удобно и наглядно, стандартные символьные имена, описанные в файле ml6def.inc. Например, команды out $08, R16 и out ACSR, R16 имеют один и тот же смысл: пересылка содержимого регистра общего назначения R16 в регистр управления АЦП. Каждому регистру ввода-вывода с Диапазоном адресов S00 - $3f присваивается
определенное символическое имя в файле ml6def.inc.
Необходимо помнить, что управление всеми аппаратными средствами микроконтроллера производится пересылкой байтов управления, сформированных программно в регистрах общего назначения, в соответствующие регистры файла регистров ввода-вывода командой out. Анализ текущего состояния аппаратных средств можно производить чтением содержимого регистров ввода-вывода командой in. Как указывалось ранее, вектора прерываний для координации работы аппаратных средств должны обеспечивать программное управление параметрами и режимами их работы. Необходимый для выполнения этих функций обмен данными производится командами in, out.
Пересылка данных между регистрами общего назначения и EEPROM данных производится через соответствующие регистры ввода-вывода специальной процедурой. Команда Ipm позволяет загружать в регистр R0 константы, которые хранятся в памяти программ (FLASH). Адрес FLASH должен указываться в регистре Z.
Каждая ячейка FLASH хранит два байта, поэтому младший бит регистра Z (бит 0) определяет байт для пересылки в регистр R0 (0 -младший байт, 1 - старший байт). Адрес FLASH находится в регистре Z, начиная с бита 1. То есть бит 1 соответствует младшему биту адреса FLASH, что необходимо учитывать при записи адреса в регистр Z. Адрес FLASH для регистра Z можно указать выражением Z = (адрес FLASH)*2, а бит 0 регистра Z формировать дополнительно в зависимости от того, какой байт двухбайтовой ячейки
240 FLASH пересылается в регистр R0. Модификации команды 1pm позволяют загружать данные в любой регистр общего назначения, также используя регистр Z для адресации в FLASH.
Команда spm предназначена для выполнения специальных функций из загрузочной секции, связанных с записью данных в прикладную секцию, и не может применяться в других компонентах программ микроконтроллера.
Таблица Ш.6 Команды управления
Команда Описание Флаги Примечание jmpk Безусловный переход PC <— k Нет
rjmpk Безусловный переход (изменение PC нак), РС*-РС+1+к Нет -2048 < к <
2048
ijmp Безусловный переход с адресацией noZ, P C * - Z Нет
call k Вызов подпрограммы (изменение PC на к), STACK*- PC, PC*- к Нет
rcall k Вызов подпрограммы (изменение PC на к), STACK*- PC, РС<-РС+1+к
Нет -2048 < к < 2048
icall Вызов подпрограммы с адресацией по Z, STACK*- PC, PC*-Z Нет
ret Возврат из подпрограммы, PC <- STACK Нет
reti Возврат из прерывания, PC *- STACK, I = 1 I
brbs b, k Условный переход (изменение PC на к), если бит b в SREG установлен, PC «- РС+1+к, если SREG(b)=l
Нет -64 < к < 63
brbc b,k Условный переход (изменение PC на
к), если бит b SREG очищен, PC <— РС+1+к, если SREG(b)=0
Нет -64 < к < 63
breq k
Условный переход (изменение PC на к), если равно, PC «— РС+1+к, если флаг Z=l
Нет -64 < к < 63
brne k Переход (изменение PC на к), если не
равно, РС*-РС+1+к, если флаг Z=0
Нет -64 < к S 63
brcck (brio k)
Условный переход на к по флагу C=0,PC —РС+1+к, если флаг С=0
Нет -64 < к < 63
brmi k N=1 Условный переход на к по флагу N Нет -64 < к < 63
brplk N=0 Условный переход на к по
флагу N Нет -64 < к < 63
brvsk V=l Условный переход на к по флагу V Нет -64< к < 63
brvc k V=0 Условный переход на к по
флагу V Нет -64< к < 63
brgek S=l Условный переход на к по флагу S Нет -64</fc<63 brltk S=0
Условный переход на к по флагу S Нет -64</fc<63
brhsk н=1 Условный переход на к по флагу Н Нет - 6 4 < £ < 6 3
brhc k H=0 Условный переход на к по
флагу Н Нет - 6 4 < £ < 6 3
brts k T=l Условный переход на к по флагу Т Нет -64 < к < 63
brtck T=0 Условный переход на к по
флагу Т Нет -64 < к < 63
brie k 1=1 Условный переход на к по флагу I Нет -64 < к < 63 bridk 1=0
Условный переход на к по флагу I Нет -64 < к < 63
Команды пропуска одни операции в программе, если условие выполняется
sbrs Rr, b Пропустить, если бит b в регистре Rr установлен, PC *— РС+2(3), если Rr(b) = 1
Нет
sbrc Rr, b Пропустить, если бит b в регистре Rr очищен, PC *- РС+2(3), если Rr(b) = 0
Нет
sbis P, b
Пропустить, если бит b в регистре ввода-вывода Р установлен, PC *— РС+2(3), если Р(Ь) = 1
Нет Р =.(0-3.1)
cpse Rd, Rr Пропустить, если Rd = Rr, PC <— С+2(3), если Rd = Rr
Нет
241 Команды управления необходимы для про
граммной реализации алгоритмов со сложной и неоднозначной последовательностью действий. Эти команды позволяют обеспечить циклическое повторение отдельных фрагментов программ, ветвление программ с анализом выполнения определенных условий, вызов подпрограмм, в том числе и для обслуживания прерываний, возврат из подпрограмм с корректным продолжением выполнения прерванной программы. Основные действия при исполнении команд управления - изменение состояния программного счетчика (PC), которым производится адресация во флэш-памяти (РМ).
Особенностью большинства команд управления микроконтроллеров AVR является не абсолютная, а относительная адресация передачи управления (изменение текущего содержимого программного счетчика на величину указываемого в команде параметра к). Компиляторы при обработке текстов программ не требуют обязательного определения численного значения этого параметра.
При программировании на ассемблере в командах управления параметр к может быть
заменен меткой. Если в командах условных переходов требуется смещение больше, чем указано в примечании, можно использовать для перехода промежуточную команду jmp.
Пример:
ср RO, R21
breq inter
inter: rjmp fin
fin: nop
; сравнить содержимое регги стров RO, R21
; если равно, перейти к inter (смещение не более 63).
; перейти к fin (смещение в пределах 2048 адресов, если смещение недостаточное применяется команда jmp с абсолютной адресацией.
программа выполняется по равенству ;R0=R21.
Команды "пропустить" (последние пять команд) выполняют условный переход со смещением только на одну команду. В комбинации с командами rjmp, jmp, ijmp позволяют реализовать переход в любую часть программы аналогично приведенному выше примеру.
Команды преобразования битов в регистрах Таблица Ш.7
Команда Описание Флаги Примечание
sbr Rd, К Установить в регистре Rd биты по маске К Нет d = (16-31)
cbr Rd, К Очистить в регистре Rd биты по маске К Нет d = (16-31)
sbi Р, b Установить в регистре ввода-вывода РбитЬ, Р(Ь)=1 Нет Р = (0 -31)
cbi P, b Очистить в регистре ввода-вывода Р бит b, Р(Ь)=0 Нет Р = ( 0 - 31)
bst Rr, b Пересылка бита b из регистра Rr во флагТ, T*-Rr(b) Т
bid Rd, b Пересылка бита b в регистр Rd из флага Т, Rr(b) <— Т Нет
swap Rd Поменять местами старшую и младшую тетрады в регистре Rd Нет
ser Rd Установить все биты регистра Rd, Rd — Sff Нет d = (16-31)
clrRd Очистить все биты регистра Rd, Rd <- $00 VNZ
bset b Установить бит b в регистре SREG, SREG(b) <- 1 SREG(b)
bclrb Очистить бит b в регистре SREG, SREG(b) *- 0 SREG(b)
clc Очистить флаг С, С «— 0 С sez Установить флаг Z, Z <— 1 Z clz Очистить флаг Z, Z <— 0 Z sen Установить флаг N, N <— 1 N cln Очистить флаг N, N <— 0 N sev Установить флаг V, V <— 1 V civ Очистить флаг V, V *— 0 V ses Установить флаг S, S *— 1 S els Очистить флаг S, S <— 0 S seh Установить флаг Н, Н <— 1 Н clh Очистить флаг Н, Н <— 0 Н set Установить флаг Т, Т *— 1 т
242 Окончание табл. Ш.7
Команда Описание Флаги Примечание clt Очистить флаг Т, Т <— 0 Т sei Установить флаг I, I -«— 1 I cli Очистить флаг I, I <— 0 I
Команды преобразования битов позволяют определять значения отдельных битов в регистрах общего назначения (с ограничениями, указанными в примечании), в первых 32 регистрах ввода-вывода (0-31) и в регистре состояния SREG. Флаг глобального разрешения прерывания I управляет всеми аппаратными прерываниями микроконтроллера и может в любой части программы определять разрешение (команда sei) или запрет (команда cli) прерываний. Флаг копирования бита Т обеспечивает передачу любого бита одного регистра в любой бит другого (или того же самого) регистра общего назначения без изменения остальных битов:
bst R12,4 ;пересылка бита 4 регистра R12 во флагТ
bid R16,0 ;пересылка флага Т в бит 0 регистра R16
Команды sbr и cbr по маске К определяют биты в регистре Rd, соответствующие единичным значениям битов константы к, остальные биты регистра не изменяются:
cbr R16,0Ы0100110 ;очистка битов 7, 5, 2, 1 в регистре R16
sbr R17, $0f установка 4 младших битов в регистре R17
Команды sbi и cbi позволяют задавать значения произвольных битов в регистрах ввода-вывода (0-31), например, sbi PORTC, РСО устанавливает бит 0 регистра PORTC.
Эти команды служат для управления специальными режимами микроконтроллера. Команда sleep переводит микроконтроллер в состояние покоя (sleep mode) с пониженным энергопотреблением и ограниченным функ-
Таблица Ш.5 Прочие команды
Команда Описание Флаги Примечание пор Нет операции Нет sleep Переход в режим sleep Нет wdr Сброс сторожевого таймера Нет
ционированием его элементов, если в управляющем регистре ввода-вывода MCUCR этот режим разрешен. Команда wdr осуществляет программный сброс сторожевого таймера и используется в контрольных точках программы, когда работа сторожевого таймера разрешена. ,
Прерывания в megaAVR. Дополнительные аппаратные средства микроконтроллеров, реализующие стандартные интерфейсные функции, позволяют существенно расширить возможности программной обработки данных. Возможность выполнения нескольких функций параллельно с программным преобразованием данных не только повышает скорость работы, но и заметно упрощает алгоритмы и рабочие программы. Следует помнить, что любые средства аппаратной реализации обладают весьма ограниченными пределами изменения алгоритмов и параметров работы, их функции строго специализированы, поэтому
они и должны рассматриваться как вспомогательные средства.
Хотя основные свойства микропроцессорных средств определяются программной реализацией функций, их эффективность может сильно зависеть от набора вспомогательных средств. Наиболее стандартизованы различные интерфейсные функции, кроме того, интерфейсы в системах автоматизации являются важнейшим элементом обеспечения корректного взаимодействия. Именно по этим причинам вспомогательные аппаратные средства микроконтроллеров предназначены в первую очередь для выполнения стандартных интерфейсных функций.
Интерфейсные средства микроконтроллера ATmegal6 достаточно типичны и поддерживают функции ввода-вывода в параллельном и последовательном форматах, обработки аналоговых сигналов, формирования заданных временных интервалов. В данном разделе рассматривается система прерываний и вопросы ее применения для организации взаимодеист-
243 вия с дополнительными аппаратными средствами.
Аппаратные прерывания в микроконтроллере обрабатываются векторами прерываний (21 прерывание по числу аппаратно формируемых запросов) с жестко закрепленными адресами во флэш-памяти в диапазоне от $000 До $028. Эти адреса предназначены для векторов прерываний прикладной секции. Если инициализирована работа программы загрузочной секции (биты IVSEL, IVCE регистра
$000 $002 $004 $006 $008 $00А $00С $00Е $010 $012 $014 $016 $018 $01А $01С $01Е $020 $022 $024 $026
, $028 $02А RESET: $02В S02C $02D
Использовать эту область памяти для хранения кодов других команд нецелесообразно, так как ошибочное формирование флага прерывания может привести к вызову соответствующего вектора с некорректным выполнением процедуры обработки. Векторы прерываний служат для вызова подпрограмм, необходимых для управления функциями встроенных аппаратных средств микроконтроллера.
Вектор RESET с адресом $000 выполняет инициализацию микроконтроллера при начальном сбросе. Обработка этого вектора не требует никаких условий, т.е. вектор может быть вызван в произвольный момент времени независимо от состояния и режима работы микроконтроллера. RESET загружает в программный счетчик начальный адрес $000 и вызывается в следующих случаях: при включении питания микроконтроллера или временном снижении напряжения питания в процессе работы ниже критической величины, при поступлении на вход микроконтроллера RESET сигнала низкого уровня длительностью более 15 мкс, при формировании сигнала RESET
ввода-вывода GICR), векторы прерываний вызываются из соответствующей части адресного пространства (смещение адреса $1С00). Уровни приоритетов векторов прерываний определяются их адресами, наименьшему адресу $000 соответствует самый высокий приоритет. Стандартный текст программы для прикладной секции со ссылками на метки подпрограмм обработки прерываний должен быть следующим:
сторожевым таймером. Фрагмент программы'с меткой "RESET:" показывает пример инициализации указателя стека (регистры ввода-вывода SPL, SPH).
В регистре ввода-вывода микроконтроллера MCUCSR биты WDRF (бит 3), BORF (бит 2), EXTRF (бит 1), PORF (бит 0) позволяют определить причину начального сброса. Например, EXTRF устанавливается при начальном сбросе внешним сигналом, PORF устанавливается при сбросе по включению питания. Если эти биты обнулить программной записью содержимого этого регистра, после следующего начального сброса можно определить источник формирования этого сигнала. Сброс сторожевым таймером при чтении определится кодом 1000, сброс внешним сигналом - кодом 0010.
Процедура вызова всех остальных векторов прерывания отличается от RESET. Во-первых, должен быть установлен флаг общего разрешения прерываний 1 в регистре SREG и бит разрешения данного прерывания в соответствующем регистре. Во-вторых, установка опре-
jmp RESET jmp EXTJNT0 jmp EXTJNT1 jmp TIM2_COMP jmpTIM2_OVF jmp TIM1_CAPT jmp TIMl_COMPA jmpTIMl_COMPB jmp TIMl_OVF jmp TIM0_OVF jmp SPI_STC jmp USARTJRXC jmp USART_UDRE jmp USART_TXC jmp ADC jmp EE_RDY jmp ANA_COMP jmp TWSI jmp EXTJNT2 jmp TIM0_COMP jmp SPM_RDY ; Store ldi rl6,high(RAMEND) out SPH,rl6 ldi rl6,low(RAMEND) outSPL,rl6
Reset Handler IRQ0 Handler IRQ1 Handler Timer2 Compare Handler Timer2 Overflow Handler Timerl Capture Handler Timerl CompareA Handler Timerl CompareB Handler Timerl Overflow Handler TimerO Overflow Handler SPI Transfer Complete Handler USART RX Complete Handler UDR Empty Handler
USART TX Complete Handler ADC Conversion Complete Handler EEPROM Ready Handler Analog Comparator Handler Two-wire Serial Interface Handler IRQ2 Handler TimerO Compare Handler
Program Memory Ready Handler; ; Main program start ; Set Stack Pointer to top of RAM
244
деленного флага прерывания вызывает соответствующий вектор прерывания (только при выполнении первого условия). При одновременном формировании нескольких флагов прерываний очередность обработки определяется уровнями приоритетов (чем меньше адрес вектора, тем выше уровень приоритета). В-третьих, при загрузке адреса прерывания в программный счетчик автоматически очищаются флаг данного прерывания и флаг I, запрещая другие прерывания, а текущее состояние программного счетчика загружается в стек. Подпрограмма обработки прерывания должна завершаться командой reti, которая восстанавливает разрешение прерываний (флаг I) и состояние программного счетчика (загружается из стека). Возможен программный сброс флага прерывания (без вызова вектора прерывания) записью единицы в соответствующий бит регистра флагов прерываний, а также программное разрешение прерываний (флаг I) в любой подпрограмме обработки прерываний.
Регистр состояния микроконтроллера SREG, как и остальные регистры управления, находится в файле регистров ввода-вывода. Кроме флага общего разрешения прерываний, регистр SREG содержит флаги - стандартные признаки результатов преобразования данных, необходимые для выполнения ряда команд в рабочих программах микроконтроллера. Содержание регистра может измениться в процессах обработки прерываний, необходимо в
Остальные биты этого регистра определяют параметры режима sleep, в этом режиме приостанавливается работа «основных устройств микроконтроллера для снижения энергопотребления и уровня помех
Бит SE - бит разрешения режима sleep; если бит установлен, микроконтроллер программно переводится в режим sleep командой "sleep".
Биты SM2, SM1 и SM0 определяют вид режима sleep:
- 00 - режим idle, - 01 - не используется, - 10 - режим power-down, - 11 - режим power save. Младшие 4 бита определяют параметры
сигналов внешних прерываний для формирования флагов INTF1, E4TF0. Биты попарно
подпрограммах обработки прерываний предусмотреть сохранение содержимого этого регистра в стеке с восстановлением перед выходом из подпрограммы.
Регистр - указатель стека имеет размер 2 байта и состоит из двух регистров SPL, SPH файла регистров ввода-вывода. При инициализации необходимо всегда определять адрес вершины стека. Рекомендуется задавать максимальный физический адрес ОЗУ с символическим именем RAMEND, тогда объем стека будет определяться физическим объемом ОЗУ. Стек всегда используется при вызове векторов прерываний для сохранения текущего состояния программного счетчика.
Сигналы внешних прерываний INTO (альтернативная функция линии PD2), INT1 (альтернативная функция линии PD3) и INT2 (альтернативная функция линии РВ2) обрабатываются с помощью регистров GIFR, GICR, MCUCR, MCUCSR файла регистров ввода-вывода. В регистре GICR биты INT1 (бит 7), INTO (бит 6) и INT2 (бит 5) определяют разрешение внешних прерываний, а в регистре GIFR флаги INTF1 (бит 7), INTF0 (бит 6) и INTF2 (бит 5) обеспечивают вызов векторов внешних прерываний по процедурам, аналогичным обработке других векторов прерываний.
Параметры сигналов, формирующие флаги внешних прерываний, определяются битами ISC01, ISC00 и ISC11, ISC10 регистра MCUCR (рис. 111.37)..
управляют обработкой каждого из этих сигналов, ISCX1, ISCX0 (X - это 0 или 1) и могут принимать следующие значения:
- 00 - низкий уровень сигнала внешнего прерывания устанавливает флаг,
- 01 - любое изменение внешнего сигнала устанавливает флаг,
- 10 - падающий фронт сигнала внешнего прерывания устанавливает флаг,
- 11 - нарастающий фронт сигнала внешнего прерывания устанавливает флаг.
Управление параметрами сигнала INT2 для формирования флага INTF2 производится битом ISC2 (бит 6) регистра MCUCSR, при нулевом значении бита активен падающий фронт, при единичном - нарастающий фронт сигнала.
SM2 SE SM1 SM0 ISC11 ISC10 ISC01 ISC00
Рис. Ш.37 Символические имена битов управления в регистре MCUCR
245 Необходимо учитывать, что при конфигу
рировании РВ2, PD2 или PD3 выходом, программное изменение этих сигналов также формирует соответствующие флаги и может приводить к вызову векторов прерываний.
Например, для обработки сигнала внешнего прерывания INT2 необходимо определить условия для формирования флага прерывания INTF2 битом ISC2, разрешить вызов этого прерывания битом INT2 (бит 5), разрешить общий вызов прерываний битом I. Для того, чтобы не производилось изменение других управляющих битов в регистрах ввода-вывода, целесообразно считать из регистра текущие значения, изменить требуемые биты и затем записать в регистр сформированные значения. Фрагмент программы для активного падающего фронта сигнала INT2 может быть следующим:
in rl6, MCUCSK
cbr г16, ОЬОЮООООО
out MCUCSR, г16
;считать значения битов управления
; очистить по маске бит 6
; передать новый байт управления
in rl6, GICR ; считать значения битов управления
sbr г16, ОЬООЮОООО ; установить по маске бит 5
out GICR, rl6 ; передать новый байт управления
sei ; разрешить прерывания (бит I в SREG)
EXT INT2:
reti
; подпрограмма обработки прерывания INT2
При указанной настройке параметров обработки прерываний переключение сигнала ШТ2 (сигнал, поступающий на РВ2) из состояния 1 в состояние 0 формирует запрос прерывания с вызовом подпрограммы по метке "ЕХТ_ШТ2", подпрограмма выполняет какие-либо функции преобразования данных или управления и завершается командой возврата (reti) с восстановлением флага общего разрешения других прерываний (флаг I в регистре SREG).
Сторожевой таймер (Watchdog Timer) можно использовать для контроля корректности работы микроконтроллера. Если сторожевой таймер включен битами управления регистра WDTCR (рис. 111.38), через определенные интервалы времени (задаются программно в интервале от 16 мс до 2 с) формируется сигнал RESET. Корректно работающая программа должна предусматривать периодический сброс сторожевого таймера, предотвращая повторную инициализацию микроконтроллера сигналом RESET. Отсутствие своевременного сброса сторожевого таймера может рассматриваться как некорректное выполнение каких-либо функций и приведет к повторной инициализации, т.е. сторожевой таймер выполняет стандартную процедуру контроля работы по тайм-ауту. Режимы и параметры работы сторожевого таймера определяются программно через регистр управления WDTCR, который доступен для записи и чтения. Его работа тактируется собственным автономным генератором. Это позволяет программно включать или выключать контроль по тайм-ауту, а при включенном контроле выполнять его функции независимо от режимов работы остальных узлов микроконтроллера.
- - - WDTOE WDE WDP2 WDP1 WDP0
-WDTOE -бит разрешения для изменения состояния сторожевого таймера. -WDE - бит включения сторожевого таймера; 1 - таймер включен, 0 - таймер выключен. - WDP2, WDPl, WDP0 - биты управления периодом формирования сигнала RESET сторожевым таймером. 000 - ми
нимальный период (около 16 мс), 111 - максимальный период (около 2 с).
Рис. 111.38. Символические имена битов управления в регистре WDTCR
Изменение состояния сторожевого таймера (включен/выключен, бит WDE) возможно только по следующему алгоритму: биты WDTOE, WDE обязательно и одновременно Должны быть установлены в единицу; затем в Учение 4 тактов микроконтроллера в бит WDE должно быть записано требуемое значение (0 - выключение, 1 - включение). После 4 тактов WDTOE сбрасывается автоматически. Период работы сторожевого таймера зависит
от битов управления и напряжения питания, более подробную информацию можно найти в руководствах фирмы Atmel.
Основное назначение рассматриваемой системы прерываний - организация взаимодействия всех средств микроконтроллера при решении прикладных задач. Все аппаратные средства микроконтроллера (процессор, таймеры, интерфейсы, АЦП и т.п.) могут работать и работают параллельно и независимо друг от дру-
246
га. В то же время каждое из устройств обеспечивает выполнение каких-либо ограниченных функций, которые являются только элементами общей прикладной задачи. Эта общая задача на определенных этапах требует обмена данными между устройствами, запуска или останова отдельных процедур, изменения параметров или режимов работы и т.п. Система векторов прерываний позволяет выделить моменты времени, когда завершаются очередные операции и требуется определенная реакция других элементов микроконтроллера для продолжения работы.
Очевидно, что возможность параллельной реализации нескольких функций весьма существенно расширяет возможности микроконтроллера и увеличивает быстродействие. Во всех моделях микроконтроллеров AVR содержатся средства аппаратной, а, следовательно, параллельной реализации разнообразных стандартных задач, которые должны решаться при управлении техническими объектами. Все эти аппаратные средства многофункциональны, в них предусмотрены различные режимы и параметры работы, и они требуют программной настройки через соответствующие регистры ввода-вывода. Многофункциональность позволяет в процессе работы на различных ее этапах управлять параметрами и режимами аппаратных средств. Эта возможность также может использоваться для повышения эффективности применения микроконтроллеров.
Указанные дополнительные преимущества микроконтроллеров требуют эффективного и корректного взаимодействия параллельно работающих аппаратных средств. Необходимость взаимодействия накладывает определенные ограничения на алгоритмы работы, которые необходимо учитывать при подготовке рабочих программ микроконтроллеров. Очевидно, что все основные процедуры организации взаимодействия реализуются программно, должны быть предусмотрены в алгоритмах работы и требуют дополнительных программных ресурсов. Система прерываний является необходимым и важнейшим элементом управления работой аппаратных средств.
Именно процедуры обработки прерываний в микроконтроллерах AVR позволяют выполнять достаточно гибкий, программно-управляемый контроль реализуемых функций. Средства управления работой аппаратных средств в обработке прерываний следующие:
- установленные приоритеты векторов прерываний - при одновременном поступлении нескольких запросов прерываний сначала вы
зывается вектор прерывания с наименьшим адресом;
- программное управление флагом общего разрешения прерывания (флаг I регистра SREG) - в любых программах на произвольных этапах с помощью этого флага можно программно запрещать или разрешать обработку всех прерываний;
- аппаратное управление флагом общего разрешения прерывания - при вызове любого вектора прерывания флаг глобального разрешения I очищается аппаратно и восстанавливается (командой reti) при завершении обработки прерывания (кроме того, подпрограмма обработки любого вектора прерывания также может программно изменять состояние флага I, разрешая обработку и других прерываний);
- вектора прерываний содержат в соответствующих регистрах ввода-вывода индивидуальные флаги разрешения (маскирования) -это позволяет программно разрешать или запрещать вызов каждого из векторов прерываний на любых этапах работы независимо от других векторов;
- флаги вызова векторов прерываний в регистрах ввода-вывода очищаются аппаратно при обращении к подпрограмме обработки прерывания;
- флаги вызова векторов прерываний могут очищаться программно записью единицы в эти биты регистров ввода-вывода - это позволяет при необходимости отменять вызов п/программ обработки прерываний.
Стандартное распределение параллельно реализуемых в микроконтроллере функций для управления техническим объектом может быть следующим (каждый пункт в данном примере - отдельный параллельно реализуемый процесс):
АЦП выполнят преобразование поступающего от датчика аналогового сигнала (время преобразования около 100 мкс, за этот период процессор может выполнить несколько сот команд рабочей программы).
Процессор, выполняя команды основной программы, производит обработку кодов, поступивших ранее от АЦП и других интерфейсов микроконтроллера, и формирует новые значения управляющих сигналов и данных для индикации.
Параллельные порты ввода-вывода обеспечивают вывод сформированных ранее сигналов управления и индикации.
Таймеры формируют сигналы с заданными ранее в программе временными характеристиками и/или в режиме модулятора ШИМ вы-
247
дают сигналы управления исполнительными устройствами.
Интерфейс SPI передает полученные от процессора данные для управления символьным или матричным индикатором.
Интерфейс USART реализует обмен данными с СОМ-портом персонального компьютера для координации работы микроконтроллера с другими устройствами.
Внешние прерывания обеспечивают прием и обработку сигналов цифровых датчиков и сигналов управления, требующих быстрой реакции микроконтроллера (например, сигнал аварийной остановки системы управления и т.п.).
Очевидно, что перечисленные процессы асинхронны относительно друг друга, каждое из устройств реализует заданные функции со своими режимами и временными границами. Основную координирующую роль может выполнять только процессор, обеспечивая необходимый обмен данными между устройствами и управляя их режимами и параметрами через регистры ввода-вывода. Основное требование, которое предъявляется к организации взаимодействия, -бесконфликтный доступ к ресурсам, так как различные средства микроконтроллера могут одновременно выставлять запросы на доступ к одним и тем же ресурсам. Корректное управление должно обеспечиваться даже путем снижения эффективности работы отдельных аппаратных средств. Необходимые координирующие функции должны быть предусмотрены в алгоритме основной рабочей программы и могут быть выполнены благодаря эффективной системе обработки прерываний. Для реализации координирующих функций необходимы определенные, в первую очередь, программные ресурсы микроконтроллера, эти функции обычно достаточно сложны и являются важнейшей частью общего алгоритма работы.
Тактирование, режимы пониженного энергопотребления в megaAVR. Тактирование, необходимое для синхронизации работы всех узлов микроконтроллера, производится общим тактовым генератором микроконтроллера. Очевидно, что скорость выполнения всех операций, включая команды рабочей программы и быстродействие различных интерфейсных узлов, определяется тактовой частотой. Необходимо также учитывать, что повышение тактовой частоты для увеличения быстродействия приводит к росту потребляемой Мощности, а максимальное значение тактовой
частоты зависит от величины напряжения питания. Для оптимизации работы тактового генератора предусмотрено управление его режимами при разных параметрах частотоза-дающих цепей.
Для управления режимами тактового генератора предусмотрены так называемые Fuse bits (CKSL3 - CKSL0). Значения этих 4 управляющих битов должны соответствовать выбранному режиму и могут определяться программатором, с помощью которого производится запись кодов программы микроконтроллера в FLASH-память.
Тактовый генератор может быть внешним, тогда внешние синхросигналы должны поступать на XTAL1 микроконтроллера (XTAL2 не используется), а управляющие биты должны иметь значения 0000. При ненулевых битах управления работает внутренний тактовый генератор с одной из следующих частотозадаю-щих элементов: внутренняя RC-цепь, внешняя RC-цепь (рис. 111.39), внешний кварцевый или пьезокерамический резонатор (рис. Ш.40).
Микроконтроллеры поставляются с битами управления (CKSL3-CKSL0) 0001: внутренняя RC-цепь с номинальной частой 1 МГц при напряжении питания 5 В, внешних элементов не требуется (XTAL1, XTAL2 не используются). Другие значения битов управления при внутренней частотозадающей цепи определяют соответствующие значения
J— OXD
Рис. III.39. Внешняя частотозадающая RC-цепь
CJ
с=з 1 С2
> [
. —
Рис. Ш.40. Частотозадающая цепь с кварцевым резонатором
частот: 0 0 1 0 - 2 МГц, 0011 - 4 МГц, 0 1 0 0 - 8 МГц. В числе регистров ввода-вывода есть регистр OSCCAL, запись ненулевого байта данных в этот регистр позволяет повышать тактовую частоту в ограниченных пределах.
1
248
При значениях битов управления 0101-1000 тактовый генератор работает с внешней RC-цепью (рис. III.3), вывод XTAL2 не используется, емкость конденсатора - не менее 22 пФ и частота зависит от параметров цепи:
JchK 3RC'
В зависимости от выбранного диапазона частот значения битов управления следующие: 0101 для диапазона менее 0,9 МГц, ОНО для частот 0,9-3 МГц, 0111-3-8 МГц, 1000-8-12 МГц.
Общим недостатком как внутренней, так и внешней частотозадающей RC-цепи является относительно низкая точность и недостаточная стабильность тактовой частоты, как правило, она не выше 3-5 %. Требуемую точность можно получить применением кварцевого резонатора в качестве частотозадающего элемента. Погрешности тактовых частот в этом случае не превышают 10"6.
Значения битов управления для кварцевого или пьезокерамического резонатора 1010-1111 в зависимости от требуемого диапазона частот. Схема их подключения показана на рис. Ш.4. Рекомендуемые значения емкостей конденсаторов CI, С2 лежат в диапазоне 12-22 пФ. При низких частотах (менее 0,9 МГц) конденсаторы не подключаются, применение пьезокера-мических резонаторов также ограничено диапазоном низких частот. Для кварцевого резонатора биты управления 1101 соответствуют диапазону до 3 МГц, а 1111 - диапазону свыше 3 МГц.
В контроллере ATmegal6 предусмотрены программируемые режимы снижения потребляемой мощности (sleep mode) с переключением отдельных узлов в состояние покоя (standby). В состоянии standby ток практически не потребляется, но текущие значения данных в регистрах и RAM микроконтроллера сохраняются. При возврате в обычный режим выполнение всех функций продолжается так, как будто остановки не было. Для перевода в состояние standby необходимо прекратить поступление тактовых импульсов, поэтому система тактирования микроконтроллера предусматривает независимое управление тактовыми импульсами для разных групп узлов.
Управление тактированием производится специальной командой микроконтроллера sleep и битами управления регистра ввода-вывода MCUCR. Биты SM2-SM0 определяют группу узлов, для которых запрещается формирование тактовых импульсов, а выполнение
команды sleep при единичном значении бита управления SE переводит микроконтроллер в sleep mode. Возврат микроконтроллера в стандартный режим производится либо запросами прерываний узлов, находящихся в рабочем режиме, либо сигналом сброса reset.
В режиме idle остановлена работа только процессора, все остальные устройства работают, и их внутренние аппаратные прерывания или внешние прерывания переводят микроконтроллер в активный режим немедленно. В этом случае биты управления режимами SM2-SM0 для команды sleep имеют значения 000. Прекращение подачи тактовых сигналов в процессор приводит к остановке работы только программы микроконтроллера, позволяя всем остальным узлам выполнять обычные функции. Это позволяет продолжить работу программы микроконтроллера любым активным запросом прерывания.
Режим ADC noise reduction предназначен для уменьшения уровня помех, создаваемых цифровыми узлами для АЦП. Биты управления этого режима 001, прекращается подача тактовых импульсов на основные узлы за исключением АЦП, интерфейса TWI, узлов обработки сигналов внешних прерываний и сторожевого таймера. При переходе в этот режим автоматически запускается цикл преобразования АЦП, а завершаться этот режим должен по его прерыванию. Другие активные узлы также могут произвести внеочередной возврат в рабочий режим своими запросами прерываний.
В режиме power-down (биты управления 010) тактовый генератор остановлен и, следовательно, не работают все устройства микроконтроллера, тактируемые основным генератором, микроконтроллер переводится в активный режим сигналами внешних прерываний, сторожевым таймером или сигналом RESET. Длительность внешних сигналов для надежного запуска тактового генератора должна превышать требуемую длительность сигнала RESET. В режиме power-save (биты управления 011) в отличие от power-down запуск микроконтроллера дополнительно может производиться прерываниями таймера 2, если в этом таймере задан асинхронный режим работы от вспомогательного генератора.
Более подробно с особенностями режимов остановки можно познакомиться в технической документации фирмы Atmel.
249
Ш.1.5. Дополнительное оборудование микропроцессорных систем
Датчики. Для того чтобы иметь информацию о механических, физических, химических свойствах среды и отдельных объектах, об их ориентации и координации, используются датчики.
Датчик - это преобразователь механических (неэлектрических) величин в электрические сигналы, используемые в системах управления.
Датчики по виду выходного сигнала делятся на непрерывные и цифровые.
В непрерывных датчиках выходной сигнал представляется в виде непрерывно изменяющихся значений U или I (потенциометр), либо в виде непрерывно изменяющихся значений фазы напряжения переменного тока.
В цифровых датчиках выходной сигнал представляется цифровым кодом (кодовые датчики), в виде серии импульсов (импульсные датчики) или в виде релейного сигнала.
Релейные сигналы, получаемые от датчиков положения типа "путевой выключатель" используются в частности для ступенчатого снижения скорости звена, его останова, а также для подтверждения правильности отработки перемещений.,
По принципу идентификации значения выделяемого параметра по выходному сигналу различают датчики с абсолютным и неабсолютным отсчетами. Так, сигнал датчика о перемещении с абсолютным отсчетом однозначно соответствует величине перемещения. У датчика с неабсолютным отсчетом такая однозначность отсутствует.
Основные требования к промышленным датчикам:
- малые габариты и простота конструкции; - высокие надежность и помехоустойчи
вость, включая возможность эксплуатации в условиях электромагнитных помех, в условия колебания напряжения и частоты питания;
- устойчивость к механическим воздействиям (удары, вибрация), к изменению параметров окружающей среды (температура, влажность, давление);
- независимость или развязка входных и выходных цепей;
-простота регулировки и обслуживания; - наличие абсолютного отсчета показаний; - малая стоимость. Одно из основных требований к динамиче
ским характеристикам датчиков - обеспечение необходимой частоты повторения циклов измерения, при этом для повышения помехо
устойчивости измерительной части системы управления целесообразно частоту измерений увеличивать по сравнению с требуемой частотой измерения, задаваемой динамиком привода.
Потенциометрические цифровые датчики практически не создают ограничений на частоту измерений.
В индуктивных датчиках частота измерений ограничена частотой питания датчика, индуктивностью, фазовой характеристикой датчика.
При выборе типа датчика, то есть в первую очередь сравнения между собой датчиков различного типа по информационной способности, используют характеристику
\о )
где А - диапазон измерения датчика, S -разрешающая способность. При прочих равных характеристиках предпочтение должно быть отдано датчикам с большим значением R.
У кодовых датчиков величина R совпадает с разрядностью датчиков. У импульсных датчиков
R = log, т,
где т - число импульсов за 1 оборот датчика. Самые простые датчики положения - по
тенциометры (особенно пленочные) имеют \/ ресурс до 5 млн^ циклов.
К кодовым датчикам относятся датчики фотоэлектрического типа, сельсины, вращающиеся трансформаторы (синусно-косинусные), путевые выключатели, микропереключатели, герконы (магнитно-управляемые контакты).
Датчиками скорости чаще всего являются тахоге нераторы.
Существуют совмещенные конструкции датчиков положения-скорости, датчики-усилители.
Датчики для получения сведений о состоянии внешней среды, ее свойствах и параметрах: датчики касания, индуктивные преобразователи, металлополимерные композиции.
Датчики давления реализуются на базе тензометров, полупроводниковых элементов, чувствительных к изменению давлению. Имеет место группировка таких элементов в линейку или матрицу, позволяющую получить информацию о распределении давления по поверхности изделия.
Датчики проскапъзывания выдают сигнал при движении захваченного предмета относительно губок захвата.
250 Датчики ближней локации - электромаг
нитные, регистрируют изменения электромагнитных параметров при приближении (удалении) объекта.
Фотоэлектрические датчики - источник света и светоприемник (фотодиоды и фототранзисторы).
Датчики ультразвукового типа - включают передатчик и приемник сигналов, с помощью отраженного ультразвукового сигнала обнаруживаются предметы и измеряется расстояние до них. Эти датчики по сравнению с фотоэлектрическими могут обнаруживать прозрачные предметы, показания не зависят от освещенности, на них слабо влияют пыль, пар.
Ультразвуковой датчик может быть изготовлен на основе конденсаторного микрофона.
Исполнительные приводы. В промышленности в качестве исполнительных органов используются приводы. Приводы бывают электрические, гидравлические, пневматические, газовые, комбинированные.
Пневматический привод одной степени подвижности состоит из исполнительного двигателя, распределительного устройства (РУ) и дросселей - регуляторов скорости. В качестве РУ используются 2-х и 3-х позиционные золотники и клапаны. В блок питания входит аппаратура подготовки воздуха и редуктор.
Гидравлический привод состоит из гидроцилиндров, гидроусилителя, датчика положения и предназначен для осуществления поступательных движений исполнительных механизмов, работающих по программе, поступающей на вход привода.
По сравнению с другими типами приводов электроприводы отличает: простота эксплуатации, отсутствие трубопроводов, низкий уровень шума при работе, отсутствие загрязнений. Характерно применение новых типов электродвигателей с печатным цилиндрическим или дисковым ротором, с гладким ротором, с линейным движением.
Наиболее важными характеристиками электродвигателя (ЭДВ) являются механическая характеристика (статическая), т.е. зависимость скорости вращения ЭДВ от момента на валу двигателя, определяющая жесткость привода, а также динамическая характеристика, определяющая быстродействие и качество переходного процесса. Используются электроприводы как дискретного, так и непрерывного действия.
При релейном управлении используются электродвигатели переменного тока.
Изменение скорости вращения ЭДВ постоянного тока осуществляется включением гасящих сопротивлений в цепи якоря двигателя,
а для ЭДВ переменного тока - путем переключения пар полюсов. Чтобы ослабить влияние внешних возмущающих воздействий, в приводах необходимо иметь максимально жесткую характеристику. Однако в случае обеспечения чувствительности к внешним входным воздействиям используется способ управления усилием привода по рассогласованию между фактическим и заданным положением. Схема управления для этого случая показана на рис. Ш.41.
ЦАП Усилитель мощности Двигатель i
1 1 ЦАП Усилитель мощности Двигатель
Микропроцессор
Т АЦП Датчик Редуктор АЦП Датчик Редуктор
Рис. 111.41.Структурная схема управления
Унифицированный электропривод включает электромеханический модуль, блок управления приводом и блок усиления мощности. Электромеханический модуль включает исполнительный двигатель постоянного и переменного тока, механическую передачу от исполнительного двигателя к выходному валу, датчик положения выхода вала и датчик скорости.
В унифицированных электроприводах могут быть использованы различные электродвигатели. Из отечественных чаще используются двигатели:
- обычного исполнения - типа СД (синхронные двигатели), ДМ, СЛ, ДВИ;
- с улучшенными характеристиками: с гладким якорем (ДПГ, МИГ), с полым ротором (ДПР, ДГЦА, ДПЯ), с дисковым ротором (ПЯ).
Из зарубежных можно выделить двигатели: - с полым ротором - «Максилирайтор»
фирмы Портер (США); - с дисковым якорем -СЕМ (Франция); - с гладким якорем «Минерция» фирмы
Яскава электрик (Япония); - высокомоментные двигатели фирмы Лу
кас (США), Фанук (Япония). Устройства индикации. В качестве уст
ройств индикации наиболее часто используются устройства индикации на «жидких кристаллах». Алфавитно-цифровые LCD-модули (ЖКИ-модули) представляют собой недорогое и удобное решение, позволяющее сэкономить время и ресурсы при разработке новых изделий, при этом обеспечивают отображение большого объема информации при хорошей различимости и низком энергопотреблении. Возможность оснащения ЖКИ-модулей задней подсветкой позволяет эксплуатировать их
251
в условиях с пониженной или нулевой освещенностью, а исполнение с расширенным диапазоном температур (-20°С...+70°С) в сложных эксплуатационных условиях, в том числе в переносной, полевой и даже, иногда, в бортовой аппаратуре.
Существует несколько различных более-менее стандартных форматов ЖКИ-модулей (символовхстрок): 8x2, 16x1, 16x2, 16x4, 20x1, 20x2, 20x4, 24x2, 40x2, 40x4. Встречаются и менее распространенные форматы: 8х 1, 12x2, 32х2 и др. Принципиальных ограничений на комбинации и количество отображаемых символов контроллер не накладывает - модуль может иметь любое количество символов от 1 до 80, хотя в некоторых комбинациях программная адресация символов может оказаться не очень удобной.
В рамках одного формата могут производиться ЖКИ-модули нескольких конструктивов, отличающихся как габаритами ЖКИ (и, как следствие, размерами символов), так и размерами платы и посадки. Например, фирма Powertip предлагает алфавитно-цифровые ЖКИ-модули 11-ти форматов (от 8x2 до 40x4) в 37-ми различных конструктивах, 16х1 в 6-ти, а модули формата 16x2 в 11-ти [2].
Изучая каталоги различных фирм-производителей ЖКИ-модулей, можно убедиться, что одни форматы и конструктивы являются собственными разработками и не обнаруживают аналогов в номенклатуре остальных фирм, другие являются фактическими стандартами и производятся большинством изготовителей. В качестве примера можно назвать ЖКИ-модули формата 24x2: РС2402-А у Powertip, ED24200 у EDT, DMC-24227 у Optrex, SC2402A у Bolymin, MDLS-24265 у Varitronix, PVC240202 у Picvue и др., все эти модули имеют одинаковые конструктивные размеры и являются взаимозаменяемыми.
В рамках одного конструктива ЖКИ-модуль может иметь еще ряд модификаций. В частности, могут применяться несколько типов ЖКИ, отличающихся цветом фона и цветом символов, а также по применяемым ЖК-материалам и структуре: TN, STN и FSTN типа. ЖКИ STN- и FSTN-типа имеют более высокую стоимость, но одновременно обладают повышенной контрастностью и вдвое большим максимальным углом обзора, причем ЖКИ FSTN-типа имеют лучшие характеристики, чем STN.
ЖКИ-модули могут оснащаться задней подсветкой, размещаемой между ЖКИ и печатной платой, для чего ЖКИ производятся с полупрозрачным или прозрачным задним сло
ем (в последнем случае считывание информации возможно только при наличии подсветки). Собственно подсветка может быть реализована несколькими способами: с помощью электролюминесцентной панели, представляющей собой тонкую пленку, излучающую свет при прикладывании переменного тока повышенного напряжения порядка 100...150 В; люминесцентной лампой с холодным катодам (также работающей при повышенном напряжении), излучение которой равномерно распределяется по всей площади ЖКИ с помощью отражателя или плоского световода; третий вариант - подсветка на основе светодиодной матрицы.
Первые два способа подсветки обеспечивают высокую яркость и могут иметь белый тон свечения при относительно низком потреблении, но требуют наличия источника повышенного напряжения, что создает некоторые трудности при создании аппаратуры с автономным питанием. Напротив, светодиодная подсветка не требует высоковольтного источника (прямое падение напряжения составляет 4,2 В) и при использовании несложного источника тока позволит производить питание от источника с напряжением 5 В. Кроме того, светодиодная подсветка имеет значительно большее (в десятки раз) время наработки, а также только она допустима к эксплуатации в расширенном диапазоне температур (-20°С...+70°С).
Контроллер HD44780 фирмы Hitachi фактически является промышленным стандартом и широко применяется при производстве алфавитно-цифровых ЖКИ-модулей. Аналоги этого контроллера или совместимые с ним по интерфейсу и командному языку микросхемы выпускают множество фирм, среди которых: Epson, Toshiba, Sanyo, Samsung, Philips. Еще большее число фирм производят ЖКИ-модули на базе данных контроллеров. Эти модули можно встретить в самых разнообразных устройствах: измерительных приборах, медицинском оборудовании, промышленном и технологическом оборудовании, офисной технике -принтерах, телефонах, факсимильных и копировальных аппаратах.
Контроллер HD44780 потенциально может управлять 2-мя строками по 40 символов в каждой (для модулей с 4-мя строками по 40 символов используются два однотипных контроллера), при матрице символа 5 * 7 точек. Контроллера также поддерживает символы с матрицей 5 х ,ю точек, но в последние годы ЖКИ-модули с такой матрицей практически не встречаются, поэтому можно считать, что фактически бывают только символы 5 х 7 точек.
252
Ш.1.6. Некоторые аспекты функциональной организации микропроцессорной системы
управления
Подключение LCD. Для соединения ЖКИ-модуля с управляющей системой используется параллельная синхронная шина, насчитывающая 8 или 4 (выбирается программно) линий данных DB0...DB7, линию выбора операции RAV, линию выбора регистра RS и линию стробирования/синхронизации Е. Кроме линий управляющей шины, имеются две линии для подачи напряжения питания 5 В - GND и VCc, и линия для подачи напряжения питания драйвера ЖКИ-Vo.
Указанные выше названия линий шины являются стандартными, но существует множество различных вариантов расположения контактов у каждого конкретного конструктива ЖКИ-модуля. На самом деле, единственным реально стандартным вариантом расположения контактов является двухрядное 14-ти контактное поле, расположенное вертикально в левой части модуля, а также совпадающее в ним двухрядное 16-ти контактное поле, содержащее дополнительную пару контактов с подключенными к ней выводами питания подсветки. В любом случае, для получения достоверной информации необходимо воспользоваться соответствующей справочной литературой изготовителя модуля.
На начальном этапе необходимо подать питание на ЖКИ-модуль и добиться от него признаков работоспособности. Схема включения модуля, рассчитанного на стандартный диапазон температур, показана на рис.Ш.42, а.
хп DBQ DBS
t DB2
DB3
г \L DBS
DB6
L J 1
+SVB
* во Ш7
с L J 1
+SVB
* во
«S
RIW
Е
— I —
J 1
+SVB к am
«S
RIW
Е
к am
«S
RIW
Е
к am
«S
RIW
Е
POWF.
У.
GND
ш UF1 ',' Т к ОТ
V.
хи\ово DB\
шз Р В 4 DBS
пвь Ш 7
BS
Е
Рис. Ш.42. Подача питания на ЖКИ-модуль: а - на стандартный диапазон температур, б - на рас
ширенный диапазон температур
Подстроечный резистор R позволяет плавно менять напряжение питания драйвера ЖКИ, что приводит к изменению угла поворо- та жидких кристаллов. Этим резистором можно отрегулировать фактическую контрастность при некотором преимущественном угле наблюдения (снизу-вверх или сверху-вниз). Включение в данную схему ЖКИ- модуля, рассчитанного на расширенный диапазон температур, не приведет к успеху, так как из-за особенностей применяемых в них ЖК-материалов, эти ЖКИ требуют повышенного напряжения питания и при питании напряжением 5 В изображение либо будет отсутствовать совсем, либо будет слабоконтрастным. Для преодоления ситуации необходимо подать на вывод V0 отрицательное напряжение (напряжение на ЖКИ определяется разностью VCc и Vo), составляющее в предельном случае -5 В. Если в схеме отсутствует источник отрицательного напряжения, то не составляет труда собрать простейший преобразователь, например, по схеме на рис. Ш.42, б.
Для активизации ЖКИ-модуля необходимо подать напряжение питания и привести схему в рабочий режим вращением движка резистора Ri (рис. Ш.42, а). После окончания цикла внутренней инициализации модуль включается в режим развертки одной верхней строки. При изменении напряжения на выводе V0 сегменты этой строки должны менять свое состояние от прозрачного до непрозрачного, что является свидетельством правильного подключения питания модуля и работоспособности контроллера и драйверов ЖКИ. Установите движок в такое положение, при котором изображение сегментов в верхней строке едва проступает на основном фоне ЖКИ. Теперь ЖКИ-модуль готов к приему и отображению информации. После того, как вы добьетесь отображения на индикаторе какого-либо текста, то сможете более точно отрегулировать
253
изображение в соответствии с необходимой контрастностью и требуемым углом наблюдения.
Для соединения модуля с управляющей системой можно выбрать один из двух вариантов: по 8- или 4-разрядной шине. В первом случае потребуется 11 сигнальных линий, во втором - только 7.
На рис. III.43, а приведена схема подключения ЖКИ-модуля с 8-разрядной шиной к некоторой абстрактной микроЭВМ XYZ. Эта микро-ЭВМ содержит два порта: 8-ми разрядный двунаправленный РА0...РА7, к которому подключена шина DB0...DB7 ЖКИ-модуля, и 3-разрядный РВ0...РВ2, к которому подключены линии управляющих сигналов: Е, RS, R/W. На рис. 111.43, б можно видеть схему подключения ЖКИ-модуля к этой же микроЭВМ в 4-разрядном режиме. Обратите внимание, что для обмена в 4-разрядном режиме используется старшая тетрада шины данных - DB4...DB7.
XII
V,
}ND
DB0
DB\
DB2
DB3
DBA
DBS
DB6
DB1
RS
RIW
E
РАО
PA\
PA2
РАЗ
PA4
РАЪ
PA6
PA1
PBO
PB\
рвг
CPY
GND
X /r DBO DB\ DB2
DB3
DB4
DBS
DB2
DB3
DB4
DBS
РАО
PM
CPY
DB2
DB3
DB4
DBS
РАО
PM
CPY
DB2
DB3
DB4
DBS
РАО
PM
DB6 PA2 DB6 PA2 V DB1 РАЗ V DB1 РАЗ V
RS
RIW
PBO
PB\ V. RS
RIW
PBO
PB\ V. V. RS
RIW
PBO
PB\ V.
GND E PB2 GND GND E PB2 GND
б Рис. 111.43. Подключение ЖКИ-модуля
к микроконтроллеру: а - с 8-разрядной шиной, б -с 4-разрядной шиной
Сам процесс обмена также может быть организован двояко. Можно подключить ЖКИ-модуль к системной шине (если таковая имейся) и выполнить обмен в синхронном режиме с максимальной скоростью. Этому широко распространенному в прошлые годы способу присущ ряд недостатков. Во-первых, боль
шинство современных устройств выполняется с применением однокристальных микроЭВМ без использования дополнительной внешней памяти и, как следствие, системная шина у этих устройств просто отсутствует. Во-вторых, в современных системах повышенной сложности и производительности, у которых присутствует дополнительная память и, естественно, системная шина, скорость операций на шине находится за пределами возможностей контроллера HD44780 (2 МГц при питании 5 В и 1 МГц при 3 В). Это может потребовать введения дополнительных схем для замедления скорости работы шины при выполнении операций обмена с ЖКИ-модулем. В-третьих, подключение к системной шине в большинстве случаев потребует вводить схемы дешифрации и формирования сигналов Е и R/W, что опять приведет к дополнительным затратам. Все сказанное выше не означает, что вариант с подключением к шине принципиально неэффективен. В какой-то конкретной системе этот способ, наоборот, может быть самым оптимальным. Кроме того, некоторые современные процессоры, например, семейство МС68НС12, имеет встроенные средства для формирования сигналов выборки (CS), с возможностью программно определить скорость обмена с каждым конкретным устройством.
Другой вариант - обмен с ЖКИ-модулем выполняется чисто программными средствами, через порты ввода-вывода управляющей микроЭВМ. В дальнейшем мы сконцентрируем внимание именно на этом варианте, так как он позволяет рассмотреть общий случай, абстрагируясь от конкретной системы. Вариант соединения с системной шиной, напротив, требует рассмотрения конкретных устройств, поэтому в случае необходимости можно рекомендовать изучить временные диаграммы операций чтения и записи, приведенные на рис. Ш.44 и 111.45, а также значения временных параметров, приведенные в табл. 5, б и сконструировать соответствующие управляющие схемы.
RS " X С t Ё
RW
ч № ч *_ _ \
- 1 . ч Г~ \ - 1 .
1 Г~
DB0...DB7 \ ЭЫьггщытга ffe*isiw да****' It i Й
Рис. Ш.44. Временная диаграмма аперацим записи
254 RS X <
1 1
WW / !,.—
PW \ — t .
/ !,.— — —
\ — t .
/ !,.—
t
л
\ — t .
/ t t
OB0...DB7 д Д#йстпигал*иив данмыа д
t
Рис. Ш.45. Временная диаграмма операции чтения
В соответствии с временной диаграммой (рис. Ш.44, 45) в исходном состоянии сигнал Е = 0, сигнал R/W = 0, значение сигнала RS -произвольное, шина данных DB0...DB7 в состоянии высокого импеданса (HI).
Такое состояние управляющих сигналов (Е и R/W) должно поддерживаться все время в промежутках между операциями обмена с ЖКИ-модулем. Шина данных в эти моменты в принципе свободна, и может использоваться в мультиплексном режиме для каких-либо других целей, например, для сканирования матрицы клавиатуры. Естественно, необходимо позаботиться об исключении конфликтов на шине данных в момент совершения операций обмена с ЖКИ-модулем. Последовательности действий, которые необходимо выполнять управляющей системе при совершении операций записи и чтения для 8- и 4-разрядной шины приведены соответственно в табл. HI.6...III.9.
Таблица Ш.6 Операции записи для 8-разрядной шины
1. Установить значение линии RS 2. Вывести значение байта данных на линии шины
iDB0...DB7 3. Установить линию Е = 1 4. Установить линию У = О 5. Установить линии шины DB0...DB7 = HI
i Таблица Ш.7 Операции чтения для 8-разрядной шины
1. Установить значение линии RS 2. Установить линию R/W = ! 3. Установить линию Е = 1 | 4. Считать значение байта данных с линий шины I
DB0...DB7 5. Установить линию Е = О 6. Установить линию R/W = О
Приведенные в таблицах операции подразумевают, что время выполнения каждого шага составляет не менее 250 не. При использовании современных быстродействующих мик-роЭВМ это условие может быть легко нарушено, поэтому необходимо тщательно контролировать минимальные значения временных
Таблица III.8 Операция записи для 4-разрядной шины
1. Установить значение линии RS 2. Вывести значение старшей тетрады байта дан-;
ных на линии шины DB4...DB7 3. Установить линию Е = 1 4. Установить линию Е = 0 | 5. Вывести значение младшей тетрады байта дан-;
:ных на линии шины DB4...DB7 6. Установить линию Е = 1 7. Установить линию Е = 0 8. Установить линии шины DB4...DB7 = HI j
Таблица Ш.9 Операция чтения для 4-разрядной шины
2. 3. 4.
ных с 5. 6. 7.
ных с
Установить значение линии RS Установить линию R/W = 1 Установить линию Е = 1 Считать значение старшей тетрады байта дан-
линий шины DB4...DB7 Установить линию Е = 0 Установить линию Е = 1 Считать значение младшей тетрады байта дан-
линий шины DB4...DB7 Установить линию Е = 0 Установить линию R/W = 0
интервалов, чтобы они всегда находились в области допустимых значений, указанных в табл. ШЛО, III. 11 и при необходимости вводить задержки.
Таблица ШЛО Значения временных характеристик
(операция записи)
1 " " " "" 1 — Параметр | Обозначение Мин. Макс. Единица;
Период сигнала Е 'сусЕ 500 - НС
j Положительный j полупериод сиг- PWE„ 230 - НС
Окончание табл. Ш.10
Фронт/спад сигнала Е 1Е* 'Е/ -r ~" ]"'
20 не ! Установление адреса (AS 40 - HC :
! Удержание адреса 'AH 10 - j HC | 1 j
Установление данных 'DSW 80 HC
Удержание данных 'DSW 10 - HC
1
Описанные выше операции записи/чтения байта являются базовыми для осуществления обмена с ЖКИ-модулем. Реализация этих двух операций - единственное, что отличает процесс обмена по 8-разрядной шине от обмена по 4-разрядной шине. На основе этих двух операций, реализованных программно (когда модуль подключен к портам микро-ЭВМ), или
255 аппаратно (когда модуль подключен к системной шине), строятся все виды операций программирования и управления.
Таблица .111.11 Значения временных характеристик
(операция чтения)
Удержание адреса \tAH
Параметр 1 Обозначение Мин. Макс. 1 Единица |
Период сигнала Е JcycE 500
230
Макс.
не
Положительный полупериод сигнала Е
\PWEH
500
230
Макс.
НС
Фронт/спад сигнала Е
Установление адреса
\ *Еп tlif
\tAS 40
20 НС
НС i 1
Установление данных Удержание дан-
\tAH [ I [ М О | - ! HC
UDSW - 160 I 1
HC
tDSW i
5 - | i j j
HC
Особенностью подключения ЖКИ-модулей формата 40х4является в них двух контроллеров HD44780, что позволяет представить их двумя модулями 40x2. Для сокращения числа соединений все сигналы обоих контроллеров соединены параллельно, исключение составляет только сигнал Е, одновременно выполняющий роль тактового сигнала и сигнала выборки микросхемы CS, поэтому обмен с каждым из контроллеров ведется попеременно.
256 III.2. Программирование микропроцессорных
систем управления
Ш.2.1. Программирование дискретной передаточной функции системы управления
Реализация цифрового фильтра. Цифровой регулятор (фильтр), как было указано в разделе 1, преобразует входную числовую (импульсную) последовательность £*[иГ] с периодом Т в последовательность других импульсов у* [пТ] с тем же периодом в соответствии с заданным алгоритмом.
Будем рассматривать цифровой фильтр с одним входом ^'[«Г] и одним выходом у* [пТ], показанный на рис.Ш.46.
——+ ЦФ П' Рис. Ш.46. Обозначение цифрового фильтра
Алгоритм функционирования цифрового фильтра описывают разностным уравнением
m п у[пТ]=^[тТ~1Т}-^а,у[пТ-1Т},(тЛ)
ы> /=i
т.е. выходной сигнал определяется входной последовательностью i импульсов, а также последовательностью предшествующих (и-1) выходных импульсов. (из условия физической реализуемости ЦФ следует m < п, т.к. в противном случае появляются упреждающие звенья (с отрицательным запаздыванием), т.е. реакция происходит раньше воздействия.
Цифровой фильтр может быть реализован двумя способами:
- аппаратно (с помощью соединения цифровых логических элементов и устройств);
- программно (с использованием программы, реализуемой микропроцессором).
Аппаратное построение цифрового фильтра возможно с помощью соответствующего соединения цифровых элементов (элемента задержки на такт, умножителя на постоянный коэффициент и сумматора) и рассмотрено в разделе I.
Программная реализация может быть построена на основе приведенной формулы и записи рекуррентных соотношений.
Если задана входная последовательность
х {пТ) = 0; п>0, g{0) = g0, g{nT) = gn,
известны коэффициенты алгоритма: bo, b\, а0 = 1, а\, аг и определены начальные условия: у(Т) = у}, у(-Т) = 0, то расчет может быть выполнен по рекуррентному алгоритму
1) и = 0 => y(0) = b0g0-a1yl; 2) п -1 => у (0) = bagi +bxg0- щу (0) - а2у,;
с использованием которого несложно составить программу. Этот процесс называется программированием дискретной передаточной функции.
Под программированием дискретной передаточной функции W[z) понимается построение алгоритма А реализации фильтра, передаточная функция которого есть fF(z) или, другими словами, определение последовательности необходимых арифметических операций в цифровом устройстве. Различают три способа программирования дискретной передаточной функции:
- параллельное программирование; - последовательное (каскадное) программи
рование; - непосредственное (прямое) программиро
вание. В основе каждого из этих способов лежит
определенная форма записи передаточной функции W[z).
В основе параллельного программирования лежит возможность представления дискретной передаточной функции системы в виде параллельного соединения элементарных звеньев. Если все полюсы дискретной передаточной функции действительные и простые, то ее можно записать в виде:
^ ) ^ + Z7^4r=«o+I^W,(ni.2)
где Pf-i-e полюсы передаточной функции W(z) , а„ /, -действительные коэффициенты.
Тогда г-преобразование выходного сигнала представляется в виде
257
r(z) = aoiK*) + X (*)g(*) = £ ^ ) где ы
Из уравнений следует, что передаточную функцию W(z) можно реализовать с помощью (и + 1) простых программ, действующих параллельно. Как показано на рис. Ш.47, а, т.е.
Я") = ЁМ")> У0(п) = аоё(п)> /=о
yi(n) = fig(n-l) + piyi(n-\),i = \,2,...,k.
Параллельная реализация передаточной функции реализуется в виде, показанном на рис.Ш.47, а, а структурная схема программы вычисления текущего значения выходной переменной у, - на рис. Ш.47, б.
у(,)
т , г"1 — > т г"1 — > т
6 УЛ") —г— ft *
б
РисШ. 47. Параллельное программирование: а -параллельная реализация передаточной функции, б -
структурная схема программы вычисления у-,
При последовательном программировании передаточная функция W[z), содержащая т Действительных нулей z,., / = 1,2,..., т и п>т Действительных полюсов pt, / = 1, 2,..., п, записываются в факторизованной форме, т.е. в виде произведения элементарных сомножителей
W(z) J(z-zi)(z-z*y-(z-z») = (z-Pl)(z-p2)..(z-pn)
=Wi{z)W2{z)..Wm{z)Wmri(z)..Wn(z), (Ш.З, а)
Щ ) *(*) '
W2(z) =
К{2) =
Wn(z) =
z-p, z-z2
z-p2
z-z„
ш УЛ2) ^
Уп,-х{2) Z-Pm'
y{z) к Уп-Л2) z~Pn
Следовательно, цифровое звено с передаточной функцией W(z) может быть реализовано с помощью п элементарных звеньев, соединенных последовательно, как показано на рис. 111.48, а.
Процедура решения такого уравнения в зависимости от вида элементарной передаточной функции схематически изображена на рис. Ш.49, а, б.
У[»] 8[п] вд й Щ - -*\*л*)УУ
Л - | [ « ] — •
Pi rsrp > У,[п]
Рис.Ш. 48. Последовательное программирование: последовательная реализация передаточной функции
(а), схема решения разностного уравнения (Ш.З, б)
Элементарной передаточной функции вида
W,{z) = у,,{z) = z-z, =l-z,z-
У,-у{2) 2~Р, \-Р>2' -, / = 1, 2,...,т
соответствует разностное уравнение
У, И = Л-, [«] - W-л [» ~ 1}+ Р,У, [" - 1 ] ( ш - 3 , б)
где « - номер отсчета. Схема его решения приведена на рис. III .48, б.
Элементарной передаточной функции вида:
Щ{2) = 2-Pi 1-P,Z
-, i = m+\,m+2,...,n-\
258
соответствует разностное уравнение
Схема его_решения представлена на рис. 111.49.
У,-\["] • *"'
> Р, г^г> • - • УХА
Рис. Ш.49. Схема решения разностного уравнения (Ш.4)
При непосредственном программировании используется представление дискретной передаточной функции в нормальной форме:
т
£fl'Z~' Y(z)
i-a , . G(Z)'
которой соответствует разностное уравнение, связывающее дискретные значения входного и выходного сигналов:
ЛИ ft
)'{п)=Ъа'£(п~*)~Иь-У(п~!)-
Разностное уравнение по существу является формулой для вычисления выходной величины Y в дискретные моменты времени пТ. В программу вычисления Y[n] входят арифметические операции сложения, вычитания, умножения и запоминания результатов вычислений и входной величины на интервалы времени, кратные периоду дискретизации Т. Дискретное значение Y[n], вычисленное в данный момент времени пТ, становится в конце следующего периода дискретизации величиной Y[n - 1], а через такт - величиной Y[n - 2] и т.д.
Программирование решения разностного уравнения. Процесс решения разностного уравнения можно представить графически, например, в виде структурной схемы, изображенной на рис. Ш.50, в которой звено z"1 осуществляет операции задержки или запоминания дискретного значения сигнала на период Т.
Рис. Ш.50. Схема процесса решения разностного уравнения
Так, если получены дискретные передаточные функции, то для них, непосредственно, без всяких преобразований можно написать разностные уравнения и составить структурные схемы решения. Рассмотрим некоторые примеры.
Дифференцирующее звено. Для него разностное уравнение запишется в виде
j ; H = ;>;[7i-l]rf + g[/i]-g[>i-l] .(Ш.5)
Соответствующая структурная схема представлена на рис. Ш.51.
g[n] -i->
Рис. Ш.51. Струетурная схема решения разностного уравнения (Ш.5)
Корректирующий дифференцирующий фильтр. Его разностное уравнение можно записать как
y[n}=ay[n-l]+ag{n}-(a+d-\)g[n-\]. (Ш.6)
Структурная схема решения этого разностного уравнения представлена на рис. III.52.
# - • )'["]
Рис. Ш.52. Структурная схема решения разностного уравнения (Ш.6)
259 Следует отметить, что для этой же им
пульсной передаточной функции могут быть составлены другие различные структурные схемы решения и соответственно различные программы вычислений.
Корректирующий интегро-дифференцирую-щий фильтр. Его передаточная функция была найдена в виде
„,;" ч а - bz~l - cz'2 + dz'3
W(Z)= j ; —
И -e + fz'^-gz'2
и может быть записана как
а - bz~l - cz'2 + dz'3 W{z) =
l-(e + l-jz-]-gz-2)
Соответствующее разностное уравнение будет иметь вид
Н*)> ag(k)-bg(k-l)-cg(k-2) +
+dg(k-3)-fy(k-\)+gy(k-2) (Ш.7)
Структурная схема решения уравнения представлена на рис. Ш.53.
Рисунок IH.53. Структурная схема решения разностного уравнения (Ш.7)
Сравнивая выражения, легко заметить, что они отличаются лишь коэффициентами, поэтому разностные уравнения и структурная схема решения разностного уравнения для этого фильтра будут такие же, как и для корректирующего интегро-дифференцирующего фильт-
Ш.2.2. Реализация цифровых фильтров в виде подпрограмм
теме управления, так и отдельно. Подпро-граммная реализация цифрового фильтра позволяет использовать различную организацию микропроцессорной системы (одно- или многопроцессорную) .
Дифференцирующее звено. Разностное уравнение можно записать в виде
где У,=4У*-\ +gn-en-l>
d = e~aT.
Так как в ОЗУ записываются целые числа, а d = е'а <1, то целесообразно заносить в память с/, = 10е"аГ . Для того, чтобы это не повлияло на результат, произведение dyn_x затем делится на 10. С учетом этого уравнение запишется в виде
у = <bb=L + g - g ,. (Ш.8)
Перед началом работы подпрограммы У„-х> dx, 10, gn и gn_x должны быть записаны в ОЗУ (рис. 111.54).
SP
Адрес
6100 01 02 03 04 05 06 07 08 09 0А ОВ
ст. байт мл байт
п-1
10
п-1
I
610С
Рис. Ш.54. Схема размещения исходных данных для решения уравнения (Ш.8)
После записи gn с АЦП указатель стека (SP) устанавливается на младший байт уп_х.
Корректирующий дифференцирующий фильтр. Его разностное уравнение перепишется в виде
Для уменьшения объема ПЗУ, занятого программами, умножение, деление и сложение реализуется в виде подпрограмм. Цифровой фильтр также реализуется в виде подпрограмм. Это позволяет применять их как в единой сис-
Уп = Фм + а8п -{"-!)#„-, -dgn_ или
у . = ^ + о д . - ( « - 1 ) я » ч - ^ . № > )
260 -аТ где dx =10е
Для работы программы данные заносятся в ОЗУ, в порядке указанном на рис. 111.55.
SP
Адрес
7000 01
02 03
(И 05
Об 07
08 09
0А ОБ
ОС 0D
0Е 0F
ст. байт иябайт
' и - /
10
п-!
а-1
7010
Рис. 111.55. Схема размещения исходных данных для решения уравнения (Ш.9)
Результат накапливается в ячейках ОЗУ 7002 -s- 7003 вместо у„_,.
После вычислений g„ записывается на место gn_,, а в ячейки 7008 * 7009 записывается новое значение g„ при последующем цикле вычислений.
Корректирующий интегро-дифференци-рующий фильтр, корректирующий фильтр с повышением порядка астатизма. Так как разностное уравнение у обоих фильтров одинаково, очевидно, что и программная реализация их будет одна и та же. Разница лишь в числовых значениях коэффициентов.
Разностное уравнение можно переписать как: 4
_ °ёп -Зин -<&-2 +dgn-3 —jgV-i +8Уп--е Уп=- (III. 10)
Для того, чтобы избавиться от знаменателя, можно было бы коэффициенты при g. и у, разделить на е. Но это нецелесообразно, т.к. получатся дробные коэффициенты.
Для работы программы g(., у: и постоянные коэффициенты записываются в ОЗУ (рис.Ш.56).
SP
Адрес
7100 01 02 03
04 05 Об 07
08 09
ОА 0В
ОС 0D
0Е 0F
7010 И
12 13 14 15 16 17
18 19
1А 1В
ст.бай! мя.байт
'п-1
"п~2
п~]
п-2
п-3
711С
Рис. 111.56. Схема размещения исходных данных для решения уравнения (ШЛО)
Для того, чтобы коэффициенты были положительными, в ОЗУ записываются - / , - . g H - e .
Сумма накапливается в ячейках памяти 7100 -=- 7101, а после деления на -е результат заносится на место >>„_,. Одновременно из этой ячейки извлекается j„_,. Затем уП_х заносится в ячейки 7106 -г- 7107 с одновременным извлечением из них уп_г. Аналогично переписываются и значения g,.
Ш.2.3. Интегрированная среда разработки AVR Studio
AVR Studio - это интегрированная отладочная среда разработки приложений (IDE) для микроконтроллеров AVR компании Atmel.
IDE AVR Studio содержит : - средства создания и управления проектом; - редактор кода на языке Ассемблер; - транслятор языка Ассемблера (Atmel
AVR macroassembler); - отладчик (Debugger);
261
- программное обеспечение верхнего уровня для поддержки внутрисхемного программирования (In-System Programming, ISP) с использованием стандартных отладочных средств Atmel AVR.
AVR Studio распространяется свободно. Его последняя версия всегда доступна на сайте копании Atmel (http://wwvv.atmel.com/atmel/ products/ prod203.htm).
К настоящему времени выпущена AVR Studio версии 4.13 и ISP к ней. Интерфейс программы приведен на рис. III.57.
значения (например, ml6def.inc для ATine-gal6). Включаемые файлы входят в прикладное программное обеспечение AVR Studio и при инсталляции помещаются в папку Аррпо-tes в директории установки AVR Studio.
Примеры программ доступны в большом количестве в качестве приложений к руководствам по применению микроконтроллеров AVR (см. раздел Application Notes на сайте http:/^vw.atmel.ru/Disks/AVR%20 Technical%20Library/index.htsn!).
Написание программы в AVR Studio производится на языке Ассемблер. Система команд микроконтроллера описана в упомянутых выше руководствах по применению в документе AVR Instruction Set либо в файле справки,
Работа с AVR Studio начинается с создания проекта. При создании проекта необходимо указать используемый микроконтроллер и платформу, на которой будет производиться отладка программы.
Написание программы производится в окне редактора текста программы. Для использования символических имен регистров специального назначения вместо их адресов, необходимо подключить (директива .include) к проекту файл определения регистров специального на-
встроенном в AVR Studio (меню HelpVAVR Tools User\Guide\AVR Assembler), в котором содержатся достаточно подробные комментарии к каждой команде.
Последние версии AVR Studio содержат тестовую версию AVR ассемблера второй версии, который в дополнение к стандартному ассемблеру поддерживает новые директивы ассемблера, Си-подобные директивы препроцессора, создание переменных определенного типа. Более подробную информацию можно найти в файле справки.
Перед трансляцией программы можно задать установки проекта (меню Project \ AVR Assembler Setup), указать необходимый формат выходного файла. Там же возможно уста-
С < > U 9 u • •-•• е.'».*-. ^Щ}У\ п Л « * .«, Ч -:! ,•". ».'.« :>••- :г •-..:•' s г • ' ''
' ..
I
ЩнктХр р«гнс1ров
шжроко HI рвптра
Файлы сщкшки *ЮЕ50 «ICE40 •JTAOICEmkll "AVRISP 'STK500 *STK501 'STK500 *A$sert«ler
£ {«««so*
S Щ «*><* ••J Щ » W *
•Ф mm ** g* mm %*»
*. щ. wmt>
• fef $f*M "
# » ^ W***& &Ь4к0 ******* шй&ж% Ш&Й&*
t**ji»«J ******** © '.*V*KV****s**V««^ ,**r*4*4t «**
npocuotp зн*т«йй
:**#Мй*'' .*ЖШЙЙ«;
Рис. 111.57. Интерфейс интегрированной среды разработки AVR Studio
262
новить использование AVR ассемблера 2-й версии. Так как вторая версия ассемблера проходит стадию тестирования, то по умолчанию он отключен. Если не требуется каких-либо особых настроек, то можно использовать установки по умолчанию.
В результате трансляции создается выходной файл в указанном формате. Если исходный ассемблерный текст содержал сегмент энергонезависимых данных (объявленный директивой .eseg), то при трансляции будет создан также файл с расширением .еер. Этот файл содержит данные для внутренней EEPROM микроконтроллера и имеет тот же формат, что и выходной файл.
Если в результате трансляции не выдается сообщений об ошибках, можно приступать к отладке проекта.
Отладчик AVR Studio поддерживает все типы микроконтроллеров AVR и имеет два режима работы: режим программной симуляции и режим управления различными типами внутрисхемных эмуляторов (In-Circuit Emulators) производства фирмы Atmel. Важно отметить, что интерфейс пользователя не изменяется в зависимости от выбранного режима отладки.
Отладочная среда поддерживает выполнение программ, как в виде ассемблерного текста, так и в виде исходного текста языка Си, загруженного в объектном коде.
Объектный файл может быть загружен в различных форматах, а именно:
- в формате UBROF (расширение файла .d90). Формат UBROF - это патентованный формат компании IAR. На текущий момент среда разработки AVR Studio поддерживает все версии формата до восьмой версии (UBROF5/6/7/8);
- в формате ELF/DWARF (расширение файла .elf). Формат разработан сообществом открытого программного обеспечения для поддержки бесплатно распространяемых компиляторов (GNU GCC, для микроконтроллеров AVR последние версии данного компилятора имеют название WinAVR). На текущий момент среда разработки AVR Studio поддерживает формат версии DWARF2;
- в формате AVR COFF (расширение файла .cof). Это открытый формат, введенный в среду разработки AVR Studio для поддержки сторонних разработчиков компиляторов; отладочный код в данном формате может быть сформирован с использованием таких компиляторов, как, например, CodeVision AVR;
- в формате Extended Intel HEX (расширение .hex). Данный формат не приспособлен для
отладки и используется для этой цели в крайнем случае.
После загрузки объектного кода производится выбор отладочной платформы и используемого микроконтроллера. При отладке с использованием внутрисхемных эмуляторов, микроконтроллеры, поддержка которых не осуществляется, автоматически подсвечиваются серым. После загрузки проекта система готова к старту отладки.
Управление отладкой производится командами меню DEBUG, либо соответствующими иконками на панели управления AVR Studio.
Пользователь может выполнять программу полностью в пошаговом режиме, трассируя блоки функций, или выполняя программу до того места, где стоит курсор. В дополнение можно определять неограниченное число точек останова, каждая из которых может быть включена или выключена. Точки останова сохраняются между сессиями работы.
В AVR Studio для отладки программы предусмотрены две команды пошагового режима: Step Over и Trace into. Разница между ними в том, что при выполнении команды Step Over выполнение подпрограмм происходит до полного окончания без отображения процесса выполнения. К командам шагового режима также относятся команда Auto Step.
С помощью команд пошагового режима можно проследить изменения значений в переменных, регистрах ввода/вывода, памяти и регистрового файла. Для этого предназначены раздел I/O рабочей области AVR Studio, окно Watch (меню Debug \ Quickwatch).
Интегрированная среда разработки AVR Studio также поддерживает просмотр (меню View \ Memory) ячеек памяти программ, памяти данных, EEPROM и регистров портов ввода/вывода в ходе исполнения. Выпадающее меню диалогового окна позволяет выбрать один из четырех массивов ячеек памяти: Data, IO, Eeprom, Program Memory. Для одновременного просмотра нескольких областей окно Memory может быть открыто несколько раз. Информация в диалоговом окне может быть представлена в виде байтов или в виде слов в шестнадцатеричной системе счисления, а также в виде ASCII-символов.
В процессе отладки пользователь может инициализировать внутреннее ОЗУ или EEPROM микроконтроллера (например, данными, содержащимися в полученном при трансляции файле .еер), или сохранить содержимое ОЗУ и EEPROM в виде файлов в формате Intel Hex (меню File -> Up/Download Memory).
263
Помимо шагового режима, возможна отладка программы с использованием точек останова (меню Breakpoints -> Toggle Breakpoint). Командой Start Debugging запускается исполнение программы. Программа будет выполняться до остановки пользователем или до обнаружения точки останова.
Работая с программным симулятором пакета AVR Studio, следует помнить, что он пока не поддерживает некоторые режимы работы микроконтроллеров AVR и их периферийные узлы:
- аналого-цифровой преобразователь; - аналоговый компаратор; - режим часов реального времени; - режим пониженного энергопотребления
(инструкция sleep интерпретируется программным симулятором как пор).
Возможно, в последующих версиях AVR Studio поддержка этих узлов и режимов будет реализована, но в настоящий момент при работе программы с аналоговой периферией необходимо производить ручной ввод данных в регистры результата.
Для наблюдения за работой программы можно открыть несколько окон, отображающих состояние различных узлов микроконтроллера (см. рис. 111.57). Окна открываются нажатием соответствующих кнопок на панели инструментов или при выборе соответствующего пункта меню View. Если в процессе выполнения программы в очередном цикле значение какого-либо регистра изменится, то этот регистр будет выделен красным цветом. При этом, если в следующем цикле значение регистра останется прежним, то цветовое выделение будет снято. Такое же цветовое выделение реализовано в окнах устройств ввода/вывода, памяти и переменных.
Состояние встроенных периферийных устройств микроконтроллера, а также состояния программного счетчика, указателя стека, содержимого регистра статуса SREG и индексных регистров X, Y и Z отображено в окне I/O Window. В этом окне отражаются все функциональные блоки микроконтроллера. Любой блок может быть раскрыт нажатием на его значок. При раскрытии блока в окне отражаются адреса и состояния всех его регистров и отдельных, доступных для модификации, битов. Каждый доступный для модификации бит может быть установлен или сброшен как программой по ходу ее исполнения, так и пользователем вручную (указав курсором мыши нуж-
! "Ый бит и, щелкнув левой кнопкой мыши, пользователь может изменить значение бита на кратное), а в режиме программной симуляции
это является способом имитации входного воздействия на микроконтроллер.
Другим способом задания входного воздействия на микроконтроллер в режиме симулято-ра является использование внешних файлов входных воздействий. Формат файла входного воздействия очень прост:
000000000:00 000000039:01 000000040:00 9999999999:FF
Здесь значение, указанное после разделителя : - это шестнадцатеричное представление сигналов, воздействующих на порт микроконтроллера. Значение, указанное до разделителя -это десятичный номер цикла (с момента сброса микроконтроллера), в котором указанное воздействие поступает на выводы порта микроконтроллера. Файл входного воздействия должен заканчиваться строкой с заведомо большим номером цикла, в противном случае будет выдано сообщение об ошибке. Для подключения файла входного воздействия служит пункт меню Debug \ Options в разделе Stimuli and Logging. В открывшемся окне нужно указать порт микроконтроллера, на который нужно подавать воздействие, и файл этого воздействия. Пользователь может создавать файлы воздействий, а также записывать изменения значений на выходах портов микроконтроллера в файл (формат этого файла тот же, что и у файла входных воздействий).
Для записи служит функция Logging. В открывшемся окне нужно указать порт микроконтроллера и имя файла для записи. Записываемый файл будет удаляться и создаваться вновь при каждом выполнении сброса микроконтроллера (Debug -> Reset). Подключать файл входного воздействия или задавать имя файла для записи пользователь должен сам при каждом запуске симулятора.
Следует отметить, что AVR Studio имеет очень мощную встроенную документацию как по использованию AVR Studio, так и по использованию стандартных отладочных средств производства компании Atmel, а также системе команд и всему, что касается программирования с использованием AVR Studio. Таким образом, использование встроенной справочной информации избавляет разработчика от накопления разобщенной информации, учитывая, что встроенная информация обновляется с выходом новых версий AVR Studio.
Как уже говорилось, кроме программного симулятора, интегрированная среда разработки
264
AVR Studio включает в себя программное обеспечение верхнего уровня для управления аппаратными средствами поддержки разработок, которое было описано выше.
Программирование на языках высокого уровня. Программное обеспечение для микроконтроллеров AVR, помимо ассемблера, может быть разработано на языке Си, так как платформа AVR поддержана продуктами сторонних разработчиков компиляторов языка Си.
Наиболее мощным, с высокой оптимизацией генерируемого кода, является компилятор IAR Embedded Workbench производства компании IAR - разработчика системы команд для микроконтроллеров AVR. Ориентировочная стоимость данного компилятора 3500 долларов.
В качестве альтернативы компилятору IAR широко используются компиляторы CodeVision и ImageCraft, которые являются менее мощными, с точки зрения оптимизации кода, но являются более легкими в освоении. Ориентировочная стоимость данных компиляторов 200-300 долларов.
Для тех, кто не готов платить за программное обеспечение существует бесплатный компилятор WinAVR (ранее AVRGCC), который в совокупности с бесплатной графической средой VMLab, обеспечит разработчика необходимыми средствами для разработки программы на языке Си.
Для сторонников программирования на Паскале существует компилятор AVRco (http://vvww.e-lab.de/AVRco/index4tml).
Наличие бесплатной интегрированной среды разработки AVR Studio и недорогих Си-компиляторов, является существенным плюсом при выборе платформы для проектируемого прибора, так как программные средства разработки для AVR в совокупности с аппаратными средствами, являются законченным аппаратно-программным комплексом^ для разработки, отладки и программирования любых микроконтроллеров AVR.
Ш.2.4. Программирование микроконтроллеров AVR в PonyProg
К числу наиболее популярных программ, реализующих протокол внутрисхемного программирования через LPT-порт персонального компьютера и (или) его СОМ-порт, можно отнести AVReal (автор Александр Редчук, http://ln.com.ua/~real/avreal ) и PonyProg (автор Клаудио Ланконелли, http://www.Iancos.com).
Начальные настройки программы. Про-] грамма PonyProg (рис. Ш.58) среди программистов AVR пользуется наибольшей популярностью, в этой связи рассмотрим процедуру! программирования микроконтроллеров с по- мощью этой программы.
Рис. Ш.58. Логотип программы PonyProg
При первом запуске программы необходимо выбрать интерфейс для подключения программатора и выполнить процедуру "калибровку" для правильной работы программы.
Для запуска "калибровки" необходимо открыть окно Calibration, показанное на рис. 111.59.
ale Edit Device Command Script Utility j !? Window
Interface Setup... ШШ
- tilST Рис. 111.59. Выбор опции Calibration
В результате появится окно, показанное на рис. Ш.60,
ВшМпвсаНяаВоп Be sue tneteare no application ammg other Iban Ponjp[og2000 (the CPU and hard cfefc have to be kfe) The caibfation may lake a couple of seconds. Do you want to mn caseation now?
Cancel
Рис. Ш.60. Окно Calibration
в котором необходимо выбрать Yes. Процедура калибровки занимает несколько секунд, а ее результат успешного окончания подтверждается в выпадающем окне, показанном на рис. Ш.61.
Calibration OK
Рис. Ш.61. Окончание процедуры калиброки
Для выбора интерфейса программатора не-
265 обходимо перейти в окно Interface Setup , показанное на рис. Ш.62, и в открывшемся окне
File Edit Device Cgmmand Script Utility Setup 7 Window
м &&Ы я mm Inteiface Setup... i Calibration
,%,
t? ем "а n к e а к» О Я
Рис. Ш.62. Окно "Interface Setup"
Цстановйть флажки Serial, СОМ1 и SI Prog API, как показано на рис. 111.63, а также сделать сохранение выбранных параметров, нажав кнопку ОК.
1/0 port setup
р Serial "
j SI Prog API j » j '
<v ешт г шиз )Г COM2 Г COM4
Г Parallel
'**" U*f3
j Select Polarity o( the Control lines
|Г" Invert Reset Г" InverfD-IN
[ Г Invert SCKL F Invert D-OUT
Cancel | | 0K~1 Probe j
Рис. Ш.63. Настройка интерфейса с программатором
В заключение настройки работы программы необходимо установить опции программирования. Для этого необходимо перейти в окно Program Options..., показанное на рис. 111.64 и установить флажки Reload Files, Erase, Write Program memory (FLASH) и Write Program memory (EEPROM) - рис.Ш.65.
I: Fie:- Edit Device
Щ mm or cm.
-Script UMity Setup: ~> Window
Read № Ctrl-R
Read Program (FLASH) Read Data (EEPROM)
&J N.. Mime
Write AH Write Program (FLASH) Write Data (EEPROM)
Ctrl-W
Verify All Verify Program (FLASH) Verify Data (EEPROM)
Ctrl-V
Security and Configuration Bits.. Erase Reset
Ctrl-S Ctrl-E Ctrl-T
Program Program Options...
Ctrl-P
Read Osc.Calibration Byte Osc. Calibration Options...
Ctrl-0
P'roigrnm Options
\$p Reload Files
Г" Read Piogtam memcuy {FLASH)
X~ Read Data me'moty (EEPROM)
T Byte Swap
Г" Set Serial Number ,
Г" Read Osc.Calibration Byte
P" Etase
£? WiftePtogiam memoty (FLASH)
i? Write Data шелюгу (EEPROM)
Г" Write Secut'rty and Config bits
ш\ Рис. Ш.65. Установка опций программирования
микроконтроллера
Для сохранения выбранных опций необходимо нажать ОК.
Все перечисленные настройки выполняются однократно при первом запуске программы.
Программирование. Перед началом программирования AVR-микроконтроллера необходимо выполнить следующие действия:
1. Компьютер с помощью прилагаемого интерфейсного кабеля СОМ-порта и программатора необходимо подключить к разъему.
2. Запустить программу PonyProg. 3. Открыть файл с расширением .hex для
программирования Flash-памяти программ микроконтроллера - рис. 111.66.
Fte Edit Device Command Script UMity
New Window
Open Device FSe... t
>peri ogi n - 43 -t OpenData (EEPROM) File...
Save Device File Save Device File As... Save Program (FLASH) File As... Save Data (EEPROM) File As...
Reload Files Print...
Close Exit
Ctrl-L
Рис. Ш.66. Открытие исходного файла программы
В открывшемся окне выбрать тип файла *.hex и указать путь к папке с файлом Vdknl.hex, (Vdknl - имя файла) после этого нажать кнопку Открыть - рис. 111.67.
Рис. Ш.64. Окно Program Options
266 жад^щгаршда^да I ; • • .flema: j S ' v i t r i г] *. arete--
i . Неаовмио : : i | декреты
Ш Рабсмйетм ;
МОНАОКДОНТЫ • =
m ' ' Мой комгыотер ;
ш • 1
а.
[•
- C T - - • • " ^•••-•• Сетевое Имя «aftns.
• скиаввшв-.: Тип Файлов:
- C T - - • • " ^•••-•• Сетевое Имя «aftns.
• скиаввшв-.: Тип Файлов:
i j 'he*
:d 1'-.°»*"Г| - C T - - • • " ^•••-••
Сетевое Имя «aftns. • скиаввшв-.:
Тип Файлов:
i j 'he* ») Отмпа 1
- C T - - • • " ^•••-•• Сетевое Имя «aftns.
• скиаввшв-.: Тип Файлов:
i j 'he*
„ - пи,;., Г , " ^
Рис. Ш.67. Выбор файла по расширению .hex
На рабочем столе программы должен появиться выбранный файл.
4. Подать питание на плату AVR-контрол-лера.
5. Однократным нажатием на кнопку Launch program cycle (желтая стрелка) запустить программу на выполнение программирования Flash-памяти - рис. Ш.68.
Яе ЕЛ Device Command Script UtBty Setup ? Window
OBBBBB) ВО 9 * 5В ВО FF FF FF FF - FF FF FF FF FF
0088111) FF FF FF FF ОС 9 * 2Е 6Я - ВС 9 К 22 6ft FF
овоагв) ас 9k зо бе FF FF FF FF - ас 9u во ев FF ВОВОЗа) FF FF FF FF FF FF FF FF - FF FF FF FF FF
ВВВВ14В) ВС 9i| 8C 6H FF FF FF FF - ОС 9't ЕЕ 6ft FF
Рис. Ш.68. Запуск программы на выполнение программирования
По окончании программирования появится окно, подтверждающее успешное завершение программирования.
6. Открыть файл с расширением .еер (этот этап выполняется, если в тексте программы предусматривается запись данных в EEPROM) для программирования EEPROM-памяти данных микроконтроллера - рис. Ш.69.
<FJe : Ed* Device Cwmmand Script U A }
Open Device File...
Open flrocjrem (FLASH} Hfe...
dssnOsia(EEPRe»i)f*a.'..
Save Device Fie
Save Device Fie As...
Save Prevxam (FLASHQ Ffc As,,.,.
Save Data (EEPROM) Fie As...
Reload Fates
Print...
dose
E3*
VcM.bex FROG
VdknlLeep DATA
В открывшемся окне выбрать тип файла *.еер и указать путь к папке с файлом Vdknheep, после этого нажать кнопку Открыть - рис. 111.70.
«даШИЩЯ тш^шш^шйяштш Папка: OVoW J . ,*..:& CJF|JT:
Надаете . документы
т РвйочиЯстол
.: Мой комгызтер !
Щ •• 'Сетевое '
Ьдмив i|vdknJ.eeo
Надаете . документы
т РвйочиЯстол
.: Мой комгызтер !
Щ •• 'Сетевое ' 1мя Файла.
мп Файле»
1 il J Открыть J
• -
1мя Файла.
мп Файле»
1 il J Отмена 1
Рис. 111.70. Выбор файла по расширению .еер
1. Однократным нажатием на кнопку Launch program cycle запустить программу на выполнение программирования EEPROM-памяти данных.
Программатор PonyProg. Схема подключения программатора к СОМ-порту компьютера приведена на рис. Ш.71. Она содержит небольшое число элементов и поэтому может быть размещена в корпусе стандартного девя-тивыводного разъема СОМ-порта DB9-F. Основное назначение схемы - согласование уровней сигналов СОМ-порта (±12В) с сигналами микроконтроллера (0-5В), а также сопряжение с интерфейсом SPI микроконтроллера. Дополнительно схема содержит маломощный интегральный стабилизатор напряжения +5В, выполненный на микросхеме LM2936-Z5 (применяется в случае подключения внешнего источника питания).
Рис. Ш.71. Схема программатора PonyProg
Рис. Ш.69. Открытие исходного файла памяти данных (EEPROM)
Ш.З. Реализация микропроцессорных систем автоматического управления
267
Ш.3.1 Характеристики процесса и система управления
Характеристики процесса и регулятор. Статическая характеристика (усиление) и динамические свойства процесса ( время запаздывания (time lag), время нечувствительности (dead time), время установления сигнала (переменной процесса) (reset time) и т.д.), для которого необходима система управления, в значительной степени влияют на тип и временные характеристики системы обработки сигналов регулятора, с точки зрения стабильности процесса или изменений в процессе, согласно временному графику.
Процесс занимает специфическое место в ряду компонентов системы регулирования. Его характеристики определены физическими законами или используемой технологией и, поэтому, мало подвержены изменениям. Хорошая управляемость процессом может быть получена при выборе соответствующего типа регулятора, наилучшим образом отвечающего конкретному процессу, и при качественном согласовании регулятора с временной характеристикой процесса.
Точное знание типа и характеристик процесса, для которого строится регулятор, является необходимым условием для структуриро-
\ вания и разработки регулятора и для выбора ! значений его статических (для П- (Р) режима)
и динамических (для И- (I) и Д-ф) режимов) - иараметров.
Анализ процесса. Для разработки регулято-| ра нужны точные данные от процесса, которые I можно получить с помощью передаточной
функции, являющейся реакцией процесса на ступенчатое изменение уровня сигнала устав-ot. Графический анализ этой временной харак-
i эристики позволяет сделать заключение о типе регулятора с наиболее подходящей для про-
| Цесса функцией управления, а также о значе-\ ииях ее параметров.
Перед проектированием системы управле-1 вия полезно познакомиться с наиболее распро-
яраненными типами процессов, которые требуют автоматизации для того, чтобы подобрать
Iнаилучшую процедуру анализа и моделирова-'ия характеристик процесса.
Типы и характеристики процесса. Анало-*йо тому, что существуют типовые звенья и регуляторы систем управления, можно рас
сматривать и типовые процессы (объекты) управления. Среди них можно выделить:
- саморегулирующийся процесс (Self-regulating process);
- саморегулирующийся процесс с характеристикой, имеющей период нечувствительности (Self-regulating process with dead time);
- процесс с интегральной характеристикой (Process with integral action).
Саморегулирущийся процесс. Большинство процессов являются саморегулирующимися, в которых после ступенчатого изменения управляющей переменной, переменная процесса (или управляемая переменная) приходит к новому устойчивому уровню (рис. III. 72).
Следовательно, временная характеристика системы может быть определена с помощью
1
" А AG
п
м * П
;ТЭ ДУ
" V
Рис. 111.72. Переходная характеристика саморегулирующегося процесса (первого порядка)
построения графика изменения .переменной процесса во времени Y{t) после ступенчатого возрастания уровня управляющей переменной G(t) более чем на 1,5% от ее динамического диапазона (total range).
Если переходная характеристика в диапазоне изменения управляющей переменной линейна, то коэффициент передачи
показывает усиление системы управления. Управляемость процесса может быть оценена величиной отношения Т3/Т . Чем меньше величина этого отношения, то есть чем меньше время запаздывания по сравнению с временем установления уровня управляющей переменной У (7), тем лучше управляемость процесса.
268
В соответствии с уровнями величин Т3 и Туш П Р И тз < 0,2 мин и Т^ < 2 мин, процесс считается быстрым; при Т3 > 0,5 мин и Туст > 5 мин, процесс считается медленным.
Следовательно, абсолютное значение времени установления уровня сигнала Туст оказывает прямое влияние на величину интервала дискретизации регулятора. Более высокий уровень Туст означает, что процесс обладает медленной реакцией и интервал дискретизации должен быть более длительным.
Саморегулирущийся процесс с временем нечувствительности. Многие процессы, включая процессы с транспортированием материалов или энергии (трубопроводы, конвейерные линии и т.п.), имеют переходную характеристику, похожую на характеристику, показанную на рис.Ш.73. Но в их характеристике пусковое время ТП (start-up time) состоит из двух временных интервалов: Тт (время нечувствительности dead time) и Т3 (время задержки time lag).
С точки зрения управляемости очень важно, чтобы интервал Тт был меньше величины Т3, то есть необходимо, чтобы выполнялось требование: Г3 /Гк т<1.
> t
> t
Рис.Ш.73. Переходная характеристика саморегулирующегося процесса с временем
нечувствительности
Так как регулятор не реагирует на изменения управляющих сигналов, поступающих от регулятора на интервале нечувствительности, то очевидно, влияние регулятора на процесс задерживается и качество управления снижается.
При использовании стандартного регулятора такие эффекты частично могут устраняться выбором нового места расположения датчиков.
Процесс с интегральной характеристикой. Для данного процесса характерно монотонное возрастание сигнала переменной процесса Y после скачка уровня управляющей переменной
на фиксированную величину, при этом величина наклона характеристики "отклика" процесса обратно пропорциональна значению постоянной времени интегрирования (время установления сигнала = reset time) Т ь как показано на рис.Ш.74.
с.
дг до
ь к т
1 у
Рис.Ш.74. Переходная характеристика процесса с интегральной характеристикой, не обладающего свойствами саморегулирования (И- (I) процесс)
Процессы с И-компонентом, например, процесс наполнения или слива резервуара с жидкостью, при котором уровень жидкости может повышаться либо понижаться с разными скоростями, зависящими от степени открытости соответствующего вентиля (оконечного управляющего элемента). Также широко известны и другие процессы с И-компонентом, такие как механические приводы с двигателями, в которых скорость перемещения рабочих органов прямо пропорциональна скорости вращения вала двигателя. Если не возникает каких-либо помех для И-процесса (что часто бывает), то в таком процессе должен быть использован регулятор без И-компонента.
Если есть влияние переменной помехи, то его обычно можно устранить при использовании регулятора с системой предсказания состояния процесса без И-компонента.
Ш.3.2. Идентификация характеристик процесса
Идентификация процесса. Как уже было сказано, исследование с целью идентификации переходной характеристики данного процесса требует двух этапов:
- запись передаточной функции процесса после ступенчатого изменения управляющей переменной;
- оценка передаточной функции процесса для определения подходящей структуры управления и оптимальных параметров регулятора.
Идентификация процесса и тип контура регулирования. Идентификация процесса мо-
269 ясет выполняться в следующих режимах, как показано в табл. III. 12 , для различных типов процессов.
Таблица III. 12 Режимы идентификации процессов
Получение данных Контур Процесс Вид воздействия
на процесс
1 Интерактивная связь
Разомкнут (Ручной режим)
БезИ-компонента
Ступенчатое изменение уровня управляющей переменной ( Г !
2
Интерактивная связь
Замкнут (Автоматический режим)
БезИ-компонента
Ступенчатое изменение уровня сигнала уставки (Г)
3
интерактивная связь
Разомкнут (Ручной режим)
С И-компонентом
Импульсное изменение уровня управляющей переменной ( П )
4 Интерактивная связь
Замкнут (Автоматический режим) , -
С И-компонентом
Импульсное изменение уровня сигнала уставки (П.)
g Автономно Данные САУ из архива
Управление с предсказанием состояния. Составляющие помехи, влияющие на процесс, должны быть скомпенсированы системой управления.
Статические переменные помехи компенсируются регуляторами с И-компонентом, после чего на качестве управления такие помехи не сказываются. Динамические переменные помехи, однако, имеют более значительное влияние на качество управления. В зависимости от точки воздействия этих помех в системе управления и постоянных времени отдельных каскадов системы управления, на которые сигналы помехи влияют, возникают сигналы ошибки различной амплитуды и длительности, которые можно устранить лишь с помощью И-компонента в регуляторе.
Влияние этих помех можно предотвратить в тех случаях, когда есть возможность их измерить. Подавая измеренный сигнал ошибки в противофазе на выход регулятора, мы тем самым можем скомпенсировать переменную ошибки. При таком способе компенсации ошибки регулятор значительно быстрее реагирует на возникновение сигнала ошибки.
Ш.3.3. Подключение внешних устройств к микроконтроллеру (на
примере Atmel)
Программирование и управление LCD-модулем. Перед началом рассмотрения принципов управления ЖКИ-модулем, обратимся к внутренней структуре контроллера HD44780, чтобы понять основные принципы построения ЖКИ-модулей на его основе. Эта информация позволит понять способы организации модулей
различных форматов с точки зрения программной модели, а также мотивации конструкторов ЖКИ-модулей.
Структура микроконтроллера. Упрощенная структурная схема контроллера приведена на рис. Ш.75.
RS -RiW-
Е -Ш0...Ш7 -
Интерфейс управляющей системы
Флаг занятости
Формирователь курсора
Регистр команд
(я)
Регистр данных (Щ
Счетчик общ
Видеопамять (DRAM) Мбайт
ОЗУ знакогенератора
(CGRAMyU байта
ПЗУ знакогенератора
Устройство исполнения
команд
\6-канатмын СОМ\...СОМ\Ь драйвер подложек
Ю-канальный CM...CEG40 драйвер сегментов *
Параллельно - последовательный преобразователь
J-канальиый драйверу ЖКИ сдвиговый регистр
РИС. Ш.75. Упрощенная структурная схема контроллера HD44780
Можно сразу выделить основные элементы, с которыми приходится взаимодействовать при программном управлении: регистр данных (DR), регистр команд (IR), видеопамять (DDRAM), ОЗУ знакогенератора (CGRAM), счетчик адреса памяти (АС), флаг занятости контроллера.
Другие элементы не являются объектом прямого взаимодействия с управляющей программой - они участвуют в процессе регенерации изображения на ЖКИ: знакогенератор, формирователь курсора, сдвиговые регистры и драйверы (напоминаем, что приведенная схема - упрощенная, и многие не важные для получения общей картины промежуточные элементы на ней опущены).
Управление контроллером ведется посредством интерфейса управляющей системы. Основными объектами взаимодействия являются регистры DR и IR. Выбор адресуемого регистра производится линией RS, если RS = 0 - адресуется регистр команд (IR), если RS = 1 -регистр данных (DR).
Данные через регистр DR, в зависимости от текущего режима, могут помещаться (или прочитываться) в видеопамять (DDRAM) или в ОЗУ знакогенератора (CGRAM) по текущему адресу, указываемому счетчиком адреса (АС). Информация, попадающая в регистр IR, интерпретируется устройством выполнения команд как управляющая последовательность.
270 Прочтение регистра Ш возвращает в 7-ми младших разрядах текущее значение счетчика АС, а в старшем разряде флаг занятости (BF).
Видеопамять, имеющая общий объем 80 байтов, предназначена для хранения кодов символов, отображаемых на ЖКИ. Видеопамять организована в две строки по 40 символов в каждой. Эта привязка является жесткой и не подлежит изменению. Другими словами, независимо от того, сколько реальных строк будет иметь каждый конкретный ЖКИ-модуль, скажем, 80 х 1 или 20 х 4, адресация видеопамяти всегда производится как к двум строкам по 40 символов.
Будучи устройством с динамической индикацией, контроллер циклически производит обновление информации на ЖКИ. Сам ЖКИ организован как матрица, состоящая в зависимости от режима работы из 8 (одна строка символов 5x7 точек), 11 (одна строка символов 5x10 точек) или 16 (две строки символов 5x7 точек) строк по 200 сегментов (когда строка насчитывает 40 символов) в каждой. Собст-
Флаги, управляющие
венный драйвер контроллера HD44780 имеет только 40 выходов (SEG1...SEG40) и самостоятельно может поддерживать только 8-символьные ЖКИ. Это означает, что ЖКИ-модули форматов до 8*2 реализованы на одной микросхеме HD44780, модули, имеющие большее количество символов, содержат дополнительные микросхемы драйверов, например, HD44100, каждая из которых дополнительно предоставляет управление еще 40-ка сегментами.
У контроллера HD44780 существует набор внутренних флагов, определяющих режимы работы различных элементов контроллера (табл. III. 13). В табл. III. 14 приведены значения управляющих флагов непосредственно после подачи на ЖКИ-модуль напряжения питания. Переопределение значений флагов производится специальными командами, записываемыми в регистр Ж, при этом комбинации старших битов определяют группу флагов или команду, а младшие содержат собственно флаги.
Таблица III. 13 работой контроллера HD44780
I/D: S:
режим смещения счетчика адреса АС, 0 - уменьшение, 1 - увеличение Флаг режима сдвига содержимого экрана. 0 - сдвиг экрана не производится, 1 - после записи в DDRAM очередного кода экран сдвигается в направлении, определяемым флагом I/D: 0 - вправо, 1 - влево. При сдвиге не производится изменение содержимого DDRAM. изменяются только внутренние указатели расположения видимого начала строки в DDRAM.
S/C: Флаг-команда, производящая вместе с флагом R/L операцию сдвига содержимого экрана (так же, как и в| предыдущем случае, без изменений в DDRAM) или курсора Определяет объект смещения: 0 - сдвигается i курсор, 1 - сдвигается экран. j
R/L: Флаг-команда, производящая вместе с флагом S/C операцию сдвига экрана или курсора Уточняет направ-j ление сдвига: 0 - влево, 1 - вправо.
D/L: Флаг, определяющий ширину шины данных: 0-4 разряда 1 - 8 разрядов. N: Режим развертки изображения на ЖКИ: 0 - одна строка 1 -две строки
Размер матрицы символов: 0 - 5*8 точек, 1-5x10 точек. D: Наличие изображения: 0 - выключено, 1 - включено
Курсор в виде подчерка: 0 - выключен, 1 - включен Курсор в виде мерцающего знакоместа: 0 - выключен, 1- включен.
Таблица Ш.14 Значения управляющих флагов после подачи питания
I/O = 1: Режим увеличения счетчика на 1 S = 0: Без сдвига изображения D/L=l: 8-разрядная шина данных N = 0: Режим развертки одной строки F = 0: Символы с матрицей 5x8 точек D = 0: Отображение выключено C = 0: Курсор в виде подчерка выключен B = 0: Курсор в виде мерцающего знакоместа выключен
271 I Список управляющих комбинаций битов
регистра IR и выполняемые ими команды приведены в табл. III. 15. Так как на момент включения ЖКИ-модуль ничего не отображает (флаг D = 0), то для того, чтобы вывести какой-либо текст, необходимо, как минимум, включить отображение, установив флаг D = 1. Вот пример широко распространенной последовательности для инициализации ЖКИ-модуля: , SOC, 6 (знак $ перед числом указывает на ше-стнадцатеричное основание), устанавливает режим отображения 2-х строк с матрицей 5x8 точек и работу с 8-разрядной шиной данных;
$ОС включает отображение на экране ЖКИ-модуля, без отображения курсоров; 6 устанавливает режим автоматического перемещения курсора слева-направо после вывода каждого символа.
Контроллер HD44780 поддерживает как операции записи, так и операции чтения. Чтение регистра DR приводит к загрузке содержимого DDRAM или CGRAM, в зависимости от текущего режима, при этом курсор смещается на одну позицию, как и при записи. Чтение регистра IR возвращает 8 значащих разрядов, причем в 7 младших содержится
Таблица Ш.15 Управляющие комбинации битов регистра IR
D7 D6 D5 D4 D3 D2 D1 DO 1 Назначение
0 0 0 0 0 0 0 1 | Очистка экрана, АС = 0, адресация АС на DDRAM
0 0 0 0 0 0 1 - 1 АС = 0, адресация на DDRAM, сброшены сдвиги, начало | строки адресуется в начале DDRAM
0 0 0 0 0 1 I/D S 1 Выбирается направление сдвига курсора или экрана :I f
0 0 0 0 1 D С В 1 Выбирается режим отображения |
' т„ ' г • • 1 S/C R/L | Команда сдвига курсора/экрана
0 0 1 DL N F - - l Определение параметров развертки и ширины шины данных
. 0 1 AG AG AG AG AG AG | Присвоение счетчику АС адреса в oблacrи:CGRAM
1 AD AD AD AD AD AD AD | Присвоение счетчику АС адреса в области DDRAM
текущее значение счетчика АС (7 разрядов, если адресуется DDRAM, и 6 - если CGRAM), а в старшем - флаг занятости BF. Этот флаг имеет значение 1, когда контроллер занят и 0 -когда свободен. Необходимо учитывать, что большинство операций, выполняемых контроллером, занимают значительное время, около 40 мкс, а время выполнения некоторых доходит до единиц миллисекунд, поэтому цикл ожидания снятия флага BF должен обязательно присутствовать в программах драйвера ЖКИ-модуля и предшествовать совершению любой операции (естественно, кроме операции проверки флага BF).
После совершения операции записи или чтения DDRAM и появления после нее признака готовности (BF = 0), прочитанное в этом же цикле (вместе с флагом BF) значение АС, скорее всего не будет достоверным. Дело в том, что между появлением признака готовности и вычислением контроллером нового значения АС существует некоторый временной интервал, составляющий около 4 мкс при таковой частоте контроллера 270 кГц. Поэтому,
если необходимо получить истинное значение АС, нужно совершить повторную операцию прочтения IR спустя не менее чем 4 мкс (если контроллер работает на частоте 270 кГц время ожидания необходимо пропорционально увеличить).
Вывод на экран символа производится записью его кода в регистр DR. При этом символ размещается в DDRAM по текущему адресу, указываемому АС, а значение АС увеличивается или уменьшается на 1. Чтобы произвести переустановку курсора на нужную позицию, необходимо присвоить АС соответствующее значение (см. таблицу Ш.15). Здесь есть одна тонкость. Когда производится последовательная запись символов и в результате заполняется вся строка, курсор автоматически переходит на вторую строку, но если необходимо принудительно установить курсор, скажем, на начало второй строки, то будет неверным присвоить АС казалось бы логичное значение (40), правильным является значение (64). Значения адресов DDRAM в диапазоне ...fF (а равно и ...F)
272
являются неопределенными и результаты работы с ними могут быть непредсказуемыми.
Необходимо учитывать, что контроллеры, устанавливаемые на ЖКИ-модули, могут иметь различные наборы символов, причем это может зависеть как от "производителя контроллера, так и от модификации данной конкретной модели. Например, фирма Powertip выпускает ЖКИ-модули с четырьмя базовыми модификациями наборов символов: японской, европейской, французской и русской.
Более того, существует как минимум два варианта русского набора символов: контроллер фирмы Hitachi (Н2 по маркировке фирмы Powertip) и контроллер фирмы Epson (EH по маркировке Powertip). Контроллер фирмы Hitachi обладает существенным недостатком -у него весьма ограниченный набор русских символов, фактически у него имеются только прописные русские буквы, и даже среди них отсутствует символ Ф. Напротив, контроллер фирмы Epson содержит полный набор русских символов в прописном и строчном вариантах, поэтому он весьма удобен для отечественных применений. Это свойство контроллеров фирмы Epson обеспечило им заслуженную популярность на российском рынке, поэтому в последнее время основная масса импортируемых в нашу страну ЖКИ-модулей оснащены именно этим контроллером; в качестве примера в табл. 111.16 приведен набор символов этого контролера.
Таблица 111.16 Таблица кодов символов контроллера Epson,
набор "Russian"
0 1 2 3 4 5 6 7 8 9 A в с D Е F 0 в а Р s P Б ю ч а Я Ч 1 1 1 Й Q а «1 Г я ш I ц ч 2 i t 2 в R ь Г Ё 6 ъ » щ ч 3 # 3 с S с s Hi в ы !! я ^ 4 $ 4 D т d t э г ь ? Ф н 5 У. 5 Е и е u | и ё S X и .-6 & 6 F и f V й № ю > щ % 7 У 7 G ы 9 w Л 3 •я I * * 3 < 8 Н X h X п и << " t 9 ) 9 I V i У У й » t J W
« А * в J Z J z ф к а * ё 4 В + т
9 К с k ID ч Л J ? с * t С > < L ф 1 IS ш м *4 ч У >l D - = М 3 m IS ъ и с н * $ Е • > N л n 4 ы п $ :? •::- fl F / ? 0 _ о e э т £ • о 1
Из допустимых для размещения в DDRAM кодов символы с кодами <--DESCRIPTTON-->0...7 (и их дубликат с кодами 8...<-DESCRD?TION-->F) имеют специальное назначение - это переопределяемые символы, графическое изображение которых может на
значить сам потребитель, разместив соответствующую информацию в области CGRAM. Для программирования доступны 8 переопределяемых символов в режиме с матрицей 5x7 точек и 4 с матрицей 5x10 (в режиме 5x10 переопределяемые символы адресуются кодами DDRAM через один: <--DESCRIPTION~>0, 2, 4, 6). Для кодирования матрицы используются горизонтально "уложенные" байты, пять младших битов которых несут информацию о рисунке (причем 1 означает, что сегмент будет включен), 4-й разряд каждого из 8 (или 11-ти в режиме 5x10) байтов матрицы определяет левую колонку символа, а 0-й - правую. Старшие три бита не используются, равно как и старшие пять байтов, составляющих полную область матрицы символа (16 байтов) в режиме 5x10 (обратите внимание, что матрица программируемых символов допускает использование полной высоты строки (8 строчек для режима 5x7 и 11 строчек для режима 5х 10), то есть можно размещать точки в области подчеркивающего курсора).
Чтобы определить собственный символ, необходимо установить счетчик АС на адрес начала матрицы требуемого символа в CGRAM -<--DESCRIPTION-->0, 8, и т.д. (<--DESCRIPTION--^, , для режима 5x10 точек) - произвести перезапись всех байтов матрицы, начиная с верхней строки. После этого, записав в DDRAM код запрограммированного символа. <-DESCRH,TION->0, 1, 2 (<-DESCRD?TION->0, 2, 4 для режима 5x10 точек), на экране в соответствующем месте будет отображаться переопределенный символ.
Несколько слов о процессе инициализации ЖКИ-модуля. Производитель контроллера рекомендует выполнять следующую последовательность действий для инициализации. Выдержать паузу не менее 15 мс между установлением рабочего напряжения питания (> 4,5 В) и выполнением каких-либо операций с контроллером. Первой операцией выполнить команду, выбирающую разрядность шины (это должна быть команда независимо от того, какой разрядности интерфейс вы собираетесь использовать в дальнейшем), причем перед выполнением этой операции не проверять значение флага BF. Далее опять выдержать паузу не менее 4,1 мс и повторить команду выбора разрядности шины, причем перед подачей команды вновь не производить проверку флага BF. Следующим шагом необходимо вновь выдержать паузу, на этот раз 100 мкс, и в третий раз повторить команду установления разрядности шины, вновь без проверки BF. Эти три операции являются инициализирующими и
273
призваны вывести контроллер в исходный режим работы (то есть перевести в режим работы с 8-разрядной шиной) из любого состояния. Следом за ними нормальным порядком (без выдерживания пауз, но с проверкой флага BF) выполняется инициализация режимов работы с выдачей инициализирующей последовательности, аналогичной указанной в табл. 7 (содержащей, в том числе, команду выбора необходимой разрядности шины).
Необходимо помнить, что объявление режима работы с 4-разрядной шиной, производится обычно из 8-разрядного режима, который устанавливается автоматически после подачи напряжения питания. Это означает невозможность адекватно объявить необходимое значение флагов N и F, располагающихся в младшей тетраде команды установки разрядности шины. Поэтому команду необходимо повторить в уже установившемся 4-х разрядном режиме путем последовательной передачи двух тетрад, то есть необходимым для 4-разрядного режима образом.
Рассмотрим два примера подключения алфавитно-цифрового ЖКИ-модуля WM-C2002 фирмы Winstar к микроконтроллеру ATmegal28 фирмы Atmel.
Известно, что не все микроконтроллеры имеют встроенную аппаратную часть для работы с микросхемами внешней памяти. В этой связи в приведенных ниже примерах рассмотрены две схемы подключения ЖКИ-модуля.
В первом примере ЖКИ-модуль подключен к портам ввода-вывода микроконтроллера как внешняя память. Поэтому обращение микроконтроллера к ЖКИ осуществляется путем записи (чтения) данных (команд) в одну из ячеек памяти ОЗУ.
Во втором примере ЖКИ-модуль подключен к микроконтроллеру к его параллельным портам как произвольное внешнее устройство. Поэтому управление ЖКИ-модулем осуществляется путем записи и чтения информации через соответствующие порты ввода-вывода, к которым подключен ЖКИ.
Приведенные для каждого примера листинги программ написаны так, чтобы удобно было их сравнивать между собой. Поэтому они имеют повторяющиеся подпрограммы. Основное различие программ заключается в их ини-Циализационных частях, а также в подпрограммах управления ЖКИ-модулем.
Подключение LCD-модуля к микроконтроллеру как микросхемы внешней памяти. Схема подключения ЖКИ-модуля WM-C2002M-lYLYn к микроконтроллеру ATmegal28 как микросхемы внешней памяти
приведена на рис. 1. У этого микроконтроллера два порта цифрового ввода-вывода общего назначения (А и С) имеют альтернативную функцию для подключения микросхем внешней памяти. Причем для задания адреса используются оба порта. Младший байт адреса формируется на выводах порта A (ADO - AD7), а старший - на выводах порта С (А8 - А15). Данные (8 битов) передаются также через порт А. Для управления направлением передачи данных (чтение или запись) используются также два вывода PG1 и PG0 порта G. В зависимости от передаваемых данных - адреса или команд чтения (записи) микроконтроллер на аппаратном уровне формирует на этих выводах стробирующие импульсы. Благодаря этому для обращения к внешней памяти используются те же команды чтения и записи (Ids и sts), что и для внутренней.
РАО(АОО) PA1(AD1I РА2(А02) РАЗ(АОЗ) PA4(AD4) PA5(ADS) РАЩАОЩ PA7(AD7)
PC7(A1S)
РС1(А9) PCO(AS)
PGl(-RD) p — PGO(-WE) —
DBO DSr D82 DS3 DS4 DBS DB6 DB7
RS FV-W
E
Vcc TFT GND 4}
1A Vcc 1B E 4A
1Y о 4B 2A 5 4Y 2& £ ЗД 2Y « 3B GND 3Y
Рис. Ш.76. Схема подключения ЖКИ-модуля к микроконтроллеру как внешней памяти
В рассматриваемой схеме подключения ЖКИ-модуля порт А используется для передачи данных (символов для отображения) и команд управления, а порт С (старший байт адреса) - для формирования управляющих сигналов на входах ЖКИ, причем биты адреса А8 и А9 используются для формирования сигналов RS и R/-W, а бит А15 - для формирования разрешающего сигнала для обращения к ЖКИ. Другими словами этот сигнал разрешает прохождение управляющих сигналов (-RD) и (-WE) микроконтроллера на вход Е ЖКИ-модуля. Так как для разрешения записи и чтении в ЖКИ используется один вход Е, а у микроконтроллера эти сигналы формируются на двух разных выводах, то для их объединения в схеме применена дополнительная микро-
274 шштшнейЗЙЛМ
JNM9U5T
„UKST
; ттштшш лршгр
Ж, ШьЩ, iF—яншириаиюявг
Д, Сш бг—ж&нгяражза! шж вянххл-Ы
J*! rl*, I est€
ШгЩ.9НВ • • й Н М Л С г Н
satt ВИ8Е1, rift Н И М
gtisflHMRf^trli ШяЭЙьЗШ яЫаКЩ,1г1С
aftslHlKf'.rlS
"waU$tate"=2
limits фа 0xM№4x7FFF,
Ш rM, (CK<SRW1«) 1 p « S R l ) «MtM€VCR,rl6 l i i r!6.<J«SRW11) j (1«SBL2) ) <««SRL1)
s*sXMCRA,rl6
)ям£С®-Зшетлеш Uir l6 ,3
"TAGANROG"
езкН POLOGE3NIE_CURSOR
Mirl6»*T caB S1MVOLJDUTJLCD Idirl i ," " «ail SIMVOLJ>OTJLCD
«all SBfVOLjDUTJLCD Idirii,* * oU SDWOLjOUTTJLCD Ml rt6» *G* call SXMVOL_OUT_LCD Mirl i ," * caB SMVOLJDUrJLCD lii гШ, "A* ca! SIMVOb._€MITJLC© Mirl6," • caB SDfVOL_OI]ITJLCD »rl6,*!f* can smVOLOUTJLCD Hirl6," ' call SSMVOLJOUTJLCD Mirli»1»'' call SIMVOIJOIJTJLCD Mi 1-16, < " oi l SIMVOLOOTJLCII Miri6,4>" call SIMYOLJ3UTJLCD Miri i ," * call SmVOLjDOTJLCD M i r l ^ ' G ' can SIMVOLJOIJTJLCB Шг16,<И caB ITOMIGEMIEjCUBSOR
/* «1ТЖ1Э#Укв#1 САУ** » ДО, 84, MS, 32,176, 221» MS, JZ iS4 >7,22«, «(, 32, *3, «S, I«# */
Mir t€ ,M;F caR'SDIVOLjDUT LCD Mi rlC, §4 ;Г caUSlMVOL OUT LCD И1г1€„Ш;ЯГ caB SUflVOLjt№TJLCD Mirl i , 32 «iisiMvoL OUT ист taBSIMVOL OUT JLCD
«all SIMVOL OUT LCD M l r № , » j # e i S I M V O L W LCD
275
<&Ш M¥OL_OllT_lCD
гай SraWOLOUTJJC-D Hi rti» 32
iiSiirMfeJZ , «ASIftIvm*jOI2TLCD
гай I OTOTmjOTTJLOD
oafll STOTO&JWTLCD
odllSMV€lLJJPTJLCII ШпИВДЭТяф
asm ш г а у ю т ю » «alii шшгамошчш» IHJinflfii,"" ea!IIfflW«L_e№IlJlC» аяШШШШ,_€1ЭТ_]1£»
IRoiiWk: .;-фошм<т1Щ1щртт№(0юттшм1жщ№кц$
jjnjpffimftWk
•^^ч^тицттштция штшоашатр ШШ «Амеикиря
;;йШЩшшьЕе~ ттшакдлтти&^ШШАМжгт
тЮП.ШПУ - ШптнштафзяшШвЖШ.Штт тпШктшнаььсдашштсбудутаапиттнтмт /ёаитытттжтй&ШШШйШ *'/ ;'!Ш! Шпщитсещижатоишшатви £*{Шт&шцш
tiriitcdis$ley: ^ишщиалиаиння Ж№М тек теш-иш
rcealbsttteegka
/ШШЖШЗШФшвтитьгЫтшймтпюишить Щ^щкшпуяеву1о^шзишш'(а^рлсСф **/
rccal! zz*$eegka
•/^ШЖШ:0Ж1'*'Хт1атм4ть .курщр^тутеут дави-Ш^^^есЩ.:Устм1от*ть:йттлй:отттп1£л.ь11р щф^ШШШЛ.а/шчшануюттщшо.^^тжт^^
втшиш мештш **/
ШН16,0Ь00000,010
retail zxadecgka
П*№№0у&:в; IJ/D S Уеттовмть йштжттт сМш impwo (I/J)=i) шт '.mmo fl/Р^Ф «да mtm-тттедногоiKo&ijiffflMtW.fpLmpeiHmtb (&rl)
'^г^епят^межце^оедщиом.курсара.'*!
ШгИ6,0Ь0000в11в tfi«ll:€PMANDA_fcCD rteftll zjadergka
1*0 0 0 0 1 D С В Втючить(1У=1)/выкпючитъ(1М>) дисплей. Зажечь(С^1)/погасить(СЧ)) курсор. Изображение курсора сделать мигающим (В-1). */
fdirl6,0b00001100 sail COMANDA.LCD real! zadergka
1*0 01 PL N F * * Установить разрядность шины данных 4 бита (DL^O) или 8 битов (DL-1), количество строк дисплея - одна (№*0) или две (N=1), шрифт -5x7 точек (JP4f) или 5x10 точек (F=l). *1
ealiC0MANDA_L€D real! zadergka
ret » * * * • * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
smmhjomjjCD', ^выводимый символ должен находиться в г16
Ш Х Н , ОЫСНКЮ001 И ! X L , ОЬОООООООО -ft Xf r\6 «allzad
ret
CGMAMDAJjCB: ;№мм/мШ должна находиться в r!6
шжт, оьшмкюоо m%L, ш&тш тШ-шё
vet
POM>GEMIE_CUKSOR: ft, тятжшж тревра должно находиться в г16, ис-тввезуеякя шштже г17 */
шж, вшкюоооо lliiirf% №19909090 said) rfi\, rJ7
mcalB ;zad iret
ill»: Mii r J 9 , 1 ©
•йве *U ;|>Г:Ш£ 1111
bnte Mil •dec rlS tenrneOIII
r*t
жайеп tier ;г8 "farme z&der
brns aader itffit
ffitffc:
276 ret
В результате выполнения программы в микроконтроллере на экране дисплея должно появиться изображение, приведенное на рис. 111.77.
Рис. Ш.77. Изображение на экране ЖКИ-модуля WM-C2002M-lYLYn
Подключение LCD-модуля к параллельным портам ввода-вывода микроконтроллера. Схема подключения ЖКИ-модуля WM-C2002M-lYLYn к микроконтроллеру ATmegal28 приведена на рис. Ш.78.
Рис. 111.78. Схема подключения ЖКИ-модуля к параллельным портам микроконтроллера
В этой схеме ЖКИ-модуль используется только для отображения информации, поэтому на его 5 вывод подан логический 0 (вывод подключен к общей шине). Для задания типа передаваемых данных (управляющие или символы для отображения) используется вывод PG1 порта G микроконтроллера, а для формирования разрешающего сигнала Е (стробирующего импульса) вывод PG0 этого же порта. Команды управления и данные на ЖКИ передаются через порт А.
Так же как и для предыдущей схемы включения ЖКИ-модуля, ниже приведен листинг программы, выводящей слово Т A G А N R О G в верхнюю строку дисплея.
Так как программы "похожи", повторяющиеся комментарии с предыдущей программой в этой программе не приведены.
.include "ml28def.inc"
.LIST • ft * * ft A A ft ft ft ft A ft * A A A A A A ft ft ft A * * * A * A A * A ft *
.CSEG .ORG S000 jmp Reset ;переход no сбросу
.ORG $050 • основная программа
. A A A Aft *M/>/>;»/)/» \lj\itl A A A A A A A A A A A A A
Reset: Idi
out Idi
out
. *******.,
; начало основной программы r l6, low(RAMEND) {установить
начальное значение стека SPL, г16 г16, high(RAMEND) ; RAMEND
определен в ml28def.inc SPH, г16
.******** "инициализация портов* I* неиспользуемые порты В, D, Е, F - настроить
как входы и включить подтяжку резисторов, порты А, С и G - настроить как выходы и установить состояние их выходов в "0"*/
Idi r l6, SOff outDDRA, r l6 Idi r l6 , $00 out PORTA, r l 6
Idi r l6 , $00 out DDRB, r l6 Idi r l6 , SOff out PORTB, r l6
Idi r l6 , SOff out DDRC, r l6 Idi r l6, $00 outPORTC, r l6
Idi r l6, $00 out DDRD, r l6 Idi r l6 , SOff outPORTD, r l6
Idi r l6 , $00 out DDRE, r l 6 l d i r l 6 , 0 b l l l l l l l l out PORTE, rl 6
Idi rl6,0b00011111 stsDDRG, r!6 Idi r l 6, $00 sts PORTG, r l6
Idirl6,$0 sts DDRF, r l6 Idi r l 6, SOff sts PORTF, r l6
;******* основная программа **************
call init_displey
; пример вывода данных на LCD слова "ТА GANR OG"
Idi r l6 , 3 радание первоначального положения курсора
.NOLIST call POLOGENIE CURSOR
277 Idi r l6 , 'T' call SIMVOL Idi r l 6 , ' ' call SIMVOL Idi r l6 , 'A' call SIMVOL Idi r l 6 , ' ' call SIMVOL Idi r l6 , ' C call SIMVOL Idi r l 6 , ' ' call SIMVOL Idi r l6 , 'A' call SIMVOL Idi r l 6 , ' ' call SIMVOL Idi r l6 , 'N' call SIMVOL Idi r l 6 , ' ' call SIMVOL Idi r l6 , 'R' call SIMVOL Idi r l 6 , ' ' call SIMVOL Idi r l6, 'O' call SIMVOL Idi r l 6 , ' ' call SIMVOL Idi r l6, 'G' call SIMVOL
OUT
.OUT
OUT
OUT
OUT
P U T
OUT
P U T .
OUT.
.OUT.
OUT.
OUT.
OUT.
OUT.
OUT
LCD
LCD
LCD
LCD
LCD
LCD
LCD
LCD
LCD
LCD
LCD
LCD
LCD
LCD
LCD
/* "ТТИЮФУкаф. САУ" = {84, 84,165, 32,176, 228,169,32,186, 97, 228, 46, 32, 67, 65,169} V
ld i r l6 ,84 ,T call SIMVOL_OUT_LCD Idi r l6 , 84 ;Г call SIMVOL_OUT_LCD Idi rl6,165 ;И call SIMVOL_OUT_LCD ldir l6,32 call SIMVOL_OUT_LCD Idi rl6,176 ;Ю call SIMVOL_OUT_LCD Idi rl6,170 ;Ф call SIMVOLOUTJLCD Idi rl6,169 ;У call SIMVOL_OUT_LCD Idi r l6 ,32 call SIMVOL_OUT_LCD Idirl6,32 call SIMVOL_OUT LCD Idi r l6,32 call SIMVOLOUT.LCD Idi rI6,32 call SlMVOL_OUT_LCD Idi r l6,32 call SIMVOL O U T J X D Idirl6,186 ;K call SIMVOL_OUT_LCD Idi r l6 , 97 ;a call SIMVOL_OUT_LCD Idi r l6, 228 ;ф call SIMVOL_OUT_LCD Idi r l6 , ' . ' call SIMVOL_OUT_LCD Idi r l 6 , ' ' call SIMVOL_OUT_LCD Idi r l6, 67 ;C call SIMVOL OUT LCD
pa
Idi r l6 ,65 ;A call SIMVOL_OUT_LCD Idi rl6,169 ;У call SIMVOL_OUT_LCD
.*******************************************
FonWk: ; фоновая программа (бесконечный цикл)
jmp FonWk
init_displey: ;**^инициализация символьного 2002 индикато-
**
rcall zadergka
Idi r l6 , ObOOOOOOOl call COMANDA_LCD rcall zadergka
Idirl6,0b00000010 call COMANDA_LCD rcall zadergka
Idirl6,0b00000110 call COMANDA_LCD rcall zadergka
Idirl6,0b00001100 call COMANDA_LCD rcall zadergka
Idi r l6 , ObOOllllll call COMANDA_LCD rcall zadergka
ret .******************************************* SIMVOL_OUT_LCD: ;выводимый символ должен находиться в г!6
Idi XL, ОЬООООООЮ sts P O R T G , XL установить на входе
"RS">KKH"1" out PORTA, r l6 ;выдать в PORTA значение
выводимого символа call strob ;сформироть и выдать апроби
рующий импульс наЖКИ call zad программная короткая задержка
ret
COMANDALCD: ;команда должна находиться в г16
Idi XL, ObOOOOOOOO sts PORTG, XL установить па входе "RS"
ЖКИ "0" out PORTA, r l6 ;выдать в PORTA команду call strob сформировать и выдать строби-
рующий импульс на ЖКИ call zad программная короткая задержка
ret
POLOGENIECURSOR: ;положение курсора должно находиться в г16, ;исполъзуется также rl 7
Idi XL, ObOOOOOOOO sts PORTG, XL установить на входе "RS"
ЖКИ "0" Idi r l7, 0Ы0000000 add rl6, r l7 out PORTA, r l6 ;выдать в PORTA команду-
278 положение курсора
call strob ;сформироть и выдать апробирующий импульс на ЖКИ
rcall zad ret
формирование на разрешающем входе "Е" ЖКИ апробирующего импульса для записи strob:
Ids r l6 , PORTG ori r l6 , ObOOOOOOOl sts PORTG, r l6 установить на выводе
PGO "1" nop nop nop a n d i r l 6 , 0 b l l l l l l l 0 sts PORTG, r l6 установить на выводе
PGO "О" ret
подпрограмма временной задержки на 655350 тактов zadergka:
Idi r l9,10 llil:
decr8 brne llll dec r9 brne llll dec r l9 brne llll
ret
подпрограмма временной задержки на 65535 тактов
zader:
decr8 brne zader decr l9 brne zader
ret
;подпрограмма временной задержки на 255 тактов zad:
decr8 brne zad
ret
Основное различие в приведенных программах заключается в выполнении подпрограмм SIMVOL_OUTJLCD, COMANDAJLCD, POLOGENIECURSOR, а также в наличии дополнительной подпрограммы strob в последнем примере. Также нет необходимости выполнять в последней программе процедуру инициализации внешней SRAM.
Подключение графического LCD-дисплея к микроконтроллеру. Выше были рассмотрены алфавитно-цифровые LCD- и светодиодные LED-дисплеи. Они находят широкое применение в тех случаях, когда не требуется отображение большого объема информации. Более
информативными являются графические дисплеи. Они позволяют выводить одновременно цифровые и графические изображения (графики, номограммы и т.д.).
Такие дисплеи изготавливаются двух типов - монохромные и цветные. В общем случае производительности восьмиразрядных микроконтроллеров недостаточно для поддержки цветных дисплеев, а с монохромными они легко "справляются". На рис. Ш.79 приведен пример графического дисплея BG16080В фирмы BOLYMIN.
Рис. Ш.79. Пример изображения на графическом LCD-дисплее
Это монохромный LCD-дисплей с разрешением 160x80 точек. Подключение графического дисплея к микроконтроллеру может быть выполнено так же, как и алфавитно-цифрового.
Подключение семисегмеитного LED-дисплея к микроконтроллеру. Семисегмент-ный светодиодный индикатор представляет собой набор восьми светодиодов, размещенных в одном корпусе и предназначенных для индикации десятичных цифр и точки. Существуют также многоразрядные индикаторы (LED-дисплеи) - рис. 111.80.
Рис. Ш.80. Семисегментные LED-дисплеи
Светодиодные индикаторы имеют различные цвета, типоразмеры, а также различные интенсивности излучений. Более подробно с их параметрами можно познакомиться, например, на сайте одного из производителей светодиодных индикаторов фирмы Kingbright http://www.kingbright.com.
Для минимизации количества выводов многоразрядные индикаторы изготавливаются двух типов - с общим анодом (рис. 111.81) и с общим катодом (рис. 111.82).
По своим параметрам эти индикаторы идентичны. Выбор конкретного типа определяется
279
удобством включения в разрабатываемую схе-:му.
На примере четырехразрядного индикатора с общим катодом рассмотрим различные способы подключения его к портам микрокон
троллера. Выше было сказано, что с целью минимиза
ции числа выводов индикаторы выполняются с общим катодом. Поэтому каждая группа све-тодиодов, относящаяся к определенному разряду индикатора, имеет соответствующий общий вывод катодов светодиодов Digl - Dig4.
50.3(1.98)
—Шщ 12.7(0.51 1гГ71о,6) i2.7(d.5)
"Я?* .ШШшШ Diol " Diq2 u Pi fUJ о '-щг
to
2.54(0.1) Й
Oigh 12 V D i 9 2 : 9
L
4 2 1 10 5 3
Dig3: 8
о Ь с I d я f g DP!
T 1 1 7 4 2 1 10 5 3 1 1 7 4 2 1 10 5 3
Dig3: 8 Dig4: 6
о D C d » f g|DP.
ИЛ-.Ш 1 1 7 4 2 1 10 5 3 I I 7 4 2 I 10 5 3
Л
Учитывая инерционность восприятия глазом человека светового потока, можно, например, осуществлять поочередное включение разрядов индикатора через 1 мс, при этом будет создаваться ощущение непрерывности свечения всех разрядов. Такой режим работы индикатора принято называть мультиплексным. Здесь следует обратить внимание то, что каждый разряд индикатора будет светиться 1мс из 4 мс, что, в конечном счете, приводит к снижению общей интенсивности свечения во столько же раз по сравнению с работой индикатора на постоянном токе.
Подключение LED-дисплея к параллельным портам микроконтроллера. При подключении к микроконтроллеру внешних устройств необходимо учитывать его нагрузочную способность по выводам портов. Такая информация приводится в Datasheets к микроконтроллерам. Например, для микроконтроллера ATmegal28 ток через один вывод микроконтроллера не должен превышать 10 мА, а общий суммарный ток через все выводы микроконтроллера - 80 мА.
Последнее обстоятельство учтено при разработке схемы подключения LED-индикатора к параллельным портам микроконтроллера -рис.1П.83.
Рис. Ш.81. Схема четырехразрядного LED СА56-12EWA
so.3d .gal I 12.7(0.51 12.7(0.5) 12,7(0.51
DIQI z. о'дД 0 1 ° 3 D'°4 \ . «1.51.0591
I «5(0.02)
- J L_ 2.5 4(0.1)
Dtgl: 12
1 a t> с d « f 3 DP
11 7 4 2 1 10 5 3
0ij,3: Я Д.
5Г 0lg2: 9 1
It 7 4 2 1 1
Dlg4: 6 1
S if $ 0 5 3
n 7 4 2 1 ID 5 3
>| b| «I dj « I i\ g H
f f f f H f f 11 7 4 Z I 1С 5 3
Рис. Ш.82. Схема четырехразрядного LED CC56-12EWA
• Аноды светодиодов всех одноименных сегментов разрядов также объединены. Такая конструкция позволяет включить в каждый конкретный момент времени только один разряд индикатора.
PC0 РС1 РС2 РСЗ РС4 РС5 РС6 РС7
РА7 РА6 РА5 РА4 РАЗ РА2 РА1 РАО
R1-RS 330
-сп-• о - - о
-сз-4Z3-- о -CZH 1Ф
a b с d е f g DP
CCS6-12EWA LED
Dig4 Dig3 Dig2 Dig1
VT1-VT4 MMUN2211
72
Рис. 111.83. Схема подключения LED-дисплея к параллельным портам микроконтроллера
Так как при включении всех сегментов одного разряда индикатора общий суммарный ток через катоды светодиодов может достигать 80 мА, для коммутации разрядов индикатора применены четыре "цифровых" транзистора V1-V4.
Работает схема следующим образом. Для индикации цифры в младшем разряде
индикатора на выводах порта С устанавливается кодовая комбинация выводимой цифры, а
280
также на выводе РАО порта А устанавливается высокий уровень " 1 " (при этом на остальных выводах порта А должен быть низкий уровень). В результате ключ на транзисторе VT4 замыкается и через сегменты младшего разряда индикатора протекают токи. Эти токи с учетом падений напряжений на светодиодах индикатора и электронном ключе транзистора при напряжении питания микроконтроллера 5 В и резисторах 330 Ом через каждый сегмент индикатора примерно равны 10 мА. При прошествии заданного интервала времени на выходах порта С устанавливается новая кодовая комбинация для индикации цифры во втором разряде индикатора и замыкается ключ на транзисторе VT3. Аналогичным образом через определенные интервалы времени последовательно включаются два следующих разряда. Затем все начинается сначала. Такой режим работы индикатора с поочередным включением разрядов получил название - динамический.
Из приведенного анализа работы схемы составлен алгоритм программы для реализации динамической индикации, который положен в основу приведенной ниже программы.
В этой программе реализован счетчик секунд от 0 до 9999 с выводом на четырехразрядный семисегментный индикатор.
Алгоритм работы программы заключается в следующем. После инициализации портов микроконтроллера и инициализации таймера-счетчика 0, программа переходит на выполнение фоновой программы "main", которая представляет собой бесконечный цикл. Дальнейшая работа программы осуществляется по прерываниям, возникающим при достижении заданного числа в компараторе счетчика-таймера 0 (см. инициализацию счетчика в программе). При тактовой частоте микроконтроллера 8 МГц это прерывание происходит примерно один раз в миллисекунду. В результате обработки прерывания микроконтроллер переходит на выполнение подпрограммы INT_COMP_TIMER0. В начале этой подпрограммы реализован программный двухбайтовый счетчик (ClockH, Clock_L) с коэффициентом счета 1000 для формирования флага Flag_Clock секундного сигнала. Затем реализован программный счетчик секунд (ClockjsecH, ClocksecJL). Этот счетчик также двухбайтовый с коэффициентом счета 9999, т. к. большее число на четырехразрядный индикатор вывести нельзя.
При каждом увеличении числа счетчика секунд на единицу выполняются подпрограмма преобразования двоичного двух
байтового числа в двоично-десятичное с помощью подпрограммы BIN_BCD (эта подпрограмма приведена на сайте www.atmel.com) и подпрограмма подготовки цифр для индикации NewJLEDX. В результате выполнения этих подпрограмм в ячейках памяти ОЗУ с символическими именами LED0 - LED3 будут размещены цифры в десятичном формате, соответствующие числу секунд.
В конце обработки прерывания выполняется вывод цифр на LCD-дисплей. Для этого вначале проверяется ячейка памяти с символическим именем LED_Poz. В этой ячейке хранится информация о номере разряда выводимой цифры в предыдущем прерывании. По ее состоянию определяется следующий разряд, считывается соответствующее значение из ячеек памяти LED0 - LED3, затем осуществляется перекодировка десятичных цифр в коды семи-сегментного индикатора, которые хранятся во flash-памяти программ по метке kodled. После преобразования осуществляется выдача кода цифры в порт С, а в порт А - кода, соответствующего разряду числа.
По окончании обработки прерывания по таймеру-счетчику 0 осуществляется возврат в фоновую программу.
Листинг программы счетчика секунд от О до 9999 с индикацией на четырехразрядном LED-дисплее приведен ниже.
.NOLIST
.include "ml28def.inc"
.LIST
определение символических имен регистрам .def rSave = rl5 ;регистр для хранения SREG в подпрограммах
прерывания - нельзя использовать для других целей
.def tempL= г16 ;временный регистр
.def tempH= г17 ;временный регистр
.def fbinL= г16 ;двоичное значение, младший байт
.def fbinH = г17 ;двоичное значение, старший байт
.def tBCDO = rl7 ;BCD значение, цифры I и О
.def tBCDl = rl8 ;BCD значение, цифры 3 и 2
.def tBCD2 = rl9 ;BCD значение, цифра 4
.def temp = r5 ;временный регистр
.CSEG // определение сегмента памяти программ ; настройка векторов прерываний
281 .ORG $000 // Установка программного
счетчика по адресу 0 jmp Reset ;переход по сбросу
.ORG OCOaddr // Установка программного счетчика по адресу прерывания таймера счетчика 0
jmp INT_COMP_TIMER0 //
.ORG $050 ;с этого адреса начинается основная программа
Reset: ; начало основной программы Idi r l6 , low(RAMEND) ; установить
начальное значение стека out SPL, г16 Idi r l6 , high(RAMEND); RAMEND оп
ределен в ml28def.inc out SPH, r l6
; инициализация портов
Idi r l6, ObOOOOl 111 ; Определить входьЛ выходы для порта А
out DDRA, г16 Idi г16,0Ы1110000 ; включить подтяжку
внутренних резисторов для входов (лог.1), и установить на выходах 0 В (лог.0)
out PORTA, r l6
Idi r l6, ObOOOOOOOO out DDRB, r l6 Idi rl6,0Ы1111111 outPORTB, r l6
ldir l6 , 0М1111Ш outDDRC, r l6 Idi r l6, ObOOOOOOOO out PORTC, r l6
Idi rl6, ObOOOOOOOO out DDRD, r l6 Idi r l 6 , 0 b l l l l l l l 1
out PORTD, r l6
Idi rl6, ObOOOOOOOO out DDRE, r l6 I d i r l 6 , 0 b l l l l l l l l out PORTE, r l6
Idi rl6, ObOOOOOOOO sts DDRF, r l6 I d i r l 6 , 0 b n i l l l l l sts PORTF, r l6
Idi rl6, ObOOOOOOOO sts DDRG, r l6 Idi rl6,0Ы1111111 sts PORTG, r l6
;****Инициализация таймера счетчика 0 (8 бит)**
Idi rl6, ObOOOOl 111 //сброс при совпадении в компараторе и установка предде-лителя 1024
outTCCRO, г16
Idi 1-16, 8 //Запись числа в компаратор таймера счетчика 0
out OCR0, г16
Idi г16, ОЬООООООЮ // Разрешение прерывания при совпадении счетчика
таймера с числом в компараторе outTIMSK, г16
sei // разрешить все прерывания
main: // фоновая программа
jmp main // Безусловный переход по метке "main"
» ;Обработка прерываний по таймеру-счетчику 0 INT COMP_TIMER0:
in rSave, SREG // Сохранение статус регистра в регистре r l5 (rSave)
push r l6 // Сохранение содержимого регистров в стеке
push г17 push г20 push г21 push ZL push ZH
//_Счетчик для установки флага 1 с - Flag_Clock
// прерывания по таймеру 0 настроен на 1 мсек // поэтому коэффициент счета счетчика равен 1000 Ids ZL, ClockJL Ids ZH, Clock_H adiw ZL,1 cpiZH,Ob00000011 brnedalhe cpiZL,0bl 1010000 brne dalhe clrZL clr ZH sts Clock_L, ZL sts Clock_H, ZH Idi ZL, 1 sts Flag_Clock, ZL установить флаг секунды jmp out_sch dalhe: sts ClockL, ZL sts ClockJL ZH out_sch:
// счетчик секунд от 0 до 9999
Ids tempL, FlagCiock проверить флаг tst tempL breq flag_0 ;если флаг не установлен, то выйти Ids tempL, 0 sts Flag_C!ock, tempL ;обнулить флаг секунд Ids ZL, CIocksecJL ;считать двухбайтный счет
чик секунд Ids ZH, Clock_sec_H adiw ZL,1 увеличить счетчик секунд на 1 cpiZH,0b0010011! brnenoJOOOO cpi ZL, ObOOOlOOOO brne no_10000 ; если 10000, то обнулить счетчик clr ZL
282 clrZH noJOOOO: sts Clock_sec_L, ZL sts Clock_sec_H, ZH обновление выводимых цифр на LCD-дисплей Ids tempL, Clock_sec_L подготовка данных для
выполнения п/п BIN_BCD Ids tempH, Clock_sec_H call BIN_BCD ;выполнить подпрограмму преоб
разования двухбайтового двоичного числа в упакованное двоично-десятичное
call NewJLEDX ;выполнить подпрограмму обновления данных для вывода на LCD-дисплей
flagj): ;вывод на LCD-дисплей - через каждую мс
Ids rl6, LED_Poz cpi rl6, 3 // Сравнение содержимого регистра с
константой breq perehod_na_LEDO // Перейти по метке если
равно cpi г16,0 breq perehod_na_LEDl cpi rl6,l breq perehod_na_LED2 cpi rl6,2 breq perehod_na_LED3
perehodnaJLEDO: Idi rl6,0 sts LED_Poz, rl6 Ids r20, LEDO // перезапись из ячейки памяти
в регистр Idi г21,0 // запись в регистр константы
из flash-памяти
Idi ZL,low(kodled*2) // запись в регистровую пару Z начального адреса масс-сива кодов 7-го индикатора
Idi ZH,high(kodled*2)
add ZL, r20 // сложение младшего байта адреса массива с числом
adc ZH, r21 // сложение старшего байта адреса с О и с флагом переноса в случае переполнения предыдущей операции
lpm rl6, Z / / Чтение по вычисленному адресу из flash-памяти программ
out PORTC, rl6 // Переслать значение г16 в порт С Idi г16, ОЬООООЮОО // Присвоить регистру г16 байт
со значением включения 4 разряда четырехзначного индикатора
out PORTA, rl6 // Переслать значение г16 в порт А jmp vixod
perehod_na_LEDl: Idi rl6,l sts LED_Poz, rl6 Ids r20, LED1 // перезапись из ячейки памяти в
регистр Idi г21,0 // запись в регистр константы из
flash-памяти
Idi ZL,low(kodIed*2) // запись в регистровую пару Z начального адреса массива кодов 7-го индикатора
Idi ZH,high(kodled*2)
add ZL, r20 // сложение младшего байта адреса массива с числом
adc ZH, r21 // сложение старшего байта адреса с О и с флагом переноса в случае пере
полнения предыдущей операции lpm rl6, Z // Чтение по вычисленному адресу из
flash-памяти программ out PORTC, rl6 Idi rl6, ObOOOOOlOO // Присвоить регистру rl6
байт со значением включения 3 разряда четырехзначного индикатора
out PORTA, rl6 jmp vixod
perehod_na_LED2: Idi rl6,2 sts LED_Poz, rl6 Ids r20, LED2 // перезапись из ячейки памяти в
регистр Idi г21,0 // запись в регистр константы из
flash-памяти Idi ZL,low(kodled*2 )// запись в регистровую па
ру Z начального адреса массива кодов 7-го индикатора
Idi ZH,high(kodled*2) add ZL, r20 // сложение младшего байта адреса
массива с числом adc ZH, r21 // сложение старшего байта адреса с О
и с флагом переноса в случае переполнения предыдущей операции
lpm rl6, Z // Чтение по вычисленному адресу из flash -памяти программ
out PORTC, rl6 Idi rl6, ObOOOOOOlO // Присвоить регистру rl6 байт
со значением включения 2 разряда четырехзначного индикатора
out PORTA, rl6 jmp vixod perehod_na_LED3: Idi rl6,3 sts LED_Poz, rl6 Ids r20, LED3 // перезапись из ячейки памяти в
регистр Idi г21,0 // запись в регистр константы из
flash -памяти Idi ZL,low(kodled*2) // запись в регистровую па
ру Z начального адреса массива кодов 7-го индикатора
Idi ZH,high(kodled*2) add ZL, r20 // сложение младшего байта адреса
массива с числом adc ZH, r21 // сложение старшего байта адреса с О
и с флагом переноса в случае переполнения предыдущей операции
lpm rl6, Z // Чтение по вычисленному адресу из flash -памяти программ
out PORTC, rl6 Idi rl6, ObOOOQOOOl // Присвоить регистру rl6 байт
со значением включения младшего разряда четырехзначного индикатора
out PORTA, rl6 jmp vixod
vixod: pop ZH // Восстановление содержимого
регистров из стека pop ZL pop r21
283 pop r20 pop r l7 pop r l6 out SREG, rSave // Восстановление содержи
мого статус-регистра до обработки прерывания
reti // Выход из программы прерываний с разрешением прерываний
подпрограмма преобразования двоичного числа в двоично-десятичное /*псред выполнением подпрограммы нужно при
своить: fbinL = ;двоичное значение, младший байт fbinH = ;двоичное значение, старший байт результат будет находиться в: tBCDO = BCD значение, цифры 1 и О tBCDl = BCD значение, цифры 3 и 2 tBCD2 = BCD значение, цифра 4 */ B1NJJCD:
binl6BCD5: Idi tBCD2, -1
binl6BCD5_loop_l: inc tBCD2 subi fbinL, low(lOOOO) sbci fbinH, high(lOOOO) brsh binl6BCD5_loop_l subi fbinL, low(-lOOOO) sbci fbinH, high(-lOOOO) ldi tBCDl,-Oxll
binl6BCD5_loop_2: subi tBCDl, -0x10 subi fbinL; low(lOOO) sbci fbinH, high(lOOO) brsh binl6BCD5_loop_2 subi fbinL, low(-lOOO) sbci fbinH, high(-lOOO)
binl6BCD5_loop_3: inc tBCDl subi fbinL, low(lOO) sbci fbinH, high(lOO) brsh binl6BCD5_loop_3 subi fbinL, -100 Idi tBCDO, -0x10
binl6BCD5_loop_4: subi tBCDO, -0x10 subi fbinL, 10 brsh binl6BCD5_ioop_4 subi fbinL, -10 add tBCDO, fbinL
ret
Подпрограмма преобразования и подготовки цифр для вывода на LCD-дисплей
;исходные значения
Подключение LED-дисплея к SPI-интерфейсу микроконтроллера. В рассмотренной выше схеме подключения LED-дисплея к параллельным портам микроконтроллера (рис. III.83) используется 12 выводов микроконтроллера, причем выводов, к которым может быть подключена высокоскоростная SRAM-память.
;tBCD0 = r l7 ;BCD значение, цифры 1 и О ;tBCDl = r l8 ;BCD значение, цифры 3 и 2
New_LEDX:
mov temp, r l7 andi r l7 , ObOOOOlll 1 //Выделение в регистре r l7
младшей тетрады sts LED0, r l7 mov r l7 , temp swap r l7 andirl7,0b00001111 sts LED1, r l7
mov temp, r l8 andi r l8 , ObOOOOllll //Выделение в регистре r l8
младшей тетрады sts LED2, г 18 mov r l8 , temp swap r l8 andi r l8 , ObOOOOllll sts LED3, r l8 ret
;*** запись кодовых комбинаций десятичных цифр семисегментного индикатора в память программ (с 0 по 9)****
.ORG $6000 kodled:
.DB 0Ы1111100, ОЬОПООООО, ОЫ1011010, 0Ы1110010, ОЬОПООПО, OblOUOllO, ObOOlllllO, ОЫ1100000,0ЫШ1110, ObllllOllO
;3адание области памяти ОЗУ .DSEG .ORG 0x0200 // задание начального адреса ОЗУ
;зарезервировать ячейки в памяти ОЗУ LED0: .Byte 1 // ячейка памяти для хранения
числа выводимого в младший разряд LCD-дисплея
LEDl: .Bytel // — LED2:.Bytel // — LED3: .Byte 1 // ячейка памяти для хранения
числа, выводимого в старший разряд LCD-дисплея
LED_Poz: .Byte 1 // Номер выводимого через 1 мс разряда (от 0 до 3) на LCD индикаторе
Flag-Clock: .Byte 1 // Выделение одного байта под флаг (1 с)
ClockJL: .Byte 1 // Младший байт счетчика Clock_H: .Byte 1 // Старший байт счетчика Clock_sec_L: .Byte 1 // Младший байт счетчика
секунд C!ock_sec_H: .Byte 1 // Старший байт счетчика
секунд
Для решения уменьшения количества используемых выводов микроконтроллера возможно применение последовательного SPI-интерфейса микроконтроллера, показанного на рис.Ш.84.
В этой схеме для передачи данных у микроконтроллера используется всего три вывода порта В: РВ1 (альтернативная функция вывода SCK для SPI-интерфейса), РВ2 (альтернатив-
284
ная функция вывода MOSI для SPI-интерфейса) и один вывод, настроенный как
J?
I1
от
> с d е f д DP
D;SJ C!g3D.g2 0:gt
VT1-VT4 MMUN2211
Рис. 111.84. Схема подключения четырехразрядного LED-дисплея CC56-EWA
к SPI-интерфейсу микроконтроллера
выход (любого свободного порта ввода-вывода микроконтроллера, например РВ4).
Для преобразования последовательного формата данных в параллельный формат в схеме применены две дополнительных микросхемы сдвиговых регистров SN74HC595 [www.ti.com]. Их внутренняя структурная схема показана на рис. 111.85.
^ - ^ > 1>-> 1
q
^1н£— |Г|ч>--
ir^J? '"V*""
?d >-<£>--
§ГЦ>~.
ie Н^-
1Пч>-н>
-он
• он-
В схеме, изображенной на рис; III.85, третье (высокоимпедансное) состояние выходов Q сдвиговых регистров не используется, их выходы всегда находятся в активном режиме, и поэтому вход управления (вывод 13) выходными буферными усилителями подключен к общей шине. Вход сброса Sclr (вывод 10) триггеров сдвигового регистра также не используется, поэтому на него подана логическая " 1 " (вход подключен к шине питания).
Работает схема следующим образом. Тактирующие импульсы с выхода SPI-
интерфейса одновременно подаются на входы SCR (вывод 11) обоих сдвиговых регистров.
С выхода передатчика SPI-интерфейса микроконтроллера данные поступают на последовательный вход SER нижнего по схеме сдвигового регистра. За 8 тактов работы интерфейса первый байт записывается в этот регистр. При передаче второго байта с микроконтроллера первый байт перезаписывается в верхний по схеме регистр, а в нижний записывается второй байт.
Записанные байты оказываются в левых триггерах микросхемы сдвигового регистра. Для того чтобы они появились на выходах микросхем, необходимо подать синхроимпульс записи на входы С правых по схеме триггеров. Это можно сделать, подав одновременно синхроимпульс на входы RCK (вывод 12) микросхем сдвиговых регистров.
Так же как и для предыдущей схемы включения LED-дисплея, рассмотрим реализацию программы счетчика секунд от 0 до 9999. Так как основной алгоритм работы программы не меняется, за исключением способа вывода информации на дисплей, в предыдущей программе необходимо сделать следующие изменения.
S Выводы РВ1, РВ2 и РВ4 порта В инициализировать как выходы:
Idi г16, ОЬОООШЮ // РВ1, РВ2 и РВ4 выходы, остальные входы
out DDRB, г16 ldi г16,0Ы1101001 //включить подтяжку рези
сторов и установить на выходах низкий уровень
out PORTB, г16
S Выполнить инициализацию работы SPI-интерфейса:
Idirl6, ОЬОШПОО // разрешить работу SPI, передача первого мл. разряда, режим мастер, отр. полярность тактов, запись по спаду, уст частоты SP1
out SPCR, г16 Рис. 111.85. Структурная схема сдвигового
регистра SN74HC595 S Заменить текст программы, реализующий
285 на следующий: Ids rl6, LEDJPoz cpi rl6,3 breq perehod_na_LEDO cpi rl6,0 breq perehod_na_LEDl cpi rl6,l breq perehod_na_LED2 cpi rl6,2 breq perehod_na_LED3
p«irehod_na_LEDO: Idi rl6,0 sts LED_Poz, rl6 Ids r20, LEDO Idi r21, О Idi ZL,low(kodIed*2) Idi ZH,high(kodled*2) addZL, r20 adc ZH, r21 Ipm rl6, Z out SPDR, rl6 //выдать код цифры семисегментно-
го индикатора в SPI-интерфейс call wait //ждать 256 тактовых циклов Idi г16, ОЬООООЮОО
out SPDR, г16//выдать код включения старшего разряда семисегментного индикатора
в SPI-интерфейс jmp vixod
perehod_na_LEDl: Idi rl6,l sts LED_Poz, rl6 Ids r20, LED1 Idi r21,0 Idi ZL,low(kodled*2 Idi ZH,high(kodIed*2) add ZL, r20 adc ZH, r21 lpm rl6, out SPDR, rl6 //выдать код цифры семисегментно
го индикатора в SPI-интерфейс call wait //ждать 256 тактовых циклов Idi г16, ОЬОООООЮО out SPDR, г16 //выдать код включения третьего
разряда семисегментного индикатора в SPI-интерфейс
jmp vixod
perehod_na_LED2: Idi rl6,2 sts LED_Poz, rl6 Ids r20, Idi r21,0 Idi ZL,low(kodled*2 Idi ZH,high(kodled*2) add ZL, r20 adc ZH, r21 Ipm rl6, Z
out SPDR, rl6 //выдать код цифры семисегментного индикатора в SPI-интерфейс
call wait //ждать 256 тактовых циклов Idi г16, ОЬООООООЮ out SPDR, г16 //выдать код включения второго
разряда семисегментного индикатора в SPI-интерфейс
jmp vixod
perehod_na__LED3: Idi rl6,3 sts LED_Poz, rl6 Ids r20, LED3 Idi r21,0 Idi ZL,low(kodIed*2 Idi ZH,high(kodled*2) add ZL, r20 adc ZH, r21 lpm rl6, Z out SPDR, rl6 //выдать код цифры семисегментно
го индикатора в SPI-интерфейс call wait //ждать 256 тактовых циклов Idi rl6, ObOOOOOOOl out SPDR, г16 //выдать код включения второго
разряда семисегментного индикатора в SPI-интерфейс
call wait //ждать 256 тактовых циклов
vixod:
//формирование стробирующего импульса для сдвигового регистра SN74HC595
sbi PORTB, РВ4 //установить бит в регистре пор //пустая операция пор пор пор cbi PORTB, РВ4 //сбросить бит в регистре
pop ZH // Восстановление регистров из стека pop ZL pop r21 pop r20 pop r l7 pop rl6
out SREG, rSave // Восстановление содержимого статус-регистра до обработки прерывания
reti // Выход из программы прерываний, с разрешением прерываний
•/ Добавить подпрограмму временной Задержки:
wait: // подпрограмма временной задержки на 256 тактов
clr г16 www: dec rl6 brne www
В приведенной программе комментарии сделаны только в тех строках, которые отличаются от предыдущей программы.
Добавлен также фрагмент программы, реализующий стробирующий импульс на выводе РВ4 порта В, а также подпрограмма wait временной задержки. Необходимость этой подпрограммы обусловлена тем, что нужно выждать определенное время до освобождения регистра SPDR передатчика SPI-интерфейса, иначе будут испорчены передаваемые данные. Вместо подпрограммы временной задержки можно проверять флаг готовности в статус регистре SPI-интерфейса (флаг очистки SPDR)
286
до его установки и тем самым сэкономить процессорное время.
Ш.3.4. Часы реального времени на основе микроконтроллера Atmel
На основе реализации часов ставилась задача привести примеры использования двух аппаратных интерфейсов микроконтроллера -UART и 12С (рис. 111.86).
Двухпроводный интерфейс 12С в схеме использован для связи микроконтроллера с микросхемой часов реального времени, a UART -для связи с персональным компьютером через его СОМ-порт.
При разработке схемы часов за исходную была взята схема подключения LCD-дисплея к микроконтроллеру, приведенная на рис.Ш.84.
В эту схему дополнительно введены две микросхемы: М41Т00 фирмы STMicro-electronics [www.st.com] и ADM202 фирмы Analog Devices [www.analog.com].
Рис. Ш.86. Принципиальная схема часов
Микросхема ADM202 предназначена для преобразования интерфейса микроконтроллера UART в RS-232 (СОМ-порт компьютера).
Микросхема М41Т00 представляет собой часы реального времени. Ее структурная схема приведена на рис. III.87.
VOLTAGE 1 SENSE and VOLTAGE 1
SENSE and SWITCH j
SERIAL BUS
INTERFACE
TL 1Z
CENTURY/HOURS
Jt
Рис. Ш.87. Структурная схема микросхемы часов М41Т00
Эта микросхема обеспечивает подсчет секунд, минут, часов, а также дня недели, числа, месяца и года. При отключении внешнего питания она автоматически переходит на питание от литий ионной батарейки, от которой она может работать до нескольких лет. Связь микроконтроллера с микросхемой часов осуществляется по двухпроводному интерфейсу 12С.
Форматы передаваемых данных по шине SDA интерфейса 12С для режимов чтения и записи приведены на рис. III.88 и III.89 соответственно.
I I 1 1 1 и WORD
ADDRESS (Ап| I и 1 1 1 1 1 1 1
ВАГЛп И М И I
птттп 0АГДП.1
I I M l I I
ттгптт DATA г* X
I I I I I I I
Рис. Ш.88. Формат передаваемых данных по шине 12С при чтении часов М41Т00
BUSACTTVirr: ; MASTER *
5 s SDALWE У 1 , I I I I I I I
WORD ADDRESS (Ал)
1 N 1 1 1 1 DATAn
I I I I I I I DATAn+t
1 I И I I 1
u n i t DATAivX H U M
\ BUS ACTIVITY.
ADC AVE iRSSS
1 5 § I §
ДЮМ91
Рис. 111.89. Формат передаваемых данных по шине 12С при установке часов М41Т00
Адрес микросхемы (рис. 111.90) задается фирмой-производителем аппаратно и поэтому не может быть изменен.
1 М М М SLAVE AOORESS А
1 1
Л ,1 l i l i l o H l o l o l o l
287
i i i""i i i SLAVE «CHESS
T T
I 0 I 0 I 0 I
Рис. Ш.90. Адрес часов M41T00
Самый младший бит адреса RAV используется для управления режимами чтения и записи и распознается микросхемой автоматически.
Данные о текущем времени содержатся в восьми передаваемых байтах в BCD-формате, приведенных в табл. 1.
Эта таблица взята из Datasheets на микросхему М41Т00 [http://www.st.com/stonline /products /Iiterature/ds/6100/m41t00.pdf].
BCD-формат представляет собой двоично-десятичное число. В упакованном BCD-формате в одном байте может храниться два значения двоично-десятичного числа - в младшей и старшей тетраде. Благодаря этому, например, путем передачи одного байта можно передать одновременно значение секунд (младшая тетрада) и значение десятков секунд (старшая тетрада) - см. табл. III. 17.
Таблица Ш.17 Формат данных М41Т00
Data Function/range D7 М | 05 | М D3 | 02 | D1 j 00 BCD format
0 ST 10 seconds Seconds Seconds 00-59
1 X 10 minutes Minutes Minutes 00-59
2 СЕВ01 СВ 10 hours Hours Century/hours 0-1Я0-23
3 X X X | X X | Day Day 01-07
4 X X 10 dale Date Date 01-31
5 X X x JWM. Month Month 01-12
Б lOYMrs Years 'tear 00-99
7 OUT FT ' | S | Calibration Control
Keys: S = SIGN bit FT = FREQUENCY TEST bit ST = STOP bit OUT = Output level X - - D O f V t СЕГО СЕВ = Centtiy Enable Ы CB = Century bit
ogle from IT lo' г or item '1' to u" at the lorn of uie century (dependent f£B is set lo 'СГ, CB will no! toggle
Функции, выполняемые микроконтроллером в часах, следующие:
- чтение текущего времени из М41Т00, - преобразование данных, полученных из
M41TG0, в форму, удобную для отображения времени на LCD-индикаторе,
- вывод показания часов на LCD-индикатор,
- выдача в СОМ-порт текущего времени по запросу персонального компьютера,
- установка времени в М41Т00 по команде от персонального компьютера.
В верхнюю строку LCD-индикатора вывод времени осуществляется в следующей последовательности: число, месяц, год, часы, минуты и секунды, причем число, месяц и год раз
делены точкой, а часы, минуты и секунды -двоеточием. В нижнюю строку индикатора выводится слово на английском языке, соответствующее дню недели.
Программа для микроконтроллера написана таким образом, чтобы она могла послужить "скелетом" для написания более сложных программ. В этой связи она содержит избыточные подпрограммы (пустые), которые могут быть использованы для реализации дополнительных функций.
В конце программы в комментариях приводятся примеры команд, которые поддерживают часы при связи с компьютером.
Листинг программы часов реального времени приведен в приложении 1.
Для связи с часами в компьютере можно использовать любую коммуникационную программу. При этом параметры СОМ-порта необходимо настроить в соответствии с рис. 111.91.
'тшшкояФ фзШМ Параметры порта
Скорость [бит/с] М15200 1у]
Бкгы данных: |В jv,j
Четность: :Нет jy . j
Столоеые&пы: h -у,]
Упрееле»» петое*, Н«т j £ ]
босстгчоаиге у^сурания , ]
Отмена . | j n g g j j g W g t I
Рис. III.91. Настройка параметров СОМ-порта компьютера для работы с часами
Все счетчики микросхемы М41Т00 до подачи питания находятся в нулевом состоянии. Поэтому при первом включении питания отсчет времени начнется с "нулей". После установки времени в микросхеме на экране LCD-дисплея должно появиться изображение, которое показано на рис. III.92.
Рис. Ш.92. Изображение на LCD-дисплее часов реального времени
Ш.3.5. Система программного управления муфельной печью
Назначение системы: разогрев в течение
288
определенного времени образца, помещенного в камеру муфельной печи - рис. 111.93, выдержка образца при заданной температуре и интервале времени, а также постепенное снижение температуры до комнатной - также за определенное время.
*ф- ОУ
Рис. Ш.93. Муфельная печь
Техническое задание на разработку системы программного управления муфельной печью.
1. Диапазон регулирования температуры 30 + 1000 °С.
2. Погрешность установки (поддержания) температуры ± 3 °С.
3. Программное задание времен: tB tR, tp, tF -см. график на рис. III.94.
4. Минимальное время между точками tB; и tR - 30 мин.
5. Минимальное время между точками tR_H tP - 0 мин.
6. Минимальное время между точками tpt и tF - 30 мин.
7. Максимальное время между точками tB и tF - 8 часов.
8. Привязка времени tB (времени включения) к заданному пользователем текущему времени.
9. Отображение заданной (текущей) и измеренной температур, а также прошедшего времени от момента включения.
10. Оповещение звуковым сигналом об окончании процесса.
11. Оповещение звуковым сигналом о нештатных ситуациях (пропадании сетевого напряжения).
Из анализа технического задания следует, что необходимо разработать систему программного управления муфельной печью. Известно, что в общем случае САУ состоит из регулятора и объекта управления, как показано на рис. 111.94.
Ошибка E(t), представляющая собой разность между текущей заданной температурой
Рис. 111.94. Обобщенная структурная схема САУ
и температурой измеренной в камере, подается на вход регулятора Р. Регулятор, на основании полученной ошибки, должен формировать управляющее воздействие U(t). В этой связи регулятор должен состоять как минимум из двух блоков - блока формирующего определенный закон регулирования (например, ПИД) и второго блока - усилителя мощности.
В проектируемой системе объектом управления (ОУ) является муфельная печь. Она представляет собой теплоизолированную камеру определенного объема с электронагревательным элементом мощностью до 2,5 кВт. Выходным параметром ОУ (управляемым параметром Y(t)) является температура в камере, а входным (управляющим воздействием U(t)) -напряжение, подаваемое на нагревательный элемент. Задающее воздействие G(t) представляет собой заданную зависимость температуры от времени - рис. 111.95.
Рис. 111.95. Временная диаграмма программного управления муфельной печью
Работа над выполнением проекта может включать следующие этапы:
1. Анализ технического задания. 2. Разработка структурной схемы, аналити
ческий расчет схемы, моделирование. 3. Разработка функциональной схемы. 4. Разработка принципиальной схемы (вы
бор и расчет элементов). 5. Разработка алгоритма программы. 6. Написание программы. 7. Отладка программы на объекте. С учетом вышеприведенного описания для
определения параметров регулятора представим структурную схему системы управления печи в форме, удобной для нахождения ее передаточной функции - рис. Ш.96.
289
°(р). ?) *м , . ЦР) "ЛР\ К(р) 'UP)
ЦР) Чц) ^ - . ЦР) К(р) ЦР)
Рис. 111.96. Структурная схема САУ муфельной печи
На рис. Ш.96 приняты следующие обозна-чения: G{p), А(р), Щ.(р), Un{p), Y(p) -задающее воздействие, ошибка, сигнал на выходе регулятора, сигнал на выходе усилителя мощности и управляемый параметр соответственно; Fp(p), Fm(p), F0(p) -передаточные функции регулятора, усилителя мощности и объекта управления.
С учетом принятых обозначений находим передаточную функцию САУ муфельной печи
W(p): Y(p)= Fp(p)Fm(p)F0(p) <ВД l+Fp(p)Fm(p)F0(p)
.(III.ll)
Синтез системы автоматического управления заключается в выборе параметров регулятора F (р). Эта задача может быть решена только в том случае, если известны передаточные функции усилителя мощности Fm[p)и объекта управления Fn (р) . Однако, они неизвестны. Для их нахождения необходимо составить математическое описание этих блоков. Ввиду высокой сложности объекта управления, такое описание сделать практически невозможно. В этой связи для нахождения коэффициентов передаточной функции муфельной печи воспользуемся ее разгонной характеристикой.
Наиболее простой способ получения разгонной характеристики - подача на нагревательный элемент печи напряжения сети и построение графика изменения температуры в камере от времени - рис. III.97.
г гс]
[мин]
Рис. Ш.97. Разгонная характеристика муфельной печи
Приведенная на рисунке разгонная характеристика получена при подаче на нагревательный элемент НОВ.
Поскольку разгонная характеристика не содержит "выбросов" и носит апериодический характер, то передаточная функция объекта управления может быть аппроксимирована звеном первого порядка с запаздыванием:
Fo{p) = K0 ехр(-//г)
рт0 + \ III. 12)
Время запаздывания г и постоянная времени звена Т0 находятся по графику разгонной характеристики, а динамический коэффициент усиления Ко объекта определяется как отношение приращения выходного сигнала к приращению входного в окрестности рабочей точки.
Для приведенной характеристики эти параметры равны: г~ 0,5 [мин], Т0 ~ 20 [мин] и К0 ~ 7 [°С/В]. Так как время запаздывания т намного меньше постоянной времени Т0, то им можно пренебречь. Тогда передаточная функция муфельной печи будет определяться выражением
Fo(p) = K0—i—-. (111,13) рТ0 + \
В качестве усилителя мощности применим тиристорный регулятор напряжения. При изменении входного постоянного напряжения от 0 до 10 В, выходное действующее'напряжение переменного тока регулятора изменяется в пределах от 0 до 220 В. Т.к. объект управления медленный, постоянными времени тиристор-ного регулятора можно пренебречь. Поэтому его передаточная функция определяется коэффициентом усиления пропорционального звена
Fm(p) = Km, (Ш.14)
а его величина равна К,„ = 22. Подставляя выражение III. 13 и Ш.14 в
III. 11, получаем: KnK„F(p)
W(p) = ' l + PT, + KaKmFp(P)
(III. 15)
Из литературных источников известно, что, если объект управления представляет собой апериодическое звено, то лучшее качество регулирования достигается путем применения пропорционально-интегрального регулятора. Его структурная схема приведена на рис. 111.98,
290
Е<Р>
| — Э Kit
Kz
| — Э Kit
Kz Kz
— Э 1
— Э 1
им
Рис. Ш.98. Структурная схема ПИ-регулятора
а передаточная функция определяется по формуле
им 1 Рр(р)=^~ = Кг[Кп + — ) . (111.16)
Е(р) рТи
Подставляя последнюю формулу в выражение III. 15, находим искомую передаточную функцию системы
K^KJ^KJJ ^КъК„,Кг
Щр)= т Чи
2 лщкл&г, *&& р +р +-
(III. 17)
тт
Известно, что качество управления определяется видом переходной характеристики системы, которая в свою очередь определяется по передаточной функции. Изменяя коэффициенты передаточной функции, можно изменять время переходного процесса. В передаточной функции (III. 17) коэффициенты Ка, Кт и Т0 являются постоянными и неизменными, а коэффициенты Кг, Кп и Ти, определяемые ПИ-регулятором, могут варьироваться, поэтому путем их расчета (выбора их значений) и осуществляется настройка работы всей системы.
Знаменатель передаточной функции системы второго порядка в общем виде определяется выражением
p2+pdpa>p+a>2p, (III. 18)
где ар - частота полюса, d - затухание полюса.
Сравнивая коэффициенты при одинаковых степенях р выражений (III. 17) и (III. 18), находим
й>р = lK0KmKZ
Т Т
Ти \ + K0KmKzKn
л1к0ктк1
(III. 19)
(111.20)
Известно, что частота полюса определяет время переходного процесса, а затухание - перерегулирование (выброс на переходной характеристике). Изменяя параметры регулятора, можно получить желаемый вид переходной характеристики системы.
Качественную оценку работы проектируемой системы можно получить, выполнив ее моделирование с помощью одной из программ, например Matlab, OrCAD, MicroCap, Multisim и др.
Так как схема ПИД-регулятора, реализованная на аналоговых элементах, содержит небольшое количество узлов, воспользуемся демонстрационной версией программы Micro-Сар9, позволяющей выполнять моделирование схем, содержащих до нескольких десятков узлов, и доступной для скачивания из интернета по адресу: www.spectrum-soft.com.
Micro-Cap9 позволяет выполнить моделирование системы непосредственно по выражению передаточной функции (III. 17). Для этой цели в программе есть несколько типов линейных управляемых источников, задаваемых преобразованиями Лапласа и z-преобразованиями. Например, LFVofV означает задаваемый формулой передаточной функции источник напряжения, управляемый напряжением в /7-области, a ZVoJV - аналогичный источник, задаваемый формулой передаточной функции в z-области. Однако, более наглядный результат можно получить, выполнив моделирование схемы системы по рис. 111.99. В этой схеме объект управления ОУ выполнен в виде источника напряжения, управляемого напряжением (LF) с передаточной функцией, определяемой выражением (III. 13), а регулятор и дискриминатор выполнены на операционных усилителях, резисторах и конденсаторах, причем пропорциональная часть регулятора П выполнена на операционном усилителе Х2 и резисторах R3, R4, интегральная часть И регулятора - на операционном усилителе ХЗ, конденсаторе С1 и резисторе R5, сумматор регулятора выполнен на операционном усилителе Х4 и резисторах R6, R7, R8, а дискриминатор - на двух операционных усилителях Х5, Х7 и резисторах R9, RIO, R14, R15,R16.
В соответствии с принятыми на схеме обозначениями, коэффициенты передаточной функции регулятора определяются по формулам:
К, R,
(111.21)
291
Кг El
Ти = R,C, sy\
(111.22)
(111.23)
Рис. Ш.99. Схема моделирования системы с аналоговым регулятором
На рис. III. 100 - III. 102 приведены нормированные графики, иллюстрирующие характер изменение переходной характеристики системы, при изменении коэффициентов передаточной функции регулятора Kz, Кп и Т/( соответственно. На всех графиках для сравнения приведена переходная характеристика объекта управления, отмеченная - ОУ, без регулятора.
Рис. Ш.100. Переходные характеристики системы при изменении К^
Рис. Ш.101. Переходные характеристики системы при изменении Ки
Рис. Ш.102. Переходные характеристики системы при изменении Ти
При выборе Т0 -Ти , Кп =1 и изменении Къ получается семейство переходных характеристик системы без перерегулирования, показанных на рис. III. 103.
..
v\ Рис. III.103. Семейство переходных характеристик
без перерегулирования
В зависимости от функций, возлагаемых на микроконтроллер, можно предложить, по крайней мере, две функциональные схемы для реализации системы программного управления муфельной печью-рис. III.104 ирис. III.105.
сг«* 5 -тВ-0
Рис. III.104 Функциональная схема системы с аналоговым регулятором
На приведенных функциональных схемах приняты следующие обозначения: ЖКИ -жидкокристаллический индикатор, МК - микроконтроллер, ТУМ - тиристорный усилитель мощности, ТЭН - теплоэлектронагреватель муфельной печи, ДТ - датчик температуры, АР - аналоговый регулятор, АЦП и ЦАП -аналого-цифровой и цифроаналоговый
292
Г^П ир(П®=К£КпЛ]Щп®+ир((?1-Щ), (111.25)
aock
АЦП г
Рис. III.10S. Функциональная схема системы с цифровым регулятором
преобразователи соответственно, Clock - часы реального времени.
В схеме, изображенной на рис. III. 104, на микроконтроллер возлагаются "сервисные функции': отображение вводимых данных с клавиатуры, времени, температуры в печи, а также формирование "задающего воздействия" в соответствии с графиком рис. Ш.94. Регулятор в этой схеме реализуется на элементах аналоговой техники.
В схеме, приведенной на рис. III. 105, в отличие от предыдущей схемы, регулятор реализуется программно на микроконтроллере.
Благодаря тому, что постоянные времени объекта управления большие, затруднений в реализации регулятора в цифровом виде на микроконтроллере не должно возникнуть. В этой связи целесообразно остановить выбор реализации системы управления на основе схемы с цифровым регулятором. Помимо простоты аппаратной реализации, эта схема обладает еще одним преимуществом - легкостью изменения параметров коэффициентов регулятора за счет их программного управления .(изменения).
Программная реализация цифрового регулятора выполняется по разностному уравнению, которое устанавливает взаимосвязь между его входной и выходной цифровыми последовательностями данных. Это уравнение может быть найдено путем преобразования передаточной функции непрерывного регулятора (111.16).
Применяя одно из известных преобразований переменой р в z (например, Эйлера) к выражению (III. 16), находим дискретную передаточную функцию регулятора
^ ) = ^ = В Д + 7 Г 7 ^ Ь (IIL24)
tXz) (1-z )1И
из которой получаем искомое разностное уравнение
где Ts - интервал дискретизации сигнала, п -порядковый номер отсчета сигнала, E(nTs) -цифровая последовательность отсчетов входного сигнала, Up(nTs) - цифровая последовательность отсчетов выходного сигнала.
Моделирование системы с цифровым регулятором может быть выполнено, например, по схеме, приведенной на рис. III. 106. В этой схеме цифровой ПИ-регулятор выполнен в виде источника напряжения, управляемого напряжением (Z) с передаточной функцией, определяемой выражением (111.24). При выполнении условия Ts « Т0, переходные характеристики системы с цифровым регулятором повторяют переходные характеристики системы с аналоговым регулятором - рис. III. 106.
Рис. Ш.106. Схема моделирования системы с цифровым регулятором
Разработка принципиальной схемы заключается в разработке схемотехнических решений отдельных блоков функциональной -схемы, а также в выборе или поиске готовых известных схемотехнических решений и согласовании функциональных блоков по параметрам сигналов.
Датчик. Основным параметром для выбора типа датчика температуры является диапазон измеряемых температур. Так как он достаточно велик (от 0 до 1000 °С), то в качестве чувствительного элемента наилучшим образом подходит термопара. Однако выходное напряжение термопары слишком мало, чтобы АЦП смог обеспечить преобразование температуры с достаточной точностью. В этой связи между термопарой и входом АЦП необходимо установить прецизионный усилитель постоянного напряжения. Для повышения точности преобразования необходимо также каким-либо образом обеспечить компенсацию холодного спая термопары [L.2] -рис. III.107.
V(0UT) = V1 -V(O'C)
•£ ТЕМПЕРАТУРЫ
СХЕМА ТЕМПЕРАТУРНОЙ КОМПЕНСАЦИИ
ИЗОТЕРМИЧЕСКИЙ БЛОК
Рис. Ш.107. Установка проводников термопары и датчика температуры в изотермическом блоке
Реализовать такую схему компенсации можно на дискретных элементах - рис. III. 108 (схема взята из Datasheets на микросхему ТМР35).
Рис. 111.108. Схема компенсации холодного спая на дискретных элементах
В результате поиска электронных компонентов для решения этой задачи находим готовое решение в виде интегральной микросхемы AD494 (или AD595) фирмы Analog Device. Схема подключения этой микросхемы приведена на рис. III. 109.
-CD-
компенсдтор ТОЧКИ ТАЯНИЯ
ЛЬДА
Рис. Ш.109. Монолитные усилители термопар AD494/AD495 с компенсацией холодного спая
Однако ни одно из описанных выше устройств не компенсирует нелинейности термопары, они обеспечивают лишь нормирование сигнала и его усиление по напряжению. АЦП с высоким разрешением, например, АЦП семейства AD77XX, благодаря встроенному программируемому усилителю, можно использо-
293
вать для непосредственного квантования сигналов с термопар. Для квантования напряжения с термопары и с выхода температурного датчика холодного спая используются два мультиплексных входа АЦП, что позволяет микроконтроллеру выполнять линеаризацию функции преобразования термопары - рис. ШЛЮ.
К МИКРОКОНТРОЛЛЕРУ
Рис. ШЛЮ. АЦП семейства AD77XX, используемый совместно с температурным датчиком ТМР35
для компенсации температуры холодного спая
В зависимости от конкретного типа АЦП AD77XX разрешение АЦП составляет от 16 до 24 разрядов, а коэффициент усиления входного усилителя (PGA) программируется от 1 до 128.
Интегральный датчик температуры ТМР35 позволяет измерять температуру в диапазоне от 10 до 125 °С с абсолютной погрешностью ±2 °С и с относительной ±0.5 °С. Микросхема изготавливается в трех вариантах корпусов ТО-92, SOT-23 и SOIC. Питание осуществляется от однополярного источника" напряжения 2.7 - 5.5 В. Выходным сигналом датчика является напряжение, а крутизна преобразования составляет 10 мВ/°С (рис. III. 111).
2.0
1.В
1.9
Т 1."
О 1.0
| 0.8
8 о.в
0.-I
0.2
-50 - 2 5 О 25 SO 75 100 125 TEMPERATURE -°С
Рис. ШЛИ. Зависимость выходного напряжения от температуры температурных датчиковТМР35 -
ТМР37
Ранее было отмечено, что в качестве АЦП может быть применена одна из микросхем серии AD77XX. Рассмотрим более подробно,
г t
. ТМР35 >. тыраа . TMP37 с
. ТМР35 >. тыраа . TMP37 у" С yS
"Ь -
У ,л -а
У /У
294 например, AD7714. Структурная схема этого АЦП и схема его подключения к термопаре, рекомендуемая фирмой изготовителем, приведена на рис. Ш.112.
ТНВМЮСОши «мстея я
—f Wr
Рис. Ш.112. Измерение температуры с помощью термопары и АЦП AD7714
Подключив ко второму входному каналу AD7714 датчик ТМР35, получим схему измерения с температурной компенсацией.
Связь микроконтроллера с AD7714 осуществляется с помощью SPI-интерфейса (выводы DOUT, DIN, SCLK). Этот интерфейс используется как для считывания результатов преобразования АЦП, так и для программирования коэффициента усиления программируемого усилителя - PGA, а также выбора одного из трех дифференциальных входных каналов преобразования с помощью аналогового коммутатора сигналов - SWITCHING MATRIX. Описание протокола обмена данных AD7714 по SPI-интерфейсу занимает несколько страниц, поэтому здесь не приводится. Однако он будет востребован при программировании микроконтроллера. Его можно найти в интернете по ссылке: http://www.analog.com /UploadedFiles /Data_SheetsZAD7714.pdf.
В качестве источника опорного напряжения АЦП рекомендуется использовать маломощный прецизионный источник напряжения 2.5 В, выполненный на основе интегральной микросхемы AD870. Отличительной особенностью этого источника является малый температурный дрейф выходного напряжения (Ultralow drift), который не превышает 3 ррт/°С.
Клавиатура. Опыт проектирования подобных устройств показывает, что для программирования режима работы прибора достаточно шести кнопок. Две из которых используются для перемещения курсора вверх - вниз по экрану дисплея (t, i), еще две - для изменения данных в выбранной позиции курсора (А, Т), и две последних - для пролистывания выводимых страниц («—, —>). Для управления работой печи достаточно двух кнопок - "Пуск" и
"Стоп". При нажатии кнопки "Пуск" должна разрешаться работа прибора, а кнопки "Стоп" - осуществляться аварийное выключение печи при нештатных ситуациях.
Часы реального времени. Для решения задачи построения часов реального времени в разрабатываемой системе можно предложить два пути.
Первый путь - это программная реализация часов в микроконтроллере. Такие часы при выключении питания микроконтроллера будут сбрасываться. Решением проблемы может быть использование дополнительного источника энергии (например, батареи) для питания микроконтроллера на время отключения сетевого напряжения. Однако из-за повышенного энергопотребления микроконтроллером продолжительную автономную работу часов обеспечить не удается.
Второй путь - применение специализированной микросхемы часов реального времени (например, DS1305, DS1307, DS1372, М41Т00 и др.). Рассмотрим более подробно микросхему DS1307 фирмы Dallas Semiconductor (www.maxim-ic.com). Ее функциональная схема приведена на рис. III. 113.
owjggwgnjatagajMttj»
SERIAL BUS INTERFACE
AND ADDRESS REGISTER
Oillo» Semiconductor
OSJ307
О RAM
1» X»)
CLOCK. CALENDAR.
ANO CONTROL REGISTERS
USER BUFFER (7 BYTES)
Рис. III. 113. Функциональная схема микросхемы часов DS1307
DS1307 представляет собой часы реального времени с интерфейсом 12С. Помимо часов эта микросхема в своем составе имеет полный календарь и 56 байтов статического ОЗУ. Часы генерирую следующую информацию: секунды, минуты, часы, день недели, число, месяц и год. Автоматически вносится поправка для месяцев с различным числом дней, включая поправку для високосного года. DS1307 имеет встроенную цепь контроля питания, которая автоматически переключает ее на питание от батареи при пропадании внешнего напряжения. Литиевая батарея в данном устройстве работоспособна в течение нескольких лет.
Микросхема DS1307 изготавливается в пластмассовых восьмивыводных DD?- и SO-
295 корпусах. Расположение выводов показано на рис. III. 114.
XI ш
хгш
Q N D O
2 s 7 п
1 Ц
IDVcc
ID SOW/OUT
H1SCI
msoA
Рис. Ш.114. Расположение выводов микросхемы DS1307
Вывод Vcc служит для подключения к источнику питания +5 В, GND - к общему проводу, VBAT - для подключения стандартной литиевой батареи. Вывод SCL предназначен для передачи импульсов синхронизации шины I2C, a SDA - для передачи данных. Выводы XI и Х2 служат для подключения стандартного часового резонатора на частоту 32768 Гц. Еще один вывод микросхемы SQW/OUT является выходом генератора тактовых импульсов с предварительным коэффициентом деления. Частота следования импульсов на этом выводе может быть равной 1, 4096, 8192 или 32768 Гц. Выбор частоты осуществляется путем задания состояния двух битов (RS1 и RS0 - см. табл. III. 15) в регистре управления - CONTROL REGISTR. Типичная схема подключения DS1307 к микроконтроллеру, рекомендуемая изготовителем, приведена на рис. III. 115.
т R™.
X1 Х2 V^;
SCL SQW/OUT
DS1307
SDA V M I
GND
R*=VC. J Рис. III.115. Схема подключения DS1307
к микроконтроллеру
Микросхема часов работает как ведомое устройство по шине I С. Когда напряжение питания падает ниже 1,25*UBAT, устройство прекращает связь и сбрасывает адресный счетчик. В это время оно не реагирует на входные сигналы, что предотвращает запись ошибочной информации.
Протокол записи данных в микросхему часов по шине 12С приведен на рис. III. 116, а на рис. III. 117 - протокол чтения данных из микросхемы.
*ЭаяЛЛ«**> «Worti AdorM* (!»• s \ i w w To|л^xxxxxxxx"j A| XXXXXXXX A' XXXXXXXX i A xxxxxxxx I A)"p"j
3la.e Ю nuiiw
Рис. Ш.116. Запись данных в DS1307
- a a v i AOdress- "
A
" П И И " ) * - O a t « t i * H *
xxxxxxxx [A] XXXXXXXX ГА!
S l a w u n o f W r F O t U X
« О э Ш г » Я ' "D*tatn-X>-
i* | 1 ) 0 1 0 0 0 | 1 A
" П И И " ) * - O a t « t i * H *
xxxxxxxx [A] XXXXXXXX ГА!
S l a w u n o f W r F O t U X
xxxxxxxx [A!., XXXXXXXX j:n|P\
DATA TRANBFEIWeO - ACKNOWLEDGE) ;MOTE;LASTOATABYTF IS
VED BV A NOT A O W W L E D G E <*> 0 O N A U i Stan ACfcnoa4*do« <ACK|
A
" П И И " ) * - O a t « t i * H *
xxxxxxxx [A] XXXXXXXX ГА!
S l a w u n o f W r F O t U X
xxxxxxxx [A!., XXXXXXXX j:n|P\
DATA TRANBFEIWeO - ACKNOWLEDGE) ;MOTE;LASTOATABYTF IS
VED BV A NOT A O W W L E D G E <*> 0 O N A U
Рис. III.117. Чтение данных из DS1307
Непосредственно для счетчиков часов отведены регистры с адресами OOh - 06h, а для статического ОЗУ регистры с адресами 08h - 3Fh - см. табл. III. 15. По адресу 07h расположен регистр управления. Некоторые регистры, помимо собственно значений счетчиков часов или календаря, содержат дополнительные управляющие биты или флаги состояния, как показано в табл. III. 15 (более подробно смотрите полное описание на микросхему).
Таблица Ш.15
ADDRESS B I T 7 B I T S j B I T S | B I T 4 ВГТ 3 [ В Г Т 2 [ B I T 1 | ВГТ0 P W C I U K R A N G E ООН ,_сн 10 Seconds Seconds Seconds 00-59 01 н 0 10 M i n u t e Minnies Minutes 00-59
02Н 0 12 10
Hoot 10 Hour Hours Hours
1-12 +AM/PM
00-23 02Н 0
1A PM/ A M
10 Hour Hours Hours
1-12 +AM/PM
00-23
ОЗН 0 0 0 0 0 | DAY Day 0 Ы Р (WH 0 0 10 Dele Date Dale 01-31
05Н 0 0 0 i I 0 Moulb Month Month 01-12
06Н 10 Year Year Year 00-99 07Н OUT | 0 j 0 | SQWE 0 1 0 | R S I j RSO Control —
0BK-3FH RAM 5 6 x 8 OOH-FFH
Определенное удобство при программировании микроконтроллера вызывает тот факт, что значения секунд, минут и т.д. представлены в двоично-десятичном формате, благодаря чему отсутствует необходимость в дешифрации принимаемых от микросхемы DS1307 данных.
Дисплей. Для выбора типа LQD-дисплея, необходимо определить объем выводимой информации.
Так как этот объем достаточно большой, поместить всю информацию на экране одного символьного ЖКИ дисплея не представляется возможным. В этой связи вывод информации будет осуществляться постранично. -
На первой странице (рис. III. 118), с точки зрения удобства пользователя, целесообразно отображать текущую информацию о ходе процесса:
- текущее время - (год.месяц.день неде-ля.число часы:минуты:секунды),
- расчетное значение температуры на данный момент времени - ТС (в соответствии с графиком - рис. 111.94),
- измеренное значение температуры на данный момент времени - TMS
- время, соответствующее началу процесса -START,
- время, пройденное с момента начала процесса - ELAPSED.
До начала процесса, расчетное значение температуры и время, пройденное с момента
296
начала процесса, предполагается выводить в формате "хх", т.е. не определено.
Рис. Ш.118. Вид ЖКИ-экрана (первой страницы)
На второй странице (рис. III. 119) производится отображение данных для программирования режима работы "TIME & TEMPERATURE SETUP": tB. tRttP,tF, температура.
Рис. III. 119. Вид ЖКИ-экрана (второй страницы)
На третьей странице (рис. III. 120) производится отображение информации для установки часов "DATE & TIME SETUP": год, месяц, число, - день недели, часы, минуты, секунды.
Рис. Ш.120. Вид ЖКИ-экрана (третьей страницы)
На четвертой странице производится отображение коэффициентов ПИД-регулятора "PID CONROL SETUP": Р - коэффициент пропорциональной части, / - коэффициент интегральной части, D - коэффициент дифференциальной части (рис. III.121).
р 1 о с О н т я О L S Е Г и р
р - » 0 0 X
1 . S 0 V.
О • 0 г.
Рис. III.121. Вид ЖКИ-экрана (четвертой страницы)
Приведенные рисунки выводимых экранов позволяют сделать вывод о целесообразности применения четырех строчечного сорока символьного ЖКИ-дисплея, например FDCC4004A-FLYYBW-65XR фирмы Fordata Electronic или WH4004A-GMB-JS фирмы Winstar (рис. III. 122).
Рис. Ш.122. Симольный LCD-дисплей WH4004A фирмы Winstar
В дисплее WH4004A применен контроллер KS0066 фирмы Samsung. Подключение дисплея к микроконтроллеру осуществляется к его цифровым портам ввода-вывода. Назначение выводов разъема дисплея приведено в табл. III. 16.
Таблица 111.16 Назначение выводов разъема дисплея
№ вывода Обозначение Назначение
1 DB7 Старший бит шины данных
2 DB6 Бит 6 шины данных
3 DB5 Бит S шины данных
4 DB4 Бит 4 шины данных
5 DB3 Бит 3 шины данных
6 DB2 Бит 2 шины данных
7 DB1 Бит 1 шины данных
8 DB0 Младший бит шины данных
9 Е1 Вход разрешения первого контроллера H-»L
10 R/-W НА. Чтение/Запись
11 RS Выбор регистра
12 Vo Вход напряжения регулировки контрастности
13 Vss GND
14 Vdd + 5В
15 Н2 Вход разрешения второго контроллера H—>L
16 NC/Vee Выход отрицательного напряжения
17 А Вывод анода светодиода подсветки
18 К Вывод катода светодиода подсветки - GND
Отличительной особенностью дисплея WH4004A от рассмотренного ранее WH2002A является наличие двух дополнительных выводов на его разъеме с номерами 9 и 15, разрешающих работу первого или второго контроллера дисплея.
Цифро-аналоговый преобразователь. С целью упрощения схемы, а также трассировки печатной платы, желательно применить ЦАП с интерфейсом SPI или 12С. Или подобрать микроконтроллер со встроенным ЦАП. Так, например, фирма Atmel приступает к серийному производству новой серии 8-ми разрядных микроконтроллеров Xmega, содержащих встроенные 12-разрядные АЦП и ЦАП. Однако в настоящее время доступны только серийные образцы этих микроконтроллеров, поэтому воспользуемся микросхемой ЦАП с интерфейсом 12С. Здесь следует заметить, что применение ЦАП с интерфейсом 12С позволяет снизить требования к микроконтроллеру по числу цифровых выходов. Перечень микросхем ЦАП с интерфейсом 12С, изготавливаемых различными фирмами, достаточно велик, поэтому с выбором типа ЦАП не возникает
UELCOhE ТО UIHSTAR KODULE DISPLftV СО», CHARACTER TVPS LCR HO&UIE WH40»4A-6M8-JS
U •>>
itaricim. Ы *r ic3«instar-, con. tw ЦШ
297 проблем. Например, фирма Texas Instruments выпускает интегральные микросхемы 10-разрядного ЦАП DAC6571, 16-разрядного ЦАП DAC8571 и др.
Микросхема ЦАП DAC6571 имеет следующие параметры: время установления выходного сигнала - 10 мкс, потребление - 0,7 мВт, напряжение питания 5 В. Изготавливается DAC6571 в корпусе SOP-6, а его функциональная схема приведена на рис. III.123. Выходной буферный усилитель микросхемы имеет режим Rail-to-Rail, поэтому напряжение на его выходе может изменяться от 0 до напряжения питания.
Рис. Ш.123. Функциональная схема ЦАП DAC6571
В качестве источника питания микросхемы ЦАП и одновременно источника опорного напряжения изготовителем рекомендуется использовать микросхему REF02 со схемой включения, приведенной на рис. III. 124.
15V
REF02 5V
DAC6571
1.14 mA
VOUT = 0 V to 5 V
Рис. 111.124. Типичная схема включения ЦАП DAC6571
Протокол передаваемых данных по шине IС и адрес микросхемы DAC6571 приведены нарис. III.125. .
|S|3LAVeAD0RE3Sf 0 | л ! . CttVHS^yt» | A| ts-ayt*) W X l P ] | г -0"t*tiU| 1
D»UTr*n«f«n«l 1 (n~ Поме • Acknowtadoe)
Word • 16 Bit
1 ,t From M»»l»r to DACG571 DAC6571 I'C-SLAVE ADDRESS; | | FranDACltn toMail.r MSB LSB
A - Ae*mo*todg«fSDAt.OW) I 1 [ 0 | 0 | 1 | 1 | 0 I АО U S - Hot Ackrwwttdgt (8DA WGH) 6 • START Condition i factory Pit-cat •—' St- R»p*«ted 5ТЛПТ Condition P - 3TOP CondHtofl '- Ай - FC Addrw* PI
Состояние бита адреса АО определяется подключением соответствующего вывода микросхемы (см. рис. III. 124) к источнику питания или к общему проводу. Более подробное описание DAC6571 находится по адресу: http://focus.ti.com/docs/prod/folders/print/dac657 l.html.
Микроконтроллер. На основе анализа функциональной схемы, а также в результате выбора конкретных устройств (клавиатуры, АЦП, часов реального времени и т.д.), подключаемых к микроконтроллеру, можно сформулировать требования к его интерфейсам. Итак, микроконтроллер должен содержать:
- SPI-интерфейс - для подключения АЦП AD7714;
- 12С-интерфейс - для подключения RTC DS1307 и ЦАП DAC6571;
- 12 цифровых линий ввода-вывода общего назначения - для подключения ЖКИ-дисплея WH4004A;
- 8 цифровых входов с возможностью вызова прерывания при изменении состояния на этих входах - для подключения клавиатуры (8-. ми кнопок).
Вышеперечисленным требованиям удовлетворяет, например, микроконтроллер ATmegal6 фирмы Atmel, вешний вид которого приведен на рис. III. 126
Использование портов микроконтроллера может быть таким: все выводы порта А, а также выводы РВО-РВЗ порта В - для подключения ЖКИ, выводы SDA и SCL порта С - интерфейс 12С, выводы MOSJ, MISO и SCK- интерфейс SPI, а все выводы порта D - для подключения клавиатуры.
При нажатии любой из 8-ми кнопок клавиатуры должно вызываться внешнее прерывание, однако в микроконтроллере имеется всего два таких прерывания - INTO и INT1. 6 качестве решения этой проблемы можно предложить
(хек/то) рва (T1) РВ1
(INT2/AIN0) РВ2 (OC0/AIN1) РВЗ
( 5 5 ) РВ4 (MOSI) РБ5 (MISO) РВ6
(SCKj РВ7 RESET
VCC GND
XTAL2 XTAL1
(RXQ) POO (TXD) PD1 (INTO) P02 (INT1) PD3
(0C1B) P04 (OCIA) RD5
(ICP) P06
23 3 22 I ]
РАО (ADCO) PA1 (ADC1) PA2 (ADC2) РАЗ (A0C3) PA4 (ADC4) PA5 (ADC5) PA6 (ADC6) PA7 (ADC7) AREF GND AVCC PC7 (T0SC2) PC6 (TOSC1) PC5 (TDI) PC4 (TDO) PC3 (TMS) PC2 (TCK) PC1 (SDA) PCO (SCL) PD7 (0C2)
Рис. Ш.125. Протокол передаваемых данных по шине 12С с ЦАП DAC6571
Рис. III.126. Микроконтроллер ATmegal6
схему, выполненную на диодах и подключаемую к порту D - рис. III. 127.
298
VDI-VDT1/MI48
141
• ИИ
• PD2
' РОЗ
• МИ
• Я05
• WW
Рис. Ш.127. Схема подключения клавиатуры к микроконтроллеру ATmegal6
Работает схема следующим образом. При включении микроконтроллера порт D настраивается как цифровой вход и включается "подтяжка резисторов". В результате на все входы порта поступают сигналы с уровнем, равным лог. «1». При нажатии любой из кнопок KN1-KN8 на входе порта PDO (INTO) формируется лог. «О», что вызывает выполнение подпрограммы в микроконтроллере от внешнего прерывания. В подпрограмме обработки внешнего прерывания необходимо считать состояние порта D и определить, какая именно нажата кнопка, а затем перейти на выполнение подпрограммы, выполняющей требуемые функции при нажатии соответствующей кнопки. Таким образом, одно внешнее прерывание обслуживает работу всей клавиатуры.
После осуществления выбора готовых решений и разработки схемотехнических решений отдельных блоков функциональной схемы можно приступить к вычерчиванию принципиальной схемы устройства. Этот этап авторы предлагают читателям выполнить самостоятельно.
Разработка алгоритма работы программы. Из-за большой сложности и разветвленно-сти привести здесь подробный алгоритм работы программы муфельной печи затруднительно. Поэтому ограничимся его рассмотрением в "укрупненном" варианте.
При разработке алгоритма работы в первую очередь следует обратить внимание на обеспечение выполнения операций (фрагментов программ), наиболее критичных к времени их выполнения.
С этой точки зрения наиболее жесткие требования предъявляются к обеспечению времени дискретизации Ts (см. формулу 111.25), т.к. это время непосредственно влияет на точность реализации коэффициентов цифрового интегратора ПИД-регулятора и, в конечном счете, на качество работы муфельной печи.
Менее существенные требования предъявляются к периодичности обновления экрана ЖКИ. Практика показывает, что с точки зрения удобства пользователя частота обновления должна находиться в диапазоне от 2 до 20 раз в секунду, что соответствует периоду от 500 до 5 мс соответственно. Оптимальным является среднее значение ~ 100 мс.
И последнее - частота опроса часов реального времени DS1307. Так как показания часов изменяются не чаще, чем один раз в секунду, то и их опрос необходимо осуществлять столько же раз, это позволит избежать лишней загрузки интерфейса 12С.
Синхронизацию и тактирование временных процессов в микроконтроллере удобно выполнять с помощью имеющихся в нем таймеров/счетчиков. Как правило, в микроконтроллере имеется несколько таких таймеров. Они могут быть 8- и 16-разрядными, а также иметь в своем составе предварительные делители частоты. Чем выше разрядность таймера/счетчика, тем выше получается точность временного интервала. В выбранном микроконтроллере ATmegal6 таких таймеров/счетчиков три, причем два из них 8-разрядные, а третий 16-разрядный. В приведенном ниже алгоритме работы используется 16-разрядный таймер/счетчик 1 микроконтроллера, настроенный на реализацию временного интервала, равного 1 мс. Необходимые в программе временные интервалы реализуются с помощью программных счетчиков, привязанных к периоду 1 мс. Реальное значение Ts в разрабатываемой системе составляет сотни и тысячи мс, поэтому погрешность установки периода определяется сотыми и тысячными долями процента, что удовлетворяет решаемую задачу.
Выполнение любой программы на микроконтроллере начинается с настройки портов ввода-вывода. Эта часть алгоритма приведена на рис. III. 128.
299
Инициализация портов: PORTA, PORTS, PORTC -выходы, состояние выходов О, PORTD - входы, включить "подтяжку резисторов "
Инициализация ЖКИ
Задание адресов векторов прерываний: по сбросу (включению), на срабатывание внешнего прерывания INTO, на срабатывание компаратора счетчика-таймера 1, по пустому регистру передатчика SPI, по пустому регистру передатчика J'C
Инициализация интерфейсов -SP1 и 12С
Инициалшация таймера-счетчика 1: установить время счета = 1 мсек, разрешить обработку прерывания при совпадении с числом, заданным в компараторе счетчика
Фоновая программа
Рис. 111.128. Алгоритм основной программы
После настройки портов выполняется фоновая программа (рис. III. 129). В начале этой программы осуществляется инициализация внешних устройств - ЖКИ, АЦП, ЦАП и т.д., а в конце этой программы реализуется бесконечный цикл, в котором осуществляется обновление выводимой информации на ЖКИ, а при установленном флаге чтения часов (один раз в секунду), выполняется также чтение данных из микросхемы DS1307.
Все остальные операции выполняются в подпрограммах обработки прерываний - рис. Ш.130-ШЛ32.
При нажатии на одну из кнопок клавиатуры осуществляется переход на выполнение подпрограммы обработки внешнего прерывания INTO. Алгоритмом этой подпрограммы (рис. III. 130) предусматривается анализ нажатой кнопки, далее определение типа выводимого экрана дисплея, положения курсора, и в зависимости от этого, выполнение соответствующей операции.
Считывание результата преобразования АЦП, вычисление управляющего воздействия,
Инициачьзация АЦП
Инициализация ЦАП
Инициализация счетчика стека
Инициачизащ/я первой выводимой страницы на ЖКИ
Разрешить все прерывания
жов по /Xs
овлен ? s да
Чтение часов по ?С
нет
(
да
\ ' нет
(
да
Сбросить флаг чтения часов
нет
(
да
\
Вывод текщей информации на ЖКИ
Сбросить флаг вывода на ЖКИ
Рис. Ш.129. Алгоритм фоновой программы
выдача результата в ЦАП производится с периодом, задаваемым Ts. Для его задания в микроконтроллере используется таймер-счетчик 1. В инициализационной части программы (см. рис. III. 128) таймер настраивается на реализацию прерываний каждую миллисекунду. Поэтому подпрограмма, приведенная на рис. III. 130, выполняется каждую миллисекунду. В ней программным способом реализован счетчик для формирования каждую секунду флага запуска подпрограммы считывания часов, а также счетчик с периодом Ts, при достижении которого разрешается работа SPI, разрешается прерывание по пустому регистру передатчика SPI и начинается считывание первого байта результата преобразования АЦП.
300
• зависимости от положения курсора, увеличить значение TB.TP.TKTFimu
температуры
В зависимости от положения курсора, уменьшить значение
ТВ, IV, TR, TF или температуры
Считать па-.ожение
курсора
В зависимости от положения курсора, уменьшить значение
P.Iwml)
Установить флаг разрешения работы печь
Сбросить флаг разрешения работы печь
^ Возхрат uj
подпрограммы
преры, я 1УГ
Рис. Ш.130. Алгоритм подпрограммы обработки внешнего прерывания INTO
301
Увеличить состояние программного счетчика секунд на I
Увеличить состояние программного счетчика Туна I
Установить программный счетчик Т$в()
Разрешить работу SPI. прием ь первого байта от АЦП ^
Установить программный счетчик вывода ЖКИ в 0
Установить флаг вывода экрана ЖКИ
Установить программный счетчик секунд в О
Флаг передачи Up ^ ^ ^и установлен ?
Установить флаг чтения часов DS! 307 по I2 С
Возврат из подпрограммы прерывания по счетчику-
таймеру I
Рис. III.131. Алгоритм подпрограммы обработки прерывания при "срабатывании" компаратора
таймера-счетчика 1
В дальнейшем обработка принятых данных от АЦП по интерфейсу SPI осуществляется в соответствии с алгоритмом, приведенным на рис. 111.132.
Считать принятый байт из приемники SP!
Инкрементировать счетчик числа принятых байт
Установить счетчик принятых вант а 0
Запретить работу SPI
Выполнить расчет Up
по формуле (X.J5)
Установить флаг передачи Цр по 1'С
А. Передать в ЦАП де-а ванта значения IL
Сбросить флаг передачи Ur па 1'С
Припять очередиай байт преобразования АЦП
Возврат из подпрограммы обработки прерывания SPI
Рис. Ш.132. Алгоритм подпрограммы обработки прерывания по принятому байту в приемник SPI
(по пустому регистру передатчика SPI)
После окончания приема третьего байта данных от АЦП запрещается работа. SPI, выполняется расчет управляющего воздействия, и если не занят интерфейс I С - передача рассчитанного значения в ЦАП.
После подробной проработки алгоритма работы системы можно приступить к написанию и отладке программы. Этот этап авторы предлагают выполнить читателям самостоятельно. При написании программы на ассемблере можно воспользоваться готовыми фрагментами программ из примеров, приведенных в этой книге.
302
Библиографический список
1. Цыпкин Я.З. Теория линейных импульсных систем. - М.: Физматгиз, 1963.
2. Джурй~Э. Импульсные системы автоматического регулирования. - М.: Физматгиз, 1963.
3. Ту Ю. Цифровые и импульсные системы автоматического управления. - М.: Машиностроение, 1964.
4. Чанг Ш. Синтез оптимальных систем автоматического управления. - М.: Машиностроение, 1964.
5. Бесекерский В.А. Цифровые автоматические системы. -М.: Наука, 1976.
6. Микропроцессорные системы автоматического управления // Бесекерский В.А. и др. -Л.: Машиностроение, 1989.
7. Изерман Р. Цифровые системы управления. - М.: Мир, 1984.
8. Куо Б. Теория и проектирование цифровых систем управления. - М.: Машиностроение, 1986.
9. Острём К., Виттенмарк Б. Системы управления с ЭВМ. - М.: Мир, 1987.
10. Розенвассер Е.Н. Линейная теория цифрового управления в непрерывном времени. -М.: Наука, 1994.
11. Chen Т., Francis В.А. Optimal sampled-data control systems. - New York: Springer-Verlag, 1995.
12. Мирошник И.В. Теория автоматического управления. Линейные системы. - СПб.: Питер, 2005.
13. Попов Е.П. Теория линейных систем автоматического регулирования и управления. -М.: Наука, 1989.
14. Волгин Л.Н. Оптимальное дискретное управление динамическими системами. - М.: Наука, 1986.
15. Поляк Б.Т., Щербаков П.С. Робастная устойчивость и управление. - М.: Наука, 2002.
16. Математические основы теории автоматического регулирования. Изд. 2-е, доп. Под ред. Б.К. Чемоданова. - М.: Высшая школа, 1977.
17. Купер Дж., Макгиллем К. Вероятностные методы анализа сигналов и систем. - М.: Мир, 1989.
18. Дроздов В.Н., Мирошник И.В., Скоруб-ский В.И. Системы автоматического управления с микроЭВМ. - Л.: Машиностроение, 1989.
19. Мита Ц., Хара С, Кондо Р. Введение в цифровое управление. - М.: Мир, 1994.
20. Фомин В.Н. Методы управления линейными дискретными объектами. - Л.: ЛГУ, 1985.
21. Фомин В.Н., Фрадков А.Л., Якубович В.А. Адаптивное управление динамическими объектами. - М.: Наука, 1981.
22. Цыпкин Я.З., Попков Ю.С. Теория нелинейных импульсных систем. - М.: Наука, 1973.
23. Видаль П. Нелинейные импульсные системы. - М.: Энергия, 1974.
24. Поляков К.Ю. Основы теории цифровых систем управления. - С.-П. Государственный морской технический университет, 2006.
25. http://www.gaw.ru/html.cgi/txt/doc/adc/ index.htm
26. http://www.efo.ru/doc/Silabs/Silabs. рГ?2089
27. http://www.gaw.ru/html.cgi/txt/doc/dac/ index.htm
28. Аллен Ф., Санчес-Синенсио Э. Электронные схемы с переключаемыми конденсаторами: Пер. с англ. - М.: Радио и связь, 1989. -576 с.
29. http://www.atmel.com/dyn/resources/ prod _documents/doc 145 6 .pdf
303
ПРИЛОЖЕНИЯ
1. Листинг программы часов реального времени
.NOLIST
.include "ml28def.inc"
.LIST ; Регистровые переменные подпрограммы
;г0 - зарезервирован для 1pm ; r l , г2, гЗ, - используются как счетчики ;г4 - можно использовать ;г5 - счетчик числа полученных байт по
приему от UART1 ;гб - Счетчик переданных байт по UART1 ;г7 - регистр числа заданных байт для
передачи по UART1 ;г14 - счетчик мигающего светодиода ;r22 - rSOST регистр состояний: Бит 7: 1 - идет прием, 0 - прием окончен
UART1 ;Бит 6: 1 - запретить работу подпрограммы ;Obrabotka_Prinaytoy_inform, 0 - разрешить ;Бит 5: 1- идет передача, 0-передача о
кончена UART1 ;r24, r2S - использовать как временный
регистр
Определение символических имен регистрам
.def rSave
.def tempL
.def rTmp
.deftempH
= r l 5 ;регистр для хранения SREG в подпрограммах прерывания
нельзя использовать для других целей = г16 ;временный регистр = г16 ;временный регистр = г17 ; временный регистр
.def fbinL = r l6
.def fbinH = r l 7
.def tBCDO = r l 7
.def tBCDl = r ! 8
.def tBCD2 = r l 9
;двоичное значение, младший байт
;двоичное значение, старший байт ;BCD значение, цифры 1 и О ;BCD значение, цифры 3 и 2 ;BCD значение, цифра 4
.def I2CL = г20 зарезервированные регистры для I2C - нельзя
использовать в подпрограммах .def I2CH = г21 ; зарезервированные
регистры для I2C - нельзя использовать в nofliiporpaMMax.def
rSOST = г22 зарезервированный регистр как регистр СОСТОЯНИЯ выполняемых подпрограмм
;XL =г26
;ХН =г27 ;YL =г28 ;YH = г29 ;ZL = г30 ;ZH =г31
; X pointer low ;используются X Y ; X pointer high ; Y pointer low ; Y pointer high ; Z pointer low - свободен ; Z pointer high
!cSEG .ORG $000 jmp Reset ;переход по сбросу .ORG INT4addr jmp into ;переход по внешнему
прерыванию int4 .ORG INT5addr jmp intt ;переход по внешнему
прерыванию int5 .ORG TWIaddr jmp TWI ; интерфейс I2C .ORG OVFOadd ; OverflowO Interrupt
Vector Address jmp CurentO .ORG UTXCOaddr jmp UART0_TRANSM_AVTOMAT
;прерывание no пустому регистру передатчика UARTO
.ORG URXCladdr jmpRxUARTT ; переход по завершению
приема UART-1 .ORG URXCOaddr jmp RxUART ;переход по завершению
приема UARTO - прием от PC
.ORG S050 ;c этого адреса начинается основная программа
Reset: ; начало основной программы . ldi rl6,low(RAMEND) ; установить
начальное значение стека out SPL,rl6 ldi rl6,high(RAMEND); RAMEND
определена ml28def.inc out SPH, r!6
; инициализация портов
ldi rl6, S00 outDDRA, r l6 ld i r l6 ,$ out PORTA,
ldir l6, out DDRB, ldi r!6, ОЫ0000111 out PORTB, r l6
ldi r l6, ObOOOOOOOO; out DDRC, r l6 ldir l6 , O b l l l l l l l l ; outPQRTC,r l6
ldi r l 6 , 0 b l l l l 1000 outDDRD, r l6 Idirl6,0b00000111 outPORTD, r l6
304
Idi rl6, ObOOOOOOlO out DDRE, r l6 ldi rl6, Obi 1111101 out PORTE, r l6
Idi rl6,Db00010011 sts DDRG, rl6 ldi rl6,0Ы1101100 sts PORTG, r l6
ldi r l6, SO sts DDRF, rl6 Idi r l6, SOff sts PORTF, r l6
;настроика внешних прерывании
Idi rl6, ObOOllOOOO out EIMSK, r l6 разрешить внешние
прерывания int4-5 Idi r l6, SOff sts EICRA, r l6 установить срабатывание int
по нарастающему фронту $ff логическому нулю S00
out EICRB, r l6 установить срабатывание int по нарастающему фронту Sff логическому нулю $00
i
инициализация I2C или TWI
Idi rTmp, ОЬОЮОЮОО установка тактовой частоты TWI - коэффициент 72 десятичный
sts TWBR, rTmp
Idi rTmp, ObOOOOOOOO установка тактовой частоты TWI - два младших бита - нули (соответствует коэффициенту -1)
sts TWSR, rTmp
Idi rTmp, ОЬОООООЮО ;задание АДРЕСА устройства TWI - первые семь бит свой (ведомого) адрес ведомого устройства, а последний - общий вызов
sts TWAR, rTmp
инициализация UART ;настройка порта асинхронного приемо
передатчика UART0 1.
;ldi rTmp, ОЫООПООО разрешить приемник и передатчик, разрешить прерывания по завершению приема
ldi rTmp, ОЫООПООО ;разрешить приемник и передатчик
out UCSROB, rTmp Idi rTmp, ОЬОООООПО установить 8 бит дан
ных sts UCSROC, rTmp
Idi rTmp, ObOOOOOOOO out UCSROA, rTmp
Idi rTmp, ObOOOOOOOO рость передачи 115200
sts UBRR0H, rTmp
установить cKO-
Idi rTmp, ObOOOOOOll ;7,3728 MHz ;0b00010000 установить скорость передачи 115200 (для кварца 16 MHz)
out UBRR0L, rTmp
;настроика порта передатчика UART1
асинхронного приемо-
Idi rTmp, ОЫООПООО ;разрешить приемник и передатчик и прерывания по завершению приема UART1
stsUCSRIB, rTmp
данных Idi rTmp, ОЬОООООПО
sts UCSR1C, rTmp
Idi rTmp, ObOOOOOOlO sts UCSR1A, rTmp
; Idi rTmp, 51 передачи 38,4
; sts UBRR1L, rTmp
установить 8 бит
установить скорость
Idi rTmp, ОЬООООЮОО sts UBRR1L, rTmp Idi rTmp, ObOOOOOOOO
sts UBRR1H, rTmp
установить скорость передачи 115200
; настройка работы АЦП
ldi fbinL, 0 ; выбран аналоговый вход 0
out ADMUX, fbinL; Idi fbinL, Obi 1100111 ; коэффициент деления out ADCSR, fbinL
инициализация таймеров таймерО
Idi rTmp, ObOOOOOOOl out TIMSK, rTmp разрешить прерывание
при переполнении счетчикаО
; Idi rTmp, ObOOOOOOOl ;коэфдел = 1, разрешение работы
счетчика без предделителя - если ноль, то счетчик не считает
; ldi rTmp, ОЬОООООШ коэффициент дел 1024 Idi rTmp, ObOOOOOOOO запретить работу
таймераО out TCCR0, rTmp разрешение работы
счетчика без предделителя -если ноль, то счетчик не считает
clr rTmp out TCNT0, rTmp предустановка счетчикаО
- с этого числа начнется счет 5 .
инициализация внешней SRAM ;enable EXTMEM interface and setup "wait state"=2 cycles for upper memory sector
;setup Wait state sector limits (first 0x0000-0x7FFF, second 0x8000-0xFFFF)
Idi r l6 , (0«SRW10) | (1«SRE)
305 out MCUCR, r l6 ;(0«SRW10) | (1«SRE) ; Idi r l 6 , ( l « S R W l l ) | (1«SRL2) | (0«SRL1) |
(0«SRL0) sts XMCRA, r l6 ;(1«SRW11) | (1«SRL2) |
(0«SRL1) | (0«SRL0);
;обнуление ОЗУ
clr r5 ;очистить счетчик байт принятых по UART1
clr гб ;очистить счетчик байт переданных по UART1
clr г14 ;мигаюший светодиод ser rSOST установить все биты регистра Idi rTmp, 66 ;для отладки sts N_SET_GET, rTmp sei разрешить прерывания call init_displey инициализация дисплея
// * **********ф 0новая программа**** * * * * * * * * * *
FonWk:
call Chtenie_M41T
;Для вывода времени на LCD один раз в с - (тестируются единицы секунд)
Ids r l7, SECOND Ids r l6, SECOND_OLD cp rl6, r l7 brne viv_vremya jmp no_viv_vremya
viv_vremya: sts SECONDOLD, r l7
call VREMYA_OUT_LCD ; выводит часы, минуты и секунды и т.д.
no_viv_vremya: sbrc rSOST, 7 ;не выполнять п.п.
Obrabotka_Prinaytoy_inform, если идет прием по UART1
rjmp ОВХ sbrc rSOST, 6 ;не выполнять п.п.
ObrabotkaPrinaytoyinform, если она уже выполнилась
rjmp ОВХ call Obrabotka_Prinaytoy_inform
ОВХ: ;мигающий светодиод на выводе PD7
inc г14 brne VYX_LED in rTmp, PORTD lditempH,0bl0000000 eor rTmp, tempH out PORTD, rTmp
VYXJLED: jmp FonWk
;********* подпрограмма приема от PC ******** RxUART:
;B принимаемой последовательности: первый байт - буква - s, g, с, k, т.е. команды, второй байт - число передаваемых байт, трети и все остальные -информационные
in rSave, SREG // поместить регистры в стек push rTmp push ХН push XL
tst r5 проверить счетчик принятых байт на ноль
brne NeNachalo ;перейти, если счетчик не равен нулю
ori rSOST, Obi 1000000 установить флаг запрета выполнения п.п.
Obrabotka_Prinaytoy_inform установить флаг индикации режима
приема UART1
Idi ХН, high(SET_GET) ,-записать в X начальный адрес начала буфера обмена данными с PC
Idi XL, low(SET_GET) sts ADRESS_RECIV UART_H, ХН записать
в ОЗУ адрес sts ADRESSJRECIV UARTL, XL
Idi rTmp, 6 ;4 разрешить таймерО out TCCR0, rTmp
NeNachalo: Ids XH, ADRESS_RECIV_UART_H ; считать
из ОЗУ адрес Ids XL, ADRESSJRECIV UARTJL
inc r5 in rTmp, UDR0 ;считать принятый байт
; out UDR0, rTmp ;ЭХО - возвращает в PC принятый символ
st Х+, rTmp ;запись в ОЗУ принятой комбинации
sts ADRESS_RECIV UARTН, ХН sts ADRESSJRECIV UART_L, XL ;запись в
ОЗУ - инкрементированный адрес clr rTmp out TCNT0, rTmp установить счетчик
таймераО в 0
pop XL //восстановление регистров из стека pop ХН pop rTmp out SREG, rSave
reti
;***** подпрограмма проверки на наличие вновь поступившей информации и ее обработки**********
ObrabotkaPrinaytoyinform:
Ids rTmp, S E T G E T ;считать возможно переданную команду
tst rTmp проверить на ноль, если ноль, то новая команда не поступала
breq Out_Obrabotka_Prinaytoy_inform ;если ноль, то завершение подпрограммы
cpi rTmp, У ;сравнить с буквой s - 73-hcx breq Set_Com ;перейти на выполнение
команды Set Komand
cpi rTmp, 'g' ;сравнить с буквой g - 67-hex breq GetCom ;перейти на выполнение
команды Get Com
cpi rTmp, 'с' ;сравнить с буквой "с" 63-hex breq CLOC ;перейти на выполнение
команды CLOCK - передача в
306 PC показания часов
cpi rTmp, 'к ' ;сравнить с буквой "k" 6b-hex breq KLOC ;перейти на выполнение
команды KLOCK - установка часов
cpi-rTmp, 'г' сравнить с буквой "г" 72-hex breq MEMORI_COM ;перейти на выдачу
в PC информации из ОЗУ
cpi rTmp, 'w' ;сравнить с буквой "w" 77-hex breq MEMORI_WRIT ;перейти на запись в
ОЗУ принятой от PC информации
;передать в PC ошибку приема, т.е. это буква не s , g , с , k, г, w
call ERRORJTRANSMIT ;запись в буфер обмена PC слова Error
call UART0_TRANSM_AVTOMAT ;запуск передатчика
jmp Out_Obrabotka_Prinaytoy_inform ;выход из обработки прерывания по приему UART
MEMORI_WRIT: call MEMORI_WRITE подпрограмма
записи в ОЗУ принятой от PC информации jmp Out_Obrabotka_Prinaytoy_inform
завершение подпрограммы
MEMORI_COM: call MEMORI_COM_PC ; выдача в PC
информации из ОЗУ по запрашиваемому адресу и числу байт
jmp Out_Obrabotka_Prinaytoy_inform ;завершение подпрограммы
KLOC: call KLOCK установка часов call Chtenie_M41T ;чтение часов
CLOC: call CLOCK ;передача в PC показания
часов jmp Out_Obrabotka_Prinaytoy_inform
;завершение подпрограммы
Set_Com: jmp P_U_n_s
Get_Com:
Out_Obrabotka_Prinaytoy_inform: clr r5 Idi rTmp, 0 sts SET_GET, rTmp записать в ячейку
памяти ОЗУ - т,е, обнулить команду
ori rSOST, ОЬОЮООООО установить флаг запрета выполнения п.п.
Obrabotka_Prinaytoy_inform ret ;*** запись в ОЗУ информации по адресу приня
тому от PC *** MEMORI_WRITE:
Ids rTmp, N_SET_GET ;считать из ячейки памяти число переданных байт из PC
dec rTmp dec rTmp dec rTmp dec rTmp ;вычесть ЧЕТЫРЕ раза no
единице из rTmp - теперь здесь находится число записываемых в ОЗУ байт
mov r2, rTmp ;поместить в г2 число записываемых байт
clr r l ;очистить счетчик числа выведенных байт
Ids YH, ADRESJH запись в Y начального адреса для записи в ОЗУ
Ids YL, ADRES_L
ldi ХН, high(BAYT_N) поместить в X начальный адрес ОЗУ
(принятой информации от PC) для чтения записываемой информации
ldi XL, low(BAYT_N)
continW: inc rl Id rTmp, X+ st Y+, rTmp загрузить косвенно
инкрементировав адрес ОЗУ впоследствии
ср r l , г2 brne continW call OK ;возвтрат в PC слова OK
ret ;****** подпрограмма вывода в PC слова OK*** OK:
ldi rTmp, 'О' sts UDR1, rTmp call proverka_gotovnosti_UDR Idi rTmp, 'K' sts UDR1, rTmp call proverka_gotovnosti_UDR
ret
(Подпрограмма выполнения команды Set_Komand*
Set_Komand: //
ret
;*подпрограмма передачи в UARTT Error (UART1)*
Peredacha_UARTT_Error: ;вывод ERROR напрямую = отсюда ldi rTmp, *E' out UDRO, rTmp call zader Idi rTmp, V out UDRO, rTmp call zader ldi rTmp, V out UDRO, rTmp call zader ldi rTmp, V out UDRO, rTmp call zader Idi rTmp, V out UDRO, rTmp call zader Idi r T m p , ' ' out UDRO, rTmp call zader Idi rTmp, 'T' out UDRO, rTmp call zader
307 Idi rTmp, 'e' out UDRO, rTmp call zader Idi rTmp, 'i' out UDRO, rTmp call zader Idi rTmp, 'm' out UDRO, rTmp call zader Idi rTmp, $0d out UDRO, rTmp call zader Idi rTmp, $0a out UDRO, rTmp call zader
Idi rTmp, 0 sts SET_GET, rTmp ;записать 0 в ячейку
памяти ОЗУ - т,е, обнулить команду
ret ;* подпрограмма загрузки ОЗУ для передачи Error
в UART1 ** ERROR_TRANSMIT:; вывод через подпрограмму
Idi rTmp, 14 mov r7, rTmp ;задание числа передаваемых
байт Idi ХН, high(SET_GET ;записать в X
начальный адрес начала буфера обмена данными с PC
Idi XL, low(SET_GET) Idi rTmp, 'E' st X+, rTmp Idi rTmp, 'R' st X+, rTmp Idi rTmp, 'R' st X+, rTmp Idi rTmp, 'O' st X+, rTmp Idi rTmp, 'R' st X+, rTmp Idi r T m p , ' ' stX+, rTmp Idi rTmp, ' C st X+, rTmp Idi rTmp, 'O' st X+, rTmp Idi rTmp, 'M' st X+, rTmp Idi rTmp, 'A' st X+, rTmp Idi rTmp, 'N' st X+, rTmp Idi rTmp, 'D' st X+, rTmp Idi rTmp, SOd st X+, rTmp Idi rTmp, $0a st X+, rTmp
ret
;*** подпрограмма приема UART1 **** RxUARTT:
in rSave, SREG
nop nop nop
out SREG, rSave
reti ;****** вывод в UARTO для передачи *********
vyvodUART:
Idi rTmp, $00 out UDRO, rTmp call proverka_gotovnostiJUDR
ret
;**** подпрограмма преобразования двоичного числа в двоично-десятичное*****
BINJBCD:
binl6BCD5: Idi tBCD2, -1
binl6BCD5_loop_l: inc tBCD2 subi fbinL, low(10000) sbci fbinH, high(lOOOO) brsh binl6BCD5_loop_l subi fbinL, low(-10000) sbci fbinH, high(-lOOOO) Idi tBCDl,-Oxll
binl6BCD5_!oop_2: subi tBCDl, -0x10 subi fbinL, low(1000) sbci fbinH, high(lOOO) brsh binl6BCD5Joop_2 subi fbinL, low(-lOOO) sbci fbinH, high(-lOOO)
binl6BCD5_loop_3: inc tBCDl subi fbinL, low(lOO) sbci fbinH, high(lOO) brsh binl6BCD5Joop_3 subi fbinL,-100 Idi tBCD0,-0xl0
bin!6BCD5_Ioop_4: subi tBCDO,-0x10 subi fbinL, 10 brsh binl6BCD5_loop_4 subi fbinL,-10 add tBCDO, fbinL
;ret
;*** размещение результата преобразования в ОЗУ и ASCII кодах***
ZAP1S_BCD_SRAM:
mov r25, tBCDO переписать из г17 в г25 andi r25, SOOf ;выполнить логическое И
г25 с числом 00001111 ori r25, S030 ;выполнить логическое ИЛИ
г25 с числом 00110000 st Х+, г25 записать в SRAM,
инкрементировав впоследствии
mov r25, tBCDO ;переписать из г17 в г25 swap г25 ;помепять нибблы местами andi r25, SOOf ;выполнить логическое И
г25 с числом 00001111 ori г25, $030 ;выполнить логическое ИЛИ
г25 с числом 00110000 st Х+, г25 ;записать в SRAM,
инкрементировав впоследствии
308 ret
mov r25, tBCDl ;переписать из rl8 в r25 andi r25, SOOf ;выполнить логическое И
г25 с числом 00001111 ori г25, $030 ;выполнить логическое ИЛИ
г25 с числом 00110000 st Х+, г25 записать в SRAM,
инкрементировав впоследствии
mov r25, tBCDl ;переписать из г 18 в г25 swap г25 {поменять нибблы местами andi r2S, SOOf ;выполнить логическое И
г25 с числом 00001111 ori г25, $030 ;выполнить логическое ИЛИ
г25 с числом 00110000 st Х+, г25 -.записать в SRAM,
инкрементировав впоследствии mov г25, tBCD2 ; переписать из г 19 в г25 andi r25, $00f ;выполнить логическое И
г25 с числом 00001Ш ori г25, $030 ;выполнить логическое ИЛИ
г25 с числом 00110000 st Х+, г25 ;записать в SRAM,
инкрементировав впоследствии movr25, tBCD2 ; переписать из г19 в г25 swap г25 ; поменять нибблы местами andi r25, $00f {выполнить логическое И
г25с числом 00001111 ori г25, $030 {выполнить логическое ИЛИ
г25 с числом 00110000 st Х+, г25 {записать в SRAM,
инкрементировав впоследствии
ret
;**** подпрограмма запроса информации по I2C***
opros_I2C: пор пор пор пор ret
;*** подпрограмма проверки готовности UART принять очередной байт на передачу***
proverka_gotovnosti_UDR:
Ids rTmp, UCSR1A {переписать в rTmp .содержимое регистра
статуса UCSR1A UART sbrs rTmp, 5 {пропустить, если бит 5 UDRE
в регистре статуса UCSR1A установлен jmp proverka_gotovnosti_UDR
ret
;*** подпрограмма проверки готовности приемника UART***
proverka_gotovnosti_RXC: ldi r24,255 {задание времени ожидания
готовности регистра статуса UART proverka_gotovnosti_RXCC:
Ids rTmp, UCSR1A sbrc rTmp, 7 {пропустить, если бит 7 в
регистре статуса USR установлен jmp prod dec r24 brne proverka_gotovnosti_RXCC
prod:
;*** подпрограмма обработки внешнего прерывания no TWI ***
TWI: in rSave, SREG пор пор пор out SREG, rSave reti
;*** подпрограмма обработки внешнего прерывания по intl ***
intt: in rSave, SREG nop nop nop out SREG, rSave reti
;*** подпрограмма обработки внешних прерываний по into ***
into: in rSave, SREG nop nop nop out SREG, rSave
reti {возврат в фоновую программу
;*** Чтение времени из М41Т по TVVI *** Chtenie_M41T: {работа в режиме МАСТЕР-ПРИЕМНИК {установка начального адреса - нулевого
ldi rl6, (1«TWINT)|(1«TWSTA)|(1«TWEN) {установить режим START
sts TWCR, rl6 call wait
Ids rl6,TWSR {Check value of TWI Status Register. Mask prescaler bits. If status different from START go to ERROR
andi rl6,0xF8 {обнуление младших разрядов предделителя
cpi rl6, 0x08 {START brne ERROR_ZAPP
ldi rl6, Obi 1010000 {передаваемый адрес Load SLA_W into TWDR Register. Clear TWINT bit in TWCR to start transmission of address
sts TWDR, rl6 ldi rl6, (1«TWINT)|(1«TWEN) sts TWCR, rl6 call wait
Ids rl6,TWSR {Check value of TWI Status Register. Mask prescaler bits. If status different from MT_SLA_ACK go to ERROR
andi rl6,0xF8 {обнуление младших разрядов предделителя
cpi rl6, 0x18 {MT_SLA_ACK brne ERROR_ZAPP jmpPRODOLGGG
ERROR_ZAPP: jmp ERRORR
PRODOLGGG:
309 Idi rTmp, 0 установка начального адреса в
регистре сдвига часов sts TWDR, rTmp ldi rl6, (I«TWINT)|(1«TWEN) sts TWCR, rl6 call wait
;команда STOP Idi rl6, (l«TWINT)|(l«TWSTO)|(l«TWEN)
|выдать STOP sts TWCR, rl6 call wait
;чтение часов Idi rl6, (1«TWINT)|(1«TWSTA)|(1«TWEN)
установить режим START sts TWCR, rl6
call wait
Ids rl6,TWSR- ;Check value of TWI Status Register. Mask prescaler bits. If status different from START go to ERROR
andi rl6,0xF8 ;обнуление младших разрядов предделителя
cpirl6, 0x08 ;START brne ERROR
Idi rl6, 0Ы1010001 передаваемый адрес Load SLA_W into TWDR Register. Clear TWINT bit in TWCR to start transmission of address
sts TWDR, rl6 Idi rl6, (1«TWINT)|(1«TWEA)|(1«TWEN) sts TWCR, rl6 call wait
Ids rl6,TWSR ;Check value of TWI Status Register. Mask prescaler bits. If status different from MT_SLA_ACK go to ERROR
andi rl6,0xF8 ;обнуление младших разрядов предделителя
cpi rl6, 0x40 ;MT_SLA_ACK brne ERROR jmp PRODOLG
ERROR: jmp ERRORR
PRODOLG: ;здесь должен начаться прием ;записать в X начальный адрес
Idi ХН, high(SECOND) Idi XL, low(SECOND)
Idi rl6, (1«TWINT)|(1«TWEA)|(1«TWEN) установить режим приема первого байта
sts TWCR, rl6 call wait Ids rTmp, TWDR ;запись первого принятого
байта st Х+, rTmp
ldi rl6, (1«TWINT)|(1«TWEA)|(1«TWEN) {установить режим приема второго байта
sts TWCR, rl6 call wait Ids rTmp, TWDR st X+, rTmp
Idi rl6, (l«TWINT)|(l«TWEA)i(l«TWEN) установить режим приема третьего байта
sts TWCR, rl6 call wait Ids rTmp, TWDR st X+, rTmp
Idi rl6, (1«TWINT)|(1«TWEA)|(1«TWEN) sts TWCR, rl6 call wait Ids rTmp, TWDR st X+, rTmp
Idi rl6, (1«TWINT)|(1«TWEA)|(1«TWEN) sts TWCR, r 16 call wait Ids rTmp, TWDR st X+, rTmp
ldi rl6, (1«TWINT)|(1«TWEA)|(1«TWEN) sts TWCR, rl6 call wait Ids rTmp, TWDR st X+, rTmp
ldi rl6, (1«TWINT)|(1«TWEA)|(1«TWEN) sts TWCR, rl6 call wait Ids rTmp, TWDR st X+, rTmp
ldi rl6, (1«TWINT)|(1«TWEN) установить режим приема восьмого байта (последнего байта, поэтому убрать TWEA)
sts TWCR, rl6 call wait Ids rTmp, TWDR stX+, rTmp
STOP_TWI: ERRORR: ;выдача команды STOP TWI
ldi rl6, (l«TWINT)|(l«TWSTO)|(l«TWEN) ; выдать STOP
sts TWCR, rl6 call wait ret
; ожидание прерывания TWINT от TWI wait:
clr r3 waitN:
inc r3 breq waitNTWI '.выполнить 255 циклов и пе
рейти на окончание подпрограммы, ЕСЛИ прерывание от TWI не поступит за это время
Ids rl6,TWCR sbrs rl6,TWINT {пропустить, если поступило
прерывание от TWI jmp waitN
waitNTWI: ret
;*** подпрограмма установки часов *** KLOCK: {записать в X начальный адрес
ldi ХН, high(SET_GET+2) ldi XL, low(SET_GET+2)
ldi rl6, (1«TWINT)|(1«TWSTA)|(1«TWEN) установить режим START
sts TWCR, П6
310 call wait
Ids rl6,TWSR ;Check value of TWI Status Register. Mask prescaler bits. If status different from START go to ERROR
andi r!6,0xF8 ;обнуление младших разрядов предделителя
cpi rl6, 0x08 ;START brne ERROR_ZAP
Idi r l6, Obi 1010000 передаваемый адрес Load SLA_W into TWDR Register. Clear TWINT bit in TWCR to start transmission of address
sts TWDR, rl6 Idi r l6, (1«TWINT)| (1«TWEN) sts TWCR, r l6 call wait
Ids rl6,TWSR ;Check value of TWI Status Register. Mask prescaler bits. If status different from MT_SLA_ACK go to ERROR
andi rl6,0xF8 ;обнуление младших разрядов предделителя
cpi r l6, 0x18 ;MT_SLA_ACK brne ERROR_ZAP jmp PRODOLGG
ERROR_ZAP: jmp ERRORR_ZAP
PRODOLGG: Idi rTmp, 9 ;задание числа выводимых байт mov r2, rTmp clr r l ;счетчик числа выводимых байт
contint: inc rl Id rTmp, X+ загрузить косвенно инкремен-
тировав адрес ОЗУ впоследствии sts TWDR, rTmp Idi r l6, (1«TWINT) | (1«TWEN) sts TWCR, rl6 call wait cp r l , r2 brne contint j m p O U T C H
ERRORR_ZAP: call Peredacha_UARTT_Error
OUT_CH: ;выдача команды STOP TWI
Idi r l6, ( l «TWINT) | ( l «TWSTO) | ( l «TWEN) ; выдать STOP
sts TWCR, rl6 i call wait
ret ;*** Обработка прерывания по таймеруО *** ;окончание приема UART0 - это значит, что оче
редной байт не поступил CurentO:
in rSave, SREG push r l6
clr rTmp out TCCR0, rTmp запретить работу
таймераО out TCNT0, rTmp ;Установить счетчик
таймераО в 0
Ids rTmp, NJSETGET ;считать число передаваемых байт
cp r5, rTmp ;сравнить число передаваемых и принятых байт
breq Vypoln ;перейти на выполнение команды если равно
call Peredacha_UARTT_Error ;передать в PC ошибку приема
Idi rTmp, 0 sts SET_GET, rTmp ;очистить первый байт
принятой информации jmp Out_Curent0
Vypoln: ; call Obrabotka_Prinaytoy_inform
andirSOST,0b00111111 разрешить выполнение п.п.
Obrabotka_Prinaytoy_inform ;убрать флаг индикации режима приема
UART0
Out_Curent0: clr г5 ;очистить счетчик числа принятых
байт pop г16 out SREG, rSave
reti ;*** подпрограмма передачи показания часов в
PC! CLOCK:
cli запретить прерывания - это для первого раза
in rSave, SREG push rTmp push XH push XL
ori rSOST, ОЬООЮОООО установить флаг передачи UART0
Idi rTmp, 8 mov r7, rTmp ;запись в r7 числа
выводимых байт
Idi XH, high (SECOND) перезапись начального адреса
Idi XL, low (SECOND)
sts ADRESS_TRANSM_UART_H, XH sts ADRESS_TRANSM_UART_L, XL
;записать в ОЗУ адрес
jmp NeNachaloTX ;*** передача в PC информации из ОЗУ по адресу,
запрошенному от PC*** MEMORI С О М Р С :
cli запретить прерывания - это для первого раза
in rSave, SREG push rTmp push XH push XL ori rSOST, ОЬООЮОООО установить флаг
передачи UART1
Ids rTmp, BAYT_N mov r7, rTmp ;запись в r7 числа выводимых
байт
Ids XH, ADRES_H перезапись начального адреса
Ids XL, ADRES_L
sts ADRESS_TRANSM_UART_H, XH
311 sts ADRESS_TRANSM_l)ART_L, XL
;записать в ОЗУ адрес
jmpNeNachaloTX
UART0_TRANSM_AVTOMAT:
;перед первым запуском этой подпрограммы в г7 необходимо помещать число заданных байт для передачи, которые должны быть помещены в ОЗУ, начиная с ячейки SET_GET
;первый вход в эту подпрограмму (это старт передатчика) осуществляется программным путем, а потом по прерываниям
in rSave, SREG push rTmp push XH push XL
tst гб ;проверить счетчик переданных байт на ноль
brne NeNachaloTX ;перейти, если счетчик не равен нулю
ori rSOST, ObOO 100000 установить флаг передачи UART1
Idi XH, high(SET_GET) {записать в X начальный адрес начала буфера обмена данными с PC
Idi XL, low(SET_GET)
sts ADRESS_TRANSM_UART_H, XH sts ADRESS_TRANSM_UART_L,
;записать в ОЗУ инкрементированный адрес XL
NeNachaloTX: Ids XH, ADRESSJTRANSMJJARTJH
;считать из ОЗУ адрес Ids XL, ADRESS_TRANSM_UART_L
inc гб ;икрементировать счетчик числа переданных байт
Id rTmp, Х+ ;загрузить косвенно инкрементировав адрес ОЗУ впоследствии
out UDR0, rTmp ;выдать в UART0
sts ADRESSJTRANSMJJARTJH, XH sts ADRESS_TRANSMJJART_L,
{записать в ОЗУ инкрементированный адрес XL
Idi rTmp, 0Ы1011000 {разрешить приемник и передатчик и прерывания по завершению приема UART0 и передачи
out UCSR0B, rTmp ср гб, г7
brne OUTTRANS {перейти, если передан не последний байт
andi rSOST, 0Ы1011 111 {очистить флаг передачи UART0
Idi rTmp, ОЫООПООО {запретить прерывание по завершению передачи
out UCSR0B, rTmp {разрешить приемник и передатчик и прерывания по завершению приема UART0
clr гб {очистить счетчик числа переданных байт
OUT TRANS:
pop XL popXH pop rTmp out SREG, rSave
reti
vixod_UARTO:
Idi r l6 , 'T' out UDR0, r l6 {выдать в call zader Idi r l6, V out UDR0, r l6 {выдать в call zader Idi r l6 , 'i' out UDR0, r l6 {выдать в call zader Idirl6, "m* outUDRO, r l6 {выдать в call zader Idi r l6, $0d outUDRO, r l6 {выдать в call zader ldirl6,S0a out UDR0, r l6 {выдать в call zader
; rcall proverka_gotovnosti_UDR0
UART0
UART0
UART0
UART0
UART0
UART0
ret
proverka_gotovnosti_UDR0:
in rTmp, UCSR0A {переписать в rTmp содержание регистра статуса
UCSR0A UART sbrs rTmp, 5 {пропустить, если бит 5 UDRE в
регистре статуса UCSR0A установлен rjmp proverka_gotovnosti_UDR
ret . А * * * * * * * * * * * * * *
init_displey: ;*** инициализация символьного 2002 индикатора
как SRAM ** ;РС7 - 1 ;РС1 - 1 запись ;РСО - 1 данные, 0 - команды ;PG1 -1 {PG0 - строб
;РСОРС1 ;RS RW РА7 РАО {0 0 0 0 0 0 0 0 0 1 Очистить дисплей и установить
курсор в нулевую позицию (адрес 0) {0 0 0 0 0 0 0 0 1 * Установить курсор в нулевую
позицию (адрес 0). Установить дисплей относительно буфера DDRAM в начальную позицию. Содержимое DDRAM при этом не меняется.
;0 0 0 0 0 0 0 1 I/D S Установить направление сдвига курсора вправо (I/D=l) или влево (1/D=0) при записи/чтении очередного кода в DDRAM. Разрешить (S=l) сдвиг дисплея вместе со сдвигом курсора.
{ 0 0 0 0 0 0 1 D С В Включить(0=1) /выключить(О=0) дисплей. Зажечь(С=1) /погасить(С=0) курсор. Изображение курсора сделать мигающим (В=1).
;0 0 0 0 0 1 S/C R/L * * Переместить курсор (S/C=0) или сдвинуть дисплей (S/C=l) вправо (R/L=l) или Bfleeo(R/L=0).
312 ;0 0 0 0 1 DL N F * * Установить разрядность ши
ны данных 4 бита (DL=0) или 8 бит (DL=1), количество строк дисплея - одна (N=0) или две (N=1), шрифт -5x7 точек (F=0) или 5x10 точек (F=l).
;1 0 Данные Запись данных в DDRAM или CGRAM. ;0 0 1 ADD Установка адреса DDRAM. После
этой команды данные будут записываться Учитываться в/из DDRAM.
;!!!!! Вторая строка начинается с 64 позиции
инициализация 2002 как внешней SRAM real! zadergka
ldi rl6, ObOOOOOOOl call COMANDA_LCD rcall zadergka
ldi rl6, ObOOOOOOlO call COMANDAJLCD rcall zadergka
Idirl6,0b00000110 call COMANDA_LCD rcall zadergka ldi rl6,ObOOOOllOO call COMANDAJLCD rcall zadergka
ldi rl6, ObOOllllll call COMANDA J X D rcall zadergka
ret
VREMYA_OUT_LCD: ;Вывод времени на LCD ;выводит число, месяц, год и часы, минуты и се
кунды в верхнюю строку ;в нижнюю строку - день недели
ldi г16,0 ;64 call POLOGENIE_CURSOR
Ids rl7, SECOND+4 swap rl7 andi rl7, ObOOOOllll
brne Viv_data ldi r l 6 , ' ' jmp dataO
Viv_data: ori rl7, ObOOllOOOO mov rl6, rl7
dataO: call SIMVOL_OUT_LCD
Ids rl7, SECOND+4 andi rl7, ObOOOOllll ori rl7, ObOOllOOOO mov rl6, rl7 call SIMVOL_OUT_LCD
ldi r l 7 , 7 mov rl6, rl7 call SIMVOL_OUT_LCD
Ids rl7, SECOND+5 swap rl7 andi rl7, ObOOOOllll ori rl7, ObOOllOOOO
mov rl6, rl7 call SIMVOLOUTJLCD
Ids rl7, SECOND+5 andi rl7, ObOOOOllll ori rl7, ObOOllOOOO mov rl6, rl7 call SIMVOL_OUTJLCD
ldi rl7,'.' mov rl6, rl7 call SIMVOL_OUT_LCD
ldi rl6, '2' call SIMVOLOUTJLCD ldi rl6, '0' call SIMVOL_OUT_LCD
Ids rl7, SECOND+6 swap rl7 andirl7, ObOOOOllll ori rl7, ObOOllOOOO mov rl6, rl7 call SIMVOL_OUT_LCD
Ids rl7, SECOND+6 andi rl7, ObOOOOllll orirl7, ObOOllOOOO mov rl6, rl7 call SIMVOL_OUTJLCD
ldi r l 7 , ' ' mov rl6, rl7 call SIMVOL_OUT_LCD
idi r l 7 , ' ' mov rl6, rl7 call SIMVOL_OUT_LCD
Ids rl7, SECOND+2 swap rl7 andi rl7, ObOOOOllll
brne Viv_chas Idi r l 6 , ' ' jmp chasO
Viv_chas: orirl7, ObOOllOOOO mov rl6, rl7 mov rl6, rl7
chasO: call SIMVOL_OUT_LCD
Ids П7, SECOND+2 andirl7, ObOOOOllll ori r 17, ObOOllOOOO mov rl6, rl7 call SIMVOL_OUT_LCD
ldi rl7,':' mov rl6, rl7 call SIMVOL OUTLCD
ldsr!7,SECOND+l swap rl7 andi rl7,0b00001111 ori rl7, ObOOllOOOO mov rl6, rl7 call SIMVOL OUT LCD
313 Ids r l7, SECOND+1 andirl7,0b00001111 o r i r l7 , ObOOllOOOO mov rl6, r l7 call SIMVOL OUT LCD
jmp vixod_day An_Sunday:
Idi ZH, high(Sunday*2) ldi ZL, low(Sunday*2) call OUT DAY LCD
Idi r l7 , ':' mov r l6 , r l7 call SIMVOL_OUT_LCD
Ids r l7 , SECOND swap r l7 andirl7,0b00001111 o r i r l7 , ObOOllOOOO mov r l6 , r l7 call SIMVOL_OUT_LCD
Ids r l7 , SECOND andirl7,0b00001111 or i r l7 , ObOOllOOOO mov rl6, r l7 call SIMVOL_OUT_LCD
;ВЫВОД ДНЯ НЕДЕЛИ Idi t-16,64 call POLOGENIE_CURSOR
Ids r l6, SECOND+3 andi r l6, ObOOOOllll ;день недели
cpi r l 6 ,1 brne An_Tuesday ldi ZH, high(Monday*2) ldi ZL, low(Monday*2) call OUT_DAY_LCD jmpyixod_day
An_Tuesday: cpi r l6 ,2 brne An_Wednesday ldi ZH, high(Tuesday*2) Idi ZL, low(Tuesday*2) call OUT_DAY_LCD jmp vixod_day
An_Wednesday: cpi r l 6 , 3 brne An_Thursday Idi ZH, high(Wednesday*2) Idi ZL, Iow(Wednesday*2) call OUT_DAY_LCD jmp vixod_day
An_Thursday: cpi r l6 ,4 brne An_Friday Idi ZH, high(Thursday*2) Idi ZL, low(Thursday*2) call OUT_DAY_LCD jmp vixod л!ау
An_Friday: cpi r l6, 5 brne An_Saturday Idi ZH, high(Friday*2) Idi ZL, low(Friday*2) call OUT_DAY_LCD jmp vixod_day
An_Saturday: cpi r l6 ,6 brne An_Sunday ldi ZH, high(Saturday*2) Idi ZL, low(Saturday*2) call OUT DAY LCD
vixod_day: /* Показывает все символы в последней позиции
второй строки ldi г16,83 ;1 call POLOGENIE_CURSOR Ids r l6, Schetchik inc r l6 sts Schetchik, r l6 dec r l6 call SIMVOL_OUT_LCD
*/ ret
OUT_DAY_LCD: ldi r l7, 20
Viv_day: Ipm r l6 , Z+ call SIMVOL_OUT_LCD dec r l7 brne Viv_day
ret
SIMVOL_OUT_LCD: выводимый символ должен находиться в г16 IdiXH, ОЫ0000001 Idi XL, 0b00000000 s t X , r l 6 call zad
ret
COMANDA_LCD: ;команда должна находиться в r l6 IdiXH, 0Ы0000000 ldi XL, ObOOOOOOOO st X, r l6 call zad
ret
POLOGENIE CURSOR: ;положение курсора
r l6 , используется также r l7 IdiXH, 0Ы0000000 Idi XL, ObOOOOOOOO Idi r l7, OblOOOOOOO a d d r l 6 , r l 7 st X, r l6 rcall zad
ret
должно находиться в
zadergka:
НИ:
ret zader:
ldi r l9,10
decr8 brne 1111 dec r9 brne 1111 dec r l9 Ьгле 1111
dec r8 brne zader dec r l9 brne zader
314
ret
zad: decr8 brne zad
ret
.ORG S6000
;*** ЗАПИСЬ СТРОК В ПАМЯТЬ ПРОГРАММ
Monday: .DB" M O N D A Y " Tuesday: .DB" T U E S D A Y " Wednesday: .DB " W E D N E S D A Y " Thursday: .DB" T H U R S D A Y " Friday: .DB" F R I D A Y " Saturday: .DB" S A T U R D A Y " Sunday: .DB" S U N D A Y "
;ОЗУ .DSEG .ORG 0x0800
зарезервировать ячейки в памяти - ОЗУ .ORG 0x0200 зарезервировать ячейки в памяти - ОЗУ ;—Ячейки ОЗУ для хранения данных BCD
ADRESS_RECIV_UART_L: .Byte 1 ADRESS_RECIV_UART_H: .Byte 1 ;!!! НУЖ
НО КОНТРОЛИРОВАТЬ ДОПУСТИМУЮ ОБЛАСТЬ ПАМЯТИ!!!
ADRESS_TRANSM_UART_L: .Byte 1 ADRESS_TRANSM_UART_H: .Byte 1
Schetchik: .Byte 1 SECOND_OLD: .Byte 1
.ORG OxOdOO ;буфер обмена с PC SETJ3ET: .Byte 1 ;команда N_SET_GET: .Byte 1 ;число принимаемых
байт (передаваемых от PC) ADRES_H: Byte 1 ;байт управления обработкой
принятой информации или -адрес - старший байт
ADRESL: .Byte 1 ;байт управления обработкой принятой информации или -адрес - младший байт
BAYTJ4: Byte 1 ;байт управления обработкой принятой информации или -число запрашиваемых байт,
или первый информационный байт ;с этого адреса принимаемые данные
.ORG $0710 ;буфер обмена часов SECOND: .Byte 8 ;первый (
М41Т00 аит приема от
ПРИМЕРЫ КОМАНД (в hex-формате) Запрос времени 63 02 - это специальная команда чтения
времени Установка часов 6Ь0а 00 01 50 17 05 03 11 07
;где: 6Ь - команда, 0а - число переданных байт, 00 -
байт калибровки, 01 - сек, 50 - мин, ;17 - час, 05 - день недели, 03 - число, 11 - месяц, 07 - год.
2. КЛАССИФИКАЦИЯ И МАРКИРОВКА ИНТЕГРАЛЬНЫХ МИКРОСХЕМ
В 1958 году двое учёных, живущих в совершенно разных местах, изобрели практически идентичную модель интегральной схемы. Один из них, Джек Килби, работал на Texas Instruments, другой, Роберт Нойс, был владельцем собственной компании по производству полупроводников Fairchild Semiconductor Corporation. Обоих объединил вопрос: «Как в минимум места вместить максимум компонентов?». Транзисторы, резисторы, конденсаторы и другие детали в то время размещались на платах отдельно, и ученые решили попробовать их объединить в один монолитный кристалл из полупроводникового материала. Только Килби воспользовался германием, а Нойс предпочёл кремний. В 1959 году они отдельно друг от друга получили патенты на свои изобретения — началось противостояние двух компаний, которое закончилось мирным договором и созданием совместной лицензии на производство чипов. После того как в 1961
году Fairchild Semiconductor Corporation пустила интегральные схемы в свободную продажу, их сразу стали использовать в производстве калькуляторов и компьютеров вместо отдельных транзисторов, что позволило значительно уменьшить размер и увеличить производительность.
Первая российская (советская) полупроводниковая микросхема была создана в 1961 г. в Таганрогском радиотехническом институте в лаборатории Л. Н. Колесова [http://ru.wikipedia.org].
Классификация микросхем
В зависимости от технологии изготовления интегральные микросхемы могут быть полупроводниковыми, пленочными или гибридными.
315
Полупроводниковая микросхема - микросхема, все элементы и межэлементные соединения которой выполнены в объеме и на поверхности полупроводника.
Пленочная микросхема - микросхема, все элементы и межэлементные соединения которой выполнены только в виде пленок проводящих и диэлектрических материалов. Вариантами пленочных являются тонкопленочные и толстопленочные микросхемы.
Различие между тонкопленочными и толстопленочными микросхемами может быть количественным и качественным. К тонкопленочным условно относят микросхемы с толщиной пленок менее 1 мкм, а к толстопленочным - микросхемы с толщиной пленок свыше 1 мкм.
Гибридная микросхема - микросхема, содержащая кроме элементов простые и сложные компоненты (например, кристаллы микросхемы полупроводниковых микросхем). Одним из видов гибридной микросхемы является многокристальная микросхема.
В зависимости от функционального назначения интегральные микросхемы делятся на аналоговые и цифровые. Аналоговые микросхемы предназначены для преобразования и обработки сигналов, изменяющихся по закону непрерывной функции. Частным случаем этих микросхем является микросхема с линейной характеристикой, линейная микросхема. С помощью цифровых микросхем преобразуются, обрабатываются сигналы, изменяющиеся по закону дискретной функции. Частным случаем цифровых микросхем являются логические микросхемы, выполняющие операции с двоичным кодом, которые описываются законами логической алгебры.
Минимальный состав комплекта интегральных микросхем, необходимый для решения определенного круга аппаратурных задач, называется базовым.
После появления микропроцессоров были введены дополнительные термины. Микропроцессор определен как программно-управляемое устройство, осуществляющее процесс обработки цифровой информации и управления им. Это устройство изготовлено на основе одной или нескольких больших интегральных схем (БИС).
Микропроцессорной названа микросхема, выполняющая функцию МП или его части. Совокупность этих и других микросхем, совместимых по архитектуре, конструктивному исполнению и электрическим параметрам, называется микропроцессорным комплектом.
В последние годы в классификацию ИС вводятся новые понятия: микросхемы общего назначения, заказные и полузаказные.
Заказная микросхема - микросхема, разработанная на основе стандартных и (или) специально созданных элементов узлов по функциональной схеме заказчика предназначена для определенной радиоэлектронной аппаратуры.
Полузаказная интегральная микросхема -микросхема, разработанная на основе базовых кристаллов (в том числе матричных).
Система условных обозначений микросхем. Аналоговые и цифровые интегральные микросхемы разрабатываются и выпускаются предприятиями - изготовителями в виде серий. Каждая серия отличается степенью комплектности и содержит несколько микросхем, которые, в свою очередь, подразделяются на типо-номиналы. К серии микросхем относят совокупность типов микросхем, которые могут выполнять различные функции, но имеют единое конструктивно-технологическое исполнение и предназначены для совместного применения. Как правило, с течением времени состав перспективных серий расширяется.
Тип интегральной микросхемы - интегральная микросхема конкретного функционального назначения и определенного конструктивно-технологического и схемотехнического решения, имеющая свое условное обозначение. Под типономиналом интегральной микросхемы понимается микросхема конкретного типа, отличающаяся от других микросхем того же типа одним или несколькими параметрами.
Группа типов микросхем - совокупность типов микросхем в пределах одной серии, имеющих аналогичное функциональное назначение и принцип действия, свойства которых описываются одинаковым или же близким составом электрических параметров.
Маркировка микросхем
По ГОСТ 18682-73 полупроводниковые приборы (диоды и транзисторы) маркируются следующим образом:
Первая буква (или цифра) - полупроводниковый материал:
-Г(1) - германий, - К(2) - кремний, - А(3) - арсенид галлия. Вторая буква - тип прибора: - Д - диод, - Т - транзистор,
316
- В - варикап, - С - стабилитрон и т.д. Например: КТ3107А - кремниевый транзи
стор, высокочастотный малой мощности (определяется цифрой - 3).
Для ИМС: Первая цифра связана с технологией изготовления и материалами: - 1, 5, 7 - полупроводниковые ИМС, - 2,4, 6, 8 - гибридные ИМС, - 3 -прочие (например, пленочные). Вторая и третья цифры - номер разработки,
две буквы - функциональное назначение, последние цифры - номер в данной серии, цифра - номер в данной серии.
Например: К155ТМ2. Гибридные - это такие ИМС, у которых
пассивные элементы - пленочные, а активные выполнены навесным монтажом. Пленочные ИМС делятся на типы:
- толстопленочные (свыше 1-2 мкм), -тонкопленочные (до 1-2 мкм). Ниже в табл. П2.1, П2.2 приведена марки
ровка некоторых ИМС. Таблица П2.1
Аналоговые ИМС
Функциональное назначение ИМС
Обозначение
Генераторы Г Импульсов синусоидальной формы
ГС
Импульсов специальной формы
ГФ
Импульсов прямоугольной формы
гг Шума гм Прочие ГП
Усилители У Низкой частоты УН
Высокой частоты УВ Повторители УЕ Операционные и дифференциальные
УД
Постоянного тока УТ Преобразователи п
Частоты ПС Фазы ПФ Уровня ПУ Код-аналог(ЦАП) ПА Аналог-код (АЦП) ПВ
Модуляторы м Амплитудные МА Частотные МС Селекции и сравнения с Амплитудные (компараторы)
CA
Детекторы д Амплитудные ДА Частотные дс Фазовые ДФ
Окончание табл. П2.1
Импульсные ДИ Фильтры Ф
Высокой частоты ФВ Низкой частоты ФН Полосовые ФЕ Стабилизаторы напряжения
БН
Коммутаторы и ключи К Тока кт Напряжения кн
Наборы н Диодов нд Транзисторов нт Резисторов HP Конденсаторов НЕ Многофункциональные
схемы X
Аналоговые ХА Цифровые (логические) ХЛ Комбинированные XK
Таблица П2.2 Цифровые ИМС
Логические элементы Л НЕ лн И-НЕ ЛА И-ИЛИ ЛС И ЛИ ИЛИ ЛЛ ИЛИ-НЕ ЛЕ И-ИЛИ-НЕ ЛР Расширители лд
Триггеры т RS - триггер ТР D- триггер тм Т- триггер тт JK- триггер ТВ Шмидта тл Комбинированные тк
Формирователи А Импульсов прямоугольной формы
АГ
Импульсов специальной формы
АФ
Элементы арифм. и дискр. устр.
И
Регистры ИР Сумматоры им Полусумматоры ил Дешифраторы ид Счетчики ИЕ
Схемы памяти Р ОЗУ матрицы РУ ПЗУ матрицы РВ,РЕ С УФ стиранием РФ С электрическим стиранием
РР
Мультиплексоры MX Процессоры вм Периферийные адаптеры
вв Таймеры ВИ
317 КМОП и ТТЛ (ТТЛШ) технологии являют
ся наиболее распространёнными логиками микросхем. Там, где необходимо экономить потребление тока, применяют КМОП-технологию, где важнее скорость и не требуется экономия потребляемой мощности применяют ТТЛ-технологию.
Слабым местом КМОП-микросхем является их уязвимость от статического электричества -достаточно коснуться рукой вывода микросхемы и её целостность уже не гарантируется.
С развитием технологий ТТЛ и КМОП микросхемы по параметрам сближаются и, как следствие, например, серия микросхем 1564 — сделана по технологии КМОП, а функциональность и размещение в корпусе как у ТТЛ технологии.
Микросхемы, изготовленные по ЭСЛ-технологии, являются самыми быстрыми, но наиболее энергопотребляющими и применялись при производстве вычислительной техники в тех случаях, когда важнейшим параметром была скорость вычисления. Сейчас эта технология используется редко.
Параметры и аналоги серий логических схем
Поскольку ИМС, выполненные на основе технологий ТТЛ и КМОП, являются наиболее применяемыми, приведем некоторые данные по отечественным ИМС этих типов и их аналогам.
Эти данные по ИМС ТТЛ приведены в табл. П2.3, П2.4.
Таблица П2.3 Серии отечественных ИМС ТТЛ и их аналоги
Аналог Серия Аналог Серия SN74 155 SN54 133 SN74L 158 SN54L 136 SN74H 131 SN54H 130 SN74LS 555 SN54LS 533 SN74S 531 SN54S 530 SN74ALS КР1533 SN54LS 1533 SN74F КР1531 SN54F 1531
Обозначения, принятые в табл. П2.3: - L (low) - маломощная серия, - Н (high) - быстродействующая серия, - LS (low&Shottky) - маломощная серия с
диодами Шотки,
- S (Shottky) - серия с диодами Шотки, - ALS (advanced low&Shottky) - усовершен
ствованная маломощная серия с диодами Шотки,
- F (fast) - сверхбыстродействующая серия.
Таблица П2.4 Основные параметры ИМС ТТЛ
Потреб Задержка Макси КоэфСе ляемая распро мальная фициент рия мощ стране частота, разветвИМС ность,
[мВт] ния, [не] [МГц] ления
74 10 10,0 35 10 74L 1 33,0 3 10 74Н 22 6,0 50 10 74LS 2 9,5 45 20 74S 19 3,0 125 10 74AL 1 4,0 50 40 S74F 4 2,0 130 33
Аналогичные параметры по ИМС КМОП приведены в табл. П2.5, П2.6.
Таблица П2.5 Серии ИМС КМОП и их аналоги
Импортный Серия ИМС Напряжение пианалог тания, [В]
CD4000 164, 176 9 CD4000A 561, 564 3..15 MCI4000A 561, 564 3..15 CD4000B КР1561 3..18 54НС 1564 2.6
Таблица П2.6 Основные параметры ИМС КМОП
Серия По- За Макси КоэфИМС треб- держка мальная фици
ляе- распро частота, ент мая стране раз
мощ ния, [МГц] ветвленость, [НС] ния [мВт]
CD4000 30 200 5 50 CD4000A 50 100 5 50 CD4000B 100 30 10 100 54НС 100 10 50 50
Соответствие по функциональному назначению отечественных микросхем TTL серий импортным микросхемам 74-й серии приведено в табл. П2.7
318 Таблица П2.7
Таблица соответствия отечественных микросхем TTL серий импортным микросхемам
гост 74 серия ГОСТ 74 серия ГОСТ 74 серия ГОСТ 74 серия ГОСТ 74 серия ГОСТ 74 серия ГОСТ 74 серия ГОСТ 74 серия АГ1 121 ИД1 141 ИЕ6 192 ИР22 373 КП15 251 ЛЕ1 2 ЛН6 366 РУ2 89 АГЗ 123 ИДЮ - 1 4 5 ИЕ7 193 ИР23 374 КП16 157 ЛЕЮ 1002 ЛН7 368 РУЗ 84 АГ4 221 ИД14 139 ИЕ8 97 ИР24 299 КП17 353 ЛЕ11 33 ЛН8 1004 РУ6 214 АП12 540 ИД 18 247 ИЕ9 160 ИР25 395 КП18 158 ЛЕ2 23 ЛП10 365 РУ6 301 АП13 541 ИД19 159 ИК2 381 ИР26 670 КП19 352 ЛЕЗ 25 ЛП11 367 РУ8 189 АП14 465 ИД19 238 ИК4 281 ИР27 377 КП2 153 ЛЕ4 27 ЛП12 136 РУ9 289 АП15 466 ИД22 537 ИМ1 80 ИР28 322 КП20 399 ЛЕ5 28 ЛП14 126 СП1 85 АП16 643 ИД23 4511 ИМ2 82 ИР29 323 КП5 152 ЛЕ6 128 ЛП16 1034 ТВ1 72 АП17 651 ИД24 45 ИМЗ 83 ИР30 259 КЛ7 151 ЛЕ7 260 ЛП17 1035 ТВЮ 113 АП2 216 идз 154 ИМ5 183 ИР32 170 ЛА1 20 ЛЕ8 805 ЛП4 17 ТВ11 114 АП24 652 ИД4 155 ИМ6 283 ИРЗЗ 573 ЛАЮ 12 ЛЕ9 4002 ЛП5 86 ТВ14 78 АП25 620 ИД5 156 ИМ7 385 ИР34 873 ЛА11 26 ЛИ1 8 ЛП7 450 ТВ15 109 АП26 623 ИД6 42 ИП14 881 ИР35 273 ЛА12 37 ЛИЮ 1011 ЛП8 125 ТВ6 107 АПЗ 240 ИД7 138 ИП16 882 ИР37 574 ЛА13 38 ЛИ2 9 ЛП9 7 ТВ9 112 АП4 241 ИЕ10 161 ИП2 180 ИР38 874 ЛА16 (40 ЛИЗ 11 ЛР1 50 ТКЗ 76 АП5 244 ИЕ11 162 ИПЗ 181 ИР40 533 ЛА18 452 ЛИ4 15 ЛР10 65 ТК7 100 АП6 245 ИЕ12 190 ИП4 182 ИР41 534 ЛА19 134 ЛИ5 451 ЛР11 51 ТЛ1 13 АП7 641 ИЕ13 191 ИП5 280 ИР42 350 ЛА2 30 ЛИ6 21 ЛР13 54 ТЛ2 14
АП8 645 И Е Н 196 ИП6 242 ИР43 S 396 ЛА20 804 ЛИ7 808 ЛРЗ 53 ТЛЗ 132 АП9 640 ИЕ15 197 ИП7 243 ИР46 4015 ЛА21 1000 ЛИ8 1008 ЛР4 55 ТМЮ 379 ВА1 646 ИЕ16 168 ИП8 261 ИР47 4006 ЛА22 1020 ЛИ9 34 ЛР9 64 ТМ2 74
ВА2 648 ИЕ17 169 ИП9 384 ИР5 98 ЛА23 1003 ЛЛ1 32 ПП4 49 ТМ5 77 ВГ1 482 ИЕ18 163 ИР1 95 ИР51 4035 ЛА24 1010 ЛЛ2 453 ПР6 184 ТМ7 | 75
ВЖ1 630 ИЕ19 393 ИР10 166 ИР8 164 ЛАЗ 0 ЛЛЗ 832 ПР7 185 ТМ8 175
ГГ1 124 ИЕ2 | 90 ИР11 194 ИР9 165 ЛА4 10 ЛЛ4 1032 ПЦ1 292 ТМ9 174 ГГ2 626 ИЕ20 390 ИР12 195 КП1 150 ЛА6 40 ЛН1 4 РЕ2 187 ТР2 279
ГГ6 624 ИЕ21 593 ИР13 198 КП11 257 ЛА7 22 ЛН10 1005 РПЗ 172 ИВ1 148 ИЕ23 4520 ИР15 173 КП12 - 253 ЛА8 1 ЛН2 5 РУ1 81
ИВ2 348 ИЕ4 I 92 ИР16 295 КП13 298 ЛА9 3 ЛНЗ 6 РУ10 225
ИВЗ 147 ИЕ5 93 ИР2 91 КП14 258 ЛД1 60 ЛН5 16 РУ12 224
Основным элементом микросхем являются транзисторы (биполярные или полевые). Разница в технологии изготовления транзисторов существенно влияет на характеристики микросхем. Поэтому в описании (маркировке) микросхемы указывают технологию изготовления, чтобы подчеркнуть тем самым общую характеристику свойств и возможностей микросхемы.
Для улучшения характеристик микросхем в современных технологиях объединяют технологии биполярных и полевых транзисторов -пример BiCMOS-технология.
Выше было сказано, что фирма Texas Instruments одна из первых приступила к выпуску интегральных микросхем. В настоящее время она является также и лидером по числу используемых различных технологий. В табл. П2.8 приведены технологии изготовления интегральных микросхем этой фирмы.
Технологии изготовления микросхем фирмы Texas Instruments Таблица П2.8
Technology Family Description Type АВТ Advanced BiCMOS Technology BiCMOS АВТЕ Advanced BiCMOS Technology / Enhanced Transceiver Logic BiCMOS АС Advanced CMOS Logic CMOS ACT Advanced CMOS Logic CMOS АНС Advanced High-Speed CMOS CMOS АНСТ Advanced High-Speed CMOS CMOS ALB Advanced Low-Voltage BiCMOS BiCMOS ALS Advanced Low-Power Schottky Logic BiPolar
319 Окончание табл. П2.8
ALVC Advanced Low-Voltage CMOS Technology CMOS ALVT Advanced Low-Voltage CMOS Technology BiCMOS AS Advanced Schottky Logic BiPolar AUC Advanced Ultra-Low-Voltage CMOS Logic CMOS AUP Advanced Ultra-Low-Power CMOS Logic CMOS AVC Advanced Very-Low-Voltage CMOS Logic CMOS BCT BiCMOS Technology BiCMOS CB3Q Low-Voltage, High-Bandwidth Bus Switch Technology CMOS CB3T Low-Voltage, Translator Bus Switch Technology CMOS CBT Crossbar Technology CMOS CBT-C CBT with Undershoot Protection CMOS CBTLV Low-Voltage Crossbar Technology CMOS CD4000 CMOS Logic CMOS F Fast Logic BiPolar FB Backplane Transceiver Logic BiCMOS FCT Fast CMOS Technology CMOS GTL Gunning Transceiver Logic BiCMOS GTLP Gunning Transceiver Logic Plus CMOS HC High-Speed CMOS Logic CMOS нет High-Speed CMOS Logic CMOS
HSTL High-Speed Transceiver Logic BiCMOS
JTAG JTAG Boundary Scan Support BiCMOS
LS Low-Power Schottky Logic BiPolar
LV-A Low-Voltage CMOS Technology CMOS
LV-AT Low-Voltage CMOS Technology CMOS
LVC Low-Voltage CMOS Technology CMOS
LVT Low-Voltage BiCMOS Technology BiCMOS
PCA Inter Integrated Circuit CMOS
PCF Inter Integrated Circuit CMOS
S Schottky Logic BiPolar
SSTL Stub Series Terminated Logic BiCMOS
SSTV Stub Series Terminated Low-Voltage Logic CMOS
TS TI Switch CMOS
TTL Transistor-Transistor Logic BiPolar
TVC Translation Voltage Clamp CMOS
VME VME Bus Products CMOS
С особенностями технологий, а также с параметрами элементов, получаемых для каждой конкретной технологии, можно ознакомиться на сайте http://www.ti.com.
Перечень микросхем изготавливаемых фирмой Texas Instruments также обширен:
Buffers, Drivers and Transceivers (1221) • Inverting Buffers and Drivers (350) • Non-Inverting Buffers and Drivers (470)
• Parity Transceivers (10) • Registered Transceivers (124) • Standard Transceivers (268) Flip-Flops, Latches and Registers (574)
D-Type (3-State) Flip-Flops (160) • D-Type Flip-Flops (154) • D-Type Latches (144)
J-K Flip-Flops (27) • Other Latches (21) • Shift Registers (69)
320 Gates (478) микросхем существует не полный их набор по • AND Gates (107) функциональному назначению. • Configurable Gates (6) • Exclusive NOR Gates (XNOR) (4) • Exclusive OR Gates (XOR) (48) . NAND Gaies (152) Корпуса микросхем • NOR Gates (79)
12C)
OR Gates (83) I2C Logic (25) Little Logic (688)
Single-Gates (476) Dual-Gates (184) Triple-Gates (29)
MSI Functions (377) Arithmetic and Parity Functions (19) Counters (113) Decoders/Encoders/Multiplexers (227) Digital Comparators (19)
gnal Switches (248) Analog Switches and Multiplexers (105) Digital Bus Exchange/Multiplexing Switches (39) Digital Bus Switches (86) USB Switches (3) LAN Switches (8) Video Switches (8)
Specialty Logic (255) Backplane Logic (35) Boundary Scan (JTAG) Logic (44) Bus Termination Arrays and Networks (9) DIMM Memory Drivers and Transceivers (20) FIFOs (56) IEEE-1284 (Parallel Port Interface) (5) Miscellaneous Gate and Delay Elements (3) Monostable Multivibrators (28) Phase-Locked-Loops (PLLs) and Oscillators (14) Programmable Logic (33) Rate Multipliers/Frequency Dividers/Timers (9)
Universal Bus Functions (70) Universal Bus Drivers (UBDs) (19) Universal Bus Exchangers (UBEs) (13) Universal Bus Transceivers (UBTs) (39)
Voltage Level Translation (133) Application Specific (Compact flash, SD, MMC,
(6) Dual Supply Translators (88) ECL/TTL Translators (5) GTL/TTL Translators (2) Single Supply Translators (4) Translating Bus Switches (29)
В приведенном перечне в скобках указано число микросхем, выпускаемых в каждой группе.
Большое число типов интегральных микросхем по функциональному назначению и по технологии изготовления позволяют разработчику подобрать набор микросхем для оптимального решения поставленной задачи. Однако следует отметить, что в каждой серии
Микросхемы выпускаются в двух конструктивных вариантах — корпусном и бескорпусном.
Бескорпусная микросхема — это полупроводниковый кристалл, предназначенный для монтажа в гибридную микросхему или микросборку.
Корпус — это часть конструкции микросхемы, предназначенная для защиты от внешних воздействий и для соединения с внешними электрическими цепями посредством выводов. Корпуса стандартизованы для упрощения технологического процесса изготовления изделий из разных микросхем. В российских корпусах расстояние между выводами измеряется в миллиметрах и наиболее часто это 2,5 мм или 1,25 мм. У импортных микросхем расстояние измеряют в дюймах, используя величину 1/10 или 1/20 дюйма, что соответствует 2,54 и 1,28 мм. В корпусах до 16 выводов эта разница незначительна, а при больших размерах идентичные корпуса уже несовместимы. В современных импортных корпусах для поверхностного монтажа применяют и метрические размеры: 0,8 мм; 0,65 мм и другие.
По способу монтажа на печатную плату корпуса микросхем делятся на два типа - для монтажа в отверстия печатной платы и для поверхностного монтажа.
Пластмассовые DIP-корпуса предназначены для монтажа в отверстия печатной платы. Они могут иметь от 4 до 40 выводов. Для примера на рис. П2.1 приведен внешний вид и размеры восьмивыводного DIP-корпуса.
С целью минимизации площади занимаемой микросхемой на печатной плате, а также с целью повышения технологичности монтажа микросхем были разработаны корпуса для поверхностного монтажа, которые в основном и применяются в настоящее время.
По конструктивному исполнению число разновидностей корпусов для поверхностного монтажа значительно больше, чем для монтажа в отверстия печатной платы. Такие корпуса содержат от 3 до 256 выводов.
Учебное издание
Иванов Юрий Иванович Чернов Николай Иванович Югай Владислав Яковлевич
МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ УПРАВЛЕНИЯ
Учебное пособие
Ответственный за выпуск Чернов Н.И.
Редактор Кочергина Т.Ф. Корректоры Селезнева Н.И.. Надточий З.И.. Чиканепко Л.В.
ЛП №020565 от 23.06.1997 г. Подписано к печати 25.05.09 Печать офсетная. Усл. п. л. - 44.68. Уч.-изд .л. - 44,00 Заказ № 2.00 Тираж 70 экз
«С»
Издательство Технологического института Южного федерального университета.-
347928. Таганрог. ГСП 17А. Некрасовский. 44 Типография Технологического института
Южного федерального университета 347928. Таганрог. ГСП 17А. Энгельса. 1