ЭУМК по дисциплине "Проектирование проблемно-ориентированных вычислительных средств" › Теория › Тема 8. Блок многочастотного приемника сигналов для цифровой АТС

# Электронный учебно-методический
комплекс по дисциплине
"Проектирование проблемно-ориентированных вычислительных средств"

для специальности

1-40 02 02 «Электронные вычислительные средства»

Оглавление | Программа | Теория | Практика | Контроль знаний | Об авторах

8.4. Подключение блока к системной шине ПЭВМ через HPI-интерфейс
8.4.1. Блок МЧП с HPI-интерфейсом

Еще одним способом подключения блока МЧП к системной шине является использование HPI-интерфейса. При этом схема сопряжения блока с ПЭВМ значительно упрощается и выглядит следующим образом (рис. 8.5).

######

###### Рисунок 8.5 – Схема модуля многочастотного приемника МЧП с HPI интерфейсом

При этом основной обмен информацией выполняется через HPI-интерфейс, а управление и анализ состояния блока на аппаратном уровне – через регистры управления и состояния.
Регистры ввода-вывода блока доступны по адресам, определяемым комбинацией базового адреса, номера группы и номера требуемого регистра ввода-вывода. Базовый адрес задается с помощью сигналов на входах S0…S3 блока и определяется назначением и местом установки блока. При этом четвертый разряд адреса всегда “0”.
Распределение разрядов адреса регистров ввода-вывода приведено ниже:

Адрес регистра ввода-вывода
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
х | х | х | х | х | S3 | S2 | S1 | S0 | R | R | 0 | r | r | r | r

х- не используются,
S - базовый адрес (поступает с разъема),
R - выбирают группу регистров ввода-вывода 0-3 в блоке,
r - выбирают регистр ввода-вывода 0-15 в группе.
Номера регистров ввода-вывода и их назначение приведены в табл. 8.7.
Таблица 8.7. Регистры блока МЧП

Порт | Номер | Имя | Режим | Назначение
4140 | 40 | HWC | W | Регистр управления блока
4140 | 40 | HRS | R | Регистр состояния блока
4160 | 60 | HPIC | W | Регистр управления HPI
4162 | 62 | HPIDM | W | Регистр данных HPI
4164 | 64 | HPIA | W | Регистр адреса HPI
4166 | 66 | HPID | W | Регистр данных HPI
4168 | 68 | HPIC | R | Регистр управления HPI
416А | 6А | HPIDM | R | Регистр данных HPI
416С | 6С | HPIA | R | Регистр адреса HPI
416Е | 6Е | HPID | R | Регистр данных HPI

Назначение регистров управления и состояния такое же, как и при предыдущем варианте подключения к системной шине. Отличие заключается в отсутствии битов готовности в регистре состояния, поскольку отсутствует регистр данных. Информация в блок передается путем непосредственной записи во внутреннюю память ЦПС, а принимается путем чтения внутренней памяти с использованием средств HPI-интерфейса

8.4.2. Обмен данными и командами между ПЭВМ и блоком МЧП

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

15–12 | 11 | 10 | 9 | 8 | 7–4 | 3 | 2 | 1 | 0
x | HINT | 0 | SMOD | BOB | x | HINT | 0 | SMOD | BOB

15–12 | 11 | 10 | 9 | 8 | 7–4 | 3 | 2 | 1 | 0
X | HINT | DSPINT | x | BOB | x | HINT | DSPINT | x | BOB

Примечание: x – любое значение может быть прочитано или записано.
Назначение четырех битов управления функционированием HPI представлено в табл. 8.8 (отдельные биты регистра управления доступны и DSP-процессору) .
Таблица 8.8. Назначение битов регистра управления HPI

Бит | Доступ Host | Доступ DSP | Описание
BOB | R/W | – | Если BOB = 1, первый байт младший. Если BOB = 0, первый байт старший. BOB влияет на передачу как данных, так и адреса. BOB должен быть проинициализирован перед первым доступом к регистрам данных или адреса.
SMOD | Read | R/W | Если SMOD = 1, режим коллективного доступа (SAM) разрешен: память HPI может быть доступной DSP. Если SMOD = 0, режим только-HOST (HOM) разрешен. SMOD = 0 при сбросе и SMOD = 1 после сброса.
DSPINT | Write | – | Прерывание HOST процессором DSP. Когда HOST пишет 1 в этот бит, в DSP генерируется прерывание. Запись 0 в этот бит не вызывает никаких действий. Всегда читается как 0. Когда HOST пишет в HPIC, в оба байта должно писаться одинаковое значение.
HINT | R/W | R/W | Этот бит определяет состояние выхода HINT DSP, который может использоваться, чтобы сгенерировать прерывание HOST-компьютеру. HINT = 0 при сбросе, что переводит внешний выход HINT в неактивный (высокий). Бит HINT может быть установлен только DSP и может сбрасываться только HOST. DSP пишет 1 в HINT, заставляя вывод HINT перейти в низкий уровень. Бит HINT читается как 0, когда внешний вывод HINT неактивный (высокий) и как 1, когда вывод HINT является активным (низким). Тем не менее, HOST, чтобы сбросить прерывание, должен записать 1 в HINT. Запись 0 в этот бит не вызывает никаких действий.

Поскольку через HPI-интерфейс передача данных всегда выполняет байтами, то регистр управления – обычно первый регистр, к которому выполняется обращение, чтобы установить биты конфигурации и проинициализировать интерфейс. HPIC организован на стороне HOST как 16-битовый регистр с одним и тем же старшим и младшим байтами и с неиспользуемыми старшими битами на стороне DSP. Когда HOST пишет в HPIC, как первый, так и второй записываемый байт должны быть одинаковыми. DSP получает доступ к HPIC по адресу 002Ch в пространстве памяти данных.
Поскольку DSP может записывать биты SMOD и HINT, и эти биты читаются дважды со стороны HOST-компьютера, первый и второй байты читаемые HOST могут принять другие значения, если DSP изменит состояние одного или обоих этих битов между двумя операциями чтения
Главный начинает доступ к HPI выполняя внешнюю часть цикла интерфейса; это значит, инициализируя сначала регистр HPIC, затем регистр HPIA и затем запись данных или чтение данные из регистра HPID. Запись в HPIA или HPID инициирует внутренний цикл, который передает принятые данные между HPID и предназначенной HPI внутренней памятью. Поскольку этот процесс требует несколько циклов DSP, всякий раз, при доступе к HPI, данные, записанные в HPID, не записаны в память до завершения цикла обращения Главного, а данные, прочитанные из HPID - данные из предшествующего цикла. Следовательно, при чтении, полученные данные является данными из позиции определенной на предшествующем доступе, а текущий доступ служит для инициации следующего цикла. Аналогичная последовательность происходит при операции записи: данные, записанные в HPID, не записаны в память до того, как внешний цикл завершен. Если чтение HPID немедленно следует за операцией записи в HPID, будут прочитаны те же данные (записываемые данные).
Возможность автоинкрементации HPIA обеспечивает чрезвычайно эффективный последовательный доступ HOST-компьютера к памяти DSP.
Обмен командами и данными выполняется следующим образом:
Чтение слова из DSP. Записать в порт HPIA адрес памяти DSP (не должен превышать 3FFFh). Прочитать порт HPID, т.е. прочитать требуемое слово.
Чтение массива данных из внутренней памяти DSP. Записать в порт HPIA адрес начала массива в памяти DSP. Последовательно прочитать через порт HPIDM все элементы массива.
Запись слова в DSP. Записать в порт HPIA адрес памяти DSP. Записать в порт HPID требуемое слово.
Запись массива данных во внутреннюю память DSP. Записать в порт HPIA адрес начала массива в памяти DSP. Последовательно писать в порт HPIDM все элементы массива.
Посылка команды в DSP. Записать код команды во внутреннюю память DSP начиная с адреса 0062h (команды могут состоять из одного или нескольких слов). Сгенерировать прерывание в DSP, установив бит DSPINT в регистре HPIC.

8.4.3. Первоначальная загрузка программы в блок МЧП

Загрузка через HPI-интерфейс является наиболее приоритетной и если соединить выводы процессора HINT и INT2 между собой, то процессор не будет проверять другие способы загрузки.
Алгоритм загрузки рабочей программы представлен на рис. 8.6.

######

###### Рисунок 8.6 – Алгоритм загрузки программы через HPI интерфейс

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

1. проверка значения сигнала на входе процессора INT2#. Так как этот вход соединен с выводом HINT, на котором после сброса сигнал низкого уровня, то осуществляется переход к шагу 2;
2. проверка содержимого ячейки начального адреса программы 007Fh на неравенство нулю (после сброса в начале программы загрузчика эта ячейка обнуляется). После записи HOST-процессором программы в память DSP через HPI-интерфейс стартового адреса в ячейку 007Fh осуществляется переход к шагу 3;
3. передача управления на точку входа в рабочую программу;
4. в случае не выполнения условия на шаге 1 выполняется проверка всех других условий загрузки. В случае несовпадения ни одного из условий осуществляется переход к шагу 5;
5. проверка содержимого ячейки начального адреса программы 007Fh на неравенство нулю. Если указанная ячейка по прежнему равна нулю – повторяется шаг 4, а если не равна нулю – выполняется переход к шагу 3.

Загружаемая программа находится во флэш-памяти управляющей ПЭВМ. При этом формат программы следующий:

Слово 0 | Версия программы
Слово 1 | Адрес точки входа в программу
Слово 2 | Длина программы (число слов N)
Слово 3 | Адрес загрузки программы
Слово 4 | Первое слово кода программы
. . . | . . .
Слово 3+N | Последнее слово кода программы

При этом контрольная сумма программы во флэш-памяти (сумма всех слов, включая и заголовок без учета переполнения) должна быть равна нулю.
Загрузка и запуск программы выполняются управляющей ПЭВМ в следующей последовательности:

1. проверка значения бита HINT в регистре HPIC. Бит должен быть в 1;
2. установка порядка передачи байтов в слове через HPI путем установки бита BOB в регистре HPIC в 1;
3. проверка контрольной суммы программы во флэш-памяти управляющей ПЭВМ;
4. установка адреса загрузки программы в регистре HPIA;
5. пересылка слов кода программы через регистр HPIDM в память DSP;
6. сравнение кода программы во флэш-памяти с кодом, записанным в память DSP;
7. запись слова 0FFFFh в память DSP по адресу 0062h;
8. запись адреса точки входа в программу в память DSP по адресу 007Fh;
9. сброс бита HINT в регистре HPIC в 0 (загрузчик в DSP-процессоре передает управление на начало рабочей программы);
10. контроль запуска программы через 1мс путем чтения памяти DSP по адресу 0062h и сравнения прочитанного слова с версией программы.

Оглавление | Программа | Теория| Практика | Контроль знаний | Об авторах
© БГУИР , 2012