ЦУиМП Лек2 5курс (1086960), страница 4
Текст из файла (страница 4)
Память программ адресуется РС[15:0] и может составлять до 64К байт, причем младшие 4 К могут располагаться непосредственно на кристалле, а остальная память внешнее ЗУ. С точки зрения программиста внешняя и внутренняя память программ представляют единое адресное пространство. Имеются "особые точки"
CSEG:
RESET OOOOh - стартовый адрес;
EXTIO ОООЗЬ - внешнее прерывание 0;
TIMERO OOOBh - прерывание от таймера/счетчика ТО;
EXTI1 0013h - внешнее прерывание 1;
TIMER 1 OOlBh - прерывание от таймера/счетчика Т1;
SINT 0023h - прерывание последовательного порта;
Машинные циклы и синхронизация микро-ЭВМ
Питание МК51 осуществляется от одного источника +5В. Кварцевый резонатор 3,5.. 12 МГц подключается к выводам X1, Х2; возможно подключение внешнего тактового генератора через X1.
OSC/2 - основная внутренняя тактовая частота CLK. Первая половина периода CLK фаза Р1, вторая - Р2. Каждый машинный цикл состоит из шести периодов CLK: состояний S1, S2,.. S6 или двенадцати периодов OSC, называемых фазами S1P1, S1P2, S2P1, .. S6P, S6P2. Каждый машинный цикл сопровождается генерацией двух стробов ALE длительностью в один период CLK - S1P2..S2P1, S4P2.. S5P1.
страница 77
Микропроцессорные системы Лекции 2001 г.
Командный цикл (КЦ) содержит один или несколько машинных циклов (МЦ) и отсчитывается от S1P1. По фазе S1P2 в IR фиксируется код операции, второй байт двухбайтовой команды читается в S4P2 того же МЦ, третий байт трехбайтовой - в S1P2 следующего МЦ. Таким образом, для ввода каждого байта команды требуется один полуцикл.
Во время всех оставшихся полуциклов в фазах S1P2 и S4P2 читается код операции следующей размещенной в памяти команды, однако он не помещается в IR и не инкрементируется PC. Текущий КЦ всегда завершается в S6P2. Вслед за этим начинается S1, в котором в IR вводится новый байт.
Обращение к внешней памяти данных XSEG по команде MOVX требует второго МЦ, в котором не вырабатывается первый строб ALE. На рис. 3.7 приведена временная диаграмма обращения к XSEG.
Для приведение МК51 в исходное состояние необходимо подать на вход RST импульс Н-уровня длительностью не менее 24 периодов OSC (два МЦ) при условии что генератор запущен.
Внешние устройства МК51
К "внешним" устройствам МК51 отнесем:
-
4 параллельных двунаправленных порта ввода/вывода РО..РЗ;
-
буфер SBUF и регистр управления SCON последовательного канала;
-
таймеры/счетчики ТО, Т1, их регистр управления TCON и регистр режимов
TMOD; -
регистры управления подсистемой прерываний: регистр приоритетов IP и
регистр маски IE; -
регистр управления машиной PCON.
В состав МК51 входит дуплексный последовательный канал связи с буферизацией, который может быть запрограммирован для работы в одном из четырех режимов:
-
режим "О" - синхронный ввод/вывод с частотой OSC/12;
-
режим " 1" - асинхронный с 8-бит. кадром, частота k*f;
-
режим "2" - асинхронный с 9-бит. кадром, частота k*OSC/32;
-
режим "3" - асинхронный с 9-бит. кадром, частота k*f; где k {1, 1/2}, f - частота
переполнения Tl (FOV), деленная на 16.
Подсистема прерываний МК51
Архитектура МК51 поддерживает двухуровневую радиальную приоритетную
подсистему прерываний (ПП) с шестью источниками запросов.
Для приема внешних прерываний служат входы INTO\, INT1\.
Источниками внутренних запросов могут служить сигналы переполнения таймеров
ТО, Т1 и сигнал окончания работы последовательного канала.
Система команд МК51
Система команд включает 111 команд - однобайтовых (49), двухбайтовых (45) и трехбайтовых (17). Все команды выполняются за 1 или 2 МЦ (16 тактов CLK в каждом), за исключением команд умножения и деления MUL и DIV, для выполнения которых требуется 4 МЦ. Большинство двухбайтовых команд - одноцикловые, а все трехбайтовые -двухцикловые. За один МЦ в МК51 можно вводить до двух байтов программного кода.
МК51 работает с данными четырех основных типов - битами, полубайтами (4 бита), байтами и адресами (16 бит). Наиболее часто используемой единицей данных является байт: внутренние магистрали данных имеют 8-битный размер. Программная память,
страница 78
Микропроцессорные системы Лекции 2001 г.
внутренняя память и внешняя память данных запоминают и возвращают данные в виде байтов. Кроме этого, имеется много команд, которые работают с одиночными битами. Бит может быть установлен, очищен, проинвертирован, логически скомбинирован с флагом переноса и проверен для выполнения последующих переходов. Полубайт (двоично-десятичная упакованная цифра) обычно мало применяется в МК51, но двоично-десятичная арифметика может выполняться без преобразования операндов в двоичное представление.
Команды, которые используют 16-битные адреса, имеют дело с указателем данных (16-битный регистр DPTR) и с программным счетчиком (переходы и вызовы подпрограммы). Использование команд сложения с битом переноса (ADDC) и вычитание с заемом (SUBB) делает программирование 16-битной арифметики относительно простым.
Программно-доступными объектами в составе ОМЭВМ являются: аппаратные регистры, четыре банка по восемь регистров RO..R7,RO..R7 и 128 ячеек внутренней памяти данных - с адресами OOH..7FH. Кроме того, по специальным командам MOVX и MOVC может быть доступна внешняя память данных и программ. В МК51 возможна битовая адресация аппаратных регистров и части внутренней памяти.
При программировании следует иметь в виду, что в качестве регистров RO..R7 банка О используются ячейки внутренней памяти данных с адресами ООН..07Н, банка 1 - 08H..OFH, банка 2 - 10Н..17Н, банка 3 - 18H..1FH.
В системе команд МК51 используются регистровая, прямая, косвенная и непосредственная адресация.
При регистровой адресации операнды находятся в регистрах, имена которых определяются кодом операции команды. Эта адресация используется для обращения к регистрам выбранного банка рабочих регистров, к регистрам А, В, DPTR и к флагу переноса С.
По прямому адресу можно обращаться к аппаратным регистрам и внутренней памяти. Используется также прямая битовая адресация.
Косвенно можно адресоваться к ячейкам внутренней и внешней памяти данных через регистры RO,R1 текущего банка.
К любой ячейке внешней памяти (данных и программ) можно обратиться с использованием регистра DPTR.
По типу операций можно выделить следующие классы команд: пересылки; арифметические и логические; передачи управления; специальные команды.
Микроконтроллер PIC фирмы Parallax
Это особо малый микроконтроллер. Простейший микроконтроллер имеет 8 выводов. Микроконтроллер 8-ми разрядный с Гарвардской архитектурой, что повышает производительность. Одновременно считывается команда и происходит обращение за данными. В некоторых микроконтроллерах есть операции умножения, деления, операции с плавающей точкой. Система команд компактная - не более 51 команды (LOW, LITLE и HIGH - 51 команда). Есть банки регистров как МК51.
Есть ПЗУ разных типов и перифирийные устройства (АЦП, ЦАП). В составе перифирийных устройств имеется несколько выводов последовательного интерфейса -обычный RS232, интерфейс I2С фирмы Philips, SPI.
Контроллеры PIC могут быть использованы как "умные" перифирийные устройства, т.е. SLAVE - контроллер может быть подсоединен к управляющему контроллеру PIC как обычное перифирийное устройство через порт (или линю данных). Очень развиты перифирийные средства коммуникации (I2C, SPI, RS232, порты).
На основе PIC может быть организованна сеть микроконтроллеров (через шину I С).
У SPI и I2С общая особенность: для передачи используется два провода.
Интерфейс SPI работает со стробиpованием по фронту сигнала (клока), т.е. по одной линии передаются данные, по другой - клок.
страница 79
Микропроцессорные системы Лекции 2001 г.
В I2 С стробирование осуществляется по уровню. В обоих интерфейсах Master обеспечивает выдачу сигналов тактирования.
страница 80
Микропроцессорные системы
Цифровая обработка сигналов DSP (digital signal processor)
Особенности DSP
DSP представляют собой специализированные процессоры для приложений, требующих интенсивных вычислений.
Если ближе рассмотреть, к примеру, процесс операции умножения двух чисел с сохранением результата в традиционных микропроцессорах, то можно увидеть как расходуется машинное время: сначала происходит выборка команды (адрес команды выставляется на шину адреса), затем первого операнда (адрес операнда выставляется на шину адреса), затем операнд переносится в аккумулятор, далее происходит выборка второго операнда и т.д. Ускорение этого процесса в процессоре общего назначения невозможна из-за наличия единственной шины адреса и единственной шины данных, а также единственного банка данных. Ввиду этого все операции по извлечению операндов из памяти, выборки команды и сохранения операнда производится последовательно с использованием одной и той же шины данных и шины адреса. Кроме того, если рассмотреть операцию циклического суммирования арифметического ряда, то можно видеть что здесь непроизводительные затраты времени связаны с запоминанием адреса первой команды цикла, с проверкой условия цикла (счетчика) и возвратом к первой команде. Также большие непроизводительные затраты существуют при операциях перехода к подпрограмме и возврата (запись и восстановление значений регистров из стека) и при многих других операциях. Если при этом учесть огромное количество математических операций при выполнении цифровой обработки сигналов, то станет ясно, что неизбежны весьма чувствительные потери в точности вычисления при округлениях, которые не могут не сказаться на общем результате. Это происходит по причине одинаковой разрядности всех регистров процессоров общего назначения.
При цифровой обработке сигналов все эти затраты недопустимы. С целью преодоления этого недостатка процессоров общего назначения и были разработаны процессоры цифровых сигналов (DSP - Digital Signal Processor).
Трехшинная Гарвардская архитектура
Ее особенность состоит прежде всего в том, что в отличии от привычных нам двух шин: шины адреса и шины данных, а также одного банка памяти, DSP имеет как минимум 6-7 различных шин и 2-3 банка памяти. Эта особенность имеет своей целью максимально ускорить выполнение операции умножения с сохранением результата, которая, несомненно, является наиболее употребляемой и ресурсоемкой при цифровой обработке сигналов. Архитектура DSP позволяет за один машинный цикл произвести:
-
выборку команды посредством шины адреса программ и шины данных программ;
-
выборку двух операндов для операции умножения посредством двух шин адреса
данных; -
занесение операндов в аккумуляторы посредством двух шин данных;
-
операцию умножения;
-
сохранить результат в аккумуляторе.
Таким образом, трехшинная Гарвардская архитектура позволяет выполнить практически любую операцию за один машинный цикл.
В качестве примера эффективности использования DSP при реализации алгоритмов цифровой обработки сигналов можно привести следующий факт: время выполнения комплексного 1024-точечного преобразования Фурье составляет 20 мс для 486DX2 66 МГц
страница 81
Микропроцессорные системы Лекции 2001 г.
(32-разрядный) и 3.23 тс для 24-разрядного 33 МГц DSP56001 фирмы Motorola или 3.1 мс для 32- разрядного 33 МГц DSP TMS320C30 с плавающей арифметикой фирмы Texas Instruments.
Однако, как уже упоминалось, процессоры цифровой обработки сигнала имеют отличием не только высокую производительность, измеряемую в быстроте выполнения операций умножения/аккумуляции (MIPS - миллионы команд в секунду), но и такие характеристики, как последовательность выполнения программ, арифметических операций и адресации памяти, позволяющие сократить до минимума непроизводительные затраты времени. В целом DSP отличается от других типов микропроцессоров и микроконтроллеров по следующим пяти основным признакам:
1. Быстрая арифметика.
DSP - процессор должен осуществлять выполнение за один цикл операций умножения, умножения с аккумуляцией, циклический сдвиг, а также стандартные арифметические и логические операции.