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).