Микропроцессорные системы управления - Южный ...

320
Ю.И. Иванов, Н.И. Чернов, В.Я. Югай Микропроцессорные системы управления

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 Ц =

»Ц*) = 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 In­formation 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

[Л + Я] = 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 !

)E

DC

DD3

01 11 21 31 41 5^ 6< 7(

outIO

2"

2 '

2 J

E

DC

DDl

»I *

7

3

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 !

)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 !

)E

DC

DD3

01 11 21 31 41 5^ 6< 7(

outl4

H

2"

2 '

2 J

E

DC

DDl »

2'

2 !

)E

DC

DD3

01 11 21 31 41 5^ 6< 7( 0UII5

2"

2 '

2 J

E

DC

DDl

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-триггеров, алгоритм взаимодействия кото­рых принято называть ведущий-ведомый (mas­ter-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 Pro­grammable 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 Technol­ogy обеспечивает емкость 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 Infor­mation 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. Длительность внешних сигналов для надежно­го запуска тактового генератора должна пре­вышать требуемую длительность сигнала RE­SET. В режиме 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 Reg­ister. 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