7

予備的な話

パラレル ポートを使用して他のハードウェアと同期するこのプログラムがあります。パラレル ポート出力を指定された (バイト) 値に設定します。これは、PC の内蔵パラレル ポートを使用する場合には問題なく動作します。ターゲット プラットフォームは Windows XP から 7 で、これまでのところすべて正常に動作しています。ソース コードは Delphi であり、アクセス可能で、変更できます。

使い方

Delphi では、io.dllを使用してパラレル ポートの値を設定できますが、 inpout32.dllport.dllなど、他のソリューションも利用できます。のようなものを呼び出しPortOut、ポート番号とバイト値を指定すると、ポートが設定されます。

今やりたいこと、助けが必要なところ

変更点: これは、パラレル ポートが組み込まれていないマシン (メインボード上でさえ) で動作する必要があります。いくつかのオプションが利用可能です:

  • USB からパラレル ポートへのアダプタを使用して、LPT ポートを PC に追加します。
  • PCにLPTポートを追加するPCIカードを使用する
  • PCにLPTポートを追加するPCI Expressカードを使用する

私は現在、最も簡単で安価な可能性である USB からパラレル ポートへのアダプターを探して集中しています。

主な質問

プリンターだけを接続するように作られたパラレル ポート アダプターと、より強力に見える他のアダプターとの間には違いがあるようです。本当に違いはありますか?それとも、これらの 5 ドルのプリンタ アダプタの 1 つを使用して、独自のハードウェアを接続し、Delphi コードからポートにアクセスできますか? それとも特別なアダプターが必要ですか?誰もこれを経験していますか?ここに関連する質問がありますが、さまざまなアダプターの種類 (存在する場合) については言及されていません。このページは、実際に違いがあることを示唆しています:

プリンタのみに接続できる他のすべての USB パラレル ポートとは対照的に、これはほとんどのハードウェアに接続します。

USB 経由のソリューションが存在することを願っています。これは、PC を開く必要がないためです。つまり、必要に応じてアダプターを追加できます。

サブ質問

PCI (Express) ソリューションの経験はありますか? USB アプローチがうまくいかない場合は、1 つを使用する必要があります。

4

1 に答える 1

9

私は最近まさにこのことに取り組んでいるので、ここに私が発見したものがあります。IO ポート アドレス指定 (inpout32.dll への参照によって示される) を使用することを意味する場合は、いいえ。USB パラレル ポート ドライバーが完全なポート エミュレーションまたは仮想化をサポートしていない限り (ほとんどの場合サポートしていません)、これは通常不可能です。通常の「ビット操作」を行うためにポートに直接アクセスする必要がある場合は、別のパラレル ポート PCI カードを入手する必要があります。それらのほとんどは、標準アドレスで通常の IO として表示されます。パラレル ポートを使用して実際にプリンタと通信する予定はないと思いますよね?

興味深いのは、USB シリアル アダプタは、単純なストリームを使用して単純に「開く」ことができる単純な仮想デバイスとして表示されるため、はるかに使いやすいということです。TFileStream.Create("COM1", fmOpenRead) または Windows.CreateFile("COM2", ...);

以下は、USB 経由でパラレル ポートの完全なエミュレーションを行うと主張するデバイスの一部です。

https://www-user.tu-chemnitz.de/~ygu/bastelecke/PC/USB2LPT/index.en.htm

于 2010-11-18T18:54:12.663 に答える