J'ai un projet simple sur le périphérique hôte qui devrait piloter 2 broches avec un niveau logique élevé (tension 3,3 V, 5 V ou 12 V - peu importe) et attendre que 2 autres broches soient entraînées à haut niveau par le périphérique.
Puis-je implémenter un tel périphérique hôte avec un PC standard et quel matériel (intégré ou supplémentaire) dois-je utiliser?
Réponses:
Il n'est pas clair ce que vous voulez que le PC fasse et ce que le périphérique est censé faire ("périphérique hôte" n'a aucun sens), mais il semble que vous souhaitiez des E / S numériques de base à partir d'un PC.
Les PC ne sont pas vraiment conçus pour des E / S numériques directes vers des périphériques externes. Mais, vous pouvez acheter des modules d'E / S numériques qui se connectent au PC via USB, qui vous permettent ensuite de lire et d'écrire des signaux numériques individuels. Vous pouvez le faire vous-même plus facilement en faisant communiquer un microcontrôleur avec le PC via un port COM.
Cependant, si ce n'est vraiment qu'un simple problème de contrôle, pourquoi avez-vous besoin d'un PC? Demandez à un petit microcontrôleur d'effectuer lui-même toute la tâche. C'est exactement à cela que servent les micro-contrôleurs. Ce sont de petits ordinateurs avec des lignes d'E / S numériques et autres qui sont destinées à se connecter directement au matériel externe.
la source
Si vous pouvez toujours en trouver un, il convient de mentionner qu'un véritable port parallèle est à peu près aussi proche d'un GPIO que vous le trouverez dans un PC standard. Les implémentations classiques manquent de flexibilité dans la mesure où de nombreuses broches ont une direction fixe, et certaines sont inversées, mais les gens y travaillent depuis des années.
La plus grande limitation est que ces ports sont en voie d'extinction. Les remplacements plus abstraits tels que les convertisseurs USB-parallèles ne sont généralement utilisables que pour contrôler les imprimantes réelles et manquent de registres que vous pouvez directement lire / écrire pour définir ou surveiller l'état des broches. Il y a eu des rumeurs selon lesquelles certains ont cette capacité, mais ils peuvent être difficiles à trouver et nécessitent une attention particulière aux pilotes.
À ce stade, il devient plus pratique d'utiliser un périphérique d'E / S connecté par USB. Il s'agit souvent d'un microcontrôleur exécutant un micrologiciel simple, du fabricant ou personnalisé.
Un avantage majeur d'une implémentation personnalisée est la possibilité de décharger le processeur le plus bas, le plus répétitif et / ou le moment le plus critique de la manipulation des E / S vers le processeur de l'appareil, au lieu d'essayer de le faire à partir du PC où la latence de La mise en paquets USB, la traversée de plusieurs bus et les systèmes d'exploitation multitâche ont tendance à ralentir douloureusement les opérations bit par bit.
Si vous n'avez pas encore compris exactement la forme que prendra votre solution, une possibilité consiste à saisir quelque chose comme un Arduino qui est empaqueté à la fois au niveau du matériel et de la chaîne d'outils pour une facilité d'utilisation, et pourrait fonctionner soit comme une solution autonome, soit en tant qu'assistant d'E / S pour effectuer des tâches de bas niveau sous la commande d'un PC connecté.
la source
Je recommanderais d'utiliser un FTDI FT232RL en utilisant un pilote spécial qui active son mode bitbang . Cette méthode fonctionnera sur pratiquement tous les PC et permet un accès de latence décent à un simple GPIO.
Il existe de nombreuses cartes breakout FTDI, mais j'utilise personnellement celle-ci .
la source