next up previous contents
Next: CAMAC シングルアクション(ライト) Up: USB-CAMAC デバイスドライバの動作 Previous: USB-CAMAC デバイスドライバの動作

CAMAC シングルアクション(リード)

USB-CAMAC ライブラリから CAMAC 16ビットデータの読み込むために camac() 関数を コールした後, デバイスドライバでどのように処理が行なわれ るかを説明する. 例として ステーション #2 のスイッチレジスタ・モジュールを読む場合を 取り上げる. CAMAC NAF は (n,a,f) = (2,1,0) とする.

  1. アプリケーションから USB-CAMAC ライブラリの camacw(naf, &data, &q, &x) をコールする.
  2. camacw() は コマンドに CAMACW を指定してドライバの ioctl() 関数をコールする.
  3. ioctl() 関数では内部にある CAMACW 処理ブロックへとぶ.
  4. CAMACW 処理ブロックでは CAMAC NAF の F に依存した処理を行なう. この場合は f=0 なのでCAMAC データ読み込みブロックへとぶ.
  5. CAMAC データ読み込みブロックではデータ長を 2バイトに指定して scsi_read() 関数をコールする.
  6. scsi_read() では send_cdb() により SCSI CDB を 3929 へ送る.
  7. 次に recv_data() により 3929 からデータを取得する.
  8. データおよび Q, X を camacw() の data, q, x に返す.


Kazuo Nakayoshi
Wed Jun 27 22:15:09 JST 2001