Patent Publication Number: US-7222198-B2

Title: System for transferring data between devices by making brief connection with external contacts that extend outwardly from device exterior

Description:
BACKGROUND 
   Previously, data was only transferred between devices using wired connections. For instance, multiconductor cables may be connected between two devices to transfer data from one device to the other. More recently, however, more sophisticated methods for transferring data have been devised. For example, various wireless communication protocols, such as Bluetooth™ and IrDA (Infrared Data Association), have been developed that are intended to simplify communications between devices by doing away with the need for wires or cables. 
   Although wireless communications do facilitate communication without wires or cables, contrary to the intent behind the creation of wireless schemes, wireless communications can create confusion and/or irritation for the common device user. For instance, if two devices, say a desktop computer and a personal digital assistant (PDA), are Bluetooth™-enabled, the devices may automatically begin communicating with each other when one device is brought into proximity with the other. Although such automated connection may be appreciated by more savvy users, the typical user may be confused as to why or how such communications began. Furthermore, such a user may be concerned about what types of communications are being had between the devices and, in some cases, unintentional data transfer from one device to another may occur (e.g., synchronization of email messages). Therefore, such automation can result in a perceived lack of control for the user. 
   Aside from the above-noted concerns, wireless communication is unattractive from a cost standpoint. Specifically, the radio frequency (RF) transmitting and receiving components typically used in current wireless communication schemes add expense to the devices that comprise them. Moreover, relatively large amounts of power are required to drive such components. Although power consumption may not be of great concern for devices that are connected to a home or office alternating current (AC) supply, power consumption is very important for portable devices. Yet another limitation of wireless communications is the availability of bandwidth that may be used to transfer data, as well as the speed with which such data can be transferred using that bandwidth. 
   SUMMARY 
   Disclosed are systems and methods for transferring data. In one embodiment, a system and method pertain to configuring a first device to send data, touching an external contact of the first device to an external contact of a second device, and transmitting data from the first device to the second device via the touching contacts. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The disclosed systems and methods can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale. 
       FIG. 1A  is an embodiment of a system with which data can be transferred between devices. 
       FIG. 1B  is a detail view of a device shown in  FIG. 1A . 
       FIG. 2  is an embodiment of the architecture of the devices shown in  FIG. 1A . 
       FIG. 3  is a schematic diagram of an embodiment of an integrated circuit that can be used in the architecture of  FIG. 2 . 
       FIG. 4  is a flow diagram illustrating an embodiment of a method for transferring data. 
       FIGS. 5A and 5B  illustrate the touching of contacts of two devices for the purpose of transferring data. 
       FIGS. 6A and 6B  provide a flow diagram illustrating an embodiment of a method for transmitting data from one device to another device. 
       FIG. 7  is a flow diagram illustrating an embodiment of a method for receiving data from a device. 
   

   DETAILED DESCRIPTION 
   As identified in the foregoing, sophisticated data transfer methods, such as wireless communication, are intended to simplify data transfer for the user, but create other problems for the user, one of which being confusion and/or irritation in regard to communications that automatically occur between wireless-enabled devices. As is described in this disclosure, however, highly efficient and intuitive data transfer can be achieved by providing both the sending and the receiving device with an external contact that, when touched to another such contact, facilitates delivery of data from the sending device to the receiving device. 
   In such a communications scheme, relatively large amounts of data may be transferred between devices in a seemingly instantaneous manner from the perspective of the user. Moreover, this transfer speed can be achieved using relatively simple circuitry, thereby reducing both device cost and device power consumption. 
   Disclosed herein are embodiments of systems and methods for transferring data. Although particular embodiments are disclosed, these embodiments are provided for purposes of example only to facilitate description of the disclosed systems and methods. Accordingly, other embodiments are possible. 
   Referring now to the drawings, in which like numerals indicate corresponding parts throughout the several views,  FIG. 1A  illustrates an embodiment of a system  100  with which data may be transferred between devices. As indicated in the figure, the system comprises a first device  102  and a second device  104 . In the example of  FIG. 1A , both devices  102 ,  104  comprise a digital camera. As will be apparent from the following discussion, however, each device  102 ,  104  may generally comprise any device that can either store and transmit data, or receive and store data. Therefore, other examples for the devices  102 ,  104  include a desktop personal computer (PC), Maclntosh™ computer, notebook computer, tablet computer, personal digital assistant (PDA), mobile telephone, and the like. In some embodiments, one or both of the devices  102 ,  104  comprise a portable and/or handheld device so as to facilitate sharing of data between such devices without the need for data cables or wireless communication. 
   Irrespective of the particular configuration of the devices  102 ,  104 , each is provided with an external contact  106 , with which data can be transmitted to and/or received from another device. As shown most clearly in  FIG. 1B , which illustrates a portion of the device  102  in greater detail, the external contact  106  of the embodiment shown in  FIG. 1  is a male contact that extends outwardly from the body of the device so as to facilitate convenient touching of the contact to another contact (of like or different configuration). Therefore, as indicated in  FIGS. 1A and 1B , the contacts  106  may be formed as metal nubs or other such protuberances. Although male contacts are illustrated in the figures and have been identified explicitly herein, alternative arrangements are feasible. For instance, in situations in which one device typically will be the transferor of data and the other device typically will be the transferee (i.e., recipient) of data, the transferring device may have a generally male contact and the receiving device may have a generally female contact, or vice versa. In any case, the contacts  106  are normally positioned so as to facilitate touching of the contacts together. 
   In addition to the external contacts  106 , each device  102 ,  104  may also include an indicator  108  that is used to convey information as to the transfer of data from one device to the other. In the embodiment of  FIGS. 1A and 1B , this indicator  108  comprises a light-emitting element, such as a light-emitting diode (LED), which is provided on the body of each device  102 ,  104  generally adjacent the contact  106 . Use of the indicators  108 , and the manner in which they convey information regarding data transfer, are described below. 
     FIG. 2  illustrates an embodiment of the architecture for either of the devices  102 ,  104  shown in  FIG. 1A . Therefore, in the following discussion, it is presumed that the device described is capable of both transmitting and receiving data. More specifically, illustrated is an example architecture of a digital camera that is configured to facilitate data transfer. Therefore, for the remainder of the discussion of  FIG. 2 , it is assumed that the device is a “camera.” 
   As indicated  FIG. 2 , the camera  102 ,  104  includes a lens system  200  that conveys images of viewed scenes to one or more image sensors  202 . By way of example, the image sensors  202  comprise charge-coupled devices (CCDs) that are driven by one or more sensor drivers  204 , or complimentary metal oxide semiconductor (CMOS) sensors. The analog image signals captured by the sensors  202  are then provided to an analog-to-digital (A/D) converter  206  for conversion into binary code that can be processed by a processor  208 . 
   Operation of the sensor drivers  204  is controlled through a camera control interface  210  that is in bi-directional communication with the processor  208 . Also controlled through the interface  210  are one or more motors  212  that are used to control operation of the lens system  200  (e.g., to adjust focus, zoom, aperture, or shutter). Operation of the camera control interface  210  may be adjusted through manipulation of a user interface  214 . The user interface  214  comprises the various components used to enter selections and commands into the camera  102 ,  104  such as a shutter-release button and various control buttons provided on the camera. 
   The digital image signals are processed in accordance with instructions from the camera control interface  210  and the image processing system(s)  218  stored in permanent (non-volatile) device memory  216 . Processed images may then be stored in storage memory  220 , such as that contained within a removable solid-state memory card (e.g., Flash memory card). 
   As is depicted in  FIG. 2 , the external contact  106  is placed in electrical communication with the processor  208  via an interface application specific integrated circuit (ASIC)  222 . An example embodiment for this ASIC  222  is provided with reference to  FIG. 3 . 
     FIG. 3  is a schematic diagram of an embodiment for the interface ASIC  222  identified in  FIG. 2 . As shown in  FIG. 3 , the ASIC  222  is connected to the external contact  106  via a capacitor  300  so as to provide capacitive coupling between the ASIC and the contact that protects the ASIC and the processor  208  ( FIG. 2 ) from damage when the contact is grounded or connected to a DC potential (e.g., through unintended contact with a metal object). Additional protection is provided by an electrostatic discharge (ESD) circuit  302  that diverts voltage surges (whether negative or positive) away from the ASIC components using one or more protection diodes  304 . If such a voltage surge is positive, it is diverted to the V CC  node (indicated by “+”). If such a voltage is negative, it is diverted to ground. 
   The ASIC  222  further includes an output driver  306  that is used to drive data to another device via the external contact  106 . By way of example, the output driver  306  comprises a tristate driver that is configured to operate in three states, namely a first state in which a logical “1” is driven, a second state in which a logical “0” is driven, and a third state in which no values are driven. Toggling between either of the first two states and the third state may be achieved through use of an output enable signal (see  FIG. 3 ). Such a configuration facilitates the receipt of data (i.e., input data) with a comparator circuit  308  that is electrically connected to the output driver  306 . In the embodiment shown in  FIG. 3 , the comparator circuit  308  includes a comparator  310  and a resistor  312 . In use, input received from another device via the external contact  106  (when the output driver  306  is disabled) is compared with a reference voltage V REF  so that the data can be correctly interpreted. Note that the input is AC-coupled, and the restored DC voltage is provided through resistor  312 . Thus, the received data swings above and below reference voltage V REF . Comparator  308  converts the analog waveform to binary data. Through such comparison, the input signal is cleaned and the data (i.e., “1s” and “0s”) it contains may be identified. DC-free coding may be advantageously used for the data due to the AC-coupling of the circuit. This coding technology is well understood in the data storage and communications industry. Note also that comparator  308  may add some hysteresis to its comparison of the input to the reference voltage. This prevents random noise from being converted to data in the absence of an AC signal in. 
   In addition to the above-identified components, the ASIC  222  further includes buffer memory  314  that is used to quickly cache received data to enable high data transfer rates. 
     FIG. 4  is a flow diagram illustrating an embodiment of a method for transferring data. In particular,  FIG. 4  provides an overview of a process for transferring data from a first device to a second device. It is noted that any process steps or blocks described in the flow diagrams of the present disclosure may represent modules, segments, or portions of program code that includes one or more executable instructions for implementing specific logical functions or steps in the process. Although particular example process steps are described, alternative implementations are feasible. Moreover, steps may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved. 
   Beginning with block  400 , the first device is configured to send data to the second device. The configuration involved may depend upon the circumstances, but typically includes placing the first device in a transmit data mode in which the device is prepared to transmit data to another device. Configuring the device to send data may further include identifying data that is to be transmitted using a device interface (e.g., display and control buttons). The manner in which data identification is achieved may depend upon the nature of the underlying device that is sending the data. If the device comprises a camera, the data (i.e., images) to be sent can be identified by the user, for example, by scrolling through images stored in the camera (or its removable memory card) and tagging one or more images for transmission. Alternatively, identification may simply comprise scrolling through images until the image that is desired to be transmitted is shown in a display of the camera, thereby indicating an intent to transmit the image. 
   In situations in which the device is not a camera (e.g., if the device is a PDA, mobile telephone, or notebook computer), identification of data may be accomplished through more conventional means by, for instance, scrolling through file directories and/or drop down menus and identifying which of several listed files is/are to be transmitted. 
   Next, with reference to block  402 , the external contacts of the first and second devices are touched together. This touching can be achieved by simply moving the devices toward each other until contact is made between the contacts  106  as indicated in  FIGS. 5A and 5B . As shown in  FIG. 5B , the male contacts  106  may include a flat  500  that facilitates positive contact between the contacts when brought together. Moreover, the contacts  106  may be positioned so as to enable touching of the contacts of two devices when one or both of the devices are slid across a smooth surface such as a table top (see  FIGS. 5A and 5B ). 
   Once the external contacts have been touched together, data is transferred from the first device to the second device, as indicated in block  404 . As is discussed in greater detail below, all data can be transferred in this manner even if the external contacts are touched together for a brief period of time (e.g., a fraction of a second) due to the great speed with which the data is transmitted. Moreover, all data may be transferred even if the touching of the contacts is not perfectly continuous (i.e. the connection is noisy) due to the high transmission speed and to the redundancy of transmission (described below). 
     FIGS. 6A and 6B  describe an embodiment of a method for transmitting data from one device (i.e., a transmitting device) to another device (i.e., a receiving device). In this example, the transmitting device is assumed to be the first device  102  of  FIG. 1A  and the receiving device is assumed to be the second device of that figure. In any case, however, data to be transmitted is identified by the transmitting device, as indicated in block  600  of  FIG. 6A . As described above with reference to  FIG. 4 , the data to be  5  transmitted may have first been identified by the user using some form of user interface (e.g., display, control buttons, etc.). In some embodiments, an indicator (e.g., indicator  108  in  FIGS. 1A and 1B ) is used to indicate to the user that the data to be transmitted has been identified and currently resides within the transmitting device. Such a condition is illustrated in  FIG. 5A , which depicts the indicator  108  as being illuminated. 
   Once the data has been identified, the transmitting device detects contact with the receiving device, as indicated in block  602 , due to the user bringing the external contacts of the two devices together (see  FIG. 5B ). By way of example, touching of the external contacts may be detected by a “handshake” process. The transmitting device may begin periodically transmitting a “request to send” message, while listening for a return message from the receiving device. When the receiving device recognizes the “request to send” once electrical contact is made, it responds with a “ready to receive” message. When the transmitting device recognizes the “ready to receive” message, the device is ready to send data. 
   After continuity between the two devices has been detected, the transmitting device communicates with the receiving device via the external contacts, as indicated in block  604 . These communications comprise any initial “handshaking” that is necessary to coordinate and manage the transmission of data from the transmitting device to the receiving device. Accordingly, such communications may comprise two-way communications in which the transmitting device queries the receiving device whether it is capable of and/or prepared to receive data, what protocols are to be used to transmit the data, the speed at which to transmit the data, and so forth. 
   The communications between the two devices can take several different forms. In one variant, a half-duplex communication scheme is used in which bi-directional communications are possible, but where such communications are a sequence of one-way communications. In such a communication scheme, the communication channel (i.e., the communication path comprising the external contacts) is treated like a one-way channel and the devices communicate with each other in an alternating fashion so that only one device transmits at any given time. This alternative has the advantage of being a “baseband” method that does not require extensive analog or RF circuitry. 
   In another variant, a full-duplex communication scheme is used in which contemporaneous bi-directional communications are possible. Such a communication scheme may be implemented using a dual spectrum comprising one forward channel frequency and one reverse channel frequency. Alternatively, spread spectrum technology such as code division multiple access (CDMA), time division multiple access (TDMA), frequency hopping, and so forth may be used. In yet a further variant, a simplex communication scheme is used in which only one device transmits to the other. In such a scheme, no feedback is provided to the transmitting device regarding the success, or failure, of the transmission. 
   Due to the initial communications described above, the transmitting device can, as indicated in decision block  606 , determine whether the receiving device is prepared to receive transmitted data. If not, data transfer cannot occur at this time, and flow is terminated for this transfer session ( FIG. 6B ). If, on the other hand, the receiving device is prepared for data transfer, flow continues to block  608  at which the data to be transmitted is packetized by the transmitting device. Although packetization is not required, it is useful given that the connection between the external contacts is relatively noisy, i.e. perfectly continuous physical contact between the external contacts for the duration of the data transmission may not be achieved because the contacts are not configured for positive mating or interlocking. Accordingly, packetization is assumed in the embodiment of  FIGS. 6A and 6B . 
   Each data packet typically comprises a portion of the data (e.g., one record of a file, or one tile of an image) to be transmitted as well as information that is pertinent to the transmission and/or reconstruction of the transmitted data from the data packets. Such information can be contained within a packet header and may include, for example, a packet number. In such a case, the receiving device can determine which packets did not arrive, or arrived in a corrupted condition. 
   With reference next to block  610 , one or more data packets are transmitted from the transmitting device to the receiving device. Such transmission occurs at a very high data rate in that a direct link, as opposed to a wireless “connection,” is provided between the two devices. Therefore, bandwidth is not a constraint and data may be transmitted in a baseband scheme using relatively little power. Even assuming overhead of about 50% associated with packetizing the data and error correction, data rates of 100 megabits per second (mbps) or more are feasible. In such a case, a 1 megabyte (MB) image can be transmitted in under 0.2 seconds. Therefore, individual files may be transmitted so quickly that their transmission appears nearly instantaneous from the perspective of the user. Notably, the buffer memory  314  facilitates such rapid transmission in that input data may be quickly stored in the buffer memory as opposed to random access memory (RAM) and/or permanent memory elsewhere in the device. 
   In bi-directional communication schemes (e.g., half or full-duplex), one or more data packets may be transmitted and feedback as to whether uncorrupted versions were received can be returned from the receiving device. Operation in this manner allows the transmitting device to determine which data packets must be retransmitted to the receiving device. 
   With reference next to decision block  612  of  FIG. 6B , the transmitting device determines whether feedback in the form of an error notification has been received from the receiving device, thereby indicating that one or more data packets were not received or were not received in proper condition. If not, i.e. if no such notification is received, flow continues down to decision block  618  described below. If, however, an error notification is received, flow continues to block  614 . Such an error notification may comprise, for instance, a message transmitted from the receiving device to the transmitting device indicating that one or more particular packets were not properly received. In such a case, the transmitting device retransmits one or more packets to the receiving device to ensure that all transmitted packets are properly received by the receiving device. At this point, the transmitting device can determine whether the error has been corrected, as indicated in decision block  616 . This determination is made, for instance, in relation to messages transmitted by the receiving device to the transmitting device. If the error has not been corrected, the transmitting device can again retransmit data packets as indicated in block  614 . Assuming that the error is corrected, however, flow continues back to block  610  of  FIG. 6A  at which new data packets are transmitted to the receiving device. 
   If no error notifications are received, flow continues to decision block  618  of  FIG. 6B  at which the transmitting device determines whether all data packets that represent the data to be transmitted (e.g., file) have been transmitted. If so, flow for the transmission session is terminated. When all data has been transmitted, the indicators provided on the transmitting and receiving devices may be used to indicate this condition to the user. For instance, as described above, an indicator  108  of the transmitting device may be illuminated to indicate to the user that the data to be transmitted resides on the transmission device as shown in  FIG. 5A . Once the data transmission is completed, however, this indicator  108  may be turned off and the indicator  108  of the receiving device may be turned on as shown in  FIG. 5B . In such an indication scheme, the indicators  108  represent or imitate movement of the data. Therefore, the user obtains the impression that the user can “see” the data pass from one device to the other, thereby providing highly intuitive feedback to the user as to the completion and success of the data transfer. 
   Returning to decision block  618 , if one or more data packets have not yet been transmitted, flow returns to block  610  of  FIG. 6A  and data packet(s) is/are again transmitted to the receiving device. Flow continues from that point in the manner described above until all such data packets have been successfully transmitted. 
     FIG. 7  describes an embodiment of a method for receiving data that has been sent from a transmitting device. In this embodiment, the receiving device may comprise the second device  104  from  FIG. 1A , and the transmitting device may comprise the first device  102  from that figure. In any case, however, the receiving device communicates with the transmitting device, as indicated in block  700  when an initial communication is sent by the transmitting device. As described above with reference to  FIGS. 6A and 6B , the communications initially sent from the receiving device may pertain to any “handshaking” that is required and may contain information as to whether the receiving device is capable of and/or prepared to receive data, what protocols the receiving device uses, the speed at which the receiving device can receive data, and so forth. 
   Once these initial communications have been completed, the receiving device receives data packets, as indicated in block  702 . During this receipt of data packets, the receiving device monitors the data transfer process to determine, as indicated in decision block  704 , whether a transfer error is detected. By way of example, such an error comprises receipt of a corrupted data packet or failure to receive a data packet. If no such errors occur, flow continues down to decision block  708  described below. If an error does occur, however, flow continues to block  706  at which the receiving device requests retransmission of any needed data packets. Once such a request is made, the receiving device again receives data packets (block  702 ). 
   Assuming that no transfer errors are detected or any such errors are corrected, flow continues to decision block  708  at which it is determined whether all data packets have been received. This determination can be made, for instance, in relation to a “end transmission” message received from the transmitting device, or in relation to information received from the transmitting device as to how many packets in total that are being sent. In either case, if all packets have been properly received, flow is terminated. If not, flow returns to block  702 , and any remaining data packets are received.