Question about Car Speakers & Subwoofers
You asked for it...
..it's a little complicated.
The pioneer IP bus uses a 2 wire differential signal for communication.
An equal level on both lines is a logical low while a high is encoded as a voltage difference of some 100mV.
I think a CANbus tranceiver should work here.
The data transfer is initiated by either the cd changer or the radio.The initiator generates a high pulse ( ca. 170us ) and a following low pulse ( ca 20us ).
Then the data transfer starts, a 1 is encoded as a high-low sequence with a duration of ap. 20us for both levels and a 0 consists of a 33us high and a 7us low pulse.
The data is now transfered in bytes with MSB first, the 8th bit is an odd parity bit.At the end of the 3rd and all following Bytes there is an additional bit inserted after the parity where the receiver acknowledges the transfer.
This is done by holding the data lines in a high state after the initiator sets them low.If this ack is missing the transfer is stopped.
The timings may vary because the real data is encoded in the pulse to space length relation.
The first 3Bytes seem to be some kind of device address.The changer I used transfered a 0x88,0x68,0x00 here while the radio sended 0x88,0x08,0x06.
The next 4 bits were always high. After that a size byte and then size bytes were transfered. The last byte in the transfer is a checksum generated adding the values of all data beginning with the 4bit sequence ( = 0x0F ).
In the following part I only will write the raw data excluding size and cheksum field.
Each command transfered was first answered by some acknowledge packet consisting of a single 0xA1.
(which looks like: 0x88 0x08 0x06 0xF 0x02 0xA1 0xB2 -> 0xB0 is the checksum ).
For now I just figured out some very basic things like the fields where time, track and disc number are encoded and also some
key codes the radio sends. There are many more fields in the packets where i still don't know the meaning of.
(I just got the radio from a friend for some days and so I couldn't do so much more on it ... however .. if somebody is intrested in some
more information and is wiling giving me a radio and a changer for some weeks I'll try to do some more .... )
I have also designed a small circuit using a AT90S2313 controller which can be used for logging the transfer through the pc serial port and also
to send commands.
The following packet sended by the changer contained the time disc and track information.
Byte 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Info command modus mcd disc min sec track cdt Data 0x61 0x10 0x06 0x01 0x20 0x04 0x16 0x01 0x06 0x01 0x00 0x00 0x01 0x00 0x3F 0x00 0x00 0x00 0xC0 0x48 modus:
Value 0x02 0x07 0x08 0x10 0x11 0x13 0x14 0x15 0x16 Info ready track blink pause ready and disc blink disc blink load and disc blink eject and disc blink load eject cdt: bit0: (1:cdtext),(0:normal)
The text information was encoded within this packet
Byte 0 1 2 3 4 5 6 7 8 9 10 11 12 13-22 Info command modus disc track text seqence number text Data 0x61 0x10 0x06 0x01 0x20 0x04 0x38 0x09 0x00 0x06 0x00 0x00 0x00 0x00
Recommend link: Vitaliy's Page @ http://www.vitat.spb.ru/ with IP bus interface on AVR basis and more IP bus informations
Some transfer log files are available.
Posted on Jul 20, 2008
Tips for a great answer:
Aug 26, 2011 | Pioneer Car Speakers & Subwoofers
Jun 14, 2008 | Car Speakers & Subwoofers
Aug 22, 2011 | Pioneer Car Speakers & Subwoofers
Jul 07, 2011 | Car Speakers & Subwoofers
Apr 05, 2011 | Pioneer Car Speakers & Subwoofers
Mar 15, 2011 | Pioneer Car Speakers & Subwoofers
Feb 05, 2011 | Car Speakers & Subwoofers
Oct 19, 2008 | Pioneer Car Speakers & Subwoofers
Jul 20, 2008 | Pioneer Car Speakers & Subwoofers
240 people viewed this question
Usually answered in minutes!