Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberWO2000021189 A1
Publication typeApplication
Application numberPCT/EP1999/005282
Publication date13 Apr 2000
Filing date23 Jul 1999
Priority date5 Oct 1998
Also published asCA2346118A1, CA2346118C, DE19845626A1, EP1118152A1, EP1118152B1, US7230400
Publication numberPCT/1999/5282, PCT/EP/1999/005282, PCT/EP/1999/05282, PCT/EP/99/005282, PCT/EP/99/05282, PCT/EP1999/005282, PCT/EP1999/05282, PCT/EP1999005282, PCT/EP199905282, PCT/EP99/005282, PCT/EP99/05282, PCT/EP99005282, PCT/EP9905282, WO 0021189 A1, WO 0021189A1, WO 2000/021189 A1, WO 2000021189 A1, WO 2000021189A1, WO-A1-0021189, WO-A1-2000021189, WO0021189 A1, WO0021189A1, WO2000/021189A1, WO2000021189 A1, WO2000021189A1
InventorsThomas Dufner, Jörg Hornberger, Frank Jeske, Hermann Rappenecker, Arno Karwath
ApplicantPapst-Motoren Gmbh & Co. Kg
Export CitationBiBTeX, EndNote, RefMan
External Links: Patentscope, Espacenet
Electronically commutated motor
WO 2000021189 A1
Abstract
The invention relates to an electronically commutated motor (M) which has a galvanomagnetic rotor position sensor (40) for generating rotor position signals. A timer (CNT_HL) serves to achieve a premature commutation which occurs once the motor reaches a determined speed. The amount of commutation is a function of the motor speed.
Claims  translated from German  (OCR text may contain errors)
Patentansprüche claims
1. Elektronisch kommutierter Motor mit einem Stator, einem Rotor (39), und mit einem zur Steuerung der Kommutierung des Motors dienenden programmgesteuerten Mikroprozessor oder Mikrocontroller (11 ), im folgenden Mikroprozessor genannt, mit einer Vorrichtung zur Erfassung einer der Drehzahl des Rotors (39) im wesentlichen umgekehrt proportionalen Zeitgröße (t_H), mit einer Vorrichtung zur Berechnung einer von dieser Zeitgröße (t_H) abhängigen Zeit (t_TI), mit einer Vorrichtung zur Auslösung einer Motorsteuerungs-Interruptroutine (Fig. 1. An electronically commutated motor having a stator, a rotor (39), and with a serving for controlling the commutation of the motor program-controlled microprocessor or microcontroller (11), hereinafter referred to as microprocessor (with a device for detecting the rotational speed of the rotor 39 ) is substantially inversely proportional to the time variable (t_H), dependent with a device for calculating an (of this time, size t_H) time (t_TI), (with a device for triggering a motor control interrupt routine Fig.
10) in einem zeitlichen Abstand (t_TI) von einer vorgegebenen Rotorstellung, welcher Abstand der von der erfaßten Zeitgröße (t_H) abhängigen Zeit (t_TI) entspricht, wobei diese Motorsteuerungs-Interruptroutine Programmschritte (S310, S318, 10) at a time interval (t_TI) of a predetermined rotor position, which distance of the detected time variable (t_H) dependent time (t_TI), wherein this motor control interrupt routine program steps (S310, S318,
S320, S322) zum Bewirken einer Kommutierung des Motors enthält. S320, S322) for causing a commutation of the motor.
2. Motor nach Anspruch 1 , bei welchem die Motorsteuerungs-Interruptroutine (Fig. 10) Programmschritte (S304, S306) enthält, welche das Bewirken einer Kommutierung verhindern, wenn die von der erfaßten Zeitgröße abhängige Zeit (t_TI) größer ist als eine Zeitspanne (t_H), die der Rotor (39) aktuell zum Durchlaufen eines vorgegebenen Winkelwegs benötigt. contains 2. Motor according to claim 1, wherein the motor control interrupt routine (Fig. 10) program steps (S304, S306) which prevent the effect of a commutation, when the dependent on the detected amount of time time (t_TI) is greater than a period of time ( t_H) required by the rotor (39) current to pass through a predetermined angular path.
3. Motor nach Anspruch 2, mit einer Vorrichtung, welche an vorgegebenen Rotorstellungen eine rotorstellungsabhängige Interruptroutine (Fig. 8) auslöst. 3. Motor according to claim 2, with a trigger device having a rotor position-dependent interrupt routine at predetermined rotor positions (FIG. 8).
4. Motor nach Anspruch 3, bei welchem zur Erfassung der der Drehzahl des Rotors im wesentlichen umgekehrt proportionalen Zeitgröße ein von den rotorstellungsabhängigen Interruptroutinen (Fig. 8) steuerbarer Timer (CNTJHL) vorgesehen ist. 4. Motor according to claim 3, wherein for detecting the rotational speed of the rotor is substantially inversely proportional amount of time one of the interrupt routines dependent on the rotor position (Fig. 8) controllable timer (CNTJHL) is provided.
5. Motor nach Anspruch 4, bei welchem der Timer (CNTJHL) auch zur Auslösung einer Motorsteuerungs-Interruptroutine (Fig. 10) ausgebildet ist. is formed 5. Motor according to claim 4, wherein the timer (CNTJHL) and for triggering a motor control interrupt routine (Fig. 10).
6. Motor nach Anspruch 5, bei welchem der Timer (CNTJHL) während eines rotorstellungsabhängigen Interrupts (Fig. 8) mit einem ersten vorgegebenen Zählwert (t_B) ladbar ist, welcher dem von der erfaßten Zeitgröße (t_H) abhängigen zeitlichen Abstand (t_TI) entspricht, und welcher nach Zählen dieses ersten vorgegebenen Zählwerts einen Motorsteuerungs-Interrupt (Fig. 10) bewirkt. 6. Motor according to claim 5, wherein the timer (CNTJHL) during a rotor position dependent interrupts (Fig. 8) with a first predetermined counting value (t_B) is loadable, which time interval the on the detected time variable (t_H) dependent (t_TI) corresponds effect and which, after this first predetermined counting count a motor control interrupt (Fig. 10).
7. Motor nach einem oder mehreren der vorhergehenden Ansprüche, bei welchem ein rotorstellungsabhängiger Interrupt (Fig. 8) eine höhere Priorität hat als ein Motorsteuerungs-Interrupt (Fig. 10). 7. Motor according to one or more of the preceding claims, in which a rotor position dependent interrupt (Fig. 8) has a higher priority than a motor control interrupt (Fig. 10).
8. Motor nach einem oder mehreren der Ansprüche 4 bis 7, bei welchem der Timer (CNTJHL) während eines Motorsteuerungs-Interrupts (Fig. 10: S302) mit einem vorgegebenen Zählwert (t_AR) ladbar ist, und im Anschluß an diesen Ladevorgang eine Zählung bis zum nächsten rotorstellungsabhängigen Interrupt (Fig. 8) erfolgt, um durch Bildung der Differenz zwischen dem vorgegebenen Zählwert (t_AR) und dem Zählerstand (t_E) bei Erreichen des nächsten rotorstellungsabhängigen Interrupts (Fig. 8) einen zeitlichen Abstand (Fig. 7A: t_1) zwischen diesen Interruptvorgängen zu ermitteln. 8. Motor according to one or more of claims 4 to 7, wherein the timer (CNTJHL) during a motor control interrupt (Fig. 10: S302) with a predetermined count value (t_AR) is loadable, and following this loading operation counting takes place until the next rotor position-dependent interrupt (Fig. 8) in order to form the difference between the predetermined counting value (t_AR) and the counter state (t_E) on reaching the next rotor position-dependent interrupts (Fig. 8) by a time interval (Fig. 7a: t_1 to determine) between these Interruptvorgängen.
9. Motor nach Anspruch 8, bei welchem zum Laden des vorgegebenen Zählwerts (t_AR) ein Autoreload-Register (AR) vorgesehen ist, welches den ersten vorgegebenen Zählwert (t_TI) speichert und dem Timer (CNT_HL) während des Motorsteuerungs-Interrupts (Fig. 10) als vorgegebenen Zählwert zuführt. 9. The motor of claim 8, wherein for loading the predetermined count value (t_AR) an auto reload register (AR) is provided which stores the first predetermined counting value (t_TI) and the timer (CNT_HL) during the motor control interrupt (Fig. 10) supplying a predetermined count.
10. Verfahren zur drehzahlabhängigen Kommutierung eines elektronisch kommutierten Motors, welcher einen Stator und einen Rotor aufweist, ferner einen zur Steuerung seiner Kommutierung dienenden programmgesteuerten Mikroprozessor oder Mikrocontroller, im folgenden Mikroprozessor genannt, mit folgenden Schritten: a) eine zur Drehzahl des Rotors im wesentlichen umgekehrt proportionale Zeitgröße (t_H) wird ermittelt; 10. A method for rotational speed-dependent commutation of an electronically commutated motor having a stator and a rotor, further comprising a controlling its commutation serving program-controlled microprocessor or microcontroller, hereinafter referred to as microprocessor, comprising: an inverted a) to the rotational speed of the rotor is substantially proportional time variable (t_H) is determined; b) aus dieser Zeitgröße (t_H) wird nach einer vorgegebenen Rechenregel ein Zahlenwert (t_TI) errechnet; b) from this time variable (t_H) after a predetermined calculation rule, a numerical value (t_TI) is calculated; c) beginnend bei einer vorgegebenen ersten Rotorstellung wird eine diesem errechneten Zahlenwert entsprechende erste Zeit gemessen; c) beginning at a predetermined first rotor position is a this calculated numerical value is measured corresponding first time; d) nach Ablauf dieser ersten Zeit wird eine Kommutierung (TN) ausgelöst; d) after this first time a commutation (TN) is triggered; e) im Anschluß hieran wird bis zum Erreichen einer vorgegebenen zweiten Rotorstellung eine zweite Zeit (t_1) gemessen; e) subsequent to this, a second time (t_1) is measured until a predetermined second rotor position; f) erste und zweite Zeit werden addiert, und ihre Summe wird, ggf. durch mindestens einen Korrekturfaktor korrigiert, als eine zur Drehzahl des Motors im wesentlichen umgekehrt proportionale Zeitgröße (t_H) verwendet. f) first and second time are added, and their sum, if necessary corrected by at least one correction factor, as a (for the speed of the motor is substantially inversely proportional time t_H size) is used.
11. Verfahren nach Anspruch 10, bei welchem die vorgegebene Rechenregel einen Subtraktionsschritt aufweist, bei welchem von der zur Drehzahl des Rotors im wesentlichen umgekehrt proportionalen Zeitgröße (t_H) eine vorgegebene Zeit (t_ZW) subtrahiert wird. 11. The method of claim 10, wherein the predetermined calculating rule comprises a subtraction step in which the substantially inversely proportional to the rotational speed of the rotor time variable (t_H) a predetermined time (t_ZW) is subtracted.
12. Verfahren nach Anspruch 10 oder 11 , bei welchem dann, wenn die dem errechneten Zahlenwert (t_TI) entsprechende erste Zeit größer ist als der zeitliche Abstand zwischen der vorgegebenen ersten Rotorstellung und der vorgegebenen zweiten Rotorstellung, der zeitliche Abstand zwischen diesen beiden Rotorstellungen direkt erfaßt und als eine zur Drehzahl des Motors im wesentlichen umgekehrt proportionale Zeitgröße (t_H) verwendet wird (S256). 12. The method of claim 10 or 11, wherein when the the calculated numerical value (t_TI) is corresponding first time greater than the time interval between the predetermined first rotor position and the predetermined second rotor position, the distance in time between these two rotor positions is detected directly and is used as a the speed of the motor is substantially inversely proportional time variable (t_H) (S256).
13. Verfahren nach einem oder mehreren der Ansprüche 10 bis 12, bei welchem die zur Drehzahl des Motors im wesentlichen umgekehrt proportionale Zeitgröße (t_H) mit einem einer Mindestdrehzahl entsprechenden vorgegebenen Wert (t_SZW) verglichen wird (Fig. 9: S264), ein dem Vergleichsresultat entsprechender logischer Wert (SZW) zwischengespeichert wird (Fig. 9: S266), und bei einem vorgegebenen Wert dieses logischen Werts (SZW) die nach Ablauf der ersten Zeit (t_TI) erfolgende Auslösung einer Kommutierung unterdrückt wird (Fig. 10: S304, S306). is compared 13. A method according to one or more of claims 10 to 12, wherein the the speed of the motor is substantially inversely proportional time variable (t_H) corresponding to one of a minimum speed of predetermined value (t_SZW) (Fig. 9: S264), a the is suppressed, and at a predetermined value of this logic value (SZW) after expiry of the first time (t_TI) taking place triggering a commutation (Figure 10: Comparison result corresponding logic value (SZW) is temporarily stored (S266 Fig. 9). S304 S306).
14. Verfahren nach einem oder mehreren der Ansprüche 10 bis 13, bei welchem bei Erreichen einer vorgegebenen Rotorstellung ein rotorstellungsabhängiger Interrupt mit einer Interruptroutine (Fig. 8A, 8B) ausgeführt wird, zu deren Beginn ein zur Zeitmessung dienender Timer (CNTJHL) angehalten (S202) und sein augenblicklicher Wert in einer Variablen (t_E) gespeichert wird. 14. The method according to one or more of claims 10 to 13, wherein on reaching a predetermined rotor position a rotor position dependent interrupt with an interrupt routine (Fig. 8A, 8B) is carried out, stopped at the beginning of a time measurement serving Timer (CNTJHL) (S202 ) and its instantaneous value in a variable (t_E) is stored.
15. Verfahren nach Anspruch 14, bei welchem in der rotorstellungsabhängigen Interruptroutine der zur Zeitmessung dienende Timer (CNTJHL) zeitlich nach seinem Anhalten (S202) mit einem zuvor nach der vorgegebenen Rechenregel berechneten Zahlenwert (t_TI) geladen und dann gestartet wird (Fig. 8B: S238). 15. The method of claim 14, wherein in the rotor-position-dependent interrupt routine serving for time measurement timer (CNTJHL) chronologically after its stoppage is loaded (S202) with a calculated previously according to the predetermined calculation rule numerical value (t_TI) and then started (Fig. 8B: S238).
16. Verfahren nach Anspruch 14 und 15, bei welchem die Zeitspanne zwischen dem Anhalten des zur Zeitmessung dienenden Timers (CNT_HL) und seinem Starten als Korrekturfaktor (t_CORR) verwendet wird, wenn die zur Drehzahl des Motors im wesentlichen umgekehrt proportionale Zeitgröße (t_H) ermittelt wird. 16. The method according to claim 14 and 15, wherein the time between the stopping of the serving for time measurement timer (CNT_HL) and its launch as a correction factor (t_CORR) is used when the rotational speed of the motor is substantially inversely proportional time variable (t_H) determined becomes.
17. Verfahren nach einem oder mehreren der Ansprüche 10 bis 16, bei welchem die dem errechneten Zahlenwert (t_TI) entsprechende erste Zeit, welche ab einer vorgegebenen ersten Rotorstellung gemessen wird, aus einer der Drehzahl des Rotors im wesentlichen umgekehrt proportionalen Zeitgröße errechnet wird, welche etwa eine Rotorumdrehung vor dem Zeitpunkt ermittelt wurde, an dem die aktuelle Messung der ersten Zeit erfolgt (Fig. 18: 542, 544, 546). 17. The method as the (t_TI) is calculated from one of the rotational speed of the rotor is substantially inversely proportional amount of time according to one or more of claims 10 to 16, in which the calculated value corresponding first time which is measured from a predetermined first rotor position, which about one revolution of the rotor was determined prior to the time at which the current measurement of the first time takes place (fig. 18: 542, 544, 546).
18. Verfahren nach einem oder mehreren der Ansprüche 10 bis 17, bei welchem mindestens ein nicht zeitkritischer Verfahrensschritt als Unterroutine (Fig. 9) ausgebildet ist, welche im Programmablauf aufgerufen wird, wenn Prozessorzeit verfügbar ist (Fig. 15). 18. The method according to one or more of claims 10 to 17, wherein at least one non time-critical step is designed as a subroutine (Fig. 9), which is called in the program execution when processor time is available (Fig. 15).
19. Verfahren nach Anspruch 18, bei welchem die Berechnung der zur Drehzahl des Motors im wesentlichen umgekehrt proportionalen Zeitgröße (t_H) und die Berechnung des der Messung der ersten Zeit zugrundeliegenden Zahlenwerts (t_TI) in einer solchen Unterroutine (Fig. 9) erfolgen. effected 19. The method of claim 18, wherein the calculation of the speed of the motor is substantially inversely proportional to the time variable (t_H) and the calculation of the measurement of the first time underlying numerical value (t_TI) in such a subroutine (Fig. 9).
20. Verfahren nach einem oder mehreren der Ansprüche 10 bis 19, bei welchem mindestens ein für Berechnungen erforderlicher Parameter (t_ZW) aus einem dem Motor zugeordneten nichtflüchtigen Speicher (26) in ein RAM (25) des Mikroprozessors (11) geladen wird. Loading 20. The method according to one or more of claims 10 to 19, wherein at least one of calculations required parameter (t_ZW) from an associated engine non-volatile memory (26) in a RAM (25) of the microprocessor (11).
21. Verfahren nach Anspruch 20, bei welchem dem nichtflüchtigen Speicher (26) ein Bus (30) zugeordnet ist, über welchen mindestens ein Parameter im nichtflüchtigen Speicher (26) veränderbar ist. 21. The method of claim 20, wherein the non-volatile memory (26), a bus (30) is associated, via which at least one parameter in the non-volatile memory (26) is variable.
22. Elektronisch kommutierter Motor mit einem Stator, einem Rotor (39), und mit einem zur Steuerung der Kommutierung des Motors (M) dienenden programmgesteuerten Mikroprozessor oder Mikrocontroller (11), im folgenden Mikroprozessor genannt, wobei bei mindestens einer vorgegebenen Rotorstellung ein Timer (CNT_HL) mit einem vorgegebenen Startwert (t_TI) gestartet wird, welcher Timer (CNTJHL) nach Ablauf einer von dem Startwert (t_TI) abhängigen Zeit einen Interrupt (Fig. 10) im Programm des Mikroprozessors (11) auslöst, während dessen eine Kommutierung (Fig. 10: S318, S320, S322) des Motors (M) erfolgt. 22. An electronically commutated motor having a stator, a rotor (39) and serving with one to control the commutation of the motor (M) program-controlled microprocessor or microcontroller (11), hereinafter referred to as microprocessor, a timer (for at least one predetermined rotor position CNT_HL) (with a predetermined starting value t_TI) is started, which timer (CNTJHL) dependent upon expiry of a (from the starting value t_TI) time an interrupt (Fig. 10) in the program of the microprocessor (11) triggers, during which commutation (Figure occurs S318, S320, S322) of the engine (M):. 10,.
23. Motor nach Anspruch 22, bei welchem der Startwert (t_TI) des Timers (CNTJHL) eine Funktion einer drehzahlabhängigen Zeit (t_H) ist, die der Rotor (39) in einem dieser Kommutierung vorausgehenden Zeitbereich für seine Drehung um einen vorgegebenen Drehwinkel benötigt hat. is 23. The engine of claim 22, wherein the starting value (t_TI) of the timer (CNTJHL) is a function of a speed-dependent time (t_H) which has required the preceding one of these commutation time range for its rotation by a predetermined rotation angle of the rotor (39) ,
24. Motor nach Anspruch 23, bei welchem zur Berechnung des Startwerts (t_TI) eine vorgegebene Zeit (t_ZW) von der drehzahlabhängigen Zeit (t_H) subtrahiert wird. 24. The engine of claim 23, wherein for the calculation of the starting value (t_TI) a predetermined time (t_ZW) of the speed-dependent time (t_H) is subtracted.
25. Verfahren zur Bestimmung einer drehzahlabhängigen Größe bei einem elektronisch kommutierten Motor (M), welcher einen Stator, einen permanentmagnetischen Rotor (39), einen von diesem Rotor gesteuerten galvanomagnetischen Sensor (40), einen Mikroprozessor oder Mikrocontroller (11 ), im folgenden Mikroprozessor genannt, ein diesem Mikroprozessor zugeordnetes Steuerprogramm, und einen Timer (CNT_HL) aufweist, mit folgenden Schritten: a) Das Ausgangssignal des galvanomagnetischen Sensors (40) wird in ein rechteckförmiges Signal (HALL) umgeformt; 25. A method for determining a speed-dependent quantity in an electronically commutated motor (M) comprising a stator, a permanent-magnet rotor (39), a switch controlled by this rotor galvanomagnetic sensor (40), a microprocessor or microcontroller (11), hereinafter microprocessor called a microprocessor associated with this control program, and a timer (CNT_HL), comprising the following steps: a) the output signal of the galvanomagnetic sensor (40) is converted into a rectangular signal (HALL); b) vorgegebene Signaländerungen des rechteckförmigen Signals (HALL) werden vom Mikroprozessor erfaßt und durch das Steuerprogramm jeweils in einen rotorstellungsabhängigen Interrupt (Fig. 4: Y) umgesetzt; b) predetermined signal changes of the rectangular signal (HALL) are detected by the microprocessor and by the control program in each case into a rotor-position-dependent interrupt (Fig. 4: Y) implemented; c) bei einem rotorstellungsabhängigen Interrupt (Y) wird ein erster Zählerstand (Fig. 4: t_0) des Timers festgehalten; c) at a rotor-position-dependent interrupt (Y), a first count (Figure 4 held t_0) of the timer;. d) bei einem darauffolgenden rotorstellungsabhängigen Interrupt (Y) wird ein zweiter Zählerstand (t_E) des Timers festgehalten; d) at a next rotor position-dependent interrupt (Y), a second counter state (t_E) of the timer is retained; e) aus der Differenz der beiden Zählerstände (t_0, t_E) wird als drehzahlabhängige Größe ein Wert (Fig. 4: HL) ermittelt, welcher der Zeit entspricht, die der Rotor (39) für das Durchlaufen eines vorgegebenen Drehwinkels benötigt (Fig. 4, Fig. 20). (E) from the difference of the two counts t_0, t_E) is used as a speed-dependent value (a value Figure 4: determined HL), which corresponds to the time which the rotor (39) for the passage of a predetermined angle of rotation required (Fig. 4. , Fig. 20).
26. Elektronisch kommutierter Motor (M) mit einem Stator (38), einem Rotor (39), und mit einem zur Steuerung der Kommutierung des Motors (M) dienenden programmgesteuerten Mikroprozessor oder Mikrocontroller (11), im folgenden Mikroprozessor genannt, mit einem Rotorlagegeber (40, 41), dessen Ausgangssignal zwecks Auswertung durch den Mikroprozessor (11) einem interruptfähigen Eingang dieses Mikroprozessors zugeführt und in diesem verarbeitet wird, um an mindestens einem Ausgang des Mikroprozessors ein gegenüber dem Signal des Rotorlagegebers (40, 41) um eine Verschiebungszeit verschobenes Steuerungssignal (OUT1 , OUT2) zur Kommutierung des Motors zu liefern, wobei die Dauer der Verschiebungszeit eine vorgegebene Funktion der Drehzahl ist. 26. Electronically commutated motor (M) having a stator (38), a rotor (39) and serving with one to control the commutation of the motor (M) program-controlled microprocessor or microcontroller (11), hereinafter referred to as microprocessor, having a rotor position encoder (40, 41) whose output signal for evaluation by the microprocessor (11) is fed to an interrupt-input of this microprocessor and processed therein to a relative to the signal of the rotor position sensor (40, 41) by a displacement time-shifted at least one output of the microprocessor to provide control signal (OUT1, OUT2) for commutation of the motor, the duration of the offset time is a predetermined function of rotational speed.
27. Elektronisch kommutierter Motor (M) nach Anspruch 26, bei welchem der Mikrocontroller (11) mindestens einen interruptfähigen Timer (CNTJHL) aufweist, mit dessen Hilfe der mindestens eine zur Ausgabe des Steuerungssignals dienende Ausgang des Mikroprozessors beeinflußt wird. 27. Electronically commutated motor (M) according to claim 26, wherein the microcontroller (11) at least one timer interrupt-(CNTJHL), by means of which the at least one serving for output of the control signal output of the microprocessor is affected.
28. Elektronisch kommutierter Motor (M) nach Anspruch 27, bei welchem der Timer (CNTJHL) bei einem bestimmten Zustand automatisch mit einem Wert (t_AR) nachgeladen und erneut gestartet wird. 28. Electronically commutated motor (M) according to claim 27, wherein the timer (CNTJHL) loaded in a particular state automatically with a value (t_AR) and is started again.
29. Elektronisch kommutierter Motor (M) nach Anspruch 26 oder 27, bei welchem der Mikroprozessor bei jedem Wechsel des Signals (HALL) des Rotorlagegebers (40, 41) einen Interrupt auslöst, und bei welchem Motor der Timer (CNTJHL) und die Interrupts zur Messung der HALL-Länge (HL) verwendet werden. 29. Electronically commutated motor (M) according to claim 26 or 27, wherein the microprocessor at each change of the signal (HALL) of the rotor position sensor (40, 41) triggers an interrupt, and in which motor the timer (CNTJHL) and interrupts measurement of the Hall length are used (HL).
Description  translated from German  (OCR text may contain errors)

Elektronisch kommutierter Motor Electronically commutated motor

Die Erfindung betrifft einen elektronisch kommutierten Motor, und insbesondere einen elektronisch kommutierten Motor mit einem "Vorzündwinkel". The invention relates to an electronically commutated motor, and in particular an electronically commutated motor with a "spark advance angle". Hierunter versteht man, daß die Kommutierung auf einen früheren Zeitpunkt verschoben wird, meist abhängig von der Drehzahl. This is understood that the commutation is shifted to an earlier date, usually depending on the speed. Selbstverständlich wird bei einem Elektromotor nichts "gezündet", aber wegen seiner Anschaulichkeit verwendet man in der Praxis gerne diesen (aus der Automobiltechnik entlehnten) Begriff und spricht deshalb von einer "Zündwinkelverschiebung". Of course, nothing is "fired" in an electric motor, but because of its clarity is used in practice like this (from the automotive technology borrowed) term and therefore speaks of an "ignition angle". Dieser Begriff wird deshalb nachfolgend verwendet, auch wenn er wissenschaftlich nicht völlig korrekt ist. This term will therefore be used hereinafter, even though it is scientifically not entirely correct.

Zum Stand der Technik The prior art

Elektronisch kommutierte Motoren mit Vorzündwinkel sind zB aus DE-A.197 00 479.2 (intern: D201 i) bekannt. Electronically commutated motors with spark advance angle are known eg from DE-A.197 00 479.2 (internal: D201 i) is known. Hierbei ist die Genauigkeit der Kommutierung für manche Fälle nicht ausreichend groß, und das Programm muß nach einem festgelegten Zeitschema ablaufen, was aufwendig ist und die Rechenleistung eines Prozessors in manchen Fällen nur unzureichend ausnutzt. Here, the accuracy of the commutation is not big enough for some cases, and the program must take place according to a fixed time schedule, which is complicated and poorly utilizes the computing power of a processor in some cases. Auch können die Kommutierungsvorgänge zeitlich etwas schwanken, was die Geräusche eines solchen Motors erhöht. The commutation can vary with time something that increases the noise of such a motor.

Es ist deshalb eine Aufgabe der Erfindung, einen neuen elektronisch kommutierten Motor, und ein Verfahren zum Betreiben eines solchen Motors, bereitzustellen. It is therefore an object of the invention to provide a new electronically commutated motor and a method for operating such a motor to provide.

Nach einem ersten Aspekt der Erfindung wird diese Aufgabe gelöst durch einen elektronisch kommutierten Motor gemäß dem Patentanspruch 1. Ein solcher Motor arbeitet besonders bei höheren Drehzahlen mit einem besseren Wirkungsgrad, weil die Kommutierung mit zunehmender Drehzahl immer mehr nach früh verschoben werden kann. According to a first aspect of the invention, this object is achieved by operating an electronically commutated motor according to the patent claim 1. Such a motor, especially at higher speeds with better efficiency, since the commutation can be moved with increasing speed to more and more early. Durch die Verwendung einer Interruptroutine ergibt sich eine zeitlich präzise Steuerung des Kommutierungsvorgangs und damit ein ruhiger Lauf des Motors. By using an interrupt routine results in a temporally precise control of the commutation and thus smooth running of the engine.

Eine andere Lösung der gestellten Aufgabe ergibt sich durch ein erfindungsgemäßes Verfahren gemäß dem Patentanspruch 11. Dadurch, daß anschließend an den Ablauf der ersten Zeit noch eine zweite Zeit gemessen wird, erhält man in sehr einfacher Weise durch Addition dieser beiden Zeiten, und ggf. eines Korrekturfaktors, eine zur Drehzahl des Motors im wesentlichen umgekehrt proportionale Zeitgröße, welche bei einem nachfolgenden Kommutierungsvorgang als aktualisierte Zeitgröße zur Berechnung eines neuen Zahlenwerts für die erste Zeit dienen kann. Another solution of the problem is obtained by an inventive method according to the patent claim 11, characterized in that, subsequently, a second time is measured at the end of the first time is obtained in a very simple manner by addition of these two times, and optionally one correction factor to a speed of the motor is substantially inversely proportional amount of time, which can serve as an updated time variable to compute a new speed value for the first time in a subsequent commutation. Dabei wird gemäß Patentanspruch 17 diese Zeitgröße bevorzugt für einen Kommutierungsvorgang verwendet, der eine Rotorumdrehung später als die Messung der ersten und der zweiten Zeit liegt, weil sich dann ein besonders ruhiger Lauf des Motors ergibt. In this case, this amount of time used in accordance with patent claim 17 preferably for a commutation operation, which is a rotor revolution later than the measurement of the first and the second time, because then results in a particularly smooth running of the engine. Wenn zB die Zeitgröße im Drehwinkelbereich 0° bis 180° el. gemessen wird, kann sie eine Umdrehung später die Basis für die Steuerung einer Kommutierung sein, die dort etwa im gleichen Winkelbereich 0° bis 180° el. stattfindet. For example, when measuring the amount of time in the rotation angle range of 0 ° to 180 ° el., it may be a revolution later be the basis for the control of a commutation that there approximately the same angle range 0 ° to 180 ° el. occur.

Auch wird in besonders bevorzugter Weise mindestens ein nicht zeitkritischer Verfahrensschritt als Unterroutine ausgebildet, welche im Programmablauf dann aufgerufen wird, wenn hierfür Prozessorzeit verfügbar ist. Also in a particularly preferred manner at least one non time-critical step is designed as a subroutine which is then called in the program sequence, if this processor time is available. Dies ermöglicht es, im Gegensatz zu einem Programm mit festem Zeitschema, die Ressourcen eines Prozessors optimal zu nutzen, da bei dieser Verfahrensweise die Unterroutine dann abgearbeitet wird, wenn der Prozessor sonst gerade nichts zu tun hat. This makes it possible, as opposed to a program with a fixed time schedule to leverage the resources of a processor because the subroutine is executed in this procedure, if the processor has nothing else to do now.

Weitere Einzelheiten und vorteilhafte Weiterbildungen der Erfindung ergeben sich aus den im folgenden beschriebenen und in den Zeichnungen dargestellten, in keiner Weise als Einschränkung der Erfindung zu verstehenden Ausführungsbeispielen, sowie aus den übrigen Unteransprüchen. Further details and advantageous refinements of the invention will become apparent from the hereinafter described and illustrated in the drawings, in no way to limit the invention to be understood embodiments, and from the remaining dependent claims. Es zeigt: It shows:

Fig. 1 eine beispielhafte Übersichtsdarstellung einer Ausführungsform der Erfindung, Fig. 1 shows an exemplary overview of one embodiment of the invention,

Fig. 2 die Pinbelegung des μC COP842CJ, Fig. 2 shows the pin assignment of the microcontroller COP842CJ,

Fig. 3 ein Schaltbild, welches die Bauteile für die Verarbeitung des Hallsignals zeigt, Fig. 3 is a circuit diagram showing the components for the processing of the Hall signal,

Fig. 4 eine Darstellung des Hallsignals und einer Kommutierung ohne Zündwinkelverschiebung, Fig. 4 is an illustration of the Hall signal and a commutation without ignition angle,

Fig. 5 eine schematische Darstellung zur Erläuterung der Berechnung eines Fig. 5 is a schematic diagram for explaining the calculation of a

(verfrühten) Kommutierungszeitpunkts TN aus Werten, die aus einem Signal HALL abgeleitet werden, (Premature) commutation instant TN from values, which are derived from a signal HALL,

Fig. 6A und 6B eine Darstellung der Berechnung der Hall-Länge, wenn kein Timer-Interrupt vorliegt, FIGS. 6A and 6B is a representation of the calculation of the Hall length when no timer interrupt is present,

Fig. 7A und 7B eine Darstellung der Berechnung der Hall-Länge bei Vorliegen eines Timer- Interrupts, FIGS. 7A and 7B an illustration of the calculation of the Hall length in case of a timer interrupts,

Fig. 8A und 8B ein Flußdiagramm einer Hall-Interruptroutine mit Zündwinkelverschiebung, Fig. 8A and 8B, a flowchart of a Hall interrupt routine with ignition angle,

Fig. 9 ein Flußdiagramm einer Zündwinkelberechnungsroutine, Fig. 9 is a flowchart of a Zündwinkelberechnungsroutine,

Fig. 10 ein Flußdiagramm einer Timer-Interruptroutine mit Zündwinkelberechnung Fig. 10 is a flowchart of a timer interrupt routine with ignition angle

Fig. 11 eine Darstellung des Hallsignals beim Hochlauf eines Motors, Fig. 11 is an illustration of the Hall signal during startup of an engine,

Fig. 12A und 12B eine Darstellung des Hallsignals und der zugehörigen Variablen der Antriebsfunktion, FIGS. 12A and 12B is a representation of the Hall signal and the associated variables of the drive function,

Fig. 13 ein Schaltbild mit Teilen, die für die Regelung und den Antrieb des elektronisch kommutierten Motors wichtig sind, Fig. 13 is a diagram showing parts which are important for the control and the drive of the electronically commutated motor,

Fig. 14 ein Schaltbild mit für die Ansteuerung eines EEPROMs und die Datenverbindung über einen Bus 30 wichtigen Teilen, Fig. 14 is a circuit diagram with major for controlling an EEPROM and the data connection via a bus 30 parts,

Fig. 15 eine Darstellung einer bevorzugten Ausführungsform eines Funktionsmanagers, Fig. 15 is a representation of a preferred embodiment of a function manager,

Fig. 16 ein in dem Funktionsmanager verwendetes Funktionsregister, Fig. 16 a used in the function manager function register,

Fig. 17 eine schematische Darstellung des Permanentmagneten eines vierpoligen Außenrotors, Fig. 17 is a schematic representation of the permanent magnet of a four-pole external rotor,

Fig. 18A und 18B FIG. 18A and 18B

Schaubilder zur Erläuterung der Wirkung von Magnetisierungsfehlern des Außenrotors der Fig. 17, Fig. 19 ein Flußdiagramm zur Zündwinkelberechnung, analog Fig. 9, aber in einer bevorzugten, modifizierten Form, Diagrams for explaining the effect of errors magnetization of the outer rotor of Fig. 17, Fig. 19 is a flowchart for the ignition angle calculation, analogous to FIG. 9, but in a preferred, modified form,

Fig. 20 ein Flußdiagramm einer Hall-Interruptroutine für eine Kommutierung, wie sie in Fig. 4 dargestellt ist, Fig. 20 is a flowchart of a Hall interrupt routine for commutation, as illustrated in Fig. 4,

Fig. 21 eine schematische Darstellung des Ablaufs der Kommutierung für den Fall, daß die Kommutierungszeitpunkte elektronisch nach früh verschoben werden, Fig. 21 is a schematic illustration of the sequence of commutation for the case in which the commutation times are shifted electronically by early

Fig. 22 den zeitlichen Verlauf des Signals HALL und des Stromes i_M in einer Motorwicklung ohne eine Verschiebung des Kommutierungszeitpunkts in Richtung früh, und Fig. 22 shows the time course of signal HALL and the current in a motor winding I_m without a shift of the commutation instant in the early direction, and

Fig. 23 den zeitlichen Verlauf des Signals HALL und des Stromes i_M in einer Motorwicklung bei einer Verschiebung des Kommutierungszeitpunkts in Richtung früh. Fig. 23 shows the time course of signal HALL and current I_m in a motor winding during a displacement of the commutation instant in the direction early.

Übersicht elektronisch kommutierter Motor (ECM) Fig. 1 zeigt eine Übersicht über ein bevorzugtes Ausführungsbeispiel eines erfindungsgemäßen elektronisch kommutierten Motors (ECM). Overview electronically commutated motor (ECM) Fig. 1 shows an overview of a preferred embodiment of an electronically commutated motor according to the invention (ECM). Dieser wird gesteuert mittels eines Mikrocontrollers (μC) 11 , oder alternativ eines Mikroprozessors. This is controlled by a microcontroller (.mu.C) 11, or alternatively, a microprocessor. Die Anschlüsse des beim Ausführungsbeispiel verwendeten μC 11 (COP842CJ) sind in Fig. 2 beispielhaft dargestellt. The connections of the microcontroller used in the embodiment 11 (COP842CJ) are exemplified in Fig. 2.

Das in dem μC 11 ablaufende Programm ist mit Hilfe eines Funktionsmanagers strukturiert, welcher nachfolgend anhand von Fig. 15 und 16 beschrieben wird. The program executing in the program .mu.C 11 is structured with the aid of a function manager, which will be described below with reference to Fig. 15 and 16.

Der μC 11 hat über die Funktion "CTL EEPROM" 24 Zugriff auf einen nichtflüchtigen Speicher, hier ein EEPROM 26, von dem er Betriebsparameter in ein RAM 25 laden kann. .mu.C 11 has the function "CTL EEPROM" 24 accessing a non-volatile memory, here an EEPROM 26 from which it can load the operating parameters in a RAM 25th Auch kann er Betriebsparameter im RAM 25 und im EEPROM 26 speichern. He also can store operating parameters in RAM 25 and the EEPROM 26th Der μC 11 kann über eine Kommunikationsfunktion COMM 28 und ein Businterface 30 Daten empfangen und senden. .mu.C 11 30 can receive data over a communication function COMM 28 and a bus interface and send. Die empfangenen Daten kann er zur Motorsteuerung verwenden oder im RAM 25 oder EEPROM 26 speichern. The received data he can use for engine control or the RAM 25 or EEPROM save 26th Das EEPROM 26 und das Businterface 30 sind bei Fig. 14 beschrieben. The EEPROM 26 and the bus interface 30 are described in Fig. 14. Als einfaches Beispiel ist in Fig. 1 ein elektronisch kommutierter Motor M mit einer einzigen Phase 38 dargestellt. As a simple example in Fig. 1, an electronically commutated motor M with a single phase 38 is shown. Ein solcher Motor ist zB in der DE 2 346 380 C dargestellt. Such a motor is shown for example in DE 2346380 C. Die Bestromung dieser Phase 38 geschieht durch eine Transistorendstufe 36. Die Ausgänge OUT1 und OUT2 des μC 11 steuern die als H-Brücke 37 geschalteten npn-Transistoren 141 , 142, 143 und 144. Je nachdem, ob OUT1 auf HIGH und OUT2 auf LOW gesetzt sind, oder umgekehrt, verläuft der Strom durch die Statorwicklung 38 in die eine oder die andere Richtung. The energization this stage 38 is done by a transistor amplifier 36. The outputs OUT1 and OUT2 of the microcontroller 11 control the connected as a H-bridge 37 NPN transistors 141, 142, 143 and 144. Depending on whether set to HIGH and LOW OUT1 OUT2 are, or vice versa, the current through the stator winding 38 extends in the one or the other direction. Selbstverständlich eignet sich die Erfindung in gleicher Weise für jede Art von elektronisch kommutiertem Motor, zB für dreiphasige Motoren und andere. Of course, the invention is equally suitable for every type of brushless motor, for example for three phase motors and others. Es handelt sich also nur um ein Ausführungsbeispiel. It is only an example.

Die Kommutierung erfolgt elektronisch. The commutation is done electronically. Hierzu wird die Stellung des permanentmagnetischen Rotors 39 über einen Hallsensor 40 erfaßt, über eine elektronische Hall-Schaltung 41 , welche in Fig. 3 näher beschrieben wird, zu einem Signal HALL aufbereitet und an eine Antriebsfunktion AF 42 weitergeleitet, welche eine Hall-Interruptroutine HIR (Fig. 8), eine Timer-Interruptroutine TIR (Fig. 10), eine Zündwinkelberechnungsroutine ZWR (Fig. 9), und einen Timer CNTJHL aufweist. For this purpose, the position of the permanent magnet rotor 39 is detected by a Hall sensor 40, processed by an electronic Hall circuit 41 which will be described in more detail in Fig. 3 a HALL signal and transmitted to a drive function AF 42 which HIR a Hall interrupt routine (FIG. 8), a timer interrupt routine TIR (Fig. 10), a Zündwinkelberechnungsroutine ZWR (Fig. 9), and a timer CNTJHL. Der Timer CNT_HL ist beim Ausführungsbeispiel Bestandteil des verwendeten μC 11 , könnte aber auch ein separates Bauteil sein. The timer is CNT_HL the embodiment part of the microcontroller 11 used, but could also be a separate component. Er dient dazu, Zeiten mit hoher Präzision zu messen und ist durch Befehle des μC 11 steuerbar. It is used to measure time with high precision and can be controlled by commands of the microcontroller. 11

Die Antriebsfunktion 42 sorgt für die richtige Kommutierung der Transistorendstufe 36 und den sicheren Betrieb, zB bei Überlastung der Transistorendstufe 36. Eine Kommutierung ohne Zündwinkelverschiebung wird bei Fig. 4 beschrieben. The drive function 42 ensures the correct commutation of the transistor output stage 36 and the safe operation, for example in case of overload of the output stage transistor 36. A commutation without ignition angle will be described in Fig. 4. Die Kommutierung mit Zündwinkelverschiebung wird bei den Fig. 6 bis 12B beschrieben und ist in Fig. 21 dargestellt. The commutation angle shift will be described in FIGS. 6 to 12B, and is illustrated in Fig. 21.

Ein Drehzahlregler RGL 43 regelt beim Ausführungsbeispiel die Motordrehzahl. A speed controller RGL 43 regulates the engine speed in the embodiment. (Selbstverständlich kann der Motor M auch ohne Drehzahlregler 43 betrieben werden.) Die Drehzahlregelung kann zB mittels eines Pulsweitenmodulation- Generators (PWM-Generators) 34 oder über eine Blocksteuerung geschehen, die bei 60 mit gestrichelten Linien schematisch angedeutet ist. (Of course, the motor M can also be operated without a speed regulator 43). The speed control can for example be done 34 or a block controller which is schematically indicated at 60 with dashed lines by means of a pulse width modulation generator (PWM generator). Zur Blocksteuerung wird beispielhaft auf DE 444 1 372.6 (intern: D183i) verwiesen, die ein Beispiel einer solchen Blocksteuerung zeigt. In order to block control (internal: D183i) of example to DE 444 1 372.6 referenced showing an example of such control block. Der PWM-Generator 34 weist einen Dreiecksgenerator 35, eine Regelspannungserzeugung 45 und einen Komparator 120 auf und ist bei Fig. 13 näher erläutert. The PWM generator 34 includes a triangle generator 35, a control voltage generator 45 and a comparator 120, and is explained in more detail in Fig. 13. Die Erfindung kann selbstverständlich auch bei einem ECM ohne Drehzahlregelung verwendet werden. The invention can of course be used even if the ECM without speed control.

Eine Strombegrenzung "I < l max " 44 vermindert die Bestromung der Endstufe 36, falls der Strom in der einzigen Phase 38 zu hoch wird, zB beim Start des Motors. A current limit "I <l max" 44 reduces the energization of the output stage 36, if the current in the single phase 38 becomes too high, for example at the start of the engine. Die Strombegrenzung 44 wird bei Fig. 13 näher beschrieben. The current limit 44 will be described in more detail in Fig. 13.

Am Ende der Beschreibung sind für die in den einzelnen Figuren des Ausführungsbeispiels verwendeten elektronischen Bauteile bevorzugte Werte angegeben. At the end of the description of preferred values are reported for those used in the individual figures of the embodiment of the electronic components. Der Leser wird hierauf verwiesen. The reader is referred to this.

Fig. 2 zeigt die Pinbelegung des beim Ausführungsbeispiel verwendeten Mikrokontrollers (μC) 11 vom Typ COP842CJ der Firma National Semiconductors. Fig. 2 shows the pin of the microcontroller used in the embodiment (.mu.C) 11 of the type COP842CJ from National Semiconductors. Die Beschriftung innerhalb des μC 11 entspricht der Beschriftung des Herstellers, die äußere Beschriftung der jeweiligen Leitungen zeigt die hauptsächlich in der Anmeldung verwendeten Bezeichnungen. The label within the .mu.C 11 corresponds to the label of the manufacturer, the outer label of the respective lines shows the designations used primarily in the application. Zur Kennzeichnung der Lage ist links oben ein schwarzer Viertelkreis eingezeichnet, der sich in den folgenden Figuren wiederfindet. To identify the position of a black quarter circle is drawn in the upper left corner, who finds himself in the following figures.

Fig. 3 zeigt ein detailliertes Schaltbild der Bauteile für die Hall-Schaltung 41 , welche das Signal des Hall-Sensors 40 aufbereitet, die Beschaltung der Takteingänge CKO und CK1 und die Beschaltung des Reseteingangs RES. Fig. 3 shows a detailed circuit diagram of the components for the Hall circuit 41 which processes the signal of the Hall sensor 40, the circuitry of the clock inputs CKO and CK1 and the wiring of the reset input RES. Die übrigen Bauteile sind in Fig. 3 nicht dargestellt. The other components are not shown in Fig. 3.

Ein Schwingquarz 97, der an die Anschlüsse CKO und CK1 (vgl. Fig. 3) des μC 11 angeschlossen ist, gibt dessen Taktfrequenz vor, zB 10 MHz. A quartz oscillator 97 which is connected to the terminals CKO and CK1 (see. Fig. 3) of the microcontroller 11, dictates its clock frequency, for example 10 MHz. Der Reseteingang Res (Fig. 3) ist über einen Kondensator 99 mit Masse 100 und über einen Widerstand 101 mit +Vcc verbunden. The reset input Res (Fig. 3) is connected via a capacitor 99 to ground 100 and through a resistor 101 to + Vcc. Diese beiden Bauelemente erzeugen in der üblichen Weise beim Einschalten einen Power-Up-Reset. These two elements create a power-up reset in the usual way when turning.

Der Hallgenerator 40 ist zur Stromversorgung über einen Widerstand 106 mit + Vcc, und mit Masse 100, verbunden. The Hall generator 40 is connected to the power supply through a resistor 106 to + Vcc and ground 100th Sein Ausgangssignal UH wird den beiden Eingängen eines Komparators 108 zugeführt, dessen Vcc-Eingang ein Siebkondensator 110 zugeordnet ist. Its output signal UH is fed to the two inputs of a comparator 108 whose Vcc input is associated with a filter capacitor 110th Der Ausgang des Komparators 108 ist über einen Rückführwiderstand 112 mit dem positiven Eingang des Komparators 108 und über einen sogenannten Pullup-Widerstand 114 mit +Vcc verbunden. The output of comparator 108 is connected through a feedback resistor 112 to the positive input of the comparator 108 and a so-called pull-up resistor 114 to + Vcc. Weiterhin ist der Ausgang des Komparators 108 direkt mit dem Port Hall (Fig. 3) des μC 11 verbunden, so daß man an diesem ein vom Rotormagneten 39 (Fig. 2) gesteuertes, rechteckförmiges Signal HALL erhält. Further, the output of the comparator is connected directly to the port 11108 Hall (Fig. 3) of the microcontroller, so as to obtain controlled at this one from the rotor magnet 39 (Fig. 2), square-wave signal HALL.

Das Signal des Hall-Sensors 40, und die Kommutierung Fig. 4 zeigt ein Diagramm mit dem Signal HALL (Fig. 3) und der zugehörigen Kommutierung für den Fall, daß keine "Zündwinkelverschiebung" verwendet wird, dh daß die Kommutierung direkt durch das Signal HALL gesteuert wird. The signal of the Hall sensor 40, and the commutation of Fig. 4 shows a diagram with the signal HALL (Fig. 3) and the corresponding commutation in the event that no "ignition angle" is used, that is, the commutation directly by the signal HALL is controlled.

Das Signal HALL hat - in seiner idealisierten Form - während einer Rotordrehung von 180° el. den Wert HALL = 0, und während der anschließenden Drehung von 180° el. den Wert HALL = 1. Jede Änderung von HALL = 1 zu HALL = 0, oder umgekehrt, bewirkt einen Interruptvorgang im μC 11 , welcher in Fig. 4 in der Reihe HALL-INT mit einem Y bezeichnet ist. The signal HALL has - in its idealized form -.. = During a rotor rotation of 180 ° el value HALL = 0, and during the subsequent rotation of 180 ° el value HALL 1. Any change of HALL = 1 to HALL = 0 or, conversely, an interruption is effected in .mu.C 11, which is designated in FIG. 4 in series with a HALL-INT Y.

Die Zeit zwischen zwei Hallwechseln, zB zwischen den Zeitpunkten t_0 und t_E, wird nachfolgend Hall-Länge HL oder auch Hallzeit t_H genannt und ist in Fig. 4 als Ist-Hall-Länge HL eingezeichnet. The time between two Hall changes, for example between the points in time t_0 t_E and is hereinafter called Hall length HL or Hall t_H time and is shown as an actual Hall length HL in Fig. 4. Die Hall-Länge ist ein Maß für die Drehzahl des Motors. The Hall length is a measure of the speed of the motor. Je kleiner sie ist, desto größer ist die Drehzahl des Rotors 39 (Fig. 1). the rotational speed of the rotor is, the smaller it is, the larger 39 (Fig. 1). (Ein Istwert ist der aktuelle Wert, der am Motor gemessen wird.) (An actual value is the current value which is measured on the motor.)

Die Bestromung der Statorwicklungen wird bei diesem Beispiel durch die Ausgangssignale OUT1 und OUT2 des μC 11 (Fig. 1 und 2) gesteuert, welche in Fig. 4 beispielhaft für den Betrieb bei niederen Drehzahlen angegeben sind und in Fig. 21 beschrieben werden. The energization of the stator windings is controlled in this example by the output signals OUT1 and OUT2 of the microcontroller 11 (Fig. 1 and 2) which are 4 exemplified for operation at low speeds in FIGS. And described in Fig. 21.

Ist OUT1 auf 1 (HIGH) und OUT2 auf 0 (LOW), so fließt der Strom (Fig. 1) von der Plusspannung UN über den Transistor 144, die Statorwicklung 38, den Transistor 141 und den Meßwiderstand 140 nach Masse. the current (Fig. 1) is OUT1 to 1 (HIGH) and OUT2 to 0 (LOW), then flows from the positive voltage UN via the transistor 144, the stator winding 38, the transistor 141 and sense resistor 140 to ground.

Ist dagegen OUT1 auf 0 und OUT2 auf 1 , so fließt der Strom (Fig. 1) von der Plusspannung UN über den Transistor 142, in umgekehrter Richtung durch die Statorwicklung 38, über den Transistor 143 und den Meßwiderstand 140 nach Masse. the current (Fig. 1), however, is OUT1 and OUT2 to 0 to 1, flows from the positive voltage UN via the transistor 142, in the reverse direction through the stator winding 38, through transistor 143 and sense resistor 140 to ground. Die Statorwicklung 38 wird dann umgekehrt bestromt. The stator coil 38 is then energized vice versa. Wenn keine Zündwinkelverschiebung vorgenommen wird, werden dort, wo sich das Signal HALL ändert, also bei den Hall-Interrupts Y, beide Werte OUT1 und OUT2 durch den μC 11 kurzzeitig zu Null gemacht, zB während 50 μs, um alle vier Transistoren 141 bis 144 kurzzeitig zu sperren und einen Kurzschluß in der Brücke 37 zu vermeiden. If no ignition angle is carried out, are where the signal HALL varies, ie at the Hall interrupts Y, both values taken OUT1 and OUT2 briefly to zero by the .mu.C 11, for example, during 50 microseconds to all four transistors 141 to 144 a short time to lock and prevent a short circuit in the bridge 37th Dies ist in Fig. 4 dargestellt. This is illustrated in Fig. 4.

Eine einfache Hall-Interruptroutine für die Kommutierung gemäß Fig. 4 wird nachfolgend bei Fig. 20 beschrieben. A simple Hall interrupt routine for commutation according to Fig. 4 will be described below in Fig. 20.

Zusammenhang zwischen Drehzahl und Hall-Länge Relationship between speed and Hall length

Die Hall-Länge HL ist in Fig. 4 dargestellt. The Hall length HL is shown in Fig. 4. Ihr Zusammenhang mit der Drehzahl n wird im folgenden aufgezeigt. Your connection with the speed n is shown below. Dieser Zusammenhang ist eine Funktion der Polzahl P des Rotors 39. This relationship is a function of the number of poles P of the rotor. 39

Mißt man die Hall-Länge HL' in Sekunden, so gilt If one measures the Hall length HL 'in seconds, applies

HL' = T/P ...(1) HL '= T / P ... (1)

Hierbei bedeuten: Where:

T = Dauer einer Rotorumdrehung in Sekunden T = duration of a rotor revolution in seconds

P = Polzahl des Rotors 39. P = number of poles of the rotor. 39

Mißt man die Drehzahl n in U/min, so gilt If one measures the speed n in U / min, the following applies

HL' = 60/(nx P) ...(2) HL '= 60 / (nx P) ... (2)

Hierbei bedeuten n = Drehzahl in U/min Here, n = rotational speed in rpm mean /

P = Polzahl des Rotors 39 P = number of poles of the rotor 39

Da die Hall-Länge HL beim Ausführungsbeispiel in μs vorliegt, HL' aber in Sekunden, wird HL' zu HL renormiert Since the Hall length HL is present in the embodiment in microseconds, HL 'but in seconds, HL' is renormalized to HL

HL = 1 000 000 HL' ...(3) HL = 1 million HL '... (3)

Für P = 4, also einen vierpoligen Rotor, ergibt sich For P = 4, that is a four-pole rotor, resulting

HL = 15 000 000/n ...(4) HL = 15 000 000 / n ... (4)

Umgekehrt ist bei P = 4 n = 15 000 000/HL ...(5) Conversely, if P = 4 n = 15 000 000 / HL ... (5)

Hierbei bedeuten: n = Drehzahl in U/min Where: n = speed in U / min

HL = Hall-Länge in μs HL = Hall length in microseconds

Der Drehzahl n = 2870 min " i entspricht zB bei einem vierpoligen Rotor eine Hall- Länge HL von The rotational speed of n = 2870 min "i corresponds to, for example, in a four-pole rotor a Hall length HL of

HL = 15 000 000/ 2870 = 5226 μs. HL = 15 000 000/2870 = 5226 microseconds.

Die prozessorinterne Hexadezimaldarstellung hierfür ist 0x146A. The processor internal hexadecimal representation of this is 0x146A. (Hexadezimalzahlen werden durch ein vorangestelltes Ox gekennzeichnet.) (Hexadecimal numbers are identified by the prefix Ox.)

Die Zündwinkelverschiebung the ignition angle

Beim Motor nach Fig. 1 ist der Rotorstellungssensor 40 in einer Pollücke des Stators angeordnet, also bei 0 ° el., und ein Wechsel des Signals HALL wird folglich erzeugt bei 0 ° el., 180 ° el., 360 ° el. etc., wie in Fig. 4 beispielhaft dargestellt. In the motor according to Fig. 1, the rotor position sensor 40 is arranged in a pole gap of the stator, that is at 0 ° el., And a change in the HALL signal is thus produced at 0 ° el., 180 ° el., 360 ° el., Etc. , as exemplified in Fig. 4. Für eine solche Anordnung des Hallgenerators wird beispielhaft verwiesen auf DE-A, 197 00 479.2 (intern: D201 i), Fig. 1 , Teil 25. For such an arrangement of the Hall generator is exemplarily made to DE-A 197 00 479.2 (internal: D201 i), Figure 1, part 25..

Bei schnellaufenden Motoren ist es jedoch zur Optimierung der Leistung und des Wirkungsgrads notwendig, die Kommutierung des Stroms in der Statorwicklung 38 vor dem Wechsel des Hallsignals durchzuführen, also in Fig. 4 zeitlich vor t_0, ebenso zeitlich vor t_E. In high-speed engines, however, it is to optimize the performance and efficiency necessary to perform the commutation of the current in the stator winding 38 before the change of the Hall signal, so in Fig. 4 temporally before t_0, just in time before t_E. Man kann das als Vorzündung oder Frühzündung bezeichnen. One can call it a pre-ignition or spark. Hierzu wäre es möglich, den Rotorstellungssensor 40 relativ zum Stator des Motors 39 zu verschieben. For this purpose, it would be possible to move the rotor position sensor 40 relative to the stator of the motor. 39 Da der Motor aber meist in beiden Richtungen laufen soll, und der Vorzündwinkel bei beiden Drehrichtungen mit zunehmender Drehzahl zunehmen soll, ist dies nicht praktikabel. However, since the motor is to run in both directions often, and the angle of advance is expected to increase in both directions of rotation with increasing speed, this is not practical.

Die Zündwinkelverschiebung wird deshalb elektronisch gesteuert. The ignition angle is therefore controlled electronically. Hierzu wird der bereits beschriebene 16 Bit-Timer CNT_HL (Fig. 1) verwendet. For this, the previously described 16-bit timer CNT_HL (FIG. 1). Der Timer CNTJHL wird bei jedem Hall-Interrupt Y mit einem (zuvor berechneten) Anfangswert t_TI geladen und anschließend heruntergezählt, bis er den Wert 0 erreicht. The timer CNTJHL is loaded every Hall interrupt Y with a (previously computed) t_TI initial value and then counted down until it reaches 0. Beim Erreichen der Null löst der Timer CNT_HL im μC 11 einen sogenannten Timer- Interrupt aus, und der Timer wird automatisch mit dem Inhalt t_AR eines sogenannten Autoreload-Registers AR (ebenfalls im μC 11) nachgeladen und erneut gestartet, vgl. Upon reaching zero, the timer CNT_HL dissolves in .mu.C 11 a so-called timer interrupt, and the timer is automatically with the content t_AR a so-called auto reload register AR (also in .mu.C 11) loaded and started again, see FIG. S302 in Fig. 10. S302 in Fig. 10.

Bei einem Hall-Interrupt Y wird der Timer CNT_HL nun so eingestellt, daß er zu dem Zeitpunkt die Null erreicht und dadurch einen Interrupt auslöst, zu dem die Kommutierung stattfinden soll. In a Hall interrupt Y, the timer CNT_HL is now adjusted so that it reaches at the time zero and thereby triggers an interrupt at which the commutation is to take place. Dieser Timer-Interrupt wird in Fig. 5 mit TN, TN+I etc. bezeichnet, und ein Hall-Interrupt mit HN, HN +1 etc. This timer interrupt is designated in Fig. 5 with TN, TN + I, etc., and a Hall interrupt with HN, HN +1 etc.

Die Arbeitsweise des Timers ist durch den verwendeten μC vorgegeben, der diesen Timer enthält. The operation of the timer is set by the used .mu.C containing this timer. Dabei ist ggf. die Möglichkeit gegeben, den Timer über ein Register des μC zu konfigurieren. The possibility is given, if necessary, to set the timer on a register of the microcontroller. Mögliche Konfigurationen betreffen zB das Auslösen eines Interrupts beim Erreichen der 0, oder automatisches Wiederaufladen des Timers bei Erreichen der 0. for example, possible configurations involving the trigger an interrupt when it reaches the 0, or automatic recharging of the timer when it reaches the 0th

Zusätzlich wird hier der Timer CNTJHL in sehr vorteilhafter Weise für die Messung der Hall-Länge HL (Fig. 4) verwendet, die in Fig. 5 mit t_HN bezeichnet ist. In addition, the timer CNTJHL is used herein in a very advantageous manner for measuring the Hall length HL (FIG. 4), which is referred to in Fig. 5 with t_HN.

Fig. 5 zeigt die Berechnung des Timerstartwerts t_TI. Fig. 5 shows the calculation of the timer start value t_TI. Dargestellt sind das Signal HALL, das an dem Eingang Hall (Fig. 2) des μC 11 anliegt, die Hall-Interrupts HN-I , HN etc., die Timer-Interrupts TN-I , T etc. und die Hall-Längen UHN-I , HN etc., welche beim Ausführungsbeispiel die Zeit angeben, die der vierpolige Rotor 39 für eine Viertels-Umdrehung benötigt, also für 180° el.. Shown signal HALL, which at the input Hall (Fig. 2) of the microcontroller are applied 11, the Hall interrupts HN-I, HN etc., the timer interrupts TN-I, T, etc., and the Hall lengths UHN -I, HN etc., which indicate the time in the embodiment, which uses the four-pole rotor 39 for a quarter of a revolution, ie for 180 ° el ..

Die Begriffe Hall-Länge HL und Hallzeit t_H werden im folgenden synonym verwendet. The terms Hall length HL and Hall time t_H are used synonymously. Eine Hallzeit MHN+I beginnt jeweils nach und exklusive einem Hall- Interrupt H und endet mit und inklusive dem folgenden Hall-Interrupt HN+I - Die Hall- und Timer-Interrupts werden nach der Hallzeit, in der sie stattfinden, numeriert. A reverb time MHN + I begins after and exclusive a Hall interrupt H and ends with and including the following Hall interrupt HN + I - The reverb and timer interrupts are after the Hall time in which they take place numbered. Zur Hallzeit LHN gehört also der Timer-Interrupt T und - am Ende dieser Zeit - der Hall- Interrupt HN- at the end of this time - - so the timer interrupt T and belongs to the Hall time LHN the Hall interrupt HN

Unter dem Signal HALL sind in Fig. 5 die Werte des Timers CNT_HL eingetragen. Under the HALL signal the values of the timer CNT_HL are entered in Fig. 5. Zwischen den jeweiligen Werten zählt der Timer CNTJHL herunter, zB im Zeitraum 310 von t_TI auf 0, und im Zeitraum 312 von t_TI auf t_E. Between the respective values of the timer counts down CNTJHL, including the period of 310 t_TI to 0, and in the period from 312 to t_TI t_E.

Der Timerstartwert t_TI für die Hallzeit ._HN+2 wird bei diesem Beispiel aus der Hall- Länge MH berechnet. The timer starting value for the Hall t_TI time ._HN + 2 is calculated MH in this example of the Hall length. Hierzu wird, wie bei 300 symbolisch angegeben, während der Hallzeit I_HN+I ein Wert t_TI berechnet nach der Beziehung t_TI := t_H N - t_ZW ...(6) dh von der Hall-Länge UHN wird eine (hier konstante) Zündwinkelzeit t_ZW abgezogen. For this purpose, it is indicated symbolically at 300, while the Hall time I_HN + I t_TI a value calculated according to the relation t_TI: = t_H N - t_ZW ... (6) that is of the Hall length UHN a (constant here) Zündwinkelzeit t_ZW deducted. Analog wird t_TI für die Hallzeit I_HN+3 aus der Hall-Länge L HN+I berechnet, wie bei 301 symbolisch angegeben, usw. Analog t_TI is indicated symbolically for the Hall time I_HN + 3 from the Hall length L HN + I is calculated, as at 301, etc.

Auf diese Weise wird also zu den Zeitpunkten TN, TN+I , TN+2 etc kommutiert. In this manner, TN + 2 is at times TN, TN + I, commutes etc. TN liegt etwa um die Zeit t_ZW früher als H N , dh die Kommutierung wird nach früh verschoben. TN is earlier than H N about the time t_ZW, that the commutation is shifted early. Analog liegt TN+I früher als H +I , etc. Die Zeitpunkte TN, TN+1 etc sind durch einen nach oben ragenden Pfeil angedeutet. Analogously, TN + I earlier than H + I, etc. The time points TN, TN + 1, etc. are indicated by an upward arrow.

Nachfolgend wird anhand der Fig. 17 bis 19 beschrieben, wie bei einem vierpoligen Rotor 39 in sehr vorteilhafter Weise zB der Kommutierungszeitpunkt T N+4 durch die zeitlich vorhergehende Hall-Länge t_HN bestimmt werden kann, was einen besonders ruhigen Lauf des Motors ergibt. The following describes 17 to 19, as in a four-pole rotor 39 in a very advantageous manner, for example, can be determined by prior Hall length t_HN 4, which gives a particularly quiet motor of the commutation time T N + reference to FIGS.. Diese Variante ist in Fig. 5 mit 304 bezeichnet und durch die strichpunktierten Linien 306, 308 symbolisiert. This variant is referred to in Fig. 5 at 304 and symbolized by the dash-dotted lines 306, 308. Bei einem sechspoligen Rotor würde analog der Kommutierungszeitpunkt TN+6 durch die Hall- Länge t_HN bestimmt werden. In a six-pole rotor, the commutation time TN + 6 by the reverberation length t_HN would be determined analogously.

Fig. 6 und Fig. 7 zeigen die beiden möglichen Fälle, die bei der Messung der Hall- Längen t_H mit dem Timer CNTJHL auftreten können. Fig. 6 and Fig. 7 show the two possible cases that can t_H lengths with the timer CNTJHL occur in the measurement of the Hall.

Dargestellt sind das Signal HALL, das an dem Eingang Hall (Fig. 2) des μC 11 anliegt, die Hall-Interrupts HN und HN+I , ein Timer-Interrupt T +I (in Fig. 7), und an der Zeitachse stehen in Fig. 7A die Startwerte t_B und die Stoppwerte t_E des Timers CNTJHL, die bei der Berechnung der Hall-Länge LH +I , die ja erst während der folgenden Hallzeit UHN+2 ausgeführt wird, zur Verfügung stehen. Shown signal HALL, which at the input Hall (Fig. 2) of the microcontroller are applied 11, the Hall interrupts HN and HN + I, a timer interrupt T + I (in Fig. 7), and stand on the time axis in Fig. 7A, the start values t_B and the stop values of the timer t_E CNTJHL that are in the calculation of the Hall length LH + I, which is so carried out only during the following decay time UHN + 2, are available. t_B entspricht dem (zuvor berechneten) Startwert t_TI des Timers CNTJHL beim Hall-Interrupt HN und t_E dem Stoppwert des Timers CNTJHL beim Hall-Interrupt HN+I . t_B corresponds to the (previously calculated) starting value of the timer t_TI CNTJHL when Hall interrupt HN and t_E the stop value of the timer when CNTJHL Hall interrupt HN + I.

Es können nun zwei Fälle auftreten. There are now two cases occur.

Der erste Fall (Fig. 6) ist, daß der Motor so stark beschleunigt, daß der Hall-Interrupt HN+I auftritt, bevor der Timer CNTJHL den Wert 0 erreicht. is the first case (Fig. 6), in that the motor is accelerated to such an extent that the Hall interrupt HN I + occurs before the timer reaches the value 0 CNTJHL. In diesem Fall wird in der durch den Hall-Interrupt HN+I ausgelösten Hall-Interruptroutine der Stoppwert des Timers CNTJHL in t_E gespeichert (S202 in Fig. 8A), der Motor wird kommutiert, der Timer CNTJHL und das Autoreload-Register AR werden erneut mit einem aus der Hall-Länge UHN-I berechneten Wert (Fig. 5) geladen, und der Timer CNT_HL wird erneut gestartet (S238 in Fig. 8B). In this case the stop value of the timer CNTJHL (S202 8A in Fig.) Is in the by the Hall interrupt HN + I induced Hall interrupt routine stored in t_E, the motor is commutated, the timer CNTJHL and the auto reload register AR are again loaded with a value calculated from the Hall length UHN-I value (Fig. 5), and the timer CNT_HL is restarted (S238 in Fig. 8B). Bei Fig. 6 tritt also während der Hallzeit HH +I kein Timer-Interrupt TN+I auf. In FIG. 6, thus no timer interrupt TN + I occurs during the Hall time HH + I.

Die Hall-Länge HH +I berechnet sich in diesem Fall nach der Beziehung t_H N+ ι := t_B - t_E + t_CORR ...(7) t_CORR ist hierbei ein Korrekturwert, der in Fig. 9 bei S258 näher erläutert wird und in Fig. 6B dargestellt ist. The Hall length HH + I is calculated in this case, according to the relation t_H N + ι: = t_B - t_E + t_CORR ... (7) t_CORR here is a correction value, which is explained in more detail in Figure 9, at S258 in FIG. is shown. 6B.

Der zweite Fall (Fig. 7A) ist, daß der Timer CNTJ-IL vor dem Auftreten des Hall- Interrupts H +I die 0 erreicht. is the second case (Fig. 7A) that the timer CNTJ-IL achieved before the occurrence of the Hall interrupts H + I containing 0. Beim Erreichen der Null wird ein Timer-Interrupt T +I ausgelöst, der in Fig. 10 dargestellt ist. Upon reaching zero, a timer interrupt is triggered T + I, which is shown in Fig. 10. Der Timer CNTJHL wird beim Timer-Interrupt T +I automatisch mit dem Wert t_AR aus dem Autoreload-Register AR (Fig. 1) nachgeladen und erneut gestartet, vgl. The timer is CNTJHL when timer interrupt T + I automatically with the value from the car t_AR reload register AR (Fig. 1) and reloaded started again, see FIG. S302 in Fig. 10. t_B hat hier den gleichen Wert wie t_TI und entspricht damit auch t_AR. S302 in Fig. 10. t_B here has the same value as t_TI and thus corresponds to t_AR.

Dies zeigt Fig. 7B. This is shown in FIG. 7B. In der Zeitspanne ab einem Zeitpunkt kurz nach HN bis T +I zählt der Timer CNTJHL von t_B auf 0 herunter und löst beim Wert 0 den Timer-Interrupt TN+I aus. In the period from a time shortly after HN to T + I, the timer CNTJHL of t_B to 0 counts down and dissolves the value 0 the timer interrupt TN + I made. Am Anfang dieses Interrupts wird der Timer CNTJHL erneut mit t_B geladen, vgl. At the beginning of this interrupt the timer CNTJHL is reloaded with t_B, see. Fig. 10, S302, und zählt dann während der Zeit bis HN+1 erneut herunter, erreicht dabei aber nicht den Wert 0, sondern nur den Wert t_E. FIG. 10, S302, and then counts during the time until HN + 1 down again, but does not reach it to 0, but only the value t_E. Beim Hall-Interrupt HN+1 wird der Timer CNTJHL erneut mit einem (zuvor berechneten) Wert t_B' geladen, und die ganze Prozedur wiederholt sich. When Hall interrupt HN + 1, the timer is CNTJHL again with a (previously calculated) value t_B loaded ', and the whole procedure is repeated.

In der durch das Auftreten des Timer-Interrupts TN+I aufgerufenen Timer- Interruptroutine wird, sofern die Zündwinkelverschiebung eingeschaltet ist, die Kommutierung durchgeführt, vgl. In the invoked by the occurrence of the timer interrupt TN + I timer interrupt routine is provided that the ignition angle is on, carried out commutation, see FIG. Fig. 10, S318, S320, S322, und ein Flag KD (Kommutierung Durchgeführt) wird auf 1 gesetzt, vgl. Fig. 10, S318, S320, S322, and a flag KD (commutation performed) is set to 1, see FIG. Fig. 10, S324. Fig. 10, S324.

Bei dem darauffolgenden Hall-Interrupt HN+I wird der Timer CNTJHL erneut gestoppt und seine Endzeit t_E abgespeichert, vgl. At the subsequent Hall interrupt HN + I CNTJHL the timer is stopped again and his last days t_E saved, see. Fig. 8A, S202. Fig. 8A, S202. Die Hall-Länge UHN+I (Fig. 7) wird aufgrund des gesetzten Flags KD (Fig. 9, S252) in den Schritten S254 und S258 von Fig. 9 folgendermaßen berechnet: The Hall length UHN + I (FIG. 7) is calculated in steps S254 and S258 of Figure 9 as follows due to the set flag KD (Fig 9, S252.).:

t_1 := t_B - t_E ...(8) t_H N+ ι := t_B + 1_1 + t_CORR ...(9) t_1: = t_B - t_E ... (8) t_H N + ι: = t_B + 1_1 + t_CORR ... (9)

Hierbei ist t_1 die Zeit zwischen dem Timer-Interrupt TN+I und dem Hall-Interrupt HN+I , wie in Fig. 7 dargestellt. Here, t_1 the time between the timer interrupt TN + I and the Hall interrupt HN + I, as illustrated in Fig. 7. Für die Berechnung der Hall-Länge UHN+I muß zu dem Wert t_1 der Wert t_B addiert werden, da der Timer CNTJHL zwischen dem Hall-Interrupt H und dem Timer-Interrupt TN+I diesen Wert auf Null heruntergezählt hat. For the calculation of the Hall length UHN + I must be added to the value of the value t_1 t_B, since the timer CNTJHL between the Hall interrupt H and the timer interrupt TN + I this value has counted down to zero. Außerdem wird ggf. ein Korrekturwert t_CORR addiert, der in Fig. 7B dargestellt ist, zB 40 μs beträgt und nachfolgend bei Fig. 9, S258, näher erläutert wird. In addition, a correction value t_CORR is optionally added, which is shown in Fig. 7B, for example, is 40 microseconds and is further explained below in FIG. 9, S258. Nach dem Hall- Interrupt H N+ ι und einer Drehzahlberechnung (S274 in Fig. 9) muß das Flag KD wieder zurückgesetzt werden (KD := 0, vgl. S272 in Fig. 9). (: See S272 in Fig 9 = 0. KD.) According to the Hall interrupt H N + ι and a speed calculation (. S274 in Figure 9), the flag KD must be reset.

Zahlenbeispiel zu Fig. 7 Numerical example of FIG. 7

Bei HN wird der Timer CNTJHL zB auf den (zuvor im Schritt 303 der Fig. 5 berechneten) Wert t_TI = t_B = 9800 gesetzt. HN at the timer value = CNTJHL is set t_TI t_B = 9800, for example, (previously calculated in step 303 of FIG. 5) to the. t_B hat also bei der Berechnung den Wert 9800 μs. So t_B has 9800 microseconds when calculating the value. Bei T N+ ι hat der Timer CNTJHL den Wert 0 erreicht, bewirkt einen Timer-Interrupt, und wird erneut mit 9800 geladen und gestartet (S302 in Fig. 10). T N + ι the timer CNTJHL has reached the value 0, causes a timer interrupt, and is again loaded with 9800 and started (S302 in Fig. 10). Bei H N+ ι hat der Zähler CNTJHL den Wert t_E = 9640 erreicht. In H N + ι the counter has the value CNTJHL t_E = accomplished 9640th Der Wert t_CORR soll 40 μs betragen. The value t_CORR should be 40 microseconds. Dann ist nach den Gleichungen (8) und (9) Then, according to equations (8) and (9)

t_1 := 9800 - 9640 = 160 μs t_H N+ ι := 9800 + 160 + 40 = 10000 μs t_1: = 9800-9640 = 160 microseconds t_H N + ι: = 9800 + 160 + 40 = 10000 microseconds

Die Hall-Länge HHN+I ist in diesem Beispiel also 10 000 μs lang, entsprechend einer The Hall length HHN + I is in this example 10 000 microseconds long, according to a

Drehzahl (Gleichung 5; vierpoliger Rotor) von nj = 15 000 000/t_HN+ι = 15 000 000/10 000 = 1500 U/min. Speed (Equation 5; four-pole rotor) of nj = 15 000 000 / t_HN + ι = 15 000 000 000/10 = 1500 r / min.

Anschließend wird kurz nach HN+I der Timer CNTJHL auf einen neuen Wert t_B' geladen, der dem (zuvor berechneten) Wert t_7T entspricht, vgl. the timer CNTJHL see then shortly after HN + I loaded to a new value t_B 'corresponding to the (previously calculated) value t_7T. den Schritt 300 in Fig. 5. the step 300 in Fig. 5.

Fig. 8A und 8B zeigen das Flußdiagramm einer beispielhaften Ausführungsform einer bevorzugten Hall-Interruptroutine, also einer rotorstellungsabhängigen Interruptroutine. Fig. 8A and 8B show a flow chart of an exemplary embodiment of a preferred Hall interrupt routine, that is, a rotor position-dependent interrupt routine. Diese wird ausgelöst beim Erreichen von vorgegebenen Rotorstellungen und ist zuständig für die Bestimmung der Hall-Länge t_HN und auch für die Kommutierung, sofern letztere nicht in der Timer-Interruptroutine durchgeführt worden ist. This is triggered when reaching predetermined rotor positions and is responsible for determining the Hall length t_HN and also for commutation, if the latter has not been performed in the timer interrupt routine. Alle nachfolgend beschriebenen Register bzw. Variablen sind beim Ausführungsbeispiel 16 Bit groß. All registers and variables described below are large in the embodiment 16 bits.

In S202 wird der Timer CNTJHL gestoppt und die Stoppzeit des Timers CNTJHL in t_E gespeichert. In S202, the timer is stopped and saved CNTJHL the stop time of the timer CNTJHL in t_E.

In den folgenden Schritten S204-S208 wird im μC 11 die Flanke für den nächsten Hall-Interrupt eingestellt. In the following steps S204-S208, the edge of the next Hall interrupt is set in .mu.C. 11 Hierzu wird in S204 überprüft, ob HALL = 1 ist. For this purpose, it is checked in S204 whether HALL = 1. Ist dies der Fall, wird in S206 die Flanke, bei der der nächste Hall-Interrupt ausgelöst werden soll, auf eine fallende Flanke (HIGH -> LOW) gesetzt. If so, in S206 the edge at which the next Hall interrupt is to be triggered on a falling edge (HIGH -> LOW) set. Ansonsten wird in S208 die Flanke auf steigende Flanke (LOW -> HIGH) gesetzt. Otherwise, in S208, the edge is rising edge (LOW -> HIGH) is set.

In S210 wird nun anhand des Flags DE (Drehzahl Erreicht) zwischen zwei Fällen unterschieden: In S210 using the flag DE (rotation speed reached) now requires that two cases:

• Ist DE = 1 , so ist entweder kein Timer-Interrupt aufgetreten, oder ein Timer- Interrupt ist aufgetreten, und die Zündwinkelverschiebung war eingeschaltet. • If DE = 1, no timer interrupt has occurred, either, or a timer interrupt has occurred, and the angle shift was on. Beides sind, wie später weiter erläutert wird, Zeichen dafür, daß der Motor seine Drehzahl erreicht hat. Both are, as further explained later, a sign that the engine is up to speed.

• Ist DE = 0, so war die Zündwinkelverschiebung ausgeschaltet (SZW = 0), und ein Timer-Interrupt ist aufgetreten. • If EN = 0, the ignition angle was off (SZW = 0), and a timer interrupt has occurred. Dies ist, wie später erläutert wird, ein Zeichen dafür, daß die Mindestdrehzahl n_min, ab der die Zündwinkelverschiebung eingeschaltet wird, noch nicht erreicht ist. This is, as will be explained later, a sign that the minimum speed n_min from which the ignition angle is turned on, has not been reached.

Für den Fall DE = 0 wird die Kommutierung durchgeführt und der Timer CNTJHL auf einen festen Wert t_max (maximale Hall-Länge) gesetzt, der der Mindestdrehzahl n_min entspricht. In the case where DE = 0, the commutation is carried out and the timer CNTJHL t_max to a fixed value (maximum Hall length) is set equal to the minimum speed n_min. Ist zB die Mindestdrehzahl 300 U/min, so beträgt nach Gleichung For example, if the minimum speed of 300 rev / min, so is according to equation

(4) t_max = 15 000 000/300 = 50 000 μs (4) t_max = 15 000 000/300 = 50 000 microseconds

Hierzu werden in S212 OUT1 und OUT2 auf 0 gesetzt. To this end are set to 0 in S212 OUT1 and OUT2.

In S214 werden das Autoreload-Register AR und der Zähler CNTJHL auf t_max (zB 50000) gesetzt. In S214, the auto reload register AR and the counter CNTJHL be set to t_max (eg 50000). Der Timer CNTJHL arbeitet in diesem Beispiel mit einer Auflösung von 1 μs. The timer CNTJHL works in this example, with a resolution of 1 s. Das Setzen von CNTJHL auf eine Länge von 50000 μs entspricht einer Drehzahl von 300 U/min. Setting CNTJHL to a length of 50000 microseconds corresponds to a speed of 300 rev / min. Daraufhin wird der Timer CNTJHL gestartet. Then the timer CNTJHL starts.

In S216 wird das Flag DE (war 0) auf 1 gesetzt und in S218-S222 die Kommutierung durchgeführt. In S216 the flag DE is (was 0) is set to 1 and carried out the commutation in S218-S222. Ist in S218 HALL = 1 , so wird in S220 OUT1 auf HIGH, ansonsten in S222 OUT2 auf HIGH gesetzt. If in S218 HALL = 1, is otherwise set in S220 OUT1 OUT2 to HIGH in S222 HIGH. Für die zwischen dem Ausschalten der Ports OUT1 und OUT2 in S212 und dem Einschalten von OUT1 bzw. OUT2 in S220 bzw. S222 durchgeführten Programmschritte S214 - S218 hat das Programm eine gewisse Zeit benötigt, so daß eine ausreichende Kommutierungslücke (Fig. 21 : t_G) eingehalten wurde, zB 50 μs. For carried out between switching off of the ports OUT1 and OUT2 in S212 and the switching on of OUT1 and OUT2 in S220 or S222, the program steps S214 - S218, the program has a certain time is needed so that a sufficient commutation gap (Fig 21: T_g.) was not met, eg 50 microseconds.

In S224 wird schließlich der Hall-Interrupt verlassen. In S224, the Hall interrupt eventually will leave.

Falls in S210 DE = 1 war, wird in S230 die Berechnung der Hall-Länge t_H und des neuen Timerwerts t_TI für die Zündwinkelverschiebung angefordert. If was in S210 DE = 1 in S230, the calculation of the Hall length t_H and the new timer value t_TI is required for the ignition angle. Das Hauptprogramm ist mit Hilfe eines Funktionsmanagers aufgebaut, der nachfolgend in Fig. 15 näher beschrieben ist. The main program is set up with the aid of a function manager, which is described in more detail below in Fig. 15. Der Funktionsmanager ermöglicht es, durch Setzen von Flags Routinen anzufordern und durch das Zurücksetzen der Flags die Anforderung zu löschen. The function manager makes it possible to request routines by setting flags and clear by resetting the flags the request. Für die Anforderung der Berechnung wird in S230 ein Flag FCT_ZWV auf 1 gesetzt. To request the calculation in S230 a flag FCT_ZWV is set to 1.

Eine mögliche Alternative zu S230 besteht darin, die Berechnung direkt in der Hall- Interruptroutine (Fig. 8) durchzuführen. A possible alternative to S230 is the calculation directly in the Hall interrupt routine (FIG. 8) to perform. Dies soll durch S232 angedeutet werden. This will be indicated by S232. Wird die Berechnung in S232 ausgeführt, so kann für die Berechnung der Timer- Interruptzeit t_TI welche der Hallzeit ._H (ZB t_H 5 ) zugeordnet ist, die Hallzeit UH -I (ZB t_H 4 ) verwendet werden. If the calculation in S232 executed, can be used for the calculation of the timer interrupt time t_TI which the Hall time ._H (ZB t_H 5) is associated with the Hall time UH -I (t_H example 4) are used. Wird S230 verwendet, so wird die Hallzeit UHN-2 (ZB t_H 3 ) verwendet, oder eine noch frühere Hallzeit, wie bei den Fig. 17 bis 19 beschrieben. S230 is used, the reverberation time is UHN-2 (t_H example 3) is used, or even earlier Hall time described 17 to 19 as in FIGS.. Wird die Berechnung im Hallinterrupt durchgeführt (S232), so entfällt S230. If the calculation in Hallinterrupt performed (S232), then S230 is omitted. Die nachfolgende Beschreibung bezieht sich auf eine Version ohne S232. The following description refers to a version without S232.

In S234 (Fig. 8B) wird geprüft, ob das Flag KD = 1 ist (KD = Kommutierung Durchgeführt). In S234 (Fig. 8B), it is checked whether the KD Flag = 1 (KD = commutation performed). Falls KD = 1 ist, so ist in der zu dem Hall-Interrupt gehörenden Hallzeit ein Timer-Interrupt aufgetreten, wie in Fig. 7A für HN+1 dargestellt, und die Zündwinkelverschiebung war eingeschaltet. If KD = 1, so in the belonging to the Hall interrupt Hall time a timer interrupt has occurred, as shown in Fig. 7A for HN + 1, and the angle shift was on. In diesem Fall wurde die Kommutierung bereits im Timer-Interrupt (TN+I in Fig. 7A) durchgeführt, und es wird direkt zu S238 gesprungen. In this case, the commutation to timer interrupt (TN + in Fig. 7A I) was carried out, and it jumps to S238.

Ist in S234 KD = 0, so ist in der zu dem Hall-Interrupt gehörigen Hallzeit kein Timer- Interrupt aufgetreten, dh man hat die Situation gemäß Fig. 6. Die Kommutierungslücke (t_G in Fig. 21) wird in S236 durch das Setzen beider Ports OUT1 und OUT2 auf Null gestartet, dh die Statorwicklung 38 (Fig. 1) erhält kurzzeitig keine Energie zugeführt. If in S234 KD = 0, no timer interrupt in the interrupt associated with the Hall-Hall time has occurred, ie, one has the situation shown in FIG. 6. The commutation gap (21 T_g in Fig.) Is in S236 by setting both ports started OUT1 and OUT2 to zero, that is, the stator winding 38 is obtained (FIG. 1) for a short time not energized. Der Fall, daß ein Timer-Interrupt aufgetreten ist, aber aufgrund inaktiver Zündwinkelverschiebung bei diesem Interrupt nicht kommutiert worden ist, wird in dem Zweig unter S210 für DE = 0 berücksichtigt (Fig. 8A). The case that a timer interrupt has occurred, but has not been commutated in this interrupt is due to inactive ignition angle, in the branch under S210 for DE = 0 taken into account (Fig. 8A). ln S238 werden das Autoreload-Register AR und der Timer CNTJHL mit dem in der nachfolgend beschriebenen Zündwinkelberechnung (Fig. 9 oder 19) berechneten Wert t_TI geladen, und der Timer CNTJHL wird gestartet. In S238 are the auto reload register AR and the timer CNTJHL with the ignition angle in the manner described below (Fig. 9 or 19) loaded t_TI calculated value, and the timer is started CNTJHL.

In S240 wird die Zündwinkelverschiebung durch das Setzen des Flags SZW := 1 auf aktiv gesetzt, da die erforderliche Drehzahl erreicht war (DE = 1), zB bei diesem Beispiel die Drehzahl 300 U/min. In S240, the ignition angle is determined by the setting of the flag SZW: = 1 to active because the required speed was reached (EN = 1), for example, in this example, the rotation speed 300 r / min.

In S242 wird wieder anhand des Flags KD (Kommutierung Durchgeführt) überprüft, ob die Kommutierung bereits stattgefunden hat. In S242 (commutation Performed) is checked again using the flags KD whether the commutation has already taken place. Falls nicht (KD = 0), wird in S244 anhand des Signals HALL überprüft, ob entweder in S246 OUT1 auf HIGH oder in S248 OUT2 auf HIGH gesetzt wird. If not (KD = 0), it is checked in S244 based on the signal HALL, if either is set to HIGH or in S248 OUT2 to HIGH in S246 OUT1. Die Kommutierungslücke (t_G in Fig. 21) wird hierbei durch die zwischen dem Ausschalten der Ports OUT1 und OUT2 (S236) und dem Einschalten liegenden Schritte S238 bis S244 erzeugt. The commutation gap (T_g in Fig. 21) is generated here by the lying between the switching off of the ports OUT1 and OUT2 (S236), and switching steps S238 to S244.

In S250 wird die Hall-Interruptroutine schließlich verlassen. In S250, the Hall interrupt routine will eventually leave.

Fig. 9 zeigt ein Flußdiagramm für eine beispielhafte Routine zur Zündwinkelberechnung, welche bei erreichter Mindestdrehzahl bei jeder Hall- Interruptroutine (Fig. 8) durch Setzen des Anforderungsbits FCT_ZWV (Fig. 15) angefordert wird, vgl. is Fig. 9 shows a flowchart for an exemplary routine for ignition angle, which on reaching the minimum speed at each Hall interrupt routine (Fig. 8) by setting the request bits FCT_ZWV (Fig. 15) is requested, see FIG. S230 in Fig. 8A. S230 in Fig. 8A. Die Zündwinkelberechnung wird durch den Funktionsmanager 190 (Fig. 15) aufgerufen, wenn keine Aufgaben höherer Priorität angefordert sind. The ignition angle is called by the function manager 190 (FIG. 15) when no higher priority tasks are requested. Man kann deshalb nicht genau sagen, wann diese Berechnung stattfindet. Therefore, one can not say exactly when this calculation takes place. Die Zeitpunkte BN (ZB in Fig. 12A und 12B), an denen die Zündwinkelberechnung ausgeführt wird, sind also nicht genau festgelegt, sondern stellen Beispielzeitpunkte dar. The time points BN (example in Fig. 12A and 12B) at which the ignition angle is carried out are, therefore, not precisely set, but constitute Sample time points.

Es ist zu beachten, daß die Berechnung der Hall-Länge t_H immer für eine vorhergehende Hallzeit gilt. It should be noted that the calculation of the Hall length t_H always applies to a previous Hall time. So wird zB während der Hallzeit ._HN die Hall-Länge UHN-I berechnet. For example, calculating the Hall length UHN-I during the Hall time ._HN.

In S252 wird anhand des Flags KD überprüft, ob in dem Timer-Interrupt (zB TN+I in Fig. 7) eine Kommutierung durchgeführt wurde, vgl. In S252 KD is checked on the basis of the flag, whether (TN + I in Fig. 7 for example) was performed a commutation in the timer interrupt, see FIG. S234 in Fig. 10. Falls ja (KD = 1), so ergibt sich gemäß S254, wie in Fig. 7 gezeigt und dort beschrieben, die Hall- Länge t_H aus der Startzeit t_B und der Zeit t_1 , welche die Differenz von t_B und t_E ist. S234 in Fig. 10. If yes (KD = 1), the result is in accordance with S254, as shown in Fig. 7 and described therein, the Hall length t_H from the start time and the time t_1 t_B, which is the difference of t_B and t_E is. Falls nein (KD = 0), ergibt sich gemäß S256 die Hall-Länge t_H aus der Differenz von t_B und t_E, vgl. If not (KD = 0) results in accordance S256 the Hall length t_H from the difference between t_B and t_E, see. Fig. 6. Fig. 6.

In S258 wird zu der Hall-Länge t_H eine Korrekturzeit t_CORR addiert. In S258 a correction time t_CORR is added to the Hall length t_H. Diese ergibt sich daraus, daß der Timer CNTJHL am Anfang der Hall-Interruptroutine (Fig. 8A und 8B) bei S202 angehalten, aber erst später in S232 erneut gestartet wird. This results from the fact that the timer CNTJHL at the beginning of the Hall interrupt routine (Fig. 8A and 8B) stopped at S202, but does not start until later in S232. Bis dahin hat die Hall-Interruptroutine eine gewisse Zeit benötigt, die nun als t_CORR (zB 40 μs) addiert wird, um in S258 die exakte Hall-Länge t_H zu erhalten. Until then, the Hall interrupt routine has needed some time now as t_CORR (eg 40 microseconds) is added to obtain the exact Hall length t_H in S258.

In S260 wird die augenblickliche Hall-Länge t_H in dem Ist-Hallwert tj abgespeichert, damit der momentane Ist-Hallwert allen anderen Programmteilen (zB der Regelung) als Maß für die augenblickliche Drehzahl zur Verfügung steht. In S260 the instantaneous Hall length t_H is stored in the actual Hall value tj, so that the current actual value Hall all other parts of the program (for example, the control) is a measure of the instantaneous rotational speed available.

In S262 wird die aktuelle Startzeit des Timers CNTJHL in t_B gesichert, so daß sie für die Berechnung von t_TI während der nächsten Hallzeit verfügbar ist. In S262 the current start time of the timer CNTJHL is saved in t_B so that it is available for the calculation of t_TI during the next Hall time.

Es folgt eine Überprüfung der Drehzahl, da erst ab einer vorgegebenen Mindestdrehzahl n_min, zB 300 U/min, eine Zündwinkelverschiebung durchgeführt werden soll. The following is a review of speed because only n_min from a predetermined minimum speed, eg 300 to be performed U / min, an ignition angle. Hierzu wird in S264 verglichen, ob t_H > t_SZW ist. For this purpose, is compared in S264 whether t_H> t_SZW is. t_SZW (zB 49664 μs, was 0xC200 entspricht) ist die maximale Hall-Länge, bis zu der eine Zündwinkelverschiebung durchgeführt werden soll. t_SZW (eg 49664 microseconds, which corresponds to 0xC200) is the maximum Hall length to which an ignition angle shift is to be performed. Ist t_H größer als t__SZW, so ist der Motor zu langsam, und in S266 wird mit SZW := 0 die Zündwinkelverschiebung ausgeschaltet. Is t_H greater than t__SZW, the motor is too slow, and in S266 comes with SZW: = 0 off the ignition angle.

In S268 wird der Kommutierungszeitpunkt t_TI, also der Zeitpunkt, zu dem ein Timer- Interrupt ausgelöst werden soll, berechnet. In S268 the commutation t_TI, that is the time at which a timer interrupt to be triggered is calculated. Hierzu wird in S268 ein Wert t_ZW, nämlich die Zeit, um die der Zeitpunkt der Kommutierung nach früh verschoben werden soll, subtrahiert, zB 200 μs. For this purpose, in S268, a value t_ZW, namely the time will be located to the early timing of commutation, subtracted, eg 200 microseconds. Das kann ein konstanter Wert sein, oder auch ein Wert, der von einem Motorparameter abhängig ist. This can be a constant value or a value which is dependent on an engine parameter. Über den Bus 30 (Fig. 14) kann dieser Wert t_ZW von außen verändert werden. this value t_ZW can be changed from the outside via the bus 30 (Fig. 14). Ist t_ZW = 0, so ist die Zündwinkelverschiebung abgeschaltet. Is t_ZW = 0, the ignition angle is off.

Die Zündwinkelberechnungsroutine ist nun abgearbeitet worden. The Zündwinkelberechnungsroutine has now been completed. Das Anforderungsbit FCT_ZWV (Fig. 15) wird in S270 auf 0 gesetzt, in S272 wird das Flag KD wieder auf 0 gesetzt, damit es für die folgende Hallzeit genutzt werden kann, und in S274 wird das Anforderungsbit FCT_RGL (Fig. 15) der Regelung des Motors gesetzt, so daß diese angefordert wird. The request bit FCT_ZWV (Fig. 15) is set to 0 in S270, in S272 the flag KD is reset to 0, so it can be used for the following Hall time and in S274, request FCT_RGL (Fig. 15) of the regulation the engine is set so that it is requested. Die Hauptaufgaben der Zündwinkelberechnungsroutine gemäß Fig. 9 waren also das Bestimmen der Zeitdauer der vorhergehenden Hall-Länge (S258), das Berechnen des Kommutierungszeitpunkts für die folgende Hallzeit (S268), und das Anfordern der Regelung (S274). The main tasks of Zündwinkelberechnungsroutine of FIG. 9 were thus determining the time duration of the preceding Hall length (S258), the calculation of the commutation instant for the following Hall time (S268), and requesting the scheme (S274).

Fig. 10 zeigt ein Flußdiagramm für eine beispielhafte Timer-Interruptroutine, welche zur Motorsteuerung dient und ausgelöst wird, wenn der in dem vorhergehenden Hall- Interrupt initialisierte und gestartete Timer CNTJHL auf 0 zurückgezählt hat, bevor der nächste Hall-Interrupt ausgelöst wird, vgl. Fig. 10 shows a flowchart for an exemplary timer interrupt routine, which is used for engine control and is triggered when the initialized in the previous Hall interrupt and has launched Timer CNTJHL counted down to 0 before the next Hall interrupt is triggered, see FIG. Fig. 7A und 7B. FIGS. 7A and 7B.

Beim Erreichen des Wertes 0 wird der Timer CNTJHL in S302 mit dem Wert t_AR des Autoreload-Registers AR geladen und erneut gestartet, da er gleichzeitig für die Berechnung der Hall-Länge t_H dient. Upon reaching a value of 0, the timer is loaded into CNTJHL S302 with the value of t_AR autoreload register AR and restarted because it also serves to calculate the Hall length t_H. Dieser Schritt wird von dem μC 11 bei Erreichen der 0 für diesen Zähler automatisch ausgeführt und ist nur zur Verdeutlichung in das Flußdiagramm aufgenommen worden. This step is executed by the .mu.C 11 upon reaching 0 for this counter automatically and has been included only for illustration in the flowchart.

In S304 wird anhand des Flags SZW überprüft, ob die Zündwinkelverschiebung aktiv ist. In S304, it is checked on the basis of the flag SZW whether the ignition angle is active. Ist sie nicht aktiv, so läuft der Motor langsamer als die minimale Drehzahl. If it is not active, the engine runs slower than the minimum speed. Dies wird ersichtlich, da bei nicht aktiver Zündwinkelverschiebung, wenn der Timer- Interrupt stattgefunden hat, in der Hall-Interruptroutine in S214 das Autoreloadregister AR und der Timer CNT_HL auf die der minimalen Drehzahl n_min entsprechende maximale Hall-Länge t_max gesetzt werden. This can be seen, since in non-active ignition angle when the timer interrupt has occurred, the auto reload register AR and the timer CNT_HL to the minimum speed n_min corresponding maximum Hall length t_max be set in the Hall interrupt routine in S214. Findet trotzdem der Timer-Interrupt (TN+I in Fig. 7) vor dem Hall-Interrupt (HN+I in Fig. 7) statt, so ist die minimale Drehzahl n_min nicht erreicht, und das Flag DE (Drehzahl Erreicht) wird auf 0 gesetzt und in S308 die Timer-Interruptroutine verlassen. nevertheless finds the timer interrupt (TN + I in Fig. 7) in front of the Hall interrupt (HN + I in Fig. 7) takes place, the minimum speed is n_min is not reached, and the EN flag (Achieved speed) on 0, and exit the timer interrupt routine in S308.

Bei aktiver Zündwinkelverschiebung (SZW =1) wird von S304 nach S310 gesprungen, wo die beiden Ports OUT1 und OUT2 zum Beginn der Kommutierungslücke auf 0 gesetzt werden. With active ignition angle (SZW = 1) is jumped from S304 to S310, where the two ports OUT1 and OUT2 are set to the beginning of the commutation gap to 0.

Die Schritte S312 bis S316 bilden eine Programmschleife, welche eine ausreichend lange Kommutierungslücke (t_G in Fig. 21) bewirkt. The steps S312 to S316 constitute a program loop which a sufficiently long commutation gap (T_g in Fig. 21) effected. Hierzu wird in S312 einem Zähler DEL_CNT ein Verzögerungswert t_DEL zugeordnet, zB die Zahl 5. In S314 wird der Zähler DEL_CNT um 1 dekrementiert und in S316 wird überprüft, ob DEL_CNT schon den Wert 0 erreicht hat, die Verzögerungsschleife also vollständig abgearbeitet ist. For this purpose is assigned a delay value t_DEL in S312 a counter DEL_CNT, eg the number 5. In S314 the counter DEL_CNT is decremented by 1, and in S316, it is checked whether DEL_CNT has already reached a value of 0, so the delay loop is completely processed. Falls nicht, wird wieder nach S314 zurückgesprungen und die Schleife setzt fort. If not, return is made back to S314 and the loop continues. Wenn ein Durchlauf der Schleife zB 10 μs benötigt, so erhält man mit den oben genannten Werten eine Verzögerung von 50 μs, während der die Ports OUT1 und OUT2 beide das Ausgangssignal 0 haben, was die Kommutierungslücke t_G bewirkt. If an iteration of the loop required, for example 10 microseconds, is obtained with the above values, a delay of 50 microseconds, while the OUT1 and OUT2 both have the output signal 0, the ports, which causes the commutation T_g.

Anschließend findet in gewohnter Weise die Kommutierung statt, wie bereits in Fig. 8A bei S218 bis S224 beschrieben. Then, the commutation takes place in the usual way, as already described in FIG. 8A at S218 to S224. Ist in S318 der Hallwert HALL = 1 , so wird in S320 OUT1 auf HIGH gesetzt, ansonsten wird in S322 OUT2 auf HIGH gesetzt. If in S318 the Hall value HALL = 1, is set in S320 OUT1 to HIGH, otherwise is set in S322 OUT2 to HIGH. Die Kommutierung ist also - mit Zündwinkelverschiebung - im Timer-Interrupt und vor dem Hall-Interrupt durchgeführt worden, also in Fig. 7 zum Zeitpunkt TN+I vor dem Hall- Interrupt HN+I - The commutation is thus - with ignition angle -. Were carried out in front of the Hall interrupt, thus in Figure 7 at the time TN + I before the Hall interrupt HN + I in the timer interrupt and -

In S324 wird das Flag KD (Kommutierung Durchgeführt) auf 1 gesetzt, damit die Hall- Interruptroutine und die Zündwinkelberechnungsroutine dies erkennen können, und daraufhin wird die Hall-Interruptroutine in S326 verlassen. In S324 the flag KD (commutation performed) is set to 1, so that the Hall interrupt routine and the Zündwinkelberechnungsroutine can recognize this, and then the Hall interrupt routine is exited in S326.

Fig. 11 zeigt beispielhaft eine Darstellung des Signals HALL, der Zeitpunkte der Hall-Interrupts HN und der Timer-Interrupts TN beim Hochlauf eines erfindungsgemäßen Motors. Fig. 11 shows an exemplary representation of the signal HALL, the time points of the Hall interrupts HN and the timer interrupts TN during startup of an engine according to the invention. Die Hallzeiten I_HN, welche jeweils zwischen den Hall- Interrupts HN-I und HN stehen, werden immer kürzer, da der Motor beschleunigt. The decay times I_HN which communicate respectively between the Hall interrupts HN and HN-I, are becoming shorter as the engine accelerates. Es tritt nicht während jeder Hallzeit ein Timer-Interrupt auf. It does not occur during each Hall time a timer interrupt. In diesem Beispiel wird in t_H2 und den folgenden Hallzeiten eine Zündwinkelberechnung ausgeführt, aufgrund der Beschleunigung des Motors treten in diesem Beispiel jedoch nur die Timer- Interrupts Ti, T-io und T-π auf, da die Drehzahl erst ab tJHs einigermaßen konstant wird. In this example, an ignition angle calculation is performed in t_H2 and subsequent decay times, due to the acceleration of the engine, only the timer interrupts Ti, T-io and t-π occur in this example, because the speed is fairly constant until TJHS.

In Fig. 12A und 12B ist der Verlauf der Fig. 11 in vergrößertem Maßstab dargestellt und mit zusätzlichen Erläuterungen versehen. In Fig. 12A and 12B, the curve of Fig's. 11 in an enlarged scale and provided with additional explanations.

Fig. 12A und 12B zeigen einen zeitlichen Beispielverlauf eines Starts eines erfindungsgemäßen Motors. FIG. 12A and 12B show an example temporal course of a start of an engine according to the invention. Dieser soll das Zusammenspiel des Hall-Interrupts, der Zündwinkelberechnung und des Timer-Interrupts verdeutlichen. This is intended to illustrate the interaction of the Hall interrupts the ignition angle and the timer interrupt.

In Fig. 12A und 12B werden folgende Variablen verwendet: In Fig. 12A and 12B, the following variables are used:

DE: Flag "Drehzahl Erreicht" DE: Flag "Speed reached"

KD: Flag "Kommutierung Durchgeführt" SZW: Flag "Start ZündwinkelVerschiebung" t_AR: Wert im Autoreloadregister AR (Fig. 1) KD: Flag "commutation Performed" SZW: Flag "Start ignition angle" t_AR: value in the auto reload register AR (Fig. 1)

CNTJHL: Timer für Timer-Interrupt und Berechnung der Hall-Länge t_E: Stoppzeit (Zeit des Endes) t_H: Hall-Länge (Hallzeit) t_B: Startzeit (Zeit des Beginns) CNTJHL: Timer for the timer interrupt, and calculation of the Hall length t_E: stop time (time of the end) t_H: Hall length (Hall time) t_B: starting time (time of starting)

OUT1 : Port des μC 11 zur Bestromung des Motors OUT1: port of the microcontroller 11 to supply current to the motor

OUT2: Port des μC 11 zur Bestromung des Motors OUT2: port of the microcontroller 11 to supply current to the motor

Das Signal HALL am Eingang Hall des μC 11 ist eingetragen. The signal HALL at the entrance hall of the microcontroller 11 is registered. Die Hall-Längen t_H stehen jeweils zwischen den sie umschließenden Hall-Interrupts, zB tJH 2 = 40 ms zwischen Hi und H 2 , L . The Hall t_H lengths are provided between each of the enclosing Hall interrupts, including TJH 2 = 40 ms between Hi and H 2, L. H 3 = 35 ms zwischen H 2 und H 3 , etc. Hall-Interrupts sind jeweils mit HN, Timer-Interrupts mit TN und Ausführungen der Zündwinkelberechnung mit BN angezeigt, wobei N die Indexzahl der zugehörigen Hall-Länge ._H ist. H 3 = 35 ms between H 2 and H 3, etc. Hall interrupts are respectively connected to HN, timer interrupts with TN and embodiments of the ignition angle with BN displayed, where N is the index number of the associated Hall length ._H.

Unter dem Signal HALL befinden sich einige wichtige Variablen, welche in dem in dem μC 11 ablaufenden Programm verwendet werden. There are some important variables that are used in the processes taking place in .mu.C 11 program under the HALL signal. Die Angabe von Zeiten erfolgt aus Platzgründen in ms, wohingegen programmintern mit μs-Zeiten gearbeitet wird. Specifying times is lack of space in ms, whereas within the program works with microsecond times. Beim Start des Motors werden einige der Variablen initialisiert (Spalte IN IT). At engine start some of the variables are initialized (column IN IT). t_TI und t_B werden mit 50 ms initialisiert. t_TI and t_B are initialized to 50 ms. Dies entspricht einer Drehzahl von 300 U/min, und erst ab dieser Drehzahl wird in diesem Ausführungsbeispiel die Zündwinkelverschiebung eingeschaltet. This corresponds to a speed of 300 rev / min, and only from this speed, the ignition angle is switched in this embodiment. DE und KD werden auf 0 gesetzt, da die erforderliche Drehzahl anfangs noch nicht erreicht ist, und SZW ist auch mit 0 initialisiert, da die Zündwinkelverschiebung ausgeschaltet ist. DE and KD are set to 0, since the required speed is initially not yet been reached, and SZW is also initialized to 0 because the ignition angle is off.

Bei dem ersten Hall-Interrupt HO werden das Autoreload-Register AR und der Timer CNTJHL das erste Mal mit 50 ms geladen, und der Timer CNTJHL wird gestartet. In the first Hall interrupt HO the auto reload register AR and the timer CNTJHL be loaded for the first time with 50 ms, and the timer is started CNTJHL. Die Hall-Länge t_Hι beträgt 60 ms, so daß der Timer-Interrupt T1 vor dem Hallinterrupt H1 auftritt. The Hall length t_Hι is 60 ms, so that the timer interrupt occurs before the T1 Hallinterrupt H1.

Da die Zündwinkelverschiebung ausgeschaltet ist (SZW = 0), wird in der Timer- Interruptroutine als einziges der Wert DE auf 0 gesetzt (S306 in Fig. 10). Since the ignition angle is switched off (SZW = 0), the value DE is set to 0 (S306 in Fig. 10) in the timer interrupt routine as the only. Dies zeigt dem Hall-Interrupt an, daß der Motor noch nicht die Mindestdrehzahl n_min erreicht hat, da die Hall-Länge t_Hι größer als die maximale Hall-Länge t_max ist, die der Mindestdrehzahl n_min entspricht. This indicates to the Hall interrupt that the engine has not yet reached the minimum speed n_min, since the Hall length t_Hι than the maximum Hall length is greater t_max which corresponds to the minimum speed n_min. Der Timer CNTJHL wird automatisch mit dem Autoreload-Wert t_AR von 50 ms aufgeladen und gestartet. The timer CNTJHL is automatically charged with the auto reload value t_AR of 50 ms and started. Durch den Hall-Interrupt Hi wird die Hall-Interruptroutine (Fig. 8) aufgerufen. By the Hall interrupt the Hall Hi-interrupt routine (Fig. 8) is invoked. Die Stoppzeit t_E von 40 ms, die sich daraus ergibt, daß zwischen dem Timer-Interrupt T-|, bei dem der Timer CNTJHL erneut auf 50 ms gesetzt wurde, und dem Hall-Interrupt Hi 10 ms vergangen sind, wird gesichert. The stop time t_E of 40 ms, which results from the fact that between the timer interrupt T | 10 ms have passed, in which the timer CNTJHL was reset to 50 ms, and the Hall interrupt Hi, is assured. Da DE = 0 ist, wird die Kommutierung zum Zeitpunkt Hi durchgeführt, t_AR und CNTJHL werden mit 50 ms geladen und der Timer CNTJHL wird gestartet. Since DE = 0, the commutation is performed at the time Hi, t_AR and CNTJHL are loaded with 50 ms and the timer is started CNTJHL. DE wird auf 1 gesetzt. DE is set to 1. Es wird keine Berechnung angefordert. It is requested no calculation.

Während der Hall-Länge t_H2 erreicht der Motor erstmals im Durchschnitt die Mindestdrehzahl von 300 U/min, so daß der Hall-Interrupt H 2 ausgelöst wird, bevor der Timer CNTJHL auf Null heruntergezählt hat. During the Hall length t_H2 reaches the engine for the first time on average, the minimum speed of 300 rev / min, so that the Hall interrupt H 2 is released before the timer has counted down to zero CNTJHL. Es findet also kein Timer-Interrupt T statt. This means there is no timer interrupt T.

In der Hall-Interruptroutine beim Hallwechsel H 2 wird die Stoppzeit t_E des Timers CNTJHL von 10 ms gesichert. In the Hall interrupt routine at the Hall change H 2, the stop time of the timer t_E CNTJHL of 10 ms is secured. DE hat dadurch, daß während der Hall-Länge t_H 2 kein Timer-Interrupt aufgetreten ist, seinen Wert DE = 1 behalten. DE, is characterized in that during the Hall length t_H 2 no timer interrupt has occurred, retain its value DE =. 1 Dadurch erkennt die Hall-Interruptroutine, daß die Drehzahl von 300 U/min überschritten wurde. This recognizes the Hall interrupt routine that the rotational speed of 300 rev / min has been exceeded. In der Hall-Interruptroutine wird die Zündwinkelberechnungsroutine (Fig. 9) angefordert und die Zündwinkelverschiebung wird durch SZW := 1 aktiviert. In the interrupt routine, the Hall Zündwinkelberechnungsroutine (Fig. 9) is requested and the ignition angle is carried SZW: Enabled = 1. Da innerhalb der Hall- Länge t_H 2 noch nicht kommutiert wurde (KD = 0), wird die Kommutierung während der Hall-Interruptroutine zum Zeitpunkt H2 durchgeführt. Since within the Hall length t_H 2 has not yet commutated (KD = 0), the commutation is performed during the Hall interrupt routine at the time H2. Das Autoreload-Register AR und der Timer CNTJHL werden mit dem beim Start des Motors auf 50 initialisierten Wert t_TI geladen, da noch keine Zündwinkelberechung durchgeführt wurde, und der Timer CNTJHL wird erneut gestartet. The car reload register AR and timer CNTJHL be loaded with the startup of the engine 50 initialized value t_TI because no Zündwinkelberechung was still carried out, and the timer CNTJHL is restarted.

Während der Hall-Länge t_H 3 wird das erste Mal die Berechnung der Zündwinkelverschiebung ausgeführt. During the Hall length t_H 3 is first executed to calculate the ignition angle. Es ist kein Timer-Interrupt aufgetreten (KD = 0), so daß sich die während der Hall-Länge tJH 3 berechnete Hall-Länge t_H 2 aus t_B = 50 ms und t_E = 10 ms zu t_H = 40 ms ergibt. It is not a timer interrupt occurred (KD = 0), so that the calculated during the Hall length TJH 3 Hall length t_H 2 of t_B = 50 ms and t_E = 10 ms to 40 ms t_H = results. Hieraus ergibt sich bei einer Zündwinkelverschiebungszeit von t_ZW = 0,2 ms eine Timer-Interruptzeit von 39,8 ms. From this 0.2 ms results with a Zündwinkelverschiebungszeit of t_ZW = a timer interrupt time of 39.8 ms. Die Timerstartzeit der Hallzeit t_H 3 wird in t_B gesichert. The timer start time of the reverb time t_H 3 is secured in t_B.

Die Hall-Interruptroutine zum Hall-Interrupt H 3 läuft analog zu der Hall-Interruptroutine zum Hall-Interrupt H 2 ab, da der Motor weiterhin beschleunigt und der Hall-Interrupt auftritt, bevor der Timer CNT_HL den Wert 0 erreicht. The Hall interrupt routine for Hall interrupt H 3 is analogous to the Hall interrupt routine for Hall interrupt H 2 from, as the motor continues to accelerate and the Hall interrupt occurs before the timer reaches CNT_HL to 0. Es tritt deshalb in dieser Hallzeit kein Timer-Interrupt auf. Therefore, in this Hall time it occurs no timer interrupt. Dies geschieht ebenso bei den Hall-Interrupts H 4 , H 5 , Hβ und H 7 . This happens also in the Hall interrupts H 4, H 5, Hβ and H. 7 Die Zündwinkelberechnungsroutinen B 4 , B 5 , Bβ und B 7 werden ebenfalls in der jeweiligen Hallzeit aufgerufen. The Zündwinkelberechnungsroutinen B 4, B 5, and B 7 B.beta also be called in the respective Hall time.

In der Hallzeit t_H 8 erreicht der Motor schließlich seine Solldrehzahl von 1500 U/min, die einer Hall-Länge von 10 ms entspricht. In the Hall time t_H 8 of the motor eventually reaches its nominal speed of 1500 rev / min, corresponding to a Hall length of 10 ms. Da bei diesem Beispiel die Timer- Interruptzeit t_TI für die Hallzeit T.JHN immer während der Hallzeit UH -I aus der Hall- Länge L.HN-2 berechnet wird, ist ein "Nachlauf" von zwei Hallzeiten vorhanden, dh die erste Hallzeit, bei der der Timer CNT_HL mit der korrekten Timer-Interruptzeit t_TI gestartet ist, ist t_Hιo, da die Hallzeit tJHs die erste Hallzeit mit 10 ms war und das Ergebnis aus der Hall-Längenberechnung der Hallzeit von t_Hβ erst in t_Hιo verwendet wird. Since the timer interrupt time t_TI is always -I calculated for the Hall time T.JHN during the Hall time UH from the Hall length L.HN-2 in this example, a "tail" of two Hall times exists, ie, the first Hall time, when the timer CNT_HL with the correct timer interrupt time t_TI is started, t_Hιo because the reverb time TJHS was the first Hall time with 10 ms and the result from the Hall length calculation of the reverberation time of t_Hβ will only be used in t_Hιo.

Während der Hallzeit tJH-io wird die Zündwinkelberechnung B 10 normal ausgeführt. During the Hall time TJH-io the ignition angle B 10 is performed normally. Der Startwert t_TI für das Autoreload-Register AR und den Timer CNTJHL betrug während der Hall-Interruptroutine zu Hg 9,8 ms. The start value t_TI for the auto reload register AR and timer CNTJHL was 9.8 ms during the Hall interrupt routine to Hg.

Deshalb wird 9,8 ms nach dem Hall-Interrupt Hg ein Timer-Interrupt T 10 ausgelöst. Therefore, 9.8 ms after the Hall interrupt is triggered Hg T 10, a timer interrupt. Der Timer CNTJHL wird automatisch mit dem Wert t_AR (9,8 ms) aufgeladen und erneut gestartet. The timer is automatically CNTJHL with the value t_AR (9.8 ms) charged and restarted. Die Zündwinkelverschiebung ist eingeschaltet (SZW = 1), so daß in der Timer-Interruptroutine (T10) kommutiert wird. The ignition angle is switched (SZW = 1), so that is commutated in the timer interrupt routine (T10). Das Flag KD wird auf 1 gesetzt, um der folgenden Hall-Interruptroutine zu H-io und der Zündwinkelberechnung anzuzeigen, daß kommutiert wurde. The flag KD is set to 1 to indicate the following Hall interrupt routine to H-io and the ignition angle calculation that has been commutated.

In der Hall-Interruptroutine zum Hall-Interrupt H-| In the Hall interrupt routine for Hall interrupt H | 0 wird der Stoppwert des Timers CNTJHL in t_E gesichert, die Zündwinkelberechnungsroutine angefordert, das Autoreload-Register AR und der Timer CNTJHL geladen, und der Timer CNTJHL gestartet. 0 the stop value of the timer CNTJHL is saved in t_E, requested the Zündwinkelberechnungsroutine, the auto reload register AR and timer CNTJHL loaded, and the timer CNTJHL started. Da die Kommutierung bereits in der Timer-Interruptroutine zum Timer- Interrupt T 10 stattgefunden hat, wird nicht mehr kommutiert. Since the commutation has already taken place in the timer interrupt routine for timer interrupt T 10, is no longer commutes.

Die folgenden Hallzeiten t_Hn usw. verlaufen wie t_Hιo, falls sich Istdrehzahl oder Solldrehzahl des Motors nicht ändern. The following reverb times t_Hn etc. run as t_Hιo if to actual speed or target speed of the engine do not change.

Regelung des Motors Fig. 13 zeigt den für Regelung und Antrieb des Motors wichtigen Teil der Schaltung. Control of the motor FIG. 13 shows the important for the motor control and drive part of the circuit. Gleiche oder gleich wirkende Teile wie in den vorhergehenden Figuren sind mit denselben Bezugszeichen bezeichnet wie dort und werden gewöhnlich nicht nochmals beschrieben. The same or equivalent parts as in the preceding figures have the same reference numerals as therein, and usually are not described again.

Die Belegung der Anschlüsse des μC 11 ist wieder Fig. 3 zu entnehmen. The assignment of the connections of the microcontroller 11 is again Fig. To Section 3. Die Ausgänge OUT1 und OUT2 des μC 11 steuern die als H-Brücke 37 geschalteten npn- Transistoren 141 , 142, 143 und 144. The outputs OUT1 and OUT2 of the microcontroller 11 control the connected as a H-bridge 37 NPN transistors 141, 142, 143 and 144th

Ein Ausgang RGL des μC 11 ist über einen Widerstand 123 an einen Kondensator 124 angeschlossen. An output RGL of the microcontroller 11 is connected to a capacitor 124 via a resistor 123rd Wird RGL auf HIGH gesetzt, so wird der Kondensator 124 aufgeladen, ist RGL auf LOW, so wird der Kondensator entladen, und ist RGL auf TRISTATE, so ist der Kondensator 124 von RGL abgekoppelt und hält seine Spannung. RGL is set to HIGH, the capacitor 124 is charged is RGL LOW, the capacitor is discharged, and is RGL to TRISTATE, capacitor 124 is decoupled from RGL and holds its voltage. Ohne die Strombegrenzung 44, welche weiter unten beschrieben wird, könnte der Punkt 125 direkt mit dem Pluseingang des Komparators 120 verbunden werden. Without the current limiter 44, which will be described further below, the point 125 could be directly connected to the positive input of comparator 120th

Ist der npn-Transistor 150 nicht leitend, die Strombegrenzung 44 also inaktiv, so stellt sich über den Widerstand 126 an einem kleineren Kondensator 127 die gleiche Spannung wie die des Kondensators 124 ein. When the NPN transistor 150 is not conducting, the current limiter 44 therefore inactive, arises via the resistor 126 to a smaller capacitor 127, the same voltage as that of the capacitor 124. Über den Ausgang RGL des μC 11 kann also die Spannung an dem Pluseingang des Komparators 120 beeinflußt werden. Via the output RGL of the microcontroller 11 so the voltage at the positive input of the comparator can be influenced 120th

An dem Minuseingang des Komparators 120 liegt ein durch einen Dreiecksoszillator 35 erzeugtes Dreiecksignal an. a signal generated by a triangular oscillator 35 triangular signal is applied to the negative input of comparator 120th Der Dreiecksoszillator 35 weist einen Komparator 130 auf. The triangle wave oscillator 35 includes a comparator 130th Vom Ausgang P3 des Komparators 130 führt ein Mitkopplungswiderstand 132 zu dessen Pluseingang, und ebenso führt ein Gegenkopplungswiderstand 131 vom Ausgang P3 des Komparators 130 zum Minuseingang des Komparators 130. Ein Kondensator 135 liegt zwischen dem Minuseingang des Komparators 130 und Masse 100. Der Ausgang des Komparators 130 ist ferner über einen Widerstand 133 mit +Vcc verbunden. From the output P3 of the comparator 130 is a positive feedback resistor 132 leads to its positive input, and also performs a feedback resistor 131 from the output P3 of the comparator 130 to the negative input of comparator 130. A capacitor 135 is connected between the negative input of comparator 130 and ground 100. The output of comparator 130 is also connected to + Vcc through a resistor 133rd Der Pluseingang des Komparators 130 ist über zwei Widerstände 134 und 136 mit +Vcc bzw. Masse 100 verbunden. The positive input of comparator 130 is connected through two resistors 134 and 136 to + Vcc and ground 100 is connected.

Zur Erläuterung der Wirkungsweise des Dreiecksgenerators 35 und der Steuerung des Ausgangs RGL des μC 11 durch den μC 11 wird auf DE198 36 882.8 (intern: D216) verwiesen. To explain the mode of action of the triangle generator 35 and the control of the output of the microcontroller 11 by RGL .mu.C 11 is to DE 198 36 882.8 (internal: D216) referenced. Liegt die Spannung des Dreiecksignals am Minuseingang des Komparators 120 unter der des Referenzsignals am Pluseingang des Komparators 120, so ist der Ausgang OFF des Komparators 120 auf HIGH, und die unteren Transistoren 141 bzw. 143 können über die logischen UND-Glieder 147 bzw. 148 durch OUT1 bzw. OUT2 aus- und eingeschaltet werden. If the voltage of the triangular signal at the negative input of comparator 120 below that of the reference signal at the positive input of comparator 120, then the output OFF of the comparator 120 is HIGH, and the lower transistors 141 and 143 can use the logical AND gates 147 and 148 Removing by OUT1 and OUT2, and are turned on. Liegt die Spannung des Dreieckssignals über der des Referenzsignals, so ist der Ausgang OFF des Komparators 120 auf LOW und damit kann die Statorwicklung 38 nicht bestromt werden. If the voltage of the triangular signal with that of the reference signal, then the OFF output of the comparator 120 is LOW and thus the stator coil 38 can not be energized.

Über die Spannung am Kondensator 124 und damit auch am Kondensator 127 wird also das sogenannte Tastverhältnis eingestellt, das Verhältnis der Dauer, die der Ausgang des Komparators 120 während einer Periode des Dreieckssignals auf HIGH ist zu einer ganzen Periode. Over the voltage on capacitor 124 and thus across the capacitor 127 so the so-called duty ratio is set, the ratio of the duration of the output of the comparator 120 during a period of the triangular signal to HIGH to a whole period. Das Tastverhältnis kann zwischen 0 % und 100 % liegen. The duty cycle can be between 0% and 100%. Ist die Motordrehzahl zB zu hoch, so wird der Kondensator 124 über RGL entladen und damit das Tastverhältnis verkleinert. If the engine speed is too high, for example, the capacitor is reduced 124 via RGL discharged and thus the duty cycle. Das Ganze wird als Pulsweitenmodulation (PWM) bezeichnet. The whole thing is called pulse width modulation (PWM). Der Pullup-Widerstand 128 dient dazu, den Open-Collector-Ausgang OFF des Komparators 120 bei HIGH auf +Vcc zu ziehen. The pull-up resistor 128 is used to pull the open collector of the comparator 120 at OFF HIGH to + Vcc.

Um beim Einschalten den Motor starten zu können, wird der Kondensator 124 bei der Initialisierung eine vorgegebene Zeitdauer über RGL aufgeladen, damit die Spannung am Kondensator 127 den erforderlichen Mindestwert für das Einschalten des Komparators 120 und damit der Brücke 37 erreicht. In order to start the engine when switching on, the capacitor 124 is charged a predetermined time period over RGL during initialization, so that the voltage across the capacitor 127 reaches the minimum value required for the switching of the comparator 120 and thus the bridge 37th

Eine Strombegrenzung 44 wird dadurch verwirklicht, daß der Strom in der Statorwicklung 38 über einen Meßwiderstand 140 zu Masse 100 fließt. A current limit 44 is realized in that the current in the stator winding 38 flows via a precision resistor 140 to ground 100th Je höher der Strom durch den Widerstand 140 ist, desto höher ist die Spannung an ihm und damit auch das Potential am Punkt 149. The higher the current through the resistor 140, the higher the voltage is at it, and thus the potential at point 149th

Erreicht das Potential an 149 einen bestimmten Wert, so wird der Transistor 150 leitend und reduziert die Spannung am Kondensator 127, und das Tastverhältnis am Ausgang des Komparators 120 wird dadurch kleiner. the potential at 149 reaches a certain value, the transistor 150 becomes conductive, and reduces the voltage across capacitor 127, and the duty cycle at the output of the comparator 120 is thus smaller. Der Widerstand 126 verhindert, daß der große Kondensator 124 bei einer Strombegrenzung ebenfalls entladen wird, und er beschleunigt die Strombegrenzung, da der kleine Kondensator 127 schneller entladen werden kann. The resistor 126 prevents the large capacitor is also discharged at a current limiter 124, and it is accelerating, the current limiting, since the small capacitor 127 can be discharged faster. Nach dem Ende der aktiven Strombegrenzung wird der kleinere Kondensator 127 durch den großen Kondensator 124 wieder aufgeladen und so auf dessen Spannung gesetzt. After the end of the active current limiting, the smaller capacitor 127 is charged by the large capacitor 124 again, and so is set to the voltage. Der Widerstand 126 und der Kondensator 127 bewirken also, daß die Strombegrenzung 44 eine höhere Priorität als die Regelung besitzt. The resistor 126 and the capacitor 127 therefore cause the current limiter 44 has a higher priority than the control.

Die Strombegrenzung 44 weist ein Filterglied aus einem Widerstand 151 und einem Kondensator 152 gegen Masse, gefolgt von dem npn-Transistor 150, der bei einer genügend hohen Spannung an seiner Basis den Pluseingang des Komparators 120 auf Masse 100 zieht, auf. The current limit 44 has a filter member of a resistor 151 and a capacitor 152 to ground, followed by the NPN transistor 150, which pulls at a sufficiently high voltage at its base to the positive input of comparator 120 to ground 100 on. Dahinter folgt ein weiteres aus den Widerständen 153 und 155 und dem Kondensator 154 bestehendes Siebglied. Behind another of the resistors 153 and 155 and the capacitor 154 existing filter element follows.

Für die Beschreibung einer alternativen Form der Strombegrenzung wird auf DE 198 26 458.5 (intern: D215) verwiesen. For the description of an alternative form of the current limiting 198 26 458.5 DE is on (internal: D215) referenced. Sie kann wie dort auch mit Hilfe eines Komparators aufgebaut werden und programmgesteuert sein. It can be set up as there also with the aid of a comparator and his programmatically.

EEPROM-Funktion EEPROM function

Fig. 14 zeigt den Ausschnitt der Schaltung, der das EEPROM 26 und das Businterface 30 betrifft. Fig. 14 shows the portion of the circuit which relates to the EEPROM 26 and the bus interface 30th Die Pinbelegung des μC 11 ist wieder Fig. 3 zu entnehmen. The pin assignment of the microcontroller 11 is again Fig. To Section 3. Gleiche oder gleich wirkende Teile wie in den vorhergehenden Figuren sind mit denselben Bezugszeichen bezeichnet wie dort. The same or equivalent parts as in the preceding figures are designated by the same reference numerals. Das EEPROM 26 ist zB vom Typ "2- Wire Serial CMOS EEPROM AT24C01A" (ATMEL) The EEPROM 26 is for example of the type "2-Wire Serial CMOS EEPROM AT24C01A" (ATMEL)

Das EEPROM 26 erhält an seinem Dateneingang SDA das Signal ESDA (Fig. 2) des μC 11 und an seinem Eingang SCL das Signal ESCL. The EEPROM 26 receives at its data input the signal SDA ESDA (Fig. 2) of the microcontroller 11 and at its input the signal SCL ESCL. Beide Leitungen sind über Widerstände 172, 173 mit +Vcc verbunden. Both lines are connected via resistors 172, 173 to + Vcc.

Der Schreibschutzeingang WP des EEPROM 26 ist mit dem Pin CS (Chip Select) des μC 11 verbunden. The write protection input WP of the EEPROM 26 is connected to pin CS (Chip Select) of the microcontroller 11 is connected. Ist CS auf HIGH, so ist das EEPROM 26 schreibgeschützt, ist CS auf LOW, so können Daten in das EEPROM 26 geschrieben werden. If CS is HIGH, the EEPROM is write protected 26 CS is LOW, data can be written to the EEPROM 26th Die Anschlüsse VSS, A0, A1 und A2 des EEPROM 26 sind mit Masse 100 verbunden, und der Anschluß VCC des EEPROM 26 mit +Vcc. The terminals VSS, A0, A1 and A2 of the EEPROM 26 are connected to ground 100 and the VCC terminal of EEPROM 26 to + Vcc.

Die Leitungen ESDA und ESCL stellen also den seriellen Bus zwischen dem μC 11 und dem EEPROM 26 dar, der hier als MC-Bus betrieben wird. Lines ESDA and ESCL thus constitute the serial bus between the .mu.C 11 and the EEPROM 26, which is operated to herein as MC bus.

Normalerweise wird das EEPROM 26 in der Fabrik einmal über das Businterface 30 programmiert, eine Neuprogrammierung ist jedoch jederzeit möglich. Normally, the EEPROM 26 is programmed in the factory once via the bus interface 30, but reprogramming is possible at any time. Alternativ kann der Motor auch ohne den Bus 30 betrieben werden, wobei das EEPROM 26 dann mittels einer bekannten Vorrichtung programmiert wird, ehe man es in den Motor einsetzt. Alternatively, the motor can also be operated without the bus 30, the EEPROM 26 is then programmed by means of a known device, before it is used in the engine.

Das Businterface 30 arbeitet mit einem I IC-Bus. The bus interface 30 operates with an I IC bus. Es verfügt über eine Datenleitung DATA mit einem Anschluß 160, die über einen Widerstand 162 an den Anschluß SDA des μC 11 angeschlossen ist. It has a data line DATA connected to a terminal 160 which is connected to the terminal SDA of the microcontroller 11 via a resistor 162nd Vom Anschluß SDA führt ein Widerstand 165 zu +Vcc und ein Kondensator 167 zu Masse 100. Außerdem ist der Anschluß SDA mit dem Emitter eines pnp-Transistors 168 verbunden, dessen Kollektor mit Masse 100 und dessen Basis über einen Widerstand 169 mit dem Anschluß N16 des μC 11 verbunden sind. From the terminal SDA, a resistor 165 leads to + Vcc and a capacitor 167 to ground 100. In addition, the terminal SDA is connected to the emitter of a PNP transistor 168 whose collector is connected to ground 100 and its base connected through a resistor 169 to the terminal N16 of .mu.C are connected. 11

Weiterhin hat das Businterface 30 eine Taktleitung CLOCK mit einem Anschluß 161 , die über einen Widerstand 163 an den Anschluß SCL des μC 11 angeschlossen ist. Further, the bus interface 30, a clock line CLOCK to a terminal 161 which is connected to the terminal SCL of the microcontroller 11 via a resistor 163rd Vom Anschluß SCL des μC 11 führt ein Widerstand 164 zu +Vcc und ein Kondensator 166 zu Masse 100. SCL from the terminal of the microcontroller 11, a resistor 164 to + Vcc and a capacitor 166 to ground 100 leads.

Die Schaltung mit dem pnp-Transistor 168 dient dazu, sowohl den Ausgang N16 als auch den Eingang SDA des μC 11 mit der bidirektionalen Leitung DATA des IIC- Buses zu verbinden. The circuit with the PNP transistor 168 is used to connect both the output N16 and the input SDA of the microcontroller 11 to the bidirectional line DATA of the IIC bus.

Für eine weitergehende Beschreibung des EEPROM 26, des Businterfaces 30 und deren Programmierung wird auf DE 198 26 458.5 (intern: D215) verwiesen. For a further description of the EEPROM 26, the bus interface (internal: D215) 30 and their programming is made to DE 198 26 458.5 referred to.

Mit dem Businterface 30 ist es möglich, Werte im EEPROM 26 zu verändern. With the bus interface 30, it is possible to change values in the EEPROM 26th So kann zB die minimale Drehzahl n_min, ab der die Kommutierung mit Zündwinkel eingeschaltet werden soll, durch das Setzen des Werts t_SZW im EEPROM verändert werden und somit die Konfiguration des Motors geändert werden. Thus, for example n_min the minimum speed at which the commutation is to be switched to firing angle can be varied by setting the value t_SZW in the EEPROM and thus the configuration of the motor to be changed. Ebenso geändert werden kann zB die Zündwinkelzeit t_ZW. the Zündwinkelzeit t_ZW can also be changed, for example.

Funktionsmanager function Manager

Fig. 15 zeigt ein Flußdiagramm mit einer möglichen Ausführungsform des in dem μC 11 ablaufenden Gesamtprogramms. Fig. 15 is a flowchart showing a possible embodiment of the flow in .mu.C 11 overall program. Nach dem Einschalten des Lüfters wird in dem μC 11 ein interner Reset ausgelöst. After switching on the fan, an internal reset is triggered in .mu.C. 11 In S600 erfolgt die Initialisierung des μC 11. Es werden zB Parameter aus dem EEPROM 26 in das RAM des μC 11 übertragen. In S600, the initialization of the microcontroller 11, takes place, for example, parameters from the EEPROM 26 are transferred to the RAM of the microcontroller. 11

Nach der Initialisierung erfolgt ein Sprung in den bereits erwähnten Funktionsmanager 190, der in S602 beginnt. After initialization, a jump in the aforementioned function manager 190 that begins in S602. Dieser regelt den Ablauf der einzelnen Unterprogramme und bestimmt deren Prioritäten. This regulates the execution of the individual programs and specify their priorities.

Als erstes werden die Funktionen abgearbeitet, die zeitkritisch sind und bei jedem Durchlauf abgearbeitet werden müssen. First, the functions are processed, which are time-critical and must be processed at each pass. Hierzu zählt die Kommunikationsfunktion COMM in S602, da der IIC-Bus 30 (Fig. 14) zB bei einer Baudrate von 2 k alle 250 μs überprüft werden muß. This includes the communication function COMM in S602 because the IIC bus 30 (Fig. 14) for example at a baud rate of 2 k every 250 microseconds must be checked.

Fig. 16 zeigt ein beispielhaftes Funktionsregister 195, in dem für jede weitere Funktion ein Bit reserviert ist. Fig. 16 shows an example of a function register 195, in the other for each function, one bit is reserved.

In diesem Beispiel ist das Funktionsregister 195 1 Byte groß, und es sind, von dem niederwertigsten Bit (LSB) beginnend, die folgenden Anforderungsbits für die unten erklärten anforderbaren Funktionen definiert: In this example, the function register 195 is 1 byte long, and there are, from the least significant bit (LSB) starting, defines the following request for the explained below requestable functions:

• Bit1 : FCT_ZWV für die Zündwinkelberechnungsroutine, • Bit 1: FCT_ZWV for Zündwinkelberechnungsroutine,

• Bit2: FCT_RGL für eine Regelroutine beliebiger Art. • Bit 2: FCT_RGL for a control routine of any kind.

Die restlichen Bits sind für zusätzliche anforderbare Funktionen reserviert, die bei Bedarf in den Funktionsmanager 190 eingefügt werden können. The remaining bits are reserved for additional requestable functions that can be added as needed into function manager 190th

Soll eine bestimmte anforderbare Funktion durch eine andere Funktion oder eine Interruptroutine angefordert werden, so wird das Bit der anzufordernden Funktion auf 1 gesetzt. If a specific requestable function by another function or an interrupt is requested, the bit of the function to be requested is set to 1. Das nächste Mal, wenn der Funktionsmanager 190 bei einem Durchlauf keine andere anforderbare Funktion mit höherer Priorität aufgerufen hat, so wird diese Funktion ausgeführt. The next time the function manager 190 during a pass no other requestable higher priority function is called, this function is performed.

Ist eine angeforderte Funktion abgearbeitet, so setzt sie ihr Bit (Fig. 16) wieder auf 0, zB FCT . If a requested function has been executed, it sets its bit (Fig. 16) to 0, for example, FCT. RGL := 0. RGL: = 0th

In Fig. 15 wird nach S602 in einer vorbestimmten Reihenfolge, von der wichtigsten anforderbaren Funktion ausgehend, jeweils geprüft, ob deren Anforderungsbit gesetzt ist. In Fig. 15, after S602 in a predetermined order, starting from the most important requestable function, each tested whether its request is set. Ist dies bei einer Funktion der Fall, so wird diese ausgeführt, und daraufhin wird wieder an den Anfang S602 des Funktionsmanagers 190 gesprungen. Is this at a function of the case, it will be executed, and then branches back to the beginning S602 of function manager 190th Die Reihenfolge der Überprüfung des Funktionsregisters 195 gibt die Prioritierung der anforderbaren Funktionen vor. The order of the review of the function register 195 sets the prioritization of the requestable functions. Je höher eine solche Funktion in dem Funktionsmanager 190 steht, desto höher ist ihre Priorität. The higher such a function in function manager 190 is, the higher its priority. Die aufgerufenen Funktionen müssen so kurz sein, daß ihre Abarbeitungszeit, addiert zu den immer ausgeführten Funktionen (hier S602) und den Interruptroutinen, nie größer als die maximal zulässige Zeit zwischen zwei Abfragen des IIC-Buses 30 ist. The functions called must be so short that their execution time, added to the ever executed functions (here S602) and the interrupt routines, never greater than the maximum allowable time between two samples of the IIC Buses 30. In dem obigen Beispiel mit einer Baudrate von 2 k und einer maximal zulässigen Zeit von 250 μs liegt die maximale Abarbeitungszeit für die in S610 oder S614 aufgerufenen Funktionen bei ca. 100 μs. In the above example at a baud rate of 2 k and a maximum allowable time of 250 microseconds is the maximum processing time for the called in S610 or S614 functions at about 100 microseconds.

In S610 wird überprüft, ob das Anforderungsbit FCT_ZWV für die Zündwinkelverschiebung gesetzt ist, also den Wert 1 hat. In S610, it is checked whether the request bit FCT_ZWV is set for the ignition angle, so has the value 1. Ist es gesetzt, so wird nach S612 gesprungen, und die Zündwinkel-Berechnungsroutine (Fig. 9 oder 19) wird ausgeführt. If it is set, execution jumps to S612, and the ignition angle calculation routine (Fig. 9 or 19) is executed. Vor der Beendigung setzt die Zündwinkel-Berechnungsroutine ihr Anforderungsbit FCT_ZWV zurück und fordert in S274 durch Setzen des Anforderungsbits FCT_RGL die Regelroutine an. Prior to completion, the ignition angle calculation routine resets its request bit FCT_ZWV and calls in S274 by setting request bit FCT_RGL the control routine at.

War in S610 FCT_ZWV nicht gesetzt, so wird in S614 überprüft, ob FCT_RGL gesetzt ist. Was not set in S610 FCT_ZWV so, it is checked in S614 whether FCT_RGL is set. Ist dies der Fall, so wird in S618 eine Regelroutine zur Regelung der Motordrehzahl aufgerufen. If this is the case, then in S618 a control routine is called to control the motor speed.

Waren keine der in S610 und S614 überprüften Bits gesetzt, so wird wieder nach S602 gesprungen, und die Funktionen, die bei jedem Durchlauf des Funktionsmanagers 190 ausgeführt werden, werden erneut aufgerufen. Were not the checked in S610 and S614 bits are set, then branches back to S602, and the functions that are performed on each pass of function manager 190, to be called again.

Fig. 15 zeigt auch bei 620 symbolisch einen Hall-Interrupt, der die höchste Priorität L1 (Level 1) hat. Fig. 15 also shows symbolically at 620 a Hall interrupt having the highest priority L1 (Level 1). Ein Hall-Interrupt hat diese hohe Priorität, weil die genaue Erfassung der Hall-Signale für einen ruhigen Lauf des Motors 39 sehr wichtig ist. A Hall interrupt has this high priority because accurate sensing of the Hall signals for a smooth running of the engine 39 is very important. Er unterbricht alle Prozesse des Funktionsmanagers 190, wie durch einen Pfeil 621 symbolisiert. It interrupts all processes of function manager 190, as symbolized by an arrow 621st

Unter dem Hall-Interrupt ist bei 622 ein Timer-Interrupt dargestellt. Under the Hall interrupt a timer interrupt is shown at the 622nd Dieser hat eine niedrigere Priorität L2 und unterbricht alle Prozesse unter ihm, wie durch den Pfeil 623 angedeutet. This has a lower priority L2 and interrupts all processes below it, as indicated by the arrow 623rd Eine exakte Kommutierung ist ebenfalls sehr wichtig für einen ruhigen Lauf des Motors, und deshalb hat der Timer-Interrupt 622 die zweithöchste Priorität. An exact commutation is also very important for a smooth running of the engine, and therefore the timer interrupt 622 has the second highest priority.

Wenn Hall-Interrupt und Timer-Interrupt gleichzeitig angefordert würden, würden sie nach der Reihenfolge ihrer Priorität abgearbeitet. If Hall interrupt and timer interrupt were to be requested simultaneously, they would be executed in order of priority. Die nächstniedere Priorität L3 hat die Funktion COMM, da bei der Kommunikation über den Bus 30 keine Daten verlorengehen dürfen. The next-lower priority L3 COMM has the function since afford to lose any data when communicating via the bus 30th

Die nächstniedere Priorität L4 hat die Funktion ZWV, die in S230 angefordert werden kann und die in Fig. 9 (oder 19) dargestellt ist. The next-lower priority L4 has the ZWV function that can be requested in S230 and in Fig. 9 (or 19) is illustrated.

Die niedrigste Priorität L5 hat die Funktion RGL (S614), da sich die Drehzahl eines Motors - wegen dessen mechanischer Trägheit - gewöhnlich langsam ändert, so daß die Regelfunktion meist nicht zeitkritisch ist. The lowest priority L5 has the function RGL (S614), because the speed of a motor itself - because of its mechanical inertia - changes usually slow, so that the control function often is not time critical. Ggf. Possibly. kann man aber auch die Reihenfolge der Schritte S610 und S614, und damit deren Priorität, vertauschen. but you can also the order of steps S610 and S614, and thus their priority, swap.

Auf diese Weise gelingt es, die verschiedenen "Bedürfnisse" des Motors 39 in eine vorgegebene Hierarchie einzuordnen und die Ressourcen des μC 11 optimal für den Betrieb des Motors zu nutzen. In this way it is possible to classify the various "needs" of the engine 39 in a predefined hierarchy, and optimal use of the resources of the microcontroller 11 for the operation of the engine.

Zündwinkelverschiebung unter Berücksichtigung von Magnetisierungsfehlern des Rotors 39 Ignition angle taking into account errors magnetization of the rotor 39

Fig. 17 zeigt einen vierpoligen Außenrotor 39. Dieser hat vier radial magnetisierte Pole 534, 535, 536, 537, die in der dargestellten Weise durch (symbolisch angedeutete) Übergangsbereiche 530 bis 533 voneinander getrennt sind. Fig. 17 shows a four-pole external rotor 39. This has four radially magnetized poles 534, 535, 536, 537, which are separated in the manner shown by (symbolically indicated) transition regions 530-533 from each other. Es wird als Beispiel eine sogenannte trapezförmige Magnetisierung angenommen, vgl. It is assumed as an example of a so-called trapezoidal magnetization, see. Fig. 18A. FIG. 18A.

Wegen der Inhomogenitäten des Magnetmaterials, und wegen unvermeidbarer Fehler in der (nicht dargestellten) Magnetisierungsvorrichtung, ist der Verlauf der Magnetflußdichte besonders in den Übergangsbereichen 530 bis 533 nicht exakt definiert, sondern von Rotor zu Rotor etwas verschieden. Because of the inhomogeneity of the magnetic material, and because of unavoidable errors in the (not shown) magnetizing apparatus, the variation of the magnetic flux density is not particularly defined in the transition regions 530-533 exactly, but something different from rotor to rotor.

Nimmt man an, daß sich der Rotor 39 in Richtung des Pfeiles 540 am Hallgenerator 40 vorbeidreht, so erhält man am Hallgenerator 40 eine Hallspannung UH, deren Verlauf in Fig. 18A - wegen der Anschaulichkeit stark übertrieben - dargestellt ist. Assuming that the rotor rotates past the Hall generator 40 in the direction of arrow 540 39, one obtains a Hall voltage UH, the course in Figure 18A on the Hall generator 40 - is shown - greatly exaggerated for clarity.. Der Teil 534' dieser Hallspannung UH wird vom Rotorpol 534 (Nordpol) erzeugt und ist etwas zu kurz, dh die Nulldurchgänge dieser Hallspannung liegen bei 0° el. und etwa 170° el. statt - wie gewünscht - bei 0° el. und exakt 180° el. The portion 534 'of this Hall voltage UH is generated by the rotor pole 534 (north pole) and is slightly too short, that is, the zero crossings of the Hall voltage will be 0 ° el and about 170 ° el instead -.. As desired - at 0 ° el and accurately. 180 ° el.

Der Teil 535' der Hallspannung wird vom Rotorpol 535 erzeugt. The portion 535 'of the Hall voltage generated by the rotor pole 535th Er beginnt bei etwa 170° el., endet bei etwa 370° el., und ist zu lang. It starts at about 170 ° el., Ending at about 370 ° el., And is too long.

Der Teil 536' wird vom Rotorpol 536 erzeugt und erstreckt sich von etwa 370° el. bis etwa 550° el., hat also zwar die richtige Länge, aber nicht die richtige Phasenlage. The portion 536 'is generated by the rotor pole 536 and extends from approximately 370 ° el. To about 550 ° el., So does have the correct length, but not the correct phase position.

Der Teil 537' wird vom Rotorpol 537 erzeugt und erstreckt sich von etwa 550° el. bis 720° el., ist also etwas zu kurz. The portion 537 'is generated by rotor pole 537 and extends from about 550 ° el. And 720 ° el., That is a little too short. 720° el. entspricht bei diesem Motor wieder 0° el., weil sich der Rotor 39 dann einmal voll gedreht hat, und der Spannungsverlauf wiederholt sich dann, was in Fig. 18A bei 534'A angedeutet ist. 720 ° el. Equivalent in this engine again 0 ° el., Because the rotor 39 has then fully rotated one time, and the voltage waveform then repeats, as indicated in Fig. 18A at 534'A.

Fig. 18B zeigt das zugehörige Signal HALL, welches ein Spiegelbild der eben erläuterten Magnetisierungsfehler ist, dh sein erster Abschnitt 534" ist zu kurz, sein zweiter Abschnitt 535" ist zu lang, sein dritter Abschnitt 536" ist phasenverschoben, und sein vierter Abschnitt 537" ist zu kurz. FIG. 18B shows the associated signal HALL, which is a mirror image of the magnetization error just explained, that is, its first portion 534 "is too short, its second portion 535" is too long, its third portion 536 "is phase-shifted, and its fourth section 537 " is too short. Nach dem Winkel 720° el. beginnt ein Abschnitt 534"A, der - bei konstanter Drehzahl - dem Abschnitt 534" entspricht. . After angle 720 ° el begins a section 534 "A, of - the portion 534 - at constant speed" corresponds.

Die Abschnitte 534" und 537" täuschen also eine zu hohe Drehzahl vor, und der Abschnitt 535" eine zu niedrige Drehzahl. The sections 534 "and 537" so fooled too high a speed before, and the section 535 "at the wrong speed.

Wird der Abschnitt 534" verwendet, um die Zeit t_TI für den Abschnitt 536" zu berechnen, wie das bei dem vorhergehenden Ausführungsbeispiel erläutert wurde, so wird im Abschnitt 536" zu früh kommutiert. The portion 534 "is used to time t_TI for the portion 536" to be calculated as explained in the previous embodiment, so "is commutated too early in section 536th

Wird der Abschnitt 535" verwendet, um die Zeit t_TI für den Abschnitt 537" zu berechnen, so wird dort zu spät kommutiert. If the Section 535 "used the time t_TI for the section 537" to calculate, then there commutes too late.

Dies kann zu einem unregelmäßigen Lauf des Motors und zu erhöhten Motorgeräuschen führen. This can lead to irregular running of the engine and increased engine noise.

Deshalb wird nach der Erfindung bevorzugt die Hall-Länge eines Abschnitts des Signals HALL dazu verwendet, um die Zeit t_TI für den eine Rotorumdrehung späteren Abschnitt zu berechnen, wie das in Fig. 5 mit den Bezugszeichen 304, 306, 308 für einen vierpoligen Rotor symbolisch an einem Beispiel dargestellt ist. Therefore, the Hall length of a portion of the HALL signal is according to the invention preferably used in order for a rotor revolution later section to calculate the time t_TI, as symbolically in Fig. 5 by reference numerals 304, 306, 308 for a four-pole rotor is illustrated by an example. ZB wird in Fig. 18B die Hall-Länge UHN des Abschnitts 534" dazu verwendet, um die Zeit t_TI für den Abschnitt 534"A zu berechnen, wie das symbolisch und beispielhaft bei 542, 544, 546 dargestellt ist. For example, "is used to set the time for the t_TI section 534" in Fig. 18B, the Hall length UHN of the section 534 to calculate A, as shown symbolically by way of example at 542, 544, 546. Dann treten diese Fehler nicht auf, denn bei konstanter Drehzahl sind zB die Abschnitte 534" und 534"A identisch, so daß sich Fehler nicht addieren können. Then, these errors do not occur, because at constant speed sections include 534 "and 534" A identical, so that errors can not add up.

Fig. 19 zeigt eine entsprechende geänderte Zündwinkelberechnungsroutine für die Kommutierung mit Zündwinkelverschiebung, wobei in der beschriebenen bevorzugten Weise eine Kompensation der Magnetisierungsfehler des Rotors 39 stattfindet. Fig. 19 shows a corresponding modified Zündwinkelberechnungsroutine for commutation with ignition angle, wherein in the described preferred manner, a compensation error of the magnetization of the rotor 39 takes place. Alle Teile, die bereits in Fig. 9 vorgekommen sind, erhalten die gleichen Bezugszeichen wie dort und werden deshalb nicht nochmals beschrieben. All parts that have already occurred in Fig. 9 are given the same reference numerals and will not be described again. Der Leser wird auf die dortige Beschreibung verwiesen. The reader is referred to the description.

Im Schritt 268' werden anstatt der direkten Berechnung des Timerstartwerts t_TI (vgl. S268 in Fig. 9) zwei Variablen t_4 und t_3 zusätzlich verwendet, um die berechneten Timerstartwerte t_TI zwischenzuspeichern. In step 268 'are, instead of the direct calculation of the timer start value t_TI (see FIG. S268 in Fig. 9) has two variables and t_4 t_3 additionally used to latch the calculated timer start values t_TI. Dem für die folgende Hallzeit UHN verwendeten Timer Startwert t_TI wird der aus der Hall-Länge t_HN-4 berechnete Timerstartwert t_4 zugeordnet. The timer start value used for the following Hall time UHN t_TI calculated from the Hall length t_HN-4 timer starting value is assigned t_4.

Anschließend werden die berechneten Timerstartwerte verschoben, so daß sie für die nächste Zündwinkelberechnung in der richtigen Variablen stehen. Then, the calculated timer start values are shifted so that they are available for the next ignition angle in the correct variables. Der Wert t_3, der aus der Hall-Länge t_HN-3 berechnet wurde, wird nach t_4 verschoben, und der in der aktuellen Zündwinkelberechnung berechnete Timer Startwert (t_H - t_ZW), wird in t_3 gespeichert. The value t_3, which was calculated from the Hall length t_HN-3 is shifted to t_4, and the calculated in the current ignition angle timer start value (t_H - t_ZW) is stored in t_3. (Hierbei ist t_H die Hall-Länge MHN-2). (This is t_H Hall length MHN-2).

Weiterhin ist der Schritt S267 neu eingefügt. Further, the step S267 is newly added. Die Speichervariablen t_4 und t_3 werden beim Ausschalten der Zündwinkelverschiebung (in S266: SZW: = 0) auf den Wert 50.000 gesetzt, damit sie einen definierten Zustand haben. The memory variables t_4 and t_3 be turning off the ignition angle (in S266: SZW: = 0) is set to the value of 50,000, so that they have a defined state.

Fig. 20 zeigt eine beispielhafte Hall-Interruptroutine für eine erfindungsgemäße Kommutierung ohne Zündwinkelverschiebung, wie sie in Fig. 4 dargestellt ist. Fig. 20 shows an exemplary Hall interrupt routine for an inventive commutation without ignition angle, as shown in Fig. 4. Bei jedem Hall-Interrupt (Y in Fig. 4) wird das gerade ablaufende Programm unterbrochen, die sogenannte Umgebung des μC 11 (zB der Stapelzeiger [stack pointer] und die Register) wird abgespeichert, und die zu dem Interrupt gehörige Interrupt-Routine wird aufgerufen. In each Hall interrupt (Y in Fig. 4) the currently executing program is interrupted, the so-called environment of the microcontroller 11 (such as the stack pointer [stack pointer] and the register) is stored, and associated with the interrupt interrupt routine is called. Wenn die Interrupt-Routine abgearbeitet ist, gibt sie einen Befehl RETI (Return From Interrupt). When the interrupt routine is executed, it gives an instruction RETI (Return From Interrupt). Daraufhin wird die Umgebung des μC 11 so, wie sie vor dem Interrupt war, wieder hergestellt, und das unterbrochene Programm arbeitet weiter. Then the area of the microcontroller 11 is as it was before the interrupt, restored, and the interrupted program continues. ln diesem Ausführungsbeispiel wird für die Messung der Hall-Länge HL (Fig. 4) ebenfalls der 16 Bit-Timer CNTJHL verwendet, der, beginnend bei einem vorgegebenen Startwert, fortlaufend herunterzählt und beim Erreichen von 0, wenn die Zählung fortgesetzt wird, wieder auf seinen maximalen Wert springt, sich also wie ein Ringzähler verhält. In this embodiment, for measurement of the Hall length HL (Fig. 4) also of the 16-bit timer CNTJHL used, the starting counts down continuously at a predetermined start value, and upon reaching 0 when the counting is continued, again jumps its maximum value, that is behaves as a ring counter. Dieser Timer ist auch hier Bestandteil des μC 11. Die Hall- Länge HL kann hier zB für eine Drehzahlregelung verwendet werden. This timer is also part of the microcontroller 11. The Hall length HL can be used eg for a speed control here.

In S702 wird die Ist-Hall-Länge HL (vgl. Fig. 4) bestimmt. In S702, the actual Hall length HL (4 cf. Fig.) Is determined. Ein aktueller Timerwert t_E (Fig. 4) wird aus dem Timer CNTJHL ausgelesen, und durch die Subtraktion eines gespeicherten "alten" Timerwerts t_0 (Fig. 4: Der Zeitpunkt des vorhergehenden Timer-Interrupts Y) wird die Hall-Länge HL berechnet. A current timer value t_E (Fig. 4) is read from the timer CNTJHL, and by the subtraction of a stored 'old' timer value t_0 (Fig. 4: The time of the previous timer interrupt Y) is calculated Hall length HL. Hierzu wird tJΞ - 1_0 berechnet und von dem Ergebnis das Zweierkomplement gebildet. For this tJΞ is - calculated 1_0 and formed on the result of the two's. So erhält man immer die korrekte Zählerdifferenz, falls der Zähler nicht mehr als die Hälfte seines maximalen Werts weitergelaufen ist. Thus one always obtains the correct difference counter if the counter is not more than half of its maximum value on running.

Daraufhin wird der aktuelle Timerwert t_E in t_0 gespeichert (S702). Then, the current timer value is stored in t_E t_0 (S702). Die Auflösung des in diesem Ausführungsbeispiels verwendeten Timers CNTJHL ist 1 μs, die Hall- Länge HL liegt also in μs vor. The resolution of the timer used in this embodiment is CNTJHL 1 microseconds, that the Hall length HL is in microseconds before.

Ist zB t_0 = 45000 und t_E = 35000, so erhält man eine Hall-Länge HL = (45000 - 35000) = 10000, was 10000 μs entspricht. If, for example t_0 = 45000 and t_E = 35000, the result is a Hall length HL = (45000-35000) = 10000, which corresponds to 10,000 microseconds.

In den folgenden Schritten wird die Kommutierung ausgeführt. In the following steps, commutation is performed. In S704 wird geprüft, ob HALL = 1 (HIGH) ist. In S704 it is checked whether HALL = 1 (HIGH). Ist HALL = 1 , so wird in S710 OUT2 auf LOW gesetzt. If HALL = 1, is set to LOW in S710 OUT2. Jetzt sind OUT1 und OUT2 auf LOW, und in S712 wird eine zeitliche Kommutierungslücke eingefügt, um bei der Kommutierung einen Kurzschluß in der Brückenschaltung 37 zu verhindern. Now OUT1 and OUT2 to LOW, and in S712, a temporal commutation gap is inserted in order to prevent, during the commutation a short-circuit in the bridge circuit 37th Die Kommutierungslücke hat zB eine Dauer von 50 μs. for example, the commutation gap has a duration of 50 microseconds. In S714 wird OUT1 auf HIGH gesetzt. In S714 is set to HIGH OUT1. In S716 wird schließlich der Port Hall des μC 11 konfiguriert, bei welcher Flanke er einen Hall-Interrupt HALLJNT auslösen soll. In S716, the port of the microcontroller Hall finally is configured 11, wherein said edge it will trigger a Hall interrupt HALLJNT. Die Flanke kann entweder so eingestellt werden, daß bei dem Übergang HIGH nach LOW (fallende Flanke) ein Interrupt ausgelöst wird, oder aber bei dem Übergang von LOW nach HIGH (steigende Flanke). The edge can be either set so that an interrupt is triggered in the transition HIGH to LOW (falling edge), or at the transition from LOW to HIGH (rising edge). Da in dem Zweig S710 bis S716 das Hall-Signal auf HIGH ist, muß der Port HALL auf einen Interrupt bei fallender Flanke, also HIGH nach LOW eingestellt werden, damit beim nächsten Hall-Wechsel wieder ein Hall-Interrupt ausgelöst wird. Since in the branch S710 to S716, the Hall signal is HIGH, the port must HALL, so that again a Hall interrupt is triggered for an interrupt on the falling edge, that are set to LOW HIGH at the next Hall change. Dies geschieht in S716. This is done in S716. Ist in S704 HALL = 0 (LOW), so geschieht in S720, S722, S724 analog die umgekehrte Kommutierung, und bei S726 das umgekehrte Setzen von HALLJNT. If in S704 HALL = 0 (LOW), as is done in S720, S722, S724, analogously, the reverse commutation, and at S726 the reverse setting HALLJNT. - In S730 wird die Hall-Interruptroutine gemäß Fig. 20 verlassen. - In S730, the Hall interrupt routine is exited as FIG. 20.

Fig. 21 zeigt schematisch den Ablauf der Kommutierung bei n > 300 U/min, zB bei 2.000 U/min, also mit Zündwinkelverschiebung. Fig. 21 shows schematically the sequence of commutation when n> 300 U / min, for example, at 2,000 U / min, that is, with angle shift.

Bei Fig. 21 A ist das Rotorstellungssignal HALL dargestellt, das jeweils an den Stellen HN, HN+I , HN+2 einen rotorstellungsabhängigen Interrupt (Fig. 8) auslöst, also einen Hall-Interrupt, wie in Fig. 4 bei Y angegeben. In Fig. 21 A, the rotor position signal HALL is shown, which triggers in each case at the locations HN, HN + I, HN + 2 a rotor position-dependent interrupt (Fig. 8), that a Hall interrupt, as indicated in Fig. 4 in Y.

Beginnend beim Hall-Interrupt HN wird durch den Timer CNTJHL die Zeit t_TI gemessen, die nach der Gleichung (6) aus den Werten t_HN und t_ZW berechnet wurde. Beginning with the Hall interrupt HN t_TI the time measured by the timer CNTJHL, which was according to the equation (6) from the values t_HN and t_ZW calculated. Der Wert t_ZW kann, wie bereits angegeben, über den Bus 30 geändert werden. The value t_ZW, as already indicated, be changed via the bus 30th

Zum Zeitpunkt TN+1 erreicht der Timer CNTJHL den Wert 0 und löst eine Motorsteuerungs-Interruptroutine gemäß Fig. 10 aus, also einen Timer-Interrupt. At the time TN + 1, the timer CNTJHL reaches 0 and causes a motor control interrupt routine shown in FIG. 10, that a timer interrupt.

Gemäß S310 in Fig. 10 werden zum Zeitpunkt TN+1 die Signale OUT2 (Fig. 21 B) und OUT1 (Fig. 21 C) beide zu Null gemacht, dh die Wicklung 38 wird von der Stromzufuhr getrennt, und nach einer Kommutierungslücke t_G (bewirkt durch die Programmschritte S312, S314, S316) wird bei S322 das Signal OUT1 auf HIGH gesetzt, da HALL = 1 ist, während OUT2 auf LOW bleibt, wie im Schritt S310 gespeichert. According to S310 in Fig. 10, the signals OUT2 (Fig. 21 B) and OUT1 (Fig. 21 C), at time TN + 1 both made zero, that is, the winding 38 is disconnected from the power supply, and (after a commutation T_g caused by the program steps S312, S314, S316) is set at S322, the signal OUT1 to HIGH because HALL = 1, while OUT2 remains LOW, as shown at step S310 stored. OUT1 = HIGH bedeutet, daß in Fig. 1 die Transistoren 141 und 144 leitend werden. OUT1 = HIGH means that the transistors 141 and 144 conductive in FIG. 1.

Ebenso werden zum Zeitpunkt TN+2 durch den Schritt S310 der Routine gemäß Fig. 10 die beiden Signale OUT1 und OUT2 auf LOW gesetzt, und anschließend wird nach der Kommutierungslücke t_G der Wert OUT2 auf HIGH gesetzt, da HALL = 0 ist, vgl. Also, see, at the time TN + 2 set by the step S310 of the routine of Fig. 10, the two signals OUT1 and OUT2 to LOW, and then the value OUT2 is set to HIGH after the commutation T_g as HALL = 0. die Schritte S318, S322 der Fig. 10, während der Wert OUT1 den Wert LOW beibehält, der im Schritt S310 gespeichert wurde. the steps S318, S322 of FIG. 10, while the value OUT1 maintains the LOW value that was stored in step S310. Dadurch werden in Fig. 1 die Transistoren 142 und 143 leitend. Thereby, the transistors 142 and 143 become conductive 1 in Fig..

Fig. 22 zeigt unten das Signal HALL, und oben den Strom i_M (Fig. 1) in der einzigen Statorwicklung 38. Bei Fig. 22 ist die Zündwinkelverschiebung ausgeschaltet, dh t_ZW = 0. Man erkennt, daß sich nach einer Kommutierung zum Zeitpunkt HN (Änderung des Signals HALL) der Strom i_M nur langsam ändert. Fig. 22 shows the bottom signal HALL, and above the current I_m (Fig. 1) in the single stator winding 38. In Fig. 22, the ignition angle is switched off, ie t_ZW = 0. It can be seen that after commutation the time HN (change in signal HALL) of the current I_m changes only slowly. Er erreicht deshalb in diesem Fall nur eine niedrige Amplitude, dh der Motor M erzeugt nur eine niedrige Leistung. therefore, it reaches only a low amplitude in this case, ie the motor M produces only low power.

Fig. 23 zeigt wieder unten das Signal HALL, und darüber den Strom i_M (Fig. 1), aber mit verfrühter Kommutierung ("Frühzündung"), dh der Strom i_M wird um die Zeit t_ZW früher als der Hallwechsel HN kommutiert. Fig. 23 shows again below the signal HALL, and above the current I_m (Fig. 1), but with premature commutation ( "pre-ignition"), ie, the current is commutated to the time I_m t_ZW earlier than the Hall change HN. Man erkennt deutlich, daß sich der Strom i_M nach der Kommutierung sofort sehr rasch ändert und eine wesentlich höhere Amplitude erreicht als bei Fig. 22, dh der Motor M erzeugt in diesem Fall eine höhere Leistung und kann deshalb eine höhere Drehzahl erreichen. It is clearly seen that the current I_m changes after the commutation immediately rapidly and reached a much higher amplitude than in FIG. 22, that the motor M produces in this case, a higher power and can therefore attain a higher speed. Die Kommutierung liegt bei Fig. 23 etwa 15° el. vor einem Wechsel des Signals HALL. The commutation is Fig. 23 about 15 ° el. Before a change of the signal HALL.

Es folgt eine Tabelle mit typischen Beispielen für die Werte der verwendeten Bauteile: Kondensatoren: Following is a table of typical examples of the values of the components used: Capacitors:

135 1,5 nF 135 1.5 nF

127, 152 10 nF 127, 152 10 nF

99, 110, 166, 167 33 nF 99, 110, 166, 167 33 nF

154 100 nF 154 100 nF

Tantalkondensator 124 3,3 μF Tantalum capacitor 124 uF 3.3

Widerstände: resistors:

140 3Ω 140 3Ω

162, 163 47 Ω 162, 163 47 Ω

153, 155 1kΩ 153, 155 1k

133, 136 2.2 kΩ 133, 136 2.2 kΩ

106 3.3 kΩ 106 3.3 kΩ

164, 165 4,7 kΩ 164, 165 4k7

123, 131 , 132 10 kΩ 123, 131, 132 10 k

172, 173 22 kΩ 172, 173 22 kΩ

114, 126 33 kΩ 114, 126 33 kΩ

134 47 kΩ 134 47 kΩ

101 , 112, 128, 169 100 kΩ npn-Transistor 150 BC846 pnp-Transistor 168 BC856B 101, 112, 128 169 100 k npn transistor 150 BC846 PNP transistor 168 BC856B

Komparatoren 108, 120, 130 LM2901D Comparators 108, 120, 130 LM2901D

Hallsensors 40 HW101A Hall sensor 40 HW101A

EEPROM 26 2-Wire Serial CMOS EEPROM EEPROM 26 2-Wire Serial CMOS EEPROM

AT24C01A (ATMEL) AT24C01A (ATMEL)

Mikrocontroller 11 COP842CJ (Nat. Semicond.) Microcontroller 11 COP842CJ (Nat. Semicond.)

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
DE19700479A1 *9 Jan 199717 Jul 1997Papst Motoren Gmbh & Co KgStarting procedure for electrically commutated external rotor two-phase DC motor
GB2305314A * Title not available
US4743815 *1 Sep 198710 May 1988Emerson Electric Co.Brushless permanent magnet motor system
US5285135 *23 Sep 19928 Feb 1994Sgs-Thomson Microelectronics, Inc.Automatic adjustment of commutation delay for brushless DC motor for improved efficiency
US5334917 *28 Aug 19922 Aug 1994W. Schlafhorst Ag & Co.System and method for optimally driving a DC motor
US5717297 *5 Jun 199510 Feb 1998Papst Licensing GmbhDrive circuit for brushless DC motors
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
EP3054582A4 *15 Aug 201413 Sep 2017Mabuchi Motor CoPhase control circuit for brushless motor, brushless motor, and phase control method for brushless motor
US7015671 *14 Oct 200221 Mar 2006Robert Bosch GmbhCircuit for operating an electric motor
Classifications
International ClassificationH02K29/08, H02P6/14, H02P6/16, H02P6/18
Cooperative ClassificationH02P6/15, H02P6/18, H02K29/08
European ClassificationH02K29/08, H02P6/14B, H02P6/18
Legal Events
DateCodeEventDescription
13 Apr 2000AKDesignated states
Kind code of ref document: A1
Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZW
13 Apr 2000ALDesignated countries for regional patents
Kind code of ref document: A1
Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG
4 May 2000DFPERequest for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
7 Jun 2000121Ep: the epo has been informed by wipo that ep was designated in this application
24 Feb 2001WWEWipo information: entry into national phase
Ref document number: 1999938328
Country of ref document: EP
28 Mar 2001WWEWipo information: entry into national phase
Ref document number: 09806619
Country of ref document: US
2 Apr 2001ENPEntry into the national phase in:
Ref country code: CA
Ref document number: 2346118
Kind code of ref document: A
Format of ref document f/p: F
Ref document number: 2346118
Country of ref document: CA
5 Apr 2001ENPEntry into the national phase in:
Ref country code: JP
Ref document number: 2000 575211
Kind code of ref document: A
Format of ref document f/p: F
25 Jul 2001WWPWipo information: published in national office
Ref document number: 1999938328
Country of ref document: EP
6 Dec 2001REGReference to national code
Ref country code: DE
Ref legal event code: 8642
8 Dec 2004WWGWipo information: grant in national office
Ref document number: 1999938328
Country of ref document: EP