Abstract:
In a line printer, an integrated meter package developing a clock incorporates a microprocessor receiving a line printed signal, power on voltage, and a preset ribbon exhaust count in order to compute in reference to the clock, and selectively display on an alphanumeric display panel, the total the lines printed, total on hours, total print hours, preset ribbon exhaust count, and number of print lines remaining until exhaustion of the ribbon. The microprocessor stores accumulated values to a non-volatile electrically programmable memory upon receipt of a power going down signal warning of incipient power off. The microprogrammed control is adaptable to maintain general maintenance and fault histories and periods.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention is generally concerned with electronically metering the histories and periods relevant to the maintenance and use of a printer. The present invention is specifically controlled using a microprocessor to receive certain signals, and to calculate and display certain quantities, particularly concerned with activities within a line printer. 
     2. Description of the Prior Art 
     Microprocessor-based control and maintenance panels, sometimes of great sophistication, are known for use with computers. However, metering, or conditions display for printers calls for the accumulation, and display, of certain types of information which are alien to computers. 
     One such condition which can be metered and displayed for a line printer is the total number of lines printed. In the prior art, such metering of total lines printed was accomplished by a mechanical or by an electrical-mechanical counter. 
     Another quantity which can be monitored for line printers is the remaining number of hours, or lines, within the life of a replaceable ribbon. This was also accomplished in the prior art by a mechanical or by an electrical-mechanical counter. Such electrical-mechanical counter could either be preset to a fixed number and count down, or, alternatively, could be preset to zero and count up. Both the counters for lines printed and for remaining lines of ribbon life tended to be bulky, expensive and failure prone. 
     Additionally, prior art printers normally employed an analog &#34;mercury&#34;, thermometer-type, powered-on hours indicator. Such indicators are based on the migration of a visual indicator, nominally mercury, through a media during the presence of a potential difference across such media during periods of printer power on. Upon such elapsed hours as the migrating substance has completely crossed the media, the meter scale may be reversed, or the applied voltage may be reversed, and the entire process engaged in in the reverse direction. Unfortunately, the indication of elapsed hours obtained from such devices is extremely crude. 
     There is no evident attempt in the prior art to accumulate total print hours, possibly because of such crudity of elapsed time indicators. Consequent to the failure to determine total print hours, the duty cycle during which the printer is actually printing, as a fraction of the total hours during which the printer is powered on, has been indeterminable. 
     SUMMARY OF THE INVENTION 
     The present invention is a comprehensive, microprocessor-based, integrated meter package particularly for a line printer. The meter package will receive a line printed signal and power on voltage from the printer, and the user can manually enter a preset ribbon exhaust count. It internally produces a reference clock signal. The meter package computes therefrom, and selectively displays on an alphanumeric display panel, the (1) total lines printed, (2) total power-on hours, (3) total print hours, (4) ribbon exhaust preset, and (5) number of lines remaining in the current ribbon life. The meter package contains a microprocessor. Control of the microprocessor is by microcode, which is tailored in the preferred embodiment of the invention to a line printer but which is adaptable to diverse printer types. The microprogram approach offers improved English language prompts and output communication, better accuracy and resolution of quantities derived, and a cost reduction over prior art systems. It additionally offers the intrinsic display of new (the total print hours) and more accurate (the total power-on hours) information. Quantities hithertofore undeterminable such as the printer duty cycle (equalling the total print hours divided by the total power-on hours) are accurately determinable from the display output of the microprocessor-controlled meter package of the present invention. 
     In particular implementation, the present invention uses a microprocessor with both an integrated, on-board, random access memory (RAM) and read only memory (ROM), a 16-character alpha-numeric display, a non-volatile electrically erasable programmable read-only memory (EEPROM), and an 8-position membrane keypad. Multiple functions are accessible from the keypad, and data such as the ribbon life preset may be entered. The microprocessor uses its on-board random access memory (RAM) during power-on time for the storage of operands. The micro-instructions are nonvolatilely stored in the on-board read only memory (ROM). When the printer&#39;s power supply is cut off, a rapidly dropping printer-developed signal is sensed by the microprocessor some milliseconds before the D.C. supply voltage used to power the meter logic becomes unusable. The microprocessor then preserves computed operands in the RAM memory to the EEPROM (which has a limited write cycle life). The contents of the EEPROM are reloaded to RAM on power-up, and the system is totally reactivated for accruing the metered quantities. Displayed resolution of all time quantities maintained is to the hour, and all counts maintained are precise. 
     Correspondingly, it is the object of the present invention to employ a microprocessor-based integrated meter package for the metering of certain quantities, and elapsed times, particularly pertinent to the operation of a printer. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 shows a representational diagram of the location and function of the present invention of a microprocessor-controlled meter package for a printer. 
     FIG. 2 shows a schematic block diagram of the microprocessor-controlled meter package for a printer of the present invention. 
     FIG. 3 shows a timing diagram of certain signals of the printer which are communicated to and from the circuit of the present invention shown in FIG. 2. 
     FIG. 4 shows a pictorial representation of the 16-character alpha-numeric display and membrane keypad switch panel, both previously seen in FIG. 2, of the present invention. 
     FIG. 5 shows a matrix indicating how actuation of those membrane switches, shown in the pictorial representation of the display of FIG. 4, translate into control signals received at the microprocessor previously seen in FIG. 2. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     The present invention of a microprocessor-controlled meter package for a printer accumulates and displays certain status and use information involved with the activities of a line printer. In prior art printers, the total number of lines printed within a line printer, and the number of lines printed since the replacement of the ribbon (or, alternatively, the number of lines remaining in a preset ribbon count which is decremented with each line printed) were, insofar as such quantities were registered at all, maintained by mechanical or electrical-mechanical counters. The number of power-on hours (which will be maintained by the meter package of the present invention) was maintained in prior art printers by &#34;thermometer-type&#34; analog gauges reading, as a crude indication of elapsed time, the visual migration of a chemical indicia across a barrier of some width due to the presence during power on of a power voltage which induces migration of the indicia across the barrier. The physical displacement of the indicia within the barrier is a rough indication of elapsed power on time. By contrast, the present invention will maintain the total printer-on hours (HOURS ON) with high accuracy, and will additionally maintain the total number of hours during which the printer actually prints (PRINT HOURS). From these two quantities, the duty cycle of use of the printer can be derived as the total print hours divided by the total hours on. 
     A representational diagram of the present invention is shown in FIG. 1. An integrated METER PACKAGE 1 is completely contained within an otherwise conventional LINE PRINTER which is correspondingly illustrated in dashed line. A MICROPROCESSOR 2 is for receiving CONTROL AND DATA signals from a manual SWITCH PANEL 6, and signals indicating LINE PRINTED and POWER ON from the LINE PRINTER, plus a POWER GOING DOWN signal when the printer&#39;s power supply is cut off. A CLOCK signal is internally developed in METER PACKAGE 1, such as in the microprocessor. From these control, data, and input signals and by reference to the clock signal the MICROPROCESSOR 2 CALCULATES the counter variables (1) HOURS ON, (2) PRINT HOURS, (3) PRINTED LINES, and (4) REMAINING RIBBON LIFE. These quantities and others are displayed on an ALPHANUMERIC DISPLAY 12, in a prestored format which offers ENGLISH LANGUAGE MESSAGES &amp; PROMPTS. The entire function is controlled by microcode. 
     A schematic block diagram of the apparatus of the present invention is shown in FIG. 2. The MICROPROCESSOR 2 receives certain power, ground, and sensor signals via a plug 4 embedded in the printer. The MICROPROCESSOR 2 also receives input signals from an external SWITCH PANEL via a cable having a plug 8. The MICROPROCESSOR 2 engages in bidirectional communication for the reading and writing of data with a 16×16 NONVOLATILE EEPROM 10. To output the computed meter readings the MICROPROCESSOR 2 transmits the codes for 16 characters of corresponding alpha-numeric information for display on a 16 CHARACTER ALPHA-NUMERIC DISPLAY 12 connected by cable via a plug 14. Also upon its bussed communication channel, the MICROPROCESSOR 2 uses its on-board random access memory (RAM) for the storage of operands, such as the counter variables. The MICROPROCESSOR 2 uses its on-board read only memory (ROM) for the storage of microinstructions. Finally, the microprocessor produces a RIBBON EXHAUSTED signal which is communicated to an indicator within the printer via an alarm line connecting through a pin 2 of printer plug 4. Normally, the MICROPROCESSOR 2 and associated components illustrated inboard of plugs 4, 8, and 14 are entirely implemented upon a single printed circuit card. 
     Continuing in FIG. 2, the MICROPROCESSOR 2 is flexibly controlled by a microprogram prestored within its on-board read only memory (ROM). For nonvolatile storage of variables MICROPROCESSOR 2 also communicates with a second random access memory in the form of a 16×16 electrically erasable programmable memory, EEPROM 10. Compared to the RAM memory, this EEPROM has a limited write cycle life. After printer power is restored, the program contents within such memory are transferred back by the MICROPROCESSOR 2 to its on-board random access memory (RAM) and the operands stored in such random access memory (RAM) are used for the duration of the power-on condition. Responsive to an imminent power loss condition at the printer, a POWER GOING DOWN signal is received on plug 4, pin 5. The MICROPROCESSOR 2 will write the contents of its onboard random access memory (RAM), including all accumulated meter readings, to the 16×16 NONVOLATILE EEPROM 10. In particular, the total lines printed (in kilolines) and total hours on operand quantities will be stored. This activity upon the detection of an imminent power loss eliminates the need for battery backup of the on-board random access memory (RAM), for which the contents are volatile during power outage. 
     The function of MICROPROCESSOR 2 so executing such microprogram contained within the on-board read only memory (ROM) is to interpret user commands which are entered through manual SWITCH PANEL 6, to maintain certain accumulations of status and use conditions of the printer, and to display selected status or accumulated use totals as output alpha-numeric displays on the 16 CHARACTER ALPHANUMERIC DISPLAY 12. In particular, the microprocessor-executed program will cause the panel display to automatedly scroll through the following messages designated A-E at approximately 2-second intervals: 
     A XXXXX HOURS ON 
     B XXXXX PRINT HRS 
     C XXXXX K LINES 
     D X X X K LINES LEFT (or if the ribbon is exhausted then display: RIBBON EXHAUSTED) 
     E PRESET=X X X K (or if preset=0 then display: NO RIBBON PRESET) 
     A Mode switch (shown in FIG. 4) within the 8-position membrane keypad which serves as SWITCH PANEL 16 will, when pressed, cause the scrolling of the display to stop and will maintain the display of the current mode for 10 seconds. If the Mode switch is again depressed within the 10-second interval, then the next occurring status message will be displayed. 
     In all the messages A-E illustrated above, the character &#34;X&#34; is replaced with an appropriate actual digit. Message A is the microprocessor-calculated number of power on hours, which is derived from maintaining an HOURS ON counter variable responsive to a 12 megahertz internal clock signal shown in FIG. 2 to be regulated by a 12 MHz crystal connected at pins 18 and 19. Appendix A is an assembly program that includes steps enabling an Intel 8051 microprocessor to calculate HOURS ON using an onboard timer (TIMER1) driven by the microprocessor&#39;s clock pulses. A SET --  TIMER1 routine (lines 910-16) set TIMER 1 to interrupt the microprocessor every 50 ms as long as the POWER ON signal is high. In a corresponding TIMER1 --  INT interrupt handler, twenty such interrupts decrement a SECOND COUNTER (lines 160, 862-876), and sixty decrements of SECOND decrement a MINUTE counter (lines 162, 876-79). Sixty decrements of MINUTE increment (lines 879-884) a two byte hours counter (HOUR  --  2, HOUR --  1) that holds the HOURS ON value. 
     Message B is the microprocessor-calculated number of PRINT HOURS which is derived by updating a PRINT HOURS counter variable from the clock only during periods when the LINE PRINTED signal has changed level (meaning a line has been printed) within a suitably preselected proximate time interval, nominally 1 second. The assembly program of Appendix A also uses the TIMER1 --  INT interrupt handler to calculate PRINT HOURS. Each time the SECOND counter is decremented, a P --  SECOND counter (&#34;line printed&#34; seconds) is also afterwards decremented (line 888), provided a PRINT FLAG bit is set (line 886). Sixty decrements of P --  SECOND decrement a P --  MINUTE counter, and sixty decrements of P --  MINUTE increment a PRINT HOURS counter (PHOUR 13  2, PHOUR --  1) (lines 888-896). The PRINT --  FLAG bit is set at line 921 by a LINE --  COUNT routine (lines 917-972) each time a line is printed, but is then cleared within a second by line 887 of the TIMER1 --  INT handler. Therefore, the PRINT-FLAG remains cleared during periods when the LINE PRINTED signal has not gone high for one second or more, and such nonprinting periods do not contribute to incrementing the PRINT HOURS counter variable. It should be recognized that a 600 lines-per-minute (600 lpm) printer prints a line every 100 milliseconds and a 900 lpm printer prints a line approximately every 66.7 milliseconds. 
     Message C represents the number of lines printed, in thousands, and is derived by the microprocessor directly from counting (as a lines counter variable) the level changes (in thousands) of a line printer signal shown in FIG. 1. 
     As an example of keypad or SWITCH PANEL 6 communication with the MICROPROCESSOR 2, a preset in kilolines of the expected ribbon life may be entered. Such ribbon preset can only be entered when the mode is selected by the Mode switch to the message E, &#34;PRESET=XXX K&#34;. When this ribbon preset mode is entered, additional switches 1, 10, and 100 in a membrane switch panel area called RIBBON EXHAUST PRESET (shown in FIG. 4) can be used to increment the present value accordingly. For example, if the display shows &#34;PRESET=123 K&#34;, then pressing the ones switch one time will cause the display to change to &#34;PRESET=124 K&#34;. Correspondingly, pressing the TENS switch one time will cause the display to further change to &#34;PRESET=134 K&#34;. 
     Further to the interaction with the microcoded control of the ribbon preset, reset of the ribbon exhausted condition, which results in a RIBBON EXHAUSTED signal on plug 4, pin 2 shown in FIG. 2, will only be recognized when in the mode displaying the message D &#34;X X X K LINES LEFT&#34;, or displaying the message &#34;RIBBON EXHAUSTED&#34;. When in such a mode displaying either of the messages D, pressing the RESET switch (shown in FIG. 4) will load the ribbon preset value into the LINES LEFT value maintained for the ribbon by the microprocessor. Additionally, when the display shows the message &#34;RIBBON EXHAUSTED&#34;, then depressing the RESET switch (shown in FIG. 4) will additionally clear the ribbon exhausted fault as well as load the ribbon preset value into the LINES LEFT value maintained by the microprocessor. The particularities of switch control communication with the microprocessor, and the messages resultant thereby such communication, are not of any particular nor fundamental importance to the present invention, the pertinent concept being only that the microprocessor is controllable for accepting certain data and commands and for making display of data maintained therein responsive to such commands. 
     Continuing in FIG. 2, the preferred embodiment components for the implementation of the structures shown therein include an 8-position membrane keypad in implementation of SWITCH PANEL 6. The pull-up resistors of values 4.7 K ohms for pulling up the voltage level on HIGH signals received at MICROPROCESSOR 2 from SWITCH PANEL 6 are normally contained within a unitary package 30. The MICROPROCESSOR 2 is nominally of type Intel 8051. It contains both an on-board random access memory (RAM) and a read-only memory (ROM). The 16×16 NONVOLATILE EEPROM is nominally of type MNC 9306. The inverters 20, 22, 24, 26, and 28 shown in FIG. 1 are type 74LS14. Additional diodes, capacitors, resistors, and a clock crystal of frequency 12 megahertz for the microprocessor are of values as labelled. 
     Referencing FIG. 3, the LINE PRINTED signal previously observed in FIG. 2 to be received through plug 4 pin 3, and inverter 22 into pin 12 of the MICROPROCESSOR 2, goes high upon the printing of each line. Such signal will be at a periodicity of 100 milliseconds in a 600-lines-per-minute printer, or at a periodicity of approximately 66.7 milliseconds in a 900-lines-per-minute printer. Such signal is readily derivable from the control section of any line printer. 
     Not intended to be related to the time scale shown for the LINE PRINTED signal, the POWER GOING DOWN signal shown in FIG. 3 was that printer-derived signal previously seen in FIGS. 1 and 2 which will occur upon the interruption of printer power at a short interval prior to the decay of the +5 V.D.C. system power to an unusable level. This interval is illustrated in FIG. 3 to be typically greater than 400 msec. Finally, the RIBBON EXHAUSTED signal previously seen in FIG. 2 is an output signal from the microprocessor, high when the ribbon is not exhausted and low when the ribbon exhaust preset line capacity has been exceeded during successive printing of lines. 
     A diagrammatic representation of a suggested implementation and layout of the SWITCH PANEL 16, implemented as an 8-position membrane switch, is shown in FIG. 4. Additionally appearing is the display area of the 16 CHARACTER ALPHANUMERIC DISPLAY 12, which is nominally a Hitachi type LM020 LCD display. All membrane switches labelled Mode, Reset, F1, F2, F3, 100, 10 and 1 are used to produce signals sent to MICROPROCESSOR 2. The eight bit manner of encoding such switches for the setting of the low conditions of signal lines bits 1 through 8 is shown in FIG. 5. Such encoding, which is arbitrary, is usable in reference to interpreting the appended microcoded program used in control of the present invention. 
     An annotated assembly language source program for control of an Intel 8051 microprocessor in order to implement a meter package for a printer is contained in Appendix A to the present specification disclosure. Such program for an Intel 8000 family microprocessor is readily interpretable. For example, referring to Appendix A, to count the number of lines printed, program lines 103-104 instruct the 8051 microprocessor to jump to a LINE --  COUNT interrupt routine (lines 917-972) each time the LINE PRINTED signal input via inverter 22 to microprocessor pin 12 goes high. The LINE --  COUNT routine sets a PRINT FLAG bit (line 921) each time it is called. For each thousand times it is called, the LINE --  COUNT routine also increments (lines 934-40) a three byte &#34;kilolines printed&#34; counter variable (LINE --  3, LINE --  2, LINE --  1) and decrements (lines 944-49) a two byte &#34;remaining ribbon life in kilolines&#34; counter variable (REMAIN --  2, REMAIN --  1). 
     The program allows flexibility of the microprocessor-controlled meter package and enables display of customized alphanumeric messages. As was observed in FIG. 4, currently unused function keys F1, F2, and F3 allow implementation of specific customer requirements or future enhancements. Possible enhancements to the functions performed by the present invention include (1) the calculation of the printer duty cycle as the PRINT HOURS time divided by the total printer HOURS ON time, (2) the remaining hours until a service call is required, (3) the number of printer faults, and/or (4) the number of printer faults causing or requiring power down. Exclusive of such flexible future implementation, it will be recognized that the present approach offers more information, English language messages and prompts, better accuracy, and cost reduction over prior art methods of displaying status within, and cumulative operations of, a line printer. Consequent to such flexible and efficient application in serving as the meter package for a printer, the present invention should be interpreted by those claims which follow, only, and not by the specific preferred embodiment, either hardware or software, within which such invention is taught. 
     
                       TABLE OF CONTENTS______________________________________METER PACKAGE ASSEMBLYLANGUAGE SOURCE PROGRAMINTEL MCS-51 MACROASSEMBLER V1.0LINES   DESCRIPTION______________________________________013-091 EQUATE TABLE   (ADDRESSES OF VARIABLES)092-823 MAIN PROGRAM092-117 INTERRUPT VECTOR TABLE118-207 INITIALIZE &amp; RESTORE208-218 DISPLAY NEXT MODE219-291 SCAN &amp; READ KEYPAD (Switch Panel)SUBROUTINES:292-440 MODE HANDLERS441-695 MODE DISPLAY696-725 WRITE TO LCD DISPLAY726-823 READ/WRITE EEPROM ROUTINE824-994 INTERRUPT ROUTINES824-857 DISPLAY FLASHER (TIMER 0 INTERRUPT)858-916 50 MS TIMER (TIMER 1 INTERRUPT)917-972 LINE COUNTER (EXTERNAL INTERRUPT 0)973-994 POWER DOWN HANDLER   (EXTERNAL INTERRUPT 1)PAGE 21 CROSS REFERENCE TABLE______________________________________ ##SPC1##