„eBlock , SD Kartenleser“ - w-hs.de · Preise laut Elektor Homepage () Stand: 09.06.2009 13...

25
„eBlock , SD-Kartenleser“ Projektteam: Henrik Esche Tobias Albers Michael Heßling Daniel Lütfrenk Jonas Wieschmann

Transcript of „eBlock , SD Kartenleser“ - w-hs.de · Preise laut Elektor Homepage () Stand: 09.06.2009 13...

„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: 25.04.2009 44

Basisplan

Stand: 09.06.2009 5

Basisplan (Fortsetzung)

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 16

Card Reader Board anschließen

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 21

Realplan

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.

Stand: 15.06.2009 25

Ausblick

• FAT-Formatierung einbinden

• Textdatei mit Mikrocontroller erstellen

• Makros für Excell erstellen