задержка в линии связи и SPI - какова будет скорость[закрыт]

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

задержка в линии связи и SPI - какова будет скорость[закрыт]

Сообщение Kavka »

Доброго времени суток.

Есть идея, пока абстрактно, подключения некого устройства расположенного далеко (сотни метров) от контроллера по SPI. Обычный SPI - три сигнала и "земля". Схемное исполнение пока не рассматривается.
Задача в том, чтобы рассчитать максимально допустимую скорость тактирования (пока теоретически, оценочно).
Упрощённо картина представляет вот такой.
Изображение
Естественно, в линии связи получается задержка на распространение сигнала (Тз). Задержка одинаковая в обе стороны.
Таким образом, если установка (на mosi) и выборка (на miso) данных у МК происходить по нарастающему фронту тактового сигнала (clk), то этот фронт должен дойти до устройства и данные выставленные устройством по этому фронту должны дойти до МК. Таким образом, как я это вижу, получается что время между двумя последовательными нарастающими фронтами (период тактового сигнала) должно быть больше чем 2*Тз.
В случае же работы SPI в режиме 3 (по даташиту на ATmega48/88/168, рис. 18-4), время 2*Тз будет соответствовать половине периода тактового сигнала. Т.е. период должен быть больше 4*Тз.

Если кто увидел ошибку в моих рассуждениях - излагайте ваши комментарии и соображения.
Вложения
delay_in_line.png
(11.71 КБ) 1128 скачиваний
Последний раз редактировалось Kavka Ср апр 25, 2012 10:11:40, всего редактировалось 1 раз.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: задержка в линии связи и SPI - какова будет скорость

Сообщение Gudd-Head »

Обязательно ли SPI на такие длины? Может, лучше RS485?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Аватара пользователя
demson
IT KT
Сообщения: 1309
Зарегистрирован: Пн авг 25, 2008 08:49:33
Контактная информация:

Re: задержка в линии связи и SPI - какова будет скорость

Сообщение demson »

а если ВЧ заполнение, то может и потянуть, хотя лучше 485, да.
в спорах рождается ИСТИНА [AND] flud.
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: задержка в линии связи и SPI - какова будет скорость

Сообщение igor-x »

на сотнях метров уже скажется емкость проводов.. наводки и прочие нехорошие вещи.
поэтому при разговоре о скорости , нужно приводить реальные условия работы схемы.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: задержка в линии связи и SPI - какова будет скорость

Сообщение Kavka »

Написал же
Kavka писал(а):Схемное исполнение пока не рассматривается.
Использование дифференциальных приёмо-передатчиков вполне возможно, но сейчас не об этом речь. А о том, что есть задержка в канале передачи данных, в которую входит всё - задержка в электронных компонентах, преодоление ёмкости проводов, задержка распространения (скорость света) и всё что не назвал. И исходя из этой задержки надо прикинуть максимальную частоту тактирования при которой SPI будет работать как положено.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: задержка в линии связи и SPI - какова будет скорость

Сообщение ibiza11 »

то что есть задержки ничего страшного, главное чтобы линия успевала реагировать на ваши сигналы. объясняю: вы отправляете в момент t=0; дойдет до устройства в момент t=x; но ведь это не значит, что вам нужно ждать, пока пройдет этот момент "x", чтобы еще что-то отправить. шлите без ожидания, до устройства придет с задержкой и всего-то. от этого вы скорость не теряете.
теперь по поводу "реакции" линии на ваши сигналы: она напрямую зависит от емкости линии связи, чем больше емкость - тем больше время нарастания/спада сигнала (длина фронта). (обычно они равны друг другу). Именно это может хоть как то ограничивать пропускную способность.
Пример: если скорость нарастания/спада t=2мкс, в сумме T=4мкс, то корректно вы сможете передать по этой линии сигналы с частотой не более f=1/T=250кГц. В теории. :) В практике я бы конечно обезопасил себя, еще больше ограничив скорость)


П.С. По поводу помех правильно заметили. В зависимости от фонового электро-магнитного шума может меняться и корректность распознавания данных приемником. Многие проблемы решаются все тем же родным rs485 с витой парой, о котором уже упоминали.
Ставим плюсы: )
Реклама
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: задержка в линии связи и SPI - какова будет скорость

Сообщение Kavka »

Да опять вы о проводах, помехах и т.д. Отвлекитесь от железа! Пока речь о теории.
Вы не учитываете, что SPI синхронный и, скажем так, фиксация входящего бита осуществляется относительно тактового сигнала на стороне главного устройства. Не забывайте ещё, что передача и приём идут одновременно! Т.е. данные от подчинённого должны уже устоятся к моменту фиксации.
Вот, например, для "mode 3" (см. картинку) установка данных происходит по ниспадающему фронту, а фиксация по нарастающему. Таким образом за половину периода тактового сигнала фронт сигнала от главного должен дойти до подчинённого, тот, по фронту, должен выставить свой уровень на miso и этот уровень должен дойти (вернуться) до главного и устоятся.
Если действовать как предложили вы, то если сигнал от подчинённого не будет успевать возвращаться к главному за половину периода, то принимаемые данные будут сдвинуты на 1 или более бит, в зависимости от задержки в линии и частоты. Причём часть бит может быть потеряна.
Изображение
Вложения
SPI.png
(24.51 КБ) 1185 скачиваний
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: задержка в линии связи и SPI - какова будет скорость

Сообщение ibiza11 »

забыл про синхронность SPI, тактовые импульсы подает мастер, а данные выдает слейв.
в теории: период тактовых импульсов должен быть как минимум вдвое больше величины задержки. все!)
Ставим плюсы: )
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: задержка в линии связи и SPI - какова будет скорость

Сообщение Kavka »

Судя по отсутствию дельной критики, направление выбрано правильное :-)
Если не привязываться к конкретному режиму SPI, то под итожить можно, думаю, так. (Речь о сигналах со стороны главного SPI устройства.)
Если время между фронтом на котором выставляются данные и фронтом на котором происходит фиксация данных обозначить за T. А время задержки в линии передачи обозначить как Td. То должно быть T > 2*Td.

По поводу проводов, помех, RS-485/422 и т.д.
Нарыл вот такую картинку (прицеплена к сообщению).
Там, к стати, решается вопрос скорости за счёт небольшой избыточности.
Вложения
SPI_over_RS422.png
(53.95 КБ) 582 скачивания
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: задержка в линии связи и SPI - какова будет скорость

Сообщение Jack_A »

Честно, не понимаю я этой упертости в SPI. Он в общем-то для внутриблочной преимущественно передачи. Старая добрая токовая петля или RS485 решают эту задачу на раз. И "скорость света" тут, как я понимаю, для юмора обозначена - основное ограничение на скорость передачи накладывает емкость линии связи.
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: задержка в линии связи и SPI - какова будет скорость

Сообщение Kavka »

Ну, например, есть устройство с интерфейсом SPI и его надо подключить по линии диной 1000 метров. Вот и встаёт задача как "протолкнуть" SPI на такое расстояние. А если при этом надо ещё и задержки минимизировать при работе с устройством, то прослойка SPI-RS485-SPI будет добавлять задержку на буферизацию. Вот и получается, что надо "заворачивать" SPI в RS-485/422, как на картинке в предыдущем моём сообщении.

А про скорость света - 1000 метров в одну сторону == 3,3 мкс.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: задержка в линии связи и SPI - какова будет скорость

Сообщение igor-x »

Kavka писал(а): 3,3 мкс.
а скажите конечные требования на устройство?
например - передать данные с определенной скоростью на расстояние 100 метров ?
так может действительно не заморачиваться с SPI (это скорее внутриприборный интерфейс), а выбрать
как рекомендуют предидущие ораторы, тот который лучше впишется в вашу задачу(внешние условия)
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: задержка в линии связи и SPI - какова будет скорость

Сообщение Kavka »

Рассматривается (пока в теории) возможность подключить готовый прибор с интерфейсом SPI к МК на большом (известном, 800-1000м) удалении. Исходя из удаления надо прикинуть скорость, которую можно получить - может до железа и дело не дойдёт, так как скорости не хватит.

Добавил: скорости не хватает, даже в теории. Вопрос закрыт.

Добавил: Забыл сказать - всем спасибо за участие!
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»