このQ&Aは役に立ちましたか?
PCからIOボードを制御するための知識習得方法
2023/10/20 17:43
- PCからIOボード(AD/DAボード)を制御するための知識を習得する方法について説明します。
- IOボードを制御するためのプログラムや信号の入出力方法について、具体的な情報を提供します。
- PICやAVRなどのマイコンを使えるようにすれば、PCからIOボードを制御する基礎知識を身につけることができます。
PCに挿したIOボードを制御するためのプログラム
2021/02/28 15:14
IOボード(AD/DAボード)を使ってPCで入出力制御(例えばモーターのフィードバック制御)をしたいと思っているのですが、ボードにアクセスするためのプログラムや、信号を入出力するためのプログラムをどのように書いたら良いかわかりません。おそらくデータシート?に書いていると思うのですが、知識不足で読み解くことができません。(いままでArduino IDEでArduinoの制御をしたことしかありません。普通にC言語でAVRマイコンをプログラムして制御することはできません。C言語の基礎知識はあります。)
そこで質問なのですが、PCから(例えばPCIスロットに挿した)IOボード(AD/DAボード)を制御するための知識は、どのようにして習得できますでしょうか?参考になる本やサイトが見つかりません。PICやAVRなどのマイコンであれば本が色々出ているようなのですが、そのようなマイコンを使えるようになれば、PCからIOボードを制御できる基礎知識は付きますでしょうか?
回答 (7件中 6~7件目)
ここんとこPIC関係を知るしてる人かな?
>>PCから(例えばPCIスロットに挿した)IOボード(AD/DAボード)を制御するための知識
WINDOWSは直接 ハードウエアーを動かすことができません
ドライバーを使い APIを使って動かします
コンピュータを1から設計してハードとソフトを理解しようとしてる人には
不幸な時代です
CPUから出ている電気信号はバスと呼ばれる配線でつながれています
https://ja.wikipedia.org/wiki/CPU%E3%83%90%E3%82%B9
そこに流れる電気信号をクロックベースで読み取りしてシステムを動かします
⇡
パラレル
Arduino の回路図
https://www.elprocus.com/what-is-arduino-uno-r3-pin-diagram-specification-and-applications/
デジタルIO0-7 が CPUから 直接出てる
⇡
これを使ってこの8ビットバスを使って直接VDP(今でいうビデオカード・音源ボードと通信していた)
Arduino でもできますが 今どきやる人はいない
古いCPUとは異なり ここに
アナログ0-5
シリアルポート リセットボタンの後ろについてる6ピンで
I2C通信をします
Arduino で動かせるモーターの数の限界
NCシールド
3軸のステッピングと1個のDCモータにPWM
⇡
これ以上詰め込められない 5軸が存在するらしいがArduino 可は不明
⇡
4軸+PWM+スイッチ数個ならこのシールドを使えばよい
もっと複雑な動きを要求するなら
I2C通信の勉強して分散させる方がいいですよ
http://www.picfun.com/c15.html#:~:text=I2C%EF%BC%88Inter%2DIntegrated%20Circuit%EF%BC%89,%E3%82%92%E5%AE%9F%E7%8F%BE%20%E3%81%99%E3%82%8B%E6%96%B9%E5%BC%8F%E3%81%A7%E3%81%99%E3%80%82
マスターからの信号をスレイブが処理して 完了をマスターに返す
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
PCに挿したA/DなどのI/Oボードとは懐かしい世界です。ISAバスでDOSの時代は、このI/Oアドレスに何を書けばA/D変換開始、このI/Oアドレスの第何ビットが1になれば変換完了、データを読むのは上の位がI/Oアドレスのどこ、下の位がI/Oアドレスのどこ、という調子で、BASICでもCでもアセンブラでも勝手にやれました。PC9800のCバスでもDOSなら同様。しかしいまどきISAバスのマザーボードなんか工業用の特殊なものしかないでしょう。
PCIバスになるとI/Oをアクセスするだけでも手続きが非常に面倒になりました。が、DOSならおそらくやれないことはないと思います。
現在のWindowsではアプリケーションが直接I/Oを操作することは禁止でもあり不可能でもあるので、そのI/Oの為のデバイスドライバーを書く必要があります。実際問題としては、Windows用のデバイスドライバーが付いたI/Oボードを買って、そのサンプルプログラムに従うということになると思いますよ。USB接続のI/Oでも同じです。
一番簡単な知識でWindowsのPCで外部の回路を制御するのは、WindowsにUSB接続のシリアルポートを拡張して、外のマイコンとRS232cレベルでつなぐことだと思います。これならシリアル通信ができる開発環境ならどれでも使えます。