Electronic devices which capture, create, store, manipulate or transfer digital music, sound, images, movies or other encoded data have become more prevalent with the advent of less expensive semiconductor processing and increased consumer demand. Applications such as portable MP3 (Moving Picture Experts Group layer 3 standard) players, PDAs (electronic personal data assistant), digital cameras and digital voice recorders continue to gain popularity. The general trend for each of these electronic applications is to provide increased capability and inter-operability with reduced form factor.
One standard that defines inter-operability between electronic devices includes the On-The-Go Rev 1.0 supplement (OTG) to the USB (universal serial bus) 2.0 standard. The OTG standard enables an MP3 player to connect to another MP3 player to transfer music files, a camera to connect to a printer to print a picture, or a PDA to connect to a cell phone to enable mobile web surfing. See Bethanee Martin, USB On-The-Go Spec Signals Developers To Proceed With a New Generation of Mobile Products Capable of Point-to-Point Data Exchange, ¶5 (Dec. 18, 2001). When one OTG-enabled device (the “A-device”) is attached to another (the “B-device”), a pull-up resistor within the B-device raises one line in their connection by a predetermined voltage amount. The A-device senses the voltage change and responds by sending an initialization signal. The B-device responds with bus bandwidth, access frequency, latency and error handling behavior requirements. The A-device assigns the B-device a unique identification number for data addressing. See Michael Gowan, How it Works: USB, PCWorld.com, ¶6 (Dec. 30, 1999). In subsequent communications, data is divided into 64-byte portions, each of which includes both addressing information and the data itself. Id. OTG cabling is asymmetric, with a Mini-A side and a Mini-B side. Devices have only one Mini-AB receptacle that accepts both Mini-A and Mini-B plugs. USB On-the-Go: A Tutorial, P.6, Koninklijke Philips Electronics (January 2002). The OTG-enabled host can have only one peripheral connected to it at a time, thus limiting its use.
One example of an electronic device which includes USB controller functionality is the STMP3300 audio decoder for use with MP3 players. Offered by Sigmatel, Inc., a USB port on the device enables MP3 and WMA (Windows™ media audio) file downloads. William Wong, 1-Chip MP3 Player Includes A USB Controller, Electronic Design, Jun. 4, 2001, V 49, I12, at 37. Unfortunately, the USB port requires a USB host PC (personal computer) to enable the USB connectivity.
An improved data management system and method is particularly important, since current standards do not allow serial connection of multiple B-devices with an A-device on either end and without the use of a PC.
A data management system and method has a plurality of data ports coupled to a processor. The processor is programmed to test for the presence of a controller alternately through each of the plurality of data ports.
In an embodiment, the method is described by testing for the presence of a controller through a first port using a processor and testing for the presence of said controller through a second port if said controller is not found through said first port.
The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principals of the invention. Moreover, in the figures, like reference numerals designate corresponding parts throughout the different views.
One exemplary embodiment of the preferred embodiment comprises a portable modular system with detachably connectable controller, memory and application modules. In one version of the system, the controller module can be connected to a number of different application modules that are connected in series, with each application module including a pair of opposed data ports for connection to other modules. In one embodiment, the orientation of each application module is reversible, so that a given data port can be directed either towards or away from the controller module without affecting system operation. This system is the subject of application Ser. No. 10/307,034, filed Nov. 27, 2002, “Portable Modular Electronic System”.
The data management system described herein, in one embodiment, coordinates data flow between the various applications and the controller. A data addressing protocol is established to enable routing of packet data through the system. The protocol can be appended to the packet data in an addressing portion. The protocol can also precede the packet data to enable routing between the applications and controller. The system includes a plurality of data ports coupled to a processor. The processor is programmed to test for the presence of a controller alternately through each of the plurality of data ports to receive an application ID from the controller. Further, the system enables other application modules to be connected serially with the controller module and the processor in the first application module.
If an acknowledgement is sent to the processor (block 115) within a pre-determined time period, the processor transmits an application ID request to the controller module (block 120). The controller module responds by transmitting an application ID to the processor (block 125). The application ID is stored in internal memory for later retrieval and use. The controller module also has an ID, and its ID is transmitted to the application module either with the acknowledgement, with the application ID, or subsequently to allow routing of subsequent data requests without having to repeat the controller-handshake process. Data pass-through is then resumed from the first and second ports (block 130) and the handshaking process is complete. The controller appends the application ID onto subsequent data transmitted to the application module to enable proper data routing.
If the original controller handshake transmittal through the first data port does not result in an acknowledgement (blocks 105, 115), indicating that no controller module is connected to the first port, the application module looks for the presence of a controller module at its second data port by transmitting a controller handshake through the second port (block 235). Data pass-through is inhibited through the first data port (block 140) to prevent interference. If an acknowledgement is returned (block 145), indicating the presence of a controller module at the second port, the processor transmits an ID, request to retrieve a processor ID and resumes data pass-through from both ports (blocks 120, 125, 130). Although the description of
The processor 330 implements an application such as an MP3 player, PDA, digital camera or digital voice recorder. The processor 330 accepts user input and provides status information to the user through a user interface 320. The processor 330 is programmed to transmit a controller handshake signal through one data port and to inhibit data pass-through at the second port, and to then transmit a controller-handshake signal through the second data port and inhibit data pass-through at the first data port in case no controller module is located at the first port, to establish the initial communication with the controller module 340. Switching in the hub for the initial communication is controlled by the processor. The controller module 340 is programmed to return an application module ID to the processor 330 in response to receiving the controller-handshake signal. As described above, the application module's internal memory 325 stores the application module ID for use by the hub and processor. The internal memory 325 also enables efficient buffering of data retrieved from memory A and B for use by the processor 330.
The hub 335 can be either a switching hub or a router having at least one switch that forwards the data to the appropriate data port or to the processor 330, based on the ID contained in the addressing portion of the data packet (see
The internal memory 325 may be integrated onto a single chip with the processor 330. The data bus 310 is illustrated with electrically conductive paths between the processor 330, user interface 320, and internal memory 325. Other signal transport mechanisms, such as an optical bus, may also be used. A wireless scheme utilizing Bluetooth™ or other wireless technology could also be provided for the data path between the controller module 340, memories A and B and the application module 300.
The invention has numerous embodiments, such as a portable handheld modular consumer electronic product such as that shown in
Memories A and B are shown aligned for electrical connection with the controller module through a pair of electrical connectors 400 in the controller module, and a complementary pair of electrical connectors (not shown) in the memories, one for each memory. Each memory can be individually replaced if it goes bad, and a new memory installed with either the same or an 180°-rotated orientation with respect to the controller module 340.
While various embodiments of the invention have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible within the scope of this invention. For example, the application module could have more than two ports for connection to other modules, in which case the processor could be programmed to transmit a controller handshake through each data port in succession until a controller is located. Accordingly, it is intended that the invention be limited only in terms of the appended claims.