EP1532526A2 - Verfahren zur initialisierung von programmierbaren systemen - Google Patents

Verfahren zur initialisierung von programmierbaren systemen

Info

Publication number
EP1532526A2
EP1532526A2 EP03793579A EP03793579A EP1532526A2 EP 1532526 A2 EP1532526 A2 EP 1532526A2 EP 03793579 A EP03793579 A EP 03793579A EP 03793579 A EP03793579 A EP 03793579A EP 1532526 A2 EP1532526 A2 EP 1532526A2
Authority
EP
European Patent Office
Prior art keywords
initialization
program
external
internal
data
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.)
Withdrawn
Application number
EP03793579A
Other languages
English (en)
French (fr)
Inventor
Jens David
Jens Bretschneider
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.)
NXP BV
Original Assignee
Philips Semiconductors Dresden AG
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 Philips Semiconductors Dresden AG filed Critical Philips Semiconductors Dresden AG
Publication of EP1532526A2 publication Critical patent/EP1532526A2/de
Withdrawn legal-status Critical Current

Links

Classifications

    • 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/4401Bootstrapping
    • G06F9/4403Processor initialisation

Definitions

  • the invention relates to a method for initializing programmable systems in which the information required for initializing registers and internal and / or external modules is contained in an external memory and is read out, in particular for use in programmable system-on-chip ASIC elements.
  • ASIC Application specific integrated circuit
  • PCI Peripheral Components Interconnect
  • Cardbus Cardbus
  • USB Universal Serial Bus
  • Due to the nature of the products, which are manufactured in large quantities at low prices, it is common for semiconductor design houses to develop a hard-wired solution that is manufactured by contract partners and sold to OEM customers (OEM original device manufacturer) who sell the semiconductors integrate into their peripherals. The resulting end products mostly differ by Functional scope, performance, power consumption and price, depending on which circuitry and additional components were used for the respective solution.
  • the additional electronics on the circuit board must be brought into an initial state in a variable manner when the device is switched on or plugged in.
  • the OEM-specific elements must be initialized when switching on. It can happen that the external electronic modules, which are located next to the ASIC on the device, have to be brought into a defined initial state directly when switching on or plugging in or within a very short time afterwards. B. destruction, excessive power consumption or confusing Avoid status displays, by means of LEDs or a display. Since the ASIC in the circuit is usually the only "intelligent component that can perform this task, but the external circuitry generally differs, as described above, a way must be found for the ASIC to provide information about the initialization of the other modules to convey so that it can carry out the initialization accordingly.
  • Identification features and serial numbers are stored in the EEPROM.
  • the identification features are understood to be the product ID, vendor ID, subsystem ID and subsystem vendor ID as revision identifier and device class.
  • the MAC-ID should be used for Ethernet network cards.
  • This OEM-specific information is read out by the end user by means of hardware logic from the EEPROM when the device is switched on and transferred to the corresponding register in the PCI / USB core of the ASIC. This enables the device to be recognized by the computer.
  • the registers in the IO blocks via which the remaining electronics on the device are controlled, either remain uninitialized, are set to a "burned-in * reset value" in the ASIC or can be set by the hardware logic according to the EEPROM content.
  • the invention is therefore based on the object of specifying a method in which all registers and assemblies can be initialized, flexible initialization of the external electronics is possible, the ASIC development is simplified and different external and internal storage media are supported.
  • the object is achieved with a method for initializing programmable systems of the type mentioned in the introduction in that after switching on or another event triggering a restart, controlled by a program of an instruction memory, a transfer of initialization information from an external or internal non-volatile storage medium to an internal memory, that the initialization information contains initialization data and / or at least one initialization program, that the initialization of the registers and assemblies is controlled by one or more processor elements or other intelligent building blocks arranged in the system, which in turn are controlled by the initialization program.
  • the initialization of the registers and Assemblies carried out by one or more processor elements. After switching on or after an external restart event of the device, this requires a program to be processed.
  • the program for starting the initialization phase is contained in a so-called instruction memory (bootstrap loader).
  • the initialization information can include both initialization data and an initialization program.
  • Initialization data are identifications (ID), such as the product ID, vendor ID, subsystem vendor ID or a serial number of an Ethernet network card.
  • ID identifications
  • the initialization program controls the processor element after the transfer of the initialization information into the instruction RAM and realizes the initialization of the registers and modules.
  • One embodiment of the invention provides that an integrity check of the initialization information is carried out after the transfer and that a program branch is carried out, controlled by the result of the integrity check.
  • One embodiment of the invention provides that when an incorrect or missing internal or external storage medium is detected, an error routine is processed which carries out the initialization with standard values or restores the content of the internal or external storage medium in whole or in part.
  • the data is checked for integrity, for example by determining a checksum.
  • the processor element either processes the initialization program that has just been transmitted or macro instructions or a routine for handling exceptional cases in the instruction memory is started. Through this routine, the functionally most important registers in the ASIC are programmed in such a way that the device can at least basically be addressed via the respective PC interface. If a missing or incorrect storage medium was detected in the switch-on phase, a routine for initialization with standard values is also processed.
  • the initialization data are read from the storage medium as standard values, changed by the processor element and the changed initialization data are used for initialization.
  • the EEPROM contains standard values, for example for the product ID, vendor ID, subsystem vendor ID or a serial number of an Ethernet network card and the like. a. saved. These values can be used directly to initialize the registers and / or modules. However, the processor element can also be used to change the standard values or to make an alternative selection controlled by an event. From the point of view of error handling, this results in the possibility of using the support logic to change or restore the initialization information of the external EEPROM, and the checksum can also be recalculated.
  • initialization data are calculated by the initialization program from the processor element and used for initialization.
  • the processor element can calculate initialization data, for example depending on the status of a port or register.
  • One embodiment of the invention provides that, depending on the status data of peripheral components and / or internal components, their initialization data and the data for the internal components are calculated.
  • the program flow of the initialization program can be designed in such a way that an initialization value is selected or calculated depending on the status of individual internal or external registers or modules. For this purpose, for example, a register or port is queried in a first step and, depending on this result, the initialization takes place after a jump to a designated point in the program sequence.
  • the processor element changes to a power-saving mode after initialization has taken place.
  • the processor element can be put into a power-saving mode, from which it is reset, for example, by a signal from a PC or a peripheral module.
  • the initialization of further processor elements is started and monitored.
  • the processor element can carry out the initialization of further processors present in the system, which subsequently start their own initialization routines.
  • the completion of the initialization is either reported back to the first processor or the first processor transfers control to another processor.
  • the instruction memory arranged in the ASIC contains a start program to be executed after the device is switched on and reads the initialization information from the external EEPROM and transfers it to the instruction RAM.
  • This start program contains a routine that recognizes the connected storage medium and ensures compliance with the transmission protocol required in each case.
  • the initialization program reloads further data and / or program code from a storage medium.
  • the processor element can reload further initialization information (program code or state data).
  • Fig. 1 shows a circuit arrangement according to the prior art
  • Fig. 2 shows a circuit arrangement for implementing the method according to the invention.
  • a processor element 8 which does not necessarily have to be a component of the ASIC logic 1 in the prior art, an instruction memory 9 (bootstrap loader), an instruction RAM 10, a data RAM 11, an EEPROM interface 12 and a support -Logik 13.
  • the external EEPROM 14 known from the prior art is also arranged outside the ASIC 1 and connected to it via a second bus system 15.
  • An I 2 C, SPI or Microwire bus can be used as the second bus system 15.
  • the ASIC 1, the external EEPROM 14 and the external electronics 7 form a peripheral device 18 to be controlled by the PC 3.
  • the instruction memory 9 arranged in the ASIC contains a start program to be processed after the device is switched on and implements the readout of the initialization information from the external EEPROM 14 and the transfer into the instruction RAM 10. Since the exchange of the bus signals from the respectively used external EEPROM 14 and Bus system 15 is dependent and the process is controlled by a program, the adaptation to different bus systems 15 or EEPROM types 14 can be implemented in terms of program technology. This also enables automatic detection of the connected EEPROM type 14.
  • the initialization information to be transmitted consists of the initialization data and an initialization program. After the initialization information has been transferred to the instruction RAM 10, an integrity check is carried out to ensure the error-free transfer of the data.
  • the further program execution takes place using the initialization program just transferred into the instruction RAM 10.
  • This program carries out the actual initialization of register 5 and modules with the aid of the initialization data.
  • This initialization makes, for example, the necessary settings in the bus interface 2 in order to enable communication with the PC 3 and the initialization of the other internal modules and the I / O interface 6 for the control of the external electronics 7.
  • the program-controlled initialization makes it possible to set all registers 5 or assemblies that are directly or indirectly addressable by processor element 8 and state machines that are dependent on them. Furthermore there is Possibility of performing the initialization dynamically, i.e. depending on input values. This makes it possible to immediately show on the display 7 in the commissioning phase of the device whether a certain condition is met or not.
  • the method according to the invention enables the peripheral device 18 to act independently in order to “wake up” the PC 3 from an initial idle state (for example wake-on-lan or wake-up in the case of a fax call).
  • PC personal computers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung, die ein Verfahren zur Initialisierung von programmierbaren Systemen betrifft, bei dem die zur Initialisierung von Registern und internen und/oder externen Baugruppen notwendigen Informationen in einem externen Speicher enthalten sind und ausgelesen werden, liegt die Aufgabe zugrunde, ein Verfahren anzugeben, bei dem alle Register und Baugruppen initialisierbar sind, eine flexible Initialisierung der externen Elektronik möglich ist, die ASIC Entwicklung vereinfacht wird und unterschiedliche EEPROM-Typen unterstützt werden. Gemäss der Erfindung wird die Aufgabe dadurch gelöst, dass nach dem Einschalten oder einem anderen, einen Neustart auslösenden Ereignis, gesteuert durch ein Programm eines Instruktionsspeichers, ein Transfer von Initialisierungsinformationen von einem externen oder internen nichtflüchtigen Speichermedium zu einem internen Speicher erfolgt, dass die Initialisierungsinformationen Initialisierungsdaten und/oder mindestens ein Initialisierungsprogramm enthalten, dass die Initialisierung der Register und Baugruppen durch ein oder mehrere im System angeordnete Prozessorelemente oder andere intelligente Baublöcke gesteuert erfolgt, die ihrerseits durch das Initialisierungsprogramm gesteuert werden.

Description

Verfahren zur Initialisierung von programmierbaren Systemen
Die Erfindung betrifft ein Verfahren zur Initialisierung von programmierbaren Systemen bei dem die zur Initialisierung von Registern und internen und/oder externen Baugruppen notwendigen Informationen in einem externen Speicher enthalten sind und ausgelesen werden, insbesondere zur Anwendung in programmierbaren System-on-Chip ASIC Elementen.
Komplexe mikrocontrollergestützte elektronische Systeme, insbesondere im Bereich der Personal-Computer-Peripherie setzen sich zumeist aus produktionstechnischen und wirtschaftlichen Gründen aus wenigen Bauteilen zusammen. Im allgemeinen wird versucht, sämtliche Logik auf einen applikationsspezifischen, integrierten Baustein (ASIC = Application specific integrated circuit) unterzubringen. Dieser ASIC enthält die Interfaces, die die Verbindung mit dem PC herstellen, zum Beispiel PCI- (PCI = Peripheral Components Interconnect) , Cardbus- oder USB- Controller (USB = Universal Serial Bus) . Aufgrund des Charakters der Produkte, welche in hohen Stückzahlen zu kleinen Preisen gefertigt werden, ist es üblich, bei Halbleiter- Designhäusern eine hartverdrahtete Lösung zu entwickeln, die bei Vertragspartnern hergestellt und an OEM-Kunden (OEM = Originalgerätehersteller) verkauft wird, welche die Halbleiter in ihre Peripheriegeräte integrieren. Die sich ergebenden Endprodukte unterscheiden sich dabei zumeist durch Funktionsumfang, Leistung, Stromverbrauch und Preis, je nachdem welche Beschaltung und zusätzlichen Bauteile für die jeweilige Lösung eingesetzt wurde.
Durch diese schaltung technischen Unterschiede müssen die verschiedenen Hardwaregeräte softwaremäßig unterschiedlich angesprochen und behandelt werden. Daran angepasste Treiber auf Betriebssystemseite sind notwendig und oftmals auch von den OEM-Kunden erwünscht, um sich dadurch weiter von Konkurrenzprodukten abzugrenzen.
Darüber hinaus muss die Zusatzelektronik auf der Platine schon beim Einschalten oder Einstecken auf eine variable Art und Weise in einen Initialzustand gebracht werden.
Aus den beschriebenen Forderungen ergeben sich zwei Problemstellungen:
Zum einen muss eine Erkennung für jedes externe Gerät durchgeführt und ein entsprechender Gerätetreiber zugeordnet werden. Moderne PC-Betriebssysteme müssen während dem Betrieb (z. B. USB, Cardbus) oder vor dem Betrieb (z. B. PCI) hinzugefügte externe Baugruppen automatisch identifizieren und einen passenden Treiber zuordnen können. Wenn die Merkmale, anhand derer eine Identifizierung für das Betriebssystem möglich ist, jedoch ausschließlich auf dem ASIC untergebracht werden, so ist eine Unterscheidung zwischen verschiedenen OEM-
Produkten unmöglich.
Zum anderen muss eine Initialisierung der OEM-spezifischen Elemente beim Einschalten durchgeführt werden. Es kann vorkommen, dass die externen Elektronikbaugruppen, die sich neben dem ASIC auf dem Gerät befinden, direkt beim Einschalten bzw. Einstecken oder innerhalb kürzester Zeit danach in einen definierten Ausgangszustand gebracht werden müssen, um z. B. eine Zerstörung, übermäßigen Stromverbrauch oder verwirrende Statusanzeigen, durch Leuchtdioden oder ein Display, zu vermeiden. Da der ASIC in der Schaltung meistens der einzige „intelligente Baustein ist, der diese Aufgabe ausführen kann, die externe Beschaltung sich aber im allgemeinen, wie oben beschrieben, unterscheidet, muss ein Weg gefunden werden, dem ASIC die Informationen über die Initialisierung der anderen Baugruppen zu vermitteln, damit dieser die Initialisierung dementsprechend vornehmen kann.
Bekannte Verfahren basieren darauf, einen kleinen EEPROM
(= Electrically Erasable Programmable Read Only Memory - elektrisch lösch- und programmierbarer Nur-Lese-Speicher) auf der Geräteplatine unterzubringen und mit dem ASIC über einen meist seriellen Bus zu verbinden. Im EEPROM sind Identifikationsmerkmale und Seriennummer gespeichert. Unter den Identifikationsmerkmalen versteht man beispielsweise bei PCI/Cardbus die Produkt-ID, Vendor-ID, Subsystem-ID und Subsystem Vendor-ID als Revisionskennung und Geräteklasse. Als Beispiel für eine Seriennummer soll die MAC-ID bei Ethernet- Netzwerkkarten stehen.
Diese OEM-spezifischen Informationen werden beim Einschalten des Gerätes durch den Endverbraucher mittels einer Hardwarelogik aus dem EEPROM ausgelesen und in die entsprechenden Register im PCI/USB-Kern des ASIC transferiert. Dadurch kann das Gerät vom Rechner erkannt werden.
Die Register in den IO-Blocks, über die die restliche Elektronik auf dem Gerät gesteuert wird, bleiben entweder uninitialisiert, werden auf einen fest im ASIC „eingebrannten* Reset-Wert eingestellt oder können durch die Hardwarelogik nach dem EEPROM Inhalt gesetzt werden.
Diese bekannte Lösung weist die im folgenden näher beschriebenen Nachteile auf. Zum einen ist die dazu notwendige Hardware relativ komplex. Die Logik muss im ASIC hartverdrahtet implementiert werden.
Speziell mit komplizierten Busprotokollen, wie I2C , ist die
Verifizierung und die Implementierung der Logik (zusätzliche Gatter, Transistoren, Fläche auf dem Siliziu -Die) aufwendig.
Zum anderen ist das existierende Verfahren nicht flexibel . Bereits während der Chipdesignphase muss festgelegt werden, welche Register im ASIC (Adresse) wann und mit welchem Inhalt (Datum) aus dem EEPROM beschrieben (initialisiert) werden müssen. Die oben beschriebene Logik muss entsprechend diesen Erfordernissen aufgebaut werden.
Der Erfindung liegt somit die Aufgabe zugrunde, ein Verfahren anzugeben, bei dem alle Register und Baugruppen initialisierbar sind, eine flexible Initialisierung der externen Elektronik möglich ist, die ASIC Entwicklung vereinfacht wird und unterschiedliche externe und interne Speichermedien unterstützt werde .
Gemäß der Erfindung wird die Aufgabe mit einem Verfahren zur Initialisierung von programmierbaren Systemen der eingangs genannten Art dadurch gelöst, dass nach dem Einschalten oder einem anderen, einen Neustart auslösenden Ereignis, gesteuert durch ein Programm eines Instruktionsspeichers, ein Transfer von Initialisierungsinformationen von einem externen oder internen nichtfluchtigen Speichermedium zu einem internen Speicher erfolgt, dass die Initialisierungsinformationen Initialisierungsdaten und/oder mindestens ein Initialisierungsprogramm enthalten, dass die Initialisierung der Register und Baugruppen durch ein oder mehrere im System angeordnete Prozessorelemente oder andere intelligente Baublöcke gesteuert erfolgt, die ihrerseits durch das Initialisierungsprogramm gesteuert werden.
Erfindungsgemäß wird die Initialisierung der Register und Baugruppen durch einen oder mehrere Prozessorelemente durchgeführt. Dieser benötigt nach dem Einschalten oder nach einem externen Re-Start Ereignis des Gerätes ein abzuarbeitendes Programm. Das Programm für den Start der Initialisierungsphase ist in einem sogenannten Instruktionsspeieher (Bootstrap-Loader) enthalten. Dieses Programm steuert die Übertragung der Initialisierungsinformationen von einem externen EEPROM in einen RAM-Speicher (Instruction und/oder Data RAM) (RAM = Random Access Memory) . Dabei können die Initialisierungsinformationen sowohl Ini ialisierungsdaten als auch ein Initialisierungsprogramm beinhalten. Initialisierungsdaten sind Identifikationen (ID) , wie beispielsweise die Product-ID, Vendor-ID, Subsystem Vendor-ID oder eine Seriennummer einer Ethernet-Netzwerkkarte. Das Initialisierungsprogramm steuert das Prozessorelement nach der Übertragung der Initialisierungsinformationen in den Instruction-RAM und realisiert die Initialisierung der Register und Baugruppen.
In einer Ausgestaltung der Erfindung ist vorgesehen, dass nach dem Transfer eine Integritätsprüfung der Initialisierungsinformationen erfolgt und dass, gesteuert durch das Ergebnis der Integritätsprüfung, eine Programmverzweigung durchgeführt wird.
In einer Ausführung der Erfindung ist vorgesehen, dass beim Erkennen eines falschen oder fehlenden internen oder externen Speichermediums, eine Fehlerroutine abgearbeitet wird, die die Initialisierung mit Standardwerten durchführt oder den Inhalt des internen oder externen Speichermediums ganz oder teilweise wiederherstellt .
Gleichfalls ist denkbar, dass die Informationen als ausführbares Macro-Programm vorliegen und vom Prozessorelement interpretiert werden. Mischformen aus beiden Verfahren sind ableitbar.
Nach der Übertragung der Initialisierungsinformationen in den Instruction-RAM erfolgt eine Integritätsprüfung der Daten, beispielsweise durch die Ermittelung einer Prüfsumme. In Abhängigkeit des Ergebnisses wird durch das Prozessorelement entweder das gerade übertragene Initialisierungsprogramm oder Macro-Anweisungen abgearbeitet oder eine Routine zur Ausnahmefallbehandlung im Instruktionsspeicher angesprungen. Durch diese Routine werden die funktional wichtigsten Register im ASIC so programmiert, dass ein Ansprechen des Gerätes über die jeweilige PC-Schnittstelle zumindest grundsätzlich möglich ist. Ist in der Einschaltphase ein fehlendes oder falsches Speichermedium erkannt wurden, wird ebenfalls eine Routine zur Initialisierung mit Standardwerten abgearbeitet.
In einer weiteren Ausgestaltung der Erfindung ist vorgesehen, dass die Initialisierungsdaten als Standardwerte aus dem Speichermedium gelesen werden, durch das Prozessorelement verändert und die veränderten Initialisierungsdaten zur Initialisierung verwendet werden.
Im EEPROM sind Standardwerte zum Beispiel für die Product-ID, Vendor-ID, Subsystem Vendor-ID oder eine Seriennummer einer Ethernet-Netzwerkkarte u. a. abgespeichert. Diese Werte können direkt zur Initialisierung der Register und/oder Baugruppen verwendet werden. Durch das Prozessorelement kann aber auch eine Veränderung der Standardwerte oder eine durch ein Ereignis gesteuerte Alternativauswahl vorgenommen werden. Unter dem Aspekt der Fehlerbehandlung ergibt sich hieraus die Möglichkeit, mit Hilfe der Supportlogik die Initialisierungsinformationen des externen EEPROM zu verändern oder wiederherzustellen, wobei auch eine Neuberechnung der Prüfsumme erfolgen kann.
In einer Ausgestaltungsform der Erfindung ist vorgesehen, dass durch das Initialisierungsprogramm von dem Prozessorelement Initialisierungsdaten berechnet und zur Initialisierung verwendet werden.
Das Prozessorelement kann, durch das Initialisierungsprogramm gesteuert, Initialisierungsdaten, beispielsweise in Abhängigkeit des Zustandes eines Ports oder Registers, berechnen.
In einer Ausführung der Erfindung ist vorgesehen, dass in Abhängigkeit von Zustandsdaten von Peripheriekomponenten und/oder internen Komponenten deren Initialisierungsdaten und die Daten für die internen Komponenten berechnet werden.
Der Programmablauf des Initialisierungsprogramms kann so gestaltet werden, dass in Abhängigkeit von Zuständen einzelner interner oder externer Register oder Baugruppen ein Initialisierungswert gewählt oder errechnet wird. Dazu wird beispielsweise in einem ersten Schritt eine Abfrage eines Registers oder eines Ports realisiert und in Abhängigkeit dieses Ergebnisses erfolgt die Initialisierung nach einem Sprung an eine dafür vorgesehene Stelle im Programmablauf.
In einer besonderen Ausführung der Erfindung ist vorgesehen, dass das Prozessorelement nach erfolgter Initialisierung in einen Stromsparmodus übergeht .
Nach erfolgter Initialisierung besteht die Möglichkeit das Prozessorelement in einen Stromsparmodus zu versetzen, aus dem er beispielsweise durch ein Signal von einem PC oder einer Peripheriebaugruppe zurückversetzt wird.
In einer besonderen Ausführungsform der Erfindung ist vorgesehen, dass die Initialisierung weiterer Prozessorelemente gestartet und überwacht wird. Das Prozessorelement kann die Initialisierung weiterer im System vorhandener Prozessoren vornehmen, die nachfolgend ihre eigenen Initialisierungsroutinen starten. Die Beendigung der Initialisierung wird entweder an den ersten Prozessor zurückgemeldet oder der erste Prozessor übergibt die Steuerung an einen anderen Prozessor.
In einer weiteren Ausführungsform der Erfindung ist vorgesehen, dass eine Anpassung an verschiedene Speichermedien erfolgt.
Der im ASIC angeordnete Instruktionsspeicher enthält ein nach dem Einschalten des Gerätes abzuarbeitendes Start-Programm und realisiert das Auslesen der Initialisierungsinformationen aus dem externen EEPROM und die Übertragung in den Instruction-RAM. Dieses Start-Programm enthält eine Routine, die das angeschlossene Speichermedium erkennt und für die Einhaltung des jeweils notwendigen Übertragungsprotokolls sorgt.
In einer weiteren Ausgestaltungsform der Erfindung ist vorgesehen, dass das Initialisierungsprogramm weitere Daten und/oder Programmcode aus einem Speichermedium nachlädt.
Bei erreichen eines bestimmten Zustandes oder Ereignisses kann das Prozessorelement weitere Initialisierungsinformationen (Programmcode oder Zustandsdaten) nachladen.
Die Erfindung soll nachfolgend anhand eines Ausführungsbeispiels näher erläutert werden. In den zugehörigen Zeichnungen zeigt
Fig. 1 eine Schaltungsanordnung nach dem Stand der Technik und
Fig. 2 eine Schaltungsanordnung zur Umsetzung des erfindungsgemäßen Verfahrens. Zur Realisierung des erfindungsgemäßen Verfahrens wurden in einem ASIC 1- neben dem aus dem Stand der Technik bekannten Bus- Interface 2, über das die Koppelung an einen PC 3 durch ein erstes Bussystem 4 erfolgt und welches zu initialisierende ID- Register 5 beinhaltet, und dem I/O-Interface 6, das die Koppelung zur externen Elektronik 7 realisiert, folgende Bestandteile integriert. Ein Prozessorelement 8, welches im Stand der Technik nicht unbedingt ein Bestandteil der ASIC- Logik 1 sein muss, ein Instruktionsspeicher 9 (Bootstrap- Loader) , ein Instruction-RAM 10, ein Daten-RAM 11, ein EEPROM- Interface 12 und eine Support-Logik 13. Der aus dem Stand der Technik bekannte externe EEPROM 14 ist ebenfalls außerhalb des ASIC 1 angeordnet und über ein zweites Bussystem 15 mit diesem verbunden. Als zweites BusSystem 15 kann ein I2C, SPI oder Microwire-Bus zum Einsatz kommen. Der ASIC 1, das externe EEPROM 14 und die externe Elektronik 7 bilden ein durch den PC 3 zu steuerndes Peripheriegerät 18.
Der im ASIC angeordnete Instruktionsspeicher 9 enthält ein nach dem Einschalten des Gerätes abzuarbeitendes Start-Programm und realisiert das Auslesen der Initialisierungsinformationen aus dem externen EEPROM 14 und die Übertragung in den Instruction- RAM 10. Da der Austausch der Bussignale vom jeweilig genutzten externen EEPROM 14 und Bussystem 15 abhängig ist und der Vorgang durch ein Programm gesteuert wird, ist die Anpassung an verschiedene Bussysteme 15 oder EEPROM-Typen 14 programmtechnisch realisierbar. Damit besteht auch die Möglichkeit eine automatische Erkennung des angeschlossenen EEPROM-Typs 14 zu realisieren.
Für die Entwicklung des Instruktionsspeicher 9 können Standard- Entwicklungs- und Debuggingwerkzeuge anstelle teurer Spezialwerkzeuge eingesetzt werden.
Die zu übertragenden Initialisierungsinformationen bestehen aus den Initialisierungsdaten und einem Initialisierungsprogramm. Nach der Übertragung der Initialisierungsinformationen in den Instruction-RAM 10 wird eine Integritätsprüfung zur Sicherstellung der fehlerfreien Übertragung der Daten durchgeführt .
Wird bei dieser Überprüfung beispielsweise anhand der Prüfsumme festgestellt, dass die Übertragung fehlerfrei war, erfolgt die weitere Programmausführung unter Nutzung des gerade in den Instruction-RAM 10 übertragenen Initialisierungsprogramms. Dieses Programm führt die eigentliche Initialisierung der Register 5 und Baugruppen unter Zuhilfenahme der Initialisierungsdaten durch. Durch diese Initialisierung werden beispielsweise die notwendigen Einstellungen im Bus-Interface 2 vorgenommen, um die Kommunikation mit dem PC 3 sowie die Initialisierung der anderen internen Baugruppen und des I/O- Interfaces 6 für die Steuerung der externen Elektronik 7 zu ermöglichen.
Ergibt die Integritätsprüfung einen Fehler, weil beispielsweise die Prüfsumme inkorrekt oder gar kein EEPROM 14 angeschlossen ist, so kann eine Routine zur Ausnahmefallbehandlung im Instruktionsspeicher 9 angesprungen werden, die die funktional wichtigsten Register im ASIC 1 so programmiert, dass ein Ansprechen des Gerätes über die jeweilige PC-Schnittstelle 4 zumindest grundsätzlich möglich ist. Durch diese Grundeinstellung und die im ASIC 1 integrierte Support -Logik 13 besteht die Möglichkeit ein defektes Gerät durch Neuprogrammierung des EEPROM 14 mit Neuberechnung der zugehörigen Prüfsumme zu reparieren oder die initiale
Programmierung in der Produktionsstätte durchzuführen.
Durch die programmgesteuerte Initialisierung ist es möglich, alle vom Prozessorelement 8 direkt oder indirekt adressierbaren Register 5 oder Baugruppen und davon abhängige Zustandsautomaten zu setzen. Des weiteren besteht die Möglichkeit die Initialisierung dynamisch, dass heißt in Abhängigkeit von Eingangswerten, durchzuführen. Damit ist es möglich, sofort in der Inbetriebnahmephase des Gerätes, in einem Display 7 anzuzeigen, ob eine bestimmte Bedingung erfüllt ist oder nicht.
Darüber hinaus ermöglicht das erfindungsgemäße Verfahren dem Peripheriegerät 18 ein eigenständiges Agieren um den PC 3 aus einem initialen Ruhezustand „aufzuwecken" (z.B. Wake-on-Lan oder Wake-up bei Faxanruf) .
Verfahren zur Initialisierung von programmierbaren Systemen
Bezugszeichenliste
I ASIC 2 Businterface
3 Personalcomputer (PC)
4 erstes Bussystem
5 ID-Register
6 I/O-Interface 7 externe Elektronik
8 Prozessorelemente
9 Instruktionsspeicher
10 Instruction-RAM
II Daten-RAM 12 EEPROM-Interface
13 Support-Logik
14 Speichermedium (z. B. EEPROM)
15 zweites Bussystem
16 InitialisierungsSteuerung 17 Hauptfunktionslogik
18 Peripheriegerät

Claims

Verfahren zur Initialisierung von programmierbaren SystemenPatentansprüche
1. Verfahren zur Initialisierung von programmierbaren Systemen bei dem die zur Initialisierung von Registern und internen und/oder externen Baugruppen notwendigen Informationen in einem externen Speicher enthalten sind und ausgelesen werden, insbesondere zur Anwendung in programmierbaren System-on-Chip ASIC Elementen, d a d u r c h g e k e n n z e i c h n e t, d a s s nach dem Einschalten oder einem anderen, einen Neustart auslösenden Ereignis, gesteuert durch ein Programm eines InstruktionsSpeichers (9) , ein Transfer von Initialisierungsinformationen von einem externen oder internen nichtflüchtigen Speichermedium (14) zu einem internen Speicher (10) erfolgt, dass die Initialisierungs- informationen Initialisierungsdaten und/oder mindestens ein Initialisierungsprogramm enthalten, dass die Initialisierung der Register (5) und Baugruppen durch ein oder mehrere im System angeordnete Prozessorelemente (8) oder andere intelligente Baublöcke gesteuert erfolgt, die ihrerseits durch das Initialisierungsprogramm gesteuert werden.
2. Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, d a s s nach dem Transfer eine Integritätsprüfung der Initialisierungsinformationen erfolgt und dass, gesteuert durch das Ergebnis der Integritätsprüfung, eine Programmverzweigung durchgeführt wird.
3. Verfahren nach Anspruch 1 , d a d u r c h g e k e n n z e i c h n e t, d a s s beim Erkennen eines falschen oder fehlenden internen oder externen Speichermediums, eine Fehlerroutine abgearbeitet wird, die die Initialisierung mit Standardwerten durchführt oder den Inhalt des internen oder externen Speichermediums (14) ganz oder teilweise wiederherstellt.
4. Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, d a s s die Initialisierungsdaten als Standardwerte aus dem Speichermedium (14) gelesen werden, durch das Prozessorelement (8) verändert und die veränderten Initialisierungsdaten zur Initialisierung verwendet werden.
5. Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, d a s s durch das Initialisierungsprogramm von dem Prozessorelement (8) Initialisierungsdaten berechnet und zur Initialisierung verwendet werden.
6. Verfahren nach Anspruch 5, d a du r c h g e k e n n z e i c h n e t, d a s s in Abhängigkeit von Zustandsdaten von Peripheriekomponenten (7) und/oder internen Komponenten deren Initialisierungsdaten und die Daten für die internen Komponenten berechnet werden.
7. Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, d a s s das Prozessorelement (8) nach erfolgter Initialisierung in einen
Stromsparmodus übergeht .
8. Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, d a s s die Initialisierung weiterer Prozessorelemente (8) gestartet und überwacht wird.
9. Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, d a s s eine Anpassung an verschiedene Speichermedien erfolgt.
10. Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, d a s s das
Initialisierungsprogramm weitere Daten und/oder Programmcode aus einem Speichermedium (14) nachlädt.
EP03793579A 2002-08-30 2003-05-28 Verfahren zur initialisierung von programmierbaren systemen Withdrawn EP1532526A2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10240770 2002-08-30
DE10240770 2002-08-30
PCT/DE2003/001747 WO2004023299A2 (de) 2002-08-30 2003-05-28 Verfahren zur initialisierung von programmierbaren systemen

Publications (1)

Publication Number Publication Date
EP1532526A2 true EP1532526A2 (de) 2005-05-25

Family

ID=31969024

Family Applications (1)

Application Number Title Priority Date Filing Date
EP03793579A Withdrawn EP1532526A2 (de) 2002-08-30 2003-05-28 Verfahren zur initialisierung von programmierbaren systemen

Country Status (6)

Country Link
US (1) US20060155978A1 (de)
EP (1) EP1532526A2 (de)
JP (1) JP2005537575A (de)
AU (1) AU2003249842A1 (de)
DE (1) DE10393639D2 (de)
WO (1) WO2004023299A2 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356681B2 (en) * 2004-03-05 2008-04-08 Finisar Corporation Transient transceiver clock configuration
US7480740B1 (en) * 2004-10-05 2009-01-20 Lsi Corporation Method and system for enforcing hardware/software compatibility constraints
US9182999B2 (en) * 2012-05-30 2015-11-10 Advanced Micro Devices, Inc. Reintialization of a processing system from volatile memory upon resuming from a low-power state
JP6021836B2 (ja) * 2014-02-25 2016-11-09 Line株式会社 通信サーバ
CN105487906A (zh) * 2015-12-07 2016-04-13 浪潮集团有限公司 一种利用外挂flash实现mcu核代码更新的方法及系统
CN111443954A (zh) * 2020-03-31 2020-07-24 广东美的制冷设备有限公司 设备的初始化方法、装置、电子设备和计算机存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US52067A (en) * 1866-01-16 Insect-trap
US83427A (en) * 1868-10-27 Improvement in rotary steam-engines
US73307A (en) * 1868-01-14 sttjaut
US52068A (en) * 1866-01-16 Improved expanding tap
US5101490A (en) * 1989-01-10 1992-03-31 Bull Hn Information Systems Inc. Peripheral device controller with an EEPROM with microinstructions for a RAM control store
CA2126950A1 (en) * 1993-07-30 1995-01-31 Bryan M. Willman Booting a computer system using a last known good set of configuration data
US5537558A (en) * 1994-10-05 1996-07-16 Halliburton Company Apparatus and method for communicating multiple devices through one PCMCIA interface
US6438687B2 (en) * 1997-10-30 2002-08-20 Micron Technology, Inc. Method and apparatus for improved storage of computer system configuration information
US6167472A (en) * 1998-05-29 2000-12-26 Motorola Inc. System for communicating with and initializing a computer peripheral utilizing a masked value generated by exclusive-or of data and corresponding mask
US6519716B1 (en) * 1999-09-22 2003-02-11 International Business Machines Corporation Electronic device initialization with dynamic selection of access time for non-volatile memory
JP2001195261A (ja) * 2000-01-13 2001-07-19 Nec Corp 外部メモリから内蔵メモリへのプログラム転送方法およびその転送方法を用いたマイクロコンピュータ
DE10050604A1 (de) * 2000-10-12 2002-04-25 Siemens Ag Verfahren zum Starten einer Datenverarbeitungsanlage sowie zugehörige Komponenten
US20020083427A1 (en) * 2000-12-26 2002-06-27 Chen-Pang Li Embedded system capable of rapidly updating software and method for rapidly updating software of embedded system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2004023299A2 *

Also Published As

Publication number Publication date
WO2004023299A3 (de) 2004-10-07
WO2004023299A2 (de) 2004-03-18
DE10393639D2 (de) 2005-07-14
JP2005537575A (ja) 2005-12-08
AU2003249842A1 (en) 2004-03-29
US20060155978A1 (en) 2006-07-13

Similar Documents

Publication Publication Date Title
DE69834401T2 (de) Businterfacesystem und verfahren
DE3881414T2 (de) Datenverarbeitungssystem mit einer steckbaren optionellen Karte.
DE69209538T2 (de) Automatische Konfiguration einer Einheit für koppelbare Rechner
DE102004057756B4 (de) USB-Steuerungseinrichtung mit OTG-Steuerungseinheit
DE102015217933B4 (de) Vorrichtung zum Verarbeiten von Daten und Verfahren zum Betreiben einer solchen Vorrichtung
DE102021101458A1 (de) Master- und Slave-Prozessoren zum Konfigurieren von Subsystemen
DE60202655T2 (de) System zum Fernladen und zur Fernwartung einer elektronischen Karte
US6904484B1 (en) Low pin count (LPC) firmware hub recovery
DE4238099C2 (de) Mikroprozessor mit mehreren Betriebsmoden
EP1532526A2 (de) Verfahren zur initialisierung von programmierbaren systemen
DE19960574A1 (de) PCI-Fehlerbehebungsvorrichtung,-Verfahren und -System
DE60111542T2 (de) Verfahren, vorrichtung und system fur allgemeines steuerungerweiterungsmoduls
DE69915788T2 (de) Mikrokontrollgerät mit Fehlerbeseitigungsunterstützung
EP2287742B1 (de) Programmgesteuerte Einheit
DE102006012677A1 (de) Verfahren und Anordnung zur Freischaltung und zur Konfiguration spezifischer Systemabläufe eines Druckers oder Kopierers
EP2596429B1 (de) Verfahren zum ausführen eines dienstprogramms, computersystem und computerprogrammprodukt
DE10050604A1 (de) Verfahren zum Starten einer Datenverarbeitungsanlage sowie zugehörige Komponenten
DE4223398C2 (de) Verfahren und Vorrichtung zur Programmierung von nichtflüchtigen Speichern
EP0464028B1 (de) Multiprozessorsystem
DE10308295B4 (de) Verfahren und System zur Anbindung von Baugruppen an ein Bussystem
DE102005017298B4 (de) Verfahren und Vorrichtung zum Schreiben eines Ablaufsprogramms in eine Speichervorrichtung einer programmgesteuerten Steuervorrichtung
DE102015101327B4 (de) Verfahren zur Anpassung der Aufteilung von Busleitungen eines Kommunikationsbusses in einem Computersystem
DE102021101460A1 (de) Prozessoren zur Konfiguration von Subsystemen während andere Prozessoren im Reset gehalten werden
DE10300026B4 (de) Softwaregesteuertes System zur Konfiguration von Zugriffs-Steuermodi eines DRAM-Modul-Sockels
DE102018218722A1 (de) Verfahren und Vorrichtung zum Konfigurieren einer Bootsoftware eines elektronischen Steuergerätes

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20050203

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL LT LV MK

DAX Request for extension of the european patent (deleted)
RBV Designated contracting states (corrected)

Designated state(s): DE FR GB

RIN1 Information on inventor provided before grant (corrected)

Inventor name: BRETSCHNEIDER, JENS

Inventor name: DAVID, JENS

17Q First examination report despatched

Effective date: 20070129

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: NXP SEMICONDUCTORS GERMANY GMBH

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: NXP B.V.

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20090317