У меня есть устройство на базе PIC24F, которое обычно подключается к ПК через USB. Таким образом, устройством можно управлять с помощью программного обеспечения для ПК. Я хочу добавить дополнительный блок ручного управления, который также можно подключить к отдельному разъему на основном устройстве и использовать для управления устройством и чтения/отображения данных с основного устройства. Этот блок ручного управления также будет основан на PIC. Я пытаюсь решить, какой метод связи использовать между основным устройством и дополнительным блоком ручного управления. Мне нравится идея SPI, но я знаю, что она не предназначена для использования на больших расстояниях. Как вы думаете, лучшим вариантом было бы просто использовать модули UART с линейными приемопередатчиками RS-232 для усиления сигнала до +/- 12 вольт? Неужели нет других вариантов?
Один из вариантов (при условии, что желаемое устройство поддерживает его ... многие PIC от Microchip) - это система обмена сообщениями CAN. Он широко используется в автомобилях, например, датчик скорости вращения шины и акселерометр могут связываться с компьютером подушки безопасности. Протокол разработан таким образом, что вы можете иметь неограниченное количество устройств, обменивающихся данными по одной шине без коллизий.
Я использую его в своей компании для связи между продуктом и контроллером на расстоянии до 200 футов. Самая высокая стандартная скорость передачи данных составляет 1 Мбит/с. Это довольно легко реализовать на C. Если вы решите это сделать, вам понадобится трансивер CAN; что-то вроде MCP2551 от Microchip.
Вот спецификация , вот соответствующие примечания к приложениям AN713 и AN754.
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 штук.
Изменить: вы должны использовать этот пульт.
Я использовал их: приемник RF Link 4800bps - 315 МГц и передатчик RF Link - 315 МГц.
У меня есть 2 разные частоты, одна для отправки и одна для приема. Я успешно использовал их на расстоянии до 30 футов, используя 5 В для их питания. У Sparkfun есть и другие устройства беспроводной связи.
Существуют различные устройства ZigBee, которые можно использовать так же, как UART, и ими должно быть просто управлять с устройства PIC. Например, XBee довольно прост в использовании и очень доступен по цене. По моему опыту, мне удавалось передавать и получать данные в переполненном офисе на расстоянии более 100 футов, а на широком открытом пространстве мы могли работать намного лучше, особенно с хорошими антеннами. На мой взгляд, беспроводная связь намного предпочтительнее 30-футовой. длинный кабель!
MIDI-интерфейс был разработан для надежной связи на расстоянии более 50 футов. Требуемое аппаратное обеспечение (оптоизолятор, диод и несколько резисторов, а также интегральная схема или транзисторный инвертор) стоит дешевле и имеет лучшую производительность при передаче по длинным линиям, чем аппаратное обеспечение, необходимое для связи +/- 12 В RS232.
тыблу
Кевин Вермеер
Кенни