Apparatus and method for automatically controlling the bidirectional printing position in a serial printer

Abstract: A bidirectional serial printer is described capable of compensating for mechanical errors causing the actual print position to lag behind the estimated position. The position of the printer head is sensed as it is moved in both directions. The position of the printer head is estimated as it is moved in both directions and a mechanical error factor is determined representing the difference between the mechanical error present when the head is moving on one direction and that present when the head is moving in the other direction. In printing, the mechanical errors are compensated by advancing or retarding the firing of the printing head to a degree dependent upon the said mechanical error factors, thus improving the vertical alignment of the printer.

Description: BACKGROUND OF THE INVENTION The present invention relates to a printing apparatus and method in a bidirectional serial printer. A serial printer indicates a printer which prints one letter per unit time and generally performs a bidirectional printing. To make the printing speed, the printing operation is performed from left to right of a row, then the printing is performed from right to left in the next row. Accordingly, as the bidirectional printing of the serial printer is performed whenever a carriage is moved, the speed of the bidirectional printing is two times faster than that of the mono-directional printing which the printing operation is performed in only one direction and the next row is printed after the carriage is returned to the starting position. However, in the case of the above mentioned bidirectional printing, the vertical lines are not properly arranged due to the mechanical error. Accordingly, by using the printer aligning software the printing position error can be corrected. Referring to FIG.1, there is shown an actual printing position caused by the mechanical error and a printing position sensed by the software, and there are also shown the printing positions after performing vertical alignment. In the drawing, when the carriage is moved from right to left, C indicates the printing position sensed by the central processing unit of the system operating the printing software, and A indicates an actual position printed by the mechanical error. In the next row, when the carriage is moved from left to right, C indicates the printing position sensed by the central processing unit of the system operating the printing software, B indicates the position which is actually printed by the mechanical error, and D indicates the distanced difference between the actual printing positions A and B. In addition, when the carriage is moved from left to right (to R direction), B' indicates the printing position where the head fire time is delayed as much as the time period corresponding to the distance difference D of the actual printing positions A and B. When aligning the vertical line for printing B by delaying as much as the distance difference D of the two actual printing positions A and B of FIG.1, the error of the horizontal printing position indicated when the bidirectional printing is corrected by the initial controlling when producing the printer and by using the vertical alignment controlling function. That is, the operation is performed in the following orders. First, as shown in FIG.2, in order to get the test printing results for vertical alignment, the test printing for vertical alignment is performed. The printing results (1) to (6) of FIG.2, are obtained through the different vertical alignment value allocated by the printing aligning software. The vertical alignment is finished by selecting the number (4), which has the most arranged vertical line out of the numbers (1) through (6). Here, the vertical alignment value indicates a value for compensating for the difference between the position of the actual-mechanical driving unit generated by the mechanical error and the position sensed by the central processing unit of the system. By delaying the fire time of a printer head, the printing operation is performed. That is, when the user of the printer selects a number having the most arranged vertical line, the printer system converts the distance value corresponding to the distance different D to FIG.1, into the time value and performs the printing operation by delaying the fire time of the printer head, thereby achieving the aligning operation. In the case of the above mentioned conventional method which is aligning the printing position according to the printing results provided by the printer aligning software, as the accuracy of the aligning results is influenced by the interval of the shift values between the actually selected number and its fore or back number, it is impossible to control minutely. Accordingly, when performing the vertical alignment in the conventional invention, according to figures 1 and 2, as the printed results are confirmed with a naked eye, the accuracy cannot be trusted and the skill of the operator influences the quality. As the operations of confirming the printed materials, controlling the compensating value, confirming the printed results, re-control, etc are repeated, it takes much time and effort to align the accurate vertical line. Additionally, although the number is chosen most properly, in the case that a proper value exists between the most proper number and the next number, it has a problem in that it is impossible to perform the minute control more than the predetermined resolution. Patent Abstract of Japan, Vol 13, No 83 (M-802), 27 February 1989 and JP63280671A (SEIKO EPSON CORP) 17 November 1988 discloses a bi-directional serial printer with sensing means to sense the position of the printer head. Misalignment errors are calculated when the position of the printer head is detected as it moves from left to right and right to left. Therefore, it is an object of the present invention to provide an improved printer and control method which reduces image misalignment in bidirectional printing. SUMMARY OF THE INVENTION To achieve the above mentioned object, a bidirectional serial printer according to the invention comprises a reciprocating printer head, sensing means for sensing the position of the printer head as it is moved in both directions, error detecting means for estimating the position of the printer head as it is moved in both directions and determining one or more mechanical error factors representing the difference between a mechanical error present when the head is moving in one direction and a mechanical error present when the head is moving in the other direction, the mechanical error being the difference between the sensed position of the printer head and the estimated position of the printer head, and printing means for compensating for the said mechanical errors by advancing or retarding the firing of the printing head to a degree dependent upon the said mechanical error factors, thus improving the vertical alignment of the printer. The sensing means include a transmitting part and a receiving part. The error detecting means includes means for storing a head fire position HFP and a fire time delay FTD count when the transmitted signal is sensed by the receiving part with the carriage moving in one direction, means for storing a head fire position HFP and a fire time delay FTD count when the transmitted signal is sensed by the receiving part with the carriage moving in the other direction and position difference operating means for calculating the said one or more mechanical error factors from the stored HFP and FTD count values. Also the means for storing a head fire position HFP and a fire time delay FTD count includes adjacent position determination means for determining whether the estimated head position has reached the head fire position HFP corresponding to a first adjacent position, counter operating means for initialising a fire time delay FTD counter when the estimated head position has reached the head fire position HFP corresponding to the first adjacent position and starting the operation of the counter, head fire position increase determination means for determining whether the value of the fire time delay FTD count exceeds a head fire position value and, if so, incrementing the HFP and resetting the FTD counter, sensing determination means for determining whether the signal from the transmitting part of the sensor is sensed by the receiving part; and storing means for storing the head fire position HFP when the said signal is sensed by the said receiving part and storing the fire time delay FTD count. The sensing means may include a transmitting part attached to a reciprocating carriage upon which the printer head is mounted, and a receiving part attached to a main frame of the printer which is adapted to sense a signal transmitted by the transmitting part. Alternatively, the sensing means may include a transmitting part attached to a main frame of the printer and a receiving part attached to a reciprocating carriage upon which the printer head is mounted and which is adapted to sense a signal transmitted by the transmitting part. The means for storing a head fire position HFP and a fire time delay FTD count preferably includes adjacent position determination means for determining whether the estimated head position has reached the head fire position HFP corresponding to a second adjacent position, counter operating means for initializing the fire time delay FTD counter when the estimated head position has reached the head fire position corresponding to the second adjacent position and starting the operation of the counter, head fire position HFP increase determination means for determining whether the value of the fire time delay exceeds a head fire position value and, if so, incrementing the HFP and resetting the FTD counter, sensing determination means for determining whether the signal from the transmitting part of the sensor is sensed by the receiving part and storing means for storing the head fire position HFP when the said signal is sensed by the said receiving part and storing the fire time delay FTD count. Means for controlling the motion of the printer head may be provided, including return position determination means for determining whether the estimated position of the printer head has reached a head fire position HFP corresponding to a return position and moving means for moving the carriage reversely when that condition is met. The means for controlling the motion of the printer head may include start position determining means for determining whether the estimated position of the printer head has reached a head fire position HFP corresponding to a start position and stopping means for stopping the carriage when that condition is met. The position difference operating means may calculate a head fire position HFP difference and a fire time delay FTD difference using the stored HFP and FTD values. Preferably, the printing means includes clock generating means for generating a clock, print starting signal generating means for generating a print starting signal by determining the estimated position of the printing head using the clock signal generated by the clock generating means and enable signal generating means for generating an enable signal by determining the correct printing time in compliance with the fire time delay FTD difference using the clock generated by the clock generating means. The print starting signal generating means may include DPI dividing means for dividing the clock according to the DPI (Dot Per Inch) supported by the serial printer system, head time dividing means for dividing again the divided clock to generate the standard clock frequency per nozzle -from the clock divided by the DPI dividing means, a head time counter for counting the head time based on the clock divided by the head time dividing means, a first comparator for generating a head fire standard clock by comparing the value counted by the head time counter with a predetermined value, position dividing means for generating a clock for controlling operation of the printer motor using the clock generated by the clock generating means, a position up/down counter for performing a counting operation to seek the present position of the printer head using the clock divided by the position dividing means, a second comparator for detecting the estimated head position using the said predetermined value, a head fire position HFP difference input means for receiving the calculated difference of the head fire position HFP and a third comparator for generating the printing signal delayed by as much as the head fire position HFP difference by comparing the value of the estimated head position with the head fire position HFP difference stored in the print starting position register. The enable signal generating means may include resolution dividing means for dividing the clock generated by the clock generating means according to the printing resolution, a fire time delay FTD counter for counting the clock divided by the resolution dividing means, a fire time delay FTD difference input means for receiving the head time delay FTD difference and a fourth comparator for generating an enable signal by delaying the fire time by as much as the fire time delay FTD difference, using the value counted by the FTD counter. The printing means may include a fifth comparator for comparing the print starting signal with the enable signal generated by said enable signal generating means and head driving means for driving the printer head according to the signal output from the fifth comparator, to perform the printing operation delayed sufficiently to compensate for the mechanical error. The present invention also extends to a method of operating a bidirectional serial printer which includes a reciprocating printer head, comprising sensing the position of the printer head as it is moved in both directions, estimating the position of the printer head as it is moved in both directions and determining one or more mechanical error factors representing the difference between a mechanical error present when the head is moving in one direction and a mechanical error present when the head is moving in the other direction, the mechanical error being the difference between the sensed position of the printer head and the estimated position of the printer head and compensating for the said mechanical errors by advancing or retarding the firing of the printing head to a degree dependent upon the said mechanical error factors, thus improving the vertical alignment of the printer, determining whether the estimated head position has reached the head fire position HFP corresponding to a first adjacent position; initialising a fire time delay FTD counter when the estimated head position has reached the head fire position HFP corresponding to the first adjacent position and starting the operation of the counter; determining whether the value of the fire time delay FTD count exceeds a head fire position value and, if so, incrementing the HFP and resetting the FTD counter; determining whether the signal from the transmitting part of the sensor is sensed by the receiving part; and storing the head fire position HFP when the said signal is sensed by the said receiving part and storing the fire time delay FTD count. BRIEF DESCRIPTION OF THE DRAWINGS The present invention will now be described by way of example with reference to the accompanying drawings in which: FIG.1 shows printing errors caused by mechanical error and a printing position sensed by software and also shows the printing positions after vertical alignment; FIG.2 is a diagram showing the test-printing results for vertical alignment; FIG.3 is a sectional view showing a carrier system of a printer according to the present invention; FIG.4A AND 4B are flowcharts showing the function of the sensing device according to the present invention; FIG.5 is an arrangement plan showing the layout of the operating unit of the sensing device; FIG.6 is a timing chart showing the position where a head fire position signal is located; FIG.7 is a timing chart showing the aligning operation of the position difference according to the present invention; FIG.8 is a diagram showing the arrangement of nozzles in a printer head having 300 DPI and 600 DPI; FIG.9 is a diagram showing two sensor sensing positions provided in an embodiment of the present invention; FIG.10 is a flowchart showing the process of calculating the mechanical error using the embodiment of FIG.9; and FIG.11 is a block diagram showing the system of the present invention for performing the aligning operation of the printing position by using the mechanical error value. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Referring to FIG.3, there is shown a sectional view showing a carrier system of a printer having a sensing unit according to the present invention. The carrier system of the printer includes a main frame 31 which envelops the carrier system; a carrier 32 which contains and moves the printer head; a carrier shaft 33 which plays a rail for moving the carriage; a carrier motor 34 which provides the power for moving the carriage 32; a drive pulley 35 which carries the power provided by the carrier motor 34; a timing belt 36 which carries the power of drive pulley 35 into the carriage 32; a head port 37 which contains the printer head in the carriage 32; and optical sensor 38 provided at the carriage and for generating an optical signal and transmitting the signal into the main frame 31; and sensing wing 39 which senses the optical signal transmitted by the optical sensor 38. FIG.4 is a flowchart showing the control method of bidirectional print position according to the present invention, which includes a first moving step for moving the printer head, ie, the carriage 32; a first processing step for storing the head fire position HFP where the printer head is first sensed by the sensing wing 39 and storing the fire time delay FTD count; a second moving step for moving the printer head reversely; a second processing step for storing the head fire position HFP where the printer head is secondly sensed by the sensing wing 39 and storing the fire time delay FTD count; a stopping step for stopping the movement of the printer head; a position difference operating step for calculating the position difference value of the printer head sensed by the sensing wing 39; and a printing step for performing the printing operation by shifting as much as the difference value. Here, the first processing step includes an adjacent position determination step 404 for determining whether the printer head is arrived at the head fire position HFP corresponding to a first adjacent position; a counter operating step 405 for initializing the fire time delay FTD when the printer head is arrived at the first adjacent position as a result of the adjacent position determination and for starting the operation of the counter; a head fire position HFP value increase determination step 406 for determining whether the counter value of the fire time delay FTD exceeds the head fire position HFP value; a step for performing again the counter operating step in the case that the head fire position HFP value is increased as a result of the head fire position HFP value increase determination; a sensing determination step 407 for determining whether the printer head is sensed by the sensing wing 39 in the case that the head fire position HFP value is not increased as a result of the head fire position HFP value increase determination; a step for performing again the head fire position HFP value increase determination in the case that the printer head is not by the sensing wing 39 as a result of the sensing determination; a storing step 408 for storing the head fire position HFP where the signal is sensed in the case that the signal is sensed by the sensing wing 39 as a result of sensing determination and storing the fire time delay FTD count in memory. On the other hand, the second moving step includes a return position determination step 409 for determining whether the printer head is arrived at the head fire position HFP corresponding to a return position; and a step 410 for moving reversely the printer head in the case that the printer head is arrived at the return position as a result of return position determination. The second processing step includes an adjacent position determination step 411 for determining whether the printer head is arrived at the head fire position HFP corresponding to a second adjacent position; a counter operating step 412 for initializing the fire time delay FTD counter when the printer head is arrived at the second adjacent position as a result of the adjacent position determination and starting the operation of the counter; a head fire position HFP value increase determination step 413 for determining whether the counter value exceeds the unit head fire position HFP value; a step for performing again the counter operating step 412 in the case that the head fire position HFP value is increased as a result of the head fire position HFP value increase determination; a sensing determination step 414 for determining whether the printer head is sensed by the sensing wing 39 in the case that the head fire position HFP value is not increased as a result of the head fire position HFP value increase determination; a step for performing again the head fire position HFP value increase determination in the case that the printer head is not sensed by the sensing wing 39 as a result of the sensing determination; and a storing step 415 for storing the head fire position HFP where the signal is sensed in the case that the signal is sensed by the sensing wing 39 as a result of sensing determination and storing the fire time delay FTD count in the memory. Here, the stopping step includes a start position determination step 416 for determining whether the printer head is arrived at the head fire position HFP corresponding to the start position; and a stopping step 417 for stopping the movement of the printer head in the case that the printer head is arrived at the start position as a result of the start position determination. The printing step includes an allowable error determination step 419 for determining whether the differences of the head fire position HFP and the fire time delay FTD are within the reach of an allowable error; a step 422 for repeatedly performing the aligning-operation in the case that the differences are beyond the reach of the allowable error as a result of the allowable error determination; a printing step 420 for performing the printing operation by shifting as much as the error value in the case that the differences are within the allowable error as a result of the allowable error determination; and a step 421 for conforming the printer position with the printed materials. FIG. 5 is an arrangement plan showing a layout of the operating unit of the sensing apparatus, which includes an optical sensor position 51 () for indicating the present position of an optical sensor; a waiting position 52 for indicating the print starting position when the printer system is initialized; a standard position 53 for indicating the position printed by the central position unit; adjacent positions 56 and 57 which store a standard clock value (i.e., fire time delay FTD counter value) in a register in order to gain the minute fire time delay FTD value when the optical sensor 35 provided at the carriage 32 is arrived at the standard position 53 sensed by the central processing unit; a return position 54 which indicates the position where the carriage is returned reversely after being proceeded at a predetermined distance; and a sensing wing 39 which receives the signal transmitted from the optical sensor and transmits the results to the central processing unit. Here, positions (1) to (8) indicate the position of the optical sensor 51 provided at the carriage during operation. FIG. 6 is a timing chart showing the generating position of the head fire position HFP according to each clock frequency, which includes a standard clock timing chart 61 which indicates the fixed standard clock unit provided by the system; and a head fire position HFP signal timing charge 62 which indicates the head fire position HFP signal generated by dividing the standard clock. Here, the head fire position HFP signal is variable according to the speed of the carriage. For example, when the moving speed of the carriage is increased, the division ratio is also increased by multiplying the predetermined variable. Moreover, the head fire position HFP indicates the position where the printer head actually prints, and the fire time delay FTD indicates the actually printed position after the fire position is decided by using the standard clock as a basic unit. As an embodiment, the fire time delay FTD counter uses clock pulse for 10MHz, i.e., 01µs, and the head fire position HFP counter uses clock pulse of 10/32 x 1/62MHz i.e., 198.4µs by dividing the fire time delay FTD count into 32 x 62 according to the function of the head. The head fire position HFP value is counted when the operation of the printer system is performed and it indicates the position of the printer head. Moreover, the fire time delay FTD counter is operated from the moment when the head fire position HFP counter value is the same as the number indicating the "adjacent position". Here, the number of the fire time delay FTD count per the head fire position HFP can be obtained as the following ways. As shown in FIG. 8, as 16 nozzles make one group of 48 nozzles make total three groups, the standard clock frequency per one nozzle is actually 1/16 of the actual standard clock frequency. Moreover, though the present printer system realises 1/300", i.e., 300 DPI (Dot Per Inch), the value in designing the system is set as 1/2 of the standard clock frequency, for realising 1/600", i.e., 600 DPI. Accordingly, the 32-division is obtained by 1/2 x 1/16. Here, the condition of 32-division indicated that the head is in an ideal state, and at this time, a head of 3.2µs, i.e., 312.5 KHz is needed. However, as the real head is 5 Khz, the head fire period is sixty-two (62) times of the value,; as illustrated in the following formula: 0.1µs x 32 x 62 = 198.4 µs (that is, 5 Khz) Moreover, the standard clock frequency of the fire time delay FTD counter uses a value of 8-division, i.e., 0.8µs considering the proper resolution. Accordingly, the number of the fire time delay FTD count per the head fire position is 198.4/0.8 = 248. Referring to FIG. 7, there is shown a timing chart showing the alignment the position difference. In the drawing, there is provided a head fire position HFP signal timing chart 71 for indicating the head fire positions HFPs (N to N +4 ) between the adjacent positions 56 and 79, and the adjacent positions 57 and 80; a standard clock signal 72 for indicating the standard clock signal which one head fire position HFP has; a standard position 78 for indicating the position printer by the central processing unit; a timing charge 73 for showing a position 75 where a sensing wing 39 senses the first optical sensor signal input; a timing charge 74 for showing a position 76 where a sensing wing 39 senses the second optical sensor signal input' a mechanical error 77 for indicating the difference between the position 75 sensing the first optical sensor signal input and the position 76 sensing the second optical sensor signal input by the sensing wing 39. As shown in FIG. 7, the first optical sensor signal sensing position 75 calculated by-using the head fire position HFP signal 71 which the first optical sensor signal input is sensed and using the standard clock signal 72, i.e., the fire time delay FTD is indicated by adding the head fire position N +2 to the standard clock 6; and the second optical sensor signal sensing position 76 calculated by using the head fire position HFP signal 71 which the second optical sensor signal input is sensed and using the standard clock signal 72 is indicated by adding the head fire position N to the standard clock 5. The value of the mechanical error between the position 75 where the first optical sensor signal input is sensed and the position 76 where the second optical sensor signal input is sensed by the sensing wing 39 is calculated by adding the head fire position 2 to the standard clock 1. Accordingly, after calculating the minute value by dividing the position difference 77 generated by the mechanical error by the head fire position HFP unit and the standard clock unit, the printing position is aligned by delaying the printing time as much as the calculated value of the mechanical error (i.e., the head fire position 2 and the standard clock 1), when the printing operation is actually performed. FIG. 11 illustrates a systematic block diagram according to the present invention for performing the printing operation by using the calculated value of the mechanical error. As shown in the drawing, the printing apparatus according to the present invention includes a clock generating unit 1101 for generating clock in order to adjust the synchronism of the serial printer system; a print starting signal generating unit B1 for generating the print starting signal by determining the printing position in compliance with the head fire position HFP difference calculated using the clock generated by the clock generating unit 1101; an enable signal generating unit B2 for generating an enable signal by determining the printing position in compliance with the fire time delay FTD difference calculated using the clock generated by the clock generating unit 1101; and a printing unit B3 for performing the printing operation delayed as much as the calculated mechanical error by comparing the print starting signal generated by the print starting signal generating unit B1 with the enable signal generated by the enable signal generating unit B2. The print starting signal generating unit B1 includes a DPI dividing unit 1102 for dividing the clock according to the DPI supported by the serial printer system; a head time dividing unit 1103 for dividing again the divided clock to generate the standard clock frequency per one nozzle after receiving the clock divided by the DPI dividing unit 1102; a head time counter 1104 for counting the head time based on the clock divided by the head time dividing unit 1103; a software register 1108 for registering the information on the function of the head; a comparator 1105 for generating the head fire standard clock by comparing the value counted by the head time counter 1004 with the value stored in the software register 1008; a position dividing unit 1109 for generating the clock for performing the controlling operation of the motor of the printer system by using the clock generated by the clock generating unit 1101; a position up/down counter 1110 for performing the counting operation to seek the present position of the head by using the clock divided by the position dividing unit 1109; a comparator 1111 for generating the actual head position by using the value stored in the software register 1108; a head fire position HFP difference input unit 1112 for receiving the calculated head fire position HFP difference; a print starting position register 1113 for storing the inputted head fire position HFP difference; a comparator 1114 for generating the printing signal delayed as much as the head fire position HFP difference by comparing the actual head position value generated by the comparator 1111 with the head fire position HFP difference stored in the print starting position register 1113. As shown in the drawing, the printing apparatus according to the present invention includes a clock generating unit 1101 for generating clock in order to adjust the synchronism of the serial printer system; a print starting signal generating unit B1 for generating the print starting signal by determining the printing position in compliance with the head fire position HFP calculated using the clock generated by the clock generating unit 1101; an enable signal generating unit B2 for generating an enable signal by determining the printing time upon the predetermined printing position in compliance with the difference of the fire time delay FTD calculated using the clock generated by the clock generating unit 1101; and a printing unit B3 for performing the printing operation delayed as much as the calculated mechanical error by comparing the print starting signal generated by the print starting signal unit B1 with the enable signal generated by the enable signal generating unit B2. The enable signal generating unit B2 includes a resolution dividing unit 1115 for dividing the clock generated by the clock generating unit 1101 considering the proper printing resolution; an FTD counter 1116 for performing the counting operation based upon the clocks divided by the resolution dividing unit 1115; an FTD difference input unit 1118 for receiving the calculated fire time delay FTD difference; a software delay register 1119 for storing the inputted fire time delay FTD difference; and a comparator 1117 for generating an enable signal by delaying the fire time after comparing the value counted by the FTD counter 1116 with the fire time delay FTD difference stored in the software delay register 1119. The printing unit B3 includes a comparator 1106 for comparing the print start signal generated by the print start signal B1 with the enable signal generated by the enable signal generating unit B2; and a head driving unit 1107 for driving the printer head according to the signal outputted by the comparator 1106 to perform the printing delayed as much as the calculated mechanical error. Referring to FIGS. 4A and 4B, FIG.5 and FIG. 7, the apparatus for automatically controlling the bidirectional printing position in a serial printer according to the present invention will be described. First, after the power supply of the printer system is turned on, the initial value of the printer head fire position HFP is set. After that, a step 401 is performed for initializing the printer system in order to set the initial position (1) of the optical sensor 38 and initialising a variable N which counts the number of aligning times of the vertical line to zero 0. After initializing the printer system, a step 402 is performed so that the vertical alignment can be requested by the user. At this time, the user can operated directly the option key of the printer to perform the vertical alignment when the printer system is initialized. After receiving the request for vertical alignment from the user, a step 403 is performed so that the sensing wing 39 attached to the main frame 31 can move the carriage 32 having the optical sensor 38 to the position (2) in a printing speed. A step 404 is performed for determining whether the head fire position HFP of the carriage 32 having the optical sensor 38 is at the adjacent position 1, when the carriage is moved. When the head fire position HFP of the carriage 32 having the optical sensor 38 is not at the adjacent position 1, a step 403 is performed to continuously move the carriage 32 by the sensing wing 39 in a printing speed. On the other hand, when the head fire position HFP of the carriage 32 having the optical sensor 38 is at the adjacent position 1, i.e., (3) a step 405 is performed for initializing the fire time delay FTD counter and starting the operation of the counter. At this time, in the case that the fire time delay FTD count is stored from the position O of the head fire position HFP, there is a problem in that the large amount of the memory is needed as the data being stored in the memory is increased. Accordingly, when operating the fire time delay FTD counter after being arrived at the position adjacent to the standard position, it has an effect to save the memory. After operating the counter, a step 406 is performed to determine whether the head fire position HFP value is increased. When the head fire position HFP value is increased by one (1) as a result of the above-described determination, a step 405 is performed again for initialising the fire time delay FTD counter and starting the operation of the counter. On the other hand, when the head fire position HFP value is not increased by one (1) as a result of the above-described determination, a step 407 is performed to determine whether the optical light transmitted by the optical sensor 38 is sensed by the sensing wing 39. Here, when the optical light transmitted by the optical sensor is not sensed by the sensing wing 39, a step 406 is performed again to determine whether the head fire position HFP value is increased by one (1). In the case that the optical light transmitted by the optical sensor 38 is sensed by the sensing wing 39 at the position (4), (that is, the first sensor signal sensing position 75 of FIG. 7) after determining whether the optical light transmitted by the optical sensor 38, a step 408 is performed for storing the present value N +2 of the head fire position HFP and the fire time delay FTD count 6 in the register 1. A step 409 is performed to determine whether the present position of the carriage, ie, the head fire position is a return position as the carriage is continuously moved to position (5). In the case that the head fire position HFP is at the return position, a step 410 is performed to reversely move in a printing speed the carriage 32 having the optical sensor 38 by using the sensing wing 39 attached to the main frame 31. A step 411 is performed to determine whether the head fire position HFP of the carriage 32 having the optical sensor 38 is at the adjacent position 2. In the case that the head fire position HFP of the carriage 32 having the optical sensor 38 is not at the adjacent position 2, a step 410 is performed to continuously move the carriage 32 by the sensing wing 39 in a printing speed. On the other hand, in the case that the head fire position HFP of the carriage having the optical sensor 38 is at the adjacent position 2, ie, (6), a step 412 is performed for initializing the fire time delay FTD counter and starting the operation of the counter. After operating the counter, a step 413 is performed to determine whether the head fire position HFP value is increased by one (1). When the head fire position HFP value is increased by one (1) as a result of the above-described determination, a step 412 is performed again to initialize the fire time delay FTD counter and to start the operation of the counter. In the case that the head fire position HFP value is not increasing by one (1), a step 414 is performed to determine whether the optical light transmitted by the optical sensor 38 is sensed by the sensing wing 39. At this time, when the optical light transmitted by the optical sensor 38 is not sensed by the sensing wing 39, a step 413 is performed to determine whether the head fire position value is increased by one (1). After determining whether the optical light transmitted by the optical sensor 38 is sensed by the sensing wing 39, when the optical light transmitted by the optical sensor 38 is sensed by the sensing wing at the position (7) (that is, the second sensor signal sensing position 76 of FIG 7), a step 415 is performed for storing the present value N of the head fire position HFP and the fire time delay FTD count 5 in the register 2. A step 416 is performed to determine whether the present position of the carriage 32 is the start position, as the carriage 32 is continuously moved. When the head fire position HFP is start position (8), a step 417 for stopping the movement of the carriage 32 is performed. A step 418 is performed to obtain the difference 77 generated by the mechanical error shown in FIG. 7, by using the values stored in the register 1 and register 2. Thereafter, a step 419 is performed to determine whether the calculated position difference (that is, the head fire position 2 and the standard clock 1) is within the reach of the allowable error. At this time, the allowable error is used to prevent the error between the actual position difference caused by the other mechanical problem and the position difference calculated as aforesaid. Moreover, the allowable error can be set when the printer system is manufactured, or the user can determine the allowable error with the option key. In the case that the head fire position HFP difference and the fire time delay FTD difference are within the allowable error, a step 420 is performed so that the head fire position HFP difference can be stored in the print starting position register 1113 via the HFP difference input unit 1112, and the fire time delay FTD difference can be stored in the software delay register 1119 via the FTD difference input unit 1118. After the head fire position HFP difference is stored in the print starting position register 1113 and the fire time delay FTD difference is stored in the software delay register 1119, a step 421 is performed for testing to confirm the aligned vertical line print position, and then the vertical alignment operation is completed. On the other hand, when the head fire position HFP difference and the fire time delay FTD difference are beyond the allowable error as a result of the allowable error determination as described above, a step 422 is performed to determine the number of control times for performing the control operation up to 3,times. In the case that the number of the vertical line aligning times is less than 3, the vertical alignment operation is performed again starting from the step 403. Here, when the number is larger than 3, an error occurs. The process for calculating the mechanical error according to the present invention will be described as follows. Referring to FIG. 9, when a position 901 where the first sensor signal is sensed is 4000HFP + 100FTD and a position 902 where the second sensor signal is sensed is 4004HFP + 50FTD, the mechanical error is obtained as shown in FIG. 10. First, the head fire position HFP difference is obtained. (Step 1001) That is, 3 is obtained by calculating 4004-4000-1. After the head fire position HFP difference is obtained, it is determined whether the sum of the fire time delay FTD of the first and second sensor signal sensing positions is larger than 248. (Step 1002) That is, 100+50 is compared with 248. In the case that the sum of the fire time delay FTD of the two sensor signal sensing positions is larger than 248 as a result of the above-described determination, the head fire position HFP difference is increased by 1, and the fire time delay FTD difference is obtained by extracting the sum of the fire time delay FTD of the two positions from 248 x 2. (Step 1003). On the other hand, in the case that the sum of the fire time delay FTD of the two positions is smaller than 248, the fire time delay FTD difference is obtained by extracting the sum of the fire time delay FTD of the two positions from 248. (Step 1004) The operation for performing the print control by using the value of the mechanical error calculated as aforesaid is as follows. Referring to FIG. 11, the comparator 1105 generates clock pulse of 10/32 x 1/62 MHz (198.4 µs) by dividing the head fire standard clock according to the clock which clock pulse of 10 MHz (0.1 µs) generated by the clock generating unit 1101 is divided into 32 via the DPI dividing unit 1102, the head time dividing unit 1103 and the head time counter 1104, and according to the function of the printer head stored in the software register 1108. Moreover, the position up/down counter 1110 performs the counting operation by dividing the clock pulse of 10 MHz (0.1 µs) generated by the clock generating unit 1101 into 32 by the position dividing unit. The head fire standard clock which is divided into 32 x 62 by the comparator 1111 is generated, according to the function of the printer head stored in the software register 1108. The HFP difference is stored in the print starting position register 1113 via the HFP difference input unit, and the value outputted from the comparator 1111 and the value stored in the print starting position register 1113 are compared in the comparator 1114, thereby the fire start signal is generated. That is, the printing operation is performed delayed as much as the head fire position value stored in the print starting position register 1113. The clock pulse of 10MHz, ie 0.1 µs generated by the clock generating unit 1101 is divided into 8 by the resolution dividing unit 1115, and the FTD counter 1116 starts the counting operation. Additionally, the enable signal is generated by comparing the value of the FTD difference stored in the software delay register 1119 via the FTD difference input unit 1118 with the value of the FTD counter 1116. That is, the printing operation is performed delayed as much as the value of the fire delay time stored in the software delay register 1119. After comparing the value of the head fire standard clock generated by the comparator 1105, the fire start signal generated by the comparator 1114, and enable signal generated by the comparator 1117, the head driving unit 1107 is driven and the printing operation is performed. As described above, since the vertical alignment operation according to the present invention which has depended only upon a user's judgment is now decided by the stability of the sensor and the accuracy of the clock signal, the accuracy in setting the printing position is realized and the printing quality is enhanced. As the operation is performed by the printer system instead of the user's judgment, the control operation is quickly performed and high productivity is realised. Additionally, in the case that the printing condition of the vertical lines is changed when using the printer, the setting order button can be pressed and the default is always used when starting the operations of the system.

Claims: A bidirectional serial printer comprising: a reciprocating printer head; sensing means for sensing the position of the printer head as it is moved in both directions; error detecting means for estimating the position of the printer head as it is moved in both directions and determining one or more mechanical error factors representing the difference between a mechanical error present when the head is moving in one direction and a mechanical error present when the head is moving in the other direction, the mechanical error being the difference between the sensed position of the printer head and the estimated position of the printer head; printing means for compensating for the said mechanical errors by advancing or retarding the firing of the printing head to a degree dependent upon the said mechanical error factors, thus improving the vertical alignment of the printer; characterised in that the sensing means includes a transmitting part and a receiving part; the error detecting means includes: means for storing a head fire position HFP and a fire time delay FTD count when the transmitted signal is sensed by the receiving part with the carriage moving in one direction; means for storing a head fire position HFP and a fire time delay FTD count when the transmitted signal is sensed by the receiving part with the carriage moving in the other direction; and position difference operating means for calculating the said one or more mechanical error factors from the stored HFP and FTD count values; and the means for storing a head fire position HFP and a fire time delay FTD count includes: adjacent position determination means for determining whether the estimated head position has reached the head fire position HFP corresponding to a first adjacent position; counter operating means for initialising a fire time delay FTD counter when the estimated head position has reached the head fire position HFP corresponding to the first adjacent position and starting the operation of the counter; head fire position increase determination means for determining whether the value of the fire time delay FTD count exceeds a head fire position value and, if so, incrementing the HFP and resetting the FTD counter; sensing determination means for determining whether the signal from the transmitting part of the sensor is sensed by the receiving part; and storing means for storing the head fire position HFP when the said signal is sensed by the said receiving part and storing the fire time delay FTD count. Apparatus according to claim 1 in which the sensing means includes a transmitting part attached to a reciprocating carriage upon which the printer head is mounted, and a receiving part attached to a main frame of the printer which is adapted to sense a signal transmitted by the transmitting part. Apparatus according to claim 1 in which the sensing means includes a transmitting part attached to a main frame of the printer and a receiving part attached to a reciprocating carriage upon which the printer head is mounted and which is adapted to sense a signal transmitted by the transmitting part. Apparatus according to claim 2 or claim 3 in which the means for storing a head fire position HFP and a fire time delay FTD count includes: adjacent position determination means for determining whether the estimated head position has reached the head fire position HFP corresponding to a second adjacent position; counter operating means for initializing the fire time delay FTD counter when the estimated head position has reached the head fire position corresponding to the second adjacent position and starting the operation of the counter; head fire position HFP increase determination means for determining whether the value of the fire time delay counter exceeds a head fire position value and, if so, incrementing the HFP and resetting the FTD counter; sensing determination means for determining whether the signal from the transmitting part of the sensor is sensed by the receiving part; and storing means for storing the head fire position HFP when the said signal is sensed by the said receiving part and storing the fire time delay FTD count. Apparatus according to claims 1, 2 or 3 in which means for controlling the motion of the printer head are provided including: return position determination means for determining whether the estimated position of the printer head has reached a head fire position HFP corresponding to a return position; and moving means for moving the carriage reversely when that condition is met. Apparatus according to claim 4 in which means for controlling the motion of the printer head are provided, including: start position determining means for determining whether the estimated position of the printer head has reached a head fire position HFP corresponding to a start position; and stopping means for stopping the carriage when that condition is met. Apparatus according to any one of claims 1 - 6 in which the position difference operating means calculates a head fire position HFP difference and a fire time delay FTD difference using the stored HFP and FTD values. Apparatus according to claim 7 in which the printing means includes: clock generating means for generating a clock; print starting signal generating means for generating a print starting signal by determining the estimated position of the printing head using the clock signal generated by the clock generating means; enable signal generating means for generating an enable signal by determining the correct printing time in compliance with the fire time delay FTD difference using the clock generated by the clock generating means. Apparatus according to claim 8 in which the print starting signal generating means includes: DPI dividing means for dividing the clock according to the DPI (Dot Per Inch) supported by the serial printer system; head time dividing means for dividing again the divided clock to generate the standard clock frequency per nozzle from the clock divided by the DPI dividing means; a head time counter for counting the head time based on the clock divided by the head time dividing means; a first comparator for generating a head fire standard clock by comparing the value counted by the head time counter with a predetermined value; position dividing means for generating a clock for controlling operation of the printer motor using the clock generated by the clock generating means; a position up/down counter for performing a counting operation to seek the present position of the printer head using the clock divided by the position dividing means; a second comparator for detecting the estimated head position using the said predetermined value; a head fire position HFP difference input means for receiving the calculated difference of the head fire position HFP; and a third comparator for generating the printing signal delayed by as much as the head fire position HFP difference by comparing the value of the estimated head position with the head fire position HFP difference stored in the print starting position register. Apparatus according to claim 8 or claim 9 in which the enable signal generating means includes: resolution dividing means for dividing the clock generated by the clock generating means according to the printing resolution; a fire time delay FTD counter for counting the clock divided by the resolution dividing means; a fire time delay FTD difference input means for receiving the fire time delay FTD difference; and a fourth comparator for generating an enable signal by delaying the fire time by as much as the fire time delay FTD difference, using the value counted by the FTD counter. Apparatus according to any one of claims 8-10 in which the printing means includes: a fifth comparator for comparing the print starting signal with the enable signal generated by said enable signal generating means; and head driving means for driving the printer head according to the signal output from the fifth comparator, to perform the printing operation delayed sufficiently to compensate for the mechanical error. A method of operating a bidirectional serial printer which includes a reciprocating printer head, comprising: sensing the position of the printer head as it is moved in both directions; estimating the position of the printer head as it is moved in both directions and determining one or more mechanical error factors representing the difference between a mechanical error present when the head is moving in one direction and a mechanical error present when the head is moving in the other direction, the mechanical error being the difference between the sensed position of the printer head and the estimated position of the printer head; compensating for the said mechanical errors by advancing or retarding the firing of the printing head to a degree dependent upon the said mechanical error factors, thus improving the vertical alignment of the printer; characterised by determining whether the estimated head position has reached a head fire position HFP corresponding to a first adjacent position; initialising a fire time delay FTD counter when the estimated head position has reached the head fire position HFP corresponding to the first adjacent position and starting the operation of the counter; determining whether the value of the fire time delay FTD counter exceeds a head fire position value and, if so, incrementing the HFP and resetting the FTD counter; determining whether the signal from the transmitting part of the sensor is sensed by the receiving part; and storing the head fire position HFP when the said signal is sensed by the said receiving part and storing the fire time delay FTD count. A method according to claim 12 further including: determining whether the estimated head position has reached the head fire position HFP corresponding to a second adjacent position; initializing the fire time delay FTD counter when the estimated head position has reached the head fire position corresponding to the second adjacent position and starting the operation of the counter; determining whether the value of the fire time delay counter exceeds a head fire position value and, if so, incrementing the HFP and resetting the FTD counter; determining whether the signal from the transmitting part of the sensor is sensed by the receiving part; and storing the head fire position HFP when the said signal is sensed by the said receiving part and storing the fire time delay FTD count. A method according to claim 12 further comprising: determining whether the estimated position of the printer head has reached a head fire position HFP corresponding to a return position; and moving the carriage reversely when that condition is met. A method according to claim 13 further comprising: determining whether the estimated position of the printer head has reached a head fire position HFP corresponding to a start position; and stopping the carriage when that condition is met. A method according to claim 12 in which a head fire position HFP difference and a fire time delay FTD difference are obtained using the stored HFP and FTD values. A method according to claim 16 further comprising: determining whether the head fire position HFP difference and the fire time delay FTD difference are within an allowable error; repeatedly performing the method if the differences are beyond the allowable error; and performing the printing operation if the differences are within the allowable error.

Inventors: KIM DONG HUN, KIM, DONG HUN
Applicants: SAMSUNG ELECTRONICS CO LTD, SAMSUNG ELECTRONICS CO., LTD.
Application year: 1997
Main classification: B41J19
IPC codes: B41J19, B41J5