Разделы
Публикации
Популярные
Новые
Главная » Классические однокристальные микроконтроллеры

1 ... 9 10 11 12 13 14 15 ... 20

сложных локальных и распределенных комплексах промышленной автоматики, таких как системы учета энергоресурсов, корпоративного контроля доступа, управления микроклиматом и др.

О микроконтроллерах семейства 8051, способных изменить в лучшую сторону показатели производительности разных систем, и пойдет дальше речь.

ВРЕМЯ ВЫПОЛНЕНИЯ КОМАНД В БАЗОВОЙ АРХИТЕКТУРЕ

Время вьшолнения команд жестко привязано к внутреннему генератору микроконтроллера, частота которого определяется внешниц кварцевым резонатором, подключаемым к соответствуюп];им выво дам корпуса. Внутренний генератор формирует сигналы синхронизации для всей аппаратуры микроконтроллера. На основе сигналов генератора формируется машинный цикл.

Когда-то давно разработчики микроконтроллера 8031 сделали ма-; шинный цикл равным двенадцати тактам генератора. Очевидно, этот выбор сделан не случайно. В многотактовом машинном цикле выполняется целый ряд действий, связанных с выборкой кода, выполнением операций и регистровыми пересылками, что позволяет выполнять большую часть команд за один цикл. Для каждой команды набор выполняемых в машинном цикле действий индивидуальный.

Длительность машинного цикла при тактовой частоте 12 МГц составляет одну микросекунду. Один миллион операций в секунду - такова была производительность базового микроконтроллера при вьшолнении одноцикловых команд. Для большого количества прикладных задач этого было вполне достаточно. Но любой разработчик, и тем более человек, занимаюп];ийся модернизацией устройств на микроконтроллерах, должен правильно оценивать миллионы операций в секунду современных кристаллов и временные характеристики сигналов доступа к внешней памяти представителей 51-го семейства.

Большую часть команд микроконтроллер семейства MCS-51 выполняет за один цикл. Для некоторых команд машинный цикл в 12 тактов избыточен и, следовательно, при выполнении холостых тактов ничего не происходит. Например, команда MOV А, Rx выбирается и выполняется 51-м микроконтроллером за 6 тактов, а следуюп];ие 6 тактов происходит холостая выборка инструкции по следуюп];ему адресу. В результате на 6-тактовую инструкцию микроконтроллер затрачивает 12 тактов. Для 85 команд требуется два машинных цикла и тоже с холостыми тактами (команды умножения и деления выполняются за 4 машинных цикла).

Если бы разработчики микроконтроллера уменьшили количество тактов в машинном цикле, то это привело бы к уменьшению време-

цй холостой работы. Оборотной стороной такого улучшения явилась бь1 такая схемотехническая реализация устройства управления контроллера, которая оказалась бы просто невозможной для размещения на одном кристалле. Ведь с точки зрения технологии 8051 являлся для своего времени очень сложным изделием - кристалл содержал 128 тыс. транзисторов.

Такой аргумент был очень весомым лет 15 назад, в эпоху появления первых микроконтроллеров, и вследствие этого MCS-51 были сделаны именно такими, какими они есть. Поэтому мы до сих пор пользуемся базовой архитектурой с не очень эффективной диаграммой выборки, дешифрирования и вьшолнения инструкций и с небольшой скоростью обмена с внешней памятью.

ВРЕМЕННЫЕ ХАРАКТЕРИСТИКИ СИГНАЛОВ УПРАВЛЕНИЯ ВНЕШНЕЙ ПАМЯТЬЮ

На сегодняшний день в разрабатываемых устройствах применяются микроконтроллеры с внутренней памятью программ, и в большинстве случаев работают они с внешней памятью данных. В разработках предыдущих лет и память программ была внешней. Использование внешней памяти очень существенно сказывается на производительности таких систем.

Хотя на сегодняшний день существуют различные последователь-пые интерфейсы (FC, SPI и CAN), самым популярным способом подключения дополнительных устройств к микроконтроллеру до сих пор остается такой: регистры, дешифраторы и периферийных контроллеры врезаются в адресное пространство памяти данных. При этом микроконтроллер обращается к таким устройствам как к ячейкам памяти. В подавляющем большинстве случаев врезанные устройства способны обмениваться с контроллером на значительно более высоких скоростях, чем даже память. Получается, что тормозит систему микроконтроллер, а не периферия. В дальнейшем под доступом к памяти будем понимать обращение к врезанным периферийным устройствам.

Напомним что, при работе с внешней памятью данных выдача младших разрядов адресов А0-А7 осуществляется через порт РО. При этом адрес фиксируется во внешнем регистре по сигналу ALE. Старшие разряды адресов А8-А15 выдаются через порт Р2. Чтение и выдача данных стробируются сигналами RD и WR . Чтение кодов команд из внешней памяти производится по сигналу PSEN.

Предварительную оценку временных характеристик интерфейса микроконтроллер-память несложно сделать, опираясь на теоретические значения длительностей сигналов управления внешней памятью,



приведенных в переводных или отечественных изданиях, посвящец ных семейству 8051:

строб адреса - ALE генерируется с частотой 1/6 частоты реза* натора;

длительность сшлшла ALE - 2 такта;

длительность сигналов RD и WR - 1/2 машинного цикла (§ тактов);

длительность сигнала PSEN - 1/4 (3 такта) машинного цикла. Так, при использовании кварцевого резонатора частотой 24 МГц

максимальная длительность сигналов PSEN, RD и WR равна соответственно ! 67, 250 и 250 не. Предельная скорость обмена с внешней памятью данных - 1 Мбайт в секунду, так как все команды MOVX выполняются за два машинных цикла (делим 24 МГц на 24 такта и получаем ] МГц). Это - гшковая скорость обмена с па.мятью. На самом деле она существенно меньше, так как микроконтроллер, помимо работы с памятью, выполняет и другие участки программы, например, вычисляя адрес следующей ячейки.

Фирмы-производители указывают в технической документации на микроконтроллер несколько значений для каждого сигнала (минимальное, максимальное, типичное), либо дают расчетную формулу, по которой легко считаются необходимые длительности сигналов и задержки. Реальные сигналы отличаются от теоретических, и это надо иметь в виду при анализе резервов быстродействия микросхем па.мяти.

Современные микросхемы ПЗУ и ОЗУ легко вписываются в указанные времена, а их технические параметры позволяют вести обмен со значительно большей интенсивностью. Те микросхемы ПЗУ и ОЗУ, которые применя;п-1сь несколько лет назад, имели худшие параметры, но в ряде случаев и у них оставался некоторый запас по быстродействию.

Микросхемы памяти данных можно заменить на более быстродействующие путем их простой физической замены, без каких-либо дополнительных перерезаний дорожек или иcnqлbЗoвaния переходных адаптеров. Цоколевка микросхем останется прежней. Содержание памяти программ переносится в более быстродействующие микросхемы или в память микроконтроллера с помощью программаторов. Более того, современные микроконтроллеры имеют режим внутрисхемного программирования.

ОТ ЧЕГО ЗАВИСИТ СКОРОСТЬ ВЫПОЛНЕНИЯ ПРОГРАММ

Помимо аппаратных ограничений, определяющих максимальную скорость выполнения команд, разработчику следует обратить вни-

ание на такую многогранную проблему, как выбор языка программирования и степень проработанности реализуемого алгоритма работы устройства.

Использование языка высокого уровня ускоряет процесс написания программной части проекта и упрощает ее отладку при наличии соответствующих инструментальных средств. Но, как правило, программы, написанные на языке высокого уровня, медленнее работают по сравнению с программами на ассемблере.

Например, обмен с внешней па.мятью данных, реализованный на языке Си, вьшолняется достаточно медленно. Имеется в виду, конечно, не разовая запись или чтение, а отрезок времени между двумя обращениями к памяти. В данном случае скорость обмена с памятью определяется скорее разработчиком компилятора, а именно тем, какой код получается в результате компиляции. Разработка программного обеспечения на ассемблере - процесс достаточно трудоемкий и длительный, хотя и обеспечивает наибольшую пропускную способность канала микроконтроллер-память.

Ниже приведен текст программы на языке высокого уровня (Си) фирмы IAR. Программа заполняет 32768 ячеек внешней памяти данных значением из порта Р1.

include <io51,h> ddefine MAXSIZE 32768 xdata cnar nonelMAXS IZE]; vc i d mai n() {

data unsigned int i;

for (i = 0; i < MAXSIZE; \++)

nonc[i] = PI;

В результате компиляции получается следующий код (код соответствует командам Си):

\ 0000 Е4 \ 0001 F500 \ 0003 F500 \ 0005 0001: \ 0005 Е500 \ 0007 СЗ \ 0008 9480 \ ОООА 5019

CLR M0V M0V

M0V CLR SUBB JNC

$LOCBD main,А SLOCBD main+1,А

A.SLOCBD main ь

А,#128 70000



\ ОООС 70002, 15 none[i] = \ ОООС Е500 \ ОООЕ 2400 \ 0010 F582 \ 0012 Е500 \ 0014 3400 \ 0016 F583 \ 0018 Е590 \ 001А F0 \ 001В 0500 \ 001D Е500 \ 001F 7002 \ 0021 0500 16 17 }

\ 0023 80Е0 \ 0025 70000: \ 0025 22

ADDC

MOVX

SJMP RET

A,SLOCBD main+l A,#LOW(none) DPL, A

A,$LOCBD main A,#HIGH(none) DPH,A A, 144 @DPTR,A SLOCBD main+1 A,SLOCBD main+1 $+4

SLOCBD main

0001

Компилятор фирмы lAR, в отличие от компилятора KEIL, изменяет код приведенной выше программы всего на несколько байт при разных размерах пересылаемого массива. Характерной особенностью полученного кода является то, как вычисляется адрес следуюш;ей ячейки памяти данных. К адресу начала массива, расположенному во внешней памяти данных, прибавляется текущее значение счетчика записываемых в цикле байт.

В табл. 1 приведены времена выполнения этой программы нрй разном количестве записываемых в память данных байт и при использовании компиляторов фирм IAR и KEIL. Обратите внимание на то, что компилятор IAR хуже справляется с нечетными массивами.

Длина записываемого во внешнюю память данных массива. Время записи массива

Длина кода, полученного с помощью компилятора фирмы KEIL, кардинально изменяется в сторону увеличения при записи большого массива в память данных, что влечет за собой рост временных затрат. Это видно из табл. 1.

В табл. 1, содержащей результат компиляции программы для разных длин пересылаемых массивов, хорошо видна разница в длине кода и в его содержании. Отличия объясняются разной организацией проверки переполнения счетчика пересылаемых байт для массивов до 32К

IAR (Мкс)

KEIL (мкс)

Т = 26

Т = 21

Т = 25

Т= 19

Т = 23

Т= 18

1 418

Т = 22

1155

Т= 18

5 129

Т = 20

4 103

Т= 16

1024

20 490

Т = 20

16 402

Т= 16

1025

22 562

Т = 22

16 421

Т= 16

4096

81 937

Т= 20

65 598

Т= 16

16384

327 725

Т = 20

262 381

Т= 16

20480

409 654

Т = 20

327 976

Т= 16

32767

720 951

Т = 22

524 742

Т= 16

32768

655 441

Т = 20

1 572 897

.1 = 48

49152

983 158

Т = 20

2 359 328

Т = 48

65535

1 441 915

Т = 22

3 145 709

Т = 48

Т - Время затраченное на пересылку одного байта во внешнюю память данных (получается в результате деления значения времени, затраченного на пересылку, на количество пересылаемых байт). Чем меньше значение Т, тем эффективней обмен с внешней памятью данных. Значения получены при использовании микроконтроллера с машинным циклом 12 тактов и с тактовой частотой 12 МГц.

и более 32К. Сгенерированный компилятором фирмы KEIL код для записи в внешнюю память данных массива более 32К содержит еще и вызов подпрограммы сравнения ACALL ?C?SLCMP, что вносит дополнительные временные затраты. Цикл, состоящий из большего количества команд, выполняется медленнее, чем более короткий, отсюда и увеличение затрат на пересылку одного байта (Т=48).

Организованный таким образом доступ (см. тест программы на Си) на запись во внешнюю память данных при использовании компилятора фирмы KEIL целесообразен для массивов до 32К. Компилятор IAR лучше применять при пересылках массивов объемом более 32 К, выигрыш во времени оказывается более, чем в два раза по сравнению с KEIL.

Листинг результата компиляции приведенного примера программы с помощью компилятора фирмы KEIL можно просмотреть в табл. 2.

Аналогичная программка, реализованная с помощью ассемблера, может иметь постоянный коэффициент затрат, и при этом весьма небольшой.

Дилемму выбора между языком и скоростью можно решить разными путями - например, использованием компилятора языка высокого уровня, поддерживающим ассемблерные вставки. Тогда тело



Таблица^

Keil 32767

0000 Е4

0001 F500

0003 F500

i+01H,A

0005

7C0001

; SOURCE LINE # 14

0005 7400

A,#LOW none

0007 2500

A,i+01H

0009 F582

DPL,A A,i

OOOB E500

OOOD 3400

ADDC

A,#HIGH none

OOOF F583

DPH.A

0011 E590

A,P1

0013 FO

MOVX

@DPTR,A

0014 0500

i+OIH

0016 E500

A,i+01H

0018 7002

7C0005 i

001A0500

001C 7C0005:

001C E500

A,I+OIH

001E B4FFE4

CJNE

A,#0FFH,?C0001

0021 E500

0023 B47FDF

CJNE

A,#07FH,?C0001

SOURCE LINE # 16

0026 7C0004-

0026 22

Keil 32768

lOOOO E4 0001 F500 0003 F500 0005 7C0001-0005 AEOO 0007 AFOO 0009 E4 OOOA FC OOOB FD OOOC FB OOOD 7A80 OOOF F9 lOOlO F8

0011 D3

0012 1100 0014 4019 ; SOURCE LINE # 0016 7400 0018 2500 001AF582 001C E500 00IE 3400 0020 F583 0022 E590

0024 FO

0025 0500 0027 E500 0029 7002 002B 0500 002D

002D80D6 ; SOURCE LINE # 002F 7C0004: 002F 22

7C0005:

CLR MOV MOV

MOV MOV CLR MOV MOV MOV MOV MOV MOV SETB ACALL JC 14

MOV ADD MOV MOV ADDC MOV MOV MOVX INC MOV JNZ INC

SJMP 16

A i,A

i+01H,A R6,i

R7,i+OIH A

R4,A

R5,A

R3,A

R2,#080H

R1,A

RO,A

С

7C7SLCMP 7C0004

A,#LOW none

A,i+01H

DPL.A

A,#HIGH none

DPH.A

A,P1

@DPTR,A i+OIH A,I+01H 7C0005

7C0001

программы, написанное на языке высокого уровня, будет выполняться медленно (условно медленно), а доступ к памяти останется на уровне ассемблера. Правила написания программ с ассемблерными вставками у каждого компилятора свои.

В большей степени вопрос о том, достаточна ли производительность микроконтроллера для решения поставленной задачи, зависит от квалификации и творческих способностей разработчика. В свою очередь, без профессиональных средств отладки серьезный проект выполнить сложно.

СРЕДСТВА ДЛЯ ОЦЕНКИ ПРОИЗВОДИТЕЛЬНОСТИ МИКРОКОНТРОЛЛЕРА

Оценить производительность микроконтроллера или сравнить производительность микроконтроллеров с разным машинным циклом можно с помощью профессиональных отладочных средств. Ма-232

четные платы для этого собирать не надо. Для наших целей подойдут и современный программный симулятор, и внутрисхемный эмулятор.

Говоря о целесообразности использования профессиональных инструментальных средств отладки, можно приводить множество аргументов. Мы сознательно не стали этого делать, поскольку считаем, что любой профессиональный разработчик или инженер-прикладник, только встающий на стезю разработки микропроцессорной системы, в состоянии самостоятельно сделать выводы при наличии необходимой информации. Приведем лишь одно соображение. Западные разработчики микроконтроллерных систем, которых трудно заподозрить в отсутствии прагматизма или в неумении считать деньги, давно и интенсивно используют в своей работе профессиональные инструментальные средства. При этом большинство разработок, особенно сложных систем, ведется с применением языков высокого уровня. Об этом стоит задуматься.

Программный симулятор

Если доступен исходный текст программы, то возможности модернизируемой системы легко оценить с помощью программного отлад-чика-симулятора. Отладчик-симулятор должен обеспечивать привязку к реальному времени (хотя в нем все процессы происходят в виртуальном мире) и должен иметь встроенный анализатор эффективности --Performance Analyzer. Анализатор предназначен для построения диаграммы распределения времени выполнения программы, т. е. выяснения вклада каждой процедуры программы в общее время выполнения, что позволяет анализировать критические участки с целью их оптимизации или выявления функций, которые не вызываются ни разу ( мертвый код ). Для работы с Performance Analyzer исходные тексты программы необходимо подготовить. Описание подготовительных действий индивидуально для каждого языка программирования и приводится в документации используемого средства отладки.

Другими словами, анализатор эффективности вычисляет для каждой подпрограммы ее долю в общем времени выполнения программы, а также подсчитывает время, затраченное на полное выполнение программы. Performance Analyzer работает вне зависимости от того, в каком режиме выполняется программа - пошаговом или непрерывном. Это удобно для анализа распределения времени не по всей программе, а по какому-либо ее фрагменту. В любой момент Performance Analyzer может быть сброшен (счетчики времени для всех функций становятся равными нулю).

В случае использования небольшой программы для определения времени ее выполнения помимо анализатора эффективности мож-



но воспользоваться окном Время выполнения или функцией поша-. гового выполнения без захода в подпрограммь[. Оба способа работа? ют и в симуляторах, и в эмуляторах. На сайте фирмы Фитон (http: www.phyton.ru) находится демо-версия профессионального симулятора - PDS-51 из пакета Project-51/SA позволяющая работать с кодом до 2К, поддерживающая несколько языков высокого уровня и микроконтроллеры с машинным циклом разной длины. Пакет Project-51/SA поддерживает компиляторы фирм KEIL и IAR, о которых шла речь в предыдущем разделе, и поставляется с ассемблером МСА-51.

В окне Время вьшолнения симулятора PDS-51 отображается информация о времени вьшолнения программы (имеется в виду модель ное время) и частоте кварцевого генератора процессора. Подсчет време^ ни выполняется на основе значений тактовой частоты процессора. В строках окна показывается модельное время, прошедшее с момента последнего сброса таймера, и время, отсчитываемое по локальному счетчику, который сбрасывается каждый раз при запуске отлаживаемой программы. Например, после выполнения одной машинной инструкции в этой строке будет отображено время, затраченное на ее выполнение, после выполнения одного оператора Си - суммарное время вьшолнения инструкций, из которых состоит этот оператор и т. п. Отображается частота тактового генератора процессора и количество сгенерированных за время вьшолнения программы сигналов PSEN, RD, WR .

Выполнение шага программы без захода в подпрограммы (подпрограмма выполняется целиком как один шаг) обеспечивает дополнительную возможность по тестированию микроконтроллера с точки зрения производительности и интенсивности обмена с памятью. Всегда можно определить время вьшолнения подпрограммы.

Перечисленные выше функции являются некоторой частью сервисных возможностей, реализованных в высокоуровневом отладчи-ке-симуляторе PDS-51. Использование встроенного в симулятор Си-подобного языка для моделирования внешней среды открывает дополнительные перспективы для тех, кто занимается модернизацией и разработкой систем на основе микроконтроллеров. Всю систему можно нарисовать на экране компьютера, описать внешние по отношению к контроллеру аналоговые и цифровые сигналы и довести программу на полученном виртуальном макете.

Внутрисхемный эмулятор

Внутрисхемный эмулятор, в отличие от симулятора, работает в реальном времени и позволяет вести отладку программ в модернизируемой или создаваемой системе в полном объеме. Стыковка внутрисхемного эмулятора с системой производится при помощи эмуляци-234

онного кабеля со специальной эмуляционной головкой. Последняя {зстанляется вместо микроконтроллера в систему. Если микроконтроллер невозможно удалить из отлаживаемой системы, то использование эмулятора возможно только только тогда, когда микроконтроллер 1!меет отладочный режим, при которо.м все его выводы находятся в третьем состоянии. В этом случае для подключения эмулятора используют специальный адаптер-клипсу, который подключается непосредственно к выводам эмулируемого микроконтроллера.

Внутрисхемный эмулятор PICE-51 (пакет Project-51/ЕА) имеет аппаратный трассировщик, который позволяет посмотреть историю выполнения программы и те самые холостые выборки, о которых упоминалось в предыдущем разделе. Помимо окна Время выполнения и функции пошагового выполнения без захода в подпрограммы, внутрисхемный эмулятор снабжен очень мощным средством отладки под названием процессор точек останова. Это аппаратный компаратор, способный сравнивать состояния шин адреса, данных и внешних сигналов в любом ци1сле при обращении к любой области памяти со значениями, введенными пользователем- При совпадении значений возможен останов программы или запуск трассировщика. Допустим, необходимо выявить момент, когда программа начнет производить запись в старшую половину внешней памяти данных. С помощью процессора точек останова это сделать очень просто. Достаточно указать р старшем разряде адреса 1, в остальных разрядах - Он определить в каком цикле проверять состояние шины адреса.

Более сложное использование процессора точек останова подразумевает логическое взаимодействие нескольких точек останова, определенных пользователем.

Внутрисхемный эмул.чтор дороже, че.м программный симулятор, но предоставляемый программной оболочкой сервис и аппаратные возможности делают его незаменимым в проектах любой сложности при работе с сигналами в реальном времени. В конечном итоге, при использовании профессионального эмулятора вы потратите на разработку или модернизацию системы на порядок меньше времени, чем при работе без него. А время - это деньги.

ПУТИ ПОВЫШЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ СИСТЕМ НА ОСНОВЕ МИКРОКОНТРОЛЛЕРОВ 8051

По истечении некоторого времени ранее разработанные системы на микроконтроллерах находятся на пределе своих возможностей по причине расширения возлагаемых на них задач. Для модернизации таких устройств существует несколько путей. Один из них - замена микроконтроллера на аналогичный с более высокой тактовой частотой. При



этом повысится скорость выполнения команд контроллером и скорость обмена с памятью. Как показано выше, скорее всего память н периферийные устройства смогут работать на более высокочастотной шине. На сегодня тактовая частота типичного .микроконтроллера повысилась до 33 МГц - это 2,75 миллионе операций в секунду, что в 2,75 раза больше, чем у старых контроллеров, работавших на частоте 12 Ml ц. Следовательно, и производительность модернизируемой системы увеличится, оставаясь достаточной еше довольно продолжительное время.

Но, к сожалению, не все так просто. И дело даже не в том, что возможна нестыковка старой системы и нового процессора по логическим уровням при большой нагрузке на шины. Большинство систем используют внутренние таймеры, последовательные порты, ШИМ-генераторы, WD-таймеры микроконтроллера, которые настраиваются программно. И простое увеличение его тактовой частоты приведет, например, к уменьшению промежутка времени между прерываниями от таймеров. Часы, реализованные таки.м способом, пойдут в 2,75 раза быстрее, а связь через последовательный порт с компьютером работать не будет. Разрешить возникншй конфликт сможет: только программист, исправив в программе настройки таймеров. А это не всегда возможно. Иногда просто дорого.

Выход, конечно, есть. Существует несколько фирм, которые разработали микроконтроллеры семейства MCS-51 с укороченным ма-илинным циклом. В таком микроконтроллере машинный цикл выполняется за 6 тактов или даже еще быстрее, за 4 такта. Другими словами, при той же тактовой частоте производительность микроконтроллера с машинным 1Ц1КЛОМ 6 тактов должна вырасти в 2 раза, а у четырехтактового - почти в 3 раза по сравнении с базовой архитектурой. Замена старого микроконтроллера на современный с укороченным машинным циклом в большинстве случаев позволяет увеличить производительность системы без модернизации программ. Привязка ко времени остается как у исходного процессора (таймеры-счетчики остались прежними), а команды выполняются быстрее, и скорость обмена с памятью возрастает.

Сравнивать пиковую производительность микроконтроллеров на одной тактовой частоте смысла не имеет. Микроконтроллер с укороченным вдвое маишнным циклом будет выполнять программу в два раза быстрее. Это касается и работы с внешней памятью. В микроконтроллерах фирмы Dallas Semiconductor для большинства команд используется еще более короткий машинный цикл - 4 такта (некоторые команды выполняются за 8 тактов). Следовательно, производительность у них выше до 3 раз по отношению к микроконтроллеру с ба.зовой архитектурой.

Интересно посмотреть, насколько изменится производительность спсте.мы, в которой старый микроконтроллер заменен на совремеи-иьгй, например, отфир.мы Dallas Semiconductor. Временная диаграмма доступа к внешней памяти данных у контроллеров Dallas Semiconductor изменена (уве.дичена на некоторое количество тактов, ijTODbi микроконтроллер мог работать с медленной памятью). Очевидно, что чем чаще происходит обмен с внешней памятью, тем медленней работает вся система. И максимальная производительность достигается на тех участках кода, где нет доступа к памяти. Вследствие этого, для каждой систе.мы коэффициент полезности при замене микроконтроллера па новый оказывается индивидуален.

Такой эксперимент проще всего проделать с помощью эмулятора, который поддерживает микроконтроллеры с укороченным циклом команд. Эмулятор, о котором упоминалось ранее, PICE-51 с соответствующими адаптерами, поддерживает микроконтроллеры с 6-тактным и 4-тактным машинным циклом.

ШКРОКОНТРОЛЛЕРЫ с УКОРОЧЕННЫМ циклом КОМАНД

Микроконтроллеры 89С51 фирмы Philips

В конце 1999 г. фирма Philips сделала новый шаг в развитии микроконтроллеров семейства 8051, выпустив микроконтроллеры 89C51RB2, 89C51RC2, 89C5iRD2. Главной их особенностью является сокращенное в два раза по сравнению с базовой архитектурой вре-.чя машинного цшсла. Вместо обычных 12 тактов новые микроконтроллеры выполняют машинный цикл за 6 тактов. Б результате время выполнения самой быстрой инструкции сократилось до 300 не на 20 МГц, что эквивалентно частоте 40 МГц у стандартного 5Ьто кристалла. При этом микроконтроллеры имеют однократно программируемый конфигурационный бит, управляющий переключением ядра к стандартный 12-тактный режим работы. Установка этого бита возможна с помощью программатора.

В 12-тактном режиме эти микроконтроллеры полностью идентичны микроконтроллерам 89C51RB-f, 89C5IRC+, 89C5lRD-(-. Функциональные характеристики и разводка корпусов новых микроконтроллеров также полностью аналогичь}ы самым популярным кристаллам семейства 8051 - 89C51FA/FB/FC/FD и 89C51RB+/RC+/RD+. Это обеспечивает возможность быстрой и дешевой модернизации существующих микроконтроллерных систем путем простой замены старого микроконтроллера на новый без каких-либо изменений в аппаратуре. Краткие технические характеристики этих микроконтроллеров представлены в табл. 3.



Макс. Тактовая частота, МГц (машинный цикл)

FLASH-память, Кбайт

RAM, байт

Таймеры/ счетчики

Число линий ввода/вывода

89C51RB2

33 (12 тактов) 20 (6 тактов)

3+PCA+WDT

89C51RC2

33 (12 тактов) 20 (6 тактов)

3+PCA+WDT

89C51RD2

33 (12 тактов) 20 (6 тактов)

1024

3+PCA+WDT

Примечание. Все модификации имеют универсальный асинхронный последовательный приемопередатчик (UART. Напряжение питания всех микроконтроллеров -

Принятые сокращения:

РСА WDT DTPR СО

Boot louder ISP

ШИМ NxM

- массив профаммируемых счетчиков;

- сторожевой таймер;

- регистр указателя адреса данных;

- выход тактового сигнала;

- начальный загрузчик;

- внутрисхемное программирование;

- широтно-импульсный модулятор; N выходов с разрешением М разрядов каждый.

Сигналы работы с внешней памятью программ и данных в микроконтроллерах 89C51Rx2 имеют следующие значения:

Таблица 3

Минимальная длительность сигаала (Тактовая частота 33 МГц , машинный цикл - 12 тактов). Формула расчета.

Минимальная длительность сигаала (Тактовая частота 20 МГц , машинный цикл - 6 тактов). Формула расчета.

21 не 2Тс1с - 40

10 нс Tele-40

PSEN

45 НС ЗТс1с - 45

30 нс 1,5Тс1с-45

82 нс 6Тс1с-100

50 НС ЗТс1с - 100

82 нс 6Тс1с-100

50 нс ЗТс1с-100

Примечание. Tele - период тактовой частоты (наносекунд)

Максимальная длительность сигналов определяется по тем же формулам, надо только отбросить вычитаемое.

Типичное значение длительностей сигналов находится между минимальным и максимальным значениями. Обычно фирмы-производители микроконтроллеров не указывают типичное значение, так как оно зависит от многих факторов (напряжения питания, температуры, втекающих и вытекающих токов и т. д.). Поэтому ориентироваться при разработке новых систем следует на указанное в табл. 4 значение. А при модернизации устройств можно посчитать максимальные дли-238

Другая периферия, осЬбенности

Корпус (тип, число выводов)

Boot loader, ISP, 2 DPTR, 4 уровня прерываний, СО, удвоенная скорость выполнения инструкций

DIP40, LCC44, QFP44

Boot loader, ISP, 2 DPTR, 4 уровня прерываний, СО, удвоенная скорость выполнения инструкций

DIP40, LCC44, QFP44

Boot loader, ISP, 2 DPTR, 4 уровня прерываний, СО, удвоенная скорость выполнения инструкций

DIP40, LCC44, QFP44

тельности сигналов. И если временные характеристики установленных микросхем памяти соответствуют посчитанным или несколько лучше, то, скорее всего интерфейс микроконтроллер-память будет нормально работать. Иначе микросхемы памяти данных придется заменить на более быстродействующие, а содержимое памяти программ переписать в память микроконтроллера.

Информация по микроконтроллерам находится на сайте фирмы Philips: http: www.semiconductors.philips.com/handbook/ category 7.html.

Микроконтроллеры 89С66Х фирмы Philips

Микроконтроллеры серии 89С66Х имеют увеличенный объем RAM на кристалле и характерный набор функциональных характеристик: сокращенное в два раза по сравнению с базовой архитектурой время машинного цикла, начальный загрузчик, внутрисхемное программирование, два DPTR, четыре уровня прерываний, массив программируемых счетчиков, сторожевой таймер, программируемый ШИМ, контроль за напряжением питания.

В микроконтроллерах реализована возможность отключения сигнала ALE с целью уменьшения уровня электромагнитного излучения.

Микроконтроллеры фирмы Temic Semiconductors

Фирма Temic Semiconductors выпускает микроконтроллеры семейства 8051 с префиксом Х2. В 12-тактном режиме эти микроконтроллеры полностью идентичны микроконтроллерам с базовой архитектурой. Но они легко переводятся в режим с укороченным машинным циклом в 6 тактов. Для этого достаточно установить бит CKCON.0 дополнительного регистра CKCON. Установка и сброс бита возможны в любой момент в ходе вьшолнения программы. Большинство команд при той же тактовой частоте выполняется в два раза быстрее, а при обращении к внешней памяти мы сбрасываем бит CKCON.0 и получаем стандарт-



Микроконтроллер

Р89С660НВА~

P89C660HFA

P89C660HBBD

Р89С662НВА P89C662HFA

FLASH-память, Кбайт

RAM, байт

P89C662HBBD

p89c662hfbd р89с664нва

P89C664HFA P89C664HBBD !p89C664HFBD~

1024

Тактовая частота, МГц Машинный цикл 6 тактов

С..20

0...20

С..20

1024

1024

1024

2048

2048

2048

2048

0...20

Тактовая частота, МГц Машинный цикл 12 тактов

0...33

Температурный диапазон, °С

0...33

с..33

0...20

0...20

0...20

0...20

0...20

0...20

0...20

0...33

С..33

0...33

0...33

0...33

С..+70

-40...+85

0...+70

G...+70

PLCC44

PLCC44

LQFP44

-40...+85

G...+70

-40...+85

0...33

0...33

0...33

0...+70

-40...+85

0...+70

-40...+85

iPLCC44

PLCC44

LQFP44

ILQFP44

PLCC44

PLCC44

LQFP44

LQFP44

Примечание. Все модификации имеют универсальный асинхронный последовательный приемопередатчик UART. Напряжение питания всех микроконтроллеров - 4,5...5,5 В

ные длительности сигналов RD, WR , PSEN. При включении и после аппаратного сброса разряд регистра CKCON.0 всегда очищен, и микроконтроллер стартует со стандартным машинным циклом. Микроконтроллеры фирмы Temic:

Таблица 7

ROMless

TS80C31X2

TS80C32X2

TS80C51RA2

TS80C51RD2

TS80C51U2

TS80C52X2

TS80C54X2

TS80C58X2

TS83C51RB2

TS83C51RC2

TS83C51RD2

TS83C51U2

TS87C52X2

TS87C54X2

TS87C58X2

TS87C51RB2

TS87C51RC2

TS87C51RD2

TS87C51U2

Примечание. ROMless - без памяти программ на кристалле

ROM - масочная память программ

OTP - однократно программируемая память программ

Temic Semiconductors, находящийся в полной собственности филиал компании Atmel Corporation (Nasdaq ATML), объявил о доступности Flash-микроконтроллера T89C51RD2. Микроконтроллер сохраняет все особенности Temic TS8xC5lRx2 с 256 байтами внутреннего ОЗУ (RAM) плюс 1024 байта СОЗУ (сверхоперативного ОЗУ, XRAM), программируемый массив счетчиков (Programmable Counter Array, РСА), аппаратный сторожевой таймер (Watchdog timer), режимы управления питанием, а также использует преимущество быстродействующего ядра. 240

1Микроконтроллеры фирмы Dallas Semiconductor

Фирма Dallas Semiconductor усовершенствовала архитектуру семейства 8051. Явным слабым местом базовой архитектуры являлась, как уже упоминалось, неэффективная диаграмма выборки, дешифрирования и выполнения инструкций. Специалисты Dallas Semiconductor переработали ядро микроконтроллера таким образом, что типовой цикл выборки команд сократился до 4-х тактов, а холостые выборки были исключены. Таким образом, команда MOV А, Rx стала выполняться за 4 такта тактового генератора, т. е. в 3 раза быстрее. Команды 8051, которые не имели холостых выборок, в новом микроконтроллере ускорились в 1,5 раза.

Новое семейство микроконтроллеров получило название High-Speed Microcontroller. Важным его достоинством явилось то, что для перевода традиционной микроконтроллерной системы на High-Speed Microcontroller достаточно вытащить из платы микроконтроллер 8051, и взамен него установить микросхему от Dallas Semiconductor. Конечно, в конкретных случаях проблемы перехода могут иметь место. Микроконтроллеры семейства High-Speed приведены в табл. 8.

Таблица 8

ROM/EPROM, Кбайт

RAM, байт

Последовательные каналы

периферия,

особенности

Корпус (тип,

число

выводов)

DS80C310

UART

2 DPTR

DIP40, LCC44, QFP44

DS80C320

2 UART

2 DPTR

DIP40, LCC44, QFP44

DS80C323

2 UART

2 DPTR

QFP44

DS8XC520

1280

2 UART

2 DPTR

DIP40, LCC44, QFP44

DS87C530

1280

2 UART

2 DPTR,RTC, Battery back up

LCC52

DS87C55G

1280

2 UART

2 DPTR,RTC, Battery back up, ШИМ 4x8

LCC68, QFP80

Примечание. Максимальная тактовая частота МК DS80C323WDT - 20 МГц, остальных- 33 МГц. Все модификации, кроме DS80C310, содержат три таймера/счетчика и сторожевой таймер (WDT), DS80C310 - только три счетчика/таймера. Число линий ввода/вывода DS87C550 - 55, всех остальных модификаций - 32. МК DS87C550 содержит восьмиканальный десятиразрядный АЦП. Напряжение питания DS80C323 - 2,7...5,5, остальных - 4,5...5,5 В. Рабочий интервал температур DS8xC520 - от -40 до +125 °С, остальных МК - от -40 до +85 =>С. Принятые сокращения:

UART - универсальный асинхронный последовательный приемопередатчик; DTPR - регистр указателя адреса данных; RTC - таймер реального времени; Battery back up - батарейная поддержка; ШИМ - широтно-импульсный модулятор.



Реализованный в микроконтроллерах DS8XC520 и DS87C530 новый режим управления потреблением (РММ - Power Management Mode) позволяет программно выбирать длительность машинного цикла. Возможен выбор длительности машинного цикла в 64 такта и в 1024 такта с соответствующим снижением потребления. Для еще большего снижения потребления микроконтроллеры могут тактироваться от встроенного аппаратного кольцевого генератора (нестабилизирован-ная частота около 4 МГц) с делением частоты на 64 или на 1024.

У перечисленных кристаллов существует возможность определять цикл доступа к внешней памяти в тактах генератора. Длительность обращения к памяти устанавливается тремя младшими бита- ми регистра CKCON (8ЕН).

Таблица 9

CKC0N2

CKC0N1

CKCON0

Такты

Время цикла обращения к

генера-

памяти. Тактовая частота 12 МГц

167 НС

333 не

(устанавливается после Reset)

667 не

1000 нс

1333 не

1667 не

2000 не

2333нс

Корпорация Dallas Semiconductor выпустила новый высокоскоростной микроконтроллер - DS89C420, который является улучшенным аналогом DS87C520. DS89C420 имеет высокопроизводительное (1 цикл за такт) ядро процессора. Микроконтроллер совместим с 87С52 контактно и программно. DS89C420 является наиболее скоростным в сравнении с другими микроконтроллерами стандарта 8051: одна инструкция за такт при максимальной частоте в 50 МГц. При обработке 50 миллионов команд в секунду, DS89C420 работает в 50 раз быстрее, чем обычный микроконтроллер архитектуры 8051.

Таблица 10

Обозначение

Макс, тактовая частота, МГц

Температурный диапазон, С

DS89C420-MNS

40-pin PDIP

-40 до+85

DS89C420-QNS

44-pin PLCC

-40 до +85

DS89C420-ENS

44-pin TQFP

-40 до +85

Микроконтроллеры фирмы Winbond

Фирма Winbond выпускает микроконтроллеры W77xxx - Turbo MCS-51. Машинн4.1й цикл в них укорочен до 4 тактов, как и у микроконтроллеров фирмы Dallas Semiconductor.

Таблица 9

Микроконтроллер

Максимальная тактовая частота 6 тактов/12 тактов

Напряжение

питания

Корпуса

W77C32

25/40

4,5...5,5

D40,P44,Q44

W77C58

25/40

4,5...5,5

D40,P44,Q44

W77E58

25/40

4,5...5,5

D40,P44,Q44

W77E468

25/40

4,5...5,5

Q100

W77LE58

2,7...5,5

D40,P44,Q44

Информация о микроконтроллерах Winbond находится на сайте фирмы: http: www.winbond.com.

ПРЕИМУЩЕСТВА ЧАСТИЧНОЙ МОДЕРНИЗАЦИИ (ПУТЕМ ЗАМЕНЫ МИКРОКОНТРОЛЛЕРА НА СОВРЕМЕННЫЙ) ПЕРЕД ПОЛНОЙ МОДЕРНИЗАЦИЕЙ СИСТЕМЫ

Наиболее важная особенность семейства 8051 - программная совместимость на уровне двоичного кода всех входящих в него микроконтроллеров. Это позволяет разработчикам систем заменять одни микроконтроллеры семейства другими, более производительными, без потери наработок своего программного обеспечения.

Используя встроенные периферийные устройства микроконтроллеров, иногда можно исключить некоторые блоки старой аппаратуры. В современных микроконтроллерах реализованы некоторые устройства, которые раньше приходилось делать внешними на различной элементной базе. Например, сторожевой таймер или генератор с широтно-импульсной модуляцией, аналого-цифровой и цифро-аналоговый преобразователь, аналоговый компаратор. Это касается и энергонезависимой памяти EEPROM, и всевозможных интерфейсов: CAN, PC, SPI, USB. Использование встроенных периферийных устройств позволяет увеличить надежность системы, уменьшить потребление энергии и уровень электромагнитного излучения.

Перенос программы во внутреннюю память микроконтроллера, помимо более надежной работы, позволит защититься от несанкционированного доступа к памяти программ. Впоследствии, для замены или коррекции программы в памяти микроконтроллера его не



придется даже вынимать из колодки. Достаточно подключить несколько проводов от программатора (программатор должен иметь соответствующий режим) и перепрограммировать микроконтроллер внутрисхемно. Такой подход ускоряет и облегчает регламентно-на-строечные работы и делает систему более гибкой.

Окончательное решение о методах модернизации исправно работающих систем не стоит принимать без всестороннего анализа сопутствующих проблем, временных и материальных затрат. К последним следует отнести время и деньги, которые придется потратить на обучение персонала и приобретение инструментальных средств отладки в случае перехода на новое семейство микроконтроллеров.

Приложение 7

СИМУЛЯТОР для СЕМЕЙСТВА х51

При разработке устройств на базе микроконтроллеров перед разработчиком неминуемо встает вопрос отладки программы. Как она обычно осуществляется?

Самый простой (и трудоемкий) путь - это занесение отлаживаемой программы в реальное ПЗУ с последующим поиском очередной ошибки. Было время, когда такой путь был единственно возможным. Доступных готовых отладочных средств не было, их приходилось изобретать самостоятельно. Но, к счастью, в настоящее время ситуация совершенно иная - существуют инструментальные средства, ускоряющие процесс разработки и отладки. Зто эмуляторы ПЗУ, встроенные мониторы-отладчики и внутрисхемные эмуляторы. Использование подобных средств резко облегчает процесс отладки. На фоне этих средств программные эмуляторы (симуляторы) как-то отошли в тень, ибо их возможности по отладке процесса взаимодействия контроллера с внешними периферийными устройствами крайне ограничены. Но в том, что касается отладки алгоритмов обработки и преобразования данных, происходящих внутри микроконтроллера, симуляторы не уступают ни одному из вышеперечисленных инструментальных отладчиков. К тому же затраты на приобретение симулятора практически нулевые - нужно лишь скачать у кого-то из знакомых или откуда-то из сети ту или иную версию какого-либо симулятора (естественно, пиратскую).

Однако использование пиратского ПО сопровождается рядом проблем, причем не только морально-этического или юридическо-



1 ... 9 10 11 12 13 14 15 ... 20
© 2004-2024 AVTK.RU. Поддержка сайта: +7 495 7950139 в тональном режиме 271761
Копирование материалов разрешено при условии активной ссылки.
Яндекс.Метрика