Deutsch   English

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 - Timing Diagram
S-LINK (CTRL-A) protocol


S-LINK(tm) Symbol 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!


Known Device Codes
codedevice
90CD Player
B0MiniDisc Recorder
C0Amplifier
C1Tuner
C3Surround
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)descriptionremark
00playor start recording from record pause
01stop 
02pause 
03pause toggle 
04eject 
07record pause(answer 07)
08skip + 
09skip - 
0Equery stored??? (answer 71)
0Fsetup infoprog.-mode, switches (answer 70)
10fwd fastend with play or normal
11rew fastend with play or normal
12fwd slowend with play or normal
13rew slowend with play or normal
1Fnormalend from fwd or rew
20disable remote control 
21enable remote control 
22device typedevice type code (answer 61)
23auto pause off 
24auto pause on 
25time update onupdates time every second until end of track (answer 51)
26time update off 
2Epower on 
2Fpower off 
32divide 
33menu yes 
34menu no 
35undo 
3Edevice keys disabled 
3Fdevice keys enabled 
40 TTerase trackwithout request!
41 TT TTmove trackfrom TT to TT, without request!
42 TTcombine with previous track 
43 TTcombine with track TTwithout request!
44 DDquery discdisc info (answer 60)
45 DD TTquery tracktrack info (answer 62)
46 DDsplit adjust 
50 DD TTplay direct track 
51 DD TTpause (before start) direct track 
54 DDremain time disc 
58 DD 00query disc nameno disc name: answer 16
5A TT 00query track nameno track name: answer 17
6Adevice nameanswer 6A
72 TTrecord dateno date rec.: answer 72 TT 00 00 00 00 00 00
76 DD TTcombine track a+b???
78a-b erase, set point a???
79a-b erase, set point b???
7Aadjust point a???
7Badjust point b???
7Ca-b erase, confirm point a???
7Dconfirm a-b erase???
97 01 00disc infoalso 97 00 00 (answer 97) ???
98 DD 00 00 [14d x CC]write disc textif CC<14d, fill with 00 (ok, answer 1F)
99 BB [16d x CC]write disc more textBB>1 (block), if CC<16d, fill with 00 (ok, answer 1F)
9A TT 00 00 [14d x CC]write track textif CC<14d, fill with 00 (ok, answer 1F)
9B BB [16d x CC]write track more textBB>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)descriptionremark
00play 
01stop 
02pause 
03TOC updated???
04record play 
05ignored 
06seekingCD Player: unloading or moving carosel
07record pause 
08ready 
09start of track 
0C30 sec to end of track 
0Eunavailable 
0Ferror 
10no memo 
11no delete file 
12no group 
14invalid disc #used in disc info query
15invalid disc or track #used in track info query
16no disc name on disc 
17no track name on disc 
18door openonly CD-Changer
19no grouponly CD-Changer
1Dno cd text 
1Ftitle written to memory 
2Epower on 
2Fpower off 
31???(answer to command 42)
33complete 
50 DD TT MM SStrack statusdisk, track, min, sec (all bcd)
51 TT DD MM SStime update statustrack, disk, min, sec (all bcd) (answer to command 25)
54 DD MM SSremain time discdisk, min, sec (all bcd) (if min=100d, byte=a0) (if min>255d, byte=wrong value)
58 DD 00 00 [14d x CC]disc textif CC<14d, filled with 00
59 BB [16d x CC]disc more textBB>1 (block), if CC<16d, filled with 00
5A TT 00 00 [14d x CC]track textif CC<14d, filled with 00
5B BB [16d x CC]track more textBB>1 (block), if CC<16d, filled with 00
60 01 01 TT MM SS 00disc info# of Discs Tracks (HEX), Total Playing Time Minutes, Seconds (all BCD)
61 DD IDdisc capacity, model identifierafter power on, 07 for MDS-JE530, 0B for CD...
62 DD TT MM SStrack infoTrack (HEX), Playing Time Minutes, Seconds (all BCD)
6Adevice nameanswer: 6A [17d x CC], if CC<17d, filled with 00
70 S1 S2 S3 DD TTstatusS1: 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
7100 01 00 00 (oder 01) 00after TOC-read, inserting disc


AMP Send Commands (to amplifier) prefix 11000000b = C0h
command (hex)descriptionremark
06muteanswer 70
07unmuteanswer 70
0C5.1 input onanswer 70
0D5.1 input offanswer 70
0Estatus request 2nd Audioanswer 71
0Fstatus request Sourceanswer 70
14master volume +no answer!
15master volume -no answer!
22status request ???answer 61
23status request ???answer 62
2C???answer 2C
2D???no answer!
2Epower onanswer 61, C3, 87, 0F, 1F, 3F, 7F
2Fpower off 
30??? onanswer 70 (Byte3, Bit5=0)
31??? offanswer 70 (Byte3, Bit5=1)
32??? onanswer 71 (Byte3, Bit5=0)
33??? offanswer 71 (Byte3, Bit5=1)
40 VVMaster volume set direct(no answer, only some amp's)
43Status request input typeanswer 43 (Byte2, L-N), see also command 83
48 NNStatus Source nameanswer 48 NN [8 x CC] 00 00 00 00 00, see also command 88
50 SSSet Source00=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 SSSet 2nd Audio00=Tuner, 02=CD, 03=DAT, 04=MD, 05=Tape, 0F=Source (answer 71)
6ADevice nameanswer 6A
83 TTSet input type01=optical, 02=coax, 04=analog, answer 43
88 SS [8 x CC]Set Source nameSS=Source (see command 50)


AMP Receive Messages (from amplifier) prefix 11001000b = C8h
command (hex)descriptionremark
06mute 
07unmute 
0C5.1 input on 
0D5.1 input off 
0Eunavailable 
0Ferror 
2Epower on 
2Fpower off 
43 TT XXStatus input type01=optical, 02=coax, 04=analog
70 AA AV CCStatus sourceAA=Status Audio, AV=Status Video (see command 50)
CC: Bit4=5.1 input, Bit3=tapeloop, Bit1=mute
71 AA XX XX (XX)Status 2nd AudioAA=Status 2nd Audio (see command 50)
E1 XX TT XX XX...StatusTT: Bit2=0 after SLINK-command, Bit2=1 after IR-command


TUNER Send Commands (to tuner) prefix 11000001b = C1h
command (hex)descriptionremark
03 BBBandBB=00: FM, BB=01: AM, answer 70
06scan + 
07scan - 
08preset + 
09preset - 
0Amono 
0Bstereo 
50 BB HH LLDirect TuneBB=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 NNPreset StationBB=[01..03] Bank A..C, NN=[00..09] Station number, answer 70, E1
52 PPPTY Search00=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)descriptionremark
48 BB NN [8 x CC] 00 00 00 00 00Station StatusBB: Bank [01..03], NN: Number [00..09], CC: Name
70 BB NN XX XXTuner StatusBB: Bank [01..03], NN: Number [00..09]
E1 XX (XX...)Tuner Status 


SUR Send Commands (to surround) prefix 11000011b = C3h
command (hex)descriptionremark
04surround 
052ch stereo 
06EQ on 
07EQ off 
0Bnext sound field 
0C2ch stereo 
0DAFD 
10rear volume +no answer!
11rear volume -no answer!
12center volume +no answer!
13center volume -no answer!
14sub volume +no answer!
15sub volume -no answer!
51 YYsound field00=2ch stereo, 01=AFD, ... 1C=Game (list as on remote)
53 YY ZZfront speakerYY: 00=large 01=small, ZZ: 00=front 01=center 02=rear 03=sub
80 YYrear levelvalue in dB, MSB=sign
81 YYcenter levelvalue in dB, MSB=sign
83 YYrear balance00=center, 01..08=right (08->max), F7..FF=left (F7->max)
86 YYD.Range Comp00=off, 01=0.1dB, 02=0.2dB, ...
87 YYLFE mix00=0dB, FF=-1dB, ... EC=-20dB, EB..80=off
90Front bass??? answer 50
95 YYUnits01=meter, 02=feet
97 YYCrossover frequency00..4B=60Hz, 4C..69=90Hz, 6A..87=120Hz, 88..A5=150Hz, A6..FF=180Hz
96 YY ZZRear placementYY: 00=side 01=mid 02=behind, ZZ: 00=low 01=high
99 YYFront balance00=center, 01..08=right (08=max), F7..FF=left (F7=max)
9F YYdts LFE mixvalue in dB


SUR Receive Messages (from surround) prefix 11001011b = CBh
command (hex)descriptionremark
40 RR XXStatus Rear volumeRR=dB in two's complement
50 XX...Status Front volume???
70 XX XX XX XXStatus Surround 

Zurück zur Protokollübersicht

Back to protocol overview

Zurück zur Hauptseite Back to Main Page
updated: 2020-11-08