Поиск по сайту:

 


По базе:  

микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Статьи > Микроконтроллеры

реклама

 




Мероприятия:




Коммуникационные контроллеры семейства Motorola 683xx

И.И. ШАГУРИН

Краткое содержание

Более 30 лет компания Motorola разрабатывает и выпускает высококачественные компоненты для систем связи, являясь мировым лидером в этой области. На базе этих компонентов компания Motorola производит широкий спектр аппаратуры для проводной и беспроводной связи. Успехи многих ведущих производителей телекоммуникационного оборудования, таких как фирмы ATT, Alcatel, Ericsson, Nokia, в значительной степени определяются использованием в их продукции изделий и технологий компании Motorola.
    В конце 80-х годов компания Motorola начала выпуск нового класса микроконтроллеров, ориентированных на использование в системах телекоммуникации. Они получили название коммуникационных контроллеров. Такие контроллеры широко применяются в цифровых автоматических телефонных станциях, в системах сотовой связи, в аппаратуре обслуживания локальных сетей и других видах связной аппаратуры. Большой набор коммуникационных контроллеров входит в состав семейства 683xx ( более 10 моделей ). В 1996 году начался выпуск высокопроизводительных коммуникационных контроллеров в составе семейства PowerPC ( модели MPC860, MPC850 ). В настоящем обзоре рассматриваются контроллеры, входящие в состав семейства 683хх, которые имеют наиболее массовое применение в современных системах телекоммуникации ( годовой объем выпуска составляет около 3 млн.).
    В семейство 683хх входят три базовых модели коммуникационных контроллеров: MC68302, MC68356, MC68360. Эти контроллеры содержат центральный процессор CPU32+ или CPU68000 и специализированный коммуникационный процессор, реализующий различные протоколы обмена информацией. Первый из этих контроллеров - MC68302, содержит процессор 68000 и коммуникационный процессор CP. Его развитием является контроллер MC68356, в который введен 24-разрядный цифровой процессор сигналов ( ЦПС ), функционально аналогичный ЦПС типа DSP5602, выпускаемому компанией Motorola.

1. Коммуникационный контроллер MC68360 ( QUICC )

Наиболее широкими возможностями обладает контроллер MC68360, использующий 32-разрядный процессор CPU32+ и модуль коммуникационного процессора CPM, который является расширенным вариантом СP. Этот контроллер, который получил название QUICC ( Quad Integrated Communications Controller ), рассматривается в данном обзоре наиболее подробно.
    Контроллер MC68360 и его модификации MC68EN360, MC68MH360 имеют модульную структуру ( рис.1 ), в которую входят центральный процессор CPU32+, модуль коммуникационного процессора CPM и модуль системной интеграции SIM60, соединенные общей внутренней шиной.

Рис. 1. Общая структура контроллера MC68360.

Центральный процессор CPU32+

Процессор CPU32+ имеет архитектуру, принятую в микропроцессорах семейства 68000, что позволяет использовать большой объем программного обеспечения, созданный для этого семейства. Процессор обеспечивает работу с 32-разрядными шинами адресов и данных, аналогично MС68020 и более поздним моделям семейства 68000.
    Архитектура процессора ориентирована на раздельное выполнение двух классов задач: управление работой системы с помощью супервизора( операционной системы ) или решение прикладных задач пользователя.. В режиме супервизора разрешается выполнение любых команд, реализуемых процессором, и доступ ко всем его регистрам. В режиме пользователя запрещается выполнение ряда команд и доступ к некоторым регистрам, чтобы не допустить такие изменения состояния системы, которые могут помешать выполнению других пользовательских программ или нарушить режим работы процессора, установленный супервизором.
    Режим функционирования определяется значением бита супервизора S в регистре состояния SR ( рис.2 ). При включении процессор устанавливается в режим супервизора ( S = 1 ). Затем операционная система определяет режим дальнейшего функционирования процессора. Если предполагается его использование в режиме пользователя, то изменяется значение бита S в регистре SR. В режиме пользователя изменение S не допускается. В этом случае переход в режим супервизора происходит при возникновении исключительных ситуаций, прерывающих нормальное выполнение программы, или путем сброса ( RESET ) процессора в начальное состояние.
    Регистровая модель процессора CPU32+ приведена на рис.2. Модель пользователя содержит восемь регистров данных D7-0, восемь регистров адреса A7-0, програмный счетчик PC и регистр состояния SR, в котором доступен только младший байт CCR, хранящий признаки результата выполненной команды ( C - перенос, V - переполнение, Z - нуль, N - знак, X - расширение ). Один из регистров адреса - A7, служащий в качестве указателя стека, дублирован для обслуживания процедур, выполняемых в различных режимах. В режиме пользователя указателем стека служит регистр USP ( A7 ), в режиме супервизора - регистр SSP ( A7' ).
    Регистровая модель супервизора содержит все регистры пользователя, регистр состояния SR, включая его старший ( системный ) байт, где содержатся маска прерываний I2-0 и биты управления режимом S ( супервизор или пользователь ), T1-0 ( пошаговый режим с остановом после каждой команды или после команды ветвления ). В модель супервизора входят также регистр VBR, хранящий базовый адрес таблицы векторов исключений и два 3-разрядных регистра SFC, DFC, в которые заносится код адресного пространства, поступающий на внешние выводы FC2-0 при выполнении специальной команды MOVES. Эти сигналы позволяют выделить отдельные разделы памяти для хранения программ и данных супервизора и пользователя.

Рис.2. Регистровая модель процессора CPU32+

Процессор CPU32+ выполняет набор из 158 команд ( табл.1 ), которые реализуют пересылку данных, арифметические и логические операции, сдвиги, операции сравнения и тестирования, битовые операции, операции управления и условной установки байтов. Часть команд выполняется только в режиме супервизора. Это привилегированные команды, попытка выполнения которых в режиме пользователя вызывает прерывание программы.

    Таблица 1. Набор команд процессора CPU32+

Мнемокод Выполняемая операция
ABCD Сложение двоично-десятичных чисел
ADD Сложение двоичных чисел
ADDA Сложение с содержимым регистра адреса
ADDI, ADDQ Сложение с непосредственным операндом
ADDX Сложение с учетом переноса
AND Логическая операция И
ANDI Логическая операция И с непосредственным операндом
ANDI CCR Операция И с непосредственным операндом и содержимым CCR
ANDI SR Операция И с непосредственным операндом и содержимым SR*
ASL Арифметический сдвиг влево
ASR Арифметический сдвиг вправо
Всс Условное ветвление
BCHG Тестирование бита и инверсия его значения
BCLR Тестирование бита и установка его в "0"
BGND Ввод в BDM-режим отладки
BKPT Останов в контрольной точке
BRA Безусловное ветвление
BSET Тестирование бита и установка его в "1"
BSR Вызов подпрограммы
BTST Тестирование бита
CHK, CHK2 Проверка операнда на попадание в заданный диапазон
CLR Установка нулевого значения операнда
CMP Сравнение операндов
CMPA Сравнения с одержимым регистра адреса
CMPI Сравнение с непосредственным операндом
CMPM Сравнение массивов данных
CMP2 Сравнение с верхним и нижним пределами
DBcc Организация циклов с условным выходом
DIVS, DIVSL Деление операндов со знаком
DIVU, DIVUL Деление операндов без знака
EOR Логическая операция Исключающее ИЛИ
EORI Операция Исключающее ИЛИ с непосредственным операндом
EORI CCR Операция Исключающее ИЛИ с непосредственным операндом и содержимым регистра CCR
EORI SR Операция Исключающее ИЛИ с непосредственным операндом и содержимым регистра SR*
EXG Обмен содержимым регистров
EXT, EXTB Расширение знака операнда
ILLEGAL Прерывание при неправильном коде команды
JMP Безусловный переход
JSR Переход к подпрограмме
LEA Загрузка в регистр эффективного адреса EA
LINK Организация связи стеков
LPSTOP Останов в энергосберегающем режиме*
LSL Логический сдвиг влево
LSR Логический сдвиг вправо
MOVE Пересылка операндов
MOVEA Пересылка содержимого регистр адреса
MOVEC Пересылка содержимого служебных регистров* (USP,VBR,SFC,DFC)
MOVEM Пересылка содержимого группы регистров
MOVEP Пересылка по 8-разрядной шине данных
MOVEQ Пересылка непосредственного короткого операнда
MOVES Пересылка с выдачей кода адресного пространства*
MOVE CCR Пересылка содержимого регистра CCR
MOVE SR Пересылка содержимого регистра SR*
MOVE USP Пересылка содержимого регистра USP*
MULS Умножение операндов со знаком
MULU Умножение операндов без знака
NBCD Изменение знака двоично-десятичного числа
NEG Изменение знака двоичного числа
NEGX Изменение знака с вычитанием переноса
NOP Отсутствие операции
NOT Логическая операция НЕ
OR Логическая операция ИЛИ
ORI Операция ИЛИ с непосредственным операндом
ORI CCR Операция ИЛИ с непосредственным операндом и содержимым CCR
ORI SR Операция ИЛИ с непосредственным операндом и содержимым SR*
PEA Загрузка в стек эффективного адреса EA
RESET Установка начального состояния*
ROL Циклический сдвиг влево
ROR Циклический сдвиг вправо
ROXL Циклический сдвиг влево с расширением
ROXR Циклический сдвиг вправо с расширением
RTD Возврат из подпрограммы с вводом или исключением заданного числа ячеек в стеке
RTE Возврат из подпрограммы обслуживания исключения*
RTS Возврат из подпрограммы
RTR Возврат из подпрограммы с восстановлением признаков
SBCD Вычитание двоично-десятичных чисел
Scc Условная установка байта
STOP Останов выполнения программы*
SUB Вычитание двоичных чисел
SUBI, SUBQ Вычитание непосредственного операнда
SUBX Вычитание с учетом заема
SWAP Перестановка байтов в слове
TAS Тестирование операнда с установкой в І1І его старшего разряда
TBLS,TBLSN Линейная интерполяция, знаковая
TBLU,TBLUN Линейная интерполяция, беззнаковая
TRAP Прерывание
TRAPcc Условное прерывание
TRAPV Прерывание при переполнении
TST Тестирование операнда
UNLK Операция, обратная LINK

    *) Выполняются только в режиме супервизора.

В набор команд включены команды интерполяции, которые вычисляют значения линейной функции в 255 промежуточных точках отрезка, для которого задаются конечные значения. Таким образом исключается необходимость хранения в памяти промежуточных значений линейных функций. Процесор CPU32+ не имеет специальных команд ввода-вывода данных. Для обращения к внешним устройствам их адрес формируется и выдается на адресную шину, как при выборке ячеек памяти. Процессор реализует способы адресации операндов, указанные в табл.2.

    Табл. 2. Способы адресации, реализуемые процессором CPU32+
Адресация Формирование адреса*
Регистровая An или Dn -> операнд
Косвенно-регистровая (КР) An -> адрес
КР с постинкрементом An -> адрес, An + k -> An
КР с предекрементом An - k -> An, An -> адрес
КР со смещением An + d16 -> адрес
КР c индексированием An + Xn + d8 -> адрес
КР с базовым смещением и индексированием An + Xn*s + bd -> адрес
Прямая ( абсолютная ) a16 или a32 -> адрес
Относительная PC + d16 -> адрес
Относительная с индексированием PC + Xn*s + d16 -> адрес
Относительная с базовым смещением и индексированием PС + Xn*s + bd -> адрес
Непосредственная Im -> операнд

    * Примечания:

  • k - число байтов в адресуемом операнде.
  • d8,d16 - 8- или 16-разрядное смещение ( со знаком ), заданное в команде.
  • a16,a32 - 16- или 32-разрядный адрес, заданный в команде.
  • s = 1,2,4 или 8 - масштабный множитель индекса.
  • bd - 32-разрядное базовое смещение.
  • Im - непосредственный операнд, заданный в команде.

Процессор CPU32+ реализует обслуживание программных исключений, возникающих при выполнении некоторых команд, и аппаратных исключений, которые вызываются внешними запросами или внутренними сигналами, формируемыми при возникновении ряда ситуаций ( табл.3 ).

    Причинами программных исключений являются:

  • команды RESET, TRAP, TRAPcc, TRAPV ( при значении признака V =1 ), CHK,CHK2 ( при выходе операнда за границы заданного диапазона );
  • привилегированные команды ( табл.1 ), выполняемые в режиме пользователя (нарушение привилегии );
  • команды DIVS, DIVU, выполняемые при нулевом делителе ( деление на нуль );
  • выборка команды, содержащей неправильный код операции ( не соответствующий набору кодов, используемых процессором );
  • установка значения признаков трассировки T1,T0; в этом случае процессор работает в пошаговом режиме, выполняя после каждой команды подпрограмму обслуживания, которая выводит на экран дисплея содержимое определенных регистров и ячеек памяти и позволяет изменять его в процессе отладки программы;
  • выборка команды, содержащей в коде операции 1111 ( переход к эмуляции команд арифметического сопроцессора ) или 1010 ( переход к эмуляции произвольных команд, не входящих в набор команд CPU );
  • выборка команды по нечетному адресу ( все команды содержат целое число слов, поэтому выдача нечетного адреса является ошибкой ).

    Причинами аппаратных исключений являются:

  • поступление внешнего сигнала установки начального состояния RESET ;
  • поступление внешнего сигнала ошибки обращения к шине BERR ;
  • поступление внешних запросов прерывания на входы IRQ7-1;
  • отсутствие сигналов подтверждения DSACK0,1 или AVEC, которые должны поступить от запросивших прерывание устройств ( ложное прерывание );
  • поступление запроса от устройства, которое не может передать в процессор свой вектор прерывания ( неинициализированное прерывание ).

Во всех этих ситуациях процессор заносит в стек кадр определенного формата, содержимое которого обеспечивает возвращение к прерванной программе. Стековый кадр имеет размер от 4 до 12 байт, и содержит текущие значения регистров PC и SR, код формата Fe и адрес вектора прерывания Av, а также дополнительную информацию, которая помогает подпрограмме обслуживания определить причину исключения.

    Таблица 3. Виды исключений, их номера и адреса векторов
Номер Ne Адрес Av Вид исключения
0 $000 Установка начального состояния (загрузка SSP)
- $004 Установка начального состояния (загрузка РС)
2 $008 Ошибка обращения к шине
3 $00C Неправильный (нечетный) адрес команды
4 $010 Неправильный код операции
5 $014 Деление на нуль (команды DIVU,DIVS)
6 $018 Команда CHK, CHK2
7 $01C Команда TRAPV, TRAPcc
8 $020 Нарушение привилегии
9 $024 Режим трассировки
10 $028 Код эмуляции 1010 (A- код операции)
11 $02C Код эмуляции 1111 (F - код операции)
12 $030 Останов в контрольной точке
13 $034 Резервировано
14 $038 Ошибка формата стекового кадра
15 $03C Неинициализированное прерывание
16 - 23 $040 - 05C Резервировано
24 $060 Ложное прерывание
25 - 31 $064 - 07C Автовекторные прерывания Li = 1-7
32 - 47 $080 - 0BC Команды TRAP с номерами Nt = 1-15
48 - 63 $0C0 - 0FC Резервировано
64 - 255 $100 - 3FF Векторные прерывания пользователя


После загрузки стека в PC заносится из памяти вектор исключения Ve - начальный адрес подпрограммы обслуживания. Эти вектора хранятся в таблице, базовый адрес которой содержится в регистре VBR. Каждое исключение имеет свой номер Ne, который принимает значения от 0 до 255 ( табл.3 ). Значение Ne, сдвинутое на два разряда влево, дает относительный адрес вектора в таблице исключений. Таблица может иметь объем до 1024 байт и содержать адреса входов для 254 подпрограмм обслуживания.
    Любое исключение вызывает установку бита супервизора S = 1 в регистре состояния SR. При этом процессор переходит к выполнению подпрограммы обслуживания в режиме супервизора. После ее завершения возврат к прерванной программе осуществляется командой RTE, выполняемой только в режиме супервизора, которая восстанавливает содержимое PC и SR, считывая их из стекового кадра. Если при этом считанный из стека код формата Fe не соответствует коду исключения, вызвавшего подпрограмму обслуживания, то реализуется исключение "ошибка формата" ( номер Ne =14 ).
    Процессор обслуживает запросы прерывания от внешних устройств, которые поступают на входы IRQ7-1 модуля SIM. Каждый запрос имеет свой приоритет: высший (Li = 7) - запрос IRQ7, низший (Li = 1) - запрос IRQ1. Обслуживание этих запросов обеспечивает контроллер прерываний, который входит в блок конфигурации и контроля модуля SIM ( рис.1 ). Обслуживаются запросы, приоритет которых не меньше содержащейся в регистре SR маски прерываний I2-0 ( рис.2). В этом случае после выполнения текущей команды осуществляется цикл прерывания, в ходе которого процессор выдает сигнал подтверждения соответствующего запроса IACK7-1, получает от запросившего устройства номер вектора Ne, формирует стековый кадр, выбирает из таблицы и загружает в PC вектор исключения Ve Адресация подпрограмм обслуживания запросов IRQ7-1 может производиться двумя способами. При автовекторном прерывании каждому запросу с уровнем Li соответствует номер исключения Ne = 24 + Li, в соответствии с которым формируется один из семи адресов Av от $064 до $07C ( табл.3 ). Для реализации такого прерывания необходимо подать сигнал AVEC = 0 на вход контроллера. При векторном прерывании внешнее устройство, запросившее прерывание, Устанавливает сигнал подтверждения DTACK = 0 и передает в процессор 8-разрядное значение номера Ne. Таким способом получаются значения Ne до 255 и обеспечивается обращение к подпрограммам c адресами векторов Av до $3FF.
    Характерной особенностью процессора CPU32+ является реализация специального режима отладки BDM ( back-ground debug mode ), который позволяет выполнять комплексную отладку микроконтроллерных систем без использования сложных и дорогостоящих схемных эмуляторов. Работа процессора в режиме BDM разрешается, если при начальной установке ( RESET ) подать сигнал BKPT = 1 на соответствующий вход контроллера.. В этом случае подача сигнала BKPT = 0 в процессе дальнейшего функционирования микроконтроллера вызывает остановку выполнения текущей программы и переход под управление внешней системы отладки, которая через специальный последовательный BDM - порт вводит в контроллер команды отладки. Возможен также программный ввод процессора в режим отладки BDM с помощью команды BGND.
    В режиме BDM процессор выполняет команды системы отладки, поступающие через специальный синхронный последовательный BDM-порт. В качестве системы отладки используется персональный компьютер с необходимым программным обеспечением (интегрированная среда программирования и отладки). От системы отладки на вход DSI процессора поступают команды, адреса и данные; процессор выдает на вход DSI данные или информацию о состоянии, принимаемые системой. Синхросигналы обмена подаются на вход DSCLK процессора.

    В режиме BDM процессор выполняет следующие команды отладки:

  • запись в регистры адреса A или данных D ( команды WAREG, WDREG ) и чтение из них ( команды RAREG, RDREG );
  • запись в системные регистры PC, SSP, USP, SR, VBR, SFC, DFC и чтение из них ( команды WSREG, RSREG );
  • запись или чтение содержимого ячейки памяти ( команды WRITE, READ );
  • заполнение блока ячеек памяти ( команда FILL, следующая за командой WRITE, которая задает начальный адрес блока );
  • вывод содержимого блока ячеек памяти ( команда DUMP, следующая за командой READ, которая задает начальный адрес блока );
  • вызов подпрограммы пользователя ( команда CALL, содержащая адрес ячейки памяти, из которой вводится новое содержимое PC );
  • выдача сигнала RESET для периферийных устройств при сохранении состояния процессора ( команда RST ), отсутствие операции ( команда NOP );
  • выход из режима отладки и возврат к выполнению программы ( команда GO ).

Команды системы отладки поступают на вход DSI в виде 16-разрядного последовательного кода, задающего вид операции, разрядность операндов, код регистра, к которому производится обращение. После команд WAREG, WDREG, WSREG, FILL на вход DSI последовательно поступает операнд в виде одного или двух 16-разрядных слов. После команд RAREG, RDREG, RSREG, DUMP процессор последовательно выдает на выход DSI считываемый операнд. После команд READ, WRITE, CALL на вход DSI сначала поступает 32-разрядный адрес в виде двух последовательно передаваемых 16-разрядных слов, а затем производится ввод ( при команде WRITE ) или вывод ( по команде READ ) операнда. После приема команды процессор выдает сообщения о поступлении неправильной команды, - продолжении выполнения команды, если результат еще не готов ( например, идет прием адреса ), возникновении ошибки обращения к шине.
    Использование режима BDM обеспечивает значительное упрощение процесса отладки систем, реализованных на базе контроллеров семейства M683xx.

Коммуникационный процессор CPM

Специфические особенности функционирования и применения MC68360 и его модификаций MC68EN360, MC68MH360 связаны с наличием в их составе коммуникационного процессора CPM, который содержит большой набор интерфейсных блоков, обеспечивающих возможности подключения контроллера к линиям связи с различными протоколами обмена.
    Модуль CPM подключается к внутренней шине и работает под управлением собственного RISC-контроллера с минимальным вмешательством процессора CPU32+. Основное назначение CPM - обеспечить разнообразные каналы параллельной и последовательной передачи данных между микропроцессорной системой, управление которой осуществляет CPU32+ через интерфейсный модуль SIM60, и внешними устройствами, подключенными с помощью линий связи с различными протоколами обмена. Коммуникационный контроллер может работать в режиме ведомого ( slave ). В этом режиме его CPU отключается, и модуль CPM функционирует под управлением внешнего процессора. Таким образом можно реализовать систему из нескольких CPM ( контроллеров в режиме ведомого ), работающих под управлением одного ведущего процессора.

Рис.3. Структура модуля коммуникационного процессора СPM

В состав CPM ( рис.3 ) входят RISC-контроллер, двухпортовое ОЗУ ( ДП-ОЗУ ) и большой набор периферийных устройств. Все устройства CPM соединены общей периферийной шиной. Обращение к ДП-ОЗУ производится как со стороны микропроцессорной системы через внутреннюю шину, так и со стороны различных устройств CPM через периферийную шину. Процессор СPU32+ может обращаться к этим устройствам путем чтения или записи содержимого определенных регистров. Набор периферийных устройств СPM включает:

  • четыре связных последовательных интерфейса SCC1 - 4;
  • два управляющих последовательных интерфейса SMC1,2;
  • периферийный последовательный интерфейс SPI;
  • блок последовательного обмена ( БПО ), обеспечивающий передачу с временным разделением данных;
  • периферийный параллельный порт PIP, реализующий стандартный протокол обмена типа CENTRONICS;
  • три параллельных порта A, B, C, обеспечивающих различные протоколы квитированного и неквитированного обмена;
  • четыре 16-разрядных таймера ( могут конфигурироваться как два 32-разрядных );
  • двухканальный блок независимого прямого доступа к памяти IDMA.

Кроме того, при использовании ДП-ОЗУ можно реализовать шестнадцать 16-разрядных T-таймеров и четырнадцать каналов последовательного прямого доступа к памяти SDMA. Модуль CPM содержит также блок из четырех генераторов синхроимпульсов ГСи1-4, обеспечивающих работу интерфейсов SCC1-4, SMC1,2.
    Следует отметить, что CPM в моделях MC68360 и MC68EN360, MC68MH360 имеют одинаковые структуры и режимы функционирования. Эти контроллеры также полностью совместимы по внешним выводам. Различие между ними состоит только в наборе протоколов обмена, реализуемых интерфейсами SCC. В MC68EN360 интерфейсы SСС могут обеспечивать протокол обмена по локальным сетям ETHERNET. В MC68MH360 реализуется протокол HDLC с многоканальным обменом, а для SCC1 также протокол сети ETHERNET.
    RISC-контроллер имеет регистр команд CR, в который процессор CPU32+ записывает команды, вызывающие инициализацию или прекращение работы различных устройств CPM. Команды CPU поступают в CPM относительно редко: в начале работы контроллера, при изменении режима работы устройств СPM, включении в систему новых внешних устройств и т.п. Основную часть рабочего времени CPM самостоятельно принимает и передает данные, обращаясь при необходимости к CPU c запросами на прерывание или прямой доступ к памяти. При этом RISC-контроллер выдает последовательность микрокоманд для соответствующих устройств, обеспечивая необходимый режим их функционирования и реализацию заданного протокола обмена.
    ДП-ОЗУ емкостью 2,5 Кбайт делится на системное ОЗУ и ОЗУ параметров. В системном ОЗУ хранятся данные и команды, записываемые и считываемые CPU; микропрограммы новых процедур обслуживания, которые расширяют функциональные возможности RISC-контроллера, реализуя дополнительные протоколы обмена; 8-байтные дескрипторы блоков данных, передаваемых устройствами CPM. Дескрипторы, используемые SCC, SCM, SPI, PIP, задают начальный адрес передаваемого блока, указывают его размер ( до 64 Кбайт ), содержат управляющие биты, задающие режим обмена, и биты состояния, указывающие наличие ошибок при передаче. В ОЗУ параметров хранятся начальные адреса дескрипторов блоков и параметры, определяющие режим работы устройств CPM или отражающие их текущее состояние. Параметры, определяющие функционирование устройств CPM, вводятся в них из ДП-ОЗУ при поступлении от CPU команд инициализации. Изменение ( запись ) параметров со стороны CPU разрешается только при отключенном состоянии соответствующего устройства.
    Часть ДП-ОЗУ может использоваться для создания дополнительных таймеров, которые реализуются в виде двух таблиц. В ОЗУ параметров размещается таблица таймерных параметров, в системном ОЗУ - таблица таймеров ( T-таймеры ). CPM позволяет реализовать до шестнадцати 16-разрядных T-таймеров, которые переключаются сигналами таймерных меток. Период следования меток программируется CPU. Каждый таймер занимает в таблице четыре байта: два указывают его содержимое в момент запуска по команде CPU и два - текущее содержимое, которое уменьшается на 1 при поступлении таймерной метки. Режим работы ( одноразовый или периодический запуск ) и начальное содержимое таймеров задаются CPU путем записи в таблицу параметров ДП-ОЗУ и ввода в регистр CR команды установки таймера. Когда текущее содержимое T-таймера становится равным 0, устанавливается соответствующий признак в регистре таймерных событий RTER. Если регистр маски RTMR разрешает прерывание, то формируется запрос к CPU, вызывающий подпрограмму обслуживания. Таким образом использование T-таймеров позволяет осуществлять 16 вариантов одноразового или периодического вызова процедур обслуживания.
    Кроме T-таймеров, размещаемых в ДП-ОЗУ, CPM содержит блок из четырех 16-разрядных таймеров, которые можно попарно каскадировать для получения двух 32-разрядных таймеров. Каждый таймер содержит счетчик TCNT, регистры захвата TCR и сравнения TRR. Переключение TCNT производится либо сигналами таймерного делителя частоты, либо внешними синхросигналами, либо сигналами другого таймера ( при их каскадировании ). Возможна остановка счетчика внешним сигналом TGATE со сбросом в нуль или сохранением текущего состояния. При поступлении сигнала на вход TIN таймера текущее состояние TCNT фиксируется в регистре TCR, откуда может быть считано CPU ( режим захвата ). При записи числа в регистр TRR компаратор сравнивает его с текущим содержимым счетчика TCN и формирует выходной сигнал TOUT при их совпадении ( режим сравнения ). Захват и совпадение вызывают установку соответствующих признаков, которые вызывают прерывание CPU, если это разрешено содержимым регистра режима таймера TMR.
    Путем записи соответствующего содержимого в регистры таймеров CPU может программировать каждый из них на выполнение различных процедур обслуживания внешних устройств: измерение временных интервалов, формирование сигналов управления, генерацию импульсов и др.
    Прямой доступ к памяти ( ПДП ) реализуется с помощью двухканального контроллера IDMA, который программируется на работу в режиме пересылки одиночного блока данных или пересылки цепочки блоков - однократной или повторяющейся. При этом выполняются одноадресные циклы передачи "внешнее устройство - память" или двухадресные циклы "память - память". При тактовой частоте Ft = 25 МГц и 32-разрядной шине данных скорость обмена составляет 50 Мбайт/ с для передач "устройство - память" и 25 Мбайт/с для передач "память - память". Каждый канал IDMA осуществляет пересылку блоков данных по внутреннему или внешнему запросу, формируя необходимые адреса и сигналы управления обменом.
    Канал IDMA может работать под управлением CPU ( одиночная пересылка ) или RISC-контроллера CPM ( пересылка цепочки блоков ). Если канал запрограммирован на пересылку цепочки блоков, то его запуск инициализируется CPU путем ввода соответствующей команды в регистр CR. Предварительно в ДП-ОЗУ параметров записываются дескрипторы пересылаемых блоков. Если ПДП инициируется внешним сигналом DREQ, то канал IDMA выполняет пакетную или поцикловую пересылку. При пакетной пересылке канал начинает передачу операндов при поступлении сигнала DREQ = 0 и продолжает ее до установки DREQ = 1 или до конца блока. При поцикловой передаче каждый отрицательный перепад сигнала DREQ вызывает пересылку очередного операнда.
    Для последовательного обмена с внешними устройствами CPM использует четыре связных интерфейса SCC1-4, два управляющих интерфейса SMC1,2 и периферийный интерфейс SPI. Эти интерфейсы вырабатывают запросы на прием и передачу данных, которые поступают в контроллер последовательного прямого доступа SDMA, реализованный на базе ДП-ОЗУ. Контроллер SDMA содержит 14 каналов, каждая пара каналов обслуживает запросы приема и передачи одного из интерфейсов. При поступлении запроса канал выбирает из ДП-ОЗУ дескриптор, задающий параметры блока памяти, в который заносятся принимаемые данные или считываются данные для передачи. При одновременном запросе обслуживание выполняется в приоритетном порядке: SCC1 - SCC4, SMC1, SMC2, SPI.
    Интерфейсы SCC, SMC, SPI инициализируются командами, вводимыми CPU в регистр команд RISC-контроллера. После инициализации интерфейс работает со своей таблицей параметров, размещенной в ДП-ОЗУ. В этой таблице содержатся начальные адреса таблиц дескрипторов, обеспечивающих обращение к блокам памяти при передаче или приеме данных, значения функциональных кодов FC3-0, выдаваемых при записи и считывании, максимальное число принимаемых байтов, а также значения ряда параметров, определяющих текущее состояние интерфейса. Если интерфейс программируется для реализации одного из стандартных протоколов обмена, то таблица дополняется специфическими параметрами, используемыми при данном протоколе. В процессе работы интерфейс последовательно выбирает блоки памяти, адресуемые дескрипторами из его таблицы, обеспечивая пересылку цепочки блоков данных.
    Каждый последовательный интерфейс может непосредственно подключаться к выводам портов A, B или C для обмена данными с внешними устройствами. Интерфейсы SCC, SMC могут соединяться для совместной работы в режиме временного разделения каналов с помощью специального устройства ( БВР ), входящего в состав блока последовательного обмена БПО.
    Наиболее сложные протоколы последовательной пересылки реализуют интерфейсы SCC1-4, каждый из которых программируется путем загрузки соответствующего содержимого в регистр режима GSMR. В зависимости от этого содержимого SCC обеспечивает один из следующих протоколов обмена:

  • HDLC/SDLC - стандартный протокол синхронного обмена, который начинается байтом флага $7E = 01111110, за которым следуют два адресных байта, один управляющий байт, произвольное число информационных байтов и два байта контрольной суммы, после которых снова передаются байты флага;
  • UART - широко распространенный протокол асинхронного или синхронного обмена с заданным числом информационных бит ( от 5 до 8 ) и программируемым контролем четности; асинхронный обмен инициируется старт-битом и завершается заданным числом стоп-битов ( от 1 до 2 ), синхронный обмен инициируется и завершается подачей одного или двух синхросимволов;
  • AppleTalk - протокол, используемый компанией Apple Computers для последовательной связи компьютеров, реализованных на базе микропроцессоров семейства Motorola 68000;
  • BYSINC - протокол последовательного синхронного обмена с передачей двух синхросимволов, используемый компанией IBM.

Кроме вышеперечисленных, SCC может также реализовать протоколы Profibus, ATM, Signaling System #7, многоканальный GCI, асинхронный HDLC. Эти протоколы выполняются, если предварительно загрузить в ДП-ОЗУ специальные микропрограммы, поставляемые компанией МОТОРОЛА. При этом объем ДП-ОЗУ, предоставляемый пользователю, несколько сокращается.
    Принимаемые данные поступают на вход RXD приемника SCC, передаваемые данные - на выход TXD его передатчика. При обмене данными между SCC и модемом используются управляющие сигналы, подаваемые на выводы порта C:
RTS - выходной сигнал готовности SCC для передачи данных;
CTS - входной сигнал готовности внешнего устройство ( модема ) к приему данных;
CD - входной сигнал готовности внешнего устройства ( модема) к передаче данных, поступающих в SCC.
    Кроме перечисленных протоколов, SCC обеспечивает "прозрачный" ( транспарентный ) режим синхронного обмена, при котором производится прием или передача потока 8-битовых символов, в конце которого может следовать контрольная сумма. Синхронизация обмена осуществляется с помощью синхросимволов, передаваемых в начале и конце потока данных, или внешними сигналами, определяющими начало и конец передачи.
    Каждый SCC программируется на определенный способ кодирования данных. Возможно использование следующих способов кодирования: NRZ ( без возврата к нулю ), NRZI ( без возврата к нулю с инвертированием ), FM0, FM1 ( частотная модуляция 0 или 1 ), манчестерский и дифференциальный манчестерский коды.
    Приемник и передатчик SCC имеют буферную память, в которую заносятся поступающие данные перед тем, как они будут переписаны в ОЗУ или переданы внешнему устройству. Буферная память организована в виде очереди данных емкостью 32 ( для SCC1 ) или 16 байт ( для остальных SCC ). Таким образом снижается вероятность потери данных из-за переполнения SCC, когда новые данные поступают до того, как будут переписаны или переданы предыдущие.
    В модели MC68EN360 интерфейсы SCC1-4 могут реализовать протокол обмена для локальной сети ETHERNET. При этом CPM формирует необходимую служебную информацию и обеспечивает прием и выдачу управляющих сигналов разрешения приема RENA ( на входе CD ), запроса на передачу TENA ( на выходе RTS ), возникновения конфликтов CLSN ( на входе CTS ). В этом режиме SCC1 обеспечивает скорость обмена до 10 Мбит/с, одновременно SCC2-4 могут вести обмен со скоростью до 2 Мбит/с.
    В модели MC68MH360 реализован режим многоканального обмена QMC, при котором один SCC может обеспечить до 32 каналов пересылки данных по протоколу HDLC со скоростью обмена до 2 Мбит/с. Данный режим может использоваться также для пересылки по сети ETHERNET. Для реализации QMC проведена модификация CPM: объем ДП-ОЗУ расширен до 2,7 Кбайт, изменено содержимое памяти микропрограмм. В модифицированном CPM модели MC68MH360 интерфейсы SCC1-4 не выполняют обмен по протоколу BYSINC, а параллельный порт PIP не поддерживает протокол CENTRONICS.
    Таким образом, модификации MC68EN360, MC68MH360 отличаются от MC68360 набором реализуемых протоколов обмена.
    Управляющие интерфейсы SMC1,2 обеспечивают более простые протоколы обмена, чем SCC. Они могут программироваться на реализацию протокола UART, транспарентного ( "прозрачного" ) обмена или для передачи служебной информации при обмене по шине GCI ( IOM-2 ). Программирование осуществляется загрузкой соответствующего содержимого в регистр режима SMCMR. Приемник ( вход SMRXD ) и передатчик ( выход SMTXD ) SMC имеют буферную память для сохранения двух последовательно поступивших символов, чтобы уменьшить вероятность потери данных из-за несвоевременной записи - считывания
    Протокол UART реализуется SMC только в асинхронном режиме с программируемым числом информационных бит ( от 5 до 14 ), стоп-бит ( 1 или 2 ) и контролем четности. При транспарентном обмене SMC обеспечивает пересылку данных разрядностью от 4 до 16 бит в синхронном режиме с формированием и проверкой контрольной суммы. Запуск приемника и передатчика производится подачей сигнала на вход синхронизации SMSYNC. Обмен завершается после пересылки последнего блока в цепочке.
    При программировании на пересылку служебной информации SMC используется в режиме временного разделения, выполняя функции контроллера шины GCI. В этом случае SMC может принимать и передавать либо 8-битовые данные канала управления ( monitor ), либо 4- или 6-битовые данные канала команда/индикация ( C/I ) в кадре протокола пересылки по шине GCI, называемой также IOM-2. При этом SMC использует специфический 2-байтовый формат дескрипторов, которые непосредственно содержат принятые или передаваемые данные. В данном случае пересылка производится без обращения к внешнему ОЗУ.
    Синхронный периферийный интерфейс SPI может работать в режиме ведущего или ведомого, обеспечивая из одного сдвигового регистра одновременно прием - передачу данных, поступающих на выводы SPIMOSI ( выход ведущего - вход ведомого ), SPIMISO ( вход ведущего - выход ведомого ). Синхронизация передачи каждого бита осуществляется синхроимпульсами, которые выдаются ведущим SPI на выход SPICLK и принимаются ведомым SPI. Как и остальные интерфейсы, SPI использует дескрипторы из системной памяти ДП-ОЗУ для выборки блоков внешнего ОЗУ, в которых размещаются принимаемые и передаваемые данные.
    Каждый последовательный интерфейс может программироваться для работы в режиме кольцевой пересылки или ретрансляции, которые служат для проверки правильности функционирования
    Входящий в состав CPM блок последовательного обмена ( БПО ) обеспечивает либо непосредственный обмен данными между SCC1-4, SMC1,2 и внешними устройствами, либо обмен в режиме мультиплексирования временного разделения. Для этого в БПО имеется коммутатор последовательных каналов, который подключает входы - выходы интерфейса либо непосредственно к выводам портов A, B, C, либо к блоку временного разделения, который обеспечивает различные протоколы обмена для двух каналов. Каждый из интерфейсов SCC, SMC программируется CPU на работу в одном из этих режимов путем записи соответствующего содержимого в его регистр управления.
    Синхросигналы обмена поступают от блока, содержащего четыре генератора синхроимпульсов ( ГСИ ), которые могут переключаться внешними сигналами или тактовыми импульсами от генератора ( ГТИ ), имеющегося в модуле SIM. Частота синхроимпульсов программируется CPU. Для каждого интерфейса возможно восемь вариантов получения синхросигналов - от одного из четырех ГСИ или от внешних источников, подключаемых к выводам CLK порта A.
    Блок временного разделения ( БВР ), входящий в состав БПО, содержит два канала последовательного обмена TDMa, TDMb, которые принимают и передают кадры, состоящие из нескольких пакетов данных. Интерфейсы SCC1-4, SMC1,2 являются источниками и приемниками этих пакетов. Порядок подключения интерфейсов и формат кадров обмена для каналов TDMa,b определяется содержимым специальной памяти БВР-ОЗУ емкостью 256 байт, в которую загружаются управляющие слова, обеспечивающие маршрутизацию пересылаемых данных. Каждое управляющее слово определяет характеристики одного из пакетов в пересылаемом кадре данных. Последовательность управляющих слов, записанных в БВР-ОЗУ, задает маршрут пересылки для приемника или передатчика каналов TDMa,b. БВР-ОЗУ делится на разделы, содержимое которых задает от двух до восьми маршрутов пересылки. Возможны различные варианты использования каналов TDMa,b с фиксированными и изменямыми маршрутами приема и передачи, реализуемые при соответствующем программировании БВР-ОЗУ:
    При обмене каналы TDMa,b используют выводы портов A, B, C, на которые поступают входные данные для приемников L1RXDa,b и выходные данные от передатчиков L1TXDa,b, внешние синхроимпульсы для приема L1RCLKa,b и передачи L1TCLKa,b, входные сигналы, синхронизирующие начало приема L1RSYNCa,b или передачи L1TSYNCa,b. При реализации некоторых протоколов обмена БВР формирует выходные сигналы запроса на обмен L1RQa,b, строб-сигналы L1ST1-4, принимает сигналы подтверждения обмена L1GRa,b ( поступают на входы L1TSYNCa,b.).
    Каждый канал обеспечивает пересылку кадров, содержащих до 64 пакетов длиной до 16 байт каждый. Канал может быть запрограммирован на реализацию протоколов, используемых в таких широко распространенных сетях передачи данных, как ISDN, T1/CEPT, PCM. Форматы кадров, реализуемых при пересылке в сети ISDN по шинам типа IDL и GCI, показаны на рис.4. При использовании шины IDL пересылаемый кадр состоит из информационных ( несущих ) пакетов B1, B2 и служебных ( сигнальных ) пакетов D1, D2. При использовании шины GCI в кадр включаются также управляющий ( контрольный ) пакет M и пакет команд/индикации C/I. В процессе приема и передачи тактирование осуществляется синхроимпульсами, поступающими на вход L1RCLK, начало обмена задается сигналом L1RSYNC. В случае использования шины IDL канал выдает также сигнал запроса L1RQ перед передачей служебных пакетов D1, D2 и ожидает поступления сигнала разрешения L1GR на вход L1TSYNC.


Разнообразие каналов последовательного обмена и протоколов их обслуживания делает контроллер MC68360 эффективным средством для реализации телекоммуникационного оборудования различного назначения. В качестве примера на рис.5 приведена структура терминального адаптера сети ISDN, который использует для обмена шину IDL. Связные интефейсы SCC3, SCC4 обеспечивают передачу данных ( пакет B2 ) и служебной информации ( пакет D ). Пакеты передаются по одному из каналов БВР ( TDMa или TDMb ). Пакет B1 содержит речевые данные, поступающие от цифрового телефона. Контроль работы адаптера осуществляется с помощью персонального компьютера, который подключается к интерфейсу SCC2, реализующему обмен по стандарту RS-232. В режиме отладки адаптера компьютер может подключаться к BDM-порту контроллера. При использовании контроллера MC68EN360 возможно подключение адаптера к локальной сети Ethernet. Дополнительные схемы ( кодеки, трансиверы, драйверы ) обеспечивают необходимое преобразование сигналов для обеспечения связи адаптера с различными абонентами сети ISDN.

Рис.5. Структура терминального адаптера сети ISDN

Модуль CPM содержит 16-разрядный порт A, 18-разрядный порт B, 12-разрядный порт C, а также периферийный параллельный порт PIP, совмещенный с портом B. Эти порты могут служить для параллельного ввода- вывода данных под управлением CPU. Внешние выводы портов совмещены с выводами других блоков CPM: таймеров, последовательных интерфейсов, ГСИ, каналов IDMA. Функциональное назначение выводов программируется путем записи соответствующего содержимого в регистры управления портов. Периферийный порт PIP обеспечивает пересылку 8- или 16-разрядных данных без квитирования или с квитированием, которое выполняется с помощью строб-сигналов, поступающих на выводы порта B. При импульсном квитировании PIP может реализовать протокол интерфейса CENTRONICS, широко используемый для связи с принтерами и другими внешними устройствами. Порт C можно запрограммировать для приема внешних запросов прерывания. В этом случае входные сигналы порта являются запросами, которые поступают в контроллер прерываний CPM и могут вызвать обслуживание исключения CPU32+.
    Контроллер прерываний, входящий в состав CPM, принимает и анализирует запросы, поступающие от различных устройств CPM, и вырабатывает внутренний запрос векторного прерывания CPU. Причинами запросов могут быть внешние сигналы, поступающие на входы порта C, и сигналы от различных блоков CPM: интерфейсов SCC1-4, SMC1,2, SPI, таймеров и Т-таймеров, реализованных в ДП-ОЗУ, каналов прямого доступа IDMA, SDMA, периферийного порта PIP. Каждый из этих запросов имеет фиксированный приоритет и номер вектора прерывания Ne, в соответствии с которым вызывается требуемая подпрограмма обслуживания.

Модуль системного интерфейса SIM60

Модуль системной интеграции содержит блоки, обеспечивающие нормальное функционирование процессора и совместную работу контроллера с другими устройствами цифровой системы. Эти блоки осуществляют генерацию тактовых импульсов, контроль правильности работы системы, интерфейс с внешними устройствами, тестирование контроллера.
    В состав модуля SIM60 ( рис.1 ) входят генератор тактовых импульсов, блок конфигурации и контроля, блок внешнего интерфейса, блок генерации сигналов выборки кристалла, контроллер динамического ОЗУ, блок тестирования и отладки, реализующий протокол JTAG. Модуль связан с процессором с помощью внутренней шины. Для подключения внешней памяти и других устройств системы служат 74 внешних вывода, большинство которых имеет альтернативные функции. Назначение выводов определяется режимом работы соответствующих блоков. В состав блоков входят регистры, содержимое которых определяет функционирование модуля SIM60 и процессора. Запись и считывание содержимого этих регистров позволяют CPU32+ контролировать работу блоков.
    Генератор тактовых импульсов ( ГТИ ) обеспечивает формирование этих импульсов для различных модулей контроллера, а также вырабатывает синхросигналы CLKO1,2 для внешних устройств. В зависимости от значения сигналов, подаваемых при начальной установке контроллера, ГТИ работает либо при подаче на вход EXTAL внешних синхросигналов, либо при подключении к выводам EXTAL, XTAL кварцевого резонатора с частотой Fq = 4,2 МГц или 32 Кгц. Входящие в состав ГТИ умножители и делители частоты позволяют получить набор внутренних и внешних тактовых сигналов различной частоты.
    Контроллеры MC86360 выпускаются в двух вариантах: с напряжением питания Vп = 5 В и максимальной частотой Ft до 33 МГц, и с Vп = 3,3 В и частотой Ft до 25 МГц. Потребляемая мощность для первого варианта не превышает 2 Вт, для второго - 0,6 Вт. В режиме останова с выключением ГТИ потребление мощности снижается до 2 мВт.
    Подключение контроллера к общей системной шине производится с помощью блока внешнего интерфейса. Контроллер имеет 32-разрядные шины адреса A31-0 и данных D31-0. Передача данных сопровождается посылкой контрольного бита четности для каждого байта. Эти биты поступают на выводы PRTY3-0. Если при чтении обнаруживается нарушение четности, то выдается сигнал ошибки PERR = 0. В цикле обращения к внешней памяти контроллер выдает и принимает сигналы, управляющие процессом обмена: AS# , DS# - выходные стробсигналы адреса и данных; FC3-0 - выходные сигналы, указывающие тип выполняемого цикла; SIZ1,0 - выходные сигналы, указывающие число передаваемых байтов; R/W - выходной сигнал, определяющий вид цикла ( чтение или запись ); DSACK1,0 - входные сигналы, подтверждающие готовность внешнего устройства к обмену и указывающие разрядность используемой шины данных ( 8 или 16 бит ); RMC - выходной сигнал, формируемый при выполнении команды TAS, когда реализуется комбинированный цикл "чтение-модификация-запись", при котором запрещен захват шины; AVEC - входной сигнал подтверждения запроса автовекторного прерывания.
    Блок выборки кристаллов расширяет возможности подключения различных типов памяти и внешних устройств, обеспечивая для них отдельные сигналы выборки и режимы обмена. Он формирует сигналы разрешения выборки CS7-0 определенных разделов адресуемой памяти ( банков ), для которых могут быть реализованы заданные режимы обмена. Управление формированием сигналов CS7-0 производится с помощью соответствующих регистров блока, содержимое которых задает базовые адреса и режимы обращения для каждого из банков.
    Контроллер динамического ОЗУ позволяет непосредственно подключать к шине контроллера микросхемы динамической памяти. При этом на выводы блока выдаются необходимые сигналы выборки строк RAS7-0 и столбцов CAS7-0, которые обеспечивают адресацию и периодическую регенерацию содержимого ДОЗУ.
    Блок конфигурации и контроля ( БКК ) задает режим работы других блоков и модулей, определяет назначение ряда внешних выводов. С помощью этого блока обеспечивается определенная конфигурация цифровой системы, реализуемой на базе контроллера, выполняется ряд функций контроля правильности её работы. БКК содержит сторожевое устройство ( watchdog ),и таймер периодических прерываний и контроллер прерываний. Сторожевое устройство вызывает прерывание, если выполняемая процессором программа в течении заданного промежутка времени не произведет в специальном 8-разрядном регистре SWSR смену кода 01010101 -> 10101010 или 1010101 -> 01010101. Таймер периодических прерываний обеспечивает выполнение требуемых процедур обслуживания в заданные моменты времени. Контроллер прерываний организует обслуживание внешних запросов IRQ7-1 и внутренних запросов от различных блоков модуля SIM. Модуль SIM60 позволяет реализовать захват шины, с помощью которого обеспечивается совместное использование шины несколькими устройствами системы. Контроллер при этом отключается от шины, и управление обменом осуществляется другим устройством. Чаще всего захват шины служит для организации прямого доступа к памяти - непосредственного обмена значительными массивами информации между памятью и внешним устройством, например, накопителем на магнитных дисках. Захват производится с помощью сигналов:

  • BR - входной сигнал запроса на захват шины, при поступлении которого контроллер завершает выполнение текущего цикла обмена, останавливает выполнение команд и переводит свои выводы в отключенное состояние;
  • BG - выходной сигнал разрешения захвата, который вырабатывается контроллером после его отключения от шины;
  • BGACK - входной сигнал подтверждения захвата, который поступает от внешнего устройства, принявшего управление шиной.
    Модуль SIM60 имеет входы для приема системных сигналов останова HALT и ошибки обращения к шине BERR. Выходной сигнал сброса RESETS формируется при поступлении команды RESET ( программный сброс ), сигнал RESETH - при аппаратных сбросах, вызываемых двойной ошибкой шины или сторожевым устройством. Входные сигналы RESETS, RESETH вызывают установку начального состояния модулей контроллера.
    Блок тестирования и отладки (БТО) обеспечивает тестирование контроллера в соответствии с международным стандартом JTAG ( IEEE 1149.1 ). В БТО входит специальный последовательный порт TAP ( test access port ) для ввода тестовых комбинаций ( входных сигналов ) и вывода данных об ответной реакции ( состоянии выходов ) контроллера. При тестировании используются следующие выводы TAP:
  • TCK - вход синхросигналов, используемых в режиме тестирования;
  • TMS - вход управляющего сигнала, определяющего режим работы TAP;
  • TDI - вход для последовательного ввода тестовых команд и сигналов;
  • TDO - выход для последовательного вывода данных о состоянии всех входов и выходов контроллера;
  • TRS - вход тестового сброса, устанавливающий TAP в начальное состояние.
Тестирование выполняется методом сканирования границ ( boundary scan ), при котором все входы и выходы контроллера подключаются к отдельным разрядам общего сдвигового регистра тестовых данных, вход которого соединен с выводом TDI, выход - с выводом TDO. Таким образом обеспечивается возможность подачи на входы контроллера необходимых тестовых сигналов, которые последовательно вводятся через вход TDI, и считывания получаемых при этом выходных сигналов, которые последовательно выводятся через выход TDO. Различные процедуры тестирования осуществляются при поступлении определенных тестовых команд, которые предварительно последовательно вводятся через вывод TDI. В состав TAP входят два сдвиговых регистра: регистр команд и регистр тестовых данных. В зависимости от значения сигнала TMS производится выбор одного из этих регистров, в результате чего обеспечивается последовательный ввод ( через TDI ) и вывод ( через TDO ) тестовых команд или данных. Ввод и вывод выполняются при поступлении синхросигналов TCK. Кроме того, БТО обеспечивает вывод сигналов IFETCH, IPIPE1,0, указывающих текущее состояние ( состояние конвейера выполнения команд ), и перевод всех выводов модуля SIM60 в отключенное состояние при подаче сигнала TRIS = 1. Эти сигналы используются в процессе отладки системы.

Коммуникационный контроллер MC68302

Контроллер MC68302 ( рис.6 ) содержит центральный процессор CPU68000, коммуникационный процессор CP и блок системной интеграции SIB. Контроллер может функционировать в режиме ведущего, когда его работой управляет CPU6800, и в режиме ведомого, когда CPU68000 отключается, а CP и SIB работают под внешним управлением. Второй режим используется в случаях, когда требуется обеспечить общее управление несколькими CP.

Рис.6. Структура коммуникационного контроллера MC68302

Процессор CPU68000 аналогичен микропроцессору MC68000. Он реализует почти такой же набор команд ( табл.1 ) и способов адресации ( табл.2 ), как процессор CPU32+ ( не реализуются команды BGND, CMP2, CHK2, MOVEC, MOVES, LPSTOP, TBLS, TBLSN, TBLU, TBLUN и способы адресации с базовым смещением bd ). Процессор CPU68000 обеспечивает обслуживание указанных в табл.3 видов исключений, кроме исключения с номером Ne = 14 ( "ошибка формата" ). При обслуживании процессор загружает в стек только содержимое регистров PC и SR.
    Для связи MC68302 с другими устройствами системы используется блок системной интеграции SIB, который во многом аналогичен модулю интеграции SIM60. Блок SIB обеспечивает прием и выдачу адреса A31-1, данных D15-0, функционального кода FC2-0, сигналов управления обменом AS, R/W, UDS, LDS, RMC, DTACK, а также сигналов разрешения выборки CS3-0 для четырех блоков памяти. Кроме того SIB формирует сигнал IAC = 1 при выполнении циклов обращения к внутреннему ДП-ОЗУ или регистрам CP, SIB, и сигнал BCLR = 0, если какой-либо канал SDMA запрашивает доступ к памяти. Сигналы BR, BG, BGACK позволяют реализовать захват шины, а системные сигналы RESET, HALT, BERR обеспечивают сброс в начальное состояние, останов и прерывание при ошибке обращения к шине. При подаче сигнала FRZ = 0 останавливается работа CPU68000 и таймеров. Сигналы DISCPU, BUSW, подаваемые при установке контроллера в начальное состояние, определяют режим CPU: отключение процессора ( работа MC68302 в качестве ведомого ), работа с 8- или 16-разрядной шиной данных.
    В состав блока SIB входят генератор тактовых импульсов ( ГТИ ), контроллеры прерываний и прямого доступа, таймеры и порты A, B.
    ГТИ работает при подключении кварцевого резонатора к выходам XTAL, EXTAL. При напряжении питания Vп = 5 В максимальная тактовая частота MC68302 составляет Ft = 25 МГц, потребляемая мощность около 330 мВт; при Vп = 3,3 В максимальная частота Ft = 20 МГц и мощность около 100 мВт. Формируемые тактовые импульсы выдаются на выход CLKO контроллера.
    Два 16-разрядных таймера 1 и 2 могут работать в режиме захвата, фиксируя время поступления сигналов на входы TIN1, TIN2, или в режиме совпадения, выдавая сигналы на выходы TOUT1, TOUT2 в заданные моменты времени. Отдельный 16-разрядный сторожевой таймер ( С-таймер ) служит для формирования через заданные промежутки времени сигналов на выходе WDOG. Если этот выход подключить к выводу сброса RESET или к одному из входов прерывания IRQ7, 6 или 1, то будут осуществляться периодические прерывания или сбросы. Можно запрограммировать С-таймер для контроля поступления сигнала подтверждения обмена DTACK. В этом случае прерывание или сброс будут выполняться, если при обращении к шине сигнал DTACK = 0 не поступает в течении заданного промежутка времени.
    Контроллер независимого прямого доступа IDMA обеспечивает работу одного канала обмена, который функционирует так же, как канал IDMA в MC68360 под управлением CPU. Пересылка блока данных выполняется по внешнему запросу DREQ = 0 или инициируется программно путем установки значения бита запуска STR = 1 в регистре режима CMR. Другие биты в этом регистре задают различные варианты режима работы канала: разрядность передаваемых данных ( байт или слово ), вид передачи ( пакетная, поцикловая, с ограниченной загрузкой шины ), с формированием запроса прерывания после передачи блока и др.
    Кроме CMR контроллер IDMA содержит регистры, в которые записываются начальные адреса и функциональные коды источника и приемника данных, число байтов в передаваемом блоке ( до 64 Кбайт ). Информация о текущем состоянии контроллера IDMA может быть считана из регистра CSR. При обмене по внешнему запросу необходимые сигналы запроса DREQ, подтверждения DACK, завершения DONE поступают на выводы PA13-15 порта A.
    Порты A ( 16-разрядный ) и B ( 12-разрядный ) служат для параллельного обмена данными. Каждый порт содержит регистр данных и регистр направления передачи, с помощью которых осуществляется ввод или вывод информации, аналогично тому, как это реализуют порты в MC68360. Регистры управления портов определяют функциональное назначение выводов портов: если i-ый бит имеет значение 0, то вывод PAi или PBi является входом или выходом порта, если бит имеет значение 1, то соответствующий вывод порта A используется для передачи сигналов CP, а вывод порта B - для сигналов таймеров или подтверждения прерываний.
    В состав коммуникационного процессора CP ( рис.6 ) входят RISC-контроллер, двухпортовое ОЗУ ( ДП-ОЗУ 0 и набор устройств, реализующих различные протоколы последовательного обмена:

  • три связных последовательных интерфейса SCC1 - 3;
  • два управляющих последовательных интерфейса SMC1,2;
  • блок последовательного обмена ( БПО ), обеспечивающий возможности передачи с временным разделением данных:
  • последовательный связной порт SCP.

С помощью ДП-ОЗУ можно реализовать шесть каналов последовательного прямого доступа к памяти SDMA. Каждый из каналов обеспечивает запись в память или чтение из нее блока данных, поступающий от определенного последовательного интерфейса: SCC1-3, SMC1,2 или SCP, как это выполняется в MC68360.
    Функционирование CP во многом аналогично работе описанного выше модуля CPM в MC68360, отличаясь более ограниченным набором реализуемых режимов и протоколов обмена. Работая под управлением RISC-контроллера, CP самостоятельно принимает и передает данные, обращаясь в случае необходимости к CPU68000 c запросами на прерывание или прямой доступ к памяти. RISC-контроллер принимает поступающие от CPU68000 команды инициализации и останова отдельных устройств CP, и вырабатывает последовательность микрокоманд, ореализующих заданный протокол обмена.
    ДП-ОЗУ емкостью 1152 байта служит для хранения параметров, обеспечивающих необходимый режим функционирования различных устройств CP: дескрипторы блоков данных, принимаемых и передаваемых интерфейсами SCC1-3, SMC1,2, микропрограммы реализации дополнительных протоколов обмена. В ДП-ОЗУ могут также храниться общесистемные команды и данные, которые записываются и считываются CPU68000 или внешним ведущим устройством, если внутреннее CPU отключено. С помощью ДП-ОЗУ реализуется также работа шести каналов SDMA.
    Интерфейсы SCC1-3 по структуре и принципам функционирования аналогичны интерфейсам SCC1-4 в MC68360. При выполнении приема или передачи данных SCC1-3 обращаются к соответствующим блокам памяти, выбираемым с помощью дескрипторов, записанных в ДП-ОЗУ. Принимаемые данные поступают на входы RXD1-3, передаваемые данные - на выходы TXD1-3, синхроимпульсы ( внешние или внутренние ) поступают на выводы RCLK1-3 при приеме и TCLK1-3 при передаче. Приемник и передатчик SCC имеют буферы данных, организованные в виде очереди из трех байтов или слов. Каждый SCC может программироваться на реализацию одного из следующих протоколов обмена: HDLC/SDLC, асинхронный UART, BYSINC, асинхронный или синхронный DDCMP, синхронный V.110 и "прозрачный" ( транспарентный) обмен. Если загрузить в ДП-ОЗУ специальные микропрограммы, поставляемые компанией Motorola, то SCC может реализовать протоколы Profibus, Signaling System #7. При обмене данными между SCC1-3 и модемом используются управляющие сигналы RTS1-3 , CTS1-3, CD1-3. Синхроимпульсы, вырабатываемые внутренними генераторами SCC1-3, поступают на выводы BRG1-3 контроллера.
    Интерфейсы SCC1-3, SMC1,2 могут соединяться для совместной работы в режиме временного разделения каналов с помощью блока последовательного обмена ( БПО ). В этом режиме CP принимает и передает кадры, состоящие из нескольких пакетов данных. Источниками и приемниками этих пакетов являются интерфейсы SCC1-3, SMC1,2. Порядок подключения интерфейсов, определяющий маршрут пересылаемых данных, задается путем записи соответствующего содержимого в регистр режима SIMODE. При данном виде обмена используются следующие сигналы, поступающие на выводы БПО: L1RXD, L1TXD - входные и выходные данные; L1RCLK - внешние синхроимпульсы для приема и передачи данных; L1SY1,0 - входные сигналы, синхронизирующие начало приема или передачи; L1RQ, L1GR - сигналы запроса и подтверждения обмена. Для реализации некоторых протоколов формируются также стробсигналы SDS1,2 ( вместо L1SY0, BRG2 ) и синхросигналы GCIDCL ( вместо L1RQ ).
    CP может быть запрограммирован на реализацию протоколов, используемых в сетях передачи данных ISDN, PCM. При этом формируются кадры, реализуемые при пересылке данных по шинам типа IDL и GCI. Интерфейсы SMC1,2 служат для передачи и приема служебной информации ( сигнальных и контрольных пакетов ), сопровождающей обмен по этим шинам. Поэтому они не имеют отдельных выводов для подключения к внешним устройствам, а используются только совместно с SCC1-3 и БПО.
    Порт SCP является упрощенным вариантом периферийного интерфейса SPI, используемого в MC68360. Он работает только в режиме ведущего, выполняя синхронный прием ( вход SPRDX ) или передачу ( выход SPTXD ) байта данных с выдачей синхроимпульсов на выход SPCLK. Данные для передачи через SCP записываются CPU68000 в определенную ячейку ДП-ОЗУ, в эту же ячейку поступают принимаемые SCP данные, которые затем считываются CPU.
    Контроллер прерываний ( КПР ) обеспечивает обслуживание внешних запросов на входах IPL2-0, внутренних запросов от CP и SIB ( включая запросы от порта B при поступлении сигналов на его входы PB11-8 ). Запросы, поступающие на входы IPL2-0, обслуживаются в нормальном или специальном режиме. Выбор режима програмируется записью соответствующего содержимого в регистр управления КПР.
    В нормальном режиме запросы прерывания IRQ7-1 поступают на входы приоритетного шифратора, который выдает код запроса с наиболее высоким приоритетом Li на входы IPL2-0 модуля SIB. Если обслуживание этого запроса разрешено маской I2-0 в регистре состояния SR ( рис.3 ), то выполняется цикл подтверждения прерывания, в процессе которого CPU68000 принимает номер вектора прерывания от запросившего устройства или реализует автовекторное прерывание, если поступает сигнал AVEC = 0. Особенностью КПР в MC68302 является запрещение использования внешних запросов с уровнем приоритета Li = 4, так как этот уровень резервирован для внутренних запросов. В случае поступления такого запроса реализуется прерывание "ошибка запроса".
    В специальном режиме входы КПР используются для подачи трех запросов прерывания IRQ7,6,1, имеющих уровни приоритета Li = 7, 6, 1. В цикле подтверждения прерывания КПР формирует соответствующие сигналы подтверждения IACK7,6,1, поступающие на выводы PB0,1,2 порта B. Получив этот сигнал, запросившее устройство должно выдать на шину D7-0 номер своего вектора прерывания, принимаемый CPU68000. Если устройство не может выдать такой номер, то КПР программируется на формирование требуемого номера, как это реализуется при обслуживании внутренних запросов.
    Источниками внутренних запросов прерывания служат сигналы на входах PB11-8 порта B, интерфейсы SCC1-3, SMC1,2, SCP, канал IDMA, таймеры 1, 2 и С-таймер. Запросы формируются также, если при выполнении прямого доступа к памяти поступает сигнал ошибки шины BERR = 0 ( "ошибка обращения ПДП" ), и если на входы IPL2-0 поступает код запроса с уровнем Li = 4 ( "ошибка запроса" ). Для каждого внутреннего запроса задается номер Ne, в соответствии с которым из таблицы выбирается необходимый вектор исключения. Для всех внутренних запросов устанавливается уровень приоритета Li = 4. При одновременном поступлении нескольких внутренних запросов порядок их обслуживания определяется фиксированным приоритетным списком ( например, сигнал на входе PB11 имеет высший приоритет, "ошибка запроса" - низший ).
    В состав КПР входят регистр внутренних запросов, биты которого устанавливаются в 1 при поступлении соответствующего запроса, регистр маски, каждый бит которого запрещает или разрешает обслуживание соответствующего запроса, и регистр обслуживаемых запросов, указывающий, какие из запросов находятся в процессе обслуживания. Анализ содержимого этих регистров позволяет определить текущее состояние устройств CP, а запись содержимого в регистр маски задает перечень запросов, разрешенных для обслуживания.
    Помимо рассмотренной базовой модели MC68302 выпускаются ее модификации MC68PM302, MC68EN302, MC68LC302, которые имеют такую же общую структуру и состав основных блоков. Эти контроллеры изготовлены по КМОП -технологии и работают в режимах с пониженным энергопотреблением. Они содержат три таймера общего назначения и таймер периодических прерываний.
    MC68PM302 отличается наличием контроллера шины PCMCIA и дополнительного последовательного интерфейса UART типа 16550. Контроллер обеспечивает непосредственное подключение MC68PM302 к персональному компьютеру IBM-PC по шине PCMCIA, а интерфейс UART 1650 позволяет подключаться к компьютеру через последовательный COM-порт. Если контроллер PCMCIA не используется, то его выводы служат входами-выходами данных для дополнительных параллельных портов: 8-разрядного двунаправленного порта С и 16-разрядного порта ввода D.
    MC68EN302 имеет только два интерфейса SCC, но содержит контроллер динамического ОЗУ, а также контроллер, обеспечивающий протокол связи с локальной сетью ETHERNET, который имеет буферную памятью приемника и передатчика емкостью 128 байт. В состав данной модели введен также последовательный порт TAP для тестирования по международному стандарту JTAG ( IEEE 1149.1 ), как это реализуется в контроллере MC68360.
    MC68LC302 является наиболее простой модификацией контроллера MC68302, которая имеет только два интерфейса SCC, размещается в 100-выводном корпусе и отличается низкой стоимостью и энергопотреблением.

Коммуникационный контроллер MC68356

Контроллер MC68356 ( рис.7 ) содержит интегрированные на одном кристалле коммуникационный контроллер 68302, функционирование которого описано выше, интерфейс UART 16550, контроллер PCMCIA, 24-разрядный цифровой процессор сигналов ( ЦПС ) DSP56002, а также порт TAP для тестирования по стандарту JTAG.
    Контроллер PCMCIA обеспечивает возможности подключения карт памяти и ряда типов сетевых адаптеров, использующих весьма распространенный интерфейс PCMCIA. С помощью UART 16550 обеспечивается последовательный канал связи MC68356 с персональным компьютером. ЦПС имеет собственные параллельные и последовательные порты обмена, а также связан с контроллером 68302 внутренними последовательным ( через интерфейс SCC3 ) и параллельным ( через H - порт ) каналами. Реализован также прямой доступ ЦПС к шине CPU68000 для обращения к определенным разделам системной памяти. Коммуникационный контроллер CP в составе MC68356 работает с тактовой частотой до 25 МГц, ЦПС - с частотой до 60 МГц.


Рис.7. Структура коммуникационного контроллера MC68356

ЦПС выполняет обработку 24-разрядных данных и обеспечивает адресацию памяти объемом до 64 Кслов по 24 разряда. Он имеет многошинную гарвардскую архитектуру с разделенной памятью команд и данных, причем память данных также делится на две отдельно адресуемых части - X и Y. Каждая память содержит ОЗУ для хранения основной информации и небольшие ПЗУ для служебной информации - программ начальной загрузки, некоторых констант. Объем внутренней памяти команд составляет 5,25 Кслов, памяти данных 5,5 Кслов. Для связи процессора с периферийными устройствами, памятью команд, памятью данных X, Y используются отдельные шины.
    Процессор DSP выполняет набор из 112 команд и реализует основные способы адресации - регистровую, косвенно-регистровую ( в том числе с постинкрементом и предекрементом ), индексную, прямую, непосредственную. Набор команд обеспечивает выполнение всех основных операций: пересылки, логических операций И, ИЛИ, НЕ, Исключающее ИЛИ, сдвигов, сравнения, битовых операций, условных и безусловных переходов и вызовов подпрограммы, программных прерываний. Имеются также команда организации циклических процедур DO и команда REP, вызывающая повторение следующей операции заданное число раз. Арифметические операции - сложение, вычитание, умножение, производятся над 24- или 48-разрядными операндами, которые являются дробными числами с фиксированной точкой. Операнды хранятся в четырех 24-разрядных рабочих регистрах, результат располагается в одном из двух 56-разрядных аккумуляторов ( регистровая адресация ).
    Процессор выполняет также команды комбинированных операций: умножение - сложение с накоплением результатов в аккумуляторе ( MAC ), сложение - сдвиг, вычитание - сдвиг, которые широко применяются при цифровой обработке сигналов. Реализуется команда частичного деления ( одна итерация ), полноразрядное деление осуществляется с помощью данной команды и команды повторения REP. Операции выполняются с высокой скоростью - например, команды умножения и умножения с накоплением выполняются процессором DSP всего за два такта.
    Многошинная организация структуры ЦПС обеспечивает возможность одновременного выполнения операций процессором DSP и пересылки операндов по шинам данных. Для большинства операций допускается их комбинация с двумя пересылками - по шине X и шине Y , соответственно, в X- и Y-память или из нее. Такие операции реализуются с помощью комбинированных команд, выполнение которых занимает такое же время, как и одиночных команд. Использование комбинированных команд обеспечивает высокую производительность ЦПС, которая достигает 30 MIPS.
    Связь ЦПС с внешней памятью осуществляется через порт A. Кроме того, с помощью канала DMA можно обеспечить прямой доступ ЦПС к шине коммуникационного контроллера, а через нее - к определенным блокам системной памяти. Для связи ЦПС с этим контроллером служит также 8-разрядный H( host )-порт, реализующий параллельный обмен с квитированием. Последовательный обмен между ними выполняется через универсальный последовательный порт SCI и интерфейс SCC3. Порт SCI может программироваться на синхронный или асинхронный обмен 8-разрядными данными. Этот порт может также подключаться к выводам контроллера вместо интерфейса SCC3 для соединения ЦПС с внешними устройствами. Последовательный обмен между ЦПС и внешними устройствами производится также через синхронный интерфейс SSI, который работает аналогично интерфейсу SPI в MC68360. Интерфейс SSI программируется на пересылку 8-, 12-, 16- или 24-разрядных данных. Он может реализовать связь с кодеком или другим ЦПС и обеспечить обмен в режиме разделения времени.
    Благодаря объединению на одном кристалле коммуникационного контроллера и ЦПС модель MC68356 эффективно используется в высокоскоростных модемах, аппаратуре радиотелефонной связи, системах обработки и передачи изображения, например, в факсимильных аппаратах, и многих других применениях, где требуется высококачественная обработка аналоговых сигналов и их передача в цифровой форме. Специально для использования в модемах выпускается модификация MC68DP356 контроллера, которая содержит во внутреннем ПЗУ программы реализации современных модемных протоколов, включая новый стандарт V.34.
    Применение коммуникационных контроллеров семейства 683хх позволяет существенно сократить сроки и стоимость разработки разнообразной телекоммуникационной аппаратуры и существенно улучшить ее технико-экономические характеристики. Эти изделия недавно появились на российском рынке, но сразу вызвали большой интерес специалистов, разрабатывающих и применяющих различные средства связи. Подробное описание коммуникационных контроллеров, а также других типов микропроцессоров и микроконтроллеров выпускаемых компанией Motorola, дается в книге И.И.Шагурина " Микропроцессоры и микроконтроллеры фирмы Motorola", выпущенной издательством "Радио и связь" в мае 1998г..
    Специалистами учебно-методического центра "Моторола - Микропроцессорные системы" МИФИ совместно с КТЦ - МК разработан инструментальный набор для реализации систем на базе коммуникационных контроллеров MC68360. Набор содержит целевую плату 68360-DB на базе контроллера MC68EN360 или MC68MH360, которая имеет объем памяти до 1 Мбайт Flash и 128Кбайт SRAM, интерфейс RS-232 и BDM-порт для связи с персональным компьютером. Плата работает под контролем компьютера или в автономном режиме и может использоваться в качестве ядра целевой системы или для практического освоения технологии применения коммуникационных контроллеров. Дополнительные мезонинные модули служат для расширения памяти, интерфейса с сетями ISDN и Ethernet, реализации ряда других применений, позволяющих создавать рабочую конфигурацию телекоммуникационной системы. Интегрированная среда программирования и отладки обеспечивает средства создания прикладного программного обеспечения. Выпуск и поставка набора 68360-DK планируется во втором квартале 1999г.





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru
©1998-2023 Рынок Микроэлектроники