PCでのGPIOの使用


9

ホストデバイスで、2つのピンを高ロジックレベル(電圧3.3V、5Vまたは12V-重要ではない)で駆動し、他の2つのピンが周辺デバイスによって高レベルに駆動されるのを待つ単純なプロジェクトがあります。

このようなホストデバイスを標準のPCで実装できますか?また、どのハードウェア(組み込みまたは追加)を使用する必要がありますか?


2
mccdaq.comのようなものを購入したいとお考えですか?
ケニー

1
興味があります。多分PCには目的に合わせていくつかの組み込み機能(コントローラー、ピン)がありますか?そうでない場合-購入する解決策を見つける(ところで、リンクをありがとう!)
Andrey Pesoshin

1
シンプルで経済的なソリューションとして考えられるのは、MSP430 LaunchpadのようなものをUSB経由でPCに接続し、S / H(Fedex 2日、世界中の)、またはArduinoのPC側でプログラムされたAVR(ビットバンギングUSBを備えたattiny85など)を使用したより安価なDIYボード(好きな場合)。
icarus74 2013年

回答:


7

PCに何をしてほしいのか、デバイスが何をするのか(「ホストデバイス」は意味がありません)は明確ではありませんが、PCからの基本的なデジタルI / Oが必要なようです。

PCは、実際には外部デバイスへの直接デジタルI / O用に設計されていません。しかし、USBを介してPCに接続するデジタルI / Oモジュールを購入すると、個々のデジタル信号の読み取りと書き込みが可能になります。マイクロコントローラーにCOMポート経由でPCと通信させることにより、これを最も簡単に自分で行うことができます。

しかし、これが本当に単純な制御問題である場合、なぜPCが必要なのでしょうか。小さなマイクロコントローラーにタスク全体を実行させます。それがまさにmicronctrollersの目的です。これらは、外部ハードウェアに直接接続することを目的とした、デジタルおよびその他のI / Oラインを備えた小型コンピューターです。


1
必要な機能の完全な説明はありませんが、彼はデュアルSRフリップフロップを必要としていると思います。これは、10億トランジスタのCPUでエミュレートできます:-)。
stevenvh 2012年

1
ご回答有難うございます。実行するソリューションはたくさんあることは理解していますが、外部デバイスをPCに直接接続することについて確かに質問したいと思います。今では、直接行うことはできませんが、追加のコントローラーまたはI / Oボードを使用していることがわかります。
Andrey Pesoshin 2012年

@stevenvhわかりにくいようにプロジェクトの説明を簡略化しました;)インターフェイス部分だけを明確にする必要があります
Andrey Pesoshin

13

それでも見つけることができる場合は、真のパラレルポートが市販のPCで見つかるのと同じくらいGPIOに近いことを言及する価値があります。従来の実装では、ピンの多くが方向が固定されていたり、一部が逆になっているという点で柔軟性に欠けていますが、人々は何年にもわたってその問題に取り組んできました。

より大きな制限は、そのようなポートが絶滅しつつあることです。USBパラレルコンバーターなどのより抽象的な置換は、通常、実際のプリンターを制御するためにのみ使用でき、ピンの状態を設定または監視するために直接読み書きできるレジスターがありません。この機能を備えたものがあると噂されていますが、見つけるのが難しく、ドライバーに細心の注意を払う必要があります。

その時点で、USB接続のI / Oデバイスを使用する方がより実用的になる傾向があります。多くの場合、これは、製造元またはカスタムからの単純なファームウェアを実行するマイクロコントローラーです。

カスタム実装の主な利点の1つは、I / O操作の最も低いレベル、最も反復的なタイミングの重要な部分をデバイスのプロセッサにオフロードできることです。 USBパケット化、複数バスのトラバース、およびマルチタスクオペレーティングシステムは、ビットごとの操作を非常に遅くする傾向があります。

ソリューションがどのような形を取るかをまだ正確に理解していない場合、1つの可能性は、使いやすさのためにハードウェアとツールチェーンの両方の意味でパッケージ化されたArduinoのようなものを取得することです。接続されたPCからのコマンドの下で低レベルのタスクを実行するI / Oヘルパーとして。


2
OPがパラレルポートルートを選択する場合、NTベースのOS(つまり、過去10年間にリリースされたすべてのWindows OS)がパラレルポートにアクセスするために特別なカーネルモードドライバーを必要とすることは注目に値します。カーネルモードのコード署名ポリシーを備えたWindowsのバージョン(Vista / W7 x64、場合によってはW7 x86など)を使用している場合は、このドライバーもデジタル署名する必要があります。
ajs410 2012年

1
すばらしい回答です。できれば投票します:-)
Andrey Pesoshin

1
@ ajs410-このようなコード署名要件は、USBなどの他のインターフェイスのドライバーにも適用される可能性があります。1つの可能な実行は、オペレーティングシステムが既にドライバーコードを提供しているものを使用することであり、必要なのは、構成/情報ファイル、たとえば仮想COMポートだけです。これはGPIOではありませんが、GPIOを持つヘルパーマイクロと通信するためのコマンド/ステータスチャネルとして使用できます。
Chris Stratton

8

ビットバンモードを有効にする特別なドライバーを使用してFTDI FT232RLを使用することをお勧めします。この方法は事実上すべてのPCで機能し、シンプルなGPIOへのまともな遅延アクセスを可能にします。
そこには多くのFTDIチップブレイクアウトボードがありますが、私はこれを個人的に使用しています。


アドバイスをありがとう、それはハックのように聞こえますが、うまくいくはずです。私は同様のソリューションを見つけました8チャンネルUSB GPIOモジュール
Andrey Pesoshin '19年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.