Программная модель со стороны порцессора 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 млн инструкций в секунду и может быть расширена для обеспечения большей производительности.
ПОРТ С
Стандартный ввод/вывод
Порт С имеет девять линий и три функциональных назначения (рис. 6.37). Три из девяти линий могут использоваться для стандартного ввода/вывода или для последовательного коммуникационного интерфейса SCI, другие шесть линий могут использоваться для стандартного ввода/вывода или для синхронного последовательного интерфейса SSI. Таким образом, порт С может использоваться для управления устройствами, если он сконфигурирован как порт стандартного ввода/вывода, и для соединения с другими DSP, процессорами, АЦП и ЦАП, если он сконфигурирован как последовательные интерфейсы.
При использовании в качестве линий стандартного ввода/вывода порт С может быть представлен в виде трех регистров, которые управляют девятью контактами ввода/вывода. Это регистр управления порта С (РСС, адрес X:$FFE1), регистр направления данных порта С (PCDDR, адрес X:$FFE3) и регистр данных порта С (PCD, адрес X:FFE5).
Регистры PCDDR и PCD имеют разрядность 24 бита, из которых используются только младшие девять битов. Соответственно, установка в «1» бита в регистре PCDDR означает, что данная линия порта С используется для вывода, в противном случае - для ввода.
Выбор между стандартным вводом/выводом и последовательными интерфейсами осуществляется с помощью регистра РСС, в котором установка соответствующего бита в «1» означает использование последовательного интерфейса, а сброс в «О» - стандартный ввод/вывод.
Последовательный коммуникационный интерфейс (SCI)
SCI обеспечивает полнодуплексную последовательную связь с другими DSP, микропроцессорами или периферийными устройствами типа модемов. Сигналы интерфейса могут иметь ТТЛ-уровень или стандарт RS232C, RS422 и т. д. Этот интерфейс использует три линии: передачи данных (TXD), приема данных (RXD) и синхронизации (SCLK).
Прием данных (RXD- бит 0).
Этот вход принимает байт последовательных данных и передает их в регистр сдвига. Асинхронный ввод данных осуществляется по положительному фронту сигнала синхронизации 1 х SCLK, если SCKP = 0.
Передача данных (TXD - бит 1).
На этот выход передаются последовательные данные из регистра сдвига. Данные меняются по отрицательному фронту сигнала синхронизации SCLK, если SCKP = 0.
Синхронизация (SCLK— бит 2).
Двунаправленная линия обеспечивает синхронизацию при приеме или передаче данных в асинхронном режиме, а также при передаче данных в синхронном режиме.
Программная модель SCI.
Программная модель SCI приведена на рис. 6.38. Программная модель может быть представлена в виде регистров трех типов: 1) управления 5CR); 2) статуса (SSR); 3) управления синхронизацией (SCCR).
Регистр управления (SCR). 16-битный регистр чтения/записи, управляющий операциями последовательного интерфейса. 15 из 16 битов имеют функциональное назначение.
Выбор слова (WDSO, WDS1, WDS2-6umbi 0-2).
Три бита выбирают формат данных для передачи и приема (табл. 6.22).
Асинхронные режимы совместимы с большинством последовательных устройств типа DUART. Эти режимы поддерживают стандарт RS-232. Мультиточечный режим совместим с МС68681 DUART, интерфейсом SCI M68HC11 и последовательным интерфейсом Intel 8051. Синхронный режим, по существу, представляет собой сдвиговый регистр для расширения ввода/вывода. Синхронизация данных выполняется с использованием синхронизации приема и передачи, которая совместима с режимом 0 последовательного интерфейса Intel 8051. При аппаратном сбросе биты очищаются.
Направление сдвига (SSFTD - бит 3).
Регистр сдвига данных может быть запрограммирован на сдвиг битов, начиная с младых (SSFTD = 0) или - со старших битов (SSFTD =1). Местоположение битов четности и шла данных не изменяется - они находятся рядом со стоп-битом. Программный и аппаратный сбросы очищают этот бит.
Посылка маркера паузы (SBK- бит 4).
Маркер паузы представляет собой нулевой фрейм данных. Если бит установлен и затем очищен, передатчик завершает передачу данных, посылает нулевой фрейм и возвращается к холостому режиму или посылке данных. Программный и аппаратный сбросы очищают этот бит.
Выбор режима пробуждения (WAKE- бит 5).
Если бит равен нулю, выбирается режим пробуждения по холостой линии. В данном режиме приемник повторно разрешен по приему, по крайней мере, 10 или 11 единичных последовательностей. Программное обеспечение передатчика должно обеспечить холостую строку между последовательными сообщениями. Холостая строка не должна возникать между корректными сообщениями, поскольку каждый фрейм содержит старт-5ит, равный нулю.
Если WAKE = 1, выбирается режим пробуждения по биту адреса. В этом режиме приемник разрешен, если последний бит принимаемых данных (8 или 9) равен единице.
9-й бит данных (R8) - бит адреса в 11-битном мультиточечном режиме, 8-й бит - бит адреса в 10-битном асинхронном и 11-битном асинхронном режиме с четностью. Таким образом, характер принимаемых данных определяет адрес, обрабатываемый всеми приостановленными процессорами: каждый процессор сравнивает его с собственным адресом и либо принимает данные, либо игнорирует их. Программный и аппаратный сбросы очищают этот бит.
Разрешение пробуждения приемника (RWU - бит 6).
Если бит равен единице и SCI находится в асинхронном режиме, разрешена функция пробуждения (SCI находится в состоянии ожидания, пока не появится причина пробуждения). В состоянии ожидания все флаги приемника, за исключением IDLE и прерывания, запрещены. При пробуждении приемника бит RWU сбрасывается аппаратно. Бит может быть сброшен программистом. RWU может использоваться программистом, чтобы игнорировать сообщения от других устройств в мультиточечном сетевом режиме. Может быть выбрано пробуждение по холостой линии или по адресному биту. Если WAKE = 0 и RWU = 1, приемник не отвечает на данные, пока не определена холостая линия. Если WAKE = 1 и RWU = 1, приемник не отвечает на данные, пока не выявлен 9-й бит данных, равный единице.
При пробуждении приемника бит RWU сбрасывается и принимается 1-й байт данных. Если прерывания разрешены, процессор прерывает свою работу и процедура обработки прерываний читает заголовок сообщения, чтобы определить, относится ли сообщение к данному DSP. Если сообщение предназначено для данного DSP, то оно принимается и RWU устанавливается в «1» для ожидания следующего сообщения.
Если сообщение предназначено не для данного DSP, DSP немедленно устанавливает RWU в «1», что означает игнорирование этого сообщения и ожидание следующего. Программный и аппаратный сбросы очищают этот бит. RWU не используется в синхронном режиме.
Выбор режима объединения по ИЛИ (WOMS - бит 7).
Если бит равен единице, SCI TXD драйвер программируется как открытый выход и может быть объединен вместе с другими контактами TXD, что соответствует конфигурации мультиточечного режима. В этом случае на шине требуется внешний резистор нагрузки. Если бит равен нулю, контакт TXD используется как активная внутренняя нагрузка. Программный и аппаратный сбросы очищают этот бит.
Разрешение приемника (RE - бит 8).
Если бит равен единице, приемник разрешен, иначе приемник запрещен и запрещены передачи данных в регистр SRX из сдвигового регистра приемника. Прерывания или RDRF не запрещаются. Программный и аппаратный сбросы очищают этот бит.
Разрешение передатчика (ТЕ - бит 9).
Если бит равен единице, передатчик разрешен, иначе передатчик завершает передачу данных в сдвиговый регистр передатчика и последовательный выход переводится в холостой режим. Данные в регистре STX не передаются. STX может быть записан и TDRE очищен, но данные не передаются в сдвиговый регистр. Бит ТЕ не запрещает TDRE и прерывания. Программный и аппаратный сбросы очищают этот бит.
Установка ТЕ вызывает передачу преамбулы из 10 или 11 единичных последовательностей (определенных WDS). Эта процедура дает программисту еще один метод перевода линии в холостой режим перед приемом нового сообщения.
Рекомендуются следующие действия:
1)записать последний байт первого сообщения в STX;
2)ожидать условия TDRE = 1, что означает передачу последнего байта в сдвиговый
регистр передатчика;
3)очистить ТЕ и снова установить ТЕ в «1»; эта последовательность вызывает не
медленную посылку преамбулы;
4)записать 1-й байт второго сообщения в STX.
Если 1-й байт второго сообщения не будет передан в STX до того, как окончится преамбула, линия передачи данных просто перейдет в холостой режим, пока STX не будет полностью записан.
Разрешение прерывания по холостой линии (ILIE-бит 10).
Если бит равен единице, возникает прерывание по установке бита IDLE в «1». Если бит ILIE = 0, прерывания по холостой линии запрещены. Программный и аппаратный сбросы очищают этот бит. В качестве запроса прерывания выступает флаг прерывания по холостой линии (SRIINT), который не доступен пользователю. Если принят корректный старт-бит, прерывание генерируется при IDLE = 1 и ILIE = 1. Ответ из контроллера прерываний очищает запрос прерывания. Прерывание по холостой линии не может возникнуть, пока не принят последний бит данных. Бит IDLE всегда показывает реальный статуса линии приема.
Разрешение прерывания приемника (RIE -бит 11).
Бит используется для разрешения прерывания приемника. Если бит равен нулю, прерывания запрещены и необходимо опрашивать бит RDRF в регистре статуса для определения заполнения приемника. Если бит RIE = 1 и RDRF = 1, SCI посылает запрос прерывания в контроллер прерываний. Программный и аппаратный сбросы очищают этот бит.
Разрешение прерывания передатчика (TIE - бит 12).
Бит разрешает прерывания передатчика. Если бит равен нулю, прерывания запрещены и необходимо опрашивать бит TDRE в регистре статуса для определения, пуст ли передатчик. Если бит TIE = 1 и TDRE = 1, SCI посылает запрос прерывания в контроллер прерываний. Программный и аппаратный сбросы очищают этот бит.
Разрешение прерывания таймера (TMIE - бит 13).
Бит используется для разрешения прерывания от таймера SCI. Если бит равен единице, генерируется запрос прерывания к контроллеру прерываний. Прерывание таймера очищает запрос прерывания к контроллеру. Эта позволяет программисту использовать генератор SCI в качестве генератора периодических прерываний, если SCI не используется, если в SCI используется внешняя синхронизация или если необходимы периодические прерывания SCI. Внутренняя частота SCI делится на 16 для генерации прерываний от таймера. Программный и аппаратный сбросы очищают этот бит.
Полярность частоты (SCKP-бит 15).
Полярность частоты на линии SCLK можно инвертировать с помощью этого бита. Если бит равен нулю, полярность положительная, в противном случае - отрицательная. В синхронном режиме положительная полярность означает прием корректных данных по низкому уровню сигнала синхронизации, отрицательная полярность означает прием корректных данных по высокому уровню сигнала синхронизации. В асинхронном режиме положительная полярность означает прием корректных данных по отрицательному фронту сигнала синхронизации, отрицательная полярность означает прием корректных данных по положительному фронту сигнала синхронизации. Программный и аппаратный сбросы очищают этот бит.
Регистр статуса (SSR). Это 8-битный регистр только для чтения, используемый для определения состояния SCI. При чтении регистр занимает младший байт на шине данных, старшие байты заполняются нулями.
Передатчик пуст (TRNE- бит 0).
Установка флага TRNE означает, что сдвиговый регистр передатчика и регистр данных пусты, т. е, в передатчике нет данных. При установке этого бита данные записываются в один из трех блоков STX, или STXA передается в сдвиговый регистр передатчика и передаются первые данные. TRNE сбрасывается, когда TDRE очищается при записи данных в регистр STX или STXA, при передаче преамбулы по холостой линии, при останове передачи. Назначение этого бита -указывать, что передатчик пуст. Следовательно, данные, записанные в STX или STXA, будут передаваться следующими (в сдвиговом регистре передатчика нет слова для передачи). Эта процедура используется для инициализации передачи сообщения. TRNE устанавливается в «1» при программном, аппаратном сбросах и сбросе по STOP.
Регистр данных передатчика пуст (TDRE - бит 1).
Бит равен единице, если регистр данных передатчика пуст. Если бит установлен, новые данные могут записываться в один из регистров передатчика или регистр адреса данных (STXA). TDRE очищается при программном, аппаратном сбросах и сбросе по STOP.
В синхронном режиме при внутренней синхронизации между записью STX и установкой бита TDRE формируется задержка до 5,5 циклов, показывающая, что данные передаются из STX в сдвиговый регистр передатчика. Между записью данных в STX и передачей их в сдвиговый регистр задержка составляет от двух до четырех циклов. Кроме того, TDRE устанавливается в середине передачи 2-го бита. В случае использования внешней синхронизации и если синхронизация прекращается, передатчик останавливается. TDRE не может быть установлен во время передачи 2-го бита после начала внешней синхронизации. Прекращение синхронизации после 1-го бита приводит к неопределенной задержке TDRE.
В асинхронном режиме флаг TDRE устанавливается в «1» после сдвига первого слова. TDRE устанавливается в течение 2 циклов после старт-бита.
Регистр данных приемника заполнен (RDRF- бит 2).
Бит устанавливается при появлении в регистре данных приемника корректных данных из сдвигового регистра приемника. Бит очищается при программном, аппаратном сбросах и сбросе по STOP.
Флаг холостой линии (IDLE - бит 3).
Бит устанавливается, если приняты 10 или 11 единичных последовательностей. Переход IDLE из «0» в «1» вызывает прерывание по ILIE. Бит сбрасывается при определении старт-бита, при программном или аппаратном сбросах и сбросе по STOP.
Флаг ошибки по выходу за границы (OR - бит 4).
Флаг устанавливается, если байт готов для передачи из сдвигового регистра приемника в регистр данных приемника (SRX), который полон. Флаг показывает, что данные из регистра данных могут быть потеряны. Бит OR сбрасывает биты FE и РЕ, поскольку его приоритет выше. Бит очищается при чтении регистра статуса следом за чтением SRX, при программном, аппаратном сбросах и сбросе по STOP.
Ошибка четности (РЕ- бит 5).
В 11-битном асинхронном режиме бит устанавливается, если обнаружен некорректный бит четности в принимаемых данных. Если бит РЕ установлен, это не запрещает дальнейшую передачу данных в SRX. Бит очищается при программном, аппаратном сбросах и сбросе по STOP. В 10-битном асинхронном, 11-битном мультитчечном и 8-битном синхронном режимах бит РЕ очищается всегда, поскольку бит четности в этих режимах не используется.
Флаг ошибки фрейма (FE — бит 6).
Бит устанавливается в асинхронном режиме, если не обнаружено стоп-бита в принимаемых данных. FE и RDRF устанавливаются при пересылке принятого слова в SRX. Таким образом, FE запрещает дальнейшую передачу данных в SRX, пока не сброшен. Бит очищается при программном, аппаратном сбросах и сбросе по STOP. В 8-битном синхронном режиме бит FE всегда сброшен.
Бит принимаемого адреса (R8- бит 7).
В 11-битном асинхронном мультиточечном режиме бит R8 используется для указания характера принимаемых данных - адрес это или данные. Бит очищается при программном, аппаратном сбросах и сбросе по STOP.
Регистр управления синхронизацией (SCCR). Это 16-битный регистр чтения/записи, управляющий выбором режима синхронизации и скоростью передачи интерфейса SCI. При аппаратном сбросе регистр очищается. Генератор скорости передачи приведен на рис. 6.39.
Делитель частоты (CD11-CD0- биты 11-0).
Биты используются для переустановки 12-битного счетчика, который декрементируется с частотой, равной половине частоты генератора на кристалле. Счетчик не доступен пользователю. При достижении нулевого значения счетчик перезагружается значением, содержащимся в данных битах. Биты очищаются при программном и аппаратном сбросах.
Делитель выходной частоты (COD - бит 12).
Выходной делитель частоты управляется этим битом. В синхронном режиме частота делится на два; в асинхронном режиме, если COD = 0 и ТСМ = О, RCM = 0, частота делится на 16; если COD = 1 и ТСМ = О, RCM = 0, частота выдается на линию SCLK без изменений. Бит очищается при программном, аппаратном сбросах и сбросе по STOP.
Масштабирование синхронизации (SCP-бит 13).
Бит выбирает деление на единицу (SCP = 0) или деление на восемь (SCP = 1) делителя частоты. Выход устройства масштабирования выдает поделенную на два частоту для формирования синхронизации SCI. Бит очищается при программном, аппаратном сбросах и сбросе по STOP.
Режим синхронизации приемника (RCM- бит 14).
Бит выбирает внутреннюю или внешнюю синхронизацию приемника. Бит очищается при программном, аппаратном сбросах и сбросе по STOP.
Режим синхронизации передатчика (ТСМ-бит 15).
Бит выбирает (табл. 6.23) внутреннюю или внешнюю синхронизацию передатчика. Бит очищается при программном, аппаратном сбросах и сбросе по STOP.
Регистры данных SCI.
Регистры данных SCI подразделяются на две группы: приемника и передатчика. Группа регистров приемника включает регистр данных приемника и сдвиговый регистр данных приемника. Соответственно передатчик также имеет два регистра: регистр данных передатчика и сдвиговый регистр передатчика.
Регистры приемника (SCI).Слова данных, принимаемые по линии RXD, сдвигаются с помощью сдвигового регистра приемника. По завершении приема порция данных передается в регистр SRX, имеющий разрядность в один байт. Этот процесс преобразования данных из последовательной формы в параллельную имеет двойную буферизацию, которая обеспечивает гибкость программирования и увеличение производительности, поскольку программист имеет возможность сохранять предыдущее слово данных во время приема следующего. Регистр SRX занимает три ячейки памяти: X:$FFF4, X:$FFF5, X:$FFF6. При чтении X:$FFF4 содержимое SRX располагается в младшем байте шины данных, старший и средний байты шины данных заполняются нулями. Аналогично при чтении среднего байта регистра данных SRX заполняются нулями старший и младший байты шины данных, а при чтении старшего байта регистра данных SRX заполняются нулями средний и младший байты шины данных.
Регистры передатчика (SCI). Регистр данных передатчика представляет собой 8-разрядный регистр, расположенный по четырем адресам: X:$FFF3, X:$FFF4, X:$FFF5, X:$FFF6. В асинхронном режиме используются X:$FFF4, X:$FFF5, X:$FFF6 и регистр называется STX. При записи X:$FFF4 в STX передается младший байт шины данных, при записи X:$FFF5 - средний байт, при записи X:$FFF6 - старший байт шины. Такая структура облегчает для программиста распаковку 24-битного слова данных. Слово по адресу X:$FFF3 используется в 11-битном асинхронном мультиточечном режиме, когда в качестве данных передается адрес (9-й бит фрейма установлен в «1»). При использовании X:$FFF3 регистр называется STXA и данные из младшего байта шины данных сохраняются в STXA. Бит адреса очищается после каждой записи в X:$FFF4, X:$FFF5 или в X:$FFF6. Пересылка данных из регистра STX или STXA в сдвиговый регистр передатчика осуществляется автоматически, но не раньше, чем предыдущее слово данных преобразовано (если сдвиговый регистр пуст). Подобно приемнику передатчик также имеет двойную буферизацию. Пересылка данных в сдвиговый регистр из регистра данных и появление на линии TXD происходит за промежуток времени от двух до четырех последовательных циклов синхронизации (один цикл требуется для передачи одного бита данных). Поскольку сдвиговый регистр не доступен программисту, а передача данных занимает некоторое количество циклов синхронизации, необходимо производить запись в регистр данных, опрашивая флаг TDRE во избежание потери данных вследствие записи поверх еще не отправленного слова данных.