Non-volatile memory data integrity validation

The present disclosure relates to a replaceable printing component for use in a printing system including print mechanism configured to receive the replaceable printing component. The replaceable printing component includes an electrical storage device responsive to printing system control signals for selectively storing information received from the print mechanism, the electrical storage device includes a storage portion containing data associated with the replaceable printing component, and first and second validation fields configured to store error detection codes relatable to the data contained in the storage portion to determine whether the data is valid. Wherein the electrical storage device is configured, prior to a first transfer of data from the print mechanism to the storage portion, to receive and store in one of the first and second validation fields an error detection code related to the data currently contained in the storage portion, and the electrical storage device is configured to receive and store in the other of the first and second validation fields an error detection code related to the data that will be contained in the storage portion after the first data transfer.

BACKGROUND

The present disclosure relates to printing systems that make use of a replaceable printing component. More particularly, the present disclosure relates to replaceable printing components that include an electrical storage device for providing information to a print mechanism in the printing system.

Printers frequently make use of replaceable components in order to extend the life of the printer. For instance, ink-jet printers frequently make use of an ink-jet printhead mounted within a carriage that is moved back and forth across a print media, such as paper. As the printhead is moved across the print media, a control system activates the printhead to deposit or eject ink droplets onto the print media to form images and text. Ink is provided to the printhead by a supply of ink which is either carried by the carriage or mounted elsewhere on the print mechanism. Some printing components, such as ink containers and printheads, require periodic replacement. Ink containers are replaced when exhausted. Printheads are replaced at the end of printhead life.

As discussed in U.S. Pat. No. 5,699,091, entitled “Replaceable Part With Integral Memory For Usage, Calibration And Other Data,” assigned to the assignee of the present disclosure, it may be desirable to alter printer parameters concurrently with the replacement of printer components U.S. Pat. No. 5,699,091 discloses the use of a memory device, which contains parameters relating to the replaceable part. The installation of the replaceable part allows the printer to access the replaceable part parameters to ensure high print quality. By incorporating the memory device into the replaceable part and storing replaceable part parameters in the memory device within the replaceable component, the printing system can determine these parameters upon installation into the print mechanism. This automatic updating of printer parameters frees the user from having to update printer parameters each time a replaceable component is newly installed. Automatically updating printer parameters with replaceable component parameters ensures high print quality. In addition, this automatic parameter updating tends to ensure the printer is not inadvertently damaged due to improper operation, such as, operating after the supply of ink is exhausted or operation with the wrong or non-compatible printer components.

U.S. Pat. Nos. 6,267,463 and 6,264,301, assigned to the assignee of the present disclosure, disclose a system and method of reliably updating memory on replaceable printing components, and a method and apparatus for identifying parameters in a replaceable printing component. The complete disclosures of the above-identified patents are hereby incorporated by reference for all purposes.

The exchange of information between the printer and the replaceable printing component should be accomplished in a highly reliable manner. This exchange of information should not require the intervention of the user. Furthermore, it is important that the integrity of the information should be preserved. In the event that the information associated with the replaceable component is corrupted in some manner, the printer should be capable of identifying this data as corrupted. Furthermore, in the event of such corruption, the printing system should be configured to reject the component, so that the printer is not damaged. Finally, the printing system should have sufficient flexibility to accommodate improvements, as well as additional printer parameters necessary to support these improvements.

DETAILED DESCRIPTION

FIG. 1is a perspective view of an illustrative printing system10, shown with its cover removed. In this example, printing system10is an ink-jet printing system. Other types of printing systems, such as laser or thermal, also may include replaceable components and/or utilize disclosed methods.

In this example, ink-jet printing system10includes a print mechanism12having a plurality of replaceable printing components14installed therein. The printing components include printheads16for selectively depositing ink in response to control signals, and ink containers18for providing ink to each of the printheads. As indicated, each printhead may be fluidically connected to a corresponding ink containers18by a flexible conduit20.

Printheads16are mounted in a scanning carriage22, which is scanned past print media as the print media is stepped through a print zone. As the printheads are moved relative to the print media, ink is selectively ejected from orifices in the printheads16to form images and text.

One aspect of the present disclosure relates to a method and device configured for storing information on replaceable printing components14for updating operation parameters of print mechanism12. An electrical storage device38(seen inFIGS. 2A and 2B) may be associated with each of the replaceable printing components14. Electrical storage device38contains information related to the particular replaceable printer components14. Installation of a replaceable printing component14into print mechanism12allows information to be transferred between electrical storage device38and print mechanism12, ensuring high print quality and avoiding the installation of non-compatible replaceable printing components14. The information provided from replaceable printing components14to printing portion12also may prevent operation of printing system10in a manner which damages any component of the printing system, or which may reduce the print quality.

Although printing system10(shown inFIG. 1) makes use of ink containers18which are mounted off of scanning carriage22, the disclosed component and method are well suited for other types of printing system configurations. In one such configuration, replaceable ink containers18are mounted on scanning carriage22. Printhead16and ink container18also may be incorporated into an integrated printing cartridge that is mounted to scanning carriage22. Finally, printing system10may be used in a wide variety of applications such as facsimile machines, postal franking machines, copiers and large format type printing systems suitable for use in displays and outdoor signage.

FIGS. 2A and 2Bdepict a simplified schematic representation of the printing system shown inFIG. 1.FIGS. 2A and 2Bare simplified to illustrate a single printhead16and a single ink container18for accomplishing the printing of a single color. Where more than one color is desired, a plurality of printheads16may be used, each having an associated ink container18as shown inFIG. 1.

Print mechanism12may include an ink container receiving station24and a controller26. With ink container18properly inserted into ink container receiving station24, an electrical and a fluidic coupling is established between the ink container and the print mechanism. The fluidic coupling allows ink stored within ink container18to be provided to printhead16. The electrical coupling allows information to be passed between ink container18and print mechanism12to ensure the operation of print mechanism12is compatible with the ink contained in ink container18, thereby achieving high print quality and reliable operation of the printing system.

Controller26may control the transfer of information between print mechanism12and replaceable printing components14. For instance, controller26may control the transfer of information between printhead16, ink container18, and controller26. The controller also may control the relative movement of printhead16and the print media, as well as selectively activating the printhead to deposit ink on print media.

Ink container18includes a reservoir28for storing ink therein. A fluid outlet30is provided that it is in fluid communication with fluid reservoir28. Fluid outlet30may be configured for connection to a complimentary fluid inlet32associated with ink container receiving station24.

Printhead16includes a fluid inlet34configured for connection to a complimentary fluid outlet36associated with print mechanism12. With the printhead properly inserted into scanning carriage22(shown inFIG. 1), fluid communication may be established between the printhead and ink container18by way of flexible fluid conduit20.

Each replaceable printing component (such as the printhead16and the ink container18) may include an electrical storage device38. These electrical storage devices38may also be referred to as information storage devices or memory, and may be used for storing information related to the respective replaceable printer components. A plurality of electrical contacts40may be provided on each replaceable printing component14, each contact being electrically connected to electrical storage device38.

With ink container18properly inserted into the ink container receiving station24, each electrical contact40may engage a corresponding electrical contact42associated with ink container receiving station24. Electrical contact42, in turn, may be electrically connected to controller26by one or more electrical conductor44. With proper insertion of ink container18into ink container receiving station24, electrical storage device38(associated with ink container18) may be electrically connected to the controller26, allowing information to be transferred between ink container18and print mechanism12.

Likewise, a plurality of electrical contacts40on printhead16may be electrically connected to electrical storage device38. With printhead16properly installed into print mechanism12, electrical contacts40may engage a corresponding electrical contacts42(associated with the printer body12). Once engaged, the electrical storage device38may be electrically connected to the controller26by way of one or more electrical conductors46.

Although electrical storage devices38associated with each ink container18and printhead16are given the same identifier to indicate similar function, the information stored in the electrical storage device (38) associated with the ink container18will be different from the information stored in the electrical storage device (38) associated with the printhead16. Similarly, the information stored in electrical storage device38associated with each ink container of the plurality of ink containers18will, in general, be unique to that particular ink container. The particular information stored on each electrical storage device38will be discussed in more detail below.

FIG. 3represents a block diagram of an example printing system10shown connected to an information source or host computer48. Host48is shown connected to a display device50. The host can be any of a variety of information sources (such as a personal computer, work station, or server, to name a few) that provides image information to controller26by way of a data link52. Data link52may be any of a variety of conventional data links (such as an electrical link, infrared link, a wide-area or local-area network link, or any other well-known data link) for transferring information between host48and printing system10.

In addition to being electrically linked to electrical storage devices38associated with replaceable printing components14, controller26may be electrically linked to a printer mechanism54for controlling media transport and movement of carriage22. This link may be a variety of different linkages such as electrical or optical linkage that supports information transfer. Controller26may make use of parameters and information provided by host48and memory38to accomplish printing.

Host48may provide image description information or image data to printing system10for forming images on print media. In addition, host48may provide various parameters for controlling operation of the printing system, typically through printer control software referred to as a “print driver”. In order to ensure that the printing system provides the highest quality images, controller26may compensate for the particular replaceable printer component14installed within the printing system. Electric storage device38may provide parameters particular to the associated replaceable printer component14to controller26, allowing the controller to utilize these parameters to ensure the reliable operation of the printing system and ensure high quality print images.

Parameters that may be associated with a replaceable printing component14and stored in electrical storage device38may include the following: amount of ink shipped in an ink container; remaining ink in an ink container; actual count of ink drops emitted from the printhead; a date code associated with the ink container; date code of initial insertion of the ink container; system coefficients; ink type/color: ink container size; age of the ink; printer model number or identification number; cartridge usage information; just to name a few. In printing systems including other types of print mechanisms, such as laser printing systems, these parameters may be associated with other types of replaceable printing components. Accordingly, in such systems, the parameters may include information related to toner cartridges or other appropriate replaceable printing components.

FIG. 4is a representation of an electrical storage device38that may be used in conjunction with controller26of printing system10for ensuring data integrity for data transfers to the electrical storage device38. The electrical storage device38may be organized as an M-bit by N memory where M represents the number of bits and N represents the size of the memory device. In some systems, electrical storage device38may be an 8-bit (or 1-byte) device.

Each individually addressable M-bit memory location is represented an address value ranging from0to N-1. AlthoughFIG. 4is used to illustrate some of the information that may be stored in electrical storage device38, it will be understood that electrical storage device38may contain additional information not discussed. In addition, the location of the information in electrical storage device38may be different from those locations shown inFIG. 4. Controller26in printing system10may be required to know where at least some of the information is stored.

Memory address values0through N-3define storage portion60. This portion of memory may contain data that includes various parameters relating to the replaceable printing component14, such as the example parameters described above.

These parameters may be organized within storage portion60as a plurality of parameter fields64associated with the corresponding replaceable printing component14. Each parameter field64may contain a plurality of parameter values66(e.g., ink color, pages printed, or any of the other example value previously mentioned). The parameter fields64may be organized within storage portion60in blocks of parameter values66. The blocks of parameter values66forming the parameter fields64may be configured to have a preselected size. The preselected size of these blocks may be selected to ensure that a transfer of a parameter field64between a print mechanism12and an electrical storage device38occurs in a single block of parameter values66. The printing system10may be configured to ensure that a transfer of a single block of parameter values66from a print mechanism12to an electrical storage device38occurs atomically, in a single operation requiring only one write. While parameter values66only have been shown in the first memory address0, it should be understood that each parameter field64from0to N-3may be similarly organized.

Data corruption may occur when a transfer of data to storage portion60is interrupted. For instance, in cases where the replaceable printing component is ink container18, it may be possible to remove the ink container while controller26is transferring data to electronic storage device38. Interrupting this data transfer may compromise the integrity of the data. In such cases the replaceable printing component may need to be examined to determine whether storage portion60contains valid data.

To address such issues, memory address values N-2through N-1may be validation fields62. The fields are used to store error detection codes which may be used to detect data corruption. These error detection codes may be any string of computer-readable characters (e.g., digits, letters, symbols) relatable to data in storage portion60. Electrical storage device38and/or controller26may be configured to store in validation fields62, error detection codes which are mathematically related to the data in storage portion60. For example, an error detection code stored in a validation field62may be the result of a predetermined hash function performed on the data contained in storage portion60. Another type of error detection code that may be used is a variation of parity data. Specifically, parity data mathematically related to the data in storage portion60may be computed and stored in validation fields62. Other examples of suitable error detection codes include but are not limited to cyclic redundancy checks, checksums (e.g., MD5), or any other string of computer-readable characters relatable to the data in storage portion60.

The electrical storage device38and/or controller26may be configured to store error detection codes in the validation fields62in a “ping-pong” (or circular in embodiments having more than two validation fields) fashion. In other words, electrical storage device38and/or controller26alternates between the validation fields62when storing error detection codes.

Referring now toFIG. 5, when a first block of data is ready to be transferred to electrical storage device38at100, a first error detection code, relatable to the data that will be stored in the storage portion60after this first data transfer, is computed at102.

In some systems, controller26or another component of the printing system may maintain a cache of the data stored in storage portion60. Using this cache, controller26(or another component) may update the cached data to reflect the addition of the first block of data, and then compute the error detection code for the updated cached data.

Once the first error detection code is computed, at104, it may be written to a validation field62. A first validation field may contain an error detection code matching the data currently in the storage portion60; hence, the first error detection code may be stored in a second, unused validation field.

While the field which is updated at this point is referred to as the second validation field, one skilled in the art will understand that this is an arbitrary classification. Any validation field may be updated with an error detection code at any time, so long as the validation field to be updated does not contain an error detection code relatable to the data currently stored in storage portion60. An exception to this rule occurs in cases where more than one validation field62contains an error detection code relatable to the data currently in storage portion60. In such instances, the first error detection code may be written to any validation field62.

Once the first error detection code is written at104, the first block of data may be transferred and stored in the storage portion60at106.

This process may be repeated for additional transfers of data. Continuing the above example, prior to, a second transfer of data to the electrical storage device38(returning back to100along arrow108), a second error detection code may be computed at102that is relatable to the data that will be stored in the storage portion60after the second transfer. This second error detection code may be written to the first validation field at104(as described above, the second validation field now contains the first error detection code relatable to the data currently in the storage portion). Once the second error detection code is written to the first validation field, the second transfer of data may be completed at106.

InFIG. 6, which depicts the states of a storage portion60and two validation fields62during two example updates, time passes towards the right, as indicated by arrow T. The storage portion starts out containing OLD DATA, and validation field2contains an error detection code relatable to the OLD DATA. The contents of field1at this point are not relevant. However, before storage portion60is updated so that it contains DATA1, validation field1is updated so that it contains an error detection code relatable to DATA1. Thus, for the time period denoted by X1, validation field1contains an error detection code relatable to data that will be stored in storage portion60in the future, and validation field2contains an error detection code relatable to data currently contained in storage portion60.

Once validation field1is updated, storage portion60may be updated to contain DATA1. Thus, for the time period marked by Y1, validation field1contains an error detection code relatable to the data currently stored in storage portion60, and validation field2contains an error detection code relatable to the data stored in the storage portion60immediately prior.

Continuing withFIG. 6, before storing DATA2in storage portion60, validation field2may be updated to contain an error detection code relatable to DATA2. Once validation field2is updated, storage portion60may be updated to contain DATA2.

As seen inFIG. 6and from the previous discussion, immediately prior to transferring data to the storage portion60, at points in time marked X1and X2, one validation field62may contain an error detection code relatable to the data currently in storage portion60. Another validation field62may contain an error detection code relatable to the data that will be stored in storage portion60after the transfer.

At other points in time, marked as Y1and Y2inFIG. 6one validation field may contain an error detection code relatable to the data currently in storage portion60, and the other validation field may contain an error detection code relatable to the data that was stored in storage portion60immediately prior to the current data.

Another aspect of the present disclosure involves error detection. As seen inFIG. 7, the integrity of the data may be verified by relating the contents of the validation fields62one-at-a-time to the data in the storage portion60. If the error detection code contained in any validation field62matches the data in the storage portion60, the data is valid and the replaceable printing component is not rejected. If no validation field62contains an error detection code matching the data, however, the data in the storage portion60is corrupt and the replaceable printing component may be rejected.

Starting at200inFIG. 7, the content of a first validation field is compared to the data contained in the storage portion at202. This comparison corresponds to the type error detection code used. For instance, if the error detection codes are hash sums, the comparison involves computing the hash sum of the data in storage portion60using the same hash function that was used earlier to populate validation fields62.

If the content of the first validation field62is relatable to the data in the storage portion, the data in storage portion60is not corrupt and the replaceable printing component is accepted by the printing system10at208. If the content of the first validation field62is not relatable to the data in storage portion60, the process proceeds to204, where the content of a second validation field62is compared to the data in storage portion60. If there is a match, the process goes to208and the replaceable printing component is accepted. If there is no match, however, the data in the storage portion60is corrupt, and printing system10may reject the replaceable printing component at206.

One skilled in the art will understand that while the process depicted inFIG. 7compares the contents of two validation fields to the data in the storage portion60(in204and206), the content of additional validation fields may be compared to the data in storage portion60. Such additional comparisons may occur depending on how many validation fields are configured into a particular electrical storage device38.

It is believed that the disclosure set forth above encompasses multiple distinct embodiments of the invention. While each of these embodiments has been disclosed in specific form, the specific embodiments thereof as disclosed and illustrated herein are not to be considered in a limiting sense as numerous variations are possible. The subject matter of this disclosure thus includes all novel and non-obvious combinations and subcombinations of the various elements, features, functions and/or properties disclosed herein. Similarly, where the claims recite “a” or “a first” element or the equivalent thereof, such claims should be understood to include incorporation of one or more such elements, neither requiring nor excluding two or more such elements.