UNIVERZITA PARDUBICE FAKULTA ELEKTROTECHNIKY A INFORMATIKY. 2009 Martin Lauterbach



Podobné dokumenty
Metody připojování periferií

Rozhraní USB. Rozhraní USB. Specifikace USB. Doplnění (upřesnění) 1.0. Rychlosti Low Speed (1.5 Mb/sec) a Full Speed (12 Mb/sec).

IPZ laboratoře. Analýza komunikace na sběrnici USB L305. Cvičící: Straka Martin, Šimek Václav, Kaštil Jan. Cvičení 2

Obsah ZÁKLADNÍ DESKA. O autorech 11 Úvod 13

Sériové komunikace KIV/PD Přenos dat Martin Šimek

Metody připojování periferií

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Externí zařízení. Uživatelská příručka

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

KOAGULAČNÍ PROCESY PŘI ÚPRAVĚ POVRCHOVÉ VODY

Uživatelská příručka

UNIVERZITA PARDUBICE FAKULTA FILOZOFICKÁ

USB Dokovací stanice. Uživatelský manuál

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

Univerzita Pardubice Fakulta ekonomicko-správní. Hodnocení použitelnosti webových geografických informačních systémů. Bc.

Seznámení s Quidy. vstupní a výstupní moduly řízené z PC. 2. srpna 2007 w w w. p a p o u c h. c o m

Videosekvence. vznik, úpravy, konverze formátů, zachytávání videa...

Počítač jako elektronické, Číslicové zařízení

Zprovoznění kitu Xilinx Spartan-6 FPGA Industrial Video Processing Kit

PK Design. Uživatelský manuál. Modul USB-FT245BM v2.2. Přídavný modul modulárního vývojového systému MVS. Verze dokumentu 1.0 (7. 11.

Studium migrace látek z UV zářením vytvrzovaných systémů UV/VIS spektroskopií a kapalinovou/plynovou chromatografií.

PK Design. Modul USB2xxR-MLW20 v1.0. Uživatelský manuál. Přídavný modul modulárního vývojového systému MVS. Verze dokumentu 1.0 (05.04.

Kapitola 1: Úvod. 1.1 Obsah balení. 1.2 Požadavky na systém. Česky

MI Video rozhraní pro vozidla Renault. Přepínání mezi jednotlivými vstupy a ovládání přehrávání

Profilová část maturitní zkoušky 2014/2015

Externí zařízení. Uživatelská příručka

Ostatní přídavné / rozšiřující karty

Externí za ízení. Číslo dokumentu: Tato příručka popisuje použití volitelných externích zařízení. Kv ten 2006

Stylový společník, který nabízí pokročilou grafiku i zabezpečení. Oficiální webové stránky VAIO Europe

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

SEMESTRÁLNÍ PROJEKT Y38PRO

Distribuované systémy a počítačové sítě

Metody připojování periferií

Univerzita Pardubice Dopraví fakulta Jana Pernera

Domovní videotelefon PM-473M

SADA VY_32_INOVACE_PP1

Fakulta informačních technologií VUT v Brně Ústav počítačových systémů Periferní zařízení, cvičení IPZ Analýza komunikace na sběrnici USB

Prostředí pro výuku vývoje PCI ovladačů do operačního systému GNU/Linux

Závěrečná zpráva o výsledcích řešení projektu v rámci rozvojových program MŠMT na rok 2006

Měřicí systémy. Obsah. Systémy složené z autonomních měřicích přístrojů a modulů Sériová rozhraní. Sériová rozhraní - pokračování 1

Universal Serial Bus. Téma 12: USB. Komunikační principy Enumerace Standardní třídy zařízení

Profilová část maturitní zkoušky 2013/2014

UNIVERZITA PARDUBICE Směrnice č. 13/2007 ve znění dodatku č. 1 Pravidla pro zveřejňování závěrečných prací a jejich základní jednotnou formální úpravu

Externí zařízení. Uživatelská příručka

Co je to počítač? Počítač je stroj pro zpracování informací Jaké jsou základní části počítače? Monitor, počítač (CASE), klávesnice, myš

Uživatelská příručka

Externí zařízení Uživatelská příručka

AGP - Accelerated Graphics Port

Profilová část maturitní zkoušky 2015/2016

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

USB485EG. Převodník USB/RS485,422 s galvanickým oddělením. Popis

Uživatelská příručka TG-3269/ TG Adaptér pro Gigabit Ethernet s rozhraním PCI. Rev:

Externí za ízení. Číslo dokumentu: Tato příručka popisuje použití volitelných externích zařízení. Leden 2007

NÁVOD K OBSLUZE. Obj. č.: Zkrácený návod k obsluze

Hlavní rysy technologie

TVC - laboratorní práce

VirtualBox desktopová virtualizace. Zdeněk Merta

Digitální učební materiály ve škole, registrační číslo projektu CZ.1.07/1.5.00/

TESTOVÁNÍ UŽIVATELSKÉHO ROZHRANÍ VIDEO PŘEHRÁVAČE VLC

Digitální (počítačová) kamera s mikrofonem AIPTEK PENCAM VOICE II

Profilová část maturitní zkoušky 2017/2018

Programovací software ConfigTool. Základní obsluha a postup připojení k zařízení přes USB a GPRS. Verze 2.00

PORTY ZLÍNSKÝ KRAJ. Obchodní akademie, Vyšší odborná škola a Jazyková škola s právem státní jazykové zkoušky Uherské Hradiště

Konektory a Kabely. Aneb zařízení integrovaná do základní desky a konektory a kabeláž pro připojení externích zařízení

WinFast TV2000 XP HARDWARE GUIDE. Obsah

PU051 Sweex 4 Port USB 2.0 & 2 Port Firewire PCI Card. Pokud by některá z výše uvedených částí chyběla, obraťte se na svého dodavatele.

Synchronizace zpráv (rámců) z MEMs systémů na CAN sběrnici

Rozhraní c.logic. mi107new. umožňuje připojení 3 zdrojů AV signálu k navigačním systémům Porsche PCM 3.0 a 3.1

Bakalářská práce Realizace jednoduchého uzlu RS485 s protokolem MODBUS

Obsah. Úvod 15. Vše potřebné o psaní a plánování 27. Oddíl I Preprodukce

pouˇzití USB nebo SPI

TUR A2 Vojtěch Kessler

USB. Universal Serial Bus. revize 2.0 z 27.dubna 200

českém Úvod Obsah balení Technické údaje PU002 Sweex 2 Port Serial PCI Card

PŘÍLOHY. PRESTO USB programátor

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

českém Úvod Obsah balení Technické údaje PU052 Sweex 2 Port USB 2.0 & 2 Port FireWire PC Card

Vzdálené řízení modelu připojeného k programovatelnému automatu

Copyright 2006 Hewlett-Packard Development Company, L.P.

Shrnutí Obecné Operační systém Microsoft Windows 7 Ultimate Centrální procesor

Uživatelský a instalační manuál PC-D249-2

Firmware USBasp pro modul AVRUSB. Milan Horkel. Parametr Hodnota Poznámka. Rozhraní USB Low Speed. Procesor ATmega8 ATmega88 Varianty překladu

2.2 Acronis True Image 19

IntraVUE Co je nového

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

PCMCIA(Personal Computer Memory Card PCMCIA (3) PCMCIA (2) PCMCIA (4)

Sbě b r ě n r i n ce

Základní informace. Operační systém (OS)

Externí za ízení. Číslo dokumentu: Tato příručka popisuje použití volitelných externích zařízení. B ezen 2006

I306, I307, CONV manuál PŘÍMÉ SPOJENÍ. Manuál I306, I306USB, I307USB CONV-1, CONV-2 CONV-3USB, CONV-4USB

TÉMATICKÝ OKRUH Softwarové inženýrství

Metody připojování periferií BI-MPP Přednáška 1

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

MI1308 Video rozhraní pro vozidla Volvo s displejem 5

Chytrý osobní laptop s rychlým procesorem Intel, 4GB pamětí RAM a grafikou ATI. Oficiální webové stránky VAIO Europe

5. Čtení/zápis sektorů z/do USB paměťového média I

Vývoj programů. ÚVOD DO OPERAČNÍCH SYSTÉMŮ

TMU. USB teploměr. teploměr s rozhraním USB. měření teplot od -55 C do +125 C. 26. května 2006 w w w. p a p o u c h. c o m

Ten nejlepší zážitek z vysokého rozlišení. Vlajková loď mezi zábavními notebooky s Full HD a jednotkou Bluray Disc Combo

Váš stylový multimediální společník v karamelově smetanovém provedení. Oficiální webové stránky VAIO Europe

Transkript:

UNIVERZITA PARDUBICE FAKULTA ELEKTROTECHNIKY A INFORMATIKY BAKALÁŘSKÁ PRÁCE 2009 Martin Lauterbach

Univerzita Pardubice Fakulta elektrotechniky a informatiky Ovladač pro USB videokameru pro operační systém Linux Autor práce: Martin Lauterbach Vedoucí práce: Ing. Martin Hájek Bakalářská práce 2009

Prohlašuji: Tuto práci jsem vypracoval samostatně. Veškeré literární prameny a informace, které jsem v práci využil, jsou uvedeny v seznamu použité literatury. Byl jsem seznámen s tím, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorský zákon, zejména se skutečností, že Univerzita Pardubice má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle 60 odst. 1 autorského zákona, a s tím, že pokud dojde k užití této práce mnou nebo bude poskytnuta licence o užití jinému subjektu, je Univerzita Pardubice oprávněna ode mne požadovat přiměřený příspěvek na úhradu nákladů, které na vytvoření díla vynaložila, a to podle okolností až do jejich skutečné výše. Souhlasím s prezenčním zpřístupněním své práce v Univerzitní knihovně. V Kutné Hoře dne 13. srpna 2009 Martin Lauterbach

Poděkování: Tímto bych rád poděkoval vedoucímu práce panu Ing. Martinu Hájkovi za odborné vedení a rady v průběhu práce. Dále bych chtěl poděkovat firmě Steinel Technik, která iniciovala vytvoření této práce a umožnila mi její zpracování. Také mi umožnila podílet se na vývoji celého zařízení a získat tak cenné zkušenosti.

Souhrn Tato bakalářská práce se zabývá tvorbou ovladače pro USB videokameru pro operační systém Linux. Popisuje možnosti operačního systému Linux a využití zpětného inženýrství při tvorbě tohoto ovladače. Klíčová slova ovladač, Linux, USB, video, izochronní přenos, obrazový senzor, V4L Abstract This bachelor thesis describes the development of driver for USB video camera for the Linux operating system. Describes the possibility of using Linux and reverse engineering to create this driver. Keywords driver, Linux, USB, video, isochronous transport, image sensor, V4L

Obsah 1 Úvod 7 2 Operační systém Linux 8 2.1 POSIX................................... 9 2.2 Licence GPL................................ 9 2.3 Programování jádra............................ 9 2.3.1 Uživatelský režim......................... 10 2.3.2 Režim jádra............................ 10 2.3.3 Systémová volání......................... 10 3 Sběrnice USB 11 3.1 Topologie sběrnice............................ 11 3.2 Rychlosti přenosu dat........................... 12 3.3 Přenosy přes USB............................. 14 3.4 USB zařízení............................... 15 3.4.1 Koncové body........................... 16 3.4.2 Rozhraní a konfigurace...................... 16 3.4.3 Třídy a podtřídy USB zařízení.................. 17 3.5 Rozbočovače................................ 18 3.6 Třída USB Still Image Class....................... 18 3.7 Třída USB Video Class.......................... 19 4 Ovladače v Linuxu 20 4.1 Znaková a bloková zařízení........................ 20 4.2 Ladící zprávy............................... 21 1

9.1.3 Funkce sd config() Další důležitou funkcí pro GSPCA je sd_config. Zde se nastavují parametry USB přenosu. Pokud je bulk_size rovno nule použije se izochronní přenos. static int sd_config(struct gspca_dev *gspca_dev, const struct usb_device_id *id) { struct cam *cam; cam = &gspca_dev->cam; cam->epaddr = 0x81; cam->cam_mode = vga_mode; cam->nmodes = ARRAY_SIZE(vga_mode); cam->bulk_size = 0; cam->bulk_nurbs = 0; } return 0; 9.2 Přehrávání videa z kamery Díky rozhraní V4L se ovladač určitým způsobem standardizoval a je možné kameru používat nejen jednoúčelově se softwarem na rozpoznávání osob, ale lze ji použít jako jakoukoliv jinou webkameru fungující v Linuxu. 9.2.1 Program MPlayer Program MPlayer [3] je filmový přehrávač pro Linux (spustitelný na mnoha platformách a CPU architekturách). Přehraje většinu multimediálních souborů s podporou mnoha nativních i binárních kodeků. MPlayer podporuje velké množství výstupních audio a video rozhraní. Využívat je možné X11 nebo lze přehráva pouze s pomocí frame bufferu. 56

9.2.2 Využití MPlayeru pro webkameru MPlayer lze použít i pro přehrávání ze zařízení na zachytávání videa (s rozhraním v4l2). Nastavení se provede volbou -tv s patřičnými parametry. Přehrát video z kamery je pak možné příkazem mplayer -tv driver=v4l2:device=/dev/video tv://. Tohoto způsobu bylo použito pro otestování dlouhodobé stability v cílovém zařízení než bylo možné využít uživatelskou knihovnu s dalším softwarem na zpracování obrazu. Pro přehrávání pomocí MPlayeru s tímto ovladačem není potřeba uživatelská knihovna. 57

Kapitola 10 Závěr Úkolem této bakalářské práce bylo vytvoření linuxového ovladače webkamery, kterou tvoří vývojový kit od společnosti Omnivision. Kamera založená na kitu má být součástí inteligentního senzoru pro rozpoznávaní osob a mimo jiné třeba případnému určení jejich počtu v místnosti. Ovladač se podařilo vytvořit k dostačující funkci zařízení, ale v některých místech muselo dojít ke kompromisu. Snaha byla o monochromatický výstupní obraz bez komprese s hloubkou 10 bitů, kterého by mělo jít dosáhnout podle specifikací použitých integrovaných obvodů. Největším problémem při tvorbě ovladače byl nedostatek informací o kitu kamery Omnivision. Bylo nutné zkoumat velké množství dat získaných pod operačním systémem Windows a následně testovat různé konfigurace v ovladači v Linuxu. Výchozím bodem pro ovladač kamery Omnivision byl ovladač pro některé kamery s čipem OV534, který již byl součástí jádra. Čipy OV534 a OV538 jsou velmi podobné, ale nevýhodou byla konfigurace a programový kód uložený v paměti EEPROM kamerového kitu. Tím bylo značně změněno rozhraní kitu na sběrnici USB. Nepodařilo se úplně dosáhnout požadované konfigurace videokamery s ohledem na formát video dat a je nutné spokojit se s formátem YUYV o hloubce 8 bitů. Tento formát trochu postrádá smysl, když je kamera osazena monochromatickým senzorem, a je vhodný spíš při použití barevného senzoru. Výsledný obraz i tak plně vyhovuje a je možné ho použít pro další zpracování. 58

Díky tomuto formátu je přenášeno dvojnásobné množství dat na jeden snímek, ale to nezpůsobuje potíže. Po příjetí snímku je jen nutné ho přetransformovat na monochromatický. Vytížení systému touto transformací, která zde spočívá ve vynechání každého druhého bajtu obrazové informace, je zanedbatelné. Jako první bylo vytvořeno rozhraní ovladače podle vlastního návrhu. Tento postup vypadal snadnější a nevyžadoval znalost sytému v4l. Druhou výhodou v tomto případě bylo to, že byl ze začátku neznámý formát obrazu, který se podařilo z kamery získat. Testováním různých způsobů zobrazení získaných obrazových dat byl určen jejich formát (YUYV). Při dalším testování ovladače na cílovém zařízení, kde nebyl software MATLAB, použitý v prvním případě k zobrazení dat, byla snaha ovladač více standardizovat a byl upraven na rozhraní V4L2. Tímto krokem se vylepšilo i dynamické vytvoření souboru zařízení při připojení kamery za běhu systému a bylo možné využít k přehrávání videa při testování program MPlayer. V konečné fázi, když byl celý inteligentní senzor sestaven, se objevily velké problémy se stabilitou systému. Bud docházelo k problémům při čtení obrazu nebo celý systém zatuhl. Prvním problémem se ukázala vzrůstající teplota systému. Vysoké teplotě se zamezilo namontováním větráčku do zařízení. Problémy se stabilitou setrvaly a v podezření z nestability byl ovladač. Při testování docházelo v systému k odpojení a připojení USB zařízení kamery, přestože byla stále fyzicky připojena. V samotném ovladači se problém nepodařilo odstranit a vypadalo, že může být někde na úrovni ovladače usb_core nebo na úrovni hardwaru. Při kompletaci zařízení byl nahrazen klasický USB kabel typu A-B, kterým se kamera připojovala, krátkým párem kroucených vodičů a dvěma vodiči pro napájení. Všechny tyto vodiče byly na obou stranách připájeny a konektory na zařízeních nevyužity. Ve snaze odstranit problémy se stabilitou, byly nahrazeny uvedené vodiče zpět USB kabelem A-B zapojeným do konektorů. V tomto zapojení bylo schopno zařízení pracovat desítky hodin bezchybně. Problém mohl být způsoben nevyhovující impedancí nebo chybějícím stíněním použitých vodičů. Připojení kamery k základnímu modulu je předmětem dalších úprav a testování. 59

Literatura [1] GNU General Public License, version 2. [online, cit. 1.8.2009]. URL http://www.gnu.org/licenses/gpl-2.0.html [2] HHD Software, USB Monitor. [program, cit. 5.8.2009]. URL http://www.hhdsoftware.com/products/home/usb-monitor.html [3] MPlayer manual page. [online, cit. 18.7.2009]. URL http://www.mplayerhq.hu/docs/man/cs/mplayer.1.html [4] OmniVision Serial Camera Control Bus, Functional Specification. [online, cit. 5.8.2009]. URL http://www.ovt.com/products/sccbspec_an_2_1.pdf [5] OV538 Advenced Information Datasheet. [online, cit. 28.7.2009]. URL http://www.yuanxinfeng.com/upload/ov538-b88.pdf [6] OV7720 Product Brief. [online, cit. 28.7.2009]. URL http://www.ovt.com/uploads/parts/ov7720_pb%20(1.11)_web.pdf [7] Overview of the V4L2 driver framework. [zdrojové kódy jádra Linuxu, soubor Documentation/video4linux/v4l2-framework.txt]. [8] Still Image Capture Device Definition 1.0. [online, cit. 5.8.2009]. URL http://www.usb.org/developers/devclass_docs/usb_still_img10. zip [9] Universal Serial Bus Specification Revision 2.0. [online,cit.28.7.2009]. URL http://www.usb.org/developers/docs/usb_20_052709.zip 60

[10] USB 2.0 - díl 2. [online, cit. 20.7.2009]. URL http://hw.cz/rozhrani/art1244-usb-2.0---dil-2.html [11] USB Device Class Definition for Video Devices, Revision 1.1. [online, cit. 5.8.2009]. URL http://www.usb.org/developers/devclass_docs/usb_video_class_ 1_1.zip [12] Corbet, J.: Linux Device Drivers. O Reilly Media, 2005, ISBN 0-596-00590-3. URL http://lwn.net/kernel/ldd3/ [13] Jelínek, L.: Jádro systému Linux. Praha: Computer Press, 2008, ISBN 978-80- 251-2084-2. [14] Richard Stones, N. M.: Beginning Linux Programming, Second Edition. United States: Wrox Press Ltd., 2001, ISBN 1-861002-97-1. [15] Schimek, M.: Video for Linux Two API Specification. [online, cit. 25.6.2009]. URL http://v4l2spec.bytesex.org/spec-single/v4l2.html [16] Tišnovský, P.: Universální sériová sběrnice (USB). [online, cit. 1.8.2009]. URL http://www.root.cz/clanky/universalni-seriova-sbernice-usb/ 61

Obsah CD Obsah přiloženého CD je následující: soubor bp.pdf - technická zpráva ve formátu PDF adresář tex - zdrojové soubory technické zprávy adresář driver1 - zdrojové soubory ovladače s vlastním rozhraním adresář driver2 - zdrojové soubory ovladače s rozhraním V4L2 adresář capture - zachycená komunikace s kamerou ve Windows 62