TECHNICAL FIELD 
     The present invention relates to techniques for driving an electronically-switched motor and, more particularly, to a switching controller of a poly-phase electric motor and a related method of controlling electric motors. 
     BACKGROUND 
     Electronically-switched DC motors, as well as stepper motors (or more generally brushless motors), are used in numerous control and regulation applications, and also in drive systems of mass memory devices such as hard disks, floppy disks, optical disks, CD-ROMs, tape streamers and the like. These motors are typically poly-phase motors having windings connected in a “star” or polygonal configuration. Hereinafter reference will be made to a three-phase electric motor with star-connected windings, though the same observations hold, with minor changes, for an electric motor with delta-connected windings and for a generic poly-phase motor. 
     Brushless motors may be driven using a switching controller of the type shown in  FIG. 1 , commonly referred to as a “smooth driver”, and illustrated in detail in U.S. Pat. Pub. No. 2011/0156622, the disclosure of which is herein incorporated herein in its entirety by reference. The output stage is represented by a poly-phase full-wave bridge circuit which, in the case of a three-phase motor, may employ six bipolar (BJT) or field effect (MOS) power transistors. 
     Typically, a brushless motor is driven by properly powering the motor phases synchronously with the instantaneous position of the motor. This may be done by sequentially exciting two of the motor&#39;s windings with positive and negative voltages respectively, leaving a third winding in a high impedance state (tri-state). When driving a “sensorless” brushless motor, the non-excited phase winding is exploited for detecting the rotor&#39;s position. Excitation voltages or currents are applied to the phase windings of the motor and, instead of having a certain pre-established constant level during each switching phase, a certain pre-established (non-constant) drive voltage or current profile, respectively, is digitized and stored in a nonvolatile static memory device, e.g., in an EPROM or EEPROM memory. This technique is described in European Patents EP 800262, EP 800263, EP 809349 and from the U.S. Pat. No. 6,137,253, the disclosures of which are hereby incorporate herein in their entireties by reference, and thus will not be discussed further herein. 
     To properly energize the windings, the position of the rotor of the motor is determined with a circuit (which in  FIG. 1  is provided in block  5 ) for sensing the back electromotive force (BEMF) induced in a tri-stated winding. For a star-connected three-phase motor, such a sensing circuit may be as depicted in  FIG. 2 . Each winding of the motor is schematically represented as a series connection of a resistor R (representing the series resistance of the winding), an inductor L (representing the inductance of the winding), and an oscillating voltage generator BemfA (BemfB or BemfC), which represents the back electromotive force induced in the winding by the motion of the rotor of the motor. In  FIG. 2 , Va, Vb and Vc are the driving voltages applied to the phase terminals of the motor, Vct is the center-star voltage, and Ia, Ib and Ic are the phase currents flowing throughout the windings of the motor. In the ensuing description, the expression “phase voltage” will designate the difference between the driving voltage of any winding (Va, Vb, Vc) and the center-star voltage (Vct), and the same labels in the various figures indicate the same components. 
     A first known method for sensing the back electromotive force BEMF A  includes generating a time window of a short duration during which the output node of one of the half-bridge stages that drive the windings of the motor is tri-stated, as schematically illustrated by the time graph of  FIG. 3 . This is represented by the following equation:
 
 V   A   −V   CT =BEMF A   +R·I   A   +L·∂I   A   /∂t  
 
Thus, when the winding A is tri-stated, the phase current I A  flowing therethrough and its time derivative are null, and the back electromotive force BEMF A  induced thereon equals the phase (star) voltage V A −V CT . This method includes the steps of:
         tri-stating at least a winding of the motor; enabling a logic gate asserting a zero-cross event of the back electromotive force BEMF sensed by a sensing circuit after a certain time from the instant in which the winding is tri-stated; and   resuming from the high impedance state after the assertion of a zero-cross event.       

     This technique produces discontinuities in motor driving torque. It also generates a certain amount of acoustic noise, and induces distortions in the other motor phases that are not temporarily tri-stated, as shown in the exemplary time graph of  FIG. 4 . 
     According to another technique, the back electromotive force BEMF A  is reconstructed in an analog fashion with a circuit for reconstructing the phase voltage Vpha and the phase current Ia, e.g., using the circuits shown in  FIGS. 5 and 6 . In these prior circuits, the phase current la is sensed with a sense resistor Rs, connected in series to a generic winding A, and the sense voltage Ia*Rs and the phase voltage Va−Vct are amplified by operational amplifiers coupled to the winding through a network of input and feedback resistors R 1 , . . . , R 8 . In the circuit of  FIG. 5 , the reconstructed phase current Ia is processed by a circuit GAIN AND DIFFERENTIAL BLOCK for generating a signal representing the voltage drop R·I A +L·∂I* A /∂t, to be subtracted from the reconstructed phase voltage Vpha for generating a replica of the back-electromotive force BemfA of the winding A. Eventually, as in the circuit of  FIG. 6 , the reconstructed voltage and current Vpha and Ia are converted in digital form using analog-to-digital converters (ADC) and the digital replicas thereof are processed by a calculation circuit, such as the FPGA (Field Programmable Gate Array) shown in the figures, that generates a digital replica of the voltage BEMF A . 
     This technique requires additional analog components, i.e., at least a sense resistor Rs in series to the winding and operational amplifiers coupled thereto through a network of input and feedback resistors R 1 , . . . , R 8 , for generating a replica Vpha of the phase voltage Va−Vct and/or a replica of the phase current Ia. 
     SUMMARY 
     This disclosure provides a switching controller of a poly-phase electric motor implementing a method for generating, in a fully digital manner, a replica of the phase current and/or of the phase (star) voltage of one or more windings of the motor. The switching controller need not include dedicated analog components for reconstructing a replica of the phase current or the phase voltage because it exploits digital signals already available which are used for driving the motor. 
     According to an example embodiment, a digital replica of the phase voltage of a winding of a three-phase electric motor may be generated to represent the difference between twice the switching duty-cycle of that winding and the sum of the switching duty-cycles of the other two windings of the motor. 
     More particularly, the switching controller may include a nonvolatile memory storing a current or voltage profile for each winding of the motor, and a control circuit configured to retrieve from the memory during operation current or voltage profiles corresponding to phase currents or voltages to be forced through or to be applied to phase terminals of the windings of the motor, respectively. The switching controller may include a sampling circuit that samples the voltage drop on the high-side or low-side switch of the half-bridge that drives the winding, when the high-side or low-side switch is on, respectively. The sampling circuit may generate a digital replica of the phase current in that winding as the product between the sampled voltage value and the current profile, retrieved from the memory, that corresponds to the phase current being forced throughout the winding. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a schematic block diagram of a prior art smooth driver of an electric motor. 
         FIG. 2  is a schematic diagram of a prior art analog sensing circuit including an operational amplifier configured to sense the back-electromotive force induced in a winding of an electric motor. 
         FIG. 3  is a time graph of a typical phase current when the back-electromotive force induced in a winding is sensed by tri-stating the winding during a time window. 
         FIG. 4  is a time graph of typical the phase currents of a three-phase motor showing distortions of the phase currents I B  and I C  due to tri-stating the winding A for sensing the back-electromotive force induced thereon. 
         FIG. 5  is a schematic block diagram of a prior art analog circuit for generating analog replica signals of the phase current, the phase voltage, and the back-electromotive force induced in a winding. 
         FIG. 6  is a schematic block diagram of a prior art analog circuit for generating a digital replica signal of the back-electromotive force induced in a winding by analog-to-digital converting replica signals of the phase current Ia and of the phase voltage Vpha. 
         FIG. 7  is a schematic block diagram illustrating digital blocks for implementing the smooth driver of  FIG. 1  that are exploited by the switching controller in accordance with an example embodiment of the present disclosure. 
         FIG. 8  is a schematic block diagram of an example embodiment of a switching controller in accordance with the present disclosure that includes a circuit for generating a digital replica Vphad of the phase voltage in a winding. 
         FIG. 9  is a schematic block diagram of another example embodiment of a switching controller of the present disclosure that includes a circuit for generating a digital replica Ira of the phase current. 
         FIG. 10  is a schematic block diagram of yet another example embodiment of a circuit of a switching controller of the present disclosure for generating a digital signal representing the back electromotive force induced on a winding using the digital signals Vphad and Ira generated by the circuits shown in  FIGS. 8 and 9 . 
     
    
    
     DETAILED DESCRIPTION 
     In the ensuing description, reference will be made to a three-phase electric motor with star-connected windings, although these teachings may be adapted to a three-phase electric motor with delta-connected windings by the skilled artisan with knowledge of how to transform a star connection into a polygon connection and vice-versa, or more generally adapted to a generic poly-phase electric motor with star-connected or polygon-connected windings. 
       FIG. 7  schematically illustrates digital blocks which may be used to implement the smooth driver of  FIG. 1  that are exploited by the switching controller of the present disclosure. The block PROFILE MEMORY corresponds to the block  2  in  FIG. 1 , the block DIGITAL MULTIPLIER corresponds to the block  3  in  FIG. 1 , the block PWM CONVERTER corresponds to the block  4  in  FIG. 1 , the block POWER STAGE represents the power stage including the three half-bridges, and the block PM MOTOR represents the electric motor, which typically is a permanent magnet motor. The blocks  6 ,  7 ,  8  and KVAL in  FIG. 1  have been omitted in  FIG. 7  for clarity to show only the blocks of the smooth driver that make available the digital signals that are used for generating digital signals representing the phase voltages and/or the phase currents. The ensuing description illustrates also innovative circuits for generating a digital signal representing the back electromotive force BemfA, which may be used instead of the sensing circuit of  FIG. 2  for realizing an innovative smooth driver. 
       FIG. 8  illustrates a switching controller of a three-phase electric motor including a fully digital phase voltage reconstruction circuit (within the dashed border) for generating a digital signal Vphad that represents the phase voltage of a winding A of the motor. Therefore, the signal Vphad, which is substantially a replica of the phase voltage on the winding A, is obtained using digital control values PWMA, PWMB and PWMC already generated in switching controllers and without using the analog operational amplifiers shown in  FIGS. 5 and 6 . As shown in the exemplary embodiment of  FIG. 8 , the digital control values PWMA, PWMB and PWMC may be digital words of 9 bits, though the same observations hold also if the digital control values are constituted by a different number of bits. 
     The switching controller may optionally include an analog circuit for generating a digital replica Iad of the phase current flowing throughout the winding A, as in the prior architecture depicted in  FIG. 6 , to generate a digital replica of the back electromotive force BEMF A . 
     The digital control values PWMA, PWMB and PWMC may be used to obtain a replica of the phase voltage on a generic winding A because they are tied to the instantaneous driving voltages Va, Vb and Vc applied on the phase terminals of the windings. More particularly, the cascade of the PWM converter and of the power stage of the switching controller generates the driving voltages Va, Vb and Vc as follows: 
             Va   =       PWMA   *   Vmotor     MaxSampleVal                 Vb   =       PWMB   *   Vmotor     MaxSampleVal                 Vc   =       PWMC   *   Vmotor     MaxSampleVal           
where MaxSampleVal is the maximum value of the digital control values PWMA, PWMB, PWMC, and Vmotor is the nominal value of power supply. The phase voltage Va−Vct is given by the following equation:
 
                     Va   -   Vct     =       ⁢         2   ·   Va     -   Vb   -   Vc     3                 =       ⁢       Vmotor   MaxSampleVal     ·         2   ·   PWMA     -   PWMB   -   PWMC     3                   
with V CT  being the center-star voltage.
 
     According to an example embodiment, the digital voltage signal Vphad that represents the phase voltage Va−Vct is generated by subtracting the digital control values PWMB and PWMC from twice the value PWMA, and by multiplying this difference by a coefficient C 3 :
 
Vphad= C 3·(2·PWMA−PKVB−PWMC)
 
Thus, it is not necessary to sense the phase voltage, as in the circuit of  FIG. 2 , nor is it necessary to provide an analog-to-digital conversion, as in the circuit of  FIG. 6 .
 
     In a poly-phase electric motor, the above equations may be relatively easily reformulated recalling that the sum of all phase (star) voltages is 0. Thus, it is possible to generate the digital voltage signal Vphad as a function of the digital control values representing the switching duty-cycles of the half-bridges of the N windings of the motor. 
     To calculate the back electromotive force BemfA, the signal Vphad is summed to values representing the Ohmic voltage drop R*Iad and inductive voltage drop 
               L   ×       ⅆ     (   Iad   )         ⅆ   t         ,         
where the digital value Iad is obtained by converting into digital form an analog replica of the phase current Ia. The dynamics of digitalization of Vphad and lad are in general different from each other, thus the coefficient C 3  is chosen to generate a signal Vphad with a digital dynamic equal to the dynamic into which the signal Iad has been digitized,
 
               C   ⁢           ⁢   3     =       Vmotor   *     K   PROFILE     *     ADC   MAX         3   *   MaxSampleVal   *   Ipha   ⁢           ⁢   max             
where: Vmotor is the nominal power supply value; Kprofile is the coefficient that takes in account the voltage profile shape and it is equal to 1 in the case of a sinusoidal shape; ADCmax is the digital value of the current Ia when the phase current Ia attains its peak value; MaxsampleVal is the maximum value of profile samples (that is 511 in actual smooth drivers); and Iphamax is the maximum undistorted peak value of Ia that an algorithm that does not contemplate time windows is able to manage. The coefficient C 3  does not depend on the supply variation but is tied to its nominal value Vmotor. Indeed, in smooth drivers the control values PWMA, PWMB and PWMC are already compensated against power supply variations because they are modulated by a power supply FF algorithm, thus the value Vphad is automatically compensated without changing the coefficient C 3 .
 
     Alternatively to the above-described on-the-fly calculation, the values of Vphad may be stored beforehand into the nonvolatile memory together with the three normalized voltage profiles, as a fourth normalized profile subject to amplitude modulation. An example is shown in the following exemplary table: 
     
       
         
               
               
               
               
               
             
           
               
                   
                   
               
               
                   
                 PWMA 
                 PWMB 
                 PWMC 
                 Vphad 
               
               
                   
                   
               
             
             
               
                   
                 511 
                 226 
                 0 
                 796 
               
               
                   
                 502 
                 165 
                 0 
                 839 
               
               
                   
                 485 
                 100 
                 0 
                 870 
               
               
                   
                 . . . 
                 . . . 
                 . . . 
                 . . . 
               
               
                   
                   
               
             
          
         
       
     
     According to another embodiment of the present switching controller, it is possible to generate a digital current signal Ira representing the phase current in a winding of the electric motor without using a sense resistor. The switching controller of  FIG. 9  includes a fully digital phase current reconstruction circuit IaReconstruction that uses the following signals that are already available in smooth drivers. 
     A logic flag Ia_ZC indicates the occurrence of positive (or negative) zero crosses of the phase current in the considered winding A. According to a known technique, information on the sign of the current is obtained by sampling the half-bridge output during dead-times. This logic flag Ia_ZC is already used in smooth drivers for maximizing the driving torque. The current reconstruction circuit IaReconstruction may include a memory address generator (not shown) coupled to either the low-side switch or the high-side switch to generate a start signal Address 0  synchronous with positive (or negative) zero-crosses of the phase current to make the nonvolatile memory PROFILE MEMORY provide the leading sample of a stored profile IaSample of the phase current forced throughout the winding A. 
     The amplitude signal I_AMP is obtained by sampling the voltage drop on the low-side (high-side) switch (typically a DMOS sense FET) when a current is flowing therethrough. This is already used by classic current limit algorithms in smooth drivers for monitoring the amplitude of the phase current and for limiting it to a programmed value. Therefore, the amplitude of the phase current flowing throughout the winding A is represented by the signal I_AMP, which is used in the switching controller of  FIG. 9  to modulate the samples of the current profile IaSample retrieved from the nonvolatile memory PROFILE MEMORY to generate in a fully digital form a digital current signal Ira representing the phase current Ia in the winding A. 
     The circuit that generates the signals Ia_ZC and I_AMP has been represented with a block PHASE ZC DETECTION &amp; LOW DMOS SENSEFET MEASURE coupled with the power stage that drives the electric motor. 
     Therefore, the switching controller of  FIG. 9  senses only the peak of the phase current la, and this may be done with a low side DMOS sense FET without using a sense resistor in series to the motor winding. It should be noted that the sense resistor is essentially mandatory in the prior circuits of  FIGS. 5 and 6  because monitoring the voltage drop on the low-side (or high-side) switch is insufficient for reconstructing the whole phase current. Indeed, the voltage drop on the low-side (or high-side) switch provides information on the phase current only during the negative (positive) half-wave thereof and is affected by distortions that increase as long as the phase current approaches zero. 
     By contrast, in the switching controller of  FIG. 9 , the phase current profile is already available in the nonvolatile memory. Thus, only the start instant of the profile (given by the signal Ia_ZC) and its amplitude (given by the signal I_AMP) need to be determined. 
     According to known techniques, a digital controlled oscillator and a generator of memory addresses for the nonvolatile memory PROFILE MEMORY, represented with the block DIGITALLY CONTROLLED OSCILLATOR &amp; PROFILE ADDRESSING, are already available in smooth drivers and generate the address signal ADDRESS for retrieving from the nonvolatile memory the sequence of values representing the desired current profile. The signals ADDRESS and Fscan, the latter being used to scan the memory, cause the nonvolatile memory to output digital values of sinusoidal voltage profile samples SampleA, SampleB and SampleC. 
     Together with these blocks, the present switching controller uses the same memory to generate the samples of the desired current profile IaSample, updated with the same frequency Fscan but reset with the start signal Address 0 . This start signal causes the retrieval of the profile IaSample from the beginning by pointing to the leading sample thereof. The signal Address 0 , which according to an example embodiment is the zero-cross signal Ia_ZC itself or a modified replica thereof adapted to be provided in input to the nonvolatile memory, is essentially a profile scanning reset that forces the first sample of the profile at its output IaSample whenever a zero-cross event of the phase current occurs. After the Address 0  has been asserted, the scanning of the profile follows the usual rate fixed by the signal Fscan, that is at every Fscan event the next samples of the profiles are delivered on the outputs SampleA, SampleB, SampleC and IaSample. 
     Accordingly, SampleA, SampleB, SampleC and IaSample are samples scanned at the same rate (Fscan) but with different offsets. Samples at IaSample are then amplitude modulated to have peak values equal to that of signal I_AMP coming from the analog-to-digital converter ADC that digitizes the voltage drop on the low-side switch (DMOS sense FET). 
     The reconstructed phase current Ira has the same amplitude, frequency and phase of the real phase current Ia. With this technique, the phase current is no longer sensed in the analogic domain on the whole cycle, but is fully digitally reconstructed by sampling Ia peaks only (between two consecutive zero-crosses of the phase current) and by exploiting digital signals already present in smooth drivers. 
     This technique of reconstructing the phase current in the digital domain may be combined with the technique disclosed in  FIG. 8  for realizing a circuit, now described with reference to  FIG. 10 , that generates digital replicas of the phase current Ira and of the phase voltage Vphad using the previously mentioned signals Ia_ZC, I_AMP, and the control signals PWMA, PWMB and PMWC already available in switching controllers. The block  1 / z  represents a time-shifting operator in the domain of the Z-transform. C 1  and C 2  are multiplication factors and LPFilter is a low-pass filter. As shown in the exemplary embodiment of  FIG. 10 , the digital control values PWMA, PWMB and PWMC may be digital words of 9 bits, the coefficient C 1  may be 8 bits and the coefficient C 2  may be 10 bits, though the same observations hold if these coefficients have different numbers of bits. 
     According to known techniques, the digital replicas Ira and Vphad may be processed for generating:
         a first signal DIrad representing in the digital domain the time derivative of the phase current of the winding A as the difference between the signals Ira and a time-shifted replica thereof; a second signal VRa representing the voltage drop on the resistance of the winding A as the product of the signal Ira by the coefficient C 1 ;   a third signal VLa representing the voltage drop due to the inductance of the winding A as the product of the signal DIrad by the coefficient C 2 ; and   a digital replica signal BemfA of the back electromotive force as a low-pass filtered replica of the difference between the signal Vphad and the sum of the signals VRa and VLa.       

     The circuit of  FIG. 10  may be used in place of the analog sensing circuit of  FIG. 2  in the block  5  of the smooth driver of  FIG. 1 . This provides for a smooth driver that need not include analog sensing circuits directly connected to the windings of the motor for determining the back-electromotive force induced therein.
A switching controller of a poly-phase electric motor may generate, in a fully digital manner, a replica of the phase current and/or of the phase (star) voltage of one or more windings of the motor. The switching controller may use digital signals already available for driving the motor to reconstruct a replica of the phase current or the phase voltage, and thereby avoid the need for dedicated analog components for phase current or phase voltage determination.