-
EINLEITUNG
-
Die vorliegende Offenbarung bezieht sich auf die Einstellung einer Programmierung einer elektronischen Steuereinheit (ECU), um die Einstellung von kalibrierbaren Werten der ECU für Zwecke der Leistungsabstimmung in Bezug auf den Betrieb der ECU zu erleichtern.
-
Eine elektronische Steuereinheit (ECU) kann als Computer, Mikrocontroller oder anderes Verarbeitungselement betrachtet werden, das dazu konfiguriert ist, eine oder mehrere Operationen, Funktionen, Prozesse usw. bereitzustellen oder anderweitig zu unterstützen, wie z. B. durch Ausgeben von entsprechenden Signalen, Daten, Steuerungen und dergleichen an ein abhängiges System. Als Beispiel können, wenn sie mit einer Trägervorrichtung verwendet wird, wie z. B. einem Kraftfahrzeug, verschiedene ECU als Kraftmaschinensteuermodul (ECM), Telematikeinheit (TU), Antriebsstrangsteuermodul (PCM), Getriebesteuermodul (TCM), Bremssteuermodul (BCM), Zentralsteuermodul (CCM), zentrales Zeitsteuermodul (CTM), Fahrgasttürmodul (PDM), Systemsteuermodul (SCM), Airbag-Steuermodul (ACM), Batteriemanagementsystem (BMS), allgemeines elektronisches Modul (GEM), Karosseriesteuermodul (BCM), Aufhängungssteuermodul (SCM) und mehr verwendet werden.
-
ECU können von einem Lieferanten für die Installation in einem Werk eines Originalgeräteherstellers (OEM), wie z. B. durch Installieren der ECU als Teil einer Montagelinie, die verwendet wird, um ein Kraftfahrzeug zu montieren, geliefert werden. Zur Zeit der Werksinstallation können ECU mit einem anfänglichen Satz von Werten programmiert werden, die dazu konfiguriert sind, Operationen der ECU gemäß nominalen Entwurfsparametern zu kalibrieren. Dieser anfängliche Satz von Werten kann als Werkseinstellungen oder Werkswerte betrachtet werden, da die zugehörige Kalibrierung der ECU zu der Zeit festgelegt wird, zu der die Trägervorrichtung das Werk verlässt. Da die Vorrichtungen mit ECU in irgendeiner Anzahl von Umgebungen, in irgendeiner Anzahl von unvorhersagbaren Weisen und/oder für irgendeine Anzahl von Zwecken verwendet werden können, können einige Benutzer wünschen, Veränderungen an den Werkseinstellungen oder Werkswerten der ECU durchzuführen, um die zugehörige Kalibrierung gemäß ihren speziellen Interessen zuzuschneiden.
-
Die Veränderung der Werkskalibrierungseinstellungen und/oder Werkskalibrierungswerte einer ECU mit nicht vom OEM erzeugten Werten, wahlweise nachdem die Trägervorrichtung das Werk verlässt, kann als Leistungsabstimmung betrachtet werden. Die Leistungsabstimmung kann beispielsweise stattfinden, wenn Veränderungen durch einen Käufer der Vorrichtung gemäß seinen speziellen Interessen und Bedürfnissen implementiert werden, was in einigen Fällen zu einer typischerweise allgemeineren Werkskalibrierung der ECU gegenteilig sein kann. Im Gegensatz zu der Werkskalibrierung, die auf Medianwerten beruht, kann ein Käufer beispielsweise wünschen, die Kalibrierung auf Werte hinsichtlich der Leistung abzustimmen, die vom Median weiter weg sind, wie z. B. bei der Verwendung von extremeren Kalibrierungswerten. Während der OEM der Vorrichtung und/oder der ECU wünschen kann, diesen Typ von Leistungsabstimmung für seine Kunden zu ermöglichen, können den Kunden das erforderliche Verständnis oder die erforderlichen Fähigkeiten zum Auswählen von geeigneten Kalibrierungswerten fehlen. Selbst wenn Personen die erforderliche Sachkenntnis haben können, kann ihnen trotzdem das Gesamtbewusstsein dessen fehlen, wie die kalibrierbaren Werte korrekt einzustellen sind, um entsprechende Einflüsse auf die Trägervorrichtung und/oder andere abhängige Systeme zu berücksichtigen.
-
ZUSAMMENFASSUNG
-
Ein nicht einschränkender Aspekt der vorliegenden Offenbarung zieht die Programmierung einer elektronischen Steuereinheit (ECU) in Betracht, um die Leistungsabstimmung zu erleichtern. Die Leistungsabstimmung kann umfassen, dass ein Endverwender oder eine andere Person mit Fähigkeiten versehen wird, kalibrierbare Werte der ECU einzustellen. Die Leistungsabstimmung kann Einschränkungen und Grenzen in dem Grad oder Bereich von zulässigen Variationen in den kalibrierbaren Werten umfassen. Diese Grenzen können bei einem Versuch ausgewählt werden, sicherzustellen, dass irgendein resultierender Betriebseinfluss auf die Trägervorrichtung und/oder ein anderes abhängiges System innerhalb angemessener Entwurfsparameter liegt, z. B. um die Leistungsabstimmung gemäß geeigneten Betriebsgrenzen einzuschränken.
-
Hier wird ein Verfahren für die Leistungsabstimmung einer elektronischen Steuereinheit (ECU) offenbart. Das Verfahren kann das Bestimmen von einem oder mehreren abstimmbaren Werten umfassen, die auf einem abstimmbaren Implementierungsspeicher der ECU gespeichert sind, wobei die abstimmbaren Werte abstimmbare Kalibrierungsdaten für die Leistungsabstimmung festlegen. Das Verfahren kann ferner das Bestimmen der abstimmbaren Werte und eines granularen Sicherheitskontrolleinstellungs-Autorisierungsetiketts (G-SCAAT), das auf der ECU gespeichert ist, als jeweils eines von gültig und ungültig umfassen. Das Verfahren umfasst noch ferner das Steuern einer Anwendungs-Software der ECU zur Ausführung gemäß den abstimmbaren Kalibrierungsdaten, die auf dem abstimmbaren Implementierungsspeicher gespeichert sind, wenn sowohl die abstimmbaren Werte als auch das G-SCAAT gültig sind, ansonsten das Steuern der Anwendungs-Software zur Ausführung unabhängig von den abstimmbaren Kalibrierungsdaten und gemäß Werkskalibrierungsdaten, die auf einem Kalibrierungsspeicher der ECU gespeichert sind.
-
Das Verfahren kann das Bestimmen der abstimmbaren Werte als gültig, wenn sie innerhalb Grenzen liegen, die in einem abstimmbaren Einschränkungsspeicher der ECU festgelegt sind, ansonsten das Bestimmen der abstimmbaren Werte als ungültig umfassen.
-
Das Verfahren kann das Bestimmen der abstimmbaren Werte als Funktion einer Informationseingabe in ein Programmierwerkzeug umfassen, wobei das Programmierwerkzeug dazu konfiguriert sein kann, die ECU mit einem Benutzer über eine Schnittstelle zu koppeln und die abstimmbaren Werte auf dem abstimmbaren Implementierungsspeicher zu speichern.
-
Das Verfahren kann das Übertragen eines negativen Antwortcodes (NRC) von der ECU zum Programmierwerkzeug umfassen, wenn die abstimmbaren Werte als ungültig bestimmt werden.
-
Das Verfahren kann das Auswählen der abstimmbaren Kalibrierungsdaten, die für die Leistungsabstimmung verfügbar sind, gemäß einer oder mehreren Berechtigungen, die im G-SCAAT festgelegt sind, umfassen.
-
Das Verfahren kann das Bestimmen des G-SCAAT als ungültig in Reaktion darauf, dass das G-SCAAT abläuft und/oder gelöscht wurde, umfassen.
-
Das Verfahren kann das Bestimmen des G-SCAAT als ungültig in Reaktion darauf, dass ein Optionsbit, das als Teil des G-SCAAT enthalten ist, auf einen ersten Wert gesetzt ist, umfassen.
-
Das Verfahren kann das Bestimmen des G-SCAAT als ungültig in Reaktion darauf, dass ein G-SCAAT-Erzeugungszählwert, der als Teil des G-SCAAT enthalten ist, nicht größer ist als ein Kontrollabteilungserzeugungszählwert, der von einer Kontrollabteilung zur ECU übertragen wird, umfassen. Der G-SCAAT-Erzeugungszählwert kann ein frei laufender Wert sein.
-
Das Verfahren kann das Bestimmen des G-SCAAT als ungültig in Reaktion darauf, dass ein G-SCAAT-Ablaufzählwert, der als Teil des G-SCAAT enthalten ist, nicht geringer ist als ein Kontrollabteilungsablaufzählwert, der von einer Kontrollabteilung zur ECU übertragen wird, umfassen. Der G-SCAAT-Ablaufzählwert kann ein vordefinierter Wert sein.
-
Das Verfahren kann das Bestimmen des G-SCAAT als ungültig in Reaktion darauf, dass ein Herstellungsfreigabezähler (MEC) der ECU null ist und ein Optionsbit, das als Teil des G-SCAAT enthalten ist, auf einen zweiten Wert gesetzt ist, umfassen.
-
Das Verfahren kann das Bestimmen des G-SCAAT als ungültig in Reaktion darauf, dass ein Herstellungsfreigabezähler (MEC) der ECU größer ist als null und ein Optionsbit auf einen dritten Wert gesetzt ist, umfassen.
-
Das Verfahren kann das Bestimmen des G-SCAAT als ungültig in Reaktion darauf, dass ein G-SCAAT-Zündzählwert, der als Teil des G-SCAAT enthalten ist, größer ist als null und ein ECU-Zündzählwert der ECU 0 ist, umfassen.
-
Das Verfahren kann das Bestimmen des G-SCAAT als ungültig in Reaktion darauf, dass ein Nicht-Vorher-Identifizierer (NBID), der als Teil des G-SCAAT enthalten ist, größer ist als ein ECU-NBID der ECU, umfassen.
-
Das Verfahren kann das Bestimmen des G-SCAAT als ungültig in Reaktion darauf, dass ein ECU-Nachrichtenauthentifizierungscode (MAC) nicht einem G-SCAAT-MAC entspricht, umfassen. Die ECU kann den ECU-MAC durch Signieren des G-SCAAT mit einem gemeinsamen Geheimnis erzeugen. Eine Kontrollabteilung kann den G-SCAAT-MAC durch Signieren des G-SCAAT mit dem gemeinsamen Geheimnis erzeugen.
-
Das Verfahren kann das Umgehen einer Authentizitätsprüfung umfassen, um die abstimmbaren Werte für die Speicherung auf dem abstimmbaren Implementierungsspeicher zu programmieren. Die Authentizitätsprüfung kann die auf dem Kalibrierungsspeicher gespeicherten Werkskalibrierungsdaten ändern oder umprogrammieren müssen.
-
Hier wird ein Verfahren für die Leistungsabstimmung einer elektronischen Steuereinheit (ECU) offenbart. Das Verfahren kann das Bestimmen von einem oder mehreren abstimmbaren Werten, die auf einem abstimmbaren Implementierungsspeicher der ECU gespeichert sind, umfassen. Das Verfahren kann ferner das Bestimmen der abstimmbaren Werte als gültig, wenn sie innerhalb Grenzen liegen, die in einem abstimmbaren Einschränkungsspeicher der ECU festgelegt sind, ansonsten das Bestimmen der abstimmbaren Werte als ungültig umfassen. Das Verfahren kann ferner das Steuern einer Anwendungs-Software der ECU zur Ausführung gemäß den abstimmbaren Werten, wenn die abstimmbaren Werte gültig sind, ansonsten das Steuern der Anwendungs-Software zur Ausführung unabhängig von den abstimmbaren Werten gemäß Werkswerten, die auf einem Kalibrierungsspeicher der ECU gespeichert sind, umfassen.
-
Das Verfahren kann das Auswählen der abstimmbaren Werte, die für die Leistungsabstimmung verfügbar gemacht werden, gemäß einer oder mehreren Berechtigungen, die in einem granularen Sicherheitskontrolleinstellungs-Autorisierungsetikett (G-SCAAT) gespeichert sind, das auf der ECU gespeichert ist, umfassen.
-
Das Verfahren kann das Bestimmen der abstimmbaren Werte als Funktion von Informationen umfassen, die in ein Programmierwerkzeug eingegeben werden, wobei das Programmierwerkzeug dazu konfiguriert ist, die ECU über eine Schnittstelle mit einem Benutzer zu koppeln.
-
Hier wird ein Verfahren für die Leistungsabstimmung einer elektronischen Steuereinheit (ECU) offenbart. Das Verfahren kann das Auswählen von einer oder mehreren Partitionen eines abstimmbaren Implementierungsspeichers der ECU umfassen, um abstimmbare Werte für die Leistungsabstimmung zu empfangen. Die Partitionen können gemäß Berechtigungen ausgewählt werden, die in einem granularen Sicherheitskontrolleinstellungs-Autorisierungsetikett (G-SCAAT) festgelegt sind, das auf der ECU installiert ist. Das Verfahren kann ferner das Steuern einer Anwendungs-Software der ECU zur Ausführung gemäß den abstimmbaren Werten, wenn sowohl die abstimmbaren Werte als auch das G-SCAAT gültig sind, ansonsten das Steuern der Anwendungs-Software zur Ausführung unabhängig von den abstimmbaren Werten umfassen.
-
Das Verfahren kann das Bestimmen der abstimmbaren Werte als gültig, wenn sie innerhalb Grenzen liegen, die in einem abstimmbaren Einschränkungsspeicher der ECU festgelegt sind, ansonsten das Bestimmen der abstimmbaren Werte als ungültig umfassen.
-
Die obigen Merkmale und Vorteile zusammen mit anderen Merkmalen und Vorteilen der vorliegenden Lehren sind aus der folgenden ausführlichen Beschreibung der Arten zur Ausführung der vorliegenden Lehren in Verbindung mit den begleitenden Zeichnungen leicht ersichtlich. Es sollte selbstverständlich sein, dass, selbst wenn die folgenden Ausführungsformen der Figuren separat beschrieben werden können, einzelne Merkmale davon zu zusätzlichen Ausführungsformen kombiniert werden können.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die begleitenden Zeichnungen, die in diese Patentbeschreibung eingegliedert sind und einen Teil davon bilden, stellen Implementierungen der Offenbarung dar und dienen zusammen mit der Beschreibung zum Erläutern der Prinzipien der Offenbarung; es zeigen:
- 1 ein Funktionsdiagramm eines Systems, das zur Leistungsabstimmung konfiguriert ist, gemäß einem nicht einschränkenden Aspekt der vorliegenden Offenbarung;
- 2 ein Funktionsdiagramm einer elektronischen Steuereinheit (ECU) gemäß einem nicht einschränkenden Aspekt der vorliegenden Offenbarung;
- 3 einen Ablaufplan eines Verfahrens zur Leistungsabstimmung gemäß einem nicht einschränkenden Aspekt der vorliegenden Offenbarung;
- 4 einen Ablaufplan für einen ersten Validierungsprozess gemäß einem nicht einschränkenden Aspekt der vorliegenden Offenbarung;
- 5 einen Ablaufplan für einen zweiten Validierungsprozess gemäß einem nicht einschränkenden Aspekt der vorliegenden Offenbarung;
- 6 einen Ablaufplan für einen dritten Validierungsprozess gemäß einem nicht einschränkenden Aspekt der vorliegenden Offenbarung; und
- 7 einen Ablaufplan für einen Leistungsabstimmungsprozess gemäß einem nicht einschränkenden Aspekt der vorliegenden Offenbarung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Wie erforderlich, werden hier ausführliche Ausführungsformen der vorliegenden Offenbarung offenbart; es soll jedoch selbstverständlich sein, dass die offenbarten Ausführungsformen lediglich beispielhaft für die Offenbarung sind, die in verschiedenen und alternativen Formen verkörpert sein kann. Die Figuren sind nicht notwendigerweise maßstäblich; einige Merkmale können übertrieben oder minimiert sein, um Details von speziellen Komponenten zu zeigen. Daher sollen spezielle Struktur- und Funktionsdetails, die hier offenbart sind, nicht als Begrenzung, sondern lediglich als repräsentative Basis zum Lehren eines Fachmanns auf dem Gebiet, die vorliegende Offenbarung verschiedenartig einzusetzen, interpretiert werden.
-
1 ist ein Funktionsdiagramm eines Systems 10, das für eine Leistungsabstimmung konfiguriert ist, gemäß einem nicht einschränkenden Aspekt der vorliegenden Offenbarung. Das System 10 wird überwiegend mit Bezug auf das Erleichtern der Leistungsabstimmung für eine elektronische Steuereinheit (ECU) 12, die an einem Kraftfahrzeug (Trägervorrichtung) enthalten ist, für beispielhafte Zwecke beschrieben, da die vorliegende Offenbarung vollständig ihre Verwendung und Anwendung in anderen Leistungsabstimmungsvorrichtungen als ECU 12 sowie ECU 12, die innerhalb anderen Vorrichtungen als Kraftfahrzeugen enthalten sind, in Betracht zieht. Das System 10 kann gemäß Wechselwirkungen zwischen einem Programmierwerkzeug 14, einer Kontrollabteilung 16 und der ECU 12 arbeiten, wobei jedes zusammenwirkt, um die Leistungsabstimmung gemäß den Prozessen und Methodologien zu erleichtern, die hier in Betracht gezogen werden. Jedes kann einen Prozessor umfassen, der zum Ausführen von nichttransitorischen Anweisungen konfiguriert ist, die auf einem enthaltenen Speicher gespeichert sind, um die verschiedenen Operationen, Funktionen und Aktivitäten zu erleichtern, die hier beschrieben sind, und ebenso kann jedes geeignete Schnittstellen, Verbindungen, Kommunikationsfähigkeiten usw. umfassen, die erforderlich sind, um die hier in Betracht gezogenen Prozesse und Operationen zu implementieren.
-
Die Kontrollabteilung 16 kann als vertrauenswürdige Autorität betrachtet werden, wie z. B. eine unter der Steuerung oder Leitung eines Originalgeräteherstellers (OEM) der Trägervorrichtung oder einer anderen Entität, die mit dem Validieren von weichen Teilen für die Aktualisierung und/oder das Erzeugen von granularen Sicherheitskontrolleinstellungs-Autorisierungsetiketten (G-SCAATs) 20 beauftragt ist, um die Leistungsabstimmung zu erleichtern. Die Kontrollabteilung 16 kann eine Datenbank 22 umfassen, die in der Lage ist, G-SCAATs 20, weiche Teile, Software-Installationen usw. mit ECU-Identifizierern (IDs) zu speichern und quer darauf zu verweisen, so dass die Kontrollabteilung 16 effektiv eine aktuelle Version jedes G-SCAAT 20 unterhalten kann, das für jede ECU 12 autorisiert ist. Jedes G-SCAAT 20 kann aus ECU-IDs, Modul-IDs, Teilenummern usw. bestehen oder anderweitig diesen zugeordnet sein, um die Verwendung davon mit Dateien, Datensätzen oder anderem Inhalt mit der Software, dem Code, der Programmierung usw. zu koordinieren. Die G-SCAATs 20 können in die ECU 12 mit einer entsprechenden Datei oder Struktur programmiert werden, die zur ECU 12 übertragen werden kann und auf die durch diese eingewirkt werden kann, um die hier in Betracht gezogene Leistungsabstimmung zu erleichtern. Die Kontrollabteilung 16 kann ein Portal 24 oder eine andere Schnittstelle, z. B. Website, umfassen, die dazu konfiguriert ist, Anforderungsmeldungen von Käufern oder anderen Personen zu empfangen, und auf der Basis dessen wie z. B. gemäß enthaltenen Berechtigungsnachweisen Rollen und/oder andere Einschränkungen zum Definieren und Zuweisen eines G-SCAAT 20 zum anfordernden Benutzer auszuwählen.
-
Das Programmierwerkzeug 14 kann mit der Kontrollabteilung 16 zusammenwirken, um die Leistungsabstimmung der ECU 12 gemäß Genehmigungen, Berechtigungen und anderen Einschränkungen zu erleichtern, die in einem entsprechenden der G-SCAATs 20 definiert sind. Das Programmierwerkzeug 14 kann einer Vorrichtung mit Fähigkeiten entsprechen, die ausreichen, um mit der ECU 12 zusammenzuwirken. Das Programmierwerkzeug 14 kann beispielsweise einem eigenständigen Tester entsprechen, der mit einem Netz oder direkt mit der ECU 12 verbunden werden kann. Der Tester kann im Fall eines Fahrzeugs mit einem Fahrzeugnetz in Kommunikation mit der ECU 12 verbinden und/oder der Tester kann direkt in eine Buchse oder Schnittstelle der ECU 12 einstecken. Das Programmierwerkzeug 14 kann wahlweise, anstatt dass es ein unabhängiger Tester ist, innerhalb eines Moduls oder einer anderen ECU enthalten sein, z. B. kann eine ECU als Programmierwerkzeug für eine andere ECU wirken. Das Programmierwerkzeug 14 kann auch entfernt von der Vorrichtung mit der ECU 12 angeordnet sein, um drahtlose Aktualisierungen oder Aktualisierungen über die Luft (OTA) zu erleichtern. Das Programmierwerkzeug 14 kann eine Benutzerschnittstelle oder eine Mensch-Maschine-Schnittstelle (HMI) umfassen, um die Wechselwirkung mit einem Administrator zu erleichtern, wenn dies erforderlich ist, zum Eingeben von Informationen und Befehlen, die vom Benutzer abhängigen Aspekten der Erleichterung einer Aktualisierung zugeordnet sind.
-
Das Programmierwerkzeug 14 kann ein allgemeiner Gegenstand oder nicht spezifisch für die ECU 12 oder die Trägervorrichtung insofern sein, als es erfordern kann, dass Informationen, Dateien und andere Daten darauf geladen werden. Die Kontrollabteilung 16 kann beispielsweise das Programmierwerkzeug 14 mit einer Dienstprogrammdatei mit dem G-SCAAT 20 und/oder anderen Informationen, die auf die ECU 12 geladen oder anderweitig programmiert werden sollen, versehen. Die Dienstprogrammdatei 28 kann eine Kopie der Software, von Kalibrierungstabellen, einer Codierung usw., die den G-SCAATs 20 zugeordnet ist, und/oder andere Datensätze umfassen, die zur ECU 12 geliefert werden sollen, um die hier in Betracht gezogene Leistungsabstimmung zu erleichtern. Die Dienstprogrammdatei 28 kann auf dem Programmierwerkzeug 14 gespeichert oder anderweitig zu diesem geliefert werden, wie z. B. von der Kontrollabteilung 16 durch verdrahtete oder drahtlose Kommunikationen. Ein Aspekt der vorliegenden Offenbarung zieht in Betracht, dass das Programmierwerkzeug 14 durch Fahrzeugtechniker oder Fahrzeugeigentümer verwendet wird, während sie an der Trägervorrichtung arbeiten. Der Bedarf, ein separates Programmierwerkzeug 14 zu haben oder das Programmierwerkzeug 14 vorab zu laden, kann natürlich nicht erwünscht sein, insbesondere da der Umfang der drahtlosen Kommunikationen zunimmt, so dass einige oder alle hier beschriebenen Wechselwirkungen direkt zwischen der Kontrollabteilung 16 und der ECU 12 durch verdrahtete oder drahtlose Signalisierung stattfinden können.
-
2 stellt ein Funktionsdiagramm der ECU 12 gemäß einem nicht einschränkenden Aspekt der vorliegenden Offenbarung dar. Die ECU 12 kann eine Schnittstelle 40 umfassen, die dazu konfiguriert ist, das Austauschen von Signalen, Nachrichten usw. mit dem Programmierwerkzeug 14, der Kontrollabteilung 16 und/oder abhängigen Systemen zu erleichtern. Die Schnittstelle 40 kann entsprechende Merkmale umfassen, die dazu konfiguriert sind, die zugehörigen Kommunikationen zu erleichtern, einschließlich einer Baugruppe, die ausreicht, um verdrahtete und/oder drahtlose Austauschvorgänge zu erleichtern. Die ECU 12 kann einen Prozessor 42 umfassen, der dazu konfiguriert ist, die ECU 12 gemäß der Ausführung von nichttransitorischen Anweisungen zu steuern, die auf einem enthaltenen computerlesbaren Speichermedium 44 gespeichert sind. Das Speichermedium 44 ist für beispielhafte, nicht einschränkende Zwecke als in eine normale Zone 48 und eine gesicherte Zone 50 unterteilt gezeigt. Die normale Zone 48 kann einem flüchtigen und/oder nichtflüchtigen Speicher entsprechen, der dazu konfiguriert ist, zu ermöglichen, dass darauf gespeicherte Daten aktualisiert, gelöscht oder anderweitig manipuliert werden, wahlweise in Abhängigkeit davon, ob der entsprechende Handelnde bestimmte Sicherheitsprotokolle erfüllt hat. Die gesicherte Zoen 50 kann eine Firmware abarbeiten und eine Datenspeicherung unterstützen, die derart konfiguriert sein kann, dass Firmware und Daten, die darauf gespeichert sind, im flüchtigen und/oder nichtflüchtigen Speicher dauerhaft und/oder effektiv außerstande sein können, direkt von externen Funktionen oder Quellen geändert zu werden.
-
Ein nicht einschränkender Aspekt der vorliegenden Offenbarung zieht in Betracht, dass die ECU 12 einen Boot-Lader, einen Boot-Manager, einen Bootstrap-Lader, ein Steuerprogramm oder ein anderes Gebilde 54 umfasst, um das Laden oder anderweitige Vorbereiten der ECU 12 auf den Betrieb zu erleichtern. Der Boot-Lader 54 kann dazu konfiguriert sein, beim Einschalten oder einer anderen Initialisierung der ECU 12 für Zwecke der Instanziierung einer Anwendungs-Software, die auf einem Anwendungsspeicher 58 gespeichert ist, auszuführen. Die Anwendungs-Software kann dazu konfiguriert sein, Operationen der ECU 12 zu steuern. Der Boot-Lader 54 kann eine Steuer-Software und/oder andere Steuerlogik umfassen, die dazu konfiguriert ist, das Steuern der Instanziierung der Anwendungs-Software zu erleichtern, und/oder zum Durchführen von anderen Operationen, die in Betracht gezogen werden oder erforderlich sind, um die hier beschrieben Leistungsabstimmung zu ermöglichen. Der Boot-Lader 54 ist folglich in einer nicht einschränkenden Weise dargestellt, um ein Funktionsmerkmal der ECU 12 darzustellen, das dazu konfiguriert ist, die hier in Erwägung gezogenen Operationen zu erleichtern. Der Boot-Lader 54 kann als separat von der Anwendungs-Software arbeitend in der Hinsicht betrachtet werden, als er verwendet werden kann, um die hier in Betracht gezogenen Operationen für die Leistungsabstimmung der Anwendungs-Software sowie zum Lenken von anderen Operationen, die erforderlich sind, um die ECU 12 gemäß Befehlen der Anwendungs-Software zu steuern, zu erleichtern.
-
Die Anwendungs-Software kann beispielsweise dazu konfiguriert sein, das Steuern von abhängigen Systemen, das Durchführen von Berechnungen oder das anderweitige Ausführen von Prozessen, die der ECU 12 zugewiesen sind, zu erleichtern. Die ECU 12 kann dazu konfiguriert sein, eine Anzahl von Steuerungen durchzuführen, insbesondere wenn sie innerhalb eines Kraftfahrzeugs enthalten ist, wodurch die entsprechende Steuerung gemäß Algorithmen, einer Programmierung, Logik usw. erzeugt werden kann, die innerhalb der Anwendungs-Software enthalten ist, die das zugehörige Management der ECU 12 erleichtert. Die Anwendungs-Software kann auf dem normalen Speicher 48 innerhalb eines Bereichs von Speicherpartitionen gespeichert sein, die gemäß einem oder mehreren Modul-IDs separat identifizierbar sind, die dazu konfiguriert sind, zugehörige Cluster von Speicherpartitionen logisch zu identifizieren. Die Modul-IDs, d. h. die Abschnitte des normalen Speichers 48 mit der Anwendungs-Software, können verwendet werden, um den Anwendungsspeicherabschnitt 58 des Speichers 44 oder einen Abschnitt des normalen Speichers 48 darzustellen, der aktiv dazu konfiguriert ist, die Anwendungs-Software zu erleichtern. Ein nicht einschränkender Aspekt der vorliegenden Offenbarung zieht zumindest einige der ECU-Operationen in Betracht, die unter der Leitung der Anwendungs-Software ausgeführt werden, die zumindest teilweise auf Kalibrierungsdaten basieren.
-
Die Kalibrierungsdaten können in einem Kalibrierungsspeicher 60 als mehrere Werte gespeichert sein, die für entsprechende mehrere Kalibrierungsparameter festgelegt sind, die verschiedenen Aspekten der Anwendungs-Software zugeordnet sind, d. h. Werten zugeordnet sind, die für verschiedene Berechnungen, Logik, Steuerungen usw. verwendet werden, die mit der ECU 12 unternommen werden sollen. Einer oder mehrere der Kalibrierungsparameter können in der Hinsicht kalibrierbar sein, dass Werte, die verwendet werden, um den Einfluss davon zu definieren, von einem Wert auf einen anderen Wert einstellbar sein können, um einen resultierenden Einfluss auf die Anwendungs-Software zu induzieren. Die Kalibrierungsdaten können entsprechend als mehrere Kalibrierungsparameter mit einem oder mehreren kalibrierbaren Werten definiert sein, die festgelegt werden können, um einen entsprechenden Einfluss über die Ausführung der Anwendungs-Software zu induzieren. Die Kalibrierungsdaten oder spezieller die Werte, die verwendet werden, um den Einfluss davon darzustellen, können verschiedene Formen annehmen und gemäß verschiedenen Strukturen vorgesehen sein, wie z. B. in Form von Tabellen, alphanumerischen Zeichen, Programmierung/Sprache usw.
-
Die kalibrierbaren Werte können zumindest mit Bezug auf die Leistungsabstimmung von einem Wert zu einem anderen Wert oder von einem Datenelement zu einem anderen Datenelement für Zwecke des Induzierens eines entsprechenden Einflusses auf eine zugehörige Operation der Anwendungs-Software geändert werden. Ein nicht einschränkender Aspekt der vorliegenden Offenbarung zieht das Ermöglichen, dass ein Käufer, ein Eigentümer oder eine andere Entität, wie z. B. ein Server über die Luft (OTA) an der Kontrollabteilung, eine Leistungsabstimmung dieses Typs unternimmt, in Betracht, wodurch die Leistungsabstimmung als Änderung von einem oder mehreren der kalibrierbaren Werte von einem Wert zu einem anderen Wert gekennzeichnet sein kann. Diese Leistungsabstimmung, d. h. Änderung der Kalibrierungswerte von einem Wert zu einem anderen, kann eine Programmierung oder anderweitiges Überschreiben eines Abschnitts des Speichers 48 mit dem einen oder den mehreren vorher gespeicherten Werten erfordern. Die Programmierung kann mit dem Boot-Lader 54 oder der Steuer-Software, die dem Boot-Lader 54 zugeordnet ist, erleichtert werden. Der Boot-Lader 54 kann wegen der Erläuterung dazu konfiguriert sein, das Hinzufügen und Entfernen von Daten zum und vom Speicher 44 gemäß den Sicherheitsprotokollen, die dem zugehörigen Speicher zugeordnet sind, und danach das Initialisieren der ECU 12, um dementsprechend zu wirken, zu steuern.
-
Der Boot-Lader 54 kann eine Authentizitätsprüfung vor dem Erlauben von Änderungen an den Daten, kalibrierbaren Werten usw., die auf dem Speicher 44 gespeichert sind, erfordern. Die Authentizitätsprüfung kann einem Verifizierungsprozess entsprechen, wodurch eine digitale Signatur für die Daten, Software usw., die hinzugefügt und/oder geändert werden sollen, vor dem Erlauben der Speicherung auf der ECU 12 verifiziert werden kann. Die Authentizitätsprüfung kann das Signieren und Verifizieren einer Gesamtheit des Codes, der Software, der Daten usw. mit einer digitalen Signatur vor dem Erlauben ihrer Speicherung auf der ECU 12 erfordern. Im Fall der Durchführung von Änderungen an der Anwendungs-Software und/oder den Kalibrierungsdaten kann die Authentizitätsprüfung erfordern, dass Änderungen digital signiert werden und dass der ganze Satz des Codes, der darauf beruht, auch digital signiert und verifiziert wird, z. B. nach jeder Änderung kompiliert wird. Das wiederholte Signieren und Verifizieren solcher ECU-Aktualisierungen kann mühselig und zeitraubend sein, insbesondere wenn Aktualisierungen für die Verwendung bei der ECU 12 entwickelt, getestet oder auf Fehler durchsucht werden. Die Authentifizierungsprüfung kann beispielsweise erfordern, dass ein Administrator mühselige Prozesse zum Erzeugen und dann Verifizieren von digitalen Signaturen jedes Mal unternimmt, wenn irgendeine Art von Änderung erwünscht ist, egal wie klein sie ist, was insbesondere beschwerlich sein kann, wenn der Administrator verschiedene Wertkombinationen wiederholt testen müssen kann, bevor er zu einer geeigneten Kombination von Werten gelangt.
-
Ein nicht einschränkender Aspekt der vorliegenden Offenbarung zieht in Betracht, dass der Boot-Lader 54 dazu konfiguriert ist, eine Umgehungsoperation durchzuführen, um die Authentizitätsprüfung unter bestimmten Umständen zu umgehen. Wenn sie implementiert wird, kann die Umgehungsoperation dem entsprechen, dass der Boot-Lader 54 ermöglicht, dass auswählbare Partitionen oder Abschnitte des Speichers programmiert, geändert, eingestellt usw. werden, ohne zu erfordern, dass die Änderungen, der Speicher, die Partitionen oder die entsprechende Software, Datei usw. digital signiert und/oder verifiziert werden. Die Umgehungsoperation kann stattdessen verwendet werden, um zu ermöglichen, dass ein Benutzer Änderungen an bestimmten Abschnitten des Speichers 44 durchführt, ohne entsprechende digitale Signaturen der ganzen betroffenen Software oder Codierung zu erfordern. Dies kann beim Ermöglichen, dass ein Operator Versuchs- und Testprozesse (Leistungsabstimmung) durchführt, vorteilhaft sein, wodurch die Kalibrierungsparameter inkremental geändert und getestet werden können, ohne die mühseligeren Prozesse der Authentizitätsprüfung unternehmen zu müssen. Die Umgehungsoperation kann ermöglichen, dass der Boot-Lader 54 mit dem Programmierwerkzeug 14 zusammenwirkt, um die kalibrierbaren Werte zu empfangen oder die Kalibrierungsdaten anderweitig abzustimmen, und danach diese Werte in den Speicher 48 für Zwecke des Induzierens von entsprechenden Änderungen im Betrieb der Anwendungs-Software programmiert. Der Boot-Lader 54 kann dazu konfiguriert sein, die Kalibrierungswerte für die Speicherung auf dem Kalibrierungsspeicher zu kompilieren oder anderweitig zu verarbeiten, und danach die Anwendungs-Software anzuweisen, die Verarbeitung zu beginnen.
-
Die Umstände, die für die Umgehungsoperation geeignet sind, können innerhalb einer Genehmigung oder von Berichtigungen definiert werden, die dem G-SCAAT 20 zugeordnet sind. Das G-SCAAT 20 kann auf die ECU 12 geladen und dort installiert werden, wahlweise nach einer Freischalt- oder anderen Sicherheitsmaßnahme. Die Freischaltung kann beispielsweise einem vereinheitlichten Diagnosedienst (UDS) oder einem anderen geeigneten Diagnosekommunikationsprotokoll entsprechen, das dazu konfiguriert ist, die ECU gemäß einer Anforderungs-Antwort-Strategie auf Keimbasis freizuschalten, z. B. unter Verwendung eines Dienstidentifizierersicherheitszugriffs (SID-Sicherheitszugriffs), der dem Anforderungs-SID 0-27 und Antwort-SID 0x67 des UDS zugeordnet ist. Diese Strategie kann einen Authentifizierungsprozess schaffen, wodurch die ECU 12 einen Keim erzeugt und zum Programmierwerkzeug 14 überträgt, den das Programmierwerkzeug 14 dann in Reaktion verwendet, um einen Schlüssel zu erzeugen und zur ECU 12 zurück zu übertragen, wobei wahlweise das Programmierwerkzeug 14 zugehörige Nachrichten mit der Kontrollabteilung 16 austauscht. Die ECU 12 kann dann das Programmierwerkzeug 14 authentifizieren, um das G-SCAAT 20 zu laden und/oder Aktualisierungen an der ECU 12 durchzuführen, in Abhängigkeit davon, ob die Verwendung eines kryptographischen Antwortschlüssels dem zugehörigen Schlüssel der ECU 12 entspricht. Weitere Sicherheitsmaßnahmen, wie z. B. Erfordern, dass die Kontrollabteilung 16 zusätzliche Authentifizierungsdaten und/oder die Verwendung von Nachrichtenauthentifizierungscodes (MACs) bereitstellt, können auch allein und/oder in Kombination mit der Anforderung-Antwort auf Keimbasis verwendet werden, um die Freischaltung der ECU 12 für die Installation des G-SCAAT 20 zu erleichtern.
-
Das G-SCAAT 20 kann, sobald es auf dem Speicher 50 gespeichert ist, in Zusammenwirkung mit dem Boot-Lader 54 verwendet werden, um die Instanziierung der ECU 12 und der Anwendungs-Software beim Start und ansonsten das Steuern der ECU 12 vom Hochfahren, bis die Anwendungs-Software beginnt, zu erleichtern. Das G-SCAAT 20 kann eine statische Datei sein wie z. B. eine, die aus Klartext konstruiert ist, wobei der Boot-Lader 54 dazu konfiguriert sein kann, sie automatisch zu verarbeiten, sobald die ECU 12 eingeschaltet wird. Dies kann in Reaktion darauf stattfinden, dass die Trägervorrichtung und/oder die ECU 12 entsprechend von einem Zustand zu einem anderen überführt werden, was beispielsweise mit Zündereignissen eines Kraftfahrzeugs zusammenfallen kann. Das G-SCAAT 20 kann zumindest in dieser Weise dazu konfiguriert sein, Operationen des Boot-Laders 54 einzustellen, sobald das G-SCAAT 20 auf der ECU 12 installiert wird. Der Boot-Lader 54 kann wahlweise eine Signatur des G-SCAAT 20 prüfen oder einen anderen Typ von Verifizierung an dem G-SCAAT 20 vor dem Installieren oder anderweitigen Handeln gemäß den darin gespeicherten Informationen durchführen. Der Boot-Lader 54 kann auch wahlweise eine Logik oder andere Maßnahmen zum Ermitteln, ob die Anwendungs-Software gemäß den Einflüssen des G-SCAAT 20 initiiert werden soll oder ob er stattdessen das G-SCAAT 20 ignorieren und ohne seinen Einfluss ausführen sollte, wie z. B. gemäß vorher definierten Werkseinstellungen, umfassen.
-
3 stellt einen Ablaufplan 70 eines Verfahrens zur Leistungsabstimmung gemäß einem nicht einschränkenden Aspekt der vorliegenden Offenbarung dar. Das Verfahren kann zumindest teilweise innerhalb entsprechender nichttransitorischer Anweisungen verkörpert sein, die für die Ausführung an der Kontrollabteilung 16, am Programmierwerkzeug 14 und/oder an der ECU 12 oder einer anderen Entität in Kommunikation damit gespeichert sind. Das Verfahren wird für beispielhafte Zwecke mit Bezug auf die Leistungsabstimmung der ECU 12 beschrieben, da die vorliegende Offenbarung vollständig ihre Verwendung und Anwendung zum Erleichtern der Leistungsabstimmung von anderen Typen von Vorrichtungen in Betracht zieht. Die Leistungsabstimmung wird auch vorwiegend für beispielhafte Zwecke mit Bezug auf die Leistungsabstimmung beschrieben, die auf der Änderung von einem oder mehreren Werten beruht, die in einem abstimmbaren Implementierungsspeicher 72 (2) der ECU 12 gespeichert sind. Die im Implementierungsspeicher 72 gespeicherten abstimmbaren Werte können für die Verwendung mit der Anwendungs-Software zusätzlich zu oder anstelle der Werte im Kalibrierungsspeicher 60 konfiguriert sein, um das Steuern der Operation einer ECU 12 zu erleichtern.
-
Der Ablaufplan 70 stellt das Verfahren mit mehreren Blöcken 78, 80, 86, die entsprechenden mehreren Validierungsprozessen zugeordnet sind, die zum Validieren des G-SCAAT 20 konfiguriert sind, und einem Block 88, der der Leistungsabstimmung der ECU 12 zugeordnet ist, wahlweise nach einer Bestimmung der Gültigkeit des G-SCAAT 20, dar. Obwohl die vorliegende Offenbarung das Bewerten der G-SCAAT-Gültigkeit gemäß irgendeiner Anzahl von anderen Prozessen und Operationen vollständig in Betracht zieht, kann die dargestellte Gruppierung von Gültigkeitstests 78, 80, 86 beim Ermöglichen, dass einer oder mehrere der Validierungsprozesse weggelassen und/oder separat durchgeführt werden, vorteilhaft sein. Die dargestellte Gruppierung 78, 80, 86 kann mit anderen Worten verwendet werden, um einem Benutzer des G-SCAAT 20 zu ermöglichen, Bestanden-Durchgefallen-Abschnitte des Gültigkeitsprozesses in Abhängigkeit davon zu identifizieren, wenn die Ungültigkeitsbestimmung durchgeführt wird. Die dargestellte Gruppierung 78, 80, 86 wird für nicht einschränkende Zwecke dargestellt, da die vorliegende Offenbarung den Einschluss von mehr oder weniger des Ungültigkeitstests und der Durchführung des Ungültigkeitstests gemäß verschiedenen Sequenzen und Operationen vollständig in Betracht zieht.
-
4 stellt einen Ablaufplan 90 für den ersten Validierungsprozess 78 dar. Der Block 92 bezieht sich auf das Einschalten oder einen anderen Typ von Initialisierungsprozessen, die dem Starten der ECU 12 zugeordnet sind, wie z. B. ein Zündereignis, wodurch ein Kraftfahrzeug mit der ECU 12 aktiviert wird. Der Initialisierungsprozess 92 kann dem entsprechen, dass der Boot-Lader 54 und eine andere Steuer-Software, die als Teil der ECU 12 enthalten ist, die ECU 12 auf die Ausführung gemäß der Anwendungs-Software vorbereitet. Der Initialisierungsprozess 92 kann das Handeln gemäß Genehmigungen, Anweisungen, Berechtigungen usw. umfassen, die innerhalb des G-SCAAT 20 enthalten sind, und an sich kann der Initialisierungsprozess 92 nach einer Freischaltung oder anderen Prozessen stattfinden, die dem Laden des G-SCAAT 20 in den ECU-Speicher 44 zugeordnet sind. Der Initialisierungsprozess 92 kann das Festlegen eines G-SCAAT-Status, von Freischaltungsniveaus und einer SBI-Sicherheit anfänglich auf ungültig, Vorgabe, null oder andere primäre Werte umfassen. Diese anfänglichen Einstellungen können verwendet werden, um zu verhindern, dass der Boot-Lader 54 gemäß dem G-SCAAT 20 für Zwecke der Leistungsabstimmung handelt, bis der G-SCAAT-Status auf gültig geändert ist und/oder bis bestimmte Sicherheitsfreischaltungen und Steuerungen festgelegt sind. Der Boot-Lader 54 kann dazu konfiguriert sein, das G-SCAAT 20 zu ignorieren oder nicht zu beachten, bis der G-SCAAT-Status auf gültig gesetzt ist, und falls das G-SCAAT gelöscht oder entfernt wurde, den G-SCAAT-Status automatisch als ungültig aufrechtzuerhalten.
-
Der Block 94 bezieht sich auf einen Boot/Software-Kompatibilitäts-ID-Prozess (BCID-Prozess), der dem Prüfen, ob ein BCID für das G-SCAAT 20 auf der ECU 12 gespeichert ist und ob der BCID auf einen Vorgabewert gesetzt ist, zugeordnet ist. Der Boot-Lader 54 kann einen digital signierten Parameter, der während einer Programmierungssitzung bereitgestellt wird, als Vorprüfung verwenden, um zu überprüfen, ob die Anwendungs-Software mit der Boot-Lader-Software kompatibel ist, so dass ein BCID im Kopfabschnitt der Software mit dem BCID verglichen werden kann, der im Boot-Lader 54 gespeichert ist. Wenn die Werte übereinstimmen, dann können die Anwendungs-Software und die Boot-Lader-Software als kompatibel erachtet werden, und der Validierungsprozess kann zum nächsten Schritt fortfahren. Wenn die zwei Werte nicht übereinstimmen, dann kann die Anwendungs-Software als mit der ECU 12 inkompatibel erachtet werden und das G-SCAAT 20 kann entsprechend als ungültig erachtet werden.
-
Der Block 96 kann erreicht werden, um eine Neuheitsvalidierung des G-SCAAT 20 durchzuführen, wenn der BCID entweder dem gespeicherten Wert oder dem Vorgabewert entspricht, ansonsten kann das G-SCAAT 20 im Block 98 als ungültig bestimmt werden. Die Neuheitsvalidierung 96 kann dem Bestimmen, ob ein G-SCAAT-Flag, das auf der ECU 12 gespeichert ist, auf einen falschen Wert gesetzt wurde, ein Optionsbit, das als Teil des G-SCAAT 20 enthalten ist, auf einen ersten Wert gesetzt wurde, und ein G-SCAAT-Erzeugungszählwert, der als Teil des G-SCAAT 20 enthalten ist, größer ist als ein ECU-Erzeugungszählwert, der auf der ECU 12 gespeichert ist, entsprechen. Der Erzeugungszählwert kann ein frei laufender Zählerwert sein, der zu der Zeit gesetzt wird, zu der die Kontrollabteilung das G-SCAAT 20 erzeugt. Die ECU 12 kann dazu konfiguriert sein, den ECU-Erzeugungszähler durch Empfangen eines entsprechenden Werts als Teil der Anforderungs-Antwort-Strategie auf Keimbasis zu bestimmen, die verwendet wird, um das G-SCAAT 20 zu installieren.
-
Der Block 102 kann erreicht werden, um eine Ablaufvalidierung des G-SCAAT 20 durchzuführen, wenn entweder die falschen oder ersten Werte bestimmt werden oder der G-SCAAT-Erzeugungszählwert größer ist als der ECU-Erzeugungszählwert, ansonsten kann das G-SCAAT im Block 98 als ungültig bestimmt werden. Die Ablaufvalidierung 102 kann dem Bestimmen, ob ein G-SCAAT-Ablaufzählwert, der als Teil des G-SCAAT 20 enthalten ist, geringer ist als ein Kontrollabteilungs-G-SCAAT-Ablaufzählwert, der zur ECU 12 als Teil der Ablaufvalidierung übertragen wird, entsprechen. Im Gegensatz dazu, dass er ein frei laufender Zähler ist, kann der Ablaufzählwert auf einem gemeinsamen oder vorgegebenen Zähler, z. B. einem Kalenderdatum, basieren.
-
Der Block 106 kann sich auf den ersten Validierungsprozess beziehen, der das G-SCAAT als gültig bestimmt, wenn der G-SCAAT-Ablaufzählwert geringer ist als der Kontrollabteilungsablaufzählwert, ansonsten kann das G-SCAAT im Block 98 als ungültig bestimmt werden. 5 stellt einen Ablaufplan 110 für den zweiten Validierungsprozess 80 dar, der stattfinden kann, nachdem das G-SCAAT 20 im Block 106 als gültig bestimmt wird.
-
Der Block 114 kann sich auf eine Lebenszyklusvalidierung zum Bestimmen des G-SCAAT 20 als ungültig im Block 116 auf der Basis eines nicht reversiblen, dekrementierenden Zählers, wie z. B. eines Herstellungsfreigabezählers (MEC), beziehen. Der MEC kann dazu konfiguriert sein, von einem ausgewählten Wert auf 0x00 irreversibel abwärts zu zählen, woraufhin 0x00 irreversibel wird. Ein solcher MEC kann auf der Basis von Tagen usw. dekrementiert werden, so dass der Block 114 das G-SCAAT 20 als ungültig bestimmen kann, wenn der MEC null ist und ein Optionsbit, das als Teil des G-SCAAT 20 enthalten ist, auf einen zweiten Wert gesetzt ist, ansonsten wird zum Block 118 fortgefahren. Dies kann beispielsweise bei der Festlegung des MEC auf einen Lebenszyklus des Fahrzeugs nützlich sein, um gültige G-SCAATs auf jene einzuschränken, die für eine Werksunterstützung erzeugt werden, wodurch der MEC entsprechend so gesetzt werden kann, dass er abläuft, bevor das Fahrzeug an einen Kunden verkauft wird.
-
Der Block 118 kann sich auf eine zusätzliche Lebenszyklusvalidierung zum Bestimmen des G-SCAAT 20 als ungültig im Block 116 beziehen, wenn der MEC größer ist als null und ein Optionsbit auf einen dritten Wert gesetzt ist, ansonsten wird zum Block 120 fortgefahren. Dies kann beispielsweise nützlich sein, um gültige G-SCAATs 20 auf jene einzuschränken, die für Aktivitäten nach dem Verkauf geplant sind, d. h. Festlegen des MEC, um die Gültigkeit gemäß Aktivitäten nach der Herstellung zu definieren. Der zweite und der dritte Wert können in dieser Weise verwendet werden, um es zu erleichtern zu bestimmen, wie der MEC die Validierung beeinflusst, z. B. kann der zweite Wert gesetzt werden, wenn es erwünscht ist, dass der MAC größer ist als null, um ein gültiges G-SCAAT 20 zu haben, und der dritte Wert kann gesetzt werden, wenn es erwünscht ist, dass der MAC null ist, um ein gültiges G-SCAAT 20 zu haben. Die Fähigkeit, die entsprechenden Parameter mit zugehörigen Werten, die im G-SCAAT 20 enthalten sind, zu setzen, kann beim Ermöglichen, dass die Kontrollabteilung 16 den Umfang und die Dauer von G-SCAATs 20 gemäß gewünschten Ereignissen begrenzt, vorteilhaft sein.
-
Der Block 120 kann sich auf eine Zündzyklusvalidierung zum Bestimmen des G-SCAAT 20 als ungültig im Block 116 beziehen, wenn ein G-SCAAT-Zündzählwert, der im G-SCAAT festgelegt ist, größer ist als null und ein ECU-Zündzählwert, der der ECU zugeordnet ist, null ist, ansonsten wird zum Block 122 fortgefahren. Der Zündzählwert kann ein nicht reversibler, dekrementierender Zähler sein, der gemäß Zündzyklen der Trägervorrichtung (z. B. Fahrzeug) gesetzt wird, so dass das G-SCAAT 20 als ungültig erachtet werden kann, wenn das G-SCAAT einen größeren Zündzählwert als null angibt, während der aktuelle Zündzählwert des Fahrzeugs, d. h. der bei der ECU registrierte Zählwert, null ist. Diese Validierung kann beispielsweise beim Verhindern der Verwendung eines G-SCAAT anders als während Situationen, in denen der Zündzählwert größer ist als null, nützlich sein.
-
Der Block 122 kann sich auf eine zusätzliche zeitliche Validierung zum Bestimmen des G-SCAAT 20 als ungültig im Block 116 beziehen, wenn ein Nicht-Vorher-Identifizierer (NBID), der als Teil des G-SCAAT 20 enthalten ist, größer ist als ein ECU-NBID, der der ECU 12 zugeordnet ist, ansonsten wird zum Block 124 fortgefahren.
-
Der Block 124 kann dem entsprechen, dass die ECU 12 einen Nachrichtenauthentifizierungscode (MAC) für das G-SCAAT 20 erzeugt. Die ECU 12 kann dazu konfiguriert sein, den ECU-MAC durch Signieren des G-SCAAT 20 mit einem gemeinsamen Geheimnis zu erzeugen. Der Block 126 kann sich auf eine kryptographische Validierung zum Bestimmen des G-SCAAT 20 als ungültig im Block 116 beziehen, wenn der ECU-MAC keinem G-SCAAT-MAC entspricht, ansonsten wird zum Block 128 fortgefahren. Die Kontrollabteilung 16 kann dazu konfiguriert sein, den G-SCAAT-MAC durch Signieren des G-SCAAT 20 mit dem gemeinsamen Geheimnis zu erzeugen.
-
Der Block 128 kann sich auf den zweiten Validierungsprozess beziehen, der das G-SCAAT 20 als gültig bestimmt. 6 stellt einen Ablaufplan 170 für den dritten Validierungsprozess 86 dar, der stattfinden kann, nachdem das G-SCAAT 20 als gültig bestimmt ist.
-
Der Block 172 bezieht sich auf einen Programmierprozess zum Festlegen von Werten und Flags auf der ECU 12, um zu ermöglichen, dass das Programmierwerkzeug 14 auf den abstimmbaren Implementierungsspeicher 72 zugreift, d. h. zu ermöglichen, dass der Benutzer abstimmbare Werte einstellt, die im abstimmbaren Implementierungsspeicher 72 gespeichert werden. Der Programmierprozess 172 kann das Festlegen eines neuen G-SCAAT-Werts auf falsch, Ändern des ECU-Erzeugungszählwerts, der in der ECU gespeichert ist, auf den G-SCAAT-Erzeugungszählwert, der als Teil des G-SCAAT 20 enthalten ist, Festlegen von SBI-Freischaltniveaus für die ECU 12, um Freischaltniveaus anzupassen, die im G-SCAAT 20 enthalten sind, und Festlegen von SBI-Sicherheitsteuerungen für die ECU 12, um Sicherheitssteuerungen anzupassen, die als Teil des G-SCAAT 20 enthalten sind, umfassen. Der Block 172 kann wahlweise das Auswählen eines Passworts umfassen, das zur ECU 12 zum Vergleich mit einem gespeicherten Wert, z. B. einem Hash, geliefert werden müssen kann, woraufhin eine Übereinstimmung die Programmierung des abstimmbaren Implementierungsspeichers 72 mit den neuen Werten erlauben würde und ein Fehlschlag einer Übereinstimmung zu einer Ungültigkeitsbestimmung führen würde.
-
Der Block 174 bezieht sich auf die Freischaltung von einem oder mehreren Abschnitten des abstimmbaren Implementierungsspeichers 72 gemäß Genehmigungen, die im G-SCAAT 20 angegeben sind. Die Genehmigungen können gemäß Modul-IDs oder anderen Speicherpartitionsidentifizierern abgegrenzt werden, die für die Begrenzung von Einstellungen des abstimmbaren Implementierungsspeichers 72 ausreichen, um speziell und individuell abstimmbare Werte zu identifizieren, die im G-SCAAT 20 angegeben sind, d. h. Begrenzen der Leistungsabstimmung auf abstimmbare Kalibrierungsparameter, die im G-SCAAT 20 identifiziert sind. Der Block 176 bezieht sich auf das letztliche Identifizieren des G-SCAAT 20 als gültig und Empfangen von Leistungsabstimmeingaben vom Programmierwerkzeug 14, d. h. Empfangen der abstimmbaren Werte, die von einem Benutzer gewünscht sind, für die Leistungsabstimmung. Die Eingabe der abstimmbaren Werte in dieser Weise kann dem Umgehen der Authentizitätsprüfung entsprechen, da die entsprechenden Abschnitte des abstimmbaren Implementierungsspeichers 72 veränderbar sind, ohne zu erfordern, dass eine digitale Signatur der Werte eingegeben wird.
-
7 stellt einen Ablaufplan 180 für einen Leistungsabstimmungsprozess gemäß einem nicht einschränkenden Aspekt der vorliegenden Offenbarung dar. Der Leistungsabstimmungsprozess kann Aktivitäten entsprechen, die der im Block 176 von 6 angegebenen Leistungsabstimmung zugeordnet sind.
-
Der Block 182 bezieht sich auf einen Auswahlprozess für abstimmbare Werte zum Bestimmen von einem oder mehreren abstimmbaren Werten, die auf dem abstimmbaren Implementierungsspeicher 72 gespeichert sind. Die abstimmbaren Werte können Werten entsprechen, die unter Verwendung des Programmierwerkzeugs 14 in die Abschnitte des abstimmbaren Implementierungsspeichers 72 eingegeben werden, die gemäß den Modul-IDs entsprechend geöffnet sind, die im gültigen G-SCAAT 20 angegeben sind. Das G-SCAAT 20 kann in dieser Weise verwendet werden, um jeden oder mehrere der abstimmbaren Modul-IDs zu identifizieren, die für einen speziellen Benutzer für die Leistungsabstimmung verfügbar sind. Das G-SCAAT 20 kann entsprechend Abschnitte des Speichers 72, die unter Verwendung des Programmierwerkzeugs 14 geändert werden können, auf vorgewählte Modul-IDs einschränken, die zur Zeit der G-SCAAT-Erzeugung bestimmt werden. Der Trägervorrichtungs-OEM oder eine andere Entität, die mit dem Sicherstellen der Betriebsfähigkeit der ECU 12 beauftragt ist, kann die entsprechenden Genehmigungen angeben, so dass die abstimmbaren Werte auf einer benutzerweisen und/oder einer ECU-weisen Basis gemäß dem G-SCAAT 20 identifiziert werden können, das dem entsprechenden Benutzer und/oder der entsprechenden ECU zugewiesen ist. Der Urheber des G-SCAAT 20 kann mit dem Identifizieren des Benutzers und ansonsten Auswählen der Genehmigungen, die im G-SCAAT 20 enthalten sind, für Zwecke der Identifikation der abstimmbaren Modul-IDs und dadurch der Kalibrierungsparameter, die für die Leistungsabstimmung verfügbar sind, beauftragt sein.
-
Wie in 2 gezeigt, kann der abstimmbare Implementierungsspeicher 72 von mehreren Kalibrierungsparametern separat identifizierbar sein und diese umfassen, die zu den Kalibrierungsparametern identisch sind, die innerhalb des Kalibrierungsspeichers 60 enthalten sind. Die Kalibrierungsdaten in jedem des abstimmbaren Implementierungsspeichers 72 und des Kalibrierungsspeichers 60 können anfänglich mit denselben Werkskalibrierungswerten programmiert sein. Der abstimmbare Implementierungsspeicher 72 kann in dieser Hinsicht zumindest anfänglich als Sicherung oder Kopie des Kalibrierungsspeichers 60 betrachtet werden. Der abstimmbare Implementierungs- und der Kalibrierungsspeicher 60, 72 können in dieser Weise zur Zeit der Herstellung der ECU 12 konfiguriert werden. Der Kalibrierungs- und der abstimmbare Implementierungsspeicher 60, 72 können dadurch zu der Zeit, zu der die ECU 12 das Werk des ECU-OEM und/oder des Trägervorrichtungs-OEM verlässt, übereinstimmen. Die Leistungsabstimmung kann dem entsprechen, dass das Programmierwerkzeug 14 einen oder mehrere der abstimmbaren Werte im abstimmbaren Implementierungsspeicher 72 ändert. Der entsprechende Speicherzugriff kann auf die Modul-IDs begrenzt sein, die im G-SCAAT 20 angegeben sind, d. h. die Partitionen des abstimmbaren Implementierungsspeichers 72 für jeden Kalibrierungsmodul-ID, die als abstimmbar zugelassen/berechtigt sind, können innerhalb des G-SCAAT 20 identifiziert sein.
-
Der Block 184 bezieht sich auf einen abstimmbaren Validierungsprozess zum Bestimmen der abstimmbaren Werte als entweder gültig oder ungültig. Die in den abstimmbaren Implementierungsspeicher 72 eingegebenen abstimmbaren Werte können als gültig bestimmt werden, wenn sie innerhalb Grenzen liegen, die in einem abstimmbaren Einschränkungsspeicher 186 (2) festgelegt sind, ansonsten können die abstimmbaren Werte als ungültig bestimmt werden. Wie in 2 gezeigt, kann der abstimmbare Einschränkungsspeicher 186 separat aus dem abstimmbaren Implementierungs- und dem Kalibrierungsspeicher 60, 72 identifizierbar sein.
-
Der abstimmbare Einschränkungsspeicher 186 kann zur Zeit der Herstellung der ECU 12 konfiguriert werden, so dass die Grenzen darin durch den OEM der Trägervorrichtung gemäß Maximalwerten oder Bereichen ausgewählt werden können, die für einen geeigneten Betrieb der ECU 12 betrachtet werden. Diese Grenzen können von den nominalen oder Medienkalibrierungswerten abweichen, die im Kalibrierungsspeicher 60 enthalten sind. Die Grenzen können an sich auf der Basis des Gesamtbewusstseins des OEM hinsichtlich dessen, wie viel Einstellung korrekt durchgeführt werden kann, während immer noch entsprechende Einflüsse auf die Trägervorrichtung und/oder andere abhängige Systeme berücksichtigt werden, festgelegt werden. Die Leistungsabstimmung kann dadurch dem entsprechen, dass ein Benutzer die abstimmbaren Werte einstellt, die im abstimmbaren Implementierungsspeicher 72 enthalten sind, und danach der Boot-Lader 54 bestimmt, ob diese eingestellten Werte innerhalb Grenzen liegen, die innerhalb des abstimmbaren Einschränkungsspeichers 186 festgelegt sind.
-
Der Block 188 kann sich auf das Ausgeben eines negativen Antwortcodes (NRC) aus der ECU 12 an das Programmierwerkzeug beziehen, wenn die abstimmbaren Werte als ungültig bestimmt werden. Der NRC kann verwendet werden, um für den Benutzer zu bewerten, der die Leistungsabstimmung versucht, dass die eingegebenen abstimmbaren Werte jenseits annehmbarer Bereiche liegen, d. h. jenseits der Grenzen, die im abstimmbaren Einschränkungsspeicher 186 festgelegt sind, was wahlweise ein Detail darüber umfassen kann, wie weit die Grenzen überschritten wurden. Die am abstimmbaren Implementierungsspeicher 72 durchgeführten Änderungen können wahlweise automatisch gelöscht oder auf die Werkseinstellungen zurückgesetzt werden bei der Bestimmung, dass die Eingangswerte ungültig sind, wobei die Anwendungs-Software dazu konfiguriert ist, gemäß den Kalibrierungsdaten auszuführen, die auf dem Kalibrierungsspeicher 60 gespeichert sind, bis gültige abstimmbare Werte bestimmt werden.
-
Der Block 190 bezieht sich auf das Steuern der Anwendungs-Software zur Ausführung gemäß den abstimmbaren Kalibrierungsdaten, die auf dem abstimmbaren Implementierungsspeicher 72 gespeichert sind, wenn sowohl die abstimmbaren Werte als auch das G-SCAAT 20 gültig sind. Der entsprechende Einfluss auf die Anwendungs-Software, d. h. die Einflüsse, die gemäß den Änderungen in den abstimmbaren Werten induziert werden, können bestehen bleiben, bis die ECU 12 abgeschaltet wird oder anderweitig erneut initialisiert wird, an welchem Punkt der abstimmbare Implementierungsspeicher 72 auf die Werkseinstellungen zurückgesetzt werden kann. Der vorangehende Prozess kann danach jedes Mal wiederholt werden, wenn die ECU 12 eingeschaltet wird, so dass die Leistungsabstimmung beim Bestimmen der abstimmbaren Werte und des G-SCAAT 20 als gültig erneut stattfinden kann. Das Vorangehende beschreibt eine beispielhafte Sequenz zum Durchführen einer Validierungsprüfung der abstimmbaren Werte und des G-SCAAT 20, da die vorliegende Offenbarung irgendeine Anzahl von anderen Validierungsprozessen, die unternommen werden, einschließlich des Unternehmens von mehr oder weniger Testen und Testen gemäß verschiedenen Sequenzen, vollständig in Betracht zieht.
-
Die Begriffe „umfassen“, „einschließen“ und „aufweisen“ sind einschließend und geben daher die Anwesenheit von angegebenen Merkmalen, Schritten, Operationen, Elementen oder Komponenten an, schließen jedoch die Anwesenheit oder den Zusatz von einem oder mehreren anderen Merkmalen, Schritten, Operationen, Elementen oder Komponenten nicht aus. Reihenfolgen von Schritten, Prozessen und Operationen können geändert werden, wenn möglich, und zusätzliche oder alternative Schritte können verwendet werden. Wie in dieser Patentbeschreibung verwendet, umfasst der Begriff „oder“ sämtliche Kombinationen der zugehörigen aufgelisteten Gegenstände. Der Begriff „irgendeines von“ wird so verstanden, dass er irgendeine mögliche Kombination von angeführten Gegenständen umfasst, einschließlich „irgendeines“ der angeführten Gegenstände. „Ein“, „eine“, „der“, „mindestens eines“ und „eines oder mehrere“ werden austauschbar verwendet, um anzugeben, dass mindestens einer der Gegenstände vorhanden ist. Mehrere solche Gegenstände können vorhanden sein, wenn nicht der Zusammenhang deutlich Anderes angibt. Alle Zahlenwerte von Parametern (z. B. von Größen oder Bedingungen) sollen, wenn nicht ausdrücklich oder klar angesichts des Kontexts anders angegeben, einschließlich der beigefügten Ansprüche, als in allen Fällen durch den Begriff „etwa“ modifiziert verstanden werden, ob „etwa“ tatsächlich vor dem Zahlenwert erscheint oder nicht. Eine Komponente, die „dazu konfiguriert“ ist, eine festgelegte Funktion durchzuführen, ist in der Lage, die festgelegte Funktion ohne Änderung durchzuführen, anstatt dass sie nur das Potential hat, die festgelegte Funktion nach weiterer Modifikation durchzuführen. Mit anderen Worten, die beschriebene Hardware, wenn sie ausdrücklich dazu konfiguriert ist, die festgelegte Funktion durchzuführen, ist speziell ausgewählt, erzeugt, implementiert, verwendet, programmiert und/oder entworfen für den Zweck der Durchführung der festgelegten Funktion.
-
Obwohl verschiedene Ausführungsformen beschrieben wurden, soll die Beschreibung vielmehr beispielhaft als einschränkend sein, und für den Fachmann auf dem Gebiet ist ersichtlich, dass viele weitere Ausführungsformen und Implementierungen möglich sind, die innerhalb des Schutzbereichs der Ausführungsformen liegen. Irgendein Merkmal von irgendeiner Ausführungsform kann in Kombination mit irgendeinem anderen Merkmal oder Element in irgendeiner anderen Ausführungsform verwendet werden oder dagegen ausgetauscht werden, wenn nicht speziell eingeschränkt. Folglich sollen die Ausführungsformen nicht eingeschränkt werden, außer angesichts der beigefügten Ansprüche und ihrer Äquivalente. Verschiedene Modifikationen und Änderungen können auch innerhalb des Schutzbereichs der beigefügten Ansprüche durchgeführt werden. Obwohl mehrere Arten zur Ausführung der vielen Aspekte der vorliegenden Lehren im Einzelnen beschrieben wurden, erkennt der Fachmann auf dem Gebiet, auf das sich diese Lehren beziehen, verschiedene alternative Aspekte zur Ausführung der vorliegenden Lehren, die innerhalb des Schutzbereichs der beigefügten Ansprüche liegen. Es ist beabsichtigt, dass der ganze in der obigen Beschreibung enthaltene oder in den begleitenden Zeichnungen gezeigte Gegenstand als erläuternd und beispielhaft für den ganzen Bereich von alternativen Ausführungsformen interpretiert werden soll, die ein gewöhnlicher Fachmann so erkennen würde, dass sie durch den enthaltenen Inhalt impliziert, dazu strukturell und/oder funktional äquivalent sind oder auf der Basis dessen anderweitig offensichtlich gemacht sind, und nicht nur auf die explizit dargestellten und/oder beschriebenen Ausführungsformen begrenzt sind.