Abstract:
The present invention generates voltage signals or driving waveforms to actuate driving elements of a print head according to the programmable generation method discussed below. The procedure first provides a first memory area and a second memory area, in which driving waveform data used to generate the driving waveforms are stored. Different sets of the driving waveform data are stored in the respective memory areas. The procedure selects a working memory area at a predetermined interval of selection and carries out arithmetic operations using the set of driving waveform data stored in the selected working memory area, so as to generate a driving waveform signal. The selective use of the working memory area enables the resulting driving waveform to be switched over at a high speed at the predetermined interval of selection. The two memory areas may be constructed by separate memory chips. This configuration enables a reading operation from one memory area to be carried out in parallel with a writing operation into the other memory area. The arrangement of the present invention attains the high-speed changeover of a working driving waveform among a diversity of driving waveforms, while preventing a significant increase in memory capacity.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    1. Field of the Invention  
           [0002]    The present invention relates to a technique that generates driving waveforms to actuate driving elements of a print head.  
           [0003]    2. Description of the Related Art  
           [0004]    A color ink jet printer that ejects several color inks from a print head is one of the output devices of the computer. The ink jet printer expresses multiple tones by distribution of dots. In order to attain the smoother tone expression, some ink jet printers create variable size dots in respective pixels. Some ink jet printers carry out printing in both forward and backward passes of main scan, thereby enhancing printing speed.  
           [0005]    The ink jet printer regulates the weight of ink droplets ejected from nozzles of the print head to create the respective dots. For example, the print head with piezoelectric elements regulates the size of each dot by controlling the meniscus or the shape of the ink surface at the nozzle opening and adjusting the ejection timing of the ink droplet. The driving waveform to drive the piezoelectric elements is varied to attain such control and adjustment.  
           [0006]    [0006]FIG. 18 illustrates a prior art driving waveform to create the variable size dots. The driving waveform includes two element waveforms W 1  and W 2  that are output intervalically. The driving waveform has a interval T corresponding to one pixel division. The first element waveform W 1  is used to create small size dots, and the second element waveform W 2  is used to create medium size dots.  
           [0007]    Large size dots are formed in response to both the first element waveform W 1  and the second element waveform W 2 .  
           [0008]    Various driving waveforms can be generated by a programmable signal generation circuit. The programmable signal generation circuit intervalically accumulates a preset value of voltage change in the driving waveform, that is, quantities of voltage change per unit time, with an adder, so as to determine the level of the driving waveform.  
           [0009]    [0009]FIG. 19 is a block diagram illustrating the internal structure of a programmable signal generation circuit  100 . FIG. 20 shows a process of generating a driving waveform by the prior art programmable generation. The driving waveform generation circuit  100  includes a memory  102 , an accumulator  104 , and a digital-to-analog (D-A) converter  106 . Driving waveform data ΔV 1 , ΔV 2 , and ΔV 3 , each representing a rate of voltage change in the driving waveform, are stored in the memory  102 . Each of the driving waveform data corresponds to a quantity of voltage change in the driving waveform per interval t of a clock signal CLK. The driving waveform data ΔV 1 , ΔV 2 , and ΔV 3  read from the memory  102  are successively accumulated in synchronism with the clock signal CLK by the accumulator  104 . The arithmetic operation gives 18-bit data as the result of accumulation. The upper 10 bits out of the 18-bit result of accumulation are subjected to the D-A conversion carried out by the D-A converter  106 , so as to generate a driving waveform.  
           [0010]    The number of reproducible tone levels increases as the number of available dot sizes and, in turn, as the number of element waveforms. There is, however, generally a restriction on the number of element waveforms included in one interval T. The prior art print head accordingly enables only a restricted number of different types of usable dots to be created.  
         SUMMARY OF THE INVENTION  
         [0011]    The object of the present invention is to increase the number of different types of dots usable for printing.  
           [0012]    At least part of the above and the other related objects is attained by a technique that selectively generates one of a plurality of different driving waveforms having different shapes at predetermined intervals of selection to actuate driving elements of a print head. The selective use of the plurality of different driving waveforms enables a variety of dots to be created without restriction on the number of element waveforms included in one interval.  
           [0013]    In the technique of generating the driving waveforms in a programmable manner, changing the set of driving waveform data varies the resulting driving waveform. The switchover of the driving waveform is accordingly attained by appropriately rewriting the set of driving waveform data stored in the memory according to the desired driving waveform to be generated. This method, however, lengthens the time interval required for switching over the driving waveform. This is because no driving waveform is generated until the writing operation of a next set of driving waveform data is completed. The longer time interval required for the switchover may lower the printing speed and deteriorate the usability of the printing apparatus.  
           [0014]    The technique of the present invention provides a specific number of memory areas, which are at least two memory areas and do not overlap one another at least partly, and changes over a working memory area used to generate the driving waveform, thereby switching over the resulting driving waveform. A set of driving waveform data used to generate each of the plurality of different driving waveforms is stored in each of the specific number of memory areas. This arrangement does not require the switchover operation of the working driving waveform to wait for the completion of the writing operation of the driving waveform data, thus attaining the high-speed switchover of the working driving waveform.  
           [0015]    In the present invention, the predetermined interval of selection may corresponds to one pixel division. This arrangement effectively increases the number of different types of dots created in one pixel division during one pass of the main scan.  
           [0016]    Here the term ‘one pixel division’ represents a time interval required for creating a dot at one pixel. The expression ‘one pixel division’ accordingly corresponds to the interval T of outputting the element waveforms W 1  and W 2  of the driving waveform shown in FIG. 18. The same principle is adopted in the case where the driving waveform includes three or more factor waveform element waveforms.  
           [0017]    The term ‘one pixel division’ also has the following meaning. Printing is generally implemented by creating dots at respective pixel positions specified by a recording resolution. According to the relationship between the velocity of main scan and the driving speed of the print head, dots may be created on a raster line at a pitch of two or more pixels during one pass of the main scan. In one example, it is assumed that dots are created on a printing medium in a pattern shown in FIG. 1B in response to a driving waveform COM, which is output repeatedly at a interval T shown in FIG. 1A. The driving waveform COM output at the interval T enables dots to be created at every other pixel as shown in FIG. 1B. It is required to create dots in the residual alternate pixels by another pass of the main scan. In this case, the interval T still represents the time interval required for creating a dot at one pixel. The interval T accordingly corresponds to ‘one pixel division’.  
           [0018]    The predetermined intervals of selection can be set at a variety of length, for example, intervals of different change rate of the driving waveform or intervals corresponding to one pass of the main scan of the print head.  
           [0019]    The switchover of the driving waveform according to the present invention is implemented by a variety of embodiments discussed below.  
           [0020]    A first embodiment provides a specific number of memory areas that corresponds to the number of different driving waveforms, and stores a set of driving waveform data corresponding to each of the plurality of different driving waveforms into each of the memory areas. In this arrangement, the sets of driving waveform data corresponding to the available driving waveforms are stored separately in the individual memory areas. This arrangement does not require the writing operation of the driving waveform data prior to the switch over of the working driving waveform, thereby having high speed of generating the working driving waveform.  
           [0021]    In a second embodiment, a reading/writing operation of each memory area is done independently of operations of the other memory areas. The writing operation of one set of driving waveform data into one memory area is carried out in parallel with the reading operation of another set of driving waveform data from another memory area. This parallel operation is free from the time loss due to the writing operation of the driving waveform data.  
           [0022]    In accordance with a concrete procedure of the second embodiment, while a first driving waveform is generated by utilizing a set of driving waveform data stored in a first memory area, another set of driving waveform data required for generating a subsequent second driving waveform is written into a second memory area. When the generation of the first driving waveform is completed, the working memory area is changed over from the first memory area to the second memory area. This arrangement enables the second driving waveform to be generated without any delay.  
           [0023]    The expression ‘carrying out the writing operation in parallel with the reading operation’ is not restricted to the case of carrying out the writing operation simultaneously with the reading operation, but includes the case of changing over the reading operation and the writing operation to be carried out in a specified time interval.  
           [0024]    In the second embodiment, two memory areas at the minimum are sufficient for the switchover of three or more different driving waveforms. This advantageously saves the memory capacity.  
           [0025]    It is preferable that the respective memory areas are constructed by separate memory chips. This configuration readily attains the independent reading and writing operations for each memory area. When each memory chip has a terminal of a select signal that controls the reading and writing operations, it is desirable to input an inversion signal of the select signal, which is input into one memory chip, into the other memory chip. This arrangement effectively uses the single select signal to simultaneously control the reading operation from one memory and the writing operation into the other memory.  
           [0026]    In the second embodiment, when a new set of driving waveform data to be written into the writing memory coincides with the existing set of driving waveform data already stored in the same writing memory, the writing operation may be omitted.  
           [0027]    In accordance with one preferable application, the generation of the driving waveform according to the technique of the present invention may follow the steps of: selecting a driving waveform to be generated at the predetermined interval of selection; sequentially reading a set of driving waveform data, which corresponds to the selected driving waveform, out of the corresponding memory area at a preset timing; successively accumulating the read-out driving waveform data at a preset accumulation timing; and carrying out digital-to-analog conversion of the accumulation result, so as to generate a driving waveform signal.  
           [0028]    The plurality of different driving waveforms having different shapes may include a reference driving waveform and a corrected driving waveform, which is obtained by correcting the reference driving waveform with a predetermined parameter that affect printing properties of the print head. In the print head that ejects ink for printing, the printing properties are synonymous with the ink ejection properties. The predetermined parameter may be at least one of an environmental temperature and an environmental humidity. The technique of the present invention switches over the working driving waveform at high speed and enables the effects of the predetermined parameter to be quickly reflected on the driving waveform, thus improving the accuracy of dot creation and the picture quality of the resulting printed image.  
           [0029]    In the case where the driving waveform is corrected with the predetermined parameter, the arrangement of the second embodiment discussed above is preferably adopted; namely the reading operation from one memory is carried out in parallel with the writing operation into the other memory. The arrangement of the first embodiment requires all the sets of driving waveform data to be provided in advance corresponding to the possible variation of the parameter. This needs an extremely large memory capacity. Restriction of the memory capacity leads to restriction of the number of corrected driving waveforms, which undesirably lowers the accuracy of correction with the parameter. The second embodiment, on the other hand, carries out the writing and reading operations in parallel and thus effectively saves the required memory capacity for the corrected driving waveforms. This ensures the accurate correction with the parameter without undue restriction of the memory capacity.  
           [0030]    The technique of the present invention is actualized by a variety of applications including a method of generating a driving waveform, a driving waveform generating apparatus, and a printing apparatus.  
           [0031]    These and other objects, features, aspects, and advantages of the present invention will become more apparent from the following detailed description of the preferred embodiments with the accompanying drawings. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0032]    [0032]FIGS. 1A and 1B show the relationship between one interval of a driving waveform and a pixel;  
         [0033]    [0033]FIG. 2 is a block diagram illustrating the general structure of a printing apparatus in one embodiment of the present invention;  
         [0034]    [0034]FIG. 3 is a block diagram illustrating the circuit structure of a print head included in the printing apparatus of FIG. 2;  
         [0035]    [0035]FIG. 4 is a block diagram illustrating the internal structure of a driving waveform generation circuit included in the printing apparatus of FIG. 2;  
         [0036]    [0036]FIG. 5 is a timing chart showing timings of writing driving waveform data into a memory;  
         [0037]    [0037]FIG. 6 shows a process of generating a driving waveform;  
         [0038]    [0038]FIGS. 7A through 7D show settings of a driving waveform for multi-shot dots (MS);  
         [0039]    [0039]FIGS. 8A through 8D show settings of a driving waveform for variable size dots (VSD);  
         [0040]    [0040]FIG. 9 shows an example of switchover between two different driving waveforms;  
         [0041]    [0041]FIG. 10 shows an example of switchover among three different driving waveforms;  
         [0042]    [0042]FIG. 11 is a block diagram illustrating the internal structure of a driving waveform generation circuit in a second embodiment of the present invention;  
         [0043]    [0043]FIGS. 12A and 12B show a process of switchover between a reading operation from one memory and a writing operation from the other memory;  
         [0044]    [0044]FIG. 13 shows a process of generating a driving waveform in the second embodiment;  
         [0045]    [0045]FIG. 14 shows an example of switchover timing of the working driving waveform;  
         [0046]    [0046]FIG. 15 shows another example of switchover timing of the working driving waveform;  
         [0047]    [0047]FIG. 16 is a block diagram illustrating the general structure of a printing apparatus in a third embodiment of the present invention;  
         [0048]    [0048]FIGS. 17A and 17B show a method of temperature correction with regard to the driving waveforms;  
         [0049]    [0049]FIG. 18 illustrates a prior art driving waveform to create the variable size dots;  
         [0050]    [0050]FIG. 19 is block diagram illustrating the internal structure of a prior art driving waveform generation circuit; and  
         [0051]    [0051]FIG. 20 shows a process of generating a driving waveform by the prior art programmable generation. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0052]    Preferred embodiments of the present invention are described below in the following order:  
         [0053]    A. First Embodiment  
         [0054]    A 1 . Structure of Printing Apparatus  
         [0055]    A 2 . Generation of Driving Waveform  
         [0056]    A 3 . Driving Waveforms  
         [0057]    A 4 . Switching Over of Driving Waveforms  
         [0058]    B. Second Embodiment  
         [0059]    B 1 . Structure of Driving Waveform Generating Apparatus  
         [0060]    C. Third Embodiment  
         [0061]    A. First Embodiment  
         [0062]    A1. Structure of Printing Apparatus  
         [0063]    [0063]FIG. 2 is a block diagram illustrating the general structure of a printing apparatus in one embodiment of the present invention. The printing apparatus includes a computer  90  and a printer  99 .  
         [0064]    The computer  90  has a printer driver that is incorporated therein and works under a predetermined operating system. The printer driver outputs print signals to the printer  99  to print an image.  
         [0065]    The printer  99  includes a control circuit  40 , a sheet feed motor  23 , a carriage motor  24  that carries out main scan, and a print head  50 . The control circuit  40  includes an interface  41  that receives print signals from the computer  90 , a RAM  42  that stores a variety of data therein, a ROM  43  that stores a diversity of routines used to process various data, an oscillator  44 , a controller  45  including a CPU, a driving waveform generation circuit  46 , and an interface  47  that sends the print signals and driving signals to the sheet feed motor  23 , the carriage motor  24 , and the print head  50 .  
         [0066]    The RAM  42  is divided into three parts, which are respectively used as an input buffer  42 A, an intermediate buffer  42 B, and an output buffer  42 C. The print signals sent from the computer  90  are stored in the input buffer  42 A via the interface  41 . The input print signals are converted to intermediate codes and stored in the intermediate buffer  42 B. The controller  45  carries out a series of required processing to develop dot pattern data by referring to font data and graphic functions in the ROM  43  and stores the dot pattern data in the output buffer  42 C. The dot pattern data are sent to the print head  50  via the interface  47 .  
         [0067]    A variety of data to control the driving waveform generation circuit  46 , for example, plural sets of driving waveform data and output timing data of the clock signal are stored in the ROM  43 .  
         [0068]    [0068]FIG. 3 is a block diagram illustrating the circuit structure of the print head  50 . The print head  50  includes a predetermined number, which is identical with the number of nozzles, of shit registers  51 A through  51 N, latch circuits  52 A through  52 N, level shifters  53 A through  53 N, switching circuits  54 A through  54 N, and piezoelectric elements  55 A through  55 N.  
         [0069]    A print signal SI, that is, a signal representing dot on-off state of each pixel, is input into the shift registers  51 A through  51 N in synchronism with a clock signal CLK and latched by the latch circuits  52 A through  52 N in synchronism with a latch signal LAT. The latched print signal SI is amplified by the level shifters  53 A through  53 N to a drivable voltage level that is able to drive the  30  switching circuits  54 A through  54 N, and is supplied to the switching circuits  54 A through  54 N. The input terminals of the switching circuits  54 A through  54 N receive a driving signal COM output from the driving waveform generation circuit  46 , whereas the output terminals thereof are connected with the piezoelectric elements  55 A through  55 N. The piezoelectric elements  55 A through  55 N are disposed adjacent to ink conduits of the respective nozzles.  
         [0070]    In response to the print signal SI, the switching circuits  54 A through  54 N allow and block the supply of the driving signal COM to the piezoelectric elements  55 A through  55 N. For example, in the case where the print signal SI is equal to a value ‘1’, the supply of the driving signal COM to the piezoelectric elements is allowed. In the case where the print signal SI is equal to a value ‘0’, on the other hand, the supply of the driving signal COM to the piezoelectric elements is blocked. Hereinafter the latter process is called masking. In response to the supply of the driving signal COM to the piezoelectric elements  55 A through  55 N, the piezoelectric elements  55 A through  55 N are deformed to allow ejection of ink droplets.  
         [0071]    A2. Generation of Driving Waveform  
         [0072]    [0072]FIG. 4 is a block diagram illustrating the internal structure of the driving waveform generation circuit  46 . A memory  60  stores driving waveform data output from the controller  45 . A first latch  62  temporarily stores the driving waveform data read from the memory  60 . An adder  64  and a second latch  66  constitute an accumulator  68  that accumulate the driving waveform data. More specifically the adder  64  sums up the outputs of the first latch  62  and the second latch  66  and outputs the result of addition to the second latch  66 . The value of the second latch  66  is thus successively updated to the newest result of accumulation. The arithmetic operation gives 18-bit data as the result of accumulation. A digital-to-analog (D-A) converter  70  carries out D-A conversion of the output of the second latch  66 . A voltage amplifier  72  amplifies the converted analog signal to a voltage level that enables actuation of the piezoelectric elements. A current amplifier  74  supplies electric current of a specific level that is required for driving the plural piezoelectric elements.  
         [0073]    A variety of signals are supplied from the controller  45  to the driving waveform generation circuit  46 . A first clock signal CLK 1 , data signals representing the driving waveform data, address signals A 0  through A 4 , and an enable signal EN are supplied to the memory  60 . The first clock signal CLK 1  synchronizes data transfer to the memory  60 . The first latch  62  receives a second clock signal CLK 2  and a reset signal RESET. The second clock signal CLK 2  synchronizes data latching in the first latch  62 . The second latch  66  receives a third clock signal CLK 3  and the reset signal RESET. The third clock signal CLK 3  synchronizes the arithmetic operation carried out by the accumulator  68 . The same reset signal RESET is supplied to both the first and the second latches  62  and  66 . The driving waveform generation circuit  46  of this configuration functions, in combination with the controller  45 , the RAM  42 , and the ROM  43  shown in FIG. 1, as a driving waveform generating apparatus.  
         [0074]    [0074]FIG. 5 is a timing chart showing timings of writing the driving waveform data into the memory. Prior to generation of the driving waveform COM, the data signals representing the driving waveform data and the addresses of the data signals are supplied from the controller  45  to the memory  60 . The driving waveform data are serially transferred bit by bit in synchronism with the first clock signal CLK 1 . After the transfer of the driving waveform data, the address signals A 0  through A 4  are supplied with the enable signal EN. The driving waveform data is written at the address specified by the address signals A 0  through A 4  in the memory  60  at the input timing of the enable signal EN. Since the address signals A 0  through A 4  constitute 5-bit data, 32 pieces of driving waveform data at the maximum may be stored in the memory  60 .  
         [0075]    [0075]FIG. 6 shows a process of generating a driving waveform. In the example of FIG. 6, it is assumed that driving waveform data ΔV 1 , ΔV 2 , and ΔV 3  are respectively written at addresses B, A, and C. The driving waveform data is 16-bit data representing a quantity of voltage change per interval t of the third clock signal CLK 3 .  
         [0076]    The first driving waveform data ΔV 1  is output from the memory  60  in response to the output of the address B and is latched by the first latch  62  in synchronism with the second clock signal CLK 2 . The adder  64  sums up the 18-bit output of the second latch  66  and the 16-bit output of the first latch  62  in synchronism with the third clock signal CLK 3 . The result of the summation is kept in the second latch  66 . In response to every pulse of the third clock signal CLK 3 , the value of the driving waveform data is added to the output of the second latch  66 . The voltage of the driving waveform accordingly rises by ΔV 1 . The interval of generating the pulse of the third clock signal CLK 3  may be varied to attain a desired accumulation timing.  
         [0077]    In synchronism with the next pulse of the clock signal CLK 2 , the driving waveform data ΔV 2  specified by the address signal A is latched by the first latch  62 . In the example of FIG. 6, ΔV 2 =0, that is, the value indicative of no change of the voltage, is set as the driving waveform data. While the driving waveform data ΔV 2  is output, the waveform of the driving signal is plateau. After the output of the subsequent pulse of the clock signal CLK 2 , the driving waveform is generated with the driving waveform data ΔV 3 . In the example of FIG. 6, the driving waveform data ΔV 3  has a negative value. While the driving waveform data ΔV 3  is output, the voltage gradually decreases. The increase and the decrease in voltage depend upon the plus and minus signs of the driving waveform data.  
         [0078]    As shown in FIG. 4, the 18-bit result of addition summed up by the adders  64  is again input into the adder  64 . Voltage level data D 0  output from the second latch  66  accordingly varies stepwise as shown in FIG. 6. The upper 10 bits of the voltage level data D 0  are subjected to the D-A conversion carried out by the D-A converter  70  to generate a driving waveform shown on the right side of FIG. 6.  
         [0079]    A3. Driving Waveforms  
         [0080]    This embodiment selectively uses two different driving waveforms to create dots. FIGS. 7A through 7D show dot formation with a first driving waveform COM 1 . As shown in FIG. 7A, the driving waveform COM 1  has three identical element waveforms W 1  in three divisions T 1  through T 3  included in one pixel division T.  
         [0081]    As shown in FIG. 7B, when the switching circuit  54  is controlled to mask the element waveforms W 1  in the divisions T 2  and T 3 , an ink droplet is ejected in response to only the first element waveform W 1  in the division T 1  to create a small size dot DSA.  
         [0082]    As shown in FIG. 7C, when the switching circuit  54  is controlled to mask the third element waveform W 1  in the division T 3 , ink droplets are ejected in response to the first two element waveforms W 1  in the divisions T 1  and T 2  to create a medium size dot DMA. The medium size dot DMA is formed with the quantity of ink approximately double the quantity of ink of the small size dot DSA.  
         [0083]    As shown in FIG. 7D, in response to the three element waveforms W 1  in all the divisions T 1 , T 2 , and T 3 , a large size dot DLA having the quantity of ink three times of the quantity of ink of the small size dot DSA is created.  
         [0084]    The three different dots created in response to the first driving waveform COM 1  shown in FIGS. 7A through 7D are referred to as multi-shot dots MS.  
         [0085]    [0085]FIGS. 8A through 8D show dot formation with a second driving waveform COM 2 . As shown in FIG. 8A, the driving waveform COM 2  has a plurality of waveforms in one pixel division T. For convenience of explanation, one pixel division is divided into sections Ta through Tf.  
         [0086]    [0086]FIG. 8B shows formation of a small size dot with the second driving waveform COM 2 . The switching circuit  54  (see FIG. 2) is controlled on in the sections Ta and Te of the second driving waveform COM 2 , while being controlled off in the other sections. In the sections where the switching circuit  54  is off, the electric charge is practically kept unchanged because the piezoelectric element  55  acts as a capacitor. The driving waveform substantially similar to the illustration is accordingly supplied to the piezoelectric element  55  to eject an ink droplet having the quantity of ink according to the supplied driving waveform and create a small size dot DSB.  
         [0087]    [0087]FIG. 8C shows formation of a medium size dot with the second driving waveform COM 2 . The switching circuit  54  is controlled on in the section Tc of the second driving waveform COM 2 , while being controlled off in the other sections. This gives an illustrated driving waveform. The print head  50  ejects an ink droplet having the quantity of ink according to this driving waveform and creates a medium size dot DMB.  
         [0088]    [0088]FIG. 8D shows formation of a large size dot with the second driving waveform COM 2 . The switching circuit  54  is controlled on in the section Tf of the second driving waveform COM 2 , while being controlled off in the other sections. This gives an illustrated driving waveform. The print head  50  ejects an ink droplet having the quantity of ink according to this driving waveform and creates a large size dot DLB.  
         [0089]    The three different dots created using the second driving waveform COM 2  shown in FIGS. 8A through 8D are referred to as variable size dots (VSD).  
         [0090]    The quantities of ink may set independently for the three multi-shot dots DSA, DMA, and DLA and for the three variable size dots DSB, DMB, and DLB. The technique of this embodiment selectively uses the driving waveform COM 1  for the multi-shot dots and the driving waveform COM 2  for the variable size dots, so as to enable creation of six different dots.  
         [0091]    A4. Switching Over of Driving Waveforms  
         [0092]    [0092]FIG. 9 shows an example of switchover between two different driving waveforms. The driving waveforms COM 1  and COM 2  are alternately switched over at every interval T of the driving waveform, which corresponds to one pixel division.  
         [0093]    The switchover is performed in the following manner. All the pieces of the driving waveform data required for generation of the two driving waveforms COM 1  and COM 2  are stored in the memory  60 . The controller  45  changes over the address signal output to the memory  60  according to the type of the driving waveform to be output to each pixel, so as to switch over the resulting driving waveform. In the example of FIG. 9, the driving waveforms COM 1  and COM 2  are output alternately. The driving waveform may be switched over according to a preset pattern or according to the type of the dot to be created at each pixel. The driving waveform COM 1  is used at the pixels where any of the multi-shot dots DSA, DMA, and DLA is to be created. The driving waveform COM 2  is used at the pixels where any of the variable size dots DSB, DMB, and DLB is to be created.  
         [0094]    The technique of this embodiment changes over the driving waveform data used for generation of the driving waveform, so as to vary the resulting driving waveform. The selective use of the plurality of different driving waveforms enables a greater number of different types of dots to be used for printing, compared with the prior art technique that uses only a single driving waveform. This results in improved tone reproduction of the printed images.  
         [0095]    The arrangement of the embodiment may use three or more sets of driving waveform data. FIG. 10 shows an example of switchover among three different driving waveforms. In the example of FIG. 10, three driving waveforms COM 1 , COM 2 , and COM 3  are successively switched over for every interval T of the driving waveform corresponding to one pixel division. In this case, the driving waveform data are appropriately selected according to the type of the dot to be created at each pixel. A further increase in the number of different driving waveforms additionally increases the number of different types of dots usable for printing.  
         [0096]    B. Second Embodiment  
         [0097]    [0097]FIG. 11 is a block diagram illustrating the internal structure of a driving waveform generation circuit  46 A in a second embodiment of the present invention. The primary difference from the circuit  46  of the first embodiment is that the circuit  46 A of the second embodiment has two memories  60 A and  61 A to store the driving waveform data, instead of only one memory  60 . The other constituents of the driving waveform generation circuit  46 A are identical with those of the first embodiment. The same signals as those supplied to the memory  60  of the first embodiment are supplied respectively to these two memories  60 A and  61 A. A read-write signal R/W and a select signal CS are additionally supplied to the two memories  60 A and  61 A. The select signal CS supplied to the first memory  60 A is inverted to be supplied to the second memory  61 A.  
         [0098]    [0098]FIGS. 12A and 12B show a process of switchover between a reading operation from one memory and a writing operation from the other memory. The operations of the two memories  60 A and  61 A are controlled by the select signal CS. As shown in FIG. 12A, the select signal CS is directly supplied to the first memory  60 A, while being inverted and supplied to the second memory  61 A. Referring to FIG. 12B, when the select signal CS is at a low level L, the first memory  60 A undergoes the reading operation and the second memory  61 A undergoes the writing operation. When the select signal CS is at a high level H, on the other hand, the first memory  60 A undergoes the writing operation and the second memory  61 A undergoes the reading operation. The driving waveform data are written into each of the two memories according to the same procedures as those discussed in the first embodiment (see FIG. 5).  
         [0099]    [0099]FIG. 13 shows a process of generating a driving waveform in the second embodiment. The technique of the second embodiment selectively uses the two memories  60 A and  61 A for different operations in the process of generating the driving waveform.  
         [0100]    When the select signal CS is at the level L, for example, in a time interval between time points t 1  and t 2  and a time interval after a time pint t 3 , the first memory  60 A functions as a reading memory and the second memory  61 A functions as a writing memory. In these time intervals, the driving waveform is generated by successively accumulating the data of the first memory  60 A. The accumulation is carried out in synchronism with the third clock signal CLK 3 . In a time interval before the time point t 1  and a time interval between the time points t 2  and t 3  when the select signal CS is at the level H, the first memory  60 A functions as a writing memory and the second memory  61 A functions as a reading memory. In these time intervals, the driving waveform is generated by using the data of the second memory  61 A.  
         [0101]    The following describes the operations carried out in the time interval between the time points t 1  and t 2 . Driving waveform data ΔVI has been stored in advance in the first memory  60 A. When the address signals A 0  through A 4  are supplied to specify a reading address for the first memory  60 A, the driving waveform data ΔV 1  is read from the first memory  60 A and latched by the first latch  62  in synchronism with the second clock signal CLK 2 . The adder  64  subsequently sums up the 18-bit output of the second latch  66  and the 16-bit output of the first latch  62  synchronously with the third clock signal CLK 3 . The result of the summation is again latched by the second latch  66 . As shown in the lower portion of FIG. 13, the value of the driving waveform data ΔV 1  is added to the output of the second latch  66  in response to every pulse of the third clock signal CLK 3 . The frequency of the third clock signal CLK 3  may be varied to ensure a desired accumulation timing. In this time interval, in parallel with this reading operation, driving waveform data ΔV 2  is written into the second memory  61 A.  
         [0102]    In the time interval between the time points t 2  and t 3 , the first memory  60 A and the second memory  61 A exchange their functions. In this time interval, when the address signals A 0  through A 4  are supplied to specify a reading address for the second memory  61 A, the driving waveform data ΔV 2  is read from the second memory  61 A and latched by the first latch  62  in synchronism with the second clock signal CLK 2 . In this time interval, the driving waveform data ΔV 2  is successively accumulated to generate the driving waveform. In the example of FIG. 13, the value of the driving waveform data ΔV 2  is equal to zero, which represents no change of the voltage. The resulting driving waveform in this time interval is accordingly plateau. In this time interval, in parallel with this reading operation, driving waveform data ΔV 3  is written into the first memory  60 A.  
         [0103]    In the time interval after the time point t 3 , the first memory  60 A and the second memory  61 A again exchange their functions. In the same manner as discussed above with regard to the time interval between the time points t 1  and t 2 , the driving waveform is generated by accumulation of the driving waveform data ΔV 3  stored in the first memory  60 A. In the example of FIG. 13, the driving waveform data ΔV 3  has a negative value. In this time interval, the driving waveform accordingly has a decreasing voltage by ΔV 3 . In this manner, the variation in voltage depends upon the sign of the data stored at each address.  
         [0104]    The 18-bit result of the summation is input again into the adder  64 . The voltage level data D 0  output from the second latch  66  accordingly varies stepwise as shown in FIG. 13. The upper 10-bit voltage level data D 0  out of the 18-bit result of the summation is input into the D-A converter  70  and subjected to the D-A conversion to generate the driving waveform COM.  
         [0105]    The driving waveform generating apparatus of the second embodiment selectively uses the two memories  60 A and  61 A to alternately carry out the reading and writing operations. The selective use of the two memories  60 A and  61 A enables the reading operation to be carried out in parallel with the writing operation. The example of FIG. 13 uses the two memories  60 A and  61 A in combination to generate one driving waveform. One possible modification writes two different groups of driving waveform data into the respective memories  60 A and  61 A and selectively uses the two memories  60 A and  61 A to change over the working driving waveform.  
         [0106]    [0106]FIG. 14 shows another example of switchover timing of the working driving waveform. In the example of FIG. 14, two driving waveforms COM 1  and COM 2  are selectively used for the forward pass and the backward pass of the main scan. The driving waveforms COM 1  and COM 2  are identical with those discussed in the first embodiment. In the forward pass of the main scan, the first set of driving waveform data are read from the first memory  60 A to generate the first driving waveform COM 1 . In parallel with this reading operation, the second set of driving waveform data for the second driving waveform COM 2  are written into the second memory  61 A. In the backward pass of the main scan, the second set of driving waveform data are used from the second memory  61 A to generate the driving waveform COM 2 . In parallel with this reading operation, the first set of driving waveform data for the first driving waveform COM 1  are written into the first memory  60 A.  
         [0107]    The example of FIG. 14 switches over the working driving waveform between the forward pass and the backward pass of the main scan, so as to enable creation of six different types of dots. This arrangement effectively enhances the printing quality. The alternate use of the two memories  60 A and  61 A advantageously prevents the printing speed from being lowered by the switchover of the driving waveform. In the structure using a single memory, it is required to wait for completion of the writing operation of the driving waveform data into the memory on every occasion of switching from the forward pass to the backward pass or from the backward pass to the forward pass. The arrangement of this embodiment does not require such waiting time.  
         [0108]    [0108]FIG. 15 shows another example of switchover timing of the working driving waveform. In the example of FIG. 15, the driving waveform is changed over for every interval according to the requirements. The reading operation from one memory is carried out in parallel with the writing operation into the other memory, and changes over the working memory used for generation of the driving waveform by every interval. This arrangement enables the driving waveform to be quickly switched over by the unit of the interval. In the example of FIG. 15, the driving waveforms COM 1  and COM 2  are alternately generated. The sequence of generation of the driving waveforms COM 1  and COM 2  may be set arbitrarily. The appropriate driving waveform is selected according to the type of the dot to be created at each pixel. For example, in the case where any one of the multi-shot dots DSA, DMA, and DLA is to be created in a left most pixel and a second left pixel, the driving waveform COM 1  is continuously output to these two pixels. In this case, while the driving waveform COM 1  is generated with the data of the first memory  60 A, the driving waveform data used for generating the driving waveform COM 1  are written into the second memory  61 A. A variety of other settings are applicable to the switchover timing of the working driving waveform.  
         [0109]    The arrangement of the second embodiment is also applicable to the case of selectively using three or more driving waveforms.  
         [0110]    The two memories are sufficient even in this case. This arrangement thus effectively saves the memory capacity required for generation of the driving waveform. One possible modification selectively uses three or more memories to generate the driving waveform.  
         [0111]    In the second embodiment, data are written into the memory unconditionally. One preferable modification omits the writing operation in the case where a new set of driving waveform data to be written into the writing memory coincides with the existing set of driving waveform data already stored in the same writing memory.  
         [0112]    C. Third Embodiment  
         [0113]    [0113]FIG. 16 is a block diagram illustrating the general structure of a printing apparatus in a third embodiment of the present invention. The primary difference from the first and the second embodiments is that a print head  50 A of a printer  99 A is provided with a temperature sensor  48 . The other constituents are identical with those of the printing apparatus of the first embodiment shown in FIG. 1. In the printing apparatus of the third embodiment, the combination of a driving waveform generation circuit  46 B, a controller  45 A, the RAM  42 , the ROM  43 , and the temperature sensor  48  functions as the driving waveform generating apparatus.  
         [0114]    The temperature sensor  48  measures the temperature in the neighborhood of the print head  50 A. The controller  45 A carries out temperature correction based on the results of the measurement in the course of generating the driving waveforms. The viscosity of ink is generally affected by the temperature. The ink has the higher viscosity at the higher temperature and the lower viscosity at the lower temperature. In order to regulate the quantity of ink ejection accurately, it is accordingly effective to correct the driving waveform COM according to the temperature.  
         [0115]    [0115]FIGS. 17A and 17B show a method of temperature correction with regard to the driving waveforms COM 1  and COM 2 .  
         [0116]    [0116]FIG. 17A shows the process of temperature correction with regard to the driving waveform COM 1  for the multi-shot dots. An element waveform W1M in three sections T 1  through T 3  included in one pixel interval T is used when the print head  50 A is at a predetermined reference temperature, for example, at 25° C. A corrected element waveform W1H is used at high temperatures, and another corrected element waveform W1L is used at low temperatures. Under the conditions of the high temperature of the print head  50 A and thsu the high ink temperature, the ink has low viscosity. The driving waveform COM 1  is accordingly corrected to reduce the amplitude. Under the conditions of the low temperature of the print head  50 A, on the contrary, the ink has high viscosity. The driving waveform COM 1  is accordingly corrected to enhance the amplitude.  
         [0117]    As shown in FIG. 17B, the driving waveform COM 2  for the variable size dots is corrected in the same manner as the driving waveform COM 1  for the multi-shot dots. The procedure corrects a waveform WM, which is used at a predetermined reference temperature of the print head  50 , to a waveform WH having the reduced amplitude at high temperatures and to a waveform WL having the enhanced amplitude at low temperatures.  
         [0118]    A variety of methods are applicable for the temperature correction. One applicable method selectively uses the driving waveform data, which have been stored in advance in the ROM  43  and correspond to a plurality of temperature tanges. A modified procedure interpolates the stored data according to the observed temperature to calculate the driving waveform data. Another applicable method sets coefficients used for changing the amplitude according to the temperature and multiplies reference driving waveform data by a selected coefficient.  
         [0119]    The execution or non-execution of the temperature correction may be determined according to the rate of temperature change or the quantity of temperature change. For example, the temperature correction may be carried out under the condition that there is a quantity of temperature change equal to or greater than a predetermined threshold value.  
         [0120]    The driving waveform generation circuit  46 B may have the structure of the first embodiment (see FIG. 4) or the structure of the second embodiment (see FIG. 11).  
         [0121]    In the case where the driving waveform generation circuit  46 B adopts the structure of the first embodiment using the single memory  60 , the driving waveform is generated in the following manner. Plural sets of driving waveform data with required temperature correction including reference driving waveform data, driving waveform data for high temperatures, and driving waveform data for low temperatures are stored in the memory  60  together with the driving waveforms COM 1  and COM 2  used for printing. The controller  45 A selectively uses the address signals, based on the driving waveform to be generated and the results of measurement with the temperature sensor  48 . The switchover of the driving waveform is implemented at a variety of timings as discussed in the first embodiment.  
         [0122]    In the case where the driving waveform generation circuit  46 B adopts the structure of the second embodiment using the two memories  60 A and  61 A, on the other hand, the driving waveform is generated in the following manner. While a driving waveform is generated with a set of driving waveform data read from one memory, another set of driving waveform data used for generation of a subsequent driving waveform are written into the other memory. The set of driving waveform data written into the memory are specified by taking into account the type of the resulting driving waveform and the effects of the temperature correction. The alternate use of the two memories enables the driving waveform with the reflection of the temperature correction to be effectively switched over.  
         [0123]    An extremely large memory capacity would be required to store all the pieces of driving waveform data including those with temperature correction. Application of the structure of the second embodiment for the driving waveform generation circuit  46 B advantageously prevents an extreme increase in memory capacity. This arrangement enables a diversity of driving waveforms to be utilized without undue restriction due to the memory capacity, thus ensuring the precise temperature correction.  
         [0124]    In the arrangement of the third embodiment, the timing of the temperature correction may be set arbitrarily. It is not necessary to make the timing of the temperature correction coincident with the switchover interval of the driving waveform. One applicable procedure carries out the temperature correction of the driving waveform COM at every one pixel interval of the driving waveform COM corresponding to one pixel division. Another applicable procedure sets a time interval corresponding to two passes of the main scan to the interval of the temperature correction, while setting a time interval corresponding to one pass of the main scan to the switchover interval of the driving waveform.  
         [0125]    Althoug the waveforms are corrected as a function of the temperature in the third embodiment, a variety of physical quantities affecting the ink ejection properties may be used as the correction parameter. For example, a humidity sensor may be attached to the print head  50 A, and the driving waveform COM is corrected according to the observed humidity. These sensors may not be mounted directly on the print head  50 A, but may be set at any suitable positions to detect the effects on the ink ejection properties.  
         [0126]    The present invention is not restricted to the above embodiments or their modifications, but there may be many other modifications, changes, and alterations without departing from the scope or spirit of the main characteristics of the present invention. For example, the driving elements are not restricted to the piezoelectric elements, but may be any of various actuators selected according to the requirements.  
         [0127]    The scope and spirit of the present invention are limited only by the terms of the appended claims.