Bildverarbeitung im Qseven-Format |
|||||||
Kombination aus ARM und DSP macht Computermodul fit für schnelle Bildverarbeitung |
|||||||
|
Standardisierte Embedded-Module ermöglichen die schnelle und kostenoptimierte Entwicklung von Embedded-Rechnern. Die ARM- Architektur erweitert den Einsatzhorizont der Computermodule auf Anwendungen, die mit stromsparenden x86-Systemen bisher nicht darstellbar waren. Zu solchen Anwendungen gehört die Bildverarbeitung. Eine Kombination aus ARM-Prozessor und DSP wie auf dem C6A8168 von Texas Instruments macht‘s möglich. |
|||||||
|
Die wachsende Leistungsfähigkeit und die Kostenoptimierung von Embedded-Modulen und Embedded-Prozessoren ermöglichen die Realisierung anspruchsvoller Bildverarbeitungsapplikationen in den Bereichen industrielle Automatisierung, Medizin und Transportation & Automotive. Interessant sind diese Anwendungen allemal. Denn der deutsche Markt für Bildverarbeitungssysteme steht laut Prognosen des VDMA vor einem neuen Rekord. Im vergangen Jahr Format soll der Umsatz um mindestens 20 Prozent auf gut 1,5 Milliarden Euro gestiegen sein. Nach VDMA-Informationen entfällt der Löwenanteil auf die Qualitätsinspektion in der industriellen Fertigung mit den Automobilherstellern und -zulieferern als Hauptabnehmer. Die Vielseitigkeit der Bildverarbeitungsbranche zeigt sich jedoch auch in neuen Anwendungsgebieten wie Landwirtschaft, Verkehrsüberwachung, Sicherheitstechnik und im Einzelhandel. | ![]() |
||||||
|
Die Entwicklung von Bildverarbeitungslösungen ist jedoch aufwendig: Die Komplexität der Systeme bedingt lange Design-Zeiten, umfangreiche Entwicklungsumgebungen und spezielle Anforderungen an die Stabilität und Qualität der Anwendung. Eine Möglichkeit zur Reduzierung der Design-Zeiten und des Design-Risikos eines kompletten Systems ist der Einsatz eines Computer On Module (COM). Diese Module konzentrieren die Standard-PC-Funktionalität auf ein Prozessormodul und die anwendungsspezifischen Funktionen auf ein speziell entwickeltes Baseboard. Das Modul wird einfach über einen gängigen Standardstecker auf das Board gesteckt. Die kompakten Embedded-Baugruppen werden in der Regel in unterschiedlichen Varianten mit skalierbarer Prozessorleistung angeboten, die ein leichtes Upgrade zu höherer Performance ermöglichen. Ebenso kann ein in einer Anwendung eingesetztes Modul durch eine aktuellere Baugruppe, z.B. mit optimierten Power- Management-Funktionen, ausgetauscht werden, um den Leistungsverbrauch zu minimieren. |
|||||||
OpenCV: Open-Source-Bibliothek für die Bildverarbeitung |
|||||||
|
Eine weitere Möglichkeit, um komplexe Designs in den Griff zu bekommen, ist die Verwendung und Portierung bereits bewährter PC-Software-Pakete auf eine Embedded-Plattform. Ein Beispiel dafür ist die speziell für Bildverarbeitungsanwendungen ausgelegte Software OpenCV. OpenCV (Open Computer Vision) ist eine frei zugängliche, quelloffene Programmbibliothek für die Programmiersprachen C++ und C, die kostenfrei unter der BSD-Lizenz sowohl für die akademische Nutzung als auch für kommerzielle Verwendungen zugänglich ist. Die Bibliothek umfasst Hunderte von Algorithmen für die Identifikation, Erkennung und Zerlegung von Objekten sowie für „automatisches Sehen“ im Sinne von Gesichts- und Gestenerkennung. Ebenso sind Algorithmen zur Bewegungsverfolgung mittels Kamera und zur Analyse von Bewegungen vorhanden. 3D-Funktionen und die Filter Sobel, Canny und Gauß sind in OpenCV ebenso enthalten wie Funktionen für die Kalibrierung von Kameras. |
|||||||
|
Um eine High-Level-Software wie OpenCV in ein Embedded-Prozessorsystem zu integrieren, muss die komplette System-on-Chip-Lösung betrachtet und optimiert werden. Für die Abarbeitung von Bildverarbeitungsalgorithmen sind digitale Signalprozessoren (DSPs) besonders geeignet, gerade wenn der Prozessor nicht über einen Floating-Point-Befehlssatz verfügt. Durch die Übernahme dieser Aufgaben kann der DSP die CPU wesentlich entlasten. Heute steht OpenCV nicht nur für die x86- und ARM/RISC-Prozessorarchitektur zur Verfügung, Texas Instruments (TI) hat die Bibliothek jetzt auch auf ihre DSP-Familie C6000 portiert. Einen ARM-Prozessorkern und einen TI-DSP integriert MSC jetzt auf ihrem gerade vorgestellten Qseven-Modul MSC Q7-TI8168 im kompakten Bauformat von 70 × 70 mm (Bild 1). Die Baugruppe nutzt den Integra-Prozessor C6A8168 von Texas Instruments. Der Baustein integriert als Prozessoreinheit einen ARM-Cortex-A8 mit bis zu 3000 DMIPS, der mit bis zu 1,5 GHz getaktet wird, und einen DSP C674x. Der DSP hat eine Rechenleistung von 10 GMACS/7,2 GFLOPS bei 1,25 GHz, unterstützt 32/64 bit Single/Double Precision Floating Point und ist speziell für die anspruchsvolle Daten- und Bildanalyse in Echtzeit ausgelegt. Die Aufgaben wachsen mit der verbesserten Auflösung der Kameras und der Frame-Raten sowie der immer schneller werdenden Datenübertragung. Darüber hinaus muss nicht mehr, wie in der Vergangenheit, die Software sehr spezifisch entwickelt und speziell auf den Prozessorkern angepasst werden. |
|||||||
|
Die in der CPU integrierte ARM-Grafik-Engine „Neon“ unterstützt Video- und Sprachverarbeitung mit entsprechenden Audio Codes und Frameworks. Mit dem Tool C6000 EZ bietet TI eine umfassende Software-Entwicklungsumgebung für den Integra-Prozessor an. Es ist möglich, den DSP-Kern aus einer Linux-Applikationen heraus zu nutzen. Damit sind Linux-Programmierer, die nicht tief in die DSP-Programmierung einsteigen wollen, in der Lage, ohne großen Aufwand den zusätzlichen DSP Core zu verwenden. C6EZRun führt die Code-Portierung durch, um Teile der Applikation statt auf dem ARM-Prozessor auf dem DSP laufen zu lassen. Der ARM-Prozessor wird somit entlastet. Das Tool C6Accel beschleunigt Signalverarbeitungsaufgaben durch DSP-optimierte Algorithmen (APIs). Dem Anwender stehen insgesamt über 130 Signalverarbeitungs- und Imaging-Bibliothekelemente wie Open GL ES oder 2D-Grafik frei zur Verfügung. |
|||||||
Umfangreiche Peripherie |
|||||||
|
Neben dem ARM-Prozessorkern und dem DSP sind auf dem Integra-C6A8168-Prozessor ein 32 KB großer L1 Data Cache/RAM, 32 KB L2 In- struction Cache/RAM und 256 KB L2 Cache/RAM vorhanden. Das Qseven-Modul MSC Q7-TI8168 ist mit einem schnellen DDR3-1600-Speicher mit einer Kapazität von 1 GB und einem 2 GB großen NAND-Flash-Speicher bestückt. An Standardschnittstellen sind vorhanden: ein PCI-Express-Kanal, ein Gbit/s Ethernet Interface, Single Channel LVDS und eine HDMI/ DVI-1.3-Schnittstelle, beide mit bis zu 1920 × 1200 Pixel Auflösung. Zusätzlich sind fünf USB 2.0 Hosts und ein USB 2.0 Client integriert sowie eine I2C-, ein AC97-Audio- und eine SPI-Schnittstelle. Der Anschluss einer Speicherkarte ist über die SD/SDIO Interface möglich. Die Anwenderdaten können auch über zwei SATA-II-Kanäle gespeichert werden.
Um die Funktionen auf dem Baseboard zusätzlich erweitern zu können, ist ein MiniPCI-Express-Steckplatz vorhanden, z.B. für ein Wireless-Modul. Über den mSATA-Steckplatz lässt sich eine Flash-Speicherkarte mit SATA- Interface einstecken. Vom Kunden universell konfigurierbar ist die Plattform auch über den integrierten Steckplatz für MMC/SD-Karten. |
|||||||
|
Das 148 × 102 mm² kleine Mainboard führt eine breite Palette an Schnittstellen nach außen: Dual Gbit/s Ethernet, fünf USB 2.0 Ports (vier extern), RS-232 (Pin Header), AC97 Audio und SATA. Über einen speziellen Pin Header stehen zusätzlich CAN-Signale zur Verfügung. Darüber hinaus ist ein ARM RS-232 Debug Port zur Linux-Software-Entwicklung vorhanden. Industrie-Displays können über den DVI-Stecker und die LVDS-Schnittstelle direkt via JILI30- Steckverbinder angeschlossen werden. Zusätzlich integriert die Plattform einen Controller zum Anschluss eines resistiven Touchscreens und unterstützt den Anschluss der Hinterleuchtung. |
|||||||
|
Heute hat sich für viele Embedded-Modul-Anwendungen der Standard Qseven mit seinen 70 × 70 mm² durchgesetzt. Mit der neuen Qseven-Spezifikation 1.20 wird neben unterschiedlichen x86-Prozessoren auch die ARM/RISC-Architektur unterstützt. MSC hat als einer der ersten Anbieter bereits vor Monaten das Qseven-Modul Q7-NT2 mit dem Low-Power-Prozessor Tegra 290 von NVidia vorgestellt. Hier arbeitet ein Dual-Core-Prozessor ARM Cortex-A9. Die kompakte Baugruppe verbraucht nur 5 W (typisch) und ist für den erweiterten Umgebungstemperaturbereich von –40 bis +85 °C spezifiziert. (jk) |
|||||||
|
|||||||



Für Kunden, die kein
eigenes Baseboard entwickeln wollen, bietet MSC das Baseboard MSC Q7-MB-EP4 an
(Bild 2). Es lässt sich direkt in Produktionsserien einsetzen und erspart den
Kunden ein eigenes Design. Das Qseven-Modul wird über eine MXM-Steckverbindung
auf das Baseboard gesteckt. Dies erleichtert ein System-Design mit direkter
Anbindung des Kühlkörpers an das Gehäuse und sorgt für eine optimale passive
Kühlung. Dank des implementierten Direct Digital Interface (DDI) gehen die
digitalen Videosignale des Moduls unmittelbar auf den DVI-Stecker.