{"id":1659,"date":"2019-02-17T15:22:19","date_gmt":"2019-02-17T14:22:19","guid":{"rendered":"http:\/\/section5.ch\/?p=1659"},"modified":"2019-02-19T09:30:29","modified_gmt":"2019-02-19T08:30:29","slug":"lattice-vip-mjpeg-inbetriebnahme","status":"publish","type":"post","link":"https:\/\/section5.ch\/index.php\/2019\/02\/17\/lattice-vip-mjpeg-inbetriebnahme\/","title":{"rendered":"Lattice VIP MJPEG Inbetriebnahme"},"content":{"rendered":"<p>Das von Lattice Semiconductor zu einem Spezialpreis von 199 USD angebotene Entwicklungs-Kit (<a href=\"http:\/\/www.latticesemi.com\/en\/Products\/DevelopmentBoardsAndKits\/EmbeddedVisionDevelopmentKit\">Embedded Vision Development Kit<\/a>) oder auch VIP ist eine vollwertige Stereokamera f\u00fcr die Entwicklung von Standard-Vision-Anwendungen auf Basis der FPGA-Familie ECP5 und CrossLink von Lattice. Es bietet als optionale Erweiterung ein Zusatzboard mit GigE-f\u00e4higem Netzwerkstecker und USB 3.0 kompatiblen Cypress FX3 Chipsatz an.<\/p>\n<p>Der Bild-Erfassungs-Teil des VIP ist mit zwei Rolling-Shutter Sensoren IMX214 von Sony ausgestattet, deren Bilddaten \u00fcber einen ebenfalls von Lattice stammenden CrossLink-Baustein vom schwierig zu handhabenden MIPI-Interface in einen parallelen Video-Strom umgewandelt werden. Dabei gibt es unterschiedliche Firmware f\u00fcr den Crosslink:<\/p>\n<ol>\n<li>Stereo-Modus: Beide Sensorenbilder werden on-chip zusammengef\u00fcgt, die Fenstergr\u00f6sse halbiert<\/li>\n<li>Monokel-Modus: Nur die Bilddaten eines Sensors (CN2) werden weitergeleitet<\/li>\n<\/ol>\n<p>Die entsprechenden Bit-Files sind bei Lattice nach Registrierung zum Download verf\u00fcgbar [ <a href=\"http:\/\/www.latticesemi.com\/en\/Products\/DevelopmentBoardsAndKits\/EmbeddedVisionDevelopmentKit\">Link<\/a> ]<\/p>\n<h3>JPEG-Streaming<\/h3>\n<p>Genau wie beim \u00e4lteren Entwicklerkit <strong>HDR60 <\/strong>von Lattice ist auch hier eine Motion-JPEG-Demo-Firmware verf\u00fcgbar, welche auf der bew\u00e4hrten gstreamer-Referenzumgebung f\u00fcr den Empfang von Video mit niedriger Latenz basiert.<\/p>\n<p>Dazu wird zun\u00e4chst ein Script f\u00fcr den Empfang erstellt:<\/p>\n<pre>caps=\"application\/x-rtp, media=\\(string\\)video,\"\r\ncaps=\"$caps clock-rate=\\(int\\)90000,\"\r\ncaps=\"$caps encoding-name=\\(string\\)JPEG\"\r\n\r\ngst-launch-1.0 -v udpsrc \\\r\ncaps=\"$caps\" \\\r\nport=2020 \\\r\n! rtpjpegdepay \\\r\n! jpegdec \\\r\n! autovideosink<\/pre>\n<p>Beim Aufruf dieses Scripts unter Linux wie unter Windows startet gstreamer eine RTP-Empf\u00e4ngerpipeline und zeigt den Videostrom an, sobald dieser eintrifft. Dieser muss zun\u00e4chst am VIP konfiguriert werden<\/p>\n<h3>Anleitung<\/h3>\n<ol>\n<li>USB-Programmier-Kabel\u00a0 verbinden, Terminal-Programm konfigurieren: 115200 bps, 8N1<\/li>\n<li>Unter Linux mit \/dev\/ttyUSB1 verbinden<\/li>\n<li>Bit-File per Diamond-Programmer auf den Target laden<\/li>\n<li>Im Terminal die IP-Adresse des Empf\u00e4ngers konfigurieren:\n<pre>r 192.168.0.2<\/pre>\n<\/li>\n<li>ARP-Antwort abwarten:\n<pre># Got ARP reply: 44 ac de ad be ef<\/pre>\n<\/li>\n<li>JPEG-Video starten, z.b. in 1920&#215;1080 bei 12fps:\n<pre>j 4<\/pre>\n<\/li>\n<\/ol>\n<p>Falls der JPEG-Strom abreisst, ist daf\u00fcr meistens ein Engpass im Encoding daf\u00fcr verantwortlich. Da JPEG \u00fcber keine eingebaute Rate-Control verf\u00fcgt, kann in der Demo das System u.U. zum Stillstand gebracht werden, z.B. indem ein buntes Tuch vor die Kamera gehalten wird. Das detaillierte Muster ist in der Regel schlechter zu komprimieren und kann so eine Verstopfung im Datenfluss verursachen.<\/p>\n<p>Der JPEG-Encoder meldet diese Fehler unmittelbar und bricht in dieser Demo ab. Zu den detaillierten Fehlermeldungen konsultieren Sie bitte die <a href=\"\/index.php\/documentation\/jpeg-encoder-ip-modules-developer\/\">Dokumentation zum MJPEG Encoder.<\/a><\/p>\n<h3>Konfiguration der Sensor-Parameter<\/h3>\n<p>Per i2c-Bus k\u00f6nnen die angeschlossenen Sensoren konfiguriert werden. Dies geschieht \u00fcber das &#8216;i&#8217;-Kommando. Dessen Funktion ist von der Anzahl der Parameter abh\u00e4ngig:<\/p>\n<p># i2c-Bus scannen:<\/p>\n<pre>i<\/pre>\n<p># i2c-Register abfragen (Registerwerte hexadezimal):<\/p>\n<pre>i 100<\/pre>\n<p># i2c-Register setzen<\/p>\n<pre>i 100 1<\/pre>\n<p>Einige vereinfachte Kommandos zur Sensorenkonfiguration (auch hier alle Werte in Hexadezimalform):<\/p>\n<p>Funktion<\/p>\n<table>\n<tbody>\n<tr>\n<th>Kommando<\/th>\n<th><\/th>\n<\/tr>\n<tr>\n<td>se [Wert]<\/td>\n<td>Belichtungszeit<\/td>\n<\/tr>\n<tr>\n<td>sh [HDR_modus]<\/td>\n<td>Belichtungszeit<\/td>\n<\/tr>\n<tr>\n<td>sr [Gain]<\/td>\n<td>Verst\u00e4rkung (Gain) rot<\/td>\n<\/tr>\n<tr>\n<td>sg [Gain]<\/td>\n<td>Verst\u00e4rkung gr\u00fcn<\/td>\n<\/tr>\n<tr>\n<td>sb [Gain]<\/td>\n<td>Verst\u00e4rkung blau<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Probleme und L\u00f6sungen<\/h3>\n<ul>\n<li>Video startet nicht:\n<ol>\n<li>Fehlermeldungen an Konsole \u00fcberpr\u00fcfen<\/li>\n<li>\u00dcberpr\u00fcfen, ob orange LED am GigE-Board Aktivit\u00e4t anzeigt<\/li>\n<li>Wireshark zur Aufzeichnung der Aktivit\u00e4t am Netzwerk benutzen<\/li>\n<\/ol>\n<\/li>\n<li>Video startet, aber reisst ab:\n<ol>\n<li>Fehlerbits an Konsole \u00fcberpr\u00fcfen: [DEMUX], [FIFO], &#8230;<\/li>\n<li>Qualit\u00e4tswert vergr\u00f6ssern:\n<pre>q 30<\/pre>\n<\/li>\n<li>Netzwerkverkehr mit Wireshark und RTP-Parser \u00fcberpr\u00fcfen. Gehen Pakete verloren?<\/li>\n<li>Direktverbindung zwischen VIP und PC nutzen (kein zwischengeschalteter Router)<\/li>\n<\/ol>\n<\/li>\n<li>Video fehlerhaft:\n<ol>\n<li>Fehlerbits an Konsole \u00fcberpr\u00fcfen. DEMUX-Fehler d\u00fcrfen sporadisch (bis zu f\u00fcnf mal) auftreten, bevor der Video-Strom terminiert wird.<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das von Lattice Semiconductor zu einem Spezialpreis von 199 USD angebotene Entwicklungs-Kit (Embedded Vision Development Kit) oder auch VIP ist eine vollwertige Stereokamera f\u00fcr die Entwicklung von Standard-Vision-Anwendungen auf Basis der FPGA-Familie ECP5 und CrossLink von Lattice. Es bietet als optionale Erweiterung ein Zusatzboard mit GigE-f\u00e4higem Netzwerkstecker und USB 3.0 kompatiblen Cypress FX3 Chipsatz an. [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[75],"tags":[],"_links":{"self":[{"href":"https:\/\/section5.ch\/index.php\/wp-json\/wp\/v2\/posts\/1659"}],"collection":[{"href":"https:\/\/section5.ch\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/section5.ch\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/section5.ch\/index.php\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/section5.ch\/index.php\/wp-json\/wp\/v2\/comments?post=1659"}],"version-history":[{"count":11,"href":"https:\/\/section5.ch\/index.php\/wp-json\/wp\/v2\/posts\/1659\/revisions"}],"predecessor-version":[{"id":1672,"href":"https:\/\/section5.ch\/index.php\/wp-json\/wp\/v2\/posts\/1659\/revisions\/1672"}],"wp:attachment":[{"href":"https:\/\/section5.ch\/index.php\/wp-json\/wp\/v2\/media?parent=1659"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/section5.ch\/index.php\/wp-json\/wp\/v2\/categories?post=1659"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/section5.ch\/index.php\/wp-json\/wp\/v2\/tags?post=1659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}