DIPLOMARBEIT. Entwurf und Implementierung eines modularen USB-Stacks für eingebettete Controller ohne Betriebssystem. Uwe Pfeiffer

Ähnliche Dokumente
USB Stack - Design der Systemschnittstelle. Franz Hirschbeck AKBP II, WS 2003/04

USB. Susanne Grein Hochschule RheinMain Fachseminar 2009

USB universeller serieller Bus

Universelle Speicherschnittstelle für große externe Speicher

Implementierung eines Dateisystems für Java-basierte eingebettete Systeme

ANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS. Sascha Kath

Fakultät Informatik Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur. Diplomverteidigung

Universelle Speicherschnittstelle für große externe Speicher

ASIC-SYNTHESE DER SHAP-MIKROARCHITEKTUR

Realisierung eines Speichermanagements zur Zugriffsvirtualisierung von konkurrierenden Nutzerdesigns auf Rekonfigurierbarer Hardware

Multi-Port-Speichermanager für die Java-Plattform SHAP

Vortrag zum Hauptseminar Hardware/Software Co-Design

SATA - USB 2,5" HDD-LAUFWERK (DA-70555) Benutzerhandbuch

P01: ROM-Emulator 16/8 Bits, vorzugsweise für Starterkit NEC V 850

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein

Einfu hrende Betrachtung des USB und Mo glichkeiten der Integration in das Rainbow-Betriebssystem. Georg Gottleuber 23. Juni 2010 Verteilte Systeme

Einführung...2 Überblick über die Technologie... 2 Über den 7 Port DRU-H7 USB Hub 3 Leistungsmerkmale des Produktes...4

Virtueller Speicher und Memory Management

Konzeption und prototypische Implementation der Medienintegration in ein gebäudetechnisches Automatisierungssystem

Bus powered 5-Volt Versorgungsspannung auf dem Bus

Ein- und Ausgabegeräte

Konfigurieren von Multiplex Geräten (Sensoren, Empfänger, Souffleur) sowie Datensicherung von Multiplex Sendern unter Linux

Von der objektorientierten Steuerungssoftware zum OPC UA Interface mit CoDeSys

Benutzerhandbuch 3,5" HDD-LAUFWERK SATA - USB (DA-70575)

USB in Embedded Systemen. Referat von Peter Voser Embedded Development GmbH

Speicherverwaltung (Swapping und Paging)

Einführung 2. Installation 5. Spezifikationen. 9

GigE Vision: Der Standard

Maximalwerte für die Konfiguration VMware Infrastructure 3

Embedded Linux gnublin Board Programmieren Sonstiges. Embedded Linux am Beispiel des Gnublin-Boards

ES-Projektseminar SS2011

Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur USB 3.0. Hauptseminar Technische Informatik. Bastian Lindner

ProSeminar Speicher- und Dateisysteme

Webservices für eingebettete Systeme

Untersuchungen zur effizienten Implementierung eines mathematischen Algorithmus in einem FPGA am Beispiel eines Sudoku-Lösers

Fakultät Informatik, Institut für Angewandte Informatik, Professur Prozesskommunikation Entwicklung eines Profinet IO Testbetts

iscan USB Benutzerhandbuch

Verteidigung der Diplomarbeit 3D-Netzwerk-Visualisierung

Konzepte von Betriebssystemkomponenten. Gerätetreiber. Mario Körner

Inhaltsverzeichnis. 1 Einführung Grundlagen 41

LinTech. Konfigurationssoftware. Bedienungsanleitung. Revision 1.46

Systemanforderungen Hardware Prozessor mit mindestens 333 MHz sowie USB 2.0-Verbindung (USB 2.0 ist für maximale Übertragungsraten erforderlich.

Informatik I WS 07/08 Tutorium 24

Unterbrechungstolerante drahtlose Sensornetze. Georg von Zengen

Software Entwicklung 1

EINGEBETTETE SYSTEME Vorlesungen WS2005

Betriebssysteme I WS 2017/18. Prof. Dr. Dirk Müller. 05a 64-/32-Bit-Architekturen

Softwaretest von verteilten Echtzeitsystemen im Automobil anhand von Kundenspezifikationen

Aufbau und Funktionsweise eines Computers

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner

Bernhard Redemann. Steuern und Messen mit USB. Hard- und Softwareentwicklung mit dem FT232B/R, FT245B/R und FT2232L/D

Installieren von Bluetooth-Geräten in custo diagnostic 3.8

Diese sehr vereinfachte Darstellung zeigt schematisch wie Sie sich das Bussystem eines PC vorstellen können.

Leistungsstarkes Softwaresystem zur Steuerung von großen drahtlosen Sensornetzwerken

56K USB Einwahl und Fax Modem - V.92 - Extern - Hardwarebasierend

ABLEITUNG ZUSÄTZLICHER STEUERGRÖSSEN FÜR DIE STRAHLFORMUNG IN EINEM LASER-SCANNER IM ECHTZEITBETRIEB

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Was ist FireWire? Einführung 1995 durch Apple und Sony, entwickelt seit 1986 vor allem durch Apple.

Interface USB DMX512 Die Anweisung

Michael Troitzsch. Überblick über lokale Netze und praktische Hinweise für die Planung. Mit 86 Abbildungen 4., neubearbeitete Auflage.

Rechnernetze Übung 11. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juni 2012

Datenübertragung per Direct Memory Access (DMA)

Martin Stiller, Fakultät Informatik, Institut für Technische Informatik. LLVA: Eine virtuelle Befehlssatzarchitektur

Untersuchung und Vorstellung moderner Grafikchiparchitekturen

Hardware und Gerätetreiber

2 Port Mini PCI Express USB 3.0 SuperSpeed Adapter Karte mit UASP Unterstützung

Entwurf eines FPGA-Cores zur Simulationsbeschleunigung zeitkontinuierlicher Modelle im HiL Kontext

USB (Universal Serial Bus)

Ganzheitliche Aufgabe II - Sommer 1999

MultiTrigger 2.0 Firmware-Update Guide

Computergestützte Ansteuerung digitaler Eisenbahnanlagen

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Objektorientiertes Programmieren

Lehrstuhl Informatik 4

Grundlagen der Anwendung und Programmierung des ESP8266. Dennis Hoffmann Mittwoch, :30 Uhr Schulungsraum SW23/147

Versuch 9 Agilent T&M Toolkit - Einführung

Mini- Mikroprozessor-Experimentier-System. Version 1.0b vom :21. mit einem 8051-Mikrocontroller

Open-Source Kommunikationslösung Datenaustausch zwischen PC und ethernetfähiger S7-Steuerung

Informatik 2-stündig

1 Port USB über IP GeräteServer - 10/100/1000 MBit/s Gigabit

Erhöhung der Ausfallsicherheit einer Mikropumpensteuerung mit Hilfe einer hierarchisch organisierten, heterogenen Controllerplattform

EasyMeter - Praktikumsaufgaben 14. Dezember 2015

.Net Interoperabilität

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer

A5. Digitale Schnittstellen

SIM Application Toolkit basierter Angriff auf mobile Endgeräte durch Hardwaremanipulation an der SIM-Karte

Die AVR Mikrocontrollerfamilie

Zwischenbericht Diplomarbeit Entwicklung einer Laufzeitumgebung für Komponenten mit Ressourcenanforderungen

Klausur Softwaretechnologie SS 2017

KEIPM Software zur Anbindung der Bosch Rexroth Schraubsysteme an das I-P.M. Statistik- und Langzeitdatenarchivierungspaket

Vortrag zur Diplomarbeit

SATA auf USB Kabel - USB 3.1 (10Gbit/s) - UASP

STORAGEGEHÄUSE FÜR 2 3,5" SATA/SATAII FESTPLATTEN. Bedienungsanleitung. 1 Funktionsmerkmale. 2 Systemanforderungen

Handbuch Digi-Prog. Revision 1.0. Copyright c Welzel GbR Steinstrasse Giessen

Gliederung der Folien

Einführung in die Objektorientierung (OO)

Transkript:

Fakultät Informatik Institut für Technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur DIPLOMARBEIT Entwurf und Implementierung eines modularen USB-Stacks für eingebettete Controller ohne Betriebssystem Uwe Pfeiffer Dresden, 21.5.2015

Gliederung Überblick USB Motivation Funktionsweise USB Ziele Realisierung Ergebnisse Fazit Ausblick TU Dresden, 21.5.2015 USB-Stack Folie 2 von 16

01 Überblick USB Host Root-Hub Gerät 1 Hub Gerät 1 Gerät 2 Gerät 3 Gerät 2 Hub Gerät 3 Gerät 4 Hub Host Gerät 4 Gerät 5 Gerät 6 Hub Hub Gerät 8 Gerät 7 Hub Gerät 5 Gerät 6 Gerät 7 Gerät 8 Abbildung: Topologie eines beispielhaften USB-Systems

Eigenschaften serielles Bussystem Verbindung zwischen Peripheriegerät und Host Host-gesteuert Plug-and-play Stromversorgung für Peripheriegeräte möglich verschiedene Geschwindigkeiten TU Dresden, 21.5.2015 USB-Stack Folie 4 von 16

02 Motivation USB für Anwender einfach zu nutzen vielseitig einsetzbar USB kompliziert/komplex für Geräte-Entwickler jeder Hersteller mit eigenem Beispielcode viel selbst zu implementieren TU Dresden, 21.5.2015 USB-Stack Folie 5 von 16

03 Funktionsweise USB Host Gerät Funktionsschicht Client-Software logische Pipes Funktion Nutzdaten Nutzdaten Geräteschicht USB-System- Software Standard Control-Pipe logisches Gerät USB-Frames USB-Frames Schnittstellenschicht USB-Host- Controller physische Verbindung USB-Bus- Schnittstelle Abbildung: Überblick über Datenfluss

Deskriptoren endpoint interface endpoint... configuration interface endpoint endpoint...... endpoint device endpoint interface... interface endpoint Abbildung: Hierarchie der Standard-Deskriptoren

04 Ziele einfache und schnelle Erstellung von Firmware Deskriptoren Datenübertragung zur Verwendung wenig Wissen über USB notwendig mit geringem Aufwand auf andere Hardware portierbar objektorientiert mit C++ TU Dresden, 21.5.2015 USB-Stack Folie 8 von 16

05 Realisierung Funktionsschicht sonstige Control-Transfers Datenübertragung Geräteschicht Geräte-Stack Deskriptoren Schnittstellenschicht Hardware Abbildung: Übersicht über Schnittstellen des Stacks TU Dresden, 21.5.2015 USB-Stack Folie 9 von 16

Klassendiagramm Klassen, die weitere USB-Requests bearbeiten abstrakte Klasse des USB-Stacks <<interface>> RequestInterface 0..* 1 UsbDevice 1 1 Device-Deskriptor; Zugriff auf Stringandere Standard-, und sonstige Deskriptoren Deskriptoren, die durch Nicht-Standard- Deskriptoren erweiterbar sind UsbDeviceHw 1 DescriptorAccess 1 1 1 1 Nicht- Standard- Deskriptoren 1 Descriptor plattformspezifische Implementierung der Hardware-Schnittstelle 0..* StringDescriptor 0..* 0..* GeneralDescriptor 1..* <<create>> Configuration 1 1..* Interface 1 1 0..* 1..* Endpoint Abbildung: Vereinfachtes Klassendiagramm

Nutzung des Stacks TU Dresden, 21.5.2015 USB-Stack Folie 11 von 16

06 Ergebnisse MCU: 1024 Byte; PC: 1024 Byte MCU: 1024 Byte; PC: 64 Byte MCU: 64 Byte; PC: 1024 Byte MCU: 64 Byte; PC: 64 Byte 1,200 theoretisch maximal erreichbare Übertragungsrate 1,000 Senden / kbyte/s 800 600 400 200 0 Linux- USB-2.0- Linux- USB-3.0- Windows- USB-3.0- Linux- USB-2.0- Linux- USB-3.0- Windows- USB-3.0- STM32F1 STM32F4 Abbildung: Durchschnittliche Übertragungsraten mit bulk-transfers

Übertragungsraten - Empfangen STM: 1024 Byte; PC: 1024 Byte STM: 1024 Byte; PC: 64 Byte STM: 64 Byte; PC: 1024 Byte MCU: 64 Byte; PC: 64 Byte 1,200 theoretisch maximal erreichbare Übertragungsrate 1,000 Empfangen / kbyte/s 800 600 400 200 0 Linux- USB-2.0- Linux- USB-3.0- Windows- USB-3.0- Linux- USB-2.0- Linux- USB-3.0- Windows- USB-3.0- STM32F1 STM32F4 Abbildung: Durchschnittliche Übertragungsraten mit bulk-transfers

Speicher STM32F1 STM32F4 generischer Stack 3506 3554 HW-Implementierung 2120 2014 5830 5772 Tabelle: Übersicht über den benötigten Flash STM32F1 STM32F4 Heap 704 624 Stack 302 288 1006 912 Tabelle: Übersicht über den benötigten RAM TU Dresden, 21.5.2015 USB-Stack Folie 14 von 16

07 Fazit automatische Enumeration control-/bulk-/interrupt-transfers einfache Datenübertragung Erstellen beliebiger Deskriptoren + selbstständige Übertragung im Prinzip volle Geschwindigkeit von Full-Speed-USB nutzbar relativ geringer Speicherbedarf einfach erweiterbar TU Dresden, 21.5.2015 USB-Stack Folie 15 von 16

08 Ausblick vollständige Unterstützung von Schnittstellen Implementierung von isochronen Transfers weitere Vereinfachung der Erzeugung der Deskriptoren weitere Möglichkeiten der Steuerung der Datenübertragung Implementierung von USB-Klassen ierung auf weitere Mikrocontroller noch fehlende USB-2.0-Unterstützung TU Dresden, 21.5.2015 USB-Stack Folie 16 von 16

Heap Erzeugung der Objekte auf Erzeugung von nähere Beschreibung Heap Stack Endpunkt Endpunkt selbst 48 0 Schnittstelle Schnittstelle selbst 48 0 je zugeordnetem Endpunkt 4 4 Konfiguration Konfiguration selbst 48 0 Array für Gesamtkonfiguration; Standardgröße 128 128 je zugeordneter Schnittstelle 4 4 DescriptorAccess DescriptorAccess selbst 80 16 automatisch erzeugter Endpunkt 0 48 48 je zugeordneter Konfiguration 4 4 StringDescriptor Beispiel für String der Länge 10 48 32 Listeneintrag in DescriptorAccess 16 16 GeneralDescriptor GeneralDescriptor selbst 16 0 Listeneintrag in DescriptorAccess 32 32 Zuordnung zu Endpunkt/Schnittstelle/Konfiguration 4 4 USB-Stack bei Verwendung des STM32F1 400 304 bei Verwendung des STM32F4 336 224 Tabelle: Übersicht über den benötigten Heap; alle Werte in Byte TU Dresden, 21.5.2015 USB-Stack Folie 16 von 16