„eblock , sd kartenleser“ - w-hs.de · preise laut elektor homepage () stand: 09.06.2009 13...
TRANSCRIPT
„eBlock , SD-Kartenleser“
Projektteam:
Henrik Esche
Tobias Albers
Michael Heßling
Daniel Lütfrenk
Jonas Wieschmann
Stand: 25.04.2009 22
„eBlock , SD-Kartenleser“
Zieldefinition:
Am 17.06.2009 ist ein eBlock betriebsbereit und mit einem Softwaremodul beschrieben, welches das Schreiben und Lesen von Datentypen (char, int, float) auf einer SD-Karte ermöglicht. Die Daten der Karte sind mit einem Windows PC auslesbar. Eine Softwaredokumentation liegt vor.
Stand: 25.04.2009 33
Teamleiter
Henrik Esche
Recherche
M. Heßling
Initialisierung
J. Wieschmann
Schreiben
D. Lütfrenk
Nice to have
Alle
Dokumentation
H.Esche
Qualitätskontrolle
Alle
Lesen
T. Albers
Hardware
/Kosten
M. Heßling
T. Albers
SPI
D. Lütfrenk
J. Wieschmann
Software
D. Lütfrenk
J. Wieschmann
Programmier
oberfläche
D. Lütfrenk
Karte
initialisieren
D. Lütfrenk
J. Wieschmann
int
Alle
char
Alle
float
Alle
Sequentiell mit AVR
D. Lütfrenk
J. Wieschann
Struct mit gleichen Typen
Alle
Stuct mit ver-schiedenen
Typen
Alle
Testlauf,
Ziel erreicht
Alle
Modula-
risierung
Alle
Error
Guessing
Alle
Präsentation
H. Esche
Protokolle
T. Albers
Kostendoku.
M. Heßling
Softwaredok.
Alle
Hardwaredok
M. Heßling
Projektstrukturplan ( eBlock, SD-Kartenleser )
Controller
Prof. Dr. J. Minte
G. Leitiger
Am PC
D. Lütfrenk
J. Wieschann
Stand: 09.06.2009 666
Was sind Mikrocontroller(μC)?
Ein-Chip-Computersystem
• Prozessor mit integriertem Speicher und Ein- und
Ausgängen
• Einsatzbereiche: Handys, Autos (Steuergerät) usw.
Warum eBlocks?
• einfache Handhabung und modulare Bauweise schnelle Prototypgenerierung
• Schulungsobjekte
Stand: 09.06.2009 777
eBlock-AVR Multiprogrammer
• universeller Programmer für µC von AVR
• Anschluss des Programmers mittels USB an PC
• Anschluss zusätzlicher Module über Sub-D Stecker
Funktion in unserem Projekt:
• Basisplatine
Stand: 09.06.2009 888
eBlock – SD-KartenleserFunktion:
• Erweiterung des eBlocks um die Möglichkeit des Speicherns großer Datenmengen bis 1GB für jedes µC-System
in unserem Projekt:
• Speicherung von Daten, wie z.B. Messwerten, die dann mit dem PC ausgewertet werden können
Stand: 09.06.2009 999
eBlock-LCD DisplayFunktion:
• zweizeilige Ausgabe von je 16 alphanummerischen Zeichen
Stand: 09.06.2009 1010
eBlocks-Switch-Board
Funktion:
• ermöglicht den Anschluss von 8 Tastern an den eBlock-Multiprogrammer
Taster
Stand: 09.06.2009 1111
eBlocks-Sensor-BoardFunktion:
• erlaubt den Anschluss vieler digitaler und analoger Sensoren an den Multiprogrammer
• für Testzwecke: Lichtsensor (LDR) und Potentiometer vormontiert
Lichtsensor (LDR)
Potentiometer
Stand: 09.06.2009 1212
Kosten
Module Art.-Nr. Preis
AVR-Multiprogrammer EB 194 116,50 €SD/MCC – Kartenleser EB 037 53,50 €Switch-Board EB 007 21,95 €LCD-Board EB 005 28,95 €Sensor-Board EB 003 21,95 €
_________________
242,85 €Preise laut Elektor Homepage (www.elektor.de)
Stand: 09.06.2009 1313
SPI-Schnittstelle
Das Serial Peripheral Interface (SPI) wurde von Motorola entwickelt aber
nicht exakt definiert
• flexible Schnittstelle mit individuellen Einstellmöglichkeiten
• Anwendung z.B. auch zwischen PCs und Peripherie
• Allen gemein ist ein synchroner, serieller Datentransfer zwischen einem
Master und Slave
Stand: 09.06.2009 1414
SPI-Schnittstelle
MOSI (Master out Slave in)
MISO (Master in Slave out)
SCK (Serial Clock)
SS (Slave Select)
Stand: 09.06.2009 15
Card Reader Board vorbereiten
Vorinstallierte SPI Konfigurationen waren nicht verwendbar
• Signalleitungen zum ATmega32 kompatibel verbinden
Stand: 09.06.2009 17
SPI konfigurieren
• SPI-Modus mit dem Mikrocontroller als Master per Software aktivieren
• Aus- und Eingänge der Schnittstelle definieren
• Geschwindigkeit der Datenübertragung festlegen
Nach erfolgreicher Antwort der SD-Karte auf die ersten
Prüfkommandos ist das Modul einsatzbereit.
Stand: 09.06.2009 18
Aufbau der Software
• Modulare Programmierung• einzelne Funktionen für die verschiedenen Typen von Variablen in vorgegebenen einzelnen Modulen
• Funktionen um INT, CHAR, FLOAT Variablen zu schreiben• Leicht in andere Programme einzubinden
Übersicht über die einzelnen Module• LCD.c• mmc.c• umwandeln.c• Varianten.c
Stand: 09.06.2009 19
Aufbau Hauptschleife
Bibliotheken und
Headerdateien
includieren
LCD-Board
initialisieren
LCD-> System
Ready
Karte
gefunden?
SD-Karte
initialisierenDisplay: Karte gefunden
Variablen initialisieren:
-Ausgabestring
-Speicheradresse
-Variante
While(1)
Variante=0
Variante=1
Variante=2
Variante=3
Variante=4
Menu:
1=CHAR,2=INT,
3=FLOAT,4=Speicher
Schreiben von CHAR
Schreiben von INT
Schreiben von FLOAT
Speichersandsanzeige
FALSETRUE
Endlosschl
eife
FALSE
TRUE
TRUE
TRUE
TRUE
TRUEFALSE
FALSE
FALSE
FALSE
Stand: 09.06.2009 20
Speicherdaten
Karten-größe [MB]
Blockgröße [Byte]
max. Schreib-geschw.
[Messwerte/s]max. Anzahl Blöcke
min. Messdauer [s] (char)
min. Messdauer [s] (int)
min. Messdauer [s] (float)
1 512 80,00 2.000 2.550 1.825,00 1.275,00
16 512 80,00 31.250 39.844 28.515,63 19.921,88
32 512 80,00 62.500 79.688 57.031,25 39.843,75
128 512 80,00 250.000 318.750 228.125,00 159.375,00
512 512 80,00 1.000.000 1.275.000 912.500,00 637.500,00
1.024 512 80,00 2.000.000 2.550.000 1.825.000,00 1.275.000,00
2.048 512 80,00 4.000.000 5.100.000 3.650.000,00 2.550.000,00
4.096 512 80,00 8.000.000 10.200.000 7.300.000,00 5.100.000,00
Stand: 09.06.2009 22
Probleme mit Strukturen
• Speicherübergabe erfolgt durch Zeiger auf Startadresse
• Zugriff auf Inhalte über Startadresse und Variablenname
• Strukturen können beliebig definiert werden
Stand: 15.06.2009 23
Probleme mit Float-Variablen
• die float Variable wird in C/C++ benötigt, um mit Fließkommazahlen zu arbeiten
• Wertebereich: -3,4*10^38 bis 3,4*10^38
• eine Standardfunktion in C++ liegt vor, funktioniert mit Mikrocontroller nicht
Lösung: wir begrenzen den Wertebereich auf 4 Vorkomma- und 4 Nachkommastellen
Stand: 25.04.2009 2424
„eBlock , SD-Kartenleser“
Zieldefinition:
Am 17.06.2009 ist ein eBlock betriebsbereit und mit einem Softwaremodul beschrieben, welches das Schreiben und Lesen von Datentypen (char, int, float) auf einer SD-Karte ermöglicht. Die Daten der Karte sind mit einem Windows PC auslesbar. Eine Softwaredokumentation liegt vor.