GG-9000IIX
VZ-8100 2CX 160Z5_2CAS
DS-100XX
VZ-8100 2CIXU 160Z5USB_2CASCI
HV-9090XCI Plus 5
DS-100XCI 160Z5_CASCI
9595X PVR
9696X PVR
PVR 9090X 29E3USB_CAS
PVR 9191X
5151X PVR
9595FTA PVR
9696FTA PVR 29E3_FTA
9595XII PVR 29E3USB_2CAS
9696/9797 PVR HDMI 29E3USB_CAS_HDMI
9900X 29C3_CAS
9900FTA 29C3_FTA
8080FTA 29C4_FTA
18-05-2010
SSSP – Simple Serial Sharing Protocol
=====================================
This Protocol defines the communication between a DVB Box and a gbox by using a RS232(serial/com/tty port) with only 4 commands to implement.
RS232 communication settings
============================
115200 8N1 (115200 Baud, 8 data bits, no parity, 1 stop bit)
To activate add in the gbox_cfg R: { 01 } for com1, or R: { 02 } for com2
W: and V: should be deactivated 00 00
When developing Software you can activate thers232 debug messages by adding
10 to the R: parameter, a example for com1 would be R: { 11 }
Format of data
==============
AB CD EF GH ....
AB = Command
CDEF = length of the data following
GH ... = data
Total length is CDEF + 3 (1 byte command + 2 bytes len)
Command 0x means from STB to gbox
Command Fx means from gbox to STB
SEND PMT = 01 (send PMT to gbox)
--------------------------------
01 xx xx yy yy zz zz zz zz data ....
xx = Len
yy = SID ( byte 2 and bytes 3 from the PMT)
zz = PMT CRC32 (last 4 bytes in the PMT)
Data = CAID1 (2 bytes) PID1 (2 bytes) PROVIDER1 (3 bytes) CAID2 PID2 PROVIDER2 ....
Provider is only used in Seca and Viaccess, in other systems put 00 00 00
For Seca use 00 xx yy and for viaccess xx yy z0
On each channel change the DVB box must send the PMT first, on FTA Channels please send: 01 00 06 yy yy zz zz zz zz
SEND ECM = 03 (send ECM to gbox)
--------------------------------
03 xx xx yy yy ecm_data ....
xx = len
yy = pid
Note: Please send every ecm only once, do not send the same ecm multiple times.
REQUESTING PIDS DATA = F1 (receive ECM pid list )
-------------------------------------------------
F1 xx xx pid1 pid2 pid3 ....
xx = Len
pidx = 2 bytes for each pid
Please send me ECM data from these pids only, close all other already open.
CW RETURN = F2 (receive ControlWords)
-------------------------------------
F2 00 10 cw1 (8 bytes) cw2 (8 bytes)
Command flow on a channel change
================================
1. DVB box sends PMT with command 01 on a channel change
2. gbox sends pid list of the ecm's it can handle with command F1
3. DVB box sends ECM's (from all pids in the pid list) with command 03
4. gbox sends CW's with command F2
5. As soon the gbox has success in decoding a ecm it sends again a F1 command
with one pid only, the DVB box should close then all other pids and from
now on send only ecm data from that pid.
After this command 03 and F2 will be repeated until a channel change.
On the next channel change the DVB should close all open pids and repeat the
above procedure.
//-----------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------
Advanced protocol
cmd 01 and 03 are not enough for multi-channel.
so added
Advanced SSSP support = 04 (send cmd to gbox)
--------------------------------
04 xx xx yy yy
xx = Len
yy = check value ( returned )
Reply Advanced SSSP support = F4
-------------------------------------------------
F4 xx xx yy yy
xx = Len
yy = 2 bytes, returned from CMD 04
SEND PMT = 05 (send PMT to gbox)
--------------------------------
05 xx xx aa yy yy zz zz zz zz data ....
xx = Len
aa = which channel, less than 10, example 00=viewing channel, 01=pip channel, 02= timeshift, 03=recording 1, 04=recording 2,.....
yy = SID ( byte 5 and bytes 6 from the PMT)
zz = PMT CRC32 (last 4 bytes in the PMT)
Data = CAID1 (2 bytes) PID1 (2 bytes) PROVIDER1 (3 bytes) CAID2 PID2 PROVIDER2 ....
Provider is only used in Seca and Viaccess, in other systems put 00 00 00
For Seca use 00 xx yy and for viaccess xx yy z0
On each channel change the DVB box must send the PMT first, on FTA Channels please send: 05 00 07 aa yy yy zz zz zz zz
REQUESTING PIDS DATA = F5 (receive ECM pid list )
-------------------------------------------------
F1 xx xx aa pid1 pid2 pid3 ....
xx = Len
aa = from cmd 05
pidx = 2 bytes for each pid
Please send me ECM data from these pids only, close all other already open.
SEND ECM = 06 (send ECM to gbox)
--------------------------------
03 xx xx aa bb bb bb bb yy yy ecm_data ....
xx = len
aa = which channel, less than 10, example 00=viewing channel, 01=pip channel, 02= timeshift, 03=recording 1, 04=recording 2,.....
bb = 4bytes, tag, returned from cmd F6
yy = pid
Note: Please send every ecm only once, do not send the same ecm multiple times.
CW RETURN = F6 (receive ControlWords)
-------------------------------------
F2 00 15 aa bb bb bb bb cw1 (8 bytes) cw2 (8 bytes)
aa = which channel from cmd 06
bb = tag 4bytes from cmd 06