-
Die Erfindung betrifft eine elektronische Steuereinheit für ein Kraftfahrzeug, wobei die Steuereinheit eine Datenschnittstelle zum Koppeln der Steuereinheit an einen Datenbus des Kraftfahrzeugs aufweist, In einer Anwendungsschicht der Steuereinheit ist dabei zumindest ein Anwendungsprogramm zum Erzeugen oder Auswerten zumindest eines über den Datenbus übermittelbaren Steuersignals vorhanden. In einer Betriebssystemschicht der Steuereinheit ist dabei ein Kommunikationsendpunkt des Datenbusses bereitgestellt. Der Kommunikationsendpunkt ist dabei zum Übermitteln von dem übermittelbaren Steuersignal über den Datenbus gemäß einem für den Datenbus spezifischen Busprotokoll ausgebildet.
-
Die Erfindung betrifft auch ein entsprechendes Verfahren zum Betreiben einer elektronischen Steuereinheit eines Kraftfahrzeugs, bei welchem die Steuereinheit an einen Datenbus des Kraftfahrzeugs angebunden ist. Ein Verfahrensschritt ist dabei ein Ausführen zumindest eines Anwendungsprogramms in einer Anwendungsschicht der Steuereinheit zum Erzeugen oder Auswerten eines über den Datenbus übermittelbaren Steuersignals. Ein weiterer Verfahrensschritt ist ein Bereitstellen des Kommunikationsendpunktes des Datenbusses in einer Betriebssystemschicht der Steuereinheit durch einen Betriebssystemkern, wobei der Kommunikationsendpunkt zum Übermitteln von dem übermittelbaren Steuersignal über den Datenbus gemäß einem für den Datenbus spezifischen Busprotokoll ausgebildet ist.
-
In Steuergeräten oder Steuereinheiten von Kraftfahrzeugen kommt heute eine Vielzahl von Anwendungsprogrammen oder Applikationen zum Einsatz, welche auf Daten von zumindest einem Kommunikationskanal oder zumindest einen Datenbus zugreifen. Bei den Steuergeräten oder Steuereinheiten handelt es sich dabei oft um sogenannte eingebettete Systeme (Embedded Systems), welche in einer Betriebssystemschicht einen eigenen Betriebssystemkern oder ein eigenes Betriebssystem aufweisen. Oft kommt hier ein Portable-Operating-System-Interface- (POSIX-) konformes Betriebssystem zum Einsatz. So kann ein Anwendungsprogramm, welches in der Steuereinheit vorhanden oder aktiv ist, mit einem entsprechenden Steuerbefehl (z.B. „read()") an den CAN-Bus als Kommunikationskanal zum Beispiel eine CAN-Botschaft mit 8 Byte Daten von dem CAN-Bus erhalten. Diese 8 Byte Daten werden dann von einem Kommunikationsendpunkt oder Socket des CAN-Busses in der Steuereinheit bereitgestellt. Auch kann das Anwendungsprogramm typischerweise mit einem weiteren Steuerbefehl (z.B. „write()“) über den Datenbus Steuersignale versenden. Dabei muss allerdings gemäß der Spezifikation des Datenbusses ein entsprechendes Datenbus-spezifisches Protokoll beachtet werden, also zum Beispiel bei einem CAN-Bus stets auch immer 8 Byte geschrieben werden, damit das Steuersignal als Teil der CAN-Botschaft in dem entsprechenden Datensignal des CAN-Busses über den Datenbus gesendet werden kann.
-
Das hat zur Folge, dass bei einem Sende- oder Empfangsvorgang, beispielsweise für den Befehl „read()“, das jeweilige Anwendungsprogramm ein jeweiliges Datenbus-spezifisches Wissen über die Position des für eine gewünschte Funktion relevanten Steuersignals haben muss, wie dies in dem jeweils anzuwendenden spezifischen Busprotokoll vorgeschrieben ist. Beispielsweise muss das Anwendungsprogramm so an einem CAN-Bus ein Wissen über die CAN-ID, sowie über das dem Steuersignal zugeordnete Byte und Bit, also die Position des Steuersignals in der CAN-Botschaft, haben. Ist das entsprechende Steuersignal nun gemäß einem veränderten Busprotokoll oder einer veränderten CAN-ID an einer anderen Stelle zu finden, so muss das Anwendungsprogramm an jede Änderung individuell angepasst werden. Beispielsweise muss so die Applikation oder das Anwendungsprogramm bei einer Verwendung in einem Kraftfahrzeug mit anderen Kommunikationsbeziehungen, d.h. einem veränderten Datenbus- oder Kommunikationskanal-Layout, stets überprüft werden. Dafür muss die Applikation im allgemeinen neu kompiliert werden.
-
Bei einem Schreib- oder Sendevorgang, wie er beispielsweise durch den Befehl „write()“ realisiert sein kann, muss zumeist, beispielsweise bei einem Versenden der Daten über einen CAN-Bus, die entsprechende Botschaft aus verschiedenen Steuersignalen zusammengesetzt werden. Dies ist der Fall, wenn nur eine komplette Botschaft, beispielsweise eine komplette CAN-Botschaft mit 8 Byte, versendet werden kann, welche aber protokollgemäß mehrere Steuersignale umfasst. So muss die CAN-Botschaft gegebenenfalls aus Sendesignalen verschiedener Anwendungsprogramme zusammengesetzt werden. Hierzu müssen die Anwendungsprogramme untereinander synchronisiert werden und eines der Anwendungsprogramme oder ein zusätzliches Anwendungsprogramm muss die CAN-Botschaft für alle weiteren Anwendungsprogramme senden. Das schafft innerhalb der Softwarearchitektur starke Abhängigkeiten, welche bei einer veränderten Kommunikationsstruktur, beispielsweise bei einem Nutzen des Anwendungsprogramms in einem anderen Kraftfahrzeugmodell, einen großen Anpassungsaufwand erzeugt.
-
In diesem Zusammenhang offenbart beispielsweise die
DE 10 2005 055 173 A1 eine elektronische Steuereinheit mit mehreren Schichten einer verteilten Netzwerksteuerungsfunktionalität, mittels welcher die Entwicklung eines Fahrzeugsteuerungsnetzwerksystems erleichtert werden soll.
-
Die
EP 2461545 A1 beschreibt eine Anwendungsplattform, bei welcher eine Anwendungsschicht in einem Kraftfahrzeug verortet ist. Über eine Kommunikationsschicht wird hier ein Austausch zwischen der fahrzeuginternen Anwendungsschicht und Applikationen bereitgestellt. Dabei wird auch eine Hardwareabstraktionsschicht bereitgestellt, welche fahrzeugspezifische Schnittstellen abschottet.
-
Die
US 2013/0167159 A1 offenbart eine mobile Recheneinheit mit einem mobilen Betriebssystem und einen Computer, welche auf einem geteilten Betriebssystemkern laufen.
-
Die
US 2001/0025216 A1 offenbart ein Steuergerät für ein Kraftfahrzeug, in welchem eine Anwendungsschicht über eine Schnittstellenschicht mit einem Kommunikationstreiber gekoppelt ist, sodass über die Schnittstellenschicht Anwendungsprogramme in der Anwendungsschicht unabhängig von der Hardware des Kommunikationstreibers auf eine mit dem Kommunikationstreiber gekoppelte Kommunikationsverbindung zugreifen kann.
-
Die
DE 10 2005 025 875 A1 offenbart ein Kraftfahrzeug mit mehreren Peripheriegeräten, welche über eine Steuereinrichtung mit einer Mensch-Maschine-Schnittstelle gekoppelt sind. Dabei können die Peripheriegeräte auf eine Datei abgebildet werden.
-
Es ergibt sich die Aufgabe, das Senden und Empfangen von Steuersignalen über einen Datenbus in einem Kraftfahrzeug zu vereinfachen.
-
Diese Aufgabe wird durch die Gegenstände der unabhängigen Patentansprüche gelöst. Vorteilhafte Ausführungsformen ergeben sich aus den abhängigen Patentansprüchen, der Beschreibung und der Figur.
-
Die Erfindung betrifft eine elektronische Steuereinheit für ein Kraftfahrzeug. Die elektronische Steuereinheit kann dabei ein Steuergerät umfassen oder ein Steuergerät sein. Die Steuereinheit weist eine Datenschnittstelle zum Koppeln der Steuereinheit an einen Datenbus des Kraftfahrzeugs auf. In einer Anwendungsschicht der Steuereinheit ist dabei zumindest ein Anwendungsprogramm zum Erzeugen oder Auswerten zumindest eines über den Datenbus übermittelbaren Steuersignals vorhanden. Das Steuersignal kann dabei zum Steuern einer Fahrzeugfunktion oder einer Funktion der Steuereinheit dienen. Beispielsweise kann ein zu sendendes Steuersignal ein Signal eines Sensors, welcher mit der Steuereinheit gekoppelt ist oder zu dieser gehörig ist, repräsentieren, welches über den Datenbus bereitgestellt werden soll. Ein zu empfangendes Steuersignal kann beispielsweise eine Soll-Vorgabe oder ein Signal eines anderen Gerätes repräsentieren, welche eine Funktion der Steuereinheit beeinflusst.
-
In einer Betriebssystemschicht der Steuereinheit ist dabei durch einen Betriebssystemkern ein Kommunikationsendpunkt oder Socket des Datenbusses bereitgestellt. Bei dem Betriebssystemkern kann es sich insbesondere um einen POSIX-konformen Betriebssystemkern handeln. Die Betriebssystemschicht kann auch als „kernel layer“ oder „kernel space“ bezeichnet werden. Die Betriebssystemschicht kann dabei auch eine weitere Schicht, beispielsweise eine Schicht mit einer sogenannten Middleware als zusätzliches Programm umfassen. Bei dem Betriebssystemkern kann es sich also auch um einen sogenannten Nano-Betriebssystemkern oder Nano-kernel mit einer Betriebssystemkernerweiterung handeln. Die Betriebssystemkernerweiterung kann dabei insbesondere in der weiteren Schicht vorhanden oder aktiv sein. Entsprechend kann der Kommunikationsendpunkt des Datenbusses auch durch die Betriebssystemkernerweiterung in der weiteren Schicht bereitgestellt werden. Dabei ist der Kommunikationsendpunkt oder Socket zum Übermitteln von dem übermittelbaren Steuersignal über den Datenbus gemäß einem für den Datenbus spezifischen Busprotokoll ausgebildet.
-
In der Betriebssystemschicht, welche eine weitere Schicht umfassen kann, ist dabei eine Schnittstellenschicht vorhanden, welche das übermittelbare Steuersignal als eine von der Art des Datenbusses und/oder von dem für den Datenbus spezifischen Busprotokoll unabhängig zugängliche Geräteressource des Betriebssystemkerns und/oder der Betriebssystemkernerweiterung bereitstellt oder mountet. Die Schnittstellenschicht stellt somit eine busprotokoll-unabhängige Schnittstelle zwischen dem Kommunikationsendpunkt und der Anwendungsschicht bereit. Das übermittelbare Steuersignal kann hier zumindest ein, bevorzugt mehrere, aus der Anwendungsschicht sendbare Steuersignale und/oder zumindest ein, bevorzugt mehrere, in der Anwendungsschicht empfangbare Steuersignale umfassen.
-
Im Falle von mehreren Steuersignalen kann dabei jedes Steuersignal als eine eigene Geräteressource bereitgestellt oder gemountet werden. Alternativ oder ergänzend kann auch eine oder mehrere jeweilige Gruppen von Steuersignalen gemeinsam als eine einzige Geräteressource bereitgestellt oder gemountet werden. Bei der Geräteressource kann es sich hier um ein sogenanntes „Device“, also ein Gerät oder ein virtuelles Gerät des Betriebssystems, handeln. Die durch die Schnittstellenschicht bereitgestellte busprotokoll-unabhängige Schnittstelle kann insbesondere nicht nur von einem, sondern auch von mehreren bzw. zumindest einem weiteren Anwendungsprogramm der Steuereinheit genutzt werden. Über die busprotokoll-unabhängigen Schnittstelle können somit mittels der für den jeweiligen Betriebssystemkern oder das jeweilige Betriebssystem üblichen Befehle oder Steuerbefehle ohne Kenntnis über die Art des Datenbusses und/oder das spezifische Busprotokoll Daten in Form der Steuersignale gesendet und/oder empfangen werden. Im Falle eines POSIX-konformen Betriebssystemkerns kann so beispielsweise über den Befehl „write()“ gesendet und über den Befehl „read()“ empfangen werden.
-
Das hat den Vorteil, dass die konkrete über den Datenbus und den zugehörigen Kommunikationsendpunkt des Datenbusses bereitgestellte Schnittstelle abstrahiert wird und somit das Anwendungsprogramm bei einem Ändern der Kommunikationsbeziehungen, beispielsweise einer CAN-ID oder einem Wechsel zu einem anderen Busprotokoll, beispielsweise auch wenn das Anwendungsprogramm in einer anderen Steuereinheit eingesetzt werden soll, welche an einen andersartigen Datenbus angebunden ist, die Applikation oder das Anwendungsprogramm unverändert beibehalten werden kann.
-
Damit muss bei einem Ändern der Kommunikationsbeziehungen in einem jeweiligen Fahrzeugnetzwerk, in welches die elektronische Steuereinheit eingebunden werden soll, das Anwendungsprogramm nicht zwingend neu kompiliert werden.
-
Überdies kann so jeder Nutzer der Steuereinheit, also beispielsweise ein Entwickler oder ein Anwendungsprogramm, sich in einem Dateimanager auf einfache Weise, nämlich über eine Auflistung der vorhandenen Geräteressourcen, einen Überblick darüber verschaffen, welche Steuersignale in der Steuereinheit überhaupt zur Verfügung stehen. Dabei kann auch die in Betriebssystemen übliche Rechteverwaltung für den Schutz vor Signalen vor einem unbefugten Lesen oder Schreiben genutzt werden, sodass auf besonders einfache Weise ein großes Maß an Betriebssicherheit erreicht wird. Auch können so auf Geräteressourcen aufsetzende Werkzeuge wie zum Beispiel weitere Anwendungsprogramme zur Weiterverarbeitung der Steuersignale auf einfache Weise, nämlich wie dies in dem Betriebssystemkern standardmäßig vorgesehen ist, genutzt werden. Wird beispielsweise die Geräteressource als Gerät oder „Device“ in einem Gerätebaum oder „Device-Tree“ des Betriebssystems dargestellt, so kann beispielsweise ein Anwendungsprogramm mit einem Befehl „read()" auf „/dev/empfangssignale/Zündung“ ein Steuersignal, welches den aktuellen Status der Zündung repräsentiert, empfangen. Entsprechend kann beispielsweise das Anwendungsprogramm mit dem Befehl „write()“ auf „/dev/sendesignale/Geschwindigkeit“ ein Steuersignal senden, um den Wert der Geschwindigkeit zu verändern. Dabei können in der Schnittstellenschicht mehrere Steuersignale von den verschiedenen Anwendungsprogrammen in einer Steuereinheit zusammengefügt und gemeinsam als eine einzige Botschaft über den Datenbus übermittelt werden.
-
Da das Bereitstellen oder Mounten der Geräteressource flexibel zur Laufzeit des Betriebssystemkerns erfolgen kann, kann auch entsprechend flexibel auf Veränderungen bezüglich der übermittelbaren Steuersignale reagiert werden. Beispielsweise kann die übliche Übermittlungsmatrix oder „Routing Matrix“, welche zu einer Kompilierzeit bereits definiert sein muss, entfallen und jede Steuereinheit das oder die Steuersignale, welche über den in ihr verfügbaren Kommunikationsendpunkt übermittelbar sind, transparent anbieten. Das beschriebene Verfahren ermöglicht so auf einzelne Bit-Informationen, wie sie im Bereich der Kraftfahrzeuge oft relevant sind, einen vereinfachten Zugriff. Gerade bei einem Gruppieren von Steuersignalen, also einem Bereitstellen (mounten) von einer jeweiligen Gruppe von Steuersignalen als eine einzige von dem für den Datenbus spezifischen Busprotokoll unabhängig zugängliche Geräteressource des Betriebssystemkerns kann so auch sichergestellt werden, dass jedes Steuersignal der Gruppe gleich aktuell ist, also zu einem gleichen Zeitpunkt letztmalig geändert wurde. Somit wird auf einfache Weise Fehlzuordnungen vorgebeugt, wie sie bei einem Synchronisieren unterschiedlicher Applikationen untereinander sonst stets möglich sind.
-
In einer bevorzugten Ausführungsform ist vorgesehen, dass der Datenbus einen ereignisbasierten Datenbus und/oder einen deterministischen Datenbus umfasst, bei welchem Daten je nur in Form von Datensignalen einer vorgegebenen oder vorgebbaren standardisierten Länge übermittelbar sind. Dies ist beispielsweise für den CAN-Bus der Fall, bei welchem eine Botschaft standardmäßig 8 Byte umfasst. Insbesondere können bei dem Datenbus auch Datensignale nur in vorgegebenen oder vorgebbaren Übermittlungsfenstern oder sogenannten „Timeslot“ übermittelt werden. Dies ist beispielsweise bei dem LIN-Bus der Fall, bei welchem jedem Gerät zu einer vorbestimmten Zeit ein Übermittlungsfenster zugewiesen wird. Unter einem deterministischen Datenbus kann hier einen Datenbus verstanden werden, welcher Daten in vorbestimmter, von spezifischen Ereignissen unabhängiger Weise auf die stets gleiche Art und Weise, beispielsweise zyklisch wiederholend, übermittelt. Unter einem ereignisbasierten Datenbus kann hier ein Datenbus verstanden werden, über welchen Datensignale nach einem auslösenden Ereignis, beispielsweise einer Datenanfrage, übermittelt werden.
-
Ein Datensignal kann dabei insbesondere mehrere Steuersignale umfassen oder repräsentieren. Zusätzlich zu den Steuersignalen kann das Datensignal auch einen Datensignalkopf, einen sogenannten Header, umfassen. Die Steuersignale können auch Teil einer sogenannte Botschaft oder Packet Data Unit (PDU) des Datensignals sein.
-
Gerade in den genannten Fällen ist die busprotokoll-unabhängige Schnittstelle zwischen Kommunikationsendpunkt und der Anwendungsschicht besonders vorteilhaft, da bei einem flexiblen Einsatz des entsprechenden Anwendungsprogramms ein besonders großer Anpassungsaufwand des Anwendungsprogramms entfällt.
-
In einer bevorzugten Ausführungsform ist dabei vorgesehen, dass der Datenbus einen CAN-Bus und/oder einen LIN-bus und/oder einen FlexRay-Bus umfasst. Da die genannten Datenbusse in Kraftfahrzeugen besonders häufig anzutreffen sind und überdies die im letzten Absatz genannten Merkmale in unterschiedlichen Kombinationen aufweisen, ist die busprotokoll-unabhängige Schnittstelle hier besonders vorteilhaft.
-
In einer weiteren besonders vorteilhaften Ausführungsform ist vorgesehen, dass die Schnittstellenschicht durch eine in der Steuereinheit hinterlegte oder bereitgestellte Konfigurationsdatei konfigurierbar ist, welche dem übermittelbaren Steuersignal, insbesondere jedem übermittelbaren Steuersignal, eine Geräteressource zuordnet. Dabei können auch die genannten Gruppierungen realisiert sein, d.h. mehrere übermittelbare Steuersignale einer gemeinsamen Geräteressource zugeordnet werden. Insbesondere ist die Steuereinheit hier ausgelegt, bei einem Neustart der Steuereinheit die Konfigurationsdatei einzulesen und sich so selbst zu konfigurieren sowie die dem zumindest einen übermittelbaren Steuersignal entsprechende Geräteressource zur Verfügung zu stellen. Die Konfigurationsdatei kann zur Laufzeit der Steuereinheit, insbesondere bei einem Starten der Steuereinheit oder des Steuergeräts, interpretiert werden. Der Konfigurationsdatei ist dabei zu entnehmen, welche Geräteressource, beispielsweise welches Device im Device-Tree, von der Schnittstellenschicht angelegt werden soll und in welchem Datensignal, beispielsweise in welcher Bus-Botschaft, beispielsweise CAN-Botschaft, das Steuersignal enthalten ist.
-
Das hat den Vorteil, dass bei einem Ändern der Kommunikationsbeziehungen, also Beispielsweise der Anbindung der elektronischen Steuereinheit an einen anderen Datenbus oder unterschiedliche Datenbusse, nur die Konfigurationsdatei angepasst werden muss, um die richtige Zuordnung zwischen der Geräteressource und dem jeweils für den entsprechenden Datenbus bzw. das Busprotokoll korrekten Datensignal herzustellen. Dies kann unabhängig von einem Kompilierzeitpunkt erfolgen, welches eine besondere Flexibilität und Einfachheit bei einem Anpassen des Anwendungsprogramms und damit dem Senden und Empfangen von Steuersignalen an vorliegende Kommunikationsbeziehungen im Kraftfahrzeug realisiert.
-
In einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass die zumindest eine Geräteressource, insbesondere alle Geräteressourcen über ein Netzwerk-Dateisystem nutzbar oder bereitstellbar ist. Dabei kann die zumindest eine Geräteressource an ein oder mehrere Anwendungsprogramme in der Anwendungsschicht der Steuereinheit bereitstellbar oder durch diese nutzbar sein. Bei dem Netzwerkdateisystem kann es sich insbesondere um das sogenannte Network File System (NFS) von Sun Micro Systems oder einem vergleichbaren Dateisystem mit Rechteverwaltung und bei welchem die Benutzer auf Dateien, die sich auf einem entfernten Rechner befinden, so zugreifen können, als ob sie lokal auf ihrem jeweiligen Rechner abgespeichert wären, handeln, oder das Netzwerkdateisystem ein solches Network File System oder ein vergleichbares Dateisystem umfassen. Das hat den Vorteil, dass so auf besonders einfache Art und Weise auf die übermittelbaren Steuersignale zugegriffen werden kann, bzw. ein Zugriff auch für zumindest ein weiteres Gerät oder zumindest eine weitere Steuereinheit, welche mit der elektronischen Steuereinheit gekoppelt sind, ermöglicht wird. So kann beispielsweise eine weitere elektronische Steuereinheit über einen von dem Datenbus unabhängigen Kommunikationskanal, insbesondere eine Ethernetverbindung, angebunden sein und dann über entsprechende Steuerbefehle über das Netzwerkdateisystem auf die über den Datenbus übermittelbaren Steuersignale zugreifen. Die weitere Steuereinheit kann so beispielsweise über den Datenbus Steuersignale senden oder empfangen, ohne eine direkte Anbindung zu dem Datenbus zu haben oder überhaupt eine Kenntnis darüber zu haben, dass die entsprechenden Steuersignale über einen Datenbus übermittelt werden oder übermittelbar sind. Auch damit wird das Senden und Empfangen von Steuersignalen in einem Kraftfahrzeug vereinfacht.
-
Auf diese Weise wird auch ein dynamisches Verschieben von Anwendungsprogrammen, d.h. der durch die Anwendungsprogramme bereitgestellten Funktionen auf andere elektronische Steuereinheiten ermöglicht, welche mit der elektronischen Steuereinheit über einen Kommunikationskanal wie beispielsweise Ethernet gekoppelt sind. So kann beispielsweise bei einer Überschreitung einer Rechenkapazität der elektronischen Steuereinheit ein spezifisches Anwendungsprogramm in eine andere elektronische Steuereinheit verschoben und dort ausgeführt werden, sodass die erste elektronische Steuereinheit entlastet wird. Auch kann so beispielsweise auf einfache Weise realisiert werden, dass ein oder mehrere bestimmte Anwendungsprogramme, welche in einer ersten Ausführungsform oder Ausstattungsvariante eines Kraftfahrzeugs in einer ersten elektronischen Steuereinheit ausgeführt werden, in einer zweiten Ausrufungsform eines Kraftfahrzeugs in einer anderen elektronischen Steuereinheit ausgeführt werden. Dabei kann die andere elektronische Steuereinheit durchaus in beiden Ausführungsformen des Kraftfahrzeugs vorhanden sein, bei der genannten Umsetzung aber beispielsweise in der ersten Ausführungsform des Kraftfahrzeugs für weitere Zwecke oder Anwendungprogramme genutzt werden.
-
In einer anderen vorteilhaften Ausführungsform ist vorgesehen, dass über entsprechende Befehle oder mit entsprechenden Befehlen an den Betriebssystemkern durch die Schnittstellenschicht die bereitgestellte oder gemountete Geräteressource für das zumindest eine oder bei mehreren Anwendungsprogrammen für jeweils ein Anwendungsprogramm zugänglich und unzugänglich machbar sind. So kann beispielsweise die bereitgestellte Geräteressource für ein Anwendungsprogramm mit dem POSIX-konformen Befehl „open()“ oder einem gleich wirkenden Befehl zugänglich und/oder mit dem POSIX-konformen Befehl „close()“ oder einen gleich wirkenden Befehl unzugänglich gemacht werden. Dabei ist mit entsprechenden weiteren Befehlen oder Steuerbefehlen an den Betriebsystem kern ein zu sendendes übermittelbares Steuersignal über den Datenbus sendbar und/oder ein zu empfangendes übermittelbares Steuersignal über den Datenbus empfangbar. So kann ein Steuersignal beispielsweise mit dem POSIX-konformen Befehl „write()“ oder einen gleich wirkenden auf die Geräteressource bezogenen Befehl über den Datenbus gesendet werden und/oder das Steuersignal mit dem POSIX-konformen Befehl „read()“ oder einen gleich wirkenden auf die Geräteressource bezogenen Befehl über den Datenbus empfangen werden. Das hat den Vorteil, dass auf bekannte Weise besonders einfach und intuitiv nachvollziehbar unabhängig von der Art des Datenbusses oder einem datenbusspezifischen Protokoll die jeweiligen Steuersignale gesendet und/oder empfangen werden können. Dadurch, dass die gemountete Geräteressource für ein jeweiliges Anwendungsprogramm individuell zugänglich und unzugänglich gemacht werden kann, wird auch auf einfache Weise ein hohes Maß an Sicherheit erreicht und Fehlfunktionen und fehlerhaften Zugriffen vorgebeugt.
-
In einer anderen, besonders vorteilhaften Ausführungsform ist vorgesehen, dass die Geräteressource ein Gerät oder virtuelles Gerät, ein sogenanntes Device, welches logisch am Gerätebaum oder Device-Tree des Betriebssystemkerns angebunden, also „aufgehängt“, „bereitgestellt“ oder „gemountet“ sein kann, und/oder eine Datei umfasst oder ist. Die Datei kann dabei insbesondere eine Systemdatei zum Laden und verfügbar Machen von zumindest einem Standardgerätetreiber und zum Laden eines Dateisystemtreibers sowie zum Bereitstellen eines Datenträgerzugriffs sein. Es kann sich also bei der Systemdatei um eine Systemdatei nach Art der aus MS-DOS bekannten io.sys-Systemdatei handeln. Insbesondere können dann die oben genannten Steuerbefehle, welche beispielsweise als „read()" oder „write()“ realisiert sind, als Lesen und Schreiben der Datei bzw. in die Datei implementiert sein. Das hat den Vorteil, dass die eingangs genannten Vorteile besonders einfach realisierbar sind, da sie entsprechend für Geräte („Devices“) und/oder Dateien in Betriebssystemen bereits standardmäßig nutzbar sind. Somit kann beispielsweise eine Rechteverwaltung oder ein Teilen der Geräteressourcen über ein Netzwerkprotokoll auf besonders einfache Weise umgesetzt werden, ohne dass hier eine aufwändige individuelle Anpassung des Anwendungsprogramms an die Steuereinheit oder das entsprechende Betriebssystem erforderlich wäre.
-
Durch die Schnittstellenschicht sind zumindest zwei, insbesondere mehrere, zu sendende übermittelbare Steuersignale von unterschiedlichen Anwendungsprogrammen der Anwendungsschicht für das Übertragen über den Datenbus zu einem Datensignal, beispielsweise einer CAN-Botschaft, zusammenfügbar und als ein einziges oder gemeinsames Datensignal über den Datenbus übermittelbar. Die Schnittstellenschicht kann zu diesem Zweck ein Übermittlungsprogramm, einen sogenannten Broadcast-Manager, der von Volkswagen Research als Open Source zur Verfügung gestellten Socket CAN-Netzwerkschicht umfassen. Alternativ kann die Schnittstellenschicht auch ein anderes Übermittlungsprogramm mit gleichem oder vergleichbarem Funktionsumfang umfassen, insbesondere mit der Möglichkeit des Filterns von Datensignalen, insbesondere von CAN-Botschaften, und dem Ermöglichen von periodischem Versenden von Datensignalen. Das hat den Vorteil, dass die unterschiedlichen Anwendungsprogramme der Steuereinheit nicht untereinander unter jeweiliger Berücksichtigung der anderen in der Steuereinheit vorhandenen oder vorgesehenen Anwendungsprogramme angepasst werden müssen, sondern vielmehr auf einfache Weise die Schnittstellenschicht selber das Synchronisieren und Kopieren der Steuersignale entsprechend dem jeweiligen Datenbus bzw. dem Protokoll des jeweiligen Datenbusses, über welchen die Steuersignale übermittelbar sind, übernehmen kann.
-
Die Erfindung umfasst auch ein Kraftfahrzeug mit einer elektronischen Steuereinheit nach einer oder mehreren der genannten Ausführungsformen.
-
Ebenfalls umfasst von der Erfindung ist ein Verfahren zum Betreiben einer elektronischen Steuereinheit eines Kraftfahrzeugs, wobei die Steuereinheit an einen Datenbus des Kraftfahrzeugs angebunden ist. Das Verfahren umfasst dabei ein Ausführen zumindest eines Anwendungsprogramms in einer Anwendungsschicht der Steuereinheit zum Erzeugen oder Auswerten eines über den Datenbus übermittelbaren Steuersignals. Auch ein Bereitstellen eines Kommunikationsendpunktes oder Sockets des Datenbusses in einer Betriebssystemschicht der Steuereinheit durch einen Betriebssystemkern ist Teil des Verfahrens, wobei der Kommunikationsendpunkt zum Übermitteln von dem übermittelbaren Steuersignal über den Datenbus gemäß einem für den Datenbus spezifischen Busprotokoll ausgebildet ist. Ein weiterer Schritt ist ein Bereitstellen oder „Mounten“ des übermittelbaren Steuersignals in einer Schnittstellenschicht der Betriebssystemschicht als einen von dem für den Datenbus spezifischen Busprotokoll unabhängig zugängliche Geräteressource des Betriebssystemkerns und somit Erzeugen einer busprotokoll-unabhängigen Schnittstelle zwischen dem Kommunikationsendpunkt und der Anwendungsschicht. Schließlich ist auch ein Übermitteln des übermittelbaren Steuersignals über die busprotokoll-unabhängige Schnittstelle von der Anwendungsschicht an den Kommunikationsendpunkt und somit ein Bereitstellen des übermittelbaren Steuersignals an dem Datenbus Teil des Verfahrens.
-
Vorteile und vorteilhafte Ausführungsformen des Verfahrens entsprechen hier Vorteilen und vorteilhaften Ausführungsformen der elektronischen Steuereinheit.
-
Die vorstehend in der Beschreibung genannten Merkmale und Merkmalskombinationen, sowie die nachfolgend in der Figurenbeschreibung genannten und/oder in der Figur alleine gezeigten Merkmale und Merkmalskombinationen sind nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen verwendbar, ohne den Rahmen der Erfindung zu verlassen. Es sind somit auch Ausführungen von der Erfindung als umfasst und offenbart anzusehen, die in der Figur nicht explizit gezeigt und erläutert sind, jedoch durch separierte Merkmalskombinationen aus den erläuterten Ausführungen hervorgehen und erzeugbar sind. Es sind auch Ausführungen und Merkmalskombinationen als offenbart anzusehen, die somit nicht alle Merkmale eines ursprünglich formulierten unabhängigen Anspruchs aufweisen. Es sind darüber hinaus Ausführungen und Merkmalskombinationen, insbesondere durch die oben dargelegten Ausführungen, als offenbart anzusehen, die über die in den Rückbezügen der Ansprüche dargelegten Merkmalskombinationen hinausgehen oder von diesen abweichen.
-
Ausführungsbeispiele der Erfindung werden nachfolgend anhand schematischer Zeichnungen näher erläutert.
-
Die einzige Fig. zeigt dabei eine beispielhafte Ausführungsform einer elektronischen Steuereinheit für ein Kraftfahrzeug. Die elektronische Steuereinheit 1 weist vorliegend eine Datenschnittstelle 2 zum Koppeln der Steuereinheit 1 an einen Datenbus 3 auf. Die Steuereinheit 1 weist ferner eine Anwendungsschicht 4 sowie eine Betriebssystemschicht 5 auf. In der Anwendungsschicht 4 ist zumindest ein Anwendungsprogramm 6a, 6b, vorliegend ein erstes Anwendungsprogramm 6a und ein zweites Anwendungsprogramm 6b, vorhanden. Durch die beiden Anwendungsprogramme 6a, 6b ist jeweils zumindest ein über den Datenbus übermittelbares Steuersignal erzeugbar und/oder auswertbar.
-
In der Betriebssystemschicht 5 der Steuereinheit 1 ist vorliegend durch einen Betriebssystemkern ein Kommunikationsendpunkt 7 oder Socket des Datenbusses 3 bereitgestellt. Der Kommunikationsendpunkt kann auch alternativ durch oder über eine Betriebssystemkernerweiterung bereitgestellt sein. Dabei ist der Kommunikationsendpunkt 7 zum Übermitteln von dem übermittelbaren Steuersignal über den Datenbus 3 gemäß einem für den Datenbus spezifischen Busprotokoll ausgebildet. in der Betriebssystemschicht 5 ist eine Schnittstellenschicht 8 vorhanden, welche das übermittelbare Steuersignal als eine von dem für den Datenbus 3 spezifischen Busprotokoll unabhängig zugängliche Geräteressource 9a, 9b, 9c, vorliegend eine erste Geräteressource 9a, eine zweite Geräteressource 9b und eine dritte Geräteressource 9c des Betriebssystemkerns bereitstellt. Beispielsweise repräsentiert die erste Geräteressource 9a eine Geschwindigkeit, die zweite Ressource 9b eine Zündung und die dritte Ressource 9c eine Temperatur.
-
Die Schnittstellenschicht 8 ist im gezeigten Beispiel durch eine in der Steuereinheit 1 hinterlegte oder bereitgestellte Konfigurationsdatei 10 konfigurierbar, welche hier jedem übermittelbaren Steuersignal eine Geräteressource 9a, 9b, 9c zuordnet. Vorliegend sind die übermittelbaren Steuersignale also ein Geschwindigkeitswert, ein Wert für einen Zündungsstatus, und ein Temperaturwert. Dabei ist die Steuereinheit 1 hier ausgelegt, bei einem Neustart der Steuereinheit 1 die Konfigurationsdatei 10 einzulesen und sich so selbst zu konfigurieren sowie die dem zumindest einen übermittelbaren Steuersignal entsprechende Geräteressource 9a, 9b, 9c zur Verfügung zu stellen. Der Konfigurationsdatei 10 ist also zu entnehmen, welche Geräteressource 9a, 9b, 9c von der Schnittstellenschicht 8 angelegt werden soll und in welchem Datensignal, beispielsweise in welcher Bus-Botschaft, das jeweilige Steuersignal an welcher Position enthalten ist.
-
Im vorliegenden Ausführungsbeispiel kann nun über entsprechende (Steuer-) Befehle an den Betriebssystemkern durch die Schnittstellenschicht 8 die zumindest eine bereitgestellte Geräteressource 9a, 9b, 9c für das zumindest eine, hier die beiden Anwendungsprogramme 6a, 6b zugänglich und unzugänglich gemacht werden. Dies kann beispielsweise durch ein auf die jeweilige Geräteressource 9a, 9b, 9c gerichteten Steuerbefehl wie „open()“ und „close()“ erfolgen. Des Weiteren können über entsprechende weitere Befehle an den Betriebssystemkern ein zu sendendes übermittelbares Steuersignal gesendet und/oder ein zu empfangendes übermittelbares Steuersignal empfangen werden. Dies kann beispielsweise durch einen auf die jeweilige Geräteressource 9a, 9b, 9c gerichteten ersten Steuerbefehl „read()" 20 für das Empfangen und/oder zweiten Steuerbefehl „write()“ 30 für das Senden erfolgen.
-
Sind nun beispielsweise die Geräteressourcen 9a, 9b, 9c als Gerät, das heißt sogenannte „Device“ im „Device-Tree“ oder Gerätebaum des Betriebssystems bereitgestellt oder gemountet, so kann auf das jeweils der Geräteressource 9a, 9b, 9c zugeordnete Steuersignal über den Device-Tree zugegriffen werden. So kann beispielsweise vorliegend die erste Geräteressource 9a unter /dev/sendesignale/Geschwindigkeit, die zweite Geräteressource 9b unter /dev/empfangssignale/Zündung und die dritte Geräteressource 9c unter dev/sendesignale/Temperatur im Device-Tree gemountet sein. Das erste Anwendungsprogramm 6a kann so vorliegend beispielsweise den ersten Steuerbefehl „read()“ 20 auf die zweite Geräteressource 9b gerichtet ausführen und erhält dann den aktuellen Status der Zündung geliefert. Selbiges gilt im gezeigten Beispiel auch für das zweite Anwendungsprogramm 6b. Das erste Anwendungsprogramm 6a kann im gezeigten Beispiel den zweiten Steuerbefehl „write()“ 30 auf die erste Geräteressource 9a ausführen, um den entsprechenden Wert des Steuersignals, vorliegend der Geschwindigkeit, zu ändern. Entsprechend kann im gezeigten Beispiel das zweite Anwendungsprogramm 6b den zweiten Steuerbefehl „write()“ 30 auf die dritte Geräteressource 9c ausführen und dort einen Wert für die Temperatur setzen. Dadurch, dass die Geräteressourcen vorliegend als virtuelle Geräte oder Devices im Device-Tree des Betriebssystems aufgehängt oder gemountet sind, kann hier die Standardrechteverwaltung für den Schutz von Steuersignalen vor einem unbefugten Lesen und Schreiben genutzt werden. So kann beispielsweise verhindert werden, dass als Folge eines Fehlers das zweite Anwendungsprogramm 6b irrtümlicherweise den zweiten Steuerbefehl „write()“ 30 auf die erste Geräteressource 9a anwendet.
-
Wird nun ein Datensignal an dem Datenbus und somit auch dem Kommunikationsendpunkt 7 bereitgestellt, so wird dieses Datensignal, welches beispielsweise ein Steuersignal umfasst, welches vorliegend einen aktuellen Status der Zündung repräsentiert, als Eigenschaft der zugehörigen Geräteressource 9a, 9b, 9c, vorliegend also der zweiten Geräteressource 9b hinterlegt in der Schnittstellenschicht 8. Somit kann das in dem übermittelten Datensignal enthaltene Steuersignal in der Steuereinheit 1 abgespeichert werden und somit den Anwendungsprogrammen 6a, 6b dauerhaft zur Verfügung gestellt werden. Handelt sich bei den Datenbus 3 um einen ereignisbasierten Datenbus, so kann das entsprechende Steuersignal (bzw. das gemäß dem Busprotokoll zugeordnete Datensignal) auch erst auf den ersten Steuerbefehl „read()" 20 im gezeigten Beispiel hin über den Datenbus 3 angefordert werden.
-
Umgekehrt, wenn also das zu übermittelnde Steuersignal ein zu sendendes Steuersignal von einem der Anwendungsprogramme 6a, 6b ist, kann über einen entsprechenden Befehl, vorliegend den zweiten Steuerbefehl „write()“ 30 eine entsprechende Größe, beispielsweise ein Messwert eines an die Steuereinheit 1 angeschlossenen Sensors oder eine von dem Messwert durch das entsprechende Anwendungsprogramm 6a, 6b abgeleiteten Größe als Eigenschaft der jeweiligen Geräteressource 9a, 9b, 9c bereitgestellt oder genutzt werden. So kann vorliegend das erste Anwendungsprogramm 6a über den zweiten Steuerbefehl „write()“ 30 einen Wert für die Geschwindigkeit als Eigenschaft der ersten Geräteressource 9a setzen. Das zweite Anwendungsprogramm 6b kann vorliegend über den entsprechenden zweiten Steuerbefehl „write()“ 30 in der dritten Geräteressource 9c einen Wert für eine Temperatur hinterlegen. Diese Werte können dann durch die Schnittstellenschicht 8 in ein Datensignal überführt werden, welches gemäß dem Busprotokoll über den Datenbus 3 übermittelt werden kann.
-
Ist nun beispielsweise der Wert für die Geschwindigkeit und der Wert für die Temperatur gemäß dem für den Datenbus 3 spezifischen Busprotokoll in einem einzigen gemeinsamen Datensignal zu übermitteln, so fügt die Schnittstellenschicht 8 gemäß den Vorgaben des Busprotokolls die von den beiden Anwendungsprogrammen 6a, 6b für vorliegend Geschwindigkeit und Temperatur mittels des entsprechenden Steuerbefehls, hier des zweiten Steuerbefehlt „write()“ 30, hinterlegten Werte zusammen. Somit werden in Folge die Steuersignale, welche von den unterschiedlichen Anwendungsprogrammen 6a, 6b gesendet werden, gemeinsam über den Kommunikationsendpunkt 7 in dem Datenbus 3 bereitgestellt und über diesen übermittelt.
-
Damit müssen beispielsweise wenn die elektronische Steuereinheit 1 bzw. die Anwendungsprogramme 6a, 6b in einem anderen Fahrzeug mit anderen Kommunikationsbeziehungen, also beispielsweise mit einer anderen Identifikationsnummer für die Steuereinheit 1 an dem Datenbus 3, diese Anwendungsprogramme 6a, 6b nicht neu kompiliert werden, sondern können ohne weiteres weiter verwendet werden. Einzig die Konfigurationsdatei 10 muss in diesem Fall aktualisiert werden. Damit sind die Anwendungsprogramme 6a, 6b bei konsequenter Anwendung des dargelegten Prinzips auch in weiteren elektronischen Steuereinheiten mit oben genannten Eigenschaften ohne weiteres einsetzbar. Es wird so auf einfache Weise eine große Flexibilität bezüglich der auf der Hardware der jeweiligen elektronischen Steuereinheiten 1 durchführbaren oder ausführbaren Anwendungsprogramme 6a, 6b erreicht.