-
GEBIET DER TECHNIK
-
Die Offenbarung betrifft im Allgemeinen Maschinen und insbesondere Verfahren zum Befähigen des Maschinenbetriebs.
-
ALLGEMEINER STAND DER TECHNIK
-
Es gibt viele Arten von Maschinen, für die es wünschenswert sein kann, den Benutzerzugriff zu steuern. Selbst wenn zum Beispiel ein Fahrzeug entriegelt ist und/oder ein Benutzer in der Lage ist, Zugang zu dem Fahrzeug zu erhalten, muss der Benutzer typischerweise weitere Schritte abschließen, bevor sich das Fahrzeug bewegt, z. B. Betätigen einer Fahrzeugzündung oder dergleichen mit einem Schlüssel, einem Schlüsselanhänger oder einer anderer Zugangssteuerung. Gleichermaßen kann sich eine Industriemaschine, wie etwa ein stationärer Roboter, eine Werkzeugmaschine usw., in einer Umgebung befinden, die für viele Benutzer zugänglich ist, es kann jedoch wünschenswert sein, die Verwendung der Maschine auf einen kleineren Satz von Benutzern als den Satz von Benutzern zu beschränken, für den die Maschine physisch zugänglich ist.
-
KURZDARSTELLUNG
-
Eine in dieser Schrift beschriebene Maschine umfasst eine Vielzahl von Bedienersteuerungen, die in einem Betriebsmodus befähigt sind, die Maschine zu betreiben, und im Validierungsmodus gesperrt sind, die Maschine zu betreiben, und auswählbar sind, um Eingaben für einen Kandidatenschlüssel bereitzustellen. Die Maschine beinhaltet ferner eine Rechenvorrichtung, die kommunikativ an die Bedienersteuerungen gekoppelt ist, wobei die Rechenvorrichtung zu Folgendem programmiert ist: Initialisieren des Validierungsmodus, was Initialisieren des Kandidatenschlüssels und eines Eingabemultiplikators beinhaltet, wobei der Eingabemultiplikator gemäß einer Zahlenbasis und einer maximalen Speicherlänge eines gespeicherten Schlüssels initialisiert wird; Empfangen einer Vielzahl von Eingaben in die Bedienersteuerungen im Validierungsmodus; Bestimmen entsprechender numerischer Werte der Eingaben; Addieren des Kandidatenschlüssels zu einem Produkt des Multiplikators und des numerischen Werts einer ersten Eingabe, um den Kandidatenschlüssel zu aktualisieren; für jede von einer oder mehreren zweiten Eingaben in die Bedienersteuerungen nach der ersten Eingabe in die Bedienersteuerungen, Bestimmen, ob der Kandidatenschlüssel mit einem gespeicherten Schlüssel übereinstimmt; und wenn bestimmt wird, dass der Kandidatenschlüssel mit dem gespeicherten Schlüssel übereinstimmt, Ausgeben einer Autorisierung.
-
Die Maschine kann ferner dazu konfiguriert sein, eine oder mehrere Komponenten der Maschine zu aktivieren, wenn die Autorisierung ausgegeben wird.
-
Die Rechenvorrichtung kann ferner dazu programmiert sein, den Validierungsmodus zu verlassen, ohne die Autorisierung auszugeben, wenn bestimmt wird, dass mehr als eine vorbestimmte Zeitdauer verstrichen ist, ohne eine der Eingaben zu empfangen.
-
Die Rechenvorrichtung kann ferner dazu programmiert sein, den Validierungsmodus zu verlassen, ohne die Autorisierung auszugeben, wenn bestimmt wird, dass der Kandidatenschlüssel nicht mit dem gespeicherten Schlüssel übereinstimmt und eine Anzahl der Vielzahl von Eingaben mit einer Anzahl von erwarteten Eingaben übereinstimmt.
-
Die Zahlenbasis kann durch eine Anzahl möglicher Eingaben für eine einzelne Position des gespeicherten Schlüssels bestimmt werden.
-
Der gespeicherte Schlüssel kann auf einer Vielzahl von Kalibrierungseingaben basieren, die in einem Kalibrierungsmodus bereitgestellt werden. Die Kalibrierungseingaben können in einer vorbestimmten Teilmenge der in der Maschine beinhalteten Bedienersteuerungen empfangen werden. Der gespeicherte Schlüssel kann auf die Rechenvorrichtung heruntergeladen werden. Der gespeicherte Schlüssel kann Auffüllen beinhalten, um eine Differenz zwischen einer Speicherlänge einer erwarteten Anzahl von Eingaben und der maximalen Speicherlänge zu berücksichtigen.
-
Die Rechenvorrichtung kann dazu programmiert sein, den Kandidatenschlüssel im Speicher zu löschen, wenn bestimmt wird, den Validierungsmodus zu verlassen.
-
Die Maschine kann ein Fahrzeug sein. Die Rechenvorrichtung kann eine elektronische Steuereinheit in dem Fahrzeug sein. Der Bediener kann mindestens eines von einem Blinkerwähler, einem Geschwindigkeitssteuerungswähler, einem Scheinwerferaktor, einem Gangwähler, einer Bremssteuerung, einer Drosselsteuerung, einer Lenksteuerung, einer Klimasteuerung, einer Spiegelsteuerung, einer Fenstersteuerung oder einer Verriegelungssteuerung beinhalten. Dem Fahrzeug kann es gestattet sein, sich nur dann zu bewegen, wenn es sich im Betriebsmodus befindet.
-
Figurenliste
-
- 1 veranschaulicht ein beispielhaftes Autorisierungssystem.
- 2 veranschaulicht einen beispielhaften Prozess zum Erfassen eines Kalibrierungsschlüssels und zum Erzeugen und Speichern eines gespeicherten Schlüssels.
- 3 veranschaulicht einen beispielhaften Prozess zum Autorisieren des Betriebs einer Maschine.
-
DETAILLIERTE BESCHREIBUNG
-
Unter Bezugnahme auf 1 ist in dieser Schrift ein Steuersystem 100 zum Steuern, d. h. Einschränken oder Zulassen, d. h. Bestimmen der Autorisierung von Benutzerzugriff auf und/oder Betrieb einer Maschine, offenbart. Die Autorisierung kann über Eingaben in Bedienersteuerungen 108 durchgeführt werden. In einer beispielhaften Umsetzung ist die Maschine ein Fahrzeug 102; nichteinschränkende Beispiele von Bedienersteuerungen 108 in einer Umsetzung eines Fahrzeugs 102 beinhalten ein beliebiges oder mehrere von einem Blinkerwähler, einem Geschwindigkeitssteuerungswähler, einem Scheinwerferaktor, einem Gangwähler, einer Bremssteuerung, einer Drosselsteuerung, einer Lenksteuerung, einer Klimasteuerung, einer Spiegelsteuerung, einer Fenstersteuerung oder einer Verriegelungssteuerung. Mit anderen Worten beinhalten die Bedienersteuerungen 108 typischerweise Steuerungen oder Eingabemechanismen, die für den herkömmlichen Betrieb der Maschine bereitgestellt sind, d. h. die Bedienersteuerungen 108 sind in einem Betriebsmodus befähigt, die Maschine zu betreiben.
-
Zum Beispiel könnte ein Computer 104 in einem Fahrzeug 102 erfordern, dass ein Betriebsmodus befähigt oder aktiviert ist, wobei die Bedienersteuerungen 108 typischerweise befähigt sind, verschiedene Eingaben bereitzustellen, um den Betriebsmodus zu unterstützen, damit ein Bediener Eingaben bereitstellen kann (z. B. in Bedienersteuerungen 108, wie etwa ein Lenkrad, ein Gaspedal usw.), um das Fahrzeug zu bewegen. In einem Validierungsmodus, der bereitgestellt ist, um eine Benutzerautorisierung zu bestimmen, sind die Bedienersteuerungen 108 gesperrt, die Maschine zu betreiben (d. h. der Betriebsmodus ist gesperrt oder nicht verfügbar), und können ausgewählt werden, um Eingaben für einen Kandidatenschlüssel bereitzustellen. Das heißt, dass im Validierungsmodus Eingaben in die Bedienersteuerungen 108 verwendet werden, um den Kandidatenschlüssel zu erhalten, der dann mit einem gespeicherten Schlüssel verglichen und verwendet werden kann, um zu bestimmen, ob die Autorisierung ausgegeben werden soll, welche die Steuerung und den Betrieb der Maschine ermöglicht.
-
Ein beispielhaftes Fahrzeug 102 beinhaltet einen Autorisierungscomputer 104, der eine von einer Vielzahl von Rechenvorrichtungen ist, die in dem Fahrzeug 102 beinhaltet sind. Rechenvorrichtungen in dem Fahrzeug 102 können Daten über ein Fahrzeugnetzwerk 106 von verschiedenen Vorrichtungen und/oder Systemen in dem Fahrzeug 102 empfangen, wie etwa Bedienersteuerungen 108 und Sensoren 110 des Fahrzeugs 102. Ferner beinhaltet das Fahrzeug 102 eine Vielzahl von Fahrzeugteilsystemen 112, die ein Bremsteilsystem 114, ein Antriebsteilsystem 116, ein Lenkteilsystem 118 und/oder eine Mensch-Maschine-Schnittstelle (human machine interface - HMI) 120 beinhalten; diese Fahrzeugteilsysteme 112 sind typischerweise in dem Fahrzeugnetzwerk 106 zur Kommunikation mit Rechenvorrichtungen, wie etwa dem Computer 104, angeordnet.
-
Ein Fahrzeug 102 kann eine beliebige geeignete Art von Bodenfahrzeug 102 sein, z. B. ein Personen- oder Nutzkraftfahrzeug, wie etwa eine Limousine, ein Coupe, ein LKW, ein SUV, ein Crossover-Fahrzeug, ein Van, ein Minivan, ein Taxi, ein Bus usw. Ferner kann ein Fahrzeug 102 in dieser Schrift ein Boot oder Luftfahrzeug sein. Darüber hinaus könnten, wie vorstehend angemerkt, die vorliegenden Prinzipien in anderen Maschinen als den Fahrzeugen 102 umgesetzt sein.
-
Der Computer 104 des Fahrzeugs 102 beinhaltet einen Prozessor und einen Speicher. Der Speicher beinhaltet eine oder mehrere Formen von durch den Computer 104 lesbaren Medien und speichert Anweisungen, die durch den Computer 104 des Fahrzeugs 102 zum Durchführen verschiedener Vorgänge ausgeführt werden können, was die in dieser Schrift offenbarten beinhaltet. Zum Beispiel kann der Computer 104 ein generischer Computer 104 mit einem Prozessor und einem Speicher sein, wie vorstehend beschrieben, und/oder er kann eine elektronische Steuereinheit (electronic control unit - ECU) oder Steuerung für eine konkrete Funktion oder einen konkreten Satz von Funktionen und/oder eine dedizierte elektronische Schaltung beinhalten, die eine ASIC beinhaltet, die für einen bestimmten Vorgang hergestellt ist, z. B. eine ASIC zum Verarbeiten von Sensordaten und/oder Kommunizieren der Sensordaten. In einem weiteren Beispiel kann der Computer 104 ein FPGA (fieldprogrammable gate array - feldprogrammierbares Gate-Array) beinhalten, das eine integrierte Schaltung ist, die so hergestellt ist, dass sie durch einen Benutzer konfigurierbar ist. Typischerweise wird eine Hardwarebeschreibungssprache, wie etwa VHDL (very high speed integrated circuit hardware description language - Hardwarebeschreibungssprache für integrierte Schaltungen mit sehr hoher Geschwindigkeit), in der elektronischen Ausgestaltungsautomatisierung verwendet, um digitale und Mischsignal-Systeme, wie etwa FPGA und ASIC, zu beschreiben. Zum Beispiel wird eine ASIC basierend auf einer vor der Herstellung bereitgestellten VHDL-Programmierung hergestellt, wohingegen logische Komponenten innerhalb eines FPGA basierend auf der VHDL-Programmierung konfiguriert sein können, z. B. in einem Speicher gespeichert, der elektrisch mit der FPGA-Schaltung verbunden ist. In einigen Beispielen kann eine Kombination aus Prozessor(en), ASIC(s) und/oder FPGA-Schaltungen in einem Computer 104 beinhaltet sein.
-
Der Speicher kann von beliebiger Art sein, z. B. Festplattenlaufwerke, Festkörperlaufwerke, Server oder beliebige flüchtige oder nichtflüchtige Medien. Der Speicher kann die erhobenen Daten speichern, die von den Sensoren 110 gesendet wurden. Der Speicher kann eine von dem Computer 104 getrennte Vorrichtung sein und der Computer 104 kann durch den Speicher gespeicherte Informationen über ein Fahrzeugnetzwerk 106 abrufen, z. B. einen oder mehrere Kommunikationsmechanismen in dem Fahrzeug 102 für Komponenten in dem Fahrzeug 102, um miteinander zu kommunizieren, z. B. über einen CAN-Bus, ein drahtloses Netzwerk usw. Alternativ oder zusätzlich kann der Speicher Teil des Computers 104 sein, z. B. als ein Speicher des Computers 104. Der Computer 104 kann eine Programmierung beinhalten, um eines oder mehrere von Bremsen, Antrieb (z. B. Steuerung der Beschleunigung des Fahrzeugs 102 durch Steuern von einem oder mehreren von einer Brennkraftmaschine, einem Elektromotor, Hybridmotor usw.), Lenkung, Klimasteuerung, Innen- und/oder Außenbeleuchtung usw. des Fahrzeugs 102 zu betreiben, sowie um zu bestimmen, ob und wann der Computer 104 derartige Vorgänge anstelle eines menschlichen Betreibers steuern soll. Zusätzlich kann der Computer 104 dazu programmiert sein, zu bestimmen, ob und wann ein menschlicher Fahrzeugführer derartige Vorgänge steuern soll.
-
Der Computer 104 kann mehr als einen Prozessor beinhalten oder kommunikativ daran gekoppelt sein, z. B. über ein Fahrzeugnetzwerk 106, wie etwa einen Kommunikationsbus, wie nachfolgend ausführlicher beschrieben, z. B. in Komponenten beinhaltet, wie etwa Sensoren 110, elektronischen Steuereinheiten (ECUs) oder dergleichen, die in dem Fahrzeug 102 zum Überwachen und/oder Steuern verschiedener Komponenten des Fahrzeugs 102, z. B. einer Antriebsstrangsteuerung, einer Bremssteuerung, einer Lenkungssteuerung usw., beinhaltet sind. Der Computer 104 ist im Allgemeinen zur Kommunikation in einem Kommunikationsnetzwerk des Fahrzeugs 102 angeordnet, das einen Bus in dem Fahrzeug 102, wie etwa ein Controller Area Network (CAN) oder dergleichen, und/oder andere drahtgebundene und/oder drahtlose Mechanismen beinhalten kann. Alternativ oder zusätzlich kann in Fällen, in denen der Computer 104 tatsächlich eine Vielzahl von Vorrichtungen umfasst, das Kommunikationsnetzwerk des Fahrzeugs 102 für Kommunikationen zwischen Vorrichtungen verwendet werden, die in dieser Offenbarung als der Computer 104 dargestellt sind. Ferner können, wie nachfolgend erwähnt, verschiedene Steuerungen und/oder Sensoren 110 dem Computer 104 Daten über das Kommunikationsnetzwerk des Fahrzeugs 102 bereitstellen.
-
Das Fahrzeugnetzwerk 106 kann einen herkömmlichen Kommunikationsbus des Fahrzeugs 102, wie etwa einen CAN-Bus, LIN-Bus usw., und/oder andere drahtgebundene und/oder drahtlose Technologien beinhalten, z. B. Ethernet, Wi-Fi®, Mobilfunk, Bluetooth®, Bluetooth® Low Energy (BLE) usw. über das Netzwerk, den Bus und/oder andere drahtgebundene oder drahtlose Mechanismen (z. B. ein drahtgebundenes oder drahtloses lokales Netzwerk in dem Fahrzeug 102). Dementsprechend kann eine ECU des Computers 104 des Fahrzeugs 102 usw. Mitteilungen zu verschiedenen Vorrichtungen in dem Fahrzeug 102 übertragen und/oder Mitteilungen von den verschiedenen Vorrichtungen empfangen, z. B. ECUs, Steuerungen, Aktuatoren, Sensoren 110 usw.
-
Das Bremsteilsystem 114 wirkt der Bewegung des Fahrzeugs 102 entgegen, um dadurch das Fahrzeug 102 zu verlangsamen und/oder anzuhalten. Das Bremsteilsystem 114 kann Reibungsbremsen, wie etwa Scheibenbremsen, Trommelbremsen, Bandbremsen und so weiter; Nutzbremsen; eine beliebige andere geeignete Art von Bremsen; oder eine Kombination beinhalten. Das Bremsteilsystem 114 steht mit dem Computer 104 und/oder einem menschlichen Bediener in Kommunikation und empfängt Eingaben von diesen. Der menschliche Bediener kann das Bremsteilsystem 114 z. B. über ein Bremspedal steuern.
-
Das Antriebsteilsystem 116 kann eines oder mehrere von einer Brennkraftmaschine, einem Elektromotor, einem Hybridmotor usw. beinhalten.
-
Das Lenkteilsystem 118 steuert das Drehen der Räder. Das Lenkteilsystem 118 steht mit einem Lenkrad und/oder dem Computer 104 in Kommunikation und empfängt Eingaben von diesen. Das Lenkteilsystem 118 kann ein Zahnstangensystem mit elektrischer Servolenkung, ein Steerby-Wire-System, z. B. wie es bekannt ist, oder ein beliebiges anderes geeignetes System beinhalten.
-
Das Fahrzeug 102 kann eine HMI 120 (human-machine interface - Mensch-Maschine-Schnittstelle) beinhalten, z. B. eines oder mehrere von einer Anzeige, einer Touchscreen-Anzeige, einem Mikrofon, einem Lautsprecher usw. Der Benutzer kann Vorrichtungen, wie etwa dem Computer 104, über die HMI 120 eine Eingabe bereitstellen. Die HMI 120 kann mit dem Computer 104 über das Fahrzeugnetzwerk 106 kommunizieren, z. B. kann die HMI 120 eine Mitteilung, welche die Benutzereingabe beinhaltet, die über einen Touchscreen, ein Mikrofon, eine Kamera, die eine Geste erfasst, usw. bereitgestellt wird, an einen Computer 104 senden, und/oder kann eine Ausgabe anzeigen, z. B. über einen Bildschirm, Lautsprecher usw. Der Autorisierungscomputer 104 kann, wie vorstehend erwähnt, kommunikativ an die Bedienersteuerungen 108 gekoppelt sein, z. B. über das Fahrzeugnetzwerk 106. Eine Bedienersteuerung im Kontext dieses Dokuments ist ein physisches Element in einem Fahrzeug (z. B. eine Taste, ein Knopf, ein Schalter usw.), dessen Zustand durch einen Benutzer geändert werden kann (z. B. kann eine Taste gedrückt werden, ein Knopf kann gedrückt und/oder gedreht werden, ein Schalter kann bewegt werden usw.). Eine Bedienersteuerung ist typischerweise für herkömmliche Fahrzeugvorgänge bereitgestellt, z. B. Aktivieren oder Deaktivieren von Lichtern, Geschwindigkeitssteuerung usw. Der Autorisierungscomputer kann Eingaben von den Bedienersteuerungen 108 über das Fahrzeugnetzwerk 106 empfangen, d. h. Signale oder Datenmitteilungen, die festlegen, dass die Eingabe empfangen wurde. Zum Beispiel kann eine Eingabe von einer Bedienersteuerung 108 festlegen, dass sich ein Zustand der Bedienersteuerung 108, wie etwa eine Stellung eines Knopfes, Schalters oder Hebels, geändert hat, und/oder einen aktuellen Zustand der Bedienersteuerung 108 (z. B. der Ein/AusSchalter für den Tempomat ist eingeschaltet, der Blinkerhebel befindet sich in der oberen Stellung usw.) beschreiben. Eine nichteinschränkende Liste von beispielhaften Bedienersteuerungen 108 in einem Fahrzeug 102 beinhaltet einen Blinkerwähler, einen Geschwindigkeitssteuerungswähler, einen Scheinwerferaktor, einen Gangwähler, eine Bremssteuerung, eine Drosselsteuerung, eine Lenksteuerung, eine Klimasteuerung, eine Spiegelsteuerung, eine Fenstersteuerung oder eine Verriegelungssteuerung.
-
Wie vorstehend angegeben, können die Bedienersteuerungen 108 verwendet werden, um einen Kandidatenschlüssel einzugeben. Somit können konkrete Eingaben in die Bedienersteuerungen 108 auf einen Zahlenbereich (insbesondere nichtnegative ganze Zahlen) abgebildet oder diesem zugeordnet werden, wobei der Zahlenbereich durch eine Basiszahl eines gespeicherten Schlüssels definiert ist. Zum Beispiel könnte die Basiszahl drei sein, in welchem Fall der Zahlenbereich, der in Eingaben in die Bedienersteuerungen 108 dargestellt wird, null bis zwei wäre (d. h. 0, 1, 2). In einem weiteren Beispiel könnte die Basiszahl zehn sein, in welchem Fall der Zahlenbereich, der in Eingaben in die Bedienersteuerungen 108 dargestellt wird, null bis neun wäre (d. h. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9). Die nachfolgende Tabelle 1 zeigt eine mögliche Abbildung von Bedienersteuerungen 108, wobei ein gespeicherter Schlüssel als eine Zahl mit der Basis drei dargestellt ist. Die nachfolgende Tabelle 2 zeigt eine mögliche Abbildung von Bedienersteuerungen 108, wobei ein gespeicherter Schlüssel als eine Zahl mit der Basis zehn dargestellt ist. Tabelle 1
Steuereingang | Zugewiesener Wert |
Blinkerstiel nach oben | 0 |
Blinkerstiel nach unten | 1 |
Blinkerstiel in Richtung Fahrzeugheck gezogen | 2 |
Tabelle 2
Steuereingang | Zugewiesener Wert |
Leer (d. h. keine | 0 |
Eingabe) | |
Abbrechen | 1 |
Aus | 2 |
Ein | 3 |
Ein/Aus | 4 |
Ein/Aus/Abbrechen | 5 |
Fortsetzen | 6 |
Fortsetzen/Abbrechen | 7 |
Minus einstellen | 8 |
Plus einstellen | 9 |
-
Es ist zu beachten, dass Tabelle 2 verschiedene Eingaben beinhaltet, die nicht zusammen in einem Fahrzeug 102 beinhaltet wären, und außerdem einen Platzhalter in einem Kalibrierungsschlüssel bereitstellt, um festzulegen, dass keine Eingabe empfangen werden wird, d. h. typischerweise verwendet wird, wenn ein Benutzer, der einen Kalibrierungsschlüssel eingibt, weniger Eingaben bereitstellt als die gestattete Anzahl von Eingaben, woraufhin der „leere“ Wert beinhaltet werden kann, typischerweise als nachgestelltes rechtes Auffüllen. Das heißt, eine Zahl, die auf einem gespeicherten Schlüssel basiert, könnte durch eine eindeutige Anzahl unterschiedlicher Eingaben bestimmt werden, die in einem konkreten Fahrzeug 102 (oder Art des Fahrzeugs 102) möglich sind, z. B. wie es mit den in Tabelle 1 veranschaulichten Eingaben möglich ist. Wie jedoch in Tabelle 2 veranschaulicht ist, könnte eine Zahl, die auf einem gespeicherten Schlüssel basiert, durch eine eindeutige Anzahl unterschiedlicher Eingaben bestimmt werden, die über eine Vielzahl von Fahrzeugen 102 (oder Arten von Fahrzeugen 102) möglich sind, wobei kein konkretes Fahrzeug 102 alle der möglichen Eingaben beinhalten würde, die verwendet werden, um die Basiszahl zu bestimmen. Das heißt, zum Beispiel könnte ein einzelnes Fahrzeug 102 eine Geschwindigkeitssteuerung aufweisen, die entweder „Aus“- und „Ein“-Steuerungen beinhalten würde oder eine „Ein/Aus“-Steuerung beinhalten würde, aber nicht alle von diesen beinhalten würde. In jedem Fall wird die Zahlenbasis für einen gespeicherten Schlüssel durch eine Anzahl möglicher Eingaben für eine einzelne Position des gespeicherten Schlüssels bestimmt, d. h. einen Zahlenbereich, der für die Position möglich ist (zwei für die Basis zwei, drei für die Basis drei usw.).
-
Wie weiter unten beschrieben, könnte ein Benutzer in einem sogenannten Kalibrierungsmodus eine Eingabe bereitstellen, um einen gespeicherten Schlüssel zu bestimmen, woraufhin der Schlüssel zusammen mit einer Basisnummer für den Schlüssel gespeichert werden könnte, die typischerweise von einem Hersteller des Fahrzeugs 102 gemäß den für den gespeicherten Schlüssel gestatten Steuereingaben bereitgestellt wird. Ferner beinhaltet der Autorisierungscomputer 104 typischerweise eine maximale Speichermenge für einen gespeicherten Schlüssel und speichert eine maximale Länge für einen gespeicherten Schlüssel auf Grundlage der maximalen Speichermenge. Somit wird, um einen gespeicherten Schlüssel zu erhalten, ein Kalibrierungsschlüssel, der durch einen Benutzerschlüssel eingegeben wird, aufgefüllt, typischerweise mit nachgestellten Nullen, so wie er benötigt wird, um einen gespeicherten Schlüssel mit der maximalen Länge zu erreichen. Das heißt, dass ein gespeicherter Schlüssel typischerweise Auffüllen beinhaltet, um eine Differenz zwischen einer Speicherlänge einer erwarteten Anzahl von Eingaben und der maximalen Speicherlänge zu berücksichtigen. Zum Beispiel angenommen, dass in einem Kalibrierungsmodus, in dem ein Schlüssel als Zahl mit der Basis 10 gespeichert werden soll, ein Benutzer die Zeichenfolge „04543“ eingibt. Unter Vorschau der Erörterung der nachfolgenden Tabelle 3 wird ferner angenommen, dass die maximale Länge für einen gespeicherten Schlüssel 9 Ziffern einer Zahl mit der Basis 10 beträgt. Dann würde der von einem Benutzer eingegebene Kalibrierungsschlüssel aufgefüllt werden, um einen gespeicherten Schlüssel mit einer maximalen Länge von neun zu bilden, d. h. „045430000“.
-
Die Beispiele in dieser Schrift gehen davon aus, dass die maximale Speichermenge 32 Bit beträgt, es könnten jedoch natürlich auch andere Speichermengen bereitgestellt werden. In jedem Fall wird die maximale Länge durch Bestimmen einer maximalen Anzahl von Ziffern in der Zahlenbasis bestimmt, die in dem verfügbaren maximalen Speicher gespeichert werden kann. Die nachfolgende Tabelle 3 stellt Beispiele für maximale Längen von gespeicherten Schlüsseln bereit, wobei 32 Bit Speicher verfügbar sind. Tabelle 3
Zahlenbasis | Die größte Zahl, die in der Basis 2 gespeichert werden kann | Max. Länge |
Basis 2 | 11111111111111111111111111111111 | 32 |
Basis 3 | 102002022201221111210 | 20 |
Basis 10 | 4,294,967,295 | 9 |
-
In einem System der Basis 2 ist bei 32 Bit, wie in Tabelle 3 zu sehen, die größte Zahl, die gespeichert werden kann, eine Folge von 32 Einsen, d. h. 11111111111111111111111111111111. Diese Zahl in der Basis 3 lautet 102002022201221111210, d. h. eine Zeichenfolge von 21 Ziffern, und beträgt 4,294,967,295 in der Basis 10, d. h. eine Zeichenfolge von 10 Ziffern. Die maximale Länge in Basis drei für einen gespeicherten Schlüssel beträgt in diesem Beispiel jedoch 20 Ziffern und neun Ziffern in Basis 10. Dies liegt daran, dass in jedem Fall 32 Bit Speicher nicht ausreichen, um einen vollen Bereich möglicher Ziffern zu speichern, d. h. Zahlenwerte für die am weitesten links stehende Ziffer in der Zeichenfolge. Zum Beispiel wären 32 Bit Speicher nicht ausreichend, um 2020020222012211112103 oder 5,294,967,29510 zu speichern (wobei die tiefgestellten Zeichen die Basis 3 bzw. die Basis 10 angeben).
-
Der Autorisierungscomputer 104 kann dazu programmiert sein, einen Validierungsmodus zu initialisieren, in dem die Bedienersteuerungen 108 gesperrt sind, das Fahrzeug 102 zu betreiben, und auswählbar sind, um einen Kandidatenschlüssel einzugeben, der verwendet werden kann, um eine Benutzerautorisierung für die Maschine zu bestimmen. Initialisieren des Validierungsmodus beinhaltet Initialisieren eines Kandidatenschlüsselwerts und eines Eingabemultiplikators, wobei der Eingabemultiplikator gemäß einer Zahlenbasis und einer maximalen Speicherlänge eines gespeicherten Schlüsselwerts initialisiert wird. In der in dieser Schrift erörterten beispielhaften Umsetzung ist der Kandidatenschlüsselwert ein Hashwert, d. h. ein Wert, der gemäß einer festgelegten mathematischen Funktion zurückgegeben wird, um einen gewünschten Wert zu erhalten, d. h. eine Zahl, die verwendet werden kann, um eine Übereinstimmung mit einem gespeicherten Schlüssel zu erhalten. Die Zahlenbasis ist typischerweise ein gespeicherter Wert, der gemäß einer Anzahl möglicher Eingaben bestimmt wird, um einen gespeicherten Schlüssel zu bilden, wie vorstehend in Bezug auf die Tabellen 2 und 3 beschrieben. Der Eingabemultiplikator, der auf Eingaben angewendet wird, die den Kandidatenschlüssel wie weiter unten beschrieben bilden, kann die Zahlenbasis sein, die auf eine Potenz erhöht wird, die auf Grundlage der maximalen Speicherlänge des Schlüsselwerts bestimmt wird, d. h. der Eingabemultiplikator wird typischerweise als die Zahlenbasis initialisiert, die auf die maximale Speicherlänge l minus 1 erhöht wird, d. h. wenn n die Zahlenbasis ist und 1 die maximale Speicherlänge ist, ist der Multiplikator m folgendermaßen gegeben:
-
Der Eingabemultiplikator wird dann wie weiter unten beschrieben angepasst und während verschiedener Durchläufe eines Prozesses in einem Validierungsmodus angewendet. Sobald der Validierungsmodus initialisiert ist, kann der Autorisierungscomputer 104 im Validierungsmodus eine Vielzahl von Eingaben in die Bedienersteuerungen 108 empfangen. Der Computer 104 kann numerische Werte speichern, die entsprechenden Bedienersteuerungen 108 und/oder Zuständen von oder Eingaben in Bedienersteuerungen 108 zugewiesen sind, z. B. auf Grundlage einer Zuweisung oder Abbildung, wie vorstehend beschrieben. Somit kann der Computer 104 beim Empfangen entsprechender Eingaben in die Bedienersteuerungen 108 numerische Werte der Eingaben bestimmen.
-
Der Kandidatenschlüssel kann auf einen Wert von null initialisiert werden. Dann, wenn ein numerischer Wert für eine erste Eingabe bestimmt ist, kann der Kandidatenschlüssel zu einem Produkt des Eingabemultiplikators und des numerischen Werts der ersten Eingabe addiert werden. Das heißt, wenn der Kandidatenschlüssel auf einen Wert von null initialisiert ist, wird der Kandidatenschlüssel nach der ersten Eingabe dann auf das Produkt des Eingabemultiplikators und des numerischen Werts der ersten Eingabe aktualisiert. Anschließend wird für jede von einer oder mehreren zweiten Eingaben in die Bedienersteuerungen 108 nach der ersten Eingabe in die Bedienersteuerungen 108 der Kandidatenschlüssel ähnlich aktualisiert. Ferner kann der Autorisierungscomputer 104 nach jeder zweiten Eingabe bestimmen, ob der Kandidatenschlüssel mit einem gespeicherten Schlüssel übereinstimmt. Es ist möglich, dass ein gespeicherter Schlüssel zwei Ziffern oder sogar eine Ziffer sein kann. In der Praxis besteht ein gespeicherter Schlüssel jedoch typischerweise aus mehr als zwei Ziffern, um eine Wahrscheinlichkeit zu verringern, dass ein nichtautorisierter Benutzer den Schlüssel errät. Wenn bestimmt wird, dass der Kandidatenschlüssel mit dem gespeicherten Schlüssel übereinstimmt, kann der Computer 104 eine Autorisierung ausgeben. Eine „Autorisierung“ bedeutet, dass der Computer 104 einen Betriebsmodus aktiviert hat, in dem eine oder mehrere Bedienersteuerungen 108 aktiviert werden können, um Eingaben, bereitzustellen, um eine Maschine zu betreiben, wie etwa des Fahrzeugs 102. Anders ausgedrückt: Dass der Computer 104 die Autorisierung bereitstellt, bedeutet, dass der Computer 104 eine oder mehrere Komponenten der Maschine aktiviert hat, wenn die Autorisierung ausgegeben wird.
-
Die nachfolgende Tabelle 4 veranschaulicht ein Beispiel eines Kandidatenschlüssels, der auf Grundlage von Eingaben in die Bedienersteuerungen 108 in einem Validierungsmodus eingegeben und mit einem gespeicherten Schlüssel abgeglichen wird. In diesem Beispiel ist der gespeicherte Schlüssel eine Zahl mit der Basis drei, die vier Ziffern lang ist, konkret ist der gespeicherte Schlüssel in diesem Beispiel „12120000000000000000“, d. h. die nachgestellten Nullen sind wie vorstehend beschrieben Auffüllen, und ein Benutzer muss eine Sequenz 1-2-1-2 eingeben, um mit dem gespeicherten Schlüssel übereinzustimmen. In dem Beispiel aus Tabelle 4 wird der Kandidatenschlüssel auf einen Wert von null initialisiert und der Multiplikator wird als 3^19 initialisiert, d. h. die Basiszahl wird um eine Potenz eins unter der maximalen Länge von 20 erhöht. Wie in Tabelle 4 zu sehen ist, wird der Multiplikator durch die Basiszahl geteilt, d. h. die auf die Basiszahl angewendete Potenz wird um eins verringert, um den Kandidatenschlüssel für jede nachfolgende Eingabe zu aktualisieren. Tabelle 4
Eingabe-Nr. | Eingabewert | Multiplikator | Kandidatenschlüssel |
Erster | 1 | 319 | (1 × 319)10 + (0)10 = (1162261467)10 |
Zweiter | 2 | 318 | (2 × 318)10 + (1162261467)10 = (1937102445)10 |
Dritter | 1 | 317 | (1 × 317)10 + (1937102445)10 = (2066242608)10 |
Vierter | 2 | 316 | (2 × 316)10 + (2066242608)10 = (2152336050)10 |
-
Die Vorgänge in Tabelle 4 sind für die Bequemlichkeit des Lesers mit Zahlen der Basis 10 gezeigt, und auch, weil derartige Vorgänge wahrscheinlich in der Basis 10 in von Menschen lesbarem Computercode gezeigt würden, der den Computer 104 programmiert. Nach dem Empfangen einer ersten Eingabe, die einen Wert von „1" aufweist, wird der anfängliche Multiplikator von 319 mit dem Eingabewert multipliziert, und das Produkt wird dann zu dem Kandidatenschlüssel addiert, d. h. in diesem ersten Durchlauf ist null der initialisierte Wert des Kandidatenschlüssels. Nach dem Empfangen der zweiten Eingabe, die einen Wert von „2“ aufweist, wird der Multiplikator, nun 318, mit dem Eingabewert multipliziert, und das Produkt wird dann zu dem Kandidatenschlüssel addiert, um den Kandidatenschlüssel zu aktualisieren. Diese Prozedur wird nach der dritten und vierten Eingabe wiederholt. Der Computer 104 kann den Kandidatenschlüssel nach jeder Erzeugung mit dem Speicherschlüssel vergleichen, d. h. nach jedem Empfangen der ersten, der zweiten, der dritten und der vierten Eingabe. Wenn eine Übereinstimmung zwischen dem Kandidatenschlüssel und dem Speicherschlüssel bestimmt wird, was in diesem Beispiel erfolgt, nachdem die vierte Eingabe empfangen wurde (z. B. 121200000000000000003 = 215233605010), kann der Computer 104 dann die Autorisierung ausgeben.
-
Der Computer 104 kann dazu programmiert sein, den Validierungsmodus zu verlassen, ohne die Autorisierung auszugeben, wenn bestimmt wird, dass mehr als eine vorbestimmte Zeitdauer verstrichen ist, ohne eine der Eingaben zu empfangen. Anders ausgedrückt kann es eine Zeitüberschreitungsperiode zum Eingeben von Eingaben zum Bilden eines Kandidatenschlüssels geben. Wenn zum Beispiel mehr als fünf oder zehn Sekunden zwischen Eingaben vergehen, könnte der Computer 104 dazu programmiert sein, den Validierungsmodus zu verlassen. Ferner kann der Computer 104 dazu programmiert sein, den Validierungsmodus zu verlassen, ohne die Autorisierung auszugeben, wenn bestimmt wird, dass der Kandidatenschlüssel nicht mit dem gespeicherten Schlüssel übereinstimmt und eine Anzahl der Vielzahl von Eingaben mit einer Anzahl von erwarteten Eingaben übereinstimmt; wobei die Anzahl von erwarteten Eingaben in dem Computer 104 gespeichert werden kann, z. B. erfasst, wenn ein Kalibrierungsschlüssel eingegeben wird.
-
2 veranschaulicht einen beispielhaften Prozess zum Erfassen eines Kalibrierungsschlüssels und zum Erzeugen und Speichern eines gespeicherten Schlüssels. Wie vorstehend erwähnt, basiert der gespeicherte Schlüssel auf einer Vielzahl von Kalibrierungseingaben, d. h. einem Kalibrierungsschlüssel, der in einem Kalibrierungsmodus bereitgestellt wird. Die Kalibrierungseingaben sind empfangene Bedienersteuerungen 108, die in einer Maschine, wie etwa einem Fahrzeug, beinhaltet sind, typischerweise in einer vorbestimmten Teilmenge von Bedienersteuerungen 108, die zum Abbilden auf einen gespeicherten Schlüssel bestimmt sind.
-
Der Prozess 150 kann in einem Block 152 beginnen, in dem der Computer 104 den Kalibrierungsmodus initialisiert. Zum Beispiel kann der Computer 104 eine Benutzereingabe empfangen, um den Kalibrierungsmodus zu beginnen. Benutzereingaben könnten z. B. über eine HMI 120 oder dergleichen in einem Fahrzeug 102 bereitgestellt werden. Der Benutzer könnte eine Eingabe bereitstellen, um einen Kalibrierungsmodus zu beginnen und/oder ein Passwort oder dergleichen einzugeben, das mit einem in einem Speicher des Computers 104 gespeicherten Passwort verglichen wird, um Aktivieren des Kalibrierungsmodus zu gestatten. Als nächstes identifiziert der Computer 104 in einem Block 154 einen Satz von Eingaben in Bedienersteuerungen 108, die verwendet werden könnten, um einen gespeicherten Schlüssel zu erzeugen. Zum Beispiel könnte der Computer 104 verfügbare Bedienersteuerungen 108 und Zustände von Bedienersteuerungen 108 wie vorstehend beschrieben speichern, die verfügbar sind, um Eingaben zur Benutzereingabe von Ziffern zu empfangen, die einen Schlüssel bilden. Alternativ oder zusätzlich könnte ein Bediener Eingaben bereitstellen, z. B. über eine HMI 120 des Fahrzeugs 102, die einen Satz von Bedienersteuerungen 108 festlegen, die verwendet werden sollen, um Eingaben für den Schlüssel zu empfangen, der gespeichert wird.
-
Als Nächstes wählt der Computer 104 in einem Block 156 eine Zahlenbasis für den Schlüssel aus. Wie vorstehend beschrieben, wird die Zahlenbasis gemäß einer Anzahl möglicher Eingaben zum Eingeben einer Gebühr ausgewählt. Es ist zu beachten, dass die Blöcke 154 und 156 weggelassen werden könnten. Das heißt, dem Computer 104 könnte der Satz von Eingaben in Bedienersteuerungen 108 bereitgestellt sein, die verwendet werden könnten, um den gespeicherten Schlüssel durch einen Hersteller einer Maschine, wie etwa eines Fahrzeugs 102, zu erzeugen, wobei der gespeicherte Schlüssel über ein Kommunikationsmodul 122 usw. auf den Computer 104 heruntergeladen werden könnte. In diesem Fall könnten eine Anzahl von Eingaben und eine Zahlenbasis für einen Schlüssel in dem Speicher des Computers 104 gespeichert sein.
-
Als Nächstes erfasst der Computer 104 in einem Block 158 Eingaben für einen Kalibrierungsschlüssel. Zum Beispiel könnte eine HMI 120 des Fahrzeugs 102 Aufforderungen für einen Benutzer bereitstellen, um verschiedene Eingaben in die Bedienersteuerungen 108 bereitzustellen. Die HMI 120 könnte einem Benutzer eine Ausgabe bereitstellen, die eine Anzahl von bereitzustellenden Eingaben festlegt, und/oder ein Benutzer kann der HMI 120 eine Eingabe bereitstellen, die eine Anzahl von bereitzustellenden Eingaben festlegt, wobei eine Anzahl von Eingaben einer Anzahl von Ziffern entspricht, die ein Benutzer für einen Kandidatenschlüssel eingeben muss, um mit dem gespeicherten Schlüssel übereinzustimmen. Der Computer 104 könnte dann die Eingaben empfangen, z. B. könnte der Benutzer eine Sequenz von Eingaben in Bedienersteuerungen 108 durchführen, z. B. Tasten, Schalter, Knöpfe usw. in einem Fahrzeug 102 auswählen, um die Eingaben und somit die Ziffern festzulegen, die in einem gespeicherten Schlüssel beinhaltet sein sollen.
-
Als nächstes füllt der Computer 104 in einem Block 160 den Kalibrierungsschlüssel wie vorstehend beschrieben auf und speichert den aufgefüllten Schlüssel in einem Speicher. Im Anschluss an Block 160 endet der Prozess 150.
-
3 veranschaulicht einen beispielhaften Prozess zum Autorisieren des Betriebs einer Maschine.
-
Der Prozess 170 kann durch einen Prozessor des Computers 104 gemäß Anweisungen ausgeführt werden, die auf einem Speicher davon gespeichert sind.
-
Der Prozess 170 kann in einem Block 172 beginnen, in dem ein Validierungsmodus initialisiert wird. Der Computer 104 kann eine Eingabe empfangen, um den Validierungsmodus auf verschiedene Arten zu initialisieren. Zum Beispiel könnte in einem Fahrzeug 102 ein Validierungsmodus initialisiert werden, wenn eine Tür des Fahrzeugs 102 geöffnet wird, wenn ein Belegungssensor einen Benutzer auf einem Sitz des Fahrzeugs 102 erfasst, wenn sich das Fahrzeug 102 in einem ausgeschalteten Zustand befindet (d. h. ein Betriebsmodus ist gesperrt), stellt ein Benutzer eine Eingabe bereit, um den Validierungsmodus einzuleiten, wenn sich das Fahrzeug 102 im ausgeschalteten Zustand befindet, z. B. Auswählen einer Bedienersteuerung 108, die verwendet wird, um eine Eingabe für einen Kandidatenschlüssel bereitzustellen usw. Als Nächstes bestimmt der Computer 104 in einem Block 174, ob eine Eingabe in eine Bedienersteuerung 108 empfangen wurde, z. B. durch Überwachen während einer Zeitüberschreitung. Wie vorstehend beschrieben. Wenn eine Eingabe empfangen wird, geht der Prozess 170 zu einem Block 176 über. Andernfalls geht der Prozess 170 zu einem Block 184 über.
-
In dem Block 176 berechnet der Computer 104 den Kandidatenschlüsselwert neu, d. h. wie in dem Block 172 initialisiert oder wie in einem vorherigen Durchlauf des Blocks 176 neu berechnet. Zum Beispiel wird Neuberechnen des Kandidatenschlüsselwerts durch Tabelle 4 veranschaulicht und hinsichtlich dieser vorstehend erörtert.
-
Als Nächstes bestimmt der Computer 104 in einem Block 178, ob der von dem Block 176 ausgegebene Kandidatenschlüssel mit einem gespeicherten Schlüssel übereinstimmt, z. B. wie vorstehend beschrieben. Falls nein, geht der Prozess 170 zu einem Block 180 über. Fall ja, geht der Prozess 170 zu einem Block 182 über.
-
In dem Block 180 bestimmt der Computer 104, ob erwartet wird, dass eine weitere Eingabe einen Kandidatenschlüssel bildet, der mit einem gespeicherten Schlüssel verglichen werden kann, z. B. auf Grundlage einer gespeicherten Anzahl von erwarteten Ziffern, einer Anzahl von Ziffern in einem gespeicherten Schlüssel (unter Berücksichtigung von Auffüllen) usw. Wenn eine weitere Eingabe erwartet wird, dann kehrt der Prozess 170 zu dem Block 174 zurück. Andernfalls geht der Prozess 170 zu dem Block 184 über.
-
In dem Block 182 gibt der Computer 104, wenn der Kandidatenschlüssel mit dem gespeicherten Schlüssel übereinstimmt, eine Autorisierung aus, z. B., um einen Betriebsmodus zu befähigen, um Benutzerzugriff auf eine oder mehrere Komponenten eines Fahrzeugs 102 zu gestatten usw.
-
In dem Block 184, der auf einen der Blöcke 174, 180, 184 folgen kann, bestimmt der Computer 104, den Validierungsmodus zu verlassen, und löscht den Kandidatenschlüsselwert und andere initialisierte Werte, wie etwa den Multiplikator, aus dem Speicher. Im Anschluss an den Block 184 endet der Prozess 170.
-
Computerausführbare Anweisungen können von Computerprogrammen zusammengestellt oder interpretiert werden, die unter Verwendung einer Reihe von Programmiersprachen und/oder -techniken erstellt wurden, die entweder allein oder in Kombination Folgendes ohne Einschränkung beinhalten: Java™, C, C++, Visual Basic, Java Script, Perl, HTML usw. Im Allgemeinen empfängt ein Prozessor (z. B. ein Mikroprozessor) Anweisungen, z. B. von einem Speicher, einem computerlesbaren Medium usw., und führt diese Anweisungen aus, wodurch er einen oder mehrere Prozesse durchführt, die einen oder mehrere der in dieser Schrift beschriebenen Prozesse beinhalten. Derartige Anweisungen und andere Daten können unter Verwendung einer Reihe von durch den Computer 104 lesbaren Medien gespeichert und übertragen werden. Eine Datei in einer vernetzten Vorrichtung ist im Allgemeinen eine Sammlung von Daten, die auf einem computerlesbaren Medium, wie etwa einem Speichermedium, einem Direktzugriffsspeicher usw. gespeichert sind. Ein computerlesbares Medium beinhaltet ein beliebiges Medium, das an der Bereitstellung von Daten (z. B. Anweisungen) beteiligt ist, die von einem Computer gelesen werden können. Ein derartiges Medium kann viele Formen annehmen, die nichtflüchtige Medien, flüchtige Medien usw. beinhalten können, ohne darauf beschränkt zu sein. Nichtflüchtige Medien beinhalten zum Beispiel optische oder magnetische Festplatten und andere Dauerspeicher. Flüchtige Medien beinhalten dynamischen Direktzugriffsspeicher (dynamic random access memory - DRAM), der typischerweise einen Hauptspeicher bezeichnet. Gängige Formen computerlesbarer Medien beinhalten zum Beispiel eine Diskette, eine Folienspeicherplatte, eine Festplatte, ein Magnetband, ein beliebiges anderes magnetisches Medium, eine CD-ROM, eine DVD, ein beliebiges anderes optisches Medium, ein beliebiges anderes physisches Medium mit Lochmustern, einen RAM, einen PROM, einen EPROM, einen FLASH-EEPROM, einen beliebigen anderen Speicherchip oder eine beliebige andere Speicherkassette oder ein beliebiges anderes Medium, das durch einen Computer ausgelesen werden kann.
-
Der Ausdruck „beispielhaft“ wird in dieser Schrift in dem Sinne verwendet, dass er ein Beispiel angibt, z. B. sollte eine Bezugnahme auf ein „beispielhaftes Gerät“ lediglich als Bezugnahme auf ein Beispiel eines Geräts gelesen werden.
-
Die Verwendung von „als Reaktion auf‟, „auf Grundlage von“ und „wenn bestimmt wird, dass“ in dieser Schrift gibt eine kausale Beziehung an, nicht nur eine rein zeitliche Beziehung. In den Zeichnungen geben dieselben Bezugszeichen dieselben Elemente an. Ferner könnten einige oder alle dieser Elemente geändert werden. Hinsichtlich der in dieser Schrift beschriebenen Medien, Prozesse, Systeme, Verfahren usw. versteht es sich, dass, obwohl die Schritte derartiger Prozesse usw. als gemäß einer gewissen geordneten Sequenz erfolgend beschrieben worden sind, die beschriebenen Schritte bei der Ausführung derartiger Prozesse in einer Reihenfolge durchgeführt werden könnten, bei der es sich nicht um die in dieser Schrift beschriebene Reihenfolge handelt, es sei denn, es ist etwas anderes angegeben oder erschließt sich aus dem Zusammenhang. Gleichermaßen versteht es sich ferner, dass bestimmte Schritte gleichzeitig durchgeführt werden können, dass andere Schritte hinzugefügt oder dass bestimmte, in dieser Schrift beschriebene Schritte ausgelassen werden können. Anders ausgedrückt werden die Beschreibungen von Prozessen in dieser Schrift zur Veranschaulichung bestimmter Ausführungsformen bereitgestellt und sollten keinesfalls dahingehend ausgelegt werden, dass sie die beanspruchte Erfindung einschränken.
-
Die Offenbarung wurde auf veranschaulichende Weise beschrieben und es versteht sich, dass die Terminologie, die verwendet wurde, beschreibenden und nicht einschränkenden Charakters sein soll. In Anbetracht der vorstehenden Lehren sind viele Modifikationen und Variationen der vorliegenden Offenbarung möglich und kann die Offenbarung anders als konkret beschrieben umgesetzt werden. Die vorliegende Erfindung soll lediglich durch die folgenden Patentansprüche begrenzt sein.
-
Gemäß der vorliegenden Erfindung ist eine Maschine bereitgestellt, die Folgendes aufweist: eine Vielzahl von Bedienersteuerungen, die in einem Betriebsmodus befähigt sind, die Maschine zu betreiben, und in einem Validierungsmodus gesperrt sind, die Maschine zu betreiben, und auswählbar sind, um Eingaben für einen Kandidatenschlüssel bereitzustellen; eine Rechenvorrichtung, die kommunikativ an die Bedienersteuerungen gekoppelt ist, wobei die Rechenvorrichtung zu Folgendem programmiert ist: Initialisieren des Validierungsmodus, was Initialisieren des Kandidatenschlüssels und eines Eingabemultiplikators beinhaltet, wobei der Eingabemultiplikator gemäß einer Zahlenbasis und einer maximalen Speicherlänge eines gespeicherten Schlüssels initialisiert wird; Empfangen einer Vielzahl von Eingaben in die Bedienersteuerungen im Validierungsmodus; Bestimmen entsprechender numerischer Werte der Eingaben; Addieren des Kandidatenschlüssels zu einem Produkt des Multiplikators und des numerischen Werts einer ersten Eingabe, um den Kandidatenschlüssel zu aktualisieren; für jede von einer oder mehreren zweiten Eingaben in die Bedienersteuerungen nach der ersten Eingabe in die Bedienersteuerungen, Bestimmen, ob der Kandidatenschlüssel mit dem gespeicherten Schlüssel übereinstimmt; und wenn bestimmt wird, dass der Kandidatenschlüssel mit dem gespeicherten Schlüssel übereinstimmt, Ausgeben einer Autorisierung.
-
Gemäß einer Ausführungsform ist die Erfindung ferner dazu konfiguriert, eine oder mehrere Komponenten der Maschine zu aktivieren, wenn die Autorisierung ausgegeben wird.
-
Gemäß einer Ausführungsform ist die Rechenvorrichtung ferner dazu programmiert, den Validierungsmodus zu verlassen, ohne die Autorisierung auszugeben, wenn bestimmt wird, dass mehr als eine vorbestimmte Zeitdauer verstrichen ist, ohne eine der Eingaben zu empfangen.
-
Gemäß einer Ausführungsform ist die Rechenvorrichtung ferner dazu programmiert, den Validierungsmodus zu verlassen, ohne die Autorisierung auszugeben, wenn bestimmt wird, dass der Kandidatenschlüssel nicht mit dem gespeicherten Schlüssel übereinstimmt und eine Anzahl der Vielzahl von Eingaben mit einer Anzahl von erwarteten Eingaben übereinstimmt. Gemäß einer Ausführungsform wird die Zahlenbasis durch eine Anzahl möglicher Eingaben für eine einzelne Position des gespeicherten Schlüssels bestimmt.
-
Gemäß einer Ausführungsform basiert der gespeicherte Schlüssel auf einer Vielzahl von Kalibrierungseingaben, die in einem Kalibrierungsmodus bereitgestellt werden.
-
Gemäß einer Ausführungsform werden die Kalibrierungseingaben in einer vorbestimmten Teilmenge der in der Maschine beinhalteten Bedienersteuerungen empfangen.
-
Gemäß einer Ausführungsform wird der gespeicherte Schlüssel auf die Rechenvorrichtung heruntergeladen.
-
Gemäß einer Ausführungsform beinhaltet der gespeicherte Schlüssel Auffüllen, um eine Differenz zwischen einer Speicherlänge einer erwarteten Anzahl von Eingaben und der maximalen Speicherlänge zu berücksichtigen.
-
Gemäß einer Ausführungsform ist die Rechenvorrichtung ferner dazu programmiert, den Kandidatenschlüssel im Speicher zu löschen, wenn bestimmt wird, den Validierungsmodus zu verlassen.
-
Gemäß einer Ausführungsform ist die Maschine ein Fahrzeug.
-
Gemäß einer Ausführungsform ist die Rechenvorrichtung eine elektronische Steuereinheit in dem Fahrzeug.
-
Gemäß einer Ausführungsform beinhalten die Bedienersteuerungen mindestens eines von einem Blinkerwähler, einem Geschwindigkeitssteuerungswähler, einem Scheinwerferaktor, einem Gangwähler, einer Bremssteuerung, einer Drosselsteuerung, einer Lenksteuerung, einer Klimasteuerung, einer Spiegelsteuerung, einer Fenstersteuerung oder einer Verriegelungssteuerung.
-
Gemäß einer Ausführungsform ist es dem Fahrzeug gestattet, sich nur dann zu bewegen, wenn es sich im Betriebsmodus befindet.