Title of Invention

COMMUNICATION PROTOCOL FOR USE WITH PORTABLE ELECTRONIC DEVICES

Abstract Improved techniques for communicating between a portable electronic device and an accessory (or auxiliary) device are disclosed. The accessory device can augment or supplement the functionality or capabilities of the portable electronic device. For example, in one embod- iment, the accessory device can provide wireless commu- nication capabilities to the portable electronic device. In one embodiment, the portable electronic device pertains to a portable media player and thus provide media data for storage, playback or transmission. In one embodiment, the accessory device is attachable to the portable electronic de- vice.
Full Text COMMUNICATION PROTOCOL FOR USE WITH PORTABLE
ELECTRONIC DEVICES
BACKGROUND OF THE INVENTION
Field of the Invention
[0001] The present invention relates to electrical devices and, more particularly, to
electrical devices, such as media players, that communicate with external devices.
Description of the Related Art.
[0002] A media player stores media assets, such as audio tracks, that can be played or
displayed on the media player. One example of a portable media player is the iPod®
media player, which is available from Apple Inc. of Cupertino, CA. Often a media
player acquires its media assets from a host computer that serves to enable a user to
manage media assets. The host computer can execute a media management
application to acquire and manage media assets. One example of a media
management application is iTunes® produced by Apple Inc.
[0003] Portable media players, such as MP3 players, are able to play music for users
often via earphones or a headset A portable media player typically includes one or
more connectors or ports that can be used to interface to the portable media player.
For example, the connector or port can enable the portable media player to couple to a
host computer, be inserted into a docking system, or receive an accessory device.
Typically, portable media players are dedicated to playing media. However, there
exist today various different types of accessory devices that can be coupled to
portable media players. For example, a remote control can be connected to the
connector or port to allow the user to remotely control the portable media player. As
another example, an automobile can include a connector and the portable media
player can be inserted onto the connector such mat an automobile media system can
interact with the portable media player. As still another example, a microphone
accessory device can be connected to a portable media player to enable voice
recording. Yet still another example is a FM radio controller accessory that includes a
FM tuner and a controller. Still yet another example is a camera connector that
connects to a portable media player as well as a camera (via USB) and serves to
facilitate transfer of images from the camera to the portable media player.

[0004] Currently, portable media players can interact with attached accessories in
limited ways. However, as accessories become more complex and/or more integrated
with operation of portable media players, more sophisticated interaction with
accessories is required. Thus, there is a need for improved techniques to enable portable media players to communicate with accessory devices in accordance with a
controlled protocol.
SUMMARY OF THE INVENTION
[0005] The invention relates to improved techniques for communicating between a
portable electronic device and an accessory (or auxiliary) device. The accessory
device can augment or supplement the functionality or capabilities of the portable
electronic device. For example, in one embodiment, the accessory device can provide
wireless communication capabilities to the portable electronic device. In one
embodiment, the portable electronic device pertains to a portable media player and
thus provide media data for storage, playback or transmission. In one embodiment,
the accessory device is attachable to the portable electronic device.
[0006] The invention can be implemented in numerous ways, including as a method,
system, device, apparatus (including graphical user interface), or computer readable
medium. Several embodiments of the invention are discussed below.
[0007] As a method for communicating between a portable electronic device and an
accessory device, one embodiment of the invention includes at least the acts of:
issuing a device capabilities request to the accessory device; receiving a device
capabilities response from the accessory device; and subsequently interacting with the
accessory device based on the device capabilities.
[0008] As a computer readable medium including at least computer program code for
communicating between the portable electronic device and an auxiliary device
operatively connectable thereto, one embodiment of the invention includes at least:
computer program code for issuing a device capabilities request to the accessory
device; computer program code for receiving a device capabilities response from the
accessory; computer program code for issuing a device mode setting request to the
accessory device, the device mode setting request being used to set an operational
mode of the accessory device; computer program code for issuing a set filter request
to the accessory device, the set filter request being used to configure network filtering
at the accessory device; and computer program code for subsequently interacting with

the accessory device based on the device capabilities, the operational mode and the
network filtering.
[0009] As a computer readable medium including at least computer program code for
communicating between the portable electronic device and an auxiliary device
operatively connectable thereto, another embodiment of the invention includes at
least computer program code for issuing a device capabilities request to the accessory
device; computer program code for receiving a device capabilities response from the
accessory; computer program code for issuing a set filter request to the accessory
device, the set filter request being used to set configure network filtering at the
accessory device; and computer program code for subsequently interacting with the
accessory device based on the device capabilities and the network filtering.
[0010] As a computer readable medium including at least computer program code for
communicating between the portable electronic device and an auxiliary device
operatively connectable thereto, still another embodiment of the invention includes at
least: computer program code for issuing a set filter request to the accessory device,
the set filter request being used to set configure network filtering at the accessory
device; and computer program code for subsequently operating interaction with the
accessory device based on the network filtering.
[0011] Other aspects and advantages of the invention will become apparent from the
following detailed description taken in conjunction with the accompanying drawings
which illustrate, by way of example, the principles of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The invention will be readily understood by the following detailed description
in conjunction with the accompanying drawings, wherein like reference numerals
designate like structural elements, and in which:
[0013] FIG. 1 is a block diagram of a sports monitoring system according to one
embodiment of the invention.
[0014] FIG. 2 illustrates a block diagram of a sports device according to one
embodiment of the invention.
[0015] FIG. 3 is a block diagram of a wireless interface accessory according to one
embodiment of the invention.
[0016] FIG. 4A is a block diagram of an arrangement of functional modules utilized
by a portable media device.

[0017] FIG. 4B is a block diagram of a media player suitable for use with the
invention.
[0018] FIG. 5 is a software system according to one embodiment of the invention.
[0019] FTGs. 6A-6D are diagrams illustrating various commands of an accessory
protocol according to one embodiment of the invention.
DETAILED DESCRIPTION OF THE INVENTION
[0020] The invention relates to improved techniques for communicating between a
portable electronic device and an accessory (or auxiliary) device. The accessory
device can augment or supplement the functionality or capabilities of the portable
electronic device. For example, in one embodiment, the accessory device can provide
wireless communication capabilities to the portable electronic device. In one
embodiment, the portable electronic device pertains to a portable media player and
thus provide media data for storage, playback or transmission. In one embodiment,
the accessory device is attachable to the portable electronic device.
[0021] The invention is particularly well suited for use in monitoring physiological
data, such as exercise data (e.g., run data). In one embodiment, an accessory device
couples to a portable electronic device and receives physiological data from a remote
sensor in a wireless manner. The portable electronic device can then communicate
with the accessory device to acquire the physiological data from the accessory device.
Thereafter, the portable electronic device can store, process and/or display
physiological related information. The physiological monitoring is normally of a
person, who is typically the user of the portable electronic device.
[0022] Embodiments of the invention are discussed below with reference to FIGs. 1 -
6D. However, those skilled in the art will readily appreciate that the detailed
description given herein with respect to these figures is for explanatory purposes as
the invention extends beyond these limited embodiments.
[0023] FIG. 1 is a block diagram of a sports monitoring system 100 according to one
embodiment of the invention. The sports monitoring system 100 is an electronic
system that enables sports related information to be acquired, stored, analyzed,
presented and shared.
[0024] The sports monitoring system 100 includes a portable media device 102. The
portable media device 102 is capable of storing and playing media for its user. For
example, the portable media device 102 can output (e.g., play) audio or video. The
sports monitoring system 100 also includes a sports device 104. The sports device

104 is, for example, a pedometer, a heart rate monitor, etc. The sports device 104
includes one or more sensors that acquire sports related data.
[0025] The sports device 104 also includes wireless transmission capability so that
the sports related data can be transmitted to the portable media device 102. In
particular, the portable media device 102 includes a wireless interface accessory 106.
The wireless interface accessory 106 includes a wireless transceiver so that the
wireless interface accessory 106 can receive the sports related data being transmitted
by the sports device 104 by way of a wireless connection through a personal wireless
network 108. The portable media device 102 can receive the sports related data from
the sports device 104 via the wireless interface accessory 106 and can then operate to
process and store the sports related data at the portable media device 102.
[0026] The sports monitoring system 100 also includes a personal computer 110. The
portable media device 102 can be electrically connected to the personal computer 110
by way of a cable 112. The cable 112 can, for example, be a Firewire or USB cable.
Alternatively, the cable 112 can be replaced with a wireless link. Although the
portable media device 102 is not normally electrically connected to the personal
computer 110, the electrical connection when present facilitates information exchange
between the portable media do ice 102 and the personal computer 110.
[0027] The personal computer 110 includes a media management application 114.
The media management application 114, in one embodiment, can not only manage the
media assets stored on the personal computer 110, but can also store and manage
sports related data. In one embodiment, the media management application 114 can
operate to cause the sports related data stored on the portable media device 102 to be
copied to the personal computer 110. Thereafter, the sports related data can be
analyzed at the personal computer 110 and/or made available to the user of the
personal computer 110. In addition, the sports monitoring system 100 can facilitate
the personal computer 110 coupling to a data network 116. The data network 116 can
represent a global or Wide Area network, such as the World Wide Web (or the
Internet). When the personal computer 110 is coupled to the data network 116, the
sports related data present at the personal computer 110 can be transferred to a sports
management server 118. At the sports management server 118, the sports related data
can be further analyzed and/or processed to facilitate usefulness of the data. The
sports management server 118 supports storage and analysis of sports related data
from a large number of different portable media devices and/or personal computers.

Hence, the sports management server 118 can also compare the sports related data
from different users. The sports management server 118 can also provide a website
that can be accessed by a network browser operating on the personal computer 110 or
other computing device to access sports related information or other information
made available via the website.
[0028] The sports device 104 illustrated in FIG. 1 can take a variety of different
forms. In one embodiment, the sports device is a sensor-based device. One example
of a sensor-based device is a pedometer.
[0029] FIG. 2 illustrates a block diagram of a sports device 200 according to one
embodiment of the invention, the sports device 200 is, for example, suitable for use
as the sports device 104 illustrated in FIG. 1.
[0030] The sports device 200 includes a microcontroller 202 that controls the overall
operation of the sports device 200. The sports device 200 also includes a transducer
204 that acquires raw sports data. As an example, the transducer 204 can pertain to a
piezo-electric device (e.g., piezo-electric pedometer). With a piezo-electric device,
electrical signals associated with pressure applied to the transducer 204 are produced
as a user of the sports device walks or runs. In one embodiment, the sports device
200 can be embedded within a shoe, such as within a sole of a shoe. A signal
conditioning circuit 206 filters and/or amplifies the raw sports data supplied by the
transducer 204. The resulting conditioned sports data is then supplied to the
microcontroller 202. The microcontroller 202 include memory that can store the
conditioned sports data. The sports device 202 also includes a transceiver 208 to
transmit the conditioned sports data to a portable media device, such as the portable
media device 102 via the wireless interface accessory 106 illustrated in FIG. 1. Since
the sports device 200 need not receive data back from the portable media device 102,
the transceiver 208 can alternatively be a transmitter.
[0031] Still further, the sports device 200 is battery powered by a battery 210. In one
embodiment, the battery 210 is not replaceable by the user of the sports device 200.
Accordingly, the sports device 200 is designed to operate in a low power manner. In
this regard, the microcontroller 202 is a low power design and can be placed in a
sleep/hibernate mode when sports data is not being acquired. In one embodiment, the
sports device 200 includes an activity detector 212. The activity detector 212 can
monitor the transducer 204 or the signal conditioning circuit 206 to determine whether
the sports data is indicating that there is some sports related activity (e.g., running,

walking, etc.) being undertaken When the activity detector 212 determines that there
is no sports related activity, the activity detector 212 can cause or signal tie
microcontroller 202 to enter a low power mode (i.e., sleep or hibernate). When the
activity detector 212 determines that there is sports related activity while the
microcontroller 202 is in the low power mode, the activity detector 212 can cause or
signal the microcontroller 202 to awaken to a normal mode.
[0032] FIG. 3 is a block diagram of a wireless interface accessory 300 according to
one embodiment of the invention. The wireless interface accessory 300 is, for
example, suitable for use as the wireless interface accessory 106 illustrated in FIG. 1.
The wireless interface accessory 300 includes a microcontroller 302 that controls the
overall operation of the wireless interface accessory 300. The wireless interface
accessory 300 also includes a transceiver 304 and a chip antenna 306. The transceiver
304 operates to wirelessly communicate with the counterpart device, such as a sports
device, to receive sports related data. The sports related data is then temporarily
stored in memory provided with the microcontroller 302 and then forwarded to a
portable media device via a connector 308. The connector 308 can couple with a
counterpart connector associated with the portable media device. The microcontroller
302 can also store some user data, including calibration data, as well as sports data,
including as data summaries, workout data, etc. The wireless interface accessory 300
can also includes a power controller 310. The power controller 310 couples to a
power source and ground from the connector 308. The power controller 310 typically
converts the incoming voltage level to a different voltage level to be utilized by the
microcontroller 302 and the transceiver 304.
[0033] FIG. 4 A is a block diagram of an arrangement 400 of functional modules
utilized by a portable media device. The portable media device can, for example, be
the portable media device 102 illustrated in FIG. 1. The arrangement 400 includes a
media player 402 that is able to output media for a user of the portable media device
but also store and retrieve data with respect to a data storage 404. The arrangement
400 also includes a graphical user interface (GUI) manager 406. The GUI manager
406 operates to control information being provided to and displayed on a display
device. The arrangement 400 also includes a communication module 408 that
facilitates communication between the portable media device and an accessory
device. Still further, the arrangement 400 includes an accessory manager 410 that
operates to authenticate and acquire data from an accessory device that may be

coupled to the portable media device. For example, the accessory device can be a
wireless interface accessory, such as the wireless interface accessory 106 illustrated in
FIG. 1 as being coupled to the portable media device 102.
[0034] FIG. 4B is a block diagram of a media player 450 suitable for use with the
invention. The media player 450 illustrates circuitry of a representative portable
media device.
[0035] The media player 450 includes a processor 452 that pertains to a
microprocessor or controller for controlling the overall operation of the media player
450. The media player 450 stores media data pertaining to media items in a file
system 454 and a cache 456. The file system 454 is, typically, a storage disk or a
plurality of disks. The file system 454 typically provides high capacity storage
capability for tbe media player 450. However, since the access time to the file system
454 is relatively slow, the media player 450 can also include a cache 456. The cache
456 is, for example, Random-Access Memory (RAM) provided by semiconductor
memory. The relative access time to the cache 456 is substantially shorter than for the
file system 454. However, the cache 456 does not have the large storage capacity of
die file system 454. Further, the file system 454, when active, consumes more power
than does the cache 456. The power consumption is often a concern when the media
player 450 is a portable media player that is powered by a battery 474. The media
player 450 also includes a RAM 470 and a Read-Only Memory (ROM) 472. The
ROM 472 can store programs, utilities or processes to be executed in a non-volatile
manner. The RAM 470 provides volatile data storage, such as for the cache 456.
[0036] The media player 450 also includes a user input device 458 that allows a user
of the media player 450 to interact with the media player 450. For example, the user
input device 458 can take a variety of forms, such as a button, keypad, dial, etc. Still
further, the media player 450 includes a display 460 (screen display) that can be
controlled by the processor 452 to display information to the user. A data bus 461 can
facilitate data transfer between at least the file system 454, the cache 456, the
processor 452, and the CODEC 462.
[0037] In one embodiment, the media player 450 serves to store a plurality of media
items (e.g., songs, podcasts, etc.) in the file system 454. When a user desires to have
the media player play a particular media item, a list of available media items is
displayed on the display 460. Then, using the user input device 458, a user can select
one of the available media items The processor 452, upon receiving a selection of a

particular media item, supplies the media data (e.g., audio file) for the particular
media item to a coder/decoder (CODEC) 462. The CODEC 462 then produces analog
output signals for a speaker 464. The speaker 464 can be a speaker internal to the
media player 450 or external to the media player 450. For example, headphones or
earphones that connect to the media player 450 would be considered an external
speaker.
[0038] The media player 450 also includes a bus interface 466 that couples to a data
link 468. The data link 468 allows the media player 450 to couple to a host device
(e.g., host computer or power source). The data link 468 can also provide power to
the media player 450.
[0039] The media player 450 akso includes a network/bus interface 466 that couples
to a data link 468. The data link 468 allows the media player 450 to couple to a host
computer or to accessory devices. The data link 468 can be provided over a wired
connection or a wireless connection. In the case of a wireless connection, the
network/bus interface 466 can include a wireless transceiver. The media items (media
assets) can pertain to one or more different types of media content. In one
embodiment, the media items are audio tracks (e.g., songs, audiobooks, podcasts). In
another embodiment, the media items are images (e.g., photos). However, in other
embodiments, the media items can be any combination of audio, graphical or video
content.
[0040] FIG. 5 is a software system 500 according to one embodiment of the
invention. The software system 500 illustrates an arrangement of software modules
provided within a portable electronic device. For example, the portable electronic
device can be the portable media player 102 illustrated in FIG. 1.
[0041] The software system 500 includes an accessory protocol 502. The accessory
protocol 502 facilitates communication between the portable electronic device,
namely, applications, databases and systems internal to the portable electronic device,
with an accessory device that connects to the portable electronic device. As an
example, the accessory device can pertain to the wireless interface accessory 106
illustrated in FIG. 1. However, any of a wide variety of other the different types of
accessory devices can utilize the accessory protocol 502 to facilitate communication
between the accessory device and the systems, applications and databases internal to
the personal electronic device.

[0042] The software system 500 includes, in this embodiment, an operating system
510, accessory applications 508, a media database 512, and a file system 514. As
such, the operating system 510 is able to interact with the accessory device by way of
the accessory protocol 502. Similarly, the one or more accessory applications 508
that are supported by the portable electronic device can communicate with the
accessory device using fee accessory protocol 502. The accessory protocol 502
enables the accessory device to read or write data to the media database 512 or the file
system 514.
[0043] The accessory protocol supports a set of predetermined commands. Through
use of these commands, the portable electronic device and the accessory device are
able to communicate: In communicating with the accessory device, the accessory
protocol 502 outputs commands and data in accordance with the protocol to a driver.
The driver, in turn, is used to deliver the commands and data to the accessory device
by way of a connection. The driver is also used to receive commands and data from
the accessory device. In one embodiment, the connection between the driver(s) and
the accessory device is by way of a pair of complementary connectors, one of such
connectors being associated with the portable electronic device and the other of the
connectors being associated with the accessory device. When the accessory device is
connected to the portable electronic device by way of these connectors, the
connection between the driver and the accessory device is established. Although the
drivers can vary depending upon application, in this particular embodiment shown in
FIG. 5, the drivers include a serial driver 504 and a Universal Serial Bus (USB) driver
506. As such, the accessory protocol enables communication between the portable
electronic device and the accessory device by way of either a serial data connection,
by way of the serial driver 504 or by way of a USB connection using the USB driver
506.
[0044] As noted above, communication between the portable electronic device and
the accessory device is by way of the accessory protocol. The various commands
supported by one embodiment of the accessory protocol are described below with
reference to FlGs. 6A-6D.
[0045] When a portable media device wants to determine whether its version of the
accessory protocol is compatible with the version of the protocol being utilized by the
accessory device, a Get Device Version command 600 can be sent from the portable
media device to the accessory device. In response to the Get Device Version

command 600, the accessory device will return a Return Device Version command
602 to the portable electronic device. The Return Device Version command 602
being returned can specify the most recent protocol version that the accessory device
supports. In one implementation, the Return Device Version command 602 can
include an indication of a major version number and a separate indication for a minor
version number. Then, assuming that the protocol version at the portable electronic
device is not less than the version being utilized by the accessory device, the protocols
are compatible.
[0046] By use of the protocol, fee portable electronic device and the accessory device
are able to exchange data. The data can be associated with any system, application,
database, etc. affiliated with the portable electronic device or can be affiliated with
any data the accessory device might have available. The data exchange can be on a
polled basis or on an asynchronous basis. In the case of polling, the portable
electronic device can send a Get Data Frame command 604 to the accessory device.
According to the protocol, the Get Data Frame command 604 serves to request a data
frame be provided back from the accessory device. If the data frame is not available,
the accessory device can return an acknowledgment with a failure status indicator.
Polling can be used when the accessory device does not support asynchronous data
transfer. As discussed below, the capabilities of the accessory device (e.g., supports
for asynchronous data transfer) can also be determined utilizing the accessory
protocol. In response to the Get Data Frame command 604, the accessory device
returns a Return Data Frame command 606. The Return Data Frame 606 provides a
data frame that has been received by the accessory device to the portable electronic
device. Once a received data frame is provided to the portable electronic device, it
can be discarded at the accessory device so that a subsequent Get Data Frame
command 604 does not return the same data frame. It should also be noted that the
data frames being returned are only those that satisfy a data frame filter list, if such is
supported and enabled as discussed in more detail below.
[0047] The portable media device can also transmit a data frame to the accessory
device using a Transmit Data Frame command 608. Here, the Transmit Data Frame
command 608 requests that the accessory device immediately transmit a data frame
over a network to a destination device. The Transmit Data Frame command 608 is
sent by the portable electronic device to the accessory device when a data frame is to
be transmitted. In other words, the Transmit Data Frame command 608 is for

asynchronous transmission of a data frame. The end destination for the data frame
being transmitted is typically not me accessory device; hence, the accessory device
will transmits the data frame to the appropriate destination device. The ability to
transfer data asynchronously requires that the capabilities of the accessory device
support such asynchronous data transfers.
[0048] On the other hand, the accessory device can also transmit a data frame from
the accessory device to the portable electronic device using an Asynchronous Data
Frame command 610. Here, the source of the data frame being transmitted from the
accessory device to the portable electronic device is an external wired/wireless device
(e.g., sensor) or an internal devices. For successful data transfer, the Asynchronous
Data Frame command 610 requines that the accessory device support asynchronous
data transfers, that asynchronous data transfers are enabled, and that a data frame
filter list is satisfied (if enabled). In the event that these conditions are not met, the
accessory device will not forward the data frame to the portable electronic device.
[0049] In many cases, it is useful for the portable electronic device to understand the
capabilities of the accessory device. Hence, the protocol includes a Get Capabilities
command 612 that can be sent from the portable electronic device to the accessory
device to request capabilities and thus determine the features available on the
accessory device. In response to the Get Capabilities command 612, the accessory
device responds with a Return Capabilities command 614. The Return Capabilities
command 614 includes data that indicates the capabilities of the accessory device. In
one implementation, a bitmask can be utilized to efficiently report to the portable
media device the capabilities of the accessory device. For example, in one
implementation, the various capabilities of the accessory device that can be reported
include the following: power control capability, filtering capability, asynchronous
data transfer capability, polled data transfer capability, asynchronous data frame
transmission capability, receiver listening mode control capability, receiver listening
window timing control capability, synchronous beacon data frame transmission
capability, network configurable transmission rate capability, and maximum count of
node filters supported.
[0050] The accessory device can typically operate in a plurality of different modes.
In order for the portable electronic device to know what mode the accessory device is
in, the portable electronic device can send a Get Mode command 616 to the accessory
device. In response, the accessory device sends Return Mode command 616 back to

the portable electronic device. The Return Mode command 618 includes an
indication of mode information pertaining to the accessory device. In one
embodiment, the mode information can be efficiently provided with the Return Mode
command 618 through use of a bitmask. In any case, in one embodiment, the mode
information being provided with the Return Mode command 618 can include one or
more of the following: a power control state, a filtering state, a polled data transfer
control state, data frame transmission control state, an asynchronous data transfer
control state, receiver listening mode control state, receiver listening window timing
control state, synchronous beacox. frame transmission control state, network
transmission rate control state, and the like.
[0051] Still further, the portable electronic device can set the accessory device into a
particular mode. In other words, any of the control states noted above with regard to
the mode information can be altered by the portable electronic device by sending a Set
Mode command 620 to the accessory device. The accessory device in response to the
Set Mode command 620 can send an acknowledgment command back which
indicates the status of the command's completion. In one embodiment, the Set Mode
command 620 can utilize a bitmask in order to efficiently request one or more
particular mode changes at the accessory device. In any case, the Set Mode command
620 can request to set one or mora modes with respect to one or more of the
following: power control mode, filtering mode, asynchronous data transfer control
mode, polled data transfer control mode, data frame transmission control mode,
receiver listening control mode, receiver listening window timing control state,
synchronous beacon frame transmission control state, network transmission rate
control mode, and the like.
[0052] In addition, the accessory device can utilize a receiver filter so that only those
limited data frames of interest are transmitted from the accessory device to the
portable electronic device. This capability is particularly useful for an accessory
device that wirelessly receives data fames over a wireless network. In one
embodiment, the filter receiver can be implemented using a filter list The filter list is
a list of those node identifiers for which data frames are desired. When filtering is
enabled, data frames from nodes not in the list are filtered out (i.e., excluded). The
protocol includes a Get Filter List command 622 that can be sent by the portable
electronic device to the accessory device to get a list of node identifiers (i.e., filter
list). This requires that the accessory device support identifier filtering as determined

using the Return Capabilities command 614. In one embodiment, the Get Filter List
command 622 can include (i) a starting node identifier entry index in the filter list to
read, and (ii) a maximum count of node identifiers to read. In any case, in response to
the Get Filter List command 622, a Return Filter List command 624 is provided from
the accessory device to the portable electronic device. The Return Filter List
command 624 includes a list of nude identifiers that are currently present on the
accessory device. In one example, the filter list can contain a list of network address
entries of nodes from which data frames will be accepted and transferred to the
portable electronic device. The information provided with the Return Filter List
command 624 can include parameters providing (i) a starting node identifier entry
index into the filter list, (ii) the number of the filter node identifiers being returned,
and (iii) the filter list itself. In one implementation, the filter list can be provided as
an array of network address fields (e.g., filter node identifiers).
[0053] Still further, the portable electronic device can also set the one or more node
identifiers in the filter list. The filter list includes one or more network address entries
pertaining to network nodes from which data frames will be accepted and transferred
to the portable electronic device. Hence, when node filtering is enabled, incoming
data frames from sources not in the node filter list will be ignored (i.e., not transferred
,to the portable electronic device). According to the protocol, to alter the filter list at
the accessory device, the portable electronic device sends a Set Filter List command
626 to the accessory device. The Set Filter List command 626 enables the portable
electronic device to cause modification to the filter list at the accessory device,
assuming such filtering is supported by the accessory device. In one embodiment, the
Set Filter List command 626 include parameters providing (i) a starting node
identifier entry index into the filter list to be set, (ii) the number of the filter node
identifiers being set, and (iii) the filter list itself. As previously noted, in one
implementation, the filter list can be provided as an array of network address fields
(e.g., filter node identifiers). Node filtering using the filter list can be
enabled/disabled using the Set Mode command. Node filtering can be disabled when
searching for or discovering remote node devices and enabled once the desired remote
node devices are found.
[0054] Still further, the portable electronic device may desire to transmit data to a
destination address by way of the accessory device. In such a case, as well as other
cases, a Get Device Address command 628 can be sent from the portable electronic

device to the accessory device. This command requests that the accessory device
provide its device address that will be thereafter used as a source address for the data
frames that might be transmitted by the portable electronic device (since the accessory
is the "source" of such transmitted data frames). In response to the Get Device
Address command 628, the accessory device sends a Return Device Address
command 630 to the portable electronic device. The Return Device Address
command 630 includes a destination address associated with the accessory device.
Thereafter, if and when the portable electronic device seeks to transmit data via the
accessory device, the address associated with the accessory device can be used as the
source address for a source address field of one or more outgoing data frames.
[0055] To facilitate low-power operation, the portable electronic device can manage
or control when the accessory device is listening for incoming data frames over a
network. Typically, the network is a small local network, often wireless. In this
regard, a listening window is utilized such mat the accessory device is actively
listening for incoming data frames only during the listening window. At other times,
the accessory device is conserving power by not attempting to listen during such
times. Hence, the protocol allows the portable electronic device to send a Get
Receive Window Timing command 632 to acquire information of the timing window,
if any, being utilized. In respons«, the accessory device should return a Return
Receive Window Timing command 634 that contains a timing interval for a listening
window (receive window interval) and a duration for the listening window (receive
window duration). If for some reason the accessory device does not support listening
window timing, an acknowledge command can be returned with a status indication of
the same. In one specific example, the receive window interval is the time in
milliseconds between two windows when the accessory device starts listening for the
received data frames. The receive window duration is the time in milliseconds that
the accessory device listens for received data frames after a receive window interval
has started. Further, the portable electronic device can operate to set receive window
timing on the accessory device, fa this regard, the portable electronic device can send
a Set Receive Window Timing command 636 from the portable electronic device to
the accessory device. The command allows the portable electronic device to
configure the receive window interval and duration. Typically, the portable electronic
device would configure the receive window timing before enabling the listening

window. The listening window can be enabled using, for example, a timing control
mode which can be set by a Set Mode command 620.
[0056] The protocol also supports the portable media device in setting a transmit
beacon data frame and a beacon transmission notifier identifier on the accessory
device. A Set Transmit Beacon Frame 638 can be used to set the transmit beacon data
frame at the accessory device. The command is enabled if the appropriate capabilities
indicator indicates support for beacon transmissions. A Set Mode command 620 can
control the transmit beacon which is enabled only after a valid transmit beacon data
frame has been set using the Set Beacon Transmit Frame 638. The beacon
transmissions can be synchronous in accordance with a beacon transmission interval,
assuming synchronous beacon frame transmission is enabled. The Set Transmit
Beacon Frame command 638 can include a data frame to be transmitted. In addition,
the Set Transmit Beacon Frame command 638 can include timing index information
to specify the beacon transmission tuning schedule. In addition, the Set Transmit
Beacon Frame command 638 can include a beacon transmission notification identifier
which controls notification of the portable electronic device when the beacon data
frame is transmitted via the accessory device.
[0057] After the Set Transmit Beacon Frame 638 has been set successfully and
enabled, the accessory device can send a Beacon Transmission Notification command
642 to the portable electronic device when it transmits the beacon data frame,
assuming that transmission notification was not disabled and the associated
capabilities are supported. The Beacon Transmission Notification command 640, in
one embodiment, includes a beacon transmission notification identifier and a beacon
transmission timing information. By receiving back the beacon transmission
notification identifier, the portable of electronic device is able to determine that a
particular beacon data frame has been transmitted.
[0058] A beacon is a data frame broadcast by the accessory device at regular
intervals. The beacon contents to be broadcast, the time interval between broadcasts,
and the option to listen for a period of time after the broadcast are specified in the data
frame sent from the portable electronic device to the accessory device using the Set
Transmit Beacon Frame command 638.
[0059] The beacon can be used to establish a wireless communications link between
the portable electronic device and the accessory device. The beacon data frame could
be configured to listen for a short period of time after the beacon is broadcast If the

accessory device wants to communicate with the portable electronic device, it can
wait for the beacon data frame to be broadcast, and then it can send a data frame to
the portable electronic device. A beacon could also be used to send available data
from the portable electronic device to a listening accessory device. For example,
when the portable electronic device is a portable media player, a beacon can be used
to send media data, such as current track index, track position, track name or play
state to another device (accessory device, other portable electronic device, etc.). •
[0060] Still further, the protocol includes a Get Network Data Rate command 642.
The Get Network Data Rate command 642 can be sent by the portable electronic
device to the accessory device to get the current network transmission rate from the
accessory device. Typically, the network involved is a wireless network, but in other
embodiments the network can be a wired network. In the event that configurable data
rate capabilities are not supported, this operation is unavailable. In response to the
Get Network Data Rate command 642, the accessory device returns a Return Network
Data Rate command 644. The Return Network Data Rate command 644 includes the
current network transmission rate setting for the accessory device. A Set Network
Data Rate command 646 is also provided to allow the portable electronic device to set
a network transmission rate at the accessory device. Assuming that the requested
network data rate is supported by the accessory device and that the accessory device
permits configuration of the network transmission rates, the Set Network Data Rate
command 646 allows the portable electronic device to set the network data rate at the
accessory to one of a plurality of different transmission data rates.
[0061] The various aspects, embodiments, implementations or features of the
invention can be used separately or in any combination.
[0062] The invention is preferably implemented by software, hardware or a
combination of hardware and software. The invention can also be embodied as
computer readable code on a computer readable medium. The computer readable
medium is any data storage device that can store data which can thereafter be read by
a computer system. Examples of me computer readable medium include read-only
memory, random-access memory, CD-ROMs, DVDs, magnetic tape, optical data
storage devices, and carrier waves: The computer readable medium can also be
distributed over network-coupled computer systems so that the computer readable
code is stored and executed in a distributed fashion.

[0063] The many features and advantages of the present invention are apparent from
the written description and, thus, it is intended by the appended claims to cover all
such features and advantages of the invention. Further, since numerous modifications
and changes will readily occur to those skilled in the art, the invention should not be
limited to the exact construction and operation as illustrated and described. Hence, all
suitable modifications and equivalents may be resorted to as falling within the scope
of the invention.

CLAIMS
1. A method for communicating between a portable electronic device and an
accessory device, said method comprising:
issuing a device capabilities request to the accessory device;
receiving a device capabilities response from the accessory device; and
subsequently interacting with the accessory device based on the device
capabilities.
2. A method as recited in claim 1, wherein the device capabilities response
includes information regarding one or more of: power control capabilities, filtering
capabilities, listening mode capabilities, listening window timing capabilities, beacon
transmit support, and transmission rate support.
3. A method as recited in claims 1 or 2, wherein said method further comprises:
issuing a device mode setting request to the accessory device, the device mode
setting request being used to set an operational mode of the accessory device.
4. A method as recited in claim 3, wherein the device mode setting request
operates to set at the accessory device one or more of: a power control mode, a
filtering mode, data transfer control mode, listening mode, listening window timing
control state, beacon transmission control state, and transmission rate control state.
5. A method as recited in claim 1, wherein said method further comprises:
issuing a set filter request to the accessory device, the set filter request being
used to configure network filtering at the accessory device.
6. A method as recited in claim 5, wherein the set filter request operates to set at
the accessory device one or more of: a power control mode, a filtering mode, data
transfer control mode, listening mode, listening window timing control state, beacon
transmission control state, and transmission rate control state.
7. A method as recited in claim 6, wherein the filtering is node filtering based on
node identifiers.

8. A method as recited in claim 6, wherein the one or more entries on the filter
list are used by the accessory device to determine which of the data frames received at
the accessory device over a network are forwarded to the portable computing device.
9. A method as recited in claim 6, wherein the set filter request adds one or more
entries to a filter list
10. A method as recited in claim 9, wherein the one or more entries on the filter
list are used by the accessory device to determine which of the data frames received at
the accessory over a network are forwarded to the portable computing device.
11. A method as recited in claim 1, wherein said method further comprises:
issuing a set network data rate request to the accessory device, the set network
data rate request being used to set a transmission rate for a network utilized by the
accessory device to communicate with a physiological sensing device.
12. A method as recited in claim 1, wherein said method further comprises:
issuing a set receive window timing request to the accessory device, the set
receive window timing request being used to set a receive window that the accessory
device listens for incoming data frames over a network utilized by the accessory
device to communicate with a physiological sensing device.
13. A method as recited in claim 12, wherein the set receive window timing
request includes at least a time interval and a duration for the receive interval.
14. A method as recited in claim 1, wherein said method further comprises:
issuing a set transmit beacon request to the accessory device, the set transmit
beacon request being used by the accessory device to send a data frame over a
network utilized by the accessory device to communicate with another device.
15. A method as recited in claim 12, wherein the set receive window timing
request includes at least a time interval and a duration for the receive interval.
16. A method as recited in claim 1, wherein the accessory device is a wireless
interface device that is capable of communicating with one or more physiological
sensing devices over a network.
17. A method as recited in claim 1, wherein the network is a wired network.

18. A method as recited in claim 1, wherein the network is a wireless network.
19. A computer readable medium including at least computer program code for
communicating between the portable electronic device and an auxiliary device
operatively connectable thereto, said computer readable medium comprising:
computer program code lor issuing a device capabilities request to the
accessory device;
computer program code for receiving a device capabilities response from the
accessory;
computer program code for issuing a device mode setting request to the
accessory device, the device mode setting request being used to set an operational
mode of the accessory device;
computer program code for issuing a set filter request to the accessory device,
the set filter request being used to configure network filtering at the accessory device;
and
computer program code for subsequently interacting with the accessory device
based on the device capabilities, the operational mode and the network filtering.
20. A computer readable medium as recited in claim 19, wherein the interacting
operates to receive data frames at the portable electronic device from the accessory
device.
21. A computer readable medium as recited in claim 19, wherein the auxiliary
device is coupled to the portable electronic device by being removably connected
thereto.
22. A computer readable medium as recited in claim 21, wherein the auxiliary
device is coupled to the portable electronic device by being removably connected
thereto via a connector of the portable electronic device and a connector of the
accessory device.
23. A computer readable medium as recited in claim 19, wherein the device
capabilities response includes information regarding one or more of: power control
capabilities, filtering capabilities, listening mode capabilities, listening window timing
capabilities, beacon transmit support, and transmission rate support

24. A computer readable medium as recited in claim 23, wherein the device mode
setting request operates to set at the accessory device one or more of: a power control
mode, a filtering mode, data transfer control mode, listening mode, listening window
timing control state, beacon transmission control state, and transmission rate control
state.
25. A computer readable medium as recited in claim 19, wherein the set filter
request operates to set at the accessory device one or more of: a power control mode,
a filtering mode, data transfer control mode, listening mode, listening window timing
control state, beacon transmission control state, and transmission rate control state.
26. A computer readable medium as recited in claim 19,
wherein the set filter request adds one or more entries to a filter list, and
wherein the one or more entries on the filter list are used by the accessory
device to determine which of data frames received at the accessory device over a
network are forwarded to the portable computing device.
27. A computer readable medium as recited in claim 19, wherein said computer
readable medium further comprises:
computer program code for issuing a set network data rate request to the
accessory device, the set network data rate request being used to set a transmission
rate for a network utilized by the accessory device to communicate with a
physiological sensing device.
28. A computer readable medium as recited in claim 19, wherein said computer
readable medium further comprises:
computer program code for issuing a set receive window timing request to the
accessory device, the set receive window timing request being used to set a receive
window that the accessory device listens for incoming data frames over a network
utilized by the accessory device to communicate with a physiological sensing device.
29. A computer readable medium as recited in claim 28, wherein the set receive
window timing request includes at least a time interval and a duration for the receive
interval.

30. A computer readable medium as recited in claim 19, wherein said computer
readable medium further comprises:
computer program code few issuing a set transmit beacon request to the
accessory device, the set transmit beacon request being used by the accessory device
to send a data frame over a network utilized by the accessory device to communicate
with another device.
31. A computer readable medium including at least computer program code for
communicating between the portable electronic device and an auxiliary device
operatively connectable thereto, said computer readable medium comprising:
computer program code for issuing a device capabilities request to the
accessory device;
computer program code for receiving a device capabilities response from the
accessory;
computer program code for issuing a set filter request to the accessory device,
the set filter request being used to set configure network filtering at the accessory
device; and
computer program code for subsequently interacting with the accessory device
based on the device capabilities and the network filtering.
32. A computer readable medium as recited in claim 31, wherein the device
capabilities response includes information regarding one or more of: power control
capabilities, filtering capabilities, listening mode capabilities, listening window timing
capabilities, beacon transmit support, and transmission rate support.
33. A computer readable medium as recited in claim 31,
wherein the set filter request adds one or more entries to a filter list, and
wherein the one or more entries on the filter list are used by the accessory to
determine which of data frames received at the accessory device over a network are
forwarded to the portable computing device.

34. A computer readable medium including at least computer program code for
communicating between the portable electronic device and an auxiliary device
operatively connectable thereto, aaid computer readable medium comprising:
computer program code for issuing a set filter request to the accessory device,
the set filter request being used to set configure network filtering at the accessory
device; and
computer program code for subsequently interacting with the accessory device
based on the network filtering.
35. A computer readable medium as recited in claim 34, wherein the auxiliary
device is coupled to the portable electronic device by being removably connected
thereto.
36. A computer readable medium as recited in claim 34, wherein the interacting
operates to receive data frames at the portable electronic device from the accessory
device.
37. A computer readable medium as recited in claim 36, wherein the set filter
request operates to set at the accessory device one or more of: a power control mode,
a filtering mode, data transfer control mode, listening mode, listening window timing
control state, beacon transmission control state, and transmission rate control state..
38. A computer readable medium as recited in claim 36, wherein the one or more
entries on the filter list are used by the accessory device to determine which of data
frames received at the accessory over a network arc forwarded to the portable
computing device.
39. A computer readable medium as recited in claim 38, wherein the set filter
request adds one or more entries to a filter list
40. A computer readable medium as recited in claim 34, wherein said computer
readable medium further comprises:
computer program code for issuing a set network data rate request to the
accessory device, the set network data rate request being used to set a transmission
rate for a network utilized by the accessory device to communicate with a
physiological sensing device.

41. A computer readable medium as recited in claim 34, wherein said computer
readable medium further comprises:
computer program code lor issuing a set receive window timing request to the
accessory device, the set receive window timing request being used to set a receive
window that the accessory device listens for incoming data frames over a network
utilized by the accessory device to communicate with a physiological sensing device.
42. A computer readable medium as recited in claim 41, wherein the set receive
window timing request includes at least a time interval and a duration for the receive
interval.
43. A computer readable medium as recited in claim 34, wherein said computer
readable medium further comprises:
computer program code for issuing a set transmit beacon request to the
accessory device, the set transmit beacon request being used by the accessory device
to send a data frame over a network utilized by the accessory device to communicate
with another device.

Improved techniques for communicating
between a portable electronic device and an accessory (or
auxiliary) device are disclosed. The accessory device can
augment or supplement the functionality or capabilities of
the portable electronic device. For example, in one embod-
iment, the accessory device can provide wireless commu-
nication capabilities to the portable electronic device. In
one embodiment, the portable electronic device pertains to
a portable media player and thus provide media data for
storage, playback or transmission. In one embodiment, the
accessory device is attachable to the portable electronic de-
vice.

Documents:

http://ipindiaonline.gov.in/patentsearch/GrantedSearch/viewdoc.aspx?id=QtcqF8LqzCtgG1MjCOXW4A==&loc=wDBSZCsAt7zoiVrqcFJsRw==


Patent Number 270330
Indian Patent Application Number 4707/KOLNP/2008
PG Journal Number 51/2015
Publication Date 18-Dec-2015
Grant Date 11-Dec-2015
Date of Filing 20-Nov-2008
Name of Patentee APPLE INC.
Applicant Address 1 INFINITE LOOP, CUPERTINO, CALIFORNIA
Inventors:
# Inventor's Name Inventor's Address
1 KRUEGER, SCOTT 1860 WASHINGTON #401, SAN FRANCISCO, CALIFORNIA 94109
2 LYDON, GREGORY, THOMAS 215 WILD FLOWER LANE, SANTA CRUZ, CALIFORNIA 95065
PCT International Classification Number H04L 29/08
PCT International Application Number PCT/US2007/010888
PCT International Filing date 2007-05-03
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 11/439,521 2006-05-22 U.S.A.