ML-IIPCIXCD-V50CR(IEEE1394.bカメラ)を制御


ML-IIPCI
IEEE1394bカメラを接続し,簡単な実験を行ってみました.この例ではIEEE1394a-2000IEEE1394b-2002の接続例ですが,IEEE1394b-2002同士の接続をSWDK2で行ってみましたが,問題なく動作します.SWDKは別製品でIEEE1394bをサポート予定です.Isochronous通信の実証も行いました,順次情報公開の予定です.

1,接続

ML-IIPCIXCD-V50CR6pin-9pinケーブルで接続.

bus resetがかかり,ふたつのSelf IDが表示される.


2Config ROMのダンプ

FFFF F0000400から256バイトダンプし,XCD-V50CRConfig ROMを取得してみます.Config ROMの取得はRead Block Quadletを送ることによって読み出します.以降にトランザクションを示します.

FFFF F0000400からの内容

 

0422054E 31333934 20FF6000 08004602

00110010 00035419 03080046 0C0083C0

D1000001 0003937D 1200A02D 13000102

D4000001 000B858A 403C0000 8100000A

8200000D 38000010 39000000 3A000000

3B000000 3C000001 3D000000 3E000000

3F000000 00033A64 00000000 00000000

534F4E59 0005C897 00000000 00000000

5843442D 56353043 52000000 00000000


前ページのトランザクションではヘッダも含まれるため,FFFF F0000400から256バイトダンプし,XCD-V50CRConfig ROMを取得してみます.Config ROMの取得はRead Block Quadletを送ることによって読み出します.以降にトランザクションを示します.


3,サポートしているフォーマット

FFFF F0F00100Read Quadletを実行します.すると80000000が返ってきます.XCD-V50CRのマニュアルにあるようにFormat0がサポートされています.

*Read request quadlet*

>>0x00000040

>>0xFFC1FFFF

>>0xF0F00100

 

Response read Quadlet

FFC00160 FFC10000 00000000 80000000

       destination node# = 00

       source node#      = 01

       response code = complete

       read data = 80000000


4,ビデオモード

FFFF F0F00180Read Quadletを実行します.すると06000000が返ってきます.XCD-V50CRのマニュアルにあるようにモード56がサポートされています.

*Read request quadlet*

>>0x00000440

>>0xFFC1FFFF

>>0xF0F00180

 

Response read Quadlet

FFC00560 FFC10000 00000000 06000000

       destination node# = 00

       source node#      = 01

       response code = complete

       read data = 06000000


5,フレームレート5

FFFF F0F00214Read Quadletを実行します.すると1C000000が返ってきます.XCD-V50CRのマニュアルに記述されているように動作しています.

*Read request quadlet*

>>0x00000840

>>0xFFC1FFFF

>>0xF0F00214

 

Response read Quadlet

FFC00960 FFC10000 00000000 1C000000

       destination node# = 00

       source node#      = 01

       response code = complete

       read data = 1C000000


6,フレームレート6

FFFF F0F00218Read Quadletを実行します.すると18000000が返ってきます.XCD-V50CRのマニュアルに記述されているように動作しています.

*Read request quadlet*

>>0x00000C40

>>0xFFC1FFFF

>>0xF0F00218

 

Response read Quadlet

FFC00D60 FFC10000 00000000 18000000

       destination node# = 00

       source node#      = 01

       response code = complete

       read data = 18000000


7,ビデオモード読み込み

FFFF F0F00600Read Block Readを実行し,16バイト(4Quadlets)を読み込んでみます.すると,下図に示すような値を読み込むことができます.今回は9pin-6pin1394.a1394,bへ接続したため400Mbpsで接続されています.


*Read Block Qquadlet Request*

>>0x00025850

>>0xFFC0FFFF

>>0xF0F00600

>>0x00100000

 

Response read Block

FFC15970 FFC00000 00000000 00100000

A0000000 A0000000 00000000 02000000

       destination node# = 01

       source node#      = 00

       response code = complete

       extended_code = 0000

       data_length = 16 bytes

       A0000000

       A0000000

       00000000

       02000000


8IEEE 1394bカメラConfig ROMのダンプ

FFFF F0F0061480000000Write Quadletで書き込むと,Isochronous送信を開始します.

Isochronous開始前,ランプは青く光っています.

FFFF F0F0061480000000Write Quadletで書き込み,Isochronous送信を開始すると,ランプは赤く変わります.


ML-IIPCIIEEE 1394aポートしか装備していないため,IEEE 1394bの能力を完全に引き出すことはできません.既にチップなどは入手しているため,時間を見つけてML-IIPCIの後継機種を開発予定です.

また,SWDK2は,市販のIEEE1394.b-2002ボードと本IEEE 1394b-2002カメラを9pin-9pinケーブル(両者ともβポート)で接続が完了し同作確認が取れています.ただし,こちらもドライバ自体がS400までしかサポートしていないため,IEEE 1394.bの性能を引き出すには至りません.

SWDK2も後継のSWDK3を時間をみて開発予定ですが,零細会社の常であり自社開発へ振り分ける時間は十分ではありません.お急ぎの方は,SWDK2を購入し自身でIEEE 1394bへ対応させるのが早い可能性が高いです.