Совершенствование устройств управления и обработки информации путем замены микроконтроллеров PIC на микроконтроллеры Z8
Гладштейн М.А., Гладышев А.А.
(Рыбинская Государственная Академия Авиационных Технологий)
Два производителя электронных компонентов MicroChip Technology Inc. и Zilog Inc. поставляют на рынок микроконтроллеры для построения устройств управления и обработки данных, отличающиеся высокими техническими характеристиками (такими, как высокая производительность и малое энергопотребление). Это микроконтроллеры(МК) PIC [1] (Peripheral Intrface Controller) и МК Z8 [2]. Первые из них выполнены на основе архитектуры процессора с сокращенной системой команд RISC (Reduced Instruction Set Computer), вторые - на базе архитектуры с комплексной системой команд CISC (Complex Instruction Set Computer). Более мощная система команд позволяет МК Z8 при меньшей частоте синхронизации обеспечить адекватную производительность и более экономичный программный код. Больший объем ОЗУ (приблизительно в два раза), наличие аппаратных прерываний и встроенных аналоговых компараторов, а также приблизительно вдвое более низкая цена - вот основные преимущества Z8. Эти преимущества часто заставляют разработчика пересматривать уже выполненный на МК PIC проект на предмет замены МК. В настоящей статье рассматриваются основные проблемы, возникающие при решении задачи замены. В качестве примера рассматривается замена однократно программируемых микроконтроллеров (ОПМК) PIC16C54/56/58 и масочных PIC16CR54/56/58, выполненных в 18-выводном корпусе (далее PIC), на ОПМК Z86E02/04/08 и, соответственно, масочные Z86C02/04/08 или их низковольтные аналоги Z86L02/04/08 (далее Z8)[3].
Основные проблемы замены заключаются в установлении соответствия выводов, адаптации напряжения питания, согласовании уровней электрических сигналов.
Для начала следует рассмотреть соответствие выводов Z8 выводам PIC. На рис.1 и в табл.1 показано функциональное соответствие выводов МК PIC и МК Z8.
Таблица 1. Соответствие между выводами МК PIC и МК Z8
PIC |
Z8 |
Назначение |
Vdd |
Vcc |
Питание |
Vss |
GND |
Земля (общий) |
OSC1 |
XTAL1 |
Вход для подключения кварца/вход внешней синхронизации |
OSC2 |
XTAL2 |
Выход для подключения кварца |
RB0-RB7 |
P20-P27 |
Двунаправленные побитновыбираемые линии ввода/вывода |
RA0-RA1 |
P00-P01 |
PIC: Двунаправленные побитновыбираемые линии ввода/вывода
Z8: Двунаправленные потетрадновыбираемые линии ввода/вывода |
RA2-RA3 |
P32-P33 |
PIC: Двунаправленные побитновыбираемые линии ввода/вывода
Z8: Линии ввода |
T0CKI |
P31(Tin) |
PIC: Вход таймера 0
Z8: Вход таймера/счетчика Т1 или линия ввода |
/MCLR |
P02 |
PIC: Основная очистка/сброс
Z8: Имеет встроенную схему сброса при включении, поэтому внешний вывод для
Сброса не требуется. P02 - двунаправленная потетрадновыбираемая линия ввода/вывода |
Как это следует из рис.1 и табл.1 существует прямое совпадение функций выводов Vdd, Vss, OSC1, OSC2, RB0-RB7 и T0CKI МК PIC сигналам Vcc, GND, XTAL1, XTAL2, P20-P27 и P31(Tin) МК Z8 соответственно. Однако точного функционального соответствия для выводов МК PIC /MCLR и RA0-RA3 нет.
Что касается линии сброса /MCLR PIC, то Z8 имеет встроенную схему автосброса при включении питания (POR), которая делает у этого МК ненужным внешний сигнал сброса. Таким образом, у Z8 нет вывода, соответствующего выводу /MCLR. Тем не менее, при переходе от PIC к Z8 и необходимости использовать внешний сигнал сброса, вывод P02 МК Z8 может быть запрограммирован как вход и периодически опрашиваться на низкий уровень, который показывает состояние сброса. При получении внешнего сигнала сброса Z8 может передать управление программой по адресу 000Ch и выполнить подпрограмму инициализации, как если бы это сделала схема POR. Что касается соответствия четырех входов/выходов RA0-RA3 МК PIC, то их целесообразно подключить к входам/выходам P00, P01, P32 и P33 МК Z8. P32 и P33 предназначены для ввода и будут соответствовать двум выводам RA2, RA3 при условии, что те сконфигурированы на ввод. P00 и P01 являются потетрадновыбираемыми входами/выходами и вместе с P02 должны одинаково конфигурироваться на ввод или на вывод.
При конфигурации P00 и P01 как выходов, P02 также станет выходом. Тогда P02 не может быть использован как опрашиваемый вход для функции /MCLR. В этом случае P02 может быть использован еще где-нибудь как выход, а для /MCLR можно использовать другой вход. При самых неблагоприятных условиях, возникающих в процессе замены, возможно, придется пойти на компромисс, который заключается в замене функций некоторых входов/выходов P20-P27 МК Z8 для удовлетворения требований ввода/вывода.
При идеальных условиях замена МК PIC на Z8 может быть проведена без новой трассировки печатной платы. В случае, если при работе МК не требуется счетчик для подсчета внешних импульсов и выводы RA0-RA3 PIC-контроллера используются как входы, замена может быть сделана простой установкой на место PIC-контроллера МК Z8, повернутого на 180 градусов относительно положения МК PIC. На рис.2 и в табл.2 показано соответствие выводов в идеальном случае. Из рис.2 следует, что при повороте Z8 на 180 градусов, он действительно может быть установлен на место PIC-контроллера.
Таблица 2. Соответствие выводов PIC и Z8 (идеальный случай)
PIC |
Z8 |
Назначение |
Vdd |
Vcc |
Питание |
Vss |
GND |
Земля (общий) |
OSC1 |
XTAL1 |
Вход подключения кварца/вход внешней синхронизации |
OSC2 |
XTAL2 |
Выход подключения кварца |
RB0-RB7 |
P20-P27 |
Двунаправленные побитновыбираемые линии ввода/вывода |
RA0-RA2 |
P31-P33 |
PIC: Двунаправленные побитновыбираемые линии ввода/вывода, назначены на ввод
Z8: Линии ввода |
RA3 |
P00 |
PIC: Двунаправленная побитновыбираемая линия ввода/вывода, назначена на ввод
Z8: Потетрадновыбираемая двунаправленная линия ввода/вывода, назначена на ввод |
T0CKI |
P01 |
PIC: Вход таймера 0 (не используется)
Z8: Потетрадновыбираемая двунаправленная линия ввода/вывода, назначена на ввод |
/MCLR |
P02 |
PIC: Основная очистка/сброс
Z8: Потетрадновыбираемая двунаправленная линия ввода/вывода, назначена на ввод |
При переходе с PIC на Z8 необходимо обратить внимание на следующие электрические характеристики, которые у этих устройств различны. Это, во первых, различие в величине питающего напряжения, и, во-вторых, различие в типах выходных буферов.
Семейство PIC-контроллеров отличается от семейства Z8 величиной напряжения питания. Это различие очень важно и должно быть принято во внимание при переходе с PIC на Z8, особенно в носимой аппаратуре с питанием от батарей. В табл.3 указаны диапазоны напряжений питания для семейства МК PIC. Диапазоны напряжений питания PIC-контроллеров фирмы Microchip различены как для типа устройства, так и для вида времязадающей цепи генератора. Диапазоны напряжений питания для микроконтроллеров Z8 приведены в табл.4 .
Таблица 3. Диапазоны напряжений питания PIC
Генератор |
PIC16C54/56/58 Диапазон Vdd |
PIC16LC54/56/58 Диапазон Vdd |
PIC16CR54/56/58 Диапазон Vdd |
RC |
3.0В - 6.25В |
2.5В - 6.25В |
2.0В - 6.25В |
LP |
3.0В - 6.25В |
2.5В - 6.25В |
2.0В - 6.25В |
XT |
3.0В - 6.25В |
2.5В - 6.25В |
2.0В - 6.25В |
HS |
>4.5В - 5.5В |
не используется |
4.5В - 5.5В |
где: RC - RC-цепь;
LP - маломощный кварцевый резонатор;
XT - кристаллический резонатор;
HS - высокочастотный кристалл.
|
Таблица 4. Диапазоны напряжений питания Z8
Z86E02/04/08 Диапазон Vcc |
Z86C02/04/08 диапазон Vcc |
Z86L02/04/08 Диапазон Vcc |
4.5В - 5.5В |
3.0В - 5.5В |
2.0В - 3.9В |
Сравнив данные табл.3 и табл.4, можно делать вывод, что PIC-контроллеры имеют более широкий диапазон рабочих напряжений, чем устройства Z8. Поэтому разработчик должен убедиться, что Z8, на который он хочет заменить PIC-контроллер, имеет подходящий диапазон рабочих напряжений для данного применения.
Что касается различия в типах буферов, то PIC-контроллер имеет буфер TTL-типа, тогда как у Z8 - буфер CMOS-типа.
В табл.5 указаны максимальные напряжения входа низкого уровня (Vil Max) и минимальные напряжения входа высокого уровня (Vih Min) для устройств PIC и Z8.
Таблица 5. Входные напряжения PIC и Z8
PIC |
Vil Max |
Vih Min |
Z8 |
Vil Max |
Vih Min |
PIC16C54/56/58 |
0.2 Vdd |
0.45Vdd |
Z86E02/04/08 |
0.2 Vcc |
0.7 Vcc |
PIC16LC54/56/58 |
0.2 Vdd¦ |
0.45Vdd |
Z86C02/04/08 |
0.2 Vcc |
0.7 Vcc |
PIC16CR54/56/58 |
0.2 Vdd |
0.45Vdd |
Z86L02/04/08 |
0.1 Vcc |
0.9 Vcc |
Для PIC-контроллеров даны величины электрических напряжений для портов ввода-вывода, тогда как величины электрических напряжений для Z8 применимы ко всем входам.
Что касается Vil, то для Z8, так же, как и для PIC, их значения одинаковы, за исключением Z86L02/04/08. Главным отличием между PIC и Z8 является значение Vih. Номинальное значение отличия составляет 25% от напряжения питания (Vcc) и, в крайнем случае (при замене PIC на Z86L02/04/08), может быть 45% от Vcc. Минимальный уровень входного напряжения, требуемого для логической единицы (высокого уровня) гораздо выше у устройств семейства Z8.
Сравнение максимального выходного напряжения низкого уровня (Vol Max) и минимального выходного напряжения высокого уровня (Voh Min) для PIC и Z8 дано в табл.6. Значения электрических параметров даны для портов ввода/вывода PIC-контроллеров, тогда как значения электрических характеристик для Z8 применимы к любому выходу.
Таблица 6. Выходные напряжения PIC и Z8
PIC |
Vol Max |
Voh Min |
Z8 |
Vol Max |
Voh Min |
PIC16CXX |
0.6В(4.5ВVdd) |
Vdd-0.7В |
Z86Exx |
0.4В(4.5В Vcc) |
Vcc-0.4В |
PIC16LCXX |
0.6В(4.5ВVdd) |
Vdd-0.7В |
Z86Cxx |
0.4В(5.5ВVcc) |
Vcc-0.4В |
PIC16CRXX |
0.6В(6.0ВVdd) |
Vdd-0.5В |
Z86Lxx |
0.4В(3.9ВVcc) |
Vcc-0.4В |
где: XX = 54/56/58, xx = 02/04/08.
Из табл.6 следует, что значение Voh для Z8 на 0.1В - 0.3В больше, чем Voh для PIC из-за CMOS-типа выходных буферов Z8. Также необходимо отметить, что значение Vol для Z8 приблизительно на 0.1В - 0.2В меньше, чем у PIC.
В общем, требуемые входные и выходные напряжения для Z8 будут ближе к положительному потенциалу напряжения питания и отрицательному потенциалу ("земле"), чем у PIC-контроллеров из-за CMOS-буферов. Требуемые входные и выходные напряжения для МК PIC гораздо дальше отстоят от напряжения питания и потенциала "земля", чем Z8, вследствие TTL-буферов. Поэтому, при замене PIC на Z8, типы буферов и окружающая логика должны быть изменены для совместимости CMOS-логики с предыдущей TTL-логикой. В некоторых случаях достаточно всего лишь установить "подтягивающие" резисторы, хотя может случиться так, что придется полностью менять окружающую МК логику.
Итак, на основании вышеизложенного, можно сделать следующие выводы:
1. В большинстве применений возможна замена МК PIC на МК семейства Z8.
2. При благоприятных условиях данная замена возможна без переделки печатной платы и сводится к извлечению МК PIC из панельки и установке на его место МК Z8, с поворотом на 180 градусов.
3. Согласование электрических характеристик сводится к ограничению напряжения питания и ужесточению требований к входным сигналам.
Литература
1.PIC16/17 Microcontroller Data Book.- Microchip, 1995.
2.Discrete Z8 Microcontrollers. Product Specifications Databook.- Zilog, 1994.
3.PIC16С54 - to Z86E02 Upgrade. Application Note.- Zilog,1996.
|