СЕМЕЙСТВО КОММУНИКАЦИОННЫХ МИКРОКОНТРОЛЛЕРОВ МРС860
Наиболее высокую производительность и скорость передачи данных обеспечивают коммуникационные контроллеры семейства МРС8хх, использующие в качестве центрального процессора RISC-процессоры с архитектурой PowerPC (табл. 5.1). Базовой моделью этого семейства является контроллер МРС860 (PowerQUICC),
который имеет производительность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).
Контроллер 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-контроллер вырабатывает управляющие сигналы разрешения передачи или приема
и следит за сигналом начала передачи ячейки (TxSOC), а также анализирует сигнал RxSOC в течение передачи ячейки.
860SAR поддерживает работу до 4 различных PHY-устройств в режиме UTOPIA Multi-PHY. Для управления MPHY-адресацией входные сигналы запроса шины PHY PHREQ (контакты РВ16 и РВ17, где PB16-MSB) и выходные сигналы выбора шины PHY PHSEL (контакты РВ20 и РВ21, где РВ20 - MSB) должны быть запрограммированы пользователем как сигналы параллельного порта ввода/вывода общего назначения.
Контроллер позволяет работать с 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 байта, а общее число единиц в ТС-таблице равно числу обслуживаемых каналов плюс один.
АРС-таблица расположена во внутренней двухпортовой памяти. Пользователь программирует число ячеек таблицы в соответствии с требуемыми параметрами трафика. АРС может быть сконфигурирован для управления таблицами с двумя уровнями приоритета. Первая таблица предназначена для обработки ячеек с высоким приоритетом, а вторая - для обработки ячеек с низким приоритетом. Вначале АРС будет планировать для передачи каналы из таблицы с приоритетом 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).
Если для выбранного канала для передачи больше не подготовлено буферов, то процесс передачи прекращается и ячейки контроллером не передаются. В этом случае 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Т идеальным для реализации маршру-
тизаторов, устройств ADSL и модемов, а также интеллектуальных коммутаторов.
Контроллер МРС8260. PowerQUICC II открывает следующее поколение коммуникационных микропроцессоров, спроектированное специально для сетевых задач и телекоммуникаций.
МРС8260 PowerQUICC II - это дальнейшее развитие (следующая версия) коммуникационного процессора МРС860 PowerQUICC, обеспечивающее высокую производительность и гибкость во всех областях применения. Как и МРС860, МРС8260 состоит из двух основных компонентов: встроенного ядра PowerPC и коммуникационного процессора Communications Processor Module (CPM). Двухпроцессорная архитектура позволяет снизить потребление энергии по сравнению с однопроцессорной структурой, так как основной процессор освобожден от части периферийных задач, которые выполняет коммуникационный модуль.
![]() |
Коммуникационный модуль одновременно поддерживает три быстрых 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-контроллеру.
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 периодов тактовой частоты.
Команды управления каналом связи рассмотрены в табл. 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 пользователь может настраивать режим работы RISC-ядра при программировании регистра конфигурации RISC-контроллера RCCR (рис. 5.16).
В СРМ 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).
SDMA-каналы. По два независимых SDMA-канала выделено для обслуживания приема и передачи данных в каждом канале ввода/вывода. Общее число SDMA-каналов равно удвоенному числу внешних каналов ввода/вывода контроллера. В контроллере МРС860 для обслуживания всех каналов ввода/вывода отведено два физических SDMA-канала, на базе которых реализовано 16 виртуальных SDMA-каналов. Восемь SDMA-каналов обслуживают четыре SCC-контроллера и восемь SDMA-каналов работают с интерфейсом SPI, портом I 2C и двумя SMC-контроллерами.
Данные через SDMA-каналы могут передаваться для хранения как во внешнюю память, так и во внутреннюю двухпортовую память. Доступ к внешней памяти требует предварительного арбитража шины U BUS, доступ к двухпортовой памяти не требует арбитража шины микроконтроллера.
Управление работой SDMA-каналов осуществляется микропрограммой, выполняемой RISC-процессором. Пользователь не может контролировать или изменять процесс управления SDMA-каналами. При необходимости доступа к внешней памяти RISC-контроллер формирует внутренний запрос к арбитру шины микроконтроллера, получает подтверждение и становится владельцем шины на один стандартный цикл обмена по шине. Во время стандартного цикла обмена могут выставляться внешние сигналы .Если шиной владел внешний арбитр, то SDMA-канал выставляет сигнал
с требованием освободить шину. Стандартный цикл шины предусматривает передачу до 32 бит данных, после чего необходимо освободить шину, даже если больше нет других устройств, требующих шину для передачи. Такой способ обслуживания арбитража шины гарантирует пропорциональное гарантированное время доступа SCC-каналов и обеспечивает постоянное время задержки при обработке полученных по сети данных и не переполнение их FIFO. Если размер шины установлен меньшим, чем размер передаваемых данных (например, шина размером 16 бит, а размер данных - 32 бита), то SDMA-контроллер становится владельцем шины на два цикла передачи и освобождает шину только по завершении всей передачи, даже если во время передачи пришел более приоритетный запрос на владение шиной от другого модуля.
В МРС860 пользователь может сам назначить приоритеты доступа к шине всех устройств, использующих внешнюю шину для передач (IDMA-контроллер, SDMA-каналы, DRAM-контроллер или внешний master), с помощью программирования регистра конфигурации SDCR (SDMA), изображенного на рис. 5.17. Все SDMA-каналы имеют общий регистр конфигурации SDCR. Изменение параметров в этом регистре рекомендуется производить при выключенном коммуникационном контроллере.
В контроллере МРС860 кэш инструкций (l-кэш), кэш данных (D-кэш), блок системной интеграции SIU и SDMA-каналы могут требовать арбитража внутренней шины данных, таким образом, пользователю требуется установить относительные приоритеты запросов на арбитраж между указанными источниками.
Реально пользователь имеет право установить только относительный приоритет SDMA-каналов, а приоритеты остальных модулей строго фиксированы.
Все SDMA-каналы имеют одно значение ID приоритета, которое устанавливается пользователем в регистре SDCR и которое позволяет SDMA-каналам соперничать за право передачи по внутренней шине данных с другими источниками внутренних и внешних запросов на арбитраж. Биты RAID устанавливают уровень приоритета запросов SDMA-каналов по доступу к внутренней шине среди других внутренних источников запросов (табл. 5.7). Арбитраж запросов от внутренних источников выполняет RISC-контроллер. Обычно устанавливается значение 5 (код 01).
Биты FRZ определяют реакцию SDMA-каналов на выставление сигналов контроля:
00 - SDMA-канал игнорирует сигнал FREEZE, 01 - SDMA-канал сбрасывает сигнал и останавливает (замораживает) передачу, пока выставлен сигнал 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, то выбранное прерывание разрешено.
Двухпортовая память (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 существуют три режима загрузки микрокода:
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 и расположена на первой странице памяти параметров.
Синхронизация. 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» - поддерживают).
Существует два ограничения по тактированию каналов в СРМ:
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.
На выходе счетчика предварительного деления Prescale получается рабочая частота, которая поступает на внешний контакт и на внутренние цепи для тактирования каналов SCC и SMC. Но существуют ограничения на максимальную частоту тактирования каналов: для СРМ максимальная частота тактирования равна 1/2 частоты внутреннего генератора микросхемы (SyncCLK/2). Например, при системной частоте 25 МГц максимальная частота на выходе BRGO может быть только 12,5 МГц.
Бит EN = 1 обеспечивает включение соответствующего генератора в работу. При значении EN - 0 генератор выключен и его внешние контакты могут быть использованы для других целей как разряды параллельных портов ввода/вывода. Выключение генератора из работы обычно применяется в режимах пониженного энергопотребления.
Пример расчета максимальной скорости работы каналов. Для синхронных передач, когда период тактовой частоты равен битовому интервалу передачи данных:
Для асинхронных передач используется увеличение частоты тактирования в 8, 16, 32 раза для реализации процедуры oversampling. При oversampling производится опрос трех значений бита на одном битовом интервале и за верное значение берется значение по максимальному совпадению из трех. Увеличение частоты в 16 раз обычно используется при работе с UART-протоколом. Таким образом, максимальная частота генератора, используемая для тактирования UART-контроллера, равна 1/2xSyncCLK/16, что составляет для СРМ 781,3 Кбит/с при частоте 25 МГц:
Управление встроенными 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-битное
значение таймаута для выбранного таймера. Максимальное значение 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 по окончании
интервала счета таймер останавливается.
Когда RISC-контроллер заканчивает обработку всех таймеров в таблице, он увеличивает значение в ячейке ТМ_СМТ и останавливает работу с таблицей до следующего периода внутреннего таймера.
Если была получена команда SET TIMER, то RISC-контроллер только загружает новые параметры для одного из 16 таймеров из ячейки TM_CMD во внутренние рабочие регистры параметров таймеров, но не производит сканирование и обработку таблицы.