📄 ipod accessory protocol.mht
字号:
From: <由 Microsoft Internet Explorer 5 保存>
Subject: iPod Accessory Protocol
Date: Thu, 2 Aug 2007 13:58:37 +0800
MIME-Version: 1.0
Content-Type: multipart/related;
type="text/html";
boundary="----=_NextPart_000_004F_01C7D50D.3961A460"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3138
This is a multi-part message in MIME format.
------=_NextPart_000_004F_01C7D50D.3961A460
Content-Type: text/html;
charset="gb2312"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://stud3.tuwien.ac.at/~e0026607/ipod_remote/ipod_ap.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>iPod Accessory Protocol</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
<STYLE type=3Dtext/css>BODY {
FONT-SIZE: 8pt; MARGIN-LEFT: 100px; BACKGROUND-COLOR: #ffffff
}
H1 {
FONT-SIZE: 20pt; COLOR: #000000; BORDER-BOTTOM: black thin solid
}
P {
FONT-SIZE: 10pt; WORD-SPACING: 0.8mm; COLOR: blue; LINE-HEIGHT: 14pt; =
FONT-FAMILY: Helvetica,Arial,sans-serif; LETTER-SPACING: 0.2mm
}
LI {
FONT-SIZE: 10pt; WORD-SPACING: 0.8mm; COLOR: blue; LINE-HEIGHT: 14pt; =
FONT-FAMILY: Helvetica,Arial,sans-serif; LETTER-SPACING: 0.2mm
}
TABLE {
FONT-SIZE: 8pt
}
#rxd {
BACKGROUND-COLOR: #e4b7a8; TEXT-ALIGN: center
}
#txd {
BACKGROUND-COLOR: #bbcc00; TEXT-ALIGN: center
}
#frame {
BACKGROUND-COLOR: #84c777; TEXT-ALIGN: center
}
#cont {
BACKGROUND-COLOR: #ffb956; TEXT-ALIGN: center
}
A {
FONT-SIZE: 14pt; COLOR: #aa5555
}
</STYLE>
<META content=3D"MSHTML 6.00.2900.3132" name=3DGENERATOR></HEAD>
<BODY>
<DIV align=3Dcenter>
<H1>IPOD 3G Accessory Protocol </H1></DIV>
<HR>
<BR><BR><BR>This document describes the serial protocol used by the =
orginal iPod=20
remote , the different Voice Recorders, and maybe for the Alpine and BMW =
Car=20
Adapters.<BR><BR>With this information you are able to=20
<UL>
<LI>set the iPod in Voice Recorder mode and record audio=20
<LI>act like the original iPod Remote=20
<LI>set the iPod in an advanced Remote mode which allows you to=20
<UL><BR>
<LI>receive time information of the current song=20
<LI>receive status information Play, Pause, Stop=20
<LI>receive the number of songs in the current playlist=20
<LI>receive the index of the current played song in the current =
playlist=20
<LI>get artistname of each song in the playlist=20
<LI>get albumname of each song in the playlist=20
<LI>get songname of each song in the playlist=20
<LI>jump to a specific song in the playlist=20
<LI>jump to a specific Playlist=20
<LI>jump to a specific Artist-playlist=20
<LI>jump to a specific Album-playlist=20
<LI>jump to a specific Genre-playlist=20
<LI>switch to shuffle mode=20
<LI>switch to loop mode=20
<LI>upload pictures which should be displayed in AiR mode =
</LI></UL></LI></UL>
<H2>The G3 protocol</H2><BR>I only own a 3G model so i'm not able to =
verifiy=20
this for the 4G model. But it should work also on 4G models<BR>The =
format is a=20
standard 8N+1 serial structure which means 1 startbit 8 databits no =
parity bit=20
and 1 stopbit<BR>the usual baud rate is 19200 baud. But it seems to work =
also on=20
higher rates.<BR>The iPod communication is done in strings.<BR><BR>This =
is the=20
frame for each string.=20
<TABLE cellSpacing=3D2 cellPadding=3D2 align=3Dleft border=3D1 =
frame=3Dbox>
<TBODY align=3Dmiddle>
<TR>
<TD id=3Dframe>0xFF </TD>
<TD id=3Dframe>0x55 </TD>
<TD id=3Dframe>0x00 </TD>
<TD id=3Dcont>3 to n Byte</TD>
<TD id=3Dframe>0x00 </TD></TR>
<TR>
<TD id=3Dframe>A </TD>
<TD id=3Dframe>B </TD>
<TD id=3Dframe>C </TD>
<TD id=3Dcont>...</TD>
<TD id=3Dframe>D </TD></TR></TBODY></TABLE>
<TABLE cellSpacing=3D2 cellPadding=3D2 align=3Dcenter border=3D1 =
frame=3Dbox>
<TBODY align=3Dmiddle>
<TR id=3Dframe>
<TD>A </TD>
<TD>A is always 0xFF</TD></TR>
<TR id=3Dframe>
<TD>B </TD>
<TD>B is always 0x55</TD></TR>
<TR id=3Dframe>
<TD>C </TD>
<TD>C gives the number of data bytes between C and D </TD></TR>
<TR id=3Dcont>
<TD>...</TD>
<TD>Contains,mode,command and parameter</TD>
<TR id=3Dframe>
<TD>D </TD>
<TD>D is the checksum always the last =
byte</TD></TR></TBODY></TABLE><BR><BR>
<TABLE cellSpacing=3D2 cellPadding=3D2 border=3D1 frame=3Dbox>
<TBODY align=3Dmiddle>
<TR>
<TD>Fieldname</TD>
<TD>Size (Byte)</TD>
<TD>Value</TD>
<TD>FrameName</TD></TR>
<TR id=3Dframe>
<TD>Header</TD>
<TD>2</TD>
<TD>0xFF 0x55 </TD>
<TD>A and B</TD></TR>
<TR id=3Dframe>
<TD>Length</TD>
<TD>1</TD>
<TD>sizeof mode + command + parameter </TD>
<TD>C</TD></TR>
<TR id=3Dcont>
<TD>Mode</TD>
<TD>1</TD>
<TD>The mode the command is refering to (Look at "List of Modes" =
below)=20
</TD>
<TD>Between C and D</TD></TR>
<TR id=3Dcont>
<TD>Command</TD>
<TD>2</TD>
<TD>The two byte command </TD>
<TD>Between C and D</TD></TR>
<TR id=3Dcont>
<TD>Parameter</TD>
<TD>0..n</TD>
<TD>Optional Parameter, depending on the command </TD>
<TD>Between C and D</TD></TR>
<TR id=3Dframe>
<TD>Checksum</TD>
<TD>1</TD>
<TD>0x100 - sum of all between B and D Frames </TD>
<TD>D</TD></TR></TBODY></TABLE><BR><BR>
<TABLE cellSpacing=3D2 cellPadding=3D2 border=3D1 frame=3Dbox>
<TBODY align=3Dmiddle>
<TR>
<TD>Mode</TD>
<TD>Purpose</TD></TR>
<TR id=3Dcont>
<TD>0x00</TD>
<TD>Mode switching</TD></TR>
<TR id=3Dcont>
<TD>0x01</TD>
<TD>Voice Recorder</TD></TR>
<TR id=3Dcont>
<TD>0x02</TD>
<TD>Simple Remote</TD></TR>
<TR id=3Dcont>
<TD>0x04</TD>
<TD>Advanced iPod Remote (AiR)</TD></TR></TBODY></TABLE><BR>
<H2>The Original Remote Commands</H2><BR><BR>
<TABLE cellSpacing=3D2 cellPadding=3D2 bgColor=3D#f7ffe5 border=3D1 =
frame=3Dbox>
<TBODY>
<TR>
<TD=20
style=3D"FONT-WEIGHT: bold; VERTICAL-ALIGN: top; TEXT-ALIGN: =
center">Button<BR></TD>
<TD=20
style=3D"FONT-WEIGHT: bold; VERTICAL-ALIGN: top; TEXT-ALIGN: =
center">String<BR></TD></TR>
<TR>
<TD>Play/Pause</TD>
<TD id=3Dframe>0xFF 0x55 0x03 0x02 0x00 0x01 0xFA</TD></TR>
<TR>
<TD>Vol+</TD>
<TD id=3Dframe>0xFF 0x55 0x03 0x02 0x00 0x02 0xF9</TD></TR>
<TR>
<TD>Vol-</TD>
<TD id=3Dframe>0xFF 0x55 0x03 0x02 0x00 0x04 0xF7</TD></TR>
<TR>
<TD vAlign=3Dtop width=3D130>Skip>></TD>
<TD id=3Dframe style=3D"VERTICAL-ALIGN: top; TEXT-ALIGN: =
center">0xFF 0x55=20
0x03 0x02 0x00 0x08 0xF3</TD></TR>
<TR>
<TD vAlign=3Dtop width=3D130><<Skip</TD>
<TD id=3Dframe style=3D"VERTICAL-ALIGN: top; TEXT-ALIGN: =
center">0xFF 0x55=20
0x03 0x02 0x00 0x10 0xEB</TD></TR>
<TR>
<TD vAlign=3Dtop>End Button </TD>
<TD id=3Dframe style=3D"VERTICAL-ALIGN: top; TEXT-ALIGN: =
center">0xFF 0x55=20
0x03 0x02 0x00 0x00 0xFB </TD></TR></TBODY></TABLE><BR>As you can =
see C is for=20
each of the Remote commands 0x03 because there are 3 databytes ( 0x02 =
0x00 0x01=20
for Play/Pause ). D is the checksum which is the number you have to add =
to the=20
sum of the databytes ( 0x02 0x00 0x01 for Play/Pause ) plus the C byte =
to get an=20
even multiple of 0x100.<BR>For our Play Pause example: 0x02 + 0x00 + =
0x01 +=20
0x03(C) + 0xFA(D) =3D0x100. <BR><BR>
<H3>Connection</H3>For the remote connector schematics look at the <A=20
href=3D"http://www.maushammer.com/systems/ipod-remote/ipod-remote.html">m=
aushammer=20
page</A><BR>For the dock pinout of the serial connector take a look at =
<A=20
href=3D"http://stud3.tuwien.ac.at/~e0026607/ipod_remote/ipod_dock_pinout.=
html">partial=20
dock pinout</A> You should also use the setttings shown on the =
maushammer page=20
for baudrate, character size, etc.. <BR>The most complete iPod Hardware=20
information: <A =
href=3D"http://www.ipodlinux.org/">http://www.ipodlinux.org/</A>=20
<BR><BR>
<H2>The Voice Recorder Mode</H2>The first bitpattern you have to send to =
the=20
iPod is 0xFF 0x55 0x03 0x00 0x01 0x01 0xFB.<BR><BR>-> The menu =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -