WO2011064045A1 - Verfahren und elektronische einheit zum erzeugen von sequenzen - Google Patents

Verfahren und elektronische einheit zum erzeugen von sequenzen Download PDF

Info

Publication number
WO2011064045A1
WO2011064045A1 PCT/EP2010/065422 EP2010065422W WO2011064045A1 WO 2011064045 A1 WO2011064045 A1 WO 2011064045A1 EP 2010065422 W EP2010065422 W EP 2010065422W WO 2011064045 A1 WO2011064045 A1 WO 2011064045A1
Authority
WO
WIPO (PCT)
Prior art keywords
sequence
hardware
sequencer
sequences
signal levels
Prior art date
Application number
PCT/EP2010/065422
Other languages
English (en)
French (fr)
Inventor
Stephen Schmitt
Juergen Hanisch
Original Assignee
Robert Bosch Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch Gmbh filed Critical Robert Bosch Gmbh
Publication of WO2011064045A1 publication Critical patent/WO2011064045A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/025Digital function generators for functions having two-valued amplitude, e.g. Walsh functions

Definitions

  • the invention relates to a method for generating sequences on at least one output of an electronic circuit and an electronic unit for generating sequences. Furthermore, the invention relates to an electronic device and a module for use in the electronic unit. State of the art
  • Sequencers are responsible for implementing any sequence of signal levels at the outputs of a circuit.
  • sequencer function in a microcontroller there are several possibilities. These can be implemented as mixed hardware / software solutions or as pure hardware solutions. As pure hardware solutions, for example, currently common serial interfaces can be considered which implement a specific communication protocol in hardware. Here then only the date to be transmitted and any finer points of the protocol are adjustable. The signal sequence at the outputs of the circuit is then automatically generated according to the respective serial interface protocol.
  • Processor supplied with parameters that determine the time of the next edge to be issued or a series of edges.
  • the reloading of the parameters or the reconfiguration can be done directly in the respective timer or timer unit.
  • eTPU designated unit Enhanced Time Processing Unit
  • a coprocessor within the timer takes over the task of reconfiguring the output units.
  • the coprocessor lies outside the timer unit GPTA (General Purpose Timer Array). This consists of several cells that can be used as counters and comparators and interconnected. TriCore then configures one cell as a comparator and one cell as a counter. The comparator cell then determines the start time of the sequence and triggers the counter cell upon reaching the time.
  • the counter cell counts up to a value preset by the CPU or PCP and then outputs a signal to the output associated with the counter cell.
  • the generation of an arbitrary sequence is possible by a permanent reconfiguration of the cells.
  • This then leads to a high interrupt load on the PCP, since the latter must reset the cells for each edge change of the sequence for the next edge.
  • the interrupt load can be reduced by increasing the number of interconnected cells and then interconnecting them in a chain in accordance with the edge changes to be processed. Although this reduces the interrupt load on the PCP, on the other hand it increases the hardware area required to generate the sequence and uses more resources of a GPTA.
  • the timer is operated by the CPU itself in another microcontroller.
  • the timer control unit (TimerC unit) of the Advanced Timer Unit III has to be operated directly by the CPU.
  • timer C registers are implemented which are programmed with the times at which an event should occur at the outputs of the circuit.
  • dependencies between individual channels in a more complex sequence is not possible there, but a sequence must be determined purely with the times of the individual activities on the different sequence channels.
  • This considerably increases the interrupt load of the CPU since the dependence of a signal change on an external event is first displayed via an interrupt and then has to be operated by the CPU.
  • the document US Pat. No. 6,535,942 B1 describes a method for reducing the interrupt load in a multiprocessor system, in which two central processors which execute a real-time operating system can communicate with one another via a jointly used memory.
  • Document JP 2 138 610 A shows a method for reducing the load of a CPU, wherein a hardware performs a timer control.
  • a subunit or subunit of the TimerC unit can implement up to three sequencer channels. The times for the changes to the outputs of the three sequencer channels must be stored by the CPU in the registers of the subunit. Dependencies of the sequences with each other, which must be reacted to, can not be communicated to the hardware itself. This must be triggered by the CPU by responding to interrupts indicating such external events. This considerably increases the interrupt load of the CPU.
  • the invention relates to a method for generating sequences at outputs of an electronic circuit according to claim 1.
  • the invention further relates to an electronic unit for generating sequences at outputs according to claim 6, an electronic device according to claim 7 and a module according to claim 8.
  • Advantageous embodiments of the invention will become apparent from the dependent claims.
  • a solution is proposed with which sequences can be generated at several outputs of an electronic circuit of any length, which can depend on each other as well as on external events, while keeping the computational burden on a CPU or a coprocessor low. It is intended to combine the generation of multiple sequencer signals at a central location.
  • the combined sequencer signal is subdivided into sections that depend on the time sequence of the signal waveforms.
  • a pure hardware solution is proposed for the realization of a multichannel sequencer that requires minimal interaction with a CPU with maximum flexibility in signal generation, and also minimizes the area for implementation of the circuit.
  • the described problems are eliminated, since this is able to process any sequence of a sequence without the intervention of an external controller.
  • An interaction with the CPU or the coprocessor is only necessary for programming the sequence.
  • it is important that sequences are subdivided into individual processing steps and that the output of the signal levels is stored as a bit pattern. The times for triggering the counter are reflected in commands. The coding of this information must be included in a documentation.
  • One possible use of the multi-channel sequencer may be in a timer of an engine control unit.
  • the presented method provides a solution to generate sequences of arbitrary length at different outputs of an electronic circuit, which sequences may be triggered by internal and / or external interrupts.
  • the procedure can take into account internal and external events, absolute times and / or relative periods.
  • the sum of the sequenced events without interaction of the CPU is not limited to the number of hardware modules as in GPTA, but depends only on the depth of the memory for processing. To perform the method, a low processor utilization is required. In a hardware solution, the instruction cycle is executed by the hardware module itself, reconfiguring the counter values for various registers by an external unit is not necessary. The hardware complexity may be low, which can reduce the required area in the hardware layout.
  • FIG. 1 shows a possible sequence with three signals.
  • FIG. 2 shows the division into sections.
  • FIG. 3 shows the basic course of the data flow.
  • FIG. 4 shows the data flow between a storage medium and a sequencer.
  • FIG. 5 shows an instruction format
  • FIG. 6 shows an embodiment of the described electronic unit. Embodiments of the invention
  • FIG. 1 shows an example of a sequence of three signals.
  • the output is shown for a sequencer with three outputs or three sequencers with one output each.
  • a sequence of a first signal level or a first signal 10, a second signal 12 and a third signal 14 can be seen.
  • the edge changes can be detected by external events 16, 18 and 20, internal events of a second sequencer signal 22, after a certain period of time, For example, 24, and a combination of external and internal events, such as 26, triggered.
  • the signal sequence generated in this way can be used to control or trigger external components or also for interface emulation.
  • a sequencer with an output can, for example, be used to display a serial interface.
  • Sequencer signal divided into sections, which depends on the timing of the waveforms. This division into sections is shown in FIG. 2 on the basis of the example already presented in FIG. There, for example, the section 25 increases the time until the external event 16 at the signal 10. After expiration of a section 30, the signal 12 then rises while the signals 10 and 14 remain unchanged.
  • the temporal sequence is determined in advance and stored as a procedure for the sequencer at a central location. The procedure is independently processed by the proposed hardware module. A reconfiguration of counter values for individual registers by an external unit (CPU / coprocessor) is not required.
  • FIG. 3 shows the basic course of the data flow for generating the multi-channel sequence used as an example with the signals 10, 12 and 14 from FIG. 1.
  • the entire sequence to be generated is transferred from the unit 50 into the sections 2, 25, 30... decomposed and coded together with a flow regulation described below 52 are stored in a storage medium 54.
  • the storage medium 54 may be embodied here, for example, as RAM, flash, FIFO or register set.
  • a central multi-channel sequencer 56 fetches the procedure in a format 58 from the storage medium 54 and converts the procedure into corresponding signal levels 10, 12 and 14 at the outputs of the circuit.
  • FIG. 4 shows the data flow between the storage medium 54 and the sequencer 56 and the data format 60, 62 of the sequence control.
  • the data format contains different information. These are commands 64 that represent the expiration policy and times 66 and 68 for which an action is to be performed.
  • the data format may fill 60 or only a part of the width 62 of the entire data width of the channel between storage medium 54 and sequencer 56.
  • the entire sequence control is stored sequentially in the storage medium 54.
  • FIG. 5 shows an instruction format 80 for the representation of the sequence control.
  • the instruction consists of a bit field 82 in which the signal levels of the outputs of the circuit are coded. In this example, these are signal levels for eight outputs. In the illustration, the signal levels after the time 26 of Figure 1 for the outputs 10, 12 and 14 are shown.
  • a bit position 84 is associated with output 10 in FIG. 1, bit position 86 with output 12, and bit position 88 with output 14.
  • the instruction itself is stored in field 90.
  • the outputs are to be switched accordingly when either an external event 20 occurs or after a relative time after output 12 has changed from "1" to "0".
  • the command can be extended by bit 90 indicating whether or not an interrupt should be displayed during the execution / occurrence of the event. As a result, an interrupt can be triggered at any time within the sequence.
  • the sequencer 56 To determine the times and respond to external events, the sequencer 56 must have external information.
  • the current system times are delivered to the sequencer 56 via dedicated lines. This can Once absolute system times or states of external devices such as the current angle of a crankshaft in an automobile be.
  • the sequence in the sequencer 56 is shown by way of example on the basis of two external events. This is on the one hand an absolute time (hereinafter referred to as time base) and an absolute angle of a crankshaft (hereinafter referred to as angular base). Timebase and Angular Base are referred to below as system baselines.
  • the base values may be processed by the sequencer 56 either in absolute or relative terms. Relative times then indicate the duration of the processing sections, as illustrated by way of example in FIG. 2 (eg, 25, 30).
  • the sequencer 56 has access to the basic system values. If the times are relatively specified for the processing sections, then the sequencer 56 calculates the absolute times for the end of the next processing section based on the current time base and the relative time value in the command. This technique can also be applied if the time point is related to a dynamic value, as in section 2 of section 25.
  • the section 25 ends with the absolute event 16.
  • the section 30 ends a period of time after Occurrence of the event 16.
  • sequencer 56 Since the sequencer 56 has access to the system base time, it can record the system time on arrival of the event 16, add the relative time of the processing section 30 and thus obtains the absolute time when a signal edge change occurs on the signal 12 of FIG got to. Thus, with the solution presented in this invention message, sequences which depend both on absolute system base values and on dynamic system base values can be processed.
  • FIG. 6 shows a schematic representation of an electronic unit 100 for carrying out the presented method with a device 102 for creating a procedural regulation and a module 104 for processing the procedural regulation.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)

Abstract

Es werden ein Verfahren zum Erzeugen mindestens einer Folge von Signalpegeln an wenigstens einem Ausgang einer elektronischen Schaltung und eine elektronische Einheit zur Durchführung des Verfahrens vorgestellt. Das Verfahren sieht vor, dass die mindestens eine Folge in Abschnitte unterteilt wird, die eine zeitliche Abfolge der Signalpegel (10, 12, 14) in einer Ablaufvorschrift wiedergeben und die Folge auf Grundlage der Ablaufvorschrift von einem Modul verarbeitet wird.

Description

VERFAHREN UND ELEKTRONISCHE EINHEIT UM ERZEUGEN VON SEQUENZEN
Die Erfindung betrifft ein Verfahren zum Erzeugen von Sequenzen an mindestens einem Ausgang einer elektronischen Schaltung und eine elektronische Einheit zum Erzeugen von Sequenzen. Weiterhin betrifft die Erfindung eine elektronische Einrichtung und ein Modul zum Einsatz in der elektronischen Einheit. Stand der Technik
Sequenzer sind dafür zuständig, eine beliebige Folge von Signalpegeln an den Ausgängen einer Schaltung zu realisieren. Zur Realisierung einer Sequenzer- funktion in einem Mikrocontroller gibt es mehrere Möglichkeiten. Diese können als gemischte Hardware-/Software-Lösungen oder als reine Hardwarelösungen implementiert sein. Als reine Hardwarelösungen können hier beispielsweise derzeit gängige serielle Schnittstellen betrachtet werden, die ein bestimmtes Kommunikationsprotokoll in Hardware implementieren. Hierbei sind dann nur noch das zu übertragende Datum und eventuelle Feinheiten des Protokolls einstellbar. Die Signalfolge an den Ausgängen der Schaltung wird dann automatisch gemäß dem jeweiligen seriellen Schnittstellenprotokoll generiert.
Gegenwärtig bestehende Lösungen zur flexiblen Sequenzerzeugung ziehen einen nicht unerheblichen Softwareanteil vor, der die Flexibilität der Sequenzaus- gäbe ermöglicht. Dabei werden die entsprechenden Ausgabeeinheiten durch den
Prozessor mit Parametern versorgt, die den Zeitpunkt der nächsten auszugebenden Flanke oder eine Serie von Flanken bestimmen.
Es gibt hierbei unterschiedliche Möglichkeiten der Realisierung. So kann das Nachladen der Parameter bzw. die Rekonfiguration direkt in der jeweiligen Zeitgeber- bzw. Timer-Einheit erfolgen. Bei dieser Methode, die in einer mit eTPU bezeichneten Einheit (Enhanced Time Processing Unit) verwendet wird, übernimmt ein Coprozessor innerhalb des Timers die Aufgabe der Rekonfiguration der Ausgabeeinheiten. Bei einem weiteren bekannten mit TriCore bezeichneten MikroController (PCP: Peripheral Control Processor) liegt der Coprozessor au- ßerhalb der Timereinheit GPTA (General Purpose Timer Array). Dieser besteht aus mehreren Zellen, die als Zähler und Vergleicher verwendet werden können und untereinander verbunden sind. Bei TriCore wird dann eine Zelle als Vergleicher und eine Zelle als Zähler konfiguriert. Die Vergleicherzelle bestimmt dann den Startzeitpunkt der Sequenz und stößt die Zählerzelle beim Erreichen des Zeitpunkts an.
Die Zählerzelle zählt bis zu einem von CPU oder PCP voreingestellten Wert und gibt dann ein Signal an den der Zählerzelle zugeordneten Ausgang aus. Durch diese Verschaltung ist durch eine dauernde Rekonfiguration der Zellen die Erzeugung einer beliebigen Sequenz möglich. Dies führt dann aber zu einer hohen Interrupt-Last am PCP, da dieser die Zellen bei jedem Flankenwechsel der Sequenz für die nächste Flanke neu aufsetzen muss. Die Interrupt-Last kann dadurch reduziert werden, dass die Anzahl der miteinander verschalteten Zellen erhöht wird und diese dann in einer Kette gemäß den abzuarbeitenden Flankenwechseln verschaltet werden. Dies reduziert dann zwar die Interrupt-Last am PCP, erhöht auf der anderen Seite allerdings den Hardware-Flächenverbrauch für die Erzeugung der Sequenz und belegt mehr Ressourcen eines GPTA.
Neben der Lösung mit einem externen Coprozessor zur Rekonfiguration der Timer-Zellen wird in einer anderen MikroControllern der Timer von der CPU selbst bedient. Dies ist bspw. bei dem sogenannten Renesas der Fall, bei dem die Ti- mercontroll- bzw. -steuer-Einheit (TimerC-Einheit) der Advanced Timer Unit III direkt von der CPU bedient werden muss. Im Timer C sind Register implementiert, die mit den Zeitpunkten programmiert werden, zu denen ein Ereignis an den Ausgängen der Schaltung auftreten soll. Die Definition von Abhängigkeiten zwischen einzelnen Kanälen in einer komplexeren Sequenz ist dort nicht möglich, sondern eine Sequenz muss rein mit den Zeitpunkten der einzelnen Aktivitäten auf den unterschiedlichen Sequenzkanälen ermittelt werden. Dies erhöht die Interrupt-Last der CPU erheblich, da die Abhängigkeit eines Signalwechsels von einem externen Ereignis zunächst per Interrupt angezeigt wird und dieser dann von der CPU bedient werden muss. In der Druckschrift US 6 535 942 B1 ist ein Verfahren zum Verringern der Interruptlast in einem Mehrprozessorsystem beschrieben, bei dem zwei zentrale Prozessoren, die ein Echtzeitbetriebssystem ausführen, miteinander über einen ge- meinsam genutzten Speicher kommunizieren können.
Die Druckschrift JP 2 138 610 A zeigt ein Verfahren zum Verringern der Last einer CPU, wobei eine Hardware eine Timersteuerung durchführt.
Die heute vorliegenden Lösungen zur Erzeugung komplexer Sequenzen an den Ausgängen einer elektronischen Schaltung basieren in der Regel auf Softwareprogrammen, die durch Interrupts getriggert Hardwareeinheiten mit zählerwerten versorgen. Die Hardwareeinheiten generieren dann nach Erreichen dieser Zählerwerte eine entsprechende Ausgabe an ihren zugeordneten Ausgängen.
Diese Vorgehensweise bewirkt eine hohe Interrupt-Last bei den Systemen, da nach Ablauf einer Zeitspanne und der Ausgabe des Ereignisses die jeweilige Hardwareeinheit für ein darauffolgendes Ereignis neu programmiert werden muss. Beim Renesas-Ansatz kann eine Untereinheit bzw. Subunit der TimerC- Einheit bis zu drei Sequenzer-Kanäle implementieren. Die Zeitpunkte für die Änderungen an den Ausgängen der drei Sequenzer-Kanäle müssen von der CPU in den Registern der Subunit abgelegt werden. Abhängigkeiten der Sequenzen untereinander, auf die reagiert werden müssen, können der Hardware selbst nicht mitgeteilt werden. Dies muss von der CPU durch Reaktion auf Interrupts ausgelöst werden, die solche externen Ereignisse anzeigen. Dadurch erhöht sich die Interrupt-Last der CPU erheblich.
Verschiedene Systeme versuchen die CPU-Last dadurch zu reduzieren, dass eine programmierbare Ablaufsteuerung im Timer-Modul selbst implementiert wird (eTPU) oder dadurch, dass ein zusätzlicher Coprozessor integriert wird (PCP).
Beide Lösungen erhöhen die Komplexität der Programmierung, da die Software auf CPU und Coprozessor/Timer-Einheit verteilt werden muss. Ein weiterer Nachteil besteht darin, dass sich der Flächenbedarf für die zusätzlichen Hardwarekomponenten erhöht. Schließlich treten noch sehr viele Interrupts am Co- Prozessor auf, da die Timer-Einheit für jede Flanke neu programmiert werden muss. Diesem Umstand wird bei dem bekannten Ansatz (GPTA) dadurch begegnet, dass innerhalb des GPTA-Ketten solche Zähler gebildet werden, die sich untereinander benachrichtigen können. Diese Lösung reduziert dann zwar die Interrupt-Last am PCP, es werden aber mehr Hardwareressourcen und damit Fläche auf dem Chip gebraucht, und die Länge der Sequenz ist durch die Anzahl der verfügbaren Zähler-Zellen begrenzt.
Offenbarung der Erfindung
Die Erfindung betrifft ein Verfahren zum Erzeugen von Sequenzen an Ausgängen einer elektronischen Schaltung gemäß Anspruch 1 . Die Erfindung betrifft weiterhin eine elektronische Einheit zum Erzeugen von Sequenzen an Ausgängen gemäß Anspruch 6, eine elektronische Einrichtung nach Anspruch 7 und ein Modul gemäß Anspruch 8. Vorteilhafte Ausgestaltungen der Erfindung ergeben sich aus den abhängigen Ansprüchen.
Es wird eine Lösung vorgeschlagen, mit der Sequenzen an mehreren Ausgängen einer elektronischen Schaltung beliebiger Länge erzeugt werden können, die sowohl voneinander als auch von externen Ereignissen abhängen können, dabei aber die Rechenlast auf einer CPU oder einem Coprozessor gering halten. Dabei ist vorgesehen, die Erzeugung mehrerer Sequenzersignale an einer zentralen Stelle zusammenzufassen. Das kombinierte Sequenzersignal wird dabei in Abschnitte unterteilt, die sich nach der zeitlichen Abfolge der Signalverläufe richtet.
In einigen der Ausführungen wird eine reine Hardwarelösung für die Realisierung eines Multikanal-Sequenzers vorgeschlagen, der bei maximaler Flexibilität bei der Signalfolgegenerierung eine minimale Interaktion mit einer CPU erfordert und darüber hinaus auch die Fläche für die Implementierung der Schaltung minimiert. Insbesondere mit dem vorgestellte Hardwaremodul werden die beschriebenen Probleme beseitigt, da dieses in der Lage ist, eine beliebige Folge einer Sequenz ohne den Eingriff eines externen Controllers abzuarbeiten. Eine Interaktion mit der CPU oder dem Coprozessor ist lediglich zur Programmierung der Sequenz notwendig. Für das vorgestellte Verfahren, zumindest für einige der Ausführungen, ist von Bedeutung, dass Sequenzen in einzelne Abarbeitungsschritte unterteilt werden und dass die Ausgabe der Signalpegel als Bitmuster abgelegt wird. Die Zeitpunkte zur Triggerung des Zählers spiegeln sich in Befehlen wider. Die Codierung dieser Informationen ist in eine Dokumentation aufzunehmen.
Eine möglicher Einsatz des Multikanal-Sequenzers kann in einem Timer eines Motorsteuergeräts gegeben sein.
Das vorgestellte Verfahren bietet eine Lösung, Sequenzen beliebiger Länge an verschiedenen Ausgängen einer elektronischen Schaltung zu erzeugen, wobei die Sequenzen durch interne und/oder externe Interrupts getriggert sein können. Die Ablaufvorschrift kann dabei interne und externe Ereignisse, absolute Zeitpunkte und/oder relative Zeiträume berücksichtigen.
Die Summe der sequenzierten bzw. aufeinanderfolgenden Ereignisse ohne Interaktion der CPU ist nicht auf die Anzahl an Hardwaremodulen, wie bei GPTA, beschränkt, sondern nur von der Tiefe des Speichers für die Verarbeitung abhängig. Zur Durchführung des Verfahrens ist eine geringe Prozessorauslastung erforderlich. Bei einer Hardwarelösung wird der Befehlszyklus durch das Hardwaremodul selbst ausgeführt, eine Rekonfiguration der Zählerwerte für verschiedene Register durch eine externe Einheit ist nicht notwendig. Die Hardwarekomplexität kann gering sein, wodurch beim Hardwarelayout die erforderliche Fläche reduziert werden kann.
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
Es versteht sich, dass die voranstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
Kurze Beschreibung der Zeichnungen
Figur 1 zeigt eine mögliche Sequenz mit drei Signalen. Figur 2 zeigt die Einteilung in Abschnitte.
Figur 3 zeigt den prinzipiellen Verlauf des Datenflusses.
Figur 4 zeigt den Datenfluss zwischen einem Speichermedium und einem Sequenzer.
Figur 5 zeigt ein Befehlsformat.
Figur 6 zeigt eine Ausführung der beschriebenen elektronischen Einheit. Ausführungsformen der Erfindung
Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird nachfolgend unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.
In Figur 1 ist ein Beispiel für eine Sequenz von drei Signalen dargestellt. Dabei ist die Ausgabe für einen Sequenzer mit drei Ausgängen oder drei Sequenzer mit jeweils einem Ausgang dargestellt. Zu erkennen ist eine Folge eines ersten Signalpegels bzw. ein erstes Signal 10, ein zweites Signal 12 und ein drittes Signal 14. Die Flankenwechsel können dabei durch externe Ereignisse 16, 18 und 20, interne Ereignisse eines zweiten Sequenzersignals 22, nach einer bestimmten Zeitspanne, beispielsweise 24, sowie einer Kombination von externen und internen Ereignissen, bspw. 26, ausgelöst werden. Die auf diese Weise generierte Signalfolge kann zur Ansteuerung oder Triggerung externer Komponenten oder auch zur Schnittstellenemulation verwendet werden. Ein Sequenzer mit einem Ausgang kann bspw. zur Darstellung einer seriellen Schnittstelle verwendet werden.
Eine solch komplexe Signalfolge, wie diese in Figur 1 dargestellt ist, wird regelmäßig mit softwaregestützten Ansätzen realisiert, da nur so eine ausreichende Flexibilität gewährleistet ist. Mit der erfindungsgemäßen Vorgehensweise ist es nun grundsätzlich möglich, den softwaregestützten Ansatz durch eine hardwaregestützte Schaltung zu ersetzen, die den Rechenaufwand für die CPU reduziert und zudem die Ausgabe der Sequenz durch dedizierte Hardware beschleunigt. Weiterhin zeichnet sich die vorgestellte Lösung durch einen geringeren Flächenverbrauch bei der Implementierung aus. Bei der Vorgehensweise gemäß der vorgestellten Lösung wird das kombinierte
Sequenzersignal in Abschnitte unterteilt, die sich nach der zeitlichen Abfolge der Signalverläufe richtet. Diese Einteilung in Abschnitte ist in Figur 2 anhand des in Figur 1 bereits vorgestellten Beispiels dargestellt. Dort ist beispielsweise der Abschnitt 25 die Zeitspanne bis zum externen Ereignis 16 bei dem Signal 10 an- steigt. Nach Ablauf eines Abschnitts 30 steigt dann das Signal 12 an, während die Signale 10 und 14 unverändert bleiben. Die zeitliche Abfolge wird dabei im voraus bestimmt und als Ablaufvorschrift für den Sequenzer an einer zentralen Stelle abgelegt. Die Ablaufvorschrift wird von dem vorgeschlagenen Hardwaremodul selbstständig verarbeitet. Eine Rekonfiguration von Zählerwerten für ein- zelne Register durch eine externe Einheit (CPU/Coprozessor) ist nicht erforderlich.
Durch zentralisierte Darstellung der Sequenz für mehrere Kanäle wird eine sequentielle Abarbeitung, wie sie etwa bei der eTPU durchgeführt wird, vermieden, was zu einer tatsächlich synchronen Ausgabe der Signale an beliebigen Ausgängen der Schaltung führt. Da die gesamte Sequenz im voraus bestimmt wird und die Rekonfiguration der Zählerwerte durch die Hardware selbst vorgenommen wird, wird die Interrupt-Last des Gesamtsystems deutlich reduziert. Da die Ausgabe der einzelnen Ereignisse nicht mittels dedizierter verschalteter Hard- waremodule, sondern an einer zentralen Stelle durch eine Ablaufvorschrift vorgenommen wird, reduziert sich darüber hinaus der Hardwareaufwand deutlich, was sich in einem geringeren Flächenverbrauch niederschlägt. Auch ist die Anzahl der aufeinanderfolgenden Ereignisse ohne Interaktion durch CPU oder Coprozessor nicht durch die Anzahl der Hardwaremodule wie beim GPTA be- schränkt, sondern durch die Tiefe des Speichers für die Ablaufsteuerung. Der
Aufwand für die Realisierung des Speichers ist im Vergleich zu den sonst erforderlichen zusätzlichen Timer-Zellen gering.
Figur 3 zeigt den prinzipiellen Verlauf des Datenflusses zur Erzeugung der als Beispiel verwendeten mehrkanaligen Sequenz mit den Signalen 10, 12 und 14 aus Figur 1. Die gesamte zu erzeugende Sequenz wird von der Einheit 50 in die in Figur 2 dargestellten Abschnitte 25, 30 ... zerlegt und zusammen mit einer unten beschriebenen Ablaufvorschrift kodiert 52 in einem Speichermedium 54 abgelegt. Das Speichermedium 54 kann an dieser Stelle bspw. als RAM, Flash, FIFO oder Registersatz ausgeführt sein.
Ein zentraler Multikanal-Sequenzer 56 holt sich die Ablaufvorschrift in einem Format 58 aus dem Speichermedium 54 und setzt die Ablaufvorschrift in entsprechende Signalpegel 10, 12 und 14 an den Ausgängen der Schaltung um.
Figur 4 zeigt den Datenfluss zwischen dem Speichermedium 54 und dem Sequenzer 56 sowie das Datenformat 60, 62 der Ablaufsteuerung. Das Datenformat beinhaltet unterschiedliche Informationen. Dies sind Befehle 64, die die Ablaufvorschrift repräsentieren und Zeitpunkte 66 und 68, zu denen eine Aktion ausgeführt werden soll. Das Datenformat kann die gesamte Datenbreite des Kanals zwischen Speichermedium 54 und Sequenzer 56 ausfüllen 60 oder nur einen Teil der Breite aufweisen 62. Die gesamte Ablaufsteuerung wird sequentiell in dem Speichermedium 54 abgelegt.
Figur 5 zeigt ein Befehlsformat 80 für die Repräsentation der Ablaufsteuerung. Der Befehl besteht aus einem Bitfeld 82, in dem die Signalpegel der Ausgänge der Schaltung kodiert sind. Im vorliegenden Beispiel handelt es sich um Signalpegel für acht Ausgänge. In der Darstellung sind die Signalpegel nach dem Zeitpunkt 26 aus Figur 1 für die Ausgänge 10, 12 und 14 dargestellt. Eine Bitposition 84 ist assoziiert mit Ausgang 10 in Figur 1 , Bitposition 86 mit Ausgang 12 und Bitposition 88 mit Ausgang 14. Der Befehl selbst wird in Feld 90 abgelegt.
Zum Zeitpunkt 26 aus Figur 1 sollen die Ausgänge entsprechend geschaltet werden, wenn entweder ein externes Ereignis 20 auftritt oder nach einer relativen Zeit, nachdem Ausgang 12 von "1 " auf "0" gewechselt hat. Der Befehl kann durch Bit 90 erweitert werden, das angibt, ob ein Interrupt bei der Ausführung/beim Auftreten des Ereignisses angezeigt werden soll oder nicht. Dadurch kann zu beliebigen Zeitpunkten innerhalb der Sequenz ein Interrupt ausgelöst werden.
Zur Bestimmung der Zeitpunkte und zur Reaktion auf externe Ereignisse muss der Sequenzer 56 über externe Informationen verfügen. Die aktuellen Systemzeiten werden über dedizierte Leitungen an den Sequenzer 56 geliefert. Dies kön- nen einmal absolute Systemzeiten oder Zustände von externen Geräten wie bspw. der aktuelle Winkel einer Kurbelwelle in einem Automobil sein. Im folgenden wird der Ablauf im Sequenzer 56 beispielhaft anhand von zwei externen Ereignissen aufgezeigt. Dies ist zum einen eine absolute Zeit (im folgenden als Zeitbasis bezeichnet) und ein absoluter Winkel einer Kurbelwelle (im folgenden als Winkelbasis bezeichnet). Zeitbasis und Winkelbasis werden im folgenden als Systembasiswerte bezeichnet.
Der in Figur 1 dargestellte Zeitpunkt 92 ist beispielsweise abhängig von einer absoluten Winkelbasis 16 und wird durch eine Befehlssequenz dargestellt. Daneben gibt es auch Abschnitte innerhalb einer Sequenz, die von mehreren Ereignissen abhängen können. Zeitpunkt 26 hängt bspw. von Winkelbasis 18 und einem Ereignis an Ausgang 12 ab. Die Ereignisse an den Ausgängen hängen von absoluten und relativen Basiswerten ab. Insgesamt werden die folgenden Befehlsarten benötigt:
WAIT ABS <bv> I <no>: warte auf einen absoluten Basiswett <bv> oder Kanal <no>
SET <bv> I <no>: setze die Ausgänge entsprechend Feld 82 aus Figur 5 bei erreichen/ablaufen des Basiswettes <bv> oder Ereignis auf Kanal <no>
FIRST <bvO> THAN <bvl>: zunächst muss Basiswett <bvO> und dann Basiswett <bv1> eintreten/ablaufen, bevor eine neue Sequenz ausgegeben wird
SERVE FIRST <bvO>, <bvl>: Sequenz wird zu dem Basiswett <bvO> oder <bv1>
ausgegeben, der zunächst eintritt/abläuft
Die Basiswerte können von dem Sequenzer 56 entweder absolut oder relativ verarbeitet werden. Relative Zeiten geben dann die Zeitdauer der Abarbeitungsabschnitte an, wie sie beispielhaft in Figur 2 (z.B. 25, 30) dargestellt sind. Der Sequenzer 56 hat dafür Zugang zu den System basiswerten. Sind die Zeiten für die Abarbeitungsabschnitte relativ angegeben, dann berechnet der Sequenzer 56 die absoluten Zeiten für das Ende des nächsten Abarbeitungsabschnitts anhand der aktuellen Zeitbasis und des relativen Zeitwertes im Befehl. Diese Technik kann auch angewendet werden, wenn sich der Zeitpunkt auf einen dynamischen Wert, wie in Figur 2 der Abschnitt 25 bezieht. Der Abschnitt 25 endet dabei mit dem absoluten Ereignis 16. Der Abschnitt 30 endet eine Zeitspanne nach dem Auftreten des Ereignisses 16. Da der Sequenzer 56 Zugang zur Systembasiszeit hat, kann er bei Eintreffen des Ereignisses 16 die Systemzeit festhalten, die relative Zeit des Abarbeitungsabschnitts 30 addieren und erhält so die absolute Zeit, wann auf dem Signal 12 aus Figur 1 ein Flankenwechsel erfolgen muss. So kön- nen mit der in dieser Erfindungsmeldung vorgestellten Lösung Sequenzen, die sowohl von absoluten System basiswerten als auch von dynamischen Systembasiswerten abhängen, verarbeitet werden.
Figur 6 zeigt in schematischer Darstellung eine elektronische Einheit 100 zur Durchführung des vorgestellten Verfahrens mit einer Einrichtung 102 zum Erstellen einer Ablaufvorschrift und einem Modul 104 zum Verarbeiten der Ablaufvorschrift.

Claims

Ansprüche
1 . Verfahren zum Erzeugen mindestens einer Folge von Signalpegeln (10, 12, 14) an wenigstens einem Ausgang einer elektronischen Schaltung, wobei die mindestens eine Folge in Abschnitte (25, 30) unterteilt wird, die eine zeitliche Abfolge der Signalpegel (10, 12, 14) in einer Ablaufvorschrift wiedergeben und die Folge auf Grundlage der Ablaufvorschrift von einem Modul (104) verarbeitet wird.
2. Verfahren nach Anspruch 1 , bei dem eine Anzahl von Folgen erzeugt wird.
3. Verfahren nach Anspruch 2, bei dem eine Ablaufvorschrift für die Anzahl von Folgen vorgesehen ist.
4. Verfahren nach Anspruch 2, bei dem mehrere Ablaufvorschriften für die Anzahl von Folgen vorgesehen sind.
5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem zwei Basiswerte berücksichtigt werden.
6. Elektronische Einheit zum Erzeugen mindestens einer Folge von Signalpegeln, insbesondere zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 5, mit einer Einrichtung (102) zum Erstellen einer Ablaufvorschrift, in der die zeitliche Abfolge der Signalpegel wiedergegeben sind, und einem Modul (104) zum Verarbeiten der Ablaufvorschrift.
7. Elektronische Einrichtung zum Erstellen einer Ablaufvorschrift, insbesondere zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 5, die zum Einsatz in einer elektronischen Einheit (100) nach Anspruch 6 ausgebildet ist.
8. Modul zum Verarbeiten einer Ablaufvorschrift, in der die zeitliche Abfolge von Signalpegeln wiedergegeben sind, insbesondere zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 5, die zum Einsatz in einer elektronischen Einheit (100) nach Anspruch 6 ausgebildet ist.
9. Modul nach Anspruch 8, das zumindest teilweise in Hardware implementiert ist.
10. Modul nach Anspruch 8 oder 9, das zumindest teilweise in Softwareware implementiert ist.
PCT/EP2010/065422 2009-11-25 2010-10-14 Verfahren und elektronische einheit zum erzeugen von sequenzen WO2011064045A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102009047121.9 2009-11-25
DE200910047121 DE102009047121A1 (de) 2009-11-25 2009-11-25 Verfahren zum Erzeugen von Sequenzen

Publications (1)

Publication Number Publication Date
WO2011064045A1 true WO2011064045A1 (de) 2011-06-03

Family

ID=43602920

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2010/065422 WO2011064045A1 (de) 2009-11-25 2010-10-14 Verfahren und elektronische einheit zum erzeugen von sequenzen

Country Status (2)

Country Link
DE (1) DE102009047121A1 (de)
WO (1) WO2011064045A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016206628A1 (de) 2016-04-20 2017-10-26 Robert Bosch Gmbh Zeitgeberbaustein für einen Mikrocontroller
DE102016208655A1 (de) 2016-05-19 2017-11-23 Robert Bosch Gmbh Mikrocontroller

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4222108A (en) * 1978-12-01 1980-09-09 Braaten Norman J Digitally-programmed arbitrary waveform generator
JPH02138610A (ja) 1988-10-17 1990-05-28 Mitsubishi Electric Corp 計算機タイマ管理装置
EP0503717A2 (de) * 1991-03-11 1992-09-16 Philips Patentverwaltung GmbH Einrichtung zur Erzeugung von Digitalsignalen
US6535942B1 (en) 2000-02-09 2003-03-18 Telefonaktiebolaget L M Ericsson (Publ) Method for reducing processor interrupt load
US6564334B1 (en) * 1999-12-01 2003-05-13 Zilog, Inc. Programmable output generator
US20070038878A1 (en) * 2005-08-11 2007-02-15 Stmicroelectronics S.A. Generator of a signal with an adjustable waveform

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4222108A (en) * 1978-12-01 1980-09-09 Braaten Norman J Digitally-programmed arbitrary waveform generator
JPH02138610A (ja) 1988-10-17 1990-05-28 Mitsubishi Electric Corp 計算機タイマ管理装置
EP0503717A2 (de) * 1991-03-11 1992-09-16 Philips Patentverwaltung GmbH Einrichtung zur Erzeugung von Digitalsignalen
US6564334B1 (en) * 1999-12-01 2003-05-13 Zilog, Inc. Programmable output generator
US6535942B1 (en) 2000-02-09 2003-03-18 Telefonaktiebolaget L M Ericsson (Publ) Method for reducing processor interrupt load
US20070038878A1 (en) * 2005-08-11 2007-02-15 Stmicroelectronics S.A. Generator of a signal with an adjustable waveform

Also Published As

Publication number Publication date
DE102009047121A1 (de) 2011-05-26

Similar Documents

Publication Publication Date Title
EP0048767B1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
DE3610433C2 (de) Verfahren zum Steuern einer Maschine mit einer speicherprogrammierbaren Steuerung mit Funktionsplaninterpreter
DE3810231C2 (de)
EP0952520B1 (de) Vorrichtung zur fehlertoleranten Ausführung von Programmen
EP0107026B1 (de) Speicherprogrammierbare Steuerung
DE102005055000A1 (de) Modulares Avioniksystem eines Flugzeuges
DE2165767A1 (de) Datenverarbeitungssystem
LU93299B1 (de) Ablaufsteuerung von Programmmodulen
DE102016122375A1 (de) Dynamischer containerisierter Systemspeicherschutz für Niedrigenergie-MCUs
DE10317390A1 (de) Datenübertragungseinrichtung und elektronische Steuereinheit
DE102010003532B4 (de) Timermodul und Verfahren zur Überprüfung eines Ausgangssignals
WO2011064045A1 (de) Verfahren und elektronische einheit zum erzeugen von sequenzen
DE60221515T2 (de) Speichersystem für schleifenbeschleunigung nach wunsch
DE102010003530A1 (de) Hardware-Datenverarbeitungseinheit und Verfahren zur Überwachung einer Rundendauer einer Routingeinheit
DE102011011682B4 (de) Programmierbare Steuerung zum parallelen Ausführen einer Vielzahl von unabhängigen Ablaufprogrammen
EP1548603B1 (de) Verfahren und Vorrichtung zum Steuern eines Speicherzugriffs
DE102012010558A1 (de) Hardwarevorrichtung für ein system,system und speicherzugriffsverfahren
DE102009061083B3 (de) Modifizieren periodischer Signale, die von einem Mikrocontroller erzeugt worden sind
EP1770521A2 (de) Multi-Prozessor-Architektur und Verfahren zum Steuern von Speicherzugriff bei einer Multi-Prozessor-Architektur
DE102014213826B4 (de) Verfahren zum Synchronisieren von Zustandswechseln in Mehrkernrechnern eingebetteter Systeme
DE3412805A1 (de) Prozessor
DE102022003661B3 (de) Rechenvorrichtung, Verfahren zur Lastverteilung für eine solche Rechenvorrichtung und Computersystem
EP3332305A1 (de) Verfahren und vorrichtung zum bereitstellen eines taktes für eine elektronische schaltung und prozessorvorrichtung
DE102014016884A1 (de) Datenflußsteuerung und Loadbalancing in Fahrzeugsteuergeräten mit Mehrkernprozessoren
DE2430693A1 (de) Schnittstellenschaltung fuer den anschluss einer satelliten-datenverarbeitungsanlage an einen datenuebertragungskanal

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10770779

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 10770779

Country of ref document: EP

Kind code of ref document: A1