Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс с 524 по 631.doc
Скачиваний:
6
Добавлен:
16.04.2019
Размер:
2.54 Mб
Скачать

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

5.2.4. КОНТРОЛЛЕРЫ ДОПОЛНИТЕЛЬНЫХ КОММУНИКАЦИОННЫХ

КАНАЛОВ

Контроллер 12С. Контроллер 12С введен в состав СРМ-модуля коммуникационного контроллера МРС860 и позволяет ему обмениваться данными с другими 12С-устройствами, такими как микроконтроллеры, EEPROM, устройства реального времени, аналого-циф­ровые преобразователи.

12С - это синхронный, двунаправленный интерфейс (линия данных SDA и линия так­товых сигналов SCL), который может работать в режимах master-slave и multimaster. Вы­бор режима выполняется в регистре команд I2COM (рис. 5.56). Если бит M/S = 0, то контроллер работает как slave-устройство, если M/S = 1, то - как master.

О 1 2 3 4 5 67

I STR I Зарезервировано. Инициализируется пользователем записью «О». I M/S

Рис. 5.56. Формат регистра команд I2COM

Оба вывода SCL и SDA являются двунаправленными и подсоединяются через резис­тор к положительному напряжению. Таким образом, поскольку контроллер имеет выво­ды типа «открытый исток» (open drain), то они могут быть объединены в единую шину для работы в конфигурации multimaster. Когда на 12С-шине нет передачи, то линии SCL и SDA находятся в пассивном «1» состоянии.

Настройка режимов работы !2С-контроллера производится в регистре режима I2MOD (рис. 5.57).

— | REVD

GCD

FLT

PDIV

| EN

Рис. 5.57. Формат регистра режима I2MOD

Включение контроллера в работу производится установкой бита EN := 1. В выключен­ном режиме (бит EN = 0) контроллер работает в режиме пониженного энергопотребления.

Тактирование приемника и передатчика PC-контроллера выполняется одной часто­той. Если устройство работает в режиме slave, то тактовые сигналы поступают от внеш­него источника по линии SCL. Источником тактового сигнала для master-устройства яв­ляется собственный внутренний генератор BRG. Тактовый сигнал BRGCLK для работы BRG-генератора поступает от системного синтезатора частоты и может быть предвари­тельно изменен. Биты PDIV определяют коэффициент предварительного деления вход­ной частоты (табл. 5.36).

BRG-генератор 1гС-контроллера может также изменять входную частоту генератора. Коэффициент деления частоты задается пользователем в режиме I2BRG и рассчитыва­ется как 2х (I2BRG+3). На выходе BRG-генератора тактовый сигнал представляет собой меандр. При системной частоте 25 МГц максимальная скорость передачи данных может достигать 520 КГц (BRGCLK/(4x2x(0+3)= BRGCLK/48).

Таблица 5.36

Коэффициент внутреннего увеличения частоты

Биты PDIV

Коэффициент деления частоты

Биты PDIV

Коэффициент деления частоты

00 01

BRGCLK/32 BRGCLK/16

10 11

BRGCLK/8 BRGCLK/4

528

Организация коммуникационных процессорных модулей в кмк

Поскольку PC-интерфейс используется для связи устройств на одной плате, в одном приборе, то на линии тактового сигнала может оказывать влияние посторонний шум. Ус­тановка бита FLT := 1 позволяет пропустить тактовый сигнал через цифровой фильтр, чтобы убрать возможные наводки из-за шумов.

Бит REVD задает порядок передачи битов при обмене символами. Если бит REVD = О, то первым передается SLB. Если REVD = 1, то первым передается MSB, этот режим явля­ется рабочим для контроллеров фирмы «Motorola».

Бит GCD в регистре I2MOD определяет, как должен вести себя приемник при получе­нии общего запроса от master-станции. Если бит GCD = 1, то никакие действия не произ­водятся. Если бит GCD = 0, то приемник посылает подтверждение на адрес общего вызо­ва (general call address).

В контроллере МРС860 параметры !2С-контроллера хранятся на 1-й странице памя­ти параметров (parameter RAM) со смещением + 0x1 С80 от начала двухпортовой памя­ти. Структура и состав памяти параметров !2С-контроллера совпадают со структурой таблицы протокол-независимых параметров (см. табл. 5.30). Отличие заключается толь­ко в том, что отсутствуют две последние ячейки таблицы со смещениями I2C base+28 и I2C base+2C.

Данные для PC-канала хранятся в буферах памяти, которые организованы в таблицу TxBD (передачи) и RxBD (приема). Принцип организации таблицы аналогичен таблицам буферов для SCC-каналов ввода/вывода. Стартовый адрес таблиц в памяти контролле­ра хранится в ячейках RBASE и TBASE памяти параметров PC-контроллера. Пользова­тель может офаничить число буферов в таблице, установив бит W := 1 в слове состоя­ния последнего необходимого буферного дескриптора. При подготовке обмена данными центральный процессор готовит данные для передачи в буферах памяти, заполняет со­ответствующие буферные дескрипторы и устанавливает в их слове состояния бит готов­ности к передаче R := 1, а также заранее подготавливает буферы для приема данных.

Режимы работы FC-контроллера. В режиме master !2С-контроллер управляет обме­ном данными со slave-устройствами. Для этого он передает slave-устройству специаль­ное сообщение, которое определяет режим работы (чтение или запись). Если это опера­ция чтения, то после передачи первого сообщения направление передачи по линии SDA меняется, и передавать будет slave-устройство.

Для начала обмена сообщениями master-устройство должно подготовить данные для передачи в буферах TxBD, установив бит готовности R := 1 в слове состояния бу­ферного дескриптора, а также подготовить буферы приема RxBD. Затем центральный процессор должен установить бит STR := 1 в регистре команд I2COM. Данные будут передаваться после того, как они будут загружены в буфер FIFO передатчика по SDMA-каналам из памяти, и после того, как !2С-шина будет свободна. Размер буфера FIFO приемника и передатчика установлен равным двум символам. При передаче MSB пе­редается первым.

При начале передачи PC-контроллер выставляет start-условия (адрес slave-устрой­ства) на линии SDA и тактовые импульсы , число которых соответствует числу передава­емых битов, на линию SCL. Для каждого переданного бита на линию SDA контроллер производит его повторное чтение (контроль), чтобы обнаружить состояние коллизии (collision) с другим master-устройством. Поскольку выводы контроллера объединены по схеме «монтажное ИЛИ» в единую шину, то коллизии обнаруживаются, если была выставлена «1», а обнаружен «О». При этом передача прерывается и канал переводится в режим slave и генерируется маскируемое прерывание к центральному процессору.

После передачи каждого байта данных устройство master контролирует индикацию подтверждения от slave-станции. Если подтверждение не пришло, передача прерывает­ся и условие «остановки» генерируется master-станцией. Регистрация stop- и start-усло­вий всегда приводит к закрытию текущего буфера приемника.

529

КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ

Для передачи данных slave-устройству master-станция подготавливает в буфере п+1 байт данных, где первый байт содержит адрес slave-устройства и бит, определяющий режим чтение/запись. Остальные п байт - это данные, которые передаются slave-уст­ройству. Если R/W = 1, то будет производиться чтение с устройства slave.

Если !2С-контроллер работает в режиме slave, то его адрес задается пользователем в регистре I2ADD (рис. 5.58) и имеет 7 разрядов, таким образом, в сети может быть до 128 slave-устройств. Если slave-устройство распознало свой адрес, то данные принимаются во внутренние буферы RxBD, на них передаются подтверждения, и так продолжается, пока по линии SDA не придет от master-станции новое start/stop-условие. Если совпаде­ния адреса не произошло, slave-устройство ожидает следующего start-условия. Slave-контроллер подтверждает прием каждого байта, пока не обнаружит ошибку переполне­ния overrun своего буфера FIFO.

Если данные для передачи от master-устройства занимают несколько буферов TxBD, то они будут передаваться байт за байтом, пока не будет достигнут последний буфер (бит L = 1 в его слове состояния), при этом бит STR = 1 повторно для каждого нового байта не устанавливается. Бит STR будет автоматически сбрасываться после передачи первого бита байта данных.

Если контроллер работает в режиме slave, то для начала обмена данными он ожида­ет команды и тактового сигнала SCL от master-устройства. Все принятые от master-стан­ции сообщения тут же посылаются обратно, таким образом, обеспечивается подтверж­дение их приема.

Перед началом обмена центральный процессор slave-станции должен подготовить буферы данных для передачи (TxBD) и для приема данных (RxBD), затем установить бит STR := 1 в регистре команд I2COM. Установка бита STR в slave-устройстве не начинает передачу, а только подготавливает схемы контроллера и данные для передачи. Переда­ча начнется только после прихода команды от master-станции.

Если при начале передачи start-условия slave-станция в первом передаваемом байте распознала свой адрес (биты с 7-го по 1-й), то проверяется бит 0 - это бит команды R/W. Если R/W = 0, то происходит прием данных от master-станции, и эти данные принимают­ся в RxBD-буферы, пока не будут получены новые start- или stop-условия. Если R/W = 1, то данные из буфера FIFO передатчика slave-станции будут переданы master-станции. Если данные готовы, то они будут переданы по следующему импульсу тактового сигнала после передачи подтверждения на предыдущее сообщение. Если данные не готовы, то передача прерывается и генерируется маскируемое прерывание ТхЕ, которое уведом­ляет центральный процессор, что надо подготовить данные для передачи.

После передачи каждого байта передатчик проверяет бит подтверждения от master-станции. Если подтверждение не получено, то передача прерывается и генерируется прерывание центрального процессора. Прерывание также может генерироваться после передачи полного буфера, если возникла ошибка или произошло незаполнение underrun буфера FIFO передатчика. Если произошла ошибка незаполнения (underrun), то пере­датчик slave-станции будет передавать «1» биты, пока не получит stop-условие от master-станции.

Пользователь может управлять работой !2С-контроллера, передавая RISC-контрол­леру команды INIT TX PARAMETERS, CLOSE RX, INIT RX PARAMETERS, INIT TX and RX PARAMETERS.

012 345 67

| SAD[0] | SAD[1] [ SAD[2] | SAD[3] | SAD[4] | SAD[5] [ SAD[6] j 0 |

Рис. 5.58. Формат регистра адреса I2ADD 530

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

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 О [ | Loop | CI | СР | DIV16 | | M/S | EN | LEN [ РМ[3:0] [

Рис. 5.59. Формат регистра режима SPIMODE SPI-интерфейса

Последовательный коммуникационный порт. Последовательный порт в контрол­лере МРС860 реализован в виде SPI (Serial Peripheral Interface). SPI -полнодуплексный, синхронный, символьно-ориентированный канал связи, использующий 4-проводной ин­терфейс (линия приема SPIMISO, линия передачи SPIMOSI, линия тактовых сигналов SPICLK и линия выбора slave-устройства SPISEL), предназначен для обмена данными между коммуникационными контроллерами, ISDN- и другими сетевыми устройствами. Конфигурирование режимов работы интерфейса выполняется в регистре режима SPIMODE (рис. 5.59).

Устройство, поддерживающее SPI-интерфейс, может работать в режиме master (бит M/S = 1) или slave (бит M/S = 0). Также поддерживается конфигурация multimaster для объединения нескольких SPI-устройств на общую шину, используя их выводы в режиме открытого стока (open-drain).

В режиме master SPI-контроллер передает данные для других slave-станций, кото­рые обязаны немедленно вернуть принятый кадр (режим back-to-back). Это использу­ется для обеспечения надежности передачи и подтверждения корректности передачи кадра.

Тактирование приемника и передатчика канала выполняется одной тактовой часто­той. Если выбранное устройство работает в режиме master, то тактовый сигнал поступа­ет от собственного независимого BRG-генератора. В режиме master устройство выраба­тывает внешние сигналы выбора (разрешения работы) SPISEL для slave-устройства и сигнал SPICLK, который выставляется только во время передачи данных, для тактирова­ния других slave-устройств. Если устройство работает в режиме slave, то тактовые сигна­лы поступают от внешнего источника.

Если контроллер работает в режиме master, то пользователь может управлять вход­ной частотой для BGR-генератора. Генератор BRG для своей работы использует вход­ную тактовую частоту от внутреннего синтезатора частоты микросхемы (SynCLK). Если бит DIV16 равен 1, то входная частота генератора BRGCLK перед поступлением на вход схемы генератора делится на 16 (BRGCLK = SynCLK/16). Если бит DIV16 = 0, то предва­рительного деления частоты нет.

Сам генератор может также делить входную частоту на коэффициент, который опре­делен в битах РМ, перед тем как передать ее для тактирования схемам приемника и передатчика каналов связи. Входная частота BRGCLK делится на 4х([РМО-РМЗ])+1), таким образом, коэффициент внутреннего деления частоты может быть от 4 до 64. Сигнал на выходе генератора представляет собой меандр.

Максимальная скорость передачи отдельных символов в режиме master равна SynCLK/ 4, а в режиме slave - SynCLK/2. При передаче нескольких символов подряд интервал между ними не должен превышать значения SynCLK/50.

Особенности работы интерфейса. SPI-интерфейс выполняет полнодуплексные опе­рации, т. е. прием данных и передача данных выполняются одновременно. При передаче наиболее значимый бит (MSB) передается первым, если бит REV = 1, и наоборот, пер­вым передается LSB-бит, если бит REV = 0.

Размер передаваемых символов может колебаться от 4 до 16 бит. Биты LEN в регис­тре режима задают рабочую длину символа от 1 бита (код 0000) до 16 бит (код 1111), но, если пользователь выберет длину меньше 4 бит, будет зарегистрирована ошибка.

531