Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как зависит скорость SPI от расстояния.
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
Serega Doc
Нужно пересылать за короткий интервал времени пересылать большой объем информации!
Идеально подходит SPI по скорости но пугает его не защищенность от помех.
Как защитить от помех или какой интерфейс использовать для для больших объемов информации.

Есть идея SPI трансформировать в 3 - RS 485! Не уверен в правильности решения.

Растояние передачи до 20 м скорость около 1 Mbit но не менее 400 - 500 kbit

Посоветуйте что предпринять!
dxp
Цитата(Serega Doc @ Jan 17 2006, 19:07) *
Есть идея SPI трансформировать в 3 - RS 485! Не уверен в правильности решения.
Растояние передачи до 20 м скорость около 1 Mbit но не менее 400 - 500 kbit
Посоветуйте что предпринять!

Мысль верная - задифференциалить сигналы, т.е. каждый из сигналов (MOSI, MISO, SCK) пустить через RS-422 передатчик на соответствующий приемник на противоположном конце. Должно работать без проблем.
Aleks17
Сигналы надо дифференциально передавать, вот только SPI здесь на мой взгляд не лучшее решение. В частности могут возникнуть проблемы с задержкой при передаче тактового сигнала. Может просто два 485 с выделением синхронизации на принимающей стороне (манчестер, hdb3 и т.п.)

Может воспользоваться такими решениями как CAN или LVDS.

Данные надо передавать в обе стороны?
Serega Doc
Данные по большому щету только в одну сторону! Можно контроль но в принципе не обязательно

Данные по большому щету только в одну сторону! Можно контроль но в принципе не обязательно
А что такое манчестер
Roma_te
Цитата(dxp @ Jan 17 2006, 18:02) *
Мысль верная - задифференциалить сигналы, т.е. каждый из сигналов (MOSI, MISO, SCK) пустить через RS-422 передатчик на соответствующий приемник на противоположном конце. Должно работать без проблем.

Я думаю, что если все сигналы пустить на передатчик RS-422(485) то в результате принятые сигналы (особенно SCK) будут искажены (смещены во времени) . Это не повлияет на работоспособность схеммы при низких частотах обмена, однако при увеличении частоты наступит момент, когда запаздывания сигналов приведут к искажению принятой информации. Граничная частота будет зависеть от типов микросхем передатчика приемника, температуры и многих других факторов и не факт, что при указанных частотах обмена схемма будет работать. Поетому я считаю, что лучше сразу использовать RS485 (без SPI). Если же нет такой возможности то, я считаю, лучше использовать преобразователь SPI-RS485 (например MAX3140 http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2033/ln/).
rezident
Поскольку SPI это синхронный интерфейс, то помехоустойчивость его зависит от длительности фронтов и запаздывания сигналов. Использование дифференциальных сигналов это верная мысль, но нужно убедиться, что завалы фронтов и запаздывания сигналов при их преобразовании ( в диф.сигнал и обратно) на используемой частоте тактирования не будут криминальными. Естественно нужно предусмотреть контроль достоверности передачи на уровне пакетов.
P.S. хотя, если честно, SPI это все-таки внутриплатный интерфейс. А для передачи на большие расстояния обычно используют асинхронные интерфейсы для которых синхронность нескольких сигналов не особенно важна. По тому же RS485 (при использовании соответствующих передатчиков) можно довольно просто организовать битовый поток до 1Мбит/с (и даже выше). Посмотрите у Maxim RS-485 High Speed Transeiver.
Aleks17
Цитата(Serega Doc @ Jan 17 2006, 20:52) *
Данные по большому щету только в одну сторону! Можно контроль но в принципе не обязательно

Данные по большому щету только в одну сторону! Можно контроль но в принципе не обязательно
А что такое манчестер


Манчестер - способ кодирования сигнала, при котором ноль или единица кодируются положительным или отрицательным фронтом соответственно. Делается это для того, чтобы в принимаемом сигнале не было длинных периодов отсутствия фронта сигнала (то бишь чтобы легко было засинхронизовать приемник и передатчик). Можно это делать скремблированием или применять кодировки типа 4b5b - смысл тот же: надо обеспечить наличие фронта в конечный промежуток времени (определяемый максимальным расхождением частот тактовых генераторов на приемной и передающей стороне).
dxp
Цитата(Roma_te @ Jan 18 2006, 01:33) *
Цитата(dxp @ Jan 17 2006, 18:02) *

Мысль верная - задифференциалить сигналы, т.е. каждый из сигналов (MOSI, MISO, SCK) пустить через RS-422 передатчик на соответствующий приемник на противоположном конце. Должно работать без проблем.

Я думаю, что если все сигналы пустить на передатчик RS-422(485) то в результате принятые сигналы (особенно SCK) будут искажены (смещены во времени) . Это не повлияет на работоспособность схеммы при низких частотах обмена, однако при увеличении частоты наступит момент, когда запаздывания сигналов приведут к искажению принятой информации. Граничная частота будет зависеть от типов микросхем передатчика приемника, температуры и многих других факторов и не факт, что при указанных частотах обмена схемма будет работать. Поетому я считаю, что лучше сразу использовать RS485 (без SPI).

Как это Вы сравниваете огурцы с яблоками? smile.gif SPI - это логический интерфейс, определяющий какие логические сигналы в нем присутствуют и их взаимодействие. А RS-422/485 - это аппаратный интерфейс, регламентирующий требования к передачтику, приемнику и проч. Т.е. SPI - логический уровень, RS-422/485 - физический.

Что касается искажений по времени, то думается, что при использовании рекомендованного RS-422 (заметьте - не RS-485), который расчитан на работу до 10 МГц при максимальной частоте в 1 МГц на 20 метрах дистанции ничего страшного произойти не должно. Конечно, еще тут помеховая обстановка может внести вопросы, но это уже за пределами данного обсуждения. RS-422 на 20 м при 1 МГц должен передавать без проблем.


Цитата(Serega Doc @ Jan 17 2006, 20:52) *
А что такое манчестер

Манчестер - способ модуляции несущей. В итоге получается что каждый бит закодирован двумя уровнями. Достоинства: простота реализации, воможность фазовой подстройки частоты прямо по несущей, т.е. отдельные синхросигналы не нужны, остутствие постоянной составляющей. Недостаток - требуется вдвое большая частота для передачи (несущая), т.е. если надо передать 1 Мбит поток по синхронному интерфейсу, т.е. тактовая 1 МГц, то с Манчестером потребуется 2 МГц.
BVU
Можно отказаться от SPI и последующих преобразований, применяя технологию Bluetooth, которая позволит обеспечить до 723 Mb/с на расстоянии 20 метров (http://www.w-lan.ru/wl.php?Id=1383).
Aleks17
Цитата(dxp @ Jan 18 2006, 12:58) *
Как это Вы сравниваете огурцы с яблоками? smile.gif SPI - это логический интерфейс, определяющий какие логические сигналы в нем присутствуют и их взаимодействие. А RS-422/485 - это аппаратный интерфейс, регламентирующий требования к передачтику, приемнику и проч. Т.е. SPI - логический уровень, RS-422/485 - физический.

Что касается искажений по времени, то думается, что при использовании рекомендованного RS-422 (заметьте - не RS-485), который расчитан на работу до 10 МГц при максимальной частоте в 1 МГц на 20 метрах дистанции ничего страшного произойти не должно. Конечно, еще тут помеховая обстановка может внести вопросы, но это уже за пределами данного обсуждения. RS-422 на 20 м при 1 МГц должен передавать без проблем.



Ну насчет того, что SPI - логический уровень это вы загнули. Проблема как раз в том, что это физический уровень и для правильного его функционирования необходимо обеспечить одинаковые пути прохождения сигналов SCK и SDATA, а задержки вносимые двойным преобразованием физ. уровня неоднозначны и могут испортить всю картину.
dxp
Цитата(Aleks17 @ Jan 18 2006, 14:27) *
Ну насчет того, что SPI - логический уровень это вы загнули. Проблема как раз в том, что это физический уровень

Если это физический уровень, то огласите тогда требования к аппаратной части приемника и передатчика, их токи, напряжения и прочее. Ничего подобного в случае SPI не оговаривается. Я не помню, как называются все семь уровней протоколов передачи (не связист), может со словом "логический" и действительно загнул, но то, что это не физический уровень, это точно.

Цитата(Aleks17 @ Jan 18 2006, 14:27) *
и для правильного его функционирования необходимо обеспечить одинаковые пути прохождения сигналов SCK и SDATA, а задержки вносимые двойным преобразованием физ. уровня неоднозначны и могут испортить всю картину.

Вот будь это физическим уровнем, то все эти перекосы были бы там регламентированы. А там есть лишь перечень сигналов, их смысловое наполнение, полярности и фазы тактирования. Что касается времянок и сдвигов, то с этим никто не спорит, просто на такие дальности при таких времянках не должно быть особых проблем. Хотя я бы SPI тут не применял, а если есть возможность (например, если FPGA), то гнал бы через Манчестер.
Aleks17
Допустим по поводу физического уровня я был не корректен. Хотя к какому из семи уровней это относится - не понять. Вроде уже не физический но ещё не канальный.

По поводу сдвигов на таком расстоянии: я имею в виду задержки не на линии а внутри RS-485 преобразователей, которые по порядку сравнимы с задержкой между данными и сигналом стробирования. (например у 10 мбитного MAX3485 задержки до 120 нс в одну сторону(или около того)). При этом может значительно нарушиться времянка приходящих сигналов доже при длине линии 10 см.
dxp
Цитата(Aleks17 @ Jan 18 2006, 15:53) *
По поводу сдвигов на таком расстоянии: я имею в виду задержки не на линии а внутри RS-485 преобразователей, которые по порядку сравнимы с задержкой между данными и сигналом стробирования. (например у 10 мбитного MAX3485 задержки до 120 нс в одну сторону(или около того)). При этом может значительно нарушиться времянка приходящих сигналов доже при длине линии 10 см.

Откуда такие данные? У него типовая задержка распространения 22 нс (максимальная 35 нс). При этом данные на MOSI выталкиваются на одном фронте SCK, а семплируются на противоположном, т.е. задерка в полпериода, т.е. 500 нс для 1 МГц. Не должно быть никаких проблем с SPI и RS-422 на 1 МГц.
Serega Doc
Цитата
Можно отказаться от SPI и последующих преобразований, применяя технологию Bluetooth, которая позволит обеспечить до 723 Mb/с на расстоянии 20 метров (http://www.w-lan.ru/wl.php?Id=1383).


А вы стоимость видели
За эти деньги я на плату FPGA поставлю и обмен по LVDS или манчестеру реализую

Нужно быстро просто и не дорого
Aleks17
Цитата(dxp @ Jan 18 2006, 18:26) *
Цитата(Aleks17 @ Jan 18 2006, 15:53) *

По поводу сдвигов на таком расстоянии: я имею в виду задержки не на линии а внутри RS-485 преобразователей, которые по порядку сравнимы с задержкой между данными и сигналом стробирования. (например у 10 мбитного MAX3485 задержки до 120 нс в одну сторону(или около того)). При этом может значительно нарушиться времянка приходящих сигналов доже при длине линии 10 см.

Откуда такие данные? У него типовая задержка распространения 22 нс (максимальная 35 нс). При этом данные на MOSI выталкиваются на одном фронте SCK, а семплируются на противоположном, т.е. задерка в полпериода, т.е. 500 нс для 1 МГц. Не должно быть никаких проблем с SPI и RS-422 на 1 МГц.


35 нс драйвер + 120 приемник (Datasheet на 3485) - худший случай разумеется. + задержки в линии передачи. (это для 10 Мбитного пп). Вот и подумайте. 500 нс разницы - это типовой случай (datasheet на ATMega). Думаю значительно усложниться прием данных с таким двойным преобразованием.
Serega Doc
А если взять обычный USART меги и на 16MHz в регистр скорости установить 1 (0) - мах скорость и это все передавать по RS485/RS422

Чем ограничена скорость в 115 кБод?
Aleks17
115 кБод это чей-то там стандарт по поводу связи по протоколу RS-232. Вас то никто не ограничивает. Единственное что следует понимать - что частота работы МК на приемной стороне должна быть раз в 8-16 выше битовой частоты для корректного приема. Собственно кто-то уже говорил: используйте асинхронный интерфейс.
asdf
Цитата(Serega Doc @ Jan 17 2006, 16:07) *
Нужно пересылать за короткий интервал времени пересылать большой объем информации!
Идеально подходит SPI по скорости но пугает его не защищенность от помех.
Как защитить от помех или какой интерфейс использовать для для больших объемов информации.

Растояние передачи до 20 м скорость около 1 Mbit но не менее 400 - 500 kbit


Не знаю насколько еще нужен ответ, но все же...
С наших датчиков мы гоняем SPI на расстояние 100м - до 1Мбит по витой паре на драйверах LVDS
- SN65LVDS051.
Gemini
Извините. Скорость SPI до 1-го МБита или ,например, можно и до 5-ти его пользовать?
rezident
Цитата(Gemini @ Apr 17 2006, 00:43) *
Извините. Скорость SPI до 1-го МБита или ,например, можно и до 5-ти его пользовать?

Да хоть на 100МГц, если устройства рядом расположены и оба способны тактироваться такой частотой. Обеспечьте качественную среду передачи, согласуйте линии, убедитесь что не будет критических времен запаздывания/опережения и/или слишком затянутых и/или отраженных фронтов сигналов и вперед! Разгоняйте! wink.gif
Gemini
Цитата(rezident @ Apr 16 2006, 21:09) *
отраженных фронтов сигналов

Это что такое и как с ним бороться?
Может на инглише назовете blink.gif
wladimiru
Цитата(Gemini @ Apr 16 2006, 23:56) *
Цитата(rezident @ Apr 16 2006, 21:09) *

отраженных фронтов сигналов

Это что такое и как с ним бороться?
Может на инглише назовете blink.gif

Отражения возникают в длинных линиях связи, если они не согласованы. Ключевые слова: Отражения в длинных линиях связи. Дальше поиск.
radist
случай из практики: передавал ринформацию по SPI на частоте 12,5 МГц. В пределах полметра всё работало идеально. Когда я сделал устройство полутораметровое, начались интересные чудеса. Во первыйх 1533АП5 драйвер не потянул, пришлось поставить ещё один посередине устройства (типа магистральный усилитель). Во вторых, появились те самы пресловутые отражения от конца устройства, где-то сантиметров на 10-15. Линия передачи, правда, была не особо согласованная. Экспериментально было учтановлено, что от этих отражений можно было двумя способами избавиться: либо снижать частоту, либо шаманским образом выбирать геометрическое место установки магистрального усилителя.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.