![]() |
![]() |
|
So funktioniert das SONY S-LINK/CTRL-A(II) Protokoll |
How SONY's S-LINK/CTRL-A(II) protocol works |
|
Dies ist eine kurze Beschreibung des Protokolls basierend auf BigDave's
und William Hollingworth's Ausführungen.
S-LINK oder CTRL-A(II) ist ein zweiadriges bidirektionales Bussystem vorwiegend im
Hifi-Bereich, an das viele Geräte gleichzeitig angeschlossen sein können. Vielen Dank an Jesper Nygaard in Kopenhagen (Dänemark) für seine Verstärker-, Tuner- und Surround Codes! |
This is a short description of the protocol based on BigDave's
and William Hollingworth's informations.
S-LINK or CTRL-A(II) is a two-wire bidirectional bus system mostly used in audio
equipment, where many devices can be connected together. Many thanks to Jesper Nygaard, Copenhagen (Denmark) for his great help finding amplifier, tuner and surround codes! |
![]() |
S-LINK (CTRL-A) protocol |
![]() |
Send a command to the device (I used here my MD recorder), it will
send back a reply message. Example: "get device name" you send: B0 6A you receive: B8 6A 4D 44 53 2D 4A 45 36 34 30 20 20 20 20 00 00 00 00 The device replies with its prefix, repeats the command and tells you "MDS-JE640". Great and easy bus system, eh? But you have to check for collissions! |
|
Device Code composition: n n n n X y y y nnnn = device number X = 0 write to device X = 1 read from device yyy = sub-device number yyy = 111 all devices nnnn |
MD Send Commands (to MD recorder) prefix 10110000b = B0h | ||
command (hex) | description | remark |
---|---|---|
00 | play | or start recording from record pause |
01 | stop | |
02 | pause | |
03 | pause toggle | |
04 | eject | |
07 | record pause | (answer 07) |
08 | skip + | |
09 | skip - | |
0E | query stored | ??? (answer 71) |
0F | setup info | prog.-mode, switches (answer 70) |
10 | fwd fast | end with play or normal |
11 | rew fast | end with play or normal |
12 | fwd slow | end with play or normal |
13 | rew slow | end with play or normal |
1F | normal | end from fwd or rew |
20 | disable remote control | |
21 | enable remote control | |
22 | device type | device type code (answer 61) |
23 | auto pause off | |
24 | auto pause on | |
25 | time update on | updates time every second until end of track (answer 51) |
26 | time update off | |
2E | power on | |
2F | power off | |
32 | divide | |
33 | menu yes | |
34 | menu no | |
35 | undo | |
3E | device keys disabled | |
3F | device keys enabled | |
40 TT | erase track | without request! |
41 TT TT | move track | from TT to TT, without request! |
42 TT | combine with previous track | |
43 TT | combine with track TT | without request! |
44 DD | query disc | disc info (answer 60) |
45 DD TT | query track | track info (answer 62) |
46 DD | split adjust | |
50 DD TT | play direct track | |
51 DD TT | pause (before start) direct track | |
54 DD | remain time disc | |
58 DD 00 | query disc name | no disc name: answer 16 |
5A TT 00 | query track name | no track name: answer 17 |
6A | device name | answer 6A |
72 TT | record date | no date rec.: answer 72 TT 00 00 00 00 00 00 |
76 DD TT | combine track a+b | ??? |
78 | a-b erase, set point a | ??? |
79 | a-b erase, set point b | ??? |
7A | adjust point a | ??? |
7B | adjust point b | ??? |
7C | a-b erase, confirm point a | ??? |
7D | confirm a-b erase | ??? |
97 01 00 | disc info | also 97 00 00 (answer 97) ??? |
98 DD 00 00 [14d x CC] | write disc text | if CC<14d, fill with 00 (ok, answer 1F) |
99 BB [16d x CC] | write disc more text | BB>1 (block), if CC<16d, fill with 00 (ok, answer 1F) |
9A TT 00 00 [14d x CC] | write track text | if CC<14d, fill with 00 (ok, answer 1F) |
9B BB [16d x CC] | write track more text | BB>1 (block), if CC<16d, fill with 00 (ok, answer 1F) |
titling characters: ascii 20..5A + 5F..7A and japanese A6..AF + B1..DF |
MD Receive Messages (from MD recorder) prefix 10111000b = B8h | ||
command (hex) | description | remark |
---|---|---|
00 | play | |
01 | stop | |
02 | pause | |
03 | TOC updated | ??? |
04 | record play | |
05 | ignored | |
06 | seeking | CD Player: unloading or moving carosel |
07 | record pause | |
08 | ready | |
09 | start of track | |
0C | 30 sec to end of track | |
0E | unavailable | |
0F | error | |
10 | no memo | |
11 | no delete file | |
12 | no group | |
14 | invalid disc # | used in disc info query |
15 | invalid disc or track # | used in track info query |
16 | no disc name on disc | |
17 | no track name on disc | |
18 | door open | only CD-Changer |
19 | no group | only CD-Changer |
1D | no cd text | |
1F | title written to memory | |
2E | power on | |
2F | power off | |
31 | ??? | (answer to command 42) |
33 | complete | |
50 DD TT MM SS | track status | disk, track, min, sec (all bcd) |
51 TT DD MM SS | time update status | track, disk, min, sec (all bcd) (answer to command 25) |
54 DD MM SS | remain time disc | disk, min, sec (all bcd) (if min=100d, byte=a0) (if min>255d, byte=wrong value) |
58 DD 00 00 [14d x CC] | disc text | if CC<14d, filled with 00 |
59 BB [16d x CC] | disc more text | BB>1 (block), if CC<16d, filled with 00 |
5A TT 00 00 [14d x CC] | track text | if CC<14d, filled with 00 |
5B BB [16d x CC] | track more text | BB>1 (block), if CC<16d, filled with 00 |
60 01 01 TT MM SS 00 | disc info | # of Discs Tracks (HEX), Total Playing Time Minutes, Seconds (all BCD) |
61 DD ID | disc capacity, model identifier | after power on, 07 for MDS-JE530, 0B for CD... |
62 DD TT MM SS | track info | Track (HEX), Playing Time Minutes, Seconds (all BCD) |
6A | device name | answer: 6A [17d x CC], if CC<17d, filled with 00 |
70 S1 S2 S3 DD TT | status | S1: 00=stop, 01=play, 02=pause, 04=rec, 05=rec-pause S2: bit0=shuffle, bit1=program, bit2=(only CD: 0=one disc, 1=all discs), bit3=repeat-all, bit4=repeat1, bit5=writable (while playing), bit6= , bit7= S3: bit2..0 input (001 analog, 011 optical, 101 coax), bit7=mono |
71 | 00 01 00 00 (oder 01) 00 | after TOC-read, inserting disc |
AMP Send Commands (to amplifier) prefix 11000000b = C0h | ||
command (hex) | description | remark |
---|---|---|
06 | mute | answer 70 |
07 | unmute | answer 70 |
0C | 5.1 input on | answer 70 |
0D | 5.1 input off | answer 70 |
0E | status request 2nd Audio | answer 71 |
0F | status request Source | answer 70 |
14 | master volume + | no answer! |
15 | master volume - | no answer! |
22 | status request ??? | answer 61 |
23 | status request ??? | answer 62 |
2C | ??? | answer 2C |
2D | ??? | no answer! |
2E | power on | answer 61, C3, 87, 0F, 1F, 3F, 7F |
2F | power off | |
30 | ??? on | answer 70 (Byte3, Bit5=0) |
31 | ??? off | answer 70 (Byte3, Bit5=1) |
32 | ??? on | answer 71 (Byte3, Bit5=0) |
33 | ??? off | answer 71 (Byte3, Bit5=1) |
40 VV | Master volume set direct | (no answer, only some amp's) |
43 | Status request input type | answer 43 (Byte2, L-N), see also command 83 |
48 NN | Status Source name | answer 48 NN [8 x CC] 00 00 00 00 00, see also command 88 |
50 SS | Set Source | 00=Tuner (answer C8 70, CB 70) 01=Phono (answer C8 70, CB 70) 02=CD (answer C8 70, C8 E1) 03=DAT (answer C8 70, C8 E1) 04=MD (answer C8 70, C8 E1) 05=Tape (answer C8 70, C8 E1) 07=Digital Audio (answer C8 70) 10=Video 1 (answer C8 70, CB 70) 11=Video 2 (answer C8 70, CB 70) 12=Video 3 (answer C8 70, CB 70) 15=LD (answer C8 70, CB 70) 16=SAT (answer C8 70, CB 70) 17=TV (answer C8 70, CB 70) 19=DVD (answer C8 70, CB 70) |
52 SS | Set 2nd Audio | 00=Tuner, 02=CD, 03=DAT, 04=MD, 05=Tape, 0F=Source (answer 71) |
6A | Device name | answer 6A |
83 TT | Set input type | 01=optical, 02=coax, 04=analog, answer 43 |
88 SS [8 x CC] | Set Source name | SS=Source (see command 50) |
AMP Receive Messages (from amplifier) prefix 11001000b = C8h | ||
command (hex) | description | remark |
---|---|---|
06 | mute | |
07 | unmute | |
0C | 5.1 input on | |
0D | 5.1 input off | |
0E | unavailable | |
0F | error | |
2E | power on | |
2F | power off | |
43 TT XX | Status input type | 01=optical, 02=coax, 04=analog |
70 AA AV CC | Status source | AA=Status Audio, AV=Status Video (see command 50) CC: Bit4=5.1 input, Bit3=tapeloop, Bit1=mute |
71 AA XX XX (XX) | Status 2nd Audio | AA=Status 2nd Audio (see command 50) |
E1 XX TT XX XX... | Status | TT: Bit2=0 after SLINK-command, Bit2=1 after IR-command |
TUNER Send Commands (to tuner) prefix 11000001b = C1h | ||
command (hex) | description | remark |
---|---|---|
03 BB | Band | BB=00: FM, BB=01: AM, answer 70 |
06 | scan + | |
07 | scan - | |
08 | preset + | |
09 | preset - | |
0A | mono | |
0B | stereo | |
50 BB HH LL | Direct Tune | BB=00: FM, (HH*256+LL)/100= frequency [MHz] in 50 kHz steps (value rounded down) BB=01: AM, HH*256+LL= frequency [kHz] in 9 kHz (USA: 10 kHz) steps (value rounded down) |
51 BB NN | Preset Station | BB=[01..03] Bank A..C, NN=[00..09] Station number, answer 70, E1 |
52 PP | PTY Search | 00=None, 01=News, 02=Current Affairs, 03=Information, 04=Sports, 05=Education, 06=Drama, 07=Culture... |
TUNER Receive Messages (from tuner) prefix 11001001b = C9h | ||
command (hex) | description | remark |
---|---|---|
48 BB NN [8 x CC] 00 00 00 00 00 | Station Status | BB: Bank [01..03], NN: Number [00..09], CC: Name |
70 BB NN XX XX | Tuner Status | BB: Bank [01..03], NN: Number [00..09] |
E1 XX (XX...) | Tuner Status |
SUR Send Commands (to surround) prefix 11000011b = C3h | ||
command (hex) | description | remark |
---|---|---|
04 | surround | |
05 | 2ch stereo | |
06 | EQ on | |
07 | EQ off | |
0B | next sound field | |
0C | 2ch stereo | |
0D | AFD | |
10 | rear volume + | no answer! |
11 | rear volume - | no answer! |
12 | center volume + | no answer! |
13 | center volume - | no answer! |
14 | sub volume + | no answer! |
15 | sub volume - | no answer! |
51 YY | sound field | 00=2ch stereo, 01=AFD, ... 1C=Game (list as on remote) |
53 YY ZZ | front speaker | YY: 00=large 01=small, ZZ: 00=front 01=center 02=rear 03=sub |
80 YY | rear level | value in dB, MSB=sign |
81 YY | center level | value in dB, MSB=sign |
83 YY | rear balance | 00=center, 01..08=right (08->max), F7..FF=left (F7->max) |
86 YY | D.Range Comp | 00=off, 01=0.1dB, 02=0.2dB, ... |
87 YY | LFE mix | 00=0dB, FF=-1dB, ... EC=-20dB, EB..80=off |
90 | Front bass | ??? answer 50 |
95 YY | Units | 01=meter, 02=feet |
97 YY | Crossover frequency | 00..4B=60Hz, 4C..69=90Hz, 6A..87=120Hz, 88..A5=150Hz, A6..FF=180Hz |
96 YY ZZ | Rear placement | YY: 00=side 01=mid 02=behind, ZZ: 00=low 01=high |
99 YY | Front balance | 00=center, 01..08=right (08=max), F7..FF=left (F7=max) |
9F YY | dts LFE mix | value in dB |
SUR Receive Messages (from surround) prefix 11001011b = CBh | ||
command (hex) | description | remark |
---|---|---|
40 RR XX | Status Rear volume | RR=dB in two's complement |
50 XX... | Status Front volume | ??? |
70 XX XX XX XX | Status Surround |
Zurück zur Protokollübersicht |
Back to protocol overview |
Zurück zur Hauptseite | Back to Main Page |