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

6.2.3. Порт в Стандартный ввод/вывод

Порт В может использоваться как 15 линий ввода/вывода общего назначения, каждая из которых конфигурируется индивидуально как вход или выход или как 8-битный двунаправленный host-интерфейс. Линии порта В представлены на рис. 6.29. Сконфигурированный как порт ввода/вывода общего назначения, порт В может использоваться для управления устройствами. В качестве host-интерфейса порт В обеспечивает соединение с другим процессором.

При использовании в качестве линий стандартного ввода/вывода порт В может быть представлен в виде трех регистров, которые управляют 15 контактами ввода/вывода. Это регистр управления порта В (РВС, адрес X:$FFED), регистр направления данных порта В (PBDDR, адрес X:$FFE2) и регистр данных порта В (PBD, адрес X:FFE4). Регистры PBDDR и PBD имеют разрядность 24 бита, из которых используются только младшие 15 битов. Соответственно установка в «1» бита в регистре PBDDR означает, что данная линия порта В используется для вывода, в противном случае -для ввода. Установка в «1» бита 0 в регистре РВС означает, что порт В используется в качестве host-интерфейса, иначе порт В используется для стандартного ввода/вывода.

Адреса регистров периферийных устройств приведены на рис. 6.30.

Host-интерфейс (HI)

Структура HI. HI-8-битный полнодуплексный, с двойной буферизацией параллельный порт, который может быть соединен непосредственно с шиной данных host-процессора.

Host-процессор может быть микроконтроллером, микропроцессором, другим DSP или аппаратным ПДП, поскольку этот интерфейс работает со статической памятью. HI - асинхронный интерфейс и содержит два банка регистров: один банк, доступный host-процессору, и второй банк, доступный процессору DSP (рис. 6.31).

HI имеет следующие параметры:

скорость: 8 Мбайт/с - передача пакетов; 1,71 миллион слов/с - скорость передачи данных при обработке прерываний (мах).

сигналы (15): Н0-Н7 - шина данных; НА0-НА2 - выбор адреса; HR/-.W - управление чтением/записью; -.HEN - разрешение передачи; -iHREQ - запрос; -.HACK - ответ.

Host-интерфейс со стороны процессора DSP. Процессор DSP рассматривает HI как периферийное устройство, занимающее три 24-битных слова в пространстве памяти данных. DSP может использовать HI как обычную периферию, входящую в карту памяти. Отдельные регистры приемника и передатчика данных имеют двойную буферизацию, что существенно повышает скорость передачи данных.

Регистры интерфейса доступны с помощью стандартных инструкций и режимов адресации. При программном и аппаратном сбросе HI запрещен, и порт В используется для стандартного ввода/вывода.

Программная модель со стороны порцессора DSP.

Программная модель со стороны программиста DSP показана на рис. 6.32.

Регистр управления HI (HCR). 8-битный регистр управления используется в DSP для управления прерываниями HI и флагами. Регистр недоступен host-процессору. HCR занимает младший байт внутренней шины данных, старшие байты шины данных заполняются нулями. Отдельные биты регистра могут быть установлены в «1» или сброшены в «О». Резервные биты читаются нулями.

Разрешение прерываний приемника (HRIE - бит 0).

Бит используется для разрешения прерываний DSP, если приемник данных заполнен. Программный и аппаратный сбросы устанавливают этот бит в «0».

Разрешение прерываний передатчика (HTIE- бит 1).

Бит используется для разрешения прерываний DSP, если передатчик данных пуст. Программный и аппаратный сбросы устанавливают этот бит в «0».

Разрешение командных прерываний (HCIE- бит 2).

Бит используется для разрешения векторных прерываний DSP, если в регистре статуса установлен бит задержки команд. Стартовый адрес процедуры обработки этого прерывания определен host-вектором (HV). Программный и аппаратный сбросы устанавливают этот бит в «0».

Флаг 2(HF2-6um3).

Бит используется в качестве флага для связи DSP - Host. Бит может быть очищен или установлен со стороны DSP и виден со стороны host-процессора. Программный и аппаратный сбросы устанавливают этот бит в «0».

Флаг 3(HF3-6um4).

Бит используется в качестве флага для связи DSP - Host. Бит может быть очищен или установлен со стороны DSP и виден со стороны host-процессора. Программный и аппаратный сбросы устанавливают этот бит в «0».

Регистр статуса host(HSR). 8-битный регистр статуса используется для запроса статуса и флагов HI. Регистр занимает младший байт внутренней шины данных, старшие байты шины данных заполняются нулями.

Приемник данных заполнен (HRDF- бит 0).

Бит показывает, что регистр приемника данных заполнен данными из host-процессора. Бит очищается при чтении данных со стороны DSP, а также при инициализации со стороны DSP. Программный и аппаратный сбросы, а также инструкция STOP устанавливают этот бит в «0».

Передатчик данных пуст (HTDE — бит 1).

Бит показывает, что регистр передатчика данных пуст, т. е. данные переданы в host-процессор. Бит очищается при записи данных со стороны DSP. Бит устанавливается при инициализации со стороны host-интерфейса. Программный и аппаратный сбросы, а также инструкция STOP устанавливают этот бит в «1».

Задержка команд (НСР - бит 2).

Бит показывает, что установлен бит НС в регистре вектора команд (CVR) и командные прерывания HI задерживаются. НС и НСР очищаются при обработке аппаратных исключений DSP. Host может очистить НС и НСР. Программный и аппаратный сбросы, а также инструкция STOP устанавливают этот бит в «О».

Флаг0(НР0-битЗ).

Бит показывает состояние флага 0 в ICR Host-процессора. Бит может быть изменен host-процессором. Программный и аппаратный сбросы, а также инструкция STOP устанавливают этот бит в «О».

Флаг 1 (HF1 - бит 4).

Бит показывает состояние флага 1 в ICR Host-процессора. Бит может быть изменен host-процессором. Программный и аппаратный сбросы, а также инструкция STOP устанавливают этот бит в «О».

Статус ПДП (DMA - бит 7).

Бит показывает, что в host-процессоре разрешен режим ПДП и бит НМ1 или бит НМО равен единице. Если бит ПДП равен нулю, это означает запрещение режима ПДП. Если бит установлен в «1», режим ПДП разрешен и один из битов host-режима установлен в «1». Программный и аппаратный сбросы, а также инструкция STOP устанавливают этот бит в «О».

Регистр приемника данных (HRX). Используется для передачи данных между DSP и host-процессором. HRX - 24-битный регистр только для чтения со стороны DSP. В этот регистр загружаются данные из регистра передатчика host-процессора, если регистр приемника DSP пуст, а регистр передатчика host-процессора полон. Операция передачи устанавливает TXDE и HRDF. Регистр содержит корректные данные только в том случае, если установлен бит HRDF. Чтение регистра сбрасывает HRDF. Сброс не влияет на этот регистр.

Регистр передатчика данных (НТХ). Используется для передачи данных между DSP и host-процессором. 24-битный регистр - только для записи со стороны DSP. Запись в регистр очищает HTDE. Регистр передает 24-битные данные в регистр приемника host-процессора, если приемник данных пуст и бит HTDE = 0. Операция передачи устанавливает TXDE и HRDF. Данные не могут быть записаны в регистр, пока бит HTDE не станет равен единице, чтобы не изменять предыдущие данные, хранящиеся в регистре. Сброс не влияет на этот регистр.

Прерывания. HI может вызывать процедуры обработки прерываний как со стороны DSP, так и со стороны host-процессора. В первом случае прерывания являются внутренними и не требуют использования внешних линий. Если соответствующая маска установлена в HCR, прерывание вызывает установку соответствующих битов в HSR, которые генерируют запрос прерывания в процессор DSP. Ответ на прерывание вызывает переход host-процессора к выполнению соответствующей процедуры обработки прерывания. Возможны три типа прерываний: по заполнению регистра приемника данных, по опустошению регистра передатчика данных и по host-команде. Процедура обработки прерываний должна осуществить чтение или запись в регистр HI, чтобы сбросить флаг прерывания.

Host-интерфейс со стороны Host-процессора. HI оперирует host-процессором как восемью словами статической памяти разрядностью 8 бит. Host-процессор может работать с интерфейсом асинхронно с использованием техники опроса или с использованием прерываний. Отдельные регистры приемника и передатчика данных имеют двойную буферизацию, что существенно повышает скорость передачи данных. HI содержит простейший контроллер ПДП, генерирующий адреса (НА0-НА2) для регистров TX/RX.

Программная модель со стороны Host-процессора. Программная модель со стороны host-процессора показана на рис. 6.33.

Регистр управления прерываниями (ICR). 8-битный регистр используется host-процессором для управления прерываниями и флагами. Регистр не доступен DSP. Чтение и запись в регистр осуществляются стандартными инструкциями.

Разрешение прерывания приемника (RREQ-бит О).

Бит используется для управления ¬HREQ при передаче данных (табл. 6.19). В режиме прерывания (ПДП отключен), RREQ используется для разрешения запроса прерывания через внешний вывод (¬HREQ), если регистр приемника данных заполнен и бит RXDF в регистре статуса установлен. Если бит RREQ равен нулю, прерывания по заполнению приемника запрещены.

В режиме ПДП RREQ должен быть установлен или сброшен программным путем для выбора направления перемещения данных при ПДП. Установка бита определяет направление ПДП и разрешает использование вывода ¬HREQ для запроса перемещения данных. Аппаратный, программный сброс, а также команда STOP сбрасывают этот бит. Разрешение прерывания передатчика (TREQ — бит 1).

Бит используется для управления выводом ¬HREQ при передаче данных. В режиме прерывания (ПДП отключен), TREQ используется для разрешения запроса прерывания через внешний вывод (¬HREQ), если регистр передатчика данных пуст и бит TXDE в регистре статуса установлен. Если бит TREQ равен нулю, прерывания по опустошению передатчика запрещены.

В режиме ПДП TREQ должен быть установлен или сброшен программным путем для выбора направления перемещения данных при ПДП. Установка бита определяет направление ПДП и разрешает использование вывода ¬HREQ для запроса перемещения данных. Аппаратный, программный сброс, а также команда STOP сбрасывают этот бит.

Флаг 0 (HF0 - бит 3).

Бит используется как флаг общего назначения для связи Host и DSP. Бит может быть установлен или сброшен только со стороны host-процессора. Соответственно бит является видимым со стороны DSP. Аппаратный, программный сбросы, а также команда STOP сбрасывают этот бит.

Флаг 1 (HF1 - бит 4).

Бит используется как флаг общего назначения для связи Host и DSP. Бит может быть установлен или сброшен только со стороны host-процессора. Соответственно бит является видимым со стороны DSP. Аппаратный, программный сбросы, а также команда STOP сбрасывают этот бит.

Управление режимом Host (HM1 и НМО - биты 5 и 6).

Биты определяют режим передачи host-интерфейса (табл. 6.20).

В режиме прерываний биты TREQ и RREQ используются для управления прерываниями host-процессора через внешний выходной контакт ¬HREQ. Входной контакт -ЛАСК используется в семействе MC68000 для ответа на запрос прерывания. Если один из битов - НМ1 и НМО - установлен, режим ПДП разрешен; контакт ¬HREQ используется для запроса перемещения данных в режиме ПДП. При этом биты TREQ и RREQ определяют направление ПДП. Входной контакт ¬HACK используется для ответа на запрос ПДП. При направлении перемещения данных из DSP в Host содержимое выбранного регистра разрешено читать с шины данных HI, если на контакте ¬HACK есть ответ. При направлении перемещения данных из Host в DSP содержимое выбранного регистра записывается на шину данных HI, если на контакте ¬HACK есть ответ.

Размер слова ПДП также определяется битами НМ1 и НМО. Регистр HI, выбранный для передачи, определяется 2-битным адресным счетчиком, который загружается значениями НМ1 и НМ0. В адресном счетчике используются два бита: НА1 и НА0. НА2 устанавливается в «1» при каждой операции ПДП. Адресный счетчик инициализируется битом INIT. После каждой операции ПДП на шине данных host-счетчик инкрементируется. После достижения граничного значения (RXL или TXL) счетчик снова загружается значениями НМ1 и НМО. Это позволяет 8-, 16- и 24-битные данные перемещать круговым способом и устраняет потребность в контроллере ПДП при работе с контактами НА2, НА1 и НАО. Аппаратный, программный сбросы, а также команда STOP сбрасывают этот бит.

Инициализация (INIT-бит 7).

Бит используется в host-процессоре для инициализации аппаратной части HI. Инициализация заключается в конфигурировании битов управления приемом и передачей и загрузке НМ1 и НМО во внутренний адресный счетчик ПДП. Загрузка НМ1 и НМО в счетчик ПДП вызывает начало передачи данных. Существует два метода инициализации: 1) разрешение автоматической установки счетчика ПДП после передачи слова; 2) установка бита INIT, который устанавливает счетчик ПДП. Использование бита INIT не является необходимым для инициализации HI и зависит от программных разработок. Выполняемый тип инициализации при установке бита INIT зависит от состояния битов TREQ и RREQ в HI (табл. 6.21) Команда INIT, локальная для HI, разработана для удобства конфигурации HI в режиме передачи данных. Эта команда описана в табл. 6.26. Аппаратный, программный сбросы, а также команда STOP сбрасывают этот бит. Выполнение INIT всегда загружает счетчик ПДП и очищает каналы TREQ и RREQ, но не влияет на биты НМ1 и НМО. Внутренний счетчик ПДП инкрементируется при каждой операции ПДП (каждом импульсе -¬НАСК), пока не будет указывать на последние регистры данных (RXL или TXL). По завершении цикла ПДП счетчик загружается значениями НМ1 и НМО. При изменении размера слова ПДП (НМ1 и НМО) счетчик не модифицируется автоматически, поэтому необходимо использовать функцию INIT для корректной установки счетчика. Счетчик ПДП не может инициализироваться в середине цикла ПДП, поэтому контроллер ПДП ожидает завершения цикла передачи перед выполнением инициализации.

Регистр командного вектора (CVR). Регистр используется host-процессором в случае выполнения векторных прерываний DSP.

Host-вектор (HV- биты 0-4).

Пять битов вектора выбирают адрес команды исключения. Если команда исключения распознана логикой управления прерываниями DSP, стартовый адрес исключения равен

2 x HV. Если это необходимо, host может записать НС и HV в обычном цикле записи. Host-процессор может выбрать одно из 32 возможных стартовых адресов исключений в DSP при записи стартового адреса процедуры обработки исключения, деленного на два, в HV. Таким образом, host-процессор может использовать любое из существующих исключений, а также любой из резервных или неиспользованных адресов. Для программного и аппаратного сбросов, а также сброса по STOP HV = $12.

Бит Host-команды (НС - бит 7).

Бит используется host-процессором при выполнении исключений по host-команде. Обычно НС = 1 для запроса исключения по host-команде из DSP. Если исключение по host-команде отвечает DSP, бит НС очищается аппаратно. Host-процессор может прочитать состояние НС для определения выбора host-команды. Host-процессор может очистить НС, отменяя тем самым запрос исключения по host-команде в любое время перед тем, как оно будет выбрано DSP. Если это необходимо, host может записать НС и HV в обычном цикле записи. Аппаратный, программный сброс, а также команда STOP сбрасывают этот бит.

Регистр статуса прерывания (ISR). 8-битный регистр только для чтения используется host-процессором для получения статуса и флагов HI. Host-процессор может производить запись по этому адресу без влияния на внутреннее состояние HI, что полезно при обращении пользователя к регистрам HI. Регистр не доступен в DSP.

Регистр приемника данных заполнен (RXDF- бит 0).

Бит показывает, что байты регистра приемника (RXH, RXM, RXL) содержат данные из DSP и могут быть прочитаны host-процессором. Бит устанавливается, если содержимое НТХ передано в регистр приемника. Бит очищается при чтении младшего байта данных (RXL) host-процессором. Также бит может быть очищен процедурой инициализации. RXDF может использоваться для выбора ¬HREQ, если бит RREQ установлен в «1». Аппаратный, программный сбросы, и команда STOP сбрасывают этот бит.

Регистр передатчика данных пуст (TXDE- бит 1).

Бит показывает, что байты регистра передатчика (ТХН, ТХМ, TXL) пусты и могут снова быть записаны host-процессором. Бит устанавливается, если содержимое регистра передатчика передано в HRX. Бит очищается при записи младшего байта данных (TXL) host-процессором, а также процедурой инициализации. TXDE может использоваться для выбора -.HREQ, если бит TREQ установлен в «1». Аппаратный, программный сбросы, а также команда STOP сбрасывают этот бит.

Передатчик готов (TRDY- бит 2).

Бит показывает, что регистры ТХН, ТХМ, TXL и HRX пусты. TRDY = TXDE • ¬HRDF. Если бит установлен в «1», данные, записанные host-процессором в ТХН, ТНМ и TXL, будут перемещены непосредственно в DSP. Аппаратный, программный сбросы, а также команда STOP сбрасывают этот бит.

Флаг 2 (HF2 - бит 3).

Бит показывает состояние флага 2 в HCR со стороны DSP. Аппаратный и программный сбросы очищают этот бит.

Флаг 3 (HF3 - бит 4).

Бит показывает состояние флага 3 в HCR со стороны DSP. Аппаратный и программный сбросы очищают этот бит.

Статус ПДП (DMA - бит 6).

Бит показывает, разрешен ли в host-процессоре режим ПДП. Если бит равен нулю, режим ПДП запрещен. Если бит равен единице, режим ПДП разрешен и процессор не использует активные каналы ПДП (RXH, RXM, RXL или ТХН, ТХМ, TXL в зависимости от направления ПДП) во избежание конфликтов при передаче данных. Аппаратный, программный сбросы, а также команда STOP сбрасывают этот бит.

Запрос (HREQ-бит 7).

Бит показывает состояние внешнего выходного контакта ¬HREQ. Если бит равен нулю, то ¬HREQ не является активным и запросов прерываний или ПДП нет. Если бит равен единице, то ¬HREQ является активным и происходит прерывание host-процессора или операция ПДП. Аппаратный, программный сбросы, и команда STOP сбрасывают этот бит.

Регистр вектора прерывания (IVR). Это 8-битный регистр чтения/записи, содержащий обычно номер вектора исключения, используемый в векторных прерываниях процессоров семейства MC68000. Содержимое регистра выдается на шину данных (НОНУ), если контакты ¬HREQ и ¬НАСК активны, а режим ПДП запрещен. Аппаратный, программный сброс инициализируют этот регистр значением $0F.

Байты регистра приемника (RXH, RXM, RXL). Байты регистра приемника представлены как три 8-битных регистра только для чтения. Эти регистры принимают данные из соответствующих байтов регистра НТХ и выбираются тремя внешними входами адреса (НА2, НА1 и НАО) при чтении или при выполнении операций ПДП. Корректные данные находятся в регистре приемника только в том случае, если установлен бит RXDF. Host-процессор может программировать бит RREQ для выбора контакта ¬HREQ при установке RXDF. Чтение младшего байта регистра приемника очищает бит RXDF. Сброс не влияет на регистр приемника.

Байты регистра передатчика (ТХН, ТХМ, TXL). Байты регистра передатчика представлены как три 8-битных регистра только для записи. Данные из этих регистров пересылаются в соответствующие байты регистра HRX, а сами регистры выбираются тремя внешними входами адреса (НА2, НА1 и НАО) при записи. Данные могут быть записаны в регистр передатчика только в том случае, если бит TXDE = 1. Host-процессор может программировать бит TREQ для выбора контакта ¬HREQ при установке TXDE. Запись в младший байт регистра передатчика очищает бит TXDE. Сброс не влияет на регистр передатчика.

Контакты Host-интерфейса.

Существуют следующие виды контактов HI.

Шина данных (Н0-Н7). Двунаправленная шина данных, используемая для перемещения данных между host-процессором и DSP.

Адрес (НА0-НА2). Контакты обеспечивают адресную выборку регистра HI. Эти входы стабильны, если ¬HEN активен.

Чтение/запись (HR/¬W). Этот контакт выбирает направление перемещения данных при доступе к host-процессору. Если HR/¬W = 1 и ¬HEN активен, данные перемещаются в host-процессор. Если HR/¬W=0 и ¬HEN активен, данные перемещаются из host-процессора в DSP. HR/¬W стабилен, если ¬HEN активен.

Разрешение Host (¬ HEN). Этот вход разрешает перемещение данных по шине данных host. Если ¬HEN неактивен, линии шины данных находятся в третьем состоянии.

Запрос (¬1HREQ). Выходной сигнал, используемый для процедуры запроса host-процессором, контроллером ПДП или простейшим внешним контроллером. Контакт может быть соединен с контактом запроса прерывания host-процессора, запросом передачи контроллера ПДП или входом управления внешнего устройства.

Ответ (¬ HACK). Этот вход имеет две функции: 1) обеспечивает сигнал ответа при операциях ПДП; 2) обеспечивает сигнал ответа при прерывании для совместимости с процессорами семейства MC68000. В первом случае сигнал может использоваться для стробирования данных при операциях ПДП. Во втором случае сигнал используется для разрешения выдачи на шину данных вектора прерывания, если HREQ активен.

Примеры использования HI. На рис. 6.34 показана система на основе DSP и распространенного промышленного микроконтроллера МС68НС11, который имеет мультиплексированные шины адреса и данных (требуется защелкивание адреса). Поскольку контакт ¬HACK в данном примере не используется, он подключен к цепи питания. Все неиспользованные входные контакты должны быть отключены во избежание возникновения ошибочных сигналов.

Комплексирование DSP и процессора MC68000, который является основой не только процессоров общего применения семейства 68К и интегрированных процессоров, но и развитого семейства 32-разрядных микроконтроллеров М68300, показано на рис. 6.35. Процессор М68000 может использовать инструкцию MOVEP со словом и длинным словом для передачи последовательности данных. Если используются MC68020 или MC68030, в любой инструкции может использоваться динамически изменяемый размер шины.

Использование одного host-интерфейса для объединения нескольких DSP показано на рис. 6.36. Данная система из четырех DSP может выполнять до 41 млн инструкций в секунду и может быть расширена для обеспечения большей производительности.