Abstract:
A programmable digital frequency divider comprises a programmable binary counter in receipt of an input pulse train to develop output pulses at a frequency variable as a function of a set of binary program control signals supplied in the form of normal binary number system. A binary code converter is provided to convert the binary number system of the program control signal into a modified binary number system in which the modified binary number is an integral multiple of the corresponding input binary number minus error compensating binary digits, wherein the number of compensating bits differs depending on the particular binary number. Electrical signals representing the modified binary numbers are supplied to the program input terminals of the binary counter so that the frequency of its output signal is substantially linearly variable as a function of discrete variations of the program control signal.

Description:
BACKGROUND OF THE INVENTION 
     The present invention relates generally to programmable frequency dividers, and in particular to a programmable digital frequency divider and synthesizer which delivers signals at a frequency which is variable substantially linearly as a function of a set of input binary states. 
     With conventional programmable frequency synthesizers, which serve as a standard frequency source for motor speed control purposes, the output frequency is nonlinearly variable as a function of discrete variations of frequency control input signals. More specifically, the prior frequency synthesizer employs a programmable frequency divider whose output frequency is nonlinearly variable as a function of stepwise variations of the program control input signal. Therefore, as the ratio of frequency division is varied in response to the control signal the output frequency tends to deviate from the correct frequency and the amount of this deviation increases with increase in the output frequency. 
     SUMMARY OF THE INVENTION 
     It is an object of the present invention to provide a programmable digital frequency divider which delivers output pulses at frequencies variable substantially linearly as a function of discrete variations of program control signal. 
     According to one feature of the invention, the digital frequency divider comprises a programmable counter and a binary code converter which converts the normal binary number system into a modified binary number system in which the modified binary number is an integral multiple of the corresponding input binary number with one or more error correcting binary digits eliminated from the multiplied binary numbers. A set of binary signals representing the modified binary number system is applied to the programmable counter to alter its frequency division ratio, so that the counter delivers signals at a frequency which is substantially linearly related to each set of binary program input signals representing the normal binary number system. 
     The digital programmable frequency divider of the invention is advantageously employed in combination with a source of clock pulses to synthesize a variable frequency signal. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The invention will be further described by way of example with reference to the accompanying drawings, in which: 
     FIG. 1 is a block diagram of a prior art frequency synthesizer; 
     FIG. 2 is a general block diagram of the frequency synthesizer embodying the digital programmable frequency divider of the invention; 
     FIG. 3 shows details of a binary code converter of FIG. 2; 
     FIG. 4 is a graphic illustration of the frequency variation error rate of the invention as a function program input represented by decimal number in comparison with the prior art system; 
     FIG. 5 shows details of another binary code converter of FIG. 2; and 
     FIGS. 6-8 are timing diagrams useful for describing the operation of the FIG. 5 embodiment. 
    
    
     DETAILED DESCRIPTION 
     Before describing the present invention reference is first made to FIG. 1 in which a prior art frequency demultiplier or divider is illustrated. In FIG. 1, reference numeral 1 is an inverter, which together with a crystal quartz oscillator element 2, resistance 3 and capacitors 4 and 5 constitutes an oscillator. An inverter 6 is provided which serves as a buffer amplifier whose output is connected to the clock input terminal 7a of a flip-flop 7. To the output terminal 7b of the flip-flop 7 is connected an input terminal of an Exclusive-OR gate 8, and to the complementary output terminal 7c of the flip-flop 7 is connected the clock input terminal 9a of a flip-flop 9. To the true output terminal 9b of the flip-flop 9 is connected an input terminal of an Exclusive-OR gate 10 and to the complementary output 9c of the flip-flop 9 is connected the clock input terminal 11a of a flip-flop 11. To the true output terminal 11b of the flip-flop 11 is connected an input terminal of an Exclusive-OR gate 12 and to the complementary output terminal 11c of the flip-flop 11 is connected the clock input terminal 13a of a flip-flop 13. To the true output terminal 13b of the flip-flop 13 is connected an input terminal of an Exclusive-OR gate 14 and to the complementary output 13c of the flip-flop 13 is connected the clock input terminal 15a of a flip-flop 15. To the complementary output 15c of the flip-flop 15 is connected the clock input terminal 16a of a flip-flop 16 whose complementary output 16c is connected to the clock input terminal 17a of a flip-flop 17. 
     Furthermore, another input terminal of each of the Exclusive-OR gates 8, 10, 12 and 14 is connected to program input terminals A, B, C and D, respectively. The output terminals of these Exclusive-Or gates and the true output terminals 15b, 16b and 17b of flip-flops 15, 16 and 17 are connected to respective input terminals of an AND gate 18 whose output terminal is connected to the set input terminals of flip-flops 7, 9, 13 and 15 and also to the reset input terminals of flip-flops 11, 16 and 17, and further to an output terminal E of the frequency divider. 
     Each of the flip-flops 7, 9, 11, 13, 15, 16 and 17 is designed to switch to a logic &#34;1&#34;, which appears as a high voltage level at the true output terminal, in response to the leading or positive edge of an input clock pulse when the set and reset input terminals are both at a logic &#34;0&#34; or low voltage level, and also switch to logic &#34;1&#34; when each flip-flop receives a logic &#34;1&#34; signal at its set input terminal regardless of the binary state of its clock input terminal, and switch to a logic &#34;0&#34; level whenever a logic &#34;0&#34; signal is applied to the reset input regardless of the binary state of the clock input terminal. 
     Assuming that a set of binary signals &#34;0000&#34; is applied to the program input terminals D, C, B and A, each flip-flop generates a logic &#34;1&#34; output, so that the output of the AND gate 18 is switched to logic &#34;1&#34;, causing flip-flops 17, 16, 15, 13, 11, 9 and 7 to reset to logic levels &#34;0011011&#34;, respectively. In other words, the output terminal E is preset to a binary digits &#34;0011011&#34; which is a decimal value of &#34;27&#34; when all the flip-flops are at logic level &#34;1111111&#34; which is a decimal value of &#34;127&#34;, whereby the frequency divider changes its binary state in 100 discrete steps starting from the decimal value of 27 to the decimal value of 127. Therefore the output frequency of the divider is 1/100 of the input frequency. 
     Assuming next that the program input is changed to &#34;0001&#34;, the flip-flops will be reset to &#34;0011011&#34; as counted from flip-flop 17 down to flip-flop 7 when these flip-flops are at logic levels &#34;1111110&#34;, respectively. In this case, the frequency divider is preset to a division ratio of 1/99. In the same manner, a program signal of &#34;1111&#34; will produce a set of logic levels &#34;1110000&#34; which cause the flip-flops to change to &#34;0011011&#34;, presetting the frequency divider to a ratio of 1/85. As seen from Table I, as the program input is varied with a step of binary &#34;1&#34; from decimal &#34;0&#34; to decimal &#34;10&#34;, for example, with corresponding frequency division ratios from 1/100 to 1/90 and the input frequency is set at 100 kHz, the output frequency varies from 1000 Hz to 1111 Hz with a variation ranging from +0.000 to + 11.111%. However, it is noted that the output frequency does not vary at equal steps and the amount of error increases with deviation from 1000 Hz, as best indicated by dotted lines in FIG. 4. 
     
                       TABLE I______________________________________Program Input           Output   Binary    Division  Frequency                                VariationDecimal &#34;DCBA&#34;    Ratio     (Hz)     (%)______________________________________0       0000       1/100    1000     +0.0001       0001      1/99      1010     +1.0102       0010      1/98      1020     +2.0413       0011      1/97      1031     +3.0934       0100      1/96      1042     +4.1675       0101      1/95      1053     +5.2636       0110      1/94      1064     +6.3837       0111      1/93      1075     +7.5278       1000      1/92      1087     +8.6969       1001      1/91      1099     +9.89010      1010      1/90      1111     +11.111______________________________________ 
    
     This unequal frequency change is particularly disadvantageous in applications such as CB transceivers or frequency synthesizers. 
     Phase-locked loop frequency synthesizers may serve as a solution to this problem. However, it requires the use of analog circuit elements such as voltage controlled oscillator and lowpass filter and if the system is constructed on an integrated circuit chip, capacitors must be mounted outside of the chip, which tends to produce interference between a crystal oscillator and the voltage-controlled oscillator. 
     FIG. 2 is an illustration of an embodiment of the present invention wherein the same parts are indicated by the same reference as used in FIG. 1. 
     In FIG. 2 the output signal or train of clock pulses from the standard frequency signal source 19 is applied to an X input terminal of a programmable frequency divider or programmable binary counter 25 which comprises flip-flops 7, 9, 11, 13, 15, 17, 22, 23, Exclusive-OR gates 8, 10, 12, 14, 20, 21, and an AND gate 24 which takes its inputs from the outputs of the Exclusive-OR gates 8, 10, 12, 14, 20 and 21 and from the outputs of flip-flops 17, 22 and 23. To the output terminal of the AND gate 24 are connected the set input terminals of flip-flops 7, 9, 11, 13, 16 and 17 and the reset input terminals of flip-flops 15, 22 and 23. With this circuit arrangement, the programmable divider 25 is preset to a binary state &#34;001101111&#34; corresponding to a decimal &#34;111&#34; when the output of AND gate 24 goes high. 
     A binary code converter 26 is provided which takes its binary inputs from program input terminals A, B, C and D and delivers its binary outputs through terminals F, G, H, I, J and K to one input of Exclusive-OR gates 8, 10, 12, 14, 20 and 21, respectively. 
     FIG. 3 illustrates an example of the binary code converter 26 which comprises inverter circuits 27 to 30, AND gates 31 to 40 and OR gates 41 to 46. The inverter 27 takes its input from program input terminal D and delivers its inverted output to AND gates 31 to 37. The inverter 28 takes its input from terminal C and delivers its inverted output to AND gates 31-33 and 38-40, the inverter 29 taking its input from terminal B and delivering its inverted output to AND gates 31, 34, 35, 38 and 39, and inverter 30 taking its input from terminal A and delivering its inverted output to AND gates 32, 34, 36, 38 and 40. On the other hand, terminal D is connected directly to AND gates 38 to 40, terminal C being directly connected to AND gates 34 to 37; terminal B being directly connected to AND gates 32, 33, 36, 37 and 40; and terminal A being directly connected to AND gates 31, 33, 35, 37 and 39. OR gate 41 takes its inputs from the outputs of AND gates 39 and 40 and delivers its output to terminal K; OR gate 42 taking its inputs from the output of AND gates 35 to 38 and delivering its output to terminal J; Or gate 43 taking its inputs from the outputs of AND gates 32, 33, 34, 37 and 38 and delivering its output to terminal I; OR gate 44 taking its inputs from the outputs of AND gates 31, 33, 34, 36, 38 and 40 and delivering its output to terminal H; OR gate 45 taking its inputs from the outputs of AND gates 34 to 38 and delivering its output to terminal G; and OR gate 46 taking its inputs from the outputs of AND gates 34, 35, 36 and 39 and delivering its output to terminal F. 
     With this circuit arrangement, the following relations hold between input and output binary states: 
     
         ______________________________________INPUT BINARY STATES            OUTPUT BINARY STATESD    C       B       A     K   J    I    H    G    F______________________________________[0   0       0       0]    [0  0    0    0    0    0][0   0       0       1]    [0  0    0    1    0    0][0   0       1       0]    [0  0    1    0    0    0][0   0       1       1]    [0  0    1    1    0    0][0   1       0       0]    [0  0    1    1    1    1][0   1       0       1]    [0  1    0    0    1    1][0   1       1       0]    [0  1    0    1    1    1][0   1       1       1]    [0  1    1    0    1    0][1   0       0       0]    [0  1    1    1    1    0][1   0       0       1]    [1  0    0    0    0    1][1   0       1       0]    [1  0    0    1    0    0]______________________________________ 
    
     When the output binary state is &#34;000000&#34;, all the flip-flops are switched to &#34;1&#34; state which corresponds to a decimal number &#34;511&#34; and AND gate 24 is thus switched to a high output state to cause flip-flops 23, 22, 17, 16, 15, 13, 11, 9 and 7 to produce a set of binary signals &#34;001101111&#34; which corresponds to a decimal number &#34;111&#34;. It is to be noted that in response to the output decimal number 511 the programmable frequency divider 25 is preset to a decimal number 111, so that the repetition frequency of the signal appearing at the output terminal E is 1/400 times the frequency of the input signal applied to the terminal X. Likewise, in response to a set of binary states &#34;000100&#34; at the terminals K, J. I, H, G and F, respectively, the frequency division ratio becomes 1/396, as listed in Table II, in which the frequency of the signal at terminal X is 400 kHz. 
     
                       TABLE II______________________________________Program Input      Corrected          OutputDeci- Binary   Binary    Division                           Frequency                                   Variationmal   &#34;DCBA&#34;   KJIHGF    Ratio  (Hz)    (%)______________________________________0     0000     000000    1/400  1000.0  +0.0001     0001     000100    1/396  1010.1  +1.0102     0010     001000    1/392  1020.4  +2.0413     0011     001100    1/388  1030.9  +3.0934     0100     001111    1/385  1039.0  °3.8965     0101     010011    1/381  1049.9  +4.9876     0110     010111    1/377  1061.0  +6.1017     0111     011010    1/374  1069.5  +6.9528     1000     011110    1/370  1081.1  +8.1089     1001     100001    1/367  1089.9  +8.99210    1010     100100    1/364  1098.9  +9.890______________________________________ 
    
     As seen from Table II the output frequency changes with substantially equal steps. This is best shown in FIG. 4 in which the solid line curve indicates the frequency deviation error of the embodiment of FIG. 2 which substantially lies within a range of ±1 percent. The frequency variation error may be more reduced by increasing the number of flip-flop stages as necessary. 
     A second embodiment of the invention is illustrated in FIG. 5 in which flip-flops 47 to 52 constitute a first binary counter 101, flip-flops 60 to 65 constitute a second binary counter 102, and flip-flops 58 and 59 constitute a third binary counter 103. The flip-flops of the first and second counters 101, 102 have their reset terminals connected together to the output terminal E, and the flip-flops 58, 59 of the third binary counter 103 have their reset terminals connected together to the output of an OR gate 68. 
     The operation of the embodiment of FIG. 5 is first visualized with reference to FIGS. 6a to 6m. Assuming that binary digits &#34;0 0 1 1&#34; are applied to control input terminals D, C, B and A, respectively, and a logic &#34;1&#34; is delivered from the programmable counter 25 at time t 1  (FIG. 6b), resetting all the flip-flops of first and second counters 101 and 102 (FIGS. 6c to 6h). This feeds a logic &#34;1&#34; to all Exclusive-OR gates 72 to 75 to result in a logic &#34;1&#34; output from NAND gate 69 (FIG. 6i). Since the Q outputs of flip-flops 49 to 52 are all at logic &#34;0&#34; level and AND gates 53 to 56 thus provide logic &#34;0&#34; outputs to a NOR gate 57, the latter delivers a logic &#34;1&#34; output (FIG. 6j) to the reset terminals of flip-flops 58 and 59 of the third counter 103 via OR gate 68, thereby delivering logic &#34;0&#34;s to a NAND gate 70 causing it to apply a logic &#34;1&#34; (FIG. 6l) to an AND gate 71 through line 70a, while at the same time enabling an AND gate 80. A train of clock pulses is applied to input terminal X as illustrated in FIG. 6a. The first counter 101 is thus conditioned to receive the clock pulse train to change the binary states of its flip-flops 47 to 59 as illustrated in FIGS. 6c to 6f. As a result, flip-flops 52, 51, 50 and 49 produce binary digits &#34;1 1 0 0&#34;, respectively, at their complementary output terminals at time t 2 , whereby Exclusive-OR gates 72 to 75 deliver logic &#34;1&#34; outputs to NAND gate 69 whose output is thus switched to logic &#34;0&#34; level (FIG. 6i). Simultaneously, AND gate 53 is activated to deliver a logic &#34;1&#34; to the NOR gate 57 to switch its output to logic &#34;0&#34; state (FIG. 6j), whereupon flip-flops 58 and 59 are enabled to start counting clock pulses supplied through AND gate 80. Upon receipt of three clock pulses, the third counter 103 delivers a logic &#34;1&#34; to NAND gate 70 to switch it to logic &#34;0&#34; output state at time t 3  (FIG. 6l). 
     During time interval between t 1  to t 2 , AND gate 76 is enabled by the logic &#34;1&#34; pulses from the NAND gate 69 and NOR gate 57 to pass three pulses from the Q output of flip-flop 48 to the clock input of flip-flop 62 via OR gate 77 (FIG. 6k). Since AND gate 71 is held at logic &#34;0&#34; output state (FIG. 6m), the binary digits of the terminals K, J, I, H, G and F are &#34;0 0 1 1 0 0&#34;, respectively, resetting the frequency division ratio to 1/388. 
     Consider now that binary digits &#34;0 1 0 0&#34; are applied to control input terminals D, C, B and A, respectively. Referring to FIGS. 7a to 7m, the flip-flops 47 to 51 change their binary states as illustrated in FIGS. 7c to 7g, respectively. When the binary states of the complementary outputs of flip-flops 52, 51, 50 and 49 become &#34;1 0 1 1&#34;, respectively, at time t 3 , NAND gate 69 changes its output state from logic &#34;1&#34; to &#34;0&#34; (FIG. 7i). On the other hand, the true outputs of flip-flops 52, 51, 50 and 49 become &#34;0 0 1 1&#34; at time t 2  to cause AND gate 53 to change its output state from logic &#34;0&#34; to &#34;1&#34; to thereby cause NOR gate 57 to change its output state to logic &#34;0&#34; (FIG. 7j) and returns to logic &#34;1&#34; when the true outputs of flip-flops 52, 51, 50 and 49 assume binary states &#34;0 1 0 0&#34; at time t 3 . 
     When the NOR gate 57 changes the logic &#34;0&#34; level at time t 2 , the third counter 103 initiates counting clock pulses and as it has counted three clock pulses NAND gate 70 is activated in response to logic &#34;1&#34; pulses from the true complementary outputs of flip-flops 58 and 59 and changes its logic state from &#34;1&#34; to &#34;0&#34; at time t 2  &#39; (FIG. 7l). NAND gate 70 returns to logic &#34;1&#34; level when NOR gate 57 changes to logic &#34;1&#34; in response to logic &#34;0&#34;s from the true outputs of flip-flops 58, 59 when NOR gate 57 changes to logic &#34;1&#34; at time t 3 . During the time inverval between t 2  to t 2  &#39; AND gate 71 is enabled to pass inverted clock pulses to the clock input of flip-flop 60 of the second counter 102 (FIG. 7m). 
     On the other hand, the flip-flop 62, which serves as a third stage of the third counter 103, receives input pulses from the Q output of flip-flop 48 through AND gate 76 when the latter is enabled during the time interval between t 1  and t 2  (FIG. 7k). It is understood from the foregoing that every four clock pulses corresponds to a single pulse delivered from the Q output of flip-flop 48 of the first counter 101, so that the second counter 102 counts twelve clock pulses during the time interval t 1  to t 2 . During the next interval t 2  to t 3  the second counter 102 receives three clock pulses instead of four because at time t 2  &#39; the NAND gate 70 is activated to produce a one-bit elimination pulse after the third counter 103 has counted three clock pulses. Therefore, during the interval t 1  to t 3 , the second counter 102 counts 15 clock pulses instead of 16, and the binary states of the output terminals K, J, I, H, G and F, are consequently &#34;0 0 1 1 1 1&#34;, respectively. 
     Assuming that if the control binary states are &#34;1 0 1 0&#34;, similar events occur during the time interval t 1  to t 3  as shown in FIGS. 8a to 8m. During the time prior to time t 4  24 clock pulses are received by the first counter 101 so that the binary states of its flip-flops 52, 51, 50 and 49 are respectively &#34;0 1 1 0&#34; which in turn satisfy the input conditions of AND gate 54 causing it to provide a logic &#34;1&#34; to NOR gate 57 to alter its output state to logic &#34;0&#34; at time t 4  (FIG. 8j). Thus, the third counter 103 is enabled to count clock pulses and at the third clock pulse NAND gate 70 is switched to logic &#34;0&#34; level and remains there until time t 5 , thereby eliminating a further clock pulse to be supplied to second counter during the interval t 4  to t 5 . During the next interval t 5  to t 6  the first counter 101 is incremented by four clock pulses so that its flip-flops 52, 51, 50 and 49 are respectively &#34;1 0 0 0&#34; which satisfy the input conditions of AND gate 55 to cause NOR gate 57 to provide logic &#34;0&#34; at time t 6  enabling third counter 103 to count further three input clock pulses whereupon NAND gate 70 produces an inhibit pulse to eliminate the fourth clock pulse that occurs during the time interval t 6  to t 7 . The differentiator circuit formed by AND gate 66 and inverter 67 delivers a pulse 57x to the reset inputs of flip-flops 58, 59 of their counter 103 to cause the NAND gate 70 to return to the logic &#34;1&#34; level (FIG. 8j). During the interval t 6  to t 7  the binary states of the first counter 101 changes to &#34;1 0 0 1&#34; which meets the input conditions of NAND gate 56 to further exclude a clock pulse from the four-clock pulse train which occurs during the next interval t 7  to t 8 . 
     It will be understood therefore that each of the AND gates 53 to 56 serves as a one-bit-elimination command circuit responsive to a set of predetermined input binary conditions. In the case of the control inputs &#34;1 0 1 0&#34;, four clock pulses are eliminated during the interval t 1  to t 8  while the first counter 101 receives 40 clock pulses, so that the second counter 102 receives, during this interval, 36 clock pulses which correspond to output binary states of &#34;1 0 0 1 0 0&#34;. In other words, the AND gate 76 serves to increment the second counter 102 by four binary digits in response to every four clock pulses and subtracts four clock pulses in response to each one-bit-elimination command signal from NOR gate 57, and AND gate 71 serves to add three clock pulses to the first stage of second counter 102 incrementing it by three binary digits (FIGS. 8k and 8m). 
     In the foregoing description, the number of binary states available for the control input terminals A-D is 10. However this number can be increased by providing additional AND gates between the output terminals of flip-flops 49-52 of the first counter 101 and input terminals of NOR gate 57. This is an advantageous feature of the embodiment of FIG. 5 over the FIG. 2 embodiment, because in the latter the number of control binary states can only be increased with a greater number of logic gates than is required in the FIG. 5 embodiment.