|
Title: Pioneer IP Protocoll documentation/specification Post by: pioneer_freak on 20 Feb 2004, 17:29 Hi all,
does anybody have an more formal description of the IP protocoll, which is used between an pioneer HU and MCD. I got the sources from http://www.vitat.spb.ru/files/ip-bus/ipbus_v4.0.zip. I'm interested in the codings of the commands comming from the HU and possible responses from the MCD. To Vitaly: It is very hard to understand e.g. the reason, when to send the COM_10_20 command. Do you have a more detailed description of the command structure? thx Ralf Title: Pioneer IP Protocoll documentation/specification Post by: Brokly on 23 Feb 2004, 12:21 pioneer_freak,
Quote Всем привет :D [code:1][/code:1]Надеюсь меня не будут склонять за мой англицкий, ну нету его :? Сразу оговорюсь, MMD я в руках не держал и логи его не видел. Все что ниже наковырянно методом тыка. Надеюсь что кто нибудь разберется в том что я накропал ниже. В принципе это что то типа описания протокола с упором на MMD. Склепал устройство, написал код для PIC и драйвер для Винампа. Все работает, но осталось дописать обработку разрывов связи и механизм вкл-выкл компа. Кстати используя инфу для глупых голов можно синтезировать еще 250 устройств :twisted: Format packets St 1 000 1 XXXXXXXX P 000 1 YYYYYYYY P R 1111 p R ZZZZZZZZ p R DDDDDDDD p R .... DDDDDDDD p R SSSSSSSS p R 1 St - start packet bit 200 ms 1 - 20/20 ms 0 - 30/10 ms R - sens connect bit XXXXXXXX - ID sender (IDSD) YYYYYYYY - ID receiver (IDRC) DDDDDDDD - data byte (DATA) ZZZZZZZZ - long packet SSSSSSSS - parity summ = (((IDSD + IDRC) >> RLF(4)) + ((IDSD + IDRC) RRF(4)) + 0xA0 + 0xF + LONG + DATA +... + DATA P - parity in header P = B0 xor B1 xor B2 xor B3 xor B4 xor B5 xor B6 xor B7 xor 1 p - parity in data p = B0 xor B1 xor B2 xor B3 xor B4 xor B5 xor B6 xor B7 Inbound data (from HU for MMD) in all packets InData[03] - HU power status if InData[01] = 0x01 if InData[01] = 0x10 if InData[01] = 0x30 key command InData[07] - master key code, InData[08] - slaver key code if InData[01] = 0x40 find from end to start 0x02 , next code MAIN POWER STATUS (MMD) if InData[01] = 0x50 HU retraive text info InData[07] = type 0x30 - disc title, 0x31 - track title InData[08] = disc number (BCD) InData[09] = track number (BCD) InData[10] = frame number (HEX) if InData[01] = 0x70 Outbound packets (from MMD to HU) SEND_OK 0xA1 COM_STATUS STAT,0x10 STAT: 01 - init retraive 00 - ready INIT_50 0x50,0x10,SENDER ID,RECEIVER ID,0x20,0x00,0x04 COM_50 0x50,0x10,SENDER ID,RECEIVER ID,0x20,0x01,0x04 COM_10_37 0x10,0x10,SENDER ID,RECEIVER ID,0x34,0x00,InQueire_Packet_ID,MAIN_POWER_STATUS COM_10_00 0x10,0x10,SENDER ID,RECEIVER ID,0x23,0x01,0x00,0x38,0x00 COM_10_52 0x10,0x52,0x00,SENDER ID,RECEIVER ID,0x00,0x00,InQueire_Packet_ID,MAIN_POWER_STATUS COM_11 0x11,0x10,SENDER ID,RECEIVER ID,BEEP_TONE,MODE,InQueire_Packet_ID,Master_Key_Code COM_61_00 0x61,0x10,SENDER ID,RECEIVER ID,0x20,MODE,0x00,MAX_DISC_Numb_BCD,DISC_Numb_BCD,MIN_Hight_BCD,MIN_Low_BCD,SECONDS_BCD, TRACK_Hight_BCD,TRACK_Low_BCD,0x00,Cn+0x00,Playing_Status,Text_0,...,Text_7 01 - Packet Code 02 - ??????? 03 - MAIN ID (12 for MMD) 04 - HU ID ( 00 ) 05 - Packet Code Slave 1 06 - mode NO_SHOW 0x00 ERROR 0x01 TOC_READING 0x02 OK 0x04 SEEC_TRACK 0x07 SEEC_DISC 0x11 TOC_READING_1 0x40 NO_DISK 0xFA STOP 0xFB HEAT 0xFC ERROR_SHOW 0xFD TEST_MODE 0xFE 07 - Packet Code Slave 2 08 - Max Disk in device 09 - Current disk number 10 - Hundredths minutes ( 9 maximum, BCD) 11 - minutes (BCD) 12 - seconds (BCD) 13 - Hundredths current track number ( 9 maximum, BCD) 14 - current track number (BCD) 15 - ????????? 16 - Playing status slave b'XX000000' - Random: 00-ON, 01-"1", 10-"2" b'00XX0000' - Scan: 00-ON, 01-"1", 10-"2" 17 - Playing status master b'0000000X' - ??? b'000000X0' - SCAN: 1-ON, 0-OFF b'00000X00' - RDM: 1-ON, 0-OFF b'0000X000' - ??? b'000X0000' - ??? b'0XX00000' - RPT: 00-TRK, 01-DSK, 10-MMD, 11-ALL b'X0000000' - ??? 18 ~ 25 - Sucsk text, data for stupid HU COM_61_TXT 0x61,0x10,SENDER ID,RECEIVER ID,0x20,MODE,Type_Info,Info_Disc_Number,Info_Track_Number,Info_Text_Frame_Number,Info_Data_Status, Info_Text_0,...,Info_Text_7 07 - Type info (30;31) 08 - Disc number 09 - Track number 10 - Frame number 11 - Status Info 00 - good data 1 01 - good data 1 02 - no data Coalition ;) packets HU MMD 00 > SEND_OK 01 > SEND_OK, INIT_50 10 > SEND_OK, COM_STATUS 30 > SEND_OK, COM_11 40 > SEND_OK, COM_10_37 50 > SEND_OK, COM_61_TXT MMD HU COM_61_00 > OK Quote [code:1][/code:1][code:1][/code:1]Title: Pioneer IP Protocoll documentation/specification Post by: Brokly on 23 Feb 2004, 12:25 Жаль, что табуляция не обрабатывается...
Boris@utrans.ru Title: Re: Pioneer IP Protocoll documentation/specification Post by: iggzz on 22 Jul 2007, 13:25 Hello. Is the information above accurate in terms of timing? I found some more info on this page:
http://www.mictronics.de/?page=cdc_proto The timing seems to be 1000x faster. Any comments? I am thinking to build an MP3 player with USB and SD card support which would be able to interface to my Pioneer deck. I do not understand fully the protocol, so I will need a lot of help. Code will probably go in a dsPIC device. Anyone tried that? Regards, iggzz |