DE102013210077A1 - Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle - Google Patents

Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle Download PDF

Info

Publication number
DE102013210077A1
DE102013210077A1 DE102013210077.9A DE102013210077A DE102013210077A1 DE 102013210077 A1 DE102013210077 A1 DE 102013210077A1 DE 102013210077 A DE102013210077 A DE 102013210077A DE 102013210077 A1 DE102013210077 A1 DE 102013210077A1
Authority
DE
Germany
Prior art keywords
interface
unit
unspecific
output
microcontroller
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
DE102013210077.9A
Other languages
English (en)
Inventor
Axel Aue
Eugen Becker
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
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
Priority to DE102013210077.9A priority Critical patent/DE102013210077A1/de
Priority to US14/288,012 priority patent/US9965437B2/en
Priority to KR1020140064521A priority patent/KR102205776B1/ko
Priority to CN201410230036.9A priority patent/CN104216312A/zh
Publication of DE102013210077A1 publication Critical patent/DE102013210077A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0022Multibus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/24Interrupt
    • G06F2213/2418Signal interruptions by means of a message
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA

Abstract

Ein Mikrocontroller für ein Steuergerät, insbesondere für ein Fahrzeugsteuergerät, umfasst eine zentrale Verarbeitungseinheit (CPU), mindestens ein schnittstellenunspezifisches Eingangsmodul, mindestens ein schnittstellenunspezifisches Ausgangsmodul, mindestens eine Routingeinheit sowie mindestens eine Recheneinheit zur Verarbeitung schnittstellenspezifischer Informationen. Dabei ist der Mikrocontroller derart konfigurierbar, dass das mindestens eine schnittstellenunspezifische Eingangsmodul, das mindestens eine schnittstellenunspezifische Ausgangsmodul, die mindestens eine Routingeinheit sowie die mindestens eine Recheneinheit zur Verarbeitung schnittstellenspezifischer Informationen die Funktionen entsprechend einer von mehreren seriellen Schnittstellen, insbesondere von SPI, UART, LIN, CAN, PSI5, FlexRay, SENT oder Ethernet, erfüllen. Zudem ist die Recheneinheit dazu eingerichtet, aus den zweiten Nutzdaten als Ausgangsdaten einen gesamten Ausgangs-Nachrichtenrahmen zu erzeugen und diesen an das schnittstellenunspezifische Ausgangsmodul zu übertragen.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft elektronische Steuergeräte, insbesondere zur Steuerung von Funktionen in einem Fahrzeug, die zur Kommunikation mit anderen Teilnehmern eines Kommunikationssystems Schnittstellen nach außen aufweisen.
  • Stand der Technik
  • Steuergeräte in einem Fahrzeug verfügen gewöhnlich über serielle Schnittstellen wie z.B. SPI, UART, LIN, CAN, PSI5, FlexRay, SENT, I2C, MSC (Micro-Second-Channel), Ethernet und andere zur Verbindung bzw. Kommunikation mit anderen Steuergeräten, Sensoren, Aktoren oder anderen Peripheriegeräten. Nach Stand der Technik sind diese seriellen Schnittstellen durch VHDL-Code in einem Mikrocontroller des Steuergeräts implementiert. Hardwareseitig muss zur Implementierung einer seriellen Schnittstelle je nach Art der Schnittstelle z.B. ein schnittstellenspezifischer Kommunikationscontroller einschließlich Protokollcontroller, Sampleeinheit, Speichereinheit sowie ein Transceiver (Sender-Empfänger) implementiert werden. Ein Bustransceiver ist z.B. bei SENT und SPI nicht nötig. Schnittstellenspezifische Hardwareeinheiten (z.B. Puffer bei SPI, Protokoll-Controller bei CAN) machen eine solche Implementierung zusätzlich aufwendig und unflexibel.
  • Aus der WO-2006013212 A1 ist beispielsweise die Umsetzung eines FlexRay-Kommunikationsbausteins zur Kopplung einer FlexRay-Kommunikations-Verbindung mit einem dem FlexRay-Kommunikationsbaustein zugeordneten Teilnehmer in einem FlexRay-Netzwerk bekannt. Ein Mikrocontroller mit einer typischen Ausstattung serieller Schnittstellen ist beispielsweise dem Dokument „16/32-Bit Architecture, XC2387C, XC2388C, 16/32-Bit Single-Chip Microcontroller with 32-Bit Performance, XC2000 Family / High Line, Data Sheet V1.3 2011-07“ von Infineon zu entnehmen.
  • Es gibt sehr unterschiedliche Anforderungen an Art und Menge der seriellen Schnittstellen in verschiedenen Fahrzeuganwendungen für ein Steuergerät bzw. für einen Mikrocontroller eines solchen Steuergeräts. So kann beispielsweise in einer Anwendung die Anforderung lauten: eine SPI-Schnittstelle, zwei LIN-Schnittstellen, 5 CAN-Schnittstellen. In einer anderen, anspruchsvolleren Anwendung können weitere Schnittstellen wie FlexRay oder Ethernet zusätzlich benötigt werden oder eine höhere Anzahl der vorhandenen Schnittstellen. Um dem zu begegnen, kann ein Mikrocontroller mit sehr vielen Schnittstellen verschiedener Art herangezogen werden, der allerdings für eine Großzahl der Anwendungen überdimensioniert wäre und damit zu teuer. Alternativ kann für jede Anwendung ein spezifischer Mikrocontroller implementiert werden, der von jeder Schnittstellenart über genau die gewünschte Menge verfügt, damit aber dem Wunsch nach Vereinheitlichung entgegenläuft und hohe Implementierungskosten verursacht. Beide Lösungen sind zudem unflexibel für noch unbekannte zukünftige Anforderungen. Insgesamt führt die Schnittstellen-spezifische Hardware-Implementierung der seriellen Schnittstellen in einem Mikrocontroller für ein Fahrzeug-Steuergerät somit zu unflexiblen Lösungen, die nur aufwendig an verschiedene Anforderungen angepasst werden können.
  • Offenbarung der Erfindung
  • Die Erfindung geht aus von einem Verfahren zur Bereitstellung mindestens einer generischen Schnittstelle, einem entsprechenden Mikrocontroller sowie einem Steuergerät mit einem solchen Mikrocontroller.
  • Ein flexibler Aufbau eines Mikrocontroller weist dabei eine zentrale Verarbeitungseinheit (CPU), ein schnittstellenunspezifisches Eingangsmodul, ein schnittstellenunspezifisches Ausgangsmodul, eine Routingeinheit, sowie zur Verarbeitung schnittstellenspezifischer Informationen eine Recheneinheit auf. Die Recheneinheit ist dabei vorzugsweise nicht mit der zentralen Verarbeitungseinheit identisch. Die genannten Schaltungsteile des Mikrocontrollers sind als generische Schnittstelle so konfigurierbar, dass sie je nach Konfiguration Funktionen entsprechend einer von mehreren seriellen Schnittstellen, insbesondere von SPI, UART, LIN, CAN, PSI5, FlexRay, SENT, I2C, MSC oder Ethernet, bereitstellen können.
  • Mikrocontroller müssen oft einen breiten Einsatzbereich haben, da ihre Designund Produktionskosten hoch sind und daher nicht für jede Anwendung ein eigener Mikrocontroller entwickelt werden kann. Durch die vorgeschlagene Bereitstellung generischer Schnittstellen im Mikrocontroller muss die Anzahl für jeden Typ der in verschiedenen Anwendungsfällen des Mikrocontrollers benötigten Schnittstellen beim Design des Mikrocontrollers nicht bekannt sein. Es werden vielmehr Hardwareschaltungen bereitgestellt, die je nach Konfiguration die Aufgaben einer bestimmten seriellen Schnittstelle erfüllen.
  • In einem Verfahren zur Darstellung generischer Schnittstellen durch Hardwareschaltungen eines Mikrocontrollers werden in einem grundsätzlich separaten Teilverfahren zum Empfang und zur Verarbeitung von Eingangsdaten entsprechend einem Protokoll der einen der mehreren seriellen Schnittstellen diese Eingangsdaten über ein schnittstellenunspezifisches Eingangsmodul empfangen und über eine Routingeinheit an eine Recheneinheit übertragen. Von der Recheneinheit werden Nutzdaten aus den Eingangsdaten extrahiert, insbesondere durch die Entfernung von Protokollspezifika des Protokolls aus den Eingangsdaten. Die ersten Nutzdaten werden schließlich der zentralen Verarbeitungseinheit (CPU) zur Verfügung gestellt.
  • In einem grundsätzlich separaten Teilverfahren zur Verarbeitung von Daten und Versendung von Ausgangsdaten werden zweite Nutzdaten der zentralen Verarbeitungseinheit einer Recheneinheit empfangen. Von der Recheneinheit werden Ausgangsdaten aus den zweiten Nutzdaten erzeugt, insbesondere durch Hinzufügen von Protokollspezifika des Protokolls zu den zweiten Nutzdaten. Die Ausgangdaten werden an eines der schnittstellenunspezifischen Ausgangsmodule übertragen und schließlich entsprechend dem Protokoll der einen der mehreren seriellen Schnittstellen über ein schnittstellenunspezifisches Ausgangsmodul versendet. Dabei werden die Ausgangsdaten von der Recheneinheit als gesamter Nachrichtenrahmen weiter übermittelt. Das Ausgabemodul empfängt ebenfalls die Ausgangsdaten in einem gesamten Nachrichtenrahmen. Hierzu weist das Ausgangsmodul vorzugsweise einen Zustandsautomaten auf und einen Speicher mit ausreichender Kapazität zum Speichern eines gesamten Nachrichtenrahmens. Um mit einer generischen Schnittstelle verschiedene serielle Schnittstellen nachbilden zu können, muss das Ausgangsmodul dieser generischen Schnittstelle einen Speicher aufweisen, der in der Lage ist, einen gesamten Nachrichtenrahmen jedes Protokolls entsprechend der potentiell nachzubildenden Schnittstellen speichern zu können.
  • Die Ausgabe der Ausgangsdaten durch das Ausgangsmodul kann auf verschiedene Arten erfolgen. Besonders einfach umzusetzen ist eine Ausgabe durch ein entsprechendes Triggersignal, welches das Ausgangsmodul z.B. von der Recheneinheit oder der zentralen Verarbeitungseinheit empfängt. Alternativ kann die Ausgabe erfolgen, indem die Recheneinheit den Ausgabedaten Zeit- oder Winkelinformationen anhängt, die Ausgabezeit bzw. Ausgabewinkel kennzeichnen. In dieser Variante werden Recheneinheit oder zentrale Verarbeitungseinheit von der Rechenlast durch die Triggervorgänge entlastet. Allerdings muss das Ausgangsmodul hier Zugriff auf Zeit- oder Winkelinformationen haben, mit welchen die Zeit- bzw. Winkelstempel verglichen werden könnten.
  • Die Ausgangsdaten können dem Ausgangsmodul zur Verfügung gestellt werden, in dem die Recheneinheit die Ausgangsdaten über die Routingeinheit an das Ausgangsmodul überträgt. Vorteil hieran ist die effiziente Übertragung vieler Daten durch eine zentrale Routingeinheit. Alternativ kann die Recheneinheit die Daten aber auch direkt in eine Speicherressource des Ausgangsmoduls schreiben. Damit ist die Ausgabe der Daten nicht mehr von der Geschwindigkeit der Routingeinheit abhängig und schnellere Übertragungsraten können realisiert werden. In einer weiteren Variante lädt das Ausgangsmodul die Ausgangsdaten über einen direkten Speicherzugriff (DMA) auf eine Speicherressource, die das Ausgangsmodul entweder mit der Recheneinheit oder der zentralen Verarbeitungseinheit teilt, selbstständig nach. Hierdurch werden Recheneinheit oder zentrale Verarbeitungseinheit weiter entlastet bei hohen möglichen Ausgabegeschwindigkeiten. Allerdings ist hierzu aufgrund des direkten Speicherzugriffs (DMA) eine aufwendigere Hardware nötig. Dieses Verfahren stellt eine besonders flexible Art der Datenverarbeitung dar, da hierzu keine schnittstellenspezifischen Hardwareeinheiten verwendet werden. Die Daten vieler Protokolle entsprechend vielen seriellen Schnittstellen können durch die schnittstellenunspezifischen Eingangs- und Ausgangsmodule empfangen und versendet werden und über Konfiguration kann die Auswertung der empfangenen Daten aufgrund von Protokollinformationen in der Recheneinheit stattfinden. Das ermöglicht die Konfiguration der generischen Schnittstellen entsprechend bestimmten seriellen Schnittstellen, je nach den anwendungsspezifischen Anforderungen an den Mikrocontroller.
  • Die Protokollspezifika, insbesondere Informationen über Startbits, Stoppbits, Paritätsinformationen, Steuerbits, Füllbits oder ähnliche können hierbei in einem Speicher abgelegt werden, z.B. durch die zentrale Verarbeitungseinheit des Mikrocontrollers. Hierüber kann die generische Schnittstelle, vor allem die hierzu eingesetzte Recheneinheit, konfiguriert werden. Die Recheneinheit hat Zugriff auf den Speicher und kann die Protokollinformationen entsprechend der vorgesehenen Konfiguration lesen.
  • Ein noch breiteres Einsatzfeld für die generischen Schnittstellen ergibt sich, wenn die Recheneinheit auch für Berechnungen höherer Protokollschichten eingesetzt wird. Z.B. kann sie die Umrechnungen mehrerer UART-Nachrichtenrahmen in einen LIN-Nachrichtenrahmen vornehmen.
  • Die Weitergabe von Nutzdaten von der Recheneinheit an die zentrale Verarbeitungseinheit wird am einfachsten darüber realisiert, dass die Recheneinheit die Nutzdaten in einen Speicher schreibt, auf den die zentrale Verarbeitungseinheit Zugriff hat, und die zentrale Verarbeitungseinheit darüber informiert, z.B. über einen Interrupt.
  • In einer aufwendigeren Variante, die aber dafür die Recheneinheit und die Zentrale Verarbeitungseinheit entlastet, kann die Recheneinheit die Nutzdaten der zentralen Verarbeitungseinheit über einen direkten Speicherzugriff zur Verfügung stellen.
  • Im Eingangsmodul können den Eingangsdaten Zeitinformationen zugewiesen werden, beispielsweise indem jeder Flankenwechsel am Eingang des Eingangsmoduls zeitgestempelt wird. Hierdurch sind die Flankenwechsel mit Zeitinformationen verknüpft, was unabhängig vom Protokoll der Eingangsdaten erlaubt, diese so aufzunehmen, dass mithilfe einer Recheneinheit die enthaltenen Nutzdaten aufgrund der Zeitinformationen der Pegelwechsel extrahiert werden können. Hierzu können die Flankenwechsel samt Zeitstempel jeweils von dem Eingangsmodul über die Routingeinheit an die Recheneinheit übertragen werden. Die Routingeinheit bringt den Vorteil, dass auch bei einer Mehrzahl von Eingangsmodulen, Ausgangsmodulen und Recheneinheiten der Datentransport zwischen diesen schnell und zuverlässig vonstattengeht.
  • In einer alternativen Variante kann das Eingangsmodul auch komplette Nachrichten speichern und (vorzugsweise über die Routingeinheit) der Recheneinheit zur Verfügung stellen. Da hier nicht jeder Pegelwechsel mit Zeitstempel separat übertragen wird, wird die Routingeinheit entlastet und die Übertragung nicht mehr so stark von der Geschwindigkeit und der Belastung der Routingeinheit bestimmt.
  • In dieser alternativen Variante kann der gesamten Nachricht durch das Eingangsmodul eine Zeitinformation zugeordnet werden. Diese können wiederum Recheneinheit oder zentrale Verarbeitungseinheit zur Einordnung oder Verarbeitung der Eingangsdaten verwenden.
  • Zudem kann durch das Eingangsmodul eine besonders sichere Erkennung der Inhalte der Eingangsdaten erfolgen, wenn diese durch eine Überabtastung analysiert und eine Mehrheitsabstimmung aus den Pegelwerten der Abtastungspunkte ein Bitpegel für jedes Bit der Eingangsdaten bestimmt wird.
  • Die Recheneinheit weist beispielsweise eine Arithmetische Logikeinheit auf, vorzugsweise ist sie als Multi-Kanal-Sequenzer realisiert.
  • Ein Mikrocontroller, bei welchem das schnittstellenunspezifische Eingangsmodul eine Capture-Funktionalität aufweist, kann besonders flexibel und einfach realisierbar generische Schnittstellen zur Verfügung stellen. Mit weniger Ressourcen kann eine wesentlich höhere Flexibilität des Mikrocontrollers erreicht werden.
  • Die Einsatzmöglichkeiten des Mikrocontrollers können durch weitere separate Hardwareschaltungen vergrößert werden, beispielsweise für CRC-Berechnungen oder Berechnungen im Zuge eine Busarbitrierung (zum Beispiel bei CAN), die entweder Teil des Mikrocontroller sind oder mit diesem verbunden. Durch solche auf eine bestimmte Funktion optimierte Hardwareeinheiten werden die weniger spezialisierten übrigen Module, insbesondere die Recheneinheit des Mikrocontrollers entlastet. Manche Berechnungen und damit Anwendungen des Mikrocontrollers sind mit der geforderten Zuverlässigkeit und Geschwindigkeit erst mit solchen zusätzlichen Einheiten möglich.
  • Damit die generischen Schnittstellen die jeweiligen seriellen Schnittstellen in einem Rahmen bereitstellen, wie sie in vielen Anwendungen, insbesondere im Automotive-Bereich verbreitet sind, sollten die Routingeinheit und/oder die Recheneinheit mit einem Takt von mindestens 100 MHz, insbesondere mit einem Takt von mindestens 200 MHz, betrieben werden und damit Eingangsdaten mit einer Eingangs-Baudrate von mindestens 1MBaud empfangen sowie Ausgangsdaten mit einer Ausgangs-Baudrate von mindestens 1 MBaud gesendet werden können.
  • Sehr flexibel einsetzbar und trotzdem besonders günstig ist eine Mikrocontroller, der sowohl spezifische in Hardware realisierte Schnittstellen aufweist als auch generische Schnittstellen mit schnittstellenunspezifischer Hardware, welche konfiguriert werden kann, gewünschte Schnittstellen mit Softwareberechnungen darzustellen. Somit kann für die bekannten Anwendungsfälle des Mikrocontrollers eine gewisse Schnittmenge an Schnittstellen zwischen den Anwendungen fest implementiert werden, während zwischen den Anwendungen unterschiedliche Schnittstellenanforderungen oder noch unbekannte Schnittstellenanforderungen mit generischen Schnittstellen abgedeckt werden.
  • Kombiniert werden können Hardwareschaltungen zur Darstellung generischer Schnittstellen in einem Mikrocontroller mit einem oder mehreren Timer-Modulen. Diese können sich auch flexibel gegenseitig bei Aufgaben unterstützen, wenn entsprechende Kapazitäten bei einem der Hardwareblöcke verfügbar sind.
  • Die beschriebenen Mikrocontroller lassen sich besonders gut in Steuergeräten einsetzen, insbesondere im Automotive-Bereich. Hier sind die Anforderungen an Schnittstellen bei gleichzeitig strikten Kostenvorgaben besonders hoch.
  • Zeichnungen
  • Nachfolgend ist die Erfindung unter Bezugnahme auf die beiliegenden Zeichnungen und anhand von Ausführungsbeispielen näher beschrieben. Dabei zeigt
  • 1 schematisch einen beispielhaften Mikrocontroller mit Hardwareschaltungen zur Darstellung generischer Schnittstellen,
  • 2 schematisch einen beispielhaften Mikrocontroller mit Hardwareschaltungen zur Darstellung generischer Schnittstellen sowie einem Timer-Modul,
  • 3 schematisch einen beispielhaften Mikrocontroller mit Hardwareschaltungen zur Darstellung generischer Schnittstellen sowie mit einer speziellen Hardwareschaltung für CRC-Berechnungen,
  • 4 schematisch einen beispielhaften Mikrocontroller mit Hardwareschaltungen zur Darstellung generischer Schnittstellen sowie mit einem speziellen Ausgangsmodul,
  • 5 schematisch einen beispielhaften Mikrocontroller mit Hardwareschaltungen zur Darstellung generischer Schnittstellen sowie einem speziellen Eingangsmodul und einem zusätzlichen Speicher,
  • 6 schematisch einen beispielhaften Mikrocontroller mit Hardwareschaltungen zur Darstellung generischer Schnittstellen sowie einer Schaltung zur Unterstützung einer Arbitrierung,
  • 7 schematisch zwei beispielhafte Signalverläufe mit Flankenwechseln zur Erläuterung einer CAN-Arbitrierung,
  • 8 schematisch den beispielhaften Ablauf eines Verfahrens zum Empfang von Daten über eine generische Schnittstelle,
  • 9 schematisch den beispielhaften Ablauf eines Verfahrens zum Versenden von Daten über eine generische Schnittstelle,
  • 10 schematisch den beispielhaften Ablauf eines Verfahrens zur Baudratenerkennung und
  • 11 schematisch den beispielhaften Ablauf einer Datenübertragung mit CRC-Berechnung durch eine separate CRC-Einheit.
  • Beschreibung der Ausführungsbeispiele
  • Unter dem Begriff „Serielle Schnittstelle“ wird im Folgenden eine Anbindung zum seriellen Datenaustausch zwischen Geräten verstanden. Serielle Datenübertragung kennzeichnet eine Datenübertragung, bei welcher die Bits nacheinander über eine oder mehrere Leitungen übertragen werden. Zu denen in Fahrzeugen genutzten seriellen Schnittstellen gehören beispielsweise SPI, UART, LIN, CAN, PSI5, FlexRay, SENT, I2C, MSC und Ethernet.
  • Aus der WO-2011120823 A1 ist das Timer-Modul „Generic Timer Module (GTM)“ bekannt. Bei diesem sind Hardware-Submodule um eine zentrale Routingeinheit (genannt „Advanced Routing Unit (ARU)“) angeordnet. Die zentrale Routingeinheit routet Daten zwischen den verschiedenen Hardware-Submodulen, dabei kommt vorzugsweise zur deterministischen Arbitrierung eine Rundlauf-Ablaufplanung („Round Robin“) zum Einsatz. Das heißt, Quell-Module werden innerhalb einer maximalen Rundlauf-Zeit bedient und ihre Daten werden über Adressinformationen an die entsprechenden Ziel-Module geroutet. Das Timer-Modul ist damit in der Lage, die Interrupt-Last der CPU eines Mikrocontrollers zu reduzieren, z.B. in Mikrocontrollern für Elektronische Steuergeräte (ECU), welche zur Steuerung von Funktionen in Fahrzeugen eingesetzt werden. Das Timer-Modul weist als Hardware-Submodule u.a. Eingangsmodule auf, die sogenannten „Timer Input Modules (TIM)“, sowie Ausgangsmodule, die sogenannten „Timer Output Modules (TOM)“ oder auch „ARU-connected Timer Output Modules (ATOM)“. Neben der Routing-Einheit (ARU), den Eingangsmodulen (TIM) und den Ausgangsmodulen (ATOM) weist das Timer-Modul auch einen Multi-Kanal-Sequenzer (Multi Channel Sequencer) als Recheneinheit auf.
  • Das Timer-Modul greift auf das Grundprinzip „Capture/Compare“ zurück. Hierbei werden in den Eingangseinheiten (TIM) einkommende Signale mit Zeitstempeln entsprechend ihrem Eintreffen verknüpft. Die entsprechenden Zeitangaben erhält die Eingabeeinheit (TIM) dabei z.B. von einer Zeitbasis-Einheit (time base unit, TBU). Diese Funktionalität des Zeitstempelns entspricht dem „Capture“ des „Capture/Compare“. Signale, welche über die Ausgabeeinheiten (ATOM) des Timer-Moduls verschickt werden sollen, werden ebenfalls mit Zeitstempeln versehen, z.B. von den verarbeitenden Recheneinheiten (CPU, MCS). Im Ausgangmodul (ATOM) des Timer-Moduls werden die Zeitstempel der Signale mit aktuellen Zeitangaben verglichen. Diese erhält das Ausgangsmodul z.B. ebenfalls aus einer Zeitbasis-Einheit. Entspricht der Zeitstempel des auszugebenden Signals der aktuellen Zeit, so wird das Signal versendet. Diese Funktionalität entspricht dem „Compare“ des „Capture/Compare“. Anstelle der beschriebenen Zeitbasis können auch winkelsynchrone „Capture/Compare“-Funktionen durch die Eingabe- und Ausgabeeinheiten realisiert werden. Diese können im Fahrzeug benötigt werden, da die Winkellage eines Empfangs- oder Sendevorgangs relativ zu einem aktuellen Motorwinkel von besonderer Bedeutung ist. Zum Beispiel kann die Eingabeeinheit eingehende Signale mit Winkelstempeln versehen, ausgehende Nachrichten können zu bestimmten Winkelpunkten versendet werden.
  • Die Recheneinheit bzw. Datenverarbeitungseinheit “Multi-Kanal-Sequenzer (MCS)” ist vorzugsweise realisiert als ein Submodul mit Pipeline-Stufen, einer Arithmetischen Logikeinheit (ALU), Decodern und einer Verbindung zu RAM-Speichereinheiten. In einem Timer-Modul können auch mehrere Multi-Kanal-Sequenzer eingesetzt werden. Die Eingabeeinheiten sind vorzugsweise realisiert als Hardwarebaustein mit Latches und Flipflops sowie einer Verbindung zu einer zeit- und/oder winkelgebenden Einheit. Die Ausgabeeinheiten sind vorzugsweise realisiert als Hardwarebaustein mit Latches und Flipflops, welche z.B. ein Register bilden, sowie einer Verbindung zu einer zeit- und/oder winkelgebenden Einheit. Die Zeitbasis für zeitgebundene Funktionen kann dabei von dem Rechnertakt des Mikrocontrollers (bzw. dessen zentraler Verarbeitungseinheit (CPU)) abgeleitet sein, die Winkelbasis für winkelgebundene Funktionen kann über eine DPLL (digital phase-locked loop) realisiert sein.
  • Zu der weiteren Funktionsweise des Timer-Moduls, insbesondere der genannten Bestandteile ARU, MCS, TIM, ATOM, TBU des Timer-Moduls, wird auf die WO-2011120823 A1 verwiesen. Die entsprechenden Beschreibungsteile der WO-2011120823 A1 sind hiermit durch Verweis in diese Anmeldung einbezogen.
  • Angelehnt an die Funktionalität des bekannten Timer-Moduls ist ein zentraler Aspekt der vorliegenden Erfindung, generische serielle Schnittstellen in einem Mikrocontroller bereit zu stellen, insbesondere zur Anwendung in Fahrzeug-Steuergeräten. Hierzu können entweder Einheiten eines entsprechenden, bereits im Mikrocontroller integrierten Timer-Moduls umkonfiguriert werden oder Einheiten speziell für diese Anwendung in den Mikrocontroller integriert werden. Dabei kann z.B. auf „Capture“-Funktionalitäten von Eingabeeinheiten (TIM) zurückgegriffen werden, um spezifische Schnittstelleneingänge generisch nachzubilden. Unterstützt werden die Eingabe- und Ausgabeinheiten von einer Recheneinheit, z.B. einem Multi-Kanal-Sequenzer (multi channel sequencer, MCS), welcher Berechnungen zur Darstellung einer Schnittstelle durchführt. Zur Verteilung von Daten zwischen den Eingabemodulen, Ausgabemodulen und der Recheneinheit kommt vorzugsweise eine Routingeinheit zum Einsatz. Die im Folgenden beschriebenen Module Eingangsmodul, Ausgangsmodul, Routingeinheit und Recheneinheit weisen dabei vorzugsweise die oben zum Timer-Modul „GTM“ beschriebenen Funktionalitäten der entsprechenden Einheiten TIM, A(TOM), ARU bzw. MCS. Allerdings unterscheidet sich die Hardwareschaltung zur Darstellung generischer Schnittstellen bzw. der Mikrocontroller mit dieser Hardwareschaltung aufgrund der anderen Anforderungen (z.B. Geschwindigkeit des Routings und der Bearbeitung) von dem bekannten Timer-Modul. Vorzugsweise sind dabei über die oben beschriebenen Funktionen der Timer-Submodule hinaus Änderungen in der Hardware des Mikrocontrollers vorzunehmen, zumindest aber müssen die entsprechenden Timer-Hardwarebausteine durch Konfiguration an die veränderten Aufgaben und Anforderungen angepasst werden, um erfindungsgemäß eingesetzt werden zu können.
  • In 1 ist schematisch ein Schaltungsaufbau zur Darstellung einer generischen, seriellen Schnittstelle in einem Mikrocontroller gezeigt.
  • Der Mikrocontroller 101 weist dabei eine Gruppe Hardwareschaltungen 110 auf, welche konfigurierbar die Funktionen einer bestimmten seriellen Schnittstelle bereitstellen. Zu den Hardwarekomponenten 110 gehört ein Eingangsmodul 111, welches mit einem Eingangsdatenkanal 102 verbunden ist. Der Eingangsdatenkanal 102 ist typischerweise eine kabelgebundene Kommunikationsverbindung. Das Eingangsmodul 111 ist mit einer Routingeinheit 112 verbunden. Die Routingeinheit 112 ist neben dem Eingangsmodul 111 auch noch mit einer Recheneinheit 113 und einem Ausgangsmodul 114 verbunden. Das Ausgangsmodul 114 ist mit einem Ausgangsdatenkanal 103 verbunden. Der Ausgangsdatenkanal 103 ist typischerweise ebenfalls eine kabelgebundene Kommunikationsverbindung. Der Eingangsdatenkanal 103 und der Ausgangsdatenkanal 104 sind Teil eines Kommunikationssystems mit einem bestimmten Protokoll, so dass die schnittstellenunspezifischen Hardwarekomponenten 111, 112, 113, 114 derart konfiguriert sein müssen, dass sie die Funktionen der entsprechenden Schnittstelle bereitstellen, welche Daten dieses bestimmten Protokolls verarbeiten kann. Beispielsweise kann es sich bei dem Eingangsdatenkanal 102 um einen Rx-Eingang einer UART-Schnittstelle handeln und beim Ausgangsdatenkanal 103 um einen Tx-Ausgang einer UART-Schnittstelle. Die Hardwarekomponenten 111, 112, 113, 114 müssen in diesem Beispiel so konfiguriert sein, dass sie eine UART-Schnittstelle nachbilden.
  • Das Eingangsmodul 111 und das Ausgangsmodul 114 sind schnittstellenunspezifische Hardwareschaltungen, d.h. sie können Daten vieler verschiedener serieller Schnittstellen, aufgebaut gemäß verschiedenen Protokollstrukturen verarbeiten. Die Recheneinheit 113 ist zu unterscheiden von der zentralen Verarbeitungseinheit (CPU) des Mikrocontrollers und wird im Folgenden zur Unterscheidung mit MCS bezeichnet, da es sich in einer bevorzugten Ausführungsform des Mikrocontrollers bei der Recheneinheit (MCS) um einen Multi-Kanal-Sequenzer handelt. Andere Hardware-Umsetzungen der Recheneinheit (MCS) sind ebenso möglich, vorzugsweise ebenfalls mit einer Arithmetischen Logikeinheit (ALU).
  • Die Routingeinheit 112 verbindet die Module Eingangsmodul 111, Ausgangsmodul 114 sowie Recheneinheit (MCS) 113 zeitmultiplex.
  • 1 zeigt den Mikrocontroller 101 stark vereinfacht. Natürlich weist ein solcher Mikrocontroller 101 viele weitere hier nicht gezeigte Bestandteile auf, u.a. mindestens eine zentrale Verarbeitungseinheit (CPU), welche Datenverarbeitungen, Berechnungen und Konfigurationen im Mikrocontroller durchführen kann. Zudem umfasst der Mikrocontroller 101 vorzugsweise mehrere solcher Eingangsmodule 111 und Ausgangsmodule 114. Je nach Anwendung kann er auch mehrere Recheneinheiten (MCS) 113 aufweisen. Viele solcher Module 111, 113, 114 können mit einer einzigen Routingeinheit 112 verbunden sein. Für sehr komplexe Anwendungen können auch mehrere Routingeinheiten 112 in einem solchen Mikrocontroller 101 eingesetzt werden.
  • In einer besonders bevorzugten Variante des vorliegenden Mikrocontrollers verfügt dieser über eine Anzahl „echter“, also entsprechend dem Stand der Technik fest in Hardware realisierter, serieller Schnittstellen sowie über eine Anzahl „generischer“ Schnittstellen in Form von Hardwareschaltungen wie der zu 1 beschriebenen. Hierdurch kann vorzugsweise die Mindestanzahl der benötigten Schnittstellen einer bestimmten Schnittstellenart wie bisher günstig fest in Hardware realisiert werden, aber die zwischen verschiedenen Anwendungen des Mikrocontrollers unterschiedlichen Schnittstellen können als generische Schnittstellen vorgesehen werden und somit entsprechend der jeweiligen Anwendung in Software konfiguriert werden. Damit ist ein flexibler Einsatz des Mikrocontrollers bei reduzierter Anzahl vorzuhaltender Schnittstellen möglich.
  • In 8 ist der Ablauf eines Verfahrens zur Darstellung einer generischen Schnittstelle für den Empfang von Nachrichten schematisch dargestellt.
  • In einem Eingangsmodul (z.B. 111 in 1) eines Mikrocontrollers werden in einem ersten Schritt (801) digitale Daten von Mikrocontroller-extern als Bits empfangen. Dabei liegt am Eingangsmodul ein Eingangssignal an. Dieses liegt in einem Protokoll entsprechend der nachzubildenden seriellen Schnittstelle vor. Die Flankenwechsel zwischen den Bits der empfangenen Daten werden im Eingangsmodul im Schritt 802 jeweils zeitgestempelt (Capture-Funktionalität). Hierzu werden im Eingangsmodul die Zeitstempel erfasst, zu denen sich der Pinzustand, also die Flanke, am Eingang des Eingangsmoduls ändert. Die nötigen Zeitinformationen für die Zeitstempelung kann das Eingangsmodul z.B. aus einer Zeitbasiseinheit erhalten. Die so ermittelten Daten werden in Schritt 803 von dem Eingangsmodul an eine Routingeinheit (z.B. 112 in 1) des Mikrocontrollers übermittelt. Hierzu wird die Flankenänderung bei Änderung des Pinzustandes zusammen mit dem Zeitstempel, bei dem sich die andere Flanke eingestellt hat, übertragen. Die Routingeinheit wiederum überträgt die Informationen in Schritt 804 an eine Recheneinheit (MCS, z.B. 113 in 1) des Mikrocontrollers.
  • Die Recheneinheit (MCS) bearbeitet in Schritt 805 die Informationen, welche sie als mehrere separate Übertragungen seitens der Routingeinheit entsprechend den mehreren Capture-Ereignissen im Eingangsmodul erreichen. Dabei rekonstruiert die Recheneinheit (MCS) aus dem empfangenen Bitstrom (also den zeitgestempelten Flankenwechseln) das empfangene Signal. Weiterhin überprüft die Recheneinheit (MCS) dieses und entfernt Steuerbits (z.B. Startbit(s), Stoppbit(s), Paritätsbit(s), Stuffing Bit(s)) entsprechend dem vorliegenden Protokoll. Die Recheneinheit (MCS) erhält die Informationen für diese Bearbeitung (also die Informationen, um welches Protokoll es sich handelt, bzw. wie die Nachrichten dieses Protokolls aufgebaut sind) vorzugsweise aus einem lokalen, flüchtigen Speicher, auf welchen sie Zugriff hat. Die Informationen können dorthin z.B. von einer zentralen Verarbeitungseinheit (CPU) des Mikrocontrollers aus einem nicht-flüchtigen Speicher (z.B. Flash-Speicher) übertragen werden. Beim Start des Mikrocontrollers werden vorzugsweise das Eingangsmodul und das noch beschriebene Ausgangsmodul durch die zentrale Verarbeitungseinheit (CPU) fest einem bestimmten Nachrichten-Protokoll zugewiesen und die Information hierüber sowie die entsprechenden Protokollinformationen für die Recheneinheit (MCS) zugreifbar in einem flüchtigen Speicher abgelegt.
  • In einem optionalen Schritt 806 kann die Recheneinheit (MCS) weitere Bearbeitungsschritte und Berechnungen durchführen, z.B. die Berechnung höherer Protokollschichten. Beispielsweise können mehrere UART-Frames in ein LIN-Frame umgerechnet werden oder diverse Signalberechnungen durchgeführt werden.
  • Die Recheneinheit (MCS) stellt die bearbeiteten Informationen in Schritt 807 einer zentralen Verarbeitungseinheit (CPU) des Mikrocontrollers zur Verfügung. Vorzugsweise werden die Informationen in einem Speicher (z.B. einem RAM) abgelegt und die zentrale Verarbeitungseinheit (CPU) darüber informiert (z.B. über einen Interrupt oder durch ein Triggern eines DMA-Kanales). Dabei kann die Nachricht neben den Nutzdaten z.B. noch über weitere Informationen, wie z.B. einen Identifier im Fall einer CAN-Nachricht, verfügen.
  • In Schritt 808 verarbeitet die zentrale Verarbeitungseinheit (CPU) schließlich die empfangenen Informationen.
  • Die bisher beschriebenen Ausführungsbeispiele gehen entsprechend der Grundkonfiguration (1) davon aus, dass die Hardwareschaltung zur Darstellung generischer, serieller Schnittstellen ein Eingangsmodul mit Capture-Funktionalität aufweist. Im Gegensatz zum oben angeführten Generic Timer Module kann allerdings ein Ausgangsmodul ohne Compare-Funktionalität verwendet werden, da die Ausgabe der Daten nicht analog zum Empfang über zeitgestempelte Flankenwechsel erfolgen soll. Ein solches spezielles Modul zur Ausgabe von Schnittstellen-Frames kann somit von den oben beschriebenen Ausgangsmodulen (TOM, ATOM) der Hardwareschaltung und des Timer-Moduls abweichen.
  • Die Hardwarerealisierung eines solchen Ausgabe-Hardwaremoduls kann zum Beispiel über einen Zustandsautomaten (State Machine) in Kombination mit einem Speicher erfolgen. Das spezielle Ausgangsmodul kann einen ganzen Nachrichtenrahmen in seinem Speicher ablegen. Die Routingeinheit kann somit die ganze Nachricht mit einem Sendevorgang an das Ausgangsmodul senden, was in einer reduzierten Belastung der Routingeinheit resultiert. Zudem ist es mit einer solchen Ausgabeeinheit einfacher, höhere Baudraten bei der Ausgabe von Daten zu erreichen, da diese nicht maßgeblich durch die Taktung der Routingeinheit begrenzt ist.
  • Die Ausgabeeinheit muss in einer Ausführungsform wiederum Zeitinformationen (oder entsprechend Winkelinformationen) zur Verfügung haben. Sie benötigt dabei die Information, zu welchem Zeitpunkt (bzw. zu welchem Winkel) und mit welcher Baudrate die gesamte Nachricht, bzw. der gesamte Nachrichtenrahmen versendet werden muss. Mittels der verfügbaren Zeit- oder Winkelinformation und der dem Ausgabemodul bekannten Baudrate werden dann die Daten versendet. Vorzugsweise erfolgt ein direktes Schreiben der Daten von der Recheneinheit (MCS) oder der zentralen Verarbeitungseinheit (CPU) des Mikrocontrollers in den Speicher der Ausgabeeinheit. Die Ausgabeeinheit bekommt dabei das Signal (Datum) sowie Informationen über die Datenrate und den Sendezeitpunkt.
  • Alternativ kann der Sendevorgang statt über Zeitinformationen auch durch einen konkreten Trigger der Recheneinheit (MCS) oder der zentralen Verarbeitungseinheit (CPU) des Mikrocontrollers an die spezielle Ausgabeeinheit initiiert werden. Die Ausgabeeinheit legt die Daten dann autark am Ausgangspin an.
  • In 4 ist ein Mikrocontroller mit einem speziellen Ausgangsmodul 414 gezeigt. Der Mikrocontroller 401 mit den Hardwarekomponenten 410, also Eingangsmodul 411, Routingeinheit 412, Recheneinheit (MCS) 413 sowie Ausgangsmodul 414 sowie den Verbindungen zu Eingangsdatenkanal 402 und Ausgangsdatenkanal 403, entspricht wiederum weitgehend dem Mikrocontroller 101 in 1. Das Ausgangsmodul 414 weist allerdings erweiterte Funktionalität auf, z.B. Speicherressourcen zum Speichern eines vollständigen Nachrichtenrahmens. In der gezeigten bevorzugten Ausführungsform weist das Ausgangsmodul 414 zudem eine weitere Verbindung zum Mikrocontroller 401 auf. Über diese Verbindung können dem Ausgangsmodul 414 beispielsweise Daten durch die zentrale Verarbeitungseinheit (CPU) des Mikrocontrollers 401 zur Verfügung gestellt werden, z.B. durch das oben beschriebene direkte Schreiben der Ausgangsdaten in den Speicher des Ausgangsmoduls 414 durch die zentrale Verarbeitungseinheit (CPU).
  • Der Ablauf einer Datenausgabe mittels einer solchen speziellen Ausgabeeinheit soll im Folgenden anhand einer beispielhaften Übertragung über eine generische Schnittstelle in UART-Konfiguration beschrieben werden (9):
    • 1. Die zentrale Verarbeitungseinheit (CPU) des Mikrocontrollers oder die Recheneinheit (MCS) schreibt in einem ersten Schritt 901 den Nachrichtenrahmen 01111111111 in einen Speicher der Ausgabeeinheit. Dies entspricht einem Startbit (0), 8 Datenbits (11111111), einem Paritätsbit (1, im Fall einer odd parity) sowie einem Stoppbit (1).
    • 2. Die zentrale Verarbeitungseinheit (CPU) des Mikrocontrollers oder die Recheneinheit (MCS) schreibt in einem zweiten Schritt 902 die Datenrate des auszugebenden Nachrichtenrahmens in ein Register der Ausgabeeinheit.
    • 3. Die zentrale Verarbeitungseinheit (CPU) des Mikrocontrollers oder die Recheneinheit (MCS) sendet in einem dritten Schritt 903 einen Trigger an die Ausgabeeinheit, um die Übertragung zu starten. In einer weiteren Variante startet die Übertragung nach Erhalt des Nachrichtenrahmens nach einer vorgegebenen Anzahl von Übertragungsvorgängen. In einer weiteren Variante überträgt die zentrale Verarbeitungseinheit (CPU) des Mikrocontrollers oder die Recheneinheit (MCS) einen Zeitpunkt, zu welchem die Übertragung erfolgen bzw. starten soll.
    • 4. Die Ausgabeeinheit gibt in einem vierten Schritt 904 den Nachrichtenrahmen mit der gewählten Datenrate autark aus.
  • Bei den beschriebenen Ausführungsbeispielen mit spezieller Ausgabeeinheit werden die Recheneinheit (MCS) oder die zentrale Verarbeitungseinheit (CPU) zusätzlich belastet, z.B. durch Schreiben der Informationen in die Ausgabeeinheit und Triggern des Sendevorgangs. In einer weiteren vorteilhaften Ausführungsvariante erhält daher die Ausgabeeinheit die zu sendenden Daten bzw. Nachrichtenrahmen durch selbstständiges Nachladen aus einem Speicher. Z.B. kann ein solches selbstständiges Nachladen aus einem RAM erfolgen, auf welchen die Ausgabeeinheit über verkettete Listen und einen DMA (Direct Memory Access) Zugriff hat. So können auch größerer Datenpakete mit hohen Geschwindigkeiten ohne Belastung (Interrupts) von Recheneinheit (MCS) oder zentraler Verarbeitungseinheit (CPU) des Mikrocontrollers ausgegeben werden.
  • In den beschriebenen Ausführungsbeispielen mit spezieller Ausgabeeinheit wird zunächst davon ausgegangen, dass die übrigen Verfahrensschritte (Datenempfang durch das Eingangsmodul, Routing durch die Routingeinheit, Protokollberechnung durch die Recheneinheit (MCS), gegebenenfalls CRC-Berechnung durch die CRC-Einheit) weiterhin wie oben beschrieben ablaufen bzw. die übrige Hardwareschaltung (Eingangsmodul, Routingeinheit, Recheneinheit (MCS), gegebenenfalls CRC-Einheit) weiterhin wie oben beschrieben aufgebaut ist.
  • Für die Hardwarerealisierung der generischen seriellen Schnittstellen sind verschiedene Konfigurationen möglich. Zum einen kann ein Mikrocontroller über ein Timer-Modul wie das oben beschriebene „Generic Timer Module“ verfügen und zusätzlich Hardwareschaltungen wie die zu 1 beschriebene aufweisen. Bei einer solchen Konfiguration kann das Timer-Modul ohne Rücksicht auf darzustellende Schnittstellen die ihm zugetragenen Aufgaben erfüllen. Die Schnittstellenfunktionalität wird durch die zusätzlichen Hardwareschaltungen des Mikrocontrollers bereitgestellt. In einer solchen Konfiguration können durch Konfiguration vorzugsweise Timer-Funktionen an die zusätzlichen Hardwareschaltungen übertragen werden, sofern diese nicht durch Schnittstellenfunktionalitäten ausgelastet sind, insbesondere sofern die entsprechenden Eingangs- und Ausgangsmodule keiner Schnittstellenfunktion zugewiesen sind. Auch kann das Timer-Modul (bzw. dessen Hardwareeinheiten) in einer speziellen Variante Schnittstellenfunktionalität von den zusätzlichen Hardwareschaltungen übernehmen, sofern es hierzu ausreichende freie Kapazität und eine ausreichende Hardwareauslegung aufweist und hierzu konfiguriert wird.
  • Eine solche Hardware-Ausführung ist in 2 dargestellt. Hier weist der Mikrocontroller 201 eine Hardwareschaltung 210 auf, welche der Hardwareschaltung 110 in 1 entspricht (Eingangsdatenkanal 202, Ausgangsdatenkanal 203, Eingangsmodul 211, Ausgangsmodul 214, Routingeinheit 212, Recheneinheit (MCS) 213). Zusätzlich weist der Mikrocontroller 201 ein Timer-Modul 230 auf, welches ein Timer-Eingangsmodul 231, ein Timer-Ausgangsmodul 234, eine Routingeinheit 232 sowie eine Recheneinheit (MCS) 233 aufweist. Das Timer-Eingangsmodul 231 ist mit dem Signaleingang 222 sowie der Routingeinheit 232 verbunden. Das Timer-Ausgangsmodul 234 ist mit dem Signalausgang 223 sowie der Routingeinheit 232 verbunden. Die Routingeinheit 232 ist zudem mit der Recheneinheit (MCS) 233 verbunden. Das Timer-Modul 230 kann beispielsweise durch das oben beschriebene Timer-Modul „Generic Timer Module“ realisiert sein.
  • In einer weiteren Variante können Hardwareeinheiten wie die zu 1 beschriebene sowohl Timer- als auch Schnittstellenfunktionalität übernehmen. Eine solche Hardwareeinheit hat im Vergleich zum oben beschriebenen Generic Timer Module vorzugsweise eine Routingeinheit bzw. Routingeinheiten, welche mit höherer Frequenz betrieben wird bzw. werden, sowie weniger Module pro Routingeinheit, um die Servicerate zur erhöhen und höherer Baudraten darstellen zu können, wie sie für die Darstellungen generischer serieller Schnittstellen nötig sind. Z.B. könnten Routingeinheit und Recheneinheit (MCS) statt mit 80 MHz mit Frequenzen ab 100 MHz, vorzugsweise ab 200 MHz betrieben werden. Vorzugsweise werden die Frequenzen von Routingeinheit und Recheneinheit (MCS) so ausgelegt, dass Schnittstellen mit 1 MBaud oder höher darstellbar sind.
  • In beiden Varianten gewinnt man durch die mögliche Verschiebung zwischen Schnittstellen-Funktionalität und Timer-Funktionalität an Flexibilität. Z.B können in einer Anwendung in einem Steuergerät mit dem Mikrocontroller unter Ausnutzung eines kombinierten Timer/Schnittstellen-Moduls mit 16 Ausgangsmodulen die Timer-Funktionen für die Steuerung von acht Zylindern eines Motors bereitgestellt werden. Hierzu werden z.B. acht Ausgangsmodule mit Compare-Funktionalität für die Steuerung der Zündung und acht Ausgangsmodule mit Compare-Funktionalität für die Steuerung der Einspritzung jeweils eines Zylinders eingesetzt. Wird der Mikrocontroller mit kombiniertem Timer/Schnittstellen-Modul in einer anderen Anwendung zur Steuerung eines Motors mit vier Zylindern eingesetzt, so werden acht der gerade beschriebenen 16 Ausgangsmodule nicht für die Timer-Funktionen der Steuerung der Zylinder benötigt und sind somit verfügbar, um z.B. die Ausgangssignale von acht seriellen Schnittstellen nachzubilden.
  • Je nach Art der nachzubildenden seriellen Schnittstellen können weitere Hardwarebausteine zusätzlich zu den bereits beschriebenen Modulen und Einheiten nötig sein.
  • Z.B. müssen für bestimmte Protokolle auch CRC-Berechnungen durchgeführt werden, z.B. für PSI5 oder CAN. Bei der CRC (Cyclic Redundancy Check, Zyklische Redundanzprüfung) wird für Daten ein Prüfwert ermittelt und dieser Prüfwert nach Übertragung auf Basis der übertragenen Daten überprüft, um Übertragungs- oder Speicherfehler zu erkennen. Für diese Art von Berechnungen ist die implementierte Recheneinheit (MCS) nicht optimal und müsste gegebenenfalls mit höherer Rechenleistung ausgestattet werden. Im Fall einer Hardwareschaltung mit mehreren Recheneinheiten (MCS), würde zudem jede dieser Recheneinheiten (MCS) mit diesen Zusatzberechnungen belastet. Zudem müssen die CRC-Berechnungen bei einigen Protokollen sehr schnell durchgeführt werden, um gegebenenfalls Aktionen im Protokoll auslösen zu können, z.B. Fehler-Nachrichtenrahmen.
  • Deshalb ist es aus Flächen- und Performancegründen vorteilhaft, die CRC-Berechnungen in einem eigenen Modul durchzuführen. In einer bevorzugten Ausgestaltung der oben beschriebenen Hardwareschaltungen zur Nachbildung serieller Schnittstellen weisen diese entsprechend zusätzlich noch eine separate Einheit zur Berechnung von CRC-Informationen auf. Vorzugsweise führt diese CRC-Prüfeinheit im Fall einer Hardwareschaltung mit mehreren Recheneinheiten (MCS) die Berechnungen zentral für mehrere oder alle diese Recheneinheiten (MCS) durch.
  • Die zusätzliche CRC-Einheit ist in der Lage, die CRC-Berechnungen und CRC-Vergleiche schnell genug auch für die Protokolle mit hohen Anforderungen an Geschwindigkeit bereit zu stellen. Die CRC-Einheit führt dabei vorzugsweise zumindest die Berechnung von CRC-Prüfwerten, gegebenenfalls auch die Überprüfungen von CRC-Prüfwerten durch. Sollte ein CRC-Prüfwert durch die CRC-Einheit als nicht korrekt erkannt werden, kann vorzugsweise durch die Recheneinheit (MCS) eine neue Übertragung veranlasst werden.
  • Die CRC-Prüfeinheit ist vorzugsweise als Hardware-Logikschaltung realisiert, z.B. kann sie hierzu eine XOR-Logik und ein Schieberegister aufweisen. Eine Alternative hierzu wäre eine Realisierung in Software mit Berechnung durch eine (z.B. kleine zusätzliche) Recheneinheit.
  • In 3 ist eine Hardwareschaltung mit einer solchen zusätzlichen CRC-Einheit gezeigt. Der Mikrocontroller 301 entspricht mit den Hardwaremodulen 310, also Eingangsmodul 311, Routingeinheit 312, Recheneinheit (MCS) 313 und Ausgangsmodul 314, weitgehend dem Mikrocontroller 101 in 1. Dateneingangskanal 302 und Datenausgangskanal 303 sind mit Eingangsmodul 311 bzw. Ausgangsmodul 314 verbunden. Zusätzlich zu dem Mikrocontroller 101 in 1 weist Mikrocontroller 301 noch die CRC-Einheit 315 auf, welche in der gezeigten Ausführung mit der Routingeinheit 312 verbunden ist.
  • Die Berechnung eines CRC-Wertes beruht vorzugsweise auf Polynomdivision. Daher sollte die CRC-Einheit über Parameter zumindest zum Start des Mikrocontrollers konfigurierbar sein, so dass verschiedene Polynome dargestellt werden können. Beispielweise kann ein Polynom b7·x7 + b6·x6 + b5·x5 + b4·x4 + b3·x3 + b2·x2 + b1·x1 + b0·x0 über die Konfigurationsparameter b0 bis b7 konfiguriert werden. Um verschiedene Schnittstellen mit verschiedenen CRC-Polynomen unterstützen zu können, muss entweder eine CRC-Einheit flexibel (also zur Laufzeit) umkonfiguriert werden können oder es müssen mehrere CRC-Einheiten vorgesehen sein.
  • Der Ablauf einer Datenübertragung mit CRC-Berechnung durch eine separate CRC-Einheit ist in 11 gezeigt. Hierbei wird das Beispiel einer Berechnung eines CRC-Wertes aus empfangenen Daten beschrieben.
  • In einem ersten Schritt 1101 wird die CRC-Einheit durch die Recheneinheit (MCS) oder die zentrale Verarbeitungseinheit (CPU) des Mikrocontrollers konfiguriert. Dies ist nötig, da gewöhnlich für jede Schnittstelle die Berechnung eines anderen Polynoms nötig ist. Wie oben beschrieben können die Polynome durch Konfigurationsparameter bestimmt werden. Bei einem CRC-Modul, welches für die CRC-Berechnungen mehrerer generischer serieller Schnittstellen eingesetzt wird, ist eine solche Konfiguration daher vor jeder Berechnung nötig, sofern nicht zwei aufeinander folgende Berechnungen für die gleiche Schnittstelle durchgeführt werden sollen. Diese Konfiguration der CRC-Einheit kann z.B. auch darüber erfolgen, dass die CRC-Einheit Zugriff auf eine Tabelle mit verschiedenen Polynomen hat, einen Index entsprechend einem Eintrag in dieser Tabelle übertragen bekommt und das Polynom gemäß diesem Eintrag heranzieht.
  • Das CRC-Modul empfängt im zweiten Schritt 1102 die Daten, für die eine CRC-Berechnung durchgeführt werden soll. Die Daten sind z.B. Eingangsdaten mit CRC-Informationen, welche von dem Eingangsmodul empfangen wurden und an die Recheneinheit (MCS) übertragen wurden. Die CRC-Berechnungen in der CRC-Einheit werden im dritten Schritt 1103 durchgeführt. Im vierten Schritt 1104 werden Ergebnisse der CRC-Berechnungen (CRC-Prüfwert-Berechnung und gegebenenfalls Überprüfung) von dem CRC-Modul an die Recheneinheit (MCS) gesendet (CRC-Prüfwert und / oder Ergebnis der CRC-Überprüfung). Vorzugsweise läuft die Übertragung dieser Daten von der Recheneinheit (MCS) zu der CRC-Einheit und von der CRC-Einheit zu der Recheneinheit (MCS) jeweils über die Routingeinheit.
  • Die Recheneinheit (MCS) kann schließlich im fünften Schritt 1105 die von der CRC-Einheit berechneten CRC-Informationen mit den empfangenen CRC-Informationen vergleichen bzw. das Ergebnis der CRC-Überprüfung durch die CRC-Einheit auswerten und so bei einer Abweichung feststellen, dass ein Übertragungs- oder Speicherfehler vorliegt.
  • Durch die Recheneinheit (MCS) kann in einem optionalen sechsten Schritt 1106 eine neue Übertragung getriggert werden, falls durch die Recheneinheit (MCS) ein Übertragungs- oder Speicherfehler festgestellt wurde.
  • Analog läuft auch die CRC-Berechnung für zu sendende Daten ab. Daten werden vorzugsweise nach Konfiguration der CRC-Einheit von der Recheneinheit (MCS) über die Routingeinheit an die CRC-Einheit gesendet. Dort wird eine CRC-Berechnung durchgeführt und das Ergebnis wird von der CRC-Einheit über die Routingeinheit an die Recheneinheit (MCS) übertragen. Dort wird der CRC-Wert den Daten angefügt und die Daten werden dem Ausgangsmodul zur Verfügung gestellt.
  • Anstelle der oben beschriebenen Ausführung mit einem Eingangsmodul mit Capture-Funktionalität löst in einer alternativen Ausführungsform ein spezielles Eingangsmodul den Eingangsbitstrom nicht wie oben beschrieben Flanke für Flanke auf, d.h. es wird nicht jeder Flankenwechsel zeitgestempelt über die Routingeinheit an die Recheneinheit (MCS) weiterübertragen. Vielmehr nimmt die spezielle Eingangseinheit einen kompletten Bitstrom auf (d.h. speichern) und filtern. Als Filterung kann vorzugsweise eine Überabtastung (Oversampling) angewendet werden. Durch eine Überabtastung in Kombination z.B. mit einem Voting (Abstimmung) können zuverlässiger die empfangenen Bits mit hohem Pegel und die empfangenen Bits mit niedrigem Pegel voneinander getrennt bzw. unterschieden werden.
  • Der Eingangsfilter des speziellen Eingangsmoduls lässt sich beispielsweise so programmieren, dass er mit 16MHz ein 1MHz Signal abtastet. Die 16 Abtastungen pro Bit werden dann über eine Abstimmungsinstanz geführt, die nach vorgegebenen Einstellungen (z.B. 3 aus 16 oder 12 aus 16) eine 1 oder 0 als Bitzustand speichert. Durch ein solches spezielles Eingangsmodul, in welchem Überabtastung und Voting implementiert ist, können auch Schnittstellen mit höheren Anforderungen an die Störsicherheit implementiert werden.
  • Durch die Synchronisation mit einem Trigger-Ereignis, z.B. einem Startbit bei UART, kann die spezielle Eingangseinheit in einen definierten Zustand im Bezug auf den Bitstrom gebracht werden. Wenn alle Bits eingelesen sind (z.B. UART: Startbit, 8 Datenbits, Paritätsbit, Stoppbit), werden diese Daten vom Ausgang des speziellen Eingangsmoduls über die Routingeinheit an die Recheneinheit (MCS) übertragen, die dann z.B. höhere Protokollschichten (z.B. KWP2000, LIN) übersetzt oder die Daten direkt in einen FIFO-Speicher schreiben, aus dem sich Anwendersoftware die Daten holen kann. Nicht mehr nötig ist eine Rekonstruktion der Nachrichten durch die Recheneinheit (MCS) durch Auswertung der zeitgestempelten Flankenwechselnachrichten von Seiten der Routingeinheit. Dagegen erhält die Recheneinheit (MCS) die Daten eines Nachrichtenrahmens als eine Nachricht von der Routingeinheit anstelle der Übertragung der Flankenwechsel als jeweils separate Übertragung. Dadurch wird ebenfalls die Routingeinheit vom Durchführen vieler einzelner Übertragungen entlastet. Die Geschwindigkeit der Bearbeitung eingehender Daten ist nicht mehr wie vorher in starkem Maße von der Geschwindigkeit der Routingeinheit abhängig. Neben einer Entlastung von Routingeinheit und Recheneinheit (MCS) ist damit eine Verarbeitung eingehender Daten mit schnellerer Datenrate möglich.
  • Zusätzlich zu den gefilterten, also nach Überabtastung und Voting ermittelten korrekten Bitpegeln kann noch die Information weitergeleitet werden (zum Beispiel an die Recheneinheit (MCS) oder die zentrale Verarbeitungseinheit (CPU) des Mikrocontrollers), ob und wie sehr die Bits gestört waren, also z.B., wie klar das Voting war. Es kann beispielsweise übermittelt werden, wie viele abgetastete Werte eines Bits den gleichen Pegel aufwiesen. Um das Voting robuster zu machen, können beispielsweise auch die Punkte (Abtastungen) direkt vor und direkt nach einem Flankenwechsel ausmaskiert werden, um das Voting, also die Biterkennung, robuster zu gestalten.
  • Für die beschriebenen Hardwareschaltungen mit speziellem Eingangsmodul, das eine Überabtastung und ein Voting durchführt, kann zur Verbesserung der Biterkennung auch eine ermittelte Baudrate für das Voting herangezogen werden (eine solche Baudratenerkennung wird weiter unten näher beschrieben).
  • In einer bevorzugten alternativen Variante der Ausführungsform mit speziellem Eingangsmodul findet eine direkte Übertragung von dem speziellen Eingangsmodul in einen Speicher, z.B. einen FIFO-Speicher, statt, auf welchen die Recheneinheit (MCS) oder die zentrale Verarbeitungseinheit (CPU) des Mikrocontrollers Zugriff hat. Alternativ könnten Recheneinheit (MCS) oder dien zentrale Verarbeitungseinheit (CPU) auch direkten Zugriff auf den Speicher des speziellen Eingangsmoduls haben.
  • In einer Erweiterung der vorgestellten Ausführungsbeispiele mit spezieller Eingangseinheit kann diese pro Bitstrom bzw. pro Nachrichtenrahmen einen Zeitstempel vergeben (hierzu ist wiederum der Zugriff auf eine Zeitinformation nötig). Diesen Zeitstempel können Recheneinheit (MCS) oder die zentrale Verarbeitungseinheit (CPU) des Mikrocontrollers für die Bearbeitung bzw. Auswertung des Nachrichtenrahmens heranziehen.
  • Die spezielle Eingabeeinheit ist mit höheren Kosten verbunden, die besprochenen Vorteile müssen also mit dem Kostennachteil aufgewogen werden, um die geeignete Ausführungsform auszuwählen.
  • In den beschriebenen Ausführungsbeispielen mit spezieller Eingabeeinheit wird zunächst davon ausgegangen, dass die übrigen Verfahrensschritte (Datenausgabe durch das Ausgangsmodul, Routing durch die Routingeinheit, Protokollberechnung durch die Recheneinheit (MCS), gegebenenfalls CRC-Berechnung durch die CRC-Einheit) weiterhin wie oben beschrieben ablaufen bzw. die übrige Hardwareschaltung (Ausgangsmodul, Routingeinheit, Recheneinheit (MCS), gegebenenfalls CRC-Einheit) weiterhin wie oben beschrieben aufgebaut ist.
  • Eine Hardwareschaltung zur Darstellung generischer serieller Schnittstellen mit einer speziellen Eingabeeinheit ist schematisch in 5 dargestellt. Der Mikrocontroller 501 mit den Hardwarekomponenten 510, also Eingangsmodul 511, Routingeinheit 512, Recheneinheit (MCS) 513 sowie Ausgangsmodul 514, sowie den Verbindungen zu dem Dateneingangskanal 502 und dem Datenausgangskanal 503 entspricht wiederum weitgehend dem Mikrocontroller 101 in 1. Bei dem speziellen Eingangsmodul 511 handelt es sich allerdings hiervon abweichend um eine Hardwareeinheit mit Schaltkreisen zur Darstellung einer Filterfunktionalität, insbesondere einer Überabtastung von empfangenen Bits und eines Votings, bei welchem auf Grundlage der ertasteten Pegelwerte an den Abtastpunkten eines Bits über eine Mehrheitsentscheidung der Pegelwert für dieses Bit festgestellt wird. Im Gegensatz zum Eingangsmodul, welches zu 1 beschrieben ist, muss das spezielle Eingangsmodul 511 einen Speicher aufweisen mit ausreichender Größe zur Speicherung eines gesamtes Bitstroms, bzw. eines gesamten empfangenen Nachrichtenrahmens.
  • In 5 ist im Vergleich zu 1 noch ein Speicher 516, z.B. ein FIFO-Speicher, gezeigt. Auf diesen FIFO-Speicher hat zumindest das Eingangsmodul 511 Zugriff. Entsprechend einer der oben beschriebenen Varianten findet eine direkte Übertragung von dem speziellen Eingangsmodul 511 in den Speicher 516 statt, auf welchen die zentrale Verarbeitungseinheit (CPU) des Mikrocontrollers Zugriff hat, wie in 5 durch die gezeigte Verbindung von Speicher 516 zum Mikrocontroller 501 angedeutet ist.
  • In einer weiteren Variante der Hardwareschaltung zur Bereitstellung generischer serieller Schnittstellen weisen die bereits beschriebenen Ausführungsformen zusätzlich einen weiteren Hardwarebaustein auf, der zu einer Nachrichten-Arbitrierung eingesetzt wird. Der Baustein nimmt dabei zeitkritische Funktionen wahr, für welche die übrigen Schaltungsteile aufgrund ihrer Struktur und Taktfrequenz nicht optimal eingesetzt werden können.
  • Vorzugsweise handelt es sich dabei um einen Baustein, der eingesetzt wird, um eine CAN-Arbitrierung zu unterstützen. Für die CAN-Arbitrierung muss bei entsprechend hoher Datenrate innerhalb von wenigen Nanosekunden interner Verarbeitungszeit (IPT) erkannt werden, dass auf dem Bus ein dominanter Pegel anliegt. Bei einem dominanten Pegel auf dem Bus darf die Schnittstelle beim nächsten Bit (im nächsten Taktabschnitt) keinen dominanten Pegel treiben, wenn im aktuellen Bit (im aktuellen Taktabschnitt) in der Schnittstelle ein rezessives Bit vorliegt. In diesem Fall ist die Schnittstelle (und damit der entsprechende CAN-Knoten) aus der Arbitrierung ausgeschieden, da ein anderer CAN-Knoten eine Nachricht höherer Priorität (also mit früherem dominanten Pegel) aufweist. Für diese Funktionalität sind die oben zu 1 beispielhaft beschriebenen Hardwarekomponenten nicht optimal. Daher sind schnellere Reaktionszeiten mit einem spezifisch hierfür vorgesehenen Modul erreichbar.
  • In 7 sind zur Illustration der CAN-Arbitrierung das am CAN-Bus anliegende Signal 701 sowie das Mikrocontroller-intern vorliegende, zu sendende Signal 702 abgebildet. Von links nach rechts sind mit gestrichelten Linien vier Taktabschnitte abgegrenzt. In Taktabschnitt 1 liegt sowohl am Bus als auch als internes Signal ein rezessiver Pegel vor. Im Taktabschnitt 2 liegt am Bus ein dominanter Pegel an, das interne Signal weist für diesen Taktabschnitt einen rezessiven Pegel auf. Damit ist dieser Knoten aus der Arbitrierung ausgeschieden. Durch die Hardwareeinheit zur Arbitrierung wird somit nun ein Treiben des vorgesehenen dominanten Pegels in Taktabschnitt 3 unterbunden. Entsprechend darf der Knoten auch nicht mehr in Taktabschnitt 4 und den folgenden Taktabschnitten senden, bis zum Ende derjenigen Übertragung auf dem CAN-Bus, welche die Arbitrierung gewonnen hat.
  • 6 zeigt einen Mikrocontroller 601 mit Hardwaremodulen 610 zur Bereitstellung einer generischen seriellen Schnittstelle, insbesondere einer CAN-Schnittstelle, sowie mit einer zusätzlicher Hardwareeinheit 630 für die Arbitrierung von Nachrichten über diese Schnittstelle. Der Mikrocontroller 601 mit den Hardwarekomponenten 610, also Eingangsmodul 611, Routingeinheit 612, Recheneinheit (MCS) 613 sowie Ausgangsmodul 614, entspricht wiederum weitgehend dem Mikrocontroller 101 in 1. Zusätzlich ist der Mikrocontroller 601 aber mit dem (in diesem Beispiel externen) Hardwaremodul für die Arbitrierung 630 verbunden. Der Eingangsdatenkanal 602 ist insbesondere eine CAN-Rx-Leitung, der Ausgangsdatenkanal 603 eine CAN-Tx-Leitung. Die zusätzliche Hardwareeinheit 630 ist vorzugsweise eine externe Logikschaltung, die das Senden des Knoten abschaltet, sobald ein entsprechendes Signal empfangen wird. Im Fall einer CAN-Arbitrierung wäre eine solche Sendeunterbrechung z.B. vorzunehmen, sobald ein dominanter Pegel auf dem Bus anliegt und die eigene Information zur gleichen Takteinheit rezessiv ist. Das Modul 630 kann z.B. als Logikschaltung durch Gatterfunktionen, eine programmierbare Logikeinheit (PLD) oder ein Field Programmable Gate Array (FPGA) realisiert sein.
  • In 6 ist noch ein zweites Ausgangsmodul 615 gezeigt. Dieses kann die zusätzliche Hardwareeinheit zur Arbitrierung 630 mit der Bereitstellung von Timer-Ressourcen unterstützen. Solche Ressourcen werden z.B. benötigt, um eine bestimmte Bitlänge abzuwarten oder eine bestimmte Pause einzuhalten. Eine alternative Implementierung wäre, diese Timer-Ressourcen ebenfalls als zusätzliche Hardwareschaltung vorzusehen.
  • Die zusätzliche Hardwareeinheit zur Arbitrierung kann vorzugsweise über eine konfigurierbare Logik flexibel verschiedenen Ausgangsmodulen zugeordnet werden. Allerdings ist auch eine feste Zuordnung möglich.
  • Die zusätzliche Hardwareeinheit zur Arbitrierung liegt vorzugsweise als programmierbare Logik (z.B. FPGA oder CPLD) außerhalb des Mikrocontrollers vor. Durch eine Integration solcher programmierbarer Logikschaltungen ist allerdings auch eine alternative Implementierung auf dem Mikrocontroller möglich.
  • Die spezielle Hardwareeinheit zur Arbitrierung kann mit weiteren Mess- und Auswertefunktionen ausgestattet sein. In einer bevorzugten Variante erkennt eine solche Einheit zur CAN-Arbitrierung z.B. auch, ob es sich bei dem verwendeten Protokoll um CAN oder CAN-FD (CAN mit flexibler Datenrate) handelt.
  • In den beschriebenen Ausführungsbeispielen mit spezieller Hardwareeinheit für die Arbitrierung wird zunächst davon ausgegangen, dass die übrigen Verfahrensschritte (Dateneingang im Eingangsmodul, Datenausgabe durch das Ausgangsmodul, Routing durch die Routingeinheit, Protokollberechnung durch die Recheneinheit (MCS), gegebenenfalls CRC-Berechnung durch die CRC-Einheit) weiterhin wie oben beschrieben ablaufen bzw. die übrige Hardwareschaltung (Eingangsmodul, Ausgangsmodul, Routingeinheit, Recheneinheit (MCS), gegebenenfalls CRC-Einheit) weiterhin wie oben beschrieben aufgebaut ist. Die spezielle Hardwareeinheit zur Arbitrierung ist aber problemlos auch mit den Ausführungsbeispielen mit speziellem Eingangsmodul kombinierbar.
  • In einer weiteren bevorzugten Variante kann in den bisher beschriebenen Ausführungsformen zusätzlich noch eine Baudratenerkennung implementiert werden. Eine solche Baudratenerkennung würde es z.B. ermöglichen, auf verschiedene Baudraten zu adaptieren.
  • Die Baudratenerkennung kann in Software oder Hardware implementiert werden. Bei einer Softwarerealisierung kann z.B. aus den Capture-Informationen des Eingangsmoduls eine Baudratenerkennung durch die Recheneinheit (MCS) oder die zentrale Verarbeitungseinheit (CPU) des Mikrocontrollers erfolgen. Eine Eingangsfrequenz von Daten kann hierbei vermessen und durch Nachstellen einer Bezugsfrequenz die Baudrate ermittelt werden. Dazu müssen komplette Nachrichtenrahmen analysiert werden, was in einer Softwarerealisierung zeitaufwendig ist.
  • In einer bevorzugten alternativen Ausführung wird die Baudatenerkennung in Hardware durchgeführt. Dies kann entweder in einer zusätzlichen Hardwareschaltung erfolgen oder in einem mit entsprechender Zusatzfunktionalität ausgestatteten, speziellen Eingangsmodul, wie es oben (z.B. zu 5) beschrieben ist. Mit einer Hardwarerealisierung ist im Vergleich zur Softwarerealisierung eine schnellere Baudratenerkennung und -adaption möglich, zudem werden Recheneinheit (MCS) oder zentrale Verarbeitungseinheit (CPU) weniger belastet.
  • In 10 ist ein entsprechendes Ablaufdiagramm für die in Hardware realisierte Baudratenerkennung am Beispiel einer generischen UART-Schnittstelle dargestellt.
  • Der grundsätzliche Aufbau eines Nachrichtenrahmen im vorgesehenen Protokoll ist bekannt, z.B. ist im vorliegenden Beispiel bekannt, das ein Nachrichtenrahmen immer mit einem Startbit mit niedrigem Pegel beginnt und mit einem Stoppbit mit hohem Pegel endet. In einem ersten Schritt 1001 zur Ermittlung der Baudrate werden durch die entsprechende Hardwarefunktionalität eine Anzahl von Takten zwischen Startbit und Stoppbit (also der ersten High-Low-Flanke bis zur letzten Low-High-Flanke) gezählt. Die Taktanzahl wird dabei vorzugsweise aus einer Zeitbasis abgeleitet, welche der Hardwarefunktionalität einen Takt zur Verfügung stellt (z.B. aus einer Zeitbasiseinheit) und welche klein gegenüber der einzulesenden Baudrate ist.
  • Die Länge (d.h. Bitanzahl) des Nachrichtenrahmens ist der Hardwarefunktionalität bekannt. Für das beispielsweise angenommene Protokoll sei bekannt, dass ein Nachrichtenrahmen zehn Bits aufweist (z.B. Startbit, acht Datenbits, Stoppbit). Die ermittelte Anzahl der verstrichenen Takte von Startbit bis Stoppbit wird im zweiten Schritt 1002 durch die Anzahl der Bits eines Nachrichtrahmens (im Beispiel durch zehn) geteilt. Die somit ermittelte Baudrate kann im dritten Schritt 1003 übermittelt werden, z.B. an die Recheneinheit (MCS) oder die zentrale Verarbeitungseinheit (CPU) des Mikrocontrollers.
  • Während zum Beispiel im Fall einer darzustellenden UART- oder LIN-Schnittstelle die Frame-Lange immer konstant und damit bekannt sein kann, kann zum Beispiel im Fall von CAN die Länge (also Bitanzahl) des Nachrichtenrahmens unbekannt sein. In einer Variante der beschrieben Baudratenerkennung kann auch hier die Baudrate in Hardware erkannt werden. Beispielsweise kann die kürzeste Zeit zwischen zwei Bits eines Nachrichtenrahmens ermittelt werden.
  • Zur Erkennung der Baudrate müssen Anfang und Ende eines Nachrichtenrahmens ermittelt werden können. Das kann beispielsweise durch eine festgelegte Taktanzahl, z.B. drei Takte (bei konstanter Baudrate entsprechend einer festen Zeit, z.B. 150 ns) für einen bestimmten Pegel erfolgen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • WO 2006013212 A1 [0003]
    • WO 2011120823 A1 [0040, 0043, 0043]

Claims (33)

  1. Verfahren zur Bereitstellung mindestens einer generischen Schnittstelle in einem Steuergerät, insbesondere für ein Fahrzeug, wobei das Steuergerät einen Mikrocontroller (401) aufweist, welcher über eine zentrale Verarbeitungseinheit (CPU), über mindestens ein schnittstellenunspezifisches Eingangsmodul (411), über mindestens ein schnittstellenunspezifisches Ausgangsmodul (414), mindestens eine Routingeinheit (412) sowie zur Verarbeitung schnittstellenspezifischer Informationen über mindestens eine Recheneinheit (413) verfügt, und wobei die mindestens eine generische Schnittstelle konfigurierbar ist, je nach Konfiguration Funktionen entsprechend einer von mehreren seriellen Schnittstellen, insbesondere von SPI, UART, LIN, CAN, PSI5, FlexRay, SENT, I2C, MSC oder Ethernet, bereitzustellen, gekennzeichnet durch die folgenden Schritte: – Eingangsdaten entsprechend einem Protokoll der einen der mehreren seriellen Schnittstellen werden über das mindestens eine schnittstellenunspezifische Eingangsmodul (411) empfangen, – die Eingangsdaten werden über die Routingeinheit (412) an die mindestens eine Recheneinheit (413) übertragen, – von der mindestens einen Recheneinheit (413) werden erste Nutzdaten aus den Eingangsdaten extrahiert, insbesondere durch die Entfernung von Protokollspezifika des Protokolls aus den Eingangsdaten. – die ersten Nutzdaten werden der zentralen Verarbeitungseinheit (CPU) zur Verfügung gestellt, – zweite Nutzdaten der zentralen Verarbeitungseinheit (CPU) werden von der mindestens einen Recheneinheit (413) empfangen, – von der mindestens einen Recheneinheit (413) werden Ausgangsdaten aus den zweiten Nutzdaten erzeugt, insbesondere durch Hinzufügen von Protokollspezifika des Protokolls zu den zweiten Nutzdaten, – die Ausgangdaten werden an das mindestens eine schnittstellenunspezifische Ausgangsmodul (414) übertragen, wobei die Recheneinheit (413) aus den zweiten Nutzdaten als Ausgangsdaten einen gesamten Ausgangs-Nachrichtenrahmen erzeugt und dieser an das mindestens eine schnittstellenunspezifische Ausgangsmodul (414) übertragen wird, – die Ausgangsdaten entsprechend dem Protokoll der einen der mehreren seriellen Schnittstellen werden über das mindestens eine schnittstellenunspezifische Ausgangsmodule (414) versendet.
  2. Verfahren nach Anspruch 1, wobei das mindestens eine schnittstellenunspezifische Ausgangsmodul (414) den Ausgangs-Nachrichtenrahmen versendet, wenn ein entsprechender Trigger durch die Recheneinheit (413) oder die zentrale Verarbeitungseinheit (CPU) ausgelöst wird.
  3. Verfahren nach Anspruch 1, wobei das mindestens eine schnittstellenunspezifische Ausgangsmodul (414) den Ausgangs-Nachrichtenrahmen überträgt, wenn ein dem Ausgangs-Nachrichtenrahmen durch die Recheneinheit (413) zugewiesener Zeitstempel Zeitinformationen des schnittstellenunspezifischen Ausgangsmoduls (414) entspricht oder wenn ein dem Ausgangs-Nachrichtenrahmen durch die Recheneinheit (413) zugewiesener Winkelstempel Winkelinformationen des schnittstellenunspezifischen Ausgangsmoduls (414) entspricht.
  4. Verfahren nach einem der Ansprüche 1 bis 4, wobei die Ausgangsdaten von der Recheneinheit (413) über die Routingeinheit (412) an das mindestens eine schnittstellenunspezifische Ausgangsmodul (414) übertragen werden.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei die Ausgangsdaten von der Recheneinheit (413) direkt in eine Speicherressource des mindestens einen schnittstellenunspezifischen Ausgangsmoduls (414) geschrieben werden.
  6. Verfahren nach einem der Ansprüche 1 bis 4, wobei das mindestens eine schnittstellenunspezifische Ausgangsmodul (414) die Ausgangsdaten über einen direkten Speicherzugriff (DMA) selbstständig nachlädt.
  7. Verfahren nach einem der vorangegangenen Ansprüche, wobei die Recheneinheit (413) Zugriff auf einen ersten Speicher hat und in dem ersten Speicher die Protokollspezifika, insbesondere Informationen über eines von Startbits, Stoppbits, Paritätsinformationen, Steuerbits und Füllbits, abgelegt sind.
  8. Verfahren nach Anspruch 7, wobei die Protokollspezifika von der zentralen Verarbeitungseinheit (CPU) in dem ersten Speicher abgelegt werden.
  9. Verfahren nach einem der vorangegangenen Ansprüche, wobei das mindestens eine schnittstellenunspezifische Eingangsmodul (411) und das mindestens eine schnittstellenunspezifische Ausgangsmodul (414) durch die Konfiguration fest der einen der mehreren seriellen Schnittstellen zugeordnet sind.
  10. Verfahren nach einem der vorangegangenen Ansprüche, wobei die Recheneinheit (413) auch Berechnungen höherer Protokollschichten, insbesondere die Umrechnungen mehrerer UART-Nachrichtenrahmen in einen LIN-Nachrichtenrahmen, vornimmt.
  11. Verfahren nach einem der vorangegangenen Ansprüche, wobei die ersten Nutzdaten der zentralen Verarbeitungseinheit (CPU) zur Verfügung gestellt werden, indem die Recheneinheit (413) die ersten Nutzdaten in einen zweiten Speicher schreibt und die zentrale Verarbeitungseinheit (CPU) darüber durch einen Interrupt informiert wird.
  12. Verfahren nach einem der Ansprüche 1 bis 10, wobei die ersten Nutzdaten der zentralen Verarbeitungseinheit (CPU) durch die Recheneinheit (413) über einen Speicherdirektzugriff (DMA) zur Verfügung gestellt werden.
  13. Verfahren nach einem der vorangegangenen Ansprüche, wobei den Eingangsdaten in dem mindestens einen schnittstellenunspezifischen Eingangsmodul (411) Zeitinformationen zugeordnet werden.
  14. Verfahren nach Anspruch 13, wobei in dem mindestens einen schnittstellenunspezifischen Eingangsmodul (411) jedem der Flankenwechsel der Eingangsdaten, die an einem Eingang des Mikrocontrollers (401) anliegen, ein Zeitstempel zugeordnet wird.
  15. Verfahren nach Anspruch 14, wobei das mindestens eine schnittstellenunspezifische Eingangsmodul (411) die Eingangsdaten an die Routingeinheit (412) überträgt, indem jeder der Flankenwechsel der Eingangsdaten mit zugeordnetem Zeitstempel separat übertragen wird.
  16. Verfahren nach einem der Ansprüche 14 oder 15, wobei die Recheneinheit (413) aus den Flankenwechseln der Eingangsdaten mit zugeordneten Zeitstempeln einen Nachrichtenrahmen bestimmt.
  17. Verfahren nach einem der Ansprüche 1 bis 13, bei welchem ein gesamter Eingangs-Nachrichtenrahmen der Eingangsdaten in dem schnittstellenunspezifischen Eingangsmodul (511) gespeichert wird und der gesamte Eingangs-Nachrichtenrahmen der Recheneinheit (513) zur Verfügung gestellt wird.
  18. Verfahren nach Anspruch 17, bei welchem durch das mindestens eine schnittstellenunspezifische Eingangsmodul (511) der Eingangs-Nachrichtenrahmen mittels Überabtastung analysiert wird und ein Pegel eines Bits des Nachrichtenrahmens durch Voting von Bitpegeln aufgrund von Pegelwerten von Abtastpunkten der Überabtastung bestimmt wird.
  19. Verfahren nach Anspruch 18, bei welchem in dem mindestens einen schnittstellenunspezifischen Eingangsmodul (511) dem Eingangs-Nachrichtenrahmen ein Zeitstempel zugewiesen wird.
  20. Verfahren nach einem der Ansprüche 1 bis 19, wobei eine Baudratenerkennung für die Eingangsdaten durchgeführt wird.
  21. Mikrocontroller (101) für ein Steuergerät, insbesondere für ein Fahrzeugsteuergerät, mit einer zentralen Verarbeitungseinheit (CPU), mindestens einem schnittstellenunspezifischen Eingangsmodul (111), mindestens einem schnittstellenunspezifischen Ausgangsmodul (114), mindestens einer Routingeinheit (112) sowie mit mindestens einer Recheneinheit (113) zur Verarbeitung schnittstellenspezifischer Informationen, dadurch gekennzeichnet, dass der Mikrocontroller (101) eingerichtet ist, ein Verfahren nach einem der Ansprüche 1 bis 20 durchzuführen.
  22. Mikrocontroller (101) für ein Steuergerät, insbesondere für ein Fahrzeugsteuergerät, mit einer zentralen Verarbeitungseinheit (CPU), mindestens einem schnittstellenunspezifischen Eingangsmodul (111), mindestens einem schnittstellenunspezifischen Ausgangsmodul (114), mindestens einer Routingeinheit (112) sowie mit mindestens einer Recheneinheit (113) zur Verarbeitung schnittstellenspezifischer Informationen, dadurch gekennzeichnet, dass der Mikrocontroller (113) derart konfigurierbar ist, dass das mindestens eine schnittstellenunspezifische Eingangsmodul (111), das mindestens eine schnittstellenunspezifische Ausgangsmodul (114), die mindestens eine Routingeinheit (112) sowie die mindestens eine Recheneinheit (113) zur Verarbeitung schnittstellenspezifischer Informationen die Funktionen entsprechend einer von mehreren seriellen Schnittstellen, insbesondere von SPI, UART, LIN, CAN, PSI5, FlexRay, SENT, I2C, MSC oder Ethernet, erfüllen, wobei die Recheneinheit (413) dazu eingerichtet ist, aus Nutzdaten als Ausgangsdaten einen gesamten Ausgangs-Nachrichtenrahmen zu erzeugen und diesen an das mindestens eine schnittstellenunspezifische Ausgangsmodul (414) zu übertragen.
  23. Mikrocontroller (401) nach einem der Ansprüche 21 oder 22, bei welchem das mindestens eine schnittstellenunspezifische Ausgangsmodul (414) einen Zustandsautomaten aufweist.
  24. Mikrocontroller (401) nach einem der Ansprüche 21 bis 23, bei welchem das mindestens eine schnittstellenunspezifische Ausgangsmodul (414) einen Speicher aufweist mit Kapazität zum Speichern des gesamten Ausgangs-Nachrichtenrahmens, insbesondere zum Speichern eines gesamten Ausgangs-Nachrichtenrahmens entsprechend dem Protokoll jeder der potentiell darzustellenden mehreren seriellen Schnittstellen.
  25. Mikrocontroller (101) nach einem der Ansprüche 21 bis 24, bei welchen die Recheneinheit (113) eine Arithmetische Logikeinheit (ALU) aufweist.
  26. Mikrocontroller (101) nach einem der Ansprüche 21 bis 25, bei welchem das mindestens eine schnittstellenunspezifische Eingangsmodul (111) eine Capture-Funktionalität aufweist.
  27. Mikrocontroller (301) nach einem der Ansprüche 21 bis 26, welcher eine erste separate Hardwareschaltung (315) für CRC-Berechnungen aufweist.
  28. Mikrocontroller (101) nach einem der Ansprüche 21 bis 27, bei welchem die Routingeinheit (112) und/oder die Recheneinheit (113) mit einem Takt von mindestens 100 MHz, insbesondere mit einem Takt von mindestens 200 MHz, arbeiten.
  29. Mikrocontroller (101) nach einem der Ansprüche 21 bis 28, welcher eingerichtet ist, über das mindestens eine schnittstellenunspezifische Eingangsmodul (111) Eingangsdaten mit einer Eingangs-Baudrate von mindestens 1MBaud zu empfangen sowie über das mindestens eine schnittstellenunspezifische Ausgangsmodul (114) Ausgangsdaten mit einer Ausgangs-Baudrate von mindestens 1 MBaud zu senden.
  30. Mikrocontroller (101) nach einem der Ansprüche 21 bis 29, welcher neben dem mindestens einen schnittstellenunspezifischen Eingangsmodul (111) und dem mindestens einen schnittstellenunspezifischen Ausgangsmodul (114) auch mindestens ein schnittstellenspezifisches Eingangsmodul und mindestens ein schnittstellenspezifisches Ausgangsmodul aufweist.
  31. Mikrocontroller (201) nach einem der Ansprüche 21 bis 30, welcher zusätzlich ein Timer-Modul (230) mit einem Timer-Eingangsmodul (231), einem Timer-Ausgangsmodul (234), einer Timer-Routingeinheit (232) und einer Timer-Recheneinheit (233) aufweist.
  32. Mikrocontroller (201) nach Anspruch 31, wobei der Mikrocontroller (201) eingerichtet ist, Timer-Funktionen des Timermoduls (230) mit dem mindestens einen schnittstellenunspezifischen Eingangsmodul (211), dem mindestens einen schnittstellenunspezifischen Ausgangsmodul (214), der mindestens einen Recheneinheit (213) und der Routingeinheit (212) durchzuführen, wenn diese nicht benötigt werden, die Funktionen entsprechend einer der mehreren seriellen Schnittstellen zu erfüllen.
  33. Fahrzeugsteuergerät mit einem Mikrocontroller nach einem der Ansprüche 21 bis 32.
DE102013210077.9A 2013-05-29 2013-05-29 Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle Pending DE102013210077A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102013210077.9A DE102013210077A1 (de) 2013-05-29 2013-05-29 Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle
US14/288,012 US9965437B2 (en) 2013-05-29 2014-05-27 Method for providing a generic interface and microcontroller having a generic interface
KR1020140064521A KR102205776B1 (ko) 2013-05-29 2014-05-28 제네릭 인터페이스를 제공하기 위한 방법 및 제네릭 인터페이스를 구비한 마이크로컨트롤러
CN201410230036.9A CN104216312A (zh) 2013-05-29 2014-05-28 用于提供通用接口的方法以及具有通用接口的微控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013210077.9A DE102013210077A1 (de) 2013-05-29 2013-05-29 Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle

Publications (1)

Publication Number Publication Date
DE102013210077A1 true DE102013210077A1 (de) 2014-12-04

Family

ID=51899340

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013210077.9A Pending DE102013210077A1 (de) 2013-05-29 2013-05-29 Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle

Country Status (4)

Country Link
US (1) US9965437B2 (de)
KR (1) KR102205776B1 (de)
CN (1) CN104216312A (de)
DE (1) DE102013210077A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10106171B2 (en) 2015-07-28 2018-10-23 Crown Equipment Corporation Vehicle control module with signal switchboard and output tables

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160188525A1 (en) * 2014-12-30 2016-06-30 Ge Aviation Systems Llc Apparatus with configurable serial ports
DE102016203421A1 (de) * 2016-03-02 2017-09-07 Robert Bosch Gmbh Verfahren und Anordnung zum Überstromschutz eines elektronischen Schalters
US10872055B2 (en) * 2016-08-02 2020-12-22 Qualcomm Incorporated Triple-data-rate technique for a synchronous link
DE102016219347A1 (de) * 2016-10-06 2018-04-12 Robert Bosch Gmbh Steuergerät, insbesondere Steuergerät für ein Kraftfahrzeug
JP2019213081A (ja) * 2018-06-06 2019-12-12 ルネサスエレクトロニクス株式会社 半導体装置及び情報処理方法
CN110247958B (zh) * 2019-05-23 2021-09-17 厦门理工学院 一种考虑计算和网络协同的车载can fd信号打包方法
CN111628920B (zh) * 2020-05-28 2022-01-28 上海辰瞻医疗科技有限公司 多个串行接口设备间的相互通信方法
CN112769861B (zh) * 2021-01-25 2023-01-31 东方电气自动控制工程有限公司 一种电厂安全i区网络安全危急信号识别输出装置
CN114039808B (zh) * 2021-11-08 2023-05-30 深圳驰越科技有限公司 基于can的多通道的can/lin/sent转发协议

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006013212A1 (de) 2004-08-05 2006-02-09 Robert Bosch Gmbh Flexray communication controller
WO2011120823A1 (en) 2010-03-31 2011-10-06 Robert Bosch Gmbh Circuit arrangement for a data processing system and method for data processing

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014579A1 (en) 2001-07-11 2003-01-16 Motorola, Inc Communication controller and method of transforming information
US7412588B2 (en) * 2003-07-25 2008-08-12 International Business Machines Corporation Network processor system on chip with bridge coupling protocol converting multiprocessor macro core local bus to peripheral interfaces coupled system bus
CN101136000B (zh) 2006-09-01 2011-01-05 飞思卡尔半导体公司 实现sd主机/从属设备的应用处理器电路和电子设备
DE102007044803A1 (de) 2007-09-20 2009-04-09 Robert Bosch Gmbh Schaltungsanordnung zur Signalaufnahme und -erzeugung sowie Verfahren zum Betreiben dieser Schaltungsanordnung
CN201146538Y (zh) 2008-01-21 2008-11-05 上海可鲁系统软件有限公司 一种协议转换装置
CN101770442B (zh) 2008-12-30 2012-10-10 易视芯科技(北京)有限公司 具有多个外设接口的数据交互系统和方法
DE102011007437A1 (de) 2010-11-15 2012-05-16 Continental Teves Ag & Co. Ohg Verfahren und Schaltungsanrodnung zur Datenübertragung zwischen Prozessorbausteinen

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006013212A1 (de) 2004-08-05 2006-02-09 Robert Bosch Gmbh Flexray communication controller
WO2011120823A1 (en) 2010-03-31 2011-10-06 Robert Bosch Gmbh Circuit arrangement for a data processing system and method for data processing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10106171B2 (en) 2015-07-28 2018-10-23 Crown Equipment Corporation Vehicle control module with signal switchboard and output tables
US10427692B2 (en) 2015-07-28 2019-10-01 Crown Equipment Corporation Vehicle control module with signal switchboard and input tables

Also Published As

Publication number Publication date
CN104216312A (zh) 2014-12-17
US20140359178A1 (en) 2014-12-04
KR102205776B1 (ko) 2021-01-21
KR20140140508A (ko) 2014-12-09
US9965437B2 (en) 2018-05-08

Similar Documents

Publication Publication Date Title
DE102013210064A1 (de) Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle
DE102013210077A1 (de) Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle
DE102013210182A1 (de) Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle
DE19815715C2 (de) Elektronisches, datenbusfähiges Fahrzeugsteuergerät
DE3422363C2 (de)
DE102020101576A1 (de) Systeme und verfahren zur datenverarbeitung und -speicherung in fahrzeugen mit einer zonenbasierten, zentralen, rechnergestützten fahrzeugkommunikations-netzwerkarchitektur
DE102016000126A1 (de) Serielles Bussystem mit Koppelmodulen
DE102012205163A1 (de) Kommunikationsanordnung und Verfahren zum Debugging bzw. zur Programmierung eines oder mehrerer Teilnehmer der Kommunikationsanordnung
DE19616753A1 (de) Vorrichtung und Verfahren zur Steuerung eines Datenbusses
EP1315337B1 (de) Bus-Interface
DE102010003538A1 (de) Verfahren zur Überprüfung von Signal- und Modulaktivitäten in einem Timermodul und Timermodul
DE102013210066A1 (de) Verfahren zur Bereitstellung einer generischen Schnittstelle mit CRC-Funktionalität sowie Mikrocontroller mit generischer Schnittstelle und CRC-Einheit
WO2011120798A1 (de) Hardware-datenverarbeitungseinheit und verfahren zur überwachung einer rundendauer einer routingeinheit
DE102011004358B3 (de) Verfahren zum Übertragen von Daten über einen synchronen seriellen Datenbus
DE102014101141A1 (de) Empfängerarchitektur
DE102013210093A1 (de) Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle
DE102012205160A1 (de) Kommunikationsanordnung und Verfahren zur Konfiguration programmierbarer Hardware
WO2009021816A1 (de) Kommunikationsverfahren und schnittstelle zwischen einem begleit-chip und einem mikrocontroller
DE102014207422A1 (de) Busschnittstelleneinheit und Betriebsverfahren hierfür
DE102007049044A1 (de) Vorrichtung und Verfahren zum Datenaustausch zwischen mindestens zwei Funktionsmodulen einer integrierten Schaltung
DE102013210088A1 (de) Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle
DE10153846A1 (de) Verfahren zur Identifizierung von baugleichen Elektronikmodulen in einer CAN-Busarchitektur und geeignetes Elektronikmodul
DE102017011458A1 (de) Teilnehmer eines Bussystems, Verfahren zum Betrieb und ein Bussystem
DE102017002806B4 (de) Koppler für ein Automatisierungssystem
DE102017216991B4 (de) Kommunikationsbaustein und Vorrichtung zur Datenübertragung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0029060000

Ipc: H04L0065000000