Семейство коммуникационных микроконтроллеров мрс860

Наиболее высокую производительность и скорость передачи данных обеспечивают коммуникационные контроллеры семейства МРС8хх, использующие в качестве централь­ного процессора RISC-процессоры с архитектурой PowerPC (табл. 5.1). Базовой моде­лью этого семейства является контроллер МРС860 (PowerQUICC), Семейство коммуникационных микроконтроллеров мрс860 - №1 - открытая онлайн библиотека

который имеет производительность53 MIPS при тактовой частоте 40 МГц и обеспечивает скорость обмена свыше 40 Мбит/с.

Контроллер семейства МРС860 состоит из нескольких основных модулей (рис. 5.3), объединенных внутренней 32-битной магистралью: высокопроизводительное встроенное ядро PowerPC, блок интеграции системы SID (System Integration Unit), коммуникационный модуль СРМ (Communication Processor Module), а в некоторых модификациях - и модуль поддержки Fast Ethernet Module (FEM). Большинство внутренних модулей периферийно­го оборудования способны работать в режиме пониженного энергопотребления.

Контроллеры могут работать при питании 3,3 В и обеспечивать совместимость по уровням с ТТЛ логическими сигналами (+5 В). Контроллеры выпускаются в 357-контакт­ном корпусе Ball Grid Array (BGA) и только контроллер МРС823 выпускается в 256-кон­тактном корпусе BGA.

Базовая модель коммуникационного RISC-контроллера МРС860 (рис. 5.4) имеет ряд модификаций. Модель MPC860EN обеспечивает возможность одновременного обслу­живания четырех каналов связи с сетью Ethernet. Ряд моделей имеет сокращенное чис­ло каналов связи: MPC860DC содержит лишь два интерфейса SCC, a MPC860DE обслу­живает только два канала связи Ethernet. Наиболее широкими возможностями обладает модель МРС860МН, которая, помимо связи с сетью Ethernet, обеспечивает обслужива­ние до 64 каналов связи типа HDLC, что позволяет реализовать широко используемый протокол цифровой сети ISDN PRI.

Контроллер МРС860Р (МРС860 Plus) - совместимая по контактам версия контрол­лера МРС860, в которой увеличен размер кэша инструкций с 4 до 16 Кбайт, размер кэша данных с 4 до 8 Кбайт. Размер двухпортовой памяти увеличен с 5 до 8 Кбайт, что позволи­ло повысить производительность и гибкость использования коммуникационного про­цессора (рис. 5.5). Также контроллер МРС860Р может работать на тактовых частотах от 80 МГц и выше. Совокупность всех его вычислительных и коммуникационных свойств делает его наиболее привлекательным для применения в сетях телекоммуникаций при построении маршрутизаторов. Объединив достоинства контроллеров MPC860SR и MPC860DT, контроллер МРС860Р поддерживает ATM-протокол, включая интерфейс UTOPIA, протокол Fast Ethernet стандарта 10/100BaseT, и QMC-протокол для реализа­ции многоканальной обработки HDLC-кадров на одном SCC-канале.

Контроллеры MPC860T/MPC860DT. МРС860Т (DT) - это один из представителей семейства контроллеров МРС860 PowerQUICC, в котором к уже имеющимся возмож­ностям МРС860 добавлена поддержка МАС - уровня (уровень доступа к среде 7-уровне-вой модели OSI) 10/100 Мбит/с Ethernet-протокола. Данный контроллер разработан для применения в сетевых приложениях и ориентирован на работу в сетях Fast Ethernet (рис. 5.6). Совокупность всех его вычислительных и коммуникационных свойств делает его наиболее привлекательным для применения в сетях телекоммуникаций при пост­роении маршрутизаторов (рис. 5.7).

Семейство коммуникационных микроконтроллеров мрс860 - №2 - открытая онлайн библиотека

Семейство коммуникационных микроконтроллеров мрс860 - №3 - открытая онлайн библиотека

Семейство коммуникационных микроконтроллеров мрс860 - №4 - открытая онлайн библиотека

Контроллер MPC860SAR - представляет собой расширенную версию базового кон­троллера МРС МРС860, внутренняя структура которого оптимизирована для работы с ATM-сетями (Asynchronous Transfer Mode) (рис. 5.8):

-удалена встроенная поддержка DSP-функций и вместо нее помещен ATM-микрокод;

-часть внутренней двухпортовой памяти отводится для хранения таблиц соединений (Connection Table); размер этих таблиц определяется пользователем;

-внутренний таймер 4 используется как АРС-таймер контроля темпа передачи ATM-ячеек;

-поддерживается до 4 ATM-каналов по линиям E1/T1/DS1 или ADSL при работе всех 4 SCC-контроллеров в последовательном режиме работы;

-если используется UTOPIA-интерфейс, то контроллер SCC4 не функционирует, так как его память параметров будет использована UTOPIA-интерфейсом; внешние выводы ЗСС4-контроллера частично используются для передачи данных UTOPIA-интерфейсом и для сигналов управления; большинство внешних сигналов UTOPIA-интерфейса мультиплексируются через контакты параллельного порта D, поэтому другие SCC-контроллеры будут ограничены в использовании своих сигналов через контакты порта D; таким образом, в режиме UTOPIA-интерфейса контроллер может поддерживать работу с 3 ATM-каналами (через последовательный режим контроллеров SCC1 - SCC3) и 1 UTOPIA-интерфейс.

-контроллер поддерживает до 32 виртуальных каналов, используя внутреннее адресное пространство двухпортовой памяти и до 64 К каналов во внешней памяти; в режиме расширенного канала число соединений, поддерживаемое ATM-контроллером, увеличивается с 32 до 65 535 каналов для приема и передачи; в этом режиме таблицы соединений RCT и ТСТ, размер которых больше 31 ячейки, размещаются во внешней памяти; при этом каналы с номерами от 0 до 31 доступны в нормальной двухпортовой памяти, а при работе с каналами, у которых номера больше 32, требуется ПДП-доступ к таблицам соединений во внешней памяти; скорость передачи в этом случае уменьшается в зависимости от выбранного соотношения числа каналов, описанных во внут­ренней памяти, и каналов, описание которых хранится во внешней памяти.

Средняя скорость передачи ATM-ячеек для контроллера MPC860SAR при системной частоте 50 МГц составляет в последовательном режиме 20 Мбит/с и 60 Мбит/с при рабо­те в режиме UTOPIA порта.

860SAR использует UTOPIA-интерфейс (рис. 5.9) как 8-разрядную двунаправленную шину данных UTPB[7-0], использующую обмен на уровне ATM-ячеек и функционирую­щую на частотах до 25 МГц. UTOPIA-контроллер также управляет всеми интерфейсны­ми сигналами. Для тактирования PHY-блока ATM-контроллер вырабатывает тактовый сигнал UTPCLK генератора UTOPIA-интерфейса. При возникновении возможности пе­редачи (появился активный входной сигнал разрешения передачи TxCav) или полу­чения ячейки (появился активный входной сигнал разрешения приема RxCav) интер­фейс выдает запрос к процессору для начала обработки операций приема или пере­дачи. Во время передачи UTOPIA-контроллер вырабатывает управляющие сигналы раз­решения передачи Семейство коммуникационных микроконтроллеров мрс860 - №5 - открытая онлайн библиотека или приема Семейство коммуникационных микроконтроллеров мрс860 - №6 - открытая онлайн библиотека и следит за сигналом начала передачи ячейки (TxSOC), а также анализирует сигнал RxSOC в течение передачи ячейки.

860SAR поддерживает работу до 4 различных PHY-устройств в режиме UTOPIA Multi-PHY. Для управления MPHY-адресацией входные сигналы запроса шины PHY PHREQ (контакты РВ16 и РВ17, где PB16-MSB) и выходные сигналы выбора шины PHY PHSEL (контакты РВ20 и РВ21, где РВ20 - MSB) должны быть запрограммированы пользовате­лем как сигналы параллельного порта ввода/вывода общего назначения.

Семейство коммуникационных микроконтроллеров мрс860 - №7 - открытая онлайн библиотека

Контроллер позволяет работать с 53- и 64-байтными ATM-ячейками, а также может работать с постоянной скоростью передачи CBR (Constant Bit Rate), неопределенной скоростью передачи UBR (Unspecified Bit Rate) и подстраиваться под текущую скорость передачи канала ABR (Available Bit Rate). При использовании CBR-соединения сеть все время должна поддерживать ресурсы и скорость, выделенные при установлении соеди­нения, а это не всегда эффективно. В случае ABR-соединения сеть может динамически изменять полосу пропускания, выделенную соединению, и тем самым адаптироваться к возникающей перегрузке. Механизм управления потоком ABR основан на ячейках уп­равления ресурсами (RM-ячейки).

Типовой размер ATM-ячейки составляет 53 байта (4 байта заголовка ячейки (header), 1 байт НЕС контрольная сумма заголовка и 48 байт данных (payload)). Контроллер 860SAR поддерживает работу с 64-байтными расширенными ячейками, где дополнительные байты используются для передачи в заголовке ячейки служебной информации между АТМ-коммутаторами. Расширенные ячейки имеют формат: 0/4/8/12 байт расширенного заголов­ка, 4 байта стандартного заголовка и 48 байт данных. Поле НЕС удалено из формата ячейки, так как контроль информации при передачи данных между коммутаторами не требуется. Контроллер может работать с расширенными ячейками только при работе с UTOPIA-интерфейсом. Во время передачи расширенная информация заголовка бе­рется из специальных полей буферного дескриптора BD и передается перед стандарт­ным заголовком и полем данных. При приеме расширенной ячейки дополнительная ин­формация из последней ячейки текущего соединения копируется в специальные поля буферного дескриптора.

Для включения контроллера MPC860SAR в работу с сетью ATM пользователь должен настроить канал SCC4 на работу в одном из двух режимов: UTOPIA-интерфейса или последовательного интерфейса. В обоих режимах ATM-контроллер поддерживает функ­ции уровня адаптации AAL (работает с протоколами AALO и AAL5), функции подуровня сборки и реассемблирования SAR (Segmentation and Reassemly), а также реализует фун­кции уровня ATM. При работе в режиме UTOPIA-интерфейса уровень ATM соединяется с подуровнем физического управления PHY напрямую через UTOPIA-интерфейс. При работе в режиме последовательного интерфейса ATM-контроллер также использует фун­кции подуровня ТС (Transmission Convergence) и подключается к подуровню физическо­го интерфейса PHY через схемы SCC-канала. Дополнительно при работе с любым ин­терфейсом контроллер выполняет функции сборки и разборки (функции подуровня SAR) пользовательских данных на пакеты (cells) ATM длиной по 48 байт.

Напомним, что в сетях ATM физический уровень PHY разбит на два подуровня: пре­образования передачи (TC-Transmission Covergence) и адаптации к среде передачи (Physical Medium Dependent, PMD). Подуровень PMD отвечает за корректную передачу и получение битового потока в соответствующей среде передачи. Подуровень ТС отвечает за адаптацию к системе передачи, т. е. за прием ячеек с уровня ATM и упаковку их в соответствующий формат для передачи по уровню PMD. На уровне ТС производится выделение ячеек из битового потока, поступающего от PMD, вставка и подавление пус­тых ячеек в потоке данных с целью обеспечения приемлемой скорости передачи, генера­ция и проверка контрольной суммы НЕС для заголовка ячейки. Вычисление НЕС-суммы в дальнейшем будет использовано для синхронизации ячеек.

Уровень адаптации AAL (ATM Adaptation Layer) обеспечивает преобразование инфор­мации с верхних уровней управления ATM-сети в фиксированные ATM-ячейки и состоит из двух подуровней: подуровень сегментации и сборки SAR (Segmentation and Reassembly) и подуровень сходимости CS (Convergence Sublayer). Уровень адаптации позволяет ус­тановить требуемое качество сервиса для передаваемых данных (классы используемо­го трафика передачи, используемый тип скорости передачи). Каждому классу сервиса соответствует свой протокол - от AALO до AAL5. Основная задача уровня SAR - это преоб­разование данных верхних уровней управления в 48-байтные ATM-ячейки и наоборот. При работе с АА1_5-кадрами ATM-контроллер выполняет обработку всех служебных полей кад­ра, формирует/удаляет заголовок ATM-ячейки, обрабатывает поле контрольной суммы и сохраняет в буферах памяти только содержимое поля данных кадра (48 байт). При работе с AALO-кадрами (обычно длиной 52 байта = 48 байт данные и 4 байта заголовка) контрол­лер выполняет прозрачный прием и передачу ячеек без их обработки прямо из памяти контроллера (это так называемый протокол пользовательских ячеек AALO, который позво­ляет ячейкам других AAL-протоколов быть переданными через данный коммуникацион­ный контроллер), не анализируя содержимого ячейки и не добавляя (заполняя) служеб­ных полей ячейки, полностью собранная пользователем ячейка берется из памяти при передаче и все поля принятой ячейки сохраняются в памяти. Подуровень CS выполняет функцию идентификации сообщений, синхронизацию с верхними уровнями управления, синхронизацию для различных классов сервиса, контроль и обработку ошибок.

При приеме ячеек контроллер вычисляет контрольную сумму НЕС заголовка приня­той ячейки и сравнивает ее с контрольной суммой, указанной в поле НЕС заголовка при­нятой ячейки. Когда начинается прием ячеек, с целью оптимизации синхронизации ячеек через НЕС-образец ATM-контроллер блокирует (locked) рассмотрение поля данных ячейки, пока не будет проведено корректное выделение ячейки из потока. Если в 6-7 соседних принятых ячейках вычисленная и принятая контрольные суммы совпадают, то считается, что контроллер правильно произвел выделение ячейки из потока битов, т. е. провел процесс синхронизации ячеек (Cell Delineation).

В любом режиме работы контроллер темпа АРС (ATM pace controller) выполняет кон­троль темпа передачи. Работа блока АРС (рис. 5.10) контролируется коммуникацион­ным процессором через таблицы соединений для передачи ТСТ и для приема RCT и АРС-таблицу, которые хранятся в двухпортовой памяти.

В таблицах соединений ТС (Connection table) хранится информация о конфигурации канала (размере его буферов приема и передачи, указателях на их расположение в па­мяти) и его текущих параметрах (указателях, флагах, временном значении переменных, текущем состоянии канала, размере последнего обработанного кадра). Внутренняя ТС-таблица, которая располагается в двухпортовой памяти, может содержать информа­цию о 32 каналах приема (RCT-таблица) и 32 каналах передачи (ТСТ-таблица). Если требуется обработка более 32 каналов, то используется внешняя ТС-таблица, которая располагается во внешней памяти. Каждая единица ТС-таблицы содержит 64 байта, а общее число единиц в ТС-таблице равно числу обслуживаемых каналов плюс один.

Семейство коммуникационных микроконтроллеров мрс860 - №8 - открытая онлайн библиотека

АРС-таблица расположена во внутренней двухпортовой памяти. Пользователь про­граммирует число ячеек таблицы в соответствии с требуемыми параметрами трафика. АРС может быть сконфигурирован для управления таблицами с двумя уровнями приори­тета. Первая таблица предназначена для обработки ячеек с высоким приоритетом, а вторая - для обработки ячеек с низким приоритетом. Вначале АРС будет планировать для передачи каналы из таблицы с приоритетом 1, назначая до NCITS каналов в указан­ный переменной APCT_PTR временной слот. Если ячейки из первой таблицы уже пере­даны, а временной слот еще не закончен (т. е. существует более чем NCITS каналов в этом временном слоте), АРС начинает обработку каналов из таблицы с приоритетом 2.

АРС-таблица содержит массив номеров каналов. При работе с таблицей используют­ся два типа указателей: APC_PTRx и APC_SPTRx (рис. 5.11.). Каждая ячейка таблицы представляет собой временной слот, через который будут переданы NCITS ATM-ячеек. Размер АРС-таблицы зависит от минимальной скорости передачи для одиночного со­единения и числа ячеек, которые передаются во временном слоте.

Каждый раз при выполнении АРС-алгоритма, который активизируется по истечении тайм-аута АРС-таймера (обычно это таймер 4 блока системной интеграции), блок АРС считывает из АРС-таблицы содержимое ячейки, адрес которой задан в APC_PTRx (см. рис. 5.11), и определяет, какой канал требуется запланировать для передачи ATM-ячеек. Затем указатель APC_PTRx перемещается на следующую ячейку таблицы. Таким образом, тайм-аут таймера (АРС timer) задает период очередного планирования пере­дач через временные слоты и определяет максимальную скорость передачи передатчи­ка, так как период АРС timer рассматривается как длина временного слота (АРС time slot). В процессе работы АРС-блок читает параметр APC_period для каждого канала из ТСТ-таблицы и, используя внутренний алгоритм, определяет следующий канал, который должен быть передан. Затем АРС помещает номер выбранного канала из ячеек ТСТ-таблицы в очередь передачи(Тгаnsmit Queue), чтобы передатчик мог начать передачу и планирует для этого канала определенное количество временных слотов в соответствии с параметром АРС расе из ячейки канала в ТСТ-таблице. Значение NCITS (Number of Channels to be transmitted In a Time Slot) в памяти параметров АРС определяет число ATM-ячеек, которые будут переданы в указанном временном слоте.

Передатчик передает одну ячейку для каждого канала, номер которого появится в очереди на передачу. Таким образом, передатчик выполняет передачу ячеек от многих каналов из одной очереди на передачу, т. е. осуществляет мультиплексирование. Пере­датчик выполняет функции AAL и SAR во внешней памяти для выбранного канала и пе­редает ячейку в физический PHY-интерфейс. PHY-интерфейс выполняет функции уров­ней transmission convergence (ТС) и physical media dependent (PMD).

Семейство коммуникационных микроконтроллеров мрс860 - №9 - открытая онлайн библиотека

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

Пользователь может производить настройку параметров АРС-таблицы под пара­метры требуемого трафика.

Например, если АРС-таймер (таймер 4) запрограммирован для выработки запроса каждые 42,4 мс (размер временного слота равен 42,4 мс) и блок АРС запрограммирован для выдачи до 2 (NCITS) каналов за один запрос на передачу, передатчик будет брать в среднем по 2 номера каналов из очереди для каждого временного слота. Таким образом, АРС будет планировать передачу ячеек со скоростью ((2 х 53 байта х 8 бит)/42,4 мс)[бит/ с], или 20 Мбит/с. При этом PHY-интерфейс будет выполнять адаптацию ячеек (вставку idle cell) в случае, если реальная скорость передачи ячеек будет меньше, чем скорость передачи по PHY-каналу.

Максимальная скорость передачи для выбранного канала достигается, когда он зап­ланирован для передачи в каждой ячейке АРС-таблицы (т. е., когда параметр АРС расе равен единице). Минимальная скорость передачи для выбранного канала достигается, когда он запланирован для передачи только в одной ячейке АРС-таблицы (т. е., когда параметр АРС расе равен APC_table_size-1).

Максимальная скорость передачи max_rate для одиночного соединения равна [Р/ NCITS], где Р - планируемая скорость передачи ячеек (обычно берется равной скорости передачи PHY-блока). Минимальная скорость передачи min_rate для одиночного соеди­нения равна [Р/((М-1) х NCITS)], где М - минимальный допустимый размер АРС-таблицы для данной конфигурации. Таким образом, размер АРС-таблицы равен [1 + max_rate/ (min_rate x NCITS)] и определяется минимальной скоростью передачи и числом ячеек, передаваемых во временном слоте. Например, если требуется средняя скорость пере­дачи данных 51,84 Мбит/с и минимальная скорость передачи равна 32 Кбит/с, то размер АРС-таблицы равен ((51,84 Мбит/32 Кбит)+1), или 1621 ячейки.

Скорость передачи конкретного ATM-канала определяется параметром АРС расе в ячейке ТСТ-таблицы, которая соответствует выбранному каналу. Значение АРС расе рассчитывается как [P/(NCISTx требуемая_скорость_передачи_канала)]. Например, при скорости передачи ATM-канала 51,84 Мбит/с и NCITS = 4, если требуется скорость пере­дачи канала 100 Кбит/с, то значение АРС_расе = 51,84 Мбит/с/(4 х 100 Кбит/с) = 129,6.

Таким образом, блок АРС поддерживает заданные параметры трафика для каждого канала и распределяет суммарный трафик среди требуемых каналов. Он может обеспе­чивать CBR- и UBR-сервисы для трафика. При контроле АРС-периода для CBR-трафика пользователь должен установить новые значения до передачи контроллеру команды ак­тивации (Activation), и CBR-передача ведется только из высокоприоритетной таблицы передачи. Таким образом, значение APC_period для CBR-трафика на период работы со­единения является константой. При контроле UBR-трафика период АРС также является константой, но передача будет вестись из низкоприоритетной АРС-таблицы.

При контроле ABR-трафика период АРС (APC_period) может быть динамически изме­нен пользователем в ходе работы для регулирования требуемой скорости передачи дан­ных. В этом режиме APC_period динамически изменяется ATM-контроллерами при получе­нии ячейки RM (Resource Management) и определяет требуемую ACR (Available Cell Rate) скорость передачи ячеек. Механизм RM-ячеек работает следующим образом. После пере­дачи N ячеек пользовательской информации исходный контроллер вставляет в поток RM-ячейку, в которой указывает свою текущую скорость передачи. ATM-коммутатор принима­ет эту ячейку и анализирует состояние каналов связи. При необходимости он посылает обратно ATM-контроллеру RM-ячейку, в которой указывает, что надо сохранить (увеличить или уменьшить) скорость передачи. Число N обычно находится в пределах от 2 до 256 ячеек и определяется на этапе установки соединения.

Контроллер MPC860SAR может быть использован для реализации различных сете­вых устройств: маршрутизаторов, АТМ-контроллеров, ADSL-модемов, АТМ-коммутато-ров и других устройств (рис.5.12).

Контроллеры МРС821 и МРС823. В состав семейства МРС860 входят также моде­ли МРС821, МРС823, которые по основным характеристикам аналогичны МРС860, от­личаясь от нее объемом кэш-памяти и возможностями интерфейса. Модель МРС821 имеет кэши команд и данных емкостью по 4 Кбайт и модуль коммуникационного про­цессора СРМ с двумя SCC-контроллерами. Модель МРС823 содержит кэш команд ем­костью 2 Кбайт, кэш данных емкостью 1 Кбайт и модуль СРМ с двумя SCC-контролле­рами. Кроме того, в составе МРС821, МРС823 имеется контроллер жидкокристалли­ческого дисплея, а в МРС823 еще и графический контроллер, что делает эти модели особенно привлекательными для применения в портативных системах и устройствах, встраиваемых в аппаратуру различного назначения и поддерживающих режим пони­женного энергопотребления.

В контроллере МРС823 встроенный коммуникационный RICS-процессор использует­ся и для коммуникационных задач, и для решения задач обработки изображений. DSP-составляющая имеет дополнительные встроенные функции для JPEG-сжатия и декомп­рессии изображений. При системной частоте в 75 МГц коммуникационный процессор может обеспечивать производительность 75 MIPS параллельно с работой основного про­цессора. Дополнительно МРС823 имеет 7 каналов ввода/вывода: два SCC-контроллера, два SMC-канала, по одному порту SPI и I 2C и один канал USB (Universal Serial Bus). Мак­симальная скорость передачи данных - 35 Мбит/с.

Контроллер МРС855Т. Это одна из последних разработок фирмы «Motorola» в семей­стве PowerQUICC, которая ориентирована на сетевое применение. Контроллер выпуска­ется в версиях 50,66 и 80 МГц. МРС855Т-это удешевленная версия контроллера МРС860 PowerQUICC, которая имеет всего один контроллер 10/100 Fast Ethernet и один SCC-контроллер, который поддерживает протоколы ATM, HDLC, ISDN, многоканальный HDLC и ЮВазеТ Ethernet, а также два SMC-контроллера, один SPI-порт и один PC-порт. Гибкость архитектуры делает контроллер МРС855Т идеальным для реализации маршру-

Семейство коммуникационных микроконтроллеров мрс860 - №10 - открытая онлайн библиотека

ти­заторов, устройств ADSL и модемов, а также интеллектуальных коммутаторов.

Контроллер МРС8260. PowerQUICC II открывает следующее поколение коммуника­ционных микропроцессоров, спроектированное специально для сетевых задач и теле­коммуникаций.

МРС8260 PowerQUICC II - это дальнейшее развитие (следующая версия) коммуникаци­онного процессора МРС860 PowerQUICC, обеспечивающее высокую производительность и гибкость во всех областях применения. Как и МРС860, МРС8260 состоит из двух основных компонентов: встроенного ядра PowerPC и коммуникационного процессора Communications Processor Module (CPM). Двухпроцессорная архитектура позволяет снизить потребление энергии по сравнению с однопроцессорной структурой, так как основной процессор осво­божден от части периферийных задач, которые выполняет коммуникационный модуль.

Семейство коммуникационных микроконтроллеров мрс860 - №11 - открытая онлайн библиотека

Коммуникационный модуль одновременно поддерживает три быстрых SCC-канала FCC (Fast Serial Communications Controllers), два многоканальных контроллера

МСС (Multichannel Controllers), четыре обыкновенных SCC-канала (Serial Communications Controllers), два контроллера управления SMC (Serial Management Controllers), один пос­ледовательный порт SPI (Serial Peripheral Interface) и один интерфейс PC.

Встроенное процессорное ядро представляет собой высокопроизводительный ЕСбОЗе(ТМ) микропроцессор, работающий на частотах 100-200 МГц, обеспечивающий производительность 140,0 MIPS на частоте 100 МГц и 280,0 MIPS на частоте 200 МГц. Поддерживается режим работы с выключенным процессорным ядром, при этом можно в полном объеме использовать все периферийные модули контроллера при работе с внешним более мощным процессором. Возможен режим работы с внешним кэшем, типа Motorola L2 cache MPC2605.

Контроллер поддерживает режим работы с пониженным энергопотреблением. При частоте 133 МГц микросхема потребляет 2,5 Вт. Микросхема выпускается в 480-контакт­ном корпусе TBGA.

В состав входят кэш данных и кэш инструкций (по 16 Кбайт), блок управления памя­тью. Из состава процессора исключен блок обработки данных с плавающей запятой. Внутри контроллера используются две шины: 64-битная шина ядра PowerPC и 32-битная шина PCI или локальная шина (рис. 5.13).

Блок системной интеграции System Integration Unit (SiU) содержит контроллер памя­ти, контроллер шины PCI с частотой работы до 66 МГц, аппаратный монитор ошибок шины и программный сторожевой таймер. Для внешней отладки системы в состав вклю­чена поддержка IEEE 1149.1 JTAG-порта.

Высокопроизводительный коммуникационный контроллер СРМ может работать на частотах до 133 или 166 МГц. Таким образом, процессорное ядро PowerPC и СРМ могут работать с разными частотами. Контроллер может работать с максимальной скоростью в 710 Мбит/с при частоте 133 МГц. Объем двухпортовой памяти расширен до 24 Кбайт. Скоростные каналы FCC позволяют реализовать работу с 45 Мбит/с HDLC-протоколом, 10/100 Мбит/с Ethernet-протоколом, 155 Мбит/с ATM SAR-протоколом. Многоканальные контроллеры МСС могут каждый поддерживать 128 полнодуплексных 64 Кбит/с линий HDLC. Контроллеры SCC поддерживают все протоколы, которые были реализованы в контроллере МРС860. В результате с помощью контроллера МРС8260 можно реализо­вать поддержку:

- восьми TDM-интерфейсов (Т1/Е1) или двух TDM-портов, которые работают с ТЗ/ЕЗ;

- трех МП-интерфейсов;

- двух master/slave портов UTOPIA (уровень 2), которые оба поддерживают интерфейс multi-PHY; один порт может работать с 8/16-битными данными.

5.2. ОРГАНИЗАЦИЯ КОММУНИКАЦИОННЫХ ПРОЦЕССОРНЫХ МОДУЛЕЙ В КМК

5.2.1. СТРУКТУРА КОММУНИКАЦИОННОГО ПРОЦЕССОРНОГО МОДУЛЯ

Коммуникационный процессорный модуль СРМ (Communication Processor Module) автоматически, с минимальным вмешательством CPU центрального процессора выпол­няет прием и передачу потоков информации в соответствии с выбранным коммуникаци­онным протоколом. При приеме СРМ автономно выполняет следующие действия:

1) поиск и выделение кадра данных во входном потоке информации или выделение из потока данных определенного временного канала с помощью TDM временного мультиплексора;

2)обработку принятого кадра в соответствии с правилами выбранного сетевого протокола: проверку контрольных сумм, сравнение адресов, выделение и анализ формата служебных символов, отбрасывает служебную информацию;

3)полученные данные без дополнительной служебной информации помещаются в буфер FIFO;

4)RISC-процессор управляет передачей этих данных по каналам SDMA в ячейки памяти по адресу, определенному в буферном дескрипторе (BD) данного канала ввода/вывода;

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

Далее центральный процессор выполняет обработку данных в соответствии с про­граммами пользователя.

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

Таким образом, СРМ выполняет функции канального уровня управления семиуров­невой модели OSI, освобождая центральный процессор для обработки протоколов бо­лее высокого уровня. Следует отметить, что СРМ не реализует функции физического уровня модели OSI, он только подготавливает данные, кодирует их для передачи опре­деленным способом (например, манчестерское кодирование, частотная модуляция, NRZ-кодирование и другие виды кодирования) и передает на внешние выводы контроллера. Для преобразования цифровых сигналов в электрические на выходах контроллера необ­ходимы дополнительные микросхемы, которые в большом ассортименте также выпуска­ются фирмой «Motorola».

СРМ состоит из следующих основных частей (рис. 5.14):

-RISC-процессора, управляющего работой каналов ввода/вывода и обрабатывающего информацию в соответствии с заданными коммуникационными протоколами;

-регистра команд RISC-процессора;

-2, 3 или 4 независимых полнодуплексных последовательных коммуникационных каналов SCC (Serial Communication Controllers), выполняющих основные функции переда­чи данных;

-двух каналов управления обменом SMC (Serial Management Controllers), которые ис­пользуются как вспомогательные каналы для передачи служебной информации при работе с протоколами ISDN или как самостоятельные каналы передачи данных;

-6-18 каналов прямого доступа в память (Serial Direct Memory Access Channels, SDMA Channels) для обмена информацией между буферами каналов ввода/вывода и внеш­ней памятью;

-генератора частоты обмена (Baud Rate Generator, BRG), который формирует тактовые частоты для работы последовательных каналов связи; источником частоты для генератора может быть или внутренняя системная тактовая частота, или тактовые сигналы на внешних контактах;

-последовательного SPI-интерфейса для подключения периферийных устройств по последовательному каналу связи;

-двухпортовой памяти (dual-port RAM), используемой для хранения информации о буферных дескрипторах, параметров каналов и параметров выбранного протокола, а также загружаемого микрокода;

-физического интерфейса SI (Serial Channels Physical Interface), обеспечивающего вы­дачу информации каналов ввода/вывода на внешние контакты в двух режимах: муль­типлексированном (TSA) и немультиплексированном (NMSI);

-I 2С-канала ввода/вывода (Interprocessor Integrated Controller).

Дополнительно в состав СРМ в МРС860 включены новые модули, работой которых руководит RISC-контроллер (см. рис. 5.14):

-параллельные порты ввода/вывода;

-параллельный интерфейсный порт (Parallel Interface Port, PIP), через который реализу­ется стандартный протокол обмена типа Centronics

-контроллер прерываний СРМ;

-4 таймера общего назначения;

-2 канала прямого доступа в память DМА;

-в состав RISC-процессора включен дополнительный внутренний таймер, с помощью которого можно реализовать работу 16 шестнадцатиразрядных таймеров, которые обес­печивают периодическое прерывание центрального процессора для обработки определенных подпрограмм обслуживания прерываний;

-DSP-составляющая к RISC-контроллеру.

Семейство коммуникационных микроконтроллеров мрс860 - №12 - открытая онлайн библиотека

RlSK-контроллер. СРМ функционирует под управлением собственного ядра, выпол­ненного в виде RISC-процессора. Основная задача RISC-ядра - обеспечение функцио­нирования каналов SCC, SMC, SPI без постоянного вмешательства основного централь­ного процессора CPU. Основные способы взаимодействия центрального процессора и RISC-ядра:

-пользователь из своей программы может передать СРМ команду управления кана­лом связи (табл. 5.3-5.4);

-СРМ после выполнения приема/передачи кадра или в случае возникновения ошибки при передаче извещает CPU прерыванием;

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

Работа RISC-процессора прозрачна для пользователя. RISC-ядро выполняет задачи нижних уровней управления и контроля над DMA-передачами, освобождая центральный процессор для решения задач более высоких уровней управления. Все передачи между RISC-ядром и модулем коммуникационного процессора производятся по внутренней периферийной шине и не оказывают влияния на работу центрального процессора. RISC-процессор управляет работой коммуникационных каналов ввода/вывода, реализуя выб­ранные пользователем протоколы, координирует работу каналов SDMA при передаче информации между FIFO SCC и памятью, следит за правильностью заполнения буфер­ных дескрипторов и их слов состояния. При реализации коммуникационных протоколов в зависимости от выбранного типа протокола RISC-контроллер осуществляет вставку служебной информации (преамбула, флаги, символы синхронизации) при передаче и ее удаление при приеме, контролирует правильность появления и корректность формата служебных символов и символов синхронизации, формирует при передаче и проверяет при приеме контрольную сумму целого кадра или частей пакета.

В контроллере МРС860 RISC-ядро имеет полностью 32-разрядную архитектуру, на­строено и оптимизировано специально для решения коммуникационных задач. Благода­ря введению DSP-составляющей RISC-процессор поддерживает встроенные команды МАС-арифметики (операции умножения и сложения над 16-битными операндами и 40-битным результатом), обработки контрольной суммы и вычисления специальных режи­мов адресации и выполняет МАС-команду за один период тактовой частоты. Особеннос­ти архитектуры RISC-ядра, использование 4-Кбитных кэш-памяти команд и данных по­зволили увеличить производительность ядра до 53 MIPS при 40 МГц.

Работу RISC-контроллера определяет микропрограмма, расположенная во внутрен­нем масочном ПЗУ микрокода. Пользователь не может изменить содержимое ПЗУ мик­рокода. Но предусмотрена возможность загрузки микрокода новых протоколов (напри­мер, SS#7, Profibus), для этого во внутренней двухпортовой памяти выделена специаль­ная область для загрузки микрокода.

CPU может передавать команды управления работой каналов для RISC-контроллера через регистр команд CR (рис. 5.15). Обычно эти команды используются, если необходи­мо провести инициализацию канала или изменить его режим работы. CPU записывает код выполняемой команды в биты OPCODE, определяет канал, для которого должна быть выполнена команда в битах CHNUM (табл. 5.2), и устанавливает флаг FLG. Выпол­нив команду, RISC-процессор сбрасывает флаг FLG, сообщая центральному процессо­ру, что он готов выполнить новую команду. Бит программного сброса RST = 1, установ­ленный CPU, сбрасывает в исходное состояние регистры и параметры всех коммуника­ционных каналов приблизительно за 60 периодов тактовой частоты.

Семейство коммуникационных микроконтроллеров мрс860 - №13 - открытая онлайн библиотека

Семейство коммуникационных микроконтроллеров мрс860 - №14 - открытая онлайн библиотека

Команды управления каналом связи рассмотрены в табл. 5.3 - 5.4. В состав СРМ контроллера МРС860 введены дополнительные каналы и модули, и поэтому набор ко­манд управления расширен для обеспечения более гибкого управления каналами связи (см. табл. 5.4).

Типовой набор команд, которые чаще всего применяются для управления работой SCC-каналов в контроллере МРС860, включает 7 команд: STOP TRANSMIT, GRACEFUL STOP TRANSMIT, RESTART TRANSMIT, INIT TX PARAMETERS, ENTER HUNT MODE, CLOSE RX BD и INIT RX PARAMETERS.

Семейство коммуникационных микроконтроллеров мрс860 - №15 - открытая онлайн библиотека

Семейство коммуникационных микроконтроллеров мрс860 - №16 - открытая онлайн библиотека

В контроллере МРС860 пользователь может настраивать режим работы RISC-ядра при программировании регистра конфигурации RISC-контроллера RCCR (рис. 5.16).

Семейство коммуникационных микроконтроллеров мрс860 - №17 - открытая онлайн библиотека

В СРМ RISC-контроллер содержит таблицу 16 программных таймеров, при помощи которых пользователь может управлять частями своего программного обеспечения. Па­раметры настройки всех 16 таймеров сведены в общую таблицу. Период сканирования таблицы задается внутренним таймером RISC-контроллера. Величина периода опроса зависит от системной частоты и значений в битах TIMER регистра конфигурации RCCR. Значение периода опроса вычисляется так: (системная частота)/[(Т1МЕР+1)х1024]. Бит TIME = 1 разрешает работу внутреннего таймера и сканирования таблицы таймеров. Если бит TIME = 0, то сканирование таблицы таймеров (RISC timer table) не производится.

Бит SCD определяет режим работы RISC-контроллера. Если этот бит равен 0, то ус­танавливается нормальный режим работы, а если -1, то альтернативный режим конфи­гурации планировщика.

В контроллере МРС860 RISC-контроллер дополнительно управляет работой IDMA-каналов, и в регистр конфигурации введены дополнительные биты. Биты DR1M, DROM и DRQP (табл. 5.5) программируются только при работе с IDMA-каналами. Внешние сиг­налы-запросы на контактах DREQ1 и DREQ0 используются при активации канала IDMA1 и канала IDMA0. Биты DR1М и DROM определяют, как будут восприниматься эти сигналы. Если данные биты равны 0, то соответствующий запрос регистрируется по перепаду сиг­нала, а если бит равен 1, то - по уровню сигнала.

Если установлен бит EIE = 1, то появление сигнала DREQO-запроса вызовет преры­вание работы RISC-контроллера. Этот бит используется пользователем только во время процесса загрузки внешнего микрокода нового протокола в двухпортовую память.

Микрокод в МРС860 может быть загружен в двухпортовую память в трех режимах, выбор режима производится при программировании бита ERAM (табл. 5.6).

Семейство коммуникационных микроконтроллеров мрс860 - №18 - открытая онлайн библиотека

Семейство коммуникационных микроконтроллеров мрс860 - №19 - открытая онлайн библиотека

SDMA-каналы. По два независимых SDMA-канала выделено для обслуживания при­ема и передачи данных в каждом канале ввода/вывода. Общее число SDMA-каналов равно удвоенному числу внешних каналов ввода/вывода контроллера. В контроллере МРС860 для обслуживания всех каналов ввода/вывода отведено два физических SDMA-канала, на базе которых реализовано 16 виртуальных SDMA-каналов. Восемь SDMA-каналов обслуживают четыре SCC-контроллера и восемь SDMA-каналов работают с ин­терфейсом SPI, портом I 2C и двумя SMC-контроллерами.

Данные через SDMA-каналы могут передаваться для хранения как во внешнюю па­мять, так и во внутреннюю двухпортовую память. Доступ к внешней памяти требует пред­варительного арбитража шины U BUS, доступ к двухпортовой памяти не требует ар­битража шины микроконтроллера.

Управление работой SDMA-каналов осуществляется микропрограммой, выполняе­мой RISC-процессором. Пользователь не может контролировать или изменять процесс управления SDMA-каналами. При необходимости доступа к внешней памяти RISC-кон­троллер формирует внутренний запрос к арбитру шины микроконтроллера, получает подтверждение и становится владельцем шины на один стандартный цикл обмена по шине. Во время стандартного цикла обмена могут выставляться внешние сигналы Семейство коммуникационных микроконтроллеров мрс860 - №20 - открытая онлайн библиотека .Если шиной владел внешний арбитр, то SDMA-канал выставляет сигнал Семейство коммуникационных микроконтроллеров мрс860 - №21 - открытая онлайн библиотека с требо­ванием освободить шину. Стандартный цикл шины предусматривает передачу до 32 бит данных, после чего необходимо освободить шину, даже если больше нет других устройств, требующих шину для передачи. Такой способ обслуживания арбитража шины гарантиру­ет пропорциональное гарантированное время доступа SCC-каналов и обеспечивает по­стоянное время задержки при обработке полученных по сети данных и не переполнение их FIFO. Если размер шины установлен меньшим, чем размер передаваемых данных (например, шина размером 16 бит, а размер данных - 32 бита), то SDMA-контроллер становится владельцем шины на два цикла передачи и освобождает шину только по завершении всей передачи, даже если во время передачи пришел более приоритетный запрос на владение шиной от другого модуля.

В МРС860 пользователь может сам назначить приоритеты доступа к шине всех уст­ройств, использующих внешнюю шину для передач (IDMA-контроллер, SDMA-каналы, DRAM-контроллер или внешний master), с помощью программирования регистра конфи­гурации SDCR (SDMA), изображенного на рис. 5.17. Все SDMA-каналы имеют общий ре­гистр конфигурации SDCR. Изменение параметров в этом регистре рекомендуется про­изводить при выключенном коммуникационном контроллере.

В контроллере МРС860 кэш инструкций (l-кэш), кэш данных (D-кэш), блок системной интеграции SIU и SDMA-каналы могут требовать арбитража внутренней шины данных, таким образом, пользователю требуется установить относительные приоритеты запросов на арбитраж между указанными источниками.

Семейство коммуникационных микроконтроллеров мрс860 - №22 - открытая онлайн библиотека

Реально пользователь имеет право установить только относительный приоритет SDMA-каналов, а приоритеты остальных модулей строго фиксированы.

Все SDMA-каналы имеют одно значение ID приоритета, которое устанавливается пользователем в регистре SDCR и которое позволяет SDMA-каналам соперничать за право передачи по внутренней шине данных с другими источниками внутренних и вне­шних запросов на арбитраж. Биты RAID устанавливают уровень приоритета запросов SDMA-каналов по доступу к внутренней шине среди других внутренних источников зап­росов (табл. 5.7). Арбитраж запросов от внутренних источников выполняет RISC-контрол­лер. Обычно устанавливается значение 5 (код 01).

Биты FRZ определяют реакцию SDMA-каналов на выставление сигналов контроля:

00 - SDMA-канал игнорирует сигнал FREEZE, 01 - SDMA-канал сбрасывает сигнал Семейство коммуникационных микроконтроллеров мрс860 - №23 - открытая онлайн библиотека и останавливает (замораживает) передачу, пока выставлен сигнал FREEZE или пока не произойдет сброс системы.

Каналы SDMA имеют один собственный регистр статуса SDSR (рис. 5.18), в котором отмечается состояние каналов SDMA в текущий момент времени или регистрируется событие, произошедшее в SDMA-канале. Сброс бита события в регистре статуса SDSR производится записью в разряд, соответствующий выбранному событию, кода «1».

Если возникла ошибка при передаче данных SDMA-канала, то генерируется преры­вание и устанавливается бит SBER в SDSR-регистре. Адрес, при обращении по которо­му возникла ошибка, будет сохранен в регистре SDAR. Пользователь может сравнивать этот адрес с адресами в ячейках внутренних указателей на обрабатываемые RX- и ТХ-данные (internal data pointer) в протокол-независимой области памяти параметров SCC-канала, чтобы определить, при каком цикле обращения и в каком месте была обнаруже­на ошибка.

Биты DSP1 и DSP2 служат для регистрации события прерывания при работе с табли­цами DSP функций DSP1 и DSP2.

Бит RINT используется только во время промышленного тестирования контроллерам пользователю не рекомендуется его изменять.

Регистр маски SDMA-канала (SDMR) имеет такой же формат расположения битов, как и регистр статуса SDSR, и служит для маскирования запросов на прерывание при возникновении различных событий в канале прямого доступа к памяти. Если некоторый бит в регистре маски равен 1, то выбранное прерывание разрешено.

Семейство коммуникационных микроконтроллеров мрс860 - №24 - открытая онлайн библиотека

Семейство коммуникационных микроконтроллеров мрс860 - №25 - открытая онлайн библиотека

Двухпортовая память (DUAL-PORT RAM). Обмен информацией между централь­ным процессором (CPU) и коммуникационным процессором (СРМ) может осуществ­ляться через двухпортовую память. Двухпортовая память включена между внутренней шиной центрального процессора и периферийной шиной RISC-процессора. Доступ к двухпортовой памяти может производить или RISC-контроллер через один порт или один из владельцев внутренней шины через другой порт. В контроллере МРС860 вла­дельцем внутренней шины может быть одно из двух устройств: или центральный про­цессор, или каналы SDMA. При доступе любого из владельцев внутренней шины ис­точников к двухпортовой памяти обращение выполняется, как к стандартной памяти с использованием линии адреса и данных внутренней шины контроллера. При этом цикл доступа к памяти составляет два периода тактовой частоты (два такта шины), а доступ от RISC-контроллера требует одного такта шины. При одновременном досту­пе к двухпортовой памяти центрального процессора и RISC-контроллера доступ RISC-контроллера задерживается на один такт.

Приоритеты обработки запросов по доступу к двухпортовой памяти от блоков комму­никационного процессора распределены следующим образом:

1)выполнение команды RESET или при системном сбросе (наивысший приоритет);

2)обращение от RISC-ядра;

3)обработка ошибки при передаче в режиме SDMA;

4)обращение от DRAM-контроллера;

5)выполнение команды от CPU, включая команды управления DSP-составляющей;

6)эмуляция IDMA-канала (если приоритет ЮМА-запроса выше, чем у запроса от SCC-канала); настраивается при программировании регистра конфигурации RISC-контроллера в МРС860;

7)прием данных от SCC1-канала;

8)передача данных по SCC1-каналу;

9)прием данных от ЗСС2-канала;

10)передача данных по 5СС2-каналу,

11)эмуляция IDMA-канала (если приоритет ЮМА-запроса ниже, чем у запроса от SCC-канала); настраивается при программировании регистра конфигурации RISC-контроллера в МРС860;

12)прием данных от ЗССЗ-канала;

13)передача данных по ЗССЗ-каналу;

14)прием данных от ЗСС4-канала;

15)передача данных по 5СС4-каналу;

16)прием данных от 5МС1-канала;

17)передача данных по SMC1-каналу;

18)прием данных от 5МС2-канала;

19)передача данных по 5МС2-каналу;

20)прием данных от канала SPI;

21)передача данных по каналу SPI;

22)прием данных от I 2С-канала;

23)передача данных по I 2С -каналу;

24)прием данных от PIP-порта;

25)передача данных через PI Р-порт;

26)обработка запросов к таблице RISC-таймеров;

27)эмуляция IDMA-канала (если IDMA-запрос имеет самый низший приоритет); настраивается при программировании регистра конфигурации RISC-контроллера.

Двухпортовая память состоит из двух основных частей: памяти параметров каналов (parameter RAM) и памяти системных переменных (system RAM). Двухпортовая память решает следующие основные задачи.

-Хранение параметров каналов передачи данных в разделе параметров (parameter RAM)

.-Хранение буферных дескрипторов (BD), которые определяют, куда будут передавать­ся принимаемые данные и откуда будут читаться данные для передачи. Обычно дес­крипторы хранятся в разделе памяти параметров (parameter RAM), но для их хране­ния в МРС860 могут быть отведены незанятые области системного ОЗУ (system RAM).Число буферных дескрипторов в контроллере МРС860 ограничено лишь максималь­ным числом BD (512 BD).

-Хранение данных, полученных из последовательных каналов. Обычно эти данные по каналам SDMA пересылаются во внешнюю память.

-Хранение загружаемого RAM микрокода нового коммуникационного протокола. Микро-код обычно загружается в разделы системного ОЗУ.

-Системное ОЗУ, как правило, хранит загружаемый микрокод новых протоколов и внут­ренние системные параметры, но может использоваться для хранения буферных дес­крипторов и данных пользователя.

-Временное хранение данных пользователей.

В контроллере МРС860 двухпортовая память занимает 8 Кбайт внутренней памяти (табл. 5.8), но реально заняты только 5 Кбайт, которые разбиты на две части: 4096 байт системного ОЗУ и 1024 байта памяти параметров (parameter RAM). Стартовый адрес (DPRAM_BASE) двухпортовой памяти во внутренней памяти контроллера рассчитывает­ся как IMMR+Ox2000, где содержимое регистра IMMR задает стартовый адрес внутрен­ней памяти в 4-Гбайтном адресном пространстве контроллера. Размер внутренней па­мяти-16 Кбайт.

Семейство коммуникационных микроконтроллеров мрс860 - №26 - открытая онлайн библиотека

Семейство коммуникационных микроконтроллеров мрс860 - №27 - открытая онлайн библиотека

В МРС860 существуют три режима загрузки микрокода:

1)микрокод загружается в первые 512 байт адресного пространства памяти и в последние 256 байт блока 5 системного ОЗУ; таким образом, размер микрокода составляет 768 байт;

2)микрокод загружается в первые два блока по 512 байт и в последние 256 байт
блока 5 системного ОЗУ; размер микрокода составляет 1280 байт;

3)микрокод загружается в первые четыре блока по 512 байт и в 512 байт блока 5 системного ОЗУ; размер микрокода равен 2560 байт.

Распределение внутренней памяти в контроллерах МС68302, МС68360, МРС860 опи­сано в табл. 5.9.

RISC-контроллер записывает 16/8-битный контрольный номер, хранящийся в его ПЗУ микрокода, в специальную ячейку REV_NUM в области parameter RAM двухпортовой памяти (MISC-параметры). В контроллере МРС860 данная ячейка имеет адрес IMMR+0Хзсв0 и расположена на первой странице памяти параметров.

Семейство коммуникационных микроконтроллеров мрс860 - №28 - открытая онлайн библиотека

Семейство коммуникационных микроконтроллеров мрс860 - №29 - открытая онлайн библиотека

Синхронизация. BRG-генератор. В СРМ для каждого канала, работающего в режи­ме NMSI, источниками тактовых сигналов может быть или один из четырех BRG-генера-торов, или один из восьми входов внешнего генератора, В СРМ нет жесткого закрепле­ния генераторов BRG за конкретным каналом, и один генератор может обслуживать сра­зу несколько SCC- или SMC-каналов. Такой способ реализации системы синхронизации повышает эффективность использования внешних выводов микросхемы. Во-первых, для любого SCC и SMC можно выбирать любой источник синхронизации с любого контакта микросхемы. Например, можно для всех каналов назначить внешние источники тактовых сигналов, поступающие только через контакты порта В, при этом входы источников так­товых сигналов на контактах порта А можно использовать для других целей. Во-вторых, можно назначить для нескольких каналов один источник тактирования, или сделать так, чтобы у одного канала для приема и для передачи использовалась бы одна частота тактирования, а это тоже освобождает внешние контакты незанятых генераторов и ис­точников внешнего тактирования для других целей.

В СРМ каждый канал ввода/вывода имеет свой специальный регистр синхронизации SICR (рис. 5.19), который определяет, работает ли этот канал в режиме мультиплексиро­вания, и с какой частотой он синхронизируется.

Биты SC1, SC2, SC3, SC4 при значении, равном 1, определяют, что выбранный канал подключен к временному мультиплексору TSA, и его внешние выводы NMSI-сигналов можно использовать для других целей. Если эти биты равны 0, то соответствующий ка­нал работает в немультиплексируемом режиме NMSI.

Биты R4CS, R3CS, R2CS, R1CS, T4CS, T3CS, T2CS, T1CS определяют источник син­хронизации приемной и передающей частей соответствующего канала (табл. 5.10). Эти биты игнорируются, если канал работает в мультиплексном режиме и подключен к TSA. Код, записанный в биты R4CS, R3CS, R2CS, R1CS, определяет источник тактирования выбранного канала при приеме данных, а код, записанный в биты T4CS, T3CS, T2CS, T1CS, определяет источник тактирования соответствующего канала при передаче. Для каждого канала выбранная частота поступает или на тактовый вход приемника RCLKx, или на тактовый вход передатчика TCLKx, или на оба входа одновременно.

Биты GR1 - GR4 определяют, поддерживает ли данный канал механизм подтвержде­ний (grant) при работе с протоколами ISDN, как определено в битах GM1 - GM4 настрой­ками этого канала («0» - не поддерживают, «1» - поддерживают).

Семейство коммуникационных микроконтроллеров мрс860 - №30 - открытая онлайн библиотека

Семейство коммуникационных микроконтроллеров мрс860 - №31 - открытая онлайн библиотека

Существует два ограничения по тактированию каналов в СРМ:

1)только 8 источников тактирования из 12 могут быть выбраны для каждого канала; этот источник задается при программировании регистра синхронизации SICR;

2)SMC-каналы, когда они работают в немультиплексированном режиме, должны иметь одинаковую частоту для тактирования приемника и передатчика; источник тактовых сигналов задается при программировании регистра конфигурации физического интерфейca SIMODE.

Все генераторы тактовой частоты BRG в СРМ полностью независимы. Настройка ге­нератора на определенный режим работы осуществляется при программировании его регистра конфигурации BRGC в СРМ (рис. 5.20). Каждый генератор имеет свой соб­ственный регистр настройки и одинаковую структуру (рис. 5.21).

Биты ЕХТСх определяют источник тактовых сигналов для BRG-генератора. Это мо­жет быть или выход внутреннего генератора микросхемы (биты ЕХТС1 ,ЕХТС0 = 00), или сигнал с внешнего входа микросхемы CLK2 (биты ЕХТС1.0 = 01) или входа CLK6 (биты ЕХТС1.0 = 10). Сигнал от внутреннего генератора обычно равен системной частоте (пос­ле предварительного деления ее внутренним генератором, такое деление системной частоты выполняется для систем с низким энергопотреблением, где не нужны высокие скорости передачи).

Далее полученная частота может предварительно делиться на 16 в СРМ (если бит DIV16 = 1), или на 1 (если бит DIV 16 равен 0). Пользователь дополнительно может управ­лять делением частоты генератора с помощью программирования предварительного делителя Prescale. СРМ имеет 12-разрядный счетчик предварительного деления. Коэф­фициент деления частоты программируется битами CD11 – CD0 и может иметь значения от 1 до 4096, где «1» соответствует нулям во всех разрядах GDi.

Семейство коммуникационных микроконтроллеров мрс860 - №32 - открытая онлайн библиотека

Семейство коммуникационных микроконтроллеров мрс860 - №33 - открытая онлайн библиотека

На выходе счетчика предварительного деления Prescale получается рабочая частота, которая поступает на внешний контакт и на внутренние цепи для тактирования каналов SCC и SMC. Но суще­ствуют ограничения на максимальную частоту тактирования каналов: для СРМ макси­мальная частота тактирования равна 1/2 частоты внутреннего генератора микросхемы (SyncCLK/2). Например, при системной частоте 25 МГц максимальная частота на выходе BRGO может быть только 12,5 МГц.

Бит EN = 1 обеспечивает включение соответствующего генератора в работу. При зна­чении EN - 0 генератор выключен и его внешние контакты могут быть использованы для других целей как разряды параллельных портов ввода/вывода. Выключение генератора из работы обычно применяется в режимах пониженного энергопотребления.

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

Семейство коммуникационных микроконтроллеров мрс860 - №34 - открытая онлайн библиотека

Для асинхронных передач используется увеличение частоты тактирования в 8, 16, 32 раза для реализации процедуры oversampling. При oversampling производится опрос трех значений бита на одном битовом интервале и за верное значение берется значение по максимальному совпадению из трех. Увеличение частоты в 16 раз обычно используется при работе с UART-протоколом. Таким образом, максимальная частота генератора, используемая для тактирования UART-контроллера, равна 1/2xSyncCLK/16, что составляет для СРМ 781,3 Кбит/с при частоте 25 МГц:

Семейство коммуникационных микроконтроллеров мрс860 - №35 - открытая онлайн библиотека

Управление встроенными RISC-таймерами. RISC-контроллер может управлять ра­ботой 16 внутренних таймеров. Функционирование этих таймеров не зависит от тайме­ров общего назначения и генераторов BRG, а определяется тактовыми сигналами от внутреннего таймера в составе RISC-контроллера и программируется в регистре RCCR. Наиболее эффективно применение этих таймеров в системах, где необходимо освобо­дить центральный процессор от функции контроля и управления таймерами общего на­значения. При использовании 16 внутренних таймеров все функции управления их рабо­той возложены на RISC-контроллер.

В двухпортовой памяти в разделе parameter RAM на странице 2 выделена специаль­ная область, в которой хранятся параметры настройки таймеров.

Параметры, определяющие работу каждого из 16 таймеров, сгруппированы в табли­цу (RISC TIMER TABLE), которая располагается в двухпортовой памяти. Переменная TM_BASE (в ячейке с адресом TimerBase+00) задает местоположение таблицы тайме­ров во внутренней двухпортовой памяти. В этой ячейке указывается смещение таблицы таймеров относительно начального адреса двухпортовой памяти во внутренней памяти контроллера. Каждая ячейка таблицы таймеров предназначена для управления одним таймером и имеет размер 4 байта. Первые два байта хранят значение, которое было записано при инициализации таблицы таймеров во время выполнения RISC-контролле­ром команды SET TIMER. При работе таймеров начальные значения будут уменьшаться до 0. В следующих двух байтах хранится текущее значение таймера.

Таким образом, если пользователь работает со всеми 16 таймерами, то размер таблицы составит 64 байта. RISC-контроллер будет обрабатывать таймер с номером N при просмотре таблицы, если в регистре R_TMV (в ячейке с адресом TimerBase+06) бит с соответствующим номером установлен в «1».

Все операции с таблицей таймеров выполняются по тактам внутреннего таймера. Частота работы внутреннего таймера настраивается при программировании битов TIME и TIMER в регистре конфигурации RISC-процессора. Обработка таблицы таймеров име­ет самый низкий приоритет среди всех операций RISC-контроллера, поэтому если RISC-контроллер занят выполнением других задач, то обработка таймеров в текущем такте внутреннего таймера может не производиться, поскольку процессор просто не успевает выполнить эти действия. При своей работе пользователь может, прочитав содержимое ячейки TM_PTR (с адресом TimerBase+02), всегда узнать адрес ячейки таймера из таб­лицы, которая будет обрабатываться следующей.

Для обнаружения данной ситуации в памяти параметров введена переменная ТМ_СМТ (в ячейке с адресом TimerBase+0C). RISC-процессор увеличивает эту переменную при каждом обращении к таблице таймеров для обработки, если, конечно, разрешена рабо­та внутреннего таймера. Таким образом, пользователь в своем программном обеспече­нии всегда может сравнить, сколько тактов от внутреннего таймера получил RISC-кон­троллер и сколько из них он обработал, обращаясь к таблице таймеров.

Управление работой таймера. Для управления работой таймера центральный про­цессор может передать RISC-контроллеру команду SET TIMER. По этой команде произ­водится включение, выключение и настройка параметров одного из 16 таймеров в табли­це. Код этой команды 0x0851 записывается в регистр команд RISC-процессора. Но пе­ред тем как переслать эту команду, пользователь должен записать определенные значе­ния в ячейку TM_CMD (с адресом TimerBase+08) (рис. 5.22). Переменная TM_CMD - это регистр команд таймеров, в котором определяются параметры настройки таймеров, вы­полняемые при обработке команды SET TIMER.

Поле TIMER NUMBER определяет номер таймера от 0 до 15, для которого произво­дится настройка параметров. Поле TIMER PERIOD определяет 16-битное

Семейство коммуникационных микроконтроллеров мрс860 - №36 - открытая онлайн библиотека

значение таймаута для выбранного таймера. Максимальное значение 65 536 соответствует коду 0x0000 в этом поле.

Если пользователь желает работать с определенным таймером, он должен перед подачей команды SET TIMER установить бит V : = 1 в ячейке TD_CMD. Если же таймер не будет использован, то бит V : = 0. Значения бита V (Valid) при выполнении команды SET TIMER будут переписаны в соответствующий бит ячейки R_TMV, анализируемой RISC-контроллером при обслуживании таблицы таймеров.

Таймеры могут работать в трех режимах:

1)выработки одиночного импульса (One-Shot);

2)перезапуска (Restart);

3)генерации импульсов PWM (Pulse Width Modulation).

Если необходимо, чтобы таймер работал в режиме ONE-SHOT, надо установить в регистре TM_CMD бит R := 0 (RESTART). Если бит R := 1, то таймер будет работать в режиме автоматического рестарта. При выполнении команды SET TIMER значение бита R будет перезаписано для таймера номер N в соответствующий бит ячейки R_TMR (с адресом TimerBase+04). Ячейка RJTMR - это регистр режима таймеров, она недо­ступна для записи пользователю и анализируется RISC-контроллером при обработке таблицы таймеров.

При работе таймера в PWM-режиме (бит PWM = 1) каждая пара таймеров может быть настроена для генерации PWM-импульсов через контакты порта В. Можно орга­низовать до восьми дополнительных генераторов тактовых сигналов для внешних уст­ройств. Первый таймер в паре (четный номер) используется для контроля длительнос­ти уровня «1» в импульсе. При настройке параметров этого таймера в регистре TM_CMD биты PWM := 1 и V := 1, а в поле TIMER PERIOD загружается период уровня «1» в импульсе. Второй таймер в паре (нечетный номер) используется для контроля дли­тельности периода тактовых сигналов и работает в режиме автоматической перезаг­рузки, когда истечет время цикла. При его настройке значения битов R:= 1 и V:= 1, а в поле TIMER PERIOD загружается значение периода импульсов.

Алгоритм обработки таблицы таймеров. RISC-контроллер сканирует таблицу тай­меров один раз за период внутреннего таймера и проверяет для каждого таймера в реги­стре R_TMV, включен этот таймер или нет. Для каждого работающего таймера RISC-контроллер уменьшает его счетчик в ячейке таблицы таймеров и контролирует, закон­чился ли интервал тайм-аута для этого таймера. Если тайм-аут не закончился, то RISC-процессор переходит к обработке следующего таймера в таблице. Если тайм-аут закон­чен, то в регистре событий таблицы таймеров RTER (рис, 5.23) устанавливается бит, который соответствует номеру обрабатываемого таймера, далее проверяется бит этого таймера в регистре режима R_TMR. Если этот бит равен 1, то производится рестарт (сброс в начальное состояние) счетчика данного таймера. Если данный бит равен 0, т. е. включен режим ONE-SHOT, то в регистре готовности таймера R_TMV сбрасывается бит работоспособности таймера. Таким образом, в режиме RESTART производится перезаг­рузка таймера и его дальнейшая нормальная работа, а в режиме ONE-SHOT по оконча­нии

интервала счета таймер останавливается. Семейство коммуникационных микроконтроллеров мрс860 - №37 - открытая онлайн библиотека

Когда RISC-контроллер заканчивает обработку всех таймеров в таблице, он увеличи­вает значение в ячейке ТМ_СМТ и останавливает работу с таблицей до следующего пе­риода внутреннего таймера.

Если была получена команда SET TIMER, то RISC-контроллер только загружает но­вые параметры для одного из 16 таймеров из ячейки TM_CMD во внутренние рабочие регистры параметров таймеров, но не производит сканирование и обработку таблицы.