VVCRS(4) — NEWS-OS Programmer’s Manual
名称
vvcrs − NWB-226 VTR コントローラインターフェース
形式
/dev/vvcrs[01]
#include <newsvme/vvcrsreg.h>
解説
vvcrs インターフェースは、VTR コントローラ (NWB-226) に対する 制御を行うためのものです。 スペシャルファイル /dev/vvcrs0、 /dev/vvcrs1 は、 NWB-226 のチャネル A、B にそれぞれ対応しています。
NWB-226 に接続された VTR は、「9 ピン RS-422 コネクタプロトコル」のコマンドで 制御されます。 基本的な操作は、 基本ライブラリ vc(3X) でサポートされています。
このデバイスを制御するための一般的な手順は、
1. 使用するチャネルのデバイスをオープンする。
2. ファームウェアプログラムをダウンロードし、実行する。
3. 基本ライブラリを用いて VTR を制御する。
4. デバイスをクローズする。
となります。
このデバイスを使用するのに必要な定数は 次のヘッダファイルに記述されていますので必ずインクルードしてください。
#include <sys/types.h>
#include <sys/ioctl.h>
#include <newsvme/vvcrsreg.h>
構造体 vcio
struct vcio {
int vc_flags;
int vc_zaddr;
int vc_count;
u_char ∗vc_buf;
};
vc_flags
実行要求フラグ
vc_zaddr
パラメータを送信するアドレスを指定します。
指定できるアドレスは、
0xc2540000〜c25407fdNWS-800/900/1800/1900
0xd2540000〜d25407fdNWS-1700
です
vc_count
パラメータの個数を指定します
vc_buf
パラメータの格納されているバッファの先頭アドレスを指定します
デバイスのオープン
基本ライブラリに用意されている vtr_open 関数を使用します。
int n;
vtr_open(n)
引数 n は VTR のチャネルを表し、n = 0 の時チャネル A を、 n = 1 の時 チャネル B を表します。 この関数では、正常終了したときはファイルディスクリプタを エラーの時は −1 を返します。
ファームウェアプログラムのダウンロード、実行
基本ライブラリに用意されている vtr_load 関数を使用します。
int fd; /∗ vtr_open 関数によるファイルディスクリプタ ∗/
vtr_load(fd)
デバイスのクローズ
基本ライブラリに用意されている vtr_close 関数を使用します。
int fd; /∗ vtr_open 関数によるファイルディスクリプタ ∗/
vtr_close(fd)
ioctl システムコール
VCIOCZRST
VTR ファームウェアプログラムをリセットします
ioctl(fd, VCIOCZRST, 0);
VCIOCZRUN
VTR ファームウェアプログラムのリセットを解除します
ioctl(fd, VCIOCRUN, 0);
VCIOCPUT
デバイスの指定されたアドレスに指定された個数のパラメータを書き込みます
ioctl(fd, VCIOCPUT, &vcio);
VCIOCGET
デバイスの指定されたアドレスから指定された個数のパラメータを読み取ります
ioctl(fd, VCIOCGET, &vcio);
VCIOCSCMD
基本ライブラリで用意されていない「9 ピン RS-422 コネクタ プロトコル」の関数を使用するときに用います。
ioctl(fd, VCIOCSCMD, &vcio);
関連事項
vc(3X)
「VTR コントロールインターフェースボード NWB-226 ソフトウェア説明書」
「NEWS-OS Release 4.0 I/O デバイスプログラミングガイド」の 『18 章 VTR コントロールインターフェース』
エラー
VTR コントローラが起動されている状態で、 NEWS 側を reboot しようとすると NEWS が立ち上がらなくなることがあります。 このようなときは、一度 VME ボックスと NEWS の電源を 落としてから、再度起動してください。
NEWS-OSRelease 4.2.1R