GB2034087A - Dot matrix character printer with variable speed control - Google Patents

Dot matrix character printer with variable speed control Download PDF

Info

Publication number
GB2034087A
GB2034087A GB7935190A GB7935190A GB2034087A GB 2034087 A GB2034087 A GB 2034087A GB 7935190 A GB7935190 A GB 7935190A GB 7935190 A GB7935190 A GB 7935190A GB 2034087 A GB2034087 A GB 2034087A
Authority
GB
United Kingdom
Prior art keywords
print head
transition
increment
signal
signals
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB7935190A
Other versions
GB2034087B (en
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of GB2034087A publication Critical patent/GB2034087A/en
Application granted granted Critical
Publication of GB2034087B publication Critical patent/GB2034087B/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/10Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers by matrix printers

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Character Spaces And Line Spaces In Printers (AREA)
  • Dot-Matrix Printers And Others (AREA)
  • Impact Printers (AREA)

Abstract

A dot matrix character printer can print characters at variable speeds and with variable pitches (widths), using transition and increment counter means (86) comprising programmable radix counters which control actuation of the printing solenoids based on print head position, with the actuation position being varied with print head velocity, to compensate for the distance travelled by the print head during the time between solenoid actuation and print wire impact; this permits operation at variable printing rates. Printing rate is limited by the cyclic rate of the print head, with an additional limitation based on dot printing density which prevents excessive heating of the printing solenoids. There may be a single column of print rods, or two columns with relative vertical displacement of half a dot spacing for better quality. <IMAGE>

Description

SPECIFICATION Dot matrix character printer with variable speed control This invention relates to the field of electronically controlled character printers, particularly dot matrix printers which form characters as an array of dots at available locations. More specifically, this invention relates to a control system for such printers to permit the printing, at variable speeds, of characters having different pitch, with the capability of printing characters of different pitch on the same line.
Dot matrix character printers are well known in the art, particularly for use as output devices for computers and other electronic devices. These printers are used to produce printed character output on a paper medium in response to receiving electronic signals which correspond to the characters of the available character sets.
Individual characters are formed from an appropriate combination of dots selected from an array of available dot locations. Generally, these dot locations are arranged in an n-column by mrow matrix. A printing head contains a solenoidoperated print rod for each location in the matrix.
When the printing of a character requires that a dot be written in a particular location, the corresponding solenoid in the printing head is activated; this causes the associated printing rod to be flung (or "fired") in the direction of the paper (i.e., "target"). An inked printing ribbon is interposed between the printing head and the paper. Thus, the fired printing rod impacts the ribbon and prints an impression pf its end surface on the paper. The printing rod is actually a thin wire-shaped element with a flat end having a round cross section. It is this end which forms a dot on the paper.
Typically, the printing head of a dot matrix printer contains printing solenoids. These are assembled into close proximity with each other.
The activation of these printing solenoids causes them to heat up. Dissipation of solenoid heat is normally not a problem in slow speed character printers. However, it has been observed to sometimes become a problem in high speed dot matrix character printers. When the print head is activated for a substantial time and the characters to be generated in a relatively short interval require the printing of a somewhat higher than average number of dots during that interval, solenoid heat may be inadequately dissipated.When that happens, solenoid response characteristics may be altered due to parametric variations, and one or more of the printing rods may cause a dot to be printed slightly earlier or iater than intended, or even not at all.This degrades the appearance of dots and characters printed under such conditions and may, under severe conditions, even lead to the printing of unrecognizable or incorrect characters. Solenoid power supply failure or degraded performance may also result, as a greater load is imposed thereon. And excessive heat may cause permanent damage to the solenoids or other components. Considerable efficiency is lost if the character printing rate is significantly reduced :n order to avoid the solenoid heat dissipation problem, since high reliability would require a substantial reduction in speed.
Typicaily in the prior art, in order to change the pitch of printed characters, it has been necessary to provide additional tracks on the encoder at different pitches or to physically change the encoder-to-carriage "gear" ratio. These approaches have typically been cumbersome and not conducive to changing pitch on a character to character basis.
It should also be noted that the printing heads of prior art printers generally have their print rods all arrayed in a single vertical column. Unless the printhead is capable of vertical motion, this means that dots formed by adjacent print wires (or rods) cannot overlap; some dot spread caused by the ribbon may, however, allow some blending together of adjacent dots, but resolution is ultimately limited to that provided by tangentially touching dots.
The printer embodying the present invention is designed to permit the printing of dot-matrix characters of different pitches (i.e., horizontal widths). Character pitch is selectable and variable on a character by character basis, if desired.
Electronic signals under the user's control provide for pitch selection. Provision is also made to control the printing speed electronically, to achieve smooth starting and stopping of the carriage while maximizing the character printing rate. The maximum printing speed is limited by the speed at which the print head solenoids can operate. However, if the text to be printed requires a dot printing rate which would result in overheating of the print solenoids or their power supply, the printing speed is reduced until a safe dot printing rate is achieved. The maximum permissible dot printing rate is a system parameter empirically derived.
Variable rate character printing requires that the printing head carriage traverse the paper at a variable rate. Because the rate of carriage travel is appreciable with respect to the time between a solenoid actuation command and the time the associated printing rod strikes the paper, it is necessary to compensate for variations in the carriage motion in order to always have the printing rods strike the paper in a desired position; this position is, of course, intended to be insensitive to the character printing rate. The situation is analogous to the case of a hunter shooting at a moving duck from a fixed location.In order to allow for the motion of the duck during the time his bullet is in flight, the hunter must aim ahead of the duck; this character printer merely presents the converse situation since the target is fixed and the projectile is fired from a moving platform, although the relative motion problem is the same. Means are therefore provided for deriving a correction factor for actuating the solenoids at the proper times to compensate for the instantaneous rate of carriage motion relative to the paper.
Additionally, in the preferred embodiment of the invention, the print rods are arranged in two columns such that the print rods in one of the columns are vertically displaced with respect to the print rods in the other column. This permits a higher resolution (i.e., density) dot printing and allows dots to be overlapped a significant amount, so that the dot matrix characters more nearly approximate conventionally printed characters. Separate solenoid firing time signals are required for each column of print rods, to account for their different horizontal positions at any given time.
The printer embodying the present invention also provides such features as the capability of allowing the user to change type fonts and pitch from character to character within the line.
In order that the invention may be more readily understood, reference will now be made to the accompanying drawings, in which: Figure 1 is a high level functional block diagram of a dot matrix character printer embodying the present invention; Figure 2 is a diagrammatic illustration of a seven-wire printing head, further depicting one possible mapping of dot buffer output lines to solenoids; Figure 3 is a diagrammatic illustration of an eleven-wire printing head, further depicting one possible mapping of dot buffer output lines to solenoids; Figure 4 is a functional block diagram of the Printer Control Circuit (PCC) of Figure 1; Figure 5 is a state transition diagram of the Print Enable Circuit of Figure 4; Figure 6 is a state table for the Print Enable Circuit; Figure 7 is an overall functional block diagram of the encoder signal processor of Figure 4;; Figure 8 is a detailed block diagram of the signal filters of Figure 7; Figure 9 is a detailed block diagram of the transition detector of Figure 7; Figure 10 is a detailed block diagram of the direction detector of Figure 7; Figure 11 is a detailed block diagram of the transition and increment counter of Figure 4; Figure 12 is a detailed block diagram of the pulse stretcher of Figure 4; and Figure 13 is a diagram of the method steps involved in computing the flight time compensation count and for controlling the transition adder.
Referring now to Figure 1, there is shown a high-level functional block diagram of a dot matrix character printer embodying the present invention.
Paper 12 is the output medium on which the printing is performed. The paper is normally carried on sprockets 1 4A, 1 4B passed a print bar not shown, according to conventional practice.
The print bar serves the same basic purpose as a platen (i.e., acts a hard backing surface to print against) except that it does not move the paper.
The edges of the paper contain evenly spaced vertical holes which mate with the teeth of drive sprockets 1 4A and 1 4B for vertically feeding the paper. Images are formed on the paper by a ribbon 1 6 which may be carried between a pair of ribbon reels 1 8A and 1 8B or may be a cartridge type ribbon wound on one reel or spool. The print rods or wires from print head 20 force the inked ribbon 1 6 onto the paper 12 and against the print bar, to cause an image of the print rod to be formed on the paper. Print head 20 is carried on a carriage which traverses the paper for positioning the print head in the proper location as each column of dots is printed.Printing mechanism 22 comprises a mechanical assembly which includes the carriage and the necessary linkages and so forth for moving the carriage, together with a ribbon advancement mechanism for winding the ribbon (e.g., onto reel 18B) as it is used. The printer mechanism also includes conventional mechanical linkages for connecting the line feed stepper motor 24 to the tractors or drive sprockets 1 4b and for connecting the carriage motor 26a to the carriage motion mechanism.
A printer control circuit (PCC) 30 provides the actual control signals which cause the carriage to move to the proper location and the appropriate print solenoids to be energized. PCC 30 provides basically three types of control signals as outputs.
A line feed control signal is provided as the first output on line 32 to line feed amplifier 34. In turn, line feed amplifier 34 provides the required drive signal to the line feed stepper motor 24, to cause the line feed advance mechanism to move the drive sprockets an appropriate distance to advance the paper one line space. A carriage drive control signal is the second PCC output; it is provided on line 36 to carriage motor amplifier 38.
The carriage motor amplifier, in turn, provides the drive signal to carriage motor 26A, for controlling the motion of the carriage. The carriage motor is also equipped with an incremental shaft position encoder 26B for providing an output signal on line 42, to the PCC, representative of the change in angular position of the motor shaft. Since the rotational position of the carriage motor shaft directly corresponds to the position of the carriage and, in particular, the print head, the signal on line 42 represents the position and position changes of the print head. The third output of the PCC is a print head control signal provided on line 44 to the print head driver 46. The print head driver 46, responsive to signals provided on line 44, provides an actuation signal to appropriate solenoids in the print head 20 to cause the associated dots to be printed at a desired location.
For use with a computer, or other similar source of data to be printed, the printer is provided with an input interface 48. This interface provides appropriate input'buffering for capturing the data-to be printed. A table of character-to-dot patterns stored in ROM 56 of sequential controller 50 is used to convert the character information provided by the input data source into dot matrix information representing each character to be printed. By varying the character-to-dot pattern mapping, different fonts (such as differed -t typefaces or typefaces for different alphabets - e.g., Cyrillic, Greek, etc.) may be printed.Characters having the same basic font (i.e., typeface) may be spread or compressed in the horizontal dimension by altering the spaces between dots and the blank spaces between characters, thereby altering the pitch of the characters. And, since the mapping must be done on a character-by-character basis ,1 is possible to change character size and font on the same basis. There is no provision for changing the size of printed characters in the vertical dimension if the number of vertical print rod positions would thereby be exceeded, but various character widths can be accommodated and vertically compressed or stretched characters can be generated using less than, or at most, the full number of vertically available print rod positions.
A sequential controller 50 for generating PCC control or command signals and provided character-to-dot mapping comprises a processor unit 52, random access memory (RAM) 54 and a read only memory (ROM) 56. Interface 48, processor 52, RAM 54, ROM 56 and PCC 30 are all interconnected via a bus or communication link 58.
Character information to be printed is fed from the input interface 48, via bus 58, to RAM 54, where it is temporarily stored. ROM 56 controls the operation of the processor 52 and the data paths between the various elements connected to the bus 58. Using the character-dot mapping provided by the ROM, processor 52 provides instructions to PCC30 regarding the dot pattern to be printed. In turn, PCC 30 determines the appropriate times, as a function of carriage position, for activating the print head driver to fire the print head solenoids.
While various components may be used to fabricate the box described above, it is particularly noted that the models 8080A and 8085 microprocessors manufactured by Intel Corporation have been found suitable for the processor 52. Accordingly, the particular embodiment disclosed in detail herein is described with reference to the use of the aforesaid Model 8080A. The printer control circuit 30 could also be implemented in a number of ways. However, in order to minimize cost and number of interconnections, we have implemented it as a single large scale integrated circuit using metal oxide semiconductor technology, with a design architecture suitable for control by a microprocessor.
The printer control circuit is capable of operating in two modes for generating characters of different pitches. The first mode permits the use of a conventionsl seven wire print head containing seven print rods arranged in a single vertical column. The second mode is unique to this invention and permits use of two, horizontally displaced columns of print rods. The specific illustration of this mode, described below, shows the use of an eleven wire print head having a first vertical column of six print rods and a second vertical column of five print rods. The embodiment illustrated further shows the rod positions in the second row vertically spaced from the rod positions in the first row so as to achieve a vertical interleaving of positions and permit the printed dots formed by vertically adjacent rods in the two rows to overlap.Figure 2 illustrates the print rod positions in a seven wire head and Figure 3 illustrates the print rod positions in an eleven wire head.
A functional block diagram for the printer control circuit (PCC) 30 is shown in Figure 4, to which reference will now be made. Character data to be printed and supervisory commands to the PCC are received via the bus 58 which enables the PCC to communicate with the sequential controller and input interface, as required.
Information received by the PCC upon the bus 58 is captured by an input buffer 62. The input buffer 62 feeds this information to the various functional elements of the PCC via a parallel bus 64. In the drawing, bus 64 is indicated separately at the appropriate functional blocks (by an arrow comprising two spaced, short parallel lines terminated by an arrowhead at one end and broken off at the opposite end); it should be understood that the bus interconnects all of the indicated blocks even though the full interconnection is not illustrated.
One of the elements connected to bus 64 is a command decoder 66.This command decoder is also connected via lines 68 to the various other elements of the PCC; such connections are not explicity shown, however, in order to maintain clarity in the drawing. Command decoder 66 detects and decodes the commands provided by the sequential controller and through the use of appropriate steering logic activates, deactivates and controls the functional blocks shown in Figure 4 to achieve the operation directed by the commands.
As briefly stated above, the function of the PCC is to supply appropriate signals to drive the line feed amplifier 34, carriage motor amplifer 38 and print head driver 46. The dominant function of the PCC is to implement the required control of the print head driver 46 for printing, with variable pitch and performing the "duck shooting" operation involved in printing with a variable carriage speed. The desired carriage speed is a function of carriage position in the line, with the objective being to maintain maximum throughput of characters with the limits imposed by' available acceleration, start/stop dynamics of the print head, and solenoid actuation rates which avoid excessive heating. The processor 52 determines the appropriate carriage speed and the PCC actuates the print head driver accordingly.Thus, the basic information required by the processor 52 is the position and velocity of the print head. This information is obtained from encoder 26B which is driven by the carriage motor 26A. Encoder 26B is an incremental two-channel encoder which provides a digital output. A short up-down position counter 72 receives the output of the incremental encoder 26B via an encoder signal processor 74 which suitably conditions and formats the output of the encoder. Thus, the position counter 72 keeps track of the relative position of the print head, modulo its radix. The output of position counter 72 is supplied to the output buffer 78 on demand, and, from the output buffer, to bus 58 and processor 52.Processor 52 periodicaliy examines the position information provided by the position counter 72 and calculates print head velocity from the change in position during the inter-sample time. In the particular embodiment heretofore implemented, the processor 52 samples the output of the position counter approximately once every 2.5 ms. The change in position observed at each sample time is summed in a position register (i.e., address location) in RAM 54. Absolt te position information is obtained by initializing the position register to a known value when the carriage is forced against a fixed stop.
The initializatio - procedure of the printer requires that the carriage motor be commanded to drive the carriage in the direction of the stop.
When the processor detects no change in the position counteSs output during a predetermined number of sample times in which the carriage :s being commanded to move toward the stop, it "knows" that the carriage has already reached the stop; the position register is then initialized. All relative motion can then be compared against this initial position, to be transformed to absolute position.
While various encoder designs well suited to this application will be apparent to those skilled in the art, this system has been successfully implemented with an encoder of the type which used two tracks to provide a pair of (phase) quadrature output signals; these encoder signals are supplied to the PCC encoder signal processor (ESP) 74 via lines 42A and42B (which are collectively shown as line 42 in Figure 1). Encoder signal processor 74 is used to give "clean" position decoding and insure that only valid state changes on lines 42A and 42B are interpreted by the PCC as indicative of carriage motion. ESP 74 may, for example, comprise a so-called "majority vote" circuit which uses a high sampling rate to distinguish between valid and invalid state changes in the encoder's quadrature output signals.
At this point it would be helpful to the further understanding of the operation of the PCC to digress briefly for an explanation of character "cell" structure. All printing of characters by this system takes place within programmable character cells whose fundamental units are encoder "transitions" (i.e., logic state changes in the encoder quadrature output signals). As successfully implemented, for example, each encoder may correspond to print head or carriage motion of 1/660 of an inch. A character cell consists of two sections, the first (from the left) is the increment field in which dots may be printed; the second is the inter-character space. Within the increment field, two or more increments are equally spaced. Their spacing is a programmable parameter called "transitions per increment," TPI.
TPI is often also referred to as the radix of the character and is a function of character width or pitch. The number of increments per character, IPC, is also programmable. Since an increment occurs at both the beginning and end of the increment field, the width of the increment field (in transitions) is given by TP I x (IPC -- 1). The intercharacter space has no fine structure and is directly programmed as transitions per space, TPS. As the name implies, dot printing is inhibited (i.e., no increments occur) in the inter-charac;ier space. A character cell's width is equal to the sum of the widths of the increment field and the intercharacter space, so that total width is given by: WIDTH =TRI x (IPC -- 1) +TPS.
The diagram below illustrates a single cell of width 40,lPC= 13,TPI=3,andTPS=4: .1 '.1.. I .1.. 1. I I .1.. I.. I. .1.. lsss where I represents an increment, s represents a space, and the "." symbol represents any other transition.
Each of the parameters mentioned above TPI, IPC and TPS - can be programmed into the PCC from the processor 52 to select a particular font compression or pitch. While printing, the PCC counts transitions and increments so that it knows when a character boundary, incrementor space is occurring.
When the printing of a character is begun, the transition counter uses the value of TPI as a radix.
Every time the transition counter overflows, an increment is generated, which, among other things, causes the increment counter to change its count. When the increment counter reaches a count equal to IPC, the radix of the transition counter is changed to TPS, so that the proper inter-character space is generated. When the next increment is received, the increment counter goes to a value less than IPC (either O or PC - 1, depending on direction). At this time a character boundary signal is generated and the radix of the increment counter again becomes TPI.
It can be seen that the transitions per space could be any non-zero number. However, the fact that the timers operate on every increment makes it desirable for TPC to be at least equal to the value of TPI. The counters involved can be initialized by a command from the sequential controller 50. Table 1, below lists several character pitches and the parameters that generate them.
TABLE 1 CPl -- -- TPC ~ IPC TPI TPS 10 66 11 6 6 12 55 11 5 5 13.2 50 10 5 5 16.5 40 10 4 4 5 132 11 12 12 6 110 11 10 10 6.6 100 10 10 10 8.25 80 10 8 Where CPl means characters per inch and TPC means transitions per character (i.e., pitch). The first four rows represent normal pitches and the second four rows represent double width pitches.
Encoder signal processor 74 provides three output signals derived from the quadrature signals received from the shaft encoder. The first of these signals is a direction signal, on line 82, indicative of the direction of carriage motion. The direction signal is provided to position counter 72 in order to cause it to either count up or down, as appropriate. Carriage motion in a first direction will cause the position counter to count up and carriage motion in the other direction will cause the position counter to count down. A second output of the ESP, provided on line 84, is an encoder transition pulse signal. The latter signal comprises a pulse each time one of the two quadrature encoder signals on lines 42A and 42B changes state, indicating that the carriage has moved one transition distance from its prior position.The pulses in the encoder transition pulse signal on line 84 are supplied to and counted by the position counter 72 for keeping track of changes in carriage position. Lines 82 and 84 are also connected to transition and increment counter (TSIC) 86 and line 82 is further connected to a pulse stretcher 88. The third output signal from the ESP 74 is a speed transition pulse signal on line 92; this signal comprises the second input signal to the pulse stretcher 88.
To implement the above-described performance capabilities, print commands must be given to the solenoids at varying (i.e., not fixed) positions relative to the "target" location at which printing is desired; the solenoid actuation (i.e., "firing") positions are functionally related to print head velocity, since the distance travelled by the print wires is fixed. Sequential controller 50 computes the required solenoid firing position and PCC 30 generates the actual signals which control solenoid actuation in accordance with the calculations of the sequential controller. The transition and increment counter 86 is the starting point within the PCC for the generation of the necessary control signals. TBIC 86, as its name implies, comprises a pair of counters for respectively tracking transitions and increments.
Signal inputs for the TBIC 86 are the directior: signal on line 82 and the encoder transition pulse signal on line 84. Since the carriage is moving while the nrinting operation takes place, the print rods must be 'fired" from the moving r: int head before the carriage reaches the impact location.
Nominally, the mean value of this lead "time" is known for an average carriage speed, one of the system design parameters. However, carriage speed is variable in this invention and other, nonaverage speeds will require a greater or smaller lead (i.e., positional displacement) between print wire firing and impact, depending upon whether the speed is below or above average. Translating the lead into position units, there is a nominally known displacement (in transitions) between the impact position on the paper and the position of the print head when the solenoids are actuated.
Appropriate circuitry is provided for reading the "position" indicated by the TSIC and triggering the firing of the solenoids when the position of the carriage indicated by the T & C is the correct distance from the target position on the paper, for the then current carriage velocity. Thus, a preselected transition count (e.g., a count equal to the transition counter radix) in the TBIC comprises a trigger signal for the printing solenoids. The solenoids are actuated in response to the appearance of this count. Processor 52 supplies a transition add/subract command to the TSIC via bus 64 to cause the transition count stored therein to be either increased or decreased.This creates a false or pseudo-transition reading in the TSIC; this reading may be used to actuate the printing solenoids by forcing the "triggering" count to appear at the position suggested by print head velocity. Thus, the transition count indicated in the TSIC to is shifted from the count registered in position counter 72 by an amount representing a flight time compensation count. That is, this difference represents the displacement, in transitions, between the point of solenoid actuation and the point of impact.
The transition counter portion of the TSIC 86 comprises a counter having two programmable radices corresponding to the TPI and TPS parameters. The increment counter portion of the TBIC comprises a counter having a single programmable radix corresponding to the parameter IPC.The radices are supplied from the sequential controller 50 via bus 64.
The transition and increment counter 86 provides three output signals. The first of these is a character boundary signal provided on line 94 to the print enable circuit (PEC) 96. The character boundary signal merely defers the execution of the print-start command until the print wire input position enters the cell of the character to be printed. The second signal provided bathe T8lC, on line 98, is a net transition signal. Line 98 is connected to increment shift register 100 for supplying the net transition signa' thereto. The third output signal provided by the TErIC, on llne 102, is a primary increment signal. The primary increment signal is supplied to increment shift register 100 and to increment steering circuit 104.
The function of print enable circuit 96 is to provide internal PCC control (i.e., enablement and disablement) of the elements used to trigger the solenoids. Basically, the print enable circuit is a finite state machine the operation of which is defined in Figures 5 and 6. Remaining briefly with Figure 4, however, it will be seen that the PEC 96 has three signal inputs and one signal output. The first signal input is the character boundary signal on line 94. The second signal input is a printing done signal on line 106 from buffer monitor circuit 108. Sequential controller 50 provides the third input signal, a print start signal, via bus 64. The output of PEC 96 is a print enable signal on line 112. The print enable signal is supplied to increment shift register 100 and to increment steering circuit 104.The print enable signal will assume a first logic state when printing is to be enabled and will assume a second logic state when printing is to be disabled. Referring now to Figure 5, there is shown a state transition diagram illustrating the normal operational sequence of the print enable circuit. The PEC has three states, labeled respectively, 114, 11 5, and 116. Printing is disabled in states 114 and 11 5; only in state in 11 6 is printing enabled. Assuming initially that the PEC is in state 114, as it would be after printing has previously been terminated or at a time foilowing initialization but prior to the start of any printing, a print start command from the sequence controller received via bus 64, will cause a change to state 11 5; at this point the PEC assumes control over the printing operation.Once the PEC is in state 11 5, it monitors the character boundary signal on line 94; when that signal indicates that the leading edge of the character cell boundary has been crossed, the PEC advances to its third state, 11 6, and provides the print enable signal on line 112 in the state which permits printing. The printing operation will continue until buffer monitor circuit 108 provides a printing done signal on line 106 to indicate that there is no more information to be printed. Upon receipt of the printing done signal, the PEC will return to state 114 and disable printing by changing the state of the print enable signal on line 112. Printing will not resume until another print start command is received from the sequence controller.Thus, the state 114 may be called an idle state, state 115 corresponds to a state of waiting for a character cell boundary and state 11 6 corresponds to the active printing state. The state transition table shown in Figure 6 provides another description of the PEC, assuming a particular implementation in which the printing disabled condition corresponds to a logical "0" print enable signal and a logical "1" print enable signal permits printing to be performed. Corresponding assumptions are made with respect to the logic values of the PEC input signals. The symbol "X" is used in Figure 6 to indicate, with respect to input, that either logic level may exist and, with respect to states, that any state satisfies the condition.
It is noted that in the above description the term "character boundary" corresponds to the increment which makes the increment counter in the TSIC exit the intercharacter space. The term "increment" refer to that transition which makes the transition counter in the T81C overflow; that is, count up from maximum to zero or down from zero to maximum. And "intercharacter space" is that interval during which the increment counter value is equal to its radix, (i.e., its maximum value).
Two dot buffer and timer circuits, 120A and 1 20B are provided. When a two-column (e.g., eleven-wire) print head is employed. one of the dot buffer and timers is associated with a first of the columns and the other dot buffer and timer is associated with the other of the columns. These might correspond, respectively, to five and six dot columns, respectively. When only one column of print rods is provided in the print head, such as for a seven-wire head, both dot buffer and timer circuits are operated in parallel. The dot buffer and timer circui l recsive character dot data from the processor and fire the corresponding print solenoids at appropriate times. Each dot buffer and timer circuit includes a plurality of registers, a register controller, an output buffer and a timer.
The registers are preferably arranged as a first-in first-out (or fifo) stack buffer. One of the registers in the stack is an input register which is loaded by the processor; another register comprises an output register. Data propagates through each register, beginning with the input register, until it eventually reaches the final, output register. The output of the output register is gated to the print head amplifiers at a precise point in the head travel and is held for a precise amount of time, as controlled by a timer in the dot and buffer time circuit. The purpose of the dot buffer and timer circuits is to allow the processor 52 to supply dot data for the print head asynchronously with respect to the time that such data is'needed fo actuation of the solenoids.The controller in the dot buffer and timer circuits consists of a memory which tracks the presence, in each register, of data to be printed together with logic which causes all data to advance as far as possible through the fifo -stack. The controller detects when the timer has ceased actuating the output buffer and thereupon advances the data in the registers. This creates space at the input of the stack. A buffer status signal is supplied on lines 1 22A and 1 22B to buffer monitor circuit 108. When a predetermined number of spaces exist in the fifo stacks(s), as indicated by the buffer stack signals to the buffer monitor, the buffer monitor generates a dot data request signal to the processor, on line 124. The processor then supplies more data into the dot buffer input register. When both buffer stacks are completely empty, the buffer monitor generates a printing done signal on line 106, to reset the PEC 96.
The timer in each of the dot buffer and timer circuits is used to cause the dot data to be presented to the printing element (i.e., solenoid) for a programmable amount of time determined by the characteristics of the element being controlled. The timer consists of a binary counter which counts a programmable number of clock cycles. It starts counting on command of the increment steering circuit 104, u- 'sss already running. Each time the timer halts, it supplies a signal to the stack controller to allow ne Jv data to be presented to the output buffer.
The output buffer in the dot buffer and timer circuit allows the output of the stack to propagate to the print head whenever the timer is running.
Each register in the fifo stack in the dot buffer and timer circuits 1 20A and 1 20B contains storage sufficient for one vertical column of dots. In the particular implementation shown in the drawings and discussed herein, one of the dot buffers contains five-bit registers and the other contains six-bit registers, thus providing for the control of a maximum of eleven printing solenoids in the print head. It is readiiy possible, of course, if only a single column print head is to be employed, to use but one dot buffer and timer circuit having the same number of bits per register as the number of print wires.The increment shift register 100 and increment steering circuit 104 also become unnecessary in the latter application, as the single dot buffer and timer circuit is directly controllable by the primary increment signal, explained below.
With a two column printing head, solenoid control is complicated by the fact that the two columns of wires are physically displaced in the horizontal direction. Therefore, in order to print a single vertical line of dots, the trailing set (i.e., column) of wires must be fired a number of transitions later than the leading set - the number of transitions corresponding to the displacement between the two columns of wires, measured in transitions. Thus, the two columns of wires are provided with two different firing control signals. These are referred to as primary and secondary increment signals. The primary increment signal fires the leading set of wires and the secondary increment signal fires the trailing set of wires. When printing, the secondary increment repeats the primary increment pattern, only delayed by the necessary number of transitions.It should further be noted that printing may be done either left to right or right to left. In one direction, one of the columns will be the leading set and the other will trail; but the situation will be reversed in the opposite direction, with the other column being the leading set.
The primary increment signal is generated by the transition and increment counter 86 and is provided on line 102 to the increment shift register 100 and increment steering circuit 1 04.
Increment shift register 100 performs the transition delay function for generating the secondary increment signal therefrom. The secondary increment signal is provided on line 126 to increment steering circuit 104. Net transition signal 98 is essentially used as a clocking signal for increment signal shift register 100.
When the printer is operated in the two column print head mode, the increment steering circuit directs the primary increment signal to the dot buffer and timer for the leading set of pring wires and the secondary increment signal to the dot buffer and timer for the trailing set of print wires.
When the printer is operated in the single column print wire mode, increment steering circuit 104 directs the primary increment signal to both dot buffer and timer circuits, as the secondary increment signal is not used.
The PCC also drives the carriage amplifier in the carriage servomotor system, for controlling carriage motor speed. Carriage motor speed control is accomplished by a servo system.
Processor 52 determines the maximum possible carriage speed based upon the highest solenoid actuation rate at which the print solenoids will operate properly and which may be maintained without causing overheating. It provides a speed command signal via bus 64 to bit rate multiplier (BRM) 132. The BRM is of conventional design and provides two output signals. The first of these is a command sign signal, on line 134, to indicate the direction in which the motor is being commanded to operate; the second of the BRM output signals is a command pulse signal on line 1 36, which provides the actual motor velocity information. The speed transition pulse signal on line 92 and the direction signal on line 82 comprise corresponding signals indicative of the actual motion of the carriage motor.These latter two signals are received by pulse stretcher 88 which, in turn, supplies the feedback signals required in the servo loop. A feedback sign signal is provided on line 138 and a feedback pulse signal is provided on line 139. The speed steering circuit 142 connects lines 136 and 139 to the appropriate output pins 144 and 146 in accordance with the associated sign signals carried on lines 1 34 and 1 38 respectively. These pulse trains are received by the Carriage Amplifier 38 which integrates these pulse signals to obtain their average values.The Carriage Amplifier is the "error" amplifierofthe carriage motor servo; it determines the difference between the commanded speed and direction and the actual speed and direction of the motor and provides a drive signal to the carriage motor to drive the carriage motor toward the commanded speed.
The command given to the servo mechanism by the BRM consists of a stream of narrow pulses.
The speed transition pulse signal on iine 92 containing the motor speed information used for feedback, have the same width as the BRM command pulses; however, there are several e.g., eight, command pulses for every speed transition pulse provided on lines 92. The servo mechanism is designed, typically, to respond to the average value of the command pulse and feedback pulse signals; thus, it becomes necessary to "stretch" the speed transition pulses a commensurate amount. This is done by producing a feedback pulse on line 1 39, for every speed transition pulse on line 92, which is eight times as long thereas.
For example, if the command pulses are each 6.5 ms in width, the feedback pulses are approximately 52 ms in width.
In Figures 7 - 12, there is a further breakdown, still on the block diagram level, of some more of the blocks shown in Figure 4.
Figures 7 - 10 provide a breakdown of the encoder signal processor 74. An overall block diagram of the encoder signal processor is shown in Figure 7. The purpose of the encoder signal processor is to convert quadrature encoded squarewave position signals, received on lines 42A and 42B from the two encoder tracks, into transition event and direction signals that can be counted in up/down counters and used to trigger transition-related events. The encoder signal processor which performs these functions cor ists of a direction detector 202 jnd, for each of the two channels of encoder signal input, a signal filter, 204A or 204B, and an associated transition detector 206A and 206B.The outputs of the transition detector . on lines 208A and 208 B, respectively, are combined together by OR gate 210 to provide the encoded transition pulse signal which is supplied to the position counter 72 and TIC 86 on line 84. The speed transition pulse signal is provided on line 92 by AND gate 212 which receives as its inputs the transition detector output signal on line 208A from one of the channels and the input of the transition detector 206B of the other channel, on line 214.Direction detector 202 receives the outputs of the two signal filters on line 214 and 21 6 to provide the direction signal on line 1 82. It will thus be seen that the encoder transition pulse signal provides a pulse each time there is a state transition in either of the two signals provided by the encoder, and that the speed transition pulse signal provides a pulse when there is a transition on one of the channels while the other channel is in the "1" state. In steady state operation, a speed transition pulse will appear on line 92 every fourth transition.
In the specific implementation discussed herein, the width of these pulse signals corresponds to one clock period of the sytem clock.
The output of the direction detector is, by contrast, a level which represents the sign (+ or-) of the transition and identifies which of the two quadrature signals is ahead of the other in phase.
The purpose of signal filters 204A and 204B is to remove short duration noise pulses from the signals on line 42A and 42B so that they do not cause false outputs and false responses by the transition detectors and direction detector. It has been found particularly desirable to implement the signal filters as majority vote circuits which compare two new samples of their input with the previous output. The outputs of the signal filters are allowed to change state only if the two new samples agree with each other. For further reliablity, an even greater number of samples could be used. The two samples of the input of the signal filter are taken at a normal system clock rate but approximately 1 800 out of phase with each other, thereby yielding a net sampling rate which is twice the normal clock rate.
An appropriate block diagram for each of the signal filter elements 204A, 204B is shown in Figure 8. While the example is described in terms of signal filter 204A, it is equally applicable to signal filter 204B, of course. Four conventional sample-and-hold (S 8 H) circuits and a majority vote circuit are employed in each signal filter. The sample-and-hold circuit 222 provides the output of the signal filter which represents the signal provided by the majority vote circuit 224 at sampling time T,. The two signal samples are taken at times T2 and3, respectively, by S 8 H circuits 226 and 228. The fourth sample and hold circuit 232, samples the prior output which is present on line 216 at time T2, as well.As explained above, sample and times T2 and Tq are displaced from each other by approximately 1 800 but occur at the same rate, being derived from the same clock. Majority vote circuit 224 reads the outputs of S 8 H circuits 226, 228 and 232 appearing on lines 227,229, and 231, respectively, and provides an output on line 225 correspondingly to the state of the majority of its inputs. The signal input on line 42A is preferably synchronized so as to be stable at the T2 and T3 sample times. A clocked D-type flip-flop, Schmitt trigger or similar device (not shown) may be used for this purpose.
The purpose of the transition detectors 206A and 206B is to produce an event pulse each time their input signals change state. This is easily accomplished with the arrangement shown in Figure 9. As shown therein, the transition detector 206A, for example, consists of a delay element 236 and an exclusive -- OR gate 238. The output of the delay element, on line 237 and the input, on line 21 6, provide two inputs of the exclusive OR gate 238. This produces at the output of the exclusive OR gate, on line 208A, a stream of pulses each of whose width is equal to the delay time of the delay element. The delay time of one clock period of the system clock is satisfactory for this purpose. Thus, delay element 236 is shown as also receiving the system clock on line 239.
The output of the direction detector 202 in the encoder signal processor accompanies each of the transition event signals (i.e., the speed transition pulse signal and the encoder transition pulse signal) to their destinations. The purpose of the iirection detector is to decode the quadrature encoded direction information in the two input signals on lines 42A and 42B, producing an output signal whose states correspond to the directions associated with the transition event pulses. One satisfactory exemplary implementation of the direction detector is shown in Figure 1 0. As illustrated therein, the direction detector 202 consists of a delay element 242 and then exclusive-OR gate 244. One of the inputs, e.g. the one on line 216, is delayed by the delay element 242 and the delayed signal is provided on line 243 to one of the inputs of the exclusive-OR gate 244.
The other input, e.g. the one on line 14, is supplied directly to the other input of the exclusive-OR gate. The output on line 82, if observed only during the periods when the encoder transition event signal is asserted, will (at those times) be in one state when the transition was in one direction and then the other state when the transition was in the opposite direction. Delay element 242, like delay element 236 provides a single clock period delay and receives a system clock as an input on line 246. It will be observed that if the clocking signals on lines 246 and 239 are the same, the outputs of the delay elements 236 and 242 are the same. Hence, a single delay element may be shared between the direction detector and one of the transition detectors.
Referring to Figure 11 , there is shown a block diagram breakdown of the T & C 86. The transition and increment counter 86 has three component elements: transition adder 252, transition counter 254 and increment counter 256. The transition counter and increment counter have already been alluded to above. The transition adder 252 basically operates under the control of the sequential controller 50 to provide the required offset in the count maintained in the transition counter from the count maintained in the position counter (i.e., the flight time compensation count) so as to cause the transition counter to produce the solenoid-actuating count at the appropriate location.When a two-column print head is usea, the transition adder also "moves" the primary increment when the direction of printing changes, to account for the displacement between the two columns of print wires. Additionally, the transition adder serves to eliminate single transitions having opposite signs (i.e., direction) from the immediately preceding and following transitions, such as are produced by the operation of the transition add/subtract circuit. Other such signal transitions should not and would not occur but for the presence of "noise" and sampling inaccuracies.
Included within the transition adder 252 is a net transition generator 252A which actually provides the two transition adder output signals, the net transition signal (on line 98) and the net direction signal (on line 253). In addition to eliminating single transitions of opposite sign, the net transition generator 252A operates under the command of the sequential controller 50 to either add transitions on line 98 which are in addition to those provided on line 84, or prevents pulses on line 84 from reaching line 98, in order to force the transition counter 254 to properly reflect the positional correction required for actuating the solenoids at the proper time.The net direction signal on line 253 is simply the direction signal which corresponds to the net transition signal on line 98: it is the direction signal on line 82 as modified by the operation of the net transition generator 252A in adding, subtracting or eliminating pulses.
Transition counter 254 comprises a programmable radix counter having two programmable radices, corresponding to TPI and TPS, which are set by the sequential controller 50 via the bus 64. Transition counter 254 is an up/down counter which receives counting direction control from the net direction signal on line 253 and which counts the pulses in the net transition signal on line 98. The output of the up/down counter is decoded to provide as the outpiitofth transition countel a skyr.al termed the primary increment signal, on ine 102 when the transition count of the up/down counter corresponds to the position at which the printing solenoids should be actuated.Increment counter 256 receives the primary increment signal and the net direction signal as inputs and provides the character boundary signal as an output, on line 94 The increment counter is a simple, programmable radix counter whose radix, corresponding to the parameter IPC, is set by the sequential controller via the bus.
The third block shown on Figure 4 to be broken down for further explanation of its structure is the pulse stretcher 88, shown in Figure 12. The pulse stretcher comprises two components: speed transition processor (STP) 262 and pulse generator 264. The speed transition processor receives the direction signal on line 82 and the speed transition signal on line 92 as well as a 1 9.2 kHz pulse on line 266; its outputs are the feedback sign signal on line 138 and a feedback rending signal on line 268. The feedback pending signal comprises one of the inputs to pulse generator 264. The 1 9.2 kHz pulse signal on line 266 is the other input to the pulse generator, and the feedback pulse signal on line 139 is its output. The STP contains a one-bit memory of feedback sign and one-bit memory of feedback pending.If a speed transition occurs with a direction (i.e., sign) which matches the previously established feedback sign, the feedback pending signal is then asserted. The feedback pending signal is deasserted immediately after the next occurence of the 19.2 kHz pulse. If the direction of the speed transition pulse does not match the feedback sign, the feedback sign is changed, but no feedback pending signal is generated. The pulse generator 264 samples the feedback pending signal on line 268 each time a 19.2 kHz pulse occurs and asserts a feedback pulse on line 139 appropriately, thus producing pulses approximately 52 microseconds wide, eight times the width of the command pulses on line 136 from the bit rate multiplier 132.
As stated above, the sequential controller 50 is the commanding agent, or "brain", driving the PCC 30. Among other things, the sequehtial controller determines flight time compensation count which is necessary and provides transition add/subject commands to the transition adder to cause the net transition generator to feed a lesser or greater number of pulses to the transition counter, to produce the correct flight time compensation count. The sequential controller drives the carriage motor to the highest available speed consistent with satisfactory acceleration and solenoid operation. The upper limit on carriage motor speed is partially a function of the dot density of characters to be printed over a preselected time interval, so that the solenoid actuation rate does not exceed empirically derived bounds for satisfactory operation.Accordingly, the carriage speed is greater in blank regions, as the solenoid actuation rate does not impose a limit at all in those areas.
In the present implementation, the system clock speed of 2MHz has been selected because it allows operation of the model 8080A microprocessor at nearly its maximum speed and when divided by 13, yielding 153.6 kHz, provide the 6.5 microsecond sampling interval used by the encoder signal processor 74. It also provides the clock signal needed by input interface 48 for serial data communication; in particular, it permits the use of many standard signaling rates such as 9600 bits per second and derivitives thereof. The same 153.6 kHz signal drives BRM 132. As a byproduct, the BRM provides a signal at 1/128 this frequency which when divided by 3, provides the 2.5ms sampling interval used by sequential controller 50 to process the readings of position counter 72.While the method employed by the sequential controller for flight time compensation may be generalized to the extent illustrated in Figure 13, the flight time compensation count needed by a particular embodiment of this invention is a function of carriage velocity; if carriage acceleration is not kept low enough, the compensation function must depend on that parameter too, of course. The compensation available is limited by the velocity range resolved by minimally incrementing or decrementing the flight time compensation count. Since the compensation required is dependent on the mechanical parameters of the printer (i.e., the goal is to compensate for the finite flight time of print wires and other dynamically induced positional offsets), the actual compensation function needed is characteristic of the particular printer.The appropriate printer parameters may be obtained either by modeiing or by empirical evaluation.
An illustration of the sequential method steps required for flight time compensation count derivation is shown in Figure 1 3. The first step, 310, is to measure the positional change of the carriage which occurred during the previous intersample interval; this is labelled DELTAX. DELTAX is obtained by sampling the output of position counter 72 at each sample time (i.e., at the beginning and end of that interval). DELTAX is a signed variable and its sign indicates the direction of carriage motion during the interval time. Next, if required by the nature of the printer mechanism, an appropriate offset may be added to DELTAX, in step 320. The purpose of offset is to compensate for mechanical "play" in the printer drive or other such factors which are functions primarily of direction and not velocity.In some sytems, such offsets may not be needed for acceptable registration of printed dots. The next step, 330, is to compute the change in FTC required by virtue of the change in the offset-adjusted DELTAX observed during the last sampling period. The required value of FTC may generally be expressed as a function of offset-adjusted DELTAX. In the particular implementation using a printer mechanism similar two that employed in the model LA36 terminal manufactured by Digital Equipment Corporation, Maynard, MA, it has been found that this function may be expressed as a proportionality constant whose value is primarily determined by print wire flight time and secondarily determinedby velocity-related mechanism variations, such as elasticity of the carriage driving linkage.Thus, the FTC connection function may be obtained from an expression in the form: desired FTC = KFTC (DELTAX + OFFSET ADJUSTMENT), where KFTC represents the proportionality constant.
Since the transition counter can only resolve integer multiples of a transition and the above calculation may lead to the computation of a desired FTC which differs from the position count by a non-integral number of transitions, the desired FTC can only be approached on a greatest integer basis. Specifically, the resolution obtained in the above calculation is equal to one transition divided by KFTC. Thus, in step 340, an add/subtract command is sent to the TBIC 86 to cause the net transition generator to add or subtract a number of transitions corresponding to the greatest integer in the difference between the prior FTC and the desired FTC, to cause the greatest integer in the desired FTC to become the new FTC.
While it may be possible to complete the above updating of FTC in its entirety during one intersample period, it has also been found that if acceleration is low enough, the updating may be done at a slower rate, even as slow as one transition add or subtract per sample. interval.

Claims (14)

1. A dot matrix character printer for printing characters of a pitch selectable from among a plurality of available pitches, comprising: a print head; means for moving the print head; transition generator means for providing print head motion signals responsive to movement of the print head, each basic unit of print head displacement defining a transition; transition counter means for providing print head actuation signals responsive to the print head motion signals, the distance travelled by the print head between successive print head actuation signals defining an increment; increment counter means for providing intercharacter space signals responsive to print head actuation signals; said transition counter means and said increment counter means being variable radix counters;; means responsive to intercharacter space signals for changing the radix of the transition counter means on a once per character basis to generate an intercharacter space having one or more transitions independent of the number of transitions per increment; means for accepting a signal representing the number of increments per character, the number of transitions per increment and the number of transitions per intercharacter space; means for storing a representation of the number of increments per character, the nurnber of transitions per increment and the number of transitions per intercharacter space; means for setting the radices of the transition counter means and increment counter means; and the radix of the transition counter being set by said radix setting means to the number of transitions per intercharacter space in response to the intercharacter space signal and being set by the radix setting means to the number of transitions per increment at all other times.
2. A dot matrix character printer for printing characters of a pitch selectable from among a plurality of available pitches, comprising: a print head; means for moving the print head; transition generator means for providing print head motion signals in response to movement of the print head, the basic unit of print head displacement resolved by the print head motion signals defining a transition; transition counter means for counting transition to provide print head actuation signals in response to the print head motion signals, the distace travelled by the print head between successive print head acutation signals defining an increment; increment counter means for counting increments to provide intercharacter space signals; said transition counter means and said increment counter means comprising variable radix counters;; means for accepting a signal representing the number of transitions per increment and the number of transitions per intercharacter space; means responsive to said intercharacter space signals for setting the radix of the transition counter means to the number of transitions per intercharacter space in the intercharacter space and to the number of transitions per increment at all other times, to generate an intercharacter space having one or more transitions independent of the number of transitions per increment; means for setting the radix of the increment counter means to the number of increments per character; the provision of print head actuation signals being inhibited at selected times, so that characters are printed on an increment basis, with selected pitch.
3. The dot matrix character printer of claim 2, further including: position counter means for counting transitions relative to a predetermined position; net transition generator means for causing the transition count in the transition counter means to differ from the transition count in the position counter means responsive to a transition add/subtract signal, whereby the print head actuation position may be controlled by the transition add/subtract signal to compensate for the flight time of the print wires in the print head, to permit accurate registration of printed characters while printing at variable rates.
4. The dot matrix character printer of claim 2, wherein the print head includes two sets of print wires, the print wires of each set of print wires being actuable in response to print head actuation signals supplied to the sets of print wires, the print head actuation signals provided by the transition counter means defining primary increment signals, and further including: primary increment signal storage means responsive to the primary increment signals for producing secondary increment signals, each of said secondary increment signals being displaced with respect to a corresponding primary increment signal by an amount corresponding to the displacement between sets of print wires; and a first one of said sets of print wires being actuated by the primary increment signals and the other, second set of print wires being actuated by the secondary increment signals.
5. The dot matrix character printer of claim 4, wherein the print head may travel in two directions; according to the direction of travel of the print head, one set of print wires is designated the leading set and the other set of print wires is designated the trailing set, the leading set being that set of print wires which leads in the direction of travel of the print head; and further including: means for providing a direction signal representative of the direction of print head travel: and means responsive to the direction signal for providing the primary increment signal to the leading set of print wires and the secondary increment signal to the trailing set of print wires.
6. In a dot matrix character printer of the type having a print head positioned by a motor and encoder means for producing an encoder signal responsive to the incremental changes in print head position, said encoder signal alternating between two states and changing state when the print head moves a predetermined distance, the improvement comprising: encoder signal filter means operable to remove relatively short duration noise signals from the encoder signal and to thereby provide a filtered encoder signal, the encoder filter means comprising means for sampling the encoder signal a plurality of successive times and for changing the state of the filter encoder signal only when the encoder signal is in the same state for two successive sample times.
7. A printer control circuit for use in a dot matrix character printer for printing characters of a pitch selectable from among a plurality of available pitches, said printer being of the type having a print head, means for moving the print head, and encoder means for generating signals indicative of relative print head position, the signals generated by the encoder being referred to as transition signals and the smallest unit of print head displacement resolved by the transition signals being referred to as a transition, the control circuit comprising:: transition counter means for counting transitions to provide printhead actuation signals in response to the transition signals, the distance travelled by the print head between successive print head actuation signals defining an increment; increment counter means for counting increments to provide intercharacter space signals; said transition counter means and said increment counter means comprising variable radix counters; means for accepting a signal representing the number of increments per character, the number of transitions per increment and the number of transitions per intf character space; means for initializing the transition counter means and the increment counter means;; means responsive to said intercharacter space signals for setting the radix of the transition counter means to the number of transitions per intercharacter space in the intercharacter space and to the number of transitions per increment at all other times, to generate an intercharacter space having one or more transitions independent of the number of transitions per increment; means for setting the radix of the increment counter means to the number of transitions per increment; means responsive to the state of a two-state print control signal for inhibiting the provision of print head actuation signals until the print control signal occurs in a first state, to enable printing, and simultaneously the generation of an intercharacter space is completed.
8. The printer control circuit of claim 7, further including: position counter means for counting transitions relative to a predetermined position; net transition generator means for causing the transition counter in the transition counter means to differ from the transition count in the position counter means responsive to a transition add/subtract signal, whereby the print head actuation position may be controlled to compensate for the flight time of the print wires in the print head, to permit character printing at variable rates.
9. The dot matrix character printer of claim 2, further including: the print head having means for printing dots to form dot matrix characters; position counter.means for counting transitions relative to a predetermined position; net transition generator means for causing the transition count in the transition counter means to differ from the transition count in the position counter means responsive to a transition add/subtract signal.
whereby the print head actuation position may be controlled by the transition add/subtract signal to compensate for the response time of the dot printing means in the print head, to permit accurate registration of printed characters while printing at variable rates.
10. The dot matrix character of claim 2, wherein the print head includes two sets of nieans for printing dots, the dot printing means of each set of dot printing means being actuable in response to print head actuation signals supplied to the sets of dot printing means, the print head actuation signals provided by the transition counter means difining primary increment siqnals, and further including: primary increment signal storage means responsive to the primary increment signals for producing secondary increment signals, each of said secondary increment signals being displaced with respect to a corresponding primary increment signal by an amount corresponding to the displacement between sets of dot printing means; and a first one of said sets of dots printing means being actuated by the primary increment signals and the other, second set of dot printing means being actuated by the secondary increment signals.
11. The dot matrix character printer of claim 10 wherein the print head may travel in two directions; according to the direction of travel of the print head, one set of dot printing means is designated the leading set and the other set of dot printing means is designated the trailing set, the leading set being that set of dot printing means which leads in the direction of travel of the print head; and further including: means for providing a direction signal representative of the direction of print head travel; and means responsive to the direction signal for providing the primary increment signal to the leading set of dot printing means and the secondary increment signal to the trailing set of dot printing means.
1 2. The printer control circuit of claim 7, further including: the print head having means for printing dots to form dot matrix characters; position counter means for counting transitions relative to a predetermined position; net transition generator means for causing the transition counter in the transition counter means to differ from the transition count in the position counter means responsive to a transition add/subtract signal, whereby the print head actuation position may be controlled to compensate for the response time of the dot printing means in the print head, to permit character printing at variable rates:
1 3. Dot matrix character printers substantially as hereinbefore described with reference to the accompanying drawings.
14. Control system and/or circuits for dot matrix character printers substantiaily as hereinbefore described.
GB7935190A 1978-10-30 1979-10-10 Dot matrix character printer with variable speed control Expired GB2034087B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US95552578A 1978-10-30 1978-10-30

Publications (2)

Publication Number Publication Date
GB2034087A true GB2034087A (en) 1980-05-29
GB2034087B GB2034087B (en) 1982-11-17

Family

ID=25496935

Family Applications (3)

Application Number Title Priority Date Filing Date
GB8124283A Expired GB2080003B (en) 1978-10-30 1979-10-10 Dot matrix character printer and control system
GB7935190A Expired GB2034087B (en) 1978-10-30 1979-10-10 Dot matrix character printer with variable speed control
GB8135230A Expired GB2086109B (en) 1978-10-30 1979-10-10 Control system for a dot matrix character printer

Family Applications Before (1)

Application Number Title Priority Date Filing Date
GB8124283A Expired GB2080003B (en) 1978-10-30 1979-10-10 Dot matrix character printer and control system

Family Applications After (1)

Application Number Title Priority Date Filing Date
GB8135230A Expired GB2086109B (en) 1978-10-30 1979-10-10 Control system for a dot matrix character printer

Country Status (8)

Country Link
JP (1) JPS5563483A (en)
AU (1) AU534414B2 (en)
CA (1) CA1130463A (en)
DE (1) DE2940019A1 (en)
FR (1) FR2440275B1 (en)
GB (3) GB2080003B (en)
IT (1) IT1197514B (en)
NL (1) NL7906969A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0132576A2 (en) * 1983-07-15 1985-02-13 HONEYWELL BULL ITALIA S.p.A. Microprogrammed control apparatus for dot matrix serial printer
EP0251637A2 (en) * 1986-06-23 1988-01-07 National Business Systems Inc. Credit card embossing and recording system
GB2208952A (en) * 1987-08-19 1989-04-19 Brother Ind Ltd Bidirectional printers

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4372696A (en) * 1980-05-20 1983-02-08 Monarch Marking Systems, Inc. High quality printer
US4445796A (en) * 1982-06-16 1984-05-01 International Business Machines Corporation Print electrode control circuit
US4469460A (en) * 1982-09-30 1984-09-04 International Business Machines Corporation Matrix printer with optimum printing velocity
JPS62162556A (en) * 1985-12-11 1987-07-18 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション Wire projection controller for wire-matrix-printer
AU3996789A (en) * 1988-10-31 1990-05-03 International Business Machines Corporation Wire fire control mechanism for a wire matrix printer
JP3495747B2 (en) * 1991-07-22 2004-02-09 セイコーエプソン株式会社 Printer print control method and apparatus

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3513774A (en) * 1968-07-01 1970-05-26 Ibm Printer hammer compensation
GB1373773A (en) * 1970-10-09 1974-11-13 Carrus A Carrus P Spark discharge printer
FR2205003A5 (en) * 1972-10-26 1974-05-24 Honeywell Bull Soc Ind
US3950685A (en) * 1974-04-25 1976-04-13 Lrc, Inc. Dc motor position controller
US3973662A (en) * 1974-11-29 1976-08-10 Extel Corporation Acceleration control system for high speed printer
DE2516835C3 (en) * 1975-04-15 1978-11-23 Mannesmann Ag, 4000 Duesseldorf Control circuit for triggering the print wires of a wire dot print head that prints in both directions
US4020939A (en) * 1975-10-21 1977-05-03 Ncr Corporation Matrix print head repetition rate control

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0132576A2 (en) * 1983-07-15 1985-02-13 HONEYWELL BULL ITALIA S.p.A. Microprogrammed control apparatus for dot matrix serial printer
EP0132576A3 (en) * 1983-07-15 1985-03-13 Honeywell Information Systems Italia S.P.A. Microprogrammed control apparatus for dot matrix serial printer
US4664541A (en) * 1983-07-15 1987-05-12 Honeywell Information Systems Italia Microprogrammed control apparatus for dot matrix serial printers
EP0251637A2 (en) * 1986-06-23 1988-01-07 National Business Systems Inc. Credit card embossing and recording system
EP0251637A3 (en) * 1986-06-23 1989-08-09 National Business Systems Inc. Credit card embossing and recording system
GB2208952A (en) * 1987-08-19 1989-04-19 Brother Ind Ltd Bidirectional printers
GB2208952B (en) * 1987-08-19 1991-10-16 Brother Ind Ltd Improvements in bidirectional printers

Also Published As

Publication number Publication date
GB2086109A (en) 1982-05-06
JPH0532226B2 (en) 1993-05-14
CA1130463A (en) 1982-08-24
NL7906969A (en) 1980-05-02
AU5056079A (en) 1980-05-08
IT7969093A0 (en) 1979-10-26
FR2440275B1 (en) 1987-08-28
IT1197514B (en) 1988-11-30
GB2086109B (en) 1983-02-23
GB2080003A (en) 1982-01-27
DE2940019C2 (en) 1993-03-04
DE2940019A1 (en) 1980-05-14
GB2080003B (en) 1983-03-09
FR2440275A1 (en) 1980-05-30
JPS5563483A (en) 1980-05-13
AU534414B2 (en) 1984-01-26
GB2034087B (en) 1982-11-17

Similar Documents

Publication Publication Date Title
US4326813A (en) Dot matrix character printer control circuitry for variable pitch printing
US4651288A (en) Method and apparatus for filling out a form by a machine
CA1106232A (en) High quality printer
GB2034087A (en) Dot matrix character printer with variable speed control
US4388005A (en) Method and apparatus for printing partially overlapping characters
US4390293A (en) Electronic typewriter
US4844635A (en) Wire fire control mechanism for a wire matrix printer
US4469460A (en) Matrix printer with optimum printing velocity
JPS6144074B2 (en)
EP0202866A1 (en) Printer including means for advancing additional ink ribbon as required
KR0123531B1 (en) The controlling method of carriage for serial printer
JPS612586A (en) Method of resetting typewriter or printing mechanism of similar machine under initial state
JPS62162556A (en) Wire projection controller for wire-matrix-printer
CA1133144A (en) Dot matrix character printer with variable speed control
JPS58102779A (en) Control system of printing of emphatic character
GB1592602A (en) Data printers
JPH0154200B2 (en)
US5073049A (en) Print control for dot matrix printer
JPS60236781A (en) Serial printer controlling system
EP0290219B1 (en) Carriage movement control in a printer
US5037221A (en) Emphasized character dot-matrix printer having two groups of dot-forming elements
EP0367059A2 (en) Wire fire control mechanism for a wire matrix printer
JPS5945166A (en) Printing mode for serial printer
JP4366066B2 (en) Recording apparatus control method and recording apparatus
CA1128446A (en) Apparatus for synchronizing carrier speed and print character selection in on-the-fly printing

Legal Events

Date Code Title Description
PE20 Patent expired after termination of 20 years

Effective date: 19991009

732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)