Связь между PIC на расстоянии более 30 футов

У меня есть устройство на базе PIC24F, которое обычно подключается к ПК через USB. Таким образом, устройством можно управлять с помощью программного обеспечения для ПК. Я хочу добавить дополнительный блок ручного управления, который также можно подключить к отдельному разъему на основном устройстве и использовать для управления устройством и чтения/отображения данных с основного устройства. Этот блок ручного управления также будет основан на PIC. Я пытаюсь решить, какой метод связи использовать между основным устройством и дополнительным блоком ручного управления. Мне нравится идея SPI, но я знаю, что она не предназначена для использования на больших расстояниях. Как вы думаете, лучшим вариантом было бы просто использовать модули UART с линейными приемопередатчиками RS-232 для усиления сигнала до +/- 12 вольт? Неужели нет других вариантов?

Есть RS485, но 30 футов легко в тихих условиях. Тихо?
Есть ли у вас сильные предпочтения в отношении проводных/беспроводных протоколов?
Множество вариантов ниже, основанных на устройствах USB RS232, дешевы и просты, я бы использовал RS232. 30 футов будут иметь максимальную скорость. lammertbies.nl/comm/info/RS-485.html

Ответы (7)

Один из вариантов (при условии, что желаемое устройство поддерживает его ... многие PIC от Microchip) - это система обмена сообщениями CAN. Он широко используется в автомобилях, например, датчик скорости вращения шины и акселерометр могут связываться с компьютером подушки безопасности. Протокол разработан таким образом, что вы можете иметь неограниченное количество устройств, обменивающихся данными по одной шине без коллизий.

Я использую его в своей компании для связи между продуктом и контроллером на расстоянии до 200 футов. Самая высокая стандартная скорость передачи данных составляет 1 Мбит/с. Это довольно легко реализовать на C. Если вы решите это сделать, вам понадобится трансивер CAN; что-то вроде MCP2551 от Microchip.

Вот спецификация , вот соответствующие примечания к приложениям AN713 и AN754.

+1 CAN надежен. Однако я не думаю, что это определяет аппаратный/физический уровень. Какое напряжение и схему кабеля вы используете?
Мы обычно 5VDC по экранированной витой паре. Это редкость, большинство автомобильных приложений используют 12 вольт. Для 30-футового пробега в чем-то менее шумном, чем микроволновая печь, я бы сначала попробовал использовать CAT5 с питанием 5 В постоянного тока, потому что это дешево и, вероятно, будет работать нормально. редактировать: я работаю в сфере промышленного освещения, а не автомобильного
+1 за МОЖЕТ. Аппаратный уровень определен, особенно. если вы выберете протокол, такой как CANopen

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

Я реализовал протокол DMX, используемый для систем театрального освещения, который является разновидностью RS-485, и он работал в шумной среде, по крайней мере, на расстоянии до 100 футов. Это использовало PIC16F877A и драйвер линии RS-485 для передачи, а также несколько других блоков приемника с теми же микроконтроллерами, соединенными последовательно вдоль 100-футовой линии с согласующим резистором на конце... это работало хорошо.

На самом деле у Microchip есть очень хорошее техническое описание по этому вопросу с некоторыми принципиальными схемами и примерами ассемблерного кода.

Да, RS232 будет работать. Держите скорость в бодах хорошей и низкой, и 30 футов не проблема. Но длинные кабели доставляют неудобства, поэтому беспроводная связь кажется привлекательной. Тем более, что качественный 30-футовый кабель RS-232 стоит немалых денег.

Другие идеи для рассмотрения:

  • если односторонняя связь приемлема, поместите ИК-приемник на коробку и запрограммируйте его на прослушивание потребительского ИК-управления. Используйте коды популярного пульта, чтобы работал универсальный пульт за 8 долларов.

  • если вы управляете программным обеспечением хоста на ПК, откройте порт Ethernet и обслуживайте веб-страницы с нужными функциями и элементами управления на них. Любой iPad или смартфон с поддержкой Wi-Fi становится пультом дистанционного управления, а удаленный мониторинг упрощается. Вы даже можете заменить USB портом Ethernet, но это добавит некоторую сложность коробке.

  • Посмотрите на беспроводные модули ISM-диапазона, такие как 24L01 от Nordic и компоненты CCxxxx от TI. Sparkfun продает некоторые модули. Если речь идет о реальном продукте, использование предварительно сертифицированных FCC модулей может сэкономить деньги, поскольку сертификат FCC стоит дорого. Я бы сказал, что модули имеют смысл при объемах продукции до 5000 штук.

Изменить: вы должны использовать этот пульт.

Чтобы добавить к ответу RS232 : убедитесь, что вы внедрили улучшенную проверку ошибок поверх четности (CRC или что-то еще). Вы можете использовать кабель CAT5e или CAT6, в зависимости от вашей среды, что является дешевым.

Я использовал их: приемник RF Link 4800bps - 315 МГц и передатчик RF Link - 315 МГц.

У меня есть 2 разные частоты, одна для отправки и одна для приема. Я успешно использовал их на расстоянии до 30 футов, используя 5 В для их питания. У Sparkfun есть и другие устройства беспроводной связи.

Я только что смотрел на продукты xbee и bluetooth.
xbee, судя по тому, что я слышал, отлично работает, я, вероятно, скоро возьму несколько.
Стоит отметить, что я считаю, что связанные радиочастотные модули не имеют проверки или исправления ошибок. Проверка правильности передаваемых данных полностью зависит от пользователя. Любой шум во время передачи данных может вызвать ошибки, которые нельзя будет обнаружить, если вы не проверите четность или CRC.
@Fake Name Да, вы правы, в связанных радиочастотных модулях нет проверки ошибок, это очень простые устройства, поэтому никаких наворотов.

Существуют различные устройства ZigBee, которые можно использовать так же, как UART, и ими должно быть просто управлять с устройства PIC. Например, XBee довольно прост в использовании и очень доступен по цене. По моему опыту, мне удавалось передавать и получать данные в переполненном офисе на расстоянии более 100 футов, а на широком открытом пространстве мы могли работать намного лучше, особенно с хорошими антеннами. На мой взгляд, беспроводная связь намного предпочтительнее 30-футовой. длинный кабель!

Я согласен. Модули Digi xbee могут быть дешевле кабеля! Они пройдут 10-20 м без антенны и 100 м сквозь стены даже с куском провода длиной 1/4 длины волны в качестве антенны. Они также обеспечивают полную проверку ошибок и даже шифрование.

MIDI-интерфейс был разработан для надежной связи на расстоянии более 50 футов. Требуемое аппаратное обеспечение (оптоизолятор, диод и несколько резисторов, а также интегральная схема или транзисторный инвертор) стоит дешевле и имеет лучшую производительность при передаче по длинным линиям, чем аппаратное обеспечение, необходимое для связи +/- 12 В RS232.