ML-IIPCIでXCD-V50CR(IEEE1394.bカメラ)を制御
ML-IIPCIとIEEE1394bカメラを接続し,簡単な実験を行ってみました.この例ではIEEE1394a-2000とIEEE1394b-2002の接続例ですが,IEEE1394b-2002同士の接続をSWDK2で行ってみましたが,問題なく動作します.SWDKは別製品でIEEE1394bをサポート予定です.Isochronous通信の実証も行いました,順次情報公開の予定です.
1,接続
ML-IIPCIとXCD-V50CRを6pin-9pinケーブルで接続.
bus resetがかかり,ふたつのSelf IDが表示される.
2,Config ROMのダンプ
FFFF F0000400から256バイトダンプし,XCD-V50CRのConfig 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-V50CRのConfig ROMを取得してみます.Config ROMの取得はRead Block Quadletを送ることによって読み出します.以降にトランザクションを示します.
3,サポートしているフォーマット
FFFF F0F00100へRead 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 F0F00180へRead Quadletを実行します.すると06000000が返ってきます.XCD-V50CRのマニュアルにあるようにモード5と6がサポートされています.
*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 F0F00214へRead 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 F0F00218へRead 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 F0F00600へRead Block Readを実行し,16バイト(4Quadlets)を読み込んでみます.すると,下図に示すような値を読み込むことができます.今回は9pin-6pinで1394.aを1394,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 |
8,IEEE 1394bカメラConfig ROMのダンプ
FFFF F0F00614へ80000000をWrite Quadletで書き込むと,Isochronous送信を開始します.
Isochronous開始前,ランプは青く光っています.
FFFF F0F00614へ80000000をWrite Quadletで書き込み,Isochronous送信を開始すると,ランプは赤く変わります.
ML-IIPCIはIEEE 1394aポートしか装備していないため,IEEE 1394bの能力を完全に引き出すことはできません.既にチップなどは入手しているため,時間を見つけてML-IIPCIの後継機種を開発予定です.
また,SWDK2は,市販のIEEE1394.b-2002ボードと本IEEE 1394b-2002カメラを9pin-9pinケーブル(両者ともβポート)で接続が完了し同作確認が取れています.ただし,こちらもドライバ自体がS400までしかサポートしていないため,IEEE 1394.bの性能を引き出すには至りません.
SWDK2も後継のSWDK3を時間をみて開発予定ですが,零細会社の常であり自社開発へ振り分ける時間は十分ではありません.お急ぎの方は,SWDK2を購入し自身でIEEE 1394bへ対応させるのが早い可能性が高いです.