Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

USB Pavel Novák. Široké použití Parametry sériové rozhraní sériové rozhraní rychlost 1.5, 12, 480 Mb/s rychlost 1.5, 12, 480 Mb/s připojení zařízení.

Podobné prezentace


Prezentace na téma: "USB Pavel Novák. Široké použití Parametry sériové rozhraní sériové rozhraní rychlost 1.5, 12, 480 Mb/s rychlost 1.5, 12, 480 Mb/s připojení zařízení."— Transkript prezentace:

1 USB Pavel Novák

2 Široké použití

3 Parametry sériové rozhraní sériové rozhraní rychlost 1.5, 12, 480 Mb/s rychlost 1.5, 12, 480 Mb/s připojení zařízení až na vzdálenost 5 m připojení zařízení až na vzdálenost 5 m možnost napájení z konektoru možnost napájení z konektoru až 127 připojených zařízení až 127 připojených zařízení podpora plug&play podpora plug&play

4 Konektory Typ A Typ B Typ „mini“

5 Vývody konektoru Číslo vývodu VýznamBarva 1 +5 V červená 2 Data – bílá 3 Data + zelená 4GNDčerná

6 Kabel stíněný nebo nestíněný (pro Low Speed, max. délka 3 metry) stíněný nebo nestíněný (pro Low Speed, max. délka 3 metry) data krouceným párem, napájení rovně data krouceným párem, napájení rovně stínění je připojeno jen na straně počítače k pinu GND, zařízení ho již nepřipojuje stínění je připojeno jen na straně počítače k pinu GND, zařízení ho již nepřipojuje

7 Verze USB  přenosová rychlost max. 12 Mb/s  doplněna nejrychlejší vrstva  přenosová rychlost max. 480 Mb/s Low Speed 1.5 Mb/s Full Speed 12 Mb/s High Speed 480 Mb/s

8 Definice rychlosti zařízení Zařízení mohou být připojena za chodu, je třeba jejich zařízení rozpoznat a určit rychlost, s jakou jsou schopna komunikovat. Zařízení mohou být připojena za chodu, je třeba jejich zařízení rozpoznat a určit rychlost, s jakou jsou schopna komunikovat. Řešení: změna napětí na některém z datových vodičů. Řešení: změna napětí na některém z datových vodičů.

9 Low Speed

10 Full Speed

11 High Speed Zapojeno stejně jako Full Speed a z počátku také tak komunikuje, zvýšení rychlosti softwarově. Zapojeno stejně jako Full Speed a z počátku také tak komunikuje, zvýšení rychlosti softwarově. Zařízení USB 1.1 nemusí podporovat Full Speed Zařízení USB 1.1 nemusí podporovat Full Speed Zařízení USB 2.0 nemusí podporovat High Speed Zařízení USB 2.0 nemusí podporovat High Speed

12 Přenos dat není přenášen hodinový signál není přenášen hodinový signál příjemce se synchronizuje podle dat příjemce se synchronizuje podle dat kódování NRZI kódování NRZI bit stuffing bit stuffing datové vodiče přenáší vzájemně negovaný signál (snížení vlivu rušení) datové vodiče přenáší vzájemně negovaný signál (snížení vlivu rušení)

13 Kódování 0 – změna úrovně 1 – ponechání úrovně 0 – změna úrovně 1 – ponechání úrovně Na počátku přenosu sync-byte Na počátku přenosu sync-byte

14 Bit Stuffing příjemce se synchronizuje podle dat  nutno zajistit dostatečný počet změn příjemce se synchronizuje podle dat  nutno zajistit dostatečný počet změn po každých 6-ti jedničkách vložena nula po každých 6-ti jedničkách vložena nula příjemce nuly navíc odstraňuje příjemce nuly navíc odstraňuje paket obsahující víc než 6 jedniček za sebou je ignorován paket obsahující víc než 6 jedniček za sebou je ignorován

15 Napájení hub dodává 4.75 – 5.25 V, max. pokles o 0.35 V hub dodává 4.75 – 5.25 V, max. pokles o 0.35 V zařízení odebírá max. 100 mA zařízení odebírá max. 100 mA zařízení může požádat až o 500 mA, pokud jsou k dispozici, dostane je zařízení může požádat až o 500 mA, pokud jsou k dispozici, dostane je zařízení může specifikovat, že potřebuje méně zařízení může specifikovat, že potřebuje méně hub napájený po sběrnici je schopen dodávat max. 100 mA na port hub napájený po sběrnici je schopen dodávat max. 100 mA na port

16 Organizace sběrnice one-master, tj. většinou počítač, veškerá aktivita vychází od něj one-master, tj. většinou počítač, veškerá aktivita vychází od něj zařízení může zahájit přenos jen po vyzvání zařízení může zahájit přenos jen po vyzvání

17 Architektura max. 7 hubů, max. 127 zařízení max. 7 hubů, max. 127 zařízení

18 Typy přenosů I Řídící (Control) Řídící (Control)  k řízení HW, vysoká priorita, chybová kontrola, najednou lze přenést až 64 B Přes přerušení (Interrupt) Přes přerušení (Interrupt)  vhodné pro zařízení, která chtějí trvale přenášet málo dat (myš, klávesnice).  počítač se periodicky dotazuje

19 Typy přenosů II Hromadný (Bulk) Hromadný (Bulk)  nízká priorita, zabezpečení proti chybám  vhodné pro zařízení jako scanner, tiskárna Izochronní (Isochronous) Izochronní (Isochronous)  stálá rychlost, bez chybového zabezpečení  vhodné pro zvukové karty apod.

20 Koncové body (endpoints) každé zařízení na sběrnici má adresu každé zařízení na sběrnici má adresu k adrese se přidává číslo „koncového bodu“ k adrese se přidává číslo „koncového bodu“ koncový bod 0 pro řídící přenosy koncový bod 0 pro řídící přenosy max. 15 (6) koncových bodů max. 15 (6) koncových bodů přenos se pak chová pro program jako pipe mezi koncovým bodem a programem přenos se pak chová pro program jako pipe mezi koncovým bodem a programem

21 Enumerace enumerace = rozpoznání zařízení enumerace = rozpoznání zařízení po připojení zařízení je třeba se dozvědět co je zač – OS se dotazuje zařízení na parametry po připojení zařízení je třeba se dozvědět co je zač – OS se dotazuje zařízení na parametry parametry jsou posílány v přesně definovaných blocích, tzv. deskriptorech parametry jsou posílány v přesně definovaných blocích, tzv. deskriptorech

22 Průběh enumerace 1. zařízení zdvihne D+ nebo D– 2. hub informuje host, že je připojeno nové zařízení 3. host se zeptá, na jaký port je připojeno 4. host tento port aktivuje a provede reset USB sběrnice 5. hub dá zařízení proud 100mA, zařízení se resetuje 6. zařízení má nyní dočasně adresu 0 7. host si přečte začátek deskriptoru se základními údaji 8. host přiřadí zařízení jeho adresu 9. host si načte zbývající údaje deskriptoru 10. host přiřadí zařízení jednu z jeho konfigurací

23 Využití USB

24 Obvody FTDI Future Technology Devices International Future Technology Devices International vyrábí čipy konvertující „klasická“ rozhraní na USB vyrábí čipy konvertující „klasická“ rozhraní na USBVýhody:  není třeba znalost USB pro komunikaci přes ni Nevýhody:  v zapojení je jeden čip navíc  není možné využít všechny možnosti USB

25 FT232BM převodník USB UART převodník USB UART při připojení k RS232 komunikace Bd při připojení k RS232 komunikace Bd 7-bitový nebo 8-bitový přenos 7-bitový nebo 8-bitový přenos HW nebo SW handshake HW nebo SW handshake USB 1.1 nebo 2.0 (pouze Full Speed) USB 1.1 nebo 2.0 (pouze Full Speed) uložení VID a sériového čísla zařízení pro USB ve vnější EEPROM uložení VID a sériového čísla zařízení pro USB ve vnější EEPROM

26 FT232BM – ovladače ovladače umožňující obsluhování zařízení jako virtuálního sériového portu ovladače umožňující obsluhování zařízení jako virtuálního sériového portu  Win, MAC, Linux D2XX ovladače pro přímý přístup k zařízení D2XX ovladače pro přímý přístup k zařízení

27 FT232BM – D2XX Přenos dat: FT_Open(), FT_OpenEx() FT_Read(), FT_Write() FT_Close() Přenos dat: FT_Open(), FT_OpenEx() FT_Read(), FT_Write() FT_Close() Nastavování parametrů: FT_SetBaudRate(), FT_SetDataCharacteristics(), FT_SetTimeouts(), FT_GetStatus(), FT_SetFlowControl()… Nastavování parametrů: FT_SetBaudRate(), FT_SetDataCharacteristics(), FT_SetTimeouts(), FT_GetStatus(), FT_SetFlowControl()…

28 FT232BM – D2XX – EEPROM Pomocí tohoto API lze naprogramovat připojenou EEPROM – FT_EE_Program() Pomocí tohoto API lze naprogramovat připojenou EEPROM – FT_EE_Program() Možné nastavení parametrů: Možné nastavení parametrů:  VID, PID, manufacturer, manufacturer ID  Description, Serial Number  MaxPower, SelfPowered  USBVersion

29 FT232BM ASIX prodává za 172,- bez DPH ASIX prodává za 172,- bez DPH Nabízí též modul UMS2 (680,- bez DPH) Nabízí též modul UMS2 (680,- bez DPH)  čip s pamětí a krystalem pro osazení do patice – kompletní převodník USB UART

30 FT245BM převodník USB FIFO převodník USB FIFO rozhraní 8-bit rozhraní 8-bit signály na zápis, čtení, indikaci dat v bufferu a plného bufferu signály na zápis, čtení, indikaci dat v bufferu a plného bufferu

31 PIC16C745 6 MHz / 24 MHz 6 MHz / 24 MHz 1 instrukce na tik kromě skoků (2 tiky) 1 instrukce na tik kromě skoků (2 tiky) RISC (35 instrukcí) RISC (35 instrukcí) 8 K paměti na program, 256 bytů na data (Harvardská architektura) 8 K paměti na program, 256 bytů na data (Harvardská architektura) 22 I/O pinů 22 I/O pinů USB/UART USB/UART 3x timer 3x timer 5-ti kanálový A/D převodník 5-ti kanálový A/D převodník

32 PIC16C745 – podpora USB pouze Low Speed pouze Low Speed 3 koncové body (0,1,2) – podle specifikace 3 koncové body (0,1,2) – podle specifikace obsahuje SIE (serial interface engine) obsahuje SIE (serial interface engine) příjem dat: přerušení, ve spec. registru je zapsána adresa, kde jsou, a kolik jich je příjem dat: přerušení, ve spec. registru je zapsána adresa, kde jsou, a kolik jich je poslání dat: zapíší se do určené části paměti, zapíše se adresa a počet do registru a nahodí se bit, že jsou předána SIE poslání dat: zapíší se do určené části paměti, zapíše se adresa a počet do registru a nahodí se bit, že jsou předána SIE zpracování po max. 8 bytech zpracování po max. 8 bytech

33 PIC16C745 – podpora USB Microchip poskytuje knihovnu pro práci s USB Microchip poskytuje knihovnu pro práci s USB InitUSB(), PutUSB(), GetUSB() InitUSB(), PutUSB(), GetUSB() musí se naspecifikovat deskriptory musí se naspecifikovat deskriptory ke stažení příklad chovající se jako USB myš ke stažení příklad chovající se jako USB myš

34 const char ReportDescriptor1 [] = {0x05, 0x01,/* usage page */ 0x09, 0x02,/* usage mouse */ 0xa1, 0x01,/* collection (application) */ 0x09, 0x01,/* usage (pointer) */ 0xa1, 0x00,/* collection (linker) */ 0x05, 0x09,/* usage page (buttons) */ 0x19, 0x01,/* usage minimum (1) */ 0x29, 0x03,/* usage maximum (3) */ 0x15, 0x00,/* logical minimum (0) */ 0x25, 0x01,/* logical maximum (0) */ 0x95, 0x03,/* report count (3 bytes) */ 0x75, 0x01,/* report size (1 bit) */ 0x81, 0x02, /* input (3 bits) */ 0x95, 0x01,/* report count (1 byte) */ 0x75, 0x05,/* Report size (5 bits) */ 0x81, 0x01, /* input (constant 5 bit padding) */ 0x05, 0x01,/* usage page (generic desktop) */ 0x09, 0x30,/* usage X */ 0x09, 0x31,/* usage Y */ 0x15, 0x81,/* logical minimum -127 */ 0x25, 0x7F,/* logical maximum 127 */ 0x75, 0x08,/* report size (8) */ 0x95, 0x03,/* report count 2 */ 0x81, 0x06,/* input (2 position butes X & Y) */ 0xc0, 0xc0};/* end collection */

35 const unsigned int ReportDescrSize = sizeof(ReportDescriptor1); const char DeviceDescriptor [] = {0x12, DEVICE, 0x10, 0x01, 0x00, 0x00, 0x00, 0x08, 0xD8, 0x04,0x01, 0x00, 0x00, 0x02, 0x01, 0x02, 0x00, 0x01}; const char ConfigDescriptor [] = {0x09, CONFIGURATION, 0x22, 0x00, 0x01, 0x01, 0x00, 0xA0, 0x32, /* Interface Descriptor */ 0x09, INTERFACE, 0x00, 0x00, 0x01, 0x03, 0x01, 0x02, 0x00, /* HID descriptor */ 0x09, 0x21, 0x00, 0x01, 0x00, 0x01, 0x22, sizeof(ReportDescriptor1), sizeof(ReportDescriptor1)>>8, /* Endpoint 1 descriptor */ 0x07, ENDPOINT, 0x81, 0x03, 0x04, 0x00, 0x0A}; const char HIDDescriptor [] = {0x09, 0x21, 0x00, 0x01, 0x00, 0x01, 0x22, sizeof(ReportDescriptor1), sizeof(ReportDescriptor1)>>8}; const char String0 [] = { 4, STRING, 9, 4}; const char String1 [] = {54, STRING, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'c', 0, 'h', 0, 'i', 0, 'p', 0, ' ', 0, 'T', 0, 'e', 0, 'c', 0, 'h', 0, 'n', 0, 'o', 0, 'l', 0, 'o', 0, 'g', 0, 'y', 0, ',', 0, ' ', 0, 'I', 0, 'n', 0, 'c', 0, '.', 0}; const char String2 [] = {92, STRING, 'P', 0, 'i', 0, 'c', 0, '1', 0, '6', 0, 'C', 0, '7', 0, '4', 0, '5', 0, '/', 0, '7', 0, '6', 0, '5', 0, ' ', 0, 'U', 0, 'S', 0, 'B', 0, ' ', 0, 'S', 0, 'u', 0, 'p', 0, 'p', 0, 'o', 0, 'r', 0, 't', 0, ' ', 0, 'F', 0, 'i', 0, 'r', 0, 'm', 0, 'w', 0, 'a', 0, 'r', 0, 'e', 0, ',', 0, ' ', 0, 'V', 0, 'e', 0, 'r', 0, '.', 0, ' ', 0, '2', 0, '.', 0, '0', 0, '0', 0};

36 void main() { static bit Button_RA4 = 0; unsigned char i; unsigned char vector = 0; unsigned char buffer [4]; const signed char table [] = {-4, -4, -4, 0, 4, 4, 4, 0}; // The table array contains the directional data for simulated mouse movement. The Y direction // leads the X direction by two in the array (i.e (-4,4) then (-4,0) then (-4, 4) then (0, 4) // etc.) X vectors are positive from left to right on the screen. Y vectors are positive for // top to bottom. The result of all these vectors is the cursor moving in a continual octogon. TRISB = 0; PORTB = 0; TRISA = 0x10;// RA4 is and input PORTA = 0; for (i = 0; i < 50; i ++);// Small delay (greater than 16us) in order to InitUSB ();// allow SIE to come online before beginning USB // initialization buffer [0] = 0; i = 15; OPTION = 0x07;// TMR0 prescaler 1:256

37 while (1) { if (T0IF) {// Poll all functions every 10.9ms T0IF = 0; ServiceUSB();// Service USB functions if (i > 14) {// Increment octogon vectors buffer[1] = table[vector & 0x07];// X vector (limit to length of table array) buffer[2] = table[(vector+2) & 0x07];// Y vector (leads X by two) // (limit to length of table array) i = 0; vector++; } if (ConfiguredUSB()) { // Wait until device is configured before using // EP1. If Endpoints 1 or 2 are used before // the device is configured, errors will occur. if (PutEP1(4, buffer)) // Increment i if EP1 IN buffer is accessible i++;// to the PIC. If not accessible, try again next time. } if (Button_RA4 && RA4) Button_RA4 = 0; if (!RA4 && !Button_RA4) {// if RA4 button is pressed on PICDEM USB board RemoteWakeup();// perform remote wakeup Button_RA4 = 1; }

38 PIC16C745 - dostupnost ASIX prodává za 108,- bez DPH ASIX prodává za 108,- bez DPH nenašel jsem levný programátor nenašel jsem levný programátor nejlevnější od ASIX – programátor PRESTO – 1980,- bez DPH nejlevnější od ASIX – programátor PRESTO – 1980,- bez DPH

39 TUSB3210 podobný procesor od Texas Instruments podobný procesor od Texas Instruments události na USB sběrnici také vyvolávají přerušení, které je nutné ošetřit události na USB sběrnici také vyvolávají přerušení, které je nutné ošetřit programuje se přes USB, nainstaluje se ovladač a zkompilovaný kód se nahrává do čipu při jeho resetu (např. při připojení) programuje se přes USB, nainstaluje se ovladač a zkompilovaný kód se nahrává do čipu při jeho resetu (např. při připojení) pro trvalé uložení programu je nutná externí EEPROM připojená přes I 2 C pro trvalé uložení programu je nutná externí EEPROM připojená přes I 2 C

40 AT90S, ATmega8 „obyčejný“ AVR bez podpory USB „obyčejný“ AVR bez podpory USB USB si sám vykomunikoval Igor Češko USB si sám vykomunikoval Igor Češko k dispozici zdrojové kódy pro převodník USB – 8-pinový I/O port a záznamník do EEPROM přes USB k dispozici zdrojové kódy pro převodník USB – 8-pinový I/O port a záznamník do EEPROM přes USB oba lze koupit např. na obchod.hw.cz oba lze koupit např. na obchod.hw.cz

41 Čipy Ubicom řady SX Michael Hetherington Michael Hetherington podobně jako Igor Češko pro AVR podobně jako Igor Češko pro AVR zdrojový kód, čip se přihlásí jako USB klávesnice a napíše „California dreamin‘“ zdrojový kód, čip se přihlásí jako USB klávesnice a napíše „California dreamin‘“ /dev/keys/usbdemo-mh.htm /dev/keys/usbdemo-mh.htm /dev/keys/usbdemo-mh.htm /dev/keys/usbdemo-mh.htm prodává MES Praha (www.mespraha.cz) prodává MES Praha (www.mespraha.cz)

42 RTL8150 konvertor USB – Ethernet konvertor USB – Ethernet není programovatelný, ale Realtek poskytuje kompletní datasheet, schéma zapojení a drivery pro Win a Linux není programovatelný, ale Realtek poskytuje kompletní datasheet, schéma zapojení a drivery pro Win a Linux

43 Další zajímavé obvody konventory USB – ATAPI konventory USB – ATAPI  ISP-1581 (Phillips), PL-2507 (Prolific), TUSB6250 (Texas Instruments) USB – Ethernet konvertor USB – Ethernet konvertor  PL-2311 (Prolific) DA převodníky (ext. zvuk. karty, …) DA převodníky (ext. zvuk. karty, …)  PCM2702 (Texas Instruments) IrDA – USB konvertor IrDA – USB konvertor  STIr4200 (SigmaTel)

44 Použité zdroje Elektronické zdroje Elektronické zdroje Literatura David Matoušek: USB prakticky s obvody FTDI Literatura David Matoušek: USB prakticky s obvody FTDI


Stáhnout ppt "USB Pavel Novák. Široké použití Parametry sériové rozhraní sériové rozhraní rychlost 1.5, 12, 480 Mb/s rychlost 1.5, 12, 480 Mb/s připojení zařízení."

Podobné prezentace


Reklamy Google