• ベストアンサー

外部装置を扱うプログラムについて

C言語は基本的な標準関数が使える程度の者です。 外部装置(オシロスコープなど)を制御するプログラム(C言語、UNIX)のソースを解読しなければならないことになりました。GPIBインターフェースを使って制御しているみたいなんですがさっぱりわかりません。 インターフェースを使ったプログラムをするために必要な知識とはどんなものなんでしょうか?また良い参考書があれば教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • terra5
  • ベストアンサー率34% (574/1662)
回答No.3

対象のソースによりますが、まずデバイスドライバ類がある(使っている)か、どうかで大きく違います。 GPIB自体はこういう世界では一般的なものですから、デバイスドライバがあってそれを使えばよいという可能性も高いですし, その場合はGPIBの使い方が判って,その外部装置とのやりといのソフトウェアレベルのプロトコルの話になると思います。 ただ、解読となると装置自体のドキュメント類が何もないという状況だとかなり難しいかも知れませんね。 その元のプログラムの機能,オシロの機能をまずしっかり把握すべきでしょうか。 デバイスドライバレベルまで読まなければならないとなると、かなり難しいと思います。 ハードウェア制御に関するプログラムの知識(割り込み,ポート、ベクタ,特権モード等?), ハードウェアそのものに関する知識なども必要でしょう。 参考になるのは、デバイスドライバそのもののプログラミングでしょうかね。 で、なければOS等を使わないような環境での直接ハードウェアを制御しているようなものとか。 まあ、とりあえずGPIBを使っているまでわかっているなら、GPIBに関することを調べてみては。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • onosuke
  • ベストアンサー率67% (310/456)
回答No.2

低レベルIOの制御は、そのGPIBインターフェースのデバイスドライバのソース。 このIOでやりとりするデータ列のフォーマットは、外部装置の仕様書。 と最低限、この2つの情報源は用意したほうがいいですね。 次にプログラムの内部動作ですが、プログラムは以下の3つの基本的動作の組み合わせで成り立っているはずですよ。 1.ポートの初期化 2.送信データ列の作成->ポートへの送信 3.ポートから受信->受信データ列の解析 この3つの動作、それぞれにあるポートへの操作。このポートへの操作を行う関数を見つけるのが最初の作業かな? これにはデバイスドライバのソースが役に立つはずです。

すると、全ての回答が全文表示されます。
  • Pesuko
  • ベストアンサー率30% (2017/6702)
回答No.1

外部機器の制御はたぶんほとんどが文字によるコマンド制御になると思います。 勉強する基本は文字列の入出力・特定文字の切り出しと分割。 通信制御(今回はGPIB)になるかと思います。 このあたりがわかりやすいかと。 http://www.interface.co.jp/reference/

参考URL:
http://www.interface.co.jp/reference/
すると、全ての回答が全文表示されます。

関連するQ&A