Sichere Verbrauchsmessung Klare Trennung dokumentationspflichtiger Software
Eine Software-Separation in Messeinrichtungen bringt technische Vorteile mit sich und senkt die Entwicklungskosten. Die Kinetis-M-Mikrocontroller von Freescale helfen dabei.
Anbieter zum Thema

Gleich ob Wasser-, Gas- und Stromzähler, Heizkostenverteiler, Waagen, Taximeter oder andere elektronische Zähler – Messeinrichtungen sind heute allgegenwärtig, im Haushalt ebenso wie in Büros oder in der Industrie. Die meisten dieser Geräte sind heute mit einem Mikrocontroller (MCU) ausgestattet, der Eichparameter und Abrechnungsdaten, die der behördlichen Kontrolle unterliegen können, verwaltet. Anders gesagt: unsere Rechnungen hängen von der Genauigkeit und Zuverlässigkeit des jeweiligen Zählers und der ihn steuernden Software ab. Sowohl die OIML (International Organization of Legal Metrology) als auch die WELMEC (European Cooperation in Legal Metrology) sprechen Empfehlungen für die Erstellung von Applikationen für softwaregesteuerte Messeinrichtungen aus, insbesondere geben sie Regeln für die Software-Separation vor.

Aus technischer Sicht wird die Messeinrichtung durch Softwareapplikationen gesteuert, die sich in dokumentationspflichtige und nicht dokumentationspflichtige Komponenten aufteilen lassen (Bild 1). Der Applikationscode für den dokumentationspflichtigen Teil gewährleistet die Erfassung von Abrechnungseinheiten durch einen A/D-Wandler, die Auswertung, die Darstellung, den Ausdruck und die Wandlung in verschlüsselte Datenpakete. Diese Applikation verwaltet daneben Rechnungsinformationen, Log-Dateien und Lastprofile in nicht-flüchtigem Speicher (NVM). Bestimmte Daten müssen zu vordefinierten Zeiten gespeichert werden, und das heißt, dass das RTC-Modul (Real-Time Clock) durch die dokumentationspflichtige Applikation kontrolliert werden muss.
Nicht dokumentationspflichtige Applikationen arbeiten alle übrigen Softwaretasks ab, inklusive der Übermittlung von digital signierten Paketen an die Versorger und der Datenanbindung von HAN-Geräten (Home Area Network). Eine mit einer HAN-Kommunikationsschnittstelle ausgestattete Waschmaschine kann so programmiert werden, dass sie automatisch während Zeiten geringer Auslastung startet und der Kunde somit von günstigeren Tarifen profitiert.
Andere intelligente Geräte wie Elektroheizungen können zu vorbestimmten Zeiten automatisch aktiviert und deaktiviert werden, um einen Betrieb zu Spitzenzeiten zu vermeiden. Der Umfang nicht dokumentationspflichtigen Codes in Zählern steigt immer weiter, und die Fähigkeit einer Messeinrichtung, informative Daten über die unterschiedlichsten Protokolle und Formate mit intelligenten Geräten zu teilen, wird unverzichtbar. Wird eine benötigte Funktion oder ein Protokoll nicht unterstützt, so muss der Hersteller der Messeinrichtung dieses so schnell und so preisgünstig wie möglich nachrüsten.
Grundlagen der Software-Separation
Wie erwähnt, unterliegt nur der dokumentationspflichtige Anteil der Firmware der jeweiligen Messeinrichtung einer behördlichen Kontrolle; ist die entsprechende Applikation einmal behördlich genehmigt, dann kann der Hersteller diese nicht mehr modifizieren, ohne sie wieder neu genehmigen zu lassen. Hat man keine Methodik für die Separation der Software implementiert, dann wird die gesamte Firmware des Geräts als dokumentationspflichtige Applikation eingestuft, und jede Modifikation erfordert einen kostenintensiven und zeitraubenden Genehmigungsprozess.
Wurde dagegen entsprechend den Empfehlungen der OIML oder WELMEC ein Verfahren zur Software-Separation eingeführt, so können Hersteller die nicht dokumentationspflichtige Applikation ohne Neugenehmigung modifizieren und profitieren so von einem Mehr an Flexibilität und einer deutlichen Kostensenkung.
Die Systemarchitekten bei Freescale setzen sich schon seit mehr als 20 Jahren mit Hardwaresupport für Betriebssysteme und Software-Separation auseinander. Erst in jüngerer Zeit allerdings wurden Mikrocontroller mit einer Memory Protection Unit (MPU) ausgestattet, mit deren Hilfe Zugriffe auf interne und externe Speicherbereiche geschützt werden können. In den Kinetis K Mikrocontrollern hat Freescale das Memory Protection Konzept noch einmal verbessert und den Zugriffsschutz auf die meisten auf dem Chip integrierten Peripheriemodule ausgedehnt.
Es besteht kein Zweifel, dass die neue Kinetis M Mikrocontroller-Baureihe in Sachen Software-Separation das Modernste ist, was es auf dem Markt gibt. Die Systemplattform, auf der die Kinetis M-Bausteine basieren, wurde von vorneherein mit spezieller Hardwareunterstützung für Software-Separation konzipiert. Neben Hardwareblöcken für die Koordination von Zugriffen auf die internen Speicher, Peripheriemodule und I/O-Ports verfügen diese neuen Bausteine auch über leistungsstarke integrierte Analogfunktionen und eine Vielzahl von digitalen Blöcken und Kommunikationsoptionen.
Die Kinetis-M-Mikrocontroller-Baureihe
Freescales Kinetis-M-MCUs bringen alle für die Entwicklung von preisgünstigen und hochintegrierten Messeinrichtungen benötigten Zutaten bereits mit: auf dem Chip integrierte Peripheriemodule, hohe Rechenleistung und ausgeklügelte Leistungsmanagementfunktionen (Bild 2). Sie basiert auf dem 32-Bit ARM Cortex-M0+-Kern, dessen CPU sich mit bis zu 50 MHz takten lässt. Das Front-End für die Messdatenerfassung ist auf allen Bausteinen bereits integriert.

Es umfasst einen hoch genauen 24-Bit Sigma Delta A/D-Wandler, einen PGA (Programmable Gain Amplifier), eine interne 1,2 V Präzisions-Spannungsreferenz (VRef), einen Block zur Kompensation von Phasenabweichungen, einen 16-Bit SAR A/D-Wandler sowie einen so genannten Peripheral Crossbar (XBAR). Das XBAR-Modul fungiert als programmierbare Schaltmatrix, die mehrere gleichzeitige Verbindungen interner und externer Signale unterstützt. Darüber hinaus verfügen alle Bausteine über eine akkurat arbeitende IRTC (Independent Real Time Clock) mit passiver und aktiver Sabotageerkennung.
Die Kinetis M Mikrocontroller-Baureihe wurde so konzipiert, dass sie neben den leistungsstarken analogen und digitalen Blöcken über Unterstützung für die erforderliche Software-Separation verfügt. Spezielle Hardwareblöcke wurden integriert, die eine eindeutige Trennung der dokumentationspflichtigen Software von anderen Softwarefunktionen ermöglichen. Zu den Hardwareblöcken, welche die Zugriffsattribute steuern und diese überwachen, gehören:
- ARM Cortex-M0+-Kern
- DMA Controller Module
- Miscellaneous Control Module
- Memory Protection Unit
- Peripheral Bridge
- General Purpose I/O Module
Die Kinetis-M-Systemplattform unterstützt zwei Bus-Master: den ARM Cortex-M0+-Kern und das DMA Controller Modul (Bild 3). Die Master können durch das Miscellaneous Control Module (MCM) so gesteuert werden, dass sie optional oder auch zwangsweise User oder Privileged Access Modes generieren

Neben den herkömmlichen User oder Privileged Access Modes wurde mit dem bausteinspezifischen Miscellaneous Control Module ein zusätzliches Zugriffsattribut eingeführt, das mit Hilfe eines softwaregesteuerten Process Identifiers einen geschützten (Secure) oder nicht geschützten (Nonsecure) Zustand signalisiert. Für Software oder DMA-Kanäle, welche im Privileged Secure Access Mode arbeiten, gelten beim Zugriff auf die Bausteinressourcen keinerlei Restriktionen. Anders hingegen werden Software- oder DMA-Zugriffe behandelt, die im User Secure oder Nonsecure Access Mode ausgeführt werden: sie haben eine geringere Priorität als solche im Privileged Secure Mode.
User Secure- oder Nonsecure-Access-Modi
Darüber hinaus können Software- oder DMA-Zugriffe, die im User Secure oder Nonsecure Mode ablaufen, nicht auf den System Control Block des Rechenkerns, den Nested Vectored Interrupt Controller und den System Timer zugreifen. Diese fundamentalen Restriktionen der User Secure bzw. Nonsecure Access Modes erfahren noch eine Steigerung, indem die Plattform auch den Zugriff auf alle integrierten Peripheriefunktionen beschränkt, die für die Konfiguration des Chips sowie das Reset- und Leistungsmanagement kritisch sind. Unter dem Strich steht ein 3-stufiges, in Hardware gegossenes Prioritätsschema für Zugriffe aller Art: Privileged (Secure) > User Secure > User Nonsecure.
Der Kinetis M DMA-Controller verfügt über vier unabhängige DMA-Kanäle, die alle über einen programmierbaren Transfer Channel Descriptor im Privileged Secure, User Secure oder User Nonsecure Mode arbeiten können. Nicht erlaubte Zugriffe resultieren in einem Abbruch des Buszyklus mit einem Fehler.
Nachfolgend die Beschreibung der Hardwareblöcke, welche den Zugriff auf die integrierten Speicherbereiche und die Peripherie für die Bus-Master des ARM Cortex-M0+-Kerns und des DMA Controllers mit Hilfe der Attribute Privileged Secure, User Secure bzw. User Nonsecure steuern.
Zunächst ist da die Memory Protection Unit, die Hardwarezugriffe auf die Flash- und SRAM-Speicher des Chips kontrolliert. Sie verfügt über Descriptoren für acht programmierbare 128-Bit Regionen. Jeder Descriptor definiert Start- und Endadressen und vergibt Attribute für den Lese-, Schreib- bzw. Ausführungsschutz für die Busmaster und die jeweils unterstützten Zugriffsmodi. Dieser Block erkennt Fehler beim Zugriffsschutz, beispielsweise, wenn eine referenzierte Speicheradresse in keiner Speicherregion gültig ist oder wenn die referenzierte Stelle in allen angesprochenen Speicherregionen als illegal erkannt wird. Nicht erlaubte Zugriffe resultierten in einem Abbruch mit Fehlerausgabe. Die MPU lässt sich nur im Privileged Access Mode programmieren.
Zum Zweiten ist da die Peripheral Bridge (AIPS). Diese wandelt die Schnittstelle des Crossbar-Switch in ein Protokoll um, das sich kompatibel zu den auf dem Chip integrierten untergeordneten Peripheriefunktionen verhält. Sie kontrolliert alle für die angeschlossenen Slave-Module bestimmten Bus-Master Transaktionen ("Buszyklen") und erlaubt unverwechselbare, programmierbare Zugriffsrechte für jedes angeschlossene Slave-Modul. Jeder Peripherie-Slot definiert Lese- und Schreibschutzattribute für die Bus-Master und vom Modul unterstützte Zugriffsmodi. Nicht erlaubte Zugriffe resultierten in einem Abbruch mit Fehlerausgabe. Wie die MPU ist auch die AIPS nur im Privileged Access Mode programmierbar.
Besonderes Augenmerk wurde auf die Zugriffssteuerung für das GPIO-Modul (General Purpose Input/Output Module) gerichtet. Die Kinetis M Mikrocontroller-Baureihe verfügt über 68 GPIO-Pins, die in neun Ports angeordnet sind. Jeder 8-Pin Port (PTA-PTI) unterstützt Lese- und Schreibschutzattribute für alle vom jeweiligen Port unterstützten Bus-Master und Zugriffsmodi. Der Zugriff auf die GPIOs kann über die Peripheral Bridge oder den IOPORT, eine spezielle Schnittstelle am ARM Cortex-M0+ -Kern, in nur einem Taktzyklus erfolgen. Illegale Zugriffe durch den IOPORT werden als RAZ/WI (Read As Zero/Write Ignored) behandelt, während solche durch die Peripheral Bridge Fehler erzeugen.
Nach einer Reset-Bedingung, und natürlich auch bei einem Power-on Reset (POR), beginnt der ARM Cortex-M0+-Kern mit der Ausführung der Software im Privileged Secure Mode. Alle besprochenen Hardwareblöcke müssen initialisiert und die entsprechenden Zugriffsattribute programmiert werden. Alle Konfigurationsattribute können bis zum nächsten POR durch die Software gesperrt werden. Nach der Programmierung aller Zugriffsattribute kann die Firmware der Messeinrichtung dokumentationspflichtige und nicht dokumentationspflichtige Software und DMA-Transfers initiieren.
Die wichtigeren, dokumentationspflichtigen Softwareaufgaben und DMA-Transfers werden im Privileged Secure Access Mode abgearbeitet, während die weniger wichtigen, nicht dokumentationspflichtigen Softwareaufgaben und DMA-Transfers im User Secure bzw. im User Nonsecure Access Mode ablaufen, um zu verhindern, dass diese auf für die Bausteinkonfiguration kritische Ressourcen zugreifen oder die Ausführung der behördlich regulierten Software in irgendeiner Art und Weise beeinflussen.
MCU-basierte Messeinrichtungen zertifizieren
Zwar stellen schon mehrere Halbleiteranbieter MCUs her, deren Analog-, Digital- und Rechenfunktionen für die Realisierung von Messeinrichtungen mit nur einem Chip ausreichen. Im Rahmen der Produktauswahl sollte man aber unbedingt untersuchen, inwieweit dieses die von der OIML und WELMEC ausgesprochenen Empfehlungen für die Software-Separation einhalten kann. Diese Empfehlungen gelten derzeit als der goldene Weg für die Entwicklung MCU-basierter Messeinrichtungen und werden entsprechend sowohl von den Herstellern als auch von den Zertifizierungsgremien bei der Konformitätsuntersuchung des Produktes befolgt.
Die Kinetis-M-MCUs bieten auf ihren Chips den richtigen Mix an integrierter Analog- und Digital-Peripherie für die Entwicklung kostengünstiger und hoch integrierter Messeinrichtungen. Die umfangreiche Peripherie steht in ausgewogenem Verhältnis zum ARM Cortex-M0+-Kern mit seinen CPU-Taktraten bis zu 50 MHz und seinen Stromsparfunktionen. Neben der integrierten Peripherie sind in die Hardwarearchitektur der Kinetis-M-MCUs von vorne herein Funktionen zur Software-Separation eingeflossen.
All diese Merkmale und die Kosten- und Energieeffizienz der verwendeten 90-nm-Prozesstechnologie sorgen dafür, dass sich die Kinetis-M-MCUs für Wasser-, Gas- und Stromzähler, Heizkostenverteiler, Taximeter und andere elektronische Messinstrumente für Haushalt, Büro und Industrie eignen, wie sie heute schon allgegenwärtig sind und von deren Funktionsmerkmalen für die Zukunft noch viel zu erwarten sein wird.
* Joe Circello ist Technical Fellow in der Microcontroller Group bei Freescale; Martin Mienkina ist Ingenieur für Systemlösungen im Freescale Czech System Centre.
(ID:42414922)