SSI (интерфейс передачи данных)

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

SSI (англ. Synchronous Serial Interface, синхронно-последовательный интерфейс) — однонаправленный немультиплексированный интерфейс передачи цифровых данных с последовательной побитовой передачей, предназначенный для промышленных применений при высоких уровнях электромагнитных помех и длинных линиях связи (до 1,5 км) со скоростью передачи от 100 кбит/с до 2 Мбит/с, например, между удалённым датчиком и контроллером и пригоден в применениях, требующих надёжности при измерениях в тяжёлых промышленных условиях.

По уровням сигналов и требованиям к линии связи соответствует интерфейсу RS-422.

SSI был изначально разработан в 1984 году фирмой Max Stegmann GmbH[1] для передачи данных от цифровых абсолютных датчиков положения и угла поворота, поэтому некоторые производители сервоприводов и датчиков для сервоприводов часто называют применяемый ими интерфейс SSI «интерфейсом Stegmann».

Условия его использования ранее регулировались немецким патентом DE 3445617, срок действия которого истек в 1990 году.

Описание[править | править код]

Общее описание[править | править код]

В этом интерфейсе передача двоичных слов данных производится последовательно и побитно в одну сторону только от одного устройства — обычно некоторого датчика к другому устройству, например, программируемому контроллеру. Устройство, принимающее данные не передает данные датчику, но управляет процессом передачи. Поэтому контроллер обычно называют ведущим устройством, а датчик — ведомым устройством.

Передача битов синхронизируется синхроимпульсами, генерируемыми ведущим устройством. Передача каждого бита производится в одном периоде импульсов синхронизации. Таким образом, ведомый и ведущий связаны двумя каналами — каналом передачи синхроимпульсов от ведущего и каналом передачи битов слова данных от датчика. Так как импульсы синхронизации и данные передаются по витым парам практически равной длины, задержки распространения сигналов в них тоже равны, что обеспечивает устойчивую передачу данных на большие расстояния с высокой скоростью.

В протоколе передачи не используются стоповые и стартовые импульсы, как, например, в интерфейсе RS-232, что увеличивает скорость передачи.

В протоколе обмена предусмотрен контроль исправности линии — проверка на отсутствие обрывов и коротких замыканий жил кабеля.

Физический уровень[править | править код]

Аппаратная реализация SSI-интерфейса с гальванической развязкой через оптроны и дополнительными линиями питания датчика. Треугольниками изображены дифференциальные драйверы витых пар.
Зависимость допустимой длины кабеля от скорости передачи для стандарта RS-422

Электрически пара устройств связаны двумя витыми парами по которым передаются сигналы в дифференциальном виде аналогичная интерфейсам RS-422 и RS-485[2], одна пара предназначена для передачи импульсов синхронизации, вторая — для передачи битов данных. При такой передаче уровни напряжений в витых парах изменяются в противофазе и витые пары со стороны приёмника присоединяются ко входам дифференциальных усилителей. Дифференциальный способ передачи сигнала обеспечивает существенное подавление синфазной помехи, что повышает помехозащищённость.

Линии в витых парах обычно обозначаются именами Clock+ и Clock- или Clk+ и Clk- для сигнала синхронизации и Data+ и Data- для сигнала данных. Для интерфейса RS-422 принято считать логической 1 низкий уровень линии «+» относительно линии «-», но далее в тексте на временных диаграммах уровни логической 1 показаны как обычно — сверху.

Возможно использование в одном кабеле связи ведомый-ведущий дополнительных линий электрического питания датчика. Обычно витые пары в кабеле, особенно в длинных кабелях, для снижения помех экранируются оплёткой, присоединённой к «земле».

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

Электрические параметры связи регламентируются стандартом интерфейса RS-422 — дифференциальные уровни напряжений между проводниками витой пары ± 6 В при сопротивлении нагрузки 100 Ом, при применении кабелей связи, рекомендованных стандартом RS-422, максимальная длина линии связи 1,5 км при скорости передачи до 100 кбит/с. При использовании более коротких линий связи стандарт RS-422 допускает увеличение скорости передачи до 10 Мбит/с, но стандарт на SSI ограничивает скорость передачи (частоту импульсов синхронизации) до 2 МГц.

Одно ведущее устройство по одной витой паре может синхронизировать до 3 ведомых устройств, естественно, витые пары данных от ведомых устройств индивидуальны для каждого ведомого устройства.

Стандарт SSI не оговаривает тип оконечных разъёмов кабелей, часто используют разъёмные пары типов Mini-DIN или DE-9. Ряд изготовителей применяют винтовые клеммные зажимы.

Логический уровень и протоколы передачи[править | править код]

В ведомом устройстве имеется кольцевой регистр сдвига с параллельной записью слова данных — результата измерения и последовательной выдачей битов при сдвиге в линию данных через дифференциальный драйвер. Содержимое регистра сдвига обновляется в начале передачи слова по содержимому промежуточного регистра. В отсутствие передачи данных в промежуточный регистр периодически записывается слово результата измерения и результат измерения таким образом постоянно обновляется в этом регистре[3].

Также в ведомом устройстве имеется перезапускаемый одновибратор с фиксированной длительностью неустойчивого состояния, длительность неустойчивого состояния — активного режима интерфейса заведомо больше длительности передачи одного бита. В неустойчивом состоянии одновибратора заблокирована параллельная запись в дополнительный регистр. Перевод одновибратора в неустойчивое состояние и перезапуск одновибратора производится нулевым уровнем («0») сигнала синхронизации. В неустойчивом состоянии одновибратора заблокировано обновление данных в дополнительном регистре. Этот одновибратор участвует в протоколе передачи и диагностике кабеля.

Длина слова в битах определяется конструкцией (программой) ведомого и программой ведущего и может быть произвольной длины. Помимо собственно измеренных данных — числового результата измерения, в слово данных разработчики датчиков иногда включают служебные битовые поля, например, результаты самодиагностики датчика и/или битовые поля коррекции и обнаружения ошибок.

Кодировка данных результата измерения также произвольна, зависит от конкретного датчика, например, обычный позиционный двоичный код или код Грея. Передача числового результата измерения обычно производится старшими битами вперёд. Формат передаваемого слова подробно описывается в спецификации на конкретный датчик.

Возможны 2 варианта передачи данных — отдельными словами и с непрерывной передачей слов.

Протокол передачи по отдельным словам

Исходно и в режиме ожидания передачи ведущий удерживает линию синхронизации в состоянии логической 1 («1»), одновибратор ведомого находится в устойчивом состоянии, при этом разрешено обновление содержимого во вспомогательном регистре по результатам измерения, линия данных удерживается ведомым в состоянии «1». Состояние ожидания может длиться произвольное время.

Начало передачи инициирует ведущий, выставляя «0» на линии синхронизации. При этом одновременно выполняются следующие действия:

  • запускается одновибратор (переводится в неустойчивое состояние);
  • в неустойчивом состоянии одновибратора блокируется обновление вспомогательного регистра;
  • по переднему фронту запуска одновибратора содержимое вспомогательного регистра записывается в параллельном виде в сдвиговый регистр.

Начало передачи 1-го бита начинается с перевода линии синхронизации в «1», при этом на линию данных передается выход регистра сдвига.

Собственно приём бита в ведущий производится по падающему фронту сигнала синхронизации. Очередной нарастающий фронт синхронизации сдвигает слово в кольцевом регистре сдвига и выдаёт на линию данных следующий бит слова с выхода регистра сдвига, которой читается ведущим снова по падающему фронту синхронизации. Описанный процесс повторяется до передачи всех битов. После приёма последнего бита ведомый удерживает «1» на линии синхронизации, при этом прекращается перезапуск одновибратора. Спустя время возврата одновибратор переходит в устойчивое состояние, что переводит интерфейс в режим ожидания, при этом возобновляется обновление вспомогательного регистра новыми данными измерения.

Режим ожидания длится до новой передачи.

Так как в режиме ожидания линия данных обязательно находится в «1», а после окончания передачи, пока одновибратор в неустойчивом состоянии, на линии данных должен быть обязательно «0», это является диагностическими сигнатурами неисправности кабеля — обрывов или коротких замыканий жил линии данных или синхронизации. При неисправности линии синхронизации ведомый просто не откликается. Сигнатуры диагностики обрабатываются программой ведущего.

Очевидно, что в этом интерфейсе длительность периода синхроимпульсов может изменяться в широких пределах и даже быть разной при передаче разных бит слова. Главное требование — важно, чтобы длительность периода была заведомо меньше длительности неустойчивого состояния одновибратора.

Режим с повторной передачей слов

Этот режим используется для верификации верности передачи в условиях сильных помех на линии связи.

После состояния ожидания, передача одного слова не отличается от передачи одиночными словами, но ведущий в этом режиме формирует повторно пачку импульсов синхронизации до того, как одновибратор ведомого перейдёт в устойчивое состояние. Так как в неустойчивом состоянии заблокировано обновление регистра сдвига и после количества сдвигов, равном длине кольцевого регистра сдвига он переходит в такое же состояние, что и до сдвига, по интерфейсу передаётся то же самое слово.

Сравнение на равенство двух или нескольких полученных таким образом слов программой ведущего позволяет получить достоверную информацию при сильных помехах без использования обнаруживающих ошибки или исправляющих ошибки кодов, например, кода Хэмминга, что существенно упрощает аппаратную часть датчика. Соответственно, расплата за это — при повторной передаче снижается пропускная способность канала.

Примечания[править | править код]

Литература[править | править код]