2012年3月1日 星期四

VISCA 命令簡介



VISCA 全名為 Video System Control Architecture,
是SONY公司所定義的一個協定,廠商可以開發軟硬體,透過 RS232來控制影像系統,最多可以控制七台機器。

1.  VISCA封包格式如下:
     1-byte header, 14-bytes data, 1-byte terminator,每個封包的大小為16Bytes。




2. VISCA命令
注意:
                          i. 此處的 8X,  X表示Device # (0~7),
X=0表示Controler,
X=1~7表示Device,
X=8,表示broadcast。
                        ii.  QQ 表示 command,總共有以下幾種可能
0x00 (Net-keeping)
0x01 (Command)
0x09 (Inquiry)
0x30 (Set address to device)
0x2p (cancel,p為 socket number)。
                      iii.   0xFF 是命令結尾


3. VISCA回應
當Device回應資料時,則Header要指名對應的address z0, 此時z=X+8
例如:
   送出inquiry command:81  09  04  38  FF (81:表示送給Device address 1)
   收到response:90  50  02  FF  (90:表示Device address 1回資料)

VISCA所定義的回應共有四種, 以上面的例子作說明,則Response可能分別如下:
a.      Network change (3) à 90 38 FF
b.      ACK (4)                 à 90 40 FF
c.       Complete (5)          à 90 50 FF
d.      Error (6)                 à 90 60 02 FF

常見的使用情況有兩種
a.      Controller送出command給camera,則camera會先回 ACK表示收到命令,執行命令之後,再回complete。
b.     Controller送出 inqury給camera,則camera會直接回Complete,實際要回的資料則從第三個bytes開始,例如查詢系統時間所得到的Response如下:
90 50 HH MM SS TT 0T VV 0V 0xFF

另外camera中有兩個buffer可以用來儲存命令,所以可以支援Controller連續送出兩個指令,如此當 camera送回response時便需要一個數字,用以說明此次收到reponse對應到哪一個發出的指令,VISCA將這個用來識別的數字稱為 socket number,其值可能為 0 或 1。

以 complete的 response 為例:
格式: 90 5Y FF,Y = socket number。
可能的封包: 90 50 FF 或是90 51 FF


4. VISCA Command 列表,
這部份請見參考資料中的 Sony-FCB-EH4300-Manual.pdf。


5. 自行定義擴充的VISCA命令 (例如:新增一個控制 OSD 用的指令)
      參考VISCA定義,我們自行創建一個新的category “22” (參考SONY IT-N OSD category number) 
      所以我們定義新的command如下:
81  01  22  CC  FF
CC表示參數,可能值為 00:up, 01:down, 02:right, 03:left, 04:menu, 05:enter


6. 透過RS232控制camera時,其參數如下:
Communication speed:9.6 kbps/19.2 kbps/ 38.4 kbps
Data bits:8
Start bit:1
Stop bit:1
Non parity


7.  一個控制器最多可以支援 7台 VISCA camera。根據規格書定義,有兩種接法。
7.1 

7.2 daisy chain, 
The address of the controller is set to 0 and the camera address will be assigned from 1 to 7 (nearer, the younger address).