DE102023203783A1 - DEVICE AND METHOD FOR ACCESSING A CODE FLASH MEMORY - Google Patents
DEVICE AND METHOD FOR ACCESSING A CODE FLASH MEMORY Download PDFInfo
- Publication number
- DE102023203783A1 DE102023203783A1 DE102023203783.1A DE102023203783A DE102023203783A1 DE 102023203783 A1 DE102023203783 A1 DE 102023203783A1 DE 102023203783 A DE102023203783 A DE 102023203783A DE 102023203783 A1 DE102023203783 A1 DE 102023203783A1
- Authority
- DE
- Germany
- Prior art keywords
- command
- microcontroller
- telegram
- data
- memory
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
Abstract
Es sind eine Vorrichtung (30; 300) und ein Verfahren zum Zugriff auf einen CF-Speicherbaustein (40) bereitgestellt, der auch CodeFlash-Speicher genannt wird. Die Vorrichtung (30; 300) hat einen Befehlsinterpreter (31) zum Interpretieren eines Befehls eines Mikrocontrollers (10), der zum Zugriff auf einen DF-Speicherbaustein (50) vorgesehen ist, und einen Telegramm-Decoder (313) zum Bestimmen, ob eine mit dem Befehl des Mikrocontrollers (10) angeforderte Transaktion auf den CF-Speicherbaustein (40) wirken muss, auf den anstelle des DF-Speicherbausteins (50) mit der Vorrichtung (30) zugegriffen werden soll, oder ob der Befehl des Mikrocontrollers (10) lokal im Befehlsinterpreter (31) abgearbeitet werden kann. A device (30; 300) and a method for accessing a CF memory chip (40), also called a CodeFlash memory, are provided. The device (30; 300) has a command interpreter (31) for interpreting a command from a microcontroller (10) that is intended to access a DF memory chip (50), and a telegram decoder (313) for determining whether a transaction requested with the command from the microcontroller (10) must act on the CF memory chip (40) that is to be accessed with the device (30) instead of the DF memory chip (50), or whether the command from the microcontroller (10) can be processed locally in the command interpreter (31).
Description
Die vorliegende Erfindung bezieht sich auf eine Vorrichtung und ein Verfahren zum Zugriff auf einen CodeFlash-Speicher, der nachfolgend auch CF-Speicherbaustein genannt ist.The present invention relates to a device and a method for accessing a CodeFlash memory, which is also referred to as a CF memory module.
Zur Steuerung von technischen Anlagen oder Maschinen sind Daten bei Bedarf in remanente Speicher zu speichern bzw. zu schreiben, bei Bedarf wieder auszulesen und/oder aus dem Speicher zu löschen. Als remanente Speicher werden beispielsweise Flash-Speicher verwendet, die auch Flash-Speicherbausteine oder Flash-Bausteine genannt werden. Das Schreiben oder Auslesen oder Löschen des Speichers erfolgt durch Steuerbefehle, welche ein Mikrocontroller über eine Schnittstelle an den Speicher sendet. Sehr verbreitet sind u.a. Flash-Bausteine in NOR-Technologie mit serieller Schnittstelle, auch gemeinhin bezeichnet als „SPI-Flashes“. Hierbei steht NOR in Englisch für „not or“, was in Deutsch „nicht oder“ bedeutet.To control technical systems or machines, data must be saved or written to remanent memory when required, read out again when required and/or deleted from the memory. Remanent memory, for example, uses flash memory, which is also called flash memory modules or flash modules. Writing, reading or deleting the memory is done using control commands that a microcontroller sends to the memory via an interface. Flash modules in NOR technology with a serial interface, also commonly referred to as "SPI flashes", are very common. NOR stands for "not or" in English.
Flash-Bausteine haben einen remanenten Speicherbereich, in welchem gespeicherte Datenwerte auch bei Abschalten der elektrischen Energieversorgung erhalten bleiben. Bei einem herkömmlichen SPI-Flash-Speicherbaustein, der im Folgenden als CF-Speicherbaustein bezeichnet ist, führt der bedienende Mikrocontroller die Schreibvorgänge von Daten direkt auf dem remanenten Speicherbereich aus. Folglich müssen der Mikrocontroller und dadurch auch die überlagerte Anwendung der technischen Anlage Wartezyklen in Kauf nehmen.Flash modules have a remanent memory area in which stored data values are retained even when the electrical power supply is switched off. With a conventional SPI flash memory module, which is referred to below as a CF memory module, the operating microcontroller carries out the data writing processes directly in the remanent memory area. Consequently, the microcontroller and thus also the higher-level application of the technical system must accept wait cycles.
Ein zusätzliches Problem bei CF-Speicherbausteinen besteht darin, dass der Mikrocontroller für die Erstellung der Steuerbefehle für einen Flash-Baustein zu berücksichtigen hat, dass die Speicherbereiche des Flash-Bausteins in einzelne Seiten, sogenannte Pages, unterteilt sind. Die Pages sind zu Blöcken zusammengefasst. Mehrere Blöcke sind zu Sektoren zusammengefasst. Hierbei kann ein Mikrocontroller den Flash-Baustein vor einem Wiederbeschreiben mit entsprechenden Befehlen nur auf Block-, Sektor- oder Chip-Granularität löschen, jedoch nicht einzelne Pages. Dies kann je nach Anwendungsfall die Wartezyklen des Mikrocontrollers für die Interaktion mit dem Flash-Baustein unvorteilhaft verlängern. Dadurch verlängert sich auch der Wartezyklus für eine überlagerte Anwendung der technischen Anlage, was den Betrieb der Anlage verlangsamen kann.An additional problem with CF memory chips is that when creating the control commands for a flash chip, the microcontroller has to take into account that the memory areas of the flash chip are divided into individual pages. The pages are grouped together to form blocks. Several blocks are grouped together to form sectors. In this case, a microcontroller can only erase the flash chip at block, sector or chip granularity before rewriting it with the appropriate commands, but not individual pages. Depending on the application, this can disadvantageously extend the microcontroller's wait cycles for interaction with the flash chip. This also extends the wait cycle for a higher-level application of the technical system, which can slow down the operation of the system.
Möglich ist, stattdessen einen Flash-Baustein einzusetzen, der zwei intern, dem eigentlichen Flash-Hintergrundspeicher vorgelagerte, SRAM-Puffer hat. Hierbei steht SRAM für ein statisches RAM (= Random Access Memory = Speicher mit wahlfreiem Zugriff), der ein statischer Direktzugriffsspeicher ist und zu der Gruppe der flüchtigen Speicher gehört. Das heißt, die in dem SRAM gespeicherte Information geht bei Abschaltung der Betriebsspannung verloren. Ein solcher Flash-Baustein ist im Folgenden als DF-Baustein bezeichnet.It is possible to use a flash module instead, which has two internal SRAM buffers in front of the actual flash background memory. SRAM stands for static RAM (= Random Access Memory), which is a static direct access memory and belongs to the group of volatile memories. This means that the information stored in the SRAM is lost when the operating voltage is switched off. Such a flash module is referred to below as a DF module.
Die SRAM-Puffer des DF-Bausteins erlauben, über die serielle Schnittstelle Schreibdaten in einem der SRAM-Puffer zu empfangen (vermöge bzw. durch oder mit (Hilfe) eines Befehls „Buffer Write“) und gleichzeitig Daten aus dem anderen SRAM-Puffer in den remanenten Flash-Hintergrundspeicher zu übertragen. Hierfür wird ein Befehl „Page Program“ bzw. „Page Program with Built-In Erase“ verwendet. Dadurch können die zuvor genannten Wartezyklen verkürzt werden. Ein weiterer Vorteil dieses DF-Bausteins stellt die effiziente Manipulierbarkeit von Einzeldaten innerhalb des Speicherbausteins dar, indem die Datenblöcke, die in Seiten bzw. sogenannte „Pages“ organisiert ist, nicht über die externe Schnittstelle zum Mikrocontroller übertragen werden müssen, sondern in den vorgelagerten SRAM-Puffern bearbeitet und, gegebenenfalls mit automatischem Löschen (Built-In Erase), in eine Page des remanenten Flash-Bereiches zurückgeschrieben werden können.The SRAM buffers of the DF module allow write data to be received in one of the SRAM buffers via the serial interface (by means of or through or with (the help of) a "Buffer Write" command) and at the same time data from the other SRAM buffer to be transferred to the remanent flash background memory. A "Page Program" or "Page Program with Built-In Erase" command is used for this. This can shorten the previously mentioned wait cycles. Another advantage of this DF module is the efficient manipulation of individual data within the memory module, as the data blocks, which are organized in pages, or so-called "pages", do not have to be transferred to the microcontroller via the external interface, but can be processed in the upstream SRAM buffers and, if necessary with automatic deletion (Built-In Erase), written back to a page of the remanent flash area.
Problematisch ist, dass ein Mikrocontroller einen DF-Baustein aufgrund dessen beschriebenen Eigenschaften mit anderen Befehlen ansteuern muss als einen CF-Speicherbaustein. Ist es erforderlich, einen DF-Baustein durch einen CF-Speicherbaustein zu ersetzen, so erzwingt dies auch den Austausch der Software des Mikrocontrollers. Jedoch ist ein solcher Austausch nicht immer möglich oder wegen einer geforderten Qualifizierungs- bzw. Zertifizierungskette aus Sicherheitsgründen nicht zulässig oder erwünscht.The problem is that a microcontroller must control a DF module with different commands than a CF memory module due to its described properties. If it is necessary to replace a DF module with a CF memory module, this also forces the microcontroller's software to be replaced. However, such an exchange is not always possible or is not permitted or desired due to a required qualification or certification chain for safety reasons.
Daher ist es Aufgabe der vorliegenden Erfindung, eine Vorrichtung und ein Verfahren zum Zugriff auf einen CF-Speicherbaustein bereitzustellen, mit welchen die zuvor genannten Probleme gelöst werden können. Insbesondere sollen eine Vorrichtung und ein Verfahren zum Zugriff auf einen CF-Speicherbaustein bereitgestellt werden, welche ermöglichen, auch bei Verwendung eines CF-Speicherbausteins eine Weiterverarbeitung von Daten unter Verwendung des CF-Speicherbausteins zu beschleunigen, so dass Wartezyklen durch den Zugriff auf den CF-Speicherbaustein verkürzt werden können und so der Betrieb einer überlagerten Anwendung einer technischen Anlage beschleunigbar ist und/oder dass zumindest die zeitlichen Eigenschaften des Gesamtsystems, die zuvor unter Verwendung eines DF-Speichers bestanden haben, auch bei Ersatz durch einen CF-Speicher erhalten bleiben.It is therefore an object of the present invention to provide a device and a method for accessing a CF memory chip, with which the aforementioned problems can be solved. In particular, a device and a method for accessing a CF memory chip are to be provided which make it possible to accelerate further processing of data using the CF memory chip even when using a CF memory chip, so that wait cycles can be shortened by accessing the CF memory chip and the operation of a higher-level application of a technical system can be accelerated and/or that at least the temporal properties of the overall system which previously existed when using a DF memory are retained even when replaced by a CF memory.
Diese Aufgabe wird durch eine Vorrichtung zum Zugriff auf einen CF-Speicherbaustein nach Anspruch 1 gelöst. Die Vorrichtung hat einen Befehlsinterpreter zum Interpretieren eines Befehls eines Mikrocontrollers, der zum Zugriff auf einen DF-Speicherbaustein (50) vorgesehen ist, und einen Telegramm-Decoder zum Bestimmen, ob eine mit dem Befehl des Mikrocontrollers angeforderte Transaktion auf den CF-Speicherbaustein wirken muss, auf den anstelle des DF-Speicherbausteins mit der Vorrichtung zugegriffen werden soll, oder ob der Befehl des Mikrocontrollers lokal im Befehlsinterpreter abgearbeitet werden kann.This object is achieved by a device for accessing a CF memory module according to
Die beschriebene Ausgestaltung der Vorrichtung ermöglicht, eine Speicherung von Daten mit Hilfe eines DF-Bausteins bei Bedarf zusätzlich oder alternativ mit Hilfe eines CF-Speicherbausteins vorzunehmen, ohne dass hierfür die Software des ansteuernden Mikrocontrollers zu verändern ist.The described design of the device makes it possible to store data using a DF module, if required, additionally or alternatively using a CF memory module, without having to change the software of the controlling microcontroller.
Als Folge davon erhöht die Vorrichtung die Variabilität für die Auswahl des Flash-Speicherbausteins einer technischen Anlage. Außerdem können der Aufwand und die damit verbundenen Kosten zur Änderung und/oder den Austausch der Software des Mikrocontrollers eingespart werden.As a result, the device increases the variability for the selection of the flash memory module of a technical system. In addition, the effort and the associated costs for changing and/or replacing the software of the microcontroller can be saved.
Zusätzlich ist die Vorrichtung verwendbar, um eine Redundanz mit Hilfe eines anderen Speicherbausteintyps herzustellen, ohne dass hierfür die Software des ansteuernden Mikrocontrollers zu verändern ist. Dabei ist ein paralleler Betrieb von mindestens zwei Speicherbausteinen möglich, insbesondere um Diversität im Bereich von sogenannter funktionaler Sicherheit zu realisieren. Dadurch kann die Sicherheit der technischen Anlage erhöht werden.In addition, the device can be used to create redundancy using a different type of memory module without having to change the software of the controlling microcontroller. Parallel operation of at least two memory modules is possible, in particular to achieve diversity in the area of so-called functional safety. This can increase the safety of the technical system.
Im Ergebnis kann die Vorrichtung unter anderem dazu beitragen, langwierige und damit teure Stillstände einer übergeordneten technischen Anlage zu vermeiden und/oder das zeitliche Verhalten der Anlage, im Falle des Ersatzes eines DF-Speicherbaustein durch einen CF-Speicherbaustein, zumindest invariant zu halten.As a result, the device can, among other things, help to avoid lengthy and thus expensive downtimes of a higher-level technical system and/or to at least keep the temporal behavior of the system invariant in the event of replacing a DF memory module with a CF memory module.
Vorteilhafte weitere Ausgestaltungen der Vorrichtung sind in den abhängigen Ansprüchen angegeben.Advantageous further embodiments of the device are specified in the dependent claims.
Denkbar ist, dass der Telegramm-Decoder ausgestaltet ist, ein Signal an einen Telegramm-Generator auszugeben, um einen Zugriff auf den CF-Speicherbaustein vorzunehmen.It is conceivable that the telegram decoder is designed to output a signal to a telegram generator in order to access the CF memory module.
In einer Ausgestaltung hat die Vorrichtung zudem eine SRAM-Pufferspeichereinheit zum Zwischenspeichern von Daten für einen Schreibbefehl des Mikrocontrollers zum Schreiben der Daten in den CF-Speicherbaustein, eine Daten-Sammeleinrichtung zum Zwischenspeichern von Daten für einen Lesebefehl des Mikrocontrollers zum Lesen der in dem CF-Speicherbaustein gespeicherten Daten, und einen Lese-Multiplexer zum Ausgeben der in dem CF-Speicherbaustein oder in der SRAM-Pufferspeichereinheit gespeicherten Daten als Reaktion auf einen Lesebefehl des Mikrocontrollers.In one embodiment, the device further comprises an SRAM buffer memory unit for temporarily storing data for a write command from the microcontroller to write the data into the CF memory chip, a data collector for temporarily storing data for a read command from the microcontroller to read the data stored in the CF memory chip, and a read multiplexer for outputting the data stored in the CF memory chip or in the SRAM buffer memory unit in response to a read command from the microcontroller.
Möglicherweise implementiert die Daten-Sammeleinrichtung eine FIFO-Warteschlange, so dass Daten, die zuerst in die Daten-Sammeleinrichtung gespeichert werden, zuerst wieder aus der Daten-Sammeleinrichtung herausgenommen werden.The data collector may implement a FIFO queue so that data that is first stored into the data collector is first taken out of the data collector.
Die Vorrichtung kann zudem aufweisen ein DF-Statusregister zum Signalisieren eines Status des von dem Befehl des Mikrocontrollers adressierten DF-Speicherbausteins, und einen Flash-Status-Decoder zum Decodieren eines Status, welchen ein CF-Statusregister des CF-Speicherbausteins signalisiert, und zum Erzeugen, aus dem signalisierten Status des CF-Statusregisters, eines Signals für einen Status in dem DF-Statusregister. Hierbei kann der Flash-Status-Decoder ausgestaltet sein, das Signal zum Schreiben in ein Bit des DF-Statusregisters als Kennung zu erzeugen, welche den Status bzw. Flash-Status Bereit/NichtBeschäftigt anzeigt.The device can also have a DF status register for signaling a status of the DF memory chip addressed by the microcontroller command, and a flash status decoder for decoding a status signaled by a CF status register of the CF memory chip, and for generating a signal for a status in the DF status register from the signaled status of the CF status register. The flash status decoder can be designed to generate the signal for writing to a bit of the DF status register as an identifier that indicates the status or flash status ready/not busy.
In einer Ausgestaltung ist der Flash-Status-Decoder ausgestaltet, eine Beschäftigt-Kennung in dem DF-Statusregister beim Absetzen eines Program- oder Lösch-Befehls an den CF-Speicherbaustein zu setzen.In one embodiment, the flash status decoder is designed to set a busy identifier in the DF status register when a program or erase command is issued to the CF memory device.
Gemäß einem Ausführungsbeispiel weist der Telegramm-Generator einen Adress-Zuordner auf zum Zuordnen einer Adresse des CF-Speicherbausteins zu einer Adresse des DF-Speicherbausteins, die in dem Befehl des Mikrocontrollers umfasst ist. Hierbei kann die Vorrichtung zudem ein Flash-Adressregister haben, wobei der Befehlsinterpreter ausgestaltet ist, aus dem Befehl des Mikrocontrollers ein Signal für das Flash-Adressregister zu erzeugen, und wobei das Flash-Adressregister zur Erzeugung und Ausgabe eines Signals an den Telegramm-Generator ausgestaltet ist, wobei das Signal die Adresse des DF-Speicherbausteins aufweist, in welche die Daten zu speichern sind.According to one embodiment, the telegram generator has an address allocator for allocating an address of the CF memory chip to an address of the DF memory chip that is included in the microcontroller's command. The device can also have a flash address register, the command interpreter being designed to generate a signal for the flash address register from the microcontroller's command, and the flash address register being designed to generate and output a signal to the telegram generator, the signal having the address of the DF memory chip in which the data is to be stored.
Möglicherweise hat der Telegramm-Generator einen Befehls-Zuordner zum Zuordnen eines Befehls für den CF-Speicherbaustein zu einem Befehl für den DF-Speicherbaustein aus einem von dem Mikrocontroller empfangenen Befehlstelegramm.The telegram generator may have a command mapper for mapping a command for the CF memory chip to a command for the DF memory chip from a command telegram received from the microcontroller.
Möglicherweise hat der Telegramm-Generator ein Schieberegister zur Komposition und zum Versenden eines Befehlstelegramms für den CF-Speicherbaustein.The telegram generator may have a shift register for composition and Sending a command telegram for the CF memory module.
In einer Ausgestaltung weist der Befehlsinterpreter und/oder der Telegramm-Generator mindestens einen der folgenden Bausteine/Elemente auf, nämlich UND-Gatter, NAND-Gatter, OR-Gatter, NOR-Gatter, Flipflop, ein programmierbares Logikbauelement. Hierbei kann das programmierbare Logikbauelement ein CPLD und/oder ein Gate-Array, insbesondere ein FPGA, und/oder eine kundenspezifische integrierte Schaltung (ASIC) sein.In one embodiment, the command interpreter and/or the telegram generator has at least one of the following components/elements, namely AND gate, NAND gate, OR gate, NOR gate, flip-flop, a programmable logic component. The programmable logic component can be a CPLD and/or a gate array, in particular an FPGA, and/or a customer-specific integrated circuit (ASIC).
Die zuvor beschriebene Vorrichtung kann zudem eine Schnittstelle zum Anschluss der Vorrichtung an den CF-Speicherbaustein aufweisen, wobei die Schnittstelle eine geringere Latenz und eine höhere Datenrate aufweisen sollte als die Schnittstelle zwischen dem Mikrocontroller und der Vorrichtung.The device described above may also have an interface for connecting the device to the CF memory chip, wherein the interface should have a lower latency and a higher data rate than the interface between the microcontroller and the device.
Die zuvor beschriebene Vorrichtung kann Teil einer Steuereinrichtung eines Systems sein, das zudem mindestens eine technische Anlage aufweist. Die Steuereinrichtung ist zum Steuern einer Speicherung von Daten von oder für die mindestens eine technische Anlage ausgestaltet.The device described above can be part of a control device of a system that also has at least one technical installation. The control device is designed to control storage of data from or for the at least one technical installation.
Die zuvor beschriebene mindestens eine technische Anlage kann zur Ausführung eines Arbeitsverfahrens und/oder eines Fertigungsverfahrens ausgestaltet sein.The at least one technical system described above can be designed to carry out a work process and/or a manufacturing process.
Die zuvor genannte Aufgabe wird zudem von einem Verfahren zum Zugriff auf einen CF-Speicherbaustein nach Anspruch 15 gelöst. Das Verfahren hat die Schritte Interpretieren, mit einem Befehlsinterpreter, eines Befehls eines Mikrocontrollers, der zum Zugriff auf einen DF-Speicherbaustein vorgesehen ist, und Bestimmen, mit einem Telegramm-Decoder, ob eine mit dem Befehl des Mikrocontrollers angeforderte Transaktion auf den CF-Speicherbaustein wirken muss, auf den anstelle des DF-Speicherbausteins mit der Vorrichtung zugegriffen werden soll, oder ob der Befehl des Mikrocontrollers lokal im Befehlsinterpreter abgearbeitet werden kann.The aforementioned object is also achieved by a method for accessing a CF memory module according to claim 15. The method has the steps of interpreting, with a command interpreter, a command of a microcontroller that is provided for accessing a DF memory module, and determining, with a telegram decoder, whether a transaction requested with the command of the microcontroller must act on the CF memory module that is to be accessed with the device instead of the DF memory module, or whether the command of the microcontroller can be processed locally in the command interpreter.
Das Verfahren erzielt dieselben Vorteile, wie sie zuvor in Bezug auf die Vorrichtung genannt sind.The method achieves the same advantages as previously mentioned with respect to the device.
Weitere mögliche Implementierungen der Erfindung umfassen auch nicht explizit genannte Kombinationen von zuvor oder im Folgenden bezüglich des Ausführungsbeispiels beschriebenen Merkmale oder Ausführungsformen. Dabei wird der Fachmann auch Einzelaspekte als Verbesserungen oder Ergänzungen zu der jeweiligen Grundform der Erfindung hinzufügen.Further possible implementations of the invention also include combinations of features or embodiments described above or below with respect to the exemplary embodiment that are not explicitly mentioned. The person skilled in the art will also add individual aspects as improvements or additions to the respective basic form of the invention.
Nachfolgend ist die Erfindung unter Bezugnahme auf die beiliegende Zeichnung und anhand von Ausführungsbeispielen näher beschrieben. Es zeigen:
-
1 ein Blockschaltbild eines Systems mit einer Vorrichtung gemäß einem ersten Ausführungsbeispiel; -
2 ein Blockschaltbild eines Befehlsinterpreters der Vorrichtung von1 ; -
3 ein Blockschaltbild eines CF-Speicherbausteins für ein System von1 oder für ein System mit einer Vorrichtung gemäß einem zweiten Ausführungsbeispiel; -
4 ein Schaubild zur Veranschaulichung der Funktionsweise der Vorrichtung gemäß dem zweiten Ausführungsbeispiel für eine Umsetzung von Adressen eines DF-Speicherbausteins in Adressen des CF-Speicherbausteins von3 ; und -
5 ein Blockschaltbild eines Telegramm-Generators einer Vorrichtung gemäß dem zweiten Ausführungsbeispiel.
-
1 a block diagram of a system with a device according to a first embodiment; -
2 a block diagram of a command interpreter of the device of1 ; -
3 a block diagram of a CF memory module for a system of1 or for a system with a device according to a second embodiment; -
4 a diagram to illustrate the operation of the device according to the second embodiment for converting addresses of a DF memory module into addresses of the CF memory module of3 ; and -
5 a block diagram of a telegram generator of a device according to the second embodiment.
In den Figuren sind gleiche oder funktionsgleiche Elemente, sofern nichts anderes angegeben ist, mit denselben Bezugszeichen versehen.In the figures, identical or functionally equivalent elements are provided with the same reference symbols unless otherwise stated.
Die technische Anlage 3 kann ein nicht dargestelltes Antriebssystem und/oder einen Roboter und/oder ein Werkzeug, wie ein Drehwerkzeug und/oder Fräswerkzeug und/oder ein Fügewerkzeug, und/oder ein Rührwerk oder dergleichen aufweisen. Das Fügewerkzeug ist insbesondere ein Schweißwerkzeug oder ein Nietwerkzeug oder ein Schraubwerkzeug, usw..The
Das Arbeitsverfahren ist insbesondere ein Transportverfahren oder Druckverfahren oder Mischverfahren, usw.. Bei dem Transportverfahren kann beispielsweise ein Werkzeug oder Werkstück oder ein sonstiger Gegenstand transportiert werden. Bei einem Fertigungsverfahren ist beispielsweise mindestens eines der Arbeitsverfahren ausführbar. Zusätzlich oder alternativ ist bei dem Fertigungsverfahren mindestens ein Werkstück mit mindestens einem Werkzeug behandelbar, das zuvor genannt ist.The working process is in particular a transport process or printing process or mixing process, etc. In the transport process, for example, a tool or workpiece or another object can be transported. In a manufacturing process, for example, at least one of the work processes can be carried out. Additionally or alternatively, in the manufacturing process, at least one workpiece can be treated with at least one tool that is mentioned above.
Die Steuervorrichtung 5 ist für den Betrieb und/oder bei dem Betrieb des Systems 1 ausgestaltet, mit der technischen Anlage 3 je nach Bedarf Daten 4 auszutauschen. Die Daten 4 werden beispielsweise durch nicht dargestellte Sensoren im Betrieb der technischen Anlage 3 erfasst und mit Hilfe des Mikrocontrollers 10 über die Schnittstelle 20 an die Vorrichtung 30 zur Speicherung in dem CF-Speicherbaustein 40 und/oder an den DF-Speicherbaustein 50 weitergegeben. Zudem kann die Steuervorrichtung 5 mit Hilfe des Mikrocontrollers 10 über die Schnittstelle 20 je nach Bedarf Daten 4 an die technische Anlage 3 senden, insbesondere Sollwerte für Aktoren des nicht dargestellten Antriebssystems usw.The
Der Mikrocontroller 10 hat eine zentrale Verarbeitungseinheit (CPU), die als Mikroprozessor 11 ausgeführt ist, Software 12 und Speicherbausteine 13, wie einen Arbeitsspeicher und einen Nur-LeseSpeicher (ROM). Die zentrale Verarbeitungseinheit (CPU) bzw. der Mikroprozessor 11 kann mittels der Software 12 auf die Speicherbausteine 13 zugreifen.The
Der Mikrocontroller 10 ist über die serielle Schnittstelle (SPI) 20 mit der Vorrichtung 30 verbunden. Im Betrieb sendet der Mikrocontroller 10 ein Telegramm CmdTG, das auch CmdTelegram genannt werden kann, über die serielle Schnittstelle 20 an die Vorrichtung 30. Die Übertragung des Telegramms CmdTG erfolgt durch oder mit (Hilfe) der Signale DF_MOSI, DF_CLK, DF_CS, wie genauer in
Die Vorrichtung 30 hat einen Befehlsinterpreter 31, der auch Command Interpreter genannt werden kann, eine SRAM-Pufferspeichereinheit 32, ein Flash-Adressregister 33, einen Telegramm-Generator 34, eine Daten-Sammeleinrichtung 35, einen Lese-Multiplexer 36, der auch Read-Multiplexer genannt werden kann, und eine serielle Schnittstelle 37.The
Die Vorrichtung 30 kann beliebige Logikbausteine umfassen, um ihre zuvor genannten Komponenten 31 bis 36 zu bilden. Insbesondere umfasst die Vorrichtung 30 mindestens einen der folgenden Bausteine/Elemente, wie UND-Gatter, NAND-Gatter, OR-Gatter, NOR-Gatter, Flipflop, ein programmierbares Logikbauelement (PLD), wie ein CPLD (Complex Programmable Logic Device) und/oder ein Gate-Array, insbesondere FPGA (Field Programmable Gate-Array), und/oder eine kundenspezifische integrierte Schaltung (ASIC). In einer speziellen Ausgestaltung bestehen der Befehlsinterpreter 31 und der Telegramm-Generator 34 ausschließlich aus digitaler Logik und digitalen Speicherelementen, so dass diese in einem programmierbaren Logikbauelement (PLD) realisiert sind. In einer anderen speziellen Ausgestaltung weisen der Befehlsinterpreter 31 und der Telegramm-Generator 34 ausschließlich digitale Logik und digitale Speicherelemente auf, die in einem programmierbaren Logikbauelement (PLD) realisiert sind und die nachfolgend beschriebenen Funktionen des Befehlsinterpreters 31 und des Telegramm-Generators 34 realisieren. Der Befehlsinterpreter 31 hat ein DF-Statusregister 311, in welchem der Status des DF-Speicherbausteins 50, wie Bereit, Beschäftigt (Busy) usw., mit einer Kennung oder Bit 31A, 31B angezeigt wird. Die Daten-Sammeleinrichtung 35 implementiert eine FIFO (First In First Out) Warteschlange, so dass Daten 4, die zuerst in die Einrichtung 35 gespeichert werden, zuerst wieder aus der Einrichtung 35 heraus genommen werden.The
Im Betrieb empfängt der Befehlsinterpreter 31 über die serielle Schnittstelle 20 die Befehle der Software 12 und gegebenenfalls Schreibdaten, die auf den Daten basieren können, von dem Mikrocontroller 10. Die Befehle sind in dem Telegramm CmdTG enthalten, für den zuvor genannten DF-Flashspeicherbaustein bzw. DF-Speicherbaustein 50. Der Beehlsinterpreter 31 extrahiert die Befehle aus dem Telegramm CmdTG. Gegebenenfalls in dem Telegramm CmdTG zusätzlich enthaltene Schreibdaten gibt der Befehlsinterpreter 31 zudem in die SRAM-Pufferspeichereinheit 32 ein.During operation, the
Außerdem erzeugt die Vorrichtung 30 im Betrieb die Signale CF_CLK, CF_CS und sendet diese über die serielle Schnittstelle 37 an die serielle Schnittstelle 41 des CF-Speicherbausteins 40. Das Taktsignal CF_CLK taktet den Zugriff für Schreiben oder Lesen auf/in dem Speicherbereich 42 des CF-Speicherbausteins 40.In addition, the
Die serielle Schnittstelle 37 hat eine geringere Latenz und eine höhere Datenrate als die Schnittstelle 20, die zwischen dem Mikrocontroller 10 und der Vorrichtung 30 angeordnet ist. Die serielle Schnittstelle 37 kann eine QSPI-Schnittstelle sein. Bei einer solchen Ausgestaltung sind die Signale CF_MISO und CF_MOSI als sogenannter „bidirektionaler Bus“ signaltechnisch zusammengelegt und umfassen dabei insgesamt vier digitale Signale anstelle nur jeweils 1 Signal.The
Hierfür steuert der Befehlsinterpreter 31 den Telegramm-Generator 34 entsprechend den über das Signal DF_MOSI (
Noch dazu sendet der Befehlsinterpreter 31 ein Signal CmdCtrl an den Telegramm-Generator 34. Und der Befehlsinterpreter 31 empfängt von dem Telegramm-Generator 34 ein Signalwort CmdFdb/FLSt_In, welches eine Statusinformation FLSt_In von dem Telegramm-Generator 34 enthält.In addition, the
Außerdem kontrolliert der Befehlsinterpreter 31 das Einspeichern von gegebenenfalls mit dem Telegramm CmdTG übertragenen Schreibdaten in die SRAM-Pufferspeichereinheit 32 und gibt hierfür ein Signal bzw. einen Befehl WrCtrl zum Schreiben an die SRAM-Pufferspeichereinheit 32 aus. Die Schreibdaten aus der SRAM-Pufferspeichereinheit 32 können durch oder mit (Hilfe) eines Signals WrDt an den Telegramm-Generator 34 weitergegeben werden.In addition, the
Noch dazu kontrolliert der Befehlsinterpreter 31 über den Lese-Multiplexer 36 das Auslesen von Daten in der SRAM-Pufferspeichereinheit 32, welche die beiden SRAM-Pufferspeicher des DF-Speicherbausteins 50 emuliert. Die SRAM-Pufferspeichereinheit 32 gibt die Lesedaten durch das oder mit dem Signal RdDt2 an den Lese-Multiplexer 36 aus.In addition, the
Zum Zwecke des Auslesens des emulierten DF-Statusregisters 311, gibt der Befehlsinterpreter 31 den Registerinhalt durch oder mit (Hilfe) des Signals RdDt1 an den Lese-Multiplexer 36 aus.For the purpose of reading the emulated
Zusätzlich oder alternativ gibt der Befehlsinterpreter 31 ein Signal bzw. einen Befehl RdEn/RdAddr zum Aktivieren eines Lesens der Daten im CF-Speicherbaustein 40 an die Daten-Sammeleinrichtung 35 aus. Die Daten-Sammeleinrichtung 35 gibt die Lesedaten durch das oder mit dem Signal RdDt3 an die SRAM-Pufferspeichereinheit 32 aus. Das Signal RdDt3 wird auch an den Lese-Multiplexer 36 weitergegeben oder ausgegeben für jenen Fall, dass die Lesedaten nicht in den SRAM-Pufferspeicher 32 eingespeichert, sondern direkt über die serielle Schnittstelle 20 auszugeben sind.Additionally or alternatively, the
Der Befehlsinterpreter 31 sowie der SRAM-Pufferspeicher 32 sind spezifisch für den DF-Speicherbaustein entworfen und/oder dimensioniert und/oder abgestimmt, der mit den Befehlen des Mikrocontrollers 10 adressiert ist, wie zuvor beschrieben.The
Der Telegramm-Generator 34 setzt Lese-, Schreib- und Löschbefehle (Read, Program, Erase), welche der Befehlsinterpreter 31 durch das oder mit dem Steuerwort CmdCtrl signalisiert, auf CF-spezifische Befehle um und sendet die entsprechenden Telegramme an den CF-Speicherbaustein 40 über die Datenleitungen WrDt der serielle Schnittstelle 37. Der Telegramm-Generator 34 erzeugt somit die spezifischen Telegramme für den CF-Speicherbaustein 40. Somit ist der Telegramm-Generator 34 spezifisch für den CF-Speicherbaustein 40 entworfen und/oder dimensioniert und/oder abgestimmt.The
Der Telegramm-Generator 34 steuert oder kontrolliert ferner den Empfang von Lesedaten über das Signal RdDt des CF-Speicherbausteins 40 und sammelt diese in der Daten-Sammeleinrichtung 35. Hierfür steuert der Telegramm-Generator 34 die Daten-Sammeleinrichtung 35 mit den Signalen WrENa/WrAddr an und gibt dem Befehlsinterpreter 31 darüber Rückmeldung durch das oder mit dem Signalwort CmdFdb.The
Der Telegramm-Generator 34 liest im Falle von Program-Vorgängen und/oder Lösch-Vorgängen (Erase-Vorgängen) für den Baustein 40 zyklisch das CF-Statusregister 43 des CF-Speicherbausteins 40 aus. Der Telegramm-Generator 34 gibt einen Beschäftigt-Zustand (Busy-Status) des CF-Speicherbausteins 40 an den Befehlsinterpreter 31 weiter, der die Information (Beschäftigt-Kennung 31B bzw. „BusyFlag“) über den Zustand im emulierten DF-Statusregister 311 einblendet. Auch Leseschutz-Status (WriteProtection-Status) und Ver- oder Entriegelung von Speicherbereichen des DF-Speicherbausteins 50 werden in dem Befehlsinterpreter 31, genauer seinem DF-Statusregister 311, verwaltet bzw. an den Telegramm-Generator 34 weitergegeben.In the case of program processes and/or erase processes for the
Eine weitere Funktion des Befehlsinterpreters 31 stellt auch die Darstellung der JEDEC Device ID Informationen des emulierten DF-Speicherbausteins 50 dar, welche durch oder mit (Hilfe) eines eigenen Kommandotelegramms über die serielle Schnittstelle 20 auslesbar sind. Bei den Informationen handelt es sich um eine Kennung der Länge 6 Bytes, deren Struktur durch eine Norm der US-amerikanischen Organisation „JEDEC Solid State Technology Association“ festgelegt wurde.Another function of the
Der Aufbau des Befehlsinterpreters 31 und des SRAM-Pufferspeichers 32 ist in
Gemäß
Die im Folgenden beschriebenen Abläufe werden durch den Zustandsautomaten 312 gesteuert, der auch als Finite State Machine (FSM) bezeichnet werden kann. Dabei werden zwischen dem Telegramm-Decoder 313 und dem Zustandsautomaten 312 Informationen Op/St über die angeforderten Transaktionen ausgetauscht. In
Das über den Dateneingang DF_MOSI einlaufende Kommando-Telegramm CmdTG des Mikrocontrollers 10 wird im Telegramm-Decoder 313 zerlegt, also decodiert. Hierfür werden aus dem Kommando-Telegramm CmdTG der DF-Befehl, eine gegebenenfalls nachfolgende DF-bezogene Adresse sowie gegebenenfalls nachfolgende Schreibdaten extrahiert. Der Telegramm-Decoder 313 empfängt also die Signale DF_CS, DF_CLK, DF_MOSI.The command telegram CmdTG of the
In Bezug auf die DF-Befehls-Information bestimmt der Telegramm-Decoder 313 zunächst (erste Option), ob die mit dem Kommando-Telegramm CmdTG angeforderte Transaktion auf den nachgeschalteten CF-Speicherbaustein 40 wirken muss, oder (zweite Option) lokal im Befehlsinterpreters 31 abgearbeitet werden kann. Transaktionen, die auf den nachgeschalteten CF-Speicherbaustein 40 wirken müssen, sind beispielsweise die Befehle MainMemRead, WriteStatus, Erase, WriteBufferToMainMem. Im Unterschied dazu sind Transaktionen, die lokal im Befehlsinterpreter 31 abgearbeitet werden können, beispielsweise die Befehle Write/Read-SRAM-Buffer (= Schreibe oder Lese mindestens einen der SRAM-Puffer 321, 322), Read-DF-DevicelD-Register (= Lese das DF-DevicelD-Register 315), Read-DF-StatusRegister (= Lese das DF-Statusregister 311).With regard to the DF command information, the
Entscheidet der Telegramm-Decoder 313, dass die oben genannte erste Option gilt, also, dass der nachgeschaltete CF-Speicherbaustein 40 anzusteuern ist, erzeugt der Telegramm-Decoder 313 eine entsprechende Kontrollinformation CmdCtrl und gibt diese an den Telegramm-Generator 34 weiter. Zudem speichert der Telegramm-Decoder 313 eine nach dem DF-Befehl gegebenenfalls empfangene DF-Adresse mit dem Signal AddrSt in dem Flash-Adressregister 33 ein. Die DF-Adresse steht dann ebenfalls dem Telegramm-Generator 34 per Signal Addr zur Verfügung. Das Adressregister 33 besitzt ferner einen Steuereingang 331, über welches die eingespeicherte Adresse Addr entsprechend der Anforderung durch den SPI-Takt DF_CLK der Schnittstelle 20 erhöht werden kann (Address Increment).If the
Entscheidet der Telegramm-Decoder 313 hingegen, dass die oben genannte zweite Option gilt, also, dass von dem Mikrocontroller 10 nur eine lokale Datentransaktion angefordert ist, so wird keine Kontrollinformation CmdCtrl erzeugt. Stattdessen steuert der Telegramm-Decoder 313 mindestens einen der SRAM-Puffer 321, 322, den Speicher-Multiplexer 314 sowie gegebenenfalls den Lese-Multiplexer 36 entsprechend an.If, however, the
Zudem ist der Telegramm-Decoder 313 ausgestaltet, bei einem Befehl für eine DF-Schreiboperation (FlashProgram) die über die SPI-Schnittstelle 20 empfangenen und im Telegramm-Decoder 313 ausgekoppelten Schreibdaten WDt über den Speicher-Multiplexer 314 in mindestens einen der SRAM-Puffer 321, 322 einzuspeichern, der/die entsprechend des empfangenen DF-Befehls an dem DF_MOSI-Eingang angewählt ist/sind. Die Schreibdaten WDt können über den Schreib-Multiplexer 323 an den Telegramm-Generator 34 weitergegeben werden, sofern ein WriteBufferToMainMem-Kommando bzw. -Befehl decodiert wurde.In addition, the
Außerdem ist der Telegramm-Decoder 313 ausgestaltet, bei einem LeseBefehl über die Kanäle 1 und/oder 2 des Lese-Multiplexers 36 die Lesedaten RDt21, RDt22 aus mindestens einem der SRAM-Puffer 321, 322 über das Signal DF_MISO an den Mikrocontroller 10 auszugeben. Die Lesedaten RDt21, RDt22 entsprechen dem Signal RdDt2 in
An dem Kanal 3 des Lese-Multiplexers 36 wird das Signal RdDt3 empfangen, Lesedaten aus der Daten-Sammeleinrichtung 35, wie zuvor in Bezug auf
Für den Telegramm-Decoder 313 ist eine lokale Transaktion auch das Lesen des DF-DevicelD-Registers 315 (Kanal 5 des Lese-Multiplexers 36) und Ausgabe der Lesedaten RdDt4. Zudem ist für den Telegramm-Decoder 313 eine lokale Transaktion auch das Lesen des emulierten DF-Statusregisters (Kanal 4 des Lese-Multiplexers 36) und Ausgabe der Lesedaten RdDt1. Das im Befehlsinterpreter 31 emulierte DF-Statusregister 311 muss bei den Befehlen bzw. Transaktionen „Schreibe Status“ (WriteStatus), „Löschen“ (Erase), „Schreibe Daten in Puffer in Hauptspeicher“ (WriteBufferToMainMem) aktualisiert werden. Das Aktualisieren veranlasst der Telegramm-Generator 34 und liefert entsprechende Informationen als Signal FLSt_In („FlashStatusInfo“) an den Befehlsinterpreter 31, aus welchen die Informationen in dem DF-Statusregister 311 nachgebildet werden. Das Aktualisieren des DF-Statusregisters 311 erfolgt einem Erase- und einem WriteBufferToMainMem-Befehl zyklisch, bei einem WriteStatusBefehl einmalig und direkt.For the
Die Vorrichtung 30 kann so mittels einer Ein-/Ausgabe-Schnittstelle mit Schnittstellenlogik 41 des CF-Speicherbausteins 40 auf den Speicherbereich 42 des CF-Speicherbausteins 40 zugreifen. Die Ein-/Ausgabe-Schnittstelle 41 ist eine serielle Schnittstelle und hat entsprechende Schnittstellenlogikbausteine einer seriellen Schnittstelle, wie später genauer beschrieben.The
Demzufolge ist der Telegramm-Generator 34 ausgestaltet, auf Basis der aus dem Flash-Adressregister 33 bezogenen DF-Adresse eine Adressumsetzung, die auch Adresszuordnung genannt werden kann, auf Adressen des CF-Speicherbausteins 40 durchzuführen. Eine derartige Adressumsetzung kann für eine DF-typische seitengranulare Programmier- und Löschbarkeit erforderlich sein, die bei dem CF-Speicherbaustein 40 nicht verfügbar ist. Ein Beispiel für eine solche Adressumsetzung ist anhand von
Die Ein-/Ausgabe-Schnittstelle 41 wird üblicherweise durch einen eingebetteten Mikrocontroller realisiert, welcher über die Schnittstelle 41 empfangene CF-Kommandos bzw. CF-Kommando-Telegramme interpretiert und die Ausführung der entsprechenden Operationen auf dem Speicherbereich 42 steuert..The input/
Der Speicherbereich 42 des CF-Speicherbausteins 40 ist in Seiten P0, P1, P2, P3 bis Pn-1 (in Englisch: Pages) unterteilt, wobei n eine natürliche Zahl > 1 ist. Jede der Seiten P0, P1, P2, P3 bis Pn-1 hat eine spezifische Speicheradresse Addr, wie in
Im Unterschied dazu hat in
Das heißt, der CF-Speicherbaustein 40 von
Daher führt die Vorrichtung 300, genauer der Telegramm-Generator 34, eine entsprechende Adressumsetzung von den Seiten DP0, DP1, DP2 bis DP4095 des DF-Speicherbausteins 50 in
Dementsprechend ist der Telegramm-Generator 34 ausgestaltet, wie in
Gemäß
Die Daten-Sammeleinrichtung 35 hat einen Lese-FIFO-Puffer 351, der als DPRAM ausgeführt sein kann, und einen Flash-Status-Decoder 352. The
Wie zuvor erwähnt, implementiert die Daten-Sammeleinrichtung 35 eine FIFO (First In First Out) Warteschlange, nämlich für Lesedaten RdDt3 usw., wie bereits in
Die Lesedaten RdDt3 usw. werden aus der Daten-Sammeleinrichtung 35 entweder in einen der SRAM-Puffer 321, 322 von
Der Telegramm-Generator 34 achtet in diesem Zusammenhang darauf, dass Lesedaten RdDt3 usw. stets rechtzeitig in dem FIFO-Puffer 351 zur Verfügung stehen, da der Mikrocontroller 10 (SPI-Master) diese in dem von ihm vorgegebenen SPI-Takt DF_CLK abholen wird. Für das Holen der ersten Lesedaten (Befehle MainMemoryPageRead, ContinuousArrayRead) und das rechtzeitige zur Verfügung stehen der Lesedaten RdDt3 usw. ist der Telegramm-Generator 34 in Bezug auf die mit dem Signalwort „CmdCtrl“ eingehende Transaktionsanforderung ausgestaltet, wie folgt. Das heißt, der Telegramm-Generator 34 nutzt neben dem höheren Datendurchsatz sowie der niedrigeren Latenz der Schnittstelle 37 zum CF-Speicherbaustein 40, die Übertragungszeit von DF-Opcode 101, DF-Speicheradresse 102 sowie der folgenden Don`t Care Bytes 103 als zeitlichen Puffer . Die Don`t Care Bytes werden auch als Dummy-Bits oder -Bytes bezeichnet. Der Opcode 101 wird auch op code oder operation code genannt. Der Opcode 101 gibt die Nummer eines DF-Flash-Befehls für den DF-Speicherbaustein 50 an. Alle Opcodes 101 zusammen bilden den Befehlssatz des DF-Flashspeicherbausteins 50 oder der entsprechenden DF-Flash-Speicher-Familie.In this context, the
Die Vorrichtung 300 muss bei einem ContinuousArrayRead-Kommando bzw. Befehl nach 40 SPI-Takten das erste Datenbit an den Mikrocontroller 10 (
Das Nachladen der Folgedaten in den FIFO-Puffer 351 führt der Telegramm-Generator 34 somit stets im Voraus aus.The
Die zuvor genannten Program- und/oder Löschbefehle (Program, Erase) sind hingegen für den Telegramm-Generator 34 zeitlich unkritischer. Grund dafür ist, dass das emulierte DF-Statusregister 311 ihre Ausführung in dem CF-Speicherbaustein 40 dem Mikrocontroller 10 signalisiert. Die Signalisierung erfolgt mit einem Ready/NotBusy-Bit in dem DF-Statusregister 311.The previously mentioned program and/or erase commands (Program, Erase), on the other hand, are less time-critical for the
Die im Folgenden beschriebenen Abläufe werden durch den Zustandsautomaten 341 gesteuert, der auch als Finite State Machine (FSM) bezeichnet werden kann. In
Zentrale Komponente des Telegramm-Generators 34 von
Anhand der Information „CmdCtrl“ wählt der Befehls-Zuordner 343 das entsprechende CF-Kommando aus und legt den zugehörigen Binärcode im Schieberegister 344 ab. Der Adress-Zuordner 342 bildet aus der DF-Adresse eine CF-Adresse Addr_P0 usw. gemäß dem Abbildungsschema bzw. Zuordnungsschema, wie in
Im Falle von Lesetransaktionen auf dem CF-Speicherbaustein 40 schaltet der Zustandsautomat 341 die Datenrichtung des Bustreibers 345 nach Versenden des entsprechenden Lesetelegramms aus dem Schieberegister 344 an den CF-Speicherbaustein 40 um und taktet die Lesedaten RDt in den Lese-FIFO-Puffer 351 der Daten-Sammeleinrichtung 35 ein. Hierbei wird der Takt CF_CLK verwendet, während über die Signale WrEna/WrAddr der FIFO-Puffer 351 zur Einspeicherung der Lesedaten geeignet angesteuert wird. Von der Daten-Sammeleinrichtung 35 werden die Lesedaten RDt im Takt DF_CLK (
Im Falle von Schreibtransaktionen auf das CF-Statusregister 43 sowie im Falle von Program- oder Löschoperationen (Erase-Operationen) wird stets das in dem Befehlsinterpreter 31 emulierte DF-Statusregister 311 aktualisiert. Hierfür setzt der Zustandsautomat 341 zur Bildung der WriteEnable- und Protection-Flags ein StatusRegister-Lesekommando bzw. Lesebefehl über das Schieberegister 344 an den CF-Speicherbaustein 40 ab.In the case of write transactions to the
Der Flash-Status-Decoder 352 zerlegt und decodiert die Antwort des CF-Speicherbausteins 40 auf ein StatusRegister-Lesekommando, um daraus die FlashStatusinfo des DF-Statusregisters 311 in dem Signal FLSt_In zu bilden. Die Beschäftigt-Kennung 31B („Busy Flag“) des DF-Statusregisters 311 erfordert hierbei jedoch besondere Behandlung. Die Kennung 31B setzt der Flash-Status-Decoder 352 in dem DF-Statusregister 311 nämlich bereits beim Absetzen eines Program- oder Erase-Kommandos an den CF-Speicherbaustein 40. Nach dem vollständigen Absenden eines dieser Kommandos bzw. Befehle, inklusive gegebenenfalls Versenden der erforderlichen Schreibdaten WDt an den CF-Speicherbaustein 40, veranlasst der Zustandsautomat 341 ein kontinuierliches Auslesen des CF-Statusregisters 43, so dass die Beschäftigt-Kennung 31B („Busy Flag“) des CF-Statusregisters 43 das Ende des Program- bzw. Erase-Vorganges in dem CF-Speicherbaustein 40 anzeigen kann.The
Ansonsten ist Vorrichtung 300 gemäß dem vorliegenden Ausführungsbeispiel aufgebaut, wie bei dem vorangehenden Ausführungsbeispiel beschrieben.Otherwise,
Gemäß einem dritten Ausführungsbeispiel ist die Vorrichtung 30 ausgestaltet, anstelle einer Adressumsetzung des Telegramm-Generators 34 eine kompakte Speicherung der Daten der DF-Seiten DP0, DP1, DP2 usw. im CF-Speicherbaustein 40 durchzuführen. Hierbei wird eine Adressabbildungstabelle gehalten, die auch Mapping-Tabelle genannt wird. Zudem ist eine Relokation kompletter Blöcke B0, B1 usw. des CF-Speicherbausteins 40 im Falle eines Befehls Page-Writes zum Schreiben einer Seite P0, P1 bis Pn-1 vorzunehmen.According to a third embodiment, the
Eine derartige Ausgestaltung der Vorrichtung 30 ist im Vergleich zu dem ersten Ausführungsbeispiel jedoch zeitaufwändiger, da das Umkopieren sowie das remanente Sichern der Mapping-Tabelle viel Zeit kostet. Zudem sind das Umkopieren sowie das remanente Sichern der Mapping-Tabelle in DF-Seiten-Granularität gegebenenfalls nicht spannungsausfallsicher realisierbar.However, such a design of the
Auf diese Weise kann die Vorrichtung 30 eine Speicherung von Daten 4 mit Hilfe des CF-Speicherbausteins 40 vornehmen und auf diese zum Lesen zugreifen, auch wenn die Software 12 des ansteuernden Mikrocontrollers 10 zum Speichern in den DF-Speicherbaustein 50 ausgestaltet ist.In this way, the
Ansonsten kann die Vorrichtung 30 gemäß dem vorliegenden Ausführungsbeispiel aufgebaut sein, wie bei einem der vorangehenden Ausführungsbeispiele beschrieben.Otherwise, the
Alle zuvor beschriebenen Ausgestaltungen des Systems 1, der Vorrichtungen 30, 300 und des von diesen ausgeführten Verfahrens können einzeln oder in allen möglichen Kombinationen Verwendung finden. Insbesondere können alle Merkmale und/oder Funktionen der zuvor beschriebenen Ausführungsbeispiele beliebig kombiniert werden. Zusätzlich sind insbesondere folgende Modifikationen denkbar.All previously described embodiments of the
Die in den Figuren dargestellten Teile sind schematisch dargestellt und können in der genauen Ausgestaltung von den in den Figuren gezeigten Formen abweichen, solange deren zuvor beschriebenen Funktionen gewährleistet sind.The parts shown in the figures are schematic and may differ in their exact design from the forms shown in the figures, as long as their previously described functions are guaranteed.
Zur weiteren Kostenersparnis kann die Vorrichtung 30, 300 zumindest teilweise in einem vorhandenen CPLD oder FPGA untergebracht werden, sofern dies bei der jeweiligen Anwendung bzw. System 1 möglich ist, insbesondere auch zulässig ist.To further save costs, the
Selbstverständlich ist es möglich, dass der CF-Speicherbaustein 40 eine andere Speichergröße für die Seiten P0, P1 bis Pn-1 hat und/oder der DF-Speicherbaustein 50 eine andere Speichergröße für die Seiten DP0, DP1 usw. hat als in
Die Anlage 3 hat gegebenenfalls zusätzlich oder alternativ mindestens eine NC-Steuerung (Numerical Control = Numerische Steuerung) und/oder mindestens eine CNC-Steuerung (Computerized Numerical Control = rechnergestützte numerische Steuerung).
Die Anlage 3 kann eine Bewegungslogiksteuerung für beispielsweise Transportsysteme oder zur Führung von Werkzeugen, usw. sein oder aufweisen.The
Die industrielle Anlage 1 hat möglicherweise zusätzlich oder alternativ ein Biegewerkzeug und/oder ein Stanzwerkzeug und/oder ein Bohrwerkzeug und/oder ein Torquewerkzeug.The
Claims (15)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102023203783.1A DE102023203783A1 (en) | 2023-04-25 | 2023-04-25 | DEVICE AND METHOD FOR ACCESSING A CODE FLASH MEMORY |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102023203783.1A DE102023203783A1 (en) | 2023-04-25 | 2023-04-25 | DEVICE AND METHOD FOR ACCESSING A CODE FLASH MEMORY |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE102023203783A1 true DE102023203783A1 (en) | 2024-10-31 |
Family
ID=93015471
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE102023203783.1A Pending DE102023203783A1 (en) | 2023-04-25 | 2023-04-25 | DEVICE AND METHOD FOR ACCESSING A CODE FLASH MEMORY |
Country Status (1)
| Country | Link |
|---|---|
| DE (1) | DE102023203783A1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20090106481A1 (en) * | 2007-10-17 | 2009-04-23 | Spansion Llc | Hybrid flash memory device |
| US7881123B2 (en) * | 2005-09-23 | 2011-02-01 | Macronix International Co., Ltd. | Multi-operation mode nonvolatile memory |
| US20120084491A1 (en) * | 2010-10-03 | 2012-04-05 | Eungjoon Park | Flash Memory for Code and Data Storage |
-
2023
- 2023-04-25 DE DE102023203783.1A patent/DE102023203783A1/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7881123B2 (en) * | 2005-09-23 | 2011-02-01 | Macronix International Co., Ltd. | Multi-operation mode nonvolatile memory |
| US20090106481A1 (en) * | 2007-10-17 | 2009-04-23 | Spansion Llc | Hybrid flash memory device |
| US20120084491A1 (en) * | 2010-10-03 | 2012-04-05 | Eungjoon Park | Flash Memory for Code and Data Storage |
Non-Patent Citations (1)
| Title |
|---|
| Texas Instruments: EEPROM Emulation for Gen 2 C2000 TReal-Time MCUs. Applcation Report. Texas Instruments, Dallas, Texas, US, 2020.<https://www.ti.com/lit/an/sprab69a/sprab69a.pdf>(recherchiert am 11.3.2024) * |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69713784T2 (en) | RECONFIGURABLE COMPUTER SYSTEM | |
| DE3586260T2 (en) | MICROPROCESSOR SYSTEM. | |
| EP0951682B1 (en) | IO-AND MEMORY BUS SYSTEM FOR DFPs AND UNITS WITH TWO-OR MULTI- DIMENSIONALLY PROGRAMMABLE CELL STRUCTURES | |
| DE69933328T2 (en) | Reusable cache device and method | |
| EP1329816A2 (en) | Method for automatic dynamic unloading of data flow processors (dfp) as well as modules with bidimensional or multidimensional programmable cell structures (fpgas, dpgas or the like) | |
| DE102004033445A1 (en) | Integrated circuit device has interface to convert advanced microcontroller bus architecture format into interface format e.g. static RAM format compatible to access resources of slave chip by master chip, according to request | |
| DE112008001679T5 (en) | Cache memory with configurable associativity | |
| DE69423077T2 (en) | Control devices for non-volatile memory devices | |
| DE102006046417A1 (en) | A data processing system and method for extracting data from a OneNAND flash memory to a RAM memory device | |
| DE69119149T2 (en) | Structure for direct memory-to-memory transfer | |
| DE602004008712T2 (en) | A memory bandwidth control device | |
| DE102018202446A1 (en) | Method for modularizing a software architecture | |
| DE3410497A1 (en) | COMPUTER ARRANGEMENT | |
| DE102023203783A1 (en) | DEVICE AND METHOD FOR ACCESSING A CODE FLASH MEMORY | |
| DE2747304A1 (en) | MICRO COMMAND DEVICE | |
| EP1548603B1 (en) | Method and apparatus for controlling memory access | |
| EP1308846B1 (en) | Data Transfer Device | |
| DE69025231T2 (en) | CPU core for single-chip microcomputers | |
| WO2006131471A1 (en) | Method for carrying out the data transfer between program elements of a process, buffer object for carrying out the data transfer, and printing system | |
| DE2902477A1 (en) | DATA PROCESSING ARRANGEMENT | |
| DE102005059593A1 (en) | Method and device for switching to a memory for a control unit | |
| DE102005040109B4 (en) | Semiconductor memory chip | |
| DE4114545C2 (en) | Circuit arrangement for a microcomputer | |
| EP1770455B1 (en) | Control device and data carrier for a control device | |
| EP1316891A1 (en) | Data communication system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R163 | Identified publications notified |