System and method for preventing damage to media files within a digital camera device
Claim Score by NHIP
Abstract
A system and method for preventing damage to media files within a digital camera comprise a power manager for detecting power failures, an interrupt handler for responsively incrementing a counter device and a removable memory driver for performing memory access operations, evaluating the counter device to determine whether a power failure has occurred during the memory access operation and for repeating the memory access operation whenever a power failure has occurred during the memory access operation.

Term
Term ended
Expired 24 September 2016, 10 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
32 claims: 7 independent, 25 dependent
- 1A system for preventing damage to media files within a digital camera, comprising:a power manager for detecting a power failure in said digital camera;an interrupt handler for responsively incrementing a powerfail counter for incrementally recording the number of instances of power failure following said power failure;and a memory driver for performing a memory access operation and subsequently evaluating said powerfail counter to determine whether said power failure occurred during said memory access operation;said memory driver repeating said memory access operation whenever said memory driver determines that said power failure occurred during said memory access operation.
- 6Broadest claimClaim Score 77, broad(NHIP)A method for preventing damage to media files within a digital camera, comprising the steps of:detecting a power failure within said digital camera;incrementing a powerfail counter for incrementally recording the number of instances of power failure in response to said power failure;evaluating said powerfail counter before and after performing a memory access operation to determine whether said power failure occurred during said memory access operation;and repeating said memory access operation whenever said evaluating step determines that said power failure occurred during said memory access operation.
- 11A computer-readable medium comprising program instructions for preventing damage to media files within a digital camera by performing the steps of:detecting a power failure within said digital camera;incrementing a powerfail counter for incrementally recording the number of instances of power failure in response to said power failure;evaluating said powerfail counter before and after performing a memory access operation to determine whether said power failure occurred during said memory access operation;and repeating said memory access operation whenever said evaluating step determines that said power failure occurred during said memory access operation.
- 16A system for preventing damage to media files within a digital camera, comprising:means for detecting a power failure within said digital camera;means for incrementing a powerfail counter for incrementally recording instances of power failure in response to said power failure;means for evaluating said powerfail counter before and after performing a memory access operation to determine whether said power failure occurred during said memory access operation;and means for repeating said memory access operation whenever said means for evaluating determines that said power failure occurred during said memory access operation.
- 21A computer system for preventing damage to media files within a digital image capture device, comprising:a power supply connected to a main battery and a backup battery in the digital image capture device;a sensor for detecting a power loss in the main battery;an interrupt handler for responsively incrementing a powerfail counter for incrementally recording the number of instances of power loss following the detected power loss;and a processor coupled to the sensor for performing memory access operations, responsive to determining that the sensor detected a power loss during a memory access operation, the processor configured to repeat the memory access operation using power from the backup battery.
- 25A computer method of preventing damage to media files within a digital image capture device, the method comprising:detecting a power loss in a main battery of a power supply during a memory access operation to a media file, wherein the power supply is connected to the main battery and a backup battery in the digital image capture device;responsively incrementing a powerfail counter for incrementally recording the number of instances of power loss following the detected power loss;and responsive to the detected power loss during the memory access operation, repeating the memory access operation to the media file using power from the backup battery by the computer processor.
- 29A computer- readable medium having stored thereon instructions which, when executed by a processor in a system for preventing damage to media files within a digital image capture device, cause the processor to perform the operations of:detecting a power loss in a main battery of a power supply during a memory access operation to a media file, wherein the power supply is connected to the main battery and a backup battery in the digital image capture device;responsively incrementing a powerfail counter for incrementally recording the number of instances of power loss following the detected power loss;and responsive to the detected power loss during the memory access operation, repeating the memory access operation to the media file using power from the backup battery.
Independent claims7
59 paragraphs in 5 sections, as filed
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of application Ser. No. 08/716,773 filed Sep. 24, 1996 entitled “System And Method For Preventing Damage To Media Files Within A Digital Camera Device”; now U.S. Pat. No. 5,935,259. This application is hereby incorporated by reference. This application also relates to co-pending U.S. patent application Ser. No. 08/666,241, entitled “System And Method For Using A Unified Memory Architecture To Implement A Digital Camera Device,” filed on Jun. 20, 1996; and also to U.S. Pat. No. 5,790,878, entitled “System And Method For Recovering From A Power Failure Within A Digital Camera Device,” issued on Aug. 4, 1998, both of which are hereby incorporated by reference.
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to digital cameras and more particularly to a system and method for preventing power failure damage to media files within a digital camera device.
2. Description of the Background Art
Modern photographic technology presently includes a variety of digital camera devices which capture image data by electronically scanning selected target objects. Digital camera devices often process and compress the captured image data before storing the processed image data into internal or external memory devices. These memory devices typically include various types of nonvolatile memory which are accessed in read/write operations that store and access captured image data.
Protecting the captured image data during the memory access operations is an important consideration of both camera manufacturers and camera users. Camera designers must therefore anticipate the occurrence of any events which might endanger the integrity of the captured image data.
A power failure during a memory read/write operation within a digital camera device is one example of an event which might seriously jeopardize image data. For example, the digital camera may be accessing a file, rewriting a file directory or rewriting a file allocation table at the time a power failure occurs. The intervening power failure may prevent the successful completion of the memory access operation and thus damage integrity of the image data.
Further, a power failure may interrupt various camera memory functions which typically resume their respective tasks whenever power is restored to the digital camera. The interrupted functions, however, would be unaware that a power failure had intervened. The interrupted memory functions would thus be unaware of the hardware reset which results from reapplying power after the power failure. This confusion between the system software and hardware would potentially endanger camera operations. For the foregoing reasons, an improved system and method is needed for preventing damage to media files within a digital camera device according to the present invention.
SUMMARY OF THE INVENTION
In accordance with the present invention, a system and method are disclosed for preventing damage to media files within a digital camera device. The preferred embodiment of the present invention includes a central processing unit, a powerfail counter, a removable memory driver, a first-level interrupt handler, various interrupt service routines, a power manager and a voltage sensor.
In the preferred embodiment, the first-level interrupt handler initially sets the powerfail counter to a value of zero. Various interrupt service routines (each corresponding to a specific camera function or operation) may register themselves with the first-level interrupt handler (which coordinates all interrupts within the digital camera) to receive notification of an intervening power failure. Alternately, each interrupt service routine may receive a unique interrupt directly, via some form of vector interrupt mechanism or by using a hard-coding methodology.
The power manager monitors the voltage sensor to detect a power failure within the digital camera. After detecting a power failure in which the camera operating power is less than a specified threshold value, the power manager generates a powerfail interrupt. The central processing unit responsively performs a powerfail powerdown sequence to preserve image data contained within the digital camera at the time of the intervening power failure. The power manager removes operating power from all non-critical subsystems and switches the critical subsystems to a backup power supply. The central processing unit and the camera's volatile memory are thus maintained in a static low-power mode, with all states preserved intact.
After the power failure is remedied, the central processing unit performs a restart sequence to preserve any stored image data and to return the digital camera to a normal operational mode. In the preferred embodiment, the first-level interrupt handler increments the powerfail counter to record the intervening power failure. The first level interrupt handler then notifies the registered interrupt service routines about the power failure restart and corresponding hardware reset.
In alternate embodiments, the interrupt service routines may operate in cooperation with various other system routines. These cooperating routines thus may form various hierarchical networks which operate in synchronous or asynchronous modes. For example, a particular interrupt service routine may function in response to a device driver. The device driver, in turn, may function in response to an application program. In such cases, the interrupt service routines typically propagate their received power failure notification to any related routines in the network which require notification of the power failure restart.
In the normal operational mode, the digital camera periodically performs a memory access operation which requires successful completion. To ensure that a memory access operation is completed without an intervening power failure, the removable memory driver preferably reads the powerfail counter prior to performing a memory access operation to obtain a pre-operation value. After performing the memory access operation, the removable memory driver again reads the powerfail counter to obtain a post-operation value. The removable memory driver then compares the pre-operation value and the post-operation value, and repeats the memory access operation if the pre-operation value and the post-operation value are different. The present invention thus preserves the integrity of captured image data and effectively prevents damage to media files in the digital camera device.
BRIEF DESCRIPTION OF THE DRAWINGS
<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram of a digital camera according to the present invention;
<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram of the preferred embodiment for the imaging device of <figref idref="DRAWINGS">FIG. 1</figref>;
<figref idref="DRAWINGS">FIG. 3</figref> is a block diagram of the preferred embodiment for the computer of <figref idref="DRAWINGS">FIG. 1</figref>;
<figref idref="DRAWINGS">FIG. 4</figref> is a block diagram showing the preferred embodiment of the Read-Only Memory of <figref idref="DRAWINGS">FIG. 3</figref>;
<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram showing the preferred embodiment of the Dynamic Random-Access Memory of <figref idref="DRAWINGS">FIG. 3</figref>;
<figref idref="DRAWINGS">FIG. 6</figref> is a flowchart of preferred general method steps for recovering from a power failure according to the present invention;
<figref idref="DRAWINGS">FIG. 7</figref> is a flowchart of preferred method steps for performing a powerfail powerdown sequence according to the present invention;
<figref idref="DRAWINGS">FIG. 8</figref> is a flowchart of preferred method steps for performing a resume/restart sequence according to the present invention; and
<figref idref="DRAWINGS">FIG. 9</figref> is a flowchart of preferred method steps for preventing power failure damage to memory files according to the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
The present invention discloses a system and method for preventing damage to media files within a digital camera device and comprises a power manager for detecting power failures, an interrupt handler for responsively incrementing a counter device and a removable memory driver for performing memory access operations, evaluating the counter device to determine whether a power failure has occurred during the memory access operation and for repeating the memory access operation whenever a power failure has occurred during the memory access operation.
Referring now to <figref idref="DRAWINGS">FIG. 1</figref>, a block diagram of a camera <b>110</b> is shown according to the present invention. Camera <b>110</b> preferably comprises an imaging device <b>114</b>, a system bus <b>116</b> and a computer <b>118</b>. Imaging device <b>114</b> is optically coupled to an object <b>112</b> and electrically coupled via system bus <b>116</b> to computer <b>118</b>. Once a photographer has focused imaging device <b>114</b> on object <b>112</b> and, using a capture button or some other means, instructed camera <b>110</b> to capture an image of object <b>112</b>, computer <b>118</b> commands imaging device <b>114</b> via system bus <b>116</b> to capture raw image data representing object <b>112</b>. The captured raw image data is transferred over system bus <b>116</b> to computer <b>118</b> which performs various image processing functions on the image data before storing it in its internal memory. System bus <b>116</b> also passes various status and control signals between imaging device <b>114</b> and computer <b>118</b>.
Referring now to <figref idref="DRAWINGS">FIG. 2</figref>, a block diagram of the preferred embodiment of imaging device <b>114</b> is shown. Imaging device <b>114</b> preferably comprises a lens <b>220</b> having an iris, a filter <b>222</b>, an image sensor <b>224</b>, a timing generator <b>226</b>, an analog signal processor (ASP) <b>228</b>, an analog-to-digital (A/D) converter <b>230</b>, an interface <b>232</b>, and one or more motors <b>234</b>.
U.S. Pat. No. 5,496,106, entitled “A System and Method For Generating a Contrast Overlay as a Focus Assist for an Imaging Device,” issued on Mar. 5, 1966, is incorporated herein by reference, and provides a detailed discussion of the preferred elements of imaging device <b>114</b>. Briefly, imaging device <b>114</b> captures an image of object <b>112</b> via reflected light impacting image sensor <b>224</b> along optical path <b>236</b>. Image sensor <b>224</b> responsively generates a set of raw image data representing the captured image <b>112</b>. The raw image data is then routed through ASP <b>228</b>, A/D converter <b>230</b> and interface <b>232</b>. Interface <b>232</b> has outputs for controlling ASP <b>228</b>, motors <b>234</b> and timing generator <b>226</b>. From interface <b>232</b>, the raw image data passes over system bus <b>116</b> to computer <b>118</b>.
Referring now to <figref idref="DRAWINGS">FIG. 3</figref>, a block diagram of the preferred embodiment for computer <b>118</b> is shown. System bus <b>116</b> provides connection paths between imaging device <b>114</b>, power manager <b>342</b>, central processing unit (CPU) <b>344</b>, dynamic random-access memory (DRAM) <b>346</b>, input/output interface (I/O) <b>348</b>, read-only memory (ROM) <b>350</b>, and connector <b>352</b>. In the preferred embodiment, removable memory <b>354</b> may also connect to system bus <b>116</b> via connector <b>352</b>.
Power manager <b>342</b> communicates via line <b>366</b> with power supply <b>356</b> and coordinates power management operations for camera <b>110</b> as discussed below in conjunction with <figref idref="DRAWINGS">FIGS. 6-9</figref>. CPU <b>344</b> typically includes a conventional processor device for controlling the operation of camera <b>110</b>. In the preferred embodiment, CPU <b>344</b> is capable of concurrently running multiple software routines to control the various processes of camera <b>110</b> within a multi-threading environment. DRAM <b>346</b> is a contiguous block of dynamic memory which may be selectively allocated to various storage functions by computer <b>118</b>. DRAM <b>346</b> includes a powerfail counter <b>347</b> which is incremented each time a power failure occurs in power supply <b>356</b>. DRAM <b>346</b> and powerfail counter <b>347</b> are further discussed below in conjunction with <figref idref="DRAWINGS">FIGS. 5-9</figref>.
I/O <b>348</b> is an interface device allowing communications to and from computer <b>118</b>. For example, I/O <b>348</b> permits an external host computer (not shown) to connect to and communicate with computer <b>118</b>. I/O <b>348</b> also permits a camera <b>110</b> user to communicate with camera <b>110</b> via a set of externally-mounted user controls and via an external LCD display panel. ROM <b>350</b> typically comprises a conventional nonvolatile read-only memory which stores a set of computer-readable program instructions to control the operation of camera <b>110</b>. ROM <b>350</b> is further discussed below in conjunction with FIG. <b>4</b>. Removable memory <b>354</b> serves as an additional image data storage area and is preferably a non-volatile device, readily removable and replaceable by a camera <b>110</b> user via connector <b>352</b>. Thus, a user who possesses several removable memories <b>354</b> may replace a full removable memory <b>354</b> with an empty removable memory <b>354</b> to effectively expand the picture-taking capacity of camera <b>110</b>. In the preferred embodiment of the present invention, removable memory <b>354</b> is typically implemented using a flash disk.
Power supply <b>356</b> supplies operating power to the various components of camera <b>110</b>. In the preferred embodiment, power supply <b>356</b> provides operating power to a main power bus <b>362</b> and also to a secondary power bus <b>364</b>. The main power bus <b>362</b> provides power to imaging device <b>114</b>, I/O <b>348</b>, ROM <b>350</b> and removable memory <b>354</b>. The secondary power bus <b>364</b> provides power to power manager <b>342</b>, CPU <b>344</b> and DRAM <b>346</b>.
Power supply <b>356</b> is connected to main batteries <b>358</b> and also to backup batteries <b>360</b>. In the preferred embodiment, a camera <b>110</b> user may also connect power supply <b>356</b> to an external power source. During normal operation of power supply <b>356</b>, the main batteries <b>358</b> provide operating power to power supply <b>356</b> which then provides the operating power to camera <b>110</b> via both main power bus <b>362</b> and secondary power bus <b>364</b>.
During a power failure mode in which the main batteries <b>358</b> have failed (when their output voltage has fallen below a minimum operational voltage level) the backup batteries <b>360</b> provide operating power to power supply <b>356</b> which then provides the operating power only to the secondary power bus <b>364</b> of camera <b>110</b>. Selected components of camera <b>110</b> (including DRAM <b>346</b>) are thus protected against a power failure in the main batteries <b>358</b>.
Power supply <b>356</b> preferably also includes a flywheel capacitor connected to the power line coming from the main batteries <b>358</b>. If the main batteries <b>358</b> suddenly fail, the flywheel capacitor temporarily maintains the voltage from the main batteries <b>358</b> at a sufficient level, so that computer <b>118</b> can protect any image data currently being processed by camera <b>110</b> before shutdown occurs.
Voltage sensor <b>359</b> detects the voltage supplied by main batteries <b>358</b> and responsively provides the detected voltage reading to power manager <b>342</b>. The operation of power manager <b>342</b>, power supply <b>356</b> and voltage sensor <b>359</b> are further discussed below in conjunction with <figref idref="DRAWINGS">FIGS. 6-8</figref>.
Referring now to <figref idref="DRAWINGS">FIG. 4</figref>, a memory map showing the preferred embodiment of read-only memory (ROM) <b>350</b> is shown. In the preferred embodiment, ROM <b>350</b> includes control application <b>400</b>, toolbox <b>402</b>, drivers <b>404</b>, kernel <b>406</b> and system configuration <b>408</b>. Control application <b>400</b> comprises program instructions for controlling and coordinating the various functions of camera <b>110</b>. Toolbox <b>402</b> contains selected function modules including memory manager <b>410</b> which is controlled by control application <b>400</b> and responsively allocates DRAM <b>346</b> storage locations depending upon the needs of computer <b>118</b> and the sets of received image data.
Drivers <b>404</b> control various components of camera <b>110</b> and include removable memory driver <b>411</b>, a first level interrupt handler (FLIH) <b>412</b> and various interrupt service routines (ISRs) <b>414</b>. In the preferred embodiment, removable memory driver <b>411</b> is a routine which controls and coordinates the operation of removable memory <b>354</b>. Removable memory driver <b>411</b> is further discussed below in conjunction with FIG. <b>9</b>. FLIH <b>412</b> is preferably a software routine which coordinates all interrupts within camera <b>110</b>. FLIH <b>412</b> typically handles ordinary non-critical interrupts and also handles non-maskable critical interrupts such as a power failure in main batteries <b>358</b>. FLIH <b>412</b> preferably communicates with the various ISRs <b>414</b> which are each designed to handle a specific corresponding interrupt within camera <b>110</b>. FLIH <b>412</b> notifies the appropriate ISRs <b>414</b> via a “signal” when the interrupts occur. A signal is a mechanism used by multi-tasking operating systems for interprocess communications and synchronization.
For example, a camera <b>110</b> user may request zoom motor <b>234</b> to perform a zoom operation using lens <b>220</b>. When the requested zoom process is complete, an interrupt is generated to indicate that zoom motor <b>234</b> and lens <b>220</b> have reached their destination positions. The particular ISR <b>414</b> which corresponds to the foregoing zoom process then responsively handles the generated interrupt and provides a status update to higher-level routines, if necessary. In preferred embodiment, kernel <b>406</b> provides a range of basic underlying services for the camera <b>110</b> operating system. System configuration <b>408</b> performs initial start-up routines for camera <b>110</b>, including the boot routine and initial system diagnostics.
Referring now to <figref idref="DRAWINGS">FIG. 5</figref>, a memory map showing the preferred embodiment of dynamic random-access memory (DRAM) <b>346</b> is shown. In the preferred embodiment, DRAM <b>346</b> includes working memory <b>530</b>, RAM disk <b>532</b> and system area <b>534</b>. Working memory <b>530</b> includes a powerfail counter <b>347</b>, frame buffers <b>536</b> (for initially storing sets of raw image data received from imaging device <b>114</b>), image processing (IP) buffers <b>538</b> (for temporarily storing image data during the image processing and compression <b>420</b> process), and Pfail CountL <b>540</b>. In the preferred embodiment, power fail counter <b>347</b> stores a value which first-level interrupt handler <b>412</b> preferably increments each time voltage sensor <b>359</b> detects a power failure in main batteries <b>358</b>. Pfail CountL <b>540</b> may selectively be used to store a local copy of the current value of powerfail counter <b>347</b>, according to the present invention. Powerfail counter <b>347</b> and Pfail CountL <b>540</b> are further discussed below in conjunction with <figref idref="DRAWINGS">FIGS. 6-9</figref>. Working memory <b>530</b> may also contain various stacks, data structures and variables used by CPU <b>344</b> while executing the software routines used within computer <b>118</b>.
RAM disk <b>532</b> is a memory area used for storing raw and compressed image data and typically is organized in a “sectored” format similar to that of conventional hard disk drives. In the preferred embodiment, RAM disk <b>532</b> uses a well-known and standardized file system to permit external host computer systems, via I/O <b>348</b>, to readily recognize and access the data stored on RAM disk <b>532</b>. System area <b>534</b> typically stores data regarding system errors (for example, why a system shutdown occurred) for use by CPU <b>344</b> upon a restart of computer <b>118</b>.
Referring now to <figref idref="DRAWINGS">FIG. 6</figref>, a flowchart of preferred general method steps for recovering from a power failure is shown. Initially, a user applies <b>640</b> power to camera <b>110</b> by installing main batteries <b>358</b> and backup batteries <b>360</b>, and then activating an externally-mounted power on-off switch. First-level interrupt handler (FLIH) <b>412</b> then sets <b>642</b> powerfail counter <b>347</b> to a value of zero. Next, various interrupt service routines <b>414</b> register <b>644</b> with the first level interrupt handler <b>412</b> to request notification in the event of a power failure in main batteries <b>358</b>.
CPU <b>344</b> then runs <b>646</b> control application <b>400</b> to operate camera <b>110</b> in normal operation mode which captures, processes, compresses and stores sequential sets of image data. In normal operation mode, CPU <b>344</b> periodically requests the execution of various critical processes. In the preferred embodiment, CPU <b>344</b> repeatedly checks powerfail counter <b>347</b> to determine whether a critical process has been interrupted by an intervening power failure. This process of using powerfail counter <b>347</b> to ensure the successful execution of critical processes is further discussed below in conjunction with FIG. <b>9</b>.
Next, voltage sensor <b>359</b> senses <b>648</b> the voltage level of main batteries <b>358</b> and provides power manager <b>342</b> with the sensed voltage level. Power manager <b>342</b> then determines <b>650</b> whether the voltage level of main batteries <b>358</b> is greater than a predetermined threshold voltage level. The threshold value is typically selected to be incrementally higher that the minimum operating voltage (to permit orderly shutdown of the camera <b>110</b> processes). If the voltage of main batteries <b>358</b> is greater than the selected threshold value, then the <figref idref="DRAWINGS">FIG. 6</figref> process repeats the steps <b>646</b>, <b>648</b> and <b>650</b>.
However, if the voltage of main batteries <b>358</b> is not greater <b>650</b> than the predetermined threshold value, then power manager <b>342</b> generates <b>652</b> a powerfail interrupt. In the preferred embodiment, the powerfail interrupt may be disabled in rare cases in which a sequence of CPU <b>344</b> instructions must never be interrupted by a power failure. Any disabling of the powerfail interrupt, however, is restricted to a very short period of time. Next, CPU <b>344</b> receives the generated powerfail interrupt and responsively performs <b>654</b> a powerfail powerdown sequence to protect the image data currently within camera <b>110</b>. The powerfail powerdown sequence is further discussed below in conjunction with FIG. <b>7</b>.
The camera <b>110</b> user may then replace <b>655</b> the main batteries <b>358</b> and activate the camera <b>110</b> power on/off switch. CPU <b>344</b> then performs <b>656</b> a restart/resume sequence to bring camera <b>110</b> back to normal operating mode while also preserving any existing image data. FLIH <b>412</b> then increments <b>658</b> powerfail counter <b>347</b> to indicate the occurrence of a power failure in main batteries <b>358</b>. Alternately, powerfail counter <b>347</b> may be a hardware register which is incremented in power manager <b>342</b>.
The first level interrupt handler <b>412</b> then notifies <b>660</b> any registered interrupt service routines <b>414</b> about the power failure restart so that the interrupt service routines <b>414</b> are aware that their corresponding hardware components have been reset by the power failure and the subsequent camera <b>110</b> powerup. The power failure notification allows the registered interrupt service routines <b>414</b> to run depending upon their relative task priority. Typically, this notification is accomplished through the use of a signal or semaphore which wakes up the interrupt service routine.
In alternate embodiments, the interrupt service routines may operate in cooperation with various other system routines. These cooperating routines thus may form various hierarchical networks which operate in synchronous or asynchronous modes. For example, a particular interrupt service routine may function in response to a device driver. The device driver, in turn, may function in response to an application program. In such cases, the interrupt service routines typically propagate their received power failure notification to any related routines in the network which require notification of the power failure restart. Finally, the <figref idref="DRAWINGS">FIG. 6</figref> process then returns to step <b>646</b> and CPU <b>344</b> runs control application <b>400</b> to operate camera <b>110</b> in normal operation mode, as discussed above.
Referring now to <figref idref="DRAWINGS">FIG. 7</figref>, a flowchart of preferred method steps for performing a powerfail powerdown sequence according to the present invention is shown. Initially, power manager <b>342</b> sets <b>710</b> a PFAIL bit which records the occurrence of a power failure so that computer <b>118</b> software routines may subsequently access this information when needed. Next, power manager <b>342</b> turns off <b>712</b> all non-critical subsystems. Power manager <b>342</b> then signals <b>714</b> CPU <b>344</b> with an interrupt and CPU <b>344</b> responsively stops <b>716</b> the current process.
Next, CPU <b>344</b> sets <b>718</b> the RESUME bit in power manager <b>342</b> to indicate that CPU <b>344</b> should not be reset in a subsequent powerup of camera <b>110</b>. CPU <b>344</b> then forces <b>720</b> a full refresh of DRAM <b>346</b> and then forces <b>722</b> DRAM <b>346</b> into a self-refresh mode. Next, CPU <b>344</b> signals <b>724</b> power manager <b>342</b> to shut down and then CPU <b>344</b> halts <b>726</b> operation. After halting, CPU <b>344</b> still receives operating power from backup batteries <b>360</b> and is essentially stopped “in place.” In this static mode, system bus <b>116</b> is in a tri-state condition and the CPU <b>344</b> clock is stopped. All CPU <b>344</b> states, however, are still intact (for example, the registers, program counter, cache and stack are preserved intact) and image data in DRAM <b>346</b> is also preserved intact. Next, power manager <b>342</b> removes <b>728</b> operating power from main power bus <b>362</b>. The <figref idref="DRAWINGS">FIG. 7</figref> powerfail powerdown sequence is then complete.
Referring now to <figref idref="DRAWINGS">FIG. 8</figref>, a flowchart of preferred method steps for performing a restart/resume sequence according to the present invention is shown. Initially, CPU <b>344</b> waits <b>828</b> for a “wake up” signal which is typically generated in response to the activation of a camera <b>110</b> power on-off switch. After the “wake up” signal is generated, power manager <b>342</b> determines <b>830</b> whether power supply <b>356</b> is generating enough operating power to start camera <b>110</b>. If sufficient operating power is present, power manager <b>342</b> starts <b>832</b> power supply <b>356</b> in normal mode with the main batteries <b>358</b> providing operating power to power supply <b>356</b> which then responsively provides the operating power to main power bus <b>362</b> and also to secondary power bus <b>364</b>. Next, power manager <b>342</b> determines <b>834</b> whether the generated operating power is maintaining a sufficient voltage level.
If operating power is sufficient in camera <b>110</b>, power manager <b>342</b> then determines <b>836</b> whether a RESUME bit has been set in power manager <b>342</b>. In the preferred embodiment, CPU <b>344</b> sets the RESUME bit in response to a power failure in order to indicate that CPU <b>344</b> should not be reset in a subsequent powerup of camera <b>110</b>. If the RESUME bit has been set, power manager <b>342</b> restarts <b>838</b> the CPU <b>344</b> which responsively resumes <b>840</b> normal operation of DRAM <b>346</b> and then resumes <b>842</b> the camera <b>110</b> process which was interrupted by the intervening power failure.
If the RESUME bit has not been set, then power manager <b>342</b> restarts <b>844</b> the CPU <b>344</b> and issues <b>846</b> a CPU <b>344</b> reset. CPU <b>344</b> then resumes <b>848</b> normal operation of DRAM <b>346</b> and boots <b>850</b> the computer <b>110</b> system using the system configuration <b>408</b> routine. Next, CPU <b>344</b> determines <b>852</b> whether a MSAVE bit has been set in power manager <b>342</b>. In the preferred embodiment, CPU <b>344</b> sets the MSAVE bit to specify that RAM disk <b>532</b> contains image data that should be saved upon restart of computer <b>118</b>. If the MSAVE bit has not been set, computer <b>118</b> formats <b>854</b> a new RAM disk <b>532</b>. CPU <b>344</b> then runs <b>858</b> control application <b>400</b> for normal operation of camera <b>110</b>. In step <b>852</b>, if the MSAVE bit has been set, then CPU <b>344</b> recovers and mounts <b>856</b> RAM disk <b>532</b>. CPU <b>344</b> then runs <b>858</b> control application <b>400</b> for normal operation of camera <b>110</b>. The restart/resume process of <figref idref="DRAWINGS">FIG. 8</figref> then ends.
Referring now to <figref idref="DRAWINGS">FIG. 9</figref>, a flowchart of preferred method steps for preventing power failure damage to the contents of removable memory <b>354</b> is shown. This <figref idref="DRAWINGS">FIG. 9</figref> process may also be applied to selected other camera <b>110</b> processes or operations whose successful completion would be seriously impaired by an intervening power failure.
Initially, removable memory driver <b>411</b> reads <b>956</b> the contents of powerfail counter <b>347</b> to obtain a current PFCount value. Next, removable memory driver <b>411</b> saves <b>958</b> a local copy of the current PFCount value into Pfail CountL <b>540</b> within working memory <b>530</b>. Then, removable memory driver <b>411</b> obtains and decodes <b>960</b> any existing requests to perform a function related to removable memory <b>411</b>. Next, removable memory driver <b>411</b> determines <b>962</b> whether the requested driver <b>411</b> function requires accessing removable memory <b>354</b> to perform a memory input/output function, such as a read/write operation.
If the requested memory function foes not require an access of removable memory <b>354</b>, then removable memory driver <b>411</b> performs <b>964</b> these non-read/write functions and the <figref idref="DRAWINGS">FIG. 9</figref> process ends. However, if the requested memory function involves an input/output operation to move information to or from removable memory <b>354</b>, then removable memory driver <b>411</b> performs <b>966</b> the read/write operation(s) as requested. These operations typically include the complementary steps of sending an input/output command and any related data to removable memory <b>354</b> and subsequently receiving a corresponding response from removable memory <b>354</b>.
After removable memory driver <b>411</b> has performed the requested read/write operation, then removable memory driver <b>411</b> reads <b>968</b> the current value in powerfail counter <b>347</b> to obtain a new current PFCount value. Next, removable memory driver <b>411</b> compares <b>970</b> the new current PFCount value (step <b>968</b>) and the previously-saved PFCountL <b>540</b> value (step <b>958</b>). Removable memory driver <b>411</b> determines <b>972</b> whether the new current PFCount value and the previously-saved PFCountL <b>540</b> value are different.
If the new current PFCount value and the previously-saved PFCountL value are not different, then the read/write operation to removable memory <b>354</b> was not interrupted by an intervening power failure and removable memory driver <b>411</b> has successfully performed the read/write function as requested. The <figref idref="DRAWINGS">FIG. 9</figref> process therefore ends. If, however, the new current PFCount value and the previously-saved PFCountL value are different (step <b>972</b>), then the read/write operation has been interrupted by an intervening power failure within camera <b>110</b>.
If a power failure has intervened, then removable memory driver <b>411</b> reads <b>974</b> the current contents of powerfail counter <b>347</b> to obtain a new current PFCount value and also saves <b>976</b> a local copy of the new current PFCount value into Pfail CountL <b>540</b> within working memory <b>530</b>. In other embodiments, removable memory driver <b>411</b> may alternatively store the new current PFCount value obtained in step <b>968</b> into Pfail CountL <b>540</b>, providing that the step <b>970</b> comparison process does not alter or destroy the step <b>968</b> PFCount value. Removable memory driver <b>411</b> then sets up <b>978</b> removable memory <b>354</b> for a retry of the requested read/write operation. For example, removable memory driver <b>411</b> may issue a reset command to removable memory <b>354</b> prior to a retry of the read/write operation. The <figref idref="DRAWINGS">FIG. 9</figref> process then loops back to step <b>966</b> to retry the read/write operation. Steps <b>966</b> through <b>978</b> preferably repeat until the new current PFCount value and the previously-saved PFCountL value (step <b>972</b>) are equal. The <figref idref="DRAWINGS">FIG. 9</figref> process may then terminate, because the requested read/write operation has been successfully completed without any intervening power failures.
The invention has been explained above with reference to a preferred embodiment. Other embodiments will be apparent to those skilled in the art in light of this disclosure. For example, the powerfail counter <b>347</b> of the present invention may be used to record occurrences within computer <b>118</b> other than the power failure discussed above in the preferred embodiment. Furthermore, the present invention may readily be applied to devices other than the removable memory <b>354</b> discussed in the preferred embodiment. Therefore, these and other variations upon the preferred embodiment are intended to be covered by the present invention, which is limited only by the appended claims.
Contents5
10 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US4323987A | Cites | United States of America | Applicant |
| US4658352A | Cites | United States of America | Applicant |
| US4763333A | Cites | United States of America | Applicant |
| US5079585A | Cites | United States of America | Applicant |
| US5283792A | Cites | United States of America | Applicant |
| US5475441A | Cites | United States of America | Applicant |
| US5477264A | Cites | United States of America | Applicant |
| US5493335A | Cites | United States of America | Applicant |
| US5664089A | Cites | United States of America | Applicant |
| US5790878A | Cites | United States of America | Applicant |
| US5935259A | Cites | United States of America | Applicant |
| US6126332A | Cites | United States of America | Search report |
3 members in 1 office
Priority claims10
| Document | Office | Kind | Date |
|---|---|---|---|
| 71677396 | United States of America | A | |
| 71677396 | United States of America | A | |
| 30186999 | United States of America | A | |
| 30186999 | United States of America | A | |
| 62267303 | United States of America | A | |
| 08716773 | – | – | – |
| 09301869 | – | – | – |
| US19960716773 | – | – | – |
| US19990301869 | – | – | – |
| US20030622673 | – | – | – |
Members3
| Document | Office | Kind | |
|---|---|---|---|
| US5935259A | United States of America | A | |
| US6263453B1 | United States of America | B1 | |
| USRE41014EThis record | United States of America | E |
45 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Receipt into PubsR1021 | R1021 | |
| Dispatch to FDCD1935 | D1935 | |
| Dispatch to FDCD1935 | D1935 | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Paralegal or electronic terminal disclaimer approvedP574 | P574 | |
| Paralegal TD Not acceptedP575 | P575 | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Terminal Disclaimer FiledDIST | DIST | |
| Terminal Disclaimer FiledDIST | DIST | |
| Response after Non-Final ActionA... | A... | |
| Mail Examiner Interview Summary (PTOL - 413)MEXIN | MEXIN | |
| Examiner Interview Summary Record (PTOL - 413)EXIN | EXIN | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Cleared by L&R (LARS)L128 | L128 | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Notice of Reissue Published in Official GazetteNRE. | NRE. | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Additional Application Filing FeesADDFLFEE | ADDFLFEE | |
| A statement by one or more inventors satisfying the requirement under 35 USC 115, Oath of the ApplicOATHDECL | OATHDECL | |
| The identification of one or more legal entities other than the inventor(s), each such legal entityASGMT | ASGMT | |
| Intentionally Referred by OIPE or L&RL127 | L127 | |
| Notice Mailed--Application Incomplete--Filing Date AssignedINCD | INCD | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Preliminary AmendmentA.PE | A.PE | |
| Initial Exam Team nnIEXX | IEXX |
5 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Fee paymentFPAY | FPAY | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Fee payment procedurePAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- RE041014
- Publication, DOCDB
- RE41014
- Publication, EPODOC
- USRE41014E
- Application
- 10622673
- Application, DOCDB
- 62267303
- Application, EPODOC
- US20030622673
Titles
- English
- System and method for preventing damage to media files within a digital camera device
Classification
- CPC, 7
- G06F1/30
- H04N1/00885
- H04N1/00899
- H04N1/2112
- H04N1/2137
- H04N1/2158
- H04N23/65
- IPC, 5
- G06F11 00
- G06F1 30
- H04N1 00
- H04N1 21
- H04N5 232
- USPC, 4
- 714022000
- 713340000
- 714014000
- 714024000