<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ep-patent-document PUBLIC "-//EPO//EP PATENT DOCUMENT 1.5//EN" "ep-patent-document-v1-5.dtd">
<ep-patent-document id="EP10251247B1" file="EP10251247NWB1.xml" lang="en" country="EP" doc-number="2276166" kind="B1" date-publ="20180418" status="n" dtd-version="ep-patent-document-v1-5">
<SDOBI lang="en"><B000><eptags><B001EP>ATBECHDEDKESFRGBGRITLILUNLSEMCPTIESILTLVFIROMKCYALTRBGCZEEHUPLSK..HRIS..MTNO....SM..................</B001EP><B005EP>J</B005EP><B007EP>BDM Ver 0.1.63 (23 May 2017) -  2100000/0</B007EP></eptags></B000><B100><B110>2276166</B110><B120><B121>EUROPEAN PATENT SPECIFICATION</B121></B120><B130>B1</B130><B140><date>20180418</date></B140><B190>EP</B190></B100><B200><B210>10251247.2</B210><B220><date>20100713</date></B220><B240><B241><date>20110719</date></B241><B242><date>20150415</date></B242></B240><B250>en</B250><B251EP>en</B251EP><B260>en</B260></B200><B300><B310>501660</B310><B320><date>20090713</date></B320><B330><ctry>US</ctry></B330></B300><B400><B405><date>20180418</date><bnum>201816</bnum></B405><B430><date>20110119</date><bnum>201103</bnum></B430><B450><date>20180418</date><bnum>201816</bnum></B450><B452EP><date>20171031</date></B452EP></B400><B500><B510EP><classification-ipcr sequence="1"><text>H02P   6/17        20160101AFI20171009BHEP        </text></classification-ipcr><classification-ipcr sequence="2"><text>H02P   6/34        20160101ALI20171009BHEP        </text></classification-ipcr></B510EP><B540><B541>de</B541><B542>Kompaktes FPGA-basiertes digitales Motorsteuergerät</B542><B541>en</B541><B542>Compact FPGA-based digital motor controller</B542><B541>fr</B541><B542>Contrôleur de moteur numérique compact à base de FPGA</B542></B540><B560><B561><text>EP-A1- 0 812 057</text></B561><B561><text>WO-A2-2004/004109</text></B561><B561><text>US-B1- 6 351 048</text></B561><B562><text>shiva@ishnatek.com: "Implementing a Brushless DC Motor Controller on an IGLOO FPGA" Ishnatek Systems &amp; Services Private limited 2008, XP002600282 Retrieved from the Internet: URL:http://www.eetasia.com/STATIC/PDF/2008 10/EEOL_2008OCT01_PL_AN_01.pdf?SOURCES=DOW NLOAD [retrieved on 2010-09-08] -&amp; "Miniature Motor Control Daughter Card for Actel IGLOO Icicle Kit" ACTEL May 2008 (2008-05), XP002601681 Retrieved from the Internet: URL:http://www.actel.com/products/solution s/motorcontrol/minicard.aspx [retrieved on 2010-09-08]</text></B562><B562><text>Craig Hackney: "FPGA Motor Control Reference Design" XILINX 16 September 2005 (2005-09-16), XP002600283 Retrieved from the Internet: URL:http://www.xilinx.com/support/document ation/application_notes/xapp808.pdf [retrieved on 2010-09-08]</text></B562></B560></B500><B700><B720><B721><snm>Wichowski, Robert P.</snm><adr><str>3 Wintergreen Lane</str><city>Westfield, MA 01085</city><ctry>US</ctry></adr></B721></B720><B730><B731><snm>Hamilton Sundstrand Space Systems 
International, Inc.</snm><iid>101277152</iid><irf>41.106060</irf><adr><str>One Hamilton Road</str><city>Windsor Locks, CT 06096</city><ctry>US</ctry></adr></B731></B730><B740><B741><snm>Lees, Gregory Alexander</snm><sfx>et al</sfx><iid>101587486</iid><adr><str>Dehns 
St Bride's House 
10 Salisbury Square</str><city>London EC4Y 8JD</city><ctry>GB</ctry></adr></B741></B740></B700><B800><B840><ctry>AL</ctry><ctry>AT</ctry><ctry>BE</ctry><ctry>BG</ctry><ctry>CH</ctry><ctry>CY</ctry><ctry>CZ</ctry><ctry>DE</ctry><ctry>DK</ctry><ctry>EE</ctry><ctry>ES</ctry><ctry>FI</ctry><ctry>FR</ctry><ctry>GB</ctry><ctry>GR</ctry><ctry>HR</ctry><ctry>HU</ctry><ctry>IE</ctry><ctry>IS</ctry><ctry>IT</ctry><ctry>LI</ctry><ctry>LT</ctry><ctry>LU</ctry><ctry>LV</ctry><ctry>MC</ctry><ctry>MK</ctry><ctry>MT</ctry><ctry>NL</ctry><ctry>NO</ctry><ctry>PL</ctry><ctry>PT</ctry><ctry>RO</ctry><ctry>SE</ctry><ctry>SI</ctry><ctry>SK</ctry><ctry>SM</ctry><ctry>TR</ctry></B840></B800></SDOBI>
<description id="desc" lang="en"><!-- EPO <DP n="1"> -->
<heading id="h0001">BACKGROUND OF THE INVENTION</heading>
<p id="p0001" num="0001">The subject matter disclosed herein generally relates to digital motor controllers, and more particularly to compact field programmable gate array (FPGA) based digital motor controllers.</p>
<p id="p0002" num="0002">A brushless direct current (DC) motor can use switches to electrically control commutation. One or more sensors can be used to determine position or speed information for feedback control of the brushless DC motor. When sensors are used that provide timing information, commutation control may be non-linear with respect to rotational speed of the motor. Non-linear period information complicates control logic, which can result in demanding mathematical calculations and complex algorithms for accurate control. Such control logic typically requires a microprocessor and accompanying computer system control elements, such as non-volatile memory, volatile memory, arbitration logic, operating system software, and application software in the motor control loop. The use of a microprocessor and computer system control elements may be unsuitable for certain environments that are geometrically constrained and/or subject to harsh environmental conditions, for instance, high radiation environments.</p>
<p id="p0003" num="0003">"FPGA Motor Control Reference Design" by Craig Hackney discloses a brushless DC motor including a field programmable gate array (FPGA)-based digital motor controller. The controller contains a Speed Unit that is configured to generate a processor interrupt every 10ms and to counts the number of optical shaft encoder lines within the fixed period of time of 10ms. From this measurement, the speed of the motor can be calculated.</p>
<heading id="h0002">BRIEF DESCRIPTION OF THE INVENTION</heading>
<p id="p0004" num="0004">Viewed from a first aspect, the present invention provides a compact field programmable gate array (FPGA)-based digital motor controller comprising: a sensor interface implemented in hardware circuitry configured to receive sensor data<!-- EPO <DP n="2"> --> from one or more sensors which provide position information for a direct current (DC) brushless motor and to generate conditioned sensor data; a commutation control implemented in hardware circuitry configured to create switching commands to control commutation for the DC brushless motor, the commutation control generating commutation pulses from the conditioned sensor data of the sensor interface, which are formatted as time values indicating an elapsed time between a common position of the DC brushless motor or multiple positions of the DC brushless motor; and a time inverter implemented in hardware circuitry configured to receive the commutation pulses from the commutation control and convert the commutation pulses into a rotational speed of the DC brushless motor by performing a mathematical inversion of the time values to provide a linear feedback control parameter.</p>
<p id="p0005" num="0005">Viewed from a second aspect, the present invention provides a method for providing a compact field programmable gate array (FPGA)-based digital motor controller comprising: receiving sensor data from one or more sensors indicating position information for a direct current (DC) brushless motor; generating conditioned sensor data at a sensor interface implemented in hardware circuitry of the compact FPGA-based digital motor controller; generating commutation pulses from the conditioned sensor data at a commutation control implemented in hardware circuitry of the compact FPGA-based digital motor controller, the commutation pulses being formatted as time values indicating an elapsed time between a common position of the DC brushless motor or multiple positions of the DC brushless motor; converting the commutation pulses into a rotational speed of the DC brushless motor by performing a mathematical inversion of the time values at a time inverter implemented in hardware circuitry of the compact FPGA-based digital motor controller to provide a linear feedback control parameter; and creating switching commands at the commutation control to control commutation for the DC brushless motor.</p>
<p id="p0006" num="0006">These and other advantages and features will become more apparent from the following description taken in conjunction with the drawings.<!-- EPO <DP n="3"> --></p>
<heading id="h0003">BRIEF DESCRIPTION OF THE DRAWINGS</heading>
<p id="p0007" num="0007">The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other features, and advantages of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
<ul id="ul0001" list-style="none">
<li><figref idref="f0001">FIG. 1</figref> is a block diagram of an exemplary embodiment of a system with a compact FPGA-based digital motor controller;</li>
<li><figref idref="f0002">FIG. 2</figref> depicts a block diagram of a compact FPGA-based digital motor controller; and</li>
<li><figref idref="f0003">FIG. 3</figref> depicts a process for providing a compact FPGA-based digital motor controller.</li>
</ul></p>
<p id="p0008" num="0008">The detailed description explains embodiments of the invention, together with advantages and features, by way of example with reference to the drawings.</p>
<heading id="h0004">DETAILED DESCRIPTION OF THE INVENTION</heading>
<p id="p0009" num="0009"><figref idref="f0001">FIG. 1</figref> illustrates a block diagram of an exemplary embodiment of a system 100 with a compact field programmable gate array (FPGA)-based digital motor controller 102. The compact FPGA-based digital motor controller 102 receives input data from one or more sensors 104 via sensor data link 106. The one or more sensors 104 may be Hall effect sensors that detect magnetic field changes due to rotation of a direct current (DC) brushless motor 108. In an exemplary embodiment, the one or more sensors 104 produce timing pulses responsive to a rotational position of the DC brushless motor 108. Motor drive transistors 110 switch a drive voltage source 112 onto motor drive link 114, providing switched current to establish commutation for the DC brushless motor 108. Switch commands are driven from the compact FPGA-based digital motor controller 102 to the motor drive transistors 110 using switch command link 116. Mechanical rotation of the DC brushless motor 108<!-- EPO <DP n="4"> --> can drive a rotary actuator 118 coupled through mechanical linkage 120. The mechanical linkage 120 may include gearing and other components (not depicted).</p>
<p id="p0010" num="0010">The compact FPGA-based digital motor controller 102 may receive commands from a system controller 122 through a communication link 124. The system controller 122 can monitor the rotary actuator 118 using system sensors 126. An actuator feedback link 128 provides a feedback path between the rotary actuator 118 and the system sensors 126. A system sensor data link 130 can be used to pass data from the system sensors 126 to the system controller 122. In the embodiment depicted in <figref idref="f0001">FIG. 1</figref>, the compact FPGA-based digital motor controller 102 performs closed-loop feedback control of the DC brushless motor 108, while the system controller 122 provides closed-loop feedback control of the rotary actuator 118.</p>
<p id="p0011" num="0011">In an exemplary embodiment, the system controller 122 provides control and configuration commands to the compact FPGA-based digital motor controller 102 and may also read status data from the compact FPGA-based digital motor controller 102. The system controller 122 can communicate with multiple instances of the compact FPGA-based digital motor controller 102 to command multiple instances of the DC brushless motor 108 and the rotary actuator 118 as part of a larger control system.</p>
<p id="p0012" num="0012">Although the compact FPGA-based digital motor controller 102 is depicted as a single block, it will be understood that the functionality implemented within the compact FPGA-based digital motor controller 102 can be distributed over multiple FPGAs. FPGAs are semiconductor devices that can be configured after manufacturing according to hardware description language (HDL) files. HDL files may be implemented in a variety of formats, such as very high-speed integrated circuit hardware description language (VHDL) and/or Verilog files. As used herein, the term "FPGA" can refer to any programmable logic device capable of performing closed-loop digital motor control absent software execution.</p>
<p id="p0013" num="0013"><figref idref="f0002">FIG. 2</figref> depicts further details of an embodiment of the compact FPGA-based digital motor controller 102. As illustrated in <figref idref="f0002">FIG. 2</figref>, the compact FPGA-based<!-- EPO <DP n="5"> --> digital motor controller 102 includes hardware circuitry for a communication interface 202, data registers 204, sensor interface 206, time inverter 208, commutation control 210, and linear digital compensation filter 212. The communication interface 202, data registers 204, sensor interface 206, time inverter 208, commutation control 210, and linear digital compensation filter 212 can be implemented in a single compact FPGA device or distributed between multiple compact FPGA devices. In one embodiment, the communication interface 202, data registers 204, sensor interface 206, time inverter 208, and commutation control 210 are grouped in a first compact FPGA 214, while the linear digital compensation filter 212 is included in a second compact FPGA 216. This configuration may enable a common implementation of the first compact FPGA 214 and customized implementations of multiple instances of the second compact FPGA 216 to support multiple configurations of the DC brushless motor 108 and the rotary actuator 118 of <figref idref="f0001">FIG. 1</figref> as part of a larger control system.</p>
<p id="p0014" num="0014">Both the first compact FPGA 214 and the second compact FPGA 216 can be implemented using antifuse (one-time programmable) technology to decrease susceptibility to radiation, such as alpha particles, which can cause circuits to malfunction. Thus, implementing the compact FPGA-based digital motor controller 102 in antifuse technology may increase overall reliability of the system 100 of <figref idref="f0001">FIG. 1</figref>, particularly in high-radiation environments. The physical area of the first compact FPGA 214 and the second compact FPGA 216 may be about 1 inch-square (2.54 centimeters-square), where the first compact FPGA 214 and the second compact FPGA 216 contain about 100,000 gates each. It will be understood that the physical dimensions and number of gates for the first compact FPGA 214 and the second compact FPGA 216 can vary within the scope of the invention.</p>
<p id="p0015" num="0015">The communication interface 202 is coupled to the communication link 124 to provide bidirectional communication with the system controller 122 of <figref idref="f0001">FIG. 1</figref>. The communication interface 202 may support a variety of communication protocols and standards known in the art, such as RS-485 to support point-to-point and multi-drop bus communication. Data path 218 provides a bidirectional communication link between the communication interface 202 and the data registers 204. The communication interface 202 can perform communication protocol<!-- EPO <DP n="6"> --> conversion, enabling the system controller 122 of <figref idref="f0001">FIG. 1</figref> to read and write values in the data registers 204. The data registers 204 may store a variety of configuration parameters, commands, and status information. For example, the data registers 204 can interface with the time inverter 208 and linear digital compensation filter 212 via data path 220 and data path 222 respectively.</p>
<p id="p0016" num="0016">The sensor interface 206 receives sensor data from the sensor data link 106 and can provide conditioned sensor data to the commutation control 210 using data path 224. The sensor data received at the sensor interface 206 from the one or more sensors 104 of <figref idref="f0001">FIG. 1</figref> may be formatted as digital position data. For example, each of the one or more sensors 104 can generate a pulse as a rotor of the DC brushless motor 108 of <figref idref="f0001">FIG. 1</figref> rotates in close physical proximity to a given sensor of the one or more sensors 104. The sensor interface 206 can use edge detection logic to trigger one or more timers to start, stop, and/or capture time values as transitional edges are detected. Timers may be included in the sensor interface 206 and/or in the commutation control 210.</p>
<p id="p0017" num="0017">The commutation control 210 can convert values received from the sensor interface 206 into commutation pulse data. The commutation pulse data may be formatted as time values indicating elapsed time between a common position and/or multiple positions relative to the DC brushless motor 108 of <figref idref="f0001">FIG. 1</figref>. The commutation pulse data is sent to the time inverter 208 via data path 226.</p>
<p id="p0018" num="0018">In an exemplary embodiment, the time inverter 208 performs a mathematical inversion of time values from the commutation pulse data and outputs a rotational speed in revolutions-per-minute (RPM). The time inverter 208 is implemented exclusively in hardware circuitry and performs the mathematical inversion of time values (1/time) without software assistance to provide a linear feedback control parameter for controlling the DC brushless motor 108 of <figref idref="f0001">FIG. 1</figref>. The time inverter 208 may include scalable parameters to control the accuracy of the calculations. In an exemplary embodiment, the accuracy of the time inverter 208 is scalable between 24 and 48 bits. The time inverter 208 may also support additional accuracy ranges. Converting non-linear commutation pulse data to RPM provides<!-- EPO <DP n="7"> --> linearization to simplify closed loop control logic. Further or alternate scaling, such as unit conversion may be performed prior to passing resulting data values to the data registers 204 on data path 220 and to the linear digital compensation filter 212 on data path 230. Speed data passed to the data registers 204 can be read by the system controller 122 of <figref idref="f0001">FIG. 1</figref> using the communication interface 202. Speed data passed to the linear digital compensation filter 212 supplies a linear feedback control parameter to determine an error value for controlling the DC brushless motor 108 of <figref idref="f0001">FIG. 1</figref>.</p>
<p id="p0019" num="0019">The linear digital compensation filter 212 provides compensation logic for stable control of the DC brushless motor 108 of <figref idref="f0001">FIG. 1</figref>. The linear digital compensation filter 212 may include one or more digital filter stages, such as an infinite impulse response (IIR) filter or a finite impulse response (FIR) filter. The linear digital compensation filter 212 may also include control loop logic for implementing any combination of proportional, integral, and/or differential control. A commanded speed value can be received from the data registers 204, in addition to one or more gain values and filter coefficients. The values from the time inverter 208 provide control loop feedback for linear digital control. This avoids complexity that may be associated with more advanced control loop designs, such as non-linear state space control. The linear digital compensation filter 212 drives an output on data path 232 that attempts to reduce an error value between a commanded value and the actual value determined by the time inverter 208. In an exemplary embodiment, the output on data path 232 is a compensation command for the commutation control 210, which may be in a pulse-width-modulation (PWM) command.</p>
<p id="p0020" num="0020">The commutation control 210 converts compensation commands from the linear digital compensation filter 212 into switching commands to output on the switch command link 116. The commutation control 210 may issue commands as PWM cycles with an adjustable duty cycle and/or frequency. In an exemplary embodiment, the commutation control 210 implements predictive control to avoid noise induced errors. The predictive control can include filtering self-generated noise. The commutation control 210 may use conditioned sensor data generated by the sensor interface 206 to determine when an error condition likely exists. For example, the commutation control 210 can determine that the rate of change between position<!-- EPO <DP n="8"> --> data is too fast, indicating that false pulses may be present. The commutation control 210 can maintain a switching sequence from a previous switching cycle or issue no switching commands until the error condition is removed.</p>
<p id="p0021" num="0021">It will be understood that data paths 220-232 may be combined into any combination of shared data path. Sharing data paths can reduce the amount of resources dedicated to routing data paths within the compact FPGA-based digital motor controller 102.</p>
<p id="p0022" num="0022"><figref idref="f0003">FIG. 3</figref> depicts a process 300 for providing a compact FPGA-based digital motor controller, such as the compact FPGA-based digital motor controller 102 of <figref idref="f0001">FIGs. 1</figref> and <figref idref="f0002">2</figref>. At block 302, the sensor interface 206 receives sensor data from one or more sensors 104 indicating position information for DC brushless motor 108. At block 304, the sensor interface 206 generates conditioned sensor data. At block 306, commutation control 210 generates commutation pulses from the conditioned sensor data. At block 308, time inverter 208 converts the commutation pulses into a rotational speed of the DC brushless motor 108 to provide a linear feedback control parameter. At block 310, commutation control 210 creates switching commands to control commutation for the DC brushless motor 108. Data registers 204 can be used to store command and status information, with communication interface 202 providing communication between the data registers 204 and system controller 122 of <figref idref="f0001">FIG. 1</figref>. Linear digital compensation filter 212 may receive the rotational speed from the time inverter 208 and a speed command from the data registers 204, outputting a compensation command to the commutation control 210 responsive to the rotational speed and the speed command. As previously described, the commutation control 210 can include additional functionality, such as performing predictive control to filter self-generated noise.</p>
<p id="p0023" num="0023">As described above, embodiments of the invention may be embodied in the form of hardware or any processes and/or apparatuses for practicing the embodiments. The invention may also be embodied in the form of a design structure for the compact FPGA-based digital motor controller 102 of <figref idref="f0001">FIGs. 1</figref> and <figref idref="f0002">2</figref> tangibly embodied in a machine-readable medium, such as a floppy diskette, CD ROM, DVD,<!-- EPO <DP n="9"> --> flash drive, solid-state device, hard drive, or any other computer readable storage medium. One or more HDL files and/or supporting library files stored on one or more machine-readable mediums can provide the functional structure to program one or more FPGA devices to implement the compact FPGA-based digital motor controller 102. The design structure can be encoded in one or more FPGA devices, such as the first compact FPGA 214 and the second compact FPGA 216, by physically modifying the internal resistance of connections in each FPGA device to establish conductive paths for electrical current to flow.</p>
<p id="p0024" num="0024">Technical effects include a compact FPGA-based digital motor controller. Performing a time inversion of position information for a DC brushless motor in hardware rather than software can avoid use of a microprocessor, computer system components, and software, resulting in a geometrically compact solution for DC brushless motor control. FPGA-based time inversion circuitry enables the use of a digital linear closed loop compensation filter instead of more complex non-linear controls. Converting time data into RPM for closed loop control may further simplify the control logic. The compact FPGA-based digital motor controller can also avoid the use of analog circuits to reduce board area and increase reliability. Implementing the compact FPGA-based digital motor controller in antifuse technology may further enhance reliability in high radiation environments, such as high altitude or space applications.</p>
<p id="p0025" num="0025">While the invention has been described in detail in connection with only a limited number of embodiments, it should be readily understood that the invention is not limited to such disclosed embodiments. Rather, the invention can be modified to incorporate any number of variations, alterations, substitutions or equivalent arrangements not heretofore described, but which are commensurate with the scope of the invention. Additionally, while various embodiments of the invention have been described, it is to be understood that aspects of the invention may include only some of the described embodiments. Accordingly, the invention is not to be seen as limited by the foregoing description, but is only limited by the scope of the appended claims.</p>
</description>
<claims id="claims01" lang="en"><!-- EPO <DP n="10"> -->
<claim id="c-en-01-0001" num="0001">
<claim-text>A compact field programmable gate array (FPGA)-based digital motor controller (102) comprising:
<claim-text>a sensor interface (206) implemented in hardware circuitry configured to receive sensor data from one or more sensors (104) which provide position information for a direct current (DC) brushless motor (108) and to generate conditioned sensor data;</claim-text>
<claim-text>a commutation control (210) implemented in hardware circuitry configured to create switching commands to control commutation for the DC brushless motor (108), the commutation control (210) generating commutation pulses from the conditioned sensor data of the sensor interface (206), which are formatted as time values indicating an elapsed time between a common position of the DC brushless motor or multiple positions of the DC brushless motor; and</claim-text>
<claim-text>a time inverter (208) implemented in hardware circuitry configured to receive the commutation pulses from the commutation control (210) and convert the commutation pulses into a rotational speed of the DC brushless motor (108) by performing a mathematical inversion of the time values to provide a linear feedback control parameter.</claim-text></claim-text></claim>
<claim id="c-en-01-0002" num="0002">
<claim-text>The compact FPGA-based digital motor controller (102) of claim 1 further comprising:
<claim-text>data registers (204) configured to store command and status information; and</claim-text>
<claim-text>a communication interface (202) in communication with the data registers (204) to provide communication with a system controller (122).</claim-text><!-- EPO <DP n="11"> --></claim-text></claim>
<claim id="c-en-01-0003" num="0003">
<claim-text>The compact FPGA-based digital motor controller (102) of claim 2 further comprising:
<claim-text>a linear digital compensation filter (212) configured to receive the rotational speed from the time inverter (208) and a speed command from the data registers (204), the linear digital compensation filter (212) outputting a compensation command to the commutation control (210) responsive to the rotational speed and the speed command.</claim-text></claim-text></claim>
<claim id="c-en-01-0004" num="0004">
<claim-text>The compact FPGA-based digital motor controller (102) of claim 3 wherein the time inverter (208) is implemented in a first compact FPGA (214) and the linear digital compensation filter (212) is implemented in a second compact FPGA (216).</claim-text></claim>
<claim id="c-en-01-0005" num="0005">
<claim-text>The compact FPGA-based digital motor controller (102) of claim 1, 2, 3 or 4 wherein accuracy of the time inverter (208) is scalable.</claim-text></claim>
<claim id="c-en-01-0006" num="0006">
<claim-text>The compact FPGA-based digital motor controller (102) of any preceding claim wherein the commutation control (210) performs predictive control to filter self-generated noise.</claim-text></claim>
<claim id="c-en-01-0007" num="0007">
<claim-text>The compact FPGA-based digital motor controller (102) of any preceding claim wherein the compact FPGA-based digital motor controller (102) is implemented in antifuse technology.<!-- EPO <DP n="12"> --></claim-text></claim>
<claim id="c-en-01-0008" num="0008">
<claim-text>A method (300) for providing a compact field programmable gate array (FPGA)-based digital motor controller (102) comprising:
<claim-text>receiving (302) sensor data from one or more sensors (104) indicating position information for a direct current (DC) brushless motor (108);</claim-text>
<claim-text>generating (304) conditioned sensor data at a sensor interface (206) implemented in hardware circuitry of the compact FPGA-based digital motor controller (102);</claim-text>
<claim-text>generating (306) commutation pulses from the conditioned sensor data at a commutation control (210) implemented in hardware circuitry of the compact FPGA-based digital motor controller (102), the commutation pulses being formatted as time values indicating an elapsed time between a common position of the DC brushless motor or multiple positions of the DC brushless motor;</claim-text>
<claim-text>converting (308) the commutation pulses into a rotational speed of the DC brushless motor (108) by performing a mathematical inversion of the time values at a time inverter (208) implemented in hardware circuitry of the compact FPGA-based digital motor controller (102) to provide a linear feedback control parameter; and</claim-text>
<claim-text>creating (310) switching commands at the commutation control (210) to control commutation for the DC brushless motor (108).</claim-text></claim-text></claim>
<claim id="c-en-01-0009" num="0009">
<claim-text>The method of claim 8 further comprising:
<claim-text>storing command and status information in data registers (204) of the compact FPGA-based digital motor controller (102); and</claim-text>
<claim-text>providing communication between the data registers (204) and a system controller (122) via a communication interface (202) of the compact FPGA-based digital motor controller (102).</claim-text><!-- EPO <DP n="13"> --></claim-text></claim>
<claim id="c-en-01-0010" num="0010">
<claim-text>The method of claim 9 further comprising:
<claim-text>receiving the rotational speed from the time inverter (208) and a speed command from the data registers (204) at a linear digital compensation filter (212) of the compact FPGA-based digital motor controller (102); and</claim-text>
<claim-text>outputting a compensation command to the commutation control (210) responsive to the rotational speed and the speed command.</claim-text></claim-text></claim>
<claim id="c-en-01-0011" num="0011">
<claim-text>The method of claim 10 wherein the time inverter (208) is implemented in a first compact FPGA (214) and the linear digital compensation filter (212) is implemented in a second compact FPGA (216).</claim-text></claim>
<claim id="c-en-01-0012" num="0012">
<claim-text>The method of claim 8, 9, 10 or 11 wherein accuracy of the time inverter (208) is scalable.</claim-text></claim>
<claim id="c-en-01-0013" num="0013">
<claim-text>The method of any of claims 8 to 12 wherein the commutation control (210) performs predictive control to filter self-generated noise.</claim-text></claim>
<claim id="c-en-01-0014" num="0014">
<claim-text>The method of any of claims 8 to 13 wherein the compact FPGA-based digital motor controller (102) is implemented in antifuse technology.</claim-text></claim>
<claim id="c-en-01-0015" num="0015">
<claim-text>A design structure for a compact field programmable gate array (FPGA)-based digital motor controller (102) tangibly embodied in a machine-readable medium, the design structure providing the functional structure to program one or more FPGA devices to implement the compact field programmable gate array (FPGA)-based digital motor controller of any of claims 1 to 6.</claim-text></claim>
</claims>
<claims id="claims02" lang="de"><!-- EPO <DP n="14"> -->
<claim id="c-de-01-0001" num="0001">
<claim-text>Digitale Motorsteuereinheit (102) auf Grundlage eines kompakten feldprogrammierbaren Gate-Arrays (FPGA), umfassend:
<claim-text>eine Sensorschnittstelle (206), die in Hardwareschaltungen implementiert ist, die dazu konfiguriert sind, Sensordaten von einem oder mehreren Sensoren (104) zu empfangen, die Positionsinformationen für einen bürstenlosen Gleichstrom(DC)-Motor (108) bereitstellen, und aufbereitete Sensordaten zu generieren;</claim-text>
<claim-text>ein Kommunikationssteuerelement (210), das in Hardwareschaltungen implementiert ist, die dazu konfiguriert sind, Schaltbefehle zum Steuern von Kommutation für den bürstenlosen DC-Motor (108) zu erzeugen, wobei das Kommunikationssteuerelement (210) Kommutationsimpulse aus den aufbereiteten Sensordaten der Sensorschnittstelle (206) generiert, die als Zeitwerte formatiert sind, die eine verstrichene Zeit zwischen einer gemeinsamen Position des bürstenlosen DC-Motors oder mehreren Positionen des bürstenlosen DC-Motors angibt; und</claim-text>
<claim-text>einen Zeitwandler (208), der in Hardwareschaltungen implementiert ist, die dazu konfiguriert sind, die Kommutationsimpulse von dem Kommunikationssteuerelement (210) zu empfangen und die Kommutationsimpulse in eine Drehzahl des bürstenlosen DC-Motors (108) umzuwandeln, indem eine mathematische Inversion der Zeitwerte durchgeführt wird, um einen linearen Rückkopplungssteuerparameter bereitzustellen.</claim-text></claim-text></claim>
<claim id="c-de-01-0002" num="0002">
<claim-text>Digitale Motorsteuereinheit (102) auf Grundlage eines kompakten FPGA nach Anspruch 1, ferner umfassend:
<claim-text>Datenregister (204), die zum Speichern von Befehls- und Statusinformationen konfiguriert sind; und<!-- EPO <DP n="15"> --></claim-text>
<claim-text>eine Kommunikationsschnittstelle (202) in Kommunikation mit den Datenregistern (204), um Kommunikation mit einer Systemsteuereinheit (122) bereitzustellen.</claim-text></claim-text></claim>
<claim id="c-de-01-0003" num="0003">
<claim-text>Digitale Motorsteuereinheit (102) auf Grundlage eines kompakten FPGA nach Anspruch 2, ferner umfassend:
<claim-text>ein lineares digitales Kompensationsfilter (212), das dazu konfiguriert ist, die Drehzahl von dem Zeitwandler (208) und einen Drehzahlbefehl von den Datenregistern (204) zu empfangen, wobei das lineare digitale Kompensationsfilter (212) in Antwort auf die Drehzahl und den Drehzahlbefehl einen Kompensationsbefehl an das Kommunikationssteuerelement (210) ausgibt.</claim-text></claim-text></claim>
<claim id="c-de-01-0004" num="0004">
<claim-text>Digitale Motorsteuereinheit (102) auf Grundlage eines kompakten FPGA nach Anspruch 3, wobei der Zeitwandler (208) in einem ersten kompakten FPGA (214) implementiert ist und das lineare digitale Kompensationsfilter (212) in einem zweiten kompakten FPGA (216) implementiert ist.</claim-text></claim>
<claim id="c-de-01-0005" num="0005">
<claim-text>Digitale Motorsteuereinheit (102) auf Grundlage eines kompakten FPGA nach Anspruch 1, 2, 3 oder 4, wobei die Genauigkeit des Zeitwandlers (208) skalierbar ist.</claim-text></claim>
<claim id="c-de-01-0006" num="0006">
<claim-text>Digitale Motorsteuereinheit (102) auf Grundlage eines kompakten FPGA nach einem der vorangehenden Ansprüche, wobei das Kommunikationssteuerelement (210) eine prädiktive Steuerung zum Filtern von selbstgenerierten Rauschen durchführt.</claim-text></claim>
<claim id="c-de-01-0007" num="0007">
<claim-text>Digitale Motorsteuereinheit (102) auf Grundlage eines kompakten FPGA nach einem der vorangehenden Ansprüche, wobei die digitale Motorsteuereinheit (102) auf Grundlage eines kompakten FPGA in Antifuse-Technologie implementiert ist.<!-- EPO <DP n="16"> --></claim-text></claim>
<claim id="c-de-01-0008" num="0008">
<claim-text>Verfahren (300) zum Bereitstellen einer digitalen Motorsteuereinheit (102) auf Grundlage eines kompakten feldprogrammierbaren Gate-Arrays (FPGA), umfassend:
<claim-text>Empfangen (302) von Sensordaten von einem oder mehreren Sensoren (104), die Positionsinformation für einen bürstenlosen Gleichstrom(DC)-Motor (108) angeben;</claim-text>
<claim-text>Generieren (304) aufbereiteter Sensordaten an einer in Hardwareschaltungen implementieren Sensorschnittstelle (206) der digitalen Motorsteuereinheit (102) auf Grundlage eines kompakten FPGA;</claim-text>
<claim-text>Generieren (306) von Kommutationsimpulsen aus den aufbereiteten Sensordaten an einer in Hardwareschaltungen implementieren Kommunikationssteuerelement (210) der digitalen Motorsteuereinheit (102) auf Grundlage eines kompakten FPGA, wobei die Kommutationsimpulse als Zeitwerte formatiert sind, die eine verstrichene Zeit zwischen einer gemeinsamen Position des bürstenlosen DC-Motors oder mehreren Positionen des bürstenlosen DC-Motors angeben;</claim-text>
<claim-text>Umwandeln (308) der Kommutationsimpulse in eine Drehzahl des bürstenlosen DC-Motors (108) durch Durchführen einer mathematischen Inversion der Zeitwerte an einem in Hardwareschaltungen implementieren Zeitwandler (208) der digitalen Motorsteuereinheit (102) auf Grundlage eines kompakten FPGA, um einen linearen Rückkopplungssteuerparameter bereitzustellen; und</claim-text>
<claim-text>Erzeugen (310) von Schaltbefehlen am Kommunikationssteuerelement (210), um die Kommutation für den bürstenlosen DC-Motor (108) zu steuern.</claim-text></claim-text></claim>
<claim id="c-de-01-0009" num="0009">
<claim-text>Verfahren nach Anspruch 8, ferner umfassend:<!-- EPO <DP n="17"> -->
<claim-text>Speichern von Befehls- und Statusinformationen in Datenregistern (204) der digitalen Motorsteuereinheit (102) auf Grundlage eines kompakten FPGA; und</claim-text>
<claim-text>Bereitstellen von Kommunikation zwischen den Datenregistern (204) und einer Systemsteuereinheit (122) über eine Kommunikationsschnittstelle (202) der digitalen Motorsteuereinheit (102) auf Grundlage des kompakten FPGA.</claim-text></claim-text></claim>
<claim id="c-de-01-0010" num="0010">
<claim-text>Verfahren nach Anspruch 9, ferner umfassend:
<claim-text>Empfangen der Drehzahl von dem Zeitwandler (208) und eines Drehzahlbefehls von den Datenregistern (204) an einem linearen digitalen Kompensationsfilter (212) der digitalen Motorsteuereinheit (102) auf Grundlage des kompakten FPGA; und</claim-text>
<claim-text>Ausgeben eines Kompensationsbefehls an das Kommunikationssteuerelement (210) in Antwort auf die Drehzahl und den Drehzahlbefehl.</claim-text></claim-text></claim>
<claim id="c-de-01-0011" num="0011">
<claim-text>Verfahren nach Anspruch 10, wobei der Zeitwandler (208) in einem ersten kompakten FPGA (214) implementiert ist und das lineare digitale Kompensationsfilter (212) in einem zweiten kompakten FPGA (216) implementiert ist.</claim-text></claim>
<claim id="c-de-01-0012" num="0012">
<claim-text>Verfahren nach Anspruch 8, 9, 10 oder 11, wobei die Genauigkeit des Zeitwandlers (208) skalierbar ist.</claim-text></claim>
<claim id="c-de-01-0013" num="0013">
<claim-text>Verfahren nach einem der Ansprüche 8 bis 12, wobei das Kommunikationssteuerelement (210) eine prädiktive Steuerung zum Filtern von selbstgenerierten Rauschen durchführt.</claim-text></claim>
<claim id="c-de-01-0014" num="0014">
<claim-text>Verfahren nach einem der Ansprüche 8 bis 13, wobei die digitale Motorsteuereinheit (102) auf Grundlage eines kompakten FPGA in Antifuse-Technologie implementiert ist.</claim-text></claim>
<claim id="c-de-01-0015" num="0015">
<claim-text>Konstruktionsstruktur für eine digitale Motorsteuereinheit (102) auf Grundlage eines kompakten feldprogrammierbaren Gate-Arrays (FPGA), die greifbar in einem maschinenlesbaren Medium verkörpert ist, wobei die<!-- EPO <DP n="18"> --> Konstruktionsstruktur die funktionelle Struktur zum Programmieren von einer oder mehreren FPGA-Vorrichtungen bereitstellt, um die digitale Motorsteuereinheit auf Grundlage des kompakten feldprogrammierbaren Gate-Arrays (FPGA) nach einem der Ansprüche 1 bis 6 zu implementieren.</claim-text></claim>
</claims>
<claims id="claims03" lang="fr"><!-- EPO <DP n="19"> -->
<claim id="c-fr-01-0001" num="0001">
<claim-text>Contrôleur de moteur numérique compact à base de matrice prédiffusée programmable par l'utilisateur (102) comprenant :
<claim-text>une interface de capteur (206) mise en oeuvre dans un circuit matériel et configurée pour recevoir des données de capteur émanant d'un ou plusieurs capteurs (104) qui fournissent des informations de position pour un moteur sans balais à courant continu (CC) (108) et pour générer des données de capteur conditionnées ;</claim-text>
<claim-text>une commande de commutation (210) mise en oeuvre dans un circuit matériel et configurée pour créer des ordres de basculement afin de commander la commutation du moteur sans balais CC (108), la commande de commutation (210) produisant des impulsions de commutation à partir des données de capteur conditionnées de l'interface de capteur (206), qui sont formatées sous forme de valeurs temporelles indiquant un temps écoulé entre une position commune du moteur sans balais CC ou plusieurs positions du moteur sans balais CC ; et</claim-text>
<claim-text>un inverseur temporel (208) mis en oeuvre dans un circuit matériel et configuré pour recevoir les impulsions de commutation émanant de la commande de commutation (210) et convertir les impulsions de commutation en une vitesse de rotation du moteur sans balais CC (108) en réalisant une inversion mathématique des valeurs temporelles pour fournir un paramètre de commande de rétroaction linéaire.</claim-text></claim-text></claim>
<claim id="c-fr-01-0002" num="0002">
<claim-text>Contrôleur de moteur numérique compact à base de FPGA (102) selon la revendication 1, comprenant en outre :
<claim-text>des registres de données (204) configurés pour stocker des informations d'ordre et d'état ; et</claim-text>
<claim-text>une interface de communication (202) en communication avec les registres de données (204) pour fournir une communication avec un contrôleur système (122).</claim-text><!-- EPO <DP n="20"> --></claim-text></claim>
<claim id="c-fr-01-0003" num="0003">
<claim-text>Contrôleur de moteur numérique compact à base de FPGA (102) selon la revendication 2, comprenant en outre :
<claim-text>un filtre de compensation numérique linéaire (212) configuré pour recevoir la vitesse de rotation émanant de l'inverseur temporel (208) et un ordre de vitesse émanant des registres de données (204), le filtre de compensation numérique linéaire (212) transmettant un ordre de compensation à la commande de commutation (210) en réponse à la vitesse de rotation et à l'ordre de vitesse.</claim-text></claim-text></claim>
<claim id="c-fr-01-0004" num="0004">
<claim-text>Contrôleur de moteur numérique compact à base de FPGA (102) selon la revendication 3, dans lequel l'inverseur temporel (208) est mis en oeuvre dans un premier FPGA compact (214) et le filtre de compensation numérique linéaire (212) est mis en oeuvre dans un second FPGA compact (216).</claim-text></claim>
<claim id="c-fr-01-0005" num="0005">
<claim-text>Contrôleur de moteur numérique compact à base de FPGA (102) selon les revendications 1, 2, 3 ou 4, dans lequel la précision de l'inverseur temporel (208) est évolutive.</claim-text></claim>
<claim id="c-fr-01-0006" num="0006">
<claim-text>Contrôleur de moteur numérique compact à base de FPGA (102) selon l'une quelconque des revendications précédentes, dans lequel la commande de commutation (210) réalise une commande prédictive pour filtrer le bruit propre.</claim-text></claim>
<claim id="c-fr-01-0007" num="0007">
<claim-text>Contrôleur de moteur numérique compact à base de FPGA (102) selon l'une quelconque des revendications précédentes, dans lequel le contrôleur de moteur numérique compact à base de FPGA (102) est mis en oeuvre dans une technologie anti-fusible.</claim-text></claim>
<claim id="c-fr-01-0008" num="0008">
<claim-text>Procédé (300) pour la fourniture d'un contrôleur de moteur numérique compact à base de matrice prédiffusée programmable par l'utilisateur (102), comprenant :<!-- EPO <DP n="21"> -->
<claim-text>la réception (302) de données de capteur émanant d'un ou plusieurs capteurs (104) et indiquant des informations de position pour un moteur sans balais à courant continu (CC) (108) ;</claim-text>
<claim-text>la production (304) de données de capteur conditionnées au niveau d'une interface de capteur (206) mise en oeuvre dans un circuit matériel du contrôleur de moteur numérique compact à base de FPGA (102) ;</claim-text>
<claim-text>la production (306) d'impulsions de commutation à partir des données de capteur conditionnées au niveau d'une commande de commutation (210) mise en oeuvre dans un circuit matériel du contrôleur de moteur numérique compact à base de FPGA (102), les impulsions de commutation étant formatées sous forme de valeurs temporelles indiquant un temps écoulé entre une position commune du moteur sans balais CC ou plusieurs positions du moteur sans balais CC ;</claim-text>
<claim-text>la conversion (308) des impulsions de commutation en une vitesse de rotation du moteur sans balais CC (108) par réalisation d'une inversion mathématique des valeurs temporelles au niveau d'un inverseur temporel (208) mis en oeuvre dans un circuit matériel du contrôleur de moteur numérique compact à base de FPGA (102) pour fournir un paramètre de commande de rétroaction linéaire ; et</claim-text>
<claim-text>la création (310) d'ordres de basculement au niveau de la commande de commutation (210) pour commander la commutation du moteur sans balais CC (108).</claim-text></claim-text></claim>
<claim id="c-fr-01-0009" num="0009">
<claim-text>Procédé selon la revendication 8, comprenant en outre :
<claim-text>le stockage d'informations d'ordre et d'état dans des registres de données (204) du contrôleur de moteur numérique compact à base de FPGA (102) ; et</claim-text>
<claim-text>la fourniture d'une communication entre les registres de données (204) et un contrôleur système (122) par<!-- EPO <DP n="22"> --> l'intermédiaire d'une interface de communication (202) du contrôleur de moteur numérique compact à base de FPGA (102).</claim-text></claim-text></claim>
<claim id="c-fr-01-0010" num="0010">
<claim-text>Procédé selon la revendication 9, comprenant en outre :
<claim-text>la réception de la vitesse de rotation émanant de l'inverseur temporel (208) et d'un ordre de vitesse émanant des registres de données (204) au niveau d'un filtre de compensation numérique linéaire (212) du contrôleur de moteur numérique compact à base de FPGA (102) ; et</claim-text>
<claim-text>la transmission d'un ordre de compensation à la commande de commutation (210) en réponse à la vitesse de rotation et à l'ordre de vitesse.</claim-text></claim-text></claim>
<claim id="c-fr-01-0011" num="0011">
<claim-text>Procédé selon la revendication 10, dans lequel l'inverseur temporel (208) est mis en oeuvre dans un premier FPGA compact (214) et le filtre de compensation numérique linéaire (212) est mis en oeuvre dans un second FPGA compact (216).</claim-text></claim>
<claim id="c-fr-01-0012" num="0012">
<claim-text>Procédé selon les revendications 8, 9, 10 ou 11, dans lequel la précision de l'inverseur temporel (208) est évolutive.</claim-text></claim>
<claim id="c-fr-01-0013" num="0013">
<claim-text>Procédé selon l'une quelconque des revendications 8 à 12, dans lequel la commande de commutation (210) réalise une commande prédictive pour filtrer le bruit propre.</claim-text></claim>
<claim id="c-fr-01-0014" num="0014">
<claim-text>Procédé selon l'une quelconque des revendications 8 à 13, dans lequel le contrôleur de moteur numérique compact à base de FPGA (102) est mis en oeuvre dans une technologie anti-fusible.</claim-text></claim>
<claim id="c-fr-01-0015" num="0015">
<claim-text>Structure de conception d'un contrôleur de moteur numérique compact à base de matrice prédiffusée programmable par l'utilisateur (102) incorporée de manière tangible dans un<!-- EPO <DP n="23"> --> support lisible par ordinateur, la structure de conception fournissant la structure fonctionnelle permettant de programmer un ou plusieurs dispositifs FPGA pour mettre en oeuvre le contrôleur de moteur numérique compact à base de FPGA selon l'une quelconque des revendications 1 à 6.</claim-text></claim>
</claims>
<drawings id="draw" lang="en"><!-- EPO <DP n="24"> -->
<figure id="f0001" num="1"><img id="if0001" file="imgf0001.tif" wi="162" he="198" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="25"> -->
<figure id="f0002" num="2"><img id="if0002" file="imgf0002.tif" wi="159" he="177" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="26"> -->
<figure id="f0003" num="3"><img id="if0003" file="imgf0003.tif" wi="126" he="163" img-content="drawing" img-format="tif"/></figure>
</drawings>
</ep-patent-document>
