-
Die Erfindung betrifft eine Vorrichtung sowie ein Verfahren zum Anpassen von Zeitstempeln bei der Erfassung von Sensordaten.
-
Stand der Technik
-
Gemessene Sensordaten verschiedener Sensorsysteme, wie beispielsweise Inertial-, Kamera und Schallsensoren werden mit Zeitstempeln versehen, um die Messdaten gezielt verknüpfen und verarbeiten zu können. Üblicherweise werden die verschiedenen Sensorsysteme von jeweils verschiedenen internen Taktgebern angetrieben. Somit besteht zwischen den Sensorsystemen keine Synchronität. Jedes System kann mit unterschiedlicher Genauigkeit und über die Zeit mit veränderlicher Frequenz arbeiten. Insbesondere, wenn die Sensordaten auf dem jeweiligen Sensorsystem in einer FIFO (First Input First Output) -Datenstruktur gesammelt werden, erschwert sich später die Zuordnung der gemessenen Sensordaten verschiedener Sensorsysteme. Daher werden die Zeitstempel der einzelnen Sensorsysteme von einer übergeordneten Instanz, beispielsweise einem Sensorhub, Applikationsprozessor eines mobilen Gerätes oder einem Hostsystem auf eine gemeinsame Zeitbasis gebracht, um eine Relation einzelner Sensordaten zueinander zu ermöglichen. Diese zeitliche Synchronisation von Sensordaten kann durch verschiedene Verfahren erreicht werden. Beispielsweise können die Taktgeber der Sensorsysteme in ihrer Frequenz angepasst werden. Des Weiteren können mögliche Frequenzunterschiede zwischen Sensorsystemen ermittelt und nachträglich von einem Hostsystem für eine Anpassung der Zeitstempel verwendet werden. Diese Möglichkeiten der Synchronisation funktionieren allerdings nur, wenn Ressourcenkonflikte vernachlässigt werden können. Andernfalls kann es durch verschiedene nicht berücksichtigte Einflüsse wie beispielsweise Temperatur zu einer Verfälschung in der Anpassung der Zeitbasis unterschiedlicher Sensorsysteme kommen.
-
Offenbarung der Erfindung
-
Die der Erfindung zugrunde liegende Aufgabe kann darin gesehen werden, ein Verfahren zum Detektieren und zum Korrigieren von zeitlichen Anomalien bei Kommunikationsvorgängen zwischen Sensorsystemen und Hostsystemen vorzuschlagen.
-
Diese Aufgabe wird mittels des jeweiligen Gegenstands der unabhängigen Ansprüche gelöst. Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand von jeweils abhängigen Unteransprüchen.
-
Nach einem Aspekt der Erfindung wird ein Verfahren zur Synchronisierung von Sensordaten mindestens eines Sensorsystems mit der Host-Zeitbasis eines Hostsystems bereitgestellt. Die Synchronisierung erfolgt auf der Basis des Taktverhältnisses zwischen der Sensor-Zeitbasis des mindestens einen Sensorsystems und der Host-Zeitbasis des Hostsystems. Zur Ermittlung des Taktverhältnisses für mindestens zwei Kommunikationsvorgänge zwischen dem Hostsystem und dem mindestens einen Sensorsystem wird jeweils eine Zeitstempelerfassung vorgenommen, bei der jeweils ein Sensor-Zeitstempel der jeweiligen Sensor-Zeitbasis und ein Host-Zeitstempel der jeweiligen Host-Zeitbasis erfasst werden. Alle Kommunikationsvorgänge zur Ermittlung des Taktverhältnisses beziehen sich auf eine definierte Datenmenge, wobei das Taktverhältnis wiederholt ermittelt und aktualisiert wird. Erfindungsgemäß wird jeweils die Dauer der einzelnen Kommunikationsvorgänge zur Zeitstempelerfassung erfasst, wobei durch Vergleich der jeweils erfassten Dauer eines Kommunikationsvorganges mit einem Vergleichswert etwaige Unregelmäßigkeiten bei diesem Kommunikationsvorgang erkannt werden.
-
Es werden Sensordaten von mindestens einem Sensorsystem gemessen und über mindestens eine Kommunikationsverbindung an das Hostsystem übermittelt. Das Hostsystem kann beispielsweise ein Applikationsprozessor oder ein Sensorhub sein. Die Kommunikationsverbindung kann beispielsweise eine I2C- oder SPI-Schnittstelle sein. Alternativ oder zusätzlich kann das mindestens eine Sensorsystem über eine indirekte Kommunikationsverbindung mit dem Hostsystem verbunden sein. Das mindestens eine Sensorsystem kann beispielsweise über einen oder mehrere Mikrocontroller drahtgebunden und/oder drahtlos mit dem Hostsystem kommunizieren. Mögliche Sensorsysteme können beispielsweise MEMS-Inertialsensoren, Kamerasensoren, Schallsensoren, Temperatursensoren, Drucksensoren und dergleichen sein. Die Sensorsysteme sind hierbei dafür geeignet ihre jeweiligen aktuellen Zeitinformationen beispielsweise in Form eines Zählers, dem Hostsystem zugänglich zu machen. Da sowohl Sensorsysteme als auch das Hostsystem grundsätzlich fehlerbehaftet sein können, ergeben sich unterschiedliche Zeitbasen für die jeweiligen Systeme. Diese Unterschiede werden durch äußere Einflüsse und Alterungsprozesse zusätzlich verstärkt. Beispielsweise kann eine Änderung einer Temperatur eines Systems Einfluss auf eine Frequenz eines Systems und somit auch auf die entsprechende Zeitbasis haben. Hierdurch können sich insbesondere Frequenzen und die Zeitbasen unterschiedlicher Systeme relativ zueinander verändern. Die von den Sensorsystemen gemessenen Sensordaten können von dem Hostsystem zusammen mit der jeweiligen Sensorzeit ausgelesen werden. Dies kann sowohl über eine FIFO-Schnittstelle als auch in Form eines direkten Datenregister-Zugriffes erfolgen. Das Hostsystem kann eine gesamte Zugriffsdauer bzw. eine Dauer eines über eine Kommunikationsverbindung durchgeführten Kommunikationsvorganges mit mindestens einem Sensorsystem messen. Zu einem Beginn des Kommunikationsvorganges wird von dem Hostsystem ein Startzeitstempel erstellt und gespeichert. Nach einer erfolgreich abgeschlossenen Datenübertragung bzw. am Ende des Kommunikationsvorganges wird von dem Hostsystem ein Endzeitstempel erstellt. Basierend auf dem Startzeitstempel und dem Endzeitstempel kann das Hostsystem eine Dauer des Kommunikationsvorganges messen oder berechnen. Eine erfasste Dauer eines Kommunikationsvorganges kann anschließend mit einem Vergleichswert abgeglichen werden. Durch einen Vergleich einer Dauer eines Kommunikationsvorganges mit einem Vergleichswert können etwaige Unregelmäßigkeiten bei diesem Kommunikationsvorgang identifiziert werden. Es können beispielsweise Referenzwerte als Vergleichswerte für eine Dauer eines Kommunikationsvorganges ermittelt werden. Beispielsweise können Kommunikationsvorgänge bei einer minimalen Auslastung des Hostsystems als Referenz für einen Vergleich geeignet sein. Es können auch aus mehreren unterschiedlichen Kommunikationsvorgängen ein oder mehrere Vergleichswerte für eine Dauer bestimmt werden. Somit können beispielsweise durch Ressourcenkonflikte verursachte Verzögerungen der Kommunikationsvorgänge erkannt werden.
-
Gemäß einer Ausführungsform der Erfindung wird die Dauer mindestens eines Kommunikationsvorganges zur Zeitstempelerfassung erfasst, wobei der Vergleichswert auf der Basis dieses mindestens einen erfassten Wertes für die Kommunikationsdauer bestimmt wird. Eine Dauer eines gegenwärtigen bzw. eines oder von mehreren zuletzt durchgeführten Kommunikationsvorgängen kann hierbei zum Definieren eines Vergleichswertes verwendet werden. Es kann somit ein Vergleich des zuletzt durchgeführten Kommunikationsvorganges mit einem oder mehreren vergangenen Kommunikationsvorgängen erfolgen. Hierdurch kann eine Überprüfung der zuletzt durchgeführten Kommunikationsvorgänge durch bisherige Kommunikationsvorgänge erfolgen. Insbesondere können somit Abweichungen identifiziert und anschließend beispielsweise durch Anpassen der entsprechenden Zeitstempel korrigiert werden.
-
Nach einer weiteren Ausführungsform der Erfindung wird die Dauer der Kommunikationsvorgänge zur Zeitstempelerfassung regelmäßig erfasst, wobei der Vergleichswert auf der Basis von mehreren so erfassten Werten die Kommunikationsdauer bestimmt und regelmäßig aktualisiert wird. Durch Hinzuziehen von mehreren Kommunikationsvorgängen zur Ermittlung eines Vergleichswertes für eine Kommunikationsdauer können geringfügige Unregelmäßigkeiten und Abweichungen ausgeglichen werden. Der Vergleichswert kann beispielsweise nach jedem durchgeführten Kommunikationsvorgang, in definierten zeitlichen Abständen oder nach einer bestimmten Anzahl an Kommunikationsvorgängen ermittelt werden.
-
Gemäß einer weiteren vorteilhaften Ausführungsform der Erfindung wird als Vergleichswert eine mittlere Kommunikationsdauer oder eine minimale Kommunikationsdauer bestimmt. Im Verlauf von mehreren durchgeführten Kommunikationsvorgängen kann eine durchschnittliche bzw. eine mittlere Dauer eines Kommunikationsvorganges berechnet und als Vergleichswert festgelegt werden. Die mittlere Dauer eines derartigen Kommunikationsvorganges kann anschließend mit nachfolgenden Messungen der jeweiligen Dauer des Kommunikationsvorganges verglichen werden. Eine auftretende Abweichung der gemessenen Dauer von der mittleren Kommunikationsdauer kann auf einen aufgetretenen Ressourcenkonflikt bei einem Lesevorgang der Sensordaten hindeuten. Die Berechnung der mittleren Kommunikationsdauer eines Kommunikationsvorganges kann hierbei regelmäßig oder unregelmäßig durchgeführt werden, sodass die mittlere Kommunikationsdauer in definierten Zeitabständen aktualisiert werden kann. Wenn eine Abweichung einer gemessenen Dauer eines Kommunikationsvorganges von einer mittleren Kommunikationsdauer festgestellt werden konnte, kann das Hostsystem basierend auf der durchschnittlichen Dauer eines Kommunikationsvorganges die erstellten Zeitstempel anpassen. Hierdurch kann eine Varianz in der Dauer verschiedener Kommunikationsvorgänge minimiert werden. Des Weiteren können hierdurch negative Einflüsse auf eine Synchronisation von gemessenen Sensordaten mit dem Hostsystem in Form von Hardware- und/oder Softwareverzögerungen detektiert und kompensiert werden. Somit kann eine insgesamt höhere Genauigkeit der vergebenen Zeitstempel des Kommunikationsvorganges realisiert werden, die in einer höheren Genauigkeit in einer Sensordatenfusion und der darauf basierenden Algorithmen und Berechnungen resultiert. Die mittlere Kommunikationsdauer muss hierbei nicht zwangsweise in Form eines mathematischen Durchschnittes definiert sein. Alternativ kann der Vergleichswert auch auf Basis von einer minimalen Kommunikationsdauer bestimmt werden. Beispielsweise kann hierzu aus mehreren vergangenen Kommunikationsdauern eine minimale Kommunikationsdauer ermittelt werden.
-
Nach einer weiteren Ausführungsform der Erfindung wird eine Unregelmäßigkeit bei einem Kommunikationsvorgang zur Zeitstempelerfassung erkannt, wenn die erfasste Dauer dieses Kommunikationsvorganges vom Vergleichswert abweicht und außerhalb eines vorgebbaren Toleranzbereiches liegt. Wenn eine Abweichung der Kommunikationsdauer von dem Vergleichswert den Toleranzbereich übersteigt, kann eine Unregelmäßigkeit in diesem Kommunikationsvorgang festgestellt werden. Hierdurch können kleine Schwankungen in einer Dauer einer Kommunikationsverbindung unberücksichtigt bleiben und einen Korrekturaufwand bzw. einen Rechenaufwand reduzieren. Insbesondere können hierdurch natürliche Schwankungen und Unregelmäßigkeiten der Systeme, wie beispielsweise Grundrauschen, ausgeblendet werden.
-
Gemäß einer weiteren vorteilhaften Ausführungsform der Erfindung wird der Host-Zeitstempel einer Zeitstempelerfassung korrigiert und/oder durch einen berechneten Host-Zeitstempel ersetzt, wenn eine Unregelmäßigkeit beim Kommunikationsvorgang dieser Zeitstempelerfassung erkannt wurde. Durch verschiedene Ressourcenkonflikte, wie beispielsweise Scheduling-Entscheidungen des Hostsystems oder Verzögerungen in einer Hostsystem-Sensorsystem-Kommunikation können die relativen zeitlichen Verhältnisse zwischen Sensorsystemen und Hostsystemen fehlerbehaftet sein. Daraus resultiert eine fehlerhafte Berechnung der Zeitstempel einzelner oder mehrerer Sensorevents bzw. Kommunikationsvorgänge. Im Falle einer Störung im Hostsystem sind Zeitstempel aller mit dem Hostsystem verbundener Sensorsysteme von einer fehlerhaften zeitlichen Zuordnung betroffen. Es kann ein oder mehrere Zeitstempel mindestens eines gegenwärtigen Kommunikationsvorganges dahingehend korrigiert werden, dass eine zeitliche Abweichung zwischen mindestens einem Sensorsystem und dem Hostsystem reduziert oder beseitigt wird. Anstatt einer Korrektur eines vom Hostsystem gesetzten Zeitstempels kann ein neuer Zeitstempel gesetzt werden, der den bisherigen fehlerhaften Zeitstempel ersetzt. Es können beispielsweise zusätzliche Informationen zu einem fehlerhaften Zeitstempel hinterlegt werden, sodass dieser bei einer weiteren Verarbeitung der Sensordaten beispielsweise unberücksichtigt bleibt. Alternativ kann ein fehlerhafter Zeitstempel gelöscht und durch einen korrigierten neuen Zeitstempel ersetzt werden.
-
Nach einer weiteren bevorzugten Ausführungsform der Erfindung werden bei der Ermittlung des Taktverhältnisses zwischen der Sensor-Zeitbasis des mindestens einen Sensorsystems und der Host-Zeitbasis des Hostsystems die Beiträge der einzelnen Zeitstempelerfassungen gewichtet, wobei diese Gewichtung in Abhängigkeit von der erfassten Dauer des zugrunde liegenden Kommunikationsvorganges erfolgt. Alternativ oder zusätzlich zu einer direkten Korrektur oder Kompensation der Zeitstempel kann abhängig von der festgestellten Abweichung ein Gewichtungsfaktor berechnet werden. Der Gewichtungsfaktor kann beispielsweise in Form eines Quotienten aus einer Dauer eines gegenwärtigen Kommunikationsvorganges und der durchschnittlichen Dauer eines Kommunikationsvorganges realisiert werden.
-
Gemäß einer weiteren Ausführungsform der Erfindung erfolgt eine Gewichtung des Beitrags einer Zeitstempelerfassung nur dann, wenn eine Unregelmäßigkeit beim Kommunikationsvorgang dieser Zeitstempelerfassung erkannt wurde, wobei dazu ein Gewichtungsfaktor auf der Basis der Abweichung der aktuell erfassten Kommunikationsdauer vom Vergleichswert bestimmt wird. Durch die Gewichtung können auch durch Unregelmäßigkeiten behaftete Kommunikationsdauern in der Ermittlung eines Vergleichswertes berücksichtigt werden. Hierbei kann abhängig von einer Höhe der Abweichung einer Kommunikationsdauer von dem Vergleichswert ein Gewichtungsfaktor gewählt werden. Beispielsweise kann bei einer geringen Abweichung ein hoher Gewichtungsfaktor und bei einer hohen Abweichung ein geringer Gewichtungsfaktor gewählt werden.
-
Nach einem weiteren Aspekt der Erfindung wird eine Vorrichtung mit Mitteln zur Durchführung des erfindungsgemäßen Verfahrens bereitgestellt. Die Vorrichtung weist ein Hostsystem mit einer Host-Zeitbasis und mindestens einen Sensorsystem mit einer eigenen Sensor-Zeitbasis auf. Die Vorrichtung weist Mittel zum Auslesen der Sensor-Zeitstempel und mindestens eine Kommunikationsverbindung zwischen dem mindestens einen Sensorsystem und dem Hostsystem auf.
-
Eine derartige Vorrichtung kann beispielsweise ein tragbares Gerät, wie beispielsweise ein Smartphone oder Tablet sein. Hierbei können Beschleunigungssensoren, Helligkeitssensoren, Lagesensoren, Temperatursensoren und dergleichen jeweils unterschiedliche Sensorsysteme darstellen, die mit einem Hostsystem über Kommunikationsverbindungen verbunden sind. Das Hostsystem kann beispielsweise ein Applikationsprozessor des Gerätes bzw. der Vorrichtung sein, dazu ausgelegt die gemessenen Sensordaten der Sensorsysteme auszulesen und zu verarbeiten. Alternativ kann eine derartige Vorrichtung eine beliebige Messvorrichtung wie beispielsweise ein Radarsystem oder ein LIDAR (Light Detection and Ranging)-System sein. Die Sensordaten werden hierbei in definierten Zeitabständen von dem Hostsystem abgerufen und weitergeleitet, gespeichert oder weiterverarbeitet. Bei einem Zugriff des Hostsystems auf mindestens ein Sensorsystem können die gemessenen Sensordaten mit entsprechenden Zeitdaten bzw. Zeitstempeln des Sensorsystems von dem Hostsystem ausgelesen werden. Hierbei kann das Hostsystem vor dem Zugriff einen Startzeitstempel und nach einem erfolgreich beendeten Zugriff einen Endzeitstempel auf Basis der Hostsystem-Zeit vergeben. Anhand der beiden Zeitstempel kann das Hostsystem eine Dauer der Zugriffzeit bzw. eines Kommunikationsvorganges über die Kommunikationsverbindung berechnen. Dies geschieht durch Subtraktion der Startzeit von der Endzeit für jeden Kommunikationsvorgang. Aus bereits durchgeführten Kommunikationsvorgängen kann ein Vergleichswert berechnet werden. Der Vergleichswert kann anschließend mit einer Dauer eines gegenwärtigen oder kürzlich durchgeführten Kommunikationsvorganges verglichen werden. Wird eine Abweichung festgestellt, kann dies auf eine Verzögerung oder einen Fehler bei einer Synchronisation zwischen dem mindestens einen Sensorsystem und dem Hostsystem hindeuten. Somit kann bei dem Kommunikationsvorgang, bei dem eine Abweichung festgestellt wurde, mindestens ein Zeitstempel direkt oder indirekt korrigiert oder ersetzt werden.
-
Im Folgenden werden anhand von stark vereinfachten schematischen Darstellungen bevorzugte Ausführungsbeispiele der Erfindung näher erläutert. Hierbei zeigen
- 1 eine schematische Darstellung einer Vorrichtung gemäß einem ersten Ausführungsbeispiel,
- 2 einen schematischen Ablauf eines Kommunikationsvorganges,
- 3 eine erkannte Abweichung einer Dauer eines Kommunikationsvorganges nach dem Verfahren gemäß dem ersten Ausführungsbeispiel und
- 4 eine Korrektur eines abweichenden Zeitstempels nach dem Verfahren gemäß dem ersten Ausführungsbeispiel.
-
In den Figuren weisen dieselben konstruktiven Elemente jeweils dieselben Bezugsziffern auf.
-
Die 1 zeigt eine schematische Darstellung einer Vorrichtung 1 gemäß einem ersten Ausführungsbeispiel. Die Vorrichtung 1 weist ein Hostsystem 2 in Form eines Applikationsprozessors 2 auf. Das Hostsystem 2 ist über mehrere Kommunikationsverbindungen 4 mit mehreren Sensorsystemen 6 verbunden. Die Sensorsysteme 6 sind gemäß dem Ausführungsbeispiel ein Temperatursensor 6, 8, ein Beschleunigungssensor 6, 10 und ein Helligkeitssensor 6, 12. Über die Kommunikationsverbindungen 4 werden aus den Sensorsystemen 6 die gemessenen Sensordaten 14 in regelmäßigen Zeitabständen 16 vom Hostsystem 2 abgerufen.
-
In der 2 ist ein schematischer Ablauf von zwei Kommunikationsvorgängen 18 dargestellt. Hierbei sind eine Zeitachse eines Sensorsystems 6 und eine Zeitachse des Hostsystems 2 gezeigt. Das Hostsystem 2 initiiert in regelmäßigen Zeitabständen 16 Kommunikationsvorgänge 18 zum Auslesen von Sensordaten 14. Die Sensordaten 14 sind hier beispielsweise gemessene Temperaturwerte. Neben den Sensordaten 14 werden auch die zeitlichen Informationen 20 des Sensorsystems 6 zu den jeweiligen Sensordaten 14 übermittelt. Zu Beginn eines Kommunikationsvorganges 18 erstellt das Hostsystem 2 einen Startzeitstempel t1. Nach einem erfolgreichen Abschluss des Kommunikationsvorganges 18 wird ein Endzeitstempel t2 von dem Hostsystem 2 erstellt. Der Startzeitstempel t1 und Endzeitstempel t2 basieren hierbei auf einer Zeitbasis des Hostsystems 2. Bei beiden Kommunikationsvorgängen 18 wird die jeweilige Dauer tk der Kommunikationsvorgänge 18 aus den Startzeitstempeln t1 und Endzeitstempeln t2 berechnet. Bereits aus zwei ermittelten Dauern tk kann eine durchschnittliche Dauer td eines Kommunikationsvorganges 18 als Vergleichswert tv berechnet werden. Der Durchschnitt kann beispielsweise ein arithmetisches Mittel sein. Bei jedem weiteren durchgeführten Kommunikationsvorgang 18 wird ebenfalls eine Dauer tk des Kommunikationsvorganges 18 berechnet und in die Berechnung der durchschnittlichen Dauer td eines Kommunikationsvorganges 18 einbezogen. Mit zunehmender Anzahl an durchgeführten Kommunikationsvorgängen 18 kann eine zunehmend genauere Aussage über eine durchschnittliche Dauer td eines Kommunikationsvorganges 18 getroffen werden.
-
Die 3 zeigt eine Abweichung 22 einer Dauer tk eines Kommunikationsvorganges 18 nach dem Verfahren gemäß dem ersten Ausführungsbeispiel. Anhand von in der Vergangenheit durchgeführten Kommunikationsvorgängen 17 wurde eine durchschnittliche Dauer td als Vergleichswert tv eines Kommunikationsvorganges 17, 18 ermittelt. Bei einem zuletzt durchgeführten Kommunikationsvorgang 18 wurde eine Dauer tk des Kommunikationsvorganges 18 berechnet, die größer als die durchschnittliche Dauer td, tv ist. Somit liegt gemäß dem Ausführungsbeispiel bei dem zuletzt durchgeführten Kommunikationsvorgang 18 eine zeitliche Abweichung 22 und damit eine erkannte Unregelmäßigkeit 22 vor. Die Dauer tk des Kommunikationsvorganges 18 wird durch die Abweichung 22 nicht bei der Berechnung der durchschnittlichen Dauer td eines Kommunikationsvorganges 17 berücksichtigt.
-
In der 4 ist eine Korrektur eines abweichenden Endzeitstempels t2 nach dem erfindungsgemäßen Verfahren gemäß dem ersten Ausführungsbeispiel gezeigt. Aufgrund der in 3 gezeigten Abweichung 22 wird der Endzeitstempel t2 entsprechend der Abweichung 22 korrigiert. Gemäß dem Ausführungsbeispiel wird der Endzeitstempel t2 um einen zeitlichen Betrag der Abweichung 22 von dem Hostsystem 2 verschoben und gespeichert.