Программная модель интерфейса 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 функционирует как альтернативный регистр данных передатчика, за исключением того, что контакт передачи данных находится в высокоимпедансном состоянии в течение данного временного слота.