С. Шишарин, Б. Малашевич
Микроконтроллер КР1878ВЕ1 разработан на основе отечественного микроконтроллерного ядра ТЕСЕЙ, предназначенного для построения 8-разрядных RISC-контроллеров реального времени. Примером разнообразия возможностей ядра ТЕСЕЙ являются такие микроконтроллеры, как КР1878ВЕ1 управляющий МК, КР1878ВЕ2 БИС поведенческих развивающих игр или КБ5004ВЕ1 БИС банковской интеллектуальной платежной карты с многоуровневой системой защиты.
Характерными особенностями микроконтроллеров семейства ТЕСЕЙ являются: гарвардская RISC-архитектура, позволяющая выполнять любую из 52 команд за два такта частоты процессора; единая система команд для всего семейства с возможностью адресации до двух операндов, находящихся в памяти; малое время реакции на прерывание и сохранение контекста; широкий диапазон конфигураций внутренних памяти команд, памяти данных и периферийных устройств.
Микроконтроллер КР1878ВЕ1 предназначен для использования в системах управления реального времени. Он отличается малым количеством внешних выводов, низким током потребления, высокой производительностью, наличием энергонезависимой памяти данных и возможностью многократного перепрограммирования памяти команд. При необходимости и при достаточном объеме партии микроконтроллер может поставляться с масочным ПЗУ программ.
Оcновные характеристики
- Электрически стираемое (ЭС)
ППЗУ команд 1К x 16 бит. - ОЗУ данных 128 x 8 бит.
- ЭСППЗУ данных 64 x 8 бит.
- Система команд 52 команды.
- Тактовая частота 32 кГц ... 8 МГц.
- Время выполнения любой команды 2 такта (250 нс при частоте 8 МГц).
- Прерываний 7
(начальный пуск, системная ошибка, сторожевой таймер, порт А, порт В, таймер, конец записи в ЭСППЗУ). - Время реакции на прерывание 3 такта.
- 12 (13) линий ввода/вывода с индивидуальным управлением направлением и прерыванием от любой линии.
Максимальный ток 25 мА. - 16-разрядный таймер с 8-разрядным делителем частоты.
- Сторожевой таймер с автономным генератором.
- Напряжение питания VСС = (4,0...6,0) В.
- Ток потребления < 2 мA при VСС = 5 В и f = 5 МГц, 50 мкА при VСС = 5 В и f = 32 кГц, <1 мкА в режиме STOP.
- Корпус 18-выводной пластмассовый ДИП типа 2104.18-8.
Микроконтроллер КР1878ВЕ1 содержит функционально законченные устройства, необходимые для локального управления широким кругом разнообразных бытовых и промышленных объектов, в том числе: центральный процессор, ЭСППЗУ команд, ОЗУ данных, ЭСППЗУ данных, сторожевой таймер, 2 порта ввода/вывода и таймер общего назначения. Обмен данными между центральным процессором, ОЗУ данных и периферийными устройствами производится по единой шине (рис. 1).
Рис. 1. Структурная схема КР1878ВЕ1
Микроконтроллер изготовлен по КМОП-технологии и выпускается в 18-выводном пластмассовом копусе ДИП типа 2104.18-8. По цоколевке КР1878ВЕ1 совместим с подобными микроконтроллерами фирм Microchip, Zilog и др. Это дает возможность отечественным потребителям, перепрограммировав реализацию своих алгоритмов, заменить ранее примененные импортные микроконтроллеры на отечественные с лучшими, в ряде случаев, техническими характеристиками. А для применения в новых разработках микроконтроллер КР1878ВЕ1 просто незаменим.
Таблица 1. Описание выводов
Номер вывода | Символ | Назначение |
17, 18, 1, 2 | PA0-PA3 | Линии ввода/вывода порта А |
6...13 | PB0-PB7 | Линии ввода/вывода порта В |
3 | PA4/TCLC | Линия ввода/вывода порта А или внешняя частота таймера |
15 16 |
OSC1 OSC2 |
Задающие выводы генератора тактовой частоты |
4 | RST | Входной сигнал установки и программирования |
14 | VCC | Напряжение питания |
5 | GND | Общий вывод |
Применение микроконтроллера КР1878ВЕ1 облегчается его обеспеченностью программными и аппаратными средствами автоматизации программирования и отладки, включающими как кросс-систему на основе персонального компьютера, так и резидентную систему на основе аппаратного эмулятора.
Функциональные блоки
Центральный процессор
Центральный процессор микроконтроллера КР1878ВЕ1 предназначен для выполнения арифметических и логических преобразований 8-разрядных операндов, расположенных в памяти микроконтроллера. Архитектура процессора характеризуется разделенной памятью команд и данных. Это позволяет совместить процессы выборки команд и выборки операндов из памяти. Система команд процессора симметричная, то есть имеются двухоперандные команды, работающие одновременно с двумя операндами. Выборка операндов из памяти данных в случае двухоперандных команд производится одновременно по двум различным шинам данных SRC-операнда и данных DST-операнда, с отдельными шинами адресов. Запись результата в память производится также по отдельной шине записи данных. Адрес записи совмещен с адресом чтения операнда DST.
Команды процессора имеют размерность 16 разрядов. Для обеспечения механизмов перехода к подпрограммам и прерываний программ в процессоре существует отдельный аппаратный стек глубиной в восемь адресов, где хранятся адреса возврата из подпрограмм и прерываний. В процессоре имеются служебные регистры для поддержки адресации операндов. Для сохранения значений этих регистров и слова состояния процессора при прерываниях программ и переходов к подпрограммам введен отдельный аппаратный стек данных глубиной в 16 байт. Обращения к регистрам периферийных устройств микроконтроллера происходят по тем же шинам и точно так же, как и к оперативной памяти.
Любая из команд процессора выполняется за одинаковый период времени. Одновременно на разных стадиях выполняются три команды процессора. Условные и безусловные переходы происходят по абсолютным адресам памяти команд, что позволяет устранить потерю времени при выполнении переходов.
Принципы адресации операндов
Все операнды команд (объекты программирования) находятся в едином адресном пространстве памяти данных. Размерность этого пространства в микроконтроллере КР1878ВЕ1 256 байт.
Команда имеет одновременный доступ к 32 байт этого адресного пространства через 4 сегмента (окна) адресации (сегменты A, B, C и D) размером по 8 байт. Каждому сегменту соответствует регистр адреса сегмента, значение которого определяет местонахождение данного сегмента в пространстве адресации памяти данных.
Регистры адресов сегментов принадлежат к категории служебных регистров процессора SR. В нем имеется 8 служебных регистров (SR0 - SR7), обращение к которым производится специальными командами процессора. Значения этих регистров можно сохранять в отдельном аппаратном стеке данных и восстанавливать из него с помощью соответствующих команд.
Полный адрес операнда образуется слиянием сегментного индекса и текущего значения соответствующего данному сегменту регистра адреса сегмента.
Таким образом, программист имеет доступ к четырем участкам памяти размером в 8 байт каждый. Перемещение каждого участка памяти в нужную область памяти данных производится записью адреса сегмента в соответствующий регистр адреса сегмента с помощью команды загрузки служебных регистров.
Таблица 2. Адресное пространство
Адрес16 | Устройство | Адрес16 | Устройство |
0 | Регистр состояния процессора | 1B, 1C | Свободный адрес |
1 | Рабочий регистр порта А | 1D | Регистр управления сторожевого таймера |
2 | Рабочий регистр порта В | 1E-37 | Свободные адреса |
3 | Свободный адрес | 38 | Регистр управления ЭСППЗУ |
4 | Регистр управления таймером | 39, 3А | Регистр адреса ЭСППЗУ |
5 | Рабочий регистр таймера | 3В-3Е | Свободные адреса |
6-18 | Свободные адреса | 3F | Регистр данных ЭСППЗУ |
19 | Регистр конфигурации порта А | 40-DF | Оперативная память |
1А | Регистр конфигурации порта В | CO-FF | Свободные адреса |
Два старших индекса сегмента D имеют несколько иной статус и используются для полной адресации операнда в адресном пространстве памяти данных в качестве регистров косвенной адресации IR0 и IR1. Обращение команды к индексу D6 (IR0) транслируется по адресу, записанному в регистре адреса 0-го косвенного регистра 4-м служебном регистре. Соответственно, обращение к D7 (IR1) транслируется по адресу, записанному в регистре адреса 1-го косвенного регистра 5-м служебном регистре.
Оба косвенных регистра обладают возможностями изменения адреса после обращения либо в сторону увеличения, либо в сторону уменьшения адреса на единицу в зависимости от режима работы косвенного регистра. Регистр IR0 имеет режим отключения, при котором адрес обращения формируется из значения регистра адреса сегмента D и индекса 6. Регистр IR1 имеет режим обращения к памяти команд. В этом режиме адрес операнда, находящегося в памяти команд, формируется из полного значения 6-го и трех младших разрядов 7-го служебных регистров. Адресация памяти команд через IR1 производится с точностью до байта. Режим работы IR1 при адресации памяти команд автоинкрементный. То есть после обращения к текущему байту памяти команд регистр IR1 указывает на следующий байт памяти команд.
Смена режимов работы косвенных регистров и загрузка в них адреса производится специальной командой загрузки служебных регистров.
Регистры косвенной адресации удобно использовать при работе с упорядоченными структурами данных, используя автоинкрементный либо автодекрементный режимы.
Система команд
Система команд микроконтроллера КР1878ВЕ1 включает 52 команды, объединенные в 6 групп:
- двухоперандные команды производят арифметические и логические операции над двумя операндами, адреса которых образуются из индексов, содержащихся в самой команде, и значений регистров адресов сегментов. Один из операндов не изменяет своего содержимого и обозначается далее src (источник). Результат операции помещается во второй операнд, обозначаемый dst (приемник);
- литерные команды производят арифметические и логические операции с операндом dst и литерой const, указанной в самой команде. Результат операции помещается в операнд, обозначаемый dst (приемник);
- однооперандные команды производят арифметические или логические операции над операндом, адрес которого образуется из индекса, содержащегося в самой команде, и значения регистра адреса сегмента. Результат операции помещается в тот же операнд, обозначаемый dst (приемник);
- команды работы со служебными регистрами и регистром состояния процессора предназначены для безусловной установки необходимых значений регистров адресов сегментов для тех случаев, когда необходима адресация к новым переменным или регистрам ввода/вывода, не охватываемым текущими сегментами. Этой же командой загружаются регистры косвенной адресации и устанавливаются режимы их работы;
- команды передачи управления производят передачу управления программе, находящейся по адресу, указанному в младших десяти разрядах команды перехода, либо безусловно, либо по одному из условий перехода;
- специальные команды относятся к классу команд, не вписывающихся в предыдущие разделы, и предназначены в основном для управления определенными состояниями процессора.
Полностью система команд представлена в табл. 3. При описании системы команд приняты следующие сокращения:
- s (src) операнд источника;
- d (dst) операнд приемника;
- c (const) константа;
- p (place) местоположение тетрады константы;
- a (address) адрес команды;
- n (number) номер служебного регистра;
- b (bit) устанавливаемое значение разряда в RS;
- * разряд РС меняется;
- разряд РС не изменяется.
- d (dst) операнд приемника;
Таблица 3. Система команд
Наименование команды | Мнемо-ника | Код команды | Действие команды | Состояние | ||||
S | Z | C | oF | dC | ||||
Двухоперандные команды | ||||||||
Пересылка | MOV | src3dst | * | * | - | 0 | - | |
Сравнение | CMP | dst - src S,Z,C3 S | * | * | * | * | * | |
Сложение | ADD | dst + src3dst | * | * | * | * | * | |
Вычитание | SUB | dst - src3dst | * | * | * | * | * | |
Логическое И | AND | dst. AND.src3dst | * | * | 0 | 0 | 0 | |
Логическое ИЛИ | OR | dst. OR.src3dst | * | * | 0 | 0 | 0 | |
Исключающее ИЛИ | XOR | dst. XOR.src3dst | * | * | 0 | 0 | 0 | |
Литерные команды | ||||||||
Пересылка литеры | MOVL | const3dst | * | * | - | 0 | - | |
Сравнение с литерой | CMPL | dst - const S,Z,C3RS | * | * | * | * | * | |
Сложение с литерой | ADDL | dst + sconst3dst | * | * | * | * | * | |
Вычитание литеры | SUBL | dst - sconst3dst | * | * | * | * | * | |
Сброс разрядов | BIC | NOT(const).AND.dst3dst | * | * | 0 | 0 | 0 | |
Установка разрядов | BIS | dst. OR. tconst3dst | * | * | 0 | 0 | 0 | |
Инверсия разрядов | BTG | dst.XOR. tconst3dst | * | * | 0 | 0 | 0 | |
Проверка разрядов | BTT | dst.AND. tconst, S,Z3,RS | * | * | 0 | 0 | 0 | |
Однооперандные команды | ||||||||
Обмен тетрад | SWAP | dst(n)3dst(n+4)<4dst(n)3dst(n-4) | * | * | 0 | 0 | 0 | |
Смена знака | NEG | -dst3dst | * | * | * | * | * | |
Инверсия всех разрядов | NOT | NOT(dst)3dst | * | * | - | 0 | - | |
Логический сдвиг влево | SHL | dst(n)3dst(n+1), 03dst(0), dst(7)3C | * | * | * | * | 0 | |
Логический сдвиг вправо | SHR | dst(n+1)3dst(n), 01dst(7), dst(0)3C | 0 | * | * | 0 | 0 | |
Арифметический сдвиг вправо | SHRA | dst(n+1)3dst(n),dst(7)3dst(7), dst(0)3C | * | * | * | 0 | 0 | |
Циклический сдвиг влево | RLC | dst(n)3dst(n+1),C3dst(0), dst(7)3C | * | * | * | * | 0 | |
Циклический сдвиг вправо | RRC | dst(n+1)3dst(n), C3dst(7), dst(0)3C | * | * | * | 0 | 0 | |
Сложение с переносом | ADC | dst + C3dst | * | * | * | * | * | |
Вычитание переноса | SBCS | dst - C3dst | * | * | * | * | * | |
Команды работы со служебными регистрами и регистром состояния | ||||||||
Загрузка служебных регистров | LDR | const3reg | - | - | - | - | - | |
Запись в служебные регистры | MTPR | rc3reg | - | - | - | - | - | |
Чтение служебных регистров | MFPR | reg3dst | - | - | - | - | - | |
Запись в стек данных | PUSH | reg3data stack, DSP=DSP+1 | - | - | - | - | - | |
Чтение из стека данных | POP | data stack3reg, DSP=DSP-1 | - | - | - | - | - | |
Установка разрядов RS | SST | if mask(n)=1 then RS(n)=1 | * | * | * | - | - | |
Сброс разрядов RS | CST | if mask(n)=1 then RS(n)=0 | * | * | * | - | - | |
Проверка переполнения | TOF | OF3Z | - | * | - | - | - | |
Проверка тетрадного переноса | TDC | DC3Z | - | * | - | - | - | |
Команды передачи управления | ||||||||
Безусловный переход | JMP | address3PC | - | - | - | - | - | |
Переход к подпрограмме | JSR | PC3stack, address3PC, ISP=ISP+1 | - | - | - | - | - | |
Переход по Z = 0 (не равно) | JNZ (JNE) | address3PC if Z=0 | - | - | - | - | - | |
Переход по Z = 1 (равно) | JZ (JEQ) | address3PC if Z=1 | - | - | - | - | - | |
Переход по S = 0 (плюс) | JNS | address3PC if S=0 | - | - | - | - | - | |
Переход по S = 1 (минус) | JS | address3PC if S=1 | - | - | - | - | - | |
Перезод по C = 0 | JNC | address3PC if C=0 | - | - | - | - | - | |
Переход по C = 1 | JC | address3PC if C=1 | - | - | - | - | - | |
Косвенный переход | IJMP | IR13PC | - | - | - | - | - | |
Косвенный переход к подпрограмме | IJSR | PC3stack, IR13PC, ISP=ISP+1 | - | - | - | - | - | |
Возврат из подпрограммы | RTS | istack3PC, ISP=ISP-1 | - | - | - | - | - | |
Возврат из подпрограммы с битом С | RTSC | istack3PC c3RS(0), ISP=ISP-1 | - | - | - | - | - | |
Возврат из прерывания | RTI | istack3PC, data stack3RS | * | * | * | * | * | |
Специальные команды | ||||||||
Нет операции | NOP | - | - | - | - | - | ||
Ожидание | WAIT | RS(3)=1 (INT Enable) | - | - | - | - | - | |
Останов | STOP | RS(3)=1 (INT Enable) | - | - | - | - | - | |
Сброс | RESET | DSP=0, ISP=0 | - | - | - | - | - | |
Прогон стека команд | SKSP | 0000 0000 0000 0110 | ISP = ISP - 1 | - | - | - | - | - |
Временное представление потока команд
Для повышения производительности процессора производится совмещение в потоке команд отдельных операций, выполняемых внутренними устройствами микроконтроллера. На рис. 2 показан принцип совмещения по времени различных фаз выполнения команды на примере трех арифметических команд и одной команды перехода.
Фазы выполнения команд:
- ВК + Д выборка и дешифрация команды;
- ВО - выборка операндов из памяти данных;
- ИК исполнительная фаза работа АЛУ;
- ЗР запись результата в память данных;
- ЗСК перепись нового счетчика команд в случае выполненного перехода.
Рис. 2. Временное представление потока команд
Выборка операндов для текущей команды и ее исполнение совмещаются с выборкой и дешифрацией последующей команды. Запись результата в память данных отложена на один такт для обеспечения нормальной за-грузки информационных трактов памяти данных. Когда результат операции используется в качестве операнда для последующей команды, операнд берется из регистра результата на выходе АЛУ. Таким образом, происходит совмещение по времени выборки и дешифрации (n+1)-ой команды с выборкой операндов и исполнительной фазой n-ой команды и записью результата (n-1)-ой команды. При обработке ситуаций, когда изменяется счетчик команд, после дешифрации команды перехода и соблюдения условия перехода происходит перепись нового счетчика команд из регистра команды в счетчик команд.
Блок ЭСППЗУ данных
Блок ЭСППЗУ данных включает в себя накопитель данных (64 байт), накопитель 4-разрядных контрольных разрядов, схему обнаружения и исправления однократной ошибки в байте данных, 8-разрядный регистр данных хранения текущего байта, (записываемого или считываемого) и интерфейс связи с шинами чтения и записи центрального процессора. Обмен с блоком ЭСППЗУ данных осуществляется с помощью регистра управления, регистра адреса и регистра данных.
Порты ввода/вывода А и В
Порты ввода/вывода А и В по построению однотипны и отличаются, в основном, разрядностью (5 и 8 индивидуально управляемых линий ввода/вывода, соответственно). Они предназначены для формирования на выводах PA0...PA4 и PB0...PB7 необходимых уровней напряжения, в случае, когда эти выводы используются в режиме выхода, и считывания значения уровней напряжения с этих выводов, как собственных, так и подаваемых извне, когда выводы используются в режиме входа. Возможна инициация процедуры прерывания по изменению уровня напряжения на выводах портов. 5-я линия порта А (вывод РА4) имеет второе назначение ввод внешней частоты интервального таймера (сигнал TCLC). Задание режимов работы выводов портов и программирование прерываний производится с помощью соответствующих регистров.
Интервальный таймер-счетчик событий
Интервальный таймер-счетчик внешних событий (далее "таймер") предназначен для формирования определенных временных интервалов для привязки исполняемой программы к реальному времени или для подсчета количества внешних событий на входе внешней синхронизации таймера.
Программисту таймер доступен регистром управления и рабочим регистром. Регистр управления позволяет произвести запуск таймера, установить режим использования рабочего регистра, разрешить прерывания от таймера и обнаружить ошибочные ситуации при необработанном прерывании. По адресу рабочего регистра может быть доступен, в зависимости от состояния соответствующих разрядов регистра управления, регистр конфигурации таймера, счетный регистр или регистр интервала. Регистр конфигурации предназначен для программирования источника счетных импульсов и делителя частоты этих импульсов. 16-разрядный регистр интервала содержит значение, до которого будет производиться счет таймера, а 16-разрядный счетный регистр содержит текущее значение подсчитанных счетных импульсов.
Таймер производит подсчет импульсов, поступающих с выхода схемы программируемого деления входной частоты, до значения, предварительно установленного в регистре интервала. Затем происходит сброс счетного регистра и подсчет повторяется. По завершению счетного интервала может быть выдан сигнал прерывания на центральный процессор с вектором 3. Сигнал прерывания снимается по любому обращению к регистру управления таймером. Если сигнал прерывания не будет снят к моменту формирования следующего запроса на прерывание, в регистре управления устанавливаются разряды ошибки.
Для использования таймера в режиме формирования интервалов времени в регистр интервала записывается необходимое значение и, разрешив прерывание, запускается таймер на счет. В конце каждого интервала будет выдан сигнал прерывания и начнется счет нового интервала. Интервал можно задавать как в периодах тактовой частоты процессора CLC, так и в периодах внешней частоты, подаваемой на вход TCLC-таймера. Для использования таймера в режиме счетчика внешних событий в регистр интервала записывается нулевое значение интервала, и по значению счетного регистра определяется количество внешних событий на входе TCLC.
Сторожевой таймер
Сторожевой таймер предназначен для отслеживания непредвиденных ситуаций, когда центральный процессор в результате каких-либо сбоев находится в неопределенном состоянии.
Сторожевой таймер постоянно по включению питания производит подсчет импульсов тактовой частоты, поступающих через программируемый делитель частоты на вход 8-разрядного счетного регистра. В качестве тактовых счетных импульсов берется частота с внутреннего генератора около 50 кГц или тактовая частота с выводов OSC1 и OSC2. В первом случае счетный интервал сторожевого таймера будет зависеть от температуры окружающей среды, напряжения питания и значения коэффициента деления делителя частоты. Если за время полного пересчета счетного регистра не будет произведена запись разряда сброса счетчика, сторожевой таймер вырабатывает сигнал немаскируемого прерывания на центральный процессор с вектором 1. Сигнал прерывания снимается по любой записи в регистр управления сторожевого таймера.
Программирование режимов работы сторожевого таймера, сброс счетного режима, установка коэффициента делителя частоты производятся записью в регистр управления сторожевого таймера, которая происходит только после записи по его адресу характерного кода АА16. Запись в регистр управления обязательно должна производиться с нулевым значением старшего разряда записываемого байта. Если старший разряд записываемого байта равен единице, запись в регистр управления сторожевого таймера не будет произведена.
Возможно использование сторожевого таймера в качестве дополнительного интервального таймера, в котором формирование счетных интервалов производится с помощью тактовой частоты пересчета, коэффициента деления тактовой частоты и полного значения 8-разрядного счетного регистра. TИ = TCLC х KД х 255,5. Запуск сторожевого таймера на счет производится записью шестого разряда единицей в регистр управления сторожевого таймера.
Специфика подключени микроконтроллера
Включение питания и пуск микроконтроллера
Для управления пуском микроконтроллера имеется внешний вывод установки и программирования RST. Если напряжение на выводе RST имеет низкий уровень, микроконтроллер находится в состоянии установки. После подачи на этот вывод высокого уровня напряжения (+5 В) происходит запуск счетчика задержки начального пуска, отсчитывающего интервал времени, равный 210 импульсов частоты, с выхода генератора тактовой частоты процессора. После завершения отсчета интервала задержки начального пуска центральный процессор начинает выполнять процедуру прерывания по начальному пуску с вектором прерывания, равным 0. При этом, в отличие от обычных прерываний, записей в стек команд и стек данных не происходит. Счетчик задержки начального пуска может быть отключен сбросом соответствующих разрядов в строке конфигурации микроконтроллера, записываемой при программировании микроконтроллера. Необходимо снимать сигнал RST (выставлять высокий уровень на этот вывод) в тот момент, когда питание микроконтроллера UCC имеет уровень не менее 3,5 В.
Для выработки сигнала RST может быть применена следующая схема подключения, где:
- R1 = 40 кОм резистор, задающий высокий уровень на выводе RST;
- R2 = 100 Ом е 1 кОм резистор, ограничивающий ток, протекающий через вывод RST;
- С конденсатор, задающий задержку формирования высокого уровня на выводе RST;
- D диод, обеспечивающий быстрый разряд конденсатора C при снятии напряжения питания.
Рис. 3
Генерация тактовой частоты
Микроконтроллер КР1878ВЕ1 имеет внутренний генератор тактовой частоты, который может работать в одном их четырех режимов:
- генерация тактовой частоты с использованием внешнего кварцевого резонатора с частотами до 500 кГц;
- генерация тактовой частоты с использованием внешнего кварцевого резонатора с частотами от 500 кГц до 8 МГц;
- генерация тактовой частоты с использованием внешнего задающего резистора и емкости;
- генерация частоты около 50 кГц с использованием внутреннего генератора;
- режим трансляции внешней тактовой частоты.
Рис. 4
Выбор режима работы генератора тактовой частоты осуществляется программированием соответствующих разрядов строки конфигурации микроконтроллера (рис. 4).
Система проектирования и отладки
Микроконтроллерное ядро ТЕСЕЙ включает комплекс программных и аппаратных средств для автоматизации проектирования, отладки и аттестации программ микроконтроллеров. Комплекс включает:
- компилятор Ассемблера микроконтроллеров ТЕСЕЙ TESSA 0.1;
- пакет программ отладочной среды микроконтроллеров ТЕСЕЙ;
- аппаратный эмулятор микрокoнтроллеров ТЕСЕЙ.
TESSA 0.1 Компилятор Ассемблера ТЕСЕЙ
Язык Ассемблер и компилятор TESSA 0.1 предназначены для разработки и отладки прикладных программ микроконтроллеров, построенных на основе ядра ТЕСЕЙ, в том числе, МК КР1878ВЕ1.
Отладочная среда ТЕСЕЙ
Отладочная среда предназначена для разработки и отладки при помощи языка Ассемблер и компилятора TESSA 0.1 прикладных программ для микроконтроллеров, построенных на основе микроконтроллерного ядра ТЕСЕЙ.
Oтладочная среда обеспечивает выполнение следующих функций:
- загрузка и пуск *.SAV программ в программный или аппаратный эмулятор;
- редактирование ОЗУ данных в программном или аппаратном эмуляторе;
- редактирование ОЗУ команд в программном или аппаратном эмуляторе;
- трассировка программ, работающих в программном или аппаратном эмуляторе.
Отладка программ осуществляется либо на персональном компьютере в режиме эмуляции, либо на специалиьном аппаратном эмуляторе. Для выполнения программирования и отладки необходимы IBM-совместимый персональный компьютер и пакет программ системы.
Аппаратный эмулятор ТЕСЕЙ
Аппаратный эмулятор (АМ) микроконтроллеров ТЕСЕЙ построен на основе специального отладочного кристалла, содержащего все основные модули микропроцессорного ядра ТЕСЕЙ. В результате, отладка программ производится практически в резидентном режиме, что и обеспечивает максимально возможное качество отладки. АМ предназначен для отладки прикладных программ любых микроконтроллеров, построенных на основе ядра ТЕСЕЙ, в том числе, микроконтроллера КР1878ВЕ1.
Программирование
Запись разработанных программ в ЭСППЗУ команд микроконтроллера, строки конфигурации и начальных значений памяти ЭСППЗУ данных производится в режиме программирования.
Переход микроконтроллера в режим программирования производится подачей на вывод RST высокого напряжения уровнем +12 В. Программирование микроконтроллера осуществляется с использованием выводов микроконтроллера PB0, PB1 и PB2. Программирующее устройство (программатор) может записать и проконтролировать ЭСППЗУ команд, подавая определенные последовательности сигналов на эти выводы и анализируя состояния этих выводов.
Следует отметить, что в начале программирования происходит полное обнуление всей памяти команд, и чтение ее содержимого можно осуществить только после записи в нее в пределах одного цикла программирования. Содержимое ЭСППЗУ данных и строки конфигурации останется прежним. Таким образом, полностью гарантируется конфиденциальность запрограммированной управляющей программы.
Программатор
Для кодирования ЭСППЗУ может быть использован простейший программатор, схема которого приведена ниже (его по силам собрать любому протребителю микроконтроллеров) или выпускаемый ООО "Телесистемы" (http://www.ts/aha/ru) PICPROG промышленный программатор микроконтроллеров и ЭСППЗУ, который программирует все контроллеры ТЕСЕЙ и более 500 типов других микросхем с числом выводов от 8 до 40.
Рис. 5. Схема программатора для микроконтроллера КР1878ВЕ1
В отличие от других программаторов, многие из которых также могут быть использованы, PICPROG позволяет программировать и верифицировать микросхемы при различных напряжениях питания, гарантируя надежность программирования.
Тел. (095) 532-8039
http://www.angstrem.ru
Ваш комментарий к статье | ||||