Motorola MC68HC705C8

Однокристальная микроЭВМ

МС68НС705С8

Введение

Однокристальная микроЭВМ (далее ОЭВМ) МС68НС705С8 входит в серию М68НС05 относительно дешевых ОЭВМ использующих КМОП-технологию сочетающую малые размеры и высокое быстродействие с низким потреблением энергии и высокой устойчивостью к помехам.

Дополнительным преимуществом КМОП-структуры является то что компоновка схемы полностью статична т.е. ОЭВМ может работать при любой частоте синхронизации меньшей чем гарантированный максимум. Эта особенность может использоваться в целях экономии энергии так как ее потребление возрастает с увеличением частоты синхронизации. Кроме того для снижения потребления энергии используются еще два программно-управляемых режима работы с экономией энергии: Ожидание (WAIT) и Останов (STOP). Благодаря этим режимам ОЭВМ MC68HC705C8 находит особо широкое применение в автомобильной технике а также в аппаратуре питающейся от батарей.

Индекс "705С8" в названии говорит о принадлежности данной ОЭВМ к серии С в которую входят микросхемы общего назначения с наиболее гибкими параметрами. Цифра 8 в названии говорит о том что это наиболее быстродействующая версия допускающая частоту внешней синхронизации 8 МГц. Цифры 705 говорят об отличии от базовой модели МС68НС05С8 в конфигурации памяти состоящее в том что в базовой модели предусмотрено 8К ПЗУ а в ее модификации МС68НС705С8 ПЗУ заменено на ППЗУ с ультрафиолетовым стиранием либо однократно программируемым ППЗУ.

Кроме упомянутых ОЭВМ серия М68НС05 включает в себя ОЭВМ с драйверами жидкокристалических вакуумных и других дисплеев ЦАП и АЦП таймерами ОЭВМ с различными конфигурациями памяти быстродействием и другими отличительными особенностями.

СОДЕРЖАНИЕ

Страница

Введение......................................................................................................... 1

СОДЕРЖАНИЕ.............................................................................................. 2

1. Программная модель ОЭВМ МС68НС705С8......................................... 3

1.1 Внутренняя структура................................................................. 3

1.2 Память........................................................................................... 5

1.3 Регистры........................................................................................ 6

1.4. Режимы адресации...................................................................... 9

1.5. Набор команд............................................................................... 15

2. Аппаратные средства................................................................................. 28

2.1 Линии (порты) параллельного ввода-вывода........................... 28

2.2 Система прерываний................................................................... 29

2.3 Таймер и связанные с ним устройства....................................... 33

2.4 Последовательный интерфейс.................................................... 36

3. Специальные режимы работы.................................................................. 47

3.1 RESET............................................................................................ 47

3.2 Режимы с пониженным энергопотреблением.......................... 49

Приложение 1.

Расположение и назначение выводов МС68НС705С8.............................. 51

Приложение 2.

Типовая схема подключения МС68НС705С8............................................. 54

1. Программная модель ОЭВМ МС68НС705С8.

1.1 Внутренняя структура.

ОЭВМ имеет ряд отличительных особенностей в аппаратном и программном обеспечении которые перечислены ниже:

Особенности аппаратного обеспечения:

КМОП-структура с высокой плотностью компоновки;

8-разрядная архитектура;

режимы малого потребления энергии (Ожидание Останов и режим сохранения данных);

24 двунаправленные линии ввода-вывода.

7 однонаправленных линий (только ввод).

2 линии ввода-вывода таймера.

тактовая частота при питании 5В - до 2.1 МГц при питании 3В - до1 Мгц;

встроенный 16-битовый таймер;

последовательный интерфейс связи;

последовательный периферийный интерфейс;

программируемое ПЗУ с ультрафиолетовым стиранием либо однократно программируемое ПЗУ;

возможность конфигурирования памяти;

система слежения за временем выполнения программы;

диспетчер тактовой частоты;

записанная в ПЗУ программа самозагрузки для программирования;

программируемый режим обнаружения внешних прерываний;

возможность прерываний от внешнего устройства таймера и последовательного интерфейса;

начальная установка по включению и по внешнему сигналу;

одно питающее напряжение 3-6 В (режим сохранения данных при 2 В);

встроенный генератор тактовой частоты;

40-выводной корпус с двумя рядами выводов либо 44-выводной квадратный пластиковый корпус.

Особенности программного обеспечения :

совместимость снизу вверх в программном обеспечении с M146805 КМОП серией;

эффективный набор команд;

гибкость в управлении с помощью прерываний;

режимы индексной адресации для организации массивов и таблиц;

обмен с внешними устройствами включенными в адресное пространство;

два режима низкого потребления энергии.

Внутренняя структура ОЭВМ представлена на рисунке 1-1. Блок центрального процессора содержит 8-битовое арифметико-логическое устройство (АЛУ) аккумулятор индексный регистр регистр признаков указатель стека программный счетчик и управляющую логику. На кристалле также расположены системы памяти: загрузочное ПЗУ программируемое ПЗУ и ОЗУ.

В состав систем ввода-вывода входят асинхронный последовательный интерфейс связи (SCI) последовательный периферийный интерфейс (SPI) и 16-битовый программируемый таймер. Диспетчер синхронизации и таймер времени выполнения программы следят соответственно за наличием сигнала синхронизации на внутренней шине (в противном случае происходит RESET) а также за временем выполнения прикладной программы которая должна периодически сбрасывать таймер в противном случае система считает что произошел сбой программы и формирует RESET. Тактовый генератор может функционировать как с использованием внешнего сигнала синхронизации так и с помощью кварцевого резонатора. Схемы подключения для обоих случаев приведены в Приложении 2.

Motorola MC68HC705C8

Рис. 1-1. Внутренняя структура ОЭВМ.

24 линии ввода-вывода объединены в порты А В и С которые могут быть запрограммированы либо на ввод либо на вывод информации. 7 линий порта D работают только в режиме ввода информации но могут программно переключаться на работу в режиме обслуживания последовательного интерфейса связи (Serial Communication Interface далее SCI) либо в режиме последовательного периферийного интерфейса (Serial Periferal Interface далее SPI).

Выводы TCAP и TCMP позволяют с помощью таймера реализовывать функции фиксации времени внешнего события (например для измерения длительности внешнего импульса) и выполнения какой-либо операции в определенный момент времени (например для формирования выходного сигнала в реальном времени).

Вывод Vpp используется для программирования ППЗУ и при нормальной работе соединяется с выводом питания Vdd. Рассмотрим подробнее каждый из элементов ОЭВМ.

1.2 Память.

Память ОЭВМ MC68HC705C8 включает в себя от 176 до 304 байт ОЗУ 240 байт ПЗУ и от 7600 до 7744 байт программируемого ПЗУ. МС68HC705C8 имеет 4 различных типа конфигурации памяти как показано на рис. 1-2.

Motorola MC68HC705C8

Рис. 1-2 Карта памяти ОЭВМ

Конфигурация задается записью в биты RAM0 и RAM1 регистра конфигурации OPTION находящегося по адресу 1FDFH. При начальной установке эти биты сбрасываются. Состояние битов RAM0 и RAM1 определяет объем ОЗУ и ПЗУ который может быть выбран из следующей таблицы:

RAM0 RAM1 ОЗУ байт ППЗУ байт
0 0 176 7744
1 0 208 7696
0 1 272 7648
1 1 304 7600

Таким образом конфигурация памяти может быть изменена в любой момент в ходе выполнения программы.

1.3 Регистры.

Как видно из структурной схемы ОЭВМ содержит следующие регистры: 5 регистров ЦП регистр конфигурации программный регистр (регистр команд программирования). Назначение и структуру этих регистров мы рассмотрим в этом разделе. Кроме того в состав ОЭВМ входят регистры портов регистры таймера последовательных интерфейсов и другие все эти регистры будут рассмотрены в соответствующих разделах.

Регистр конфигурации ( OPTION ) имеющий адрес 1FDFH во встроенной памяти используется для задания режима обнаружения внешних прерываний (IRQ) разрешения/запрета доступа к ППЗУ а также конфигурации памяти.

Регистр конфигурации

Назначение RAM0 RAM1 0 0 SEC - IRQ/ 0
Установка после RESET 0 0 0 0 * - 1 0

*бит SEC является ячейкой ППЗУ.

Ниже приводятся функции каждого бита регистра конфигурации.

RAM0 -бит конфигурации памяти.

при RAM0=1 32 байта с адреса 0030H становятся равными 0. Адреса с 0020 по 002F резервируются. Таким образом удаляется 48 байт ППЗУ которые были расположены по этим адресам. Этот бит может быть записан и прочитан в любой момент таким образом конфигурация памяти может быть изменена во время выполнения программы.

при RAM0=0 добавляется 48 байт ППЗУ по адресам 0020H-004FH.

RAM1 -бит конфигурации памяти.

при RAM1=1 96 байт начиная с адреса 0100H становятся равными FFH. Бит может быть записан и прочитан в любой момент.

при RAM1=0-добавляется 96 байт ППЗУ c адреса 0100H.

SEC -бит блокировки загрузчика. Он показывает откуда будет производиться начальная загрузка ОЭВМ: из ППЗУ либо из внешнего источника по последовательному интерфейсу.

при SEC=1 загрузчик блокирован. ОЭВМ работает в однокристальном режиме.

при SEC=0 загрузчик разблокирован управление после RESET передается встроенной программе осуществляющей начальную загрузку встроенной памяти из внешнего устройства по последовательному интерфейсу. Бит SEC физически расположен в ППЗУ и не изменяется при общем сбросе.

IRQ -режим обнаружения запросов на прерывание от внешних устройств.

при IRQ=1 вывод IRQ/ микропроцессора реагирует как на низкий уровень сигнала на этом выводе так и на перепад из высокого уровня в низкий.

при IRQ=0 ОЭВМ реагирует только на перепад из высокого в низкий уровень на входе IRQ.

Регистр команд программирования (PROG) расположенный по адресу 001СН используется для установки режима при программировании ППЗУ.

Регистр команд программирования

Назначение 0 0 0 0 0 LAT 0 PGM
Установка после RESET 0 0 0 0 0 0 0 0

LAT -бит определяет доступ к триггеру программирования ППЗУ.

при LAT=1-разрешен доступ к данным ППЗУ и адресной шине для программирования на следующем цикле записи байта.

при LAT=0-доступ запрещен.

Бит LAT может быть записан и прочитан.

PGM -разрешение/запрет программирования.

при PGM=1 напряжение программирования подается на ППЗУ.

при PGM=0 напряжение программирования отключено.

Если бит LAT сброшен PGM не может быть установлен в 1.

Центральный процессор содержит 5 регистров показанных на рис. 1-3. Регистры центрального процессора не являются частью карты памяти.

Motorola MC68HC705C8

Рис. 3 Регистры ЦП.

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

Индексный регистр (X)-используется либо при индексном режиме адресации либо как вспомогательный аккумулятор. Этот регистр может быть загружен как непосредственно так и из памяти может быть сохранен в ячейке памяти или сравнен с ее содержимым.

Программный счетчик (PC)-это 13-битовый регистр содержащий адрес команды следующей за выполняемой либо адрес операнда входящего в код программы. Шина адреса MC68HC705C8 имеет разрядность 13 бит что позволяет адресовать 8 Кб памяти.

Указатель стека (SP) как и программный счетчик является 13-битным регистром содержащим адрес следующей (свободной) ячейки стека. Во время начальной установки либо при выполнении команды "Сброс указателя стека" (RSP) в указатель записывается адрес 00FFH. Затем это значение уменьшается по мере записи данных в стек. При обращении к памяти 7 старших бит указателя постоянно имеют значение 0000011В. Эти 7 бит добавляются к шести младшим битам для получения адреса от 00FFH до 00C0H. Подпрограммы и прерывания могут таким образом использовать до 64 ячеек памяти под стек. Если все ячейки заполнены то указатель стека автоматически устанавливается в исходную позицию и записанная в стек информация теряется. Вызов подпрограммы использует 2 ячейки стека прерывание-5 ячеек.

Регистр признаков (СС) содержит 5 флагов устанавливающихся в зависимости от результата выполнения арифметических и других команд. Этими флагами являются: флаг полупереноса (Н) флаг отрицательного результата (N) флаг нулевого результата (Z) бит маски прерываний (I) и флаг переноса (С).

Флаг полупереноса (Н)-используется для операций с числами в двоично-десятичном коде и изменяется при операциях сложения (ADD) и сложения с флагом переноса (ADC). Бит Н устанавливается в 1 при возникновении переноса из бита 3 в бит 4.

Бит маскирования прерываний (I)-запрещает все маскируемые прерывания при установке его в 1. Бит I автоматически устанавливается при возникновении любого прерывания сразу же после сохранения регистров в стеке но до передачи управления по вектору прерывания. Если внешнее прерывание происходит в тот момент когда бит I установлен в 1 то запрос на прерывание фиксируется и обрабатывается после сброса бита I. После обслуживания прерывания команда возврата из прерывания (RTI) восстанавливает содержимое регистров. Таким образом после обработки прерывания I-бит сбрасывается а при начальной установке ОЭВМ бит I устанавливается в 1 и может быть сброшен программно.

Флаг отрицательного результата (N) устанавливается в 1 если результат последней операции является отрицательным числом и сбрасывается в противоположном случае.

Флаг нулевого результата (Z) устанавливается в 1 если результатом последней операции является 0 и сбрасывается в противоположном случае.

Флаг Перенос (заем) (С) индицирует что произошел перенос в результате операции сложения либо заем при вычитании. Операции сдвига и циклического сдвига происходят через этот бит что дает возможность осуществлять операции сдвига с операндами из нескольких слов.

1.4. Режимы адресации.

ОЭВМ МС68НС705С8 использует восемь режимов адресации определяющих способ доступа к данным требуемым для выполнения команд. Способы адресации поддерживаемые ОЭВМ МС68НС05С8 перечислены ниже:

неявная;

непосредственная;

прямая;

расширенная;

индексная без смещения;

индексная с 8-разрядным смещением;

индексная с 16-разрядным смещением;

относительная.

Команды с неявной адресацией либо не имеют операндов либо содержат указание на операнд в мнемонике команды. К таким командам относятся например команды возврата из прерывания (RTI) останова (STOP) и т.д. Неявный тип адресации имеют команды работы с данными в регистрах микропроцессора например установить флаг переноса (SEC) увеличение числа хранящегося в аккумуляторе на единицу (INCA) и другие. Команды с неявной адресацией не требуют обращения к памяти и имеют длину один байт. В Таблице 1-1 приведен список команд которые используют неявную адресацию.

Таблица 1-1 . Команды использующие неявную адресацию.

Команда Мнемоника
Арифметический сдвиг влево ASLA, ASLX
Арифметический сдвиг вправо ASRA, ASRX
Сбросить флаг переноса CLC
Сбросить флаг маскирования прерываний CLI
Обнулить CLRA, CLRX
Дополнение COMA, COMX
Декремент на 1 DECA, DECX
Инкремент на 1 INCA, INCX
Логический сдвиг влево LSLA, LSLX
Логический сдвиг вправо LSRA, LSRX
Умножение MUL
Изменить знак NEGA, NEGX
Нет операции NOP
Циклический сдвиг влево через флаг переноса ROLA, ROLX
Циклический сдвиг вправо через флаг переноса RORA, RORX
Инициализация указателя стека RSP
Возврат из прерывания RTI
Возврат из подпрограммы RTS
Установить флаг переноса SEC
Установить бит маскирования прерываний SEI
Разрешить IRQ и останов генератора синхроимпульсов STOP
Программное прерывание SWI
Запись содержимого аккумулятора в индексный регистр TAX
Проверить на отрицательность и равенство нулю TSTA, TSTX
Запись содержимого индексного регистра в аккумулятор TXA
Разрешить прерывание и останов процессора WAIT

Пример:

0200 4С INCA Инкремент аккумулятора

Производимые действия:

$0200 $4C [1] [2] [3]

Объяснение:

[1] процессор читает код операции $4C - инкремент аккумулятора;

[2] [3] процессор считывает содержимое аккумулятора увеличивает на 1 запоминает новую величину в аккумуляторе в соответствии с результатом устанавливает биты в регистре флагов.

При непосредственной адресации операнд первый операнд находится в аккумуляторе или индексном регистре а второй является частью кода команды. Команды с непосредственной адресацией не требуют адреса памяти и имеют длину два байта. Код команды содержится в первом байте а операнд во втором байте. Таблица 1-2 содержит команды использующие непосредственную адресацию.

Таблица 1-2. Команды использующие непосредственную адресацию.

Команда Мнемоника
Сложение с флагом переноса ADC
Сложение ADD
Логическое И AND
Битовое сравнение ячейки памяти с аккумулятором BIT
Сравнение аккумулятора и ячейки памяти CMP
Сравнение индексного регистра и ячейки памяти CPX
Исключающее ИЛИ ячейки памяти и аккумулятора EOR
Загрузить аккумулятор содержимым ячейки памяти LDA
Загрузить индексный регистр содержимым ячейки памяти LDX
Операция ИЛИ ORA
Вычитание с флагом переноса SBC
Вычитание SUB

Пример:

0200 А6 02 LDA #$02 Загрузить аккумулятор константой $02

Производимые действия:

$0200 $A6 [1]

$0201 $02 [2]

Объяснение:

[1] ЦП читает код операции $A6 - загрузить аккумулятор константой следующей за кодом операции

[2] ЦП читает константу $02 по адресу $0201 и записывает ее в аккумулятор.

Команды с прямой адресацией имеют доступ к первым 256 ячейкам памяти и имеют длину два байта. Первым байтом является код команды второй байт представляет собой младший байт адреса операнда. При использовании прямой адресации ЦП автоматически устанавливает в $00 старший байт адреса операнда. Исключение составляют команды BRSET и BRCLR занимающие три байта и использующие прямую адресацию для доступа к операнду и относительную адресацию для определения точки перехода. В Таблице 1-3 представлены команды которые используют режим прямой адресации к памяти.

Таблица 1-3. Команды использующие прямую адресацию к памяти.

Команда Мнемоника
Сложение с флагом переноса ADC
Сложение ADD
Логическое И AND
Арифметический сдвиг влево ASL
Арифметический сдвиг вправо ASR
Сбросить бит в ячейке памяти BCLR
Битовое сравнение ячейки памяти и аккумулятора BIT
Переход, если бит n установлен BRCLR
Переход, если бит n сброшен BRSET
Сбросить бит в памяти BCLR
Установить бит в памяти BSET
Очистить CLR
Сравнение аккумулятора и ячейки памяти CMP
Дополнение COM
Сравнение индексного регистра и ячейки памяти CPX
Декремент на 1 DEC
Исключающее ИЛИ ячейки памяти и аккумулятора EOR
Инкремент на 1 INC
Безусловный переход JMP
Вызов подпрограммы JSR
Загрузить аккумулятор содержимым ячейки памяти LDA
Загрузить индексный регистр содержимым ячейки памяти LDX
Логический сдвиг влево LSL
Логический сдвиг вправо LSR
Изменение знака NEG
ИЛИ ORA
Циклический сдвиг влево через флаг переноса ROL
Циклический сдвиг вправо через флаг переноса ROR
Вычитание с флагом переноса SBC
Записать содержимое аккумулятора в ячейку памяти STA
Записать содержимое индексного регистра в ячейку памяти STX
Вычитание SUB
Проверка знака и равенства нулю TST

Пример:

0200 В6 50 LDA $50 Загрузить аккумулятор содержимым ячейки с адресом $50

Производимые действия:

$0200 $B6 [1]

$0201 $50 [2] и [3]

Объяснение:

[1] процессор читает код операции $В6 - загрузить аккумулятор используя прямую адресацию.

[2] процессор считывает $50 по адресу $0201. $50 интерпретируется как младший байт 16-ти разрядного адреса.

[3] процессор считывает содержимое ячейки $0050 и помещает его в аккумулятор.

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

Страницы: 1 2 3 4 5 6