P2-Protocol Command Block Format
Technical Info Top

 P2-Protocolのコミュニケーションは、Basic of P2-protocolで書いたようにすべてコントローラが主導権を握ったハンドシェイクによって成り立っています。
「コントローラ--->デバイス」へのコマンド、および「デバイス--->コントローラ」へのアンサーどちらも同じルール(Command Block Format)で成り立っています。
コマンドは、下記の順番で送信される決まりとなっています。


コマンドの種類とその方向を表します。(MSD 4bit)

偶数は「コントローラ--->デバイス」へのコマンド、奇数は「コントローラ<---デバイス」からのアンサーを表します。

Cmd Code
Function Direction
0
System Control Controller --> Device
1
System Control Return Controller <-- Device
2
Transport Control Controller --> Device
4
Preset/Selct Control Controller --> Device
6
Sense Request Controller --> Device
7
Sense Return Controller <-- Device

後に続くデータバイトのバイト数(0〜15)を表します。

実際のコマンドの命令コードを表します。

コマンドに付随するデータ。最大15Byte。
各々のコマンドによって、バイト数とその内容が定義されています。
通信エラーチェック用のチェックサム。
CMD-1からCheck SUMの直前のデータまでの総計の下位8bitがセットされます。

実際のコマンドは?

では、実際のコマンドはどのようになっているか見てみましょう。
ここでは、最も単純なPLAYコマンドを例に挙げて説明してみます。

Play cmnd : [20.01.21]
最も基本的なPLAY命令コマンド。これは、一番単純なデータを伴わないコマンドです。詳細を説明すると下記のようになります。

Byte no. - 1 : [20]
上位の'2'がTransport control命令であることを示し、下位の'0'が、データバイトが0Byte、つまりなしであることを示します。

Byte no. - 2 : [01]
Transport control命令の中で'01'がPLAYを示します。

Byte no. - 3 : [21]
1バイト目の[20]と2バイト目の[01]の和=[21]チェックサムとして付加します。

実際の信号をオシロスコープで見てみると下記のように見えます。
1bitの長さは、38.4kbですので、約26μsec、3byteで約1msec程度のコマンド送信となります。

<back