DE102008061093B4 - Verfahren zur Realisierung von Zugriffen auf einen nichtflüchtigen Speicher mittels eines computerausführbaren Programms - Google Patents

Verfahren zur Realisierung von Zugriffen auf einen nichtflüchtigen Speicher mittels eines computerausführbaren Programms Download PDF

Info

Publication number
DE102008061093B4
DE102008061093B4 DE102008061093.3A DE102008061093A DE102008061093B4 DE 102008061093 B4 DE102008061093 B4 DE 102008061093B4 DE 102008061093 A DE102008061093 A DE 102008061093A DE 102008061093 B4 DE102008061093 B4 DE 102008061093B4
Authority
DE
Germany
Prior art keywords
memory
data
section
type
type identification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102008061093.3A
Other languages
English (en)
Other versions
DE102008061093A1 (de
Inventor
Frank Wolz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102008061093.3A priority Critical patent/DE102008061093B4/de
Publication of DE102008061093A1 publication Critical patent/DE102008061093A1/de
Application granted granted Critical
Publication of DE102008061093B4 publication Critical patent/DE102008061093B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Read Only Memory (AREA)

Abstract

Parametrierbare Einrichtung zum Betrieb eines Servomotors, wobei die Einrichtung einen nichtflüchtigen Speicher mit serieller Schnittstelle umfasst, in dem Parameter der Einrichtung und ein Typenkennungsabschnitt des Speichers abgelegt sind, sowie ein Mittel zur Verarbeitung der in dem Speicher abgelegten Parameter umfasst, wobei das Mittel als Speicherzugriffsmittel derart realisiert ist, dass ein Zugriff auf den Speicher mittels eines maschinenlesbaren Programms erfolgt, wobei in dem Typenkennungsabschnitt zur Implementierung eines Speicherzugriffes erforderliche Daten abgespeichert sind, wobei das maschinenlesbare Programm generische Routinen aufweist, welche erst während der Ausführung des maschinenlesbaren Programms unter Verwendung der Daten aus dem Typenkennungsabschnitt des nichtflüchtigen Speichers, eine für den nichtflüchtigen Speicher spezifische Funktion erfüllen, wobei das Mittel zur Verarbeitung der in dem Speicher abgelegten Parameter konfiguriert ist durchzuführen:
a) eine Routine zur Ermittlung des Beginns des Typenkennungsabschnitts und zur Ermittlung der Speicheradresse, an welcher der Typenkennungsabschnitt abgelegt ist, wobei zur Ermittlung des Beginns des Typenkennungsabschnitts im Speicher eine den Typenkennungsabschnitt betreffende Kennung mittels eines Suchalgorithmus gesucht wird und die Speicheradresse der Kennung ermittelt wird;
b) Auslesen der Daten des Typenkennungsabschnittes und der Versionskennzeichnung des Speichers aus dem Speicher mittels des Speicherzugriffsmittels;
c) Auswerten der bei dem Schritt b) ausgelesenen Daten des Typenkennungsabschnitts durch Ableiten der Anordnung der Daten im Typenkennungsabschnitt aus einer Versionskennzeichnung;
d) Selbsttätige Konfiguration der für den Speicherzugriff relevanten Programmabschnitte des Programms durch das Programm selbst während seiner Ausführung unter Berücksichtigung der ausgelesenen Daten des Typenkennungsabschnittes, wobei die ausgelesenen Daten des Typenkennungsabschnittes die Speichergeometrie und/oder die Speicherzugriffszeiten umfassen, um bei einem Zugriff auf den Speicher auf Parameter der Einrichtung den gesamten Speicherbereich adressieren zu können und/oder die für einen Speicherzugriff geforderten Zugriffszeiten zu berücksichtigen.

Description

  • Die Erfindung betrifft eine parametrierbare Einrichtung zum Betrieb eines Servomotors mit Verwendung eines Verfahrens zur Realisierung von Zugriffen auf einen nichtflüchtigen Speicher, insbesondere einen Flash-Speicher, mittels eines computerausführbaren Programms.
  • Am Markt sind eine Vielzahl von Flash-Bausteinen unterschiedlichster Hersteller mit serieller Schnittstelle (SPI) verfügbar. Diese Bausteine können sich durch eine unterschiedliche Granularität der internen Speicherstrukturen, als auch durch ihre Architektur und ihren Befehlssatz unterscheiden. Wird ein solcher Flash-Baustein beispielsweise im Rahmen eines eingebetteten Systems verwendet, so muss ein entsprechendes computerausführbares Progamm (Software-Treiber) implementiert werden, welches zur Ansteuerung des Bausteins dient. Das Programm muss auf einem vom eingebetteten System umfassten Mikrokontroller ablauffähig sein, welcher den Flash-Baustein ansteuert. Häufig realisiert man ein solches Programm für einen ganz konkreten Flash-Baustein oder eine Flash-Bausteinreihe eines favorisierten Herstellers. Die Struktur des Programms wird dann speziell auf den Baustein abgestimmt. Muss nun im Rahmen einer gegebenenfalls erforderlichen Neukonzeption des eingebetteten Systems oder aufgrund von Speichermangel der Baustein gegen einen Baustein mit höherer Speicherkapazität ausgetauscht werden, so wird es erforderlich die für den Baustein spezifischen Module des Programms zu ändern bzw. für den neuen Baustein zu adaptieren. Derselbe Aufwand wird erforderlich, wenn der Speicherbaustein wegen Bauteilabkündigung eventuell gegen den Speicherbaustein eines anderen Herstellers ausgetauscht werden muss.
  • US 2008 / 0 140 916 A1 zeigt ein Verfahren, bei welchem eine Vorrichtung mehrere Speicher unterschiedlichen Typs aufweist, die seriell verbunden sind, so dass Eingabedaten von Speicher zu Speicher seriell weitergeleitet werden. EP 08 40 228 A2 bezieht sich auf eine Rechenvorrichtung, die einen flexiblen und programmierbaren Zugriff auf verschiedene Speicher ermöglicht.
  • Die Erfindung stellt eine parametrierbare Einrichtung zum Betrieb eines Servomotors vor, wie in Anspruch 1 beschrieben. Der Speicher muss dabei einen Typenkennungsabschnitt umfassen, in welchem zur Implementierung eines Speicherzugriffes erforderliche und für den Speicher spezifische und charakteristische Daten abgespeichert sind. Im Rahmen des erfindungsgemäßen Verfahrens werden zunächst die Daten des Typenkennungsabschnittes aus dem Speicher mittels des Speicherzugriffsmittels von dem maschinenlesbaren Programm ausgelesen. Anschließend erfolgt eine selbsttätige Konfiguration der für den Speicherzugriff relevanten Programmabschnitte des maschinenlesbaren Programms durch das maschinenlesbare Programm selbst, wie in Anspruch 1 beschrieben. Dies erfolgt während der Ausführung des Programms beispielsweise im Umfeld eines eingebetteten Systems unter Verwendung eines Mikrocontrollers. Die selbsttätige Konfiguration der Programmabschnitte erfolgt dabei unter Berücksichtigung von aus dem Typenkennungsabschnitt ausgelesenen Daten.
  • Diese Maßnahmen bieten den Vorteil, dass das maschinenlesbare Programm bei Austausch des Speicherbausteins, beispielsweise aus den zuvor genannten Gründen, nicht umgeschrieben oder manuell angepasst werden muss. Eine mittels des Programms realisierte Bausteintreibersoftware ist damit universell verwendbar für eine Vielzahl von unterschiedlichen Speicherbausteinen. Voraussetzung für dieses Konzept ist, dass der Speicher den oben genannten Typenkennungsabschnitt umfasst, welcher remanent im Speicher gespeichert werden sollte.
  • Nachfolgende Tabelle 1 veranschaulicht, wie der Typenkennungsabschnitt realisiert sein könnte. Tabelle 1
    Element Datentyp Wert
    MagicWord LONG 0×11223344
    FIP-Version LONG 0×00010000
  • Die in der Tabelle dargestellten Werte sind in Speicherzellen des Speicherbausteins abgelegt. Tabelle 1 zeigt beispielhaft die Verwendung eines sogenannten „Magic Words“. Die Adresse, an der das „Magic Word“ abgelegt wurde entspricht der Anfangsadresse des im Speicher abgelegten Typenkennungsabschnittes. Die Versionskennung „FIP-Version“ ist in diesem Beispiel nach dem „Magic Word“ abgelegt und kann weitere wichtige Daten bzgl. des Aufbaus des Speicherkennungsabschnittes (siehe Tabelle 2) codieren. Vorzugsweise wird aus dem Speicher gemäß der Tabelle 1 die FIP-Version von dem maschinenlesbaren Programm ausgelesen und die Anordnung der Daten im Typenkennungsabschnitt (Tabelle 2) abgeleitet. Das maschinenlesbare Programm kann sich somit auch selbsttätig für den Zugriff auf den Typenkennungsabschnitt konfigurieren, indem dafür vorgesehene generische Programmroutinen zur Laufzeit adaptiert werden.
  • Tabelle 2 zeigt beispielhaft, wie ein Teil der Speichertypenkennung realisiert sein könnte. Die Spalten „Beispiel 1“ und „Beispiel 2“ stehen repräsentativ für die Typenkennung zweier unterschiedlicher Speichertypen. In der Praxis ist nur eine dieser beiden Spalten realisiert. Der Typenkennungsabschnitt kann neben Daten bezüglich der Speichergröße und bzgl. der Zugriffszeiten auch speicherspezifische Kommandos und Informationen zu Kommandosequenzen umfassen. Aus der Kommandosequenzliste ist ableitbar, in welcher Reihenfolge die Kommandos auszuführen sind. Jede Zeile der Kommandoliste umfasst ein Kommando in folgender Form: Kommandobyte / Infobyte / Dummybytes / ReadyStatus jeweils in hexadezimaler Schreibweise.
  • Jede Zeile der Kommandosequenzliste umfasst eine Kommandosequenz. Die Kommandosequenz (siehe Abschnitt „Kommandosequenzliste“, Spalten Beispiel 1" und „Beispiel 2“ in Tabelle 2) ist mittels für die Kommandos 1 - 11 repräsentativen Zeilennummern (siehe Abschnitt „Kommandoliste“, erste Spalte in Tabelle 2) dargestellt, in denen die sequentiell auszuführenden Kommandos in hexadezimaler Form angegeben sind. Tabelle 2
    Datum Datentyp Beispiel 1 Beispiel 2
    Anzahl der Sektoren im Flash LONG 256 64
    Anzahl der Pages pro Sektor LONG 256 1024
    Anzahl der Bytes pro Page LONG 1056 256
    Programmierzeit einer Page (Max. Page Program Time) [µs] LONG 6.000 7.000
    Löschzeit eines Sektors (Max. Sector Erase Time) [µs] LONG 5.000.000 6.000.000
    Löschzeit einer Page (Max. Page Erase Time) [µs] LONG 35.000 N/A
    Kommandoliste (Kommando / Infobyte / Dummybytes / ReadyStatus)
    1 Flash auslesen (Fast Continuous Read) LONG 0×0B/0×15/1/0×00 0×0B/0×15/1/0×00
    2 Statusregister lesen LONG 0×D7/0×05/0/0×00 0×05/0×05/0/0×00
    3 WriteEnable LONG 0×00000000 (N/A) 0×06/0×00/0/0×00
    4 Sektor löschen LONG 0×7C/0×13/0/0×80 0×D8/0×13/0/0×01
    5 Page löschen LONG 0×81/0×13/0/0×80 0×00000000 (N/A)
    6 Page schreiben (Page Program) LONG 0×00000000 (N/A) 0×02/0×1 E/0/0×01
    7 Page in Puffer übertragen LONG 0×53/0×11/0/0×80 0×00000000 (N/A).
    8 Puffer beschreiben LONG 0×84/0×1 E/0/0×00 0×00000000 (N/A)
    9 Puffer in Page schreiben (ohne Auto-Erase) LONG 0×88/0×10/0/0×80 0×00000000 (N/A)
    10 Puffer in Page schreiben (mit Auto-Erase) LONG 0×83/0×10/0/0×80 0×00000000 (N/A)
    11 Statusregister schreiben LONG 0×00000000 (N/A) 0×01/0×0E/0/0×00
    Ende Kommandoliste LONG 0×FFFFFFFF
    Kommandosequenzliste (Kommandosequenz)
    Flash auslesen 8 Bytes 1/1 1/1
    Statusregister auslesen 8 Bytes 1/2 1/2
    Page schreiben (Page ist bereits gelöscht) 8 Bytes 2/8-9 2/3-6
    Page updaten (inkl. Page löschen) 8 Bytes 3/7-8-10 N/A
    Page löschen 8 Bytes 1/5 N/A
    Sektor löschen 8 Bytes 1/4 2/3-4
    Flash Protection aufheben 8 Bytes N/A 2/3-11 (Schreiben von 0×00 ins Statusregister)
    Ende Sequenzliste LONG 0×FFFFFFFF
    Checksumme 4 Bytes Checksumme, bspw. CRC32
  • Das maschinenlesbare Programm zur Realisierung des erfindungsgemäßen Verfahrens enthält generische Routinen, welche erst während der Ausführung des Programms unter Verwendung der Daten aus dem Typenkennungsabschnitt und/oder der FIP-Version eine für den Baustein spezifische Funktion erfüllen. Zum Auslesen der in den Speicherzellen abgelegten Werte kann das für alle gängigen Speicherbausteine identische Flash-Kommando „Fast Continuous Read“ (0×0B) verwendet werden. Dem Kommando-Byte 0×0B folgen stets 24 Adressbits und 1 Byte, welches als Platzhalter fungiert. Das darauffolgende Bit am Datenausgang des Flashes ist bereits das erste Bit des adressierten Bereiches. Dieses Kommando wird von allen Flash-Bausteinen mit serieller Schnittstelle (SPI) unterstützt. Das maschinenlesbare Programm umfasst eine Routine, welche dieses Kommando verwendet und ermöglicht somit auch einen Speicherzugriff auf Speicherbausteine, ohne dass eine selbsttätige Konfiguration des Programms bisher erfolgt ist.
  • Vorzugsweise wird im Rahmen des Verfahrens eine Routine zur Ermittlung des Beginns des Typenkennungsabschnitts zur Verfügung gestellt. Diese Routine ermittelt eine den Typenkennungsabschnitt betreffende Kennung mittels eines Suchalgorithmus und anschließend die Speicheradresse, an der die Kennung abgelegt ist. Der Suchalgorithmus verwendet hierzu das Flash-Kommando „Fast Continuous Read“ und sucht des Magic Word im Speicher. Die Adresse, an der das Magic Word im Speicher abgelegt ist, entspricht dann der Anfangsadresse des zur Programmkonfiguration relevanten Typenkennungsabschnittes. Hierdurch kann der Speicherabschnitt leicht identifiziert werden, an dem die Typenkennung abgelegt ist. Da der Typenkennungsabschnitt gemäß der Tabellen 1 und 2 mittels eines fest vorgegebenen Formates im Speicher codiert abgelegt ist, genügt die Kenntnis der Anfangsadresse und die Struktur des Formates, um die Daten aus dem Speicher auszulesen und auszuwerten. Die Struktur des Formates wiederum ist aus der „FIP-Version“ (siehe Tabelle 1) ableitbar, welche auf das „Magic Word“ folgend im Speicher abgelegt ist.
  • In der Kommandoliste (siehe Tabelle 2) ist ein Byte mit der Bezeichnung „ReadyStatus“ gezeigt. Dieses Byte hat folgende Bedeutung. Ein Flash Speicherbaustein mit serieller Schnittstelle (SPI) besitzt in der Regel ein Statusregister der Länge 1 Byte. Im vierten Byte „ReadyStatus“ eines Kommandolisten-Eintrages wird codiert, ob und wie das Statusregister des Flashes auf den Abschluß der entsprechenden Operation (z.B. Statusregister auslesen) abzufragen ist. In dem Byte werden somit codiert:
    1. 1. welches Bit die Flashbereitschaft anzeigt („Ready-Bit“) und
    2. 2. mit welcher Polarität diese Bereitschaft anzeigt wird („activelow/active-high“).
  • Die Maske wird in „One-Hot“/„One-Cold“-Codierung dargestellt, wobei die Firmware durch Zusammenzählen von drei beliebigen Bits der Maske erkennen kann, welche Polarität das Ready-Bit hat, d.h. wie die Maske mit dem Registerinhalt logisch zu verknüpfen ist.
  • In der Kommandoliste ist ebenfalls ein Byte mit der Bezeichnung „Infobyte“ vorhanden. Dieses hat folgende Bedeutung: Nach bestimmten Kommandos (z.B. „Continuous Read“, „Page schreiben“, „Puffer beschreiben“) wird ein kontinuierlicher Datentransfer vom/zum Baustein erwartet. Es wird jedoch davon ausgegangen, dass pro Kommandosequenz nur ein Datentransfer stattfindet, wobei beispielsweise irrelevant ist, ob ein Datentransfer zum Flash sich auf einen eventuell vorhandenen Vorpuffer, den eigentlichen Speicher oder ein Register des Speichers bezieht. Durch zwei im Infobyte definierte Bits kann signalisiert werden, dass nach der Übermittlung des Kommandos und einer Adresse beispielsweise ein Datentransfer über die serielle Datenleitung des Speicherbausteines durchzuführen ist. Es wird ferner davon ausgegangen, dass die Datenmenge bekannt ist. In der Regel wird sie aus den in der FIP abgelegten Größeninformationen des Flashes (Tabelle 1) abgeleitet. Im Infobyte kann zu jedem Kommando folgendes codiert werden:
    Bit (0 = LSB) Bedeutung
    1..0 Kommandotyp: 0=Kontrolle / 1=Lesen / 2=Schreiben / 3 = Löschen
    2 Datentransfer nach Kommando erwartet (boolean)
    3 Richtung des Datentransfers: 0 = vom Flash / 1 = zum Flash
    4 Flash-Adresse (3 Bytes) nach Kommando erwartet (boolean)
    7..5 Reserviert
  • Die nach bestimmten Kommandos zu sendende Speicheradresse beinhaltet (maximal) jeweils zwei Bitbereiche: die Pageadresse und den Byteoffset innerhalb einer Flash-Page. Betrachtet man die Adressbits An-1...A0 des Speicherbausteins, so liegen die Byteoffset-Bits bei Ai-1 ...A0 und die Pageadresse auf Aj-1..Ai. Bei Flash-Speicherbausteinen mit serieller Schnittstelle wird allgemein von 3 Byte ausgegangen. Der Wert von i und j ist anhand der Größe einer Page sowie der Gesamtzahl der Pages und vorzugsweise aus der FIP-Version ermittelbar.
  • Zur Absicherung der Eindeutigkeit und Integrität der Daten zur Typenkennung im Speicherbaustein wird am Ende der Typenkennung eine CRC32-Checksumme abgelegt.
  • Vorzugsweise werden zur Konfiguration des Programms aus dem in Tabelle 2 gezeigten Typenkennungsabschnitt Daten herangezogen, welche die Speichergeometrie und/oder die Speicherzugriffszeiten betreffen. Es wird damit möglich den gesamten Speicherbereich zu adressieren und die im Speicher integrierte serielle Schnittstelle derart anzusteuern, dass die für einen Speicherzugriff geforderten Zugriffszeiten berücksichtigt werden. Dies hat den Vorteil, dass Speicher unterschiedlichster Größe und Speicher mit unterschiedlichstem Timingverhalten von dem maschinenlesbaren Programm angesprochen werden können.
  • Aus dem Typenkennungsabschnitt stammende Daten, welche vom Speicherzugriffsmittel bereitgestellte Kommandos betreffen, werden zur selbsttätigen Programmkonfiguration herangezogen. Mittels dieser Daten kann sich das für den Speicherzugriff erforderliche Programm während der Laufzeit konfigurieren, so dass es die im Speicher integrierte serielle Schnittstelle mit für diese Schnittstelle spezifischen Kommandos ansprechen kann.
  • Während die Kommandoliste keine spezifische Reihenfolge besitzt, repräsentiert hingegen die Kommandosequenzliste die Menge der möglichen Operationen, welche auf dem Flash ausgeführt werden können. Die Reihenfolge der Operationen ist in der Kommandosequenzliste festgelegt und bausteinübergreifend identisch. Wird eine bestimmte Kommandosequenz durch einen Flashtyp nicht unterstützt, so ist der entsprechende Eintrag der Sequenzliste entsprechend, beispielsweise mit „0“ gekennzeichnet. Eine Kompensation nicht verfügbarer Flash-Operationen hat dann gegebenenfalls auf Applikationsebene zu erfolgen, d.h. ein dem maschinenlesbaren Programm übergeordnetes Anwenderprogramm bildet die fehlende Operation mittels der vom Baustein unterstützten Kommandos nach.
  • Zur Realisierung der Kommandosquenzliste sind die Kommandos beziehungsweise die Speicherzellen, an welcher Informationen zu den Kommandos abgelegt sind, mit einer Kennzeichnung versehen, welche eine eindeutige Identifikation der Kommandos ermöglicht. Die Kommandosequenzliste codiert die für einen Speicherzugriff erforderliche Kommandosequenz durch eine Vorgabe der Reihenfolge, gemäß derer die Kommandos auszuführen sind. Beispielsweise ist es bei dem in Tabelle 2 gezeigten Beispiel 1 erforderlich für das Kommando „Page löschen“ die Kommandos 1 und 5 aus der Kommandoliste nacheinander auszuführen.
  • Im Rahmen des erfindungsgemäßen Verfahren muss ein Taktsignal erzeugt werden, mittels dessen die Daten im Anschluss an ein vom maschinenlesbaren Programm ausgesendetes Lesekommando seriell vom Speicherzugriffsmittel abgefragt und anschließend vom Programm eingelesen werden können. Zusätzlich wird eine vom Typenkennungsabschnitt umfasste Prüfsumme aus dem Speicher ausgelesen, wobei das maschinenlesbare Programm mittels der Prüfsumme die Eindeutigkeit und Integrität der Daten des Typenkennungsabschnittes verifiziert. Das Ergebnis dieser Verifikation kann dazu genutzt werden möglichen Fehlern bei der Ausführung des maschinenlesbaren Programms oder beim Zugriff auf den Speicherbaustein vorzubeugen.
  • Die Erfindung beinhaltet ebenso eine parametrierbare Einrichtung zum Betrieb eines Servomotors, umfassend einen Speicher, insbesondere einen Flash-Speicher, in dem Parameter der Einrichtung und eine Speichertypenkennung abgelegt sind, sowie umfassend ein Mittel zur Verarbeitung der in dem Speicher abgelegten Parameter, wobei das Mittel derart realisiert ist, dass ein Zugriff auf den Speicher gemäß des erfindungsgemäßen Verfahrens mittels des maschinenlesbaren Programms erfolgt. Soll in dieser Einrichtung beispielsweise aufgrund einer Erweiterung des Funktionsumfangs der Speicher einmal ausgewechselt werden, so werden keine nennenswerten Anpassungsarbeiten am maschinenlesbaren Programm erforderlich. Betrachtet man die Einrichtung isoliert oder als Bestandteil eines Antriebssystems, so garantiert die Erfindung eine hohe Kompatibilität der Anordnungen auch bei Änderungen des Aufbaus.
  • Nachfolgend wird anhand eines Beispiels erörtert, wie ein Teil des generischen Programmcodes des maschinenlesbaren Programms für den Zugriff auf einen freien Speicherbereich (gelöschte Page) eines Flash-Bausteins realisiert sein könnte. Der verwendete Programmcode wird sequentiell abgearbeitet und setzt einen Teil der weiter oben bereits beschriebenen Verfahrensschritte um.
  • Mit dem Platzhalter SWP wird in diesem Beispiel die Nummer der Flash-Operation Nr. 6 „Page schreiben“ aus der aus Tabelle 2 bekannten Kommandoliste beschrieben. Die Funktion „WritePage“ wird wie folgt definiert: WritePage(Page,NumBytes,ByteOffset,Data).
    • Page = Kennzeichnung für den zu beschreiben Speicherbereich
    • NumBytes = Anzahl der in den Speicherbereich zu schreibenden Bytes
    • ByteOffset = Versatzadresse ab der die Bytes in den Speicher geschrieben werden
    • Data = Zu schreibende Daten oder Verweis auf diese Daten
  • Die mittels der Funktion „WritePage“ realisierten Verfahrensschritte werden nachfolgend mittels eines Pseudocodes beschrieben:
    Figure DE102008061093B4_0001
  • Zunächst wird geprüft, ob das Kommando SWP in der Kommandosequenzliste enthalten ist. Diese Überprüfung erfolgt mittels der aus dem Speicher extrahierten Speichertypenkennung, welche beispielsweise in Form einer Tabelle (siehe beispielsweise Tabelle 2) im eingebetteten System beispielsweise mittels eines flüchtigen Speichers vorgehalten werden kann. Ist das Kommando SWP in der Kommandosequenzliste enthalten, wird die Kommandosequenz mittels der Funktion „ProcessSequence“ aufgerufen. Diese Funktion liefert eine Statusinformation an die aufrufende Funktion „WritePage“ zurück. Aus dieser Statusinformation wird ersichtlich, ob die von der Funktion „ProcessSequence“ ausgeführten Schritte erfolgreich waren oder nicht. Die an die Funktion „ProcessSequence“ übergebenen Parameter SWP, Data, NumBytes, 0, Page, ByteOffset liefern die für die Ausführung der Funktion erforderliche Kommandonummer, Datenmenge D, die Quell-Page Q und die Ziel-Page Z sowie den Byte-Offset O.
  • Die mittels der Funktion „ProcessSequence“ realisierten Verfahrensschritte werden nachfolgend ebenfalls mittels eines Pseudocodes beschrieben:
    Figure DE102008061093B4_0002
    Figure DE102008061093B4_0003
  • Gemäß des hier implementierten Verfahrens wird eine Kommandosequenz abgearbeitet, welche sich aus einem aus Tabelle 2 ermittelten Kommandosequenzlisteneintrag ergibt.
  • Alle weiteren Operationen der Kommandosequenzliste lassen sich einfach auf geeignete Ausführung des obigen Verfahrensschrittes zurückführen. Damit steht ein universelles Konzept zur Ansteuerung von Speicherbausteinen mit seriellem Interface zur Verfügung.

Claims (8)

  1. Parametrierbare Einrichtung zum Betrieb eines Servomotors, wobei die Einrichtung einen nichtflüchtigen Speicher mit serieller Schnittstelle umfasst, in dem Parameter der Einrichtung und ein Typenkennungsabschnitt des Speichers abgelegt sind, sowie ein Mittel zur Verarbeitung der in dem Speicher abgelegten Parameter umfasst, wobei das Mittel als Speicherzugriffsmittel derart realisiert ist, dass ein Zugriff auf den Speicher mittels eines maschinenlesbaren Programms erfolgt, wobei in dem Typenkennungsabschnitt zur Implementierung eines Speicherzugriffes erforderliche Daten abgespeichert sind, wobei das maschinenlesbare Programm generische Routinen aufweist, welche erst während der Ausführung des maschinenlesbaren Programms unter Verwendung der Daten aus dem Typenkennungsabschnitt des nichtflüchtigen Speichers, eine für den nichtflüchtigen Speicher spezifische Funktion erfüllen, wobei das Mittel zur Verarbeitung der in dem Speicher abgelegten Parameter konfiguriert ist durchzuführen: a) eine Routine zur Ermittlung des Beginns des Typenkennungsabschnitts und zur Ermittlung der Speicheradresse, an welcher der Typenkennungsabschnitt abgelegt ist, wobei zur Ermittlung des Beginns des Typenkennungsabschnitts im Speicher eine den Typenkennungsabschnitt betreffende Kennung mittels eines Suchalgorithmus gesucht wird und die Speicheradresse der Kennung ermittelt wird; b) Auslesen der Daten des Typenkennungsabschnittes und der Versionskennzeichnung des Speichers aus dem Speicher mittels des Speicherzugriffsmittels; c) Auswerten der bei dem Schritt b) ausgelesenen Daten des Typenkennungsabschnitts durch Ableiten der Anordnung der Daten im Typenkennungsabschnitt aus einer Versionskennzeichnung; d) Selbsttätige Konfiguration der für den Speicherzugriff relevanten Programmabschnitte des Programms durch das Programm selbst während seiner Ausführung unter Berücksichtigung der ausgelesenen Daten des Typenkennungsabschnittes, wobei die ausgelesenen Daten des Typenkennungsabschnittes die Speichergeometrie und/oder die Speicherzugriffszeiten umfassen, um bei einem Zugriff auf den Speicher auf Parameter der Einrichtung den gesamten Speicherbereich adressieren zu können und/oder die für einen Speicherzugriff geforderten Zugriffszeiten zu berücksichtigen.
  2. Parametrierbare Einrichtung gemäß Anspruch 1, wobei aus dem Typenkennungsabschnitt stammende Daten im Rahmen der Konfiguration herangezogen werden, welche vom Speicherzugriffsmittel bereitgestellte Kommandos betreffen.
  3. Parametrierbare Einrichtung gemäß Anspruch 2, wobei aus dem Typenkennungsabschnitt stammende Daten im Rahmen der Konfiguration herangezogen werden, welche Kommandosequenzanforderungen betreffen.
  4. Parametrierbare Einrichtung gemäß einem der vorhergehenden Ansprüche, wobei die Einrichtung konfiguriert ist, ein Lesekommando an eine vom Speicherzugriffsmittel umfasste serielle Schnittstelle zu senden, so dass das Kommando von einer vom Speicherzugriffsmittel umfassten Datenverarbeitungseinheit verarbeitet werden kann, so dass die Daten des Typenkennungsabschnittes mittels des Lesekommandos aus dem Speicher auslesbar sind.
  5. Parametrierbare Einrichtung gemäß Anspruch 4, wobei die Einrichtung konfiguriert ist, ein Taktsignal zu erzeugen, mittels dessen die Daten im Anschluss an das Lesekommando seriell vom Speicherzugriffsmittel abgefragt und vom Programm eingelesen werden.
  6. Parametrierbare Einrichtung gemäß einem der vorhergehenden Ansprüche, wobei die Einrichtung konfiguriert ist, eine Prüfsumme aus dem Speicher auszulesen und mittels der Prüfsumme die Integrität der Daten des Typenkennungsabschnitts zu verifizieren.
  7. Parametrierbare Einrichtung gemäß einem der vorhergehenden Ansprüche, wobei die Einrichtung konfiguriert ist, unter Verwendung zumindest einer aus dem Speicher ausgelesenen Kommandosequenzanforderung und zumindest eines aus dem Speicher ausgelesenen und für diese Kommandosequenzanforderung relevanten Kommandos eine Kommandosequenz zu erstellen, mittels derer ein Zugriff auf den Speicher realisierbar ist.
  8. Antriebssystem, umfassend eine Einrichtung gemäß einem der vorangehenden Ansprüche und einen Servomotor, welcher mittels der Einrichtung regelbar ist.
DE102008061093.3A 2008-12-08 2008-12-08 Verfahren zur Realisierung von Zugriffen auf einen nichtflüchtigen Speicher mittels eines computerausführbaren Programms Expired - Fee Related DE102008061093B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102008061093.3A DE102008061093B4 (de) 2008-12-08 2008-12-08 Verfahren zur Realisierung von Zugriffen auf einen nichtflüchtigen Speicher mittels eines computerausführbaren Programms

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102008061093.3A DE102008061093B4 (de) 2008-12-08 2008-12-08 Verfahren zur Realisierung von Zugriffen auf einen nichtflüchtigen Speicher mittels eines computerausführbaren Programms

Publications (2)

Publication Number Publication Date
DE102008061093A1 DE102008061093A1 (de) 2010-06-17
DE102008061093B4 true DE102008061093B4 (de) 2018-08-30

Family

ID=42168460

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008061093.3A Expired - Fee Related DE102008061093B4 (de) 2008-12-08 2008-12-08 Verfahren zur Realisierung von Zugriffen auf einen nichtflüchtigen Speicher mittels eines computerausführbaren Programms

Country Status (1)

Country Link
DE (1) DE102008061093B4 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0840228A2 (de) 1996-10-23 1998-05-06 Texas Instruments Inc. Programmierbarer Speicherzugriff
US20080140916A1 (en) 2006-12-06 2008-06-12 Mosaid Technologies Incorporated System and method of operating memory devices of mixed type
DE102007006461A1 (de) 2007-02-05 2008-08-21 Siemens Ag Energieverteilungsvorrichtung, insbesondere Niederspannungs-Energieverteilungsvorrichtung, und Verfahren zum Authentifizieren einer Energieverteilungsvorrichtung

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0840228A2 (de) 1996-10-23 1998-05-06 Texas Instruments Inc. Programmierbarer Speicherzugriff
US20080140916A1 (en) 2006-12-06 2008-06-12 Mosaid Technologies Incorporated System and method of operating memory devices of mixed type
DE102007006461A1 (de) 2007-02-05 2008-08-21 Siemens Ag Energieverteilungsvorrichtung, insbesondere Niederspannungs-Energieverteilungsvorrichtung, und Verfahren zum Authentifizieren einer Energieverteilungsvorrichtung

Also Published As

Publication number Publication date
DE102008061093A1 (de) 2010-06-17

Similar Documents

Publication Publication Date Title
DE60132830T2 (de) Neuartiges verfahren und struktur zur effizienten datenverifizierungsoperation für nichtflüchtige speicher
DE69034227T2 (de) EEprom-System mit Blocklöschung
EP2318920B1 (de) Steuergerät für ein fahrzeug und verfahren für eine datenaktualisierung für ein steuergerät für ein fahrzeug
DE60211653T2 (de) Teildatenprogrammier- und leseoperationen in einem nichtflüchtigen speicher
DE19839680B4 (de) Verfahren und Vorrichtung zur Veränderung des Speicherinhalts von Steuergeräten
DE112017003641T5 (de) Datenüberschreibvorrichtung und Datenüberschreibprogramm
DE102015209502A1 (de) Markierungsprogrammierung in nichtflüchtigen Speichern
DE19931184A1 (de) Verfahren und Vorrichtung zur Veränderung des Speicherinhalts von Steuergeräten
DE102006009214B4 (de) Verfahren und Vorrichtung zum Schreiben in eine Zielspeicherseite eines Speichers
DE102016201340A1 (de) Konfigurierung serieller Geräte
DE102008061093B4 (de) Verfahren zur Realisierung von Zugriffen auf einen nichtflüchtigen Speicher mittels eines computerausführbaren Programms
EP1611517A2 (de) Programmgesteuerte einheit
EP1611516A2 (de) Programmgesteuerte einheit
DE602004008697T2 (de) Abnutzungsausgleich in einem nicht flüchtigen Flash-Speicher ohne die Notwendigkeit freier Blöcke
EP1611515B1 (de) Programmgesteuerte einheit
DE10321104B4 (de) Verfahren zur Ablage von veränderlichen Daten
DE102017206752A1 (de) Elektronische steuereinheit und datenumschreibesystem
DE10148047B4 (de) Verfahren und Vorrichtung zur Sicherung von Daten in einem Speicherbaustein und Speicherbaustein
DE102005060901A1 (de) Verfahren zur Erkennung einer Versorgungsunterbrechung in einem Datenspeicher und zur Wiederherstellung des Datenspeichers
EP2003566B1 (de) Verfahren und Steuergerät zum Betreiben eines nichtflüchtigen Speichers, insbesondere zum Einsatz in Kraftfahrzeugen
DE102006013762A1 (de) Verfahren zum Betreiben einer Speichereinrichtung
DE1774212B2 (de) En 20417 12.08.67 " 37132 bez: datenverarbeitungsanlage
WO2021073944A1 (de) Verfahren und vorrichtung zur manipulationssicheren speicherung von daten in nand-flash speicher
DE102007051061B4 (de) Nichtflüchtiges Halbleiterspeichersystem und entsprechendes Verfahren zum Durchführen einer Programmieroperation
DE102008002494A1 (de) Verfahren zum Aktualisieren eines Speichersegments, Datenverarbeitungsschaltung und Speichersegment

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee