Abstract:
Disclosed is an apparatus and a method for determining a commutation time of a three phase brushless direct current (BLDC) motor. The apparatus comprises a commutation controlling pulse generation unit receiving a phase voltage of each phase and generating a commutation controlling pulse to determine a commutation time of each phase of the motor; a first counter receiving a first commutation controlling pulse output from the commutation controlling pulse generator and counting the period of commutation controlling pulses; a memory storing one half of the counted values of the period of the first commutation controlling pulses counted by the first counter; a first comparator comparing a counting value of a period of a commutation controlling pulse provided after the first commutation controlling pulse counted by the first counter with one half of the counted values of the first commutation controlling pulses stored in the memory; and an output controller receiving the comparison result of the first comparator and outputting a switching signal to control commutation of each phase of the motor. The method comprises the steps of receiving variations of the BEMF of each phase of the motor and generating commutation controlling pulses for determining a commutation time; counting the period of the commutation controlling pulses; storing one half of counted values of the counted period of the commutation controlling pulses in a memory; counting a period of the commutation controlling pulses provided after the counted commutation controlling pulses; comparing counted number of the commutation controlling pulses input during the counting operation with the value stored in the memory; and generating a switching pulse to perform commutation of each phase of the motor when the comparison results are identical.

Description:
BACKGROUND OF THE INVENTION 
     (a) Field of the Invention 
     The present invention relates to a brushless direct current (BLDC) motor. More specifically, the present invention relates to an apparatus and method for determining a commutation time of a sensorless BLDC motor. 
     (b) Description of the Related Art 
     A BLDC motor driving circuit can effectively drive a motor when a continuous rotating magnetic field of the BLDC motor is formed. In order to form the continuous rotating magnetic field, commutation of each phase must be performed at a proper time. In order to perform a proper commutation, the position of the rotor must be detected. Therefore, devices to detect the rotor are needed, and the devices to detect the position of the rotor include Hall sensors and resolvers. However, when Hall sensors or resolvers are used, the circuit becomes complicated. Hence, in order to ameliorate the inconveniences caused by the addition of Hall sensors, a sensorless BLDC motor has been developed. 
     The sensorless BLDC detects the position of the rotor using the back electromotive force (BEMF) caused by rotation of the motor. 
     A proper commutation time of the sensorless BLDC motor will be described. 
     When the BLDC motor has a large BEMF, the torque of the motor becomes great. Therefore, in order to most effectively drive the motor, a current must be supplied to a coil of a phase having the greatest BEMF. Hence, commutation must be performed at a point delayed by about 30° from a zero cross point of the BEMF distribution curve of each phase in a three phase BLDC motor. 
     Therefore, it is important to detect the point delayed by 30° from the zero cross point of the BEMF distribution curve in the sensorless BLDC motor so as to effectively drive the motor. 
     In a conventional method, an R-C combination circuit is used to detect this commutation point. 
     A conventional apparatus for detecting the commutation point will now be described. 
     FIG. 1 is a schematic diagram of a conventional apparatus for detecting the commutation point. FIGS.  2 ( a ) and ( b ) are graphs representing the operations for detecting the commutation point with the apparatus of FIG.  1 . 
     As represented in FIG. 1, a resistor R and a capacitor C are coupled to a stator coil of a phase of the motor in the conventional commutation point detecting apparatus. The voltage at the capacitor C is supplied to a positive terminal of a comparator COMP 1 , and the voltage at a neutral point is supplied to a negative terminal of the comparator COMP 1 . 
     As can be inferred from the drawing, the phase of the voltage that the capacitor C supplies to the positive terminal of the comparator COMP 1  is delayed compared to the phase voltage of the motor because of the capacitance of capacitor C. When the values of the capacitance of capacitor C and the resistance of resistor R are adjusted, the time at which the voltage at the capacitor C reaches the voltage of the neutral point can be used as the time to perform commutation. This method is advantageous when the rapid changes of the motor phase voltage causes the capacitor terminal voltage to also follow identical changing patterns. However, since the conventional commutation time detecting apparatus has fixed values of the resistance of resistor R and of the capacitance of capacitor C, an accurate commutation time cannot be determined except for a specific rotation speed. 
     In order to overcome this problem, values of the resistor and the capacitor appropriate to the rotation speed in a uniform speed drive mode are used. However, when the rotation speed is changed, as in the case of acceleration, efficiency is reduced and use of power is increased, so that the time to reach the uniform speed is increased. 
     SUMMARY OF THE INVENTION 
     It is an object of the present invention to implement an apparatus for determining the accurate commutation time for a three phase BLDC motor using a digital circuit even though the rotation speed of the motor changes. 
     In one aspect of the present invention, the apparatus for determining commutation time of a three phase BLDC motor comprises a commutation controlling pulse generation unit receiving a phase voltage of each phase and generating a commutation controlling pulse to determine a commutation time of each phase of the motor; a first counter receiving a first commutation controlling pulse output from the commutation controlling pulse generator and counting the period of the commutation controlling pulses; a memory storing one half of the counted values of the first commutation controlling pulses counted by the first counter; a first comparator comparing a counted value of the period of a commutation controlling pulse provided after the first commutation controlling pulse counted by the first counter with one half of the counted values of the first commutation controlling pulses stored in the memory; and an output controller receiving the comparison result of the first comparator and outputting a switching signal to control commutation of each phase of the motor. 
     The apparatus further comprises a second counter receiving the switching signal and counting the period of the switching signal; and a second comparator receiving and comparing one half of the counted values stored in the memory and the counting numbers of the second counter and outputting the comparison result to the output controller. 
     The commutation controlling pulse generation unit comprises a reference pulse generator receiving phase voltages of each phase of the motor and voltage of a neutral point, and outputting a reference pulse having a uniform period; and a commutation controlling pulse generator receiving the reference pulse of the reference pulse generator, switching signal, and switching noise removing signal of the output controller, and outputting a commutation controlling pulse generating a gate pulse type output each time a logic value of the reference pulse is changed. 
     The output controller comprises an enable signal generator receiving the commutation controlling pulse and, when the period of the commutation controlling pulse is constant, outputting an enable signal to output the switching signal; an excess counting preventer receiving counted binary values of the first counter and, when the counting binary values exceeds the capacity of the counter, stopping the operation of the first counter; a pre-switching noise removing signal generator receiving the commutation controlling pulse, switching signal and the counted binary value of the second compartor, and generating a pre-switching noise removing signal for generating switching noise removing signals to remove switching noises; a switching noise removing signal generator receiving the pre-switching noise removing signal from the pre-switching noise removing signal generator and counted binary value of the first counter, and removing switching noises generated by switching operations; a pre-switching signal generator receiving an output of the first comparator and outputting a pre-switching signal for generating switching signals; and a switching signal generator receiving the output binary values of the first counter and the pre-switching signal, and outputting a switching signal for performing commutation of each phase of the motor. 
     In another aspect of the present invention, a method for determining a commutation time of a three phase BLDC motor comprises the steps of receiving variations of the BEMF of each phase of the motor and generating commutation controlling pulses for determining a commutation time; counting the period of the commutation controlling pulses; storing one half of the counted values of the counted commutation controlling pulses in a memory; counting a period of the commutation controlling pulses provided after the counted commutation controlling pulses; comparing the counted number of the commutation controlling pulses input during the counting operation with the value stored in the memory; and generating a switching pulse to perform commutation of each phase of the motor when the comparison results are identical. 
     The method further comprises the steps of counting the period of commutation controlling pulses after the switching pulse is generated; generating a switching noise removing signal in order to prevent a change of a logic value of the commutation controlling pulse after the generation of the switching pulse; comparing whether or not the counted number of period of the switching pulse is identical with one half of the value stored in the memory; and stopping the changes of the logic values of the commutation controlling pulse when the comparison results are identical so that the generation of a signal to remove noises at time of switching operation is stopped. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate an embodiment of the invention, and, together with the description, serve to explain the principles of the invention: 
     FIG. 1 is a schematic diagram of a conventional apparatus for detecting the commutation point; 
     FIGS.  2 ( a ) and ( b ) are graphs respectively representing a phase voltage of the BLDC motor and a voltage at the capacitor represented in FIG. 1; 
     FIG. 3 is a graph representing a distribution of the BEMF generated in a coil of a phase of the stator according to the rotation of a fixed magnet of the rotor of the BLDC motor; 
     FIG. 4 shows a BEMF distribution curve of the three phases and pulses in a process of generation of a reference pulse; 
     FIG. 5 is a schematic diagram of an apparatus for determining the commutation time according to a preferred embodiment of the present invention; 
     FIG. 6 is a block diagram of a commutation controlling pulse generation unit according to a preferred embodiment of the present invention; 
     FIG. 7 is a schematic diagram of a reference pulse generator of the commutation controlling pulse generation unit according to a preferred embodiment of the present invention; 
     FIG. 8 is a schematic diagram of a commutation controlling pulse generator according to a preferred embodiment of the present invention; 
     FIG. 9 is a timing chart of the operations of a preferred embodiment of the present invention; 
     FIG. 10 is a timing chart of an enable signal according to a preferred embodiment of the present invention; 
     FIG. 11 is a timing chart of a switching signal according to a preferred embodiment of the present invention; 
     FIG. 12 is a timing chart of a switching noise removing signal according to a preferred embodiment of the present invention; 
     FIG. 13 is a block diagram of an output controller according to a preferred embodiment of the present invention; 
     FIG. 14 is a schematic diagram of an enable signal generator of the output controller according to a preferred embodiment of the present invention; 
     FIG. 15 is a schematic diagram of a pre-switching signal generator of the output controller according to a preferred embodiment of the present invention; 
     FIG. 16 is a schematic diagram of a switching signal generator of the output controller according to the preferred embodiment of a present invention; 
     FIG. 17 is a schematic diagram of a pre-switching noise removing signal generator of the output controller according to a preferred embodiment of the present invention; 
     FIG. 18 is a schematic diagram of a switching noise removing signal generator of the output controller according to a preferred embodiment of the present invention; and 
     FIG. 19 is a schematic diagram of an excess counting preventer. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     In the following detailed description, only the preferred embodiment of the invention has been shown and described, simply by way of illustration of the best mode contemplated by the inventor(s) of carrying out the invention. As will be realized, the invention is capable of modification in various obvious respects, all without departing from the invention. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not restrictive. 
     As represented in FIG. 5, an apparatus for determining a commutation time of a three phase BLDC motor comprises a commutation controlling pulse generator  100 , a first counter  200 , a memory  300 , a first comparator  400 , an output controller  500 , a second counter  600 , and a second comparator  700 . 
     The commutation controlling pulse generator  100  receives SWITCHING switching signals of the output controller  500 , FG_MASK_OFF switching noise removing signals, and phase voltages U, V, and W of each phase of the motor. The commutation controlling pulse generator  100  is coupled to the first counter  200 , the memory  300 , and the output controller  500 . The first counter  200  is coupled to the memory  300  and the first memory  400 . The memory  300  is coupled to the first comparator  400  and the second comparator  700 . The second counter  600  is coupled to the second comparator  700 . The first comparator  400  and the second comparator  700  are coupled to the output controller  500 . 
     The commutation controlling pulse generator  100  comprises as represented in FIG. 6 a reference pulse generator  10  and a commutation controlling pulse generator  20 . 
     The reference pulse generator  10  as shown in FIG. 7 comprises comparators COMP 1 , COMP 2 , and COMP 3 , logic NAND gates NAND 1 , NAND 2 , and NAND 3 , and a logic AND gate AND 1 . The comparators COMP 1 , COMP 2 , and COMP 3  respectively receive phase voltages of U, V, and W through positive terminals, and receive the voltage of the neutral point through negative terminals. An output terminal of the comparator COMP 2  is coupled to input terminals of the logic NAND gates NAND 1  and NAND 2 . An output terminal of the comparator COMP 3  is coupled to input terminals of the logic NAND gates NAND 2  and NAND 3 , and an output terminal of the comparator COMP 4  is coupled to input terminals of the logic NAND gates NAND 1  and NAND 3 . Output terminals of the logic NAND gates NAND 1 , NAND 2 , and NAND 3  are coupled to an input terminal of the logic AND gate AND 1 . 
     The commutation controlling pulse generator  20  (represented in FIG. 8) comprises logic NAND gates NAND 4 , NAND 5 , NAND 6 , NAND 7 , and NAND 8 , a logic AND gate AND 2 , flip-flops FF 1 , FF 2 , and FF 3 , and inverters INV 1  and INV 2 . One input terminal of the logic NAND gate NAND 4  is coupled to an output terminal of a switching noise removing signal output unit  550  of the output controller  500  (refer to FIG.  13 ). Additionally, one input terminal of the logic NAND gate NAND 5  is coupled to an output terminal of a switching signal generator  530  of the output controller  500 . Another input terminal of the logic NAND gate NAND 4  is coupled to the output terminal of the logic NAND gate NAND 5 , and another input terminal of the logic NAND gate NAND 5  is coupled to the output terminal of the logic NAND gate NAND 4 , and thereby the logic NAND gates NAND 4  and NAND 5  configure a latch. An input terminal of the logic AND gate AND 2  is coupled to a clock signal terminal CLK and the output terminal of the logic NAND gate NAND 4 . A clock signal input terminal CLK 1  of the flip-flop FF 1  is coupled to an output terminal of the logic AND gate AND 2 . An input terminal DI of the flip-flop FF 1  is coupled to an output terminal of the reference pulse generator  10 . A voltage Vcc is supplied to a reset terminal R 1  of the flip-flop FF 1 . The flip-flop FF 2  receives clock signals through a clock signal input terminal CLK 2 . An input terminal D 2  of the flip-flop FF 2  is coupled to an output terminal Q 1  of the flip-flop FF 1 . The voltage Vcc is supplied to a reset terminal R 2  of the flip-flop FF 2 . The flip-flop FF 3  receives clock signals through a clock signals input terminal CLK 3 . An input terminal D 3  of the flip-flop FF 3  is coupled to an output terminal Q 2  of the flip-flop FF 2 . The voltage Vcc is supplied to a reset terminal R 3  of the flip-flop FF 3 . The output terminal Q 2  of the flip-flop FF 2  is coupled to an input terminal of an inverter INV 1 . An output terminal Q 3  of the flip-flop FF 3  is coupled to an input terminal of an inverter INV 2 . An input terminal of a logic NAND gate NAND 6  is coupled to an output terminal of the inverter INV 1  and the output terminal of the flip-flop FF 3 . An input terminal of a logic NAND gate NAND 7  is coupled to an output terminal of the inverter INV 2  and the output terminal Q 2  of the flip-flop FF 2 . The output terminals of the logic NAND gates NAND 6  and NAND 7  are coupled to an input terminal of a logic NAND gate NAND 8 . 
     The output controller  500  (represented in FIG. 13) comprises an enable signal generator  510 , a pre-switching signal generator  520 , the switching signal generator  530 , a pre-switching noise removing signal generator  540 , the switching noise removing signal generator  550 , and an excess counting preventer  560 . 
     An input terminal of the enable signal generator  510  is coupled to the output terminal of the commutation controlling pulse generator  100 . An output terminal of the enable signal generator  510  is coupled to the pre-switching signal generator  520 . The first comparator  400  is coupled to the pre-switching signal generator  520 . An output terminal of the pre-switching signal generator  520  is coupled to the switching signal generator  530 . The first counter  200  is coupled to the switching signal generator  530 . An output terminal of the switching signal generator  530  is coupled to the commutation controlling pulse generator  100 . An input terminal of the pre-switching noise removing signal generator  540  is coupled to the output terminal of the commutation controlling pulse generator  100 , an output terminal of the second comparator  700 , and the output terminal of the switching signal generator  530 . An output terminal of the pre-switching noise removing signal generator  540  is coupled to an input terminal of the switching noise removing signal generator  550 . The input terminal of the switching noise removing signal generator  550  is coupled to an output terminal of the first counter  200 . An output terminal of the switching noise removing signal generator  550  is coupled to the commutation controlling pulse generator  100 . An input terminal of the excess counting preventer  560  is coupled to the output terminal of the commutation controlling pulse generator  100  and the output terminal of the first counter  200 . An output terminal of the excess counting preventer  560  is coupled to the first counter  200 . 
     The enable signal generator  510  comprises flip-flops FF 4  and FF 5 , and an inverter INV 3  (refer to FIG.  14 ). A clock signal input terminal CLK 4  of the flip-flop FF 4  is coupled to the output terminal of the commutation controlling pulse generator  100 . An output terminal Q 4  of the flip-flop FF 4  is coupled to the inverter INV 3 . An output terminal of the inverter INV 3  is coupled to an input terminal D 4  of the flip-flop FF 4  and an input terminal CLK 5  of the flip-flop FF 5 . An output terminal Q 5  of the flip-flop FF 5  is coupled to the pre-switching signal generator  520 . Input terminals R 4  and R 5  of the respective flip-flops FF 4  and FF 5  receive reset signals. 
     The pre-switching signal generator  520  (refer to FIG. 15) comprises a flip-flop FF 6 , an inverter INV 4 , and a logic NAND gate NAND 9 . The flip-flop FF 6  receives clock signals CLK through a clock signal input terminal CLK 6 . An input terminal D 6  of the flip-flop FF 6  is coupled to the first comparator  400 . The voltage Vcc is supplied to a reset signal input terminal R 6 . An output terminal Q 6  of the flip-flop FF 6  is coupled to the inverter INV 4 . An output terminal of the inverter INV 4  is coupled to an input terminal of the logic NAND gate NAND 9 . An output terminal of the logic NAND gate NAND 9  is coupled to the switching signal generator  530 . 
     The switching signal generator  530  (refer to FIG. 16) comprises a logic NAND gate NAND 10 , a flip-flop FF 7 , and a logic OR gate OR 1 . An input terminal of the logic NAND gate NAND 10  is coupled to an output terminal of the first counter  200 . A reset signal input terminal R 7  of the flip-flop FF 7  is coupled to an output terminal of the logic NAND gate NAND 10 . The voltage Vcc is supplied to an input terminal D 7  of the flip-flop FF 7 . A clock signal input terminal CLK 7  of the flip-flop FF 7  is coupled to the output terminal of the pre-switching switching signal generator  520 . An input terminal of the logic OR gate OR 1  is coupled to the output terminal of the pre-switching signal generator  520  and the output terminal of the flip-flop FF 7 . 
     The pre-switching noise removing signal generator  540  comprises logical NAND gates NAND 11 , NAND 12 , and NAND 13 , a flip-flop FF 8 , and inverters INV 5  and INV 6  (refer to FIG.  17 ). An input terminal D 8  of the flip-flop FF 8  is coupled to the second comparator  700 . The flip-flop FF 8  receives clock signals through a clock signal input terminal CLK 8 . The voltage Vcc is supplied to a reset signal input terminal R 8  of the flip-flop FF 8 . An output terminal Q 8  of the flip-flop FF 8  is coupled to the inverter INV 6 . An output terminal of the inverter INV 6  is coupled to an input terminal of the logic NAND gate NAND 13 . The output terminal of the commutation controlling pulse generator  100  is coupled to an input terminal of the inverter INV 5 . An output terminal of the inverter INV 5  is coupled to an input terminal of the logic NAND gate NAND 11 . An input terminal of the logic NAND gate NAND 12  is coupled to the output terminal of the switching signal generator  530 . An output terminal of the logic NAND gate NAND 11  is coupled to the input terminal of the logic NAND gate NAND 12 , and an output terminal of the logic NAND gate NAND 12  is coupled to the input terminal of the logic NAND gate NAND 11 , and thereby the logic NAND gates NAND 11  and NAND 12  configure a latch. The output terminal of the logic NAND gate NAND 12  is coupled to an input terminal of the logic NAND gate NAND 13 . An output terminal of the logic NAND gate NAND 13  is coupled to the switching noise removing signal generator  550 . 
     The switching noise removing signal generator  550  comprises a logic NAND gate NAND 14 , a flip-flop FF 9 , and a logic OR gate OR 2 . An input terminal of the logic NAND gate NAND 14  is coupled to an output terminal of the first counter  200  (refer to FIG.  18 ). An output terminal of the logic NAND gate NAND 14  is coupled to a reset signal input terminal R 9  of the flip-flop FF 9 . A clock signal input terminal CLK 9  of the flip-flop FF 9  is coupled to the output terminal of the pre-switching noise removing signal generator  540 . The voltage Vcc is supplied to an input terminal D 9  of the flip-flop FF 9 . An output terminal Q 9  of the flip-flop FF 9  is coupled to one input terminal of the logic OR gate OR 2 . The pre-switching noise removing signal generator  540  is coupled to another input terminal of the logic OR gate OR 2 . 
     The excess counting preventer  560  comprises a logic NAND gate NAND 15 , a logic AND gate AND 3 , a flip-flop FF 10 , and an inverter INV 7  (refer to FIG.  19 ). An input terminal of the logic NAND gate NAND 15  is coupled to the first counter  200 . An output terminal of the logic NAND gate NAND 15  is coupled to a clock signal input terminal CLK 10  of the flip-flop FF 10 . The voltage Vcc is supplied to an input terminal D 10  of the flip-flop FF 10 . A reset signal input terminal R 10  of the flip-flop FF 10  is coupled to the output terminal of the commutation controlling pulse generator  100 . An output terminal Q 10  of the flipflop FF 10  is coupled to the inverter INV 7 . An output terminal of the inverter INV 7  is coupled to one input terminal of the logic AND gate AND 3 . Clock signals CLK are provided to the logic AND gate AND 3  through another input terminal of the logic AND gate AND 3 . 
     The determination of a time for commutation according to a preferred embodiment of the present invention will now be described based on the distribution of the BEMF with reference to drawings. 
     FIG. 3 is a distribution of the BEMF induced from a coil of a phase (represented here by the U phase) according to a distribution of the magnetic field of a permanent magnet and the rotation of a rotor permanent magnet. FIG. 3 is the distribution of the BEMF with respect to the distribution of the magnetic field assuming that the magnetic field of N polarity is positive, since the BEMF induced in the coil is proportional to variation of the strength of the magnetic field with respect to time. 
     FIG. 4 depicts a distribution curve of the BEMF induced to the coils of the three phases and a reference pulse (FG_RAW) of the reference pulse generator. 
     FIG.  4 ( a ) shows three phases of the distribution of the BEMF of FIG.  3 . In order for a torque of the motor to be maximized, at any point in time the current must be provided from a phase having a maximum BEMF to a phase having a minimum BEMF. To perform this, commutation is performed at six equal time intervals over one period of the BEMF distribution curve. 
     In the preferred embodiment of the present invention, the BEMF distribution is converted into a pulse pattern by use of a digital logic circuit to easily determine the commutation time. 
     A generation process of a commutation controlling pulse (HALF_FG_PULSE), a reference pulse to perform a commutation operation, will now be described. 
     FIG. 7 is a schematic diagram of a reference pulse generator  10 . FIG. 8 is a schematic diagram of a commutation controlling pulse generator  20 . 
     The reference pulse generator  10  of the commutation controlling pulse generation unit  100  receives phase voltages through positive terminals of the comparators COMP 1 , COMP 2 , and COMP 3 , and receives the voltage at the neutral point through the negative terminals of these same comparators, and compares the received voltages. Output voltages of the comparators COMP 1 , COMP 2 , and COMP 3  are shown in FIGS.  4 ( b ), ( c ), and ( d ). 
     Referring to FIG.  4 ( e ), the comparators output a reference pulse FG_RAW passing through the logic NAND gates NAND 1 , NAND 2 , and NAND 3 , and the logic AND gate AND 1 . 
     A period of the reference pulse FG_RAW occurs three times during one period of the BEMF distribution curve. 
     The reference pulse FG_RAW is input to the commutation controlling pulse generator  20 . 
     The latch comprising the logic NAND gates NAND 4  and NAND 5  removes switching noises. 
     When a clock signal CLK is provided to the clock signal input terminal CLK 1  of the flip-flop FF 1 , the reference pulse FG_RAW is output from the output terminal Q 1  of the flip-flop FF 1 . It is assumed here that the flip-flop outputs a value when the clock signal is switched from a low state to a high state. 
     Since the logic value of the reference value FG_RAW is first low, the output values Q 1 , Q 2 , and Q 3  of the flip-flops FF 1 , FF 2 , and FF 3  are set at a low state. 
     Hence, an initial output value of the logic NAND gate NAND 8  is low. 
     When a second clock signal is input, the output value Q 2  of the flip-flop FF 2  becomes high. Simultaneously, the output value of the inverter INV 1  becomes low, the output value of the logic NAND gate NAND 6  becomes high, and the output value of the logic NAND gate NAND 7  becomes low. Therefore, the output value of the logic NAND gate NAND 8  becomes high. 
     When a third clock signal CLK is input, the output value of the flip-flop FF 3  is switched to a high state, and the output value of the logic NAND gate NAND 6  becomes high, and the output value of the logic NAND gate NAND 7  becomes high. Therefore, the output value of the logic NAND gate NAND 8  becomes low. 
     Hence, when the reference pulse FG_RAW is switched from low state to high state, the commutation controlling pulse generator  20  essentially outputs a low-high-low clock like gate pulse, HALF_FG_PULSE. 
     When the logic value of the reference pulse FG_RAW is switched from high state to low state, since the logic value of the previous reference pulse FG_RAW is high, the output values of the flip-flops FF 1  and FF 2  are set as high. 
     The output value of the logic NAND gate NAND 8  is still low. 
     When a second clock signal CLK is input into the flip-flop FF 2 , the output value Q 2  of the flip-flop FF 2  becomes low. Simultaneously, an output value of the inverter INV 1  becomes high, an output value of the logic NAND gate NAND 6  becomes low, and an output value of the logic NAND gate NAND 7  becomes high. Therefore, an output value of the logic NAND gate NAND 8  becomes high. 
     When a third clock signal CLK is input to the flip-flop FF 3 , an output value of the flip-flop FF 3  is switched to low state, and the output value of the logic NAND gate NAND 6  becomes high. The output value of the logic NAND gate NAND 7  becomes high. Therefore, the output value of the logic NAND gate NAND 8  becomes low. 
     Therefore, when the reference pulse FG_RAW is switched from high to low, the commutation controlling pulse generator  20  outputs another low-high-low clock like gate pulse HALF_FG_PULSE as shown in FIG.  9 . 
     Hence, when the reference pulse FG_RAW is input to the commutation controlling pulse generator  20 , a gate pulse is generated which has a duration of the clock signal when the logic value is either switched from high to low or from low to high, as shown in FIG.  9 . 
     These gate pulses are called commutation controlling pulses HALF_FG_PULSE that are to be used to determine the commutation time hereinafter. 
     Referring to FIG. 4, commutation of each phase of the motor must be performed twice over a period of the reference pulse FG_RAW at equal time intervals. As a result, referring to FIG. 9, commutation must be performed at an intermediate point between pulses of the commutation controlling pulse HALF_FG_PULSE. 
     Therefore, in order to accurately determine the commutation time, it is important to precisely detect the point in between the commutation controlling pulses of the HALF_FG_PULSE signal. 
     An operation to determine the commutation time will now be described. 
     In order to find the intermediate point of the commutation controlling pulse HALF_FG_PULSE, the period of the commutation controlling pulse is counted by the first counter  200 . A point in time which is equivalent to one half of the counted number of clock signals becomes the commutation time. 
     After the gate pulse of the commutation controlling pulse HALF_FG_PULSE is input, the first counter  200  measures the period of the commutation controlling pulse by counting the number of the clock signals CLK. Here, the initially counted commutation controlling pulse HALF_FG_PULSE is referred to as a first commutation controlling pulse. 
     The binary number of clock signals counted after the first commutation controlling pulse is stored in the memory  300  except for the least significant bit (LSB) of this binary number. This is done so as to store only one half of the counted clock signals in the memory  300 , since a binary number with the LSB excluded becomes a value which is half of the original binary number. 
     The first counter  200  counts the duration of the commutation controlling pulse following the first commutation controlling pulse in the same manner as it counts the duration of the first commutation controlling pulse. 
     The number of clock pulses of the counted commutation controlling pulses are transmitted to the first comparator  400 . The first comparator  400  compares the number of clock pulse from the first counter  200  with the number of clock signals which equal one half of the number of clock signals of the (previous) first commutation controlling pulse. If compared results are identical, a low signal is transmitted to the output controller  500 . A high signal can also be used instead of the low signal. 
     An operation to output a SWITCHING switching signal for performing commutation according to the operation of the first comparator at the output controller  500  will now be described with reference to the drawings. 
     Operation of the enable signal generator  510  will now be described. 
     FIG. 14 shows the enable signal generator  510 , and FIG. 10 shows a timing chart of the enable signal generator  510 . 
     The enable signal generator  510  outputs the switching signal SWITCHING when a commutation controlling pulse HALF_FG_PULSE following a first commutation controlling pulse starts to be input so that the first commutation controlling pulse performs a switching operation after regular commutation controlling pulses are generated. 
     An output value of the output terminal Q 4  of the flip-flop FF 4  of the enable signal generator  510  is initially set at a low state, and the logic value of the input terminal D 4  is high since the output terminal Q 4  is coupled to an inverter. When a first gate pulse of the commutation controlling pulses of the HALF_FG_PULSE signal is input to the clock signal input terminal CLK 4  and the logic value is switched from low to high, the output value of the output terminal Q 4  is switched to high, and the input value of the input terminal D 4  is switched to low. When the next gate pulse is input, the output value of the output terminal of the flip-flop FF 4  is switched from high to low. Therefore, the output value of the output terminal Q 4  of the flip-flop FF 4  has a period identical with the period of the reference pulse FG_RAW, but with an inverted logic value pulse pattern. 
     At this time, since an inverted output value of the flip-flop FF 4  is provided to the clock signal input terminal CLK 5  of the flip-flop FF 5 , a pulse having identical pattern with the reference pulse FG_RAW is provided to the clock signal input terminal GLK 5  of the flip-flop FF 5 . However, since the voltage Vcc is supplied to the input terminal D 5  of the flip-flop FF 5 , the output value of the flip-flop FF 5  is low before a second commutation controlling pulse is input, and when the second commutation controlling pulse HALF_FG_PULSE is input to flip-flop FF 4 , the flip-flop FF 5  continues to output high logic values. Therefore, the enable signal generator  510  outputs enable signals of high output signals after the second commutation controlling pulse HALF_FG_PULSE is input (refer to FIG.  10 ). 
     Operations of the pre-switching signal generator  520  and the switching signal generator  530  will now be described. 
     FIG. 15 shows a schematic diagram of the pre-switching signal generator  520 , FIG. 16 shows a schematic diagram of the switching signal generator  530 , and FIG. 11 shows timing chart of the pre-switching signal and switching signal. 
     The switching signal SWITCHING performs commutation on each phase of the motor, and is generated at a mid point between the commutation controlling pulses of the HALF_FG_PULSE signal. 
     Since the input terminal D 6  of the flip-flop FF 6  is coupled to the output terminal of the first comparator  400  and clock signals CLK are provided to the clock signal input terminal CLK 6  of the flip-flop FF 6 , each time the clock signal is switched from low to high, the output value of the first comparator  400  provided to the input terminal D 6  is transmitted to the output terminal Q 6 . However, since it is assumed that the first comparator  400  outputs a low value only when the compared results are identical, a gate pulse which is switched to a high state only when the compared results are identical is input to the input terminal of the logic NAND gate NAND 9 . Since an enable signal OUT_ENABLE is input to another input terminal of the logic NAND gate NAND 9 , the logic NAND gate NAND 9  outputs a pre-switching signal PRE_SWITCHING having identical form with the desired switching signal of FIG.  9 . 
     Operation of the switching signal generator  530  will now be described. 
     FIG. 16 is a schematic diagram of a switching signal generator. 
     The logic NAND gate NAND 10  performs a NAND operation on the three less significant bits of the binary values of the first counter  200  and the remaining inverted bits. The logic NAND gate NAND 10  clears the output values of the output terminal Q 7  of the flipflop FF 7  after the commutation controlling pulse HALF_FG_PULSE is provided. Since the pre-switching signal PRE_SWITCHING is input to the flip-flop FF 7  through the clock signal input terminal CLK 7 , and the voltage Vcc is supplied to the input terminal D 7 , the output terminal Q 7  outputs an output value that changes from low to high when the pre-switching signal is changes from low to high. 
     Since the logic OR gate OR 1  performs an OR operation on the PRE_SWITCHING and the output value of the flip-flop FF 7 , the logic OR gate OR 1  outputs a pulse identical with the PRE_SWITCHING signal. Therefore, the switching signal generator  530  output the switching signal as shown in FIG.  9 . 
     Operations of the pre-switching noise removing signal generator  540  for removing noises according to switching operation, and the switching noise removing signal generator  550  will now be described. 
     FIG. 17 is a schematic diagram of the pre-switching noise removing signal generator, FIG. 18 is a schematic diagram of the switching noise removing signal generator, and FIG. 12 is a timing chart of the pre-switching noise removing signal and the switching noise removing signal. 
     The switching noise removing signal, for removing switching noises that occurs after commutation operations, prevents generation of switching noises during a one fourth period of the commutation controlling pulse. 
     Detailed operation of this feature will now be described. 
     Since the input terminal of the latch comprising the logic NAND gates NAND 11  and NAND 12  is coupled to the inverter INV 5 , an input value of the logic NAND gate  11  becomes like the signals shown in FIG.  12 ( a ), and with the input value of the SWITCHING being as shown in FIG.  12 ( b ), the output value, therefore, of the logic NAND gate NAND 12  becomes like the signals shown in FIG.  12 ( c ). That is, the logic NAND gate NAND 12  continuously outputs high signals until a next commutation controlling pulse HALF_FG_PULSE is provided after a switching operation. 
     On the other hand, since an output value of the second comparator  700  is input to the flip-flop FF 8  through the input terminal D 8 , and clock signals are provided to the flip-flop FF 8  through the clock signal input terminal CLK 8 , and the output terminal Q 8  of the flip-flop FF 8  is coupled to the inverter INV 6 , the inverter INV 6  outputs an inverted output value of the second comparator  700 . That is, since the output value of the second comparator  700  becomes like the signals shown in FIG.  12 ( d ) (in which a low signal is generated following the input of the switching signal plus one fourth of the period of the commutation controlling pulse HALF_FG_PULSE ) the output value of the inverter INV 6  becomes like the signals shown in FIG.  12 ( e ). 
     Hence, since a logical NAND operation is performed on the input values of FIGS.  12 ( c ) and ( e ), the output value of the logic NAND gate NAND 13  becomes like the signals shown in FIG.  12 ( f ). 
     Operation of the switching noise removing signal generator  550  will now be described. 
     The reset signal input terminal R 9  of the flip-flop FF 9  is coupled to the logic NAND gate NAND 14  that performs a NAND operation on the three least significant of output binary values of the first counter  200  and the inverted values of the remaining output binary values so that after a gate pulse of the commutation controlling pulses is output from commutation controlling pulse generator  20 , the output value of the flip-flop FF 9  is reset. In the present invention, it is assumed that the output value of the flip-flop FF 9  is reset as low state. 
     Since logic values of FIG.  12 ( f ) are input to the flip-flop FF 9  through the clock signal input terminal CLK 9 , and the voltage Vcc is supplied to the input terminal D 9 , the output values of the flip-flop FF 9  becomes like the signals shown in FIG.  12 ( g ). Therefore, according to the operation of the switching noise removing signal generator  550 , noise is removed that is generated when the switching operation occurs. 
     Operation of the excess counting preventer  560  will now be described, referring to FIG. 19, which is a schematic diagram of the excess counting generator. 
     When the period of the commutation controlling pulses are very long at an initiation of motor drive, and thereby, the period diverges from the range of time that can be counted by the counter, the reliability of commutation time cannot be guaranteed. Therefore, the excess counting preventer  560 , for preventing a decrease in accuracy of the switching operation, generates switching signals and switching noise removing signals with respect to the longest time that can be measured by the counter. To accomplish this purpose, the clock signals to the counter are masked about the maximum value of the first counter  200  so as to maintain this maximum value. 
     Detailed operations of this feature will now be described. Since the clock signal input terminal CLK 10  of the flip-flop FF 10  is coupled to the output terminal of the logic NAND gate NAND 15  which performs a logic NAND operation on the inverted output of two of the least significant values of of the first counter plus its the remaining output bits, and the voltage Vcc is supplied to the input terminal D 10 , the output value of the flip-flop FF 10  becomes like the signals of FIG.  12 ( i ). Therefore, the output value of the inverter INV 7  becomes like the signals of FIG.  12 ( i ). Since the logic AND gate AND 3  performs a logic AND operation on the output value of the inverter INV 7  and the clocks CLK, when the low value the signal of FIG.  12 ( j ) is provided the clock signals CLK are not input to the counter, and therefore, the operation of the first counter  200  is stopped, and the value counted up to that time is maintained. 
     By above operation, pulses as shown in FIG. 9 are generated. The present invention thereby accurately determines commutation time of each phase of the motor and enhances efficiency of motor drive. 
     While this invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not limited to the disclosed embodiments. On the contrary, it is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.