Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
К.В.Беглов
2016
СОДЕРЖАНИЕ
2
ВВЕДЕНИЕ
Первый микропроцессор (МП) был изобретён сотрудниками фирмы Intel в 1971 году,
он был четырёхразрядным, работал на тактовой частоте 108 кГц, состоял из 2300
транзисторов.
Современные микропроцессоры работают на тактовых частотах до 3-4 ГГц, содержат
более 200 млн. транзисторов, имеют быстродействие более 2 млрд. операций в секунду. С
изобретением МП стоимость и потребляемая мощность компьютеров уменьшились в 100
тыс. раз, а габариты уменьшились в 10 тыс. раз, что привело к крупнейшей мировой
промышленной революции. В мире сейчас производится десятки млрд. микропроцессоров в
год, технические устройства содержат десятки встроенных микропроцессорных систем
контроля и управления.
Крупнейшими мировыми фирмами-производителями микропроцессоров являются:
1. Intel
2. DEC
3. AMD
4. Texas Instruments
5. Motorola
6. Zilog… всего более 100 фирм.
3
1 Общие сведения по истории развития микропроцессоров и технологиях их
изготовления
4
1.3 Классификация микропроцессоров
5
Основой для изготовления МС является кристалл из химически чистого кремния или
рубина, который выращивается в искусственных условиях. Этот кристалл разрезается на
пластины толщиной 0,2-0,3 мм и тщательно шлифуется. Для изготовления электронных
элементов методом напыления в вакууме используются химически чистые элементы: бор,
галлий, алюминий – для формирования p-областей; сурьма, мышьяк, фосфор – для создания
n-областей.
Для изготовления проводников, соединяющих элементы, используется алюминий при
технологии 0,23 мкм (ширина проводников). Более узкие проводники шириной до 0,1 мкм
получают при использовании технологии медного напыления. Чем уже соединительные
проводники, тем больше можно разместить элементов на кристалле, выше тактовая частота,
но и выше тепловыделение.
На рисунке 1.1,а показана многослойная структура МС, реализующая один
биполярный резистор и один резистор, где цифрами обозначены: 1 – исходная
монокристаллическая пластина – подложка; 2 – открытый слой; 3-эпитаксиальный слой (он
же коллекторный); 4 – разделительный слой; 5 – базовый слой; 6 – эмиттерный слой; 7 –
изолирующий слой с контактными окнами; 8 – слой металлизации; 9 – защитный слой
(обычно SiO2).
6
5. Диффузия примесей кремния при температуре 1200 °C.
6. Удаление ненужных участков наращенного слоя.
7. Многократное наращивание слоев для образования электронных элементов и
дорожек между ними.
8. Разделение пластины на отдельные кристаллы.
9. Помещение кристалла в металлический или пластмассовый корпус и подключение
его выводов к выводам микросхемы.
7
2 Архитектуры микропроцессора (МП) и
микропроцессорной системы (МПС)
8
Рисунок 3.1 – Структурная схема простейшего микропроцессора
9
ЗУ для МП подразделяется на оперативные (ОЗУ) и постоянные (ПЗУ), они
являются внешними по отношению к МП и предназначены:
1. ОЗУ – устройство памяти для хранения часто меняющихся программ и
обрабатываемых данных.
2. ПЗУ – устройство памяти для хранения не меняющихся программ и данных.
Информация в ПЗУ заносится либо на этапе изготовления (BIOS, программы работы
управляющих контроллеров) либо записываются на длительный срок с помощью
программаторов. ПЗУ подразделяются на ЗУ программ и ЗУ данных, все они являются
внешними по отношению к МП.
Програма, дані
ЗП
ЦПр
СШ
10
конкретных функций обработки информации и управления технологическими процессами и
устройствами. Проектируется МПС по модульному принципу, т.е. из набора выпускаемых
промышленностью микросхем или модулей пользователь набирает необходимый состав МП
системы.
2.4 Характеристики МП
11
Быстродействие МП определяется:
– тактовой частотой в МГц;
– количеством регистровых операций в секунду, оп/с;
– количеством операций с плавающей запятой в секунду – Flops.
3. Вид МП (универсальный или специализированный).
4. Технология изготовления.
Информация о технологии изготовления МП дает представление о его
энергопотреблении и быстродействии (технологии упоминалась выше).
5. Емкость адресуемой памяти – наибольший номер ячейки памяти, к которой
может обращаться МП.
Объем памяти вычисляется по формуле: N = 2ⁿ, где n – разрядность адресной шины.
6. Принцип управления: Возможны два варианта управления выполнением команд
МП:
а. Микропрограммное управление, при котором алгоритмы выполнения всех
команд МП постоянно хранятся в ПЗУ устройства управления и синхронизации. Машинный
код команды вызывает формирование в УУиС последовательности управляющих сигналов
для выполнения микрокоманд МП.
б. Программное управление с жесткой логикой, чаще используется в
специализированных МП, когда часть программы находится внутри МП, а часть – снаружи
во внешнем ЗУ.
7. Мощность потребления, Вт.
8. Питающее напряжение – количество уровней, уровень, допустимое отклонение.
9. Конструктивные данные.
10. Допустимые условия эксплуатации – интервал рабочих температур,
относительная влажность, допустимые вибрации.
11. Надежность (время наработки до отказа, интенсивность потока отказов).
12. Стоимость.
12
– магнитооптические диски, объемом до ТБ.
б. С последовательным доступом – кассетный накопитель на магнитной ленте
(КНМП) емкостью до 700 ГБ.
2. Устройства связи с оператором – специализированные клавиатуры, пульты
управления, которые отличаются от стандартной клавиатуры назначением и количеством
клавиш, чаще всего проектируются по заказу.
3. Стандартная клавиатура.
4. Мониторы – с электронно-лучевой трубкой и плоские жидкокристал-лические,
светодиодные, графические и алфавитно-цифровые плазменные, лазерные и светодиодные
табло и экраны.
5. Принтеры: матричные, лазерные, светодиодные, струйные, термопечатные.
6. Плоттеры (принтеры для вывода графиков).
7. Устройства для ввода-вывода аудио и видеоинформации: микрофоны,
аудиосистемы, вебкамеры, компьютерные проекторы.
8. Сканеры (планшетные, ручные, протяжные),
9. Манипуляторы – мышь, трекбол, джойстик.
10. Сенсорные экраны, площадки, планшеты – для ввода рукописного текста,
рисунков и команд.
11. Устройство сопряжения с объектом управления (УСО) – устройство для ввода
в МПС аналоговой и дискретной информации о состоянии объекта управления и вывода
регулирующих воздействий.
Основные блоки УСО: аналогово-цифровые и цифро-аналоговые преобразователи
(АЦП, ЦАП); дискретно-цифровые и цифро-дискретные преобразователи (ДЦП, ЦДП),
коммутаторы аналоговых сигналов, служащие для подключения к АЦП нескольких
аналоговых электрических сигналов; мультиплексоры – устройства для коммутации
цифровых (дискретных) сигналов, устройства для запоминания аналоговых сигналов.
12. Устройства дистанционной связи:
а) Модемы (телефонные, радио, GSM и GPRS-модемы), обеспечивающие передачу
цифровой информации в различных сетях и работающие по принципу модуляции-
демодуляции сигналов постоянного напряжения в сигналы переменного напряжения и
наоборот.
б) Сетевые карты, которые используются для передачи информации в локальных и
глобальных компьютерных сетях.
в) Проволочные линии связи – коаксиальные кабели и витая пара.
г) Оптоволоконные линии (одно- и многомодовые) – для передачи цифровой
информации путем многократного отражения световой волны в стеклянных или
пластмассовых проводниках с минимальным затуханием.
д) Телефонно-телеграфные линии связи – для передачи цифровой информации по
обычным проволочным линиям на средние расстояния.
е) Высоковольтные линии связи – для передачи цифровой информации по линиям
электропередач (ЛЭП) в энергосистемах.
13
3 ИНТЕРФЕЙСЫ МПС
1. По назначению:
– машинные;
– системно-модульные;
– системно-приборные;
Машинные – интерфейсы, которые решают задачу соединения центрального
процессора ЭВМ с ее функциональными блоками, а также подключение УСО (устройств
связи с объектом).
Системно-модульные – решающие задачу унификации сопряжения модулей или
функцию блоков вне МПС (например, интерфейс НЖД). Такие интерфейсы используют для
подключения устройств, не могущих работать автономно.
Системно-приборные – для подключения в МПС приборов или модулей,
работающих автономно, для которых характерны значительные функциональные
возможности.
14
а. Интерфейсы каскадные (ИК), применяются в измерительно-информационных
системах (рисунок 4.1).
ИК отличается тем, что в каждый момент времени активным является только один
измерительный модуль из цепочки, один источник испытательных сигналов и один объект
исследования.
Центральный модуль
Интерфейс радиальный
ИР ИР ИР
Модуль Модуль Модуль
Центральный модуль
Интерфейс магистральный
Магистраль
ИМ ИМ ИМ
Модуль Модуль Модуль
Рисунок 4.3 – Структурная схема магистрального интерфейса
Интерфейсы м.б. реализованы также на регистрах ввода-вывода (др. название –
порты) либо на запоминающих устройствах ввода-вывода.
15
Наиболее широко используется программно-управляемый вывод с обслуживанием
по программе (драйверу ввода-вывода) или по прерыванию.
Достоинством программно-управляемого вывода является простота технической
реализации и программирования канала ввода-вывода.
Недостаток: Невысокая пропускная способность канала, вызванная необходимостью
участия микропроцессора в обмене информацией.
Скорость обмена информацией на порядок выше обеспечивает канал прямого
доступа в память (КПДП). В такой МПС исключено участие центрального модуля в обмене
информацией, а его функцию по управлению потоком информации выполняет либо
процессор ввода-вывода, либо контроллер ввода-вывода, то есть управление осуществляется
не программным, а в основном схемным методом.
Все каналы ввода-вывода подразделяются на параллельные и
последовательные.
Параллельный интерфейс применяется в случае, когда информационное слово
передается за один машинный цикл, для чего каждый бит информации передается по
отдельному проводнику. Расстояние передачи небольшое – несколько метров.
Последовательный интерфейс – в нем информационное слово передается по одной
(прямой) линии последовательно бит за битом, при этом вторым проводником является
общий проводник (земля). Последовательная передача информации длится столько
машинных тактов, сколько информационных, контрольных и служебных бит необходимо
передать в одном сеансе связи. Расстояние передачи информации по последовательным
интерфейсам практически не ограничено и может выполняться по проволочным,
радиоканалам, оптическим, GSM-каналам связи и др.
Последовательный интерфейс может работать в синхронном или асинхронном
режимах передачи информации.
Синхронный режим применяется, когда длительность передачи одного бита
неизменна, а начало и конец передачи байта сопровождается синхронизирующими
сигналами, которые передаются по линии связи, независимо от того, есть передача или нет.
Режим применяется при высоком качестве линии связи и высоком быстродействии внешнего
устройства.
Асинхронный режим отличается тем, что передача начинается по запросу одного из
устройств. После окончания передачи канал освобождается, им могут пользоваться любые
другие устройства. Скорость передачи информации в этом режиме переменная и зависит от
качества линии связи и быстродействия внешнего устройства.
16
В многопроцессорных МПС используется многопользовательские СШ, к которым
отдельные МП имеют доступ в режиме разделения времени, либо СШ подразделяется на ряд
отдельных шин, которыми управляет главный процессор.
Наибольшее распространение в промышленных МПС имеет магистральный
модульный принцип построения СШ из-за простоты изменения либо наращивания
структуры МПС модулями со стандартными интерфейсами.
17
Рисунок 4.4 – Интерфейсы МПСУ
18
По магистрали МПИ сигналы передаются в инверсном виде, т.е. сигнал логического
нуля («лог. 0») представляется в виде высокого уровня напряжения, а логической единицы
(«лог. 1») – низкого.
Временная диаграмма работы МПИ в режиме ввода данных приведена на рисунке
4.5,а, в режиме вывода – на рисунке 4.5,б.
В режиме ввода данных активное устройство (МП) выставляет на шину
адреса/данных (А/Д) адрес устройства, от которого будет принимать данные (адрес – порт
или адрес ячейки) и выдает сигнал признака адреса СИА. Этот адрес будет храниться в
специальном регистре адреса пассивного устройства. СИА – стробирующий импульс адреса,
сигнал подтверждения, что в данный момент на шине А/Д находится адрес.
19
По этому сигналу включается пассивное устройство, подтверждая это сигналом
признака приема данных СИП. При этом данные записываются во входной регистр
пассивного устройства.
Цикл вывода осуществляется снятием МП команды «Запись», после чего пассивное
устройство отключается, снимает сигнал СИП.
Активное устройство МП освобождает системную магистраль, сняв сигнал СИА.
Магистраль свободна.
20
4 ЗАПОМИНАЮЩИЕ УСТРОЙСТВА МПС
4.3 Классификация ЗУ
а) По функциональному назначению:
1. Сверхоперативное (СОЗУ) – набор регистров, содержимое которых
непосредственно используется в виде информации.
2. Оперативное (ОЗУ) – ЗУ, хранящее информацию, используемую в ходе
выполнения программ, в виде операндов и частей программ.
3. Постоянное (ПЗУ) – предназначенное для длительного хранения информации, не
изменяющейся в процессе эксплуатации МПС.
ПЗУ подразделяется на виды по способу занесения информации.
– Программируемые логические матрицы (ПЛМ) – масочное ЗУ,
программируемое на заводе.
– Программируемые ПЗУ (ППЗУ), которые могут программировать пользователи
путем пережога лишних связей на матрице.
– Репрограммируемые ПЗУ (РПЗУ), в которых носителем информации является
заряд, образованный на одном из переходов полевого транзистора и который может
храниться до 10 лет. Перепрограммирование РПЗУ выполняется после снятия предыдущей
информации путем облучения микросхемы ультрафиолетовым излучением.
– Электрически репрограммируемое ПЗУ (ЭРПЗУ), в которых заряд снимают не
ультрафиолетовым, а электрическим способом, подачей большого напряжения.
4. Полупостоянные ПЗУ.
5. Внешние ЗУ (ВЗУ), предназначены для хранения больших объемов информации.
Такие устройства называются накопителями – НМД, НМЛ, НГМД, НМБ.
6. Буферные ЗУ, предназначаются для согласования памяти различных уровней,
например, для согласования памяти МПС и памяти функциональных внешних устройств.
21
поля и сохранять это состояние бесконечно долго. Пример: НМД, НГМД, НМП – магнитные
диски, ленты, ферритовые кольца.
2. ЗУ на линиях задержки: ультразвуковых, магнитострикционных материалах и на
кварцевых материалах.
3. Криогенные ЗУ – низкотемпературные запоминающие устройства, которые
расположены в сосудах с жидким азотом (сосудах Дьюара). Используется явление
сверхпроводимости, при котором ток в сверхпроводящем запоминающем элементе (катушке)
поддерживается бесконечно долго без потерь.
4. Голографические ЗУ, в которых информация хранится в трехмерном виде в виде
оптических полей с различными фазами и частотами.
г) По физической реализации:
1. ЗУ в кристалле МП;
2. ЗУ в виде отдельной микросхемы;
3. ЗУ в виде модуля, содержащего несколько микросхем памяти и дополненного
схемой управления;
4. ЗУ в виде внешнего, по отношению к МПС, модуля;
5. Внешние универсальные модули ЗУ (накопители).
22
Рисунок 5.1 – Структурная схема ИС ОЗУ
m = n/nИC , (5.1)
23
Рисунок 5.2 – Параллельное подключение ИС памяти к ШД
L = N/NИC, (5.2)
24
Рисунок 5.4 – Восьмистраничное ЗУ емкостью 2 кБ с использованием по восемь
одноразрядных ИС памяти емкостью по 256 байт в странице
1. Режим хранения
Пусть транзистор VT1 открыт, a VT2 – закрыт.
Если напряжение на линии адреса Uа < (UP = UOП), то по эмиттеру 1 транзистора VT1
течет ток от большего напряжения к меньшему, по эмиттеру 2 ток не течет. Триггер не
меняет своего состояния, т.е. информация может храниться до тех пор, пока подается
напряжение питания UИП.
25
Рисунок 5.5 – Принципиальная электрическая схема триггера на биполярных транзисторах
по ТТЛ-технологии (а) и временная диаграмма его работы (б)
2. Режим считывания
Пусть VT2 – открыт, VT1 – закрыт, т.е. в RS-триггер записана «лог. 1».
Если напряжение на линии адреса Ua > (UP = UOП), то транзистор VT2 закрывается по
эмиттеру 1 и открывается по эмиттеру 2.
Ток считывания ІСЧ течет в разрядную шину, на которой появляется напряжение «лог. 1».
Если транзистор VТ2 при считывании закрыт, то тока считывания не будет (ІСЧ = 0) и на
разрядной шине будет низкое напряжение («лог. 0»).
3. Режим записи
Режим записи зависит от начального состояния триггера.
Если в триггер была записана «лог.1» (VТ1 закрыт, VТ2 открыт), то для записи в него
«лог. 0» необходимо напряжение разрядной шины сделать большим опорного Ua > (UP >
UOП). Для записи «лог. 0» необходимо выполнить обратное условие Ua > (UP < UOП).
26
4.5.3 ЗЭ на МОП-транзисторах
27
емкостей происходит через малое сопротивление открытого транзистора противоположного
типа проводимости в отличие от большого нелинейного сопротивления нагрузочного МОП-
транзистора того же типа проводимости, что и активный прибор.
4.5.4 ЗЭ динамических ЗУ
28
В ПЗУ хранится информация, которая не изменяется в процессе эксплуатации
устройства: программы работы микроконтроллеров, начальные загрузчики (BIOS) в
компьтерах, таблицы констант и др.
Микросхемы ПЗУ выпускаются как:
1. ROM – oднократно программируемые на заводе-изготовителе (масочные).
2. PROM – oднократно программируемые пользователем.
3. EPROM, EEPROM, FLASH – репрограммируемые.
29
а) б)
Рисунок 5.10 – УГО масочных (а) и программируемых (б) ПЗУ на принципиальных схемах
30
Ячейка памяти представляет собой МОП-транзистор, изготовленный по ЛИЗМОП-
технологии, в котором затвор выполняется из поликристаллического кремния. Затем в
процессе изготовления микросхемы этот затвор окисляется и в результате он будет окружен
оксидом кремния – диэлектриком с прекрасными изолирующими свойствами. В описанной
ячейке при полностью стертом ПЗУ заряда в плавающем затворе нет, и поэтому транзистор
ток не проводит. При программировании ПЗУ, на второй затвор, находящийся над
плавающим затвором, подаётся высокое напряжение и в плавающий затвор за счет
туннельного эффекта индуцируются заряды. После снятия программирующего напряжения
индуцированный заряд остаётся на плавающем затворе, и, следовательно, транзистор
остаётся в проводящем состоянии. Заряд на плавающем затворе подобной ячейки может
храниться десятки лет.
Структурная схема описанного постоянного запоминающего устройства не
отличается от описанного ранее масочного ПЗУ. Единственное отличие – вместо плавкой
перемычки используется описанная выше ячейка. Такой вид ПЗУ называется
репрограммируемыми постоянными запоминающими устройствами (РПЗУ) или EPROM. В
РПЗУ стирание ранее записанной информации осуществляется ультрафиолетовым
излучением. Для того, чтобы этот свет мог беспрепятственно проходить к
полупроводниковому кристаллу, в корпус микросхемы ПЗУ встраивается окошко из
кварцевого стекла.
При облучении микросхемы РПЗУ, изолирующие свойства оксида кремния теряются,
накопленный заряд из плавающего затвора стекает в объем полупроводника, и транзистор
запоминающей ячейки переходит в закрытое состояние. Время стирания микросхемы РПЗУ
колеблется в пределах 10-30 минут.
Количество циклов записи-стирания микросхем EPROM находится в диапазоне от 10
до 100 раз, после чего микросхема РПЗУ выходит из строя. Это связано с разрушающим
воздействием ультрафиолетового излучения на оксид кремния. В качестве примера
микросхем EPROM можно назвать микросхемы 573 серии российского производства,
микросхемы серий 27сXXX зарубежного производства. В РПЗУ чаще всего хранятся
программы BIOS универсальных компьютеров. РПЗУ изображаются на принципиальных
схемах как показано на рисунке 5.12,а.
Высокая стоимость корпусов с кварцевыми окошками, а также малое количество
циклов записи-стирания привели к поиску способов стирания информации из РПЗУ
электрическим способом. Сейчас достаточно широко распространены микросхемы с
электрическим стиранием информации. В качестве запоминающей ячейки в них
используются такие же ячейки, как и в РПЗУ, но они стираются электрическим потенциалом,
поэтому количество циклов записи-стирания для этих микросхем достигает 1 млн. Время
стирания ячейки памяти в таких ПЗУ уменьшается до 10 мс. Схема управления для
электрически стираемых программируемых ПЗУ получилась сложная, поэтому наметилось
два направления развития этих микросхем:
1. ЕСППЗУ (EEPROM) – электрически стираемое программируемое ПЗУ.
2. FLASH-ПЗУ.
Электрически стираемые ППЗУ (EEPROM) дороже и меньше по объему, но зато
позволяют перезаписывать каждую ячейку памяти отдельно. В результате эти микросхемы
обладают максимальным количеством циклов записи-стирания. Область применения
электрически стираемых ПЗУ – хранение данных, которые не должны стираться при
выключении питания. К таким микросхемам относятся отечественные микросхемы 573РР3,
558РР3 и зарубежные микросхемы EEPROM серии 28cXX. Электрически стираемые ПЗУ
обозначаются на принципиальных схемах как показано на рисунках 5.12,б и 5.12,в.
31
а) б) в)
32
5. Построение центрального процессора
5.1 Арифметико-логические устройства
Теперь, можно перейти к устройствам, которые могут выполнять различные операции
над двоичными числами — суммировать, вычитать, увеличивать и уменьшать на единицу.
При этом выбор выполняемой операции желательно выполнять также при помощи
двоичного кода. Такое устройство получило название арифметического устройства. Если же
оно, кроме арифметических операций, выполняет еще и логические, то его называют
арифметико-логическим устройством (АЛУ).
Ранее были рассмотрены схемы, осуществляющие суммирование многоразрядных
кодов. Однако часто требуется осуществлять не только суммирование, но и вычитание
двоичных кодов. Двоичные коды, при помощи которых можно записывать отрицательные
числа, уже рассматривались в предыдущих разделах. Там же было показано, что при
использовании дополнительных кодов операцию вычитания двух положительных чисел
можно заменить операцией суммирования положительного и отрицательного числа, при
этом получение двоичного отрицательного числа из положительного является элементарной
операцией. Для этого необходимо про инвертировать число и прибавить к нему 1.
Схема вычитателя числа А из числа В приведена на рис. 4.16, а схема вычитателя
числа В из числа А приведена на рис. 4.17. В этих схемах прибавление единицы к
проинвертированному числу осуществляется подачей уровня логической единицы на вход
переноса сумматора PI Основным элементом этих двух схем является сумматор.
Различаются они лишь местом включения инверторов.
Рис. 4.16. Схема вычитателя числа А из Рис. 4.17. Схема вычитателя числа В из
числа В числа А
33
Рис. 4.18. Структурная схема арифметического устройства
34
13 0 1 1 0 1 S=-B-1
14 0 1 1 1 0 S=-B-1
15 0 1 1 1 1 S = -B
16 1 0 0 0 0 S = A-1
17 1 0 0 0 1 S=A
18 1 0 0 1 0 S=-A-2
19 1 0 0 1 1 S=-A-1
20 1 0 1 0 0 S = -2
21 1 0 1 0 1 S=-1
22 1 0 1 1 0 S = -1
23 1 0 1 1 1 S=0
24 1 1 0 0 0 S=A
25 1 1 0 0 1 S = A+ 1
26 1 1 0 1 0 S=-A-1
27 1 1 0 1 1 S = -A
28 1 1 1 0 0 S = -1
29 1 1 1 0 1 S=0
30 1 1 1 1 0 S=0
31 1 1 1 1 1 S = +1
Часто используемой операцией является увеличение числа на единицу
(инкрементирование) или уменьшение числа на единицу (декрементирование). Эти операции
позволяют легко организовывать циклы в программе и переходить от предыдущего операнда
к следующему. Они могут быть выполнены при помощи кодов, записанных в строках 4, 7, 16
и 25.
Кроме того, схема арифметического устройства может просто передавать на выход
любой из входных кодов без изменения, что позволяет осуществлять копирование данных
(суммирование с константой ноль) через это устройство без дополнительных схем
коммутации.
При небольшом изменении схемы такое устройство сможет осуществлять не только
арифметические, но и логические операции. Для этого нужно ввести дополнительный
коммутатор, который будет разрывать цепи переноса между разрядами. Эта управляющая
цепь обычно называется М.
Подчеркнем основную особенность полученного устройства: выбор вида
выполняемой операции при помощи кода, подаваемого на специальные выводы. Это дает
возможность использовать одно и то же устройство для выполнения различных функций.
Разработка такого устройства позволила обменивать большую скорость выполнения
отдельных операций на сложность реализуемого алгоритма, что, в конце концов, привело к
разработке микропроцессорных систем. Развитие этих систем изменило окружающий нас
мир.
35
В процессорах с полным набором команд используется уровень микро-
программирования, обеспечивающий декодирование и выполнение команд микропроцессора.
Команды микропрограмм называют микрокомандами. В этих процессорах формат команды не
зависит от аппаратуры процессора. На одной и той же аппаратуре при смене микропрограммы
могут быть реализованы различные микропроцессоры.
С другой стороны, смена аппаратуры никак не влияет на программное обеспечение
микропроцессора. При разработке новых микросхем можно использовать аппаратурные
решения, никак не связанные с предыдущей микросхемой. Главное, чтобы микропрограмма
эмулировала эту микросхему. То есть пользователь воспринимает новую микросхему как
полный аналог старой. С его точки зрения у микропроцессора только увеличивается
производительность, снижается потребление энергии, уменьшаются габариты устройств.
Определение микрокоманды и пример реализации микропрограммы будут подробно
рассмотрены ниже по тексту данной главы. Поэтому сейчас эти понятия уточняться не будут.
Неявным недостатком CISC-процессоров является то, что производители микросхем
стараются увеличить количество команд, которые может выполнять микропроцессор, тем
самым увеличивая сложность микропрограммы и замедляя выполнение каждой команды.
В RISC-процессорах декодирование и исполнение команды производятся аппаратно,
поэтому количество команд ограничено минимальным набором. В этих процессорах понятия
команда и микрокоманда совпадают. Преимуществом этого типа процессоров является то, что
команда может быть в принципе выполнена за один такт (не требуется выполнение мик-
ропрограммы), однако для выполнения тех же действий, которые выполняет одиночная команда
CISC-процессора, требуется выполнение некоторой последовательности команд RISC-
процессоров, иногда это последовательность довольно длинная. То есть выигрыш в
быстродействии микропроцессора может быть сведен к нулю.
В большинстве случаев быстродействие у RISC-процессоров выше, чем у CISC-
процессоров. Тем не менее, при выборе процессора нужно принимать в расчет все параметры в
целом. Нужно учитывать, что тактовая частота RISC-процессора может оказаться значительно
ниже, чем у CISC-процессора (особенно если в нем применяются специальные меры по
повышению производительности), разрядность команды может оказаться выше, чем у CISC-
процессора (что чаще всего и бывает). В результате общий объем исполняемой программы для
RISC-процессора, как правило, превышает объем подобной программы для CISC-процессора.
Следующий признак классификации архитектур микропроцессоров — это система
команд. По системе команд микропроцессоры отличаются огромным разнообразием,
зависящим от фирмы-производителя. Тем не менее, можно определить две крайние
архитектуры построения микропроцессоров:
□ аккумуляторные микропроцессоры;
□ микропроцессоры с регистрами общего назначения.
В микропроцессорах с регистрами общего назначения операнды математических
операций могут находиться в любом внутреннем регистре. В зависимости от типа операции
команда может быть одноадресной, двухадресной или трехадресной.
Принципиальным отличием аккумуляторных процессоров является то, что
математические операции могут производиться только над одной особой ячейкой памяти,
аккумулятором. Для того чтобы произвести операцию над произвольной ячейкой памяти, ее
содержимое необходимо скопировать в аккумулятор, выполнить требуемую операцию, а затем
скопировать полученный результат в произвольную ячейку памяти.
В настоящее время в чистом виде не существует ни та, ни другая архитектуры. Все
выпускаемые в настоящее время процессоры обладают системой команд с признаками, как
аккумуляторных процессоров, так и микропроцессоров с регистрами общего назначения.
Следующий признак, по которому классифицируются микропроцессоры, — это способ
работы с системной памятью. По способу работы с системной памятью существует два
основных принципа построения микропроцессоров:
□ гарвардская архитектура;
36
□ архитектура фон Неймана.
В гарвардской архитектуре принципиально различаются два вида памяти:
□ память программ;
□ память данных.
В гарвардской архитектуре принципиально невозможно производить операцию записи
в память программ, что исключает возможность случайного разрушения управляющей
программы в случае неправильных действий над данными. Кроме того, в ряде случаев для
памяти программ и памяти данных выделяются отдельные шины обмена данными. Эти
особенности определили области применения гарвардской архитектуры микропроцессоров.
Она применяется в микроконтроллерах, где требуется обеспечить высокую надежность работы
аппаратуры. В сигнальных процессорах эта архитектура, кроме высокой надежности работы
устройств, позволяет обеспечить высокую скорость выполнения программы за счет
одновременного считывания управляющих команд и обрабатываемых данных.
Отличие архитектуры фон Неймана заключается в принципиальной возможности
работы над управляющими программами точно так же, как и над данными. Это позволяет
производить загрузку и выгрузку управляющих программ в произвольное место памяти
процессора, которая в этой архитектуре не разделяется на память программ и память данных.
Любой участок памяти может служить как памятью программ, так и памятью данных. Причем в
разные моменты времени одна и та же область памяти может использоваться и как память
программ, и как память данных. Для того чтобы программа могла работать в произвольной
области памяти, ее необходимо модифицировать перед загрузкой, т. е. работать с нею как с
обычными данными. Эта особенность архитектуры позволяет наиболее гибко управлять
работой микропроцессорной системы, но создает принципиальную возможность искажения
управляющей программы, что понижает надежность работы аппаратуры. Архитектура фон
Неймана используется в универсальных компьютерах и в некоторых видах
микроконтроллеров.
В качестве примера реализации микропроцессора в дальнейшем рассмотрим
устройство процессора с полным набором команд. При этом будет рассматриваться
упрощенная модель процессора.
Ядро CISC-микропроцессора состоит из двух основных частей:
□ операционного блока;
□ блока микропрограммного управления.
Операционный блок (ОБ) предназначен для считывания команд из системной памяти и
выполнения считанных команд. Эти действия он осуществляет под управлением блока
микропрограммного управления (БМУ), который формирует последовательность
микрокоманд, необходимую для выполнения машинной команды. Микрокоманды меняются
каждый раз после прихода импульса синхронизации микропроцессора.
5.3 Операционный блок микропроцессора
Основным принципом работы любого цифрового устройства с памятью, в том числе и
микропроцессора, является наличие цепи синхронизации CLK. Синхросигнал, как и цепь
питания, подводится к любому регистру цифрового устройства. Схема одного из вариантов
операционного блока приведена на рис. 4.19.
37
Рис. 4.19. Операционный блок
38
назовем регистром адреса, а выводы, к которым будут подключены выходы этого регистра, —
шиной адреса.
Значения битов регистра адреса непосредственно определяют уровни сигналов на
линиях шины адреса. Таким образом, в данной главе впервые рассказано о записи двоичного
кода в регистр для формирования логических сигналов на внешних выводах микросхемы. Этот
метод широко используется в микропроцессорной технике, и примеры его применения будут
часто встречаться в последующих главах.
Определим необходимую разрядность шины адреса, а значит и разрядность регистра
адреса и программного счетчика. Так как в качестве примера мы выбрали 8-разрядный
микропроцессор, то и все регистры в этом процессоре восьмиразрядные. Максимальное
беззнаковое число, которое можно записать в такой регистр, — 255, но для большинства
программ такого объема памяти недостаточно.
В приведенной на рис. 4.19 схеме для того, чтобы получить 16-разрядный адрес
используются два 8-разрядных регистра адреса, которые образуют 16-разрядную пару
регистров. Теперь максимальное число, которое можно записать в этих двух регистрах, будет
65535, что во многих случаях достаточно для адресации программ и обрабатываемых ими
данных. Для того чтобы различать регистры старшего и младшего байта регистра адреса,
обозначим их как RA — старший байт и RA — младший байт.
То же самое можно сказать и про программный счетчик. Он тоже должен быть 16-
разрядным. И для него тоже выделим два 8-разрядных регистра. Для того чтобы различать
регистры старшего и младшего байта программного счетчика, обозначим их как РСН —
старший байт и PCL — младший байт. Это позволяет при помощи 8-разрядного АЛУ
формировать 16-разрядный адрес очередной команды при помощи последовательной работы с
младшим и старшим байтом адреса.
Для реализации операций чтения или записи ОЗУ, кроме адреса и собственно данных,
требуются еще сигналы управления. В простейшем случае это сигналы записи (WR) и чтения
(RD). Для их формирования используем еще один регистр, выходы которого выведем за
пределы микросхемы микропроцессора. Назовем его регистром управления (CR). Для
формирования необходимых сигналов достаточно записывать в определенный бит регистра
логический 0 или 1. Определим формат регистра управления. Пусть бит 0 этого регистра будет
сигналом записи, а бит 1 — сигналом чтения. Остальные биты этого регистра пока не важны.
Если потребуются дополнительные сигналы управления системной шиной, то можно
воспользоваться зарезервированными сейчас битами. Полученный формат регистра
управления приведен на рис. 4.21.
39
в этот счетчик, как в обычный параллельный регистр, по сигналу параллельной записи V.
Переход к следующему адресу микрокоманды производится по сигналу синхронизации
микропроцессора CLK.
В приведенной схеме условный переход возможен по знаку результата операции,
переносу, нулевому результату или переполнению. Следует заметить, что достаточно лишь
флага N (знака числа) для реализации перехода по нескольким условиям: больше, меньше,
больше или равно, меньше или равно.
Содержимое ПЗУ блока микропрограммного управления называется
микропрограммой. Именно эта микропрограмма и реализует конкретный микропроцессор.
При смене микропрограммы, в принципе, можно реализовать на одном и том же кристалле
другой микропроцессор.
40
различаются только одним битом. Для сокращения объема записи вместо двоичного кода
можно воспользоваться шестнадцатиричным, однако это не увеличивает удобочитаемости про-
граммы. Фрагмент шестнадцатиричного представления исполняемого кода программы для
микропроцессора приведен на рис. 4.24.
75D7001207E81200261216581216B9E4
FF121147BEFF05BFFF02800AE4FF1211
3079291201BA7F01121147BEFF05BFFF
02800A7F01121130792D1201BA1217CF
120005900 0 0 3Е493С0Е0740193С0Е07 4
01С0Е0Е4С0Е07408 С 0 Е 0 7 В 0 57А007936
12080074FB2581F581121074B2AFC298
Рис. 4.24. Фрагмент исполняемого кода микропроцессора
41
Теперь, когда мы рассмотрели все составные части микропроцессора: операционный
блок, блок микропрограммного управления, — а также систему команд, можно, наконец,
приступить к реализации самого микропроцессора. Напомню, что архитектура
микропроцессора реализуется микропрограммой и очень мало зависит от аппаратуры, для
которой пишется эта микропрограмма. То есть, написав микропрограмму, мы тем самым
построим микропроцессор с конкретной архитектурой. Микропрограмма состоит из сотен
однотипных блоков, написанных для различных команд микропроцессора, поэтому достаточно
рассмотреть реализацию нескольких типовых команд.
42
6. Системная шина процессора.
Системная шина процессора предназначена для обмена информацией
микропроцессора с любыми внутренними устройствами микропроцессорной системы
(контроллера или компьютера). В качестве обязательных устройств, которые входят в состав
любой микропроцессорной системы, можно назвать ОЗУ, ПЗУ, таймер и порты ввода-
вывода. Структурная схема простейшего микропроцессорного устройства приведена на
рисунке 1.
В состав системной шины в зависимости от типа процессора входит одна или
несколько шин адреса, одна или несколько шин данных и шина управления. Несколько шин
данных и адреса применяется для увеличения производительности процессора и
используется только в сигнальных процессорах. В универсальных процессорах и
контроллерах обычно применяется одна шина адреса и одна шина данных.
В понятие шины вкладывают разное значение при рассмотрении различных вопросов.
В простейшем случае под понятием шина подразумевают параллельно проложенные
провода, по которым передаётся двоичная информация. При этом по каждому проводу
передаётся отдельный двоичный разряд. Информация может передаваться в одном
направлении, как, например, для шины адреса или шины управления, или в различных
направлениях (для шины данных). По шине данных информация передаётся либо к
процессору, либо от процессора в зависимости от операции записи или чтения, которую в
данный момент осуществляет процессор.
В любом случае все сигналы, необходимые для работы системной шины формируются
микросхемой процессора как это рассматривалось при изучении блока обработки данных.
Иногда для увеличения скорости обработки информации функции управления системной
шины берёт на себя отдельная микросхема (например контроллер прямого доступа к памяти
или сопроцессор). Арбитраж доступа к системной шине при этом осуществляет контроллер
системной шины (в простейшем случае достаточно сигнала занятости шины).
В некоторых случаях в понятие шина дополнительно включают требования по
уровням напряжения, которыми представляются нули и единицы, передаваемые по её
проводам. В состав требований могут быть включены длительности фронтов передаваемых
сигналов, типы используемых разъёмов и их распайка, последовательность передаваемых
сигналов и скорость их передачи.
43
При подключении различных устройств к системной шине возникает вопрос - как
различать эти устройства между собой? Единственный способ сделать это использовать
индивидуальный адрес для каждого устройства, подключенного к системной шине
микропроцессора. Так как адресация производится к каждой ячейке устройства
индивидуально, то возникает понятие адресного пространства, занимаемого каждым
устройством и адресного пространства микропроцессорного устройства в целом.
44
Выберем для построения микропроцессорной системы микросхему ПЗУ объёмом 2
килобайта, как это показано на рисунке 1. При рассмотрении построения блока обработки
сигналов мы договорились, что процессор после сброса начинает работу с нулевого адреса,
поэтому разместим ПЗУ в адресном пространстве начиная с нулевого адреса. Для того,
чтобы нулевая ячейка ПЗУ оказались расположенной по нулевому адресу адресного
пространства микропроцессора, старшие разряды шины адреса должны быть равны 0.
При построении схемы необходимо декодировать старшие пять разрядов адреса
(определить, чтобы они были равны 0). Это выполняется при помощи дешифратора адреса,
который в данном случае вырождается в пятивходовую схему "ИЛИ-НЕ" Это связано с тем,
что внутри ПЗУ уже есть одиннадцативходовый дешифратор адреса. При использовании
дешифратора адреса, обращение к ячейкам памяти выше двух килобайт не приведёт к
чтению ячеек ПЗУ, так как на входе выбора кристалла CS уровень напряжения останется
высоким.
Теперь подключим микросхему ОЗУ. Для примера выберем микросхему объёмом 8
Кбайт. Для выбора любой из ячеек этой микросхемы достаточно тринадцатибитового адреса,
поэтому необходимо дополнительно декодировать три оставшихся разряда адреса. Так как
начальные ячейки памяти адресного пространства уже заняты ПЗУ, то использовать нельзя.
Выберем следующую комбинацию цифр 001 и используем известные нам принципы
построения схемы по произвольной таблице истинности. Дешифратор адреса выродится в
данном случае в трёхвходовую схему "И-НЕ" с двумя инверторами на входе. Схема этого
дешифратора приведена на рисунке 1. Приведённый дешифратор адреса обеспечивает
нулевой уровень сигнала на входе CS только при комбинации старших бит 000. Обратите
внимание, что так как объём ПЗУ меньше объёма ОЗУ, то между областью адресов ПЗУ и
областью адресов ОЗУ образовалось пустое пространство неиспользуемых адресов памяти.
И, наконец, так как все микропроцессоры предназначены для обработки данных,
поступающих извне, то в любой микропроцессорной системе должны присутствовать порты
ввода-вывода. Порт ввода-вывода отображается в адресное пространство
микропроцессорного устройства как одиночная ячейка памяти, поэтому порт ввода вывода
можно разместить по любому свободному адресу. Проще всего построить дешифратор числа
FFFFh. В этом случае дешифратор превращается в обычную 16-ти входовую схему "И-НЕ",
поэтому и выберем эту ячейку памяти в адресном пространстве микропроцессора для
размещения порта ввода-вывода.
6.3 Способы расширения адресного пространства микропроцессора.
Известно, что размер адресного пространства определяется разрядностью счётчика
команд микропроцессора. Достаточно часто при развитии микропроцессорной системы
возможности адресного пространства исчерпываются. В таком случае приходится прибегать
к методам расширения адресного пространства.
Для расширения адресного пространства можно воспользоваться параллельным
портом. Внешние выводы параллельного порта при этом используются в качестве старших
битов адресной шины. Такой метод расширения адресного пространства называется
страничным методом адресации. Регистр данных параллельного порта при использовании
его для расширения адресного пространства будет называться переключателем страниц.
Схема использования параллельного порта в качестве переключателя страниц памяти
приведена на рисунке 4.
45
Рисунок 4. Использование параллельного порта в качестве переключателя страниц памяти.
46
системной памяти процессора остаётся много неиспользуемых областей. Решить возникшую
проблему позволяет метод сегментной организации памяти.
При сегментном методе организации памяти для расширения адресного пространства
используется базовый регистр, относительно которого производится адресация команд или
данных в программе. Разрядность базового регистра обычно выбирают равной разрядности
счётчика команд. В качестве базового регистра, как и при страничной организации памяти,
можно использовать параллельный порт.
Для формирования физического адреса используется параллельный двоичный
сумматор. На входы этого сумматора подаётся содержимое базового регистра и содержимое
счётчика команд. Суммирование производится со смещением содержимого базового
регистра влево на несколько бит относительно счётчика команд (рисунок 8). В результате
максимальный размер сегмента определяется разрядностью программного счётчика, а
максимальная неиспользуемая область памяти – смещением базового регистра относительно
программного счётчика.
Адресное пространство при использовании сегментного метода адресации приведено
на рисунке 7.
47
Ещё одним распространённым способом увеличения адресного пространства является
применение окон. При использовании окон производится расширение не всего адресного
пространства, а только его части. Внутри адресного пространства выделяется некоторая
область, которая называется окном. В это окно может отображаться часть другого адресного
пространства.
При использовании окон может быть использован как страничный метод отображения
адресного пространства, так и сегментный метод отображения адресного пространства в
окно.
При использовании страничного метода отображения, конкретная страница другого
адресного пространства, которая в данный момент отображается в окно памяти,
определяется переключателем страниц, построенному по такому же принципу как это было
рассмотрено на рисунке 4.
При использовании сегментного метода отображения, конкретная область адресного
пространства, которая будет отображаться в окно, определяется содержимым базового
регистра. Если разрядность адреса вспомогательного адресного пространства,
отображаемого в окно основной памяти, совпадает с разрядностью базового регистра, то
любая область вспомогательной памяти может быть отображена в основную память с
точностью до байта.
Принцип построения оконной адресации при отображении страниц показан на
рисунке 9.
48
7. Подключение внешних устройств к микропроцессору.
7.1. Использование портов микропроцессора
В устройствах связи микропроцессорные системы чаще всего используются для
управления устройствами, блоками или системами связи. При этом в качестве
микропроцессорного устройства может выступать универсальный компьютер или группа
компьютеров объединенных локальной или глобальной сетью связи (для больших и дорогих
систем связи, таких как автоматические телефонные станции или коммутационные центры
сотовых систем связи) или специализированное микропроцессорное устройство в качестве
которого чаще всего выступает однокристальный микроконтроллер для дешевой и
портативной аппаратуры.
Внешними устройствами называются любые устройства, которыми управляет или
которым передает информацию микропроцессор или устройства, от которых он получает
информацию. В качестве внешних устройств может выступать принтер или дисплей
клавиатура или модем, но для устройств связи в качестве внешних устройств чаще
выступают микросхемы приемников, передатчиков (в том числе построенные на базе
сигнальных процессоров), синтезаторов частоты или электрически стираемые постоянные
запоминающие устройства.
Согласование микросхем между собой не представляет трудностей, так как
практически все современные микросхемы по входу и выходу согласованы с TTL уровнями.
Если же это не так, то для согласования нестандартных уровней с TTL уровнями
выпускаются специальные микросхемы. Несколько иначе обстоит дело с индикаторами и
различными исполнительными устройствами.
В качестве простейшего индикатора рассмотрим светодиодный индикатор. Схема
подключения такого индикатора показана на рисунке 1а. Транзистор служит для увеличения
тока параллельного порта, при помощи которого микропроцессор зажигает и гасит
светодиодный индикатор. Кроме того, транзистор позволяет согласовать уровни напряжения,
необходимые для работы цифровых микросхем, к которым относятся и микропроцессорные
устройства и уровни напряжения, необходимые для работы светодиодного индикатора.
Гальванической развязки транзисторный ключ не обеспечивает.
а) б)
Рис. 1. Подключение одиночного светодиодного индикатора а) и подключение
внешнего устройства с индуктивной нагрузкой б).
49
Несколько сложнее выглядит схема подключения внешних исполнительных устройств
с индуктивной нагрузкой (например реле или электромагнит) см. рис. 1б
Диод VD1 в этой схеме служит для ограничения напряжения импульсов самоиндукции,
которые могут вывести из строя транзистор VT1.
При считывании информации из внешнего устройства возникают аналогичные
проблемы. Источники дискретной информации могут иметь различную физическую
природу. Они могут находиться на значительном расстоянии от контроллера, иметь
различное напряжение питания, но их данные должны быть надежно введены в
микропроцессор.
Для решения указанных проблем и реализации гальванической развязки датчиков и
микропроцессорного устройства, все датчики с точки зрения схемы представляют собой
контакты, работающие на замыкание. Поэтому схема подключения датчика и кнопки не
различаются. Со стороны микропроцессорного устройства необходимо преобразовать
замыкание/размыкание контактов в логические уровни, необходимые для правильной работы
микропроцессорного устройства. Такая схема приведена на рисунке 3.
50
Рисунок 4. Подключение клавиатуры к микропроцессорному устройству.
51
вывода всегда присутствует дешифратор адреса.
Так как с точки зрения программиста эта ячейка памяти ничем не отличается от
регистра данных порта вывода, то по аналогии она называется регистром данных порта
ввода.
Структурная схема порта вывода приведена на рис 2.
В качестве порта вывода может быть использован
параллельный регистр. В порт вывода возможна только
запись.
Данные с внутренней шины микроконтроллера
записываются в регистр по сигналу "WR". Выходы "Q"
регистра могут быть использованы как источники
логических уровней для управления внешними
устройствами.
Для отображения этого регистра только в одну ячейку
памяти адресного пространства микропроцессорного
устройства в составе порта ввода-вывода всегда
присутствует дешифратор адреса. Этот регистр называется
Рис. 2. Структурная схема портарегистром данных порта вывода.
вывода.
Так как из порта ввода возможно только чтение, а в порт вывода возможна только
запись, то для них обычно отводится один и тот же адрес в адресном пространстве памяти
микропроцессора.
Порты выпускаются в качестве универсальных микросхем, но на заводе, где
производятся эти микросхемы неизвестно сколько на самом деле потребуется линий ввода
информации, и сколько потребуется линий вывода информации. Количество же ножек у
микросхемы ограничено. Поэтому в одной универсальной микросхеме размещаются и порт
ввода и порт вывода информации, а для подключения этих портов к внешним ножкам
микросхемы используется коммутатор. Для управления этим коммутатором используется
еще один (внутренний) параллельный порт вывода, регистр данных которого называется
регистром управления параллельного порта ввода-вывода, а сам порт называется портом
ввода-вывода. Адрес для регистра управления обычно назначается рядом с адресом регистра
данных порта ввода-вывода.
52
В некоторых микропроцессорах для портов ввода вывода выделяется отдельное
адресное пространство. В этом случае для записи в порт и для чтения из порта используются
отдельные сигналы чтения и записи. Чаще всего они называются IOWR# и IORD#.
Параллельные порты, предназначенные для обмена данными между компьютерами,
или компьютером и принтером, устроены несколько иначе. Основным отличием обмена
данных между компьютерами или контроллерами от обмена данными между компьютером и
простым внешним устройством является большой объём передаваемых данных. В этом
случае недостаточно выдачи на выход порта одного или даже нескольких байт информации,
поэтому приходится передавать данные последовательно байт за байтом через один и тот же
параллельный порт. Байты необходимо каким либо образом отличать друг от друга, поэтому
вводится специальный сигнал синхронизации CLK, который позволяет отличать один байт
от другого. Для формирования такого сигнала можно воспользоваться вторым параллельным
портом, и получить его программным способом, но обычно этот сигнал формируется
аппаратно из сигнала WR# при записи очередного байта в параллельный порт вывода.
Временная диаграмма обмена данными через параллельный порт приведена на рисунке 4.
53
Рисунок 5. Временная диаграмма передачи одного кадра двоичной информации по
последовательному порту.
54
Рисунок 7. Схема подключения кодека к синхронному последовательному порту.
55
синхронного последовательного интерфейса: I2C шина. Временная диаграмма этого
интерфейса приведена на рисунке 9. В I2C шине приём и передача данных, а также передача
адреса микросхемы и адреса регистра внутри микросхемы, к которому осуществляется
обращение, производится по одному и тому же проводу. Для подключения к этому проводу
используются микросхемы с открытым коллектором. Нагрузкой для всех микросхем,
подключенных к линии SDA служит внешний резистор. Естественно, что скорость передачи
данных по такому порту будет ниже, по сравнению с SPI портом. Тактовая синхронизация в
I2C шине передаётся по линии SCL. Начало работы с микросхемой обозначается особой
комбинацией сигналов SDA и SCL, которая называется условием старта. Эта же комбинация
одновременно осуществляет кадровую синхронизацию. Завершение работы с микросхемой
обозначается ещё одной комбинацией сигналов SDA и SCL. В качестве примера микросхем,
использующих интерфейс I2C можно назвать микросхемы EEPROM серии 24сXX.
56
Формат асинхронной посылки позволяет выявлять следующие возможные ошибки
передачи:
□если принят перепад, сигнализирующий о начале посылки, а по стробу старт-бита
зафиксирован уровень логической единицы, то старт-бит считается ложным и приемник
снова переходит в состояние ожидания. Об этой ошибке приемник может и не сообщать;
□если во время, отведенное под стоп-бит, обнаружен уровень логического нуля, то
фиксируется ошибка стоп-бита;
□если применяется контроль четности, то после посылки битов данных передается
контрольный бит. Он дополняет количество единичных битов данных до четного или
нечетного в зависимости от принятого соглашения. Прием байта с неверным значением
контрольного бита приводит к фиксации ошибки.
Наиболее распространенным в настоящее время является последовательный
асинхронный порт, работающий по стандарту RS-232. Временная диаграмма этого порта
приведена на рис. 11. Используются уровни сигналов ±10В, что позволяет контролировать
обрыв линии.
57
Рис. 12. Схемы соединения приемников и передатчиков различных стандартных
асинхронных последовательных интерфейсов
Последовательный асинхронный порт, работающий по стандартам RS-232, RS-423A и
RS-422A, позволяет соединять между собой только два устройства. Это связано с тем, что
при параллельном соединении двух передатчиков их выходные каскады могут выйти из
строя. В ряде случаев требуется объединить несколько устройств. Для того чтобы выходные
каскады передатчиков последовательных портов не выходили из строя, необходимо
применять специальные меры, которые обсуждались в предыдущих главах. Эти меры
реализованы в интерфейсе RS-485.
58
8. Описание интерфейса SPI
http://www.radiohlam.ru/teory/SPI.htm
Интерфейс SPI - это один из самых популярных на сегодняшний день
последовательных интерфейсов. Он был придуман фирмой Motorola и очень быстро завоевал
популярность благодаря своей исключительной простоте и высокой скорости. При этом, SPI,
наверное, нельзя назвать в полной мере интерфейсом, скорее это просто принцип связи,
поскольку всё, что подразумевается под SPI, - это логика передачи данных между двумя
устройствами ("Ведущий"-"Ведомый"), физике же уделяется гораздо меньшее внимание, она
реализуется, можно сказать, "по обстоятельствам", а никакого протокола нижнего уровня
вообще нет, тут каждый производитель придумывает что-то своё.
Ну что ж, - с главного и начнём. Итак, в чём же тут логика? Логика в том, что данные
передаются последовательно, побитно, при этом считывание и установка данных разделены
во времени с помощью специального синхросигнала на специальной шине. Эта шина
называется шиной тактирования (или шиной синхронизации), а суть разделения заключается
в том, что считывание и установка данных происходят по противоположным фронтам
генерируемых на шине синхроимпульсов. Такое, чётко разделённое во времени, чередование
установок и считываний даёт возможность использовать один и тот же регистр и для приёма,
и для передачи данных. Ранее (когда память была маленькой и дорогой, операционки
хранились на дискетах, а по полям бегали мамонты) это было серьёзным преимуществом,
более того, именно под это на самом деле изначально и затачивался SPI, однако сейчас
никаких проблем с обьёмом памяти нет и большинство устройств спокойно могут позволить
себе иметь отдельные входной и выходной регистры.
Устройство, управляющее шиной тактирования (то есть генерирующее на ней
синхроимпульсы), является "Ведущим" или "Мастером". Собственно, "Master" управляет
всем обменом данными, - он решает: когда начинать обмен, когда заканчивать, сколько бит
передать и т.д. Второе устройство, участвующее в обмене, является "Ведомым" или "Slave".
В SPI, в отличии от, например, того же I2C, "Slave" совсем бесправен, он вообще никак не
может влиять на шину тактирования и никак не может сообщить мастеру, что не успевает
или, наоборот, что уже готов к обмену. То есть "Мастер" сам должен знать: когда, что и на
какой скорости спросить у "Слэйва", чтобы тот смог ему ответить.
Всего, для полнодуплексного обмена (в обе стороны одновременно), в интерфейсе SPI
используются 4 линии (смотрим рисунок): SCLK, MOSI, MISO и SS.
59
пятивольтовыми микрухами, то высокий уровень - это напряжение, близкое к пяти вольтам,
если речь идёт о микрухах, питающихся от 3,3В, то высокий уровень - это напряжение,
близкое к 3,3В).
Сигнал SS отмечает начало и конец сеанса обмена. Этот сигнал обычно инверсный, то
есть во время сеанса обмена данными мастер должен устанавливать на линии SS низкий
уровень, а при отсутствии обмена - высокий. Наличие сигнала SS позволяет мастеру
организовать подключение к нескольким слэйвам, используя один и тот же синхросигнал и
одни и те же шины данных, без каких-либо дополнительных протоколов (вариант такого
подключения показан на рисунке слева). Правда тут есть один минус: в этом случае мастеру
придётся к каждому слэйву подключаться по отдельной линии SS (чтобы управлять сеансами
обмена с каждым слэйвом независимо друг от друга), что увеличивает общее количество
используемых проводов.
Названия линий, в общем-то, не являются каким-то стандартом и могут отличаться в
зависимости от производителя (например, вместо MOSI, MISO и SCLK линии могут
называться DI, DO и SC, или SI, SO и CLK, линия SS может называться CS или RESET).
Более того, линий не обязательно должно быть четыре, - иногда их может быть только
три, например, если данные передаются только в одном направлении или вместо двух
однонаправленных шин данных используется одна двунаправленная. Очевидно, что в
последнем случае возможен только полудуплексный обмен, то есть в один момент времени
можно только передавать или только принимать данные (а передавать и принимать
одновременно — нельзя).
То есть, ни по названию линий, ни по уровням напряжения на них, ни даже по их
количеству, однозначно идентифицировать SPI нельзя, зато это отлично можно сделать по
самому методу передачи данных, по тому как происходит их установка на шину и
считывание.
Как я уже упоминал, - данные передаются побитно, а установка и чтение данных
происходит по противоположным фронтам сигнала тактирования. Момент чтения данных в
англоязычной литературе называется latch (фиксация, защёлкивание), а момент установки
данных на шину - shift (сдвиг). Сдвигом момент установки называется в силу особенностей
большинства последовательных интерфейсов. Обычно никто не передаёт данные по одному
биту, как правило, их посылают пачками по 8 и более бит (размер пачки чаще всего всё же
кратен восьми). В связи с этим, на выходе передатчика делают сдвиговый регистр, куда
загружают сразу всю пачку передаваемых бит, при этом значение младшего или старшего
бита этого сдвигового регистра устанавливается на шине данных (смотря как передаём -
младшим или старшим битом вперёд), а для установки на шине следующего передаваемого
бита - достаточно "сдвинуть" этот регистр. Так устроены передатчики и в SPI, и в I2C, и в
привычном RS232, и много где ещё (так просто аппаратно удобнее). Ну, ладно, - вернёмся к
нашему SPI.
Логический уровень сигнала на шине тактирования в неактивном состоянии (когда нет
передачи данных) называют полярностью и обозначают CPOL (то есть, если при отсутствии
60
передачи на шине SCLK низкий уровень, то CPOL=0, а если в это время на шине SCLK
высокий уровень, то CPOL=1). Порядок чередования считываний и сдвигов называют фазой
и обозначают CPHA (если по первому фронту на SCLK происходит считывание, то CPHA=0,
а если по первому фронту на SCLK происходит сдвиг, то CPHA=1).
В зависимости от сочетания значений CPOL и CPHA различают 4 режима работы
интерфейса SPI, которые так и обозначают Mode0, Mode1, Mode2 и Mode3. Ниже приведена
картинка, иллюстрирующая как происходит установка и чтение данных, в зависимости от
выбранного режима.
Хотелось бы подчеркнуть, что SS - это именно линия управления сеансом обмена, а не
просто линия выбора слэйва. Разница тут в том, что если считать SS просто линией выбора
слэйва, то при подключении мастера к одному единственному слэйву возникает соблазн этой
линией не управлять, а жёстко закоротить её на общий провод (типа чтоб слэйв всегда был
выбран). Однако, логика слэйва обычно такова, что начало сеанса сопровождается
различными подготовительными процедурами, такими как загрузка данных в выходной
сдвиговый регистр и сброс счётчика импульсов, а выполнять какие-то действия (в
соответствии с принятыми по SPI командами от мастера) слэйв начинает только после
завершения сеанса обмена. Кроме того, вам ведь вполне может понадобиться несколько
сеансов общения (например, если в первом сеансе вы посылаете команды, а в следующем
хотите получить отчёт о результате их выполнения). Думаю понятно, что если жёстко
притянуть линию SS к общему проводу, то ни о каком распознавании начала и конца сеанса
обмена (начало распознаётся по спаду на линии SS, а конец - по подъёму) не может быть и
речи, соответственно весь обмен данными будет нарушен. Так что важность сигнала SS не
стоит недооценивать.
61
Преимущества и недостатки интерфейса SPI
Преимущества
Полнодуплексная передача данных по умолчанию.
Более высокая пропускная способность по сравнению с I²C или SMBus.
Возможность произвольного выбора длины пакета, длина пакета не ограничена
восемью битами.
Простота аппаратной реализации:
более низкие требования к энергопотреблению по сравнению с I²C и SMBus;
возможно использование в системах с низкостабильной тактовой частотой;
ведомым устройствам не нужен уникальный адрес, в отличие от таких
интерфейсов, как I²C, GPIB или SCSI.
Используется только четыре вывода, что гораздо меньше, чем для параллельных
интерфейсов.
Однонаправленный характер сигналов позволяет при необходимости легко
организовать гальваническую развязку между ведущим и ведомыми устройствами.
Максимальная тактовая частота ограничена только быстродействием устройств,
участвующих в обмене данными.
Недостатки
Необходимо больше выводов, чем для интерфейса I²C.
Ведомое устройство не может управлять потоком данных.
Нет подтверждения приема данных со стороны ведомого устройства (ведущее
устройство может передавать данные «в никуда»).
Нет определенного стандартом протокола обнаружения ошибок.
Отсутствие официального стандарта, что делает невозможным сертификацию
устройств.
По дальности передачи данных интерфейс SPI уступает таким стандартам, как UART
и CAN.
Наличие множества вариантов реализации интерфейса.
Отсутствие поддержки горячего подключения устройств.
62
Физически сеть представляет собой двухпроводную шину, линии которой называются
DATA и CLOCK (необходим ещё и третий провод - земля, но интерфейс принято называть
двухпроводным по количеству сигнальных проводов). Соответственно, по линии DATA
передаются данные, линия CLOCK служит для тактирования. К шине может быть
подключено до 128 абонентов, каждый со своим уникальным номером. В каждый момент
времени информация передаётся только одним абонентом и только в одну сторону.
Устройства I2C имеют выход с "открытым коллектором". Когда выходной транзистор
закрыт - на соответствующей линии через внешний подтягивающий резистор
устанавливается высокий уровень, когда выходной транзистор открыт - он притягивает
соответствующую линию к земле и на ней устанавливается низкий уровень (смотрите
рисунок). Резисторы имеют номинал от нескольких килоом до нескольких десятков килоом
(чем выше скорость - тем меньше номинал резисторов, но больше энергопотребление). На
рисунке треугольниками на входе показано, что входы высокоомные и, соответственно,
влияния на уровни сигналов на линиях они не оказывают, а только "считывают" эти уровни.
Обычно используются уровни 5В или 3,3В.
2) Логика.
Любое устройство на шине I2C может быть одного из двух типов: Master (ведущий)
или Slave (ведомый). Обмен данными происходит сеансами. "Мастер"-устройство полностью
управляет сеансом: инициирует сеанс обмена данными, управляет передачей, подавая
тактовые импульсы на линию Clock, и завершает сеанс.
Кроме этого, в зависимости от направления передачи данных и "Мастер" и "Слэйв"-
устройства могут быть "Приёмниками" или "Передатчиками". Когда "Мастер" принимает
данные от "Слэйва" - он является "Приёмником", а "Слэйв" - "Передатчиком". Когда же
"Слэйв" принимает данные от "Мастера", то он уже является "Приёмником", а "Мастер" в
этом случае является "Передатчиком".
Не надо путать тип устройства "Мастер" со статусом "Передатчика". Несмотря
на то, что при чтении "Мастером" информации из "Слэйва", последний выставляет данные
на шину Data, делает он это только тогда, когда "Мастер" ему это разрешит, установкой
соответствующего уровня на линии Clock. Так что, хотя "Слэйв" в этом случае и управляет
шиной Data, - самим обменом всё равно управляет "Мастер".
В режиме ожидания (когда не идёт сеанс обмена данными) обе сигнальные линии (Data
и Clock) находятся в состоянии высокого уровня (притянуты к питанию).
Каждый сеанс обмена начинается с подачи "Мастером" так называемого Start-условия.
"Старт-условие" - это изменение уровня на линии Data с высокого на низкий при наличии
высокого уровня на линии Clock.
После подачи "Старт-условия" первым делом "Мастер" должен сказать с кем он хочет
пообщаться и указать, что именно он хочет - передавать данные в устройство или читать их
63
из него. Для этого он выдаёт на шину 7-ми битный адрес "Слэйв" устройства (по другому
говорят: "адресует "Слэйв" устройство"), с которым хочет общаться, и один бит,
указывающий направление передачи данных (0 - если от "Мастера" к "Слэйву" и 1 - если от
"Слэйва" к "Мастеру"). Первый байт после подачи "Старт"-условия всегда всеми "Слэйвами"
воспринимается как адресация.
Поскольку направление передачи данных указывается при открытии сеанса вместе с
адресацией устройства, то для того, чтобы изменить это направление, необходимо открывать
ещё один сеанс (снова подавать "Старт"-условие, адресовать это же устройство и указывать
новое направление передачи).
После того, как "Мастер" скажет, к кому именно он обращается и укажет направление
передачи данных, - начинается собственно передача: "Мастер" выдаёт на шину данные для
"Слэйва" или получает их от него. Эта часть обмена (какие именно данные и в каком порядке
"Мастер" должен выдавать на шину, чтобы устройство его поняло и сделало то, что ему
нужно) уже определяется каждым конкретным устройством.
Заканчивается каждый сеанс обмена подачей "Мастером" так называемого Stop-
условия, которое заключается в изменении уровня на линии Data с низкого на высокий,
опять же при наличии высокого уровня на линии Clock. Если на шине сформировано Stop-
условие, то закрываются все открытые сеансы обмена.
Внутри сеанса любые изменения на линии Data при наличии высокого уровня на линии
Clock запрещены, поскольку в это время происходит считывание данных "Приёмником".
Если такие изменения произойдут, то они в любом случае будут восприняты либо как
"Старт"-условие (что вызовет прекращение обмена данными), либо как "Стоп"-условие (что
будет означать окончание текущего сеанса обмена). Соответственно, во время сеанса обмена
установка данных "Передатчиком" (выставление нужного уровня на линии Data) может
происходить только при низком уровне на линии Clock.
Несколько слов по поводу того, в чём в данном случае разница между "прекращением
обмена данными" и "окончанием сеанса обмена". В принципе "Мастеру" разрешается, не
закрыв первый сеанс обмена, открыть ещё один или несколько сеансов обмена с этим же
(например, как было сказано выше, для изменения направления передачи данных) или даже с
другими "Слэйвами", подав новое "Старт"-условие без подачи "Стоп"-условия для закрытия
предыдущего сеанса. Управлять линией Data, для того, чтобы отвечать "Мастеру", в этом
случае будет разрешено тому устройству, к которому "Мастер" обратился последним,
однако старый сеанс при этом нельзя считать законченным. И вот почему. Многие
устройства (например те же eeprom-ки 24Схх) для ускорения работы складывают данные,
полученные от "Мастера" в буфер, а разбираться с этими полученными данными начинают
только после получения сигнала об окончании сеанса обмена (то есть "Стоп-условия").
То есть, например, если на шине висит 2 микросхемы eeprom 24Cxx и вы открыли
сеанс записи в одну микросхему и передали ей данные для записи, а потом, не закрывая этот
первый сеанс, открыли новый сеанс для записи в другую микросхему, то реальная запись и в
первую и во вторую микросхему произойдёт только после формирования на шине "Стоп-
условия", которое закроет оба сеанса. После получения данных от "Мастера" eeprom-ка
складывает их во внутренний буфер и ждёт окончания сеанса, для того, чтобы начать
собственно процесс записи из своего внутреннего буфера непосредственно в eeprom. То
есть, если вы после после передачи данных для записи в первую микруху не закрыли этот
сеанс, открыли второй сеанс и отправили данные для записи во вторую микруху, а потом,
не сформировав "Стоп-условие", выключили питание, то реально данные не запишутся ни в
первую микросхему, ни во вторую. Или, например, если вы пишете данные попеременно в две
микрухи, то в принципе вы можете открыть один сеанс для записи в первую, потом другой
сеанс для записи во вторую, потом третий сеанс для записи опять в первую и т.д., но если
вы не будете закрывать эти сеансы, то в конце концов это приведёт к переполнению
внутренних буферов и в итоге к потере данных.
64
Здесь можно привести такую аналогию: ученики в классе ("слэйвы") и учитель
("мастер"). Допустим учитель вызвал какого-то ученика (пусть будет Вася) к доске и
попросил его решить какой-то пример. После того как Вася этот пример решил, учитель
вызвал к доске Петю и начал спрашивать у него домашнее задание, но Васю на место не
отпустил. Вот в этом случае вроде бы разговор с Васей закончен, - учитель разговаривает с
Петей, но Вася стоит у доски и не может спокойно заниматься своими делами (сеанс
общения с ним не закрыт).
В случае, если "Слэйв" во время сеанса обмена не успевает обрабатывать данные, - он
может растягивать процесс обмена, удерживая линию Clock в состоянии низкого уровня,
поэтому "Мастер" должен проверять возврат линии Clock к высокому уровню после того, как
он её отпустит. Хотелось бы подчеркнуть, что не стоит путать состояние, когда "Слэйв"
не успевает принимать или посылать данные, с состоянием, когда он просто занят
обработкой данных, полученных в результате сеанса обмена. В первом случае (во время
обмена данными) он может растягивать обмен, удерживая линию Clock, а во втором
случае (когда сеанс обмена с ним закончен) он никакие линии трогать не имеет права. В
последнем случае он просто не будет отвечать на "обращение" к нему от "Мастера".
Внутри сеанса передача состоит из пакетов по девять бит, передаваемых в обычной
положительной логике (то есть высокий уровень - это 1, а низкий уровень - это 0). Из них 8
бит передаёт "Передатчик" "Приёмнику", а последний девятый бит передаёт "Приёмник"
"Передатчику". Биты в пакете передаются старшим битом вперёд. Последний, девятый бит
называется битом подтверждения ACK (от английского слова acknowledge - подтверждение).
Он передаётся в инвертированном виде, то есть 0 на линии соответствует наличию бита
подтверждения, а 1 - его отсутствию. Бит подтверждения может сигнализировать как об
отсутствии или занятости устройства (если он не установился при адресации), так и о том,
что "Приёмник" хочет закончить передачу или о том, что команда, посланная "Мастером", не
выполнена.
Каждый бит передаётся за один такт. Та половина такта, во время которой на линии
Clock установлен низкий уровень, используется для установки бита данных на шину
передающим абонентом (если предыдущий бит передавал другой абонент, то он в это время
должен отпустить шину данных). Та половина такта, во время которой на линии Clock
установлен высокий уровень, используется принимающим абонентом для считывания
установленного значения бита с шины данных.
Вот собственно и всё. На рисунках ниже всё это описание показано в графической
форме.
3) Диаграммы и тайминги.
65
Мин.
Параметр Обозн. Комментарий
знач.
это минимальное время, в течении которого обе линии
Свободная шина tBUF 4,7 мкс должны находиться в свободном состоянии перед
подачей "Старт"-условия
Фиксация t минимальное время от подачи "Старт"- условия до
4,0 мкс
"Старт"- условия HD;STA начала первого такта передачи
Готовность tSU;STO минимальное время, через которое можно подавать
4,0 мкс
"Стоп"- условия "Стоп"- условие после освобождения шины Clock
Длительность
минимальная длительность полупериода установки
LOW полупер. tLOW 4,7 мкс
данных (когда на шине Clock низкий уровень)
шины Clock
Длительность
минимальная длительность полупериода считывания
HIGH полупер. tHIGH 4,0 мкс
данных (когда на шине Clock высокий уровень)
шины Clock
Удержание tHD;DAT то есть данные на шину Data можно выставлять сразу
0
данных после спада на линии Clock
Готовность tSU;DAT то есть поднимать уровень на шине Clock можно не
250 нс
данных ранее 250 нс после установки данных на шине Data
66
Минимальные значения времени в таблице указаны для максимальной скорости передачи
100 кбит/с.
67
10. ЭТАПЫ ПРОЕКТИРОВАНИЯ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ
68
В техническом задании формулируются требования к контроллеру с точки зрения
реализации определенной функции управления. Техническое задание включает в себя набор
требований, который определяет, что пользователь хочет от контроллера и что разрабатываемый
прибор должен делать. Техническое задание может иметь вид текстового описания, не
свободного в общем случае от внутренних противоречий.
На основании требований пользователя составляется функциональная
спецификация, которая определяет функции, выполняемые контроллером для пользователя
после завершения проектирования, уточняя тем самым, насколько устройство соответствует
предъявляемым требованиям. Она включает в себя описания форматов данных, как на входе,
так и на выходе, а также внешние условия, управляющие действиями контроллера.
Функциональная спецификация и требования пользователя являются критериями оценки
функционирования контролера после завершения проектирования. Может потребоваться
проведение нескольких итераций, включающих обсуждение требований и функциональной
спецификации с потенциальными пользователями контроллера, и соответствующую коррекцию
требований и спецификации. Требования к типу используемого МК формулируются на данном
этапе чаще всего в неявном виде.
Этап разработки алгоритма управления является наиболее ответственным,
поскольку ошибки данного этапа обычно обнаруживаются только при испытаниях
законченного изделия и приводят к необходимости дорогостоящей переработки всего
устройства. Разработка алгоритма обычно сводится к выбору одного из нескольких
возможных вариантов алгоритмов, отличающихся соотношением объема программного
обеспечения и аппаратных средств.
При этом необходимо исходить из того, что максимальное использование аппаратных
средств упрощает разработку и обеспечивает высокое быстродействие контроллера в целом, но
сопровождается, как правило, увеличением стоимости и потребляемой мощности. Это связано с
тем, что увеличение доли аппаратных средств достигается либо путем выбора более сложного
МК, либо путем использования специализированных интерфейсных схем. И то, и другое
приводит к росту стоимости и энергопотребления. Увеличение удельного веса программного
обеспечения позволяет сократить число элементов контроллера и стоимость аппаратных
средств, но это приводит к снижению быстродействия, увеличению необходимого объема
внутренней памяти МК, увеличению сроков разработки и отладки программного обеспечения.
Критерием выбора здесь и далее является возможность максимальной реализации
заданных функций программными средствами при минимальных аппаратных затратах и
при условии обеспечения заданных показателей быстродействия и надежности в полном
диапазоне условий эксплуатации.
Часто определяющими требованиями являются возможность защиты информации
(программного кода) контроллера, необходимость обеспечения максимальной
продолжительности работы в автономном режиме и другие. В результате выполнения этого
этапа окончательно формулируются требования к параметрам используемого МК.
При выборе типа МК учитываются следующие основные характеристики:
– разрядность;
– быстродействие;
– набор команд и способов адресации;
– требования к источнику питания и потребляемая мощность в различных режимах;
– объем ПЗУ программ и ОЗУ данных;
– возможности расширения памяти программ и данных;
– наличие и возможности периферийных устройств, включая средства поддержки
работы в реальном времени (таймеры, процессоры событий и т.п.);
– возможность перепрограммирования в составе устройства;
– наличие и надежность средств защиты внутренней информации;
– возможность поставки в различных вариантах конструктивного исполнения;
– стоимость в различных вариантах исполнения;
69
– наличие полной документации;
– наличие и доступность эффективных средств программирования и отладки МК;
– количество и доступность каналов поставки, возможность замены изделиями других
фирм.
Список этот не является исчерпывающим, поскольку специфика проектируемого
устройства может перенести акцент требований на другие параметры МК. Определяющими
могут оказаться, например, требования к точности внутреннего компаратора напряжений
или наличие большого числа выходных каналов ШИМ.
Номенклатура выпускаемых в настоящее время МК исчисляется тысячами типов изделий
различных фирм. Современная стратегия модульного проектирования обеспечивает потребителя
разнообразием моделей МК с одним и тем же процессорным ядром. Такое структурное
разнообразие открывает перед разработчиком возможность выбора оптимального МК, не
имеющего функциональной избыточности, что минимизирует стоимость комплектующих
элементов.
Однако для реализации на практике возможности выбора оптимального МК
необходима достаточно глубокая проработка алгоритма управления, оценка объема
исполняемой программы и числа линий сопряжения с объектом на этапе выбора МК.
Допущенные на данном этапе просчеты могут впоследствии привести к необходимости
смены модели МК и повторной разводки печатной платы макета контроллера. В таких
условиях целесообразно выполнять предварительное моделирование основных элементов
прикладной программы с использованием программно-логической модели выбранного
МК.
При отсутствии МК, обеспечивающего требуемые по ТЗ характеристики
проектируемого контроллера, необходим возврат к этапу разработки алгоритма управления и
пересмотр выбранного соотношения между объемом программного обеспечения и
аппаратных средств. Отсутствие подходящего МК чаще всего означает, что для реализации
необходимого объема вычислений (алгоритмов управления) за отведенное время нужна
дополнительная аппаратная поддержка. Отрицательный результат поиска МК с требуемыми
характеристиками может быть связан также с необходимостью обслуживания большого
числа объектов управления. В этом случае возможно использование внешних схем
обрамления МК.
На этапе разработки структуры контроллера окончательно определяется состав
имеющихся и подлежащих разработке аппаратных модулей, протоколы обмена между
модулями, типы разъемов. Выполняется предварительная проработка конструкции
контроллера. В части программного обеспечения определяются состав и связи программных
модулей, язык программирования. На этом же этапе осуществляется выбор средств
проектирования и отладки.
Возможность перераспределения функций между аппаратными и программными
средствами на данном этапе существует, но она ограничена характеристиками уже выбранного
МК. При этом необходимо иметь в виду, что современные МК выпускаются, как правило,
сериями (семействами) контроллеров, совместимых программно и конст