-
STAND DER TECHNIK
-
SENT (Single-Edge-Nibble-Transmission) ist ein Kommunikationsprotokoll für unidirektionale Kommunikation zwischen Elektronikmodulen, z.B. von einem intelligenten Sensor zu einer Datenverarbeitungsvorrichtung in einem Automobil. Um einen SENT-Sender, z.B. während der Entwicklung, zu prüfen, sind Prüfgeräte erforderlich, die ein Signal von einem SENT-Sender empfangen und verschiedene Arten von Übertragungsfehlern erkennen können. Ein SENT-Prüfempfänger muss selbst erst geprüft werden, um zu bestätigen, dass der Prüfempfänger verschiedene Arten von Fehlern erkennt.
-
ZEICHNUNGEN
-
1 ist eine Blockdarstellung eines beispielhaften SENT-Prüfsenders in Kommunikation mit einem SENT-Prüfempfänger.
-
2 ist eine Blockdarstellung eines beispielhaften SENT-Prüfsenders.
-
3 ist ein beispielhafter SENT-Datenrahmen.
-
4 ist ein Flussdiagramm eines beispielhaften Prozesses zum Senden von SENT-Datenrahmen, die Übertragungsfehler umfassen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
ÜBERSICHT
-
1 zeigt ein System 10 zum Prüfen eines SENT-Prüfempfängers 12 (Single-Edge-Nibble-Transmission) mit einem SENT-Prüfgenerator 14. Der SENT-Prüfgenerator 14 kann in Echtzeit SENT-Datenrahmen 15 erzeugen, die spezifische Arten von einem oder mehreren Übertragungsfehlern umfassen. Die Arten von Übertragungsfehlern, die auftreten können, umfassen als nichteinschränkenden Beispiele, dass ein oder mehrere niedrige Zustände zu kurz sind, ein oder mehrere niedrige Zustände zu lang sind, ein oder mehrere hohe Zustände zu kurz sind, ein oder mehrere hohe Zustände zu lang sind, ein oder mehrere Datenimpulse zu kurz sind, ein oder mehrere Datenimpulse zu lang sind, ein Pauseimpuls zu kurz ist, ein Pauseimpuls zu lang ist, ein Kalibrationsbit zu kurz ist, ein Kalibrationsbit zu lang ist, zu wenige Impulse in dem Datenrahmen sind und zu viele Impulse in dem Datenrahmen sind. Ein oder mehrere SENT-Datenrahmen 15, die einen oder mehrere Übertragungsfehler umfassen, werden zu dem SENT-Prüfempfänger 12 gesendet. Der SENT-Prüfempfänger 12 kann dann zum Beispiel über eine Schnittstelle überwacht werden, um zu bestimmen, ob der SENT-Empfänger 12 die Übertragungsfehler identifiziert hat.
-
BEISPIELHAFTE SYSTEMELEMENTE
-
Mit Bezug auf 1 umfasst ein System zum Prüfen eines SENT-Prüfempfängers 12 den SENT-Prüfempfänger 12 und den SENT-Prüfgenerator 14.
-
Der SENT-Prüfempfänger 12 kann einen Computer umfassen, der eine oder mehrere Schnittstellen wie nachfolgend beschrieben umfasst und/oder kommunikativ mit ihnen gekoppelt ist, z.B. eine Hardwareschnittstelle und/oder eine Benutzeroberfläche wie etwa eine graphische Benutzeroberfläche (GUI). Der Computer kann dafür programmiert sein, SENT-Datenrahmen 15 zu empfangen und die Datenrahmen 15 zu analysieren, um zu bestimmen, ob ein Übertragungsfehler aufgetreten ist. Der Computer kann ferner dafür programmiert sein, eine Art des Übertragungsfehlers zu identifizieren und z.B. über eine Benutzeroberfläche die Art des Fehlers, die identifiziert wurde, anzugeben. Der SENT-Prüfempfänger 12 kann ferner Daten in Bezug auf den SENT-Datenrahmen 15 und zugeordnete(n) Fehler speichern, damit die Daten zur Analyse verfügbar sind. Weiterhin kann der SENT-Prüfempfänger 12 zum Beispiel über ein verdrahtetes oder drahtloses Netzwerk kommunikativ mit einem oder mehreren anderen Computern gekoppelt sein und Daten in Bezug auf den empfangenen SENT-Datenrahmen 15 und zugeordnete Übertragungsfehler senden.
-
Ein in 2 gezeigter beispielhafter SENT-Prüfgenerator 14 umfasst einen Computer 16, einen Datenrahmengenerator 18 und eine Schnittstelle 20. Der SENT-Prüfgenerator 14 umfasst einen oder mehrere Eingänge und/oder Busverbindungen 42. Der SENT-Prüfgenerator erzeugt SENT-Datenrahmen 15. Der SENT-Prüfgenerator 14 ist im Allgemeinen dafür programmiert, eine oder mehrere Anweisungen zu empfangen, darunter eine Nachricht, die gemäß einem SENT-Protokoll zu senden ist, und gegebenenfalls einen Fehlerbefehl, der einen oder mehrere Fehler umfasst, die in den gesendeten Datenrahmen 15 eingeführt werden sollen. Das heißt, der SENT-Prüfgenerator 14 umfasst die Möglichkeit, Datenrahmen 15 zu senden, die eine Nachricht gemäß einem SENT-Protokoll umfassen. Die Datenrahmen 15 können als Alternative mit und ohne Übertragungsfehler erzeugt werden. Die zu sendende Nachricht kann ein Wert in einem spezifizierten Bereich sein, der z.B. einen Sensorausgangswert simuliert, und kann in einem digitalen Format empfangen werden. Die Fehler können einen oder mehrere Arten von Übertragungsfehlern umfassen, wie nachfolgend besprochen.
-
Der Datenrahmengenerator 18 kann vielfältige Datenrahmen 15 erzeugen, die einen oder mehrere verschiedene Übertragungsfehler umfassen. Zum Beispiel kann wie nachfolgend beschrieben der Computer 16 über den Datenrahmengenerator 18 eine Länge eines Impulses, eine Länge eines niedrigen Zustands eines Impulses und die Anzahl von Impulsen in dem SENT-Datenrahmen 15 setzen. Ferner können an einer beliebigen Stelle in dem SENT-Datenrahmen 15 positive oder negative Rauschimpulse eingeführt werden.
-
Der Computer 16 umfasst einen Prozessor und einen Speicher. Der Speicher umfasst eine oder mehrere Formen von computerlesbaren Medien und speichert Anweisungen, die durch den Prozessor zur Ausführung verschiedener Operationen, einschließlich wie hier offenbart, ausführbar sind. Der Computer 16 ist im Allgemeinen programmiert und ausgelegt für Kommunikation auf einem CAN-Bus (Controller Area Network) oder dergleichen und kann ein Kommunikationsmodul 21 zur Bereitstellung von Kommunikation über ein oder mehrere Netzwerke umfassen. Zum Beispiel kann das Kommunikationsmodul 21 dafür programmiert sein, die Prüfanweisungen über einen CAN-Bus zu empfangen. Das Kommunikationsmodul kann ferner dafür programmiert sein, über das Fahrzeugnetzwerk empfangene Daten zu speichern und z.B. ein oder mehrere Flags zu setzen, die anzeigen, dass neue Daten empfangen wurden.
-
Der Computer 16 kann ferner dafür programmiert sein, den Datenrahmengenerator 18 auf der Basis von Prüfanweisungen zu steuern. Wie nachfolgend beschrieben wird, kann der Computer 16 hier sogenannte „Zwischendaten“ auf der Basis einer empfangenen Nachricht und von Fehlerbefehlen erzeugen. Die Nachricht und Fehlerbefehle können in einer einzigen Netzwerkübertragung oder in getrennten Netzwerkübertragungen empfangen werden. Die Zwischendaten können z.B. Impulslängendaten, Länge eines niedrigen Zustands, Länge eines Pausenimpulses, eine Anzahl von Impulsen in einem Datenrahmen 15 usw. sein, die der Computer 16 dem Datenrahmengenerator 18 zuführen kann, um einen SENT-Datenrahmen 15 zu spezifizieren. Der Computer 16 kann ferner Steuersignale erzeugen, die den Betrieb des Datenrahmengenerators 18 so steuern, dass der Datenrahmengenerator 18 den Datenrahmen 15 erzeugt und sendet. Zusätzlich kann der Computer 16 Signale von dem Datenrahmengenerator 18 empfangen, z.B. dass der Datenrahmengenerator 18 die Übertragung eines Datenrahmens 15 abgeschlossen hat.
-
Wie nachfolgend beschrieben wird, unterstützt das SENT-Protokoll mehrere Ausgangssequenzen. Der Computer 16 kann ferner dafür programmiert sein, die Erzeugung einer oder mehrerer dieser Sequenzen zu unterstützen. Zum Beispiel kann der Computer 16 Eingaben von der Schnittstelle 20 empfangen, die eine bestimmte Ausgangssequenz auswählen. Als Alternative kann der Computer 16 eine Anweisung aus dem Fahrzeugnetzwerk empfangen, die die bestimmte Ausgangssequenz auswählt. Der Computer 16 kann dann die Zwischendaten im Einklang mit der ausgewählten Ausgangssequenz erzeugen.
-
Der Datenrahmengenerator 18 ist eine elektronische Schaltung, die dafür ausgelegt ist, auf der Basis der von dem Computer 16 empfangenen Zwischendaten und Steuersignale Operationen auszuführen, die dem Senden eines SENT-Datenrahmens 15 zugeordnet sind. Der Datenrahmengenerator 18 umfasst einen Tick-Generator 22; einen ersten, zweiten und dritten Latch 24, 26, 28; eine Impulslängenwarteschlange 30, einen ersten und zweiten Zähler 32, 34; einen ersten und zweiten Komparator 36, 38; und einen Impulsunterbrecher 40.
-
Mit dem Tick-Generator 22 werden Ticks erzeugt, die als Zeitbasis für den Datenrahmengenerator 18 verwendet werden können. Der Tick-Generator 22 erzeugt periodische Ticks. Die Tick-Periode kann zum Beispiel durch den Computer 16 programmiert wenden. Der Tick-Generator 22 kann z.B. einen 40-MHz-Takt als Eingabe empfangen und kann z.B. einen periodischen Tick mit einer Periode von 3 Mikrosekunden erzeugen.
-
Der erste Latch 24 kann zum Beispiel ein 8-Bit-Latch sein, mit dem die Periode der durch den Tick-Generator 22 erzeugten Ticks programmiert wird.
-
Der zweite Latch 26 kann ein 8-Bit-Latch sein und kann zum Programmieren einer Länge eines niedrigen Zustands eines SENT-Datenimpulses, wie nachfolgend beschrieben, verwendet werden.
-
Der dritte Latch 28 kann ein 8-Bit-Latch sein und kann zum Speichern der Anzahl der Impulse in dem Datenrahmen 15 verwendet werden. Wenn zum Beispiel ein Pausenimpuls erforderlich ist, kann die Gesamtzahl von Impulsen in dem Datenrahmen 15 insgesamt 10 Impulse umfassen, und es kann der Wert 0A (hex) in dem Latch 28 gespeichert werden. Wenn als ein anderes Beispiel kein Pausenimpuls erforderlich ist, kann der Datenrahmen 15 insgesamt 9 Impulse umfassen, und es kann der Wert 09 (hex) in dem Latch 28 gespeichert werden.
-
Die Impulslängenwarteschlange 30 kann zum Beispiel 8 10-Bit-Schieberegister umfassen, die parallel angeordnet sind und effektiv ein 8 Bit breites Schieberegister mit 10 Positionen bilden. Die Impulslängenwarteschlange 300 kann einen Eingang und einen Ausgang aufweisen, wobei der Eingang und Ausgang jeweils 8 Bit breit sind. Jede Position an dem Schieberegister kann eine Länge eines bestimmten Impulses in einem SENT-Datenrahmen 15 speichern. Die Länge jedes Impulses in dem SENT-Datenrahmen 15 kann durch den Computer 16 am Eingang der Impulslängenwarteschlange 30 eingegeben und durch die Impulslängenwarteschlange 30 am Ausgang ausgegeben werden. Die Impulslängenwarteschlange 300 kann ferner z.B. einen Schiebeeingang umfassen und beim Empfang eines Schiebesignals an dem Schiebeeingang von einer Position zu einer nächsten Position inkrementieren.
-
Der erste Zähler 32 kann ein 8-Bit-Zähler sein, der einen Takteingang und einen 8-Bit-Ausgang aufweist. Der Takteingang kann z.B. durch den Tick-Generator 22 angesteuert werden. Der erste Zähler 32 kann zum Beispiel zum Steuern von SENT-Impulslängen auf der Basis der Länge jeweiliger in der Impulslängenwarteschlange 30 gespeicherten Impulsen verwendet werden.
-
Der zweite Zähler 34 kann zum Beispiel ein 8-Bit-Zähler mit einem Takteingang und einem 8-Bit-Ausgang sein und kann zum Zählen der Anzahl von Impulsen, die in einem SENT-Datenrahmen 15 gesendet werden, verwendet werden. Zum Beispiel kann am Anfang jeder SENT-Übertragung die Anzahl der Impulse in dem SENT-Datenrahmen 15 aus dem dritten Latch 28 in den zweiten Zähler 34 geladen werden. Der Takt kann zum Beispiel durch ein Signal angesteuert werden, das ein Ende eines aktuell gesendeten Impulses und einen Anfang eines nächsten Impulses angibt. Auf diese Weise wird am Ende jedes Impulses der zweite Zähler 34 dekrementiert. Wenn der zweite Zähler 34 null erreicht, kann er die Anzahl von Impulsen für einen nächsten SENT-Datenrahmen 15 neu laden und ein Interrupt-Signal an den Computer ausgeben, um die Impulslängenwarteschlange 30 mit den Impulslängen für den nächsten SENT-Datenrahmen 15 zu laden.
-
Der erste Komparator 36 kann ein digitaler 8-Bit-Komparator sein und kann zum Beispiel die von dem ersten Zähler 32 ausgegebenen 8 Bit mit der gespeicherten Länge des Impulses vergleichen, die gerade durch die Impulslängenwarteschlange 30 ausgegeben wird. Wenn zum Beispiel der Wert der 8-Bit-Ausgabe aus dem ersten Zähler 32 gleich dem durch die Impulslängenwarteschlange 30 ausgegeben Wert ist, kann der erste Komparator 36 ein Signal zum Rücksetzen des ersten Zählers 32 und Dekrementieren des zweiten Zählers 34 ausgeben. Das Ausgangssignal des Komparators 36 kann ferner zum Verschieben der Impulslängenwarteschlange 30 verwendet werden. Der aktuell gesendete Impuls kann enden und der nächste Impuls kann beginnen.
-
Der zweite Komparator 38 kann ein digitaler 8-Bit-Komparator sein und kann z.B. die 8-Bit-Ausgabe aus dem ersten Zähler 32 mit einem in dem zweiten Latch 26 gespeicherten Wert vergleichen. Wie oben besprochen, kann der in dem zweiten Latch 26 gespeicherte Wert eine Länge eines niedrigen Zustands eines aktuell gesendeten SENT-Impulses sein. Der zweite Komparator 38 kann zum Beispiel einen niedrigen Zustand ausgeben, wenn der Wert der 8-Bit-Ausgabe aus dem ersten Zähler 32 kleiner als der in dem zweiten Latch 26 gespeicherte Wert ist, und einen hohen Zustand ausgeben, wenn der Wert der 8-Bit-Ausgabe aus dem ersten Zähler 32 größer oder gleich dem in dem zweiten Latch 26 gespeicherten Wert ist.
-
Bei dem Impulsunterbrecher 40 kann es sich um Logikgatter oder Transistoren handeln, die, wenn sie durch eine Ausgabe aus dem Computer 16 angesteuert werden, einen niedrigen Zustand oder einen hohen Zustand an dem Ausgang erzwingen. Die Schaltung des Impulsunterbrechers 40 erlaubt dem Computer 16, das Ausgangssignal des zweiten Komparators 38 zu übersteuern und unabhängig von der Ausgabe des zweiten Komparators 38 den digitalen Pegel des gerade gesendeten SENT-Datenrahmens 15 zu bestimmen.
-
Der SENT-Prüfgenerator 14 kann ferner eine Benutzerschnittstelle 20 umfassen, die kommunikativ mit dem Computer 16 gekoppelt sein kann. Die Schnittstelle 20 kann eine oder mehrere Ausgabevorrichtungen, wie etwa ein Display, Lampen, Lautsprecher usw., zum Übermitteln von Informationen an einen Benutzer umfassen. Die Schnittstelle 20 kann ferner eine oder mehrere Eingabevorrichtungen, wie etwa ein Touchscreen-Display, eine Maus, eine Tastatur, eine Gestenerkennungsvorrichtung, Schalter usw. zum Empfangen von Eingaben vom Benutzer umfassen.
-
SENT-PROTOKOLL UND DATENRAHMEN
-
Das SENT-Protokoll wird in der Society of Automotive Engineers (SAE) Information Report Reference Nummer J2716, mit dem Titel „SENT-Single Edge Nibble Transmission for Automotive Applications“ beschrieben, wie allgemein bekannt ist.
-
Das SENT-Protokoll ist eine unidirektionale asynchrone Spannungsschnittstelle zum Senden von Daten z.B. von einem Sensor zu einem Computer, typischerweise in einem Fahrzeug. Gemäß dem SENT-Protokoll werden Daten in Einheiten von 4 Bit (ein Nibble) gesendet, wofür das Intervall zwischen zwei fallenden Flanken (einzelne Flanke) des modulierten Signals mit einer Konstantamplitudenspannung ausgewertet wird.
-
Ein gesendeter Datenrahmen 15 umfasst eine SENT-Nachricht und einen oder mehrere Steuerimpulse. Die SENT-Nachricht kann acht Datennibbles umfassen, wobei jedes Datennibble 4 Bit Daten repräsentiert. Jedes der acht Datennibbles kann zum Senden von bestimmten Informationen verwendet werden. Zum Beispiel kann ein erstes Datennibble ein Status- und Kommunikationsnibble sein, das Informationen über die Nachricht bereitstellt. Mit dem zweiten bis siebten Nibble kann man z.B. zwei Messkanäle von jeweils drei Nibbles (wie etwa Druck und Temperatur) senden. Mit einem achten Nibble kann man CRC-(Cyclic Redundancy Check) oder Prüfsummeninformationen senden. Gegebenenfalls können Daten in fünf Datennibbles transferiert werden. In diesem Fall kann z.B. einer der zwei Messkanäle weggelassen werden. Jedes Datennibble wird als ein Impuls gesendet, der hier manchmal als Datenimpuls bezeichnet wird. Die jedes Nibble repräsentierenden Datenimpulse weisen abhängig von dem 4-Bit-Wert der zu sendenden Daten variable Länge auf.
-
Die SENT-Nachricht wird in dem SENT-Datenrahmen 15 gesendet, der am Anfang des Datenrahmens einen Kalibrationsimpuls umfasst und am Ende des Datenrahmens einen Pausenimpuls umfassen kann. 3 zeigt einen typischen SENT-Datenrahmen 15. Der Datenrahmen 15 beginnt mit einem Kalibrationsimpuls 60a. Dem Kalibrationsimpuls können zum Beispiel acht Datenimpulse 62a–62h folgen. Gegebenenfalls kann im Anschluss an den achten Datenimpuls 62h ein Pausenimpuls 64 in den Datenrahmen 15 aufgenommen werden. Nach dem Pausenimpuls 64 kann ein neuer SENT-Rahmen 15b gesendet werden.
-
Unter weiterer Bezugnahme auf 3 kann ein erster Impuls in dem SENT-Datenrahmen 15a der Kalibrationsimpuls 60a sein. Der Kalibrationsimpuls 60a kann an einer ersten fallenden Flanke 80 beginnen und an einer zweiten fallenden Flanke 84 enden. Der Kalibrationsimpuls 60a kann 56 Ticks lang sein, wobei ein Tick der als Zeitreferenz für den Datenrahmengenerator 18 verwendete Takt ist. Typischerweise wird der Kalibrationsimpuls 60a so erzeugt, dass er eine bekannte Anzahl von Ticks lang ist, um als Zeitreferenz für den SENT-Empfänger 12 zu dienen.
-
Der Kalibrationsimpuls 60a weist zwischen der fallenden Flanke 80 und der ansteigenden Flanke 82 einen niedrigen Zustand und zwischen der ansteigenden Flanke 82 und der fallenden Flanke 84 einen hohen Zustand auf. Typischerweise kann der niedrige Zustand sechs Ticks lang sein. Der hohe Zustand kann 50 Ticks lang sein, so dass die Länge des Kalibrationsimpulses 60a insgesamt 56 Ticks beträgt.
-
Die Datenimpulse 62a–62h senden jeweils vier Bit Daten und können zum Beispiel von 12 bis 27 Ticks lang sein. Typischerweise kann jeder der Datenimpulse 62a–62h niedrige Zustände mit einer selben Länge umfassen. Eine typische Länge für den niedrigen Zustand jedes der Datenimpulse 62a–62h ist 6 Ticks.
-
Der Datenrahmen 15a kann nach den Datenimpulsen 62a–62h einen Pausenimpuls 64 umfassen. Der Pausenimpuls 68 kann variable Länge aufweisen und so justiert werden, dass eine Gesamtlänge jedes zum Beispiel in dem System 10 gesendeten Datenrahmens 15 eine selbe Gesamtlänge ist.
-
Das SENT-Protokoll gestattet alternative Ausgangssequenzen zur Unterstützung verschiedener Anwendungen. Bei jeder der alternativen Ausgangssequenzen kann ein erstes Datennibble 62a als Statusnibble und ein achtes Datennibble 62h als Nibble für CRC (Cyclic Redundancy Check)/Prüfsumme verwendet werden. Die alternativen Nibble-Sequenzen können sich in Bezug auf den Umgang mit dem zweiten, dritten, vierten, fünften, sechsten und siebten Datennibble 62b–62g unterscheiden. Beispiele für mögliche Nibblesequenzen sind nachfolgend aufgelistet.
-
Bei einer ersten beispielhaften Ausgangssequenz sind zwei Kanäle von Daten in dem Datenrahmen 15 enthalten. Der erste Kanal umfasst 12 Bit Daten und wird mit dem zweiten, dritten und vierten Datennibble 62b–62d gesendet. Der zweite Kanal umfasst 12 Bit Daten und wird mit dem fünften, sechsten und siebten Datennibble 62e–62g gesendet.
-
Bei einer zweiten beispielhaften Ausgangssequenz sind zwei Kanäle von Daten in dem Datenrahmen 15 enthalten. Der erste Kanal umfasst 16 Bit und wird mit dem zweiten, dritten, vierten und fünften Nibble 62b–62e gesendet. Der zweite Kanal umfasst 8 Bit Daten und wird mit dem sechsten und siebten Datennibble 62f–62g gesendet.
-
Bei einer dritten beispielhaften Ausgangssequenz sind zwei Kanäle von Daten in dem Datenahmen 15 enthalten. Der erste Kanal umfasst 12 Bit und wird mit dem zweiten, dritten und vierten Datennibble 62b–62d gesendet. Der zweite Kanal umfasst 8 Bit Daten und wird mit dem fünften und sechsten Datennibble 62e–62f gesendet. Das siebte Datennibble 62g kann eine invertierte Kopie eines höchstwertigen Nibbles des ersten Kanals sein. Das höchstwertige Nibble des ersten Kanals kann z.B. das zweite Datennibble 62b sein.
-
Bei einer vierten beispielhaften Ausgangssequenz sind zwei Kanäle von Daten in dem Datenrahmen 15 enthalten. Der erste Kanal umfasst 12 Bit und wird mit dem zweiten, dritten und vierten Datennibble 62b–62d gesendet. Der zweite Kanal umfasst 8 Bit der Daten und wird mit dem fünften und sechsten Datennibble 62e–62f gesendet. Das siebte Nibble 62g kann auf den Wert 00 (hex) gesetzt werden.
-
Typischerweise umfasst das erste Datennibble 62a Statusinformationen, z.B. ob ein Diagnostikproblem bei den Daten des ersten Kanals, den Daten des zweiten Kanals usw. detektiert wurde.
-
Typischerweise umfasst das achte Datennibble 62h Daten für CRC (Cyclic Redundancy Check)/Prüfsumme. Die CRC-/Prüfsummendaten können als Funktion der in den vorherigen Datennibbles 62a–62g enthaltenen Daten erzeugt werden und können durch einen SENT-Empfänger verwendet werden, um zu bestimmen, dass eine gültige SENT-Übertragung empfangen wurde.
-
Es können auch andere Ausgangsequenzen erzeugt werden, die mit dem SENT-Protokoll vereinbar sind.
-
FEHLERBEDINGUNGEN
-
Mögliche Fehlerbedingungen, die in einen Datenrahmen 15 eingeführt werden können, umfassen einen Kalibrationsimpuls 60, der zu lang ist, einen Kalibrationsimpuls 60, der zu kurz ist, einen oder mehrere Datenimpulse 62, die zu lang sind, einen oder mehrere Datenimpulse 62, die zu kurz sind, einen Pausenimpuls 64, der zu kurz ist, einen Pausenimpuls 64, der zu lang ist, einen niedrigen Zustand eines Impulses, der zu kurz ist, einen niedrigen Zustand eines Impulses, der zu lang ist, zu viele Impulse und zu wenige Impulse in dem Datenrahmen. Außerdem können Fehlerbedingungen positive und negative „Rausch“-Impulse umfassen, die in den SENT-Datenrahmen 15 gezwungen werden. Die Rauschimpulse können von einer höherfrequenten Zeitbasis als die als Zeitbasis zur Erzeugung des Datenrahmens 15 verwendeten Ticks erzeugt werden und können Zufallsrauschen simulieren, das in den Datenrahmen 15 eingeführt wird.
-
Die mit der falschen Formung eines Datenimpulses 62 zusammenhängenden Fehler, z.B. zu langer Impuls, zu kurzer Impuls, Puls mit niedrigem Zustand zu kurz usw. können in einem beliebigen einzelnen Datenimpuls 62 oder in einer beliebigen Kombination von Datenimpulsen 62 eingeführt werden.
-
Wie oben erwähnt, kann eines der Datennibbles, typischerweise das achte Datennibble 62h, Daten für CRC (Cyclic Redundancy Check) oder Prüfsumme umfassen. Die Daten in dem CRC-/Prüfsummendatenimpuls werden als Funktion der vorherigen Datennibbles erzeugt. Eine zusätzliche Art von Fehler, die eingeführt werden kann, ist das Ändern entweder der CRC-/Prüfsummendaten oder der Daten, aus denen sie abgeleitet wurden, so dass die Funktion nicht erfüllt ist.
-
Die oben aufgelisteten Fehlerbeispiele sind nicht einschränkend. Es können andere Arten von Fehlern durch den SENT-Prüfgenerator 14 erzeugt werden.
-
ERZEUGEN EINES SENT-DATENRAHMENS
-
Wie oben besprochen kann der Computer 16 zusammen mit dem Datenrahmengenerator 18 SENT-Datenrahmen 15 erzeugen und senden. Der Datenrahmengenerator 18 umfasst Schaltungsblöcke zum Ausführen von Operationen wie etwa Erzeugen eines Impulses mit einer bestimmten Länge, Erzeugen eines niedrigen Zustands eines Impulses mit einer bestimmten Länge, Sequenzieren der Impulse gemäß den SENT-Protokoll und Einführen von Fehlern in den SENT-Datenrahmen 15.
-
Programmieren des Datenrahmengenerators zur Erzeugung eines Datenrahmens Anfänglich kann der Computer 16 Zwischendaten zur Verwendung zum Erzeugen eines SENT-Datenrahmens 15 in den Datenrahmengenerator 18 laden. Zum Beispiel kann der Computer 16 Daten in den ersten Latch 24 laden, der die Periode für die durch den Tickgenerator 22 zu erzeugenden Ticks setzt. Der Computer 16 kann ferner den zweiten Latch 26 mit einer Länge (Anzahl von Ticks) eines niedrigen Zustands für jeden Impuls laden und eine Länge jedes der Impulse des SENT-Datenrahmens in die Impulslängenwarteschlange 30 laden. Für die folgenden Besprechungen werden digitale Werte im hexadezimalen Format (hex) vorliegen.
-
Sequenzieren durch den SENT-Datenrahmen
-
Der zweite Zähler 34 kann zum Zählen der für den SENT-Datenrahmen 15 erzeugten Impulse verwendet werden. Zum Beispiel kann der zweite Zähler 34 an einem Zählwert 0A starten. Wenn sich der zweite Zähler 34 an dem Zählwert 0A befindet, kann die Impulslängenwarteschlange 30 Daten aus einer ersten Position ausgeben. Die erste Position der Impulslängenwarteschlange 30 kann eine Länge eines ersten Impulses des SENT-Datenrahmens 15 enthalten. Wenn der Datenrahmengenerator 14 das Erzeugen und Senden des ersten Impulses, z.B. des Kalibrationsimpulses 60A wie oben beschrieben, abgeschlossen hat, kann der zweite Zähler 34 auf den Zählwert 09 dekrementiert werden. Die Impulslängenwarteschlange 30 kann zu einer zweiten Position verschoben werden, die eine Länge für einen zweiten Impuls des SENT-Datenrahmens, z.B. den ersten Datenimpuls 62a, enthält. Am Ende jedes Impulses in dem Datenrahmen 15 kann der zweite Zähler 34 dekrementiert werden und die Impulslängenwarteschlange 30 kann zu einer nächsten Position verschoben werden, bis der zweite Zähler 34 den Wert 00 erreicht und die Übertragung abgeschlossen ist. Der zweite Zähler 34 kann dann auf einen Wert gesetzt werden, der der Anzahl von Impulsen in dem nächsten Datenrahmen 15 entspricht. Der Datenrahmengenerator 18 kann die Erzeugung eines neuen Datenrahmens 15 starten.
-
Setzen einer Impulslänge für die Datenrahmenimpulse
-
Eine Länge jedes Impulses in dem Datenrahmen 15 kann mit dem Tickgenerator 22, der Impulslängenwarteschlange 30, dem ersten Zähler 32 und dem ersten Komparator 36 gesetzt werden. Wie oben beschrieben, kann die Impulslängenwarteschlange 30 ein 8 Bit breites Schieberegister mit 10 Positionen sein. Jede Position kann eine Länge (Anzahl von Ticks) für einen Impuls in dem Datenrahmen 15 speichern.
-
Der Tickgenerator 22 erzeugt eine Zeitbasis für den Datenrahmengenerator 18. Eine Länge und Frequenz von durch den Tickgenerator 22 erzeugten Ticks kann über den Computer 16 programmiert werden.
-
Auf der Basis der Erzeugung des aktuellen Impulses kann die Impulslängenwarteschlange 30 zu einer entsprechenden Position verschoben werden und den an der Position gespeicherten Längenwert an einen ersten Eingang des ersten Komparators 36 ausgeben.
-
Der erste Zähler 32 kann am Anfang der Erzeugung jedes Impulses rückgesetzt und durch den Tickgenerator 22 getaktet werden. Der erste Zähler 32 kann einen Zählwert an einen zweiten Eingang des ersten Komparators 36 ausgeben. Der erste Komparator 36 kann den Ausgangswert des ersten Zählers 32 mit dem von der Impulslängenwarteschlange 30 ausgegebenen Wert vergleichen. Der erste Komparator 36 kann detektieren, wenn der erste Zählerausgangswert gleich dem von der Impulslängenwarteschlange 30 ausgegeben Wert ist. Auf der Basis der Detektion durch den ersten Komparator 36 beendet der Datenrahmengenerator 18 den aktuellen Impuls, der gerade erzeugt wird. Typischerweise kehrt der SENT-Datenrahmen 15 zu einem niedrigen Zustand zurück. Außerdem wird der zweite Zähler 34 dekrementiert und die Impulslängenwarteschlange 30 verschoben. Der Datenrahmengenerator 18 geht dann voran mit der Erzeugung des nächsten Impulses in dem SENT-Datenrahmen 15.
-
Erzeugen einer Länge jedes Impulses erlaubt dem Datenrahmengenerator 18, spezifische Fehlerbedingungen in Impulse an spezifischen Orten in dem Datenrahmen 15 einzuführen. Zum Beispiel können ein beliebiger einzelner Impuls oder Kombinationen von Impulsen zu lang oder zu kurz erzeugt werden, indem eine gewünschte Impulslänge in die Impulslängenwarteschlange 30 programmiert wird.
-
Erzeugen eines Impuls-Niedrigzustands, Umschalten von einem Niedrigzustand zu einem Hochzustand
-
Typischerweise beginnt zum Beispiel in dem Datenrahmen 15a wie oben beschrieben jeder Impuls in einem SENT-Datenrahmen in einem niedrigen Zustand und geht zu einem hohen Zustand über. Die Zeitdauer, für die der Impuls niedrig ist, kann durch den ersten Zähler 32 zusammen mit dem zweiten Latch 26 und dem zweiten Komparator 38 gesteuert werden. Wie in 2 zu sehen ist, vergleicht der zweite Komparator 38 den Ausgangswert aus dem ersten Zähler 32 mit einem in dem zweiten Latch 26 gespeicherten Wert. Der Ausgang des zweiten Komparators 38 kann zum Beispiel so gesetzt werden, dass, wenn der Ausgangswert des ersten Zählers 32 kleiner als ein in dem zweiten Latch 26 gespeicherter Wert ist, der Ausgangswert des zweiten Komparators 38 und deshalb der Wert des Impulses, der erzeugt wird, niedrig ist. Wenn der Ausgangswert des ersten Zählers 32 zum Beispiel größer oder gleich dem in dem zweiten Latch 26 gespeicherten Wert ist, können der Ausgangswert des zweiten Komparators 38 und der erzeugte Impulswert hoch sein. Auf diese Weise kann mit dem in dem zweiten Latch 26 gespeicherten Wert die Zeitdauer gesteuert werden, für die der Impuls niedrig ist.
-
Einführen erzwungener Impulse
-
Der Impulswert (hoch oder niedrig), erzeugt durch die Kombination des ersten Zählers 32, des zweiten Komparators 38 und des zweiten Latches 26, kann durch den Computer 16 direkt über den Impulsunterbrecher 40 übersteuert werden. Wie oben beschrieben, kann der Impulsunterbrecher 40 als Logikschaltkreise konfiguriert sein, die das Leiten des Ausgangswerts des zweiten Komparators 38 zu dem Datenrahmenausgang blockieren und direkt einen hohen oder niedrigen Wert gemäß von dem Computer 16 empfangenen Eingaben ausgeben. Als Alternative kann der Impulsunterbrecher 40 z.B. Transistoren mit niedriger Impedanz umfassen, die den Ausgang des Komparators 38 „übersteuern“. Auf diese Weise kann der Computer 16 z.B. ein elektrisch rauschbehaftetes System simulieren, indem während einer Niedrig-Periode eines Impulses ein oder mehrere positive Impulse oder während einer Hoch-Periode eines Impulses ein oder mehrere negative Impulse erzeugt werden. Die positiven oder negativen Impulse können auf der Basis einer Zeitbasis mit einer höheren Frequenz als der Frequenz der Ticks erzeugt werden und können deshalb Rauschen in dem Datenrahmen 15 simulieren.
-
ALTERNATIVE ODER ZUSÄTZLICHE MÖGLICHKEITEN ZUM EMPFANGEN VON NACHRICHTEN- UND FEHLERDATEN
-
Zusätzlich oder als Alternative zu dem Empfangen der SENT-Nachricht und Fehlerbefehle über ein Fahrzeugnetzwerk können andere Mechanismen verwendet werden. Zum Beispiel können Nachrichtendaten als ein Analogsignal eingegeben werden, wodurch eine Sensor-Analogausgabe simuliert wird. Der Computer 16 kann das Analogsignal empfangen und z.B. unter Verwendung eines Analog-Digital-Umsetzers (ADC) die analoge Eingabe in einen digitalen Wert umsetzen. Ferner kann zum Beispiel die Schnittstelle 20 einen oder mehrere Schalter oder andere Eingabevorrichtungen umfassen. Die Schalter oder anderen Eingabevorrichtungen können durch einen Benutzer gesetzt werden, um eine oder mehrere Arten von durch den SENT-Prüfgenerator 14 zu erzeugenden Fehlern zu spezifizieren.
-
BEISPIELHAFTER PROZESSFLUSS
-
4 ist eine Darstellung eines beispielhaften Prozesses 400 zur Erzeugung eines SENT-Datenrahmens auf der Basis von über einen Fahrzeugnetzwerkbus empfangenen Anweisungen. Der Prozess 400 beginnt in einem Block 405.
-
Im Block 405 bestimmt der Computer 16 in dem SENT-Prüfgenerator 14, ob neue Nachrichtendaten verfügbar sind. Zum Beispiel kann das Kommunikationsmodul 21 (Computer 16) über den Fahrzeugnetzwerkbus 42 eine Anweisung empfangen, die eine Nachricht umfasst. Auf den Empfang der Anweisung hin kann das Kommunikationsmodul 21 die Nachricht speichern und ein „Nachricht-Verfügbar-Flag“ setzen, das angibt, dass eine neue Nachricht verfügbar ist. Der den Prozess 400 ausführende Computer 16 kann das Modul 21 auf der Basis des Flags nach der Nachricht abfragen. Wenn das Nachricht-Verfügbar-Flag gesetzt wurde, wird der Prozess 400 in einem Block 410 fortgesetzt. Wenn das Nachricht-Verfügbar-Flag nicht gesetzt wurde, wird der Prozess 400 in einem Block 415 fortgesetzt.
-
Im Block 410 lädt der Computer 16 die neue verfügbare Nachricht hoch, um ihre Daten für Verarbeitung zur Verfügung zu stellen. Zum Beispiel kann der Computer 16 die Nachrichtendaten von dem Kommunikationsmodul 21 zu einem Speicherort transferieren, der für die Verarbeitung von SENT-Datenrahmen 15 zugeteilt ist. Der Prozess 400 wird dann in einem Block 415 fortgesetzt.
-
Im Block 415, der Block 405 oder Block 410 folgen kann, bestimmt der Computer 16, ob neue Fehlerdaten verfügbar sind. Zum Beispiel kann das Kommunikationsmodul 21 eine Fehlerdaten enthaltende Anweisung über den Fahrzeugnetzwerkbus 42 empfangen. Auf den Empfang der Anweisung hin kann das Kommunikationsmodul 21 die Fehlerdaten speichern und ein „Fehlerdaten-Verfügbar-Flag“ setzen, das angibt, dass neue Fehlerdaten verfügbar sind. Der den Prozess 400 ausführende Computer 16 kann das Flag abfragen. Wenn das Neue-Fehlerdaten-Verfügbar-Flag gesetzt wurde, wird der Prozess 400 in einem Block 420 fortgesetzt. Wenn das Nachricht-Verfügbar-Flag nicht gesetzt wurde, wird der Prozess 400 in einem Block 425 fortgesetzt.
-
Im Block 420 lädt der Computer 16 die Fehlerdaten hoch, um die Daten für Verarbeitung zur Verfügung zu stellen. Zum Beispiel kann der Computer 16 die Fehlerdaten von dem Kommunikationsmodul 21 zu einem Speicherort transferieren, der für die Verarbeitung von SENT-Datenrahmen 15 zugeteilt ist. Der Prozess wird dann in einem Block 425 fortgesetzt.
-
Im Block 425 bestimmt der Computer 16, ob ein Triggerereignis für das Erzeugen eines neuen SENT-Datenrahmens 15 aufgetreten ist. Zum Beispiel kann der Computer 16 ein Signal von dem Datenrahmengenerator 18 empfangen, das angibt, dass der Datenrahmengenerator 18 bereit ist, neue Daten zu empfangen. Das Signal kann z.B. ein durch den Datenrahmengenerator 18 gesetztes Bereitschaftsflag oder ein von dem Datenrahmengenerator 18 empfangenes Interrupt-Signal sein. Wenn der Computer 16 bestimmt, dass ein Triggerereignis aufgetreten ist, wird der Prozess 400 in einem Block 430 fortgesetzt. Wenn der Computer 16 bestimmt, dass noch kein Triggerereignis aufgetreten ist, kann der Prozess 400 zu Block 405 zurückkehren und weiter auf den Empfang neuer Nachrichtendaten überwachen.
-
Wenn der Computer 16 im Block 425 bestimmt, dass ein Triggerereignis aufgetreten ist, wird der Prozess 400 in einem Block 430 fortgesetzt.
-
Im Block 430 erzeugt der Computer 16 Zwischendaten wie oben beschrieben zur Erzeugung eines gültigen SENT-Datenrahmens. Auf der Basis der in den Blöcken 405 und 410 empfangenen aktuell verfügbaren Nachrichtendaten bestimmt der Computer 16 eine Länge jedes Impulses in den Zwischendaten, eine Periode für die Ticks, eine Länge eines niedrigen Zustands, eine Anzahl von Impulsen usw. vereinbar mit dem SENT-Protokoll und speichert die Daten zur weiteren Verarbeitung.
-
Im Block 430 kann der Computer 16 vor dem Erzeugen der Zwischendaten eine bestimmte zu sendende Ausgangssequenz bestimmen. Wie oben beschrieben, unterstützt das SENT-Protokoll mehrere Ausgangssequenzen. Der Prüfgenerator 14 kann die Erzeugung einer oder mehrerer dieser Sequenzen unterstützen. Zum Beispiel kann der Computer 16 Eingaben von der Schnittstelle 20 empfangen, die eine bestimmte Ausgangssequenz auswählen. Als Alternative kann der Computer 16 aus dem Fahrzeugnetzwerk 42 eine Anweisung empfangen, die die bestimmte Ausgangssequenz auswählt. Der Computer 16 kann dann die Zwischendaten vereinbar mit den in den Blöcken 405 empfangenen Nachrichtendaten und die ausgewählte Ausgangssequenz erzeugen. Der Prozess 400 wird in einem Block 435 fortgesetzt.
-
Im Block 435 modifiziert der Computer 16 die im Block 430 erzeugten Zwischendaten, um gemäß den in den Blöcken 415 und 420 empfangenen Fehlerdaten Fehler einzuführen. Zum Beispiel kann der Computer 16 auf der Basis der Fehlerdaten die Längen eines oder mehrerer Impulse in den Zwischendaten modifizieren, die Periode für die Ticks modifizieren usw. Der Prozess wird in einem Block 440 fortgesetzt.
-
Im Block 440 lädt der Computer 16 die in den Blöcken 430 und 335 zusammengestellten Zwischendaten in den Datenrahmengenerator 18. Wie oben beschrieben, wird die Länge jedes Impulses des SENT-Datenrahmens in die Impulslängenwarteschlange 30 geladen, die Periode der Ticks wird in den ersten Latch 24 geladen, die Länge eines niedrigen Zustands wird in den zweiten Latch 26 geladen usw. Der Prozess wird in einem Block 445 fortgesetzt.
-
Im Block 445 erzeugt der Datenrahmengenerator 18 unter der Kontrolle des Computers 16 einen SENT-Datenrahmen 15. Der Datenrahmengenerator 18 kann ferner z.B. ein Interrupt- und/oder Bereitschaftsflag erzeugen, das angibt, dass der Datenrahmengenerator 18 bereit ist, eine neue Übertragung von Datenrahmen 15 zu starten. Der Prozess 400 wird in einem Block 450 fortgesetzt.
-
Im Block 450 bestimmt der Computer 16, ob der Prozess 400 enden soll. Zum Beispiel kann der Computer 16 dafür programmiert sein, einen SENT-Datenrahmen 15 zu senden und dann auf weitere Anweisungen zu warten. Als Alternative kann der Computer 16 dafür programmiert sein, kontinuierlich SENT-Datenrahmen 15 zu senden, bis er eine Anweisung empfängt, den Prozess 400 anzuhalten. Die Anweisung, den Prozess 400 anzuhalten, kann z.B. von der Schnittstelle 20 oder über den Netzwerkeingang 42 kommen. Wenn der Computer 16 bestimmt, dass der Prozess 400 fortgesetzt werden soll, kann der Prozess 400 zu Block 405 zurückkehren. Andernfalls kann der Prozess 400 enden.
-
SCHLUSSBEMERKUNGEN
-
Im vorliegenden Gebrauch bedeutet der Ausdruck „im Wesentlichen“, dass eine Form, Struktur, Messung, Quantität, Zeit usw. aufgrund von Unzulänglichkeiten in Materialien, Maschinenbearbeitung, Herstellung usw. von einer exakten beschriebenen Geometrie, Distanz, Messung, Quantität, Zeit usw. abweichen kann.
-
Der Ausdruck "beispielhaft" wird hier im Sinne von ein Beispiel bedeutend gebraucht, z.B. sollte eine Erwähnung eines "beispielhaften Widget" als sich einfach auf ein Beispiel für ein Widget beziehend aufgefasst werden.
-
In den Zeichnungen geben dieselben Bezugszahlen dieselben Elemente an. Ferner können einige oder alle dieser Elemente geändert werden. Im Hinblick auf die hier beschriebenen Komponenten, Prozesse, Systeme, Verfahren usw. versteht sich, dass diese hier zur Veranschaulichung bestimmter Ausführungsformen angegeben werden und auf keinerlei Weise als Beschränkung der beanspruchten Erfindung aufgefasst werden sollten.
-
Dementsprechend versteht sich, dass die obige Beschreibung nicht einschränkend, sondern veranschaulichend sein soll. Fachleuten würden bei Durchsicht der obigen Beschreibung viele andere Ausführungsformen und Anwendungen als die angegebenen Beispiele einfallen. Der Schutzumfang der Erfindung sollte nicht mit Bezug auf die obige Beschreibung bestimmt werden, sondern sollte stattdessen mit Bezug auf die angefügten Ansprüche, zusammen mit dem vollen Umfang von Äquivalenten, zu denen diese Ansprüche berechtigt sind, bestimmt werden. Es wird erwartet und beabsichtigt, dass zukünftige Entwicklungen auf den hier besprochenen Gebieten auftreten werden und dass die offenbarten Systeme und Verfahren in solche zukünftigen Ausführungsformen integriert werden. Zusammengefasst versteht sich, dass die Erfindung modifiziert und abgewandelt werden kann und nur durch die folgenden Ansprüche beschränkt wird.
-
Allen in den Ansprüchen gebrauchten Ausdrücken sollen ihre normalen und gewöhnlichen Bedeutungen gegeben werden, so, wie sie von Fachleuten verstanden werden, sofern es hier nicht ausdrücklich gegenteilig erwähnt wird. Insbesondere sollte die Verwendung der Singularartikel wie "ein", "das", "besagtes" usw. als eines oder mehrere der angeführten Elemente aufführend interpretiert werden, solange nicht ein Anspruch eine explizite gegenteilige Beschränkung anführt.