Abstract:
An embodiment of the present invention includes a digital camera system having a digital camera and a computer for transferring pictures of images taken by the digital camera therebetween. The digital camera system includes a card removably and directly coupled, without any intermediary device, between the digital camera and the computer for temporarily storing the images and for transferring the temporarily stored images to the computer for viewing, editing and reproduction thereof.

Description:
BACKGROUND OF THE INVENTION 
   1. Field of the Invention 
   The present invention relates generally to digital cameras employed with a computer using an interface for transferring digital images captured by the digital cameras and particularly to employing a digital camera with a computer without the use of a card reader. 
   2. Description of the Prior Art 
   In recent years, the use of digital cameras has become more prevalent as a consumer product. Whereas previously, digital cameras were used almost exclusively by professional photographers and perceived by the public-at-large as exotic devices, nowadays, digital cameras are used by amateur photographers and seen in many households. 
   The rising popularity of the digital cameras is due to a number of factors. First, the quality of pictures taken by low price cameras has improved considerably. Second, printers with higher resolution and greater quality have been introduced to the market at increasingly more affordable prices. 
   However, there has not been a comparative success in the area of connectivity between the digital camera and a computer (personal computer (PC) or Macintosh). Pictures taken by a digital camera, being in digital format, must be transported in some manner from the removable storage media of the camera to the storage media of the computer. Inside of the computer, the pictures may be viewed, edited and ultimately transferred to a printer for printing. Therefore, the need arises to establish communication between the digital camera and the computer without the use of a card reader device or extra circuitry within the digital camera, in the form of a USB port built into the storage media, in order to transport data therebetween while reducing costs associated with establishing such communication. 
   Inside of the computer, the pictures may be viewed, edited and ultimately sent to a printer for re-production. Thus, there needs to be a transport mechanism, which can establish communication with both the digital camera and the computer in order to transport data therebetween. 
   At present, there are several different methods of connecting the digital camera to a computer.  FIG. 1  illustrates one such mode of connectivity wherein a digital camera  12  is shown to be connected to a desktop computer  19  through a transmission cable  18 . Also shown in  FIG. 1  are a Personal Computer/Compact FLASH (PC/CF) card  16  as well as a serial or universal serial bus (USB) port  14 . Transmission cable  18  connects the serial or the USB port  14  of the digital camera to the serial or USB port of the computer  19 . 
   The pictures taken by the digital camera  12  are stored into the PC/CF card  16  and subsequently transmitted from the serial or the USB port  14  of the camera  12 , through the serial or the USB port of the computer  19  and the transmission cable  18 , to the computer  19 . The main limitation of the type of connection shown in  FIG. 1  is that the camera has to stay on while data is being transferred. Thus, not only the camera cannot be used while data is being transferred but the battery of the camera is being drained during the entire transmission process. Another limitation of the method of data transmission shown in  FIG. 1  is the additional cost of the digital camera due to the circuitry and software associated with the implementation of the serial or USB port  14 . The additional cost may make the camera  12  more expensive than that which is within the reach of the average consumer. 
   An alternative method of transferring the digital data from a digital camera storage media to a computer is shown in  FIG. 2(   a ). Therein is shown a PC/CF card  28 , a card reader  20 , a transmission cable  25  and a computer  29 . The card reader  20  comprises a housing  24  for the PC/CF card  28  as well as the USB controller circuitry  26  and the USB port  27 . The transmission cable  25  connects the USB port  27  of the card reader  20  to the USB port  22  of the computer  29 . 
   The card reader  20  provides a bridge between the computer  29  and the PC/CF card  28 . The latter is inserted into the digital camera (not shown in  FIG. 2(   a )) and stores digital images, enabling it to transfer data between the computer  29  and the camera. The PC/CF card  28  establishes connection with the card reader housing  24  through the PC/CF interface  23 . The card reader  20  communicates with the computer  29  through the USB controller circuitry  26 . 
   There are disadvantages associated with employing the card reader  20  in  FIG. 2(   a ) such as the substantial cost associated therewith. In addition, since the card reader  20  acts like a bridge between the USB bus  22  on the one hand and the PC/CF bus  23  on the other hand, it does not utilize either of the busses fully. Neither can the card reader  20  optimize the interface between the computer  29  and the PC/CF card  28  because of its lack of direct communication with the internal circuitry of the storage media of either of the two devices. Finally, the card reader  20  has the disadvantage of duplicating logic in circuitry  26  since it must have a PC/CF interface as well as a USB interface in order to establish communication between the PC/CF card  28  and computer  29 . The PC/CF card  28  also includes the PC/CF interface  23 , as shown in  FIG. 2(   a ). 
   Another limitation of the prior art systems employing card readers is illustrated in  FIG. 2(   b ) wherein a computer screen is depicted with icon  31  indicating that a removable disk F is connected to the computer. However, icon  31  is displayed as soon as the card reader is connected to the computer regardless of whether there is any PC/CF card in the card reader or not. Therefore, it is misleading to the user as to whether or not the PC/CF card is actually connected to the computer by that which is displayed by the icon  31 . 
   Thus, the need arises for coupling a digital camera&#39;s storage media to a PC by avoiding the need for an intermediary interface, such as a card reader, thereby reducing costs, avoiding duplicate circuitry and allowing for a direct connection between a PC/CF card and the PC and thereby allowing for efficient utilization of the interface busses used for connecting the PC/CF card to the PC. 
   SUMMARY OF THE INVENTION 
   Briefly, an embodiment of the present invention includes a digital camera system having a digital camera and a computer for transferring pictures of images taken by the digital camera therebetween. The digital camera system includes a card removably and directly coupled, without any intermediary device, between the digital camera and the computer for temporarily storing the images and for transferring the temporarily stored images to the computer for viewing, editing and reproduction thereof. 
   The foregoing and other objects, features and advantages of the present invention will be apparent from the following detailed description of the preferred embodiments which make reference to several figures of the drawing. 

   
     IN THE DRAWINGS 
       FIG. 1  shows the prior art USB enabled camera communicating with the computer. 
       FIG. 2(   a ) shows the prior art card reader communicating with the computer. 
       FIG. 2(   b ) shows the prior art computer screen while the card reader is connected to the computer. 
       FIG. 3  shows the preferred embodiment of the removable storage media (PC/CF) card communicating with the computer. 
       FIG. 4  shows a block diagram of a preferred embodiment of the removable storage media (PC/CF) card with both the Personal Computer Memory Card International Association/Compact FLASH (PCMCIA/CF) interface to communicate with a camera as well as the USB interface to communicate with a computer. 
       FIG. 5  shows the block diagram of a controller as employed in a preferred embodiment of the PC/CF card which supports both the PCMCIA/CF interface as well as the USB interface. 
       FIG. 6  shows the block diagram of the host interface portion of the controller. 
       FIG. 7  shows the block diagram of the USB interface portion of the controller. 
       FIG. 8(   a ) shows the block diagram of a controller with shared PC/CF and USB interface bus. 
       FIG. 8(   b ) shows the basic flow and interrelationships of the USB communication model. 
       FIG. 9(   a ) shows a computer screen when the removable storage media (PC/CF) card is not connected to the computer. 
       FIG. 9(   b ) shows a computer screen when the removable storage media (PC/CF) card is connected to the computer. 
   

   DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
   Referring now to  FIG. 3 , a digital camera system  100  is shown to include a digital camera  32  and a computer  40  in accordance with an embodiment of the present invention. Digital information, data, is transferred between the digital camera  32  and the computer  40  with the use of a card  30  which, when inserted into the card slot  102  of the digital camera  32 , communicates with the digital camera  32  through an interface  34 . In one embodiment of the present invention,  34  is a PCMCIA/CF interface, a well-known standard in the industry, and  30  is a PC/CF card. 
   In yet another embodiment of the present invention, the interface  34  is a memory stick interface. 
   The pictures taken by the digital camera  32 , in digital format, are transferred to the card  30  through the interface  34  when the card is inserted into the card slot  102  of the digital camera  32 . Subsequently, the card  30  may be removed from the digital camera  32  and mounted, as a removable disk, onto the computer  40  as indicated by the broken arrow  39  in  FIG. 3 . Once mounted onto the computer  40 , the card  30  communicates with the latter through a port  38  to transfer digital images from the card  30 , taken by the digital camera  32 , to the computer  40 . In one embodiment of the present invention, the port  38  is a USB port. The pictures taken by the digital camera  32  may thus be viewed, edited and/or copied by the computer  40 . 
   Alternatively, the digital camera  32  may be replaced with other types of digital equipment without departing from the scope and spirit of the present invention. For example, the digital camera  32  in other embodiments of the present invention may be replaced with an MP3 player or a palm computer or other similar device requiring the transportation of data between the device and a computer. 
     FIG. 4  illustrates a high-level block diagram of the card  30  according to an embodiment of the present invention. The card  30  is shown to include a controller  41 , an array of FLASH memory chips  46 , a FLASH interface bus  49 , a USB interface bus  44 , an interface  34 , the port  38  and a host interface bus  42 . 
   The controller  41  is coupled to the interface  34  through the host interface bus  42 . Further, the controller  41  is coupled to the port  38 , through the USB interface bus  44 , and to the array of FLASH memory chips  46  through the FLASH interface bus  49 . The FLASH memory array  46  includes a plurality of memory chips each of which is designated as  48  in  FIG. 4 . 
   The controller  41  communicates with a digital camera through the interface  34 . The host interface bus  42 , which couples the controller  41  with the interface  34 , is a parallel interface and acts like a real-time interface in transferring data at a high rate from the digital camera to the FALSH memory array  46 . On the other hand, the USB interface bus  44 , which couples the controller  41  with the port  38  is a serial interface with considerably less bandwidth than that of the host interface bus  42 . The reason for using the port  38  is that most computers are equipped with USB interfaces. Controller  41  performs a variety of functions including reading and writing information to the array of FLASH memory chips  46  through either the interface  34  or the port  38 . 
     FIG. 5  depicts a block diagram of the controller  41  comprising the PC/CF host module  50 , the USB module  52 , the flash interface module  54  as well as the control bus  56  interconnecting all of the aforementioned modules. Controller  41  communicates with a host such as a digital camera through the PC/CF host interface bus  42 . Additionally, controller  41  is in communication with a USB enabled device such as a computer, through the USB interface bus  44 , and with the array of FLASH memory chips through the FLASH interface bus  49 . Controller  41  receives and manages data using the PC/CF host module  50  and the USB module  52  and additionally reads and writes data using the FLASH interface module  54 . The digital data (digital image representing a picture taken by the digital camera) is written to (or stored in) the array of FLASH memory  46  through the FLASH interface module  54 . After downloading the same data to the computer through the USB module  52 , the array of FLASH memory  46  is made available and the card  30  may be utilized to store additional digital images by inserting the card  30  into the digital camera. 
     FIG. 6  shows the PC/CF host module  50  according to an embodiment of the present invention. The PC/CF host module  50  includes the PC/CF host logic  60 , which is in communication with a device such as a digital camera through the PC/CF host interface bus  42 . The PC/CF module  50  also includes the task file  62 , the CIS RAM/ROM  64  and the decode and control block  66 , each one of which may communicate with the PC/CF host logic  60  and the microcontroller  67  and the data buffer  68 . Also shown in  FIG. 6  is the control bus  56 , which connects the PC/CF host module  50  to other components of the controller  41  as shown in  FIG. 5 . 
   The PC/CF host module  50  establishes communications with a host device such as a digital camera through the PC/CF host interface bus  42 . The host initializes the information to be read or written and then writes a command to the task file  62 . Specifically, the host writes all of the drive information such as the cylinder number, the head number and so on followed by the specific command, such as READ. Once the drive information reaches the task file  62 , the latter sends an interrupt to the microcontroller  67 , which prompts the latter to execute the command. For instance, the microcontroller  67  executes the READ command based upon the drive information, which preceded the command such as the cylinder number, the head number and so on. 
   The CIS RAM/ROM  64  is needed only for the PCMCIA/CF interface. The CIS RAM/ROM  64  has a format for providing information identifying the manufacturer, the vendor such as Lexar Media Inc., drive information such as capacity, etc. The decode and control block  66  includes all of the logic necessary for decoding the messages sent to the task file  62  and the CIS RAM/ROM  64 . Data, such as digitized information representing images of pictures taken by the digital camera, is stored temporarily in the data buffer  68  until the data is transferred permanently to the FLASH memory by the microcontroller  67 . In one embodiment of the present invention, the data buffer  68  has a capacity between eight to ten sectors. 
     FIG. 7  depicts different components included within the USB interface module  52  of  FIG. 5 . A number of the components of the USB module  52  are also present in the PC/CF host module  50  shown in  FIG. 6 . The USB module  52  in  FIG. 7  is shown to include the microcontroller  75 , the data buffer  76  and the USB task file  79  as well as the descriptor RAM/ROM  78  which are functionally similar to their counterparts in the PC/CF host module  50 . These components communicate with each other and other components of the controller  41  through the interface bus  56 . The same components communicate with the application interface  73 , which in turn communicates with the USB engine  72 , the serial interface engine (SIE)  71  and the end point  0  block  74 . 
   In  FIG. 7 , the descriptor RAM/ROM  78  is shown coupled to the end point  0  block  74  and the latter is further shown coupled to the task file  79 . The application interface  73  is shown to be coupled further to the USB engine  72  and to the bus  56 . The USB engine  72  is shown coupled to the SIE  71  and the SIE  71  is further coupled to the application interface  73  and to the transceiver  70 . The transceiver  70  is shown coupled to the interface bus  44 . 
   A computer communicates with the USB module  52  through two differential data lines, which serve as input to the USB module  52  through the USB interface bus  44  in a serial format. That is, the transceiver  70  is responsive to two data lines, carrying data in serial format, through the USB interface bus  44 . The transceiver  70  converts the differential serial data into a digital serial signal. Subsequently, the SIE  71  converts the serial signals into parallel signals. The SIE  71  performs other functions such as Cyclic Redundancy Checking (CRC) and monitors the data to detect End of Packet (EOP) and Start of Packet (SOP) among other things. The USB engine  72  maintains track of data transfer from SOP to EOP. On SOP, the engine  72  checks the validity of the address and end point and initiates appropriate data transfer as determined by the end point. 
   The application interface  73  provides the appropriate mechanism to interface with the microcontroller  75 . When data is received from a host such as a computer or when the host needs data, the application interface  73  sends an interrupt to the microcontroller  75 . As part of the interrupt routine the microcontroller  75  writes data into the data buffer  76  or reads data from the data buffer  76 . 
   The host, such as a computer, identifies the device parameters from the descriptor RAM/ROM  78  through the end point  0  block  74 , otherwise known as the control pipe. The device parameters include information about Lexar Media Inc., vendor description, configuration, etc. In addition, as part of the descriptor RAM/ROM  78 , the host determines what other end points exist. For the purposes of mass storage, as is the case for an embodiment of the present invention, there are two other end points, referred to as end points  2  and  3  or alternatively as bulk-in and bulk-out for reading and writing data. However, for applications involving real-time transfer of data, such as for modems or when music is being transferred, additional end points that establish isochronous pipe become necessary. 
   When the host is reading data the relevant USB command to be executed is the bulk-in and when the host is writing data the appropriate USB command is bulk-out. For example, in the USB module  52 , the bulk-in command initiates reading 64 bytes of data. When the host asks its driver for reading additional data, the driver sends the control commands through the end point  0  block  74 . The application interface  73  decodes the commands and writes them to the USB task file  79 . Included within the command are the number of bytes and the address of the location where the command is written such as the head, cylinder, sector, etc. 
   Subsequently, the application interface  73  sends an interrupt to the microcontroller  75  prompting the latter to read the USB task file  79 . The microcontroller  75  decodes the commands and processes them and, if necessary, transfers data from the FLASH memory chips  48  to the data buffer  76  wherein the data is being stored temporarily. Then the driver of the host sends the “IN” command, thereupon 64 bytes of data are transferred to the driver&#39;s data buffer through the bulk-in pipe. Once the data has been received successfully by the host USB engine, the latter acknowledges its receipt by sending an acknowledge command (ACK) to the USB engine  72  of the card  30 . The driver may ask for more data in which case another packet of 64 bytes of data is transferred to the driver&#39;s data buffer. This process continues until all the data in the data buffer  76  has been transferred to the driver. The capacity of the data buffer  76  is typically 512 bytes. In the event the data has not been successfully transferred from the data buffer  76  to the host USB engine, when the IN command arrives the host USB engine sends a not acknowledge command (NAK) back to the USB engine  72  and the host USB engine resends the previous IN command. Subsequently the application interface  73  resets the data buffer pointer to point to the previous data packet and retransmits the previous packet of 64 data bytes. 
   The way transmission errors are detected is through the CRC mechanism which is embedded into the data as the latter is being serialized at SIE  71  prior to being transmitted to the host. Once in the host, the data is deserialized and if the CRC mechanism indicates that the data is fine, the host acknowledges the data and sends another IN command in order to receive an additional 64 bytes of data. However, if the host does not send any acknowledgement, then there is likely to be some problem with the transmission lines such as the lines being too noisy. But there could not have been any problem with the data itself or the data buffer  76 , since in such cases different types of error messages would have been generated. 
   The pointers in the data buffer  76  are updated as the data is being read by the host. In the event there is no acknowledgement form the host, the latter asks for rewinding of the pointers and the pointers go back 64 bytes. On the other hand, if the microcontroller  75  cannot read the data, then an error message is generated by the latter, labeled STALL. The error message STALL is a protocol indicating that the bulk-in pipe is stalled. The SIE  71  subsequently sends the STALL command to the host. Once the STALL command has been received, the host realizes that a pipe has been stalled and reads the status of the pipe. The host then attempts to clear the stalled pipe by sending clear-stall command so that more data can be read through that pipe. 
   In a similar vein, when attempting to write data to the data buffer  76 , the host first sends a write control command to the USB task file  79  through the end point  0  block  74 . The host subsequently sends OUT commands through the bulk-out pipe. The application interface  73  responds to the OUT command by sending back the command NAK until it is ready to accept the data. Once received, the data is stored in the data buffer  76  until a whole sector is accumulated therein and is subsequently transferred to the FLASH memory. 
   In the standard defined by USB 1.1, the allowable maximum bulk data size is defined as 64 bytes. In the USB 2.0 standard, the maximum bulk data size is 512 bytes. Thus, all of the bulk transfers are 512 bytes. Consequently, all of the buffer pointer adjustments due to errors in transmission are also 512 bytes. 
   Through the USB module  52 , it is also determined whether the device to which the card  30  is connected is a slow or a fast device. An example of a slow device is a mouse or a keyboard, whereas the card  30 , according to an embodiment of the present invention as shown in  FIG. 4 , is a fast device. For slow devices the signals are not transmitted as quickly as they are transmitted when fast devices such as the card  30  or a hard disk is connected to the USB module  52 . 
   An advantage of the present invention, as depicted in  FIG. 7 , is that the USB engine  72  communicates with the host using two different modes. One mode is the original USB mode called Advanced Technology Attachment (ATA) mode and the other is the default mode known as the bulk-only transport mass storage class mode. In the ATA mode, a separate driver associated with the host is needed, such as in Windows 98 operating system for PC&#39;s and in the bulk-only mass storage mode no separate driver is needed such as in Windows 2000 where a driver is already built into the operating system. When the card  30  is connected to a host having an operating system that supports bulk-only mass storage devices, then no driver will be required. However, when the card  30  is connected to a host having an operating system that does not support bulk-only mass storage class, such as Windows 98 operating system, then the driver will be invoked automatically. Once invoked, the driver issues a vendor-unique command to the card  30  in order to change its mode from bulk-only mass storage mode to the ATA mode so that all the subsequent communications between the driver and the card  30  will be in the ATA mode. The card  30  can communicate with both USB modes with the same USB engine  72  without requiring any upgrading. 
   While in the embodiment of the figures shown herein, the USB mass storage class bulk-only transport is implemented, it should be apparent to those skilled in the art that other USB mass storage class protocols, such as control/bulk/interrupt (CBI) transport could be implemented without departing from the scope and spirit of the present invention. 
   The card  30  may be used with different interface devices in a variety of configurations such as USB mode, PCMCIA mode, CF mode and ATA mode. To elaborate, consider  FIG. 8(   a ) wherein controller  41  is shown. Controller  41  comprises the PC/CF host module  50 , the FLASH interface module  54 , and the USB module  52 , all of which communicate with each other through the interface bus  56 . Moreover, the interface bus  94 , shown in  FIG. 8(   a ), is shared between the PC/CF module  50  and the USB module  52 . Interface bus  94  enables the card  30  to communicate with external devices in a variety of configurations such as USB mode, PCMCIA mode and ATA mode as described in a U.S. patent application entitled “IMPROVED COMPACT FLASH MEMORY CARD AND INTERFACE” having Ser. No. 09/034,173, filed on Mar. 2, 1998, the inventor of which are Petro Estakhri and Mahmud Assar, the disclosure of which is incorporated herein by reference as though set forth in full. 
   Since there is no requirement for having a second USB connector, sharing the same interface bus between the PC/CF module and a USB module would reduce the cost of manufacturing the card  30 . Also, the USB connectors will not directly fit into the PC/CF card. Thus, if a separate USB connector is employed, it would have to be a custom-made connector meeting the physical requirements of the PC/CF card and having an adaptor for converting the custom connector to a standard USB connector. 
   Another advantage of the present invention is that some logic that is common to both the PC/CF host module  50  in  FIG. 6  and the USB module  52  in  FIG. 7  may be combined as shown in  FIG. 8(   b ). In block  70 , referred to as the common logic block, are assembled the microcontroller  72 , the data buffer  74 , the task file  76  and the CIS RAM/ROM  78 . The components in the common logic block  70  in conjunction with the PC/CF host module  90  in  FIG. 8(   b ) function in exactly the same way as the PC/CF host module  50  in  FIG. 6 . Similarly, the components in common logic block  70  with the USB module  92  in  FIG. 8(   b ) function in exactly the same way as the USB module  52  in  FIG. 7 . Therefore an advantage is gained by not repeating the same logic in the two modules  90  and  92  in  FIG. 8(   b ). The reason common logic block  70  can be shared between the said modules is that at any one time either the PC/CF host module  90  or the USB module  92  is communicating with the card  30 . The card  30  communicates either with the PC/CF host module  90  through the interface bus  42  or with the USB module  92  through the USB interface bus  44  at any one time. Accordingly, data is read from one host first and then transferred to the other host. 
   Another advantage in employing the card  30  is in overcoming the limitation of the prior art systems incorporating a card reader mechanism. For such systems when the card reader is connected to the computer an icon appears on the computer screen indicating that a removable disk is connected to the computer, as shown in  FIG. 2(   b ). However, the card reader may not hold any card, thereby displaying a misleading icon on the screen. Employing the card  30 , however, does not result in any misleading icon as shown in  FIGS. 9(   a ) and  9 ( b ). In  FIG. 9(   a ) the card  30  has not been connected to the computer yet and hence there is no icon on the screen representing the removable disk F. Only when the card  30  is inserted into the computer does the icon  80  in  FIG. 9(   b ) is displayed indicating that the card  30  has been connected. In addition, the prior art systems employing the card reader, as shown in  FIG. 2(   a ), are significantly more expensive than the card  30  employed in the present invention. This is mainly due to the fact that all the logic associated with the USB circuitry has to reside on the card reader whereas for the card  30  all the USB logic is integrated into the controller  41  so that the remaining components and cables in the card  30  do not include any devices with USB logic. 
   Although the present invention has been described in terms of specific embodiments it is anticipated that alterations and modifications thereof will no doubt become apparent to those skilled in the art. It is therefore intended that the following claims be interpreted as covering all such alterations and modification as fall within the true spirit and scope of the invention.