09.01.2015, 02:36
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,121
Сказал спасибо: 2,569
Сказали Спасибо 11,945 раз(а) в 5,992 сообщении(ях)
|
Re: Протокол для интерфейса Spi (да и I2c)
Сообщение от DropSoft
|
Смотря что нужно.
На Attiny13 делал...
|
Сам не вникал, товарищ этими вопросами занимается. Он сторонник стандартной тяжеловесности, а я его периодически возвращаю на землю. Модбас, конечно, удобен, когда не сильно кастрирован, но тяжел (повторяюсь).
А вообще, я сторонник простых решений, когда это возможно. Чем проще, тем меньше мест для граблей.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
09.01.2015, 03:17
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Протокол для интерфейса Spi (да и I2c)
Сообщение от akegor
|
А вообще, я сторонник простых решений, когда это возможно. Чем проще, тем меньше мест для граблей.
|
Передавать прямой и инверсный байты - и вся недолга. Никакого подсчёта CRC, контроль целостности данных на лету. Если все трое подключены по кольцу, то адрес необязателен, каждый съест свои байтики и подменит их ответом, а вот таймаут или сигнал сброса пакета мутить придётся - SPI-тырфейс синхронный.
Можно то же кольцо через USART организовать.
|
|
|
|
09.01.2015, 11:44
|
|
Гражданин KAZUS.RU
Регистрация: 15.02.2011
Адрес: Витебск, Беларусь.
Сообщений: 547
Сказал спасибо: 484
Сказали Спасибо 606 раз(а) в 214 сообщении(ях)
|
Re: Протокол для интерфейса Spi (да и I2c)
Понимаю, что не совсем вежливо в чужой теме переводить разговор на свои заморочки, но вопрос уж весьма схож:
Проектируется сеть несложных датчиков (пока 6 штук, возможно будет до 10) на базе Тини2313 с управлялкой на Меге16 (контроллеры уже есть). Разводка сети звездой, уже есть готовая (2 витых пары в кабеле). Длина лучей звезды - от 5 до 20 метров. Скорость обмена достаточна 19 кбод. Обмен двунаправленный. Система для своих нужд, с безопасностью жизнедеятельности не связана, т.е. сертификация и другие формальности не требуются. Здание офисное, т.е. уровень помех незначительный.
Предварительно решили использовать шину I2C с очень низкой тактовой частотой (19200 Гц), простейшим подсчетом контрольной суммы пакета данных (XOR) и повтором передачи при несовпадении суммы (пакет 16 байт). Но прозвучавшая здесь мысль о том, что любая импульсная наводка на линии SCL вызовет сдвиг на один бит, заставила крепко задуматься о возможности реализации данной концепции (сами об этом как-то не подумали). Действительно, несмотря на малую скорость передачи данных, аппаратный модуль USI медленней работать не станет, и будет легко ловить микросекундные помехи. А с учетом большой длительности пакета данных (около 8 мс), появилось опасение, что битых пакетов может оказаться больше, чем целых. Что посоветуете в данной ситуации?
|
|
|
|
09.01.2015, 12:06
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,072
Сказал спасибо: 3,054
Сказали Спасибо 3,223 раз(а) в 2,188 сообщении(ях)
|
Re: Протокол для интерфейса Spi (да и I2c)
Сообщение от shurik_ss
|
Предварительно решили использовать шину I2C
|
Ну какой "в красную армию" I2C (пусть даже на 5, а не на 20 метров), если у него высокий уровеь подтяжкой формируется? Конечно он Вам словит не только иголку, но и погоду на мысе Горн.
На мой взгляд - если не в одной комнате всё расположено, то только дифференциальная "физика" (например 485).
Последний раз редактировалось ForcePoint; 09.01.2015 в 12:09.
|
|
|
|
09.01.2015, 13:35
|
|
Гражданин KAZUS.RU
Регистрация: 15.02.2011
Адрес: Витебск, Беларусь.
Сообщений: 547
Сказал спасибо: 484
Сказали Спасибо 606 раз(а) в 214 сообщении(ях)
|
Re: Протокол для интерфейса Spi (да и I2c)
Сообщение от ForcePoint
|
Ну какой "в красную армию" I2C (пусть даже на 5, а не на 20 метров), если у него высокий уровеь подтяжкой формируется?
|
Ни у кого из разработчиков нашей системы нет совершенно никакого практического опыта разработки сколько-нибудь протяженных сетей. Отсюда и "детские" косяки. I2C выбран потому, что: 1) есть аппаратная поддержка в используемых контроллерах, 2) есть опыт работы (и программные наработки) с внутриприборными (короткими) шинами I2C, 3) хорошо ложится на топологию нашей сети, 4) не требует дополнительных интерфейсных схем. Повышенную емкость сети хотели компенсировать сильно заниженной скоростью передачи. Планировалось, что эта емкость снизит уровень "иголок". К затянутым фронтам теоретически контроллеры претензий иметь не должны. Но если Вы считаете, что это не заработает (полагаю, у Вас есть практический опыт подобных разработок), то мы без проблем откажемся от I2C.
Сообщение от ForcePoint
|
На мой взгляд - если не в одной комнате всё расположено, то только дифференциальная "физика" (например 485).
|
С дифференциальной физикой полностью согласен. Но конкретно по 485 есть вопросы. RS-485 строится по топологии шины, с терминаторами на концах. У нас уже есть звезда. С учетом наличия двух пар в луче, из звезды можно сделать шину, но она будет очень длинной. Или лучше оставить звезду, но тогда как ее правильно согласовать?
Кстати, на RS-485 тоже смотрели (его большой плюс в том, что используется весьма неплохой аппаратный модуль USART контроллеров), но сразу отвернулись по смешной причине: ближайший магазин, продающий по адекватной цене приемопередатчики к 485, нашли в Китае (покупаем за свои деньги, это идет как рацпредложение, и премия за него никак не учитывает наших затрат). Не захотели ждать два месяца, пока придет. Если до вечера ничего другого не посоветуют, сегодня же закажу у китайцев десяток. Мне работа с дифсигналом в данном случае нравится гораздо больше, чем с шиной I2C, и я легко могу отказаться от I2C, несмотря на то, что это будет сопровождаться некоторыми временными трудностями.
|
|
|
|
09.01.2015, 14:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Протокол для интерфейса Spi (да и I2c)
Сообщение от shurik_ss
|
У нас уже есть звезда. С учетом наличия двух пар в луче, из звезды можно сделать шину, но она будет очень длинной. Или лучше оставить звезду, но тогда как ее правильно согласовать?
|
Из звезды сделать шину пару пустяков.
|
|
|
|
09.01.2015, 14:16
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,121
Сказал спасибо: 2,569
Сказали Спасибо 11,945 раз(а) в 5,992 сообщении(ях)
|
Re: Протокол для интерфейса Spi (да и I2c)
Сообщение от shurik_ss
|
RS-485 строится по топологии шины, с терминаторами на концах. У нас уже есть звезда. С учетом наличия двух пар в луче, из звезды можно сделать шину, но она будет очень длинной. Или лучше оставить звезду, но тогда как ее правильно согласовать?
|
Возникал такой вопрос. Решили очень просто. Поскольку скорость нам достаточна небольшая, 19200, соединили звездой и без терминаторов. Все работает нормально. Да, расстояния до ста метров.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
09.01.2015, 14:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.12.2012
Адрес: Питер
Сообщений: 982
Сказал спасибо: 131
Сказали Спасибо 230 раз(а) в 157 сообщении(ях)
|
Re: Протокол для интерфейса Spi (да и I2c)
Сообщение от akegor
|
соединили звездой и без терминаторов. Все работает нормально
|
Жаль. Очень жаль. Вот так у нас интерфейсы и тестируют: если работает у нас в офисе, то будет работать и рядом с ядерным реактором.
Рекомендации по шинам и протоколам описаны вполне лаконично. Надо читать а не отсебятину пороть. Ладно на одном объекте, но когда изделие становится массовым: либо хренова туча пипла из саппорта, либо саппорта вовсе нет. RS-485 хорош, в промышленном применении если, знать о нем. Без вариантов. Стандарты подробно читать надо, а не бегло. Даже 485 можно запросто засохатить на 1 метре шины со скорость 800 бод.
|
|
|
|
09.01.2015, 14:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Протокол для интерфейса Spi (да и I2c)
Сообщение от akegor
|
соединили звездой и без терминаторов.
|
Ну уж признайтесь - в центре звезды стоят 120 Ом где нить
Да хорошо работает обычно 485.В моей практике было метров 700 по заводу протянуто и метров 350 с пробегом по мосту, по которому электрички бегают. Да много где применяли.
|
|
|
|
09.01.2015, 14:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.12.2012
Адрес: Питер
Сообщений: 982
Сказал спасибо: 131
Сказали Спасибо 230 раз(а) в 157 сообщении(ях)
|
Re: Протокол для интерфейса Spi (да и I2c)
По теме. Последней. RS-485. Только нужные функции. CRC16 можно заменить на сумму или на xor. Лучше организовать байт флагов. Мастер опрашивает только его. Если один из флагов установлен - мастер делает запрос на чтение регистров для данного устройства.
Сообщение от akegor
|
Он сторонник стандартной тяжеловесности
|
Modbus рекомендованный протокол. Так что хз где у него стандарт
Тема "Обрежьте жирок с RS-485" рекомендована к прочтению всеми, кто имеет с этим интерфейсом дело и кто её не читал.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:03.
|
|