Abstract:
In a measuring device for integral values formed over a time span which is constantly up-dated, the system being one in which pulses represent a fixed quantity of the value being measured, the pulses are stored in a random access memory of a microcomputer with the central processing unit of the microcomputer sequentially addressing individual memory cells, in a repetitive manner after each sweep of the time span.

Description:
BACKGROUND OF THE INVENTION 
     This invention relates to measuring in general and more particularly to an improved measuring device for integral values formed over a time span which is constantly up-dated. 
     Systems are known in which the object of measurement provides an output in the form of series of pulses, each pulse representing a fixed quantity. For example, a rotating flow meter might output one pulse per rotation with each rotation representing a predetermined quantity of liquid. Staying with the same example, assume that each pulse represents 10 cc. Thus, 100 pulses would represent one liter. Suppose it is desired to determine the flow rate in liters per minute. If one counts pulses for one minute the count will be porportional to the flow in liters per minute after a division by one hundred. For example, if the count is 123 pulses that means that the flow rate is 1.23 liters per minute. 
     Apparatus for making measurements of this nature has been developed and is disclosed in German Offenlegungsschrift 24 46 602. The incoming pulses are fed to a flip-flop having its output coupled to a shift register which is caused to shift by a clock operating at a frequency which is at least as great as the maximum pulse rate input of the measurement quantity. The incoming pulses representing a predetermined quantity act to set the flip-flop. On the next clock pulse this data is transferred to the shift register and the flip-flop reset. The shift register has a length corresponding to the maximum measurable rate, i.e., if the time span over which the measurement is to take place is one minute and if the clock rate is, for example, 200 pulses per minute, then the shift register would have 200 stages. Going back to the example given, this would mean that the maximum rate of the flow meter which could be sensed would be 200 pulses per meter or two liters per minute. Because the shift register is constantly operating it will give the instantaneous average or integral value at any given time. In other words, it is constantly up-dated. With each clock pulse the one minute time integral of the example is shifted 1/200 of a minute. In order to provide an output which corresponds to what it is stored in the shift register in convenient fashion, the input to the shift register is also coupled as the up count to a forward-backward counter. The output of the last stage of the shift register is coupled as the down count. In this manner, the count in the counter always exactly equals the number of pulses in the shift register. Each time a pulse is taken out of the shift register a pulse is taken out of the counter and each time a pulse is added to the shift register a pulse is added to the counter. The counter output is then used to drive an LED display to give a constant indication of the integral value being measured. In the example given above, the output of the counter could be decoded in a binary to decimal decoder and used to drive a LED display which read directly in liters per minute. 
     In another similar type of measuring device not all components are electronic. Instead of the counter and display, an electro mechanical device such as a stepper motor is driven in one direction, i.e., forward, by the pulses entering the shift register and in the other direction, i.e., backward, by the pulses leaving the shift register. In this manner the angle of rotation of the electro mechanical device corresponds to the content of the shift register. Again, an output indication such as a reading in liters per minute directly becomes possible. 
     In both of the above-mentioned devices a shift register is utilized into which the pulses representing a fixed quantity are inserted serially bit by bit with the shifting clock rate constant and at least as high as the maximum pulse rate which is to be received at the input. 
     SUMMARY OF THE INVENTION 
     It is an object of the present invention to simplify a measuring device of the general type described above. 
     According to the present invention this is accomplished by using, instead of a shift register, a random access memory (RAM) of a microcomputer to store the incoming pulse information. In this system, the central processing unit (CPU) of the microcomputer is used to address the individual memory cells sequentially. A number of memory cells sufficient to store the information over a given time period is used. Once these have been gone through sequentially over that time period, the sequence is again repeated. In accordance with the present invention, when a pulse arrives it is written into the next memory location as a &#34;1&#34;. In order to keep a running record, i.e., to perform the function which the counter performs in the prior art device, a storage register in the microcomputer is used. Each time a memory location is loaded, that memory location is first read and the quantity therein subtracted from the register, which hereinafter will be referred to as the instantaneous value register. Then the value which is being read into the memory is read in that location and also added to the instantaneous memory register. In a fashion similar to the prior art device using the shift register, the CPU addresses one cell of the RAM after another at constant time intervals, addressing the cells from 0 to n. In a RAM, each memory cell is addressable, i.e., the memory cell corresponding to the address which is selected is always written into, cleared or read depending on the command given. Each time a pulse arrives, the next memory cell, it is stored in the next cell which is accessed. The previously stored value is subtracted from the instantaneous memory register, and the received pulse value, i.e., &#34;1&#34; written both into the address cell and the instantaneous memory. After all cells have been gone through and the cell n is reached addressing starts at 0 again. Following this procedure, the value in the instantaneous memory register will always be equal to the sum of the values stored in all the memory cells and will thus represent the instantaneous value over the time span under consideration. 
     Since in conventional microcomputers the memories are not normally organized as n×1 bits, but are more commonly organized as n×4 or n×8 bits, it is necessary either to leave a large part of the memory unused when applying the method just described or it becomes necessary to take additional measures such as working with mask commands. However, in accordance with a further feature of the present invention, fast processing and good utilization of the memory are obtained by combining the fixed quantity pulses into n bit coded groups and increasing the addressing interval for the memory by n time intervals. The fact that several arriving pulses are combined in groups results in considerably reduced storage requirements. A RAM organization of n×4 bits means that one cell contains 4 bits. This in turn means that it is possible to store 15 input pulses in binary fashion in each cell. This in turn permits the sampling interval of the memory to be increased by a factor of 15. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of the system of the present invention. 
     FIG. 2 is a flow diagram showing the operation of the present invention using the system of FIG. 1. 
     FIG. 3 is a diagram helpful in understanding the operation of the system described in connected with FIGS. 1 and 2. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 1 is a block diagram of the system of the present invention. Included is a flip-flop 11 which is set by the pulses of the incoming pulse train each pulse of which represents a fixed amount of the quantity being measured. The output of the flip-flop 11 is coupled to an input/output port (I/O port). The I/O port is coupled over a data and address bus 14 to a central processing unit 15 of a microcomputer. Also coupled over this bus 14 is a random access memory 17. The I/O port provides an output to reset the flip-flop 11 and also provides an output to a display 19 over a bus 21. 
     The operation of this system can best be understood by examining FIG. 1 in conjunction with FIG. 2 which is a flow diagram for the device of the present invention. An incoming pulse sets flip-flop 11. In accordance with the program stored within the CPU 15 and in accordance with block 23, data is input. What this requires is that the I/O port at its input from the flip-flop be sampled at a rate greater than the maximum input pulse of the pulses 25 coming into the flip-flop 11. The central processing unit 15 addressed the input section of the input port 13. Then, in accordance with block 24, it adds whatever it has found at the input port to an internal register designated herein as register A. Next, the I/O port 13 is addressed again to output a reset signal to the flip-flop. Then, a value in an internal counter designated x is set equal to x+1, as indicated by block 26. Thereafter, a check is made to see if x is equal to 15. If the answer is no, the program loops back to gether more data. This is repeated 15 times. After 15 passes are made through this loop the answer at block 27 is yes and a block 29 is entered indicating that x should be set to 0. The next item to be done is to read the value y from the memory location m. Then, as indicated by block 33 the value y is subtracted from a register B, the B register being the instantaneous memory register referred to above. Next, the x value in register A is added to the value in register b as indicated by block 35 and then the value in register A stored in location m as indicated by block 37. Register A is then set to 0 as indicated by block 39 and the value in register B provided as an output to the display 19 as indicated by block 41. Preferably, the I/O port 13 will be one capable of storing the values output so that, between up-dates the stored value will remain on the bus 21 activating the display 19. Alternatively such storage can be built into the display 19. The program next goes to a decision block 43 where a check is made to see if m is equal to n, n being the last memory location. If the answer is no, m is set equal to m plus 1 and the program goes back to block 23. When m equals n, meaning that all memory locations have been gone through, the answer at the output block 43 is yes and a block 45 is entered where m is set back to 0 and, once again block 23 is entered. 
     FIG. 3 illustrates the system in action over a portion of the scan of the n memory locations. The instantaneous value in the register designated in FIG. 2 as B, is assumed to be 123. This is the value that has been provided as an output to display 19. In the example given above, where flow was measured in liters per minute, this could be displayed as 1.23 liters per minute, for example, Blocks 23-26 are run through 15 times. In other words, the output of flip-flop 11 is sampled 15 times and each time, if there is a &#34;1&#34; present, it is added to the input of register A. In the example shown on FIG. 3, during this period only three pulses are detected. Thus, when x reaches 15, the value in register A is equal to three. Memory address 74 is accessed and the value, 12, stored therein read and subtracted from B. Next, three is added to B and is also stored in the location 74. As shown, the instantaneous value in register B is now 114 and, in accordance with the instruction of block 41, the display 19 will be up-dated to give this reading. Similarly, when, after 15 more samples are taken, with an input of 5 pulses counted during that period, the 5 is added to the 114 while at the same time 9 stored in memory location 75 is subtracted to give an end result of 110. During the next sampling increment 8 pulses are received and 8 pulses were previously stored in memory location 76 so that the count remains the same. Similar examples are shown for the memory locations 77, 78 and 79.