РУБРИКИ |
Конспект лекций по курсу "Микропроцессоры и микро-ЭВМ в Персональной электронике" для студентов специальности 2008 |
РЕКОМЕНДУЕМ |
|
Конспект лекций по курсу "Микропроцессоры и микро-ЭВМ в Персональной электронике" для студентов специальности 20081.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
* включая регистры специального назначения + включая линию вход 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 =
Аппаратные Биты статуса 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, |
|
© 2010 |
|