Программная модель интерфейса SSI

SSI включает в себя два управляющих регистра, один регистр статуса, регистр передатчика, регистр приемника и регистр временных слотов. Эти регистры представлены на рис. 6.43. Регистры SSI не имеют в своем названии первой буквы «S», как регистры SCI.

Регистр управления A (CRA). CRA - 16-битный регистр управления операциями SSI. Регистр управляет генератором частоты SSI и синхронизацией фреймов, длиной слова и количеством слов в фрейме последовательных данных.

Выбор модуля масштаба (РМ7-РМ0 - биты 0-7).

Биты РМ7-РМ0 определяют коэффициент деления делителя частоты генератора SSI. Может быть выбран коэффициент от 1 до 256. Выход синхронизации битов может располагаться на линии синхронизации передатчика SCK и/или синхронизации приемника SCO. Также выход синхронизации битов может быть внутренним для использования синхронизации сдвиговых регистров приемника и передатчика. Необходимо выбирать частоту генератора и коэффициент деления так, чтобы была совместимость с промышленными стандартами кодеков 2,048 МГц, 1,544 МГц, 1,536 МГц. Аппаратный и программный сбросы очищают биты РМ7-РМ0.

Управление делителем частоты фреймов (DC4-DC0 - биты 8-12).

Биты DC4-DC0 определяют коэффициент деления частоты фреймов. В сетевом режиме этот коэффициент может интерпретироваться как «число слов в фрейме минус один». В нормальном режиме этот коэффициент определяет скорость передачи слов. Коэффициент может задаваться в диапазоне от 1 до 32 в нормальном режиме и в диапазоне от 2 до 32 в сетевом режиме. Аппаратный и программный сбросы очищают биты DC4 - DC0.

Управление длиной слова (WLO, WL1 - биты 13 и 14).

Биты WLO, WL1 используются для выбора длины слова передаваемых данных в SSI. Возможные варианты длины слова приведены в табл. 6.29. Эти биты управляют количеством активных переходов в шлюзовом режиме синхронизации и управляют делителем длины слова, который является частью генератора сигнала скорости передачи фреймов в непрерывном режим синхронизации. Также биты управляют длиной импульса синхронизации фреймов, если FSLO и FSL1 выбирают синхронизацию по битам WL. Аппаратный и программный сброс очищают биты WLO, WL1.

 

 

Диапазон масштабирования (PSR - бит 15).

PSR управляет устройством масштабирования с фиксированным делением на во­семь. Бит используется для расширения диапазона устройства для случаев, когда жела­тельна более медленная частота синхронизации. Если PSR равен нулю, фиксированное масштабирование не используется. Максимальная внутренняя частота синхронизации равна частоте генератора, деленной на четыре; минимальная равна частоте генератора, деленной на 8192. Аппаратный и программный сбросы очищают бит PSR.

Регистр управления В (CRB). Это 16-битный регистр управления операциями SSI. Регистр управляет многофункциональными контактами SC2, SC1 и SCO, которые ис­пользуются как входы и выходы синхронизации, контакты синхронизации фреймов или флаги. Биты управления выходными флагами и направлением передачи также находят­ся в CRB. В регистре CRB находятся также биты управления прерываниями. При чтении CRB занимает на шине данных два младших байта, старший байт заполняется нулями. Операционный режим также выбирается с помощью этого регистра. Программный и ап­паратный сбросы очищают все биты регистра CRB.

Выходной флаг 0 (OF0 - бит 0).

Если используется синхронный режим SSI и бит SCD0 = 1, то контакт SCO работает как выход, и данные на контакте OF0 записываются в SCO в начале фрейма в нормаль­ном режиме или в начале следующего временного слота в сетевом режиме. Аппаратный и программный сбросы очищают бит OF0.

Выходной флаг 0 (OF1 - бит 1).

Если используется синхронный режим SSI и бит SCD1 = 1, то контакт SC1 работает как выход и данные на контакте OF0 записываются в SCO в начале фрейма в нормаль­ном режиме или в начале следующего временного слота в сетевом режиме. Аппаратный и программный сбросы очищают бит OF1.

Бит направления 0(SCDO - бит 2).

Бит управляет направлением линии ввода/вывода SCO. Если SCDO = 0, SCO - вход; если SCDO = 1, SCO - выход. Аппаратный и программный сбросы очищают бит SCDO.

Бит направления 0(SCD1 - бит 3).

Бит управляет направлением линии ввода/вывода SC1. Если SCD1 = О, SC1 - вход; если SCD1 = 1, SC1 - выход. Аппаратный и программный сбросы очищают бит SCD1.

Бит направления 0 (SCD2 - бит 4).

Бит управляет направлением линии ввода/вывода SC2. Если SCD2 = О, SC2 - вход; если SCD2 = 1, SC2 - выход. Аппаратный и программный сбросы очищают бит SCD2.

Направление источника синхронизации (SCKD - бит 5).

Бит выбирает источник сигнала синхронизации для сдвигового регистра передатчика в асинхронном режиме и для обоих сдвиговых регистров в синхронном режиме. Если SCKD = 1, то используется внутренняя синхронизация и внутренний генератор соединен с контактом SCK, в противном случае - синхронизация внешняя и к контакту SCK может быть подсоединен внешний источник. Аппаратный и программный сбросы очищают бит SCKD.

Направление сдвига (SHFD - бит 6).

Бит определяет направление сдвига данных из сдвигового регистра, начиная со стар­ших битов, если SHFD = 0, или, начиная с младших битов, если SHFD = 1. Аппаратный и программный сбросы очищают бит SHFD.

Длина синхронизации фрейма (FSLO, FSL1 - биты 7 и 8).

Эти биты выбирают тип синхронизации фрейма. Если FSL1 = 0 и FSLO = 0, синхрони­зация фрейма длиной в одно слово выбирается для ТХ и RX, длина слова данных опре­деляется битами WL1 и WL0. Если FSL1 = 1 и FSLO = 0, 1-битный период синхронизации фрейма выбирается для ТХ и RX. Если FSLO = 1, синхронизация фреймов для ТХ и RX имеет различную длину (1-битный период для ТХ и период WL для RX). Аппаратный и программный сбросы очищают биты FSL1 и FSLO.

Синхронный/асинхронный режим (SYN- бит 9).

Бит управляет функциями приема и передачи. Если SYN = 0, выбран асинхронный режим, отдельная синхронизация и отдельные сигналы синхронизации фреймов исполь­зуются в секциях приема и передачи. Если SYN = 1, выбран синхронный режим и общая синхронизация для секций приема и передачи, включая общие сигналы синхронизации фреймов. Аппаратный и программный сброс очищают бит SYN.

Управление шлюзовой синхронизацией (GCK- бит 10).

Бит используется для выбора непрерывной синхронизации и синхронизации только в те моменты, когда данные посланы в сдвиговый регистр передатчика. Если бит равен нулю, синхронизация непрерывная, в противном случае - выборочная. Аппаратный и программный сбросы очищают бит GCK.

Выбор режима (MOD - бит 11).

Бит выбирает операционный режим SSI. Если бит равен нулю, выбран нормальный режим, если бит равен единице, выбран сетевой режим. В нормальном режиме делитель частоты фрейма определяет скорость передачи данных: одно слово передается в тече­ние временного слота фрейма. В сетевом режиме слово передается в каждом времен­ном слоте. Аппаратный и программный сбросы очищают бит MOD.

Разрешение передачи (ТЕ- бит 12).

Бит разрешает передачу данных из ТХ в сдвиговый регистр передатчика. Если бит равен единице и определена синхронизация фрейма, разрешается передача порции данных в этот фрейм. Если бит равен нулю, передатчик запрещен по завершении пере­дачи текущих данных в сдвиговый регистр передатчика. Последовательный выход пере­водится в третье состояние, и любые данные, находящиеся в ТХ, не передаются (т. е. данные могут быть записаны в ТХ, ТЕ очищается, однако данные не передаются в сдви­говый регистр). В нормальном режиме - разрешающая последовательность: данные за­писываются в ТХ или TSR перед установкой ТЕ; запрещающая последовательность: сброс ТЕ и TIE после того, как TDE станет равным единице. В сетевом режиме операция сбро­са и установки ТЕ запрещает передатчик по завершении передачи текущего слова дан­ных до начала следующего фрейма. В этот период времени контакт STD переводится в третье состояние. Аппаратный и программный сбросы очищают бит ТЕ.


Разрешение приема (RE- бит 13).

Если бит равен единице, разрешен прием порции данных. Если бит равен нулю, зап­рещены передачи данных в RX. Если данные принимаются, пока бит равен нулю, остаток слова сдвигается и передается в регистр данных приемника.

RE должен быть установлен в «1» в нормальном режиме и в режиме по требованию для приема данных. В сетевом режиме операция сброса и установки RE запрещает при­емник после приема текущего слова данных, пока не начнется следующий фрейм дан­ных. Аппаратный и программный сбросы очищают бит RE.

Разрешение прерывания передатчика (TIE-бит 14).

Функционирование DSP может быть прервано, если TIE и бит TDE в регистре статуса

установлены в «1». Если TIE равен нулю, прерывание запрещено. Бит TDE показывает, что регистр данных передатчика пуст, даже если передатчик запрещен битом ТЕ. Запись данных в ТХ или TSR очищает запрос этого прерывания. Аппаратный и программный сбросы очищают бит TIE.

Используется два типа прерываний:

1) если TIE = 1, TDE = 1, TUE = 1;

2)если TIE = 1, TDE = 1, TUE = 0.

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

Если RIE равен единице, функционирование DSP может быть прервано, если уста­новлен бит RDF в регистре статуса. Если RIE = 0, прерывание запрещено. Бит RDF пока­зывает условие заполнения регистра данных приемника. Чтение регистра данных при­емника очищает RDF и соответствующий запрос прерывания. Аппаратный и программ­ный сбросы очищают бит RIE.

Используется два типа прерываний при приеме данных ;

1) прием данных с исключением (прерывание генерируется при условии: RIE = 1,
RDF=1, ROE=1);

2) прием данных без исключения (прерывание генерируется при условии: RIE = 1,
RDF = 1, ROE = 0.

Регистр статуса (SSISR). Это 8-битный регистр статуса, предназначенный только для чтения, используется для опроса статуса и флагов SSI. При чтении регистр занимает младший байт шины данных, старшие байты шины данных заполняются нулями.

Входной флаг 0 (IF0- бит 0).

SSI защелкивает данные, появившиеся на контакте SCO в течение приема 1-го бита после обнаружения сигнала синхронизации фрейма. Флаг 0 модифицируется, если дан­ные из сдвигового регистра приемника переданы в регистр данных приемника. Бит IF0 разрешен, если SCD0 = 0 и SYN = 1, т. e. SCO работает как вход и выбран синхронный режим. В противном случае IF0 не разрешен и читается нулем. Аппаратный и программ­ный сбросы, а также сброс по STOP очищают бит IF0.

Входной флаг 1 (IF1 - бит 1).

SSI защелкивает данные, появившиеся на контакте SCO в течение приема 1-го бита после обнаружения сигнала синхронизации фрейма. Флаг 1 модифицируется, если дан­ные из сдвигового регистра приемника переданы в регистр данных приемника. Бит IF1 разрешен, если SCD1 = 0 и SYN = 1, т. е. SC1 работает как вход и выбран синхронный режим. В противном случае IF1 не разрешен и читается нулем. Аппаратный и программ­ный сбросы, а также сброс по STOP очищают бит IF1.

Флаг сигнала синхронизации передаваемого фрейма (TFS - бит 2).

Если TFS = 1, это означает, что появился сигнал синхронизации фрейма в текущем временном слоте. TFS устанавливается по старту первого временного слота во фрейме данных и сбрасывается всеми остальными временными слотами. Данные записываются в регистр данных передатчика в течение временного слота, если TFS = 1, и передаются (в сетевом режиме) в течение второго временного слота фрейма. TFS используется в сетевом режиме для идентификации старта фрейма. Аппаратный и программный сбро­сы, а также сброс по STOP очищают бит TFS.

Флаг сигнала синхронизации принимаемого фрейма (RFS — бит 3).

Если RFS = 1, это означает, что появился сигнал синхронизации фрейма во время появления слова в регистре данных приемника (слово данных из первого временного слота фрейма). Если RFS = 0 и слово принято (только в сетевом режиме), это означает, что во время появления данного слова сигнала синхронизации фрейма не было. Аппа­ратный и программный сбросы, а также сброс по STOP очищают бит RFS.

Флаг ошибки повторной передачи (TUE- бит 4).

TUE = 1, если сдвиговый регистр передатчика пуст (нет новых данных для передачи) и появился временной слот передачи. При возникновении данной ошибки предыдущие данные, которые находятся в ТХ, передаются еще раз. В нормальном режиме есть только один временной слот передачи на фрейм. В сетевом режиме может быть до 32 временных слотов передачи на фрейм. TUE не вызывает прерываний, но вызывает смену вектора прерывания передатчика. Если прерывание передатчика возникает, когда TUE = 1, то воз­никает запрос прерывания со статусом исключения. Если прерывание передатчика возни­кает, когда TUE = 0, то формируется запрос прерывания без возникновения ошибки. Аппа­ратный и программный сбросы, а также сброс по STOP очищают бит TUE. Этот бит сбра­сывается также при чтении регистра статуса.

Флаг ошибки повторной записи (ROE— бит 5).

ROE = 1, если сдвиговый регистр приемника заполнен и готов к передаче в регистр данных приемника (RX), а также заполнен регистр данных. Содержимое сдвигового реги­стра не передается в регистр данных.

ROE не вызывает прерываний, однако ROE вызывает смену вектора прерывания, используемого для прерываний приемника. Если прерывание приемника возникает, ког­да ROE = 1, то формируется запрос прерывания со статусом исключения. Если прерыва­ние приемника возникает, когда ROE = 0, то формируется запрос прерывания без возник­новения ошибки. Аппаратный и программный сброс, а также сброс по STOP очищают бит ROE. Этот бит сбрасывается также при чтении регистра статуса.

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

Этот флаг устанавливается в «1», если данные из регистра данных передатчика пе­реданы в сдвиговый регистр передатчика. Бит устанавливается также для запрещения временного слота в сетевом режиме (если данные передаются после того, как произош­ла запись в TSR). Аппаратный и программный сбросы, а также сброс по STOP устанав­ливают бит TDE. Таким образом, TDE показывает, что данные записаны в ТХ или в ре­гистр временных слотов TSR. TDE сбрасывается при записи в регистр данных передат­чика или записи в TSR для запрещения передачи в следующем временном слоте. Если TIE = 1, возникает запрос на прерывание.

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

Этот флаг устанавливается в «1», если содержимое сдвигового регистра приемника передано в регистр данных приемника. RDF сбрасывается при чтении регистра данных приемника или по аппаратному, программному сбросам, а также сбросу по STOP. Если RIE = 1, возникает запрос на прерывание.

Регистр сдвига приемника. 24-битный сдвиговый регистр принимает данные с контакта последовательного приема данных. Данные сдвигаются по такту сигнала синхронизации, если активен соответствующий сигнал синхронизации фрейма. Данные принимаются, начиная со старшего бита MSB, если SHFD = 0, и с младшего бита LSB, если SHFD = 1. Данные передаются в регистр данных приемника, если принято количество битов, определенное битом управления длиной слова в CRA.

Регистр данных приемника (RX). 24-битный регистр используется только для чте­ния. Принимает данные из сдвигового регистра приемника, если тот заполнен. Данные для чтения занимают старшую порцию битов регистра данных приемника. Неиспользо­ванные биты читаются нулями.

Регистр сдвига передатчика. 24-битный сдвиговый регистр содержит данные для передачи. Данные сдвигаются по такту сигнала синхронизации, если активен соответству­ющий сигнал синхронизации фрейма. Количество битов, сдвигаемое для передачи, опре­деляется битом управления длиной слова в CRA. Данные для передачи занимают стар­шую порцию битов сдвигового регистра, неиспользуемые биты игнорируются. Данные пе­редаются, начиная со старшего бита, если SHFD = 0, и с младшего бита, если SHFD = 1.

Регистр данных передатчика (ТХ). 24-битный регистр используется только для записи. Данные для передачи записываются в этот регистр и автоматически передаются в сдвиговый регистр. Записываемые данные занимают старшую порцию битов регистра данных передатчика, младшие биты не используются.

Регистр временных слотов (TSR). Регистр используется в случае, если данные не переданы в течение временного слота передачи. Таким образом, TSR функционирует как альтернативный регистр данных передатчика, за исключением того, что контакт передачи данных находится в высокоимпедансном состоянии в течение данного временного слота.