50
Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines Leistungsmesssystem auf dem MSP430 Luis Lutnyk Chemnitz, den 22. Februar 2013 Betreuender Hochschullehrer: Prof. Dr.-Ing. habil. Göran Herrmann Betreuer: Prof. Dr.-Ing. Christian Pätz Dipl.-Ing. Christian Roßberg

Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

Fakultät für Elektrotechnik und InformationstechnikProfessur Schaltkreis- und Systementwurf

Studienarbeit

Implementierung eines Leistungsmesssystemauf dem MSP430

Luis Lutnyk

Chemnitz, den 22. Februar 2013

BetreuenderHochschullehrer: Prof. Dr.-Ing. habil. Göran HerrmannBetreuer: Prof. Dr.-Ing. Christian Pätz

Dipl.-Ing. Christian Roßberg

Page 2: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines
Page 3: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines
Page 4: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

Inhaltsverzeichnis

Abbildungsverzeichnis 6

Abkürzungsverzeichnis 7

1 Einleitung 8

2 Konzept 92.1 Leistungs- und Energiemessung . . . . . . . . . . . . . . . . . . 92.2 Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3 UART Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.4 SD Card Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.5 Verarbeitung auf Host-System . . . . . . . . . . . . . . . . . . . 13

3 Implementierung 143.1 Hardware Entwurf . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.1.1 MSP430 Mikrocontroller . . . . . . . . . . . . . . . . . . 153.1.2 Spannungsversorgung . . . . . . . . . . . . . . . . . . . . 153.1.3 Strommessschaltung . . . . . . . . . . . . . . . . . . . . 163.1.4 Ein- und Ausgänge . . . . . . . . . . . . . . . . . . . . . 163.1.5 Benutzerschnittstelle . . . . . . . . . . . . . . . . . . . . 173.1.6 Gehäuse . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.2 Mikrocontrollerprogramm . . . . . . . . . . . . . . . . . . . . . 193.2.1 Leistungs- und Energiemessung . . . . . . . . . . . . . . 193.2.2 UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.2.3 SD Card . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Dateisystem . . . . . . . . . . . . . . . . . . . . . . . . . 243.2.4 Konfiguration des Messsystems . . . . . . . . . . . . . . 27

3.3 Auswertungs-/Empfängerprogramm . . . . . . . . . . . . . . . . 29

4 Benutzungshinweise 324.1 Auswahl des Shuntwiderstands . . . . . . . . . . . . . . . . . . . 324.2 Auswahl der Abtastrate . . . . . . . . . . . . . . . . . . . . . . 334.3 Verbinden der Messleitungen . . . . . . . . . . . . . . . . . . . . 33

4

Page 5: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

Inhaltsverzeichnis

4.4 Messung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344.5 Auswertung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5 Beispielmessung an Temperaturlogger 36

6 Verbesserungsmöglichkeiten 40

7 Zusammenfassung 42

Anhang 45

5

Page 6: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

Abbildungsverzeichnis

2.1 Spannungsrichtige Messung mit Shunt . . . . . . . . . . . . . . 102.2 Blockschaltbild Messsystem . . . . . . . . . . . . . . . . . . . . 112.3 Schreibzugriff Einzelblock [2, S. 117] . . . . . . . . . . . . . . . 12

3.1 Bestückte Platine, Oberseite . . . . . . . . . . . . . . . . . . . . 143.2 Belegung Mini-DIN Buchse [5] . . . . . . . . . . . . . . . . . . . 163.3 Programmablauf: Mikrocontroller . . . . . . . . . . . . . . . . . 193.4 Berechnung Eingangsspannung . . . . . . . . . . . . . . . . . . . 213.5 Übertragungsreihenfolge im UART Modus . . . . . . . . . . . . 233.6 Flussgraph zur Initialisierung im SPI Modus[2, S. 115] . . . . . 243.7 Layout Simples Dateisystem . . . . . . . . . . . . . . . . . . . . 253.8 Layout der Messreihen Tabelle . . . . . . . . . . . . . . . . . . . 263.9 Beispiel einer Datenreihe . . . . . . . . . . . . . . . . . . . . . . 273.10 Automatengraph - Konfiguration über UART . . . . . . . . . . 283.11 Graphische Oberfläche des Auswertungsprogrammes . . . . . . . 293.12 Aufbau CSV Datei . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.1 Dimensionierung Shunt Widerstand . . . . . . . . . . . . . . . . 334.2 Verbindung mit dem Messobjekt . . . . . . . . . . . . . . . . . . 34

5.1 Abgeschlossene Beispielmessung . . . . . . . . . . . . . . . . . . 365.2 Auslesen des Temperatursensors . . . . . . . . . . . . . . . . . . 375.3 Auslesen des Temperatursensors Detail . . . . . . . . . . . . . . 385.4 Controller verschickt gebündelte Werte per UART . . . . . . . . 38

6

Page 7: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

AbkürzungsverzeichnisPC Personal Computer

RISC Reduced Instruction Set Computer

ADC Analog-to-Digital Converter

ISR Interrupt Service Routine

UART Universal Asynchronous Receiver/Transmitter

SPI Serial Peripheral Interface

MOSI Master Out-Slave In

SD Secure Digital

MOSFET Metal–oxide–semiconductor field-effect transistor

USB Universal Serial Bus

JTAG Joint Test Action Group

IC Integrated Circuit

LED Light-emitting Diode

CSV Comma-separated Values

ASCII American Standard Code for Information Interchange

FIFO First In First Out

CPU Central Processing Unit

DMA Direct Memory Access

7

Page 8: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

1 EinleitungDie Verbreitung von Sensorsystemen und -netzen nimmt stetig zu. Die Wei-terentwicklung der Halbleitertechnologie, der Batterietechnik und verbesserteMöglichkeiten des Energy Harvesting erschließen neue Einsatzmöglichkeiten,deren Anforderungen an Miniaturisierung, Laufzeit und Leistungsfähigkeit zu-vor nicht erfüllt werden konnten. Eine besondere Bedeutung hat bei der Ent-wicklung dieser Systeme die Minimierung der Leistungsaufnahme. Neben sorg-fältiger Dimensionierung der Hardware muss hierzu auch bei der Softwareent-wicklung auf die Auswirkungen auf den Energieverbrauch geachtet werden.Um die Wirksamkeit von Änderungen bewerten zu können und die Bereiche

mit dem größten Optimierungspotential zu identifizieren bedarf es eines Mess-systems, das die Leistungsaufnahme in verschiedener zeitlicher Auflösung be-obachtbar macht. Es muss möglich sein Vorgänge im Submillisekundenbereichzu analysieren, aber auch eine Übersicht über verschiedene Aktivitätsphasenzu gewinnen, die sich über längere Zeiträume verteilen. Genauso lassen sich aufdem Markt verfügbare Systeme vergleichen und bewerten und es kann mit ei-genen Messungen eine bessere Auswahl zwischen mehreren Lösungen getroffenwerden.Die vorliegende Arbeit beschreibt den Entwurf des Messsystems. Es wird

zunächst die Grundlage des Messverfahrens erarbeitet und die Anforderungenan die Messmodi beschrieben. Anschließend werden detailliert die Entwurfs-entscheidungen zu Hardware, Mikrocontrollersoftware und dem Auswertungs-programm, und die Implementierung dargelegt. Nach kurzen Erklärungen zurBenutzung wird eine Testmessung an einem Temperaturlogger analysiert undIdeen zur Weiterentwicklung des Systems beschrieben.

8

Page 9: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

2 Konzept

2.1 Leistungs- und EnergiemessungDie elektrische Leistung in einem Gleichstromsystem ist wie folgt definiert:

P = U · I (2.1)

Kann man zu einem Zeitpunkt Spannung über und Stromstärke durch eineLast zuverlässig bestimmen, kennt man auch die momentane Leistungsauf-nahme dieser Last. Diese kann sich bei einem Sensorsystem schnell ändern.So ist es denkbar, dass ein Sensor lange in einem Ruhezustand verweilt, indem er wenig Leistung benötigt, dann aber zeitgesteuert aktiviert wird undfür die Dauer der Messung eine erheblich höhere Leistung aus seiner Energie-versorgung bezieht. Besitzt ein Sensorsystem eine Funkschnittstelle, so ist beieiner Datenübertragung für kürzeste Zeit ein hoher Leistungsbedarf zu erwar-ten. Die Leistungsaufnahme eines Sensormesssystems muss demnach mit einerangepassten Abtastrate überwacht werden, welche die auftretenden Leistungs-spitzen detektierbar macht.Ist das Ziel einer Sensorsystemanalyse eine Aussage bezüglich dessen Lauf-

zeit im Batteriebetrieb zu treffen, so ist es nötig von Samples der momentanenLeistungsaufnahme auf die verbrauchte Energie zu schließen.Für die elektrische Energie, bzw. die elektr. Arbeit gilt allgemein:

E =∫ t1t0u(t) · i(t) dt (2.2)

Für den Fall zeit- und wertdiskreter Abtastwerte nimmt man vereinfachendan, dass Strom und Spannung zwischen zwei Samples konstant sind und erhältnäherungsweise:

E =n∑k=1

Uk · Ik ·∆t (2.3)

Worin Uk und Ik Spannung und Stromstärke über den Zeitraum zwischen 2Samples sind und ∆t die Samplingperiode.Abbildung 2.1 zeigt den prinzipiellen Aufbau zur Leistungsmessung mit Hil-

fe zweier Voltmeter und eines Shunts. Kennt man den Widerstandswert des

9

Page 10: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

2 Konzept

Abbildung 2.1: Spannungsrichtige Messung mit Shunt

Shunts hinreichend genau, so lässt sich mit Hilfe des Spannungsabfalls überdiesen sehr einfach die Stromstärke durch Shuntwiderstand und Last, welchein Reihe geschalten sind, berechnen. Es gilt das Ohmsche Gesetz:

IL = IS = USRS

(2.4)

Ist der Widerstandswert des Shunts mit einer großen Toleranz versehen, somultipliziert sich diese mit der Messungenauigkeit des verwendeten Voltmeters.Auch muss der Widerstandswert so an die Last angepasst werden, dass zumeinen der Spannungsabfall über dem Shunt im Messbereich des Voltmetersliegt, zum anderen die Messgrößen an der Last nicht über Gebühr beeinflusstwerden. Hilfreich kann hier bei kleinen Stromstärken eine Verstärkung derShuntspannung vor der Messung sein. Dann kann der Widerstand um denFaktor der Verstärkung kleiner dimensioniert werden.

2.2 AufbauHerzstück des Messsystems ist ein MSP430 Mikrocontroller von Texas Instru-ments. Mit dem integrierten Analog Digital Wandler werden die zwei Mess-größen, Spannungsabfall über dem Messobjekt und Spannung am Shuntwider-stand RS, periodisch abgetastet. Die Weiterverarbeitung der Messdaten kannje nach Betriebsmodus unterschiedlich erfolgen. Bei Messungen, bei denen einehohe Abtastrate entscheidend ist, werden die Daten unmittelbar an den Aus-wertungsrechner übertragen und dort von der Empfängersoftware gespeichert.Die verwendete Kommunikationsschnittstelle auf Seiten des MSP430 ist einUART, welcher über einen Umsetzer an den USB Port des Rechners angebun-den ist.

10

Page 11: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

2 Konzept

Abbildung 2.2: Blockschaltbild Messsystem

Dieser Betriebsmodus heißt im Folgenden “UART Modus“. Bei Messungenüber einen längeren Zeitraum ist es von Vorteil, keine Verbindung mit einemPC aufrechterhalten zu müssen. Bei solchen autarken Messungen speichert derMikrocontroller die Daten auf einer SD Speicherkarte und nach Abschluss derMessung können die Messwerte mit einem Kartenleser auf den PC übertragenund ausgewertet werden. Die Abtastrate ist niedriger als im UART Modus.Dieser Betriebsmodus heißt im Folgenden “SD Card Modus“.

2.3 UART ModusBeim Betriebsmodus mit hoher Abtastrate werden die Messdaten unmittelbarnach Erfassung und Vorverarbeitung im Mikrocontroller über den UART anden Host PC übertragen. Bei Mikrocontrollern ist die Kommunikation asyn-chron mit zumindest einem Start und einem Stopp Bit, zwischen denen 8Nutzbits eingefasst sind, ein Prüfbit ist optional. Zudem muss auf Sende- undEmpfängerseite die Baudrate eingestellt werden. Das Baudratentaktsignal wirdim Mikrocontroller durch einen externen Schwingquarz mit nachgeschalteterinterner Frequenzteilung erzeugt.

11

Page 12: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

2 Konzept

2.4 SD Card ModusBeim Betriebsmodus mit niedriger Abtastrate werden die Messdaten auf einerSpeicherkarte nach dem Secure Digital (SD) Standard gespeichert. Das Systemist dadurch während einer Messung nicht mehr auf die Verbindung mit einemHost PC angewiesen. Nach einer oder mehrerer Messungen können die Datenauf der SD Card mit einem handelsüblichen USB Kartenleser auf den PCübertragen werden.Die SD Card ist ein äußerst kostengünstiges Flash Speichermedium mit in-

tegriertem Controller, welches sich mit vertretbarem Aufwand an einen Mi-krocontroller anbinden lässt. Die Kommunikation erfolgt über den SPI Bus.Eine SD Card lässt sich neben SPI auch über 2 Arten des ihr eigenen SD Bus-ses ansteuern.[6] Für eine einfachere Implementierung ist der SPI Bus jedochvorzuziehen, da der MSP430 ein konfigurierbares SPI Modul besitzt und mitdiesem CPU Rechenzeit eingespart werden kann.Über den SPI Bus sendet der Mikrocontroller im SD Standard[2] definierte

Befehle, auf die die SD Card je nach Befehl mit verschiedenen Antworttypenreagiert.Der Flash Speicher der SD Card ist in 512 Byte Blöcke aufgeteilt. Ein Block

ist die kleinste adressierbare Einheit und bei einem Schreib- oder Lesezugriffmuss immer ein ganzer Block übertragen werden.[1] Lässt man Betrachtun-gen bezüglich eines Filesystems zunächst außen vor, lässt sich trotzdem leichteinsehen, dass zum Hinzufügen von einigen Byte zu einem 512 Byte Blockder ganze Block zunächst gelesen, die neuen Daten eingefügt und dann derveränderte Block komplett an seine ursprüngliche Adresse zurückgeschriebenwerden muss. Dies bedeutet einigen Zusatzaufwand von Speicher und Zeit.Geht man von einer Datengröße pro Sample von 4 Byte aus, so stellt der

blockweise Zugriff innerhalb der festen Samplingperiode eine besondere Her-ausforderung dar.

Abbildung 2.3: Schreibzugriff Einzelblock [2, S. 117]

Ein naheliegender Ansatz zur Vermeidung des Lesezugriffs beim Hinzufügen

12

Page 13: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

2 Konzept

von Daten zu einem Block ist die Nutzung eines ganzen Blockes pro Sample.Dies reduziert allerdings die Kapazität der Speicherkarte auf Nutzbytes512 ihrereigentlichen Kapazität und es müssen trotzdem pro Sample 512 Byte über denBus verschickt werden wenn man den Rest des Blocks z.B. mit Nullen auffüllt.Der Ansatz scheint wenig praktikabel.Die durch den Befehlssatz des SD Standards festgelegte Beschränkung auf

512 Byte Daten Blöcke lässt sich allerdings doch umgehen wenn man sichdie Master-Slave Beziehung zwischen Mikrocontroller und SD Card im SPIBussystem zu Nutze macht. Der Master eines synchronen also taktgetriebenenBussystems wie SPI treibt den Takt und bestimmt die Taktfrequenz. Findet amTakteingang des Slaves, in diesem Fall die SD Card, keine Zustandsänderungstatt, so wertet dieser auch die Master Out-Slave In (MOSI) Datenleitung nichtaus.Es ist also möglich einen Block Schreibzugriff zu beginnen, indem der Mi-

krocontroller den WRITE_BLOCK Befehl sendet (in Abb. 2.3: command)und die Antwort auswertet. Damit wird der Controller der SD Card in einenZustand versetzt, in dem er nun den Empfang eines 512 Byte Blocks erwartet.Liegt kein Takt an, bleibt der Zustandsautomat im SD Card Controller ewigin diesem Zustand. Man kann jetzt Byte für Byte Daten liefern, wobei immernur dann das Taktsignal getrieben wird, wenn gültige Daten am Bus anliegen.Man führt aus Sicht des SD Card Controllers quasi einen normalen Transferdurch, welcher vom Master eben mit langen Pausen versehen wurde, in denensich der Pegel der Taktleitung nicht ändert. In diesen Pausen wird Samplingund Verarbeitung durch die CPU durchgeführt. Nach dem 512ten Byte schließtman den Transfer gültig ab. Die Speicherkarte sendet eine sog. Data Responseund geht nach Verarbeitung des Flash Zugriffs in ihren Grundzustand zurück.Sie ist dann bereit für den nächsten Blockzugriff oder einen anderen Befehl.

2.5 Verarbeitung auf Host-SystemSind die aufgenommenen Messdaten über eine Speicherkarte oder während derMessung über USB an den Verarbeitungsrechner übertragen worden, müssensie dort visualisiert und in einem für die weitere Auswertung nutzbaren For-mat abgespeichert werden. Es sollte ein Graph der gesamten Messung gezeigtwerden, in dem interessante Zeitabschnitte der Messung zur genaueren Be-trachtung ausgewählt werden können. Die Speicherung sollte in einer einfachaufgebauten Struktur erfolgen, so dass die Messreihe von gängigen Program-men zur Datenvisualisierung eingelesen werden kann.

13

Page 14: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

3.1 Hardware EntwurfBei Tests mit zwei MSP430 Testboards wurde deutlich, dass die Anforderun-gen an das Messsystem mit auf Evaluierungsplattformen aufsetzender Hard-ware nicht zu erfüllen sind. Problematisch zeigte sich dabei die Vielzahl derbenötigten Zusatzbauteile und deren Verbindung mit dem Testboard. Nötigsind eine externe Strommessschaltung und die Kontaktierung dieser zum Mes-sobjekt, eine stabile Referenzspannung für den Analog-Digital-Wandler, dieMöglichkeit zum Batteriebetrieb, eine schnelle Kommunikation mit dem Aus-wertungsrechner und ein Speicher für Messdaten bei vom Rechner getrennterMessung. Ebenso suboptimal schienen die Bedienelemente und die grundsätz-liche Handhabung des zusammengefügten Systems. Unter diesen Eindrückenentstand der Entwurf für eine auf die Anwendung zugeschnittene Schaltung.Ein Foto der entworfenen Platine ist in Abb. 3.1 dargestellt. Sie lässt sich in 5

Abbildung 3.1: Bestückte Platine, Oberseite

Hauptbestandteile gliedern:MSP430 Mikrocontroller, Spannungsversorgung, Strommessschaltung, Ein- undAusgänge und Benutzerschnittstelle.

14

Page 15: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

3.1.1 MSP430 MikrocontrollerZum Einsatz kommt die F2618 Variante der 16Bit Controller von Texas Instru-ments. Die gewählte Variante besitzt 8KB RAM und 116KB Flash Speicher.Der Haupttakt wird aus einem 16MHz Quarz Oszillator gespeist und die

Programmierung erfolgt über ein JTAG Interface. Die Versorgungsspannungkann zwischen 1,8 V und 3,3 V liegen. Da sie das obere Limit der messbarenSpannung durch den ADC festlegt, wird sie auf der Platine mit 3,3 V gespeist.

3.1.2 SpannungsversorgungDie Versorgungsspannung für Mikrocontroller, SD Card, Strommessschaltungund USB Interface wird von einem LTC3534 Buck-Boost Spannungswandlerbereitgestellt. Es handelt sich um einen Schaltregler, was bei einem batteriebe-triebenen System wegen der höheren Effizienz unbedingt der Verwendung ei-nes Linearreglers vorzuziehen ist. Der Einsatz eines Auf- und Abwärtswandlers(Buck-Boost) erlaubt die Speisung sowohl von 5V USB Versorgungsspannung,als auch von einem Akku. Gegenüber einem reinen Abwärtswandler kann derAuf- und Abwärtswandler auch noch bei einem fast entladenen Akku, dessenSpannung sich im Bereich der 3,3 V Versorgungsspannung des Messsystemsbewegt, arbeiten. Der Spannungswandler benötigt als Außenbeschaltung eineSpule als Energiespeicher und ein Netzwerk von Spannungsteilern und Konden-satoren, welche die Rückführung des Regelkreises bilden. Bei Erstbestückungund -test der Platine wurde festgestellt, dass eine Störung des Regelkreisesdurch Berühren der Außenbeschaltung zu einer Beeinträchtigung oder gar Zer-störung des Spannungswandlers führen kann. Diese Bauelemente müssen dahermechanisch vor Fremdeinwirkung geschützt werden um versehentliche Berüh-rung bei z.B. Messungen an der Platine auszuschließen.Als Akkumulator wurde eine moderne Lithium-Ionen Rundzelle vom Typ

18650 ausgewählt, wie sie z.B. in leistungsstarken LED Taschenlampen Ver-wendung findet. Die Nennspannung solcher Zellen beträgt 3,7V und sie besit-zen eine Kapazität zwischen 1000 und 3000 mAh. Damit der Akku zum Ladennicht aus dem Gehäuse entnommen werden muss, besitzt das Messsystem eineLadeschaltung direkt auf der Platine. Sie ist aufgebaut aus einem LTC4056Li-Ion Charger Baustein und einem PNP Transistor über den der IC den La-destrom durch den Akku steuert. Aktiviert wird ein Laden des Akkus auto-matisch wenn dieser eine Spannung von unter 4,05V besitzt und das Systemüber die USB Buchse an einen Rechner oder ein USB Netzteil angesteckt wird.Da es sich um einen speziellen Li-Ionen Lade IC handelt, ist die Ladekennliniegenau angepasst und eine automatische Umschaltung auf Erhaltungsladung

15

Page 16: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

vorgesehen. Zur Einhaltung der USB Spezifikation ist die Stromstärke, welcheüber die USB Verbindung gezogen wird, auf 500 mA begrenzt.Ist das System mit einer externen Spannungsversorgung verbunden, wird

auch der 3,3V Spannungswandler und damit der funktionale Teil der Platinevon extern gespeist. Dies erfordert den Einsatz eines sog. Power Path Con-trollers, der zwischen autonomer und externer Versorgung umschaltet. Derverwendete LTC4412 steuert dazu zwei MOSFETs, wovon einer im Batterieund einer im 5V USB Zweig sitzt. Bei vorhandener USB Verbindung wird derBatterie MOSFET nichtleitend und der USB MOSFET leitend geschalten, beiVersorgung durch den Akku andersherum.

3.1.3 StrommessschaltungAls Shunt für die Strommessung wird ein Widerstand in Durchsteckmontage(Genauigkeit ±1%) genutzt. Der Spannungsabfall an diesem wird in von einemShunt Monitor INA195 verstärkt. Dieser besitzt eine Verstärkung von V/V =100, es sind aber im gleichen Gehäusetyp Varianten mit V/V = 50 (INA194)und V/V = 20 (INA193) verfügbar.

3.1.4 Ein- und AusgängeDas Messsystem ist prinzipiell mit zwei anderen Geräten verbunden, dem Mes-sobjekt und dem Auswertungsrechner.Über eine Mini-DIN Steckverbindung sind die Messleitungen an das Messob-

jekt geführt. Die Pin Belegung der Buchse kann Abb. 3.2 entnommen werden.Shunt+ wird mit dem Plus Pol der Spannungsversorgung (z.B. eine Batterie)

Pin 1: Ref−/GNDPin 2: Ref−/GNDPin 3: Shunt−Pin 4: Shunt+

Abbildung 3.2: Belegung Mini-DIN Buchse [5]

des Messobjekts verbunden. Der Strom durchläuft den Shunt des Messsystemsund fließt über Shunt− zum Messobjekt zurück (z.B. Plus Pol der Batterie-fassung). Da nicht nur der Strom durch das Messobjekt, sondern auch derSpannungsabfall über selbigem zu messen ist, muss auch die Masse (im Bsp.Minus Pol der Batteriefassung) mit dem Bezugspotential Ref− des Messsys-tems verbunden werden.

16

Page 17: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

Mit dem Auswertungsrechner kann entweder direkt über USB kommuniziertwerden oder indirekt, indem die Messdaten auf einer SD Speicherkarte gespei-chert und vom Rechner ausgelesen werden. Das USB Interface stellt ein FTDIFT232RL Schaltkreis zur Verfügung. Dieser ist mit dem UART des MSP430Controllers verbunden und setzt in Sende- und Empfangsrichtung byteweisezwischen der USB Verbindung mit dem Auswertungsrechner und dem UARTum. Die Verbindung ist auf 920000 Baud konfiguriert, was nahe der maximalmöglichen Rate liegt, bei der noch eine zuverlässige Übertragung möglich ist.Auch teilt der FTDI Chip dem angeschlossenen Rechner mit, dass das Systembis zu 500mA Stromstärke benötigen kann. Aus der Vielzahl von möglichenUSB Steckverbindungen wurde wegen seiner kompakten Bauform der Mini-BTyp gewählt.Der Speicherkarteneinschub hat SD Standardgröße. Es können einfache SD

Karten, Karten vom Typ SD-HC (High Capacity) und über einen Adapter diejeweiligen micro Varianten verwendet werden. Um eine Kartendetektierung imMikrocontroller zu ermöglichen wird bei Pin 1 (Card Select) des Einschubes imGegensatz zu den Daten Pins kein Pull Up Widerstand verwendet. Wenn auchnicht im SD Standard vorgesehen, so treiben quasi alle Karten diese Leitunginitial auf HIGH Pegel, was eine leichte Erkennung ermöglicht.

3.1.5 BenutzerschnittstelleDer Benutzer interagiert mit dem Messsystem über zwei Schnittstellen. Mittelsder Software auf dem Auswertungsrechner werden Messparameter eingestelltund die aufgenommenen Daten ausgewertet. Am Gerät selbst wird dessen Sta-tus über Leuchtdioden angezeigt und über zwei Taster kann der Messmodusgewählt und eine Messung gestartet werden. Mit dem grünen Taster wird derModus zwischen autonomer und gekoppelter Messung umgeschaltet. Einzel-ne Messreihen werden mit dem gelben Taster gestartet und bei nochmaligemDruck wieder gestoppt.Die Status LEDs können nicht direkt über die Logik Pins des Mikrocontrol-

lers getrieben werden, wie es bei Hobby Mikrocontroller Projekten oft Praxisist. Die Spezifikation gibt bereits bei einer Gesamtbelastung der Ausgänge mitüber 12 mA eine Verfälschung des High und Low Ausgangspegels um über 250mV an. [4, S. 36] Geschalten werden alle LEDs deshalb über MOSFETs. ImGegensatz zu Bipolartransistoren, bei deren Einsatz der Logik Pin immer nochmit dem Basis Strom belastet wird, ist im statischen Zustand bei MOSFETsquasi keine Last an der Ausgangsstufe des Controllers. Verwendet werden NXPNX3008NBK (VGSth ≈ 0, 9V ) und die LED Vorwiderstände sind auf 10 mAStromstärke pro Leuchtdiode dimensioniert. Eine Besonderheit bildet die LED

17

Page 18: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

zur Anzeige des Messmodus, bei der ein zweifarbiger LED Typ verwendet wird.Die Ansteuerung findet über komplementäre Transistoren statt. So schaltet einn-Kanal MOSFET die Farbe Rot und ein p-Kanal MOSFET die Farbe Grün.Dadurch ist es möglich den selben Logik Ausgang des Controllers für die GateAnschlüsse von beiden Transistoren zu verwenden. Das hat zur Folge, dassimmer eine Farbe leuchtet bzw. die LED nie ausgeschalten ist, was aber zurModusanzeige passt, da immer entweder der UART oder der SD Modus aktivist.Im weitesten Sinne zur Benutzerschnittstelle gehörig ist auch der Ein-Aus

Schalter. Dieser trennt im Aus Zustand den Plus Pol des Akkus vom Restder Schaltung. Ohne externe Versorgung ist das Gerät dann folglich aus. Beivorhandener USB Verbindung wird mit dem Schalter jedoch nur das Ladendes Akkus deaktiviert. Der funktionelle Teil der Schaltung ist in diesem Fallunabhängig von der Stellung des Schalters aktiv!

3.1.6 GehäusePlatz findet die beschriebene Hardware in einem Kunststoffgehäuse. Für denPrototypen wird ein angepasstes Universalgehäuse verwendet. Die Abmaße derPlatine ermöglichen jedoch ein für einen späteren Einsatz besser geeignetesschmaleres und vor allem kürzeres Gehäuse.

18

Page 19: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

3.2 Mikrocontrollerprogramm

Abbildung 3.3: Programmablauf: Mikrocontroller

3.2.1 Leistungs- und EnergiemessungDie Spannung über dem Shuntwiderstand und die Spannung über der Lastwerden periodisch durch den 12bit ADC des MSP430 gesamplet. Ein Samplewird ausgelöst durch den Ablauf des Timer B. Dieser zählt bis zu dem imTimer Capture/Compare Register festgelegten Wert und bezieht sein Taktsi-gnal von einem externen Quarz. Nach Ablauf beginnt der Timer sofort erneutzu zählen. Der ADC wird so ohne Nutzung der CPU mit wählbarer Periodezum Sampling angeregt. Ist die Analog-Digitalwandlung abgeschlossen erhältdie CPU einen Interrupt, kopiert die zwei Werte aus den ADC Ergebnisregis-tern und hat jetzt Zeit bis zum nächsten Interrupt eine Vorverarbeitung undSpeicherung/Übertragung der Messwerte vorzunehmen. Die Interrupt Service

19

Page 20: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

Routine (ISR) ist im Programmablaufplan in Abb. 3.3 rechts dargestellt. Dierichtige Konfiguration des Analog-Digitalwandlers ist für die zeitlich korrekteAbtastung der zwei Eingangskanäle äußerst wichtig. Soll pro Abtastzeitpunktmehr als ein Kanal abgetastet werden kann der ADC nicht im Repeat Sequenceof Channels Modus betrieben werden. Die Bezeichnung leitet hier in die Irre.Die Automatengraphen zur Funktion der ADC Modi [3, S. 581ff] zeigen, dasspro Anregungsimpuls durch den Timer nur ein Kanal gesampelt wird und einInterrupt erst nach dem Ende der Sequenz, also dem Sampling aller gewähltenKanäle, ausgelöst wird. Für ein Spannungs- und Stromwertepaar wären also 2Impulse nötig. Der Timer müsste demnach mit halber Periodendauer betrie-ben werden. Eine solche Konfiguration bedeutet aber, dass Spannungs- undStromsample nicht zum gleichen zeitlichen Abtastpunkt gehören. Zwischen ih-nen liegt genau eine Periodendauer des Timers. Besser geeignet ist der Sequenceof Channels Modus. Hier ist eine Konfiguration möglich, in der der ADC nacheiner Anregung durch den Timer alle gewählten Kanäle schnellstmöglich abar-beitet. Nach Analog-Digital-Wandlung des letzten Kanals wird ein Interruptausgelöst. Damit der Wandler auf den nächsten Timer Impuls wieder rea-giert muss aber in der ADC Interrupt Service Routine das Enable Conversion(ENC) Bit im ADC12 Control Register 0 herunter- und wieder heraufgesetztwerden. Für jeden ADC-Kanal erhält man einen 12bit Wert (0..4095), welcherdas Verhältnis der abgetasteten Spannung zur verwendeten Referenzspannungdes ADC angibt.Es gilt nach [3, S. 576]:

UIN = NADC ·Uref+ − Uref−

4096 (3.1)

Absolutes Maximum für eine messbare Eingangsspannung mit Uref− als Be-zugspotential ist demnach die Referenzspannung. Diese kann aus verschiedenenQuellen gewählt werden, wobei sie immer im Bereich 1.4V-VAV CC liegen muss.VAV CC ist im Allgemeinen auf 3,3V festgelegt. Negatives Bezugspotential istdas Massepotential.Es ist wünschenswert bereits nach der Analog-Digital-Wandlung von den

12bit Rohwerten zu abstrahieren und in nachfolgender Verarbeitung Span-nungs- und Stromwerte zu verwenden. Die dazu nötige Vorverabeitung mussim Mikrocontroller aus Performance Gründen in Ganzzahlarithmetik durchge-führt werden. Die implizierte Kommaverschiebung muss bei der Auswertungin Volt am Hostsystem rückgängig gemacht werden.Listing 3.4 zeigt den zugehörigen C-Code. Die Referenzspannung wird hier

als Konstante mit L Suffix angegeben. Nur so erzeugt der Compiler msp430-gcc Assemblercode, der die Multiplikation effizient ausführt. Prinzipiell müsste

20

Page 21: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

union long_unionunsigned long value;struct

unsigned int lower; //lsbunsigned int upper; //msb

split;;union long_union un_adc_v;

// Vref = 3.298Vun_adc_v.value = adc_n_v.value * 32980L; // (N*Vref) * 1E4un_adc_v.value = un_adc_v.value << 4; // /4096sd_writesample(un_adc_v.split.upper);

Listing 3.4: Berechnung Eingangsspannung

die Konstante als vorzeichenlose, ganzzahlige 16bit Konstante gekennzeichnetwerden (U Suffix), was aber zu einer fehlerhaften Berechnung führt. Nur mitL Suffix erfolgt die korrekte Adressierung der Multiplikationseinheit, wie sieunten beschrieben ist.Die Division durch 4096 lässt sich günstig mit einer binären Schiebeope-

ration realisieren. Sie entspricht einer Rechtsverschiebung um 12 Stellen. DieBerechnung kann in diesem Fall aber noch besser gelöst werden. Der Zwischen-wert liegt durch die vorherige Multiplikation in einem 32 Bit breiten Datentypvor (16·16 => 32Bit) und belegt im schlimmsten Fall ((NADC = 4095)·32980)maximal 28 Bit. Dadurch kann die Rechtsverschiebung durch eine Linksver-schiebung um 4 Stellen ersetzt werden, nach der das Ergebnis in den oberen 16Bit der Variable liegt. Für deren Heraustrennung wird mit einem union Typgearbeitet.An dieser Stelle sollte genauer auf den Memory Mapped Hardware Multi-

plizierer eingegangen werden. In vielen MSP430 CPUs gibt es eine Multipli-kationseinheit obwohl der Befehlssatz (RISC Architektur) keinen Multiplika-tionsbefehl beinhaltet. Anstatt eines Befehlsaufrufs MULT füllt man spezielleOperandenregister und 3 CPU-Takte später liegt das Ergebnis ohne weite-res Zutun gültig in einem Ergebnisregister vor. Die Verwendung erfolgt nurüber Zugriff auf die im Datenblatt definierten Registeradressen, ist also memo-ry mapped. Zur Unterscheidung von vorzeichenbehafteter und vorzeichenloserMultiplikation existieren separate Register für Operand 1. So wird Operand2 immer an die selbe Adresse geschrieben, Operand 1 aber für vorzeichenlose

21

Page 22: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

Multiplikation nach 0x0130, für vorzeichenbehaftete Mult. nach 0x0132. [3, S.358 ff] Die Operandenregister sind jeweils 16 Bit breit, das Ergebnis besitzt32 Bit Breite und liegt geteilt in einem “Lower 16 Bit“- und einem “Upper 16Bit“ Register. Teilt man dem Compiler msp430-gcc mit, dass die Ziel-CPU ei-ne Multiplikationseinheit besitzt, kann man im erzeugten Assembler Code diebeschriebenen Abläufe bei Multiplikationen beobachten. Auch werden bis zumVorliegen des Ergebnisses alle Interrupts mit dem DINT Befehl deaktiviert umdas Timing der Operation in jedem Fall einzuhalten. Der Programmierer musssich bewusst sein, dass in dieser Zeit auftretende Interrupts nicht sofort in derzugehörigen ISR verarbeitet werden.

3.2.2 UARTIst das Messsystem über die USB Schnittstelle mit einem Rechner verbunden,auf dem das Auswertungsprogramm ausgeführt wird, können die Messdatenwährend der laufenden Messung mit hoher Datenrate übertragen werden. Ur-sprünglich sollte auch im Modus mit hoher Abtastrate die Umrechnung aufSpannungswerte in Volt, respektive Stromstärkewerte in mA, im Mikrocon-troller Programm erfolgen. Damit wäre ein gleiches Datenformat für beide Be-triebsmodi möglich gewesen und das Auswertungsprogramm hätte ohne Kennt-nis von Shuntwiderstandswert, Referenzspannung oder Verstärkungsfaktor desShunt Monitors die Anzeige der Daten übernommen. Die für diese Berechnun-gen nötige Rechenzeit ist neben der Datenübertragungsrate ein entscheidenderFaktor für die maximal erreichbare Abtastrate des Gesamtsystems. Währendder Entwicklung zeigte sich, dass eine ausreichend hohe Rate so nicht zu errei-chen ist. Der MSP430 lässt sich aufgrund seiner Ausrichtung auf geringe Leis-tungsaufnahme nur mit maximal 16 MHz CPU Takt betreiben. Da auch beider maximalen Taktfrequenz die benötigte Rechenzeit zu lange war wurde fürden Zugewinn an möglicher Abtastrate die Umrechnung in das Auswertungs-/Empfängerprogramm verlagert. Damit werden im Mikrocontroller zwischen2 Abtastzeitpunkten nur noch die 24 Bit Rohdaten aus den zwei Kanälendes Analog-Digital-Wanders umkopiert und gesendet. Da die Rohwerte derSpannungs- und Strommessung jeweils 12 Bit groß sind, die Übertragung aberbyteweise (8 Bit) erfolgt, werden diese aufgetrennt. Die jeweils höherwertigsten4 Bit der zwei Rohwerte werden zusammengefügt und als erstes gesendet. Daszweite Byte bilden die verbliebenen 8 Bit des Spannungswertes und der Restdes Stromstärkewertes bildet das dritte und letzte Byte.Die Senderoutine ist als kurzes Precompiler Makro realisiert. In diesem wird

das UCBUSY Flag im Statusregister des UART Moduls abgefragt und fallsdieses gesetzt ist, gewartet bis das Modul bereit ist. Danach wird das an das

22

Page 23: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

Sendereihenfolge InhaltByte 1 NU [11..8] NI [11..8]Byte 2 NU [7..0]Byte 3 NI [7..0]

Variable[Bits]

Abbildung 3.5: Übertragungsreihenfolge im UART Modus

Makro übergebene Byte ins Senderegister kopiert. Die Verwendung eines Ma-kros vermeidet für die wenigen Befehle einen Unterprogrammaufruf, welchermehr Zeit in Anspruch nehmen würde.Mit der beschriebenen Implementierung lassen sich Abtastraten bis zu 9200

Samples pro Sekunde erreichen.

3.2.3 SD CardBei autonomen Betrieb des Messsystems werden die Messdaten auf einer SDCard gespeichert. Die Benutzung von Speicherkarten erfordert allerdings etwasZusatzaufwand.Nach dem Einschieben der SD Card in den dafür vorgesehenen Slot muss

die Speicherkarte zunächst initialisiert werden.Die Speicherkarte erwacht im SD Modus und muss erst nach Abb. 3.6 um-

konfiguriert werden. Man wechselt in den SPI Modus durch Senden des ResetBefehls bei auf LOW Pegel gezogener nCS Leitung. Da alle Befehle des SD Pro-tokolls mit einer gültigen Prüfsumme versehen sind, muss auch der Wechselin den SPI Modus noch mit Prüfsumme gesendet werden. Diese kann anstattsie aufwändig zu berechnen jedoch für den Reset Befehl (CMD0) im Spei-cher abgelegt werden, da danach keine Prüfsumme mehr benötigt wird. Dannmuss eine Sequenz von Befehlen durchlaufen werden, um die Art der Karte zuerkennen.Besonders wichtig ist hierbei ob es sich um eine High Capacity Karte handelt.

Der Standard sieht bei diesem Typ eine andere Adressierung vor. Der Grundfür die unterschiedliche Adressierung ist die maximale Größe von StandardCapacity Karten. Beim Standard Capacity Typ werden die Adressen bytewei-se gezählt. Die kleinste adressierbare Einheit ist aber ein 512 Byte Block undeine Standard Capacity Karte quittiert einen Speicherzugriff auf eine Adresse,die nicht Vielfaches von 512 ist, mit einem Fehler. Es liegt also nahe, die Spei-cheradressen bei High Capacity Karten den ohnehin schon atomaren Blöckenzuzuordnen, was auch so im Standard umgesetzt wurde. Damit überwindet

23

Page 24: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

Abbildung 3.6: Flussgraph zur Initialisierung im SPI Modus[2, S. 115]

man die sich bei Byteadressierung und 32 Bit Adressbreite ergebende theore-tische Obergrenze von 4095 Megabyte.

Dateisystem

Soll eine Reihe von Messdaten auf einem Speicher abgelegt und später wiederzuordenbar ausgelesen werden bedarf es grundsätzlich einer Konvention be-züglich des Ortes und der Ordnung der Daten. Dieses Dateisystem kann sehreinfach ausfallen, wenn es nur einer speziellen Anwendung genügen muss.Wichtig ist im Fall des Messsystems die in 2.4 beschriebenen Blockzugriffe

auf das Nötigste zu beschränken. Das Konzept, den Block Schreibzugriff übereine Folge von Samples zu dehnen wird mit dem hier beschriebenen Dateisys-tem aufgegriffen.

24

Page 25: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

SD Card-----------------------------------

| Addr. | Inhalt ||-----------------------------------||0x00000000| Reserviert ||... | Boot Sector, MBR ||-----------------------------------||0x00F00000| Messreihen Tabelle ||-----------------------------------||0x00F00200| 1.Datenreihe || | Variable Länge || | Bsp: 4 SD Card blocks ||0x00F00800| 4*512bytes ||-----------------------------------||0x00F00A00| 2.Datenreihe || | Variable Länge || | Bsp: 10 SD Card blocks || | 10*512bytes ||... | ||0x00F01C00| ||-----------------------------------||... ||-----------------------------------||0x????????| n.Datenreihe ||... | ||0x????????| n maximal 63 |-----------------------------------

Abbildung 3.7: Layout Simples Dateisystem

Abb. 3.7 stellt die Partitionierung der Speicherkarte dar. Entscheidend istdie Messreihen Tabelle, welche an einer definierten Adresse abgelegt ist, diedem Messsystem und der Auswertesoftware bekannt ist. Sie enthält Anfangs-und Endpointer auf die von den Datenreihen belegten Blöcken. Setzt mandie Größe der Tabelle auf genau einen 512 Byte Block lassen sich maximal63 Datenreihen referenzieren. Dies sollte für den Einsatzzweck zunächst genü-gen. Sind mehr Datenreihen gefordert, so lässt sich das Dateisystem erweiternindem der nächste Block als Fortführung der Tabelle verwendet wird. Die Da-tenreihen selbst können beliebige Länge besitzen wenn der Platzbedarf nichtdie Kapazität der Karte überschreitet.Die ersten 4 Byte des Blocks, in dem die Tabelle abgelegt wird, sind ein

festes Muster zur Vermeidung von ungültigen Zugriffen durch Interpretationeines falschen Blocks als Messreihen Tabelle. Daran schließt sich die Anzahlder Datenreihen auf der Karte an. Mit dieser Zahl wird die Anzahl gültiger

25

Page 26: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

Byte Bedeutung---- --------------------------------0-3 Muster zur Erkennung einer

validen Messreihen Tabelle(0x4D594653 - ASCII "MYFS")

4-5 Anzahl Datenreihen (0..65535d)

6-7 Reserviert

8-11 1. Datenreihe: Adresse Anfangsblock12-15 1. Datenreihe: Adresse Endblock

16-19 2. Datenreihe: Adresse Anfangsblock20-23 2. Datenreihe: Adresse Endblock

...

...

504-507 63. Datenreihe: Adresse Anfangsblock508-511 63. Datenreihe: Adresse Endblock

Abbildung 3.8: Layout der Messreihen Tabelle

Anfangs- und Endadressen kontrolliert. (Nicht genutzte Plätze in der Tabellewerden mit 0x00000000 gekennzeichnet)Für jede Messreihe wird die Adresse des ersten und des letzten Blocks, in

dem Daten der Messreihe gespeichert sind, abgelegt. Die Messreihe schließtdie referenzierten Blöcke und alle dazwischenliegenden Blöcke ein. Ist nur einBlock mit Daten belegt, so sind Anfangs- und Endadresse identisch.Eine Datenreihe über 2 Blöcke ist in Abb. 3.9 dargestellt. Hier ist die Ord-

nung der Spannungs- und Stromsamples zu erkennen, die sich aus der Verar-beitung im Mikrocontroller ergibt. Um eine reguläre Anordnung der Daten zugewährleisten wurden jedem Spannungs- oder Stromwert 2 Byte zugeteilt ob-wohl sie eigentlich nur maximal 12 Bit breit sein können (Auflösung des ADC).Dadurch lässt sich auch 0xFFFF als ein Marker für das Ende einer Messreihebzw. für ungenutzte Bytes eines Blockes verwenden, da ein gültiger Messwertmaximal 0xFFF betragen kann.

26

Page 27: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

Bsp: Datenreihe mit 200 SamplesSpeicher 800 Bytes ->2Blöcke

Block Byte Bedeutung----- ---- ------------------------------1 0-1 1. Sample: Spannung (16bit)1 2-3 1. Sample: Strom (16bit)1 4-5 2. Sample: Spannung (16bit)...1 508-509 128. Sample: Spannung (16bit)1 510-511 128. Sample: Strom (16bit)2 0-1 129. Sample: Spannung (16bit)2 2-3 129. Sample: Strom (16bit)...2 284-285 200. Sample: Spannung (16it)2 286-287 200. Sample: Strom (16bit)2 288-511 0xFFFF

Abbildung 3.9: Beispiel einer Datenreihe

3.2.4 Konfiguration des MesssystemsVerschiedene Parameter müssen zur Nutzung des Messsystems festgelegt wer-den. Die Speicherung dieser Parameter sollte zum einen nichtflüchtig sein, alsoauch das Abschalteten des Systems überdauern, zum anderen sollte sie nichtauf einem externen Rechner erfolgen, sondern auf dem Mikrocontroller. DieseForderung ergibt sich direkt aus der Möglichkeit des autonomen Messens, istaber auch dann äußerst nützlich wenn das Messsystem mit mehreren Auswer-tungsrechnern genutzt wird. Unter den Rechnern muss so keine Konfigurations-datei ausgetauscht werden, da die Konfiguration immer vom Gerät übertragenwird. Abgelegt werden die Einstellungen im Flash Speicher des MSP430 undbleiben damit auch ohne Spannungsversorgung erhalten.Der Austausch von Parameterwerten zwischen Messsystem und Auswer-

tungsrechner erfolgt wie die Messdatenübertragung über den UART und ge-horcht einem simplen Protokoll. Die Abläufe lassen sich leicht anhand des inAbb. 3.10 dargestellten Automatengraphen nachvollziehen, der das Verhaltender Mikrocontroller Software darstellt. Das Auswertungsprogramm kann dieaktuell im Flash gespeicherten Parameter mit einem Lesekommando anfor-dern, welches auf ein Byte mit Inhalt 0x55 festgelegt ist. Hierauf antwortet derMikrocontroller mit der gespeicherten Konfiguration, die in der abgebildetenReihenfolge Byte für Byte aus dem Flash gelesen wird.Soll die Konfiguration geändert werden muss die Übertragung der neuen

Parameter mit dem Schreibkommando 0x11 initiiert und mit 0x22 gültig ab-

27

Page 28: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

geschlossen werden. Andernfalls werden die Änderungen verworfen. Außerdemprüft das Auswertungsprogramm anschließend selbst die neue Konfigurationindem es die Parameter wieder ausliest und mit den neu eingestellten Wertenvergleicht.

Abbildung 3.10: Automatengraph - Konfiguration über UART

Beim Zugriff auf den im MSP430 integrierten Flash Speicher muss dessenSegmentierung beachtet werden. Ein Löschvorgang kann nicht auf Byteebeneerfolgen, sondern umfasst immer ein ganzes Segment, welches mindestens 64Byte groß ist. Da die Speicherzellen ihren Zustand einzeln nur von logisch“1“ auf logisch “0“ ändern können, muss vor dem Schreiben von einem odermehreren Bytes der Zielbereich gelöscht, also auf “1“ gesetzt werden. Wiebeschrieben wird dazu das gesamte betroffene Segment gelöscht. Aus diesemGrund werden die Parameter immer gemeinsam geschrieben. Eine Funktionflash_settings(..) kapselt die dazu nötigen Schritte: Entsperren, Löschen desSegments, Schreiben der Parameter, Sperren.Die Daten liegen von Adresse 0x1000 bis 0x1004 in Segment D des Informa-

tion Bereichs des Flash Speichers, in dem keine zusätzlichen Daten abgelegtsind.

28

Page 29: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

3.3 Auswertungs-/EmpfängerprogrammDas kombinierte Empfänger- und Auswertungsprogramm ist in der Skriptspra-che Python umgesetzt und bietet eine graphische Benutzeroberfläche auf Basisder Qt Bibliothek. Durch die Verwendung von Python und Qt lässt sich dasProgramm auf verschiedenen Betriebssystemen nutzen, sofern die verwendetenBibliotheken1 installiert wurden.

Abbildung 3.11: Graphische Oberfläche des Auswertungsprogrammes

Das Programm ist nach den zwei Modi des Messsystems in UART und SDCard Funktionalität geteilt. Dies gilt sowohl für die graphische Oberfläche, inder die Modi durch zwei Karteireiter getrennt sind, als auch für den darunter-liegenden Entwurf. Hier fungieren eine UART Klasse und eine SD Klasse alsDatenquellen und eine gemeinsame Darstellungsklasse visualisiert deren Datenin einem Graph oder exportiert sie in eine CSV Datei. Diese Datei kann dannzu einem späteren Zeitpunkt im Reiter “CSV Import“ wieder eingelesen unddie Auswertung fortgesetzt werden.Im UART Modus wird die serielle Schnittstelle geöffnet und dann der Ein-

gangspuffer (FIFO) periodisch abgefragt. Zunächst wartet das Programm aufdas Auftauchen des Start Symbols, mit dem das Messsystem den Beginn ei-ner Messung signalisiert. Die UART Übertragung ist bytebasiert, so ist das

1Verwendete Bibliotheken: PySerial, PyQt, Matplotlib

29

Page 30: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

Start Symbol auf ASCII Start of Text2 festgelegt. Auf das Start Symbol folgenunmittelbar die Daten des ersten Samples. Pro zeitlichem Abtastpunkt fallen3 Byte (24 Bit) Daten im Eingangspuffer des UART an. Da die Rohwerteder Spannungs- und Strommessung jeweils 12 Bit groß sind, die Übertragungaber byteweise (8 Bit) erfolgt, werden die jeweils höherwertigsten 4 Bit derRohwerte zusammen übertragen. Der Empfänger trennt deswegen das erste(gemischte) Byte auf, und fügt aus dem oberen Halbbyte und dem zweitenempfangenen Byte den Spannungsrohwert zusammen, sowie aus dem unterenHalbbyte und dem dritten Byte den Stromstärkerohwert. Die Berechnung desSpannungswertes in Volt aus dem Rohwert NU ergibt sich nach Gleichung 3.1zu:

U = NU ·Uref+ − Uref−

4096 = NU ·3, 298V4096 (3.2)

Die Umrechnung des Stromstärkewertes erfolgt nach:

I = NI ·1

VINA195· Uref+ − Uref−4096 · 1

RShunt(3.3)

I = NI ·1

100 ·3, 298V4096 ·

1RShunt

(3.4)

Bei dieser Berechnung wird berücksichtigt, dass die Spannung über dem Shunt-widerstand vor der Analog-Digital-Wandlung durch den Shuntmonitor INA195verstärkt wurde. Dessen Verstärkungsfaktor (V=100) wird im UART Modusan dieser Stelle herausgerechnet. Die so erhaltenen Werte werden im PythonSequenztyp list abgelegt. Neben den Listen für Spannung und Stromstärkewer-te wird eine Liste mit deren Produkt, der Momentanleistung, geführt. NachEnde der Messung können diese Datensätze leicht in einem Graphen über derZeit aufgetragen dargestellt oder in eine CSV Datei exportiert werden.Die Visualisierung erfolgt mittels der Bibliothek Matplotlib. Bereits bei kurz-

en Messungen mit hoher Abtastrate fallen Datenmengen an, deren vollständigegraphische Darstellung für Probleme sorgen kann. Tests mit Gnuplot, Excelund LibreOffice Calc zeigten, dass manche Programme hierfür sehr viel Rechen-zeit benötigen oder im Falle von Excel schlicht mit einer Warnung abbrechen.Vor diesem Hintergrund zeigt sich die leistungsstarke Matplotlib wesentlichbesser geeignet. Bei Testmessungen verlief die Darstellung und Bereichsaus-wahl konstant flüssig.Als Möglichkeit zum Export der Messdaten in andere Auswertungsprogram-

me und zur Archivierung kann eine CSV Datei erstellt werden. Es handelt sichum eine Textdatei, in die Daten mit simpler Konvention geschrieben werden

2ASCII STX: Wert 02h

30

Page 31: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

3 Implementierung

können. Die erzeugten Dateien enthalten eine Kopfzeile mit den Spaltenüber-schriften, die restlichen Zeilen enthalten durch Semikolon getrennte Zahlen-werte. Abb. 3.12 zeigt ein Minimalbeispiel.

Time(s);Voltage(V);Current(mA);Power(mW)0.00000;2.39108137;73.82745983;176.52746379

Abbildung 3.12: Aufbau CSV Datei

Neben direkt über UART übertragenen Messwerten können mit dem Pro-gramm auch auf einer SD Card gespeicherte Messreihen ausgewertet werden.Das Programm öffnet über die SD Card Klasse die entsprechende Geräteda-tei (z.B. /dev/sdc) und liest die in 3.2.3 beschriebene Messreihen Tabelle. Diein der Tabelle eingetragenen Messreihen werden dem Nutzer nummeriert ineiner Liste angezeigt und bei Auswahl einer Messreihe die zugehörigen Mess-werte von der Speicherkarte gelesen und verarbeitet. Es finden dabei mehrereTests auf Validität der Daten auf der Speicherkarte statt. Zunächst wird über-prüft ob sich ein Marker “MYFS“ an der vorgesehenen Stelle befindet und obdas Feld “Anzahl Datenreihen“ einen sinnvollen Wert enthält. Damit wird si-chergestellt, dass auf dem Speichermedium überhaupt eine Messreihen Tabelleexistiert. Weiterhin wird immer geprüft, ob die Adresse des letzten Blocks ei-ner Datenreihe hinter der Anfangsadresse liegt und dass sich Endmarker nurinnerhalb des letzten Blocks befinden.

31

Page 32: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

4 BenutzungshinweiseIn diesem Kapitel wird eine kurze Anleitung zur richtigen Benutzung des Mess-systems gegeben. Es ist in Schritte gegliedert, um ein schnelles Nachschlagendes Anwenders zu vereinfachen.

4.1 Auswahl des ShuntwiderstandsZunächst muss eine Abschätzung getroffen werden, welche maximale Strom-stärke gemessen werden soll. Bei Leistungsmessung an einem Sensorsystemhandelt es sich um die Stromstärke, die das Objekt von seiner Stromversorgungbezieht. Diese Stromstärke fließt auch durch den Shuntwiderstand des Mess-systems und der Widerstandswert muss an den zu erwartenden Wert angepasstsein. Ist der Widerstandswert zu hoch für die auftretende Stromstärke, fällteine zu hohe Spannung über dem Shuntwiderstand ab. Die verstärkte Span-nung liegt möglicherweise oberhalb des messbaren Bereichs des Mikrocontrol-lers oder es wird sogar die maximal zulässige Verlustleistung am Widerstandüberschritten. Dies kann zu einer Beschädigung des Messwiderstands oder vonanderen Teilen des Messsystems führen.Ist die erwartete Stromstärke sehr klein, kann diese mit einem zu klein ge-

wählten Shuntwiderstand nicht messbar sein. Der Shunt Monitor INA195 be-nötigt als Eingangsspannung Usense mindestens 5 mV um am Ausgang denkorrekt verstärkten Wert zu liefern. Die aufgenommene Uout − Uin Kennliniezeigte zwar bereits ab 1 mV Linearität, doch durch Variation bei Bauteilenmuss dies nicht garantiert sein.Nach den Gleichungen 4.1 und 4.2 wurde die in Abb. 4.1 dargestellte Ta-

belle erstellt, welche die Grenzwerte für verschiedene Präzisionswiderständebeinhaltet.

Imess,max = Umess,maxVINA195

· 1RShunt

= 3, 3V100 ·

1RShunt

(4.1)

Imess,min = Usense,minRShunt

= 5mVRShunt

(4.2)

32

Page 33: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

4 Benutzungshinweise

Widerstand Ptot Imess

0, 3Ω± 1% 5 W 16,7 .. 110 mA3Ω± 1% 600 mW 1,67 .. 11,0 mA30Ω± 1% 500 mW 0,167 .. 1,10 mA

Abbildung 4.1: Dimensionierung Shunt Widerstand

4.2 Auswahl der AbtastrateBei kurzen Messungen sollte mit der maximalen Abtastrate von 9,2 kS/s ge-messen werden. Die Abtastrate legt fest welche kürzeste Änderung der Ein-gangsgrößen noch erfasst wird. Die Zeitdauer ergibt sich nach:

tmin = 2 · 1fSample

(4.3)

Für 9,2 kS/s liegt diese Grenze bei 217 µs.Bei Langzeitmessungen sollte die Abtastrate verringert werden um die Da-

tenmenge der aufgenommenen Messdaten zu begrenzen. Bei maximaler Abta-strate steigt die Rohdatenmenge mit folgender Rate:

R = 24Bit · 9200Hz = 220800Bit/s = 26, 95KB/s (4.4)

Es ist anzumerken, dass eine Textdatei (bzw. CSV), in der diese Daten gespei-chert werden, wesentlich schneller wächst, da nicht vorzeichenlose Binärwerteabgelegt werden, sondern die Dezimalzahlen in einem Zeichensatz wie AS-CII kodiert werden. Im Auswertungsprogramm macht sich dieser Effekt nochdeutlicher bemerkbar. In die CSV Dateien werden die Werte als Kommazahlengeschrieben, wobei jede Ziffer der Zahlen ein Zeichen darstellt, für dass kodiertein Byte benötigt wird.

4.3 Verbinden der MessleitungenEs müssen 3 Verbindungen zwischen dem Messsystem und dem Messobjekthergestellt werden. Die Shunt+ Messleitung wird mit dem Plus Pol der Span-nungsversorgung des zu messenden Gerätes verbunden, die Shunt- Messleitungmit dem Plus Anschluss des Gerätes. Damit ist der Shuntwiderstand zur HighSide Messung der Stromstärke in den Zuleitungspfad eingesetzt. Die Ref- Mess-leitung wird mit dem Minus Pol bzw. der Masse verbunden. Die Messung desSpannungsabfalls erfolgt von Shunt- nach Ref-.

33

Page 34: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

4 Benutzungshinweise

Abbildung 4.2: Verbindung mit dem Messobjekt

Mit dem Auswertungsrechner kann entweder direkt über USB kommuniziertwerden oder indirekt, indem die Messdaten auf einer SD Card gespeichert undvom Rechner ausgelesen werden. Soll mit hoher Abtastrate gemessen werden,ist die Verbindung zum PC mit einem Mikro USB Kabel herzustellen. Sollohne PC gemessen werden, muss vor dem Einschalten des Messsystems eineSD Card in den Speicherkarteneinschub gesteckt werden.

4.4 MessungDer eingestellte Betriebsmodus kann mit der zweifarbigen LED überprüft undmit dem grünen Taster gewechselt werden. Ist keine SD Card vorhanden, kanndieser Modus nicht ausgewählt werden. Im UART Modus muss am PC dieAuswertungssoftware gestartet und in dieser die UART Schnittstelle geöffnetwerden. Das Starten und Stoppen der Messung erfolgt mit dem gelben Taster.

4.5 AuswertungIm UART Modus können nach Stoppen der Messung die aufgenommenen Da-ten mit dem Button “Plot“ in einem Graphen über der Zeit dargestellt werden.Im unten rechts zu findenden Drop-Down Menü lässt sich die Darstellung zwi-schen Spannungs-, Stromstärke und Leistungswerten umschalten. Mit “Exportto CSV“ werden diese drei Datenreihen zur weiteren Auswertung in eine kom-maseparierte Datei geschrieben. Der “Clear Data“ Button bereitet eine neueMessung vor und verwirft die zuletzt empfangenen Daten.Wurden Messdaten auf eine SD Card geschrieben, lassen sie sich im zweiten

Karteireiter des Auswertungsprogramms importieren. Die SD Card muss ineinem Kartenleser an den PC angeschlossen werden und kann dann geöffnetwerden. Die enthaltenen Datenreihen werden rechts nummeriert aufgelistet undlassen sich per Mausklick auswählen. Dann erst erfolgt die Übertragung der

34

Page 35: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

4 Benutzungshinweise

Daten von der SD Card und sie können gleich wie im UARTModus ausgewertetwerden.

35

Page 36: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

5 Beispielmessung anTemperaturlogger

Als Beispiel für mit dem Messsystem mögliche Untersuchungen soll die Ana-lyse eines Datenloggers für Temperaturwerte dienen. Der Datenlogger bestehtim wesentlichen aus einem digitalen Temperatursensor vom Typ TMP275 undeinem MSP430 Mikrocontroller, der diesen ausliest. Für die Messung wurdeder Datenlogger an einem Labornetzteil betrieben und zwischen Netzteil undDatenlogger das Messsystem angeschlossen. Es wurde für ca. 20 Sekunden imUART Modus gemessen und eine Auswertung mit der entwickelten Softwaredurchgeführt.

Abbildung 5.1: Abgeschlossene Beispielmessung

Ein Aufnahme des Programmfensters direkt nach der Messung mit dem Graph

36

Page 37: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

5 Beispielmessung an Temperaturlogger

der gemessenen Stromstärke über der gesamten Messzeit ist in Abb. 5.1 dar-gestellt. Da die durch das Netzteil erzeugte Versorgungsspannung bei der ge-ringen Belastung durch den Datenlogger über den Messzeitraum konstant istund daher der Verlauf der Leistungskurve dem der Stromstärke gleicht, kanndie Auswertung am Stromstärkegraph vorgenommen werden. Anhand der sichändernden Stromstärke und Leistungsaufnahme des Datenloggers lässt sichdessen Arbeitsweise leicht nachvollziehen und es sind gut die verschiedenenaktiven Phasen erkennbar. Der Mikrocontroller liest den Sensor 12 mal überdessen I2C Schnittstelle aus und legt die Werte im Arbeitsspeicher ab. Diesesperiodische Auslesen ist im Graph an den wiederholten “kleinen“ Peaks im Ab-stand von 2 Sekunden erkennbar. Auf die Erfassung aller 12 Peaks wurde beider in Abb. 5.1 dargestellten Messung verzichtet. Nach der Übertragung des12. Wertes versendet der Mikrocontroller die aggregierten Daten über einenUART, was im Graphen durch den “großen“ Peak repräsentiert ist. Umschlos-sen sind diese Ereignisse von längeren Phasen geringer Leistungsaufnahme.

Abbildung 5.2: Auslesen des Temperatursensors

Abbildung 5.2 zeigt die Vergrößerung von einem der “kleinen“ Peaks. Derschnelle Anstieg markiert den Zeitpunkt, zu dem der Mikrocontroller von ei-nem Timer ausgelöst aus dem Low Power Mode erwacht und vorher abgeschal-tete Module wieder in Betrieb nimmt. Nachdem der Temperaturwert ausgele-sen und zwischengespeichert ist kehrt er in den Stromsparmodus zurück. Esfällt auf, dass nach dieser Aktivität die vom Temperaturlogger aufgenommeneStromstärke noch für 200 ms auf einem um 50 µA erhöhten Plateau bleibt. Indiesem Zeitraum führt der Sensor die eigentliche Temperaturerfassung durch.Die Messung erfolgt automatisch nach dem Auslesen des alten Wertes und der

37

Page 38: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

5 Beispielmessung an Temperaturlogger

TMP275 hält den ermittelten Wert dann bis zur nächsten Abfrage vor.Eine weitere zeitlich genauere Darstellung des Peaks ist in Abb. 5.3 ab-

gebildet. Der Mikrocontroller aktiviert seine CPU, wobei sich der Haupttaktim Bereich einiger hundert Kilohertz bewegt. Zusätzlich wird die I2C Über-tragung initiiert und die fließende Stromstärke steigt steil bis auf 470 µA.

Abbildung 5.3: Auslesen des Temperatursensors Detail

Abbildung 5.4: Controller verschickt gebündelte Werte per UART

In Abbildung 5.4 ist der Zeitraum um den “großen“ Peak dargestellt. Im direk-ten Vergleich zur vorherigen Abbildung muss die unterschiedliche Einteilungder Stromstärkenachse beachtet werden. Der Mikrocontroller holt in dieser

38

Page 39: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

5 Beispielmessung an Temperaturlogger

Phase zunächst wie oben beschrieben den letzten Temperaturwert vom Sen-sor, deaktiviert sich aber nicht sofort, sondern initiiert eine Übertragung dergesammelten Daten über den UART. Hierbei wird der Haupttakt von einem 8MHz Quarz gespeist, was sich in einer Gesamtstromstärke von maximal 3,56mA bemerkbar macht. Nach abgeschlossener Übertragung wird wieder in denLow Power Mode umgeschaltet und die Kurve fällt steil ab.

39

Page 40: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

6 VerbesserungsmöglichkeitenAuch wenn das entworfene Messsystem in der beschriebenen Form gut nutzbarist, lassen sich einige Möglichkeiten zur Verbesserung des Systems nennen,die während der Entwicklung und des Tests des Prototypen deutlich wurden.Bei einer Revision könnten damit unter Umständen die Einsatzmöglichkeitenerweitert werden.Eine signifikante Steigerung der Abtastrate lässt sich unter Umständen mit

der Nutzung des im MSP430 integrierten Direct Memory Access Controllerserreichen. Diese Steigerung lässt sich dann erreichen wenn die Interrupt Ser-vice Routine für das Umkopieren der ADC Werte komplett entfallen kannweil deren Aufgabe im Hintergrund vom DMA Controller übernommen wird.Zusätzlich muss eine Lösung gefunden werden, mit der der Repeat Sequenceof Channels Modus verwendet werden kann, bei der Spannungs- und Strom-sample ebenfalls zeitlich kurz hintereinander ausgelöst werden. Sonst bestehtweiterhin die in 3.2.1 beschriebene Notwendigkeit in der ISR das SteuerbitENC neu zu setzen.Etwas umständlich für den Nutzer ist die Auswahl des Shuntwiderstandes.

Es ist denkbar mehrere Widerstände mit gestaffeltem Widerstandswert aufder Platine einzusetzen, welche über einen Multiplexer oder eine vergleichbareSchaltung vom Mikrocontroller ausgewählt werden können. Damit ließe sichin Software eine automatische Bereichsauswahl implementieren, die langsamWiderstände mit höherem Widerstandswerte wählt bis eine Detektion der flie-ßenden Stromstärke möglich wird.Derzeit ist die Messung auf Systeme mit einer Versorgungsspannung von

maximal 3,3 V beschränkt. Die Ursache ist der im MSP430 integrierte AnalogDigital Wandler, der nur Referenzspannungen zulässt, die die eigene Versor-gungsspannung nicht überschreiten. Soll ein System mit höherer Spannunguntersucht werden, muss diese über einen Spannungsteiler in den zulässigenBereich gebracht werden. Alternativ könnte für diese Fälle ein anderer ADCverwendet oder das bestehende System für reine Stromstärkemessung ange-passt werden. Oft würde dies bei kurzen Messzeiträumen für eine Analyse aus-reichen, da die Spannung in vielen Fällen keiner beobachtbaren Schwankungunterliegt. Es wäre es nötig, die Leiterbahn, die die Spannung and den Ein-gangspin A7 führt zu unterbrechen. Im Layout ist dies bereits berücksichtigt.

40

Page 41: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

6 Verbesserungsmöglichkeiten

Im Pfad zum Spannungseingangspin ist ein Null-Ohm Widerstand (R29) pla-ziert, der für ein Exemplar des Systems zur reinen Stromstärkemessung nichtbestückt wird. Dann könnte über die PC Software das Messsystem umkon-figuriert werden, dass nur noch die Stromstärkewerte aufgenommen werden.Dieser neue Modus hätte zwei Vorteile. Es könnten vorher nicht untersuchbareSysteme verbunden werden und der durch das Weglassen der Spannungswertehalbierte Datendurchsatz könnte eine höhere Samplingrate für die Stromstär-kewerte ermöglichen.Bei der Implementierung der Auswertungssoftware musste auf eine nützli-

che Funktion verzichtet werden. Es war geplant den Graphen während derMessung kontinuierlich aufzubauen bzw. diesen ständig zu aktualisieren. BeimTest mit der Live Graphendarstellung zeigte sich, dass die dadurch erhöh-te Auslastung des PCs einen gelegentlichen Pufferüberlauf beim Messdaten-empfang verursachte. Es wird dabei die Abfrage des USB Treibers durch dieBerechnung der Darstellung verzögert und ein Durchgangspuffer im Treiberscheint vollzulaufen. Dieser Effekt wurde mit kurzen Testprogrammen für PCund Mikrocontroller weiter untersucht. Der Mikrocontroller wurde so program-miert, dass mit maximaler Geschwindigkeit Daten über den UART an den PCgeschickt werden. Die Testdaten wurden dabei durch einfaches Hochzählen ge-neriert, womit für das Empfängerprogramm Datenverlust dadurch erkennbarist, dass eine Lücke in der Zahlenreihe entsteht. Die nicht empfangenen Daten-pakete wurden gezählt und der Prozentsatz zur Gesamtpaketzahl angegeben.Datenverlust trat dabei nur auf wenn die empfangenen Zahlen in der Konsoleausgegeben wurden. Schon diese Aktivität verzögert die USB Abfrage und löstbei den schnell eintreffenden Daten einen Pufferüberlauf aus.Trotzdem sollte die Live Darstellung möglich sein. Die Menge an darzustel-

lenden Messpunkten muss dafür geschickt beschränkt werden. So ist es z.B.denkbar zunächst nur jeden 10ten Wert zu zeichnen oder zu einem gegebenenZeitpunkt immer nur die Messwerte der letzten 5 Sekunden im Live Graphdarzustellen.

41

Page 42: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

7 ZusammenfassungIn der Arbeit wurde ein System zur Leistungsmessung an batteriebetriebenenSensorsystemen konzipiert und entwickelt. Realisiert wurden dabei Hardware,Software für den eingesetzten Mikrocontroller und eine plattformübergreifendePC Software. Damit ist eine komplette Lösung für Messung und Auswertungentstanden, die sich vielseitig einsetzen lässt.Das Messsystem kann zur Untersuchung von schnellen Änderungen der Leis-

tungsaufnahme eines Messobjekts verwendet werden. In diesem Betriebsmodusist es mit einem Auswertungs-PC gekoppelt, der die Messdaten speichert unddarstellt. Eine Langzeitmessung kann durch die Verwendung einer SD Cardautark, also ohne die Verbindung zu einem PC, durchgeführt werden.Bei der Implementierung des aufgestellten Konzepts mussten Lösungen für

die effektive Bewältigung der auftretenden Datenmengen und die strikte Ein-haltung der konstanten Samplingrate mit den knappen Ressourcen des Mikro-controllers gefunden werden.Das System ist auf verschiedene Messbereiche und Abtastraten anpass- und

umkonfigurierbar und eignet sich so gut als Hilfsmittel bei der Programmie-rung von Sensor- und Mikrocontrollersystemen, bei denen eine Optimierungauf geringen Energieverbrauch erforderlich ist. Ebenfalls nützlich kann dasMesssystem bei der Überprüfung von Leistungsbeschreibungen kommerziellvertriebenener, autarker Systeme z.B. im Bereich Heimautomatisierung sein.

42

Page 43: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

Literaturverzeichnis[1] Chan ELM. How to use mmc/sdc, 2012. [Online; accessed 15-August-2012].

[2] SD Group. SD Specifications - Part 1 Physical Layer Simplified Specifica-tion, Mai 2010. [Version 3.01].

[3] Texas Instruments. Msp430x2xx family - user’s guide. http://www.ti.com/litv/pdf/slau144i, Dezember 2004. [Rev. I 01/2012].

[4] Texas Instruments. Msp430f241x, msp430f261x mixed signal microcon-troller. http://www.ti.com/litv/pdf/slas541k, Juni 2007. [Rev. K11/2012].

[5] Wikimedia. File:minidin-4 connector pinout.svg — wikimedia commons,2006. [Online; accessed 04-December-2012].

[6] Wikipedia. Secure digital — wikipedia, the free encyclopedia, 2012. [On-line; accessed 15-August-2012].

43

Page 44: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

SelbstständigkeitserklärungHiermit erkläre ich, daß ich die vorliegende Arbeit selbstständig angefertigt,nicht anderweitig zu Prüfungszwecken vorgelegt und keine anderen als dieangegebenen Hilfsmittel verwendet habe. Sämtliche wissentlich verwendeteTextausschnitte, Zitate oder Inhalte anderer Verfasser wurden ausdrücklichals solche gekennzeichnet.

Chemnitz, den 22. Februar 2013

Luis Lutnyk

44

Page 45: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

Anhang

45

Page 46: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

11.1

2.12

50,0

0%M

aßst

ab:

Proj

ekt:

11.1

2.12

letz

te Ä

nder

ung:

Dat

um:

Nam

e:

76

54

32

1

EDCBA

76

54

32

1

EDCBA

Page 47: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

LTC4

412

IC5

STAT

GAT

ESE

NSE

CTL

GND

Vin

11.1

2.12

50,0

0%M

aßst

ab:

Proj

ekt:

11.1

2.12

letz

te Ä

nder

ung:

Dat

um:

Nam

e:

76

54

32

1

EDCBA

76

54

32

1

EDCBA

Page 48: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

11.1

2.12

50,0

0%M

aßst

ab:

Proj

ekt:

11.1

2.12

letz

te Ä

nder

ung:

Dat

um:

Nam

e:

76

54

32

1

EDCBA

76

54

32

1

EDCBA

Page 49: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

11.1

2.12

50,0

0%M

aßst

ab:

Proj

ekt:

11.1

2.12

letz

te Ä

nder

ung:

Dat

um:

Nam

e:

76

54

32

1

EDCBA

76

54

32

1

EDCBA

Page 50: Studienarbeit - Technische Universität Chemnitz · Fakultät für Elektrotechnik und Informationstechnik Professur Schaltkreis- und Systementwurf Studienarbeit Implementierung eines

Verzeichnisstruktur CD|-- datasheets| |-- ti| | |-- ina195.pdf| | |-- msp430f1611.pdf| | |-- msp430f2618.pdf| | |-- slau049f.pdf| | ‘-- slau144i.pdf| |-- 3534f.pdf| |-- 405642f.pdf| |-- 4412fa.pdf| |-- DS_FT232R.pdf| ‘-- sdcard_Physical_Layer.pdf|-- ftdi_drivers| |-- CDM 2.08.24 WHQL Certified.zip| |-- FTDIUSBSerialDriver_v2_2_18.dmg| ‘-- FT_Prog v2.6.8.zip|-- msp430| |-- adc12_init.c| |-- error_led.c| |-- flash_settings.c| |-- isrs.c| |-- main.c| |-- Makefile| |-- msp430.elf| |-- msp430_test.h| |-- sd_card.c| |-- sd_card.h| |-- send2serial.c| |-- set_rate.c| |-- start_stop.c| ‘-- toggle_mode.c|-- pictures_pcb| |-- ...|-- receiver| |-- csv_example| | ‘-- tempsensi2c.csv| |-- mplwidget.py| |-- README.txt| |-- receiver_gui.py| |-- receiver.py| ‘-- receiver_tab.ui|-- schematics| |-- libs_2012_12.7z| |-- msp_mess_Rev.0.1.T3000| |-- Schaltplan_msp_mess_Rev01.pdf| ‘-- stueckliste.xls|-- gnuplot.sh|-- mails_dlbeer_on_mspdebug.pdf‘-- studienarbeit.pdf

50