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 (cancelp socket number)
                      iii.   0xFF 是命令結尾


3. VISCA回應
Device回應資料時,則Header要指名對應的address z0, 此時z=X+8
例如:
   送出inquiry command81  09  04  38  FF (81:表示送給Device address 1)
   收到response90  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送出commandcamera,則camera會先回 ACK表示收到命令,執行命令之後,再回complete
b.     Controller送出 inqurycamera,則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 FFY = socket number
可能的封包: 90 50 FF 或是90 51 FF


4VISCA 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 speed9.6 kbps/19.2 kbps/ 38.4 kbps
Data bits8
Start bit1
Stop bit1
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).