next up previous contents
Next: CAMAC ブロック転送(リード) Up: USB-CAMAC デバイスドライバの動作 Previous: CAMAC シングルアクション(リード)

CAMAC シングルアクション(ライト)

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

  1. アプリケーションから USB-CAMAC ライブラリの camacw(naf, &data, &q, &x) をコールする.

  2. camacw() は コマンドに CAMACW を指定してドライバの ioctl() 関数をコールする.
  3. ioctl() 関数では内部にある CAMACW 処理ブロックへとぶ.
  4. CAMACW 処理ブロックでは CAMAC NAF の F に依存した処理を行なう. この場合は f=16 なのでCAMAC データ書き込みブロックへとぶ.
  5. CAMAC データ書き込みブロックではデータ長を 2バイトに指定して scsi_write() 関数をコールする.
  6. scsi_write() では send_cdb() により SCSI CDB を 3929 へ送る.
  7. 次に send_data() により 3929 にデータを送る.
  8. Q, X を camacw() の q, x に返す.


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