ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

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

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

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).

Universal Serial Bus (USB)

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

České vysoké učení technické v Praze Fakulta elektrotechnická Katedra řídicí techniky. Diplomová práce

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

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

Vestavné systémy BI-VES Přednáška 5

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

Systém řízení sběrnice

Praktické úlohy- 2.oblast zaměření

UC485P. Převodník RS232 na RS485 nebo RS422. Průmyslové provedení s krytím

AD4RS. měřící převodník. 4x vstup pro měření unifikovaného signálu 0 10 V, 0 20 ma, 4 20 ma. komunikace linkami RS232 nebo RS485

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií

Uživatelský manuál. KNXgal. řízení zabezpečovacích ústředen. Galaxy ze sběrnice KNX. napájeno ze sběrnice KNX. indikace komunikace na KNX

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

UC485. Převodník linky RS232 na RS485 nebo RS422 s galvanickým oddělením

4x vstup pro měření unifikovaného signálu 0 10 V, 0 20 ma, 4 20 ma. komunikace linkami RS232 nebo RS485

UMS2. Sériový modul USB. Uživatelská příručka

FVZ K13138-TACR-V004-G-TRIGGER_BOX

RS , , RS 485, USB, GSM/GPRS

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Rozhraní SCSI. Rozhraní SCSI. Architektura SCSI

Uživatelský manuál. KNXgal

Seriové ATA, principy, vlastnosti

Uživatelský manuál. KNXgw232

Vrstvy periferních rozhraní

Uživatelský manuál. KNX232e / KNX232e1k

Principy komunikace s adaptéry periferních zařízení (PZ)

PROTOKOL RDS. Dotaz na stav stanice " STAV CNC Informace o stavu CNC a radiové stanice FORMÁT JEDNOTLIVÝCH ZPRÁV

Popis programu EnicomD

Metody připojování periferií

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

Převodník USB na RS232. Milan Horkel

Nadpis 1 Universal Serial Bus Nadpis (USB) 2 Nadpis 3

Charakteristika rozhraní USB

SNÍMAČOVÝ EXPANDÉR TB8.1x2 RS232 - ASCII

SB485. Převodník rozhraní USB na linku RS485 nebo RS422. s galvanickým oddělením. Převodník SB485. RS485 nebo RS422 USB. přepínače PWR TXD RXD

Multiplexory sériových rozhraní na optický kabel ELO E246, ELO E247, ELO E248, ELO E249, ELO E24A, ELO E24B. Uživatelský manuál

VETRONICS 760. Technická specifikace mobilní jednotky

Technická dokumentace TRBOdata

MĚŘICÍ PŘÍSTROJ PRO PC. 4 VSTUPY: 0 10 V ZESÍLENÍ : 1x, 2x, 4x, 8x VÝSTUP: LINKA RS232 RS232 DRAK 4 U1 U2 U3 U4

Převodník RS232 na RS485/422 UC485P. průmyslové provedení. galvanické oddělení. 28. února 2005 w w w. p a p o u c h. c o m

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í

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.

ŘÍDÍCÍ DESKA SYSTÉMU ZAT-DV

Ústav automobilního a dopravního inženýrství. Datové sběrnice CAN. Brno, Česká republika

TOPOLOGIE DATOVÝCH SÍTÍ

Komunikační protokol MODBUS RTU v displejích TDS

Identifikátor materiálu: ICT-1-15

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.

Informační a komunikační technologie

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

D/A převodník se dvěma napěťovými nebo proudovými výstupy. (0 10 V, 0 5 V, ±10 V, ±5 V, 4 20 ma, 0 20 ma, 0 24 ma)

Modbus RTU v DA2RS. kompletní popis protokolu. 13. března 2018 w w w. p a p o u c h. c o m

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

Vnější rozhraní počítače


Komunikační protokol MODBUS RTU v displejích TDS

TW15 KONCOVÝ PRVEK MSKP. Popis výrobku Technická data Návod k obsluze. Technologie 2000 s.r.o., Jablonec nad Nisou

Wie232. Převodník rozhraní Wiegand z bezkontaktních čteček na RS června 2011 w w w. p a p o u c h. c o m

Sběrnice Massoth Control BUS

Převodník RS232 RS485

Vstupně - výstupní moduly

Převodník sériového rozhraní RS-485 na mnohavidové optické vlákno ELO E171 Uživatelský manuál

enos dat rnici inicializaci adresování adresu enosu zprávy start bit átek zprávy paritními bity Ukon ení zprávy stop bitu ijíma potvrzuje p

SEMESTRÁLNÍ PROJEKT Y38PRO

BASPELIN CPM. Popis komunikačního protokolu verze EQ22 CPM EQ22 KOMPR

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

Buffer 16kB pro sériovou linku RS232 s konverzí rychlosti, parity, počtu datových bitů a stopbitů

Modemy rozhraní RS-485/422 na optický kabel ELO E243, ELO E244, ELO E245. Uživatelský manuál

Uživatelská příručka

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

Řízení IO přenosů DMA řadičem

Kódování signálu. Problémy při návrhu linkové úrovně. Úvod do počítačových sítí. Linková úroveň

Použití UART a radia na platformě micro:bit

Komunikační protokol EX Bus. Komunikační protokol EX Bus. Topologie. Fyzická vrstva. Přístup ke sdílenému přenosovému mediu (sběrnici)

M-Bus Master MultiPort 250D DATOVÝ LIST

AD4USB. měřící převodník. 4x vstup pro měření unifikovaného signálu 0 10 V, 0 20 ma, 4 20 ma. komunikace i napájení přes USB

Aktivní prvky: brány a směrovače. směrovače

Technická dokumentace TRBOcontrol

DRAK 3 INTELIGENTNÍ A/D PŘEVODNÍK. 3 VSTUPY: 0(4) - 20mA, 0-5/10V VÝSTUP: LINKA RS485 MODUL NA DIN LIŠTU RS485

Návrh konstrukce odchovny 2. dil

Vzdálené ovládání po rozvodné síti 230V

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

Modul univerzálních analogových vstupů R560. Shrnutí

AS-Interface. AS-Interface. = Jednoduché systémové řešení

Vstupní terminál LOG3

SPINEL. Komunikační protokol. Obecný popis. Verze 1.0

AS-Interface. AS-Interface = Jednoduché systémové řešení. Představení technologie AS-Interface

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

Analyzátor sériového rozhraní RSA1B

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

Uživatelská příručka

Local Interconnect Network - LIN

Komunikační protokol

Multiplexory sériových rozhraní na optický kabel ELO E246, ELO E247, ELO E248, ELO E249, ELO E24A, ELO E24B. Uživatelský manuál

Sbě b r ě n r i n ce

Manuál přípravku FPGA University Board (FUB)

Transkript:

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Katedra měření Diplomová práce Sběr a vizualizace dat získaných měřením indukčnostním snímačem. Praha 2007 Tomáš Doležal

České vysoké učení technické v Praze Fakulta elektrotechnická Katedra měření 13138 Školní rok 2005/2006 ZADÁNÍ DIPLOMOVÉ PRÁCE Student Obor Tomáš Doležal Letecké informační a řídicí systémy Název tématu: Sběr a vizualizace dat získaných měřením indukčnostním snímačem Zásady pro vypracování: Navrhněte a realizujte rozhraní (obvodové řešení i programové vybavení) mezi měřicím systémem řady NX 7021 a PC, zajišťující přenos dat z měřicího systému NX 7021 pomocí USB rozhraní požadovanou rychlostí nejméně 2400 vzorků za sekundu při rozlišení 14 bitů. Měřicí systém NX 7021 obsahuje mikroprocesor 8051 pro komunikaci a hradlové pole Xilinx XC3030A pro měření. Je třeba proto nejprve navrhnout a realizovat rozhraní pro tento procesor, aby mohl komunikovat po USB sběrnici jako slave. Pro experimenty použijte obvod FT232BM od firmy FTDI. Dále navrhněte a odlaďte programové vybavení pro nadřazené PC, které umožní v jednom okně zobrazovat změřený signál včetně nastavení časové základny a synchronizace a druhé okno použít pro záznam přechodových dějů s možností archivace a pozdější analýzy tohoto děje. Tento program by dále měl umožnit volbu konkrétního typu měřícího systému, aby byl univerzálně využitelný i pro další měřící systémy firmy Intronix. Postupně by tedy měly být řešeny následující dílčí úkoly: 1) Návrh zapojení a příslušného plošného spoje s obvodem FT232BM zajišťujícím komunikaci. 2) Návrh komunikačního protokolu pro přenos dat. 3) Návrh a odladění programového vybavení pro PC zajišťující komunikaci s využitím navrženého protokolu. 4) Analýza maximální použitelné rychlosti přenosu dat a minimalizace odezvy pro tento typ obvodu. 5) Návrh a odladění programu pro archivaci a zobrazení dat. ii

Seznam odborné literatury: [1] Dokumentace jednotky NX 7021 firmy Intronix [2] Dokumentace obvodu FT232 firmy FTDI Vedoucí diplomové práce: Ing. František Mazánek Datum zadání diplomové práce: 28. listopad 2005 Termín odevzdání diplomové práce: 19. leden 2007 L.S. Doc. Ing. Karel Draxler, CSc. garant oboru Doc. RNDr. Tomáš Bílek, CSc. proděkan V Praze dne 28.11.2005 iii

Prohlášení Prohlašuji, že jsem svou diplomovou práci vypracoval samostatně a použil jsem pouze podklady (literaturu, projekty, SW atd.) uvedené v přiloženém seznamu. V Praze dne Podpis Poděkování Na tomto místě bych rád poděkoval Ing. Miroslavu Růžičkovi za poskytnutí prostředků pro tvorbu této diplomové práce, Ing. Františku Mazánkovi, Ing. Petru Černohorskému, Ing. Michalu Ditrichovi, Ing. Janu Roháčovi a Doc. Ing. Karlu Draxlerovi, CSc. za poskytnutí cenných rad a v neposlední řadě svému nejbližšímu okolí za podporu při studiu. iv

ANOTACE Diplomová práce se zabývá modernizací měřícího systému NX7021 firmy Intronix s.r.o. a je koncipována do dvou částí: První část se zabývá návrhem zapojení a příslušným plošným spojem s obvodem FT232BM zajišťujícím USB komunikaci mezi měřícím systémem NX7021 a osobním počítačem. Výsledkem práce je navržení komunikačního protokolu a vytvoření programu pro zajištění komunikace. Druhá část se zabývá návrhem, vývojem a testováním programového vybavení pro nadřazené PC. Toto programové vybavení bude zobrazovat měřený signál, přechodové děje a bude umožňovat archivaci dat. v

THE ANNOTATION The diploma thesis focuses on modernization of NX7021 system and is divided into two parts: The first part describes scheme of the linkage and printed circuit with FT232BM converter which provides USB communication between NX7021 and personal computer. The result of this part is communication protocol and software for communication handling. The second part describes designing, programming and testing of the software application for the superior unit (personal computer). This program displays measured signal, transient performance of this signal and backups measured data. vi

Obsah 1 ROZBOR ZADÁNÍ... 1 1.1 POPIS MĚŘÍCÍHO SYSTÉMU NX7021... 1 1.2 TECHNICKÉ PARAMETRY MĚŘÍCÍHO SYSTÉMU NX7021... 2 1.3 KOMUNIKAČNÍ PROTOKOL MĚŘÍCÍHO SYSTÉMU NX7021... 2 2 USB (UNIVERSAL SERIAL BUS) ROZHRANÍ... 5 2.1 HISTORIE USB... 5 2.2 ZÁKLADNÍ VLASTNOSTI A PARAMETRY USB... 6 2.2.1 Základní vlastnosti... 6 2.2.2 Přenosové rychlosti... 6 2.3 POPIS USB SPECIFIKACE... 7 2.3.1 Fyzická vrstva... 7 2.3.1.1 Architektura USB sběrnice... 8 2.3.1.2 Mechanické vlastnosti přenosového média USB... 9 2.3.1.3 Napájení USB sběrnice... 12 2.3.1.4 Přenos signálů a jejich úrovně na sběrnici USB... 13 2.3.1.5 Přenos a kódování dat... 14 2.3.2 Linková vrstva... 15 2.3.2.1 Pakety... 16 2.3.2.2 Typy přenosů na sběrnici USB... 19 2.3.2.3 Přidělování kapacity šířky pásma... 21 2.3.3 Řídící přenos... 21 2.3.3.1 Enumerace rozpoznávání zařízení... 21 2.3.3.2 Nejdůležitější položky deskriptoru zařízení... 22 3 POPIS OBVODU FT232BM... 25 3.1 ZÁKLADNÍ VLASTNOSTI FT232BM... 25 3.2 BLOKOVÉ SCHÉMA FT232BM... 26 3.3 POPIS VÝVODŮ FT232BM... 29 3.3.1 UART rozhraní... 29 3.3.2 USB rozhraní... 30 3.3.3 EEPROM rozhraní... 30 3.3.4 Řízení spotřeby... 31 3.3.5 Pomocné signály... 31 3.3.6 Napájecí vývody... 32 3.4 MEZNÍ ÚDAJE... 33 4 NÁVRH PŘEVODNÍKU... 34 4.1 PRVNÍ KROKY... 34 4.2 NAPÁJENÍ PŘEVODNÍKU Z MĚŘICÍHO SYSTÉMU NX7021... 34 4.3 PŘIPOJENÍ EEPROM... 35 4.4 PŘIPOJENÍ OSCILÁTORU... 36 4.5 ROZHRANÍ PRO PŘIPOJENÍ INDIKAČNÍCH LED... 37 4.6 PŘIPOJENÍ MĚŘICÍHO SYSTÉMU NX7021 K PC... 38 4.7 ANALÝZA MAXIMÁLNÍ POUŽITELNÉ RYCHLOSTI PŘENOSU DAT... 39 4.8 SCHÉMA ZAPOJENÍ PŘEVODNÍKU... 40 4.9 VZHLED A POPIS PLOŠNÉHO SPOJE... 41 vii

5 NÁVRH PROGRAMOVÉHO VYBAVENÍ... 42 5.1 APLIKACE... 42 5.1.1 Základní informace a použití... 42 5.1.2 Programovací jazyk, IDE (Integrated Development Environment)... 42 5.1.3 Hardwarové a softwarové nároky... 42 5.2 KOMUNIKACE SE ZAŘÍZENÍM... 42 5.2.1 Komunikační systém NX7021... 42 5.2.2 Měření v samostatném vláknu... 44 5.2.3 Předávání naměřených dat aplikační vrstvě... 45 5.2.4 Objekt modulu NX7021... 45 5.3 UŽIVATELSKÉ ROZHRANÍ... 45 5.3.1 Styl Průvodce... 45 5.3.2 Formuláře hlavní aplikace... 46 5.3.3 Připojení... 46 5.3.4 Volba režimu a nastavení měření... 47 5.3.5 Měření... 49 5.3.6 Vzorkování... 49 5.3.7 Kontrola rozsahu... 50 5.3.8 Osciloskop... 51 5.3.9 Čtení hodnot... 52 5.3.10 Zobrazení historie... 54 5.3.11 Komponenta LCD Display... 56 5.4 PREZENTACE NAMĚŘENÝCH DAT... 56 5.4.1 Zobrazení naměřených dat... 56 5.4.2 Uložení naměřených dat... 56 5.4.3 Export naměřených dat... 58 5.5 VOLBA TYPU MĚŘÍCÍHO SYSTÉMU... 58 6 ZÁVĚR... 59 7 LITERATURA... 60 8 OBSAH PŘILOŽENÉHO CD... 61 9 PŘÍLOHY... 62 viii

Seznam obrázků Obrázek 1.1 - Konektor a zásuvka typu Din 5-kolíkový........1 Obrázek 2.1 - Low Speed zařízení......7 Obrázek 2.2 - Full Speed nebo High Speed zařízení.....7 Obrázek 2.3 - Logické vrstvy zařízení USB.......8 Obrázek 2.4 - Stromová struktura sběrnice USB........9 Obrázek 2.5 - Průřez kabelem pro USB.... 10 Obrázek 2.6 - Typy konektorů pro USB... 11 Obrázek 2.7 - Průběh signálů D+ a D- při přenosu paketu... 13 Obrázek 2.8 - NRZI kódování... 14 Obrázek 2.9 - Příklad dat vysílací části přenosové cesty...... 15 Obrázek 2.10 - Přenos po sběrnici v časových rámcích... 16 Obrázek 2.11 - Složení paketů z jednotlivých polí.. 16 Obrázek 2.12 - Příklad přepínání průběhů mezi LS a FS komunikací... 19 Obrázek 2.13 - Posloupnost operací při řídícím přenosu.. 20 Obrázek 2.14 - Posloupnost operací při přenosu objemných dat...... 20 Obrázek 3.1 - Blokové schéma obvodu FT232BM..... 26 Obrázek 3.2 - Rozložení vývodů obvodu FT232BM na pouzdru LQFP-32...... 29 Obrázek 4.1 - Napájení převodníku...... 35 Obrázek 4.2 - Připojení EEPROM... 36 Obrázek 4.3 - Připojení krystalu... 37 Obrázku 4.4 - Připojení indikačních LED.... 37 Obrázek 4.5 - Použité konektory datového vodiče...... 38 Obrázek 4.6 - Schéma zapojení převodníku..... 40 Obrázek 4.7 - Osazovací schéma desky........ 41 Obrázek 5.1 - Připojení..... 47 Obrázek 5.2 - Volba režimu Osciloskop........ 48 Obrázek 5.3 - Vzorkování..... 49 Obrázek 5.4 - Kontrola rozsahu........ 51 Obrázek 5.5 - Osciloskop.... 52 Obrázek 5.6 - Čtení hodnoty... 53 Obrázek 5.7 - Historie.......54 Obrázek 5.8 - Použitá VCL knihovna pro display........56 ix

Seznam tabulek Tabulka 2.1 - Typy paketů a jejich popis...... 17 Tabulka 3.1 - UART rozhraní....... 29 Tabulka 3.2 - USB rozhraní...... 30 Tabulka 3.3 - EEPROM rozhraní...... 30 Tabulka 3.4 - Řízení spotřeby....... 31 Tabulka 3.5 - Pomocné signály (OC značí otevřený kolektor)...... 32 Tabulka 3.6 - Napájecí vývody..... 33 Tabulka 3.7 - Mezní údaje.... 33 Tabulka 4.1 - Zapojení jednotlivých vývodů konektorů... 38 x

Seznam příloh Příloha 1 - Vzhled měřícího systému NX7021 bez převodníku..... 60 Příloha 2 - Vzhled měřícího systému NX7021 s převodníkem....... 60 Příloha 3 - Převodník RS232/USB..............61 Příloha 4 - Výkres desky ze strany součástek... 61 Příloha 5 - Výkres desky ze strany spojů.......... 62 Příloha 6 - Osazovací schéma desky..............62 Příloha 7 - Velikost desky plošného spoje.... 63 Příloha 8 - SOF začátek rámce....... 63 Příloha 9 - TOKEN (OUT) pověřovací paket........ 64 Příloha 10 - DATA datový paket...... 64 Příloha 11 - ACK potvrzovací paket......... 65 xi

1 Rozbor zadání Diplomová práce, zadaná a vykonávaná ve firmě Intronix s.r.o., se zabývá modernizací měřícího systému NX7021, který komunikuje s nadřazeným PC po sériové lince RS232. První část, zabývající se návrhem a realizací rozhraní mezi měřícím systémem NX7021 a PC, zajišťující přenos dat z měřícího systému NX7021 pomocí USB rozhraní požadovanou rychlostí nejméně 2400 vzorků za sekundu při rozlišení 14 bitů. Druhá část diplomové práce se zabývá návrhem, vývojem a testováním programového vybavení pro nadřazené PC. Toto programové vybavení umožní v jednom okně zobrazovat změřený signál včetně nastavení časové základny a synchronizace. Druhé okno se použije pro záznam přechodových dějů s možností archivace a pozdější analýzy tohoto děje. 1.1 Popis měřícího systému NX7021 Měřící systém pro připojení indukčnostního snímače NX7021 viz příloha 1 umožňuje změřit pomocí diferenciálního indukčnostního snímače jednorázový děj. Počet změřených vzorků je nastavitelný v rozsahu 1..16384. Vzorkovací frekvence je nastavitelná v rozsahu 450..2400 vzorků/sec. Měřící rozsah je ±200μm, rozlišení 0,1μm. Pro hrubé nastavení snímače a přípravu měření je k dispozici pomocný rozsah ±1000μm s rozlišením 1μm. Při tomto rozsahu nelze provádět vzorkování s nastavitelnou frekvencí. Systém vrací aktuální hodnotu snímače pouze na dotaz PC (max. frekvence dotazů je cca 50Hz). Napájení systému zajišťuje externí síťový zdroj, komunikace s nadřízeným PC probíhá po sériové lince RS232. Komunikační kabel je typu NULL MODEM, tj. s překříženými vodiči RxD, TxD. Indukčnostní snímač je k systému připojen 5-kolíkovým konektorem typu DIN viz obrázek 1.1. Obrázek 1.1 - Konektor a zásuvka typu Din 5-kolíkový 1

1.2 Technické parametry měřícího systému NX7021 Počet kanálů: 1 Rozsah a rozlišení: a) měřicí rozsah ±200μm, rozlišení 0,1μm b) nastavovací rozsah ±1000μm, rozlišení 1μm, nelze vzorkovat s nastavitelnou frekvencí Počet vzorků: 1..16384 Vzorkovací frekvence: 450..2400 vzorků/sec Frekvence se zadává pomocí dělicího poměru n podle vztahu f = 28800/div, kde div je v rozsahu (12..64) Maximální chyba: 3LSB v celém teplotním rozsahu Komunikace: RS232, 8-bitů, 1-stopbit, bez parity proti chybám je přenosový protokol zabezpečený kontrolním součtem Komunikační rychlost: 115.2kBd Ke komunikaci se používají vodiče TxD, RxD a GND, kabel musí být typu NULL MODEM. Napájení: 9..12Vac, 200mA, zajištěno pomocí externího síťového zdroje Rozsah pracovních teplot: 10-40 ºC Pracovní prostředí: Systém je určen pro provoz v prostředí bez nadměrné prašnosti, agresivních par nebo plynů s relativní vlhkostí do 80% Rozměry š x v x h: 105 x 45 x 190mm 1.3 Komunikační protokol měřícího systému NX7021 Nadřízené PC ovládá měřící systém prostřednictvím příkazů, na které měřící systém vrací odpověď. Příkaz začíná synchronizačním bytem s hodnotou AAh, následuje kód příkazu, případné datové byty a kontrolní součet. Formát odpovědi je obdobný, výjimku tvoří odesílání naměřených hodnot v měřícím režimu (vzorkování). Vykonání některých příkazů může trvat až 40ms, proto hodnota timeoutu by neměla být menší než tato hodnota. Komunikační rychlost je 115,2kBd, timeout pro odpověď 200ms. 2

V použité verzi jsou implementovány následující příkazy: a). Příkazy pro měření 1) Vyčtení hodnoty snímače rozsah ±1000μm Příkaz: AA 00 cs Odpověď: AA 00 sts sl sh cs 2) Vyčtení hodnoty snímače rozsah ±200μm Příkaz: AA 01 cs Odpověď: AA 01 sts sl sh cs 3) Spuštění vzorkování rozsah ±200μm Příkaz: AA 02 div scntl scnth cs Odpověď: AA 02 cs sts0 data0l data0h sts1 data1l data1h 4) Zastavení vzorkování Příkaz: AA 03 cs Odpověď: AA 03 cs Poznámka: Měření se ukončí i při přijetí libovolného jiného příkazu. b) Příkazy pro konfiguraci systému 1) Načtení konstant z EEPROM Příkaz: AA 04 cs Odpověď: AA 04 g1l g1h g2l g2h offs cs 2) Načtení s/n z EEPROM Příkaz: AA 05 cs Odpověď: AA 05 s/n cs 3) Zápis konstant do EEPROM Příkaz: AA 06 g1l g1h g2l g2h offs cs Odpověď: AA 06 cs 3

Vysvětlivky: cs kontrolní součet modulo 256 sts stav šlapky (0 = nesešlápnuto) sh L hodnota snímače div dělitel udávající vzorkovací rychlost 28800/div (12..64) scnth L počet vzorků (1..16384) stsx cs3 cs2 cs1 cs0 s n2 n1 n0 cs - kontrolní součet modulo 16 ze stsx, dataxl, dataxh s - stav šlapky (0 = nesešlápnuto) n - pořadové číslo vzorku modulo 8 dataxh L naměřená data g1h L zesílení kanálu - nastavovací rozsah ±1000μm g2h L zesílení kanálu - měřicí rozsah ±200μm offs posun nuly mezi rozsahy s/n 16B obsahujících sériové číslo systému Měřící režim vzorkování se ukončí po naměření zadaného počtu vzorků, nebo po zaslání libovolného příkazu (nebo postačuje poslat byte s hodnotou AAh a počkat cca 50ms). Další technické podrobnosti lze najít také v literatuře [3]. 4

2 USB (Universal Serial Bus) rozhraní 2.1 Historie USB Standard USB je vyvíjen od první poloviny devadesátých let dvacátého století. Největší zásluhu na vývoji nese organizace USB Implementers Forum (USB-IF). Tuto organizaci tvoří zástupci firem z oblasti softwaru a hardwaru. Jedná se o firmy Intel, Microsoft, Hewlett- Packard, Compaq a Philips. Sběrnice USB vznikla jako reakce na potřebu rychlé, univerzální a pro uživatele snadno obsluhovatelné propojení mezi počítačem a periferiemi, umožňující připojit více zařízení k jedné sběrnici za chodu počítače i zařízení. V roce 1996 byl uveřejněn standard USB 1.0. Firma Intel začala vyrábět a implementovat řadiče USB do základních desek nových počítačů a zásuvných karet pro starší počítače. V této době však nebylo rozhraní USB podporováno operačními systémy. Nová verze 1.1 standardu USB byla vyvinuta v roce 1998. Tato verze již byla podporována operačními systémy, tím se začínal rozrůstat počet periferií připojovaných ke sběrnici USB. Začaly se také vyvíjet velice oblíbené přenosové paměťové moduly (Flash Disk). Ve verzi 1.1 byly definovány dva základní typy rozhraní USB, lišící se různou přenosovou rychlostí. Prvním typem jsou nízkorychlostní zařízení (LS: Low-Speed), která dosahují maximální přenosové rychlosti do 1.5Mb/s a přenáší menší objem dat. Do této skupiny patří například klávesnice, počítačové myši, pákové ovladače atd. Druhým typem jsou plnohodnotná zařízení (FS: Full-Speed), která mají maximální přenosovou rychlost do 12Mb/s a jsou primárně určena pro přenos dat jako je např. digitální zvuk, komprimované video atd. Zatím poslední verze 2.0 zveřejněná v dubnu roku 2000, rozšiřuje standard o třetí typ zařízení, kterým jsou vysokorychlostní zařízení (HS: High-Speed) s přenosovou rychlostí do 480Mb/s. Díky tomuto zařízení lze pomocí USB připojovat k počítači také zařízení s velkým objemem dat, jako jsou například disky, připojení k síti, zařízení pro zpracování obrazu atd. Rostoucí trh s mobilními zařízeními (mobilní telefony, digitální fotoaparáty, PDA atd.) přinutil USB-IF vyvinout nový standard On The-Go (dále OTG) rozšiřující verzi 2.0 pro tato zařízení. Standard OTG umožňuje propojovat některá zařízení pomocí USB přímo bez stolního hostitelského počítače. 5

2.2 Základní vlastnosti a parametry USB USB je sériová sběrnice, data se přenáší po jednotlivých bitech a to diferenčně (pro snížení vlivu rušení), po dvou vodičích. Datové vodiče nesou vzájemně negované signály. Napěťové úrovně jsou v rozsahu 0 až 3,3V. USB konektor obsahuje pouze čtyři vývody V BUS (+5V), D, D+ a GND. 2.2.1 Základní vlastnosti rozhraní je typu Plug&Play (automatická indikace připojování a odpojování zařízení za provozu) sériové rozhraní přenosová rychlost až 480Mb/s (dle verze USB), možno připojit až 127 zařízení možnost napájení zařízení přímo z konektoru 5V (běžně lze odebrat 100 ma (Low Power Part), po speciálním přihlášení až 500mA (High Power Part)) podpora operačnímy systémy Windows 98/2000/Me/XP, Linux, MAC OS-8, OS-9, OS-X indikace chyb přenosu a možnost korekce, indikace vadné periferie jednoduchý protokol propojování je řešeno pomocí několika úrovňové hvězdicové struktury. USB zařízení pracují ve verzi 1.1 a nověji ve verzi 2.0. Tyto standardy se z vnějšího pohledu odlišují hlavně přenosovými rychlostmi. 2.2.2 Přenosové rychlosti Low Speed (LS) 1.5Mb/s, standard 1.1/2.0, zařízení připojuje pull-up rezistor 1,5kΩ mezi D- a 3,3V Full Speed (FS) 12Mb/s, standard 1.1/2.0, zařízení připojuje pull-up rezistor 1,5kΩ mezi D+ a 3,3V High Speed (HS) 480Mb/s, standard 2.0, zařízení se detekují stejně jako zařízení Full Speed s tím, že změna rychlosti se řeší programově. Připojení pull-upů na D+ nebo D- zároveň hubu sděluje, že je připojeno zařízení, protože jinak jsou linky taženy směrem k 0V pomocí pull-downů (snižovacích rezistorů) velikosti 15kΩ. Schématické zapojení je znázorněno na obrázcích 2.1 a 2.2. 6

Obrázek 2.1 - Low Speed zařízení Obrázek 2.2 - Full Speed nebo High Speed zařízení 2.3 Popis USB specifikace V této podkapitole jsou popsány základní vlastnosti fyzické a linkové vrstvy sběrnice USB podle specifikace verze 1.1. Specifikace standardu USB definuje architekturu sběrnice, elektrické a mechanické vlastnosti jednotlivých prvků, přenosový protokol a datový tok na sběrnici. 2.3.1 Fyzická vrstva Do fyzické vrstvy patří architektura sběrnice, její mechanické vlastnosti, elektrické a napájecí vlastnosti sběrnice, signálové vlastnosti a kódování dat. Všechny tyto části jsou popsány v následujících podkapitolách, podrobnější informace lze nalézt ve specifikaci USB verze 1.1 v literatuře [5] a pro verzi 2.0 v literatuře[6]. 7

2.3.1.1 Architektura USB sběrnice Sběrnice USB je složena z prvků: hostitele (HOST) rozbočovače (HUB) koncového zařízení (DEVICE) Dále sběrnici tvoří propojení vždy mezi dvěma prvky typu point-to-point. Každý prvek se skládá z několika logických vrstev viz obrázek 2.3. Komunikace mezi hostitelem a koncovým zařízením probíhá přes logické komunikační kanály (pipes). Obrázek 2.3 - Logické vrstvy zařízení USB Topologie sběrnice má stromovou strukturu, jak je zobrazeno na obrázku 2.4. Hostitel tvoří centrální jednotku každé sběrnice a zároveň je spolu s kořenovým rozbočovačem první vrstvou sběrnice. V každé sběrnici USB může být pouze jeden hostitel, který řídí přidělování přenosového média metodou výzvy (polling) v logickém kruhu, tj. všechna zařízení poslouchají na síti a pokud zachytí pověření (token) se svojí adresou, odpoví na něj. S použitým adresováním lze připojit až 127 nezávislých zařízení k jednomu hostiteli. Stejně jako kořenový, tak i ostatní rozbočovače rozšiřují sběrnici o další přípojné body a zvyšují počet vrstev sběrnice. Většina rozbočovačů je součástí složeného zařízení, které má v jednom fyzickém pouzdře kromě rozbočovače i koncové zařízení. Takové zařízení je připojeno ke svému rozbočovači a patří tak logicky do další vrstvy. Specifikací USB 1.1 je 8

pro LS a FS zařízení povoleno nejvýše pět vrstev včetně kořenového rozbočovače, pro USB 2.0 (FS, HS) je počet povolených vrstev sedm, tyto hodnoty vycházejí z maximálních dovolených zpoždění signálu pro jednotlivé úseky sběrnice a z maximální doby na odpověď zařízení hostitelskému počítači. Koncové zařízení obsahuje několik logických bran (endpoints) s vlastní FIFO pamětí, přes které zařízení komunikuje s hostitelem. Jednotlivé brány jsou sdruženy do rozhraní (interface). Každé rozhraní představuje pro hostitele jednu nezávislou funkci zařízení. Například zařízení fungující jako scanner, tiskárna a kopírka může mít tři rozhranní viditelné pro uživatele hostitelského počítače jako tři samostatné zařízení. Obrázek 2.4 - Stromová struktura sběrnice USB 2.3.1.2 Mechanické vlastnosti přenosového média USB Mechanické vlastnosti sběrnice definují povolené hodnoty parametrů, typy vodičů a konektorů. Na obrázku 2.5 je znázorněn průřez propojovacím kabelem mezi prvky sběrnice USB. Kabel obsahuje dvě dvojice vodičů a stínění. Jedna dvojice vodičů je napájecí (GND, V BUS ) a 9

druhá dvojice je datová (D+, D-). Pro FS a HS zařízení je pro datové vodiče předepsán kroucený dvoudrát s vnějším stíněním. Pro LS zařízení je tento požadavek pouze jako doporučení. Obrázek 2.5 - Průřez kabelem pro USB Specifikací povolená délka kabelu je dána vlastnostmi použitých vodičů a požadovanými elektrickými vlastnostmi sběrnice, mezi které patří doba zpoždění, útlum, doba náběžné a sestupné hrany signálů pro datové vodiče a úbytek napětí pro napájecí vodiče. Specifikace povoluje maximální délku kabelu 5 metrů. a) konektor a zásuvka typu A 10

b) konektor a zásuvka typu B c) konektor a zásuvka typu Mini B d) konektor a zásuvka typu Mini A e) zásuvka typu Mini AB Obrázek 2.6 - Typy konektorů pro USB Každý kabel, s výjimkou kabelů pevně připojených k LS zařízení, je opatřen dvěma konektory s nezaměnitelným tvarem. Tím je zajištěno jednoduché použití a vyloučena možnost nesprávného připojení. Konektor typu A má obdélníkový průřez viz obrázek 2.6 a) a slouží k připojení kabelu k výstupu z hostitelského počítače nebo rozbočovače. 11

Konektor typu B je čtvercového průřezu viz obrázek 2.6 b) a kabel je jím připojen k zařízení nebo na vstup rozbočovače. Vzhledem k novým menším zařízením připojovaným pomocí USB, byl specifikací 2.0 přidán nový typ konektoru označovaný jako Mini-B viz obrázek 2.6 c), který má přibližně poloviční výšku než konektor typu B. Specifikací jsou povoleny dva propojovací kabely, první s konektory typu A a B a druhý s konektory A a Mini-B. Pro doplnění přehledu je na obrázku 2.6 d) nový konektor pro OTG zařízení označený Mini-A, jako alternativa k původnímu konektoru s novým označením Standard-A. Kabely s tímto konektorem mohou být dlouhé 4,5 metrů. Na obrázku 2.6 e) je zásuvka typu Mini-AB určená pro OTG zařízení, která může být připojena jako zařízení i jako hostitel. 2.3.1.3 Napájení USB sběrnice Všechna zařízení připojená k USB sběrnici lze z hlediska způsobu napájení rozdělit na tři skupiny: s malým odběrem proudu (low-power bus-powered device) s velkým odběrem proudu (high-power bus-powered device) s vlastním napájením (self-powered device) Pro každou skupinu je definovaný maximálně možný odebíraný proud a minimální napětí, při kterém musí být zařízení schopno pracovat. Zařízení může být z hlediska napájení v jednom ze tří stavů: režim obecného zařízení - v tomto stavu se zařízení nachází po připojení ke sběrnici dokud mu není přiřazena vlastní adresa funkční režim zařízení režim pozastavení činnosti zařízení (suspend mode) Zařízení napájená ze sběrnice s malým odběrem proudu mohou odebírat maximálně 100mA, kromě režimu spánku, kdy mohou odebírat nejvýše 0,5mA. Dále musí být schopna pracovat již od napětí 4,4V. Toto napětí se měří na začátku přívodního kabelu u konektoru typu A. Zařízení, která ve funkčním režimu odebírají více než 100mA, patří do skupiny zařízení napájených ze sběrnice s velkým odběrem proudu. Jejich odběr nesmí překročit 100mA pro režim obecného zařízení a musí pracovat od napětí 4,4V. Ve funkčním režimu zařízení nesmí odebírat více než 500mA a musí pracovat od napětí 4,75V, obě napětí jsou měřena na konci přívodního kabelu u konektoru typu A. Pro režim spánku je povolen maximální odběr 12

2,5mA. Mezi tato zařízení patří rozbočovače napájené po sběrnici. Pro ně je předepsán i maximální úbytek napětí 350mV mezi vstupním portem a výstupními porty. Zařízení s vlastním napájením mohou mít USB řadič napájen buď z vlastního zdroje nebo ze sběrnice, v tom případě zařízení může odebírat maximálně 100mA. Sběrnicové napájení je většinou využito pro komunikaci zařízení s hostitelským počítačem při vypnutém vlastním napájení. Největší možný úbytek napětí na propojovacím kabelu je 125mV, což je jeden z faktorů omezující největší povolenou délku propojovacího kabelu. 2.3.1.4 Přenos signálů a jejich úrovně na sběrnici USB Přenos signálů je zajištěn dvojicí signálových vodičů D+ a D-, signály těchto vodičů jsou inverzní. Tolerované hodnoty výstupu budičů jsou pro nízkou úroveň signálu V OL 0,3V při zátěži R PU =1,5kΩ proti napětí 3,6V a pro vysokou úroveň signálu V OH 2,8V při zátěži R PD =1,5kΩ proti napětí 0V. Budiče vysílačů jsou třístavové, aby mohl probíhat obousměrný poloduplexní přenos. Podle specifikace musí být oba budiče datových signálů schopny vydržet trvalý zkrat proti druhému signálu, napájení V BUS, GND a stínění kabelu. Přenos dat probíhá po paketech, které jsou ohraničeny událostmi začátek paketu (SOP) a konec paketu (EOP), viz obrázek 2.7. SOP je detekován přechodem ze stavu nečinné sběrnice do stavu překlopení datových signálů do opačné úrovně. EOP je definován jako přechod do stavu SEO přibližně na dobu přenosu 2 bitů následovaný stavem klidové sběrnice, nebo začne vysílání dalšího paketu. Obrázek 2.7 - Průběh signálů D+ a D- při přenosu paketu 13

2.3.1.5 Přenos a kódování dat USB je jednomastrová sběrnice, všechny aktivity vycházejí z nadřazeného počítače. Data se vysílají v paketech o délce 8 až 64 bytů (1024 bytů pro izochronní přenos). Počítač může požadovat data od zařízení, ale žádné zařízení nemůže začít vysílat samo od sebe. Veškerý přenos dat se uskutečňuje v rámcích o délce přesně 1ms (pro LS a FS zařízení). Uvnitř těchto rámců mohou být postupně zpracovávány pakety pro několik zařízení. Slave (podřízené zařízení) se musí sesynchronizovat na datový tok. Protože hodinový signál není přenášen po zvláštní lince, získávají se hodiny přenosu přímo z datového signálu. USB používá pro přenos dat po sběrnici kódování NRZI (Non Return To Zero), při něm je datová logická jednička reprezentována jako neměnný stav signálů na vodičích sběrnice a datová logická nula jako změna z jednoho stavu do druhého viz obrázek 2.8. Obrázek 2.8 - NRZI kódování Z použitého kódování plyne, že sekvence logických nul v datech způsobuje změnu stavu na sběrnici při každém bitu. Naproti tomu sekvence logických jedniček nechává po celou dobu sběrnici ve stejném stavu. Jelikož se přenos synchronizuje pomocí změny stavu na sběrnici je změna zajištěna i pro sekvenci logických jedniček vkládáním bitu (bit stuffing). Při něm se po každých vyslaných šesti datových jedničkách vloží navíc jedna nula, tím dojde minimálně jednou za sedm bitů ke změně stavu a tím i synchronizaci sběrnice viz obrázek 2.9. Současně je vkládání bitu využito k zabezpečení přenosu. Každý paket obsahuje za účelem synchronizace speciální byte, tzv. SYNC-byte. 14

Obrázek 2.9 - Příklad dat vysílací části přenosové cesty Při dekódování se každá logická nula po šesti logických jedničkách vyřadí. Pokud je přijato sedm a více jedniček nastaví se chyba a celý paket se ignoruje. Speciálním případem je poslední bit před koncem paketu, kdy může dojít v rozbočovači k prodloužení tohoto bitu, který přijímač detekuje jako další bit před koncem paketu. Pokud je tento nadbytečný bit jako šestá logická jednička, kterou nenásleduje žádný datový přenos, je paket v pořádku přijat i bez předpokládané následující logické nuly. Zařízení obsahuje jednotku SIE (Serial Interface Engine). K výměně dat mezi SIE a zbytkem zařízení slouží buffery (vyrovnávací paměti) FIFO (First In First Out). Architektura FIFO představuje paměti schopné postupně přijímat a vysílat data podobně jako posuvné registry. FIFO umožňuje vzájemně sladit rozdílné rychlosti USB sběrnice a USB zařízení. Zařízení USB má obecně několik pamětí FIFO, jejichž prostřednictvím je možno přenášet data. K adrese zařízení se pak navíc přidává adresa tzv. koncového bodu (ENDP). Tato adresa udává, kam se data mají uložit, nebo odkud se mají vyzvednout (udávají použitou FIFO). 2.3.2 Linková vrstva Přenos na sběrnici je organizován do časových rámců (frames). V nich se přenášejí informace v paketech seskupených do přenosů pro jednotlivé zařízení. Každý rámec je určen speciálním paketem označující začátek rámce (SOF) viz obrázek 2.10. Rámce mají pro LS a FS zařízení délku 1ms±500ns. HS zařízení používají mikrorámce (microframes), které jsou 15

dlouhé 125μs±62,5ns. Řazení paketů v jednotlivých rámcích není pevně dané a určuje ho hostitel, jak je popsáno níže. Obrázek 2.10 - Přenos po sběrnici v časových rámcích 2.3.2.1 Pakety Jsou definovány čtyři skupiny paketů: pověřovací (Token) datový (Data) potvrzovací (Handshake) speciální (Special) Pakety a jejich rozdělení do skupin jsou znázorněny v tabulce 2.1. Každý paket je složen z několika různě dlouhých polí, celý paket má délku v násobcích bytů. Bity jednotlivých bytů jsou posílány od nejméně významného (Lsb) po nejvíce významný (Msb). Následující obrázek 2.11, zobrazuje jednotlivé složení paketů z polí tak, jak jsou bity vysílány, tj. v pořadí z leva doprava. Obrázek 2.11 - Složení paketů z jednotlivých polí 16

Každý paket začíná synchronizačním polem SYNC, které je dlouhé jeden byte a má hodnotu 128. Toto pole zajišťuje synchronizaci přijímače na vyslaná data. Další pole, které každý paket obsahuje, je identifikační pole PID (Packet IDentifier field) určující druh paketu. Pole PID je dlouhé osm bitů, z nichž čtyři bity nesou informaci a zbylé čtyři jsou jejich doplňkem. Pokud negace jedné čtveřice bitů neodpovídá druhé nebo je zjištěna neznámá kombinace, je celý paket zařízením ignorován. Přehled možných typů paketů je v tabulce 2.1, jejichž kódy lze nalézt v literatuře [5]. Tabulka 2.1 - Typy paketů a jejich popis Skupina paketů Typ paketu Popis Pověřovací (Token) OUT Přenos dat od hostitele k zařízení. IN Přenos dat ze zařízení k hostiteli. SETUP Konfigurační přenos od hostitele. SOF Označuje začátek rámce. Datový (Data) DATA0 Sudý datový paket (první v přenosu). DATA1 Lichý datový paket. Potvrzovací (Handshake) ACK Potvrzení bezchybného přijmu dat. NAK Data nebyla přijata nebo vyslána. STALL Brána zařízení je pozastavena nebo konfigurační požadavek není podporován. Speciální (Special) PRE Označuje LS přenos tak, aby rozbočovače zapnuly LS zařízení k nim připojené. Pověřovací pakety typu OUT (vysílací), IN (přijímací) a SETUP (konfigurační-speciální případ vysílacího paketu) obsahují adresu složenou ze dvou polí. Prvním polem je adresa zařízení ADDR určující zdroj nebo cíl následujících datových paketů. Má délku 7 bitů, proto může být v jedné síti až 127 zařízení (adresa 0 je určena pro nenakonfigurované zařízení). Druhé pole ENDP obsahuje adresu USB brány (endpoint) v rámci jednoho zařízení a má délku čtyř bitů, což určuje maximální počet bran v zařízení. LS zařízení může obsahovat maximálně tři brány, na rozdíl od FS zařízení, které může mít až šestnáct bran. Všechna 17

zařízení musí mít alespoň bránu 0 s řídícím typem přenosu, ostatní mohou být jakéhokoliv typu. Pro vysílací a konfigurační typ určuje pole ADDR a ENDP příjemce datových paketů v přenosu. Pro přijímací typ je polem ADDR a ENDP určeno, kdo bude následující datové pakety vysílat. Adresní pole jsou chráněna pětibitovým polem CRC5 (Cyclic Redundancy Check ) s generujícím polynomem G(X) = X 5 +X 2 +1. Mezi skupinu pověřovacích paketů patří i paket začátku rámce (SOF Start of Frame). Kromě pole PID obsahuje paket i pole s číslem rámce a jeho ochranu pomocí pole CRC5. Pole s číslem rámce je dlouhé jedenáct bitů a jeho hodnota se s každým rámcem zvětšuje cyklicky mezi 0 a 2047. Standard nezajišťuje doručení tohoto paketu, protože zařízení na paket neodpovídají a pokud nepotřebují ke své činnosti synchronizaci sběrnice, pak tento paket ignorují. Pověřovací pakety smí vysílat pouze hostitel, který tak řídí přístup na sběrnici. Pověřovací pakety jsou zařízeními ignorovány, pokud nekončí značkou EOP a nemají délku tři byty. Další skupinou jsou datové pakety. V této skupině jsou dva typy paketů lišící se pouze polem PID, které určuje zda se jedná o sudý datový paket (DATA0) nebo lichý datový paket (DATA1). Při vyslání dvou a více datových paketů za sebou se oba typy střídají, čímž se synchronizuje datový přenos. Hlavní částí datových přenosů je datové pole, které může být dlouhé 0 až 1023 bytů. Délka je závislá na typu přenosu a na hardwarové velikosti paměti vstupní brány. Datové pole je chráněno dvoubytovým polem CRC16 s generujícím polynomem G(X) = X 16 +X 15 +X 2 +1. Poslední základní skupinou jsou potvrzovací pakety. Obsahují pouze pole PID a slouží k informování o stavu předchozích přenosů. Do této skupiny patří tři pakety, prvním z nich je kladné potvrzení (ACK). Tento paket posílá hostitel jako reakci na přenosy zahájené paketem typu IN nebo zařízení jako reakci na přenosy zahájené pakety typu OUT nebo SETUP. Dalším typem je záporná odpověď (NAK), tu posílá zařízení jako odpověď, že nemůže dočasně přijmout data poslaná hostitelem (v rámci přenosu zahájeného paketem OUT) nebo že nemá žádná data k odeslání (přenos zahájený paketem IN). Zařízení pak může přijmout nebo odeslat data v rámci dalšího přenosu bez zásahu hostitele. Posledním paketem je záporná odpověď se zastavením (STALL). Zařízení posílá tento paket při nemožnosti přijmout nebo vyslat data bez dalšího zásahu hostitele. Navíc tento paket posílá zařízení jako reakci na nepodporovaný konfigurační přenos. 18

Speciální skupinou je paket PRE, kterým hostitel označuje přenos po LS zařízení. Tento paket je určen speciálně pro rozbočovače. Po sběrnici probíhají zároveň FS a LS přenosy, proto musí být LS zařízení od sítě odpojena, dokud není přenos typu LS. Bez odpojování by LS zařízení přijímala i FS přenosy, které by špatně interpretovala. Po paketu PRE musí hostitel čekat nejméně po dobu čtyř bitů FS přenosu než začne vysílat, aby měl rozbočovač čas na připojení LS zařízení. Na obrázku 2.12 je příklad takového přenosu. Obrázek 2.12 - Příklad přepínání průběhů mezi LS a FS komunikací 2.3.2.2 Typy přenosů na sběrnici USB Pro USB sběrnici jsou definovány čtyři typy přenosu dat: řídící přenos (Control Transfer) používají se k řízení hardware, pracují s vysokou prioritou a automatickým zabezpečením chyb; přenosová rychlost je vysoká, na jeden dotaz lze přenést až 64 bytů, přenos přes přerušení (Interrupt Transfer) používají zařízení, která periodicky vysílají menší množství dat - typicky myš, klávesnice, hromadný přenos (Bulk Transfer) je vhodný pro přenos velkých množství dat se zabezpečením. Priorita přenosu je nízká, takže tento typ není vhodný pro časově kritické operace - typicky skener, tiskárna, flash disk, izochronní přenos (Isochronous Transfer) je vhodný pro přenos velkých množství dat definovanou rychlostí (nejvyšší priorita) bez jejich zabezpečení. Je vhodný pro systémy, kdy je chyba menším zlem než jeho výpadek - typicky vnější zvukové karty. LS zařízení mohou využívat pouze řídící přenos a přenos přes přerušení. Obecně je každý přenos složen z pověření, datového přenosu a potvrzení. Řídící přenos má dvě nebo tři části v závislosti na potřebě přenosu dat. V první části je vyslán hostitelem paket s konfiguračním pověřením následovaný datovým paketem s požadavkem, popis požadavků je v literatuře [5]. Pokud je požadavek v pořádku přijat, zařízení vyšle potvrzení úspěchu. V požadavku je obsažena informace o případném přenosu dalších dat v rámci řídícího přenosu. Přenos dat je řízen podle stejných pravidel jako přenos 19

objemných dat, všechny datové pakety mají vždy stejný směr přenosu. Řídící přenos ukončuje stavová část a pozná se opačným směrem toku dat než byla vysílaná data, jak je znázorněno na obrázku 2.13. Obrázek 2.13 - Posloupnost operací při řídícím přenosu Při přenosu objemných dat je zaručeno jejich bezchybné doručení kontrolou chyb a případným opakováním paketů. Není však zaručeno zpoždění, s jakým jsou data doručena, viz kapitola 2.3.2.3. Přenos je třífázový s výjimkou nulové délky dat, kdy přenos neobsahuje datový paket. Při čtení dat ze zařízení vyšle hostitel IN paket, na který zařízení zareaguje odesláním dat nebo odpovědí NAK, pokud nemá data připravena, ale může je odeslat později a nebo odpovědí STALL, pokud je brána pozastavena. Úspěšné obdržení dat hostitel potvrdí zprávou ACK. Jestliže hostitel nezašle žádné potvrzení, znamená to chybu přenosu. Při vysílání dat do zařízení je situace obdobná. Zařízení může odpovědět ACK, pokud data byla přijata v pořádku a hostitel může poslat další datový paket, NAK pokud data přišla v pořádku, ale zařízení je nezpracovalo a hostitel bude muset poslat paket znovu, STALL pokud je brána mimo provoz a hostitel by neměl ve vysílání paketů pokračovat, nebo zařízení nepošle žádnou odpověď, pokud přišla data poškozená, v tom případě hostitel vyšle znovu stejný paket. Posloupnost přenosů je zobrazena na obrázku 2.14. Obrázek 2.14 - Posloupnost operací při přenosu objemných dat 20

Časový přenos má stejné fáze a pravidla jako přenos objemných dat. Rozdíl mezi nimi je v systému přidělování kapacity šířky pásma. U časových přenosů vysílá hostitel pověření s periodou, kdy je zařízení schopno vysílat či přijímat data. Tímto se šetří přenosová kapacita média. Více o přidělování kapacity je v následující kapitole. Izochronní přenos má pouze dvě fáze, příjemce nepotvrzuje přijetí a proto není doručení dat zaručeno. Používá se k přenosu souvislého toku dat. 2.3.2.3 Přidělování kapacity šířky pásma Přidělování kapacity sběrnice řídí výlučně hostitelský počítač. Rozvrhování přenosů v rámci není specifikováno standardem USB a je proto různé podle implementace hostitele. Jsou předepsány pouze limitující pravidla. Periodickým přenosům (izochronní a přenos přes přerušení) může být přiděleno nejvýše 90% rámce (80% mikrorámce pro HS sběrnici). Zbylých 10% je primárně přiděleno řídícím přenosům. Pokud zbývá nějaká kapacita z rámce, je přidělena přenosu objemných dat. 2.3.3 Řídící přenos Každé zařízení musí mít nejméně jednu obousměrnou řídící bránu s adresou 0 (endpoint 0). Po připojení zařízení ke sběrnici je pro hostitele viditelná pouze tato brána a skrz ní může být zařízení přidělena adresa a provedena konfigurace. Tento proces se označuje jako enumerace zařízení a je popsán v následující kapitole 2.3.3.1. Při enumeraci zasílá zařízení informace o sobě pomocí deskriptorů. Hostitel zahajuje řídící přenosy vysláním konfiguračního požadavku, jehož struktura je popsána ve specifikaci [5], [6]. Všechny zařízení musí minimálně reagovat na sadu standardních požadavků viz specifikace [5], [6]. 2.3.3.1 Enumerace rozpoznávání zařízení USB podporuje Plug&Play, takže každé USB zařízení, které připojíme, musí být automaticky rozpoznáno operačním systémem. Enumerace (vyčítání parametrů) zařízení spočívá v tom, že se operační systém dotazuje nově připojeného zařízení na určité parametry ve formě tzv. deskriptorů (přesně definovaných bloků dat). Počítač tato data požaduje prostřednictvím odpovídajících řídících dotazů na endpoint 0. 21

Rozbočovač rozpozná připojení nového zařízení tak, že dojde ke zdvihnutí linky D+ nebo D-, potom se provedou následující kroky: 1) rozbočovač informuje hostitelský počítač (host), že je připojeno nové zařízení, 2) host se dotáže rozbočovače, na který port je zařízení připojeno, 3) host nyní ví, na který port je zařízení připojeno a vydá příkaz tento port aktivovat a provést reset USB sběrnice, 4) rozbočovač vyvolá USB reset (nulovací signál) o délce 10ms a uvolní pro zařízení proud 100mA. Jednotka SIE následně vyvolá reset mikrokontroléru a tak je zařízení připraveno, 5) než zařízení obdrží vlastní sběrnicovou adresu, je možno se na něj obracet přes implicitní adresu 0. Host čte první byty deskriptoru zařízení, aby stanovil délku datových paketů, 6) host přiřadí zařízení jeho sběrnicovou adresu, 7) host si pomocí nové sběrnicové adresy načte všechny informace obsažené v deskriptoru zařízení, 8) host přiřadí zařízení jednu z možných konfigurací. Zařízení pak může odebírat tolik proudu, kolik je stanoveno v aktivovaném konfiguračním deskriptoru. Tím je tedy připraveno k použití. 2.3.3.2 Nejdůležitější položky deskriptoru zařízení Univerzálnost sběrnice USB je také založena na možnosti připojovat k hostiteli zařízení různého charakteru. Tuto vlastnost umožňují deskriptory, kterými je zařízení popsáno pro potřeby sběrnice a toku dat. Jsou to datové struktury definovaného formátu, které zařízení vyšle jako reakci na požadavek hostitele. Je definováno několik typů deskriptorů: deskriptor zařízení deskriptor konfigurace deskriptor rozhraní deskriptor brány deskriptor textového řetězce Pro HS zařízení jsou definovány i další typy popsané v literatuře [6]. Deskriptory jsou hierarchicky zřetězeny. Díky tomu lze využít možnosti více konfigurací, rozhraní a bran a tím i větší flexibility zařízení. Programově lze pak za běhu měnit vlastnosti výběrem z nabízených deskriptorů. Správné nastavení deskriptorů je jednou z podmínek úspěšné enumerace zařízení. 22

Každý deskriptor začíná dvoubytovou hlavičkou. První byte je délka deskriptoru a druhý je identifikátor typu deskriptoru. Deskriptor zařízení mají všechna zařízení pouze jeden. V něm jsou základní informace o zařízení a použité specifikaci USB, podle které se zařízení chová. Mezi základní informace patří kód třídy (definovaný organizací USB-IF), ke které zařízení patří a případně používaný protokol třídy, velikost paměti brány 0, která musí být minimálně 8 bytů a maximálně 64 bytů, indexy textových řetězců popisující výrobce a zařízení v textové podobě. Velice důležité jsou pole idvendor a idproduct, což jsou identifikátory výrobce VID (Vendor ID) a výrobku PID (Product ID). Na základě těchto dvou polí vybere hostitelský systém vhodný ovladač zařízení. Označení výrobku si určuje výrobce sám. Přidělení kódu výrobce provádí organizace USB-IF. Posledním polem v deskriptoru zařízení je počet možných konfigurací zařízení. Pro každou konfiguraci musí být samostatný konfigurační deskriptor i se všemi hierarchicky svázanými deskriptory. Deskriptor zařízení obsahuje: VID (Vendor ID) číselný identifikátor výrobce (16b) PID (Produkt ID) číselný identifikátor výrobku (16b) Manufacturer ID odkaz na řetězec identifikující výrobce Manufacturer odkaz na řetězec popisující výrobce Product odkaz na řetězec popisující výrobek Serial Number odkaz na řetězec sériového čísla Počet konfigurací počet konfiguračních deskriptorů Deskriptor konfigurace určuje počet rozhraní zařízení v konfiguraci. Každé zařízení může mít více konfigurací, například s různým druhem napájení zařízení, nebo jiným rozložením bran pro jednotlivé rozhraní. Deskriptor obsahuje také informace o režimu napájení a maximální velikosti odebíraného proudu ze sběrnice. Tyto informace může hostitel využít pro řízení napájení sběrnice. Dále obsahuje celkovou velikost všech deskriptorů posílaných při požadavku o odeslání deskriptoru konfigurace. S ním se posílají deskriptory všech rozhraní konfigurace, deskriptory bran rozhraní a vlastní deskriptory třídy zařízení. Deskriptor rozhraní popisuje rozdělení bran pro jednu funkci zařízení (například zařízení fungující jako fax, scanner a tiskárna může mít tři deskriptory rozhraní). Deskriptor obsahuje informace o počtu bran patřících k rozhraní a o třídě zařízení, ke které funkce zařízení představovaná rozhraním patří. 23

Každá brána může být využita pouze v rámci jednoho rozhraní. Výjimkou je brána 0, která je dostupná pro celé zařízení, a proto se neuvažuje do počtu bran v deskriptoru rozhraní a není ani popsána vlastním deskriptorem brány. Pro větší flexibilitu, je možné definovat alternativní nastavení pro každé rozhraní a tím lze měnit vlastnosti bran za běhu, bez vlivu na ostatní rozhraní. Deskriptor brány popisuje vlastní nastavení brány, tj. typ a adresu brány, největší možnou velikost datového paketu, který lze branou najednou přenášet a pro časový typ brány také periodu přenosu. Pro izochronní typ brány hostitel používá hodnotu v poli maximální velikosti dat při časovém rozvrhování paketů v rámci. Deskriptor textového řetězce popisuje jednak podporované jazyky textů, které lze ze zařízení získat požadavkem GetDeskriptor a pak texty samotné. Všechny texty jsou v kódování UNICODE definovaném v literatuře [7]. Texty mohou být libovolně využity v závislosti podle funkce zařízení, především jsou však určeny k předání pro člověka srozumitelného popisu pro jednotlivé konfigurace a rozhraní. Počet podporovaných jazyků je omezen pouze maximální délkou deskriptoru a proto jich může být až 126. 24

3 Popis obvodu FT232BM Firma FTDI Chip vyrábí obvody FT232BM a FT245BM pracující jako konvertory USB - UART a USB - FIFO. 3.1 Základní vlastnosti FT232BM Tato kapitola uvádí stručný výčet vlastností obvodu FT232BM. Hardwarové vlastnosti: jednočipový převodník USB UART, plný handshake a plné rozhranní signálů modemu, podpora 7/8 bitového přenosu, 1/2 stop-bitů a parity (lichá, sudá, značená, mezerová, bez parity), přenosová rychlost nastavitelná v širokých mezích: o 300Bd až 3MBd (TTL), o 300Bd až 1MBd (RS232), o 300Bd až 3MBd (RS422, RS485), přijímací buffer velikosti 384B, vysílací buffer velikosti 128B nastavitelný time-out přijímače, podpora X-On/X-Off handshake, zabudovaná podpora pro událostní znaky a přerušení linky, automaticky řízený vysílací buffer pro rozhranní RS485, podpora režimů USB suspend/resume pomocí signálů SLEEP# a RI#, podpora pro napájení USB zařízení s vysokým odběrem pomocí signálu PWREN# integrovaný konvertor úrovní UART a řídicích signálů pro 5V a 3,3V logiku, integrovaný regulátor 3,3V pro USB obvody, integrovaný obvod Power-On Reset, integrovaná násobička kmitočtu ze 6 na 48MHz (fázový závěs PLL), jednoduché napájení v rozsahu 4,4V až 5,25V, kompatibilita se standardy USB 1.1 a USB 2.0 (částečná, nedokáže zajistit přenosovou rychlost 480Mb/s), možnost uložení VID, PID, sériového čísla a popisu výrobku do vnější EEPROM, EEPROM programovatelná přímo v aplikaci přes USB. 25

3.2 Blokové schéma FT232BM Obrázek 3.1 - Blokové schéma obvodu FT232BM Popis blokového schéma obvodu FT232BM: 3,3V LDO regulátor (LDO Low Drop-Out) Generuje 3,3V referenční napětí pro buzení USB vysílače. Vyžaduje vnější blokovací kondenzátor připojený mezi vývody 3V3OUT a GND. Také zajišťuje napětí 3,3V pro vývod RSTOUT#. Lze je použít i pro buzení vnějších logických obvodů pracujících s 3,3V logikou do odběru 5mA. USB přijímač/vysílač Poskytuje fyzické rozhranní pro USB kabel. USB DPLL Provádí detekci hodinového a datového signálu z příchozího NRZI kódování USB. Oscilátor 6MHz Generuje referenční hodinový kmitočet 6MHz, který je odvozen z vnějšího krystalu. 26

Násobička hodin Ze 6MHz vytváří referenční kmitočet 12MHz pro SIE, UPE a UART FIFO. Také generuje 48MHz referenční hodiny pro USB DPLL a generátor přenosové rychlosti. SIE (Serial Interface Engine) Provádí paralelně-sériovou a sériově-paralelní konverzi USB dat. Ve shodě se standardem USB 1.1 zajišťuje vkládání a vyjímání synchronizačních bitů a CRC5/CRC16 generaci/testování v datovém proudu USB. UPE (USB Protocol Engine) Spravuje datový tok z řídicího koncového bodu USB. Dvoubránový TX bufer (128B) Data z výstupního koncového bodu USB se ukládají do dvoubránového TX bufferu odkud jsou vyjímána vnějším vysílacím registrem UART pod správou UART FIFO řadiče. Dvoubránový RX bufer (384B) Data z přijímacího UART registru se ukládají do dvoubránového RX bufferu před tím, než jsou vyjmuta SIE při dotazu na data ze vstupního koncového bodu. UART FIFO řadič Ovládá přenos dat mezi RX/TX buffery a vysílacím a přijímacím registrem UART. UART Zajišťuje 7/8 bitovou paralelně-seriovou a seriově-paralelní konverzi dat na RS232 (RS422, RS485) rozhraní. Řídící signály podporované jednotkou UART zahrnují RST, CTS, DSR, DTR, DCD a RI. UART poskytuje aktivační signál vysílače (TXDEN) k ovládání RS485 vysílačů. UART podporuje RTS/CTS, DSR/DTR a X-On/X-Off handshaking. Je-li handshaking vyžadován, je řešen hardwarově proto, aby se dosáhlo co nejkratších odezev. UART také podporuje RS232 přerušení a detekci stavu linek. Generátor přenosové rychlosti Obsahuje 14bitovou předděličku a 3bitový registr pro jemné nastavení přenosové rychlosti (dělí celým číslem + zlomek). Lze naprogramovat přenosové rychlosti od 300Bd do 3MBd. 27

Generátor resetu Poskytuje spolehlivý reset po připojení napájení (power-on reset). Přídavný vstup RESET# a výstup RSTOUT# dává ostatním zařízením možnost resetovat obvod FT232BM nebo se nechat resetovat od něj. V průběhu resetu je RSTOUT# ve vysoké impedanci, jinak je buzen ze zabudovaného regulátoru 3,3V. RSTOUT# může být použit pro řízení 1,5kΩ pull-upu na vývodu USBDP, je-li vyžadována zpožděná USB enumerace. Také může být použit pro reset vnějších obvodů. RSTOUT# zůstane ve stavu vysoké impedance zhruba 2ms po tom, co VCC překročí 3,5V a současně běží oscilátor a současně je RESET# v log. 1. RESET# by měl být připojen na VCC, jinak je vyžadováno připojit na něj resetovaní obvod. EEPROM rozhraní Přestože může obvod FT232BM pracovat i bez vnější EEPROM 93C46, doporučuje se tuto paměť připojit. EEPROM slouží k uložení VID, PID, sériového čísla, řetězce popisu výrobku a hodnoty odebíraného proudu. EEPROM je také vyžadována v případě, že je k počítači připojen více než jeden obvod FT232BM (unikátní sériové číslo se pak sváže s unikátním virtuálním sériovým portem). Další parametry zahrnují Repote Wake Up, izochronní přenos dat, Soft Pull Down Power-Off a deskriptor na úrovni standardů USB 1.1 nebo USB 2.0. EEPROM musí být v 16 bitové šíři jako například Microchip 93LC46B nebo ekvivalentní. Musí být schopna pracovat na rychlosti 1Mb/s při napájení 4,4 až 5,25V. EEPROM je programovatelná přímo na desce pomocí speciálního programu, nebo funkcemi uživatelského rozhranní. To dovoluje osadit desku prázdnou EEPROM a naprogramovat ji přímo při vývoji. Není-li EEPROM připojena (nebo je prázdná), použije obvod FT232BM výchozí hodnoty VID, PID, popisu výrobku a proudového odběru. V tomto případě nebude USB deskriptor obvodu obsahovat sériové číslo. 28