デスクトップコンピューターのマザーボードにはGPIOがありますか?そうした場合、それらからの読み取りまたは書き込み方法


21

デスクトップコンピューターのマザーボードにあるマイクロコントローラーのGPIOピンのようなピンを見たことがありますが、最初に知りたいのは、本当にGPIOなのでしょうか?はいの場合、それらからの読み取りまたは書き込みは可能ですか?


2
マザーボードのデータシートに記載されているとおりです。それ以外は、この質問は推測を求めているだけです。

1
@OlinLathrop彼らがそうなら、どうすれば彼らと通信できますか?オペレーティングシステムには、この目的のための組み込みAPIがありますか?またはプログラミング言語用のAPIはありますか?

2
「マイクロコントローラのGPIOピンのようなピン」どのように「好き」ですか?すべてのピンは同じように見える...
ユージンのShを。

デスクトップコンピューターのGPIOピンに出くわしたことはありません。それらのように見えるものは、ほとんどの場合、周辺機器の拡張機能(USBヘッダー、オーディオヘッダーなど)またはLEDのスイッチと出力の入力です。それが一般的な機能である場合、シリアルポートのDTRをGPIOまたはパラレルポートとして使用する方法に関するアドバイスがインターネットに散らばることはありません。この質問はここには属さないと思います。

2
x86 CPUには一般にGPIOピンがなく、すべてのピンはMCUで一般的なPIO多重化なしで特定のオンダイ周辺機器に向けられます。ただし、GPIOのような機能は多くの場合、アーキテクチャの一部であり、マザーボード上の(通常はメモリマップされた)ペリフェラルによって処理されます。チップセットには、いくつかの低レベルバス(センサーのSPIおよびI2C)とGPIOの利用可能な正確な性質があります。使用するマザーボードとチップセット/アーキテクチャに依存します。
古典的な

回答:


15

通常のPCには、「汎用であることを意図したピン」という意味でのGPIOはありません。PCマザーボードのコネクタ(内部ヘッダーまたは外部ポート)はすべて、特定の機能用に設計されています。ただし、それらのいくつかは、あなた自身の目的のために再利用することができます。

PCが持っているGPIOに最も近いものは、おそらく多数のデータ行とハンドシェイク行があるパラレルプリンターポートです。これらのラインはGPIOピンに多少似ていますが、方向に関して柔軟性が低くなります。http://retired.beyondlogic.org/spp/parallel.htm

シリアルポートのハンドシェイクラインは、奇妙な電圧レベルですが、一般的なIOとしても使用できます。

パラレルポートとシリアルポートは以前ほど一般的ではありませんが、買い物をしていれば、まだ搭載されているマザーボードを見つけるのは非常に簡単です。

ケースLED、ボタンなどを対象とした入力と出力を再利用することもできますが、詳細は特定のシステムに非常に固有のものになると思います。

PCは、さまざまな管理機能にSMBUSと呼ばれるI2Cベースのバスを使用します。これまでに、バスにはんだ付けワイヤを介してこのバスに自分のI2Cデバイスを置いたという報告を見たことはあるでしょうが、今はリンクが見つかりません。

モニターの識別に使用されるビデオポートには別のI2Cバスがあります。ソフトウェアにアクセスできるかどうかは、使用しているOSおよびビデオハードウェアによって異なりますhttp://www.instructables.com/id/Worlds-Cheapest-I2C-I-Squared-C-Adapter/step5/Software-and-プロジェクト/

そしてもちろん、USBがあります。現在、これに接続するために使用できるUSBインターフェイスを備えた安価なマイクロコントローラがあります。


2

マザーボードにGPIOがあるかどうかという質問は、モデルとメーカーに非常に固有のものだと思います。ある人はそうでないかもしれません。

たとえば、Asusデスクトップボードには、ファン制御と温度読み取り用のNuvoton NCT6775が含まれています。これは、ベンダーのカスタムBIOSおよびWindowsデスクトップユーティリティからアクセスできます。ファン制御が機能するには、Asusのソフトウェアを実行する必要があります。つまり、PWMファン制御はソフトウェアによって実行されます。Linuxインストールでは、このカーネルモジュールとpwmconfig を使用して手動でセットアップする必要があります。

Nuvoton NCT677xFデータシートを見ると、PWMを制御し、温度と電圧を読み取り、SMBus経由でGPIOを読み取るための汎用ハードウェアがあります。両方を装備すると、それを機能させるためのまともなスタートを切ることができます。理論的には、このチップセットをGPIO機能に使用できます。

しかし、私はそれに触れません。マザーボードの非常に特定のモデルに飛び込み、それをリバースエンジニアリング(たとえば、レイアウト、ピン割り当てなど)する場合を除き、どのハードウェアが接続されているかわかりません。どちらもコネクタに分割されていません。

最も重要なことは、アプリケーションが数年間持続する必要がある場合、マザーボードモデルも同様です。そうでない場合、非常に特定のマザーボードハードウェアに接続することはお勧めできません。


2

これは古いトピックですが、とにかく...

BIOSコードがプログラムされているので、すべてのマザーボードにGPIOがあり、ユーザーアドレス空間で完全に利用可能であり、通常、ポートアドレスはパラレルポートに非常に近いと言えます。標準のパラレルポートドライバーを使用してカスタムマザーボード用のカスタムドライバーを作成しました。アドレス番号を変更するだけで済みましたが、その番号は事前に知っていました。

それらを使用できますか?それはBIOSをプログラムした人によって異なります。すべてのGPIOの状態はプリコンパイルに設定する必要があり、すべての未使用のGPIOは簡単に無効に設定できます。

GPIOが使用されておらず設定されていない場合、そのデフォルト状態は何ですか?おそらくただ浮かんでいるだけです(ほとんどがトライステートなので幸運です)。

GPIOにはプルアップ/プルダウンがありますか?EEが追加したかどうかは誰にもわかりません。

未使用のGPIOのトレースはありますか?私はそれを疑いますが、ちょっと何でも可能です。

要するに、未使用のGPIOが使用可能な方法で設定されていることを幸運に思う必要があります。arduinoとほぼ同じですが(実際のデフォルトはありません)、「INPUT / OUTPUT / TRI」と考えてください。マザーボード上に、はんだ付けするピンまたはパッドを備えた使用可能なトレースが必要です。その後、GPIOのアドレスの場所がわかっている場合は、標準のユーザースペースドライバーを簡単に使用できます。


0

PCには通常i2cインターフェイスがあり、TI TCA9535DBRなどのi2c用のIOエクスパンダーチップを見つけることができます。

そのため、速度要件に応じて間接的にこれを行うことができます。PCを使用している場合、正確なタイミング要件はとにかくトリッキーです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.