Sie sind auf Seite 1von 7

Kenwood

Recommended links: Patrick Loef's Page with AVR based Kenwood CD changer emulator (KECANI) The protocoll used here is a synchron serial protocoll. First let us start with the connector pinout. The pins have a 2.54mm distance, so you can simply build a plug using some prototyping board ......... New connector pin-out (for head units >'99?) Thanks to Patrick Loef for this information. pin direction description 1 2 3 4 5 6 7 8 9 10 11 12 13 O O I O I I I O I I/O CH-REQH - Request output to changer; "Low" : Request Ground Vcc +12V CH-CON - Changer control; "High" : Operation mode "Low" : Standby CH-MUTE - Mute request from changer; "High" : Mute AGND - Audio Ground CH-RST - Reset output to changer Audio right channel CH-REQC - Request input from changer; "Low" : Request CH-DATAC - Data input from changer CH-DATAH - Data output to changer Audio left channel CH_CLK - Clock input/output for changer

The following works only with newer kenwood radios. Older models have the same pinout but use some more simple protocol ... The clock low and high periods had a length of 4us. The data is transfered in bytes ( 8 bits ... MSB first ), data is valid at the rising clock edge.. The data transfer is initiated either by the radio or the changer, the initiator just pulls its fs line low. When the changer starts the communication it gets 40 clocks from the radio ( 4 bytes addr + 1byte data size ). The radio then sets its fs to low if it accepts the transfer. When a transfer is initiated by the radio by setting its fs low it waits for the changer to answer with a low fs, then it sends the 4 byte addr header, the size byte for the data and the data. Packet header, direction: both byte 0 1 2 3 4 5 log value ( r->cdc) description 0x29 0x10 0x1E 0x00 x x destination address destination address own address own address data size in bytes first data

byte 4+data x size last data byte

From this point I only write the data part of a packet initialisation handshake answer, direction: cdc->r byte 0 1 2 3 4 log value 0x11 0xA4 0x00 0x01 0x02 description command identifier cycle numer of the above packet ?? ?? ??

send after above packet, maybe radio identification and caps, direction: r->cdc byte 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 log value 0x20 0x00 0x11 0x01 0x03 0x0B 0x0B 0x07 0x05 0x83 0x84 0xC0 0xC1 0xC2 0xC3 0xC4 description command identifier

16 17

0xC5 0xC6

send after above packet, maybe init ack from radio, direction: r->cdc byte 0 1 2 3 4 5 6 7 log value 0x20 0x01 0x11 0x29 0x10 0x00 0x01 0x02 changer address changer address maybe last bytes of cmd 0x11(cdc->r) maybe last bytes of cmd 0x11(cdc->r) maybe last bytes of cmd 0x11(cdc->r) description command identifier

changer caps info, send after above packet, direction: cdc->r byte 0 1 2 3 4 5 6 log value 0x70 0x02 0x0A 0x3F 0x03 0x0C 0x02 maybe disc count description command identifier

play position info, direction: cdc->r byte log value description

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

0x60 0x02 0x00 0x00 0x00 0x00 0x02 0x00 0x01 0x00 0x04 0xBB 0x01 0x0B 0x07 0x01 0x22 0x62 0x26 0x09 0x30

command identifier maybe sub command id

error code, 0 is no error changer status ( load, eject, ..... ) play status (1 - play, 2 - pause )

track order mode ( normal 0, tscan 1, dscan 2,random 6, ...) some bcd number field, displayed when field 3 != 0 track number disc number min ( bcd ) sec ( bcd ) min disc ( bcd ) sec disc ( bcd ) min remain ( bcd ) sec remain ( bcd )

text info request, direction: r->cdc byte 0 1 2 3 4 5 log value description 0x42 0x02 0x07 0x0A 0x00 0x00 disc number track number text section number, sections had 12 bytes size here command identifier

0x80

text id ( 0x80 -> name 0x81 -> artist )

text info send after request, direction: cdc->r byte 0 1 2 3 4 5 6 7 8 9..20 log value description 0x62 0x02 0x07 0x02 0x0A 0x00 0x09 0x00 0x80 x text id ( 0x80 -> name 0x81 -> artist ) text track number ( 0 -> disc title transfer ) text section number, sections had 12 bytes size here disc number command identifier

commands send when keys on the radio were pressed, direction: r->cdc log discbyte value fwd(toggle) bwd(toggle) (toggle) (play) 0 0x50 0x50,0x50 0x50,0x50 disc+(toggle) description command identifier maybe event id ( 0 all up, 01 down, 02 toggle, 04 up, 06 hold )

0x50,0x50 0x50,0x50

0x02 0x01,0x04 0x01,0x04

0x02,0x00 0x02,0x00

2 3 4 5

0x02 0x02,0x02 0x02,0x02 0x00 0x02,0x02 0x02,0x02 0x07 0x01,0x01 0x02,0x02 0x00 0x05,0x05 0x06,0x06

0x02,0x02 0x02,0x02 0x00,0x00 0x00,0x00 0x04,0x00 0x02,0x00 0x00,0x00 0x00,0x00 key id

Using the information above you should have some starting point if you are intrested in doing your own project, it is simple to build a converter to send and receive these commands using a pc so you can find out the meaning of other commands and fields if you need.

Das könnte Ihnen auch gefallen