Конспект лекций по курсу "Микропроцессоры и микро-ЭВМ в Персональной электронике" для студентов специальности 2008
Конспект лекций по курсу "Микропроцессоры и микро-ЭВМ в Персональной электронике" для студентов специальности 2008
МИНИСТРЕРСТВО ВЫСШЕГО ОБРАЗОВАНИЯ РФ
МОСКОВСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ ПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИ
КАФЕДРА "ПЕРСОНАЛЬНАЯ ЭЛЕКТРОНИКА"
Конспект лекций по курсу "Микропроцессоры и микро-ЭВМ в Персональной электронике" для студентов специальности 2008
Москва 2001
ВВЕДЕНИЕ. ПОНЯТИЕ О МИКРОПРОЦЕССОРАХ
В последнее десятилетие наметилась четкая тенденция повышения роли вычислительной техники во всей жизни современного человека. Недаром в наших школах введено преподавание нового предмета "Основы информатики и вычислительной техники".
Наряду с бурным развитием вычислительной техники еще наблюдается две глобальные тенденции в современной радиоэлектронике. Во-первых, усложняются функции любого электронного аппарата. При этом с точки зрения эксплуатации его, наблюдается упрощение работы с ним даже необученного пользователя. Во-вторых, радиоэлектроника расширяет свое влияние на все большие сферы человеческой деятельности. Теперь ее применение наблюдается даже в тех областях, в которых ранее ее использование казалось немыслимым. Эти два аспекта можно назвать усилением "интеллектуализации" техники.
Из этого вытекает еще одна реалия современного развития электроники - крен в сторону техники, направленной на удовлетворение "бытовых" потребностей человека. Поэтому в самое последнее время получил развитие термин "Персональная электроника", который имеет в виду не только электронику для "домашнего использования", а и офисную, автомобильную и другие виды устройств, которые направлены на удовлетворение персональных потребностей пользователя.
Все указанные выше тенденции и особенности применения электроники были бы невозможны без поистине взрывоподобного развития микропроцессорной техники. Начало ее использования было весьма скромным, а сейчас ни один мало-мальски сложный аппарат не может без нее обойтись. Благодаря своим преимуществам микропроцессорная техника начинает вытеснять традиционную радиоэлектронику из такого понятия, как элементная база.
Естественно, теперь при обучении проектированию персональной электроники нельзя не давать студентам хотя бы основ применения микропроцессорной техники. Поэтому не вызывает сомнения актуальность преподавания курса "Применение микропроцессоров и микро-ЭВМ в Персональной электронике" студентам специальности "Персональная электроника" (2008).
Целью настоящего курса является дать понятие о микропроцессорах и однокристальных микро-ЭВМ, области их применения, дать основы функционирования микропроцессорных систем, научить основам программирования микропроцессоров и микро-ЭВМ, построения простейших систем управления объектами.
Курс состоит из лекционных и практических занятий и лабораторного практикума. Он построен таким образом, чтобы на лекциях дать слушателям наиболее широкое представление о предмете, а на практических и лабораторных занятиях познакомить их с конкретными микропроцессорными системами, научить основам построения и функционирования определенных систем управления на основе одного - двух наиболее популярных микропроцессорных наборов.
После окончания обучения слушатель должен свободно ориентироваться в многочисленной литературе по микропроцессорам и микро-ЭВМ, уметь выбрать тот или иной микропроцессорный комплект для использования в конкретной системе, уметь программировать один из самых распространенных микропроцессорных систем, составлять структурную и принципиальную схемы микропроцессорной системы для ее использования в конкретной области техники. В дальнейшем слушатель, основываясь на литературе и материалах о микропроцессорных системах, сможет сам проектировать и, главным образом, уметь применять микропроцессоры в своей повседневной работе, свободно ориентироваться в обслуживании и ремонте такого рода аппаратуры.
История появления микропроцессоров
Появление микропроцессоров обязано слиянию двух ранее независимых отраслей техники. Первая из них - создание систем управления промышленными объектами. В начале 60-х годов функции многих промышленных систем настолько усложнились, что потребовалось создавать сложные автоматические системы управления этими объектами. Эпоха НТР потребовала создания высокоавтоматизированных, быстро переналаживаемых производств, так называемых "гибких автоматизированных производств". Но если применять старую методику переналадки всего машинного парка производства, то это потребовало бы слишком больших затрат на переход с одного вида продукции на другой. Поэтому встала потребность создания таких управляющих устройств-производств, которые бы переналаживались на выпуск другой продукции самыми простыми средствами.
С другой стороны параллельно этим отраслям развивалась мощная база вычислительной техники. На заре своего развития она мало что умела, имела очень большие габариты и главное - низкую надежность из-за использования электронных ламп. Но по мере совершенствования вычислительная техника становилась все более мощной, все менее громоздкой, все более удобной для эксплуатации. Но развитие этой техники шло в основном по пути наращивания мощности и возможности больших ЭВМ, установленных в отдельных, специально приспособленных помещениях, обслуживаемых специально обученным персоналом высокой квалификации. Использование средств вычислительной техники в таком виде для нужд производства имело ограниченный характер.
В это же время в радиоэлектронике (и, в частности, в вычислительной технике) шло естественное развитие элементной базы. На смену лампам пришли транзисторы. Габариты и потребляемая мощность сразу снизились в десятки раз. Но подлинный переворот в радиоэлектронике был совершен, когда появились первые интегральные микросхемы, т.е. тогда, когда внутри пластины полупроводника стали изготовлять готовые схемы, а не отдельные активные приборы. Это позволило существенно снизить габариты, потребляемую мощность, повысить надежность аппаратуры.
Совершенствование технологии изготовления интегральных схем (ИС) привело к появлению ИС средней степени интеграции, (когда на одном кристалле размещалось несколько десятков транзисторов), ИС большой степени интеграции или БИС (когда на кристалле тысячи и десятки тысяч элементов), и наконец, ИС сверхбольшой степени интеграции или СБИС (на кристалле - миллионы элементов). Однако по мере развития элементной базы стало все более очевидным противоречие: если на транзисторах или на ИС малой интеграции можно было построить различную аппаратуру (по своим функциональным возможностям), то по мере роста степени интеграции ИС становились все более специализированными. Действительно, в одной БИС размещалось порой целое устройство, и эту БИС нельзя было применить для построения другого аппарата. Кроме того, хотя и изготовление такой ВИС было достаточно дешевым, но проектирование таких специализированных БИС требовало все больших затрат, а сфера их применения все суживалась. Таким образом, развитие элементной базы вело в тупик.
Подлинной революцией, которая позволила выйти из этого тупика, стало появление микропроцессоров. В 1971 г. фирма Intel (США) выпустило БИС под кодом 4004 и назвала ее микропроцессором. На микроэлектронный уровень была перенесена идеология средств вычислительной техники. Впервые БИС стала именно универсальной системой благодаря сочетанию аппаратных и программных средств. Т.е. структура БИС была неизменной, а универсальность ей придавалось возможностью программирования ее функций. Таким образом, для различных применений требовалось только написать другую программу работы, без изменения структуры микропроцессорной системы.
Но основное применение микропроцессоров сразу открылось именно в построении управляющих систем промышленности. Проектировщики сразу поняли все преимущества новой элементной базы. Теперь требовалось изменять только программу работы оборудования, а все оборудование остается неизменным. И что самое важное, стало возможным встраивать микропроцессоры непосредственно в оборудование, что придало ему еще большую гибкость.
Микропроцессорная техника стала бурно развиваться. Появились микропроцессорные комплекты для построения самых различных систем, и в том числе вычислительных. В настоящее время промышленность выпускает большую номенклатуру микропроцессоров, которые можно применять для построения различных управляющих промышленных систем, для создания достаточно мощных вычислительных систем, и для встраивания в бытовую технику.
Следующим этапом развития элементной базы стало применение однокристальных микро-ЭВМ (ОЭВМ). Действительно, для включения микропроцессора в систему было необходимо предусмотреть "навешивание" на него еще по крайней мере нескольких микросхем - памяти, генераторов, интерфейсных схем и т.д. Все это выливалось в увеличение габаритов, потребляемой мощности, снижение надежности. Поэтому на определенном этапе очевидным решением стало интеграция всех этих устройств на одном кристалле. При этом основные преимущества МП техники сохранились и даже развились дальше. Можно сказать, что в настоящее время "чистые" микропроцессоры применяются только в вычислительной технике, а в персональной электронике подавляющее большинство управляющих систем построено на ОЭВМ.
Сейчас уже можно сказать, что ни одна сторона техники и быта не может обойтись без применения микропроцессоров и ОЭВМ в той или иной мере.
Терминология курса
Для изучения микропроцессорной техники, литературы по этому вопросу необходимо познакомиться с терминологией, встречающейся в различных источниках. В настоящем разделе приводятся только наиболее общие термины. Другие понятия будут расшифрованы в соответствующих разделах.
Микропроцессор (МП) - программно управляемое устройство, предназначенное для обработки цифровой информации и управления процессами этой обработки, и выполненное в виде одной (или нескольких) ИС с высокой степенью интеграции электронных компонентов.
Микропроцессорный комплект (МПК) - совокупность МП и других ИС, совместимых по конструкторско-технологическому исполнению и предназначенных для совместного применения при конструировании МП, микро-ЭВМ, и других управляющих систем.
Микропроцессорная система (МПС) - управляющая, информационная или иная специализированная цифровая система, построенная на базе МП или микро-ЭВМ, включающая в себя средства связи с объектом управления или с пользователем.
Аппаратные средства МПС - МП средства и схемы сопряжения с обслуживаемым объектом, имеющие некоторую конструктивную базу и соединенные согласно определенной принципиальной схеме.
Программные средства МПС - последовательность команд, программа или совокупность программ, размещенных на средствах носителях информации и реализующие требуемый алгоритм ее функционирования.
Однокристальная микро-ЭВМ (ОЭВМ) - МПС, реализованная на одном кристалле, и выполняющая основные функции управления и сопряжения с объектом.
Классификация и основные параметры МП
Сложность классификации МП средств связана с тем, что с одной стороны МП - это функциональное вычислительное устройство, а с другой стороны - это БИС. Поэтому для МП важны такие параметры БИС, как:
- тип корпуса БИС,
- количество источников питания,
- требования к синхронизации,
- мощность рассеяния,
- температурный диапазон,
- быстродействие,
- уровни сигналов,
- возможность наращивания,
- нагрузочная способность и т.д.
Как функциональное устройство МП характеризуется следующими параметрами:
- формат обрабатываемых данных,
- количество, тип и гибкость системы команд,
- методы адресации данных,
- число внутренних регистров,
- средства прерываний,
- построение системы ввода-вывода и т.д.
Как и обычное устройство управления МП можно разделить на три части: операционную (в ней осуществляется преобразование данных), управляющую (осуществляет управление обработкой данных по программе) и интерфейсная (осуществляет связь МП с внешними устройствами). Первые две части характеризуются разрядностью, системой команд, системой прерываний и т.д., третья часть - разрядностью, возможностью подключения других частей системы и т.д.
Конструктивно все три части могут присутствовать в одном кристалле БИС, тогда этот МП называют однокристальным МП: или каждый кристалл МПС выполняет свою функцию - тогда МП называют многокристальным . Ряд МП допускают наращивание до необходимой разрядности, причем отдельно можно наращивать все три части МП. Тогда эти МП называют многокристальными секционированными, где каждая секция обрабатывает свою область разрядов данных. На рис. 0.1 условно показаны эти типы МП.
а) б) в)
УП- управляющая часть, ОП - операционная часть, ИП - интерфейсная часть
Рис. 0.1.
Поэтому по числу БИС в МПК МП классифицируются:
- -однокристальные,
- многокристальные,
- многокристальные секционированные.
По назначению:
- универсальные - могут быть использованы для широкого круга задач, причем их эффективность слабо зависит от типа решаемой задачи,
- специализированные - они ориентированы на выполнение определенных функций, что позволяет существенно повысить эффективность при решении определенного класса задач. В частности, это специальные математические процессоры, процессоры обработки видеоданных и т.д. Производительность этих процессоров очень высока, но только для узкого круга решаемых задач.
По виду обрабатываемых данных:
- цифровые,
- аналоговые (МП - цифровые устройства, но на их входах и выходах стоят соответственно аналогово-цифровые и цифро-аналоговые преобразователи).
По виду временной синхронизации:
- синхронные - МП, в которых начало и конец каждой операции задаются устройством управления и не зависят от вида команд и величины операндов,
- асинхронные МП - начало последующей операции определяется по фактическому окончанию предыдущей операции.
По организаций МПС:
- одномагистральная МПС - все устройства системы имеют один интерфейс и подключены к единой магистрали, по которой передаются коды данных, адресов и управляющих сигналов,
- многомагистральная МПС - устройства группами подключаются к своей информационной магистрали, по которым можно осуществить одновременную передачу данных, адресов и управляющих сигналов.
По виду системы команд:
- МП с жестким набором команд - каждая команда такого МП не может быть разделена на более простые операции. Система команд такого МП не может быть изменена программным способом,
- МП с микропрограммированием - система команд такого МП может быть модифицирована за счет изменения последовательности микропрограмм. из которых состоит каждая команда такого МП. Мировая промышленность выпускает в настоящее время большое число МПК. Каждый из них предназначен для определенного применения, имеет свои особенности. Основной вопрос при применении МП средств - выбор определенного МПК. Как видно из предыдущего изложения, параметров МПК много, поэтому в табл. 0.1 указаны основные МПК, выпускаемые отечественной промышленностью, и некоторые особо важные их параметры.
Таблица 0.1
Обозначение серии |
Наименование ЦПЭ |
Технология |
Разрядность, бит |
Тактовая частота, МГц |
Напряжения питания, В |
Потребляемая мощность, мВт |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
К580 |
КР580ВМ80А |
nМОП |
8 |
2,5 |
-5,+5,+12 |
700 |
К584 |
К584ВМ1 |
И2Л |
4п |
0,5 |
+5 |
750 |
К588 |
К588ВС1 |
КМОП |
16п |
0,8 |
+5 |
1,0 |
К589 |
К589ИК02 |
ТТЛШ |
2п |
10,0 |
+5 |
850 |
К1800 |
К1800ВС1 |
ЭСЛ |
4п |
36,0 |
-5,2;-2 |
400 |
К1801 |
К1801ВМ1 |
nМОП |
16 |
5,0 |
+5 |
600 |
К1802 К1804 |
КР1802ВС1 |
ТТЛШ |
8п |
8,0 |
+5 |
800 |
Примечание: при обозначении разрядности символ "n" обозначает возможность кратного наращивания разрядности (секционированные процессоры).
Как видно из табл. 0.1, технология изготовления БИС определяет многие параметры МПК: быстродействие, потребляемую мощность, плотность компоновки на кристалле, напряжения питания и т.п. В таблице указаны универсальные МП.
Как уже упоминалось во Введении, те МП, которые приведены в табл.0.1, уже давно не имеют никаких перспектив по использованию в современной радиоэлектронике. Вместо МП сейчас используются только микроконтроллеры (МК), как называются иначе однокристальные микро-ЭВМ. Ниже приведен краткий обзор современных МК.
1. Обзор современных ОЭВМ
Хотя первыми на рынке появились микропроцессоры (МП), и они в 70-х и 80-х годах были основной элементной базой управляющих и вычислительных устройств, по мере развития микроэлектроники МП были вытеснены из большинства своих применений ОЭВМ, которые иначе еще называются микроконтроллерами (МК). В настоящее время МП сохраняют свое ведущее положение только в вычислительной технике (производство ПЭВМ).
Микроконтроллеры (МК) являются наиболее массовыми представителями современной микропроцессорной техники, объем выпуска которых составляет около 2,5 млрд. штук в год. Имея на своем кристалле высокопроизводительный процессор, память и набор периферийных устройств, МК позволяют с минимальными затратами реализовать высокоэффективные системы и устройства управления различными объектами и процессами. Благодаря этому они находят широкое применение в промышленной автоматике, контрольно-измерительных приборах и системах, аппаратуре связи, автомобильной электронике, бытовой технике и многих других применениях.
Первым МК на рубеже 80-х и 90-х годов стала микросхема той же фирмы INTEL I8048. Она была очень простой, содержала на кристалле всего 1 Кбайт ПЗУ или ППЗУ, могла адресовать всего 4 Кбайт памяти программ, имела только 64 байта ОЗУ на кристалле. Этот тип МК так и не стал массовым и далее не развивался.
Другим, и гораздо более перспективным прибором, стал МК типа I8751. Этот тип МК дал начало целому семейству МК, которое получило название MCS-51. Структура и возможности этого МК были настолько удачными, что это семейство развивается до сих пор. Со временем фирма INTEL отошла от производства МК, но эстафету подхватили такие мощные фирмы, как Philips, Atmel, Dallas Semiconductors, Analog Devices и другие. Они теперь развивают эту ветвь МК.
Еще на заре развития МП в этой отрасли появился такой гигант радиоэлектроники, как американская фирма Motorolla. Она примерно в то же время, что и INTEL начала развивать свою отрасль МП и первым процессором стал МС6800. Он имел несколько иную структуру, чем I8080, хотя по такому интегральному показателю, как "мощность" это были примерно равные приборы. Со временем Motorolla также поняла перспективность развития МК и выпустила на рынок 8-разрядные семейства МК 68НС05. И в настоящее время продукция фирмы контролирует значительную часть рынка МК.
Основным недостатком МК еще недавно была их относительно высокая стоимость. Это не позволяло эффективно использовать их в простых приложениях, где надо было считать каждую копейку, а задачи, возложенные на МК были самыми простыми.
Поэтому возникла идея создать наиболее простой, но и наиболее дешевый процессор.
Поэтому фирма Microchip разработала целое семейство МК, основанных на так называемой RISC технологии. Основной особенностью ее является упрощенная система команд, состоящая, как правило, из нескольких десятков простейших инструкций. На этой основе были созданы PIC МК. Со временем они, конечно, усложнились, их мощность повысилась, но они и сейчас остались самыми дешевыми и простыми МК.
Таким образом, можно констатировать, что рынок МК сейчас поделен на 3 части: семейство MCS-51 (примерно 50 - 60%), МК фирмы Motorolla (20 - 30%) и PIC МК (10 - 20%).
Ниже приводятся краткие сведения о последних двух видах МК, а контроллеры семейства MCS-51 рассматриваются более подробно в разделе ???.??., а МК типа PIC – в разделе ??????.
1.1. МИКРОКОНТРОЛЛЕРЫ ФИРМЫ MOTOROLLA
МК фирмы MOTOROLLA составляют несколько семейств, которые различаются в основном по вычислительной мощности и ориентации на определенные области применения.
В первую очередь это 8-разрядные МК семейств НС05, НС08 и НС11.
Семейство 68НС05 содержит более 150 модификаций МК, которые формировались фирмами, использующими аппаратуру на контроллерах, или так называемые "заказные" МК. Они настроены под конкретную конфигурацию программно-аппаратных средств пользователя.
МК МС68НС08 - развитие семейства НС05. Они совместимы по системе команд и коду с этими МК, но имеют в 5 - 10 раз большую производительность. МК этого типа имеют модульную внутреннюю архитектуру, большую универсальность, увеличенные объемы внутренней памяти, энергонезависимые блоки памяти типа EEPROM Flash EEPROM.
Семейство МС68НС11 ориентировано на массовое применение и характеризуется большей гибкостью и универсальностью, широким применением внешней памяти. Ядро системы усовершенствовано, отличается повышенной производительностью и более эффективной архитектурой и системой команд. В семейство входят более 40 модификаций МК.
1.1.1. Семейство НС05
Все МК этого семейства имеют одинаковое 8-разрядное процессорное ядро, основанное на известном процессоре 6800, и отличаются набором периферийных функций. Это означает, что применение любого МК этого семейства позволяет пользователю использовать единый подход к проектированию системы на МК НС05, а также на МК НС08, который основан на более производительном, но программно совместимом ядре.
В состав периферийных устройств семейства входят: ПЗУ всех типов, ОЗУ, таймеры, АЦП, ШИМ, контроллеры ЖКИ и других индикаторов, последовательные интерфейсы и т.п.
Примером построения системы НС05 служит МК МС68НС805К3, предназначенный для работы в системах, требующих использование малогабаритного МК с микропотреблением и низкой стоимостью: охранных системах, датчиках, бытовых устройствах, портативных средствах связи, пультах дистанционного управления. Основные характеристики МК следующие:
· ЦПУ НС05, умножение 8х8,
· питание от 1,8 В (запись EEPROM от 3 В), низкое потребление,
· 920 + 16 Кбайт EEPROM,
· прерывания реального времени,
· прерывания от клавиатуры по 8 линиям,
· нагрузочная способность до 8 мА по четырем линиям,
· режимы пониженного потребления STOP, WAIT.
Структурная схема МК показана на рис.1.2.
Рис. 1.2. Структурная схема МК МС68НС805К3
Второй пример - МК типа МС68НС705Р6А, который может применяться в устройствах, требующих обработки аналогового сигнала и критичных к габаритам и стоимости применяемого МК, например, устройствах контроля температуры, электронных весах, локальных узлах управления, устройствах сигнализации, средствах связи и т.д.
Основные характеристики МК следующие:
· ЦПУ НС05, умножение 8х8,
· АЦП ( 4 канала, 8 разрядов),
· синхронный последовательный порт,
· 16-разрядный таймер с функциями входного захвата и выходной фиксации,
· 4,6 Кбайт ППЗУ,
· 176 байт ОЗУ,
· 21 линия ввода-вывода,
· прерывания от 8 линий,
· 2 выхода с током 15 мА,
· режимы пониженного потребления STOP, WAIT, сохранение данных в ОЗУ
Структурная схема МК показана на рис.1.3.
1.1.2. Семейство НС08
Семейство НС08 является следующим шагом в развитии МК и характеризуется повышенной в 5 - 10 раз производительностью процессорного ядра, совместимого по системе команд с ЦПУ НС05. Оно поддерживает дополнительные команды и способы адресации, а также новые функции - ПДП, технологию "нечеткой логики" и элементы цифровой обработки сигналов.
Ядро ЦПУ полностью статическое и оптимизировано для работы с пониженным напряжением питания и с помощью встроенного синтезатора частоты позволяет гибко управлять потреблением. Это первое семейство МК с определяемым пользователем архитектурой на базе стандартных модулей, что ускоряет цикл разработки системы.
Основные модули системы рассматриваются ниже.
Рис. 1.3. Структурная схема МК МС68НС705Р6А
Особенностями ЦПУ (логическая модель его показана на рис. 1.4) НС08 являются:
· тактовая частота 8 МГц (цикл 125 нс),
· 16-разрядные индексный регистр, программный счетчик, указатель стека,
Рис. 1.4. Структура ЦПЭ семейства НС08
· 8 методов адресации, включая операции с индексным регистром и стеком, а также пересылки память-память,
· аппаратная поддержка ПДП, точек останова,
· быстрые операции умножения и деления,
· 64 Кбайт адресуемой памяти с возможностью расширения,
· полностью статическая архитектура, низкое потребление, пониженное питание.
Модуль прямого доступа в память (DMA08) обеспечивает скоростной обмен с памятью и внешними устройствами. Он может обслуживать последовательный интерфейс, либо обеспечивать передачу блоков данных до 256 Кбайт.
Модуль таймера (TIM08) - устройство для решения задач, связанных с обработкой временных интервалов. Может иметь 2, 4 и 6 независимых каналов, каждый из которых содержит 16-битовый счетчик с программируемым предделителем, регистры входной фиксации, выходного сравнения и ШИМ.
Модуль последовательного обмена представлены универсальным асинхронным интерфейсом (SCI08), универсальным синхронным интерфейсом (SPI08),специализированными последовательными интерфейсами, применяемыми в автомобильных системах и системах промышленного управления.
Модуль системной интеграции (SIM08) - его основные функции:
· формирование внутренней тактовой частоты процессора и встроенных подсистем,
· обеспечение режимов пониженного энергопотребления и программное управление частотой,
· управление прерываниями и сбросом - сигнал сброса при обнаружении неправильных кодов команд и адресов, работа сторожевого таймера, обработка и арбитраж программных и аппаратных прерываний.
Встроенная память может состоять из масочного или программируемого ПЗУ, ЭСППЗУ (EEPROM и Flash EEPROM), ОЗУ.
Модуль управления ЖКИ дисплеем (LCD08) позволяет подключать до 1280 сегментов (32 группы по 40 сегментов) и содержит внутреннее буферное ОЗУ 160 байт, формирователь напряжений для драйверов, регулировка контрастности.
АЦП (ADC08),
12-разрядный 6 канальный контроллер ШИМ (PWM08),
таймер периодических прерываний (PIT08).
модуль расширения адресации внешней памяти до 16 Мбайт (ADX08).
Примером структуры МК семейства РС08 может служить МК МС68НС708XL36, который изображен на рис.1.5.
Его составляющие:
· высокопроизводительный модуль CPU08 с тактовой частотой 8 МГц,
· 36 Кбайт ППЗУ,
· 1К статического ОЗУ,
· 16-разрядный 4-канальный таймер,
· последовательные интерфейсы CI и SPI,
· 3-канальный контроллер ПДП,
· сторожевой таймер,
· систему обнаружения пониженного напряжения, неправильного кода и адресов,
· 40 двунаправленных линий ввода-вывода.
Рис.1.5. Структурная схема МК МС68НС708XL36
1.1.3. Семейство НС11
Семейство НС11 в отличие от МК "заказных" семейств, содержит около 40 универсальных МК, ориентированных как массовое производство, так и на мелкое и среднее производство.
Все МК содержат одинаковое 8-разрядное ЦПУ "второго поколения" (МС6809), которое отличается повышенной производительностью, эффективной системой команд и методами адресации. МК семейства НС11 содержат встроенную память различных типов и конфигураций. Периферийные устройства представлены подсистемами, наиболее часто требующимися во встроенных системах: таймеры, АЦП, ШИМ, ЦАП, последовательный интерфейс и встроенный сопроцессор.
ЦПУ семейства удобно для программирования. Его особенности (рис.1.6):
· 2 8-битных или 1 16-битный аккумулятор,
· 2 16-битных индексных регистра,
· 2 программно управляемых режима пониженного энергопотребления,
· операции умножения 8х8 и деления 16/16,
· внутренняя тактовая частота до 4 МГц.
Рис. 1.6. Структурная схема ЦПЭ семейства НС11
Система команд состоит из следующих групп:
· команды пересылки данных через аккумуляторы,
· команды пересылки для стека и индексных регистров,
· команды переходов и работы с подпрограммами,
· арифметические команды,
· команды работы с битами,
· специальные команды.
Встроенная память МК имеет в своем составе все типы памяти, которые доступны для НС05. Все МК адресуют внешнюю память, есть версии с немультиплексированными шинами данных и адреса, а также с расширенным до 256 К...1Мбайт адресным пространством.
МК функционируют в одном из трех режимов, которые задаются с помощью специальных входов при сбросе:
· однокристальный режим - программа находится во внутреннем ППЗУ, при этом порты доступны для ввода-вывода,
· расширенный режим - возможно подключение памяти программ или данных
· режим загрузки - управление после сброса передается в масочное ПЗУ, в котором находится программа загрузки кода с ПЭВМ по последовательному каналу в любую часть памяти (даже в ППЗУ и EEPROM).
МК этого семейства позволяют программно переназначать начало областей ОЗУ, ППЗУ и регистров в любую область с кратностью 4 К.
Примером МК семейства НС11 может служить МК MC68HC11F1, предназначенный Рис. 1.7. Структурная схема МК MC68HC11F1
для работы в средствах связи, промышленного упрапвления. У него нет встроенного ППЗУ.
Основные характеристики МК:
· немультиплексированная шина адреса-данных, частота 4 МГц,
· 4 программируемой выборки для внешней памяти или внешних устройств,
· 512 байт EEPROM, 1024 байт ОЗУ,
· 16-разрядный таймер: 3-4 канала входной фиксации, 4-5 выходных каналов со сравнением,
· АЦП 8-р 8 каналов,
· 2 последовательных интерфейсов: асинхронный и синхронный.
Другим примером применения МК, где требуется большой объем встроенной памяти, служит использование МК МС68НС711К4. Он имеет:
· немультиплексированная шина адреса-данных, частота 4 МГц,
· 768 байт ОЗУ, 640 байт EEPROM,
· 24 Кбайт ППЗУ,
· 16-разрядный таймер,
· 4-канальный 8-разрядный ШИМ,
· последовательные интерфейсы SCI+SPI,
· возможность адресации внешней памяти объемом до 1 Мбайт.
Рис. 1.8. Структурная схема МК МС68НС711К4
1.1.4. 16- и 32-разрядные микроконтроллеры MOTOROLA
Высокопроизводительные 16- и 32-разрядные микроконтроллеры семейств Motorola 68НС16, 68300 реализуются из набора стандартных функциональных модулей. Набор модулей содержит 16- или 32-разрядный процессор (CPU16 или CPU32), модули внутренней памяти, модуль системной интеграции (SIM или SCIM), модуль последовательного интерфейса (QSM), таймерный процессор (TPU) или таймерный модуль (GPT), аналого-цифровой преобразователь (ADC) и ряд других. Размещенные на кристалле модули соединяются стандартной межмодульной шиной. Микроконтроллеры семейства 68НС16 содержат 16-разрядный процессор CPU 16, который является дальнейшим развитием 8-разрядного процессора, используемого в семействе 68НС11. Микроконтроллеры семейства 68300 содержат процессоры CPU32, функционально аналогичные микропроцессорам MC68020.
Коммуникационные контроллеры, которые входят в состав семейства 68300, предназначены для использования в системах связи. Они содержат модуль коммуникационного RISC-процессора и имеют расширенный состав модулей обмена данными. В качестве процессорного ядра они используют различные модификации микропроцессоров семейства Motorola 68000.
1.1.5. Номенклатура и области применения микроконтроллеров семейства 68НС16
Архитектура семейства 68НС16 является дальнейшим развитием архитектуры 8-разрядных семейств 68НС05,08,11. Реализуемое в микроконтроллерах 68НС16 увеличение объема адресуемой памяти до 1 Мбайт, повышение тактовой частоты до 16 МГц, обработка 16- и 32-разрядных чисел, введение команд умножения-накопления (MAC) дробных чисел и ряд других характеристик позволяют значительно повысить производительность и расширить функциональные возможности систем, реализуемых на их основе. Поэтому микроконтроллеры данного семейства используются в тех случаях, когда необходимо существенно модернизировать схему управления каким-либо устройством, реализованную на базе семейств 68НС05,11, не меняя кардинально ее структуру и принципы функционирования. Эти микроконтроллеры широко применяются в качестве центральных блоков управления в системах, которые содержат несколько микроконтроллеров 68НС05,11, обслуживающих отдельные объекты.
Таблица 1.1
Модель |
ПЗУ бит |
ОЗУ бит |
ЭСППЗУ бит |
Таймер |
Входы-выходы |
Послед. порт |
АЦП |
Модуль интеграции |
MC68HC16Z1 |
|
1 К |
|
GPT |
46 |
QSM |
10р.,8вх |
SIM |
MC68HC16Z2 |
8К |
2К |
— |
GPT |
46 |
QSM |
10р.,8вх |
SIM |
MC68HC16Z3 |
8К |
4К |
— |
GPT |
46 |
QSM |
10р.,8вх |
SIM |
MC68HC16Y1 |
48К |
1К |
— |
TPU+GPT |
95 |
SPI+2SCI |
10р.,8вх |
SCIM |
MC68HC16S1 |
— |
2К |
— |
— |
23 |
— |
— |
— |
MC68HC16V1 |
— |
— |
— |
GPT |
62 |
QSPM+SCI |
— |
- |
MC68HC916Y1 |
|
4К |
48 К |
TPU+GPT |
95 |
SPI+2SCI |
10р.,8вх |
SCIM |
МС68НС916Х1 |
— |
2К |
50 |
GPT |
95 |
SPI+2SCI |
10р.,8вх |
SCIM |
Использование микроконтроллеров 68НС16 обеспечивает также значительное улучшение характеристик систем, выполняющих цифровую обработку поступающих сигналов, которая производится с помощью специальных регистров и команд MAC процессора CPU 16. Реализуемый в этих микроконтроллерах режим отладки BDM существенно упрощает процедуру отладки систем, построенных на их основе.
Микроконтроллеры семейства 68НС16 используются в системах управления автомобильным оборудованием, телекоммуникационной аппаратуре (сотовые телефоны, телефонные коммутаторы), бытовой электронике (видеокамерах, телевизорах, цифровых аудиосистемах), офисной технике (факсы, модемы, копировальная техника), медицинском оборудовании, робототехнике.
1.1.6. Номенклатура и области применения микроконтроллеров семейства 68300
В архитектуре микроконтроллеров 68300 использованы принципы, заложенные в микропроцессорном семействе 68000. Применение 32-разрядного процессора CPU32, имеющего широкий набор команд и способов адресации, расширение адресуемой памяти до 16 Мбайт и ряд других особенностей делают микроконтроллеры семейства 68300 эффективным средством для реализации сложнофункциональных и высокопроизводительных систем, которые могут использовать огромный объем программного обеспечения, разработанного для микропроцессоров семейства 68000, включая ассемблеры, компиляторы, отладчики, операционные системы, а также многочисленные прикладные программы. Все это делает семейство 68300 перспективной элементной базой для реализации новых поколений систем управления.
Микроконтроллеры семейства 68300 имеют напряжение питания 5 В, максимальную тактовую частоту 20 МГц и потребляемую мощность в рабочем режиме не более 600 мВт, которая снижается в режиме останова до 500 мкВт. Предусмотрено подключение к памяти пониженного резервного питания, что позволяет сохранить ее содержимое в режиме хранения. Все модели микроконтроллеров содержат сторожевое устройство (WDT-watchdog timer), таймер для реализации периодических прерываний (PIT), а также реализуют режим отладки BDM.
Микроконтроллер МС68331 является наиболее простой моделью семейства 68300. Он не имеет внутренней памяти и модуля АЦП, использует более простой таймерный модуль GPT. Основное применение находит в системах регулирования и контрольно-измерительной аппаратуре. Микроконтроллер МС68332 послужил базовой моделью, на основе которой реализован ряд последующих моделей. Получил широкое распространение в робототехнике, автомобильной электронике, устройствах управления электродвигателями, системах промышленной автоматики.
Таблица 1.2
Модель |
ОЗУ Кбайт |
ЭСППЗУ Кбайт |
Таймер |
ОЗУ таймера |
Входы-выходы |
Послед. порт |
АЦП |
Модуль интеграции |
МС68331 |
— |
— |
GPT |
— |
43 |
QSM |
— |
SIM |
МС68332 |
2 |
— |
TPU |
— |
47 |
QSM |
— |
SIM |
МС68333 |
0,5 |
64 |
три |
3,5 К |
96 |
QSM |
10р.,8вх |
SCIM |
МС68334 |
— |
— |
TPU |
1К |
47 |
- |
10р.,8вх |
SCIM |
МС68335 |
8 |
— |
TPU |
2К |
47 |
QSM |
— |
SIM |
МС68336 |
4 |
— |
TPU+CTM |
3,5 К |
96 |
QSM |
10р.,8вх |
SIM |
МС68376 |
4 |
— |
TPU+CTM |
3,5 К |
96 |
QSM+CAN |
10р.,8вх |
SIM |
Микроконтроллер МС68333 является функциональным расширением модели МС68332, в которую введены электрически стираемое ППЗУ (Flash) емкостью 64 Кбайт, 10-разрядный АЦП с 8 аналоговыми входами, ОЗУ таймерного процессора емкостью 3,5 Кбайт. Разработанный первоначально для систем управления автомобильными двигателями, этот микроконтроллер в настоящее время находит также широкое применение в промышленной автоматике и связной аппаратуре. Микроконтроллер МС68334 является упрощенным вариантом МС68333, в котором исключены ЭСППЗУ, ОЗУ и модуль последовательного обмена QSM. Благодаря этому значительно снижена его стоимость, что весьма существенно для многих применений. Используется, главным образом, во встраиваемых системах управления.
Микроконтроллеры МС68336, 376 обладают наиболее широкими функциональными возможностями. Кроме TPU они содержат модуль конфигурируемого таймера СТМ, имеющего четыре канала, которые программируются на выполнение различных функций. Для аналого-цифрового преобразования используется модуль QADC, который отличается от ADC введением буфера (очереди) данных. В модели МС68376 дополнительно введен модуль сетевого контроллера, реализующего промышленный протокол CAN. Эти микроконтроллеры служат для решения задач высокоточного регулирования и сложнофункционального управления.
В состав семейства 68300 входят также ряд моделей, которые содержат типовые модули, используемые в микропроцессорных системах, или специализированные модули для специфических областей применения. Такие модели называются интегрированными микропроцессорами (МС68306, 307, 328, 330, 340, 341, 349) и специализированными контроллерами (МС68322 - контроллер формирования изображений, МС68302, 356, 360 - коммуникационные контроллеры).
Интегрированные микропроцессоры используют в качестве процессорного ядра различные варианты CPU32. Модуль CPU030 содержит процессор CPU32+, обеспечивающий работу с 32-разрядными адресами и данными, и два модуля памяти: ОЗУ данных и конфигурируемый кэш команд. ОЗУ данных состоит из четырех блоков емкостью по 1 Кбайту, размещаемых в любом месте адресного пространства. Конфигурируемый кэш команд состоит из четырех блоков, каждый из которых может работать как кэш-память емкостью 256 байт или ОЗУ емкостью 512 байт. Таким образом, можно реализовать кэш команд емкостью до 1 Кбайта или ОЗУ емкостью до 2 Кбайт. Процессор 68ЕСООО представляет собой процессорное ядро микропроцессора МС68ЕСООО, который функционально аналогичен MC68000.
Таблица 1.3
Модель |
Процессор |
ОЗУ бит |
Таймеры |
Послед. порт |
Модуль интеграции |
Дополнительные модули |
МС68306 |
68ЕС000 |
- |
|
DUART |
SIM |
Контроллер ДОЗУ |
МС68307 |
68ЕС00 |
- |
2ТС |
DUART |
MSB |
Контроллер шины M-bus (I2C) |
МС68322 |
68ЕС000 |
|
|
|
SIM |
Видеоконтроллер, графический процессор контроллер ПДП-2кан., контроллер ДОЗУ |
МС68328 |
68ЕС00 |
- |
2ТС |
UART |
SIM40 |
Контроллер ЖКИ, ТРВ |
МС68330 |
CPU32 |
- |
- |
- |
SIM40 |
Контроллер PCMCIA |
МС68340 |
CPU32 |
- |
2ТС |
DUART |
SIM40 |
Контроллер ПДП-2кан. |
МС68341 |
CPU32 ^ |
- |
2ТС |
DUART, SPI DUART |
SIM41 |
Контроллер ПДП-2кан., ТРВ |
МС68349 |
CPU030 |
4К+2К |
2ТС |
|
SIM49 |
Контроллер ПДП-2кан., ТРВ |
Большинство интегрированных микропроцессоров содержит два 16-разрядных таймера-счетчика, которые могут переключаться как тактовыми импульсами, так и внешними сигналами. Для последовательного обмена чаще всего применяются сдвоенные (DUART) или одиночные (UART) асинхронные приемо-передатчики (аналогичны микросхеме МС68681). В состав ряда моделей входят синхронные последовательные порты SPI или специальные синхронные порты SSI. В качестве модуля системной интеграции используются различные модификации SIM. Модуль интеграции MSB в модели МС68307 обеспечивает интерфейс с шинами семейств 68000, 8051 и M-bus, реализующей промышленный протокол обмена I2C.
Для интегрированных микропроцессоров и специализированных контроллеров характерно широкое использование таких дополнительных модулей, как контроллеры динамических ОЗУ, обеспечивающие периодическую регенерацию хранящейся в них информации, контроллеры прямого доступа к памяти (ПДП), обслуживающие обычно 2 канала обмена. Некоторые контроллеры содержат дополнительные RISC-процессоры, ориентированные на выполнение определенных функций. В модели МС68322 это графический процессор RGP, работающий совместно с контроллером принтера PVC. В моделях МС68302, 356, 360 это коммуникационные процессоры СР или СРМ, обеспечивающие управление сетями передачи информации с разными протоколами обмена. Контроллер МС68356 содержит в качестве дополнительного модуля 24-разрядный цифровой процессор сигналов (DSP) с памятью емкостью 10Кх24 бит, который аналогичен DSP5602, выпускаемому компанией МОТОРОЛА в качестве отдельного изделия. Модели МС68330, 356 имеют также контроллер интерфейса с широко используемой шиной PCMCIA. Модель 68328 содержит контроллер широкоформатного жидкокристаллического дисплея высокого разрешения.
Данные микропроцессоры функционируют с максимальной тактовой частотой 16,20 или 25 МГц (для различных модификаций). Модели МС68307, 328, 330, 340, 341, 349 имеют модификации, работающие при пониженном напряжении питания 3,3 В, которые используются в портативной аппаратуре.
Основной областью применения интегрированных микропроцессоров МС68306, 307, 322, 328 являются вычислительные и управляющие устройства, встраиваемые в различную аппаратуру. Там же находят применение и микропроцессоры МС68330, которые имеют более мощный процессор, но содержат ограниченный набор дополнительных блоков. Данная модель отличается более низкой стоимостью. Модель МС68340 имеет достаточно широкий набор дополнительных модулей и используется в устройствах, требующих быстрой передачи и обработки больших массивов данных, например, в контроллерах дисковых накопителей. Модель МС68341 разработана для управления накопителями на компакт-дисках (CD-ROM). Модель МС68349, имеющая наиболее широкие функциональные возможности, предназначена для реализации компактных и высокопроизводительных систем управления и обработки данных, встраиваемых в связную, контрольно-измерительную, медицинскую и другую аппаратуру. Контроллер МС68322 используется, главным образом, в лазерных принтерах и других высокопроизводительных печатающих устройствах. Контроллер МС68328 ориентирован на применение в сложнофункциональной портативной аппаратуре с широкоформатными жидкокристаллическими дисплеями.
Коммуникационные контроллеры МС68302, 356, 360 предназначены для использования в системах обмена информацией. Специфические особенности их функционирования и применения связаны с наличием коммуникационного процессора СРМ, обеспечивающего возможность подключения к линиям связи с различными протоколами обмена. В состав СРМ входят RISC-контроллер, двухпортовое ОЗУ и большой набор периферийных устройств, который включает:
- четыре связных последовательных контроллера SCC1 - SCC4;
- два управляющих последовательных контроллера SMC 1, SMC2;
- периферийный последовательный интерфейс SPI;
- блок последовательного обмена с временным разделением данных;
- параллельный порт, реализующий стандартный протокол обмена типа CENTRONICS;
- три параллельных порта, обеспечивающих различные протоколы квитированного и неквитированного обмена;
- четыре 16-разрядных таймера (могут конфигурироваться как два 32-разрядных);
- двухканальный блок независимого прямого доступа к памяти.
Кроме того можно дополнительно реализовать шестнадцать 16-разрядных таймеров и четырнадцать каналов
последовательного прямого доступа к памяти.
Модули СРМ в моделях МС68360 и MC68EN360, МС68МН360 имеют одинаковые структуры и режимы функционирования. Различие между ними состоит только в наборе протоколов обмена, реализуемых интерфейсами SCC. В MC68EN360 интерфейсы SCC могут обеспечивать протокол обмена по локальной сети Ethernet. В МС68МН360 реализуется протокол HDLC с многоканальным обменом, а для SCC1 также протокол сети Ethernet
Наиболее сложные протоколы последовательной пересылки реализуют связные контроллеры SCC 1-4, каждый из которых программируется путем загрузки соответствующего содержимого в регистр режима. В зависимости от этого SCC обеспечивает один из следующих протоколов обмена: HDLC/SDLC, UART, AppleTalk, BYSINC или транспарентный обмен.
Таблица 1.4
Тип контроллера |
68360 |
68EN360 |
68МН360 |
CPU SIM |
CPU32+ SIM60 |
CPU32+ SIM60 |
CPU32+ SIM60 |
SCC SMC SPI |
4 2 1 |
4 2 1 |
4 2 1 |
Каналы ПДП |
2+14 |
2+14 |
2+14 |
Таймеры |
4+16,PIT,WDT |
4+16,PIT,WDT |
4+16,PIT,WDT |
Ethernet |
— |
4 |
1 |
Отладка |
JTAG, BDM |
JTAG, BDM |
JTAG, BDM |
Дополнительные возможности |
CENTRONICS, КДП*) |
CENTRONICS, КДП*) |
32*HDLC, КДП*) |
1.2. Производители микроконтроллеров семейства MCS51
Существенным фактором н выборе вычислительного ядра были и остаются цена, доступность и время поставки.
Фирма Intel являемся законодателем и основоположником архитектуры семейства MCS51. Фирма выпускает более 50 различных вариантов микроконтроллеров. Из них 11 в виде специализированных устройств. Предлагается изготовление кристаллов на заказ. В настоящий момент она сворачивает выпуск изделии семейства MCS51 и предлагает использовать процессоры нового семейства с улучшенными скоростными характеристиками и чертами 16-разрядных процессоров
Фирма Dallas Semiconductor выпускает микроконтроллеры с улучшенной архитектурой. Можно выделить два основных направления. Bo-первых, изменены принципы размещения программ внутри кристалла и создан контроллер, способный и самостоятельно модифицировать часть своих программ. Во-вторых, фирма утроила быстродействие за счет изменения временных характеристик с одновременным введением средств сбережения энергии. Приборы этой фирмы предназначены для применения в скоростных, переносных, экономичных и труднодоступных для обслуживания устройствах.
Фирма Siemens Components Inc выпускает удобные для использования в бытовой, в том числе и видео технике, микроконтроллеры. Микросхемы содержат разнообразные встроенные устройства (АЦП, массивы счетчиков, дополнительный блок умножения и деления, расширение портов ввода-вывода).
Фирма Philips Semiconductors разрабатывает микроконтроллеры семейства 8051 на базе американской компании Signetics. Процессоры этой фирмы ориентированы на работу в бытовой или автомобильной технике. Благодаря аппаратной реализации шин I2С и CAN, легко могут быть использованы в инструментальных комплексах. Микросхемы содержат разнообразные встроенные устройства (АЦП, массивы счетчиков, расширение портов ввода-вывода), Имеются варианты с пониженным питающим напряжением и в компактных корпусах.
Фирма OKI Semiconductor выпускает полностью статические микросхемы по технологии CMOS, являющиеся функциональными аналогам микросхем фирмы Intel с дополнительными возможностями. Имеют улучшенные характеристики по цепям питания. Впервые применила корпус PIGGYBACK, в котором внутренняя шина вынесена наружу в виде разъема для установки ПЗУ
Фирма Matra MHS выпускает статические микросхемы, являющиеся аналогами стандартных моделей семейства MCS51 с улучшенными выходными цепями портов ввода-вывода.
Фирма Advanced Micro Devices (AMD) выпускает микросхемы по технологиям CMOS и NMOS, являющиеся функциональными аналогами микросхем фирмы Intel с дополнительными возможностями.
Фирма Fujitsu. Фирма выпускает функциональные аналоги микросхем 80С31, 8051 87С51 фирмы Intel по технологии NMOS.
Объединение Atmel выпускает стандартные микроконтроллеры с ПЗУ по технологии Flash и объемом до 20 Кбайт в обычных и уменьшенных корпусах. В последнее время фирма начала выпуск принципиально новых МК, основанных на RISC архитектуре.
Таким образом, на рынке МК семейства MCS51 можно выделить 3 направления: "традиционное" - но с улучшенными характеристиками памяти и внешних устройств, "быстродействующее" - обеспечивающее увеличение скорости выполнения операций, и "специальное" - с коренным изменением процесса обработки информации. Первое направление поддерживается МК фирм Atmel, Philips и другими. Второе - МК фирмы Dallas Semiconductor, а третье - новыми МК фирм Atmel и Dallas Semiconductor. Рассмотрим более подробно некоторые семейства МК этих трех направлений.
1.3. 8-разрядные КМОП FLASH микроконтроллеры семейства АТ89.
1.3.1. Отличительные особенности
• 8-разрядное ЦПУ, оптимизированное для функций управления
• расширенные возможности побитовой обработки
• встроенная flash память программ
• встроенное ОЗУ данных
• пвунаправленные индивидуально адресуемые линии ввода/вывода
• встроенные 16-разрядные таймеры/счетчики событий
• полный дуплексный UART
• несколько источников прерываний с несколькими уровнями приоритета
• встроенный тактовый генератор
• встроенное ЭСППЗУ (серия AT89S)
• интерфейс последовательной шины SPI (серия AT89S)
• сторожевой таймер (серия AT89S)
• пассивный (idle) и стоповый (power doun) режимы
• возможность расширения внешнего ОЗУ и ПЗУ до 64 Кбайт
• режим внутрисхемной эмуляции (ONCE™ - on circuit emulation)
КМОП микроконтроллеры семейства АТ89 оснащены Flash программируемым и стираемым ПЗУ, совместимы по системе команд и по выводам со стандартными приборами семейства MCS-51™ Микроконтроллеры содержат Flash ПЗУ емкостью от 1 Кбайта до 8 Кбайт, ОЗУ,емкостью от 64 байтов до 256 байт, большое количество программируемых линий ввода/вывода, 16-разрядные таймеры/счетчики событий, полнодуплексный последовательный порт (UART), набор векторных прерываний с несколькими уровнями приоритета, встроенные генератор и схему формирования тактовой последовательности. Программирование микроконтроллеров семейства АТ89 возможно, в зависимости от типа, внутрисистемно, с использованием при программировании напряжения питания системы, и с использованием программаторов. Содержимое Flash памяти программ может быть защищено от несанкционированной записи/считывания. У ряда микроконтроллеров имеется возможность очистки Fiash памяти за одну операцию, возможность считывания встроенного кода идентификации.
В активном режиме микроконтроллеры на частоте 12 МГц потребляют порядка 25 мА и в пассивном режиме, при котором остановлено ЦПУ, но система прерываний, ОЗУ, таймеры/счетчики событий и последовательный порт остаются активными, потребление снижается до 15% от потребления в активном режиме. В стоповом режиме потребление не превышает 100 мкА. Микроконтроллеры семейства АТ89 ориентированы на использование в качестве встроенных управляющих контроллеров в промышленном (-40 °С...+85°С) и коммерческом (0°C...70°C) диапазонах температур. Имеются исполнения микроконтроллеров АТ89С51 и АТ89С52, соответствующие требованиям, предъявляемым к приборам используемым в автомобильном (-40°С ...125°С), Military и Military-883C (-55 °C...+125°C) диапазонах температур.
Таблица 1.5
Основные характеристики микроконтроллеров семейства АТ89
Наименование прибора |
Совместимость |
Напряж. VCC, В |
Объем ПЗУ ЭСППЗУ, байт |
Объем ОЗУ, байт |
Группы по тактовой частоте, МГц |
Потребление макс. в активн. (пасс.) режиме, f=12 МГц, VCC=6B, мА |
АТ89С1051 |
80С31 |
2,7...6 |
1 К |
64 |
12,24 |
15(5) |
АТ89С2051 |
80С31 |
2.7...6 |
2 К |
128 |
12,24 |
15 (5) |
АТ89С51 |
80С31 |
5±20% (5±10%) |
4К |
128 |
12,16, 20/24 |
20(5) |
AT89LV51 |
80С31 |
2,7...6 |
4К |
128 |
12 |
20(5) |
АТ89С52 |
80С32 |
5±20% (5±10%) |
8К |
256 |
12,16, 20,24 |
25 16/51 |
AT89LV52 |
80С32 |
2,7...6 |
8К |
256 |
12 |
25 (6,5} |
AT89S8252 |
80С32 |
2,7±10% |
8 К |
256 |
12(2,7 В), 24(5 В) |
|
1.4. Высокопроизводительные 8-разрадные RISC контроллеры семейства AT90S
1.4.1. Вычислительные особенности
· Производительность, приближающаяся к 1 MIPS/МГц
· Усовершенствованная AVR RISC архитектура
· Раздельные шины памяти команд и данных, 32 регистра общего назначения
· Flash ПЗУ программ с возможностью внутрисистемного перепрограммирования и загрузки через SPI последовательный канал, 1000 циклов стирание/запись
· ЭСППЗУ данных/ с возможностью внутрисистемной загрузки через SPI
· Последовательный канал/ 100000 циклов стирание/запись
· Блокировка режима программирования
· Встроенные аналоговый компаратор/ сторожевой таймер, порты SPI и UART/ таймеры/
· Полностью статические приборы - работают при тактовой частоте от 0 Гц до 20 МГц
· Диапазон напряжений питания от 2,7 В до 6,0 В
· Режимы энергосбережения: пассивный (idle) и стоповый (power down)
КМОП микроконтроллеры семейства AT90S выполнены по AVR™ RISC архитектуре с раздельной памятью программ и данных и раздельными шинами для памяти программ и данных (Гарвардская архитектура). AVR ядро объединяет мощную систему команд с 32 регистрами общего назначения и конвейером (в одном цикле одна команда выполняется а другая выбирается) выборки из памяти программ. Все 32 регистра напрямую связаны с АЛУ, что позволяет выполнять обращение к двум независимым регистрам и возвращать результат одной командой, выполняемой в одном цикле. Шесть регистров могут использоваться как три 16-разрядных указателя адреса данных (кроме прибора AT90S1200). Выполняя команды за один тактовый цикл, прибор обеспечивает производительность, приближающуюся к 1 MIPS на МГц, что на порядок больше, чем у CISC микроконтроллеров. Архитектура эффективно поддерживает как языки высокого уровня, так и программы, написанные на экстремально плотных языках ассемблера.
Микроконтроллеры семейства оснащены встроенной загружаемой Flash памятью EEPROM, обеспечивающей внутрисистемное перепрограммирование с использованием интерфейса SPI или программирование внешними стандартными программаторами энергонезависимой памяти. Поскольку все команды 16-разрядного или 32-разрядного формата, то Flash память программ имеет 16-разрядную организацию. В качестве памяти данных в микроконтроллерах семейства используется комбинация СОЗУ и ЭСППЗУ (у прибора AT90S1200 только ЭСППЗУ) в которых размещается также и пространство памяти ввода/вывода. Стек, предназначенный для хранения адресов возврата из подпрограмм и прерываний располагается в памяти данных (у прибора AT90S1200 стек выполнен аппаратно). Ряд AVR микроконтроллеров имеют встроенный в арифметическую часть АЛУ перемножитель.
Таблица 1.6
Основные характеристики микроконтроллеров семейства AT90S.
Тип прибора |
Объем памяти (организация), бит |
Объем (СОЗУ) памяти данных, байт |
Тактовая частота, МГц. |
Таймеры/счктчики, кол-во х разрядность |
Другие отличия |
Потребл. в активном/пассивном Vсс=ЗВ, f=4 МГц, мА |
AT90S1200 |
1 К (512x16) |
64x8 |
0...12 |
1x8 |
15 линий I/O, аппаратный стек |
2/0,5 |
A9OS2313 |
2 К (1Кх16) |
128х8 |
0...10 |
1х8, 1х16 |
15 линий I/O, ШИМ, UART |
2,5/0,8 |
AT90S2323 |
2 К (lKx16) |
128х8 (128х8) |
0...10 |
1х8 |
3 линии I/O, |
3/1,2 |
АТ90S2343 |
2 К (lKx16) |
128х8 (128х8) |
0...10 |
1х8 |
5 линий I/O, |
3/1,2 |
A90S4414 |
4К (2Кх16) |
256х8 (256х8) |
0...8 |
1х8, 1х16 |
32 линии I/O, ШИМ, UART |
3,5/1 |
AT90S4434 |
4К (2Кх16) |
256х8 (256х8) |
0...8 |
2х8, 1х16 |
32 линии I/O, ШИМ, UART 8xl0 АЦП, аналог. компаратор |
3/1,2 |
AT90S8535 |
8K (4Кх16) |
512х8 (512x8) |
0...8 |
2х8, 1х16 |
32 линии I/O, ШИМ, UART 8xl0 АЦП, аналог. компаратор |
3/1,2 |
АТ9058515 |
8K (4Кх16) |
256х8 (256х8) |
0...8 |
1х8,1х16 |
32 линии I/O, ШИМ, UART |
3,5/1.2 |
ATmega103 |
128 К (64Кк16) |
4Кх8 (4Kx8) |
0...6 |
3х16 |
40 линий I/O, 3 ШИМ, UARТ, 8xl0 АЦП, аналог. компаратор |
3/1,2 |
AТmega603 |
64 К (32Kx16) |
2Кх8 (4Кх8) |
0...6 |
3х16 |
40 линий I/O, 3 ШИМ, UARТ, 8xl0 АЦП, аналог. компаратор |
3.0/1,2 |
Микроконтроллеры семейства AT90S поставляются в очищенном состоянии - содержимое и Flash памяти программ и ЭСППЗУ данных находится в состоянии FF и готово к программированию.
Объединение на одном кристалле усовершенствованного 8-разрядного RISC ЦПУ с загружаемым Flash ПЗУ позволило фирме создать мощные микроконтроллеры, обеспечивающие высокую гибкость и экономичность в использовании приборов в качестве встраиваемых контроллеров.
1.5. Программируемые контроллеры фирмы Dallas Semiconductor
1.5.1. Микроконтроллеры с динамической организацией (Soft Мicго)
Номенклатура микроконтроллеров с динамической организацией состоит из базовых микропроцессоров, объединенных с БИС памяти, с определенными принципами организации памяти. Дополнительно часто используются устройства, имеющие небольшие размеры и которые могут быть использованы как прямые функциональные части стандартных микроконтроллеров MCS51. Перечень изделий этого семейства, быстродействие и объем памяти указаны в табл. 1.7.
Все базовые микропроцессоры не имеют собственной встроенной памяти и при их использовании необходимо (на дополнительную шину и без привлечения портов ввода-вывода) установить нужный кристалл малопотребляющей памяти, а к специальному выводу присоединить литиевую батарею на 3 вольта. При правильном выборе типа памяти энергии литиевой батареи хватает для хранения информации не менее 12 лет. Эта энергия расходуется только при отключенном питании 5 вольт, когда процессор находится в нерабочем состоянии. Все базовые кристаллы размещены в корпусах QFP80 с выводами по поверхностный монтаж и расстоянием 08 мм между выводами.
Изделия выполнены в корпусах DIP40 или SIP STICK и представляют микромодули с установленными базовым контроллером, памятью, таймером реального времени и литиевой батарейкой. Работа таймера и сохранение содержимого памяти при отсутствии "питающего" напряжения обеспечивается энергией литиевой батарейки, Выводы изделий в DIP40 совпадают с выводами микроконтроллеров MCS51 и аналогичных корпусах, что позволяет осуществлять их замену. Печатные платы SIP STICK предназначены для установки в разъемы SIMM40 или SIMM 72 (выпускаются только этой фирмой). Использование SIP STICK позволяет экономить площадь монтажной платы, за счет вертикального расположения модулей. При одинаковых характеристиках, самым дешевым является создание собственных изделий с использованием базовых кристаллов, самым дорогим применение модулей в DIP40. Модули SIP STICK занимают промежуточное положение.
Таблица 1.7
Название |
Тактовая частота |
Объем памяти |
: Особенности |
|
Базовые микропроцессоры |
||||
DS5000FP |
до 8, 12 или 16 МГц |
до 64 Кбайт |
Кодировка памяти |
|
DS5001FP |
до 12 или 16 МГц |
до 128 Кбайт |
|
|
DS5002FP |
до 12 или 16 МГц |
до 128 Кбайт |
Кодировка памяти |
|
Изделия на базе DS5000FP |
||||
DS5000 |
до 8, 12 или 16 МГц |
8, 32 Кбайт |
Модуль DIP40 |
|
DS5000T |
до 8, 12 или 16 МГц |
8, 32 Кбайт |
Таймер реального времени |
|
DS2250 |
до 8, 12 или 16 МГц |
8, 32, 64 Кбайт |
Модуль SIP (SIMM 40) |
|
DS2250T |
до 8, 12 или 16 МГц |
8, 32, 64 Кбайт |
Таймер реального времени |
|
Изделия на базе DS5001FP |
||||
DS2251 |
до 12 или 16 МГц |
32, 64, 128 Кб |
Модуль SIP (SIMM 72) |
|
DS2251Т |
до 12 или 16 МГц |
32, 64, 128 Кб |
Таймер реального времени |
|
Изделия на базе DS5002FP |
||||
DS2252 |
до 12 или 16 МГц |
32, 64, 128 Кб |
Модуль SIP (SIMM 40) |
|
DS2252Т |
до 12 или 16 МГц |
32, 64, 128 Кб |
Таймер реального времени |
|
Особенности структуры МК:
Watchdog Timer
Неприятность может случиться при работе любого процессорного устройства, если в порядок выполнения программы вмешался случайный отказ ("сбой"). При этом программа попадает в ошибочный или запланированный бесконечный цикл. Выйти из этой ситуации поможет специальный дежурный таймер (Watchdog Timer). При переполнении этого таймера происходит внутренняя инициализация процессора, а специальные флаги укажут, по какой причине произошла инициализация.
Генератор случайных чисел.
Процессор DS5002 содержит генератор случайных чисел, который выдает последовательность 8-битных случайных чисел через каждые 160 микросекунд. Он может оказаться полезным в большинстве многоточечных коммуникационных систем с целью обработки столкновений.
Начальная проверка программы
В микроконтроллерах всегда существует неизменная (резидентная) часть программы, которую неплохо было бы проверить в начале работы. Проверять при помощи той же программы - это не проверить ничего, поэтому, начиная с DS5001, введен механизм автоматического вычисления CRC (циклического кода) участка памяти и сравнение его с ранее вычисленным значением. При несовпадении, управление передается встроенной программе загрузчика.
Межпроцессорный обмен.
Очень важным аспектом при составлении многопроцессорных систем является наличие межпроцессорного обмена. Обычно для MCS51 для этого используется последовательный канал. В процессорах DS5001 и DS5002 существуют дополнительно программируемый контроллер байтового обмена. Для его использования внешний процессор присоединяется к выводам портов 0 и 2. Для обеих процессоров (внешнего и внутреннего) появляется независимая возможность обращения к двум регистрам обмена. Протокол обмена совпадают с протоколом микросхемы i8042 фирмы Intel. Возможно также подсоединение устройств прямого доступа (DMA). Интерфейс отключаемый, и эти порты можно использовать обычным для MCS51 способом. При желании можно организовать порт обмена по шине IBM PC с другим аналогичным процессором или с устройствами цифровой обработки сигналов (ЦОС). Например, в микросхемах ЦОС AD21xx требуется начальная загрузка по 8-битному каналу. Поскольку обмен идет с квитированием, то для этой цели удобно воспользоваться имеющейся в DS5000 возможностью, получив, таким образом, изящный обрабатывающий комплекс.
1.5.2. Обеспечение высокой производительности в скоростных микроконтроллерах.
Одной из важных характеристик любой вычислительной системы является быстродействие. Для микроконтроллеров эта характеристика напрямую связана с тактовой частотой, длительностью цикла обращения к памяти, числа циклов в одной команде и набора команд.
В течение 13 лет существования семейства MCS51 увеличения быстродействия добывались простым увеличением максимальной тактовой частоты. Лишь в 1993 году фирма DSC сократила число тактов в цикле и количество циклов в команде. Рассмотрим особенности и разницу временных характеристик стандартных микроконтроллеров фирмы Intel и быстродействующего микроконтроллера DS80C320 фирмы DSC.
Цикл стандартного микроконтроллера длится 12 тактов, и в течении цикла происходит два считывания программной памяти. Цикл DS80C320 длится 4 такта, но за это время происходит только одно считывание. Таким образом, DS80C320 считывает программную память в полтора раза быстрее стандартного процессора. Временные характеристики изображены на рис. 1.9.
Рис.1.9. Временные диаграммы I8051 и DS80C320
Номенклатура микроконтроллеров с высоким быстродействием. Это семейство содержит устройства, по внешнему виду и номенклатуре выводов совпадающие с устройствами MCS51, выполненных в тех же корпусах. Выпускаются они фирмой DSC в корпусах DIP40, PLCC44, TQFP44 и PLCC52 и обладают одинаковым увеличением быстродействия за счет уменьшения длительности цикла и лучшей организации внутреннего конвейера. В среднем, вычислительная эффективность процессоров увеличивается в 2,5 раза по сравнению со стандартной, а скорость счета внутренних счетчиков в 3 раза.
Перечень изделий этого семейства, быстродействие и объем внутрикристальной памяти даны в табл. 1.8.
Таблица 1.8
Таблица 2. Изделия семейства High Speed Micro. |
||||
Название |
Тактовая частота |
Объем памяти |
Особенности |
|
DS80C310 |
до 25 или 33 Мгц |
256 байт |
Упрощенный вариант |
|
DS80C320 |
до 25 или 33 Мгц |
256 байт |
|
|
DS80C323 |
до 20 Мгц |
256 байт |
Питание 3 В |
|
DS87C520 |
до 33 Мгц |
256 + 16К ПЗУ + 1К ОЗУ |
Имеется вариант корпуса с кварцевым окном |
|
DS87C530 |
до 33 Мгц |
256 + 16К ПЗУ + 1К ОЗУ |
Таймер реального времени, энергонезависимая память |
|
Команды MCS51 состоят из одного, двух или трех байт. При выполнении команды процессор сначала считывает байты этой команды, а потом может несколько раз считать первый байт следующей. Во всех командах DS80C320 уменьшено число таких бесполезных считываний. Таким образом, микропроцессор DS80C320 быстрее стандартного 18051 в среднем в 2.5 раза. В табл. 1.10 приведены эквивалентные частоты этих двух процессоров. Максимальная тактовая частота DS80C320 и других процессоров этого семейства - 33 Мгц. Минимальная частота ничем не ограничена, поскольку все микропроцессоры DSC являются полностью статическими.
Таблица 1.10.
Сравнение тактовых частот для процессоров одинаковой производительности
СТАНДАРТНЫЙ 8051 |
DS80C320 |
11,0592 Мгц 16 Мгц 20 Мгц 24 Мгц 33 Мгц 44 Мгц 62.5 Мгц 82.5 МГц, |
4.4 Мгц 6.4 Мгц 8 Мгц 9.6 Мгц 13.2 Мгц 16 Мгц 25 Мгц 33 Мгц |
1.5.3. Организация памяти скоростных контроллеров.
Микроконтроллеры MCS51 имеют гарвардскую архитектуру, которая подразумевает целевое разделение памяти. Адресуемая косвенно и непосредственно внутренняя регистровая память (Scratchpad Меmory) имеет максимально возможный объем 256 байт и для скоростного семейства ничем не отличается от стандартной. В микросхемах DS87C5xx имеется также внутренняя программная память и внутренняя память данных (обращение по инструкциям MOVX).
Внутренняя программная память объемом 16 Кбайт выполнена по технологии перепрограммируемого ПЗУ (EPROM). В зависимости от используемого корпуса, она может быть программируемой однократно или стираемая ультрафиолетовыми лучами. Для предотвращения несанкционированного доступа при программировании разрешено три уровня защиты. Объем внутренней памяти может быть ограничен программно, несмотря на то, что физический ее объем остается прежним. Разрешены следующие устанавливаемые в любое время границы: 0, 1, 2, 4, 8, 16, 32 и 64 Кбайта. При обращении к программной памяти ниже установленной границы происходит считывание внутренней памяти (даже за пределами 16 Кбайт), в противном случае происходит считывание внешней памяти с использованием портов 0 и 2.
Внутренняя память данных имеет объем 1 Кбайт, расположена с нулевого адреса и может быть отключена или включена на все адресное пространство. В последнем случае реально считывается и записывается только первые 1 Кбайт памяти и один системный байт, несущий информацию о используемой защите программирования
Обращение к внешней памяти данных по умолчанию происходит за один цикл (два цикла на команду MOVX). При частоте 33 Мгц требуется микросхемы памяти с временем доступа менее 80 нс. Имеется механизм, позволяющий увеличить длительность сигналов RD и WR в интервале с 4 до 28 машинных циклов. Это обеспечивает обращение по команде MOVX к медленной памяти и различным по скорости устройствам ввода/вывода. Длительность задается программно в любой момент времени.
1.5.4. Возможности скоростных контроллеров.
Перечень и возможности этих моделей даны в табл. 1.11.
Таблица 1.11.
Возможности скоростных контроллеров фирмы Dallas
Тип контроллера |
DS80C310 |
DS80C320 |
DS80C323 |
DS83C520 |
DS87C520 |
DS67C530 |
|||||||
Внутреннее ПЗУ |
- |
- |
- |
16 Кбайт Маска |
16Кбайт EPROM |
16Кбайт EPROM |
|||||||
Регистровое ОЗУ |
256 байт |
256 байт |
256 байт |
256 байт |
256 байт |
256 байт |
|||||||
Внутренне ОЗУ (MOVX) |
|
|
|
1 Кбайт |
1 Кбайт |
1 Кбайт |
|||||||
Последовательный канал |
1 |
2 |
2 |
2 |
2 |
2 |
|||||||
Внешние прерывания |
6 |
6 |
6 |
6 |
6 |
6 |
|||||||
Дежурный таймер (WatchDog Timer) |
|
+ |
+ |
+ |
+ |
+ |
|||||||
Реакция на пропадание питающего напряжения |
|
+ |
+ |
+ |
+ |
+ |
|||||||
Указатели DPTR |
2 |
2 |
2 |
2 |
2 |
2 |
|||||||
16-битные таймеры |
3 |
3 |
3 |
3 |
3 |
3 |
|||||||
Управление потреблением |
|
|
+ |
+ |
+ |
||||||||
Встроенный генератор |
|
+ |
+ |
+ |
+ |
+ |
|||||||
Управление потреблением |
|
|
+ |
+ |
+ |
||||||||
Таймер реального времени |
|
|
|
|
+ |
||||||||
Энергонезависимая память |
|
|
|
|
+ |
||||||||
1.6. ОДНОКРИСТАЛЬНЫЕ МИКРОКОНТРОЛЛЕРЫ СЕРИИ PIC
Первые микроконтроллеры компании MICROCHIP PIC16C5x появились в конце 80-х годов и благодаря своей высокой производительности и низкой стоимости составили серьёзную конкуренцию производимым в то время 8-разрядным МК с CISC-архитектурой.
Первое, что привлекает внимание в PIC-контроллерах — это простота и эффективность. В основу концепции PIC, единую для всех выпускаемых семейств, была положена RISC-архитектура с системой простых однословных команд, применение встроенной памяти программ и данных и малое энергопотребление.
Система команд базового семейства PIC165x содержит только 33 команды. Как ни странно, и это сыграло свою роль в популяризации PIC-контроллеров. Все команды (кроме команд перехода) выполняются за один машинный цикл (или четыре машинных такта) с перекрытием по времени выборок команд и их исполнения, что позволяет достичь производительности до 5 MIPS при тактовой частоте 20 МГц.
Микроконтроллеры PIC имеют симметричную систему команд, позволяющую выполнять операции с любым регистром, используя любой метод адресации. Правда, разработчики MICROCHIP так и не смогли отказаться от любимой всеми структуры с регистром-аккумулятором, необходимым участником всех операций с двумя операндами. Зато теперь пользователь может сохранять результат операции на выбор, где пожелает, в самом регистре-аккумуляторе или во втором регистре, используемом для операции. В настоящее время MICROCHIP выпускает четыре основных семейства 8-разрядных RISC-микроконтроллеров, совместимых снизу вверх по программному коду:
· базовое семейство PIC15Cx с 12-разрядными командами, простые недорогие микроконтроллеры с минимальной периферией;
· PIC12Cxxx с 12-разрядными командами со встроенным тактовым генератором, выпускаемые в миниатюрном 8-выводном исполнении. Не так давно был анонсирован очередной такой “малыш” c внутренним 8-разрядным 4-канальным АЦП;
· Mid-range PIC16x/7x/8x/9x с 14-разрядными командами. Наиболее многочисленное семейство, объединяющее микроконтроллеры с разнообразными периферийными устройствами, в число которых входят аналоговые компараторы, аналогово-цифровые преобразователи, контроллеры последовательных интерфейсов SPI, USART и I2C, таймеры-счётчики, модули захвата/сравнения, широтно-импульсные модуляторы, сторожевые таймеры, супервизорные схемы и так далее;
· High-end PIC17C4x/5xx высокопроизводительные микроконтроллеры с расширенной системой команд 16-разрядного формата, работающие на частоте до 33 МГц, с объёмом памяти программ до 16 Кслов. Кроме обширной периферии почти все микроконтроллеры этого семейства имеют встроенный аппаратный умножитель 8х8, выполняющий операцию умножения за один машинный цикл.
Большинство PIC-контроллеров выпускаются с однократно программируемой памятью программ OTP с возможностью внутрисхемного программирования или масочным ROM. Для целей отладки предлагаются версии с ультрафиолетовым стиранием, надо признать, не очень дешёвые. Полное количество выпускаемых модификаций PIC-контроллеров составляет порядка пятисот наименований. Как не без основания утверждает MICROCHIP, продукция компании перекрывает весь диапазон применений 8-разрядных микроконтроллеров.
Особый акцент MICROСHIP делает на максимально возможное снижение энергопотребления для выпускаемых микроконтроллеров. При работе на частоте 4 МГц PIC-контроллеры, в зависимости от модели, имеют ток потребления меньше 1,5 мА, а при работе на частоте 32,768 КГц — ниже 15 мкА. Поддерживается “спящий” режим работы. Диапазон питающих напряжений PIC-контроллеров составляет 2,0...6,0 В.
В настоящее время готовится к запуску в производство новое пятое семейство PIC-контроллеров PIC18Cxxx. Новые микроконтроллеры будут иметь расширенное RISC-ядро, оптимизированное под использование нового Си-компилятора, адресное пространство программ до 2 Мбайт, до 4 Кбайт встроенной памяти данных и производительность 10 MIPS.
Из программных средств отладки наиболее известны и доступны различные версии ассемблеров, а также интегрированная программная среда MPLAB. Российские производители программаторов и аппаратных отладочных средств также уделяют внимание PIC-контроллерам. Выпускаются как специализированные программаторы, такие как PICPROG, программирующие почти весь спектр PIC-микроконтроллеров, так и универсальные: UNIPRO, СТЕРХ, поддерживающие наиболее известные версии PIC.
1.6.1. RISC микроконтроллеры типа PIC16C5X
МК PIC16C5X, производимые фирмой Microchip Tecnology относятся к семейству КМОП микроконтроллеров с внутренним ПЗУ, которые отличаются низкой стоимостью, высокой производительностью, 8-битовыми операциями с данными. Они основаны на RISC архитектуре и программируются всего через 33 команды, шириной в одно слово ПЗУ. Все команды выполняются за один цикл (200нс). PIC16C5X имеют характеристики, на порядок превосходящие конкурирующую продукцию, но находятся в той же ценовой категории. Расширенные двенадцатибитные команды приводят к сжатию кода до 2:1 по сравнению с 8-битными микроконтроллерами этого же класса. Простота изучения и применения команд экономит время разработчика.
PIC16C5X имеют встроенные устройства, присущие большинству прикладных систем, что позволяет снизить стоимость, потребляемую мощность и увеличить надежность конечного устройства. Например, встроенная схема сброса и запуска генератора позволяют избавиться от внешних RC схем. Предлагается четыре типа встроенных генераторов на выбор, включая экономичный LP (Low Power) и дешевый RC генераторы. Экономичный режим SLEEP, Watchdog таймер и устройство защиты кода программы снижают стоимость и увеличивают мощность плюс надежность вашей системы. Микросхемы с ультрафиолетовым стиранием идеальны для процесса отработки программы. Одновременно существуют однократно программируемые (OTP) кристаллы. Здесь разработчик может извлечь полное преимущество из сочетания низкой цены и гибкости OTP версий.
Серия PIC16C5X подходит для широкого спектра приложений от схем высокоскоростного управления автомобильными и электрическими двигателями до экономичных удаленных приемопередатчиков, показывающих приборов и связных процессоров. Наличие ПЗУ позволяет подстраивать параметры в прикладных программах (коды передатчика, скорости двигателя, частоты приемника и т.д.).
Малые размеры корпусов, как для обычного, так и для поверхностного монтажа, делает эту серию микроконтроллеров пригодной для портативных приложений. Низкая цена, экономичность, быстродействие, простота использования и гибкость ввода/вывода делает серию PIC16C5X привлекательной даже в тех областях, где ранее не применялись микроконтроллеры. Например, таймеры, замена жесткой логики в больших системах, сопроцессоры.
Устройства серии PIC16C5X имеют большой выбор ПЗУ и ОЗУ разных размеров, разное количество линий ввода/вывода, различные виды возбуждения генераторов, разную скорость, климатику и типы корпусов. Из четырех кристаллов PIC16C5x можно выбрать устройство с подходящими ПЗУ/ОЗУ и конфигурацией ввода/вывода.
Таблица 1.12
Название |
ПЗУ |
ОЗУ* |
Ввод/Вывод+ |
Тип корпуса |
PIC16C54 |
512*12 |
32*8 |
13 |
CERDIP-18 |
PIC16C55 |
512*12 |
32*8 |
21 |
CERDIP-28 |
PIC16C56 |
1K*12 |
32*8 |
13 |
CERDIP-18 |
PIC16C57 |
2K*12 |
80*8 |
21 |
CERDIP-28 |
* включая регистры специального назначения
+ включая линию вход RTCC счетчика.
Устройства с ультрафиолетовым стиранием удобно использовать в прототипных и опытных партиях. Конфигурация генератора ("RC", "XT", "HS", "LP") программируется самим пользователем на UF EPROM. При UF стирании или по умолчанию устанавливается тип "RC". В зависимости от выбранного типа генератора и частоты, рабочее напряжение питания должно быть в том же диапазоне, что будет и в будущем устройстве на OTP кристалле (если OTP предполагается использовать).
Тип генератора кристаллах OTP устанавливается на заводе, и они тестируются только для этой специальной конфигурации, включая напряжение, частоту и ток потребления. Устройства выпускаются с чистым EPROM, что позволяет пользователю самому программировать их. Кроме того, можно отключить Watchdog таймер и/или защиту кода путем программирования битов в специальном EPROM. Также доступны 16 бит для записи кода идентификации (ID).
1.6.1.1. Обзор характеристик
· - только 33 простые команды;
· - все команды выполняются за один цикл(200ns), кроме команд перехода цикла;
· - рабочая частота 0 Гц ... 20 МГц(200 нс цикл команды);
· - 12-битовые команды;
· - 8-битовые данные;
· - 512 ... 2К х 12 программной памяти на кристалле EPROM;
· - 25 ... 72 х 8 регистров общего использования;
· - 7 специальных аппаратных регистров SFR;
· - двухуровневый аппаратный стек;
· - прямая, косвенная и относительная адресация данных и команд;
Периферия и Ввод/Вывод
· - 12 ... 20 линий ввода-вывода с индивидуальной настройкой;
· - 8 - битный таймер/счетчик RTCC с 8-битным программируемым предварительным делителем;
· - автоматический сброс при включении;
· - таймер запуска генератора;
· - Watchdog таймер WDT с собственным встроенным генератором, обеспечивающим повышенную надежность;
· - EPROM бит секретности для защиты кода;
· - экономичный режим SLEEP;
· - программируемые EPROM биты для установки режима возбуждения встроенного генератора;
· - RC генератор - RC
· - обычный кварцевый резонатор - XT
· - высокочастотный кварцевый резонатор - HS
· - экономичный низкочастотный кристалл - LP
КМОП технология:
· - экономичная высокоскоростная КМОП EPROM технология;
· - статический принцип в архитектуре;
· - широкий диапазон напряжений питания:
· - коммерческий: 2.5 ... 6.25 В
· - промышленный: 2.5 ... 6.25 В
· - автомобильный: 2.5 ... 6.0 В
· - низкое потребление 20 mA типично для 6В, 20МГц, 2 мА типично для 5В, 4МГц 15 мкА типично для 3В, 32КГц.
1.6.1.2. Структура Кристаллов Pic16c5x
Архитектура основана на концепции раздельных шин и областей памяти для данных и команд (Гарвардская архитектура). Шина данных и память данных (ОЗУ) - имеют ширину 8 бит, а программная шина и программная память (ПЗУ) имеют ширину 12 бит. Такая концепция обеспечивает простую, но мощную систему команд, разработанную так, что битовые, байтовые и регистровые операции работают с высокой скоростью и с перекрытием по времени выборок команд и циклов выполнения.
8 - битовая шина данных соединяет два основных функциональных элемента вместе: набор регистров, который может быть длиной до 80 адресуемых 8-битовых регистров (включая порты) и 8-битное арифметическо-логическое устройство. Первые 32 байта ОЗУ адресуются прямо и называются "Банк 0". Если кристалл PICа имеет увеличенную память, то она наращивается банками по 16 байт в каждом. Данные могут адресоваться прямо или косвенно через регистр выбора банка (f4). Непосредственная адресация к константам организуется при помощи специальных команд, которые загружают в рабочий регистр W данные из программной памяти.
1.6.1.3. Таймер/счетчик.
В регистр RTCC можно загрузить данные или считать из него, как из любого другого регистра. Содержимое этого регистра может быть инкрементировано фронтом внешнего сигнала, поступающим на вход RTCC кристалла, или внутренним сигналом синхронизации (CLKOUT=Fosc/4).
Структурная схема содержит элемент "MUX"- это электронный переключатель.
1.6.1.4.Регистр статуса
Размещение флагов в регистре статуса следующее:
f3 =
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
b0 |
PA2 |
PA1 |
PA0 |
TO |
PD |
Z |
DC |
C |
Аппаратные Биты статуса TO (Time Out) и PD (Power Down).
1.6.1.5. Регистры ввода/вывода. ( Порты )
Регистры ввода/вывода могут управляться, как любые другие регистры. Однако, команда "чтение" (например MOVF_6,W) всегда считывает фактический уровень сигнала на ножке порта, независимо от того, определен этот порт как ввод, как вывод или кто-то "навалился" снаружи. После сигнала "Сброс" все порты ввода/вывода устанавливаются на "ввод" (электрически эквивалентно третьему состоянию), а управляющие регистры ввода/вывода (TRISA, TRISB, TRISC) устанавливаются в единицы( конфигурация на ввод). Для того, чтобы конфигурировать некоторые ножки порта на вывод, необходимо установить соответствующие биты в нужном TRIS регистре в "0". Это можно делать командой "TRIS_f".
1.6.1.6. Организация встроенной памяти
Встроенная программная память (EPROM) имеет ширину слова 12 бит. Прямо адресованы могут быть до 512 слов программной памяти. Программная память большего объема адресуется постранично, путем выбора одной из четырех доступных страниц, длиной 512 слов каждая.
1.6.1.7. Стек
В кристаллах PIC16C5X используется двухуровневый аппаратный стек. Это означает, что он может хранить одновременно не более двух адресов возврата.
1.6.1.8. Организация внутреннего ОЗУ
8 - битовая шина данных соединяет два основных функциональных элемента вместе: набор регистров, который может быть длиной до 80 адресуемых 8-битовых регистров (включая порты) и 8-битное арифметическо-логическое устройство. Первые 32 байта ОЗУ адресуются прямо и называются "Банк 0". Если кристалл PICа имеет увеличенную память, то она наращивается банками по 16 байт в каждом. Данные могут адресоваться прямо или косвенно через регистр выбора банка (f4). Непосредственная адресация к константам организуется при помощи специальных команд, которые загружают в рабочий регистр W данные из программной памяти.
1.6.1.9. Система команд
Каждая команда PIC16С5х - это 12-битовое слово, которое разделено по смыслу на части: - 1. код операции, -2. поле для одного или более операндов, которые участвуют или нет в этой команде. Система команд PIC16С5х включает в себя байт-ориентированные команды, бит-ориентированные, операции с константами и команды передачи управления.
Для байт-ориентированных команд "f" обозначает собой регистр, с которым производится действия. "f" обозначает один из 32 регистров PICа, который будет использовать команда с учетом текущего номера банка. "d" - бит определяет, куда положить результат. Если "d" =0 результат будет находиться в W регистре, "d"=1 результат будет находиться в "f", упомянутом в команде.
Для бит-ориентированных команд "b" обозначает номер бита, участвующего в команде, а "f" -это регистр текущего банка, в котором этот бит расположен.
Для команд передачи управления и операций с константами, "k" обозначает восьми или девятибитную константу.
Все команды выполняются в течение одного командного цикла. В двух случаях исполнение команды занимает два командных цикла:
· исполнение условной команды,
· проверка условия и переход.
Один командный цикл состоит из четырех периодов генератора. Таким образом, для генератора с частотой 4 МГц время исполнения командного цикла будет 1 мкс.
1.6.1.10. Условия сброса
"Сброс" может быть вызван включением питания, подачей сигнала на вводе /MCLR кристалла или при срабатывании Watchdog таймера. Устройство будет находиться в состоянии сброса все время, пока действует таймер запуска генератора или сигнал на /MCLR имеет низкий уровень.
1.6.1.11. Watchdog таймер
Watchdog таймер представляет собой полностью готовый встроенный RC генератор. Он будет работать, даже если основной генератор остановлен, как это бывает при исполнении команды SLEEP. Таймер вырабатывает сигнал сброса.
Выработка таких сбросов может быть запрещена путем записи нуля в специальный бит, который расположен вне программной памяти EPROM. Эту операцию производят на этапе прожига микросхем.
Номинальная выдержка WDT составляет 18 мс (без использования делителя).
1.6.1.12. Типы генераторов
В продаже имеются ОТР кристаллы PIC16C5X с четырьмя различными встроенными генераторами. Наоборот, в UF перепрограммируемых кристаллах требуемая схема встроенного генератора задается путем программирования специальных EPROM бит.
Кристаллы PIC16... могут также тактироваться и от внешних источников.
RC генератор
Когда не предъявляются требования к быстродействию и к точности по времени, ОТР кристалл, например PIC16C5X-RC, позволяет сэкономить деньги и реализовать RC генератор.
Делитель
8 - битный счетчик используется или как пределитель перед RTCC или как делитель частоты после Watchdog таймера. Если делитель подсоединен к RTCC,то он не может быть подключен к watchdog таймеру и наоборот. Биты PSA и PS0- PS2 в регистре OPTION определяют коэффициент деления.
Код идентификации
Кристаллы PIC16C5X имеют отдельный 16-битный EPROM. Эти биты предназначены для хранения идентификационного кода (ID) пользователя, контрольной суммы или другой информации. К ним нет доступа по программе, они программируются -программатором.
Защита кода
Программный код, который записан в EPROM, может быть защищен от считывания при помощи установки бита защиты в ноль. Кроме того, при установленном бите защиты становится невозможным перепрограммировать адреса памяти, начинающиеся с 040h. Но остаются открытыми на перепрограммирование адреса 000h-03fh, код идентификации и биты конфигурации. Имейте в виду, что биты конфигурации и код идентификации может быть прочитан независимо от установки бита защиты кода.
1.6.1.13. Режим пониженного энергопотребления
Вход в режим SLEEP осуществляется командой SLEEP. По этой команде, если WDT разрешен, то он сбрасывается и начинает счет времени, бит "PD" в регистре статуса (f3) сбрасывается, бит "TO" устанавливается, а встроенный генератор выключается. Порты ввода/вывода сохраняют состояние, которое они имели до входа в режим SLEEP.
Выход из режима SLEEP
Выход из режима SLEEP осуществляет WDT(если он разрешен) или внешним нулевым импульсом на ножке /MCLR- сброс. В обоих случаях PIC16C5X будет находиться в режиме сброса в течение времени запуска генератора, а затем только начнется выполнение программы.
2. АРХИТЕКТУРА МП И МИКРО-ЭВМ
2.1 Общая архитектура МПС
Как указывалось во Введении, на основе выпускаемых МПК можно строить различные вычислительные и управляющие устройства. В литературе введено деление на микро-ЭВМ - устройство для организации вычислений, отладки программ, имеющую как правило развитое периферийное оборудование - дисплеи, накопители и т.д., и на контроллеры (или устройства управления объектами) - устройства для автоматизированного управления какими-либо промышленными объектами, которые не имеют такой развитой периферии, как микро-ЭВМ, но имеют устройства сопряжения с объектами управления и контроля. При этом эти два вида аппаратуры имеют много общего. На рис. 2.1 показана обобщенная структурная схема МПС, на которой штрих пунктирной линией обведены составные части, которые относятся к контроллерам, а пунктиром -которые относятся к микро-ЭВМ.
Рис. 2.1. Архитектура микропроцессорной системы (МПС)
Ведущим устройством всей МПС является центральный процессорный элемент (ЦПЭ), иногда называемый просто микропроцессором (МП). Как показано на рис. 2.1, ЦПЭ можно разделить на операционную часть (ОП), которая осуществляет обработку поступающих данных (в более узком смысле иногда ОП называют АЛУ - арифметическо-логическое устройство), и на управляющую часть (УП), которая управляет процессами в МПС. В ПЗУ или ОЗУ помещена программа работы МПС в виде набора команд, расположенных в ячейках памяти с определенным адресом. УП осуществляет считывание команд из памяти по ШД, их дешифрацию, инициализацию обработки необходимых данных в ОП и вывод полученного результата через ЩД на внешние устройства - ОЗУ, УВВ, УСО и т.д. ША служит для подачи сигнала выборки или записи информации по определенному адресу. Каждой ячейке памяти, каждому устройству ввода вывода или УСО присваивается определенный адрес, поэтому для работы с этими элементами МПС необходимо, чтобы УП выдавал на ШД информацию об адресе устройства, с которым в настоящий момент будет работать ЦПЭ. ШД служит для передачи данных либо к внешним устройствам МПС, либо к ЦПЭ от внешних устройств. Как правило, ШД является двунаправленной: В определенные моменты времени она работает для передачи сигналов в одну сторону, в определенные моменты - в другую. УП выдает также некоторые сигналы управления внешними устройствами, по которым происходит запись, считывание, выдача данных и т.п. Эти управляющие сигналы подаются по ШУ. Совокупность ША, ШД и ШУ называется внутренней магистралью МПС. Магистральный принцип построения системы очень развит в микропроцессорной технике. Он предусматривает подключение многочисленных устройств к общим шинам всей системы. От УВВ и УСО идут внешние магистрали, к которым подсоединяются другие периферийные модули. Эти магистрали могут быть построены различным образом, и об их особенностях говорится ниже.
ЦПЭ -центральный процессорный элемент; ОЗУ - оперативное запоминающее устройство; ПЗУ - постоянное запоминающее устройство; УВВ - устройство ввода-вывода; УСО - устройство связи с объектом; ША - шина адреса; ЩД - шина данных; ШУ - шина управления.
В динамике работа этой схемы происходит следующим образом:
1. Пусть начало работы МПС отсчитывается от момента отпускания кнопки RESET (СБРОС), которая сбрасывает процессор в исходное состояние. На первом этапе процессор выдает на ША адрес ячейки ПЗУ, в которой хранится первая команда для выполнения процессором. Как правило, это нулевой адрес, т.е. все нули на всех выводах ША.
2. Затем по ШУ выдается сигнал считывания из ПЗУ и по ШД код команды поступает в МП.
3. Теперь он дешифрируется процессором, т.е. определяется, какая команда поступила и затем начинается выполнение этой команды.
4. На этом этапе поведение системы зависит от вида выполняемой команды. Можно выделить два случая:
а) команда не требует обмена с внешними устройствами или памятью. В этом случае состояние шин МПС во время выполнения не меняется, а весь процесс выполнения происходит внутри МП.
б) команда требует обмена с внешними устройствами или с памятью. При этом на ША выдается адрес УВВ или ячейки памяти, с которыми МП должен обменяться информацией. Затем выдается по ШУ сигнал считывания или записи (в зависимости от типа команды) и по ШД происходит обмен между МП и периферийным блоком.
5. На ША выдается адрес следующей команды и весь процесс повторяется.
2.2. Принципы управления операциями
Построение УП МП осуществляется на основе соблюдения двух различных принципов:
- схемного,
- микропрограммного.
Рис. 2.2. Схемный принцип управления операциями
Схемный принцип построения УП предусматривает, что для каждой операции МП создается свое устройство управления. Команда, поступаемая в УП, дешифрируется и подается на отдельную схему управления, которая и осуществляет обработку информации в соответствии с логикой команды. Другая команда инициирует другую схему управления, которое осуществляет обработку в ОП другим способом и т.д. Преимуществом такого построения является простота программирования операций, недостатком - низкое быстродействие, значительный объем кристалла, занимаемый УП (количество схем управления равен количеству команд в системе команд, а это не одна сотня), невозможность изменения системы команд МП в процессе работы.
Микропрограммный принцип управления предусматривает, что в УП имеется специальный регистр управляющего слова (РУС). Из специальной управляющей памяти в очередной такт работы МП в РУС выдается управляющее слово, которое инициирует свои управляющие цепи (рис. 2.3). Затем в следующий цикл работы МП РУС инициирует другие управляющие цепи и т.д.
Управляющее слово составляет часть микрокоманды - элементарной операция, выполняемой за один тактовый интервал. Группа микрокоманд (МК), выполняющая определенное действие, образует микропрограмму. Микропрограммы хранятся в специальной управляющей памяти (УП). Когда из оперативной памяти (ОП) поступает команда на выполнение определенной операции (сложение, вычитание, умножение и т.п.), то в УП ищется соответствующая микропрограмма. Она последовательно считывается из УП и управляющие слова, размещенные в микрокоманде, помещаются в РУС. Блок, который находит соответствующую микропрограмму в УП носит название блока микропрограммного управления (БМУ). Он может быть выполнен в виде отдельной БИС или группы ИС.
Рис. 2.3
2.3. Архитектура микропроцессоров
Под архитектурой МП понимают его логическую организацию, определяемую возможностями МП по аппаратной или программной реализации функций, необходимых для построения микро-ЭВМ или управляющих устройств. Понятие архитектуры отражает структуру МП, способы обращения ко всем доступным элементам структуры, способы представления и форматы данных, набор операций, выполняемых МП, способы указания (адресации) данных, форматы управляющих слов, поступающих в МП извне, характеристики и назначение вырабатываемых МП управляющих сигналов, реакцию МП на внешние сигналы.
Естественно, что архитектура МП сильно зависит от способа управления операциями, т.е. МП с жесткой системой команд сильно отличается по архитектуре от МП с микропрограммированием, и уж тем более от МП с микропрограммированием и наращиванием разрядности. Поэтому сначала рассматривается архитектура МП с жесткой логикой на примере МП серии К580.
2.4. Микропроцессор КР580ИК80А
Данный тип МП является типичным представителем МП с жесткой системой команд. С него началось развитие основной линии развития МП и ОЭВМ, его основные характеристики прослеживаются в большинстве современных микроконтроллеров. С другой стороны он достаточно прост для изучения. Структурная схема МП показана на рис. 2.4.
Типичными элементами МП в этой структурной схеме являются: блок регистров общего назначения (РОН) - восьмиразрядных регистров, обозначенных как А, В, С, D ,Е, Н, L ; регистры специального назначения - счетчик команд (PC), указатель стека (SP), регистр флажков ( F регистр), регистры временного хранения (W, Z); 8-ми разрядное АЛУ; схема управления.
Некоторые из РОН могут объединяться в пары, образуя шестнадцатиразрядные регистры - BC, DЕ, НL . Регистры W и Z являются регистрами временного хранения и недоступны программисту.
Результат арифметической или логической операции анализируется, и некоторые ее признаки фиксируются в специальном регистре флажков F (восьмиразрядный регистр, у которого только пять разрядов несут следующую информацию):
Разряд Z устанавливается в "1", если результат операции = 0,
Разряд C устанавливается в "1", если возникает перенос единицы из старшего разряда аккумулятора (переполнение),
Разряд AC устанавливается в "1", когда существует перенос из младшей тетрады аккумулятора в старшую (восемь разрядов аккумулятора можно разделить на две четырехразрядные тетрады),
Разряд S устанавливается в "1", если знак результата отрицательный (в МП предусмотрена возможность оперировать семиразрядными числами со знаком, причем знаковым является старший разряд 8-разрядного числа - если он равен"1"- то число отрицательное),
Разряд P устанавливается в "1", если в результате число единиц четное.
При не соблюдении вышеназванных условий соответствующие разряды регистра флажков устанавливаются в "0". Затем при выполнении следующей операции каждый разряд регистра флажков можно использовать: для выполнения условного перехода, арифметических операций и т.д.
Счетчик команд - 16-ти разрядный счетчик, в который при начальном запуске МП автоматически записывается 0000. Затем при выполнении каждой операции в него автоматически записывается через инкрементор либо 1, либо 2, либо 3 (в зависимости от типа операции), и информация от счетчика через фиксатор адреса и адресный формирователь поступает на внешнюю шину адреса для выборки соответствующей ячейки памяти. Число ячеек памяти, которое можно адресовать МП составляет 216= 64К (К=1024) байт. (Байтом называется 8-ми разрядное число данных).
Рис. 2.4.
2.4.1. Принцип работы МП
МП КР580ИК80А является МП с фиксированным набором команд. Для обеспечения функционирования на МП необходимо подавать двухфазную последовательность тактирующих импульсов уровня МОП (лог."1" соответствует уровню +12В), Ф1 и Ф2 (см. рис. 2.5). Расстояние между двумя передними фронтами соседних импульсов Фi называется тактом работы МП Т. Минимальная длительность такта соответствует 0,5 мкс. Такты нумеруются следующим образом: Т1... Т5 и группируются в так называемые циклы М1,М2... В каждый цикл входит от 3 до 5 тактов. А каждая команда содержит от 1 до 5 циклов. Таким образом, данный МП представляет собой асинхронный тип процессора.
В такте Т1 происходит выдача на ША содержимого счетчика команд, а также выдача на ЩД слова состояния процессора.
В такте Т2 проверяется состояние входного сигнала "READY" ("Готовность") готовности внешнего устройства к обмену данными с МП. При отсутствии подтверждения готовности к обмену МП переходит к специальному такту ожидания Тw и повторяет его до тех пор, пока не появится сигнал готовности, и затем МП переходит к такту T3.
Рис. 2.5. Временная диаграмма работы МПС
В такте T3 из памяти принимается команда и дешифрируется (т.е. в этом такте ШД используется по своему прямому назначению). В такте Т4 команда начинает выполняться. Если команда предполагает обращение к оперативной памяти или устройству ввода-вывода, то требуется еще Т5 ... Т19.
В начале каждого цикла работы МП на ША выдается адрес ячейки памяти, в которой содержится команда (или с которой производится обмен информацией), или адрес требуемого УВВ (в этом случае на ША выдается двукратно повторенный 8-ми разрядный адрес УВВ, таким образом, МП может адресовать до 256 устройств ввода-вывода). Одновременно на ШД выдается так называемое слово состояния процессора, которое запоминается на весь цикл в регистре состояний (PC).
2.4.2. Организация стека в МПС
Стек - специальным образом организованные регистры (или ячейки памяти), в которых хранятся промежуточные результаты вычислений. Отличие стековой организации от обычной заключается в том, что доступ в регистры (или ячейки памяти) открыт только "сверху" стека. На рис. 2.6 показан стек, как говорят, глубиной 8 ячеек. Загрузка стека производится в вершину стека (показано стрелкой). Первый байт помещается в ячейку под номером 1, а нижние ячейки свободны. Затем при поступлении следующего байта, первый продвигается в ячейку 2, а его место занимает второй байт. И заполнение стека происходит подобным образом на всю глубину. В результате первый байт оказывается в самой нижней ячейке, а только что поступивший - в самой верхней. Выборка информации из стека происходит обратным порядком: выбирается самый верхний байт, а все остальные продвигаются вверх на один номер. Самым последним будет извлечен из стека байт 1, который был помещен туда первым. Эта особенность стека делает удобным хранение в нем промежуточных результатов, адресов переходов и т.п.
В МП может использоваться стек, расположенный как внутри МП (правда это встречается достаточно редко), так и во внешней памяти МПС. В МК почти всегда стек располагается во внутренней памяти, так как МК часто работают без внешней памяти. Но принцип записи в стек, указанный выше остается: при очередном обращении к стеку, указатель стека увеличивается или уменьшается на единицу, открывая тем самым доступ к "верхней" ячейке стека.
Рис. 2.6. Объяснение работы стека
2.4.3. Организация прерываний
Как уже стало понятным из вышеприведенного материала, одной из основных функций МП является обмен данными между МПС и УВВ. Этот обмен может быть реализован по-разному, в зависимости от вида УВВ и других параметров. Существует 3 основных способа обмена:
· программный обмен,
· обмен по прерываниям,
· обмен по прямому доступу к памяти.
Рассмотрим самый простой способ обмена - программный обмен. Его структурная схема приведена на рис. 2.7.
Рис. 2.7. Структурная схема программного обмена
Собственно обмен происходит только по ШД, никаких других линий для этого не нужно. В составе УВВ должны быть 2 регистра - регистр данных (РД), с которым производится обмен, и регистр состояния (РС), который показывает состояние УВВ. В частности в составе этого регистра должен быть какой-либо бит, показывающий готовность УВВ к обмену. Пусть "1" - устройство не готово, а "0" - готово к обмену. Тогда структурная схема программы обмена показана на рис. 2.8.
Как видно из рис. 2.8, если устройство не готово, процессор все время опрашивает РС, не выполняя никакой другой работы. Поэтому основным недостатком этого способа обмена является нерациональное расходование процессорного времени. Достоинство - исключительная простота аппаратурной и программной реализации. Поэтому сфера применения способа - простейшие МПС, не требующие высоких скоростей обмена.
В состав МПС могут входить устройства, информация с которых должна поступать незамедлительно, как только она готова, т.е. устройство не может "ждать" пока МП сам обратиться к нему с предложением об обмене. Таким образом, оно должно сообщить МП о готовности к обмену, а МП должен прервать текущую программу и приступить к обмену. Для этого и существует режим прерывания (рис.2.9).
Рис. 2.8. Структурная схема программного обмена.
Рис. 2.9. Структурная схема системы прерываний
Устройство выдает в МП сигнал INT ("Прерывание"), МП прерывает исполнение текущей программы и опрашивает ШД, чтобы узнать какое устройство выдало этот сигнал (подразумевается, что УВВ, которое подало сигнал "Прерывание" уже выдало на ШД специальный 8-ми разрядный код, по которому процессор распознает это устройство). В зависимости от кода на ШД МП переходит к одной из 8-ми подпрограммам обслуживания прерывания, которые помещаются в первых ячейках памяти, а адрес основной программы, с которого было осуществлено прерывание, запоминается в стеке. После окончания обслуживания устройства, из стека извлекается адрес основной программы, с которого она была прервана, и происходит переход на этот адрес основной программы, с которого начинается выполнение прерванной программы. Таким способом можно обеспечить обслуживание до 8-ми устройств, однако при использовании специальной БИС контроллера прерываний число устройств может быть увеличено до 64. Более подробно о режиме прерываний будет рассказано позднее.
2.4.4. Организация ПДП
Режим прямого доступа в память (ПДП) используется для обслуживания быстродействующих внешних устройств, которые должны записывать и считывать из памяти большие массивы информации. Запись и воспроизведение через процессор, как это делается обычно, в этом случае невыгодно по временным соотношениям, поэтом и используется режим ПДП. Специальный контроллер ПДП (в настоящее время выпускается специальная БИС контроллера ПДП) выдает сигнал HOLD ("Блокировка") на МП, означающий готовность осуществить ПДП. По этому сигналу процессор как бы "отключается" от остальной МПС (рис. 2.10). Как видно из рис. 1.5, ШД и ША подключаются к внутренним регистрам МП через буферы, которые имеют не два логических состояния на выходах (как обычно 0 и 1), а три, т.е. добавляется третье состояние, при котором выходы буферов имеют бесконечный входной импеданс и не влияют на внешние устройства, подключенные к ШД и ША. Такой способ снизить нагрузку на шины очень широко используется в микропроцессорной технике. Таким образом, процессор перестает принимать и выдавать данные и адрес, а управление передается контроллеру ПДП (по сигналу HLDA ("подтверждение блокировки") подтверждения перехода в режим ПДП). После окончания обмена данными между устройством и памятью сигнал "Блокировка" снимается, и управление вновь передается МП.
Рис. 2.10. Режим ПДП
2.4.5. Форматы данных и команд
Команды на выполнение МП определенных операций хранят в памяти в виде 8-ми разрядных слов в соседних ячейках. Сами данные всегда 8-ми разрядные, причем младший бит обозначается - D0 , а старший - D7 (см. рис. 2.11). Байт данных можно условно разделить на старший полубайт (4 старших разряда) и младший полубайт (4 младших разряда). Каждый полубайт при написании программы представляется шестнадцатеричным числом, так что байт, изображенный на рис. 2.11 можно записать в виде Е716. Диапазон представления чисел таким форматом 0…25510.
Представленный на рис. 2.11 формат данных называется двоичным числом без знака. Это основной формат чисел для данного МП. Однако есть возможность использовать другой формат – двоичное число со знаком. В нем самый старший бит называется знаковым: если D7= 1, то число отрицательное, представленное в дополнительном коде, если D7=0 – то положительное. Остальные семь младших разрядов представляют собой собственно число. Естественно, диапазон представления чисел байтом будет –128…+128.
Команды МП могут быть однобайтовыми (рис. 2.12А), двух байтовыми (рис. 2.12Б), трехбайтовыми (рис. 2.12В). В однобайтовой команде указывается код операции, в котором зашифрованы коды регистров, с которыми работает МП. В двухбайтовых командах байт В1 представляет собой код операция, а байт В2 - данные которые непосредственно загружаются в регистры МП или ячейку памяти. В трехбайтовых командах первый байт представляет собой код команды, а второй и третий байт - информация об адресе перехода (в операциях перехода) или данные, которые записываются в две соседние ячейки памяти (при оперировании с 16-ти разрядными числами).
Рис. 2.11. Обозначение байта данных
Рис. 2.12. Формат команд в МП
2.5. Форматы команд и способы адресации
Формат данных, которые обрабатывает процессор, зависят от его разрядности. В МП КР580ИК80А данные 8-ми разрядные, в МП К1816ВМ86 - 16-ти разрядные, а для системы, построенной на секционированных процессорах, формат данных зависит от числа каскадно-соединенных БИС МП. Однако всегда первый разряд обозначается D0 , затем D1 - и т.д. Иногда слово данных разделяют на части. Например, восемь разрядов (или байт) данных можно разделить на младший и старший полубайт. Эти 4 разряда удобно в этом случае записывать в шестнадцатеричном виде. Конкретная запись слова данных зависит от вида МП, который используют в МПС.
Формат команд даже в пределах одного МП может изменяться в зависимости от вида команды, способа адресации и т.д. На рис. 2.12 показаны возможные форматы команд для МП КР580ИК80А. Однобайтовая команда содержит как код операции, так и коды РОН, в которые осуществляется пересылка данных. Иногда однобайтовые команды содержат только один код операции (для арифметических и логических операций, операций вызова подпрограмм и возврата из подпрограмм и т.п.). В двухбайтовых командах (рис. 2.12Б) первый байт содержит код операции, а второй содержит конкретную информацию (например, при операции непосредственной загрузки в регистр второй байт содержит данные, которые загружаются). Команды ввода-вывода содержат второй байт - номер устройства. Во втором и третьем байте трехбайтовых команд (рис. 2.12В) могут храниться операнды или адреса переходов. В памяти двухбайтовые и трехбайтовые команды хранятся в соседних ячейках.
Способы адресации. Способы адресации показывают, каким образом используется поле команды для указания адресов и кодов РОН, ячеек памяти и способов пересылки данных.
Прямая адресация. При этом способе адреса операндов указываются непосредственно в теле команды (рис. 2.13). Эти операнды используются в операции, код которой указан в этой же команде. Данный типа адресации наиболее простой и быстрый из всех способов.
Непосредственная адресация. При этом способе операнд непосредственно указывается в команде (рис. 2.15), как правило, во втором байте (при двухбайтовой команде) или во втором и третьем байте (при трехбайтовой команде).
Рис. 2.13. Прямая адресация в командах
Рис. 2.14. Непосредственная адресация в командах
Косвенная адресация. При этом для указания адреса операнда используются регистры МП (в МП КР580ВМ80 - например, пара регистров HL). Содержимое этих регистров служит адресом ячейки памяти, в которой находится операнд (рис. 2.15).
Рис. 2.16. Косвенная адресация в командах
2.5. ОЭВМ семейства MCS-51
ОМЭВМ семейства MCS-51 представляют собой функционально законченное устройство, которое содержит на едином кристалле:
· Центральный восьмиразрядный процессор,
· Память данных (ПД) объемом 128 байт (аналог ОЗУ в обычных МПС),
· Память команд (ПК) объемом от 0 до 32 К в зависимости от типа ОЭВМ (аналог ПЗУ в обычных МПС),
· Четыре восьмиразрядных программируемых канала ввода-вывода, (обозначаемых как порты P0, P1, P2, P3),
· Два 16-битовых многорежимных таймера/счетчика,
· Систему прерываний с пятью векторами и двумя уровнями,
· Последовательный интерфейс для связи с ПК через канал RS-232,
· Тактовый генератор.
Обозначение ОЭВМ показано на рис. 2.16.
Структурная схема приведена на рис. 2.17 и состоит из следующих основных функционально законченных узлов:
· Блок управления, предназначен для выработки синхронизирующих и управляющих сигналов, обеспечивающих координацию совместной работы блоков ОЭВМ во всех допустимых режимах её работы
· Арифметико-логическое устройство (АЛУ), обеспечивающее выполнение арифметических и логических операций, а также операции логического сдвига, обнуления, установки и т.п.
· Блок таймеров / счетчиков, предназначенный для подсчета внешних событий, для получения программно управляемых внешних задержек и выполнения времязадающих функций ОЭВМ.
· Блок последовательного интерфейса и прерываний, предназначенный для организации ввода-вывода последовательных потоков информации и организации системы прерывания программ.
Рис. 2.16. Обозначение БИС ОЭВМ
· Программный счетчик, предназначенный для формирования текущего 16-разрядного адреса программной памяти и 8/16-разрядного адреса внешней памяти данных
· Память данных, служащая для хранения и выдачи информации, используемой в процессе выполнения программ
· Память команд, предназначенная для хранения программ и имеющая отдельное от памяти данных адресное пространство.
Рис 2.17. Структурная схема ОЭВМ
ОМЭВМ имеет:
32 регистра общего назначения
128 определяемых пользователем программно-управляемых флагов
набор регистров специальных функций, наименование и адреса которых приведены в табл. 2.1.
Таблица 2.1
2.5.1. Организация памяти
Все ОЭВМ семейства МCS-51 имеют несколько адресных пространств, функционально и логически разделенных за счет разницы в механизмах адресации и сигналах управления записью и чтением:
· память команд (ПК),
· внутренняя память данных (ПД),
· внешняя память данных (ПД).
Структура адресного пространства ОМЭВМ показана на рисунке 2.18.
Слева приводятся адреса соответствующих областей памяти.
Память команд – имеет 16-битовую адресную шину, её элементы адресуются с использованием счетчика команд (РС) или инструкциями, которые вырабатывают 16-разрядные адреса. Память команд доступна только по чтению. Она имеет байтовую организацию и общий объем до 64Кбайт. Ряд ОЭВМ содержат расположенную на кристалле внутреннюю память команд емкостью от 4Кбайт до 32 Кбайт, которая может быть расширена до 64 Кбайт за счет подключения микросхем внешней память команд.
Сигналом, стробирующим выборку и ввод байта из внешней памяти команд в ОЭВМ является сигнал PME (РSEN). Для ОМЭВМ, содержащих внутреннюю память команд, сигнал РSEN формируется только в том случае, если адрес в счетчике команд превосходит максимальный адрес внутренний памяти команд, например, 0FFFH для 4 Кбайтной версии. Для ОЭВМ, не имеющих внутренней памяти команд, РSEN формируется при любом обращении к памяти команд.
Рис 2.18. Организация памяти ОЭВМ
Внутренняя память данных – состоит из 2-х областей:
· 128 байт оперативной памяти (ОЗУ) с адресами 0-7FH
· область регистров специальных функций (SFR), занимающая адреса 80H-FFH.
Распределение пространства внутренней памяти данных показано на рис. 2.19
Младшие 32 байта внутреннего ОЗУ данных сгруппированы в 4 банка по 8 регистров в каждом (БАНК 0 – БАНК 3 на рис. 2.4). Команды программы могут обращаться к регистрам, используя их имена R0 – R7. Два бита PSW (указатели банка рабочих регистров RS0 и RS1) определяют, с регистрами какого банка проводятся манипуляции (прямая адресация). Следующие после банков регистров внутреннего ОЗУ данных 16 байт (адреса 20H-2FH) образуют область ячеек, к которым возможна побитовая адресация.
Обращение к внутреннему ОЗУ данных всегда осуществляется с использованием 8-разрядного адреса.
Рис 2.19. Распределение памяти данных
Внешняя память данных – формируется дополнительными микросхемами памяти и может иметь емкость до 64 Кбайт. Обращение к ячейкам внешней памяти данных осуществляется только с использованием косвенной адресации по регистрам R0 и R1 активного банка регистров внутреннего ОЗУ (команды типа MOV @Ri) или по регистру специальных функций DPTR (команды типа MOVХ @DPTR). При обращении к внешней памяти данных адрес выводится через порт Р0 (младший байт) и порт Р2 (старший байт) ОЭВМ. Обмен байтом данных производится через порт Р0 ОЭВМ. Считывание данных из внешнего ОЗУ в ОЭВМ производится с помощью выходного сигнала ОЭВМ RD, а запись - сигнала WR.
2.5.2. Организация ввода-вывода
Порты Р0, Р1, Р2, Р3 являются двунаправленными портами ввода-вывода и предназначены для обеспечения обмена информацией ОМЭВМ с внешними устройствами, образуя 32 шины ввода-вывода. Помимо работы в качестве обычных портов ввода-вывода линии портов Р0-Р3 могут выполнять ряд дополнительных функций.
Через порт Р0:
· выводится младший байт адреса А0-А7 при работе с внешней памятью программ и внешним ОЗУ
· выдается из ОЭВМ и принимается в ОЭВМ байт данных при работе с внешней памятью (таким образом, этот порт представляет собой в этом режиме так называемую мультиплексированную шину адреса/данных).
· задаются данные при программировании внутреннего ППЗУ, и читается содержимое внутренней памяти команд
Через порт Р1:
задается младший байт адреса при программировании внутреннего ППЗУ и при чтении внутренней памяти программ
Через порт Р2:
выводится старший байт адреса А8-А15 при работе с внешней памятью команд и внешней памятью данных (для внешней памяти данных – только при использовании команд MOVX A,@DPTR и MOVX @DPTR,A, которые вырабатывают 16-разрядный адрес)
· задается старший байт (разряды А8-А15) адреса при программировании внутреннего ППЗУ и при чтении внутренней памяти программ.
Каждая линия порта Р3 имеет индивидуальную альтернативную функцию:
Р3.0 – RxD, вход последовательного порта;
Р3.1 – TxD, выход последовательного порта;
Р3.2 – INT 0, используется как вход 0 внешнего запроса прерывания;
Р3.3 – INT 1, используется как вход 1 внешнего запроса прерывания;
Р3.4 – T0, используется как вход счетчика внешних событий Т/С0;
Р3.5 – T1, используется как вход счетчика внешних событий Т/С1;
Р3.6 – WR, строб записи во внешнюю память данных, выходной сигнал, сопровождающий вывод данных через порт Р0 при использовании команд MOVX @Ri,A и MOVX @DPTR,A;
Р3.7 – RD, строб чтения из внешней памяти данных, выходной сигнал, сопровождающий ввод данных через порт Р0 при использовании команд MOVX A,@Ri и MOVX A,@DPTR.
Таким образом, функции портов ввода/вывода зависят от режима работы ОЭВМ. В принципе она может работать в двух принципиально разных режимах:
· минимальный режим, в котором не требуется подключения к ОЭВМ дополнительных БИС ОЗУ, ПЗУ, или УВВ. В этом случае все 4 порта могут использоваться совершенно произвольно.
· максимальный режим, в котором требуется подключение к ОЭВМ дополнительных БИС либо ОЗУ, либо ПЗУ, либо УВВ. В этом случае необходимо организовать шинную структуру (ША, ШД и ШУ).При этом для фиксации младшего байта адреса ША необходимо подключить специальный регистр-защелку, в котором будет храниться этот байт в течение всего цикла обращения к внешней памяти. (Напомним, что Р0 является мультиплексированной шиной адреса-данных). По сигналу ALE этот байт запоминается в регистре. Старший байт адреса и так сохраняется неизменным на выводах порта Р2. Таким образом в этом режиме занятыми оказываются порты Р0, Р2, и в случае подключения внешних ОЗУ или УВВ - выводы WR и RD.
2.5.3. Синхронизация ОЭВМ
ОЭВМ имеет встроенный генератор тактовых импульсов, к которому необходимо присоединять кварцевый резонатор с частотой 1 -12 МГц, LC-цепочку или внешний генератор.
На рисунке 2.20 показано формирование машинных циклов ОЭВМ. Все машинные циклы одинаковы и состоят из 12 периодов сигнала ALE. Практически все команды выполняются за один или два машинных цикла, кроме команд умножения MUL A,B и деления DIV A,B, продолжительность выполнения которых составляет 4 машинных цикла.
Рис. 2.20. Синхронизация ОЭВМ
1.5.4. Блок таймеров/счетчиков
В состав блока входят:
два 16-разрядных регистра Т/С0 и Т/С1;
· восьмиразрядный регистр режимов Т/С (TMOD);
· восьмиразрядный регистр управления (TCON);
· схема инкремента;
· схема фиксации INT 0, INT 1, T0, T1;
· схема управления флагами;
· логика управления Т/С.
Режим работы каждого Т/С определяется значением битов М0, М1 в регистре TMOD. Т/С 0 и Т/С 1 имеют 4 режима работы:
· режим 0 (М0=0, М1=0) – Т/С представляет собой устройство на основе 13-разрядного регистра, функцию делителя на 32 выполняют регистры TL0, TL1,
· режим 1 (М0=0, М1=1) – аналогичен режиму 0 отличие в том, что данный режим превращает Т/С в устройство на основе 16-разрядного регистра,
· режим 2 (М0=1, М1=0) – Т/С представляет собой устройство на основе 8-разрядного регистра,
· режим 3 (М0=1, М1=1) – Т/С 1 в режиме 3 заблокирован и просто сохраняет свой счет (значение кода в регистре Т/С). Т/С 0 представляет собой 2 независимых устройства на основе 8-разрядных регистров TL0, TH0. Устройство на основе TL0 может работать только в режиме таймера.
Во всех режимах, кроме режима 2, после переполнения Т/С счет продолжается с величины 00H, если Т/С не выключить с помощью битов TR0, TR1 или входов INT0, INT1.
Оба счетчика могут работать в двух режимах:
· внутренний таймер, когда на вход счетчика подается сигнал с внутреннего тактового генератора (частота сигнала Fкв/12).
· счетчик событий, когда на вход счетчика подается внешний сигнал с вывода T0 (для Т/С0), T1 ( для Т/С1).
Переключение режимов производится установкой битов C/T0, C/T1 в управляющем регистре TMOD.
Программирование таймеров-счетчиков сводится к установке их режимов (установке соответствующих битов в регистре TMOD) и запуска счетчика установкой соответствующего бита в регистре TCON. Причем надо учитывать, что TCON допускает побитовую адресацию (т.е. в командах можно обращаться непосредственно к определенному биту), а TMOD не допускает побитовую адресацию (т.е. для установки соответствующего бита надо записывать в регистр целый байт с определенным значением требуемых битов). В табл. 2.2 указаны биты для управления таймерами.
Таблица 2.2
Регистр TMOD = 89H
Gate1 |
C/T1 |
M11 |
M01 |
Gate0 |
C/T0 |
M10 |
M00 |
Бит |
Наименование |
Назначение бита |
Доступ к биту |
0,1 |
М00, М10 |
Биты режима для таймера 0 |
Программно |
2 |
C/T0 |
C/T0 = 0 – режим таймера, = 1 – режим счетчика событий (сигнал со входа Т0; для таймера 0) |
Программно |
3 |
Gate0 |
Gate0 = 1 – запуск таймера 0, если на входе INT0 =1 и флаг TR0=1 в регистре TCON, Gate0 = 0 – запуск таймера 0, если флаг TR0=1 в регистре TCON, |
Программно |
4,5 |
М01, М11 |
Биты режима для таймера 1 |
Программно |
6 |
C/T1 |
C/T1 = 0 – режим таймера, = 1 – режим счетчика событий (сигнал со входа Т1; для таймера 1) |
Программно |
7 |
Gate1 |
Gate1 = 1 – запуск таймера 1, если на входе INT1 =1 и флаг TR1=1 в регистре TCON, Gate1 = 0 – запуск таймера 1, если флаг TR1=1 в регистре TCON, |
Программно |
Регистр TCON = 88H
TF1 |
TR1 |
TF0 |
TR0 |
IE1 |
IT1 |
IE0 |
IT0 |
Бит |
Наименование |
Назначение бита |
Доступ к биту |
0 |
IT0 |
Бит управления типом прерывания 0. Если IT0 = 1 – запуск прерывания по фронту, IT0 = 0 - запуск прерывания по низкому уровню |
Программно |
1 |
IE0 |
Флаг прерывания 0. Устанавливается аппаратно при обнаружении прерывания 0, сбрасывается при обслуживании прерывания. |
Аппаратно |
2 |
IT0 |
Бит управления типом прерывания 1. Если IT1 = 1 – запуск прерывания по фронту, IT1 = 0 - запуск прерывания по низкому уровню |
Программно |
3 |
IE1 |
Флаг прерывания 1. Устанавливается аппаратно при обнаружении прерывания 1, сбрасывается при обслуживании прерывания. |
Аппаратно |
4 |
TR0 |
Флаг управления запуском таймера 0. При программной установке – происходит запуск таймера, при программном сбросе – останов. |
Программно |
5 |
TF0 |
Флаг переполнения таймера 0. Устанавливается аппаратно при переполнении таймера, сбрасывается при переходе к подпрограмме обслуживания таймера 0 |
Аппаратно |
6 |
TR1 |
Флаг управления запуском таймера 1. При программной установке – происходит запуск таймера, при программном сбросе – останов. |
Программно |
7 |
TF1 |
Флаг переполнения таймера 1. Устанавливается аппаратно при переполнении таймера, сбрасывается при переходе к подпрограмме обслуживания таймера 1 |
Аппаратно |
2.5.5.Блок последовательного интерфейса и прерываний (ПИП)
В состав блока ПИП входят:
· буфер ПИП, обеспечивающий побайтовый обмен информацией между внутренней магистралью данных и шиной ПИП;
· логика управления ПИП, предназначенная для выработки сигналов управления, обеспечивающих режимы работы последовательного интерфейса и организации прерывания программ;
· регистр управления (SCON), предназначенный для приема и хранения кода восьмибитового слова, управляющего последовательным интерфейсом;
· буфер передатчика, предназначен для приема с шины ПИП параллельной информации и выдачи её в виде последовательного потока символов на передатчик последовательного порта;
· буфер приёмника, предназначен для приема данных в виде последовательного потока символов с последовательного порта, преобразования их в параллельный вид, хранения и выдачи в параллельном виде на внутреннюю шину ПИП;
· регистр разрешения прерываний (IE), предназначенный для разрешения или запрещения прерываний от соответствующих источников.
Последовательный интерфейс МК-51 может работать в следующих режимах:
режим 0. Информация передается и принимается через вход приемника RxD. Через выход передатчика TxD выдаются импульсы синхронизации. Формат посылки-8 бит. Частота приема и передачи – fкв /12, где fкв – тактовая частота ОЭВМ,
· режим 1. Информация передается через выход передатчика TxD, а принимается через вход приёмника RxD. Формат посылки – 10 бит. Частота приема/передачи задается таймером Т/С1.
· режим 2. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки – 11 бит. Частота приема/передачи задается программно и может быть равна fкв /32 или fкв /64.
· режим 3. Идентичен режиму 2 за исключением частоты приема/передачи, которая задается Т/С1.
Система прерывания имеет 5 источников прерывания (в скобках указывается адрес ПК, куда передается управление, когда возникает прерывание, т.е. адрес подпрограммы обслуживания):
· Внешнее прерывание с входа INT0 (0003H),
· Встроенный таймер-счетчик 0 (000BH),
· Внешнее прерывание с входа INT1 (00013H),
· Встроенный таймер-счетчик 1 (0001BH),
· Прерывание от последовательного порта (00023H).
Управление системой прерывания осуществляется с помощью регистров IE (адрес A8H) и IP (адрес B8H). В табл. 2.3 указаны значения этих битов управления. Регистр IE управляет разрешением прерывания от какого-либо источника, а IP – приоритетом прерывания при одновременном приходе запросов от нескольких источников. Различают 5 уровней приоритета от самого высшего (он указан первым в предыдущем списке источников), до самого низшего (самая последняя строка в списке). Кроме этих уровней регистр IP устанавливает высокий или низкий приоритет внутри каждого уровня в указанном списке. Дело в том, что текущее прерывание может быть прервано только запросом от источника, приоритет которого выше по списку и установлен битом в регистре IP в высокий уровень. При других условиях запрос игнорируется.
Таблица 2.3
Регистр IE = A8H
EA |
------- |
------- |
ES |
ET1 |
EX1 |
ET0 |
EX0 |
Бит |
Наименование |
Назначение бита |
Доступ к биту |
0 |
EX0 |
Бит разрешения/ запрещения прерывания 0. Устанавливается программно для разрешения прерывания по входу INT0 |
Программно |
1 |
ET0 |
Бит разрешения/ запрещения прерывания от таймера/счетчика. Устанавливается программно для разрешения прерывания от таймера/счетчика 0. |
Программно |
2 |
EX1 |
Бит разрешения/ запрещения прерывания 1. Устанавливается программно для разрешения прерывания по входу INT1 |
Программно |
3 |
ET1 |
Бит разрешения/ запрещения прерывания от таймера/счетчика. Устанавливается программно для разрешения прерывания от таймера/счетчика 1. |
Программно |
4 |
ES |
Бит разрешения/ запрещения прерывания от последовательного порта. Устанавливается программно для разрешения прерывания по флагам TI, RI. |
Программно |
7 |
EA |
Флаг разрешения/запрещения всех прерываний. При установке разрешает те прерывания, флаги которых в данном регистре установлены, при сбросе запрещает сразу все прерывания |
Программно |
Регистр IP = B8H
------ |
------- |
------- |
PS |
PT1 |
PX1 |
PT0 |
PX0 |
Бит |
Наименование |
Назначение бита |
Доступ к биту |
0 |
PX0 |
Бит приоритета прерывания 0. Устанавливается/сбрасывается программно для определения уровня приоритета ( высокий/низкий) по входу INT0 |
Программно |
1 |
PT0 |
Бит приоритета прерывания от таймера/счетчика 0 . Устанавливается/сбрасывается программно для определения уровня приоритета (высокий/низкий) прерывания от таймера/счетчика 0. |
Программно |
2 |
PX1 |
Бит приоритета прерывания 1. Устанавливается/сбрасывается программно для определения уровня приоритета ( высокий/низкий) по входу INT1 |
Программно |
3 |
PT1 |
Бит приоритета прерывания от таймера/счетчика 1. Устанавливается/сбрасывается программно для определения уровня приоритета (высокий/низкий) прерывания от таймера/счетчика 1. |
Программно |
4 |
PS |
Бит приоритета прерывания от последовательного порта. Устанавливается/сбрасывается программно для определения уровня приоритета (высокий/низкий) прерывания |
Программно |
2.5.6. Регистр состояния (PSW)
Регистр состояния программы (PSW) предназначен для хранения информации о состоянии АЛУ при выполнении программы. Обозначение разрядов регистра и их назначение приведены в таблицах 2.4 и 2.5.
Таблица 2.4
Таблица 2.5
2.6. Система команд микропроцессора КР580ИК80А
Система команд МП играет очень важную роль при выборе конкретного вида МПК для практических целей, так как от вида этой системы зависит способ разбиения исходной программы пользователя на элементарные шаги, быстродействие, гибкость управления и другие характеристики.
По функциональному признаку все команды МП можно подразделить на три группы: команды передачи данных (из регистров МП в память, из регистра в регистр и т.д.), команды управления (команды перехода, изменения отдельных разрядов регистров, команды управления прерываниями и т.д.) и команды обработки данных (арифметические и логические операции, сдвиг и т.д.)
В зависимости от типа МП команды могут быть однобайтовыми, двухбайтовыми или трехбайтовыми (как в системе команд КР580ИК80А). Они могут иметь фиксированную длину (например, для К1801ВМ1 длина команды составляет 16 разрядов). Для микропрограммируемых МП длина микрокоманды меняется в зависимости от принятой структуры МПС (для МП К584ВМ1 длина команды управления ЦПЭ составляет 9 разрядов).
С точки зрения программиста, система команд – это таблица, в которой указаны все необходимые сведения для составления программ.
В Приложении 1 приведена система команд МП КР580ВМ80, в Приложении 2 - система команд ОЭВМ К1816ВЕ51.
Например, для МП КР580ИК80А заголовки столбцов системы команд могут выглядеть так, так показано в табл. 2.6
Таблица 2.6
Пример таблицы системы команд
Мнемоника и операнды |
Код операции |
Кол-во байт |
Кол-во тактов |
Описание операции |
Признаки |
||||
C |
AC |
Z |
P |
S |
|||||
MOV А,В |
77 |
1 |
4/7 |
Аß(В) |
- |
- |
- |
- |
- |
В первом столбце указывается некоторое обозначение команды или группы команд в виде нескольких латинских букв (как правило, это сокращение английского наименования операции). Такое обозначение называется мнемоника. Ее легче запомнить, она обозначает сразу группу операций. После мнемоники через пробел приведены операнды (данные, с которыми оперирует команда). Для данной конкретной системы команд могут встречаться 3 варианта: команда без операндов (только одна мнемоника, когда по логике выполнения самой команды ясно, с какими операндами она работает), с одним операндом (когда работа происходит с одним байтом данных, в этом случае через пробел указывается этот операнд) и с двумя операндами ( например, при сложении двух чисел, в этом случае второй операнд обязательно отделяется от первого запятой).
Операндами в данном случае могут быть следующие 6 типов данных:
1. Обозначения регистров (обозначается в командах как R1 или R). Для данного вида МП это может быть: B, C, D, E, H, L, M, A.
2. Байт данных (обозначается как D8), как правило, второй байт команд с непосредственной адресацией.
3. Номер устройства УВВ, с которым будет обмениваться МП (обозначается, как N и представляет собой второй байт двухбайтовых команд ввода вывода).
4. Пара регистров (обозначается, как обобщенная пара YZ в командах, а непосредственно в командах может принимать значения: BC, DE, HL, SP, PSW (пара, состоящая из A и F)).
5. Двухбайтовые данные (обозначаемые как D16 и как правило хранящиеся во втором и третьем байтах трехбайтовых команд).
6. Двухбайтовый адрес перехода (обозначается, как ADR, и помещается во втором и третьем байтах трехбайтовых команд).
В системе команд как правило, все команды разделены на группы. Группы объединяют однотипные команды. Например, для МП КР580ИК80А существует 10 групп:
1. Однобайтные пересылки – группа команд, которые пересылают один байт за команду.
2. Двухбайтовые пересылки – пересылается сразу 2 байта.
3. Команды ввода-вывода.
4. Команды обмена байтами.
5. Арифметические и логические команды с одним операндом.
6. Арифметические и логические команды с двумя операндами.
7. Команды передачи управления.
8. Команды сдвига содержимого аккумулятора.
9. Команды вызова и возврата из подпрограмм.
10. Специальные команды.
2.7.Система команд ОЭВМ серии MCS-51
Система команд ОЭВМ содержит 111 базовых команд с форматом 1, 2 или 3 байта. Команды выполняются за один, два или четыре (умножение и деление) машинных цикла. При частоте тактового генератора 12 МГц, одно-цикловые команды выполняются за 1 мкс, двух цикловые – 2мкс и т.д. Из 111 типов команд 64 выполняются за 1 мкс (12 тактов), 45 команд - за 2 мкс (24 такта) и две команды за 4 мкс (48 тактов). Мнемоники и описание команд приведены в Приложении 2.
Примечание:
1) В отличие от мнемоник МП КР580ВМ80А, по виду команды можно сразу же определить, какая адресация используется: если в операнде присутствует символ "#" - то это непосредственная адресация, и число, стоящее за символом непосредственно загружается в регистр или ячейку памяти; если в операнде присутствует символ "@" - то это косвенная адресация, и регистр за этим символом содержит адрес, где находятся данные.
2) В отличие от мнемоник МП КР580ВМ80А, в трехбайтных командах, где вторым и третьим байтом могут быть или 16-разрядный адрес, или 16-разрядные данные, для ОЭВМ вторым байтом указывается старший байт адреса или данных, а третьим - младший.
Более подробно о программных и аппаратных особенностях микроконтроллеров семейства MCS-51 рассказано в электронной справочно-информационной системе, разработанной на кафедре "Персональная электроника" [13].
3. Запоминающие устройства и их основные характеристики
Запоминающие устройства МПС служат для хранения управляющих программ и данных, которые подлежат обработке. В настоящее время в МПС используются исключительно полупроводниковые запоминающие устройства. При этом требуется, чтобы при выключении питания информация, представляющая собой программу работы МПС (или часть программы), сохранялась. Для этого используются постоянные запоминающие устройства (ПЗУ), которые при отключении питания достаточно долго сохраняют записанную в них информацию. Для хранения промежуточных результатов используются оперативные запоминающие устройства (ОЗУ). Они не сохраняют информацию при выключении питания, но в ОЗУ в процессе работы можно как записывать новую информацию, так и извлекать ее, в то время как из ПЗУ можно только извлекать информацию. Существуют еще так называемые энергонезависимые ОЗУ, в которых при отключении питания некоторое время информация сохраняется. Все запоминающие устройства выполнены в виде БИС с высокой степенью интеграции по различной технологии, что и определяет их эксплуатационные характеристики.
3.1. Оперативные запоминающие устройства
Оперативные запоминающие устройства (ОЗУ) могут классифицироваться по ряду признаков. На рис. 3.1 показана классификация такого рода систем памяти.
Рис. 3.1. Типы оперативных запоминающих устройств
Системы ОЗУ могут представлять собой небольшое число ячеек, встроенных в сам кристалл МП (это РОН или сверхоперативное ЗУ (СОЗУ)). Оно позволяет обеспечить наибольшее быстродействие при работе с этими ячейками. В любом случае - выполняется ли ОЗУ в виде отдельных БИС на плате МП или ОЭВМ, или реализовано на самом кристалле МП или ОЭВМ, объем ОЗУ ограничивается емкостью адресуемой МП памяти. Таким образом, в зависимости от назначения МПС может комплектоваться различными типами ОЗУ.
БИС ОЗУ могут иметь различную структуру. Под структурой понимается количество разрядов числа, которые могут одновременно записываться или считываться из БИС, а также ее информационная емкость. Так, если говорят, что структура БИС ОЗУ - 1024х1,то это означает, что БИС имеет один вход и один выход и может хранить 1024 бита информации. Такая структура называется одноразрядной. Подобные БИС были весьма распространены в начале развития МП техники. Однако есть и многоразрядные БИС, например, структуры 1024х4, что означает, что одновременно можно записать в БИС 4 разряда, а емкость БИС составляет 1024х4=4096 бит.
Принцип запоминания информации в ячейках памяти БИС также может быть различным. Существуют статические БИС ОЗУ. Элементом запоминания в них, который хранит информацию в таких ОЗУ, является триггер. Поэтому при включенном питании элемент памяти будет хранить информацию сколь угодно долго. Это позволяет упростить схемы управления записью-считыванием. Однако ячейки памяти такого вида занимают достаточно много места на кристалле, что не позволяет создавать БИС большой емкости. Кроме того, такие БИС потребляют сравнительно большую мощность.
- Другим принципом запоминания информации является динамический способ. Элементом памяти таких ОЗУ служит емкость, которая заряжается определенным образом при записи информации в данную ячейку. Однако со временем емкость разряжается, и информация из ячейки пропадает. Для исключения этого используют так называемую регенерацию ячеек памяти. Для этого не реже, например, одного раза в 2 мс на адресные входы БИС подается последовательность импульсов (т.е. происходит перебор адресов ячеек, но информация в них не записывается), емкости ячеек подзаряжаются и сохраняют свой заряд длительное время. Таким образом, требуется обеспечить этот перебор с помощью схем регенерации, что усложняет структуру модуля ОЗУ МПС. Однако размеры ячеек динамического ОЗУ существенно меньше размеров ячеек статического ОЗУ, и потребление мощности значительно ниже. Поэтому емкость БИС динамического ОЗУ гораздо больше, чем емкость БИС статического типа. Однако, недавно стали выпускать БИС, у которых схема регенерации помещена внутри самой БИС. Основными характеристиками ОЗУ любого типа являются:
- -емкость,
- -организация,
- время цикла записи или цикла выборки адреса,
- технология,
- потребляемая мощность.
На рис. 3.2 показана структура и функциональное обозначение простейшей БИС статического типа К565РУ2. На выводы А0...А9 подается комбинация нулей и единиц, которая соответствует адресу выбранной ячейки. Структура БИС соответствует 1024х1,т.е. после подачи адреса на единственном выходе появляется информация в виде одного бита. Если на входе CS (выбор микросхемы) будет высокий логический уровень, то выход БИС будет находиться в третьем состоянии (состоянии высокого выходного импеданса), БИС будет как бы отключена и не будет оказывать никакого влияния на остальные БИС модуля памяти. Если CS = 0, то после подачи адреса на адресные входы, на выходе DO спустя определенное время (называемое временем цикла Т) появится информация из данной ячейки ОЗУ. При необходимости записать новую информацию в определенную ячейку нужно после подачи комбинации адреса подать на вход БИС R/W низкий логический уровень. Тогда информация с вывода DI запишется в данную ячейку.
Рис. 3.2. Функциональное обозначение статической БИС ОЗУ
Основой схемы ОЗУ (см. рис. 3.3) является матрица запоминающих элементов размером 32х32. Дешифраторы столбцов и строк в соответствии с информацией на адресных входах выбирают определенную ячейку матрицы, и ее содержимое через формирователь ввода-вывода подается на выход. Или при наличии низкого логического уровня на выводе RD/WR информация со входа через формирователь поступает на ячейку. Схема управления осуществляет управление всеми составными частями БИС.
В табл. 3.1 приведены основные характеристики выпускаемых в настоящее время БИС ОЗУ.
Рис. 3.3. Структурная схема одноразрядного ОЗУ
Таблица 3.1
Наименование БИС |
Емкость и организация |
Тп , мкс |
Технология |
Pпотр, мВт/бит в реж. |
Принцип запоминания |
|
|
|
|
|
хранения |
Обращения |
|
К505РУ2 |
1024х1 |
1,2 |
р-МОП |
0,15 |
0,6 |
статич. |
К565РУ2 |
1024х1 |
0,8 |
п-МОП |
- |
0,35 |
статич. |
К541РУ2А |
1024х1 |
0,4 |
И2Л |
- |
0,26 |
статич. |
К507РУ1 |
1024х1 |
0,7 |
р-МОП |
- |
0,075 |
динамич. |
К565РУ1 |
4096х1 |
0,7 |
п-МОП |
0,008 |
0,175 |
динамич. |
К565РУ3 |
16384х1 |
0,4 |
п-МОП |
0,005 |
0.04 |
динамич. |
UMC61C64 |
8192x8 |
0,12-0,04 |
КМОП |
0,0001 |
0,008 |
Статич. |
UMC61C256 |
32768х8 |
0,12-0,04 |
КМОП |
0,0001 |
0,008 |
Статич. |
3.2. Постоянные запоминающие устройства
В настоящее время применяются следующие виды ПЗУ:
- масочные ПЗУ, программируемые на предприятии изготовителе,
- однократно программируемые пользователем на специальных установках,
- многократно перепрограммируемые ПЗУ (ППЗУ).
Первый вид ПЗУ является наиболее простым и дешевым. В условиях массового производства на последних стадиях изготовления на кристалл накладывается маска и затем осуществляется осаждение металла в областях, соединяющих ячейки памяти, в которых записана информация, с выходными шинами. Те ячейки, которые должны содержать 1, не соединяются с шинами. Изменяя конфигурацию маски, можно изменять программу, записанную в ПЗУ. Однако изменить ранее занесенную информацию уже не удастся. Сами ячейки памяти могут быть выполнены по различной технологии: это могут быть просто диоды, полевые транзисторы и т.п. Использование такого вида ПЗУ целесообразен в тех случаях, когда в нем записана программа, которая не будет изменяться в процессе работы или при расширении МПС. Например, ПЗУ знакогенераторов, ПЗУ основной управляющей программы, микропрограммы микропрограммируемого МП - вот основные области использования ПЗУ масочного типа.
В случае, когда пользователь в момент изготовления еще не отладил программу, которую необходимо записать в ПЗУ, используется тип ПЗУ, программируемый самим пользователем. Его отличие от первого типа ПЗУ состоит в наличии на БИС плавких перемычек. Они соединяют все ячейки ПЗУ с выходными шинами, так что первоначально все ячейки содержат нули. На специальных установках, подавая на соответствующие плавкие вставки достаточно большое напряжение, происходит испарение металла этих вставок. Таким образом, некоторые ячейки ПЗУ оказываются отсоединенными от выходных шин, что равносильно наличию единицы в соответствующей ячейках. Естественно, программа, записанная в такой тип ПЗУ, уже не может быть изменена; смена программы означает смена всей БИС. Такой тип ПЗУ целесообразно применять при мелкосерийном я единичном производстве МПС, когда пользователь сам разрабатывает программы.
Наиболее интересным семейством ПЗУ является ПЗУ с многократным перепрограммированием (ППЗУ). Для перепрограммирования используются различные физические эффекты твердого тела. Условно можно разделить БИС памяти на ППЗУ, перепрограммируемые электрическими импульсами (ЭСППЗУ) или в латинском обозначении EEPROM, и ППЗУ с ультрафиолетовым стиранием ранее записанной информации. Отдельно особняком стоят так называемые FLASH БИС памяти.
Для первого типа ППЗУ стирание информации осуществляется подачей некоторого отрицательного или положительного потенциала на все ячейки памяти. Информация в ячейках сохраняется благодаря свойствам "плавающего" затвора полевого транзистора, который является основой ячейки.
Второй тип ППЗУ - ППЗУ с ультрафиолетовым стиранием. Стирание информации осуществляется подачей ультрафиолетового излучения к поверхности кристалла через специальное кварцевое окно в корпусе БИС. Ультрафиолетовое излучение вызывает разряд емкости затвора полевого транзистора ячейки памяти. Поэтому в исходном состоянии все ячейки ППЗУ содержат единицы. Программирование осуществляется подачей программирующего импульса амплитудой около 12...25 В на затворы транзисторов ячеек, куда необходимо записать нули. Информация при отключенном питании сохраняется в течение более 10 тыс. часов. Этот тип ППЗУ наиболее удобен для разработки программ пользователем, так как неудачную программу можно легко стереть и записать новую.
FLASH БИС памяти в последнее время наиболее часто используется для внутренней памяти программ МК, да и для наращивания памяти МПС. По принципу действия и программирования они очень похожи на ЭСППЗУ, но есть возможность программирования БИС не вынимая из схемы, причем не требуется дополнительных источников программирования. Число циклов программирования составляет от 1000 до106.
В табл. 3.2 приведены характеристики основных типов ППЗУ.
Как правило, БИС ППЗУ по всем входам и выходам совместимы с ТТЛ уровнями, имеют выходы с тремя устойчивыми состояниями. Поэтому они соединяются с шинами МПС без всяких согласующих схем. Для создания блоков ОЗУ или ПЗУ большой емкости широко используется принцип "выключения" данной БИС, если на ее входе CS высокий логический уровень.
Таблица 3.2
Наименование БИС |
Организация |
Потребляемая мощность, мВт/бит |
Тц, нс |
Тип БИС |
519РЕ2 |
64х4 |
0,17 |
300 |
с эл. стиранием |
К558РР1 |
1024х2 |
0,15 |
500 |
с эл. стиранием |
К573РФ1 |
1024х8 |
0,1 |
700 |
с УФС |
К573РФ2 |
2048х8 |
0,1 |
700 |
то же |
27С64 |
8192х8 |
0,05 |
30-120 |
то же |
27С256 |
32767х8 |
0,05 |
30-120 |
то же |
Системы ПЗУ и ОЗУ могут быть конструктивно совмещены.
В последнее время на рынке появились новые перспективные БИС памяти, называемые FLASH-памятью. Как и в ППЗУ при отключении питания информация в них сохраняется достаточно долго, однако она может программироваться непосредственно в схеме с помощью подачи на БИС специальной управляющей последовательности импульсов. Правда, количество перезаписей в БИС ограничено (это число колеблется от 1000 до 1000000), однако в такой памяти удобно хранить данные, которые не должны пропасть и которые при некоторых условиях должны нечасто обновляться.
В табл. 3.3- 3.4 Показаны данные FLASH БИС лидера производства таких микросхем – фирмы AMD.
Таблица 3.3
FLASH-память с 12-вольтовым программированием
Микросхема памяти |
Организация |
Время доступа, нс |
Число выводов |
Am28F256A |
32Кх8 |
70-200 |
32 |
Am28F512A |
64Кх8 |
70-200 |
32 |
Am28FOlOA |
128Кх8 |
90-200 |
32 |
Am28F020A |
256К х 8 |
90-200 |
32 |
Таблица 3.4
Флэш-память с 5-вольтовым программированием
Микросхема памяти |
Организация |
Время доступа, нс |
Число выводов |
Am29F010 |
128Кх8 |
45-120 |
32 |
Am29F100 |
128Кх8, 64Kx 16 |
70-150 |
44, 48 |
Am29F200 |
256К x 8, 128Kx 16 |
70-150 |
44, 48 |
Am29F040 |
512Kx8 |
55-150 |
32 |
Am29F400 |
512Кх8, 256Кх 16 |
70-150 |
44,48 |
Am29F080 |
1Мх8 |
85-150 |
44. 48 |
Am29F800 |
1Мх8, 512Кх 16 |
85-150 |
40,44 |
Am29F016 |
2Мх8 |
90-150 |
48 |
Все микросхемы с 5-вольтовым программированием имеют блочную архитектуру, т.е. все адресное пространство разделено на сектора. При этом в зависимости от наличия или отсутствия так называемого загрузочного сектора (Boot Block) различают флэш-память однородную (29F010, 040, 080, 016), содержащую сектора одинакового объема, и с блоком загрузки (29F100, 200, 400, 800), содержащую сектора различного объема.
У всех микросхем с блочной архитектурой допускаются не только независимые запись и стирание, но и защита от чтения каждого сектора.
4. Средства связи МПС с объектами
4.1. Общие положения
В эпоху бурного внедрения микропроцессоров и ОЭВМ в различные стороны жизни человека со всей остротой встает проблема взаимодействия МП или ОЭВМ с объектами, которыми они предназначены управлять. Особенно это актуально для "нетрадиционного" применения МП техники: бытовой, автомобильной, связной и т.п.
Дело в том, что объекты управления, как правило, являются аналоговыми, т.е. выдают или принимают аналоговый сигнал с различными параметрами. МП или ОЭВМ является обязательно цифровым устройством, который оперирует только с двумя уровнями сигналов: "лог.0" - U<0,4 В и "лог.1" - U>4,5 В. Поэтому основная проблема при сопряжении объектов и МП устройств - преобразовать аналоговый сигнал в цифровой или обратно с максимальной достоверностью.
Этой задаче и служат многочисленные устройства связи и преобразователи. Причем проектирование качественной системы связи с объектом занимает чуть ли не первое место в создании всей системы, так как структура МПС как правило является типовой, а связь с объектами каждый раз приходится проектировать заново из-за исключительного разнообразия требований к таким устройствам.
Кроме того, в аналоговой технике почти всегда надо решать эмпирические задачи защиты от помех и наводок, что тоже затрудняет проектирование.
Все многообразие средств связи с объектами управления и МПС можно разделить на 4 класса:
· Аналого-цифровые преобразователи, которые преобразуют аналоговый сигнал на входе в цифровую форму для обработки в МПС.
· Цифро-аналоговые преобразователи, которые преобразуют цифровой код на входе в аналоговое напряжение для подачи на устройство управления.
· Преобразователи уровня, которые имеют на входе цифровое напряжение, но не соответствующее уровню ТТЛ, который применим в МПС, и которые преобразуют это напряжение в ТТЛ цифровой сигнал или наоборот.
· Различные преобразователи сигналов, которые преобразуют один параметр сигнала, который несет полезную информацию, в другой параметр, который удобнее обрабатывать на МПС, например, преобразователи в широтно-импульсную последовательность (ШИМ регуляторы).
В следующих разделах рассматриваются все эти группы устройств, причем сразу дается современное состояние вопроса.
4.1. Аналого-цифровые преобразователи
Аналого-цифровые преобразователи или сокращенно АЦП предназначены для преобразования аналогового сигнала различной природы в цифровой код, который затем должен обрабатываться МПС.
Основными параметрами АЦП являются:
· диапазон входного сигнала в вольтах. Могут встречаться случаи как однополярного, так и двуполярного входного сигнала.
· точность представления аналогового сигнала цифровым кодом. Этот параметр зависит главным образом от разрядности АЦП, так как весь диапазон входного напряжения делится на коэффициент, который получается вычислением двойки в степени количества цифровых разрядов. Например, если входной диапазон составляет 0 - 10,24 В, а количество разрядов - 10, то цена деления последнего разряда кода (что и является точностью представления) составляет 10,24 В/(1024-1)= 0,01 В.
· время преобразования сигнала - время необходимое для внутреннего преобразования аналогового сигнала в цифровую форму. Этот параметр может сильно различаться для разных АЦП: от 10-20 мкс до сверхбыстродействующих БИС с 10-100 нс задержкой.
· величина отклонения от линейной характеристики преобразования аналог-цифра. В ряде применений этот параметр очень важен.
Принцип действия АЦП хорошо известен и заключается в сравнении на ряде компараторов некоторого опорного напряжения и входного сигнала. В результате сравнения вырабатывается цифровой код. Таким образом, в классических схемах помимо самого АЦП в систему необходимо было включать:
· Источник опорного напряжения с очень стабильным выходным напряжением, номинал которого не должен быть ниже максимального входного напряжения. Правда, сейчас разработаны интегральные источники опорного напряжения с очень высокими характеристиками.
· Схему тактирования АЦП, которая управляет временными характеристиками преобразования. Сейчас, как правило, схема тактирования включена в БИС АЦП.
· Регистр для хранения преобразованных данных до считывания их в МП или ОЭВМ. Сейчас также он входит в состав БИС.
· Схему индикации готовности преобразования. Как уже указывалось, выходной код появляется не сразу, а спустя определенное время - время преобразования tпр. Как обычно, БИС вырабатывает сигнал, который индицирует готовность кода на выходе.
На современном этапе все эти компоненты, как правило, располагаются внутри кристалла АЦП. Другим важным моментом является число и номинал источников питания БИС. Ранее для ее работы требовалось не менее двух источников, из которых один был стандартным - +5В, а другой должен был вырабатывать, например, отрицательное напряжение для питания внутренних блоков АЦП. Сейчас при разработке стремятся использовать один стандартный источник, а отрицательное напряжение получают внутри БИС путем преобразования +5В. Таким образом, для подключения БИС АЦП к МПС не требуется никаких дополнительных схем.
В зависимости от особенностей применения сейчас в основном используют:
· 8-разрядные АЦП для применений, где не предъявляются особые требования к точности преобразования, и где требуется минимизировать стоимость оборудования,
· 10- и 12-разрядные АЦП для большинства применений, для которых с одной стороны необходимо осуществить приемлемую точность преобразования, а с другой стороны не увеличивать сильно затраты на аналоговую часть,
· 14- и более разрядные АЦП для редких случаев, когда надо получить уникальные характеристики устройства. В этих применениях уже необходимо предпринимать специальные меры для исключения помех, наводок и т.п.
Схема подключения 10-разрядного типового АЦП к ОЭВМ семейства MCS-51 показана на рис. 4.1. 8 младших разрядов подключаются, например, к порту Р1, а 2 старших - к отдельным выводам порта Р3. С отдельного вывода порта Р3 снимается сигнал запуска АЦП. Обычно используются 2 способа работы с АЦП:
· после формирования сигнала запуска АЦП осуществляется программная задержка на время, превышающее паспортную величину времени преобразования. Затем происходит последовательное считывание уже готовых данных с порта Р1 и выводов порта Р3. После этого программно образуется двухбайтовое слово кода, соответствующее напряжению на входе.
· используется отдельный вывод с АЦП готовности данных, который подается на вход прерывания INT0 или INT1 ОЭВМ. В этом случае этот сигнал прерывает выполнение основной программы, и считывание данных осуществляется в подпрограмме обработки прерывания.
При проектировании схем с АЦП очень важно соблюдать некоторые основополагающие принципы конструирования:
· не располагать рядом аналоговых слаботочных и цифровых схем на плате устройства,
· обязательно разделять аналоговую и цифровую "земли", соединяя их при необходимости только в одной точке на входе платы,
· стремиться к максимальному укорочению связей от входа сигнала до входа АЦП,
· использовать конденсаторы развязки в цепи входа сигнала (обычно и керамический и электролитический конденсаторы).
Рис. 3.1. Схема подключения АЦП к ОЭВМ
В качестве примера на рис. 3.2 показана схема типового АЦП фирмы Analog Devices AD7892 и указаны назначение ее выводов. Это подлинно интегральный АЦП, у которого все элементы реализованы на кристалле, имеет следующие характеристики:
· число разрядов - 12,
· диапазон входных напряжений - или 0 - 10,24 В или -5,12 - +5,12 В,
· время преобразования - 2 мкс,
· потребляемая мощность от единственного источника +5В - 0,5 мВт.
Рис.3.2. Схема интегрального АЦП AD7892.
3.2. Цифро-аналоговые преобразователи
В большинстве случаев схемы цифро-аналоговых преобразователей (ЦАП) значительно проще, чем схемы АЦП. ЦАП осуществляет обратное преобразование кода на входе в аналоговый выходной сигнал.
Основные параметры ЦАП по существу, такие же, как и АЦП, только, как правило, БИС не имеет сигнала готовности, хотя время преобразования, естественно, конечно.
Основной проблемой при проектировании системы преобразования является наличие сильных импульсных помех при изменении кода на входе. Поэтому предпринимают специальные меры для исключения этих помех программными и схемными методами. Для согласования уровней выходного сигнала применяют масштабирующие усилители.
3.3. Преобразователи уровня и другие средства связи
Часто требуется управлять сильноточными цепями или вырабатывать уровни напряжения, которые выходят за рамки обычных ТТЛ уровней. В ряде применений из-за возможности влияния сильноточных цепей на цифровые схемы МПС требуется осуществить гальваническую развязку МПС и управляемых цепей. В этих случаях используют преобразователи уровней, реализованных на дискретных элементах или специализированных ИС. Из-за разнообразия таких вариантов существует множество схем преобразования.
Одним из примеров такого преобразования можно рассмотреть действительно актуальную проблему соединения МПС с последовательным каналом передачи данных, стандарт которого называется RS-232. Этот стандарт предусматривает уровни сигналов, протоколы передачи байта данных и даже конструктивные требования. В частности, рассмотренный в главе 2 МК серии MCS-51 обеспечивает преобразование байта данных в последовательный код для передачи по каналу RS-232. Однако выходные сигналы БИС имеют уровень ТТЛ, а уровни сигналов в канале должны изменяться в пределах -12...+12 В.
Ранее для преобразования ТТЛ уровней применялись схемы на дискретных элементах и обязательно надо было предусматривать в системе еще 2 источника питания : +12 В и -12 В.
Теперь разработана целая серия преобразователей ТТЛ-RS-232, которые имеют внутренние преобразователи напряжения и поэтому требующие только одного источника питания +5 В. Например, популярный преобразователь ADM202 фирмы Analog Devices имеет 2 преобразователя для приемного тракта и 2 преобразователя для передающего тракта канала RS-232. При этом он требует подключения только 4 конденсаторов номинала 0,1 мкФ.
4. Применение микропроцессоров и микропроцессорных систем
4.1. Особенности создания РЭС на МП
В настоящее время, в эпоху бурного развития микроэлектроники вариантов применения МП и МПС в различных отраслях народного хозяйства становится все больше. Целесообразно указать некоторые закономерности и проблемы, с которым сталкиваются потребители микропроцессорной техники. Применение МП в РЭА можно разделить на две области:
1. "Традиционное" применение МП в цифровой аппаратуре и устройствах вычислительной техники: создание высокопроизводительных микро-ЭВМ, интеллектуальных средств общения человека и ЭВМ, развитие сетей, состоящих из микро-ЭВМ и т.п.
2. "Нетрадиционное" применение МП в аналоговой аппаратуре и системах управления объектами (контроллеры) для создания высокоэффективных связных систем, систем автоматического управления бытовыми приборами и т.д.
Второе направление в настоящее время развивается особенно бурно. Несмотря на большие различия в устройстве приборов, в которых целесообразно применять МП, их укрупненную схему можно представить в следующем виде (рис. 4.1).
Рис. 4.1. Типовая схема устройства для встраивания МП или ОЭВМ
Типовая схема включения МП в такую структуру приведена на рис.4.2.
Рис. 4.2.
Типовая схема включения МП
В системе МП берет на себя функции управления и обработки преобразованного аналогово-цифровым преобразователем (АЦП) входного воздействия. Выходной сигнал, формируемый МП, подается на цифро-аналоговый преобразователь (ЦАП), который формирует аналоговое выходное воздействие и управляющее воздействие для регулирования характеристик входного устройства.
Процесс принятия решения о замене устройства с жесткой логикой на МПС основывается на многих параметрах проектируемой системы. Основные критерии такой замены следующие:
· число корпусов ИС для построения прибора, основанного на схемном принципе, превышает некоторое критическое число. Для измерительных приборов это число колеблется от 30 до 100;
· -заменяемый прибор является многофункциональный, причем необходимо предусмотреть возможность наращивания функций;
· взаимодействие разрабатываемой системы с большим числом входных и выходных устройств;
· требуется осуществлять запоминание и обработку полученных данных;
· желательно осуществлять самоконтроль основных параметров системы;
· для измерительной аппаратуры велик объем измерений, которые должны осуществляться с большой производительностью;
· работа системы в реальном масштабе времени соответствует быстродействию МП, который предполагается использовать в системе.
Последнее обстоятельство является самым важным, так как, как правило, всегда программно-управляемое устройство работает медленнее системы с жесткой логикой. Таким образом, первая оценка применимости данного типа МП в системе реального времени связана с определением его производительности. Это предполагает, что алгоритм работы системы уже известен, определен перечень и объем задач, которые возлагаются на МПС. Однако, быстродействие процессора - еще не гарантия, что он будет успевать обрабатывать полученную информацию. Если программное обеспечение МПС не будет тщательным образом спроектировано для работы в системе реального времени, то могут возникнуть ситуация, когда работа системы будет полностью нарушена.
4.2. Применение МП в измерительных приборах
Измерительные приборы - системы, в которых применение МП может дать ощутимое повышение производительности, точности измерений, ввести дополнительные функции, позволяющие повысить эксплуатационные удобства при работе с приборами. В книге [11] подробно изложены особенности использования МП в различных измерительных системах; частотомерах, вольтметрах, осциллографах и т.п. Рассмотрим только один пример, самый простой, использования МП в частотомере. Стандартная схема частотомера, построенного на схемном принципе, изображена на рис. 4.3. Генератор счетных импульсов вырабатывает непрерывную последовательность достаточно коротких импульсов. Блок формирования временных интервалов в зависимости от частоты входного сигнала, образует временные ворота, длительность которых соответствует периоду входного колебания. Временные ворота подаются на временной селектор, который пропускает на выход только те счетные импульсы, которые попали во временные ворота. Таким образом, число счетных импульсов оказывается прямо пропорциональным периоду входного сигнала. Счетчик, на который подаются эти импульсы, подсчитывает их количество и формирует на дисплее значения измеренной частоты.
Рис. 4.3. Структурная схема цифрового частотомера
Структурная схема цифрового частотомера с микро-ЭВМ показана на рис. 4.4. Микро-ЭВМ в данной схеме берет на себя следующие функции:
· в зависимости от значения частоты входного сигнала она формирует временные интервалы для блока формирования временных ворот;
· переключает сигнал с одного мультиплексора на другой в зависимости от поддиапазона измерений;
· формирует значения измеренной частоты по показаниям счетчика и отображает их на дисплее;
· осуществляет ряд дополнительных действий, связанных с автоматизацией измерений.
Рис. 4.4. Структурная схема подключения микро-ЭВМ
Рассмотренный пример показывает, что в данном случае микро-ЭВМ не участвует в непосредственном формировании сигнала, а только управляет им. В других приборах, например, цифровых вольтметрах, осциллографах, микро-ЭВМ через АЦП и ЦАП непосредственно включаются в тракт обработка сигнала. Естественно, что во втором случае от нее требуется существенно большее быстродействие.
4.3. Применение МП в промышленности. связи, в быту
Рассмотрим конкретный пример использования МП в средствах связи. Точно так же как и в измерительных приборах, МП могут использоваться непосредственно в тракте сигнала, и для управления характеристиками этого тракта. Например, в приемниках МП может обрабатывать входной сигнал, осуществляя цифровую фильтрацию, а может управлять синтезатором частоты для управления только настройкой приемника. В качестве примера использования МП в радиоприемных устройствах приведем схему вычислителя для автоматической настройки одиночного параллельного контура на частоту приемника Fo. Настройка проводится с помощью варикапа, на который подается управляющее напряжение Uупр. На рис. 4.5 показана упрощенная схема приемника.
Рис. 4.5. Схема входного контура приемника
Напряжение на контуре детектируется амплитудным детектором (АД),преобразуется в АЦП в двоичный код и поступает на МП. МП оценивает сигнал и выдает управляющее напряжение Uy, которое после ЦАП поступает на варикап для изменения частоты настройки контура. Задача, решаемая МП, состоит в поиске экстремума функции Uy(F). Из всех известных алгоритмов поиска вследствие малой разрядности МП выбирается метод нулевого порядка - метод случайного пошагового поиска экстремума с запоминанием верного шага.
Суть алгоритма состоят в следующем. Так как напряжение на контуре является функцией расстройки {Fk-Fo}, то пря изменении F изменяется и Uk. МП формирует приращение U4(может быть и положительным и отрицательным). Происходит сравнение Uk=f(Uy) и Ukn+1=f(Uy+DUy).Если Ukn+1>Ukn, то делается шаг в ту же сторону, в противном случае - в противоположную. Одноэкстремальный вид функции настройки позволяет одновременно осуществить операцию автоматического поиска частоты Fo. АЦП и ЦАП подсоединяются к МПС через порты ввода/вывода. Покажем на примере, как можно построить минимальную конфигурацию МПС на ОЭВМ серии MCS-51, выполняющую данную задачу. Для построения портов ввода/вывода используются порты Р1 и Р2 ОЭВМ (рис. 3.1). Это позволяет использовать для ввода/вывода команды ОЭВМ работы портами. Предположим, что для АЦП осуществляется программная задержка на время, большее времени преобразования, чтобы избежать ввода еще одного регистра для опроса сигнала готовности АЦП. Сигнал на ЦАП подается сразу из ОЭВМ через порт. Однако при регулировании необходимо организовать программную задержку на время установления переходных процессов в контуре. Кроме того, для исключения влияния шума на процесс регулирования нужно установить нижний предел изменения DUk.
Распределим ресурсы системы. Регистр ОЭВМ R2 будет хранить значения Uy, в R3 помещаются значения предыдущего шага Uk-1, а в А - последующего шага Uk. В регистр R4 в процессе работы программы будем помещать число N - параметр программной задержки. На рис. 4.6 приведена структурная схема программы автоматического поиска и настройки на резонанс. Пояснения, данные справа каждого программного блока иллюстрируют, логику программы. Программа занимает в ПЗУ 53 ячейки, время обработки одного значения Uk вместе с временной задержкой составляет 400 мкс.
Рассмотренный пример показывает особенности применения МП в радиосистемах: работа в реальном масштабе времени, экономия памяти и аппаратных средств, использование программной задержки и т.п.
Теперь рассмотрим другой пример: использование МПС в системах сбора и обработки данных. Пусть требуется спроектировать автоматизированную систему опроса 8-ми аналоговых каналов, МПС должна последовательно опросить каждый из каналов, принять аналоговые данные, преобразовать их в цифровую форму и запомнить в соответствующих ячейках памяти МПС для последующей обработки.
Рис. 4.6. Структурная схема алгоритма
4.4. Система сбора аналоговой информации
Пусть по 8-ми каналам передается аналоговая информация с амплитудой не более 1 В положительной полярности и надо осуществлять выборку каждого канала не реже 1 раза в 20 мс. Точность представления сигнала должна быть не хуже +-10 мВ. Опрос каналов осуществляется в течение 10 с, а затем должна быть сделана обработка накопленной информации. Требуется спроектировать аппаратную часть системы с выбором основных ее элементов, составить программу опроса каналов и накопления информации в ОЗУ системы.
Этап 1. Составление структурной схемы системы. Для экономии средств и времени на разработку выберем в качестве ведущего модуля ОЭВМ семейства MCS-51 КР1830ВЕ751 (аналог ОЭВМ I87C51 фирмы Intel). Эта ОЭВМ в настоящее время широко распространена, дешева, для нее существует практически вся номенклатура аппаратных и программных средств разработки.
Выбор АЦП. Для опроса аналоговых каналов и преобразования сигналов в цифровую форму, естественно, надо предусмотреть в системе АЦП. Его выбор основывается на заданных параметрах аналогового сигнала: амплитуде, точности, скорости выборки. Прежде всего, выберем разрядность, исходя из точности 10 мВ при диапазоне сигнала в 0...1 В. Разделив второе число на первое получим коэффициент деления, который определяет разрядность АЦП. Он равен 100, поэтому вполне подойдет 8-разрядный АЦП, для которого этот коэффициент равен 28 = 256>100. Таким образом, не слишком жесткие параметры позволяют выбрать достаточно простой и дешевый 8-разрядный АЦП AD7575, который имеет следующие характеристики:
* входной диапазон - 0...2,56В;
* время преобразования <2,5 мкс;
* из внешней "обвязки" требует только подключения источника опорного напряжения величиной 1,28В, который также выпускается в интегральном исполнении - ИС LM306.
Для хранения считанной информации надо предусмотреть внешнее ОЗУ емкостью: (10000мс/20 мс)х8 каналов = 4000 байт. Для работы с запасом возьмем БИС ОЗУ объемом 8 Кбайт= 8192 байта типа HM6164 с временем доступа 100 нс. Этот тип ОЗУ также широко распространен и дешев.
Для переключения аналоговых каналов надо взять стандартный 8-канальный налоговый мультиплексор, например, отечественный КР590КН9.
Таким образом, были выбраны все основные компоненты системы, и можно составить структурную схему устройства (рис. 4.7).
Так как к ОЭВМ нужно подсоединить внешнюю ОЗУ, то надо организовать ША, ШД и ШУ. С этой целью в систему включен так называемый "регистр-защелка" DD2 типа К555ИР22, в котором по фронту сигнала ALE из ОЭВМ запоминается младший байт адреса внешней ОЗУ, который в этот момент присутствует на выводах порта Р0. Остальные 5 старших разрядов образуются сигналами, выставляемыми на выводах Р2.0 - Р2.4 порта Р2 ОЭВМ, которые держатся весь цикл обращения к ОЗУ.
Память программ будет использована внутренняя (в составе ОЭВМ имеется 4 Кбайта УФ ППЗУ).
Для того, чтобы не включать в схему дешифратора адреса для выбора либо БИС ОЗУ, либо БИС АЦП используется сигнал Р2.5 порта Р2: при установке его в 0 включается внешнее ОЗУ (фактический диапазон адресов этого ОЗУ 0000 - 1FFF), при установке его в 1 выбирается БИС АЦП (любой адрес внешней памяти, начинающийся с 2000).
Этап 2. Математическое описание алгоритма. Данный этап для такой задачи можно опустить, так как процесс сбора информации не предусматривает никаких сложных математических действий.
Этап 3. Составление укрупненной структурной схемы. Структурная схема приведена на рис. 4.8.
По условию необходимо производить опрос каналов в течение 10 с, а затем идет обработка, которая в данной задаче не рассматривается.
Временные интервалы проще всего отсчитывать с помощью внутренних таймеров. Будем считать, что тактовая частота ОЭВМ составляет 12 МГц, так что длительность импульса внутренней синхронизации, который может быть подан на таймер, составляет 1 мкс. Так как регистр таймера 16-разрядный, то максимальное накапливаемое время будет составлять 65535 мкс = примерно 65 мс. В течение интервала 10 с таких событий должно быть 10000/65=154. Для регистрации такого числа событий можно использовать известный прием накопления их в каком-либо регистре и выдаче сигнала об окончании путем установки определенного флага.
Этап 4. Распределение ресурсов. Желательно все переменные распределить во внутренней памяти и еще лучше в текущих регистрах R0-R7 ОЭВМ.
R0 - Текущий номер опрашиваемого канала.
А - Текущий байт, считанный с АЦП.
R2 - накапливающий регистр для таймера (см. выше).
R3 - регистр для временного хранения младшего байта DPTR
R4 - регистр для временного хранения старшего байта DPTR
R5 - счетчик числа опрошенных каналов
R6 -
R7 -
DPTR - адрес внешней ячейки памяти для записи текущего байта.
FLAG - битовая переменная для сигнализации, что 10 с прошло. Пусть FLAG = 1 сигнализирует, что интервал времени сбора информации прошел.
Регистрацию времени по таймеру проще всего вести по программе прерывания по таймеру. Если это прерывание разрешено ( флажок ET0 в регистре IE установлен в 1), то при переполнении таймера 0 происходит переход на адрес 000В внутренней памяти программ, где должна находиться подпрограмма обработки этого прерывания.
Сама подпрограмма обработки прерывания должна делать следующее:
· запретить прерывания на время своего выполнения (флажок ET0 в регистре IE устанавливается в 0) (в данной задаче с одним источником прерывания это можно не делать, но когда источников несколько, то нежелательно, чтобы другое прерывание прерывало эту подпрограмму).
· остановить таймер ( флажок TF0 устанавливается в 0 для таймера 0),
· прибавить к накапливающему регистру 1, так как очередной 50-мс цикл прошел,
· проверить, превысило это значение в регистре число 154, т.е. прошло ли уже 10 с,
· если прошло 10 с установить FLAG в 1, иначе оставить FLAG =0,
· Загрузить в регистры таймера числа для очередного 50-мс цикла,
· запустить таймер 0 ( флажок TF0 устанавливается в 1 для таймера 0),
· разрешить прерывания от таймера 0 (флажок ET0 в регистре IE устанавливается в 1).
Рис. 4.7. Структурная схема системы сбора аналоговой информации
Рис. 4.8. Укрупненная структурная схема алгоритма
Расчет чисел, загружаемых в регистры таймера, чтобы он переполнялся ровно через 50 мс, осуществляется так:
в программе предусмотрена двухбайтная псевдопеременная TIME, которая и определяет интервал 50 мс. Она записывается так:
TIME = NOT(50000 - 1), где 50000 - требуемый интервал в мкс. Тогда операторы загрузки этого числа в таймер 0 выглядят следующим образом:
MOV TL0,#HIGH(TIME)
MOV TH0,#LOW(TIME)
где символы HIGH и LOW означают для программы Ассемблера соответственно старший и младший байты двухбайтного числа TIME.
Этап 5. Составление подробной структурной схемы алгоритма.
На рис. 4.9 показана структурная схема программы прерывания, а на рис. 4.10 – общей программы.
Рис. 4.9. Структурная схема подпрограммы прерывания
Рис. 4.10. Структурная схема основной программы
Текст программы опроса каналов
Метка |
Мнемоники |
Комментарии |
|
Name EXMPLADC |
; название модуля программы для сборки; |
TIME |
EQU NOT(10000-1) |
;задание константы для 10 с опроса |
DSEG AT 50H |
;сегмент данных во внутренней памяти данных |
|
dirAdr: |
DS 1; |
|
|
BSEG AT 20H |
; сегмент битовых данных во внутренней памяти данных |
Flag: |
DBit 1 |
; бит флага окончания 10 с интервала |
|
CSEG AT0H |
; абсолютный кодовый сегмент, начинающийся с адреса 0000Н |
|
ORG 0H |
;псевдокоманда задания адреса памяти |
|
LJMP Start |
;переход на начало основной программы |
|
ORG 000BH |
;псевдокоманда задания адреса подпрограммы прерывания от таймера |
|
LJMP INTER0 |
;переход на начало подпрограммы обработки прерывания от таймера |
INTER0: |
clr ET0 |
;запрет прерывания от таймера 0 |
|
clr TR0 |
;останов таймера 0 |
|
mov th0,#High(TIME) |
;загрузка в таймер числа для 50 мс интервала таймера |
|
mov tl0,#low(TIME); |
|
|
inc r2 |
;увеличение на 1 счетчика 50 мс интервалов для получения 10 с времени опроса |
|
cjne r2,#159,int11 |
;если это число не равно 159, то снова запуск таймера на 50 мс |
|
mov r2,#0 |
;иначе, обнуление счетчика |
|
setb Flag |
;установка флага конца 10 с интервала |
|
ljmp int12; |
|
int11: |
setb TR0 |
;запуск таймера |
|
setb ET0 |
;разрешение прерывания от таймера |
int12: |
reti |
;возврат из программы прерывания |
Start: |
|
;начало основной программы |
|
mov SP, #60H |
;установка указателя стека на конец внутренней памяти данных |
|
mov r2,#0 |
;подготовка счетчика числа 50 мс интервалов |
|
setb EA |
;разрешение всех прерываний |
|
mov th0,#High(TIME) |
;загрузка в таймер числа для 50 мс интервала таймера |
|
mov tl0,#low(TIME) |
; |
|
mov dptr,#2000h |
;загрузка в DPTR адреса АЦП в памяти |
|
mov r3,#0 |
;подготовка пары регистров для хранения текущего адреса ячейки ОЗУ |
|
mov r4,#0 |
; |
|
mov p1,#0 |
;установка 0 аналогового канала |
|
mov r5,#8 |
;установка счетчика каналов |
|
setb ET0 |
;разрешение прерывания от таймера 0 |
|
setb TR0 |
;запуск таймера 0 |
m1: |
movx @dptr,a |
;команда начала преобразования АЦП |
|
lcall delay |
;задержка на 25 мкс |
|
movx a,@dptr |
;считывание кода с АЦП |
|
mov dph,r3 |
;загрузка в DPTR адреса текущей ячейки ОЗУ |
|
mov dpl,r4 |
; |
|
movx @dptr,a |
;запись считанного с АЦП кода во внешнюю память |
|
inc dptr |
;увеличение адреса текущей ячейки внешнего ОЗУ на 1 |
|
mov r3,dph |
;сохранение в регистрах адреса текущей ячейки внешнего ОЗУ |
|
mov r4,dpl ; |
|
|
mov dptr,#2000h |
;загрузка в DPTR адреса АЦП в памяти |
|
inc p1 |
;увеличение на 1 номера канала |
|
djnz r5,m1 |
;цикл опроса следующего канала |
|
mov p1,#0 |
;обнуление номера канала |
|
mov r5,#8 |
;установка 0 аналогового канала |
|
mov c,Flag |
;проверка флага окончания опроса |
|
jz m1 |
;цикл по следующей выборке из 8 каналов |
|
lcall mathem |
;окончание опроса, вызов программы обработки |
|
ljmp start |
;на начало программы для повторения полного цикла |
delay: |
mov r6,#8 |
;подпрограмма задержки на 25 мкс для готовности АЦП, в R6 рассчитанное на 25 мкс число |
m5: |
nop |
;пустая операция, длится 1 мкс |
|
djnz r6,m5 |
;вычитание из R6 единицы и проверка на нуль в R6, если нуль, то окончание подпрограммы |
|
ret |
|
Mathem:: |
ret |
;"заглушка" программы обработки информации из каналов, в данном примере не рассматривается |
END |
|
;конец модуля |
Два рассмотренных примера показывают с одной стороны сложность функций, которые берет на себя МПС, а с другой стороны достаточно простые алгоритмы функционирования системы. Эти примеры призваны показать процесс совместного проектирования аппаратных средств и программного обеспечения МПС. Другие многочисленные примеры применения МПС и микро-ЭВМ приводятся в специальной литературе и в журнале ГКНТ "Микропроцессорные средства и системы" [12].
5. Перспективы развития микропроцессорных систем
5.1. Совершенствование аппаратных средств МПС
Развитие микропроцессорных средств идет по двум направлениям: совершенствование аппаратных средств и программного обеспечения. Рассмотрим сначала развитие схемных принципов построения МПС. При этом будем рассматривать только МП и ОЭВМ, не используемые для комплектации персональных ЭВМ, так как МП для ПК - это отдельная тема.
5.1.1. Развитие структуры и характеристик МП.
Микропроцессоры как элемент МПС развивается в следующих направлениях:
- увеличение разрядности ЦПЭ,
- повышение быстродействия,
- увеличение степени интеграции БИС ЦПЭ,
- уменьшение энергопотребления.
В настоящее время существующие БИС МП и ОЭВМ имеют степень интеграции около 300 тыс. элементов/см. В ближайшем будущем возможно повышение этой степени до 1 млн. элементов/см. Это уже предел для современного уровня технологии производства БИС. Дальнейшее повышение степени интеграции сопряжено с очень большими технологическими трудностями и, естественно с увеличением стоимости МП. При этом теряется одно из главных преимуществ МП - его дешевизна. Поэтому нельзя ожидать в ближайшем будущем существенного повышения степени интеграции.
Быстродействие современных МП приближается к миллиону операций в секунду (тактовая частота около 50 МГц). Следует ожидать увеличения быстродействия примерно до 100 МГц. Однако повышению производительности всей МПС в целом препятствует не ЦПЭ, а низкоскоростные внешние устройства. Поэтому основной проблемой, стоящей на современном этапе перед разработчиками МПС, является повышение быстродействия всех компонент МПС. А это сделать по ряду причин очень трудно. Кроме того, повышение быстродействия влечет за собой, опять таки, повышение стоимости МПС. Возможен другой подход. Необходимо изменить сам принцип обработки информации в МП. Например, в МП серии К584, ОЭВМ Intel 251 семейства применен так называемый "конвейерный" принцип выполнения микрокоманд. Он заключается в одновременном исполнении команды и приемом кода команды из ОЗУ команд. Поэтому, хотя тактовая частота МП серии К584 и вполовину меньше, чем у МП серии К580, но скорость выполнения команд увеличивается почти в десять раз.
Другим способом повышения мощности МП и ОЭВМ является принципиально иное использование процессорного времени для распределения функций и операций. Так американская фирма Dallas Semiconductor выпустила на рынок новую ОЭВМ DS80C310 - DS80C530, которая имеет ядро типа ОЭВМ MCS51, но при тактовой частоте до 33 МГц ее производительность такова, как будто тактовая частота обычной ОЭВМ была бы 80-100 МГц.
На заре развития МП считалось, что во многих применениях 8-ми разрядного ЦПЭ вполне хватит для работы с приемлемой точностью. Однако по мере развития МП техники, расширения ее функциональных способностей, становилось очевидным, что необходимо повышать разрядность МП. И хотя в 8-ми разрядных ЦПЭ часто предусматривалась возможность оперировать с 16-ти разрядными данными, но быстродействие таких операций было весьма низким. Поэтому появились 16-ти разрядный МП, такие как К1801ВМ1, 1810ВМ86 и др. Правда электронное обрамление этих ЦПЭ все более усложнялось, так как в связи с ограниченным числом выводов БИС ЦПЭ использовалась мультиплексированная ШД/ША. Другим путем увеличения разрядности обрабатываемых данных явилось использование секционированных МП (например, серий К584, К589, К1802, К1804 и др.), хотя в настоящее время это направление считается неперспективным.
Уменьшенное энергопотребление важно в тех случаях, когда предусматривается автономная работа МПС на объектах малой энергонасыщенности. Ранее уже был создан МПК на основе КМОП - серия К588. В настоящее время по этой технологии создаются однокристальные микро-ЭВМ, предназначенные для встраивания в различное оборудование. Однако в перспективных типах ОЭВМ вопросам энергопотребления отводится не последняя роль. При этом стремятся при сохранении заданной технологии (КМОП), уменьшить энергопотребление схемными методами. Однако потребление энергии и быстродействие находятся во взаимном противоречии, то для создания быстродействующих МП жертвуют малым энергопотреблением.
Другим направлением уменьшения энергопотребления является широкое использование режимов Idle и Standby, в которых ОЭВМ потребляет в 10 – 100 раз меньший ток, чем в рабочем режиме.
Наконец, всеобъемлющей тенденцией развития МП техники является тотальная замена МПС на основе МП на ОЭВМ, к которым при необходимости можно присоединить дополнительные элементы: БИС ОЗУ, ППЗУ, УВВ. Развитие технологии производства ОЭВМ достигли даже в настоящее время такого уровня, который позволяет на одном кристалле сформировать составляющие МПС, которые ранее умещались только на печатной плате или даже в других модулях. Примером может служить разработанная совсем недавно фирмой Analog Devices (США) ОЭВМ типа AduC812, которая имеет структуру и систему команд, совпадающие с семейством MCS-51, но дополнительно на кристалле сформирован высококачественный восьмиканальный 12-битный АЦП и два 12-битных ЦАП. Таким образом, одна ОЭВМ заменяет целое сложное устройство для встраивания в аналоговое оборудование.
5.1.2. Совершенствование схем памяти
В МПС на быстродействие всей системы накладывает ограничение именно схемы памяти. Поэтому проблема увеличения быстродействия и объема БИС ОЗУ или ПЗУ является весьма актуальной. С появлением КМОП технологии появилась возможность создавать БИС ОЗУ и ППЗУ сверхвысокой степени интеграции и сверхмалым потреблением (примерно до 1 мкВт/бит). Кроме того, произошел отказ от одноразрядной организации БИС. Так как большинство МП и ОЭВМ имеют 8-разрядную ШД, то теперь наиболее употребительной стала многоразрядная (кратная восьми) двунаправленная организация ввода-вывода данных. Первой новой отечественной БИС ОЗУ стала микросхема К537РУ10 с организацией 2048х8 бит, удельным потреблением 1 мкВт/бит, временем цикла 150 нс. В настоящее время разработана широкая номенклатура БИС ОЗУ емкостью до 1 Мбит, и временем цикла до 10 нс, разрядность 8 и 16 бит. Для разработки МПС этого вполне достаточно для любых приложений.
Параметры БИС ППЗУ также количественно существенно выросли. Обычной практикой является использование микросхем емкостью 32-64 Кбайт КМОП структуры с временем доступа до 50 нс. Кроме того, появилась так называемая Flash-память, которая позволяет перепрограммировать микросхему непосредственно в схеме. Например, популярная серия AMD400F представляет собой СБИС Flash-памяти до 1 Мбайт с 8- и 16-разрядной ШД, число циклов перезаписи до 1000000.
5.1.3. Развитие внешних устройств МПС.
Как правило, внешние устройства МПС являются самыми низкобыстродействующими в системе. Кроме того, они часто содержат механические части, имеющие низкую надежность. Можно разделить все эти устройства на два класса: внешние устройства памяти и устройства связи с объектом и оператором. Внешние устройства памяти - это разного рода накопители информации (на дисках, ленте и т.п.).
Совершенствование этих устройств идет по двум направлениям. С одной стороны развивается традиционная схема накопителей: разрабатываются БИС контроллеров, повышается надежность записи и считывания информации, увеличивается плотность записи на дисках и ленте. С другой стороны начинают применяться нетрадиционные накопители без механических частей: пленки на цилиндрических магнитных доменах (ЦМД), приборы с зарядовой связью (ПЗС) и др. компоненты.
Средства связи человека с ЭВМ имеют принципиально ограниченную скорость передачи информации, так как человек не может воспринимать слишком большой ее поток. Однако целесообразно совершенствовать методы ее обработки перед выдачей на экран. Например, графическую информацию человек воспринимает гораздо эффективнее. Поэтому совершенствование таких устройств включает в себя как работы по упрощению связи их с микро-ЭВМ (в этом направлении уже сегодня разработаны БИС, позволяющие просто связать клавиатуру и экран дисплея с ЭВМ, например, КР580ВВ79 - БИС контроллера клавиатуры дисплея, КР580ВГ75 - БИС контроллера видеотерминала), так и по повышению эффективности представления передаваемой информации. Для этого снабжают устройства отображения автономными контроллерами, которые предварительно обрабатывают полученную информацию и выводят ее на экран в удобном для восприятия виде.
В качестве примера можно рассмотреть экран на жидких кристаллах (ЖКИ), работающий в графическом режиме. Число точек на экране достигает 1024х512, он полностью совместим с МП шинами.
Особое внимание уделяется устройства для МПС, которые обеспечивают надежную работу МПС при комбинированном питании от сети и от батарей. При пропадании сетевого питания возможно появление сбоев в работе МП и ОЭВМ. Кроме того, а ряде случаев импульсные помехи могут сбивать нормальную работу процессоров. В этих случаях применяются микросхемы - так называемые "Супервизоры". Самые совершенные (например, ИС AD695 фирмы Analog Devices) содержат следующие узлы:
· узел переключения питания МПС с сетевого на батарейное и блок подзарядки аккумуляторов,
· узел формирования импульса сброса на МП или ОЭВМ при пропадании импульсов, подаваемых из МПС (так называемый Watch-Dog таймер),
· узел блокировки цепи CS для БИС ОЗУ при пропадании питания для исключения случайной записи в БИС ОЗУ.
5.2. Совершенствование программного обеспечения
Как известно, программное обеспечение (ПО) играет важнейшую роль в функционировании всей МПС. Поэтому повышение эффективности МПС требует совершенствования ПО. По характеру использования ПО в конкретных приложениях их можно разделить на ПО реального времени (РВ) и ПО микро-ЭВМ, которым нет необходимости работать в масштабе реальных событий, но которые должны обладать развитыми функциональными возможностями.
В ПО РВ главный упор делается на повышение эффективности обработки информации в самые короткие промежутки времени, на организацию параллельной обработки многих задач, на повышение скорости реагирования на прерывания внешних устройств. С этой целью разрабатываются новые структуры ПО РВ, совершенствуются традиционные компоненты системы: планировщик задач, диспетчер, обработчик прерываний, программы отслеживания времени, супервизоры ввода/вывода. В результате даже не очень быстрый МП может быть использован в системе реального времени, так как ПО РВ осуществляет эффективную обработку поступающей информации.
В микро-ЭВМ, предназначенных для решения различных задач не в реальном времени, ПО совершенствуется в направлении облегчения процесса программирования задачи и увеличения скорости работы на ЭВМ. Как правило, это работа по развитию языков высокого уровня применительно именно к микро-ЭВМ. Традиционные языки высокого уровня, используемые на больших ЭВМ, в большинстве своем неприменимы для микро-ЭВМ, так как требуют большого объема памяти, развитых операционных систем и т. д. Были созданы и создаются свои типы языков, которые хотя и многое позаимствовали у языков больших машин, но сохраняют особенности, присущие именно языкам микро-ЭВМ. Среди критериев, которыми необходимо руководствоваться при выборе языка, существуют следующие:
· обработка прерываний на уровне данного языка,
· работа с подпрограммами (т.е. возможность модульного программирования),
· выбор трансляции или интерпретации,
· кросс-средства для отладки ПО,
· структуры данных (разрядность, форма представления, побитовая обработка и т.п.),
· объем требуемой памяти,
· временные соотношения при работе с языком,
· переносимость ПО с одного типа микро-ЭВМ на другой.
Все эти факторы и влияют на конкретный выбор языка. Подробно разработанные языки высокого уровня, такие как АЛГОЛ, ФОРТРАН, КОБОЛ, в процессе совершенствования МПС трансформировались в более приемлемые для данных систем PL/М, PL/Z, MPL, БЕЙСИК, КОРАЛ, СИ и другие. Разработаны и разрабатываются версии таких языков, как ПАСКАЛЬ, Си, RTL/2, ФОРТ, АДА, которые предназначены уже исключительно для микро-ЭВМ. Каждый из этих языков имеет свои особенности, достоинства и недостатки, поэтому ведется работа по совершенствованию их структуры и созданию новых версий. В частности, сейчас уже применяется промежуточный способ преобразования исходной программы на языке высокого уровня: исходная программа сначала транслируется в чрезвычайно экономный промежуточный формат, а затем уже этот формат интерпретируется в объектную программу. Таким образом, соединяются преимущества трансляции и интерпретации: малый объем занимаемой памяти (чуть больше, чем при классической интерпретации) и высокая скорость выполнения программы (чуть медленнее, чем при обычной трансляции). Вообще следует сказать, что ПО микро-ЭВМ развивается более высокими темпами, чем аппаратная часть, так что в этой области следует ждать больших перемен в ближайшем будущем.
С появлением графической операционной системы Windows для ПК наблюдается тенденция перевода всего кросс-ПО на эту систему. При этом облегчается работа программиста, полнее используются все преимущества среды Windows перед ДОС.
Особенно быстрыми темпами развивается ПО для ОЭВМ, которые в настоящее время вытесняют МП. Основными тенденциями развития такого ПО являются:
· интеграция в одной системе ассемблера, компиляторов с языков высокого уровня, редактора текста с широкими возможностями именно для редактирования программ, редактора связей и других модулей,
· добавление к стандартным интегрированным пакетам для языков высокого уровня для ПК специальных "надстроек", которые позволяют создавать программы на ПК (так сделано, например, для ОЭВМ типа AMD186ES, система команд которой практически полностью совпадает с системой команд МП, на котором построен ПК),
· разработка специализированных библиотек, учитывающих особенности МП и ОЭВМ и подсоединяемых к интегрированным пакетам на ПК.
Другой интересной тенденцией, которая наблюдается в разработке ПО для ОЭВМ, является создание так называемых "проектировщиков" (или по-английски Builder). Например, фирма Intel разработала пакет под названием AP-Builder для всех видов МП и ОЭВМ, которые выпускаются этой фирмой. Особенности этого пакета:
· показ в графическом виде на экране структуры МП или ОЭВМ и ее внутренних связей с возможностью выбора двойным щелчком мыши любого компонента системы,
· показ в отдельном окне характеристик компонента (например, таймера, порта и т.п.) и возможность ввода его характеристик в текстовые поля окна,
· автоматическое формирование на основе введенных данных строк программы на Ассемблере или на Си инициализации этого компонента,
· сборка в единый модуль сформированных команд инициализации и добавление модуля к разрабатываемому ПО.
ЛИТЕРАТУРА
1. Шагурин И.И. "Микропроцессоры и микроконтроллеры фирмы MOTOROLA". -М.: Радио и связь, 1998.-560с.
2. Журналы "Chip News": 1996, №6-7, с.7-16; 1998, №1, с.22-27; 1999, №1, с.53-58;"Инженерная микроэлектроника", 1998, №2, с.2-14; "Приборы и системы управления", 1998, №9, с.4-10.
3. Серверы www.motco.ru, www.mot.com/sps.
4. Бродин В.Б., Шагурин И.И. Микроконтроллеры. Архитектура, программирование, интерфейс. Справочник, ЭКОМ, М., 1999г.
5. Однокристальные микроЭВМ. Семейство МК48. Семейство МК51. Техническое описание и руководство по применению. /Липовецкий Г.Н., Литвинский Г.В., Оксинь О.Н., Проценко Л.В., Петренко Н.В., Сивобородов П.В. - М.: МП "Бином", 1992.
6. Однокристальные микроЭВМ / Боборыкин А.В., Липовецкий Г.Н., Литвинский Г.В., Оксинь О.Н., Прохорчик С.В., Проценко Л.В., Петренко Н.В., Сергеев А.А., Сивобородов П.В. - М.: МИКАП, 1994.
7. Нерода В.Я., Торбинский В.Э., Шлыков Е.Л. Однокристальные микроЭВМ MCS-51. Архитектура. - М.: Дижитал Компонентс, 1995.
8. MCS 51. Microcontroller Family User's Manual. Order NO.: 272383-002, February 1994.
9. Embedded Microcontrollers. Order NO.: 270646, 1994.
10. Однокристальный микроконтроллер семейства MCS-51 фирмы INTEL 8X51GB. Микросхемы FLASH памяти 28F512/28F256A. Микросхемы статической памяти UM6264B/UM62256B. - Томск: ТОО "SDD", 1995.
11. Мирский Г.Я. Применение микропроцессоров в измерительных приборах. М.: "Радио и связь, 1989.
12. "Микропроцессорные средства и системы", журнал ГКНТ, М:, 1985-1989.
13. Электронная обучающая система по микроконтроллерам MCS-51. Автор Шакин П.Н. М.:, МГАПИ, 2001.
ПРИЛОЖЕНИЕ 1
Система команд микропроцессора КР580ВМ80
Группа однобайтных пересылок |
Группа двухбайтных пересылок |
||||||||||||||||||
MOV R1,R2 MVI R,D8 STAX YZ* LDAX YZ* STA ADR LDA ADR SPHL |
R1ß (R2) Rß (B2) M{(YZ)}ßA Aß M{(YZ)} M{(B2,B3)}ßA Aß M{(B2,B3)} (SP)ß(HL) |
LXI YZ,D16 SHLD ADR LHLD ADR PUSH YZ** POP YZ** |
YZß(B2,B3) M{(B2,B3)}ßH M{(B2,B3)+1}ßL Hß M{(B2,B3)} Lß M{(B2,B3)+1} SPßYZ, (SP)ß(SP)-2 YZßSP, (SP)ß(SP)+2 |
||||||||||||||||
Команды ввода-вывода |
Обмен байтами |
||||||||||||||||||
IN N OUT N |
AßУВВ(N) УВВ(N)ßA |
XCHG |
(HL) « (DE) |
||||||||||||||||
Арифметические и логические операции с одним операндом |
|||||||||||||||||||
CMC’’ STC CMA DAA’ |
cß(c/) cß1 Aß(A/) Десятичная коррекция |
INR R’’’ DCR R’’’ INX YZ DCX YZ |
Rß(R)+1 Rß(R)-1 YZß(YZ)+1 YZß(YZ)-1 |
||||||||||||||||
Арифметические и логические операции с двумя операндами |
|||||||||||||||||||
8-ми битовые операции |
|||||||||||||||||||
ADD R’ ADC R’ SUB R’ SBB R’ ANA R’ ORA R’ XRA R’ |
Aß(A)+(R) Aß(A)+(R)+(c) Aß(A)-(R) Aß(A)-(R)-(c) Aß(A)Ú(R) Aß(A)Ù(R) Aß(A)Å(R) |
ADI D8’ ACI D8’ SUI D8’ SBI D8’ ANI D8’ ORI D8’ XRI D8’ |
Aß(A)+(D8) Aß(A)+(D8)+(c) Aß(A)-(D8) Aß(A)-(D8)-(c) Aß(A)Ú(D8) Aß(A)Ù(D8) Aß(A)Å(D8) |
CMP R’ |
Установка битов C и Z в соответствии с результатом сравнения |
CPI D8’ |
Установка битов C и Z в соответствии с результатом сравнения |
||||||||||||
16-битовые операции |
|||||||||||||||||||
DAD YZ’’ |
(HL)ß(HL)+(YZ) |
||||||||||||||||||
Команды сдвига содержимого аккумулятора |
Команды передачи управления |
||||||||||||||||||
RLC’’ RAL’’ RRC’’ RAR’’ |
Сдвиг влево через перенос Сдвиг влево Сдвиг вправо через перенос Сдвиг вправо |
JMP ADR J-CON ADR |
Безусловный переход Условные переходы |
||||||||||||||||
Специальные команды |
Команды вызова и возврата из подпрограмм |
||||||||||||||||||
EI DI HLT NOP |
Разрешение прерываний Запрещение прерываний Останов Пустая операция |
CALL ADR C-CON ADR RET RST X |
Безусловный вызов Условные вызовы Возврат из подпрограммы Рестарт |
||||||||||||||||
Формат регистра F |
|||||||||||||||||||
|
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
||||||||||
|
S |
Z |
0 |
AC |
0 |
P |
1 |
C |
|
||||||||||
Условные обозначения:
‘' - команда оказывает воздействие на все признаки, '' - команда оказывает воздействие на признак (с), ''' - команда оказывает воздействие на все признаки, кроме (с), R1,R2,R - содержимое регистров А, В, С, D, E, H, L, M{(HL)}, YZ - содержимое регистровой пары BC, DE, HL SP, YZ* - содержимое регистровой пары BC или DE, YZ** - содержимое регистровой пары BC, DE, HL, PSW, (SP) - содержимое указателя стека, SP - содержимое самих ячеек стековой памяти, D8 - байт данных, второй байт В2, N - номер УВВ. D16 - двухбайтовые данные, второй и третий байт команды (В2, В3), ADR - двухбайтовый адрес второй и третий байт команды (В2, В3), M{(..)} - содержимое ячейки памяти, адрес которой указан в регистрах, приведенных в скобках, -CON - часть мнемоники команды, определяющая условие передачяи управления, вызова и возврата из подпрограмм (в мнемониках заменяется на Z, NZ, C, |
ПРИЛОЖЕНИЕ 2
Система команд ОЭВМ семейства MCS-51
Мнемоника и операнды |
Кол-во байт |
Кол-во цик-лов |
Выполняемая операция |
Флаги |
||||
|
|
|
|
С |
0V |
AC |
||
1. Арифметические операции |
||||||||
ADD A,Ri |
1 |
1 |
A ¬ (A)+(Ri), i=0...7 |
+ |
+ |
+ |
||
ADD A,rel |
2 |
1 |
A ¬ (A)+(rel) |
+ |
+ |
+ |
||
ADD A,@Ri |
1 |
1 |
A ¬ (A)+R(Ri), i=0,1 |
+ |
+ |
+ |
||
ADD A,#data |
2 |
1 |
A ¬ (A)+(B2) |
+ |
+ |
+ |
||
ADDC A,Ri |
1 |
1 |
A ¬ (A)+(Ri)+(c), i=0..7 |
+ |
+ |
+ |
||
ADDC A,rel |
2 |
1 |
A ¬ (A)+(rel)+ (c) |
+ |
+ |
+ |
||
ADDC A,@Ri |
1 |
1 |
A¬ (A)+R(Ri)+(c), i=0,1 |
+ |
+ |
+ |
||
ADDC A,#data |
2 |
1 |
A ¬ (A)+(B2)+ (c) |
+ |
+ |
+ |
||
SUBB A,Ri |
1 |
1 |
A ¬ (A)-(Ri) -(c), i=0...7 |
+ |
+ |
+ |
||
SUBB A,rel |
2 |
1 |
A ¬ (A)-(rel) -(c), |
+ |
+ |
+ |
||
SUBB A,@Ri |
1 |
1 |
A ¬ (A)-R(Ri) -(c), i=0,1 |
+ |
+ |
+ |
||
SUBB A,#data |
2 |
1 |
A ¬ (A)-(B2)-(c), |
+ |
+ |
+ |
||
INC A |
1 |
1 |
A ¬ (A)+1 |
|
|
|
||
INC Ri |
1 |
1 |
Ri¬(Ri)+1, i=0...7 |
|
|
|
||
INC rel |
2 |
1 |
rel¬(rel) +1 |
|
|
|
||
INC DPTR |
1 |
2 |
M(DPTR)M(DPTR)+1 |
|
|
|
||
DEC A |
1 |
1 |
A |
|
|
|
||
DEC Ri |
1 |
1 |
Ri(Ri)-1, i=0...7 |
|
|
|
||
DEC rel |
2 |
1 |
rel(rel) -1 |
|
|
|
||
DEC @Ri |
1 |
1 |
R(Ri) R(Ri) -1,i=0...1 |
|
|
|
||
MUL AB |
1 |
4 |
BD15...D8, AD7...D0 |
|
|
|
||
DIV AB |
1 |
4 |
Aцелая часть,OV1,если В=0 |
|
|
|
||
DA A |
1 |
1 |
Десятичная коррекция |
|
|
|
||
2. Логические операции |
||||||||
ANL A,Ri |
1 |
1 |
A (A)+(Ri), i=0...7 |
|
|
|
||
ANL A,rel |
2 |
1 |
A (A)+(rel) |
|
|
|
||
ANL A,@Ri |
|
|
A (A)+R(Ri), i=0,1 |
|
|
|
||
ANL A,#data |
|
|
A (A)+(B2) |
|
|
|
||
ANL rel,A |
2 |
1 |
(rel) (A)+(rel) |
+ |
+ |
+ |
||
ANL rel,#data |
2 |
1 |
rel (rel)+(B2) |
+ |
+ |
+ |
||
ORL A,Ri |
1 |
1 |
A (A)+(Ri), i=0...7 |
+ |
+ |
+ |
||
ORL A,rel |
2 |
1 |
A (A)+(rel) |
+ |
+ |
+ |
||
ORL A,@Ri |
1 |
1 |
A (A)+R(Ri), i=0,1 |
+ |
+ |
+ |
||
ORL A,#data |
2 |
1 |
A (A)+(B2) |
+ |
+ |
+ |
||
ORL rel,A |
2 |
1 |
(rel) (A)+(rel) |
+ |
+ |
+ |
||
ORL rel,#data |
2 |
1 |
rel (rel)+(B2) |
+ |
+ |
+ |
||
XRL A,Ri |
1 |
1 |
A (A)+(Ri), i=0...7 |
+ |
+ |
+ |
||
XRL rel,#data |
2 |
1 |
rel (rel)+(B2) |
+ |
+ |
+ |
||
CLR A |
1 |
1 |
A 0 |
|
|
|
||
CPL A |
1 |
1 |
A A/ |
|
|
|
||
RL A |
1 |
1 |
An+1 An, A0 A7 |
|
|
|
||
RLC A |
1 |
1 |
An+1 An, A0 c, c A7 |
|
|
|
||
RR A |
1 |
1 |
An An+1, A7 A0 |
|
|
|
||
RRC A |
1 |
1 |
An An+1, c A0, A7 c |
|
|
|
||
SWAP A |
1 |
1 |
A3-0 « A7-4 |
|
|
|
||
3. Команды передачи данных |
||||||||
MOV A,Ri |
1 |
1 |
A (Ri), i=0...7 |
|
|
|
||
MOV A,rel |
2 |
1 |
A (rel) |
|
|
|
||
MOV A,@Ri |
1 |
1 |
A R(Ri), i=0,1 |
|
|
|
||
MOV A,#data |
2 |
1 |
A (B2) |
|
|
|
||
MOV Ri,A |
1 |
1 |
(Ri)A, i=0...7 |
|
|
|
||
MOV rel,A |
2 |
1 |
(rel)A |
|
|
|
||
MOV A,@Ri |
1 |
1 |
A R(Ri), i=0,1 |
|
|
|
||
MOV A,#data |
2 |
1 |
A (B2) |
|
|
|
||
MOV Ri,rel |
2 |
1 |
(Ri) (rel) |
|
|
|
||
MOV rel,#data |
3 |
2 |
rel (B2) |
|
|
|
||
MOV Ri,#data |
2 |
2 |
Ri (B2), i=0...7 |
|
|
|
||
MOV rel,Ri |
2 |
1 |
rel (Ri), i=0...7 |
|
|
|
||
MOV rel1,rel2 |
3 |
2 |
rel1 (rel2) |
|
|
|
||
MOV rel,@Ri |
2 |
2 |
rel R(Ri), i=0,1 |
|
|
|
||
MOV @Ri, A |
1 |
1 |
@RiA), i=0,1 |
|
|
|
||
MOV @Ri, rel |
2 |
2 |
@Rirel), i=0,1 |
|
|
|
||
MOV @Ri, #data |
2 |
1 |
@RiB2), i=0,1 |
|
|
|
||
MOV DPTR, #data16 |
3 |
2 |
DPTRB2,B3) |
|
|
|
||
MOVC A,@A+DPTR |
1 |
2 |
A M((A)+DPTR) |
|
|
|
||
MOVC A,@A+PC |
1 |
2 |
A M((A)+PC+1) |
|
|
|
||
MOVX A,@Ri |
1 |
2 |
A M(Ri), i=0,1(внешняя память данных) |
|
|
|
||
MOVX A,@DPTR |
1 |
2 |
A M(DPTR) |
|
|
|
||
MOVX @DPTR,A |
1 |
2 |
M(DPTR) A |
|
|
|
||
PUSH rel |
2 |
2 |
SP (rel), (SP) (SP)+1 |
|
|
|
||
POP rel |
2 |
2 |
(rel) SP, (SP) (SP)-1 |
|
|
|
||
XCH A,Ri |
1 |
1 |
(Ri)«A, i=0...7 |
|
|
|
||
XCH A,rel |
2 |
1 |
A « (rel) |
|
|
|
||
XCH A,@Ri |
1 |
1 |
A « R(Ri), i=0,1 |
|
|
|
||
XCHD A,@Ri |
|
|
A3-0 « R3-0 (Ri), i=0,1 |
|
|
|
||
4. Команды работы с битами |
||||||||
CPL bit |
2 |
1 |
bitbit/ |
|
|
|
||
CPL C |
1 |
1 |
Cßc/ |
|
|
|
||
ANL C,bit |
2 |
2 |
c bit Ù c |
|
|
|
||
ANL C,bit/ |
2 |
2 |
c bit/ Ù c |
|
|
|
||
ORL C,bit |
2 |
2 |
c bit Ú c |
|
|
|
||
ORL C,bit/ |
2 |
2 |
c bit/ Úc |
|
|
|
||
MOV C,bit |
2 |
2 |
c bit |
|
|
|
||
MOV bit,C |
2 |
2 |
bit c |
|
|
|
||
CLR C |
1 |
1 |
C ß 0 |
|
|
|
||
CLR bit |
2 |
2 |
bit ß 0 |
|
|
|
||
SETB C |
1 |
1 |
Cß1 |
|
|
|
||
SETB bit |
2 |
2 |
bit ß1 |
|
|
|
||
5.Команды переходов |
|
|
|
|
|
|
||
ACALL addr11 |
2 |
2 |
(PC) ¬ (PC)+2, SP ¬ (PC), (SP) ¬ (SP)+2, (PC) ¬ addr11 |
|
|
|
||
LCALL addr16 |
2 |
2 |
(PC) ¬ (PC)+3, SP ¬ (PC), (SP) ¬ (SP)+2, (PC) ¬ addr16 |
|
|
|
||
RET |
1 |
2 |
(PC) ¬ SP, (SP) ¬ (SP)-2 |
|
|
|
||
RETI |
1 |
2 |
(PC) ¬ SP, (SP) ¬ (SP)-2 |
|
|
|
||
AJMP addr11 |
2 |
2 |
(PC) ¬ (PC)+2, (PC) ¬ addr11 |
|
|
|
||
AJMP addr16 |
2 |
2 |
(PC) ¬ (PC)+2, (PC) ¬ addr16 |
|
|
|
||
SJMP rel |
2 |
2 |
(PC) ¬ (PC)+2, (PC) ¬ (PC) + rel |
|
|
|
||
JMP @A+DPTR |
1 |
2 |
(PC) ¬ (A)+(DPTR) |
|
|
|
||
JZ rel |
2 |
2 |
(PC) ¬ (PC)+2, IF A=0 (PC)¬(PC)+rel |
|
|
|
||
JNZ rel |
2 |
2 |
(PC) ¬ (PC)+2, IF A¹0 (PC)¬(PC)+rel |
|
|
|
||
JC rel |
2 |
2 |
(PC) ¬ (PC)+2, IF c=0 (PC)¬(PC)+ rel |
|
|
|
||
JNC rel |
2 |
2 |
(PC) ¬ (PC)+2, IF c¹0 (PC) ¬ (PC) + rel |
|
|
|
||
JB bit, rel |
3 |
2 |
(PC) ¬ (PC)+3, IF bit=0 (PC) ¬ (PC) + rel |
|
|
|
||
JNB bit, rel |
3 |
2 |
(PC) ¬ (PC)+3, IF bit¹0 (PC) ¬ (PC) + rel |
|
|
|
||
JBC bit, rel |
3 |
2 |
(PC) ¬ (PC)+3, IF bit=0 (PC) ¬ (PC) + rel, bit¬0 |
|
|
|
||
CJNE A,dir,rel |
3 |
2 |
IF (A)=(dir) (PC) ¬ (PC)+3, IF (A)>(dir) (PC) ¬ (PC) + rel, c¬0 IF (A)<(dir) (PC) ¬ (PC) + rel, c¬1 |
|
|
|
||
CJNE A,#data,rel |
3 |
2 |
IF (A)=( #data) (PC) ¬ (PC)+3, IF (A)>( #data) (PC) ¬ (PC) + rel, c¬0 IF (A)<( #data) (PC) ¬ (PC) + rel, c¬1 |
|
|
|
||
CJNE Ri,#data,rel |
3 |
2 |
IF (Ri)=( #data) (PC) ¬ (PC)+3,i=0...7 IF (Ri)>( #data) (PC) ¬ (PC) + rel, c¬0 IF (Ri)<( #data) (PC) ¬ (PC) + rel, c¬1 |
|
|
|
||
CJNE @Ri,#data,rel |
3 |
2 |
IF R(Ri)=( #data)(PC) ¬ (PC)+3,i=0...7 IF R(Ri)>(#data)(PC) ¬ (PC) + rel,c¬0 IF R(Ri)<(#data)(PC)¬ (PC) + rel, c¬1 |
|
|
|
||
DJNZ Ri,rel |
2 |
2 |
(PC) ¬(PC)+2,Ri¬Ri-1,i=0...7, IF (Ri) ¹0 (PC) ¬ (PC) + rel, |
|
|
|
||
DJNZ dir,rel |
3 |
2 |
(PC) ¬(PC)+3,dir¬dir-1, IF dir¹0 (PC) ¬ (PC) + rel, |
|
|
|
||
NOP |
1 |
1 |
Пустая операция |
|
|
|
||
Условные обозначения:
1. rel – метка перехода по программе в диапазоне одной страницы памяти программ 00 - FF.
2. data16 - двухбайтные данные, хранящиеся во 2 и 3 байтах команды.
3. data - байт данных, хранящийся во 2 байте команды.
4. B2 - второй байт команды.
5. M(X) - содержимое ячейки памяти, адресуемой содержимым Х - либо одним, либо двумя байтами.
6. dir - ппрямоадресуемая ячейка внутренней памяти в диапазоне 00 -7F.
7. (p000) - номер страницы памяти команд (всего 8 страниц от р000 до р111), адресуемой командами коротких переходов и вызовов.
7. bit - прямоадресуемый бит внутренней памяти данных в диапазоне адресов 20...3F (bit может принимать значения 00...7F.
Содержание
ВВЕДЕНИЕ. ПОНЯТИЕ О МИКРОПРОЦЕССОРАХ.................................................................................................................. 2
История появления микропроцессоров................................................................................................................... 3
Терминология курса.............................................................................................................................................................. 4
Классификация и основные параметры МП......................................................................................................... 5
1. Обзор современных ОЭВМ................................................................................................................................................ 7
1.1. МИКРОКОНТРОЛЛЕРЫ ФИРМЫ MOTOROLLA.............................................................................................................. 8
1.1.1. Семейство НС05............................................................................................................................................................... 9
1.1.2. Семейство НС08............................................................................................................................................................ 10
1.1.3. Семейство НС11............................................................................................................................................................ 13
1.1.4. 16- и 32-разрядные микроконтроллеры MOTOROLA................................................................................... 16
1.1.5. Номенклатура и области применения микроконтроллеров семейства 68НС16......................................... 16
1.1.6. Номенклатура и области применения микроконтроллеров семейства 68300............................................ 17
1.2. Производители микроконтроллеров семейства MCS51......................................................................... 21
1.3. 8-разрядные КМОП FLASH микроконтроллеры семейства АТ89......................................................... 22
1.3.1. Отличительные особенности..................................................................................................................................... 22
1.4. Высокопроизводительные 8-разрадные RISC контроллеры семейства AT90S........................ 23
1.4.1. Вычислительные особенности................................................................................................................................... 23
1.5. Программируемые контроллеры фирмы Dallas Semiconductor................................................. 25
1.5.1. Микроконтроллеры с динамической организацией (Soft Мicго)...................................................................... 25
1.5.2. Обеспечение высокой производительности в скоростных микроконтроллерах........................................ 27
1.5.3. Организация памяти скоростных контроллеров................................................................................................. 28
1.5.4. Возможности скоростных контроллеров.............................................................................................................. 29
1.6. ОДНОКРИСТАЛЬНЫЕ МИКРОКОНТРОЛЛЕРЫ СЕРИИ PIC....................................................................................... 29
1.6.1. RISC микроконтроллеры типа PIC16C5X.............................................................................................................. 30
1.6.1.1. Обзор характеристик............................................................................................................................................... 32
Периферия и Ввод/Вывод........................................................................................................................................................ 32
1.6.1.2. Структура Кристаллов Pic16c5x.......................................................................................................................... 32
1.6.1.3. Таймер/счетчик........................................................................................................................................................... 33
1.6.1.4.Регистр статуса......................................................................................................................................................... 33
1.6.1.5. Регистры ввода/вывода. ( Порты )...................................................................................................................... 33
1.6.1.6. Организация встроенной памяти.......................................................................................................................... 33
1.6.1.7. Стек................................................................................................................................................................................ 33
1.6.1.8. Организация внутреннего ОЗУ................................................................................................................................ 33
1.6.1.9. Система команд.......................................................................................................................................................... 34
1.6.1.10. Условия сброса.......................................................................................................................................................... 34
1.6.1.11. Watchdog таймер...................................................................................................................................................... 34
1.6.1.12. Типы генераторов.................................................................................................................................................... 34
1.6.1.13. Режим пониженного энергопотребления........................................................................................................ 35
2. АРХИТЕКТУРА МП И МИКРО-ЭВМ...................................................................................................................................... 35
2.1 Общая архитектура МПС.............................................................................................................................................. 35
2.2. Принципы управления операциями.................................................................................................................. 37
2.3. Архитектура микропроцессоров.......................................................................................................................... 38
2.4. Микропроцессор КР580ИК80А...................................................................................................................................... 38
2.4.1. Принцип работы МП..................................................................................................................................................... 40
2.4.2. Организация стека в МПС........................................................................................................................................... 41
2.4.3. Организация прерываний............................................................................................................................................. 42
2.4.4. Организация ПДП........................................................................................................................................................... 43
2.4.5. Форматы данных и команд.......................................................................................................................................... 44
2.5. Форматы команд и способы адресации........................................................................................................ 45
2.5. ОЭВМ семейства MCS-51................................................................................................................................................ 47
2.5.1. Организация памяти.................................................................................................................................................... 49
2.5.2. Организация ввода-вывода......................................................................................................................................... 51
2.5.3. Синхронизация ОЭВМ................................................................................................................................................... 52
1.5.4. Блок таймеров/счетчиков........................................................................................................................................... 52
2.5.5.Блок последовательного интерфейса и прерываний (ПИП).............................................................................. 54
2.5.6. Регистр состояния (PSW)........................................................................................................................................... 56
2.6. Система команд микропроцессора КР580ИК80А......................................................................................... 57
2.7.Система команд ОЭВМ серии MCS-51.................................................................................................................... 59
3. Запоминающие устройства и их основные характеристики......................................................... 59
3.1. Оперативные запоминающие устройства................................................................................................... 59
3.2. Постоянные запоминающие устройства..................................................................................................... 62
4. Средства связи МПС с объектами............................................................................................................................ 65
4.1. Общие положения............................................................................................................................................................ 65
4.1. Аналого-цифровые преобразователи............................................................................................................... 65
3.2. Цифро-аналоговые преобразователи............................................................................................................... 68
3.3. Преобразователи уровня и другие средства связи................................................................................. 68
4. Применение микропроцессоров и микропроцессорных систем................................................... 69
4.1. Особенности создания РЭС на МП....................................................................................................................... 69
4.2. Применение МП в измерительных приборах................................................................................................. 70
4.3. Применение МП в промышленности. связи, в быту.................................................................................. 71
4.4. Система сбора аналоговой информации.................................................................................................... 73
5. Перспективы развития микропроцессорных систем............................................................................. 81
5.1. Совершенствование аппаратных средств МПС......................................................................................... 81
5.1.1. Развитие структуры и характеристик МП.......................................................................................................... 81
5.1.2. Совершенствование схем памяти............................................................................................................................. 83
5.1.3. Развитие внешних устройств МПС.......................................................................................................................... 83
5.2. Совершенствование программного обеспечения................................................................................... 84
ПРИЛОЖЕНИЕ 1................................................................................................................................................................................ 87
ПРИЛОЖЕНИЕ 2................................................................................................................................................................................ 88