The present invention relates to cellular handset devices, and more particularly to a mobile handset device configured to receive Radio Data System data.
The capabilities of cellular handheld devices increase every day as advances in microchip technology and able more circuits and functionality to be built into the devices. Consequently, cellular handheld devices have quickly evolved beyond simple communication devices to becoming personal communication/entertainment/information resources.
One source of information that has not been incorporated into cellular handheld devices is the Radio Data Systems (RDS) which communicates data to properly equipped FM radios as part of a normal FM radio broadcast. While some cellular devices have incorporated an FM receiver to enable users to listen to radio, none have made use of the RDS signals to provide interactive services. RDS is a technology that has been deployed in several countries around the world. Within the United States, the equivalent system is known as the radio broadcast data system (RBDS). For simplicity, references to RDS herein are intended to encompass RBDS, and the description of RDS technology is based on the U.S. RBDS implementation.
The RDS system makes use of a 57 kilohertz wide sub carrier within an FM frequency band to transmit a low data rate signal. The RDS data stream is produced by the FM broadcaster, and so is unique to the broadcasting station. Not all FM broadcasts include RDS data, as it is an option available to broadcasters, but not a requirement. Data is transmitted at a rate of 1187.5 bits per second, but with error encoding and other overhead communication, the system transmits about 300 bits per second of usable data. This data may be obtained by any FM radio including the necessary circuitry in functionality to receive and code the RDS Signal.
RDS data is transmitted into continuous stream of 16-bit packets illustrated in
Referring to FIG. the 1, the first four bits (bits 12-15 in
The use of the RDS data communication capability is expanding as new applications are identified and better coding systems are developed. With increased data encoding capability, additional types of information can be made available for use in a variety applications. An example of expansion of the RDS system capability is illustrated in U.S. Pat. No. 6,411,800 the entire contents of which are hereby incorporated by reference.
Various embodiments provide systems and methods for integrating an FM receiver into a mobile device to receive FM radio signals so that the Radio Data System (RDS) data within FM radio broadcasts may be monitored to perform an operation, such as activate various applications within the mobile device when a particular RDS data pattern is received. Applications within the mobile device may be launched when various RDS signals are received.
A handheld device includes the capability of receiving FM radio broadcasts, including Radio Data System (RDS) data packets, and is configured to receive RDS data, monitor RDS data packets for particular patterns or flags, and perform an operation in response to receiving an RDS data packet of a recognized pattern or content. The actions initiated may include, for example, activating a dormant application on the handheld device, storing all or a portion of the RDS data packet in memory, notifying an application that RDS data is stored in memory. All FM radio stations may be monitored, such as by selecting an FM frequency band, monitoring RDS data signals for a period of time or number of received RDS data packets, and then selecting another FM frequency band. Initiating an application enables the handheld device to provide a number of useful functions, such as generating a display based on or in response to the RDS data packet, recalling information from memory and generating a display, querying a server to download information, tuning the FM radio receiver to a particular radio station, and placing a telephone call.
A media server may be provided to respond to queries from handheld devices. Such a server may be configured with software to receive a query from a handheld device which includes information based upon or contained within an RDS packet, using the received information to locate and retrieving data files stored in memory or on a data storage medium, formatting information from the retrieved data files for transmission to the handheld device, and transmitting the formatted information to the handheld device. The media server may store any or all of image, video and text data, and may access a broadcaster's server to obtain information for transmission to the handheld device.
A system for communicating information to handheld devices may include the handheld devices, a media server configured to transmit information to the handheld devices and FM radio stations. The system may further include a server coupled to one or more of the FM radio stations that can be accessed by the media server.
The accompanying drawings, which are incorporated herein and constitute part of this specification, illustrate exemplary embodiments of the invention, and, together with the general description given above and the detailed description given below, serve to explain features of the invention.
The various embodiments will be described in detail with reference to the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts. References made to particular examples and implementations are for illustrative purposes, and are not intended to limit the scope of the invention or the claims.
As used herein, the term “handheld device” refers to any one or all of cellular telephones, personal data assistants (PDA's), palm-top computers, laptop computers, mobile electronic mail receivers, and similar personal electronic devices which include a programmable processor and memory. In a preferred embodiment, the handheld device can communicate via a cellular telephone network, and thus may be referred to as a cellular handheld device. However, cellular telephone communication capability is not necessary in all embodiments. Moreover, wireless data communication may be achieved by the handheld device connecting to a wireless data network (e.g., a WiFi network) instead of a cellular telephone network.
Circuitry for receiving and decoding FM radio broadcasts are now integrated within a single application specific integrated circuit (ASIC). This allows an FM radio to be incorporated within other devices, including cellular handheld devices. Incorporating an FM receiver into a cellular handheld device gives the device multifunctional capability, allowing the user to listen to radio broadcasts when not talking on the phone or while accessing the Internet via the cellular telephone network. Integrating an FM receiver within the cellular handheld device also enables the handheld device to receive the RDS data stream which typically accompanies FM radio broadcasts. The various embodiments disclosed herein make use of the RDS data stream and provide greater functionality within the cellular handheld device.
Conventional cellular handheld devices that incorporate an FM receiver to play FM broadcasts do not receive the RDS stream to provide for interactive services. Instead, conventional handheld devices routinely access a data server associated with a radio station using wireless Internet protocol via a cellular network to download data associated with the FM station's program. In use, such handheld devices must periodically place a wireless IP data call to the radio station server to download information for presentation on the handheld device's display. This adds airtime costs and depletes the battery. Currently, there is no application which makes use of the RDS data stream on cellular handheld devices for this purpose.
While the RDS data stream typically contains information such as the radio station call sign, frequency band and title of program presently playing, the RDS data stream may also carry other data of potential use to listeners. For example, some FM stations include traffic related information in their RDS data streams. As another example, RDS data is capable of carrying an emergency notification code in the five PTY bits, which is represented by the bit pattern “11111” as shown in
Various embodiments provide a handheld device and methods for receiving, decoding and taking action based upon the content of information within RDS data blocks. In particular, specific data contents or bit patterns may be recognized as associated with particular applications stored on the handheld device, and those associated applications may be activated in response to receiving the RDS data.
In an alternative embodiment, the handheld device 10 includes a wireless data link transceiver circuit in replace of (or in addition to) the cellular transceiver 16. An illustration of this embodiment would be identical to
A handheld device 10 will further include a display 20 coupled to the processor 12 for displaying telephone numbers, text messages, status indicators, menu options and information presented by various applications running on the processor 12. Additionally, a key pad 30 and various menu selector buttons, such as a rocker switch 32, are connected to the processor 12 in order to receive inputs from the user. Handheld devices may also include data ports for connecting to external data sources (like a personal computer), such as a FireWire connector 26 which may be coupled to the processor 12 by a data communication encoding/decoding circuit 28. Frequently, handheld devices 10 are provided with the ability to play audio files, such as with an MP-3 player application provided as part of the software implemented on the processor 12. In order to store the large amount of data associated with audio as well as video files, the handheld device 10 may also include a mass storage memory, such as a miniature disk drive 24, configured to provide data to the processor 12. To support of the MP-3 player function, the handheld device 10 may also include a headphone jack 36 which may be connected to the processor 12 via an amplifier 32.
In the embodiment illustrated in
The FM receiver need not be implemented within the handheld device 10, and instead may be provided within an external FM radio receiver 200 as illustrated in
Alternatively, the external FM receiver 200 may communicate FM radio broadcast information to the handheld device 10 by a wireless data connection, such as BlueTooth. In this embodiment illustrated in
The FM receiver ASIC 22 can be integrated with the processor 12 of the handheld device 10 in a variety of ways as would be well known to one skilled in the art of digital circuit design. For example, is illustrated in
In an alternative configuration illustrated in
As will be appreciated by one of skill in the art, a variety of data bus protocols may be used to connect the FM receiver ASIC 22 to the processor 12, including parallel data buses 222, 224, serial data buses 226, and multiplexed data buses 228 as illustrated in
The processor 12 and its associated memory 14 can be configured with software to utilize RDS data to support or activate a variety of handheld device 10 applications that may be stored in the memory 14 of the handheld device 10. In order to do so, the processor 12 may be configured to monitor the RDS data packets as they are received to identify those containing data relevant to particular applications loaded on the handheld device 10 and, upon finding a data packet containing data of interest, determining which application to activate or notify. Once activated or notified, the appropriate application may make use of some or all of the received RDS data.
To support such functionality, the processor 12 and memory 14 within the handheld device 10 may be configured with a hardware/software architecture 300 such as illustrated in
To provide a control output and data input interface with the operating system layer 303 and/or application interface layer 304, an FM ASIC driver layer 305 may be included. The FM ASIC driver layer 305 serves to interpret data coming from the FM receiver ASIC 22, preprocess the received information and place the appropriate data within an RDS data buffer 306. The FM ASIC driver layer 305 may also receive and translate receiver control commands from the operating system layer 303 or application interface layer 304, and translate such commands for reception by the FM receiver ASIC 22. For example, the FM receiver ASIC driver layer 305 may be configured to receive the RDS data from the FM receiver ASIC 22 and break the data packets into blocks or segments that are stored in the RDS data buffer 306. Performing this function within a specific driver layers relieves other applications and the operating system from having to perform this repetitive process that is specific to accessing RDS data. Thus, the operating system, applications interface or applications themselves can be less complex without the need to include software instructions for receiving and processing RDS data, which is functionality that may be used infrequently.
Also included in the software architecture may be an RDS data monitoring application layer 307. This application is configured to inspect received RDS data packets and take action based upon the data, including storing data in the RDS buffer layer 306 if appropriate. In particular, the RDS monitor application layer 307 may be configured to perform processes like those illustrated in
When the RDS monitor application layer 307 recognizes a data pattern in the RDS data that requires activation of a particular application, the RDS monitor application notifies or activates the particular application stored in memory 14 or already running on the processor 12 in one of the application layers 308A, 308B, 308C. If the notified application requires access to the RDS data stored in the RDS data buffer 306, this data may be accessed directly from the RDS data buffer layer 306 or requested from the RDS monitor application layer 307.
The hardware/software architecture 300 illustrated in
Receiving, interpreting and acting upon RDS data within the cellular handheld device 10 involves process steps necessitated by the nature of the RDS data stream and practical considerations for making efficient use of the data. For example, not all FM stations transmit RDS data, and rarely do all stations transmit the same data. Therefore, to provide maximum user benefits, the handheld device 10 may need to sweep all FM radio bands, sequentially monitoring each band in search of RDS data packets that maybe related to a particular application. As another example, most RDS data packets do not contain information that will be of relevance to an application, and thus can be discarded with very little processing. Consequently, the handheld device 10 must monitor the RDS data stream for a period of time or a certain number of RDS packets to determine whether there is any information of relevance to an application being broadcast. Since the RDS data rate is low, this monitoring of all RDS data streams takes time to accomplish, but it also allows this process to be accomplished in software with little need for specialized circuitry.
With the FM broadcast band selected, the processor 12 directs the FM receiver ASIC 22 to tune in the selected frequency band, step 352. Since there may be no station in the vicinity broadcasting on the selected frequency band, the processor 12 can test to determine whether there is a signal being received on that frequency band, test 354. If there is no FM station transmitting on the selected frequency band, the processor 12 may move on to the next frequency band by executing the loop described further below. However, if an FM station is detected broadcasting on the selected frequency band (i.e., test 354=“YES”), the processor 12 may then test for the presence of RDS data to determine if the received FM signal contains an RDS data signal sub-carrier, step 356. This may be indicated by a data or data-available lead on the FM receiver ASIC 22 having a particular value, such as high voltage, if an RDS data signal is detected. Alternatively, the processor 12 may test data leads dedicated to receiving RDS data from the FM receiver ASIC 22 to determine if such data is present. If the processor 12 determines that there is no RDS data signal included in the FM broadcast signal, the next FM band may be selected by executing the loop described further below. However, if RDS data is included in the signal (i.e., test 356=“YES”), the processor can begin a loop of software instructions to monitor the RDS data for a predetermined amount of time or number of data blocks, steps 358, 360.
As mentioned above, the handheld device must monitor RDS data stream signals for a period of time or a certain number of data blocks in order to determine whether data of interest to a particular application is present. Since the handheld device 10 cannot know the location of a particular packet within the periodically repeating sequence of various RDS data packets, the device must monitor RDS data packets for a sufficient period of time to confirm that RDS data of interest is not present before the next FM frequency band is selected. This may be achieved by using a timer or a counter which counts the number of received RDS data blocks. If an RDS data packet counter is used, the count can be compared against a predetermined value selected so as to provide a high confidence level that any relevant RDS data packet being transmitted will be received. Thus, while monitoring individual RDS data packets, step 358, the processor 12 can compare the count of data packets received against this predetermined value in test 360 to decide when the next FM frequency band should be selected. Example method steps for monitoring the RDS data and determining when sufficient RDS data packets have been received, steps 358, 360, are described in more detail below with reference to
Once the count of RDS data blocks received reaches the predetermined value described above, (i.e., test 360=“YES”), the processor 12 can execute steps to select the next FM frequency band, see steps 364 and 366. The RDS data block counter may be reset, step 362, since the processor is moving to the next FM frequency band. The presently selected FM frequency band may be compared against the highest FM frequency band, which is 108.0 MHz, to determine if there is another frequency band to be selected, test 364. If the currently selected FM frequency band is less than 108.0 MHz (i.e., not the last frequency band within the FM radio spectrum), the method increments the FM frequency band, step 366, such as by adding 200 kHz to the previous frequency, and then returning to step 352 to tune into the selected FM frequency band. However, if the selected frequency band is the last frequency band within the FM radio spectrum (i.e., 108.0 MHz) test 364 will equal “YES”, so the processor 12 will loop back to step 350 to select the first FM frequency band, namely 87.5 MHz, thereby starting the loop over again. As mentioned above, if there is no FM broadcast within the selected frequency band (test 354=“NO”) or if there is a broadcast on that frequency band but it does not contain RDS data (test 356=“NO”), the process flow will move to test 364 to determine if the current frequency band is the last band within the FM radio spectrum. The foregoing description of the embodiment is based upon the FM radio spectrum implemented within the United States, and is used only for illustrative purposes and is not intended to limit the claims to particular frequency bands or spectrum. For example, some countries, such as China, extend the FM band well beyond 108.0 MHz, and many countries allocate 100 kHz bands to FM broadcasters (versus the 200 kHz band used in the United States). Accordingly, the foregoing embodiment and the claims may be implemented for a variety of minimum and maximum frequencies as well as different bandwidth allocations without departing from the spirit of the present invention.
As can be seen in
While the foregoing embodiment checks each FM frequency band for a transmitting station, the method may be further refined so the processor 12 only checks the frequency bands of local FM radio stations or more narrowly, just those FM radio stations which are transmitting RDS data. This refinement may be accomplished by adding a step at some point after test 354 or 356 to store the selected FM frequency band, such as part of the actions of step 362. The FM frequency bands of transmitting FM stations may be stored in a data table that can then be used to select the FM frequency bands to monitor (step 366) in subsequent passes through the loop illustrated in
As a first step, the processor 12 may test for the availability of RDS data that can be accessed from the FM receiver ASIC 22 for analysis, step 400. If so configured, the FM receiver ASIC 22 may set a flag, such as by writing a bit (1 or 0) to a particular address location or driving a particular lead to high or low voltage, that the possessor 12 can sense to indicate that a RDS data element is available for delivery to the processor 12. Alternatively, the processor 12 and FM receiver ASIC 22 may be configured to simply pass RDS data directly to the processor or a buffer memory location as it becomes available. This buffer may be a memory register within the memory 14 or may be within random memory within the processor 12 itself. If RDS data is passed directly to a buffer then the step of testing whether RDS data is available, step 400 may be accomplished by simply accessing the data buffer to determine if there is RDS data present. If no RDS data packet is ready for the processor 12, test 402, then the processor may repeat the step of accessing a data present flag and/or testing for the presence of data in a buffer, steps 400, 402, until RDS data is determined to be available for review by the processor 12. If the data packet is available (i.e., test 402=“YES”), the processor 12 may accept that RDS data into a buffer for processing, step 404, and increment the RDS data block counter, step 406.
With an RDS data packet stored in a buffer, the processor 12 can test selected bits within the data to determine the RDS data packet type or group, step 408. As described above with reference to
If the received RDS data packet is of a type that contains usable data (i.e., test 410=“YES”), the data can be parsed to select and review specific bits within the RDS data packet, step 418. Selected bits can be compared against values or patterns stored in memory 14 to determine if a particular pattern is recognized, step 418. In this example embodiment, the bit pattern stored in memory 14 correspond to particular RDS data or message codes which are of interest to applications within the handheld device 10. Such bit patterns may be stored in a data table linking the bit pattern with the corresponding application to which the bit pattern is relevant. If none of these stored data patterns or message codes are present within the RDS data packet, the processor 12 determines if the RDS data block count value has been reached, test 412, and if not, returns to step 400, 402 to await the next RDS data packet.
If an RDS data packet contains a message code that is recognized (i.e., test 418=“YES”), this indicates that there is an application stored in memory 14 of the handheld device 10 that should be activated or notified of the presence of the particular RDS data. Accordingly, the RDS data packet (or selected bits) may then be stored within the RDS data buffer, step 420. It is noted that this step may store the entire sixteen bits of RDS data packet in the buffer or just the selected bits based upon the recognized bit pattern.
The processor 12 may then determine the application to be activated or notified of the presence of RDS data in the RDS data buffer, step 422. For example, the stored bit patterns may be correlated in data table to a particular application file name, memory pointer or other locator that the processor 12 can then use to perform an operation, such as activate or notify, the particular application. As noted above, certain bit patterns and the corresponding application file name, memory pointer or other locator may be stored in a data table in memory. Such a data table can be used in a look up procedure to identify the corresponding application by using the selected bits as a look up key (this table look up process essentially comprising steps 418, 420 and 422). Using the determined file name, memory pointer or other locator, the processor 12 can then perform an operation, such as activate or notify, the corresponding application that the RDS data is available for accessing in the RDS data buffer, step 424.
Having processed the RDS data packet and taken the appropriate action of activating a particular application based upon the contents of the RDS data packet, the handheld device 10 can continue to monitor the RDS data stream by testing whether the RDS data block count value has been reached, test 412, and if not, looping back to wait for the next RDS data packet, steps 400, 402. As described above with reference to
The process described above with reference to
The handheld device 10 can be configured with software instructions stored in memory 14 for implementation on the processor 12 to utilize received and recognized RDS data to implement a number of useful applications. For example,
If the data contained in bits 5 through 9 did not all equal “1” (i.e., test 450=“NO”), then a second test may look to bit 10 and to bit 4 (the TP and TA bits, respectively) to determine if both bits equal one “1”, test 460. If they do, this indicates that a traffic advisory is being broadcast by the FM radio station, and accordingly the processor 12 can perform the operation of activating or notifying a traffic application, step 462. For example, this application may activate a GPS application which automatically maps out an alternate route to a destination. In some implementations of RDS (e.g., the Traffic Message Channel (TMC) available in some countries), additional information regarding a particular traffic event and its location may be contained within the RDS data or subsequent RDS data packets. Accordingly, to support a traffic application, the handheld device 10 may parse the RDS data packet to obtain the particular data bits of use to the traffic application, step 464. These data bits may then be stored in the RDS data buffer, step 466, or they can be readily accessed by the traffic application. Having activated the traffic application and stored any relevant data in the RDS data buffer, the application of the handheld device 10 may return to the process of monitoring incoming RDS data by executing test 412 and continuing with the rest of the process described above with reference to
If the results of testing the TP and TA bits reveals that no traffic advisory is presently being broadcast (i.e., test 460=“NO”), the handheld device 10 may parse the RDS data packet to obtain selected data bits, step 470, and store some or all of those bits within the RDS buffer, step 472. In doing so, the handheld device 10 also determines whether a particular application should be activated if dormant application or notified if running, based on the received and parsed RDS data, step 474, and notifies that application of the presence of RDS data in the RDS data buffer, step 476. Examples of RDS data packets that do not include either an alert symbol or the traffic advisory symbols are data packets that contain data relevant to either the alert or the traffic notification. For example, in a future implementation of the RDS system, some data packets may identify the type of event, such as by including the alert or traffic notifications symbols, while the subsequent packets (such as D packets) may be used to transmit data relevant to those events (e.g., type and location). Thus, the method illustrated in
In addition to providing the application activation and the data support services of the embodiments described above, a handheld device 10 may also use RDS data for the conventional purpose of displaying information regarding the program being carried on the FM radio broadcast. Thus, if the handheld device 10 is being used to receive and play an FM radio program, the handheld device 10 may directly receive the RDS data and use it to generate an appropriate display as would a conventional FM radio.
Referring to
By providing the capability to have specific (i.e., relevant) applications notified or activated in response to the reception of particular, relevant RDS data packets, the handheld device 10 of the various embodiments enables a wide range of possible applications.
Once the relevant application activated and/or notified that data is available in the RDS data buffer, the application may access such data, step 602. As noted above this step is optional since some applications will not require any further RDS data once they have been activated. If the application does use some portion of the RDS data, then the application accesses the data from the RDS data buffer and utilizes the data in some fashion, such as to recognize the nature of the data, step 604. Finally, the relevant application initiates some action based upon the fact that it has been activated or notified, or based upon the data obtained from the RDS data buffer, step 606.
A wide variety of applications may be developed and are anticipated within the scope of the present invention. For example, an application may recall certain data from memory 14, step 610, and generate a display, wallpaper or changed ring tones, step 612. An example of such an application is a traffic monitoring application which can present displays of traffic events based upon codes contained within RDS data packets. Some FM stations broadcast traffic and travel information to drivers using the RDS system by including an event code and a location code. The Alert C standard lists 2048 event codes which can be translated by a receiver programmed to interpret those codes. Similarly, commercial companies, such as Tele Atlas, have assigned certain codes to bits and RDS data packet groups which are maintained at the national level in location code tables. These location code tables assign number codes to locations on local road networks. Using such encoded information, a traffic application can determine the type and location of a traffic event from the relatively sparse RDS data packet by comparing the RDS data stored in the RDS data buffer to an event codes table and a location codes table stored in memory 14. Then using the decoded event and location information, the traffic application can generate an appropriate image for presentation on the display 20, such as a map showing the location of the event.
Another example is an application that is activated when received RDS data indicates a particular sports team is being covered on the radio station. The name of the sports team may be included within RDS data packets. An application may be activated that is able to recognize the name of the sports team and, in response to its presence in the RDS data, recall from memory 14 and implement a user configuration including wallpaper and ring tones that are associated with the user's favorite sports team. Thus, for example, if the FM radio station is covering a hockey game featuring the Anaheim Ducks®, the application activated by the RDS data indicating that the program is a sports program featuring the Anaheim Ducks® could present wallpaper and ring tones associated with the team.
Another example application monitors RDS data packets for the names of artists and songs being played by the FM radio station broadcasting the RDS packet data on the selected frequency band. If the user is listening to FM radio on the handheld device 10 and a favorite artist is featured, the application can recognize the artist name from the RDS data containing the artist's name. In response, the application may recall from memory 14 a user configuration which presents the artist's image on the display 20 and changes ring, such as to match the songs of the feature artist. Also, the application may present an image on the display 20 asking whether the user wishes to download the artist's song or album from a music server to the memory 14 of the cellular handheld device 10 for future listening. If the user so desires, the application can then initiate a data call to the music server site to perform the download.
In a different type of application, activation by RDS data may prompt the application to recall information from an external information source, such as by accessing a particular Internet server to download data relevant to the application, step 620. Using the downloaded data, the application may then generate a display or change wallpapers or ring tones, step 622. In this example, the address for the data server may be included within the RDS data stored in the RDS data buffer. An example of such an application could be the traffic application in which case the application may obtain information regarding the traffic alert and potential alternative routes by accessing an Internet server containing traffic information. In this example, the generated display may be an alternative route or driving directions to bypass the traffic problem. In another example, the alert application may access a weather server to download information related to a weather alert, step 620, and generate a display indicating the updated weather forecasts and any associated warnings, step 622.
Another example of this type of an application is a navigation application which uses a Global Positioning System (GPS) receiver (not shown) included within the handheld device. When the processor 12 recognizes a traffic advisory RDS data packet, the navigation application may be activated (i.e., woken up or loaded into memory) which then turns on the GPS receiver and receive GPS signals to allow the navigation application to determine its position and direction of travel (such as if the handheld device 10 is in a moving car). Then, by comparing its position to the location of the traffic event, the navigation application may access memory to generate a map including driving directions for bypassing the traffic problem. The navigation application may also access other sources of information, such as by making a data call to an Internet server to download traffic information or receive traffic information via other wireless data services.
An RDS data activated application may simply turn on or tune the FM receiver ASIC 22A to the frequency band of the FM station in order to allow the broadcast program to begin playing, step 630. For example, if the application is configured to recognize a favorite song or artist based upon the artist's name or song title presented in the RDS data, the application could turn on the FM receiver ASIC 22 (22A) and tune it to the frequency band of the FM station that is playing that the artist or song. In this way, a user can be sure to always hear a favorite song or artist no matter which radio station the FM receiver ASIC 22 (22A) happens to be tuned to (provided of course that the station is broadcasting the artist's name or a song titles in RDS data).
Another example application monitors RDS data packets from all FM radio stations broadcasting the RDS packet data watching for the name of an artist, song or a number of songs for which the user has indicated a desire to record or download. In this manner the application effectively “scans” all (or a subset of) FM stations in the background looking for matches to the user's preferences for songs or artists. When received RDS data matches an artist or song title identified by the user, the RDS data activated application may simply turn on and/or tune the FM receiver ASIC 22A to the frequency band of the FM station transmitting the matched RDS data in order to allow the broadcast program to begin playing, step 630. In addition, the RDS data activated application may record the broadcast program (i.e., the song), such as in an MP3 audio file format stored in memory 14, 24, optional step 632. This application allows users to build a play list of favorite music recordings for their own personal by selectively recording music that is played on FM stations that broadcast RDS data.
A further example of an application is one that simply generates a display, wallpaper or that changes ring tones, step 640. Such applications simply make the user aware of a particular situation based on information in the RDS data. An example of such an application is the FM radio player application providing conventional RDS data displays on the handheld device.
With an expansion of the RDS system, such as including more data codes and enabling third parties to insert data into selected RDS data packets may enable even further applications. Different RDS data patterns (referred to herein as RDS flags) can be used to activate a variety of different applications that may be developed. For example, a new RDS flag may be configured to prompt an application to cause the handheld device 10 to place a call to a telephone number, such as a dispatcher, operator or a recorded message (such as an emergency message). As another example, an RDS flag may be configured prompt handheld devices to contact a server to download an application, such as a software update, or to delete an application from the handheld device's memory 14, such as an expired or recalled software package. In this example, the RDS flag may indicate that an application update is ready for download. Alternatively, the RDS flag may activate an application that causes the handheld device 10 to access a server which informs the application of software and data updates available for download and software or data that should be deleted.
The foregoing example application embodiments are provided only for illustrative purposes, and are not intended to limit the scope of applications that may be implemented on handheld devices of the various embodiments.
By providing handheld devices with the capability to access content on an Internet server in response to RDS data, the RDS data monitoring capability combined with data calls to an Internet server can turn FM radio broadcasts into a multimedia experience without the need to provide real-time streaming video by the server. An IP address, pointer, or other data code may be included in the RDS message that a handheld device application can use to access data on a particular Internet server that is relevant to the current radio program. The server may have stored on it or be coupled to a database having stored on it image, video and text files relevant to a broad range of popular topics or programs on FM radio stations, such as images, video and statistical information related to popular recording artists, professional athletes, sports teams, politicians, criminals, actors, comedians, etc. The server can be configured with software to recognize codes or data that is included in RDS messages and provided to the server by the handheld device 10 in a data call, and response to such codes or data determine appropriate image, video and text data to download to the handheld device.
This system embodiment is illustrated in
The media server 710 includes a programmable processor coupled to a data storage medium (not separately shown) as is common in commercially available servers. The data storage medium may be an internal hard disc and/or an external large capacity disc drive which are well known and commercially available (i.e., the term “data storage medium” encompasses both internal and external storage capacity coupled to the server). The media server 710 has stored on the data storage medium an extensive data base of image, video and text information related to a broad range of subject matter that is indexed in a manner that allows quick access based upon subject matter codes or data that may be included within RDS messages. Such image, video and text information may be specially configured for transmission to and display on handheld devices. For example, images and video may be selected and formatted to be compatible with handheld devices, such as abbreviated text and close ups images at lower resolution that can fit and be easily viewed on the small display 20 of handheld devices.
The media server 710 is further configured with software that causes the server 710 to receive data requests from a handheld device 10 prompted by or containing RDS data, recall particular image, video and text data from the data storage medium in response to the data request, and transmit the recalled information to the handheld device using IP protocols. An embodiment of processes that may be implemented on the media server 710 via software is illustrated in
Referring to
In an embodiment, the media server 710 may optionally access a broadcaster's server 702 maintained by the particular FM radio station that transmitted the RDS data received by handheld device 10 to obtain information to interpret the tag or code received in the query, optional step 804. In doing so, the media server 710 may provide the received tag or code and receive in response a more complete description of the data that is being requested. Thus, the broadcaster can include a short code (e.g., 3 to 5 bits of data) in the RDS data that the media server 710 can interpret with assistance from the broadcaster's server 702. In this step, the broadcaster's server 702 may also download to the media server 710 additional image, video and/or text data that can be sent to the handheld devices 10.
Having interpreted the tag, pointer, address, or code in the query, the media server 710 recalls the associated data from the data storage medium (e.g., by accessing the database), step 806, and formats the data into IP packets for transmission to the handheld device, step 808. In this step of formatting, the media server 710 may sequence images and data according to formatting instructions associated with the data. In this manner, the content provider (i.e., the owner of the image, video and text data) may control the sequence in which images and information are displayed on the user's handheld devices 10. Finally, the media server 710 transmits the formatted data to the handheld device 10 using standard wireless Internet data transmission protocols and networks, step 810.
In an embodiment, the media server 710 may also receive other information regarding the broadcaster's server 702, such as a play list or program outline, from the broadcaster's server in step 804 that allows the media server 710 to anticipate the next request from the handheld device 10. Knowing the broadcaster's play list or program outline may enable the media server 710 to prefetch and preformat information that is likely to be requested by a handheld device 10 so the information can be sent promptly after a request is received. For example, a query to the media server 710 may identify the FM radio station that the handheld device is monitoring, so the media server 710 can download the play list (or at least the next song) from the broadcaster's server 702 in step 804 and use the play list to prefetch information relevant to the next song or artist anticipating that the handheld device will soon request such data.
In a further embodiment, the media server 710 may receive a request for lyrics data that includes the song title RDS tag, step 800, and use this data to recall lyrics data from the data storage medium (e.g., by accessing the database) associated with the particular song being broadcast by the FM station 700, step 806. As with the foregoing embodiment description, the media server 710 will format the lyrics data into IP packets for transmission to the handheld device, step 808, and then transmit the data to the handheld device 10, step 810. Upon reception, the handheld device 10, may present the lyrics on the display more or less synchronized with the music being broadcast by the FM station 700.
In the foregoing embodiment, it should be appreciated that the handheld device 10 may request information based upon any form of data in the RDS data stream, and not just the particular program that is playing. For example, some FM broadcasters include information on the next song or artist, so the handheld device 10 may interpret this information and use it to request data associated with the next song from the media server 710, and thus be ready to display the information when the next song comes on (which the handheld device will recognize based upon the RDS data).
A variety of implementations of this system are possible. For example, RDS data may be used by an application to download images, video and text data regarding a particular artist for presentation on the device's display during the time the artist's song is playing on the radio. Special video clips could be downloaded for display on the handheld device which like music videos are intended to enhance the user's entertainment experience but unlike music videos are not synched to the audio program, thereby making them suitable for downloading and display n handheld devices. In this manner, the handheld device 10 in cooperation with the media server 710 is able to provide a multimedia entertainment experience while playing the FM station.
As another example, RDS data may contain the name of a particular athlete at bat (in a baseball game) or being discussed by radio commentators. Using this RDS data, the application can download images, video and text data (such as the athlete's statistics) for presentation on the display 20 on the handheld device 10. Alternatively or in addition, the handheld device 10 may download from the media server 710 images, video and text data associated with one or both of the teams. As a further example, if RDS data indicates major scoring events, such as a home run or touch down, the application may activate the vibration generator in the handheld device in addition to sounding a tone (e.g., a cheer) to provide a multi-sensory entertainment experience.
As another example, political parties may prepare image, video and text data packages for storage on the media server 710 which can be downloaded for display on the handheld device 10 when a particular candidate or political issue is being discussed on the FM station. For example, when a particular candidate is being interviewed, the handheld device may display a picture of the person and/or display a website or phone number to call for more information or to make a contribution. Similarly, if a political advertisement is being broadcast, RDS data related to the advertisement can be used by the handheld device 10 to download additional information from the media server 710.
In yet another example, advertisements and public service announcements run on the FM station may be tied to RDS data to enable the handheld device 10 to download additional information from the media server 710. For example, advertisers may post images on the media server 710 to be downloaded to handheld devices 10 whenever one of their advertisements is aired, thereby turning FM broadcast advertisements into an audiovisual experience. Advertisers may also want to push downloads of displays and information to enable consumers to purchase their products. For example, a map image may be downloaded to the handheld device directing customers to the location of the advertised business. As another example, a website or Java applet may be downloaded to the handheld device to enable a user to purchase the product immediately, such as by accessing the website and making an on-line purchase via a browser, or transmitting a purchase message directly (e.g., by activating a Java applet). Additionally, since RDS data is transmitted only within the reach of the FM radio station, advertisers can use this capability to provide city-specific or local content to the handheld device, even from a centrally located media server 710.
In a further embodiment, FM stations may include calendar and contact information in RDS data that are transmitted along with advertisements. With this additional information in the RDS data stream, applications can be provided that prompt users to store the calendar or information in a calendar and/or contacts database on the mobile device. Such applications would allow users to act on the RDS-transmitted advertisement, such as storing a reminder in a calendar application or dialing a contact number. For example, if an advertisement concerns an upcoming concert or event, users who want to attend or be reminded of the event can the date in their calendar, such as by pressing a button. Similarly, RDS data could be used to transmit contact information for a vendor (e.g., a phone number, e-mail address or Internet address). Users interested in contacting vendors can then save the contact information or immediately contact the vendor such as by pressing a softkey or button, freeing them from the need to memorize a phone number or address. By pressing a softkey or button, users can store the contact information associated with the ad for later retrieval.
The various embodiments allow the RDS data service to tie broadcast audio programs to static data stored in a server so that the combination presented on the handheld device 10 appears as an integrated entertainment experience without the need for streaming video feeds from the media server 710. Further, the media server 710 does not have to be hosted by the broadcaster. The result of the foregoing system embodiments could be a system for delivering audio and visual information that is third form of media that is a mix of radio and television. Further, the image, video and text information may be provided by a company or party that is not associated with the FM broadcaster, and supports all broadcasters, such as a cellular telephone service provider. Further, the media server 710 may be located anywhere, such as in a server farm providing a service to all handheld devices 10 no matter where they are located.
The various embodiments provide a number of advantages. For one, the capability of activating a dormant application upon receiving a particular RDS data packet can allow the handheld device to conserve power since the application can remain dormant until required. Since the FM receiver may be external to the handset (see
For another, an affordable and efficient emergency warning system can be incorporated into cell phones. Since a very large percentage of the population has a cell phone near them at any given moment, cell phones could be a very effective way to warn citizens and provide them instructions or guidance in the event of an emergency. Since the Emergency Broadcast System is already integrated with FM stations, adding the capabilities of the various embodiments to cell phones would establish a broadly distributed and effective emergency warning system at very low cost.
A further advantage is the opportunity for a service provider to enhance the FM radio listening experience by providing further services and entertainment to the listener without the need to invest in new broadcast and network infrastructure.
The hardware used to implement the events of the forgoing embodiments may be processing elements and memory elements configured to execute a set of instructions, wherein the set of instructions are for performing method steps corresponding to the above events. Alternatively, some steps or methods may be performed by circuitry that is specific to a given function.
Those of skill in the art would appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. The software module may reside in a processor readable storage medium and/or processor readable memory both of which may be any of RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other tangible form of data storage medium known in the art. Moreover, the processor readable memory may comprise more than one memory chip, memory internal to the processor chip in separate memory chips, and combination of different types of memory such as flash memory and RAM memory. References herein to the memory of a mobile device are intended to encompass any one or all memory modules within the mobile device without limitation to a particular configuration, type or packaging. An exemplary storage medium is coupled to a processor in either the mobile handset or the server such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the server processor and the storage medium may reside as discrete components in a user terminal.
The foregoing description of the various embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein, and instead the claims should be accorded the widest scope consistent with the principles and novel features disclosed herein.
The present application claims the benefit of priority to U.S. Provisional Patent Application No. 61/046,476 filed Apr. 21, 2008 entitled “Cellular Handheld Device with FM Radio Data System Receiver,” the entire contents of which are hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
5548828 | Kozaki et al. | Aug 1996 | A |
6421353 | Kim | Jul 2002 | B1 |
6711390 | Moers | Mar 2004 | B1 |
20020196748 | De Mier | Dec 2002 | A1 |
20030054804 | Brandes et al. | Mar 2003 | A1 |
20040198279 | Anttila et al. | Oct 2004 | A1 |
20050100116 | Mason | May 2005 | A1 |
20060141962 | Forbes et al. | Jun 2006 | A1 |
20060166617 | Passmore | Jul 2006 | A1 |
20070015480 | Mason | Jan 2007 | A1 |
20070093277 | Cavacuiti et al. | Apr 2007 | A1 |
20070143816 | Gupta et al. | Jun 2007 | A1 |
20070167147 | Krasner et al. | Jul 2007 | A1 |
20070248055 | Jain et al. | Oct 2007 | A1 |
20070259649 | Felder | Nov 2007 | A1 |
20070259650 | Felder | Nov 2007 | A1 |
20070281644 | Olgen | Dec 2007 | A1 |
20070291678 | Chowdhury et al. | Dec 2007 | A1 |
20080144820 | Hong | Jun 2008 | A1 |
20080166963 | Nord | Jul 2008 | A1 |
20080299925 | Walley et al. | Dec 2008 | A1 |
20090129361 | Masamoto | May 2009 | A1 |
20090131002 | Masamoto | May 2009 | A1 |
20090131003 | Masamoto et al. | May 2009 | A1 |
20090131122 | Masamoto | May 2009 | A1 |
20100291911 | Kraft et al. | Nov 2010 | A1 |
Number | Date | Country |
---|---|---|
1717873 | Jan 2006 | CN |
2002538651 | Nov 2002 | JP |
20040104582 | Dec 2004 | KR |
100740191 | Jul 2007 | KR |
20070076015 | Jul 2007 | KR |
WO0051235 | Aug 2000 | WO |
WO03090481 | Oct 2003 | WO |
WO2005013521 | Feb 2005 | WO |
WO2005039079 | Apr 2005 | WO |
WO2007138375 | Dec 2007 | WO |
Entry |
---|
International Search Report and Written Opinion—PCT/US2009/038334, International Search Authority—European Patent Office—Oct. 20, 2009. |
Kusche T, et al., “RadioText Plus—a new enhancement to the RDS RadioText service,” EBU Technical Review, Jul. 2006. |
Number | Date | Country | |
---|---|---|---|
20090264149 A1 | Oct 2009 | US |
Number | Date | Country | |
---|---|---|---|
61046476 | Apr 2008 | US |