Entwicklung Embedded / Digitale Signalverarbeitung
Die Spezialisten, die im Umkreis des section5-Netzwerks tätig sind, besitzen eine reichhaltige Erfahrung betreffend Elektronik und Signalverarbeitung auf verschiedenen Plattformen, von einfachen diskreten Mikrocontroller-Entwicklungen über komplexe uClinux-Systeme bis zur Simulation und Implementierung von FPGA Designs (VHDL).
Einige unserer nonkommerziellen Projekte sind in unserem Tech Blog dokumentiert
Nebst der akademischen Basteleien wollen wir auch einige Schlüsselwörter zu Fachbereichen auflisten, in denen wir uns sehr sicher und gerne bewegen:
- Neu: Optisch aktives und hochzuverlässiges Tracken von speziell modulierten Lichtquellen (pat. pend.).
- Blackfin basierte Hardwaredesigns, high speed DSP (Bildverarbeitungs-Algorithmen)
- Digitale Signalverarbeitung auf FPGAs, Co-Simulation mit Software
- Embedded (uc)Linux Lösungen, Echtzeitanwendungen, Kernel-Treiber-Entwicklung
- 8051 (Cypress FX2, ...)
- MSP430 Stromspar-Anwendungen
- JTAG Debugging und Flash-Programmierungs-Lösungen (Blackfin, ARM, ZPU, custom)
Die nächste optimale Gelegenheit, über interessante Entwicklungen zu plaudern, ist die Embedded World 2012 in Nürnberg.
Wenn Sie Interesse an effektiven aber kostengünstigen Methoden zur VHDL-Enwicklung und Co-Simulation mit Software haben, seien Sie hiermit gerne zu einem informativen Überblick eingeladen (siehe 'Software Development and Debug Methods II' embedded world conference program).
Blackfin Entwicklungen
Die grossen Vorteile dieser Architektur sind ein komplexer Befehlssatz, aber sehr
gut lesbarer Assembler-Code, der eine parallele Abarbeitung in einem Takt-Zyklus
innerhalb der Pipeline erlaubt und einige spezifische Instruktionen zur Videoverarbeitung
und anderen DSP-Aufgaben bereitstellt. Die "System on a chip" Funktionalität des Blackfin
und seine Hybrid-Architektur küren diese CPU zu einem perfekten Motor für
embedded Systeme auf denen komplexere Betriebssysteme wie uClinux ausgeführt werden. Unserer Meinung nach bietet die DMA Funktionalität dieses Chips die beste Basis für schnelle Datenerfassung und -Verarbeitung und macht den Blackfin in diesem Bereich nahezu zum ungeschlagenen Spitzenreiter.
section5 hat 2004/2005 den Blackfin-Assembler für die GNU-Toolchain mitentwickelt und den ersten GNU JTAG Debugger für diese Architektur implementiert. Deshalb sind wir stolz, sagen zu dürfen: Wir kennen diesen Chip bis aufs Silizium!
Produkte und Dienstleistungen
ICEbear USB-JTAG Adapter
|
Features:
- USB 2.0 (1.1) Verbindung
- Flash-Programmierung von CFI, SPI basierten oder speziellen Flash-Bausteinen, geeignet für Produktion (s.u.)
- Unterstützung für Linux, Windows 2000/NT/XP (32 bit)
- Schnelle Downloads, typischerweise 120 kB/s bis 1 MB/s
- Zuverlässiges Timing/Signalintegrität
- Gut geeignet für Entwickler, die eigene Kernels
oder Kerneltreiber entwickeln. Debugger Support: GDB, Insight
Der ICEbear unterstützt zur Zeit keine Fehlersuche mit der VisualDSP
Software.
Mehr siehe ICEbear product page.
|

|
Der ICEbear unterstützt ebenfalls
Boundary Scan auf Blackfin and SHARC 21xxx Plattformen.
Anwendungen:
- Flash programmer (Durchsatz: typ. 50kB/s)
- Erstmalige Programmierung von CPLD oder FPGA (JTAG bitbanging,
SlaveSerial)
- Board Tests
Lösungen für Produktion
Basierend auf dem ICEbear JTAG adapter können wir eine Lösung für die automatische Produktion von Platinen anbieten,
die interessant wird, wenn Zeit eine Rolle spielt. Ein 'embedded' Linux PC mit Ethernet (100MBit) und zwei oder mehr USB ports kann mehrere Geräte simultan programmieren, siehe Bild unten. Weitere Programmiereinheiten können via USB hubs implementiert werden.
Ein In-Circuit-Tester oder Produktions-PC kommuniziert mit dem Embedded Linux PC per TCP/IP und fernprogrammiert so jede Board-Einheit. Die ICEbear-Adapter können auch direkt auf dem Produktions-PC laufen (Linux and Windows XP/2000 32 bit).
Alternativ kann ein USB-Port auf dem embedded PC zur automatischen Programmierung per USB-Memory-Stick verwendet werden.
Diese Lösung wird allgemein auf kundenspezifische Wünsche angepasst.
Insight: ein grafischer Debugger für Blackfin
Zum 1.0-Release der ICEbear Software, wurde der
Insight debugger auf den Blackfin adaptiert.
 |
Insight ist eine Variante des
GNU Debuggers (gdb) mit grafischer Oberfläche
und erweiterter Funktionalität für Remote-Debugging.
Die Entwicklung von Insight wird hauptsächlich von Red Hat Inc angetrieben - siehe Insight Homepage.
Übersicht der Funtktionalität:
- Quellcode- und Assembler- Debugging mit unterschiedlichen
Einzelschritt-Funktionen (Stepping), Haltepunkte (Breakpoint) per Mausklick und verschiedenen Anzeigemodi
- Unterschiedliche Fenster für Monitoring von Variablen
(local/global), Stack trace, Speicher- und Register-Inhalte, etc.
- Klassisches GDB command line interface mit
Script-Support
Insight ist für Embedded Targets besonders gut geeignet.
Im Rahmen der ICEbear-Software wird Insight sowohl für Windows als auch Linux mitgeliefert.
Siehe dazu Software Download page
Dokumentation zu Insight finden Sie unter Embedded
Developer Kit.
|
JTAG emulation library
JTAG ist eine gewichtige Technologie
betreffend Hardware-Tests und erstmalige Programmierung, wie auch zur Fehlersuche auf
der Hardware. section5 hat eine Bibliothek mit Funktionen zur sog.
in circuit emulation auf dem Blackfin entwickelt.
Mehr zur Funktionalität der Bibliothek
in dieser Präsentation.
Detaillierte Information zur Bibliothek: Documentation
libbfemu. Diese Dokumentation ist nicht immer auf dem letzten Stand,
die aktuelle Version findet sich in der ICEbear Software-Distribution.
uClinux
uClinux ist eine Linux-Variante für non-MMU Controller, die sich einer zunehmenden Popularität erfreut, insbesondere auf den Blackfin Serien. Mit uClinux wird es dank einer guten Etablierung typischer Komponenten und zugehöriger Treiber möglich, stromsparende Multimedia-Systeme in kurzer Zeit aufzubauen.
Mehr über die Blackfin-uClinux-Variante und Entwicklungswerkzeuge finden Sie auf http://blackfin.uclinux.org.
section5 ist vom Anfang an 'mit dabei' und bietet entsprechendes Kernel-Knowhow:
- Palette von Kernel-Treibern:
- Hochperformanter Video-Treiber (PPI, v4l2) für Kameras und Zeilensensoren
- Treiber für USB FIFOs
- FPGA Loader
- Diverse Realtime-SPI devices (FPGA, ADC, etc)
Entwicklung von Kerneltreibern für kundenspezifische Hardware
Unsere Entwicklung ist geprägt von Blackfin, aber auch anderen Plattformen wie XScale/Marvell, wir scheuen uns auch nicht vor anderen Chip-Architekturen (ARM, Freescale, MIPS).
netpp/DClib: Gerätesteuerung per XML
Die typische Aufgabe einer Gerätesteuerung: Viele schreiben Code und Dokumentation, wir schreiben (fast) nur XML. Weitere Details finden Sie in der netpp-Übersicht
Blackfin Kamera Referenzdesigns
Seit 2005 haben wir viele Kunden im Design von uClinux-basierenden Datenacquisitions-Systemen unterstützt - vom ersten Prototyp bis zur Marktreife. Insbesondere können wir damit ein Kamera-Framework mit folgendem Umfang/Beispielapplikationen anbieten:
- Schnelle Bildverarbeitung auf der Kamera unter uClinux (auch für Zeilenkameras)
- Bildverarbeitung in Echtzeit (garantierte Latenz)
- 2D bar code Lösung (Nicht OpenSource)
- Motion-JPEG video streaming (VGA @20 fps)
- Wireless 802.11 Datenübertragung/Video streaming
- Aktives Motion tracking
Update: Dieses Referenzdesign hat nun einen Namen: VisionKit
VHDL Design und Co-Simulation
Basierend auf der freien GHDL-Engine hat section5 einige Erweiterungen entwickelt, die die Kommunikation realer Software mit virtueller Hardware ermöglicht, und zwar derart, dass die Software gleichermassen mit der realen Hardware läuft.
Einige Beispielanwendungen:
- JTAG test access port (TAP) für verschiedene mit GDB unterstützte CPU(Soft core)-Architekturen
- SoC (System on Chip) FPGA design basierend auf ZPU-Soft-Core für dedizierte DSP-Operationen
- Virtuelles Silizium: Simulation von signalverarbeitender Hardware mit realer I/O stimulation und echten Messdaten
Eine Einführung findet sich in unserem FPGA blog.
Kundenspezifische Entwicklung
Da wir unsere eigene Toolchain entwickelt haben, kennen wir die Hardware wie unsere Hosentasche.
Deshalb liegt unsere Expertise im Finden von Fehlern, und zwar auch den ganz harten auf der untersten Ebene. Wenn Sie Blackfin-Plattformen entwickeln, können Sie folgende Hilfe erwarten:
- Verifizierung und Tests der Hardware (via Emulation or
Boundary Scan)
- Assistenz mit der Entwicklung der Produktionskette
(Datenbank-Interfaces, usw.)
- Linux Portierungen
- Treiberentwicklung für verschiedene Hardware (Flash,
I/O, FPGA/CPLD)
Wir haben eine gute Zusammenarbeit mit Modulentwicklern (siehe Partner), falls Sie
das Rad nicht neu erfinden wollen
. Auch können wir Ihnen diverse Entscheidungen unter Umständen leichter machen, wenn es um die Wahl der geeigneten Chips geht und die Lösung günstig, aber zukunftsstabil sein soll.
|