У меня есть простой проект на хост-устройстве, который должен управлять двумя контактами с высоким логическим уровнем (напряжение 3,3 В, 5 В или 12 В - не имеет значения) и ждать, пока 2 других контакта перестанут работать на высоком уровне от периферийного устройства.
Могу ли я реализовать такое хост-устройство со стандартным ПК и какое оборудование (встроенное или дополнительное) мне следует использовать?
Ответы:
Непонятно, что вы хотите, чтобы ПК делал и что должно делать устройство («хост-устройство» не имеет смысла), но, похоже, вам нужен базовый цифровой ввод-вывод с ПК.
ПК на самом деле не предназначены для прямого цифрового ввода-вывода на внешние устройства. Но вы можете купить модули цифрового ввода-вывода, которые подключаются к ПК через USB, что позволяет вам читать и записывать отдельные цифровые сигналы. Вы можете сделать это самостоятельно проще всего, подключив микроконтроллер к ПК через COM-порт.
Однако, если это действительно простая проблема управления, зачем вам вообще нужен ПК? Пусть маленький микроконтроллер сделает всю задачу сам. Это именно то, для чего предназначены микроконтроллеры. Это небольшие компьютеры с цифровыми и другими линиями ввода / вывода, которые предназначены для прямого подключения к внешнему оборудованию.
источник
Если вы все еще можете найти его, стоит упомянуть, что настоящий параллельный порт примерно так же близок к GPIO, как и в готовом ПК. Классическим реализациям не хватает гибкости, так как многие выводы имеют фиксированное направление, а некоторые перевернуты, но люди работали над этим годами.
Большим ограничением является то, что такие порты вымирают. Более абстрактные замены, такие как USB-параллельные преобразователи, обычно используются только для управления реальными принтерами, и в них отсутствуют регистры, которые вы можете напрямую считывать / записывать для установки или контроля состояния выводов. Ходили слухи, что есть несколько людей, которые имеют такую возможность, но их может быть сложно найти, и они требуют подробного внимания водителей.
В этот момент становится более практичным использование устройства ввода-вывода, подключенного через USB. Часто это микроконтроллер под управлением простой прошивки, либо от производителя, либо на заказ.
Одним из основных преимуществ пользовательской реализации является возможность разгрузки самых низкоуровневых, наиболее повторяющихся и / или синхронизирующих критических частей операций ввода-вывода в процессор на устройстве вместо попытки сделать это с ПК, где задержка составляет Пакетирование через USB, обход нескольких шин и многозадачные операционные системы, как правило, делают битовые операции мучительно медленными.
Если вы еще не выяснили, какую именно форму примет ваше решение, одна из возможностей - взять что-то вроде Arduino, которое упаковано как в аппаратном, так и в инструментальном смысле для простоты использования, и может работать как автономное решение или как отдельное решение. в качестве помощника ввода / вывода для выполнения низкоуровневых задач по команде с подключенного ПК.
источник
Я бы порекомендовал использовать FTDI FT232RL, используя специальный драйвер, который включает режим бит-бенга . Этот метод будет работать практически на всех ПК и обеспечивает приличный доступ к простой GPIO с задержкой.
Существует много плат для обмена чипами FTDI, но я лично использую эту .
источник