namai - internetas
USB magistralės protokolas. USB sąsajos pagrindai USB 2.0 protokolo aprašymas
  • Mini-B jungtis ECN: Pranešimas paskelbtas 2000 m. spalio mėn.
  • Klysta, nuo 2000 m. gruodžio mėn: Pranešimas paskelbtas 2000 m. gruodžio mėn.
  • Ištraukiami / nuleidžiami rezistoriai ECN
  • Nuo 2002 m. gegužės mėn: Pranešimas paskelbtas 2002 m. gegužės mėn.
  • Sąsajų asociacijos ECN: Pranešimas paskelbtas 2003 m. gegužės mėn.
    • Pridėta naujų standartų, leidžiančių kelias sąsajas susieti su viena įrenginio funkcija.
  • Suapvalintas nuožulnus ECN: Pranešimas paskelbtas 2003 m. spalio mėn.
  • Unicode ECN: Pranešimas paskelbtas 2005 m. vasario mėn.
    • Šis ECN nurodo, kad eilutės yra koduojamos naudojant UTF-16LE.
  • Inter-Chip USB priedas: Pranešimas paskelbtas 2006 m. kovo mėn.
  • Papildymas keliaujant 1.3: Pranešimas paskelbtas 2006 m. gruodžio mėn.
    • USB On-The-Go suteikia galimybę dviem USB įrenginiams bendrauti tarpusavyje be atskiro USB pagrindinio kompiuterio. Praktiškai vienas iš įrenginių veikia kaip kito šeimininkas.

USB OTG

USB 3.0

USB 3.0 yra paskutiniame kūrimo etape. USB 3.0 kuria šios įmonės: Microsoft, Texas Instruments, NXP Semiconductors. USB 3.0 specifikacijoje atnaujinto standarto jungtys ir laidai bus fiziškai ir funkcionaliai suderinami su USB 2.0. USB kabelis 2.0 yra keturios eilutės - pora duomenų priėmimui / perdavimui, viena maitinimui ir dar viena įžeminimui. Be šių, USB 3.0 prideda penkias naujas linijas (dėl to kabelis yra daug storesnis), tačiau nauji kaiščiai yra lygiagrečiai seniesiems kitoje kaiščių eilutėje. Dabar galite lengvai nustatyti, ar kabelis priklauso vienai ar kitai standarto versijai, tiesiog pažvelgę ​​į jo jungtį. USB 3.0 specifikacija padidina maksimalų perdavimo greitį iki 4,8 Gb/s – tai yra eilės tvarka daugiau nei 480 Mb/s, kurį gali užtikrinti USB 2.0. USB 3.0 gali pasigirti ne tik didesniu duomenų perdavimo greičiu, bet ir padidinta srove nuo 500 mA iki 900 mA. Nuo šiol vartotojas iš vieno šakotuvo galės ne tik maitinti kur kas didesnį įrenginių skaičių, bet ir Aparatūra, anksčiau tiekiamas su atskirais maitinimo šaltiniais, jų atsikratys.


Čia GND yra „dėklo“ grandinė, skirta maitinti periferinius įrenginius, VBus yra +5 V, taip pat maitinimo grandinėms. Duomenys D+ ir D− laidais perduodami skirtingai (būsenos 0 ir 1 (oficialios dokumentacijos terminologijoje atitinkamai diff0 ir diff1) nustatomos pagal potencialų skirtumą tarp linijų, didesnių nei 0,2 V ir su sąlyga, kad viename iš linijų (D− esant diff0 ir D+ ties diff1) potencialas, palyginti su GND, yra didesnis nei 2,8 V. Diferencialinis perdavimo būdas yra pagrindinis, bet ne vienintelis (pavyzdžiui, inicijavimo metu įrenginys informuoja apie priimkite informaciją apie įrenginio palaikomą režimą (viso greičio arba mažo greičio), ištraukdami vienos iš linijų duomenis į V_BUS per 1,5 kOhm rezistorių (D− mažo greičio režimui ir D+ visu greičiui). režimu, įrenginiai, veikiantys didelės spartos režimu, šiame etape elgiasi kaip įrenginiai, veikiantys viso greičio režimu). Taip pat kartais aplink laidus yra šviesolaidžio apvija, apsauganti nuo fizinė žala. .

USB 3.0 B tipo jungtis

A tipo USB 3.0 jungtis

USB 3.0 laidai ir jungtys

USB trūkumai

Nors didžiausias USB 2.0 pralaidumas yra 480 Mbps (60 MB/s), praktiškai pralaidumas, arti piko, nepavyksta. Tai paaiškinama gana dideliais USB magistralės vėlavimais nuo duomenų perdavimo užklausos iki faktinės perdavimo pradžios. Pavyzdžiui, „FireWire“ magistralė, nors jos didžiausias pralaidumas yra mažesnis – 400 Mb/s, ty 80 Mb/s mažiau nei USB 2.0, tačiau iš tikrųjų užtikrina didesnį duomenų mainų su standžiaisiais diskais ir kitais saugojimo įrenginiais pralaidumą.

USB ir FireWire/1394

protokolas USB atmintinė, kuris yra komandų perdavimo būdas

Be to, USB atmintis nebuvo palaikoma senesnėse operacinėse sistemose (originalioje „Windows 98“), todėl reikėjo įdiegti tvarkykles. Juose taip pat buvo palaikomas SBP-2. Be to, senesnėse operacinėse sistemose (Windows 2000) USB saugojimo protokolas buvo įdiegtas sutrumpinta forma, todėl prijungtame kompiuteryje nebuvo leidžiama naudoti CD/DVD įrašymo funkcijos. USB diskas,SBP-2 niekada neturėjo tokių apribojimų.

USB magistralė yra griežtai orientuota, todėl norint prijungti 2 kompiuterius arba 2 išorinius įrenginius, reikia papildomos įrangos. Kai kurie gamintojai palaiko spausdintuvo ir skaitytuvo arba fotoaparato ir spausdintuvo prijungimą, tačiau šie diegimai labai priklauso nuo gamintojo ir nėra standartizuoti. 1394/FireWire magistralei šis trūkumas netaikomas (galima prijungti 2 vaizdo kameras).

Tačiau dėl „Apple“ licencijavimo politikos ir daug sudėtingesnės aparatinės įrangos 1394 yra mažiau paplitęs. pagrindinės plokštės senesni kompiuteriai neturi 1394 valdiklių. Kalbant apie periferinius įrenginius, 1394 palaikymas paprastai nerandamas nieko kito, išskyrus vaizdo kameras ir išorinių standžiųjų diskų ir CD / DVD diskų įrenginius.

taip pat žr

  • FireWire
  • TransferJet

Šaltiniai

Nuorodos

  • USB naujienos (vokiečių kalba)

Užtikrina duomenų mainus tarp pagrindinio kompiuterio ir įrenginio. Protokolo lygmeniu sprendžiamos tokios užduotys kaip perdavimo ir srauto valdymo patikimumo ir patikimumo užtikrinimas. Visas srautas USB magistrale perduodamas per operacijas; kiekvienoje operacijoje apsikeitimas galimas tik tarp pagrindinio kompiuterio ir adresuoto įrenginio (jo galinio taško).

Visos operacijos (keitimai) su USB įrenginiais susideda iš dviejų arba trijų paketų; tipinės paketų sekos operacijose parodytos Fig. 1. Kiekvieną operaciją suplanuoja ir inicijuoja pagrindinis valdiklis, kuris siunčia operacijos prieigos rakto paketą. Operacijos prieigos raktas apibūdina perdavimo tipą ir kryptį, pasirinkto USB įrenginio adresą ir galinio taško numerį. Prietaisas, kuriam skirtas žymeklis, atpažįsta savo adresą ir pasiruošia apsikeitimui. Žetonu identifikuotas duomenų šaltinis perduoda duomenų paketą. Šiuo metu operacijos, susijusios su izochroniniais pervedimais, baigiamos – nėra paketo gavimo patvirtinimo. Kitų tipų perdavimo atveju yra patvirtinimo mechanizmas, užtikrinantis garantuotą duomenų pristatymą. Paketų formatai parodyti pav. 2, pakuotės tipai pateikti lentelėje. Visuose paketo laukuose, išskyrus CRC lauką, pirmiausia perduodami mažiausiai reikšmingi bitai (laiko diagramose kairėje rodomas mažiausiai reikšmingas bitas). Paketas prasideda sinchronizavimo seka ir baigiasi terminatoriumi - EOP. Paketo tipas nustatomas pagal PID lauką. Likusių laukų paskirtis paaiškinta toliau. Sinchronizavimo ir EOP laukų ilgis nurodomas perdavimui naudojant FS/LS; didelės spartos perdavimo atveju laukas Sync išplečiamas iki 32 bitų intervalų, o EOP - iki 8 (SOF paketuose EOP laukas yra 40 bitų ).

Visi gauti paketai yra tikrinami, ar nėra klaidų, kaip leidžia priimti paketų formatai ir tam tikros sutartys:

  • paketas prasideda sinchronizavimo seka, po kurios nurodomas jo PID (paketo identifikatorius). Po identifikatoriaus seka atvirkštinė kopija – Patikrinkite. Dviejų kopijų neatitikimas laikomas klaidos požymiu;
  • Paketo turinys (visi paketo laukai, išskyrus PID ir EOP atributą) yra apsaugotas CRC kodu: 5 bitų žymeklio paketams, 16 bitų duomenų paketams. CRC, kuris neatitinka laukiamos vertės, laikomas klaida;
  • paketas baigiasi specialiu EOP signalu; Jei pakete yra ne sveikasis skaičius baitų, jis laikomas klaidingu. Klaidingas EOP, net ir ant baitų ribos, neleis priimti paketo dėl beveik neišvengiamos CRC klaidos šioje situacijoje;
  • Paketiniai duomenys į fizinį sluoksnį (į magistralę) perduodami naudojant bitų užpildymą (po šešių bitų įterpiamas nulis), kuris neleidžia prarasti bitų sinchronizacijos monotoninio signalo metu. Daugiau nei šešių vieno bitų gavimas iš eilės laikomas klaida (HS – kadro pabaigos ženklas).

Aptikus bet kurią iš šių klaidų pakete, imtuvas jį laiko negaliojančiu. Nei įrenginys, nei pagrindinis valdiklis nereaguoja į gautus paketus su klaida. Izochroninio perdavimo metu neteisingi paketiniai duomenys turėtų būti tiesiog ignoruojami (jie prarandami); Kitų tipų transmisijai naudojamos patikimą pristatymą užtikrinančios priemonės.

Norint aptikti, kad partneris neatsako į paketą, kiekvienas įrenginys turi skirtojo laiko skaitiklį, kuris nustoja laukti atsakymo praėjus tam tikram laikui. USB turi ribotą magistralės reiso laiką: laikas nuo sugeneruoto paketo EOP pabaigos iki atsakymo paketo gavimo pradžios. Galutiniam įrenginiui (ir pagrindinio kompiuterio valdikliui) didžiausias atsako delsa (atsakymo laikas) nuo matomo EOP pabaigos iki paketo pradžios įvedimo normalizuojama. Stebulių paketų perdavimo delsa normalizuojama, kabelių signalo sklidimo delsa normalizuojama. Laiko pabaigos skaitiklis turi atsižvelgti į maksimalų galimą vėlavimą esant galiojančiai magistralės konfigūracijai: iki 5 tarpinių šakotuvų, iki 5 metrų kiekvienas kabelis. Leidžiama skirtojo laiko reikšmė, išreikšta bitų intervalais (bt), priklauso nuo greičio:

  • FS/LS greičiui, vieno kabelio segmento įvestas delsimas yra mažas, palyginti su bitų intervalu (bt). Remiantis tuo, USB 1.0 leidžia apskaičiuoti leistiną delsą naudoja šį modelį. Kiekvienam kabelio segmentui skiriama 30 ns, o šakotuvui – 40 ns. Taigi, penki tarpiniai šakotuvai su jų kabeliais dvigubo apsisukimo metu įveda 700 ns vėlavimą, o tai atitinka maždaug 8,5 bt FS. FS įrenginiui atsako delsa neturėtų viršyti 6,5 bt (o atsižvelgiant į jo laidą - 7,5 bt). Remiantis tuo, specifikacijoje reikalaujama, kad FS siųstuvai naudotų 16–18 bt skirtojo laiko skaitiklį;
  • esant HS greičiui, vėlavimas kabelio segmente yra daug didesnis nei bitų intervalas, o USB 2.0 skaičiavimo modelis šiek tiek skiriasi. Čia kiekvienam kabelio segmentui skiriama 26 ns, o šakotukui – 4 ns plius 36 bt. Taigi, praėjimas per 6 kabelio segmentus du kartus (2 × 6 × 26 = 312 ns ≈ 150 bt) ir penkis šakotuvus (2 × 5 × 4 = 40 ns ≈ 19 bt plius 2 × 5 × 36 = 360 bt) užtrunka iki 529 bt . Įrenginio atsako delsa priimtina iki 192 bt, o bendras vėlavimas, atsižvelgiant į kabelius ir šakotuvus, bus iki 721 bt. Remiantis tuo, specifikacijoje reikalaujama, kad HS siųstuvai naudotų 736–816 bt skirtojo laiko skaitiklį.

Pagrindinis valdiklis turi savo klaidų skaitiklį, susietą su kiekvienu visų įrenginių galiniu tašku, kuris iš naujo nustatomas į nulį, kai suplanuojama kiekviena operacija. Šis skaitiklis skaičiuoja visas protokolo klaidas (įskaitant skirtojo laiko klaidas), o jei klaidų skaičius viršija slenkstį (3), tada kanalas su šiuo galutiniu tašku sustabdomas ir pranešama jo savininkui (įrenginio tvarkyklei arba USBD). Kol neviršijama slenkstis, pagrindinis kompiuteris apdoroja neizochroninių perdavimų klaidas, bandydamas iš naujo atlikti operacijas, nepranešdamas kliento programinei įrangai. Izochroniniai perdavimai nekartojami; pagrindinis kompiuteris nedelsiant praneša apie klaidas.

Rankų paspaudimo paketai naudojami patvirtinimui, srauto valdymui ir klaidų signalizavimui. Iš šių paketų pagrindinis valdiklis gali siųsti įrenginiui tik ACK paketą, patvirtinantį duomenų paketo priėmimą be klaidų. Įrenginys naudoja šiuos rankos paspaudimo paketus, kad atsakytų į pagrindinį kompiuterį:

ACK – patvirtinimas (teigiamas) apie sėkmingą išvesties arba valdymo operacijos atlikimą;
NAK - neigiamas patvirtinimas, yra ženklas, kad įrenginys nėra pasirengęs atlikti šią operaciją (nėra duomenų, kuriuos būtų galima perduoti pagrindiniam kompiuteriui, buferyje nėra vietos priėmimui, valdymo operacija nebaigta). Tai įprastas atsakymas, apie kurį niekas nežinos, išskyrus pagrindinio kompiuterio valdiklį, kuris vėliau yra priverstas pakartoti operaciją. Įvesties operacijose įrenginys pateikia NAK atsakymą, o ne duomenų paketą, jei jie nėra paruošti;
STALL yra rimtas klaidos pranešimas, reiškiantis, kad be specialaus programinės įrangos įsikišimo dirbti su šiuo galutiniu tašku tampa neįmanoma. Šis atsakymas perduodamas ir USBD tvarkyklei, kuri atšaukia tolesnes operacijas su šiuo tašku, ir kliento tvarkyklei, iš kurios programinės įrangos intervencija turėtų atblokuoti tašką. Kontrolinėse operacijose (Control) STALL atsakymas reiškia, kad užklausa negali būti įvykdyta; Taško atblokuoti nereikia.

Išvesties srauto valdymas, kuris remiasi tik galimybe atsakyti NAK, jei įrenginys neparengtas, yra labai neefektyvus magistralės pralaidumo panaudojimas: didelis duomenų paketas iššvaistomas magistralėje, siekiant užtikrinti, kad įrenginys neparengtas. Naudojant USB 2.0, šios problemos išvengiama atliekant masinio išdavimo ir valdymo operacijas naudojant Ping protokolą. Pagrindinis kompiuteris gali apklausti įrenginio pasirengimą gauti maksimalų paketo dydį, nusiųsdamas jam PING zondo prieigos raktą. Įrenginys gali atsakyti į šį prieigos raktą ACK (jei paruoštas) arba NAK (jei negali gauti didžiausio paketo dydžio). Neigiamas atsakymas privers šeimininką bandyti dar kartą vėliau, teigiamas atsakymas leis atlikti išvesties operaciją. Į išėmimo operaciją po teigiamo testo atsakymo įrenginio atsakymai yra įvairesni:

  • ACK reiškia sėkmingą priėmimą ir pasirengimą priimti kitą pilno dydžio paketą;
  • NYET reiškia sėkmingą priėmimą, bet nepasiruošimą kitam paketui;
  • NAK yra netikėtas atsakas (jis prieštarauja testo sėkmei), tačiau tai įmanoma, jei įrenginys staiga tampa laikinai nepasiekiamas.

Galinių taškų deskriptoriuose esantis didelės spartos įrenginys praneša apie galimą NAK siuntimų intensyvumą: masinio ir valdymo galinių taškų lauke bInterval nurodomas mikrokadrų skaičius NAK (0 reiškia, kad įrenginys niekada neatsakys NAK į išvesties operaciją).

Masyvas, pertraukimas ir valdymas užtikrina patikimą duomenų perdavimą. Sėkmingai gavęs paketą, duomenų imtuvas išsiunčia patvirtinimą – ACK patvirtinimo paketą. Jei duomenų imtuvas aptinka klaidą, paketas yra ignoruojamas ir į jį nesiunčiamas joks atsakymas. Duomenų šaltinis mano, kad kitas paketas buvo sėkmingai perduotas, kai gauna ACK iš imtuvo. Jei patvirtinimas negaunamas, kitos operacijos metu šaltinis pakartoja siųsdamas tą patį paketą. Tačiau patvirtinimo paketas gali būti prarastas dėl trukdžių; kad tokiu atveju pakartotinis imtuvo siuntimas paketo nebūtų suvokiamas kaip kita duomenų dalis, duomenų paketai sunumeruojami. Numeravimas yra modulo 2 (1 bito numeris): paketai skirstomi į lyginius (su identifikatoriumi DATA0) ir nelyginius (DATA1). Kiekvienam galutiniam taškui (išskyrus izochroninį) pagrindinis kompiuteris ir įrenginys turi perjungimo bitus, jų pradinės būsenos vienaip ar kitaip yra nuoseklios. IN ir OUT operacijos perduoda ir laukia duomenų paketų su identifikatoriais DATA0 arba DATA1, atitinkančiais esamą šių bitų būseną. Duomenų imtuvas perjungia savo bitą be klaidų priimant duomenis su laukiamu identifikatoriumi, duomenų šaltinis persijungia gavęs patvirtinimą. Jei imtuvas gauna paketą be klaidų su netikėtu ID, jis siunčia ACK, bet nepaiso pakete esančių duomenų, nes paketas yra jau gautų duomenų pakartotinis siuntimas.

Sandoriai už įvairių tipų perdavimo protokolai skiriasi dėl pralaidumo, atsako laiko, pristatymo patikimumo ir įvesties bei išvesties sinchronizavimo garantijos arba negarantijos. Priklausomai nuo šių charakteristikų, operacijose naudojamas vienas ar kitas aukščiau aprašytas protokolo mechanizmas. Atminkite, kad perdavimo klaidų aptikimas veikia visose operacijose, todėl per klaidą gauti duomenys visada yra ignoruojami. Kokie protokolo mechanizmai naudojami atliekant dabartinę operaciją, „žino“ ir pagrindinio kompiuterio valdiklis (remiantis anksčiau gautu galutinio taško aprašu), ir USB įrenginys, kuriame šis galutinis taškas yra įdiegtas.

Izochroniniai sandoriai užtikrina garantuotus valiutos keitimo kursus, bet neužtikrina patikimo pristatymo. Dėl šios priežasties protokole nėra patvirtinimų, nes paketų atkūrimas sukels duomenų perdavimo planų nesėkmę. Nėra patvirtinimu pagrįsto srauto valdymo – įrenginys turi palaikyti srauto greitį, nurodytą izochroniniame galutinio taško apraše.

Izochroninės išvesties operacijos susideda iš dviejų paketų, kuriuos siunčia pagrindinis valdiklis, OUT prieigos rakto ir DATA duomenų paketo. Vykdydamas įvesties operaciją, pagrindinis kompiuteris siunčia IN prieigos raktą, į kurį įrenginys atsako duomenų paketu, kurio duomenų lauko ilgis gali būti lygus nuliui (jei nėra paruoštų duomenų). Bet koks kitas įrenginio atsakas (taip pat ir „tyla“) pagrindinio kompiuterio laikomas klaida, dėl kurios šis kanalas sustabdomas.

Naudojant izochroninį keitimą, galima kontroliuoti patikimumą (atmesti paketus su klaidomis) ir duomenų vientisumą (nustatyti trūkstamo paketo faktą). Vientisumo kontrolė pagrįsta griežtu valiutos kurso determinizmu – pagal jo aprašą taškas tikisi sandorio su 2bInterval-1 mikrokadrų periodu. Tipiškam izochroniniam galutiniam taškui viename mikrokadre galima tik viena operacija, o klaida priimant paketą negauna jokių gautų duomenų mikrokadre, kuriame jų tikėtasi. Taigi, paketų numeravimas (Toggle Bit jungiklis) nereikalingas. Viso greičio įrenginiai ir pagrindiniai valdikliai turėtų siųsti tik DATA01 tipo paketus. Plačiajuosčio ryšio izochroniniams galiniams taškams (USB 2.0) kiekviename mikrokadre galima perduoti iki trijų duomenų paketų. Bet kuris iš šių paketų gali būti prarastas, todėl norint aptikti šią situaciją, reikalingas paketų numeravimas mikrokadre. Šiai numeracijai buvo pristatyti du nauji duomenų paketų tipai: DATA2 ir MDATA. Paketų tipų įvairovė, be numeracijos, taip pat leidžia informuoti komunikacijos partnerį apie jūsų planus dėl konkretaus mikrokadro. IN operacijose įrenginys pagal paketo identifikatorių nurodo, kiek dar paketų ketina išleisti tame pačiame mikrokadre, o tai leidžia pagrindiniam kompiuteriui išvengti nereikalingų įvesties bandymų. Taigi, jei vienas paketas perduodamas mikrokadre, tai bus DATA0; jei du, seka bus DATA1, DATA0; trys - DATA2, DATA1, DATA0. OUT operacijos naudoja MDATA (daugiau duomenų) paketą, kad išvestų ne paskutinį paketą mikrokadrelyje, o paskutinio paketo identifikatorius rodo, kiek paketų buvo perduota prieš jį. Taigi, su viena išvesties operacija naudojamas DATA0 paketas, su dviem - seka MDATA, DATA1, su trimis - MDATA, MDATA, DATA2. Visoms operacijoms, išskyrus paskutinę mikrokadre, turi būti naudojamas maksimalus paketo dydis. Atminkite, kad kitos operacijos gali būti įtrauktos tarp plačiajuosčio ryšio operacijų mikrokadre.

Sąsaja USB (Universal Serial Bus – Universal Serial Interface) yra skirta išoriniams įrenginiams prijungti prie asmeninio kompiuterio. Leidžia keistis informacija su išoriniais įrenginiais trimis greičiais (specifikacija USB 2.0):

  • Mažas greitis ( Mažas greitis- LS) - 1,5 Mbit/s;
  • Pilnas greitis ( Pilnas greitis- FS) - 12 Mbit/s;
  • Didelis greitis ( Didelis greitis- HS) - 480 Mbit/s.
Periferiniams įrenginiams prijungti naudojamas 4 laidų laidas: +5 V maitinimo šaltinis, signaliniai laidai D+ Ir D-, bendras laidas.
Prisijungia USB sąsaja šeimininkas (šeimininkas) ir įrenginius. Šeimininkas viduje Asmeninis kompiuteris ir kontroliuoja visos sąsajos veikimą. Norėdami leisti prie vieno USB prievado prijungti daugiau nei vieną įrenginį, naudokite stebulės (centras- įrenginys, užtikrinantis ryšį su kitų įrenginių sąsaja). Šaknies stebulė (šaknies stebulė) yra kompiuterio viduje ir tiesiogiai prijungtas prie pagrindinio kompiuterio. USB sąsaja naudoja specialų terminą "funkcija" - tai logiškai sukomplektuotas įrenginys, kuris atlieka konkrečią funkciją. USB sąsajos topologija yra 7 lygių rinkinys ( pakopa): pirmame lygyje yra pagrindinis ir šakninis centras, o paskutiniame lygyje yra tik funkcijos. Įrenginys, kuriame yra šakotuvas ir viena ar daugiau funkcijų, vadinamas sudėtinis (sudėtinis prietaisas).
Centro arba funkcijos prievadas, jungiantis prie aukštesnio lygio šakotuvo, vadinamas aukštesnio lygio prievadu ( prieš srovę esantis uostas), o šakotuvo prievadas, jungiantis prie žemesnio lygio šakotuvo arba funkcijos, vadinamas pasroviniu prievadu ( pasroviui skirtas uostas).
Visus duomenų perdavimą per sąsają inicijuoja pagrindinis kompiuteris. Duomenys perduodami paketų pavidalu. USB sąsaja naudoja kelių tipų paketus:
  • ženklas-paketas (žetonų paketas) aprašo duomenų perdavimo tipą ir kryptį, įrenginio adresą ir galinio taško serijos numerį (CT yra adresuojama USB įrenginio dalis); Funkcijų paketai būna kelių tipų: IN, OUT, SOF, NUSTATYMAS;
  • duomenų paketas (duomenų paketas) yra perduoti duomenys;
  • patvirtinimo paketą (rankos paspaudimo paketas) skirtas pranešti apie duomenų perdavimo rezultatus; Yra keletas suderinamų paketų tipų: ACK, N.A.K., STALO.
Taigi kiekviena operacija susideda iš trijų fazių: atributų paketų perdavimo fazės, duomenų perdavimo fazės ir derybų fazės.
USB sąsaja naudoja kelių tipų informacijos perdavimą.
  • Valdykite persiuntimą (valdymo perdavimas) naudojamas įrenginio konfigūravimui, taip pat kitiems konkrečiam įrenginiui konkretus įrenginys tikslus.
  • Srautinis perdavimas (masinis perdavimas) naudojamas palyginti dideliam informacijos kiekiui perduoti.
  • Pertraukti persiuntimą (pertrauktas perdavimas) naudojamas palyginti nedideliam informacijos kiekiui perduoti, o tai svarbu laiku perduoti ją. Jis turi ribotą trukmę ir didesnį prioritetą, palyginti su kitų tipų pervedimais.
  • Izochroninis persiuntimas (izochroninis perkėlimas) taip pat vadinamas srautu realiuoju laiku. Tokio perdavimo metu perduodama informacija reikalauja realaus laiko skalės jos kūrimo, perdavimo ir priėmimo metu.

Srautiniai perdavimai būdingas garantuotas be klaidų duomenų perdavimas tarp pagrindinio kompiuterio ir funkcijos, aptinkant klaidas perdavimo metu ir pakartotinai reikalaujant informacijos.
Kai pagrindinis kompiuteris pasiruošia gauti duomenis iš funkcijos, jis funkcijai siunčia vėliavėlės paketą IN-plastikinis maišelis. Reaguodama į tai, funkcija duomenų perdavimo fazėje perduoda duomenų paketą pagrindiniam kompiuteriui arba, jei negali to padaryti, perduoda N.A.K.- arba STALO-plastikinis maišelis. N.A.K.- paketas praneša, kad funkcija laikinai neparengta perduoti duomenis, ir STALO- paketas nurodo šeimininko įsikišimo poreikį. Jei šeimininkas sėkmingai gavo duomenis, jis siunčia funkcijas derybų etape ACK
Kai pagrindinis kompiuteris pasiruošia perduoti duomenis, jis siunčia funkcijas OUT- paketas kartu su duomenų paketu. Jei funkcija sėkmingai gavo duomenis, ji siunčiama pagrindiniam kompiuteriui ACK-paketas, kitaip išsiųstas NAK- arba STALO-plastikinis maišelis.
Kontroliniai perdavimai turi būti bent du etapai: Sąrankos etapas Ir statuso stadija. Tarp jų taip pat gali būti duomenų perdavimo etapas. Sąrankos etapas naudojamas atlikti SETUP operacijos, kurio metu informacija siunčiama į KT valdymo funkciją. SETUP operacija yra NUSTATYMAS-plastikinis maišelis , duomenų paketas ir koordinavimo paketas. Jei funkcija sėkmingai priima duomenų paketą, jis siunčiamas pagrindiniam kompiuteriui ACK-plastikinis maišelis. Priešingu atveju sandoris baigiamas.
IN duomenų perdavimo etapai kontrolės perdavimai turi vieną ar daugiau IN- arba OUT- sandorių, kurių perdavimo principas yra toks pat kaip ir srautinių perdavimų. Visos operacijos duomenų perdavimo etape turi būti vykdomos viena kryptimi.
IN statuso stadija atliekama paskutinė transakcija, kuri naudojasi tais pačiais principais kaip ir srautinio perdavimo metu. Šios operacijos kryptis yra priešinga, nei naudojama duomenų perdavimo etape. Būsenos etapas naudojamas pranešti apie SETUP etapo ir duomenų perdavimo etapo rezultatus. Informacija apie būseną visada perduodama iš funkcijos pagrindiniam kompiuteriui. At kontrolės įrašas (Valdykite rašymo perdavimą) būsenos informacija perduodama operacijos būsenos stadijos duomenų perdavimo fazėje. At kontrolinis skaitymas (Kontroliuoti skaitymo perdavimą) būsenos informacija grąžinama operacijos būsenos derybų etape, po to, kai ankstesniame duomenų perdavimo etape pagrindinis kompiuteris išsiunčia nulinio ilgio duomenų paketą.
Pertraukite pervedimus gali būti IN- arba OUT- persiuntimas. Gavus IN-paketo funkcija gali grąžinti paketą su duomenimis, N.A.K.-paketas arba STALO-plastikinis maišelis. Jei funkcija neturi informacijos, kuriai reikalingas pertraukimas, tada duomenų perdavimo fazėje funkcija grįžta N.A.K.-plastikinis maišelis. Jei CT veikimas su pertraukimu sustabdomas, funkcija grįžta STALO-plastikinis maišelis. Jei reikalingas pertraukimas, funkcija grąžina reikiamą informaciją duomenų perdavimo fazėje. Jei šeimininkas sėkmingai gavo duomenis, tada jis siunčia ACK-plastikinis maišelis. Kitu atveju derybų paketo nesiunčia pagrindinis kompiuteris.
Izochroniniai sandoriai turėti bruožų perdavimo fazė Ir duomenų perdavimo fazė, bet neturi koordinavimo fazės. Šeimininkas siunčia IN- arba OUT-ženklas, po kurio KT duomenų perdavimo fazėje (už IN-ženklas) arba šeimininkas (už OUT-sign) siunčia duomenis. Izochroninės operacijos nepalaiko suderinimo fazės ir pakartotinio duomenų perdavimo klaidų atveju.

Dėl to, kad USB sąsaja įgyvendina sudėtingą informacijos mainų protokolą, sąsajos įrenginiui su USB sąsaja reikalingas mikroprocesoriaus blokas, kuris palaiko protokolą. Todėl pagrindinė galimybė kuriant sąsajos įrenginį yra naudoti mikrovaldiklį, kuris palaikys mainų protokolą. Šiuo metu visi pagrindiniai mikrovaldiklių gamintojai gamina produktus, kuriuose yra USB blokas.

Įmonės gamintojas vardas apibūdinimas

Atmel
AT43301 LS/FS šakotuvo 1-4 valdiklis su bendru tolesniu maitinimo valdymu.
AT43312A LS/FS stebulės 1-4 valdiklis su individualiu pasroviui galios valdymu.
AT43320A Mikrovaldiklis, pagrįstas AVR šerdimi. Turi integruotą USB funkciją ir šakotuvą su 4 išoriniais prievadais, veikiančiais LS/FS režimais, 512 baitų RAM, 32x8 bendrosios paskirties registrus, 32 programuojamus kaiščius, nuosekliąsias ir SPI sąsajas. Funkcija turi 3 CT su 8 baitų FIFO buferiais. Centro pasroviui skirti prievadai turi individualų maitinimo valdymą.
AT43321 Klaviatūros valdiklis AVR šerdyje. Turi integruotą USB funkciją ir šakotuvą su 4 išoriniais pasroviui prievadais, veikia LS/FS režimais, 512 baitų RAM, 16 KB ROM, 32x8 bendrosios paskirties registrus, 20 programuojamų išėjimų, nuosekliąsias ir SPI sąsajas. Funkcija turi 3 CT. Centro pasroviui skirti prievadai turi individualų maitinimo valdymą.
AT43324

Mikrovaldiklis, pagrįstas AVR šerdimi. Turi įmontuotą USB funkciją ir šakotuvą su 2 išoriniais pasroviui prievadais, veikia LS/FS režimais, 512 baitų RAM, 16 KB ROM, 32x8 bendrosios paskirties registrus, 34 programuojamus išėjimus. Klaviatūros matrica gali būti 18x8 dydžio. Valdiklis turi 4 išėjimus šviesos diodų prijungimui. Funkcija turi 3 CT. Centro pasroviui skirti prievadai turi individualų maitinimo valdymą.

AT43355 Mikrovaldiklis, pagrįstas AVR šerdimi. Turi integruotą USB funkciją ir šakotuvą su 2 išoriniais prievadais, veikiančiais LS/FS režimais, 1 KB RAM, 24 KB ROM, 32x8 bendrosios paskirties registrus, 27 programuojamus kaiščius, nuosekliąsias ir SPI sąsajas, 12 kanalų 10 bitų ADC . Funkcija turi 1 valdymo CT ir 3 programuojamus CT su 64/64/8 baitų FIFO buferiais.
Fairchild Semiconductor USB100 Manipuliatoriaus valdiklis (pelė, rutulys, vairasvirtė). Palaiko 2D/3D pelę, vairasvirtę su trimis potenciometrais, irklas su 16 mygtukų.

Intel
8x931Ax Mikrovaldiklis su MSC-51 architektūra. Jame yra integruota USB funkcija, veikianti LS/FS režimais, 256 baitai RAM, 0/8 kbaitų ROM, 8x4 bendrosios paskirties registrai, 32 programuojami kaiščiai, nuoseklioji sąsaja, klaviatūros valdymo sąsaja. Funkcija turi 3 CT su 8/16/8 baitų FIFO buferiais.
8x931Hx Mikrovaldiklis su MSC-51 architektūra. Jame yra integruota USB funkcija ir šakotuvas su 4 išoriniais prievadais, veikiantis LS/FS režimais, 256 baitai RAM, 0/8 kbaitų ROM, 8x4 bendrosios paskirties registrai, 32 programuojami išėjimai, nuoseklioji sąsaja, klaviatūros valdymas. sąsaja. Funkcija turi 3 CT su 8/16/8 baitų FIFO buferiais.
8x930Ax Mikrovaldiklis su MSC-251 architektūra. Jame yra integruota USB funkcija, veikianti LS/FS režimais, 1024 baitai RAM, 0/8/16 kbaitų ROM, 40 bendrosios paskirties registrų, 32 programuojami išėjimai, nuoseklioji sąsaja. Funkcija turi 4(6) CT su 16/1024(256)/16(32)/16(32)/(32)/(16) baitų FIFO buferiais.
8x930Hx Mikrovaldiklis su MSC-251 architektūra. Turi integruotą USB funkciją ir šakotuvą su 4 išoriniais pasroviui prievadais, veikia LS/FS režimais, 1024 baitų RAM, 0/8/16 kB ROM, 40 bendrosios paskirties registrų, 32 programuojamus išėjimus, nuosekliąją sąsają. Funkcija turi 4 CT su 16/1024/16/16 baitų FIFO buferiais.

Mikroschema
PIC16C745 Mikrovaldiklis su PIC architektūra. Jame yra integruota USB funkcija, veikianti LS režimu, 256 baitai RAM, 14336 baitai ROM, 22 programuojami kaiščiai, nuoseklioji sąsaja, 5 kanalų 8 bitų ADC.
PIC16C765 Mikrovaldiklis su PIC architektūra. Jame yra integruota USB funkcija, veikianti LS režimu, 256 baitai RAM, 14336 baitai ROM, 33 programuojami kaiščiai, nuoseklioji sąsaja, 8 kanalų 8 bitų ADC.
PIC18F2450 Mikrovaldiklis su PIC architektūra. Jame yra įmontuota USB funkcija, veikianti LS/FS režimu, 1536 baitai RAM, 16384 baitai ROM, 19 programuojamų kontaktų, nuosekliosios ir SPI sąsajos, 5 kanalų 10 bitų ADC. Funkcija turi 8 CT.
PIC18F2550 Mikrovaldiklis su PIC architektūra. Jame yra integruota USB funkcija, veikianti LS/FS režimu, 1536 baitai RAM, 32768 baitai ROM, 19 programuojamų kontaktų, nuosekliosios, CAN ir SPI sąsajos, 5 kanalų 10 bitų ADC. Funkcija turi 8 CT.
PIC18F4450 Mikrovaldiklis su PIC architektūra. Turi integruotą USB funkciją, veikiančią LS/FS režimu, 1536 baitus RAM, 16384 baitus ROM, 34 programuojamus išėjimus, nuosekliąsias, CAN ir SPI sąsajas, 8 kanalų 10 bitų ADC. Funkcija turi 8 CT.
PIC18F4550 Mikrovaldiklis su PIC architektūra. Turi integruotą USB funkciją, veikiančią LS/FS režimu, 1536 baitus RAM, 32768 baitus ROM, 34 programuojamus išėjimus, nuosekliąsias, CAN ir SPI sąsajas, 8 kanalų 10 bitų ADC. Funkcija turi 8 CT.
Teksaso instrumentai TUSB2036 LS/FS stebulės 1-3 valdiklis su atskiru pasroviui galios valdymu.
  • Pamoka

Iliustruota OSI tinklo modelio projekcija į universaliąją nuosekliąją magistralę.

Trys „puikūs“ USB krūvos lygiai

Nebuvau patenkintas USB kamino išvaizda, kurią dažniausiai galima rasti internete:

Nelabai naudingas USB kaminas


Autobuso lygis, logiškas, funkcionalus... Tai, žinoma, nuostabios abstrakcijos, bet jos labiau tikėtinos tiems, kurie ruošiasi padaryti tvarkyklę ar taikomąją programinę įrangą pagrindiniam kompiuteriui. Iš mikrovaldiklio pusės tikiuosi šabloninės baigtinės būsenos mašinos, kurios mazguose dažniausiai statome savo naudingas kodas, o iš pradžių jis pagal visus žanro dėsnius bus netvarkingas. Arba pagrindinio kompiuterio programinė įranga trikdys. Arba vairuotojas. Bet kokiu atveju kažkam nepavyks. Taip pat neįmanoma iš karto išsiaiškinti MK bibliotekų. Ir taip su analizatoriumi žiūriu į eismą USB magistrale, kur įvykiai, vykstantys nepažįstama kalba su trimis nuostabiais lygiais, niekaip netelpa. Įdomu, ar mano galvoje toks disonansas dėl gripo karštinės?

Jei skaitytojui yra buvę panašių jausmų, siūlau alternatyvią USB kamino viziją, kuri staiga man pasirodė aiškiai perkaitusiose smegenyse, paremtą pamėgtu 7 sluoksnių OSI modeliu. Aš apsiribojau penkiais lygiais:

Nenoriu pasakyti, kad visa programinė įranga ir bibliotekos jau yra sukurtos arba turėtų būti sukurtos remiantis šiuo modeliu. Dėl inžinerinių priežasčių kodas su lygiais bus labai sumaišytas. Bet noriu padėti tiems, kurie pradeda pažintį su USB magistrale, nori suprasti įrenginių mainų protokolus ir domenų terminologiją, priartėti prie paruoštų pavyzdžių, bibliotekų ir geriau juose naršyti. Šis modelis skirtas ne įkelti į MK, o į jūsų nuostabius protus, brangūs draugai. Ir tada tavo auksinės rankos viską padarys pačios, neabejoju :)

Taigi, eikime, pataisykite, jei pastebėsite klaidų. Tai juodraštinis variantas, ir jei jau kažkas panašaus kažkur nupiešta, atsiprašau, neradau, todėl pasidariau pats. Manau, kad paveikslas nepabėgs, bet kol kas garbingai visuomenei paaiškinsiu, kodėl iš viso pradėjau šį leidinį.

Dar vienas prisiminimas iš devintojo dešimtmečio

Pirmąją klaidą iš kažkieno kodo pašalinau devintojo dešimtmečio pabaigoje, dirbdamas studentu kaip studentas. Tai buvo pppd skirta FreeBSD, kurią vėliau įdiegėme modemo telkinyje. „Motorola“ modemai įstrigo ant ragelio, niekas negalėjo patekti, linija buvo prarasta veltui, o vienintelis likęs būdas per PPP išlaikyti gyvą buvo kažkodėl klaidingas. Tada ir sužinojau, kad pppd kažkodėl laukia šešių LCP atsako baitų, o ne reikalingų keturių. Tada jaučiausi tokia beprotiška klaidų kratytuvas iš devintojo dešimtmečio :-) Ką su tuo turi PPP? Tai tiesiog panašu į USB: paketas ir taškas į tašką. Tiesa, skirtingai nei USB 2.0, jis yra visiškai dvipusis.


Norime to ar ne, mikrovaldiklių evoliucija akivaizdžiai nestovės vietoje. Ne, ne, ir tai bus rodoma leidiniuose (http://habrahabr.ru/post/208026/, http://habrahabr.ru/post/233391/) „sunkieji išoriniai įrenginiai“ - USB magistralės diegimas, integruotas į MK, su analizės pavyzdžiais, naudojant HID ir kt. Turime pagerbti RaJa autorių: iš aštuonių pavyzdžių, pateiktų standartinėje bibliotekoje STSW-STM32121 (UM0424) ir kažkaip jis išsirinko naudingiausią (Custom HID), perkėlė į nemokamą Em::Blocks aplinką, pateikė jį suprantama kalba ir šiek tiek pagražino, bravo! Taip sutaupiau daug laiko.

Kaip patekti į biblioteką?

Gavęs RHIDDemo projektą, skirtą Em::Blocks, kurį autorius maloniai paskelbė GitHub, pradėjau jį perkelti į Keil (mano FTDI pagrįstas CoLink derinimo įrankis; kas nors pasakykite man Coocox įskiepį, skirtą Em::Blocks). Bet aš tiesiog negalėjau suprasti: iš kur, po velnių, autorius gavo SPL 3.6.1 nuo 2012 m., jei svetainė paskelbė 3.5.0 nuo 2011 m.? Išgyvenau gana nuobodžią užduotį, kuri, mano nuostabai, atvedė... tiesiai į paruoštą „Keil“ pritaikytą HID projektą kaip USB FS 4.0.0 bibliotekos dalį. Guli matomoje vietoje, kaip pelė po šluota. Na, gerai. Bet pagaliau susipažinau su STMicroelectronics leidimais, radau STSW-STM32121 (UM0424) USB FS bibliotekos aprašymą ir sustabdžiau kūrėjo bandymus išvesti mane iš proto. Pasakyk man, ar normalu įdėti senovinį CMSIS 1.30 nuo 2009 į SPL 3.5.0 rinkinį nuo 2011 m., slėpti naują SPL 3.6.1 nuo 2012 USB-FS 4.0.0 nuo 2013 m (įdedant CMSIS 3.0.1 iš 2012 ten taip pat), nepaisant to, kad jie turi dabartinę CMSIS 3.30 versiją, išleistą 2014 m.? Beje, SPL 3.6.x, skirta STM32F10X, buvo ištaisyta keletas USART klaidų, susijusių su buferio perpildymo signalais. Ačiū, bent jau jie paliko laidos pastabas...

HID vs SNMP

Taigi, ėmęsis STM32F103C8T6, taip pat nusprendžiau šiek tiek pasigilinti į USB HID temą, USB HID abstrakcija labai gerai įsilieja į visokių jutiklių, jutiklių ir kitų PWM valdomų maitinimo tvarkyklių koncepciją. Kažkaip tai man priminė SNMP, tik labai supaprastinta forma: HID deskriptoriai atlieka SNMP MIB vaidmenį. Kai įrenginį inicijuoja šeimininkas: „Sveiki, šeimininke! Aš esu kavos virimo aparatas. Turiu mygtuką [pradėti], [grietinėlės], [cukraus] valdiklius, [likęs kavos kiekis], [likęs vanduo], [likęs cukrus], [likęs grietinėlė]. Patraukite vairuotojus, paspauskite mygtuką, išgerkime kavos. Ar tau nieko neprimena? SNMP dialogo pavyzdys: „Na, sveiki, valdymo stotis su programine įranga už 100 000 USD. Ir aš turiu jungiklio važiuoklę už 200 000 USD ir turiu dar 4 modulius už 100 000 USD už vienetą; kiekvienas turi dar 16 prievadų, kurių greitis nepadorus, o visų funkcijų čia išvardyti tiesiog neįmanoma... dėl kiekvienos prekės teirautis atskirai; o, taip, procesoriaus apkrova yra tokia ir tokia, atmintis yra tokia ir tokia...“ Ir dar keliolika puslapių ta pačia dvasia.

Man patiko HID idėja. Bet kai tik palikau „Windows“ už mokomųjų užduočių, susijusių su mirksinčiais šviesos diodais (pirmyn į tikrą UNIX aplinką!), ji pradėjo skverbtis pro visus neužsandarintus plyšius ir jaučiausi kaip kažkoks bejėgis luošas. Derindamas projektą instinktyviai griebiau kažkokį tcpdump (taip jis vadinasi: usbdump(8) , arba usbmon), bet mačiau tik žinutes nepažįstama kalba.

Tapo akivaizdu: trūksta esminių žinių apie USB magistralę. Jeigu OSI modelis o bet koks prityręs IT specialistas TCP/IP stacką kur nors nugaros smegenų lygyje supranta tiesiog iš reikalo, tada su USB situacija kitokia. Tai suprantama: ten galite (reikia) šnipinėti srautą per tą patį tcpdump ir konfigūruoti aparatinę bei programinę įrangą, tačiau čia viskas yra visiškai „plug and play“, ir jūs galite ką nors pataisyti atnaujindami tvarkyklę ar programinę įrangą (arba iš naujo įdiegdami OS). Bet mes čia susirinkome būtent tam, kad padarytume gera programinė įranga, ar ne? Perskaičiusi kai kuriuos USB aprašymus internete, nustebau, kokia paini gali būti dokumentacija. Netgi buvo toks jausmas, kad jie tyčia norėjo mus suklaidinti, skleisdami rūką ir atsikratydami konkurencijos. Aš nesutinku su tokia padėtimi!

Dar viena puiki schema

Internete aptikau dar vieną iliustraciją (ji buvo BMP formato, nejuokaujant):

Iš pradžių tai atrodo optimistiškai. Galiausiai rietuvė išardoma. Tačiau kadrai yra prastai pažymėti: brėžčiau juos vertikaliomis punktyrinėmis linijomis, o EOF yra tik pauzė, faktiškai duomenys neperduodami. Bet mes pradedame skaityti kontekstą ir prarandame supratimą apie tikrąjį autoriaus ketinimą (supainioti mus):

Sugeneruoja USB magistralės sąsajos pagrindinio kompiuterio valdiklis personalas;
Personalas perduodami serijiniu bitų perdavimu naudojant NRZI metodą.
Ir štai dar vienas:
kas rėmelis susideda iš aukščiausio prioriteto siuntinių, kurios sudėtį sudaro priimančioji vairuotojas;
kiekviena transliacija susideda iš vienos ar kelių operacijų;
kiekvienas sandoris susideda iš paketus;
kas plastikinis maišelis susideda iš paketo identifikatoriaus, duomenų (jei yra) ir kontrolinės sumos.

Atrodo, kad viskas nupiešta teisingai, bet skaitant klausimų vis daugėja. Ar minimali duomenų struktūra, perduodama magistrale, yra kadras ar paketas? Apskritai, ar turėtume žiūrėti iš viršaus į apačią ar atvirkščiai? O kas užkoduota naudojant NRZI metodą – kadrai, paketai ar tik visas bitų srautas magistralėje? Sandorius sudaro siuntinys, perdavimas, o gal koks nors vertingas siuntinys?
Kodėl tu negali tiesiog: ar pagrindinis kompiuteris sugrupuoja paketus į operacijas ir paskirsto juos į laiko pjūvius, vadinamus kadrais, kad suteiktų pirmenybę laikui svarbiems duomenims (vaizdo, garso) pagal esamą magistralės pralaidumą? Taip, USB turi niuansų planuojant paketų perdavimą, aš jų dar neliečiu.

Mano vizija apie USB kaminą

Manau, kad USB in a NutShell, paminėtas čia ant šakotuvo (hurray, vertimas), taip pat USB Made Simple yra gera dokumentacija. Remdamasis jais, surinkau savo USB kamino versiją, nupiešiu dar kartą.

Fizinis sluoksnis
Fiziniu lygiu diferencinės laidininkų poros elektrinių režimų rinkinys (kartu su įžeminimu) naudojamas būsenoms, kuriomis bitų srautas užkoduojamas naudojant NRZI metodą su bitų užpildymu, nurodyti: čia po šešių iš eilės „1“ ( na, norėjau perduoti, tarkim, 0xffff) „0“ įdėtas, kad imtuvas ilgai neužstrigtų vienoje būsenoje; Imtuvas A Nėra įterpto „0“ ir jie nebus skaičiuojami kaip duomenys; tai gana įprasta kodavimo technika, skirta geresniam automatiniam dažnių derinimui. Laidų pora kartu su įžeminimu leidžia suformuoti mažiausiai keturias statines būsenas (jos žymimos J, K, SE0, SE1). USB 2.0 SE1 nenaudojamas, o trys likę papildomai žaidžiami dinamikoje (su laikrodžiais ir perėjimais), kad būtų perduota dar keletas valdymo simbolių (paketo ribos, atstatymas, prijungimas/atjungimas, energijos taupymas/išėjimas). Gerų iliustracijų yra USB Made Simple 3 dalyje – duomenų srautas.
Tie. Dėl to duomenys perduodami nulių ir vienetų pavidalu, taip pat visokiais valdymo ženklais, kad iš visos šios elektrodinaminės virtuvės būtų galima paruošti įprastus duomenų paketus.
(pridėta skaitytojų pageidavimu)
Partijos lygis
Paketų lygiu beadresiai paketai perduodami tarp pagrindinio kompiuterio ir įrenginio (pora įrenginių, esančių pusiau dvipusėje linijoje, gali apsieiti be adresavimo). Paketą sudaro SYNC žymeklis, skirtas sinchronizuoti imtuvo laikrodį, baitų seka ir EOP simbolis. Pakuotės ilgis kintamas, bet derinamas per viršutiniai lygiai krūva. Pirmasis baitas vadinamas Packet Identifier (PID), turi paprastą perteklinį formatą, skirtą atsparumui triukšmui, ir yra tinkamas tiekimui į kito lygio mašiną (operacijų surinkimui iš paketų). Paketai su užpildu (ilgesni nei vienas PID baitas) pateikiami su kontroline suma (trumpas CRC5 arba ilgas CRC16, priklausomai nuo paketo tipo). Protokolo analizatorius turėtų bent parodyti mums paketus.
Sandorio lygis
Kitame lygyje nuo paketus vyksta sandorius. Sandoris yra nedidelis paketų rinkinys (viso greičio USB 1, 2 arba 3), kurie griežtai seka vienas po kito, kuriais (pusdupleksiniu režimu) pagrindinis kompiuteris keičiasi su galutiniu tašku ir tik vienu. Labai svarbu, kad operaciją atidarytų tik pagrindinis kompiuteris; tai yra USB specifika (mums mažiau vargo su MK programine įranga). Sandorio lygmeniu galime kalbėti apie kanalas(vamzdis) tarp pagrindinio kompiuterio ir vieno iš įrenginio galinių taškų, bet aš sąmoningai vengiu termino „duomenų saitas“ iš OSI modelio. Protokolo analizatorius turi bent iššifruoti operacijas.
Pavaros lygis
Ant operacijų įdėsime pervedimų sluoksnį. USB jų yra keturių tipų: valdymo perdavimai su galutiniu tašku Nr. 0, pertraukimų perdavimai, izochroniniai perdavimai ir masiniai perdavimai. Paskutiniai trys yra srautinių kanalų (stream pipe) variantai, apie kuriuos pasakysiu keletą žodžių vėliau. Šiame lygyje taip pat turėtų būti rodomas geras protokolo analizatorius.
Taikymo sluoksnis
Kamino viršuje, kaip įprasta, yra taikymo sluoksnis. Čia nutinka: įrenginio adreso nustatymas pagrindinio kompiuterio, įrenginio pasakojimas apie save deskriptorių kalba, pagrindinio kompiuterio komandos konfigūracijai pasirinkti (valdymo perdavimai), keitimasis duomenimis su HID įrenginiais (pavyzdžiuose radau perdavimas su pertraukimais iki šiol, noriu išbandyti kontrolinį), spausdinimas spausdintuvu ir skenavimas, prieiga prie USB atmintinės (didelis blokas), bendravimas per ausines ir web kameras (izochroninis) ir daug kitų puikių dalykų.
Apdailos prisilietimas
Sekundei pašokdami lygius žemyn, galime pridurti, kad šeimininkas periodiškai meta tuos pačius Start of Frame (SOF) paketus per magistralę, laiką skirstydamas į vienodus intervalus, bet taip, kad nenutrūktų pačios operacijos. Todėl SOF paketai gali būti laikomi nepriklausomomis operacijomis. USB rėmelio nereikėtų painioti su OSI modelio duomenų ryšio sluoksnio homonimu. Geriau atsiminti garso kompaktinio disko kadrus (kadrus), tai tik laiko kvantas: šeimininkas „įsirašo“ į magistralę su SOF paketais, kad prijungti įrenginiai iš anksto planuotų dalyvauti vadinamajame. izochroninės transmisijos, valdydami duomenų srautus realiuoju laiku. Na, arba taip: operacijų grupes suplanuoja šeimininkas laiko intervalais, vadinamais kadrais. Kadras yra 1 ms naudojant „Full Speed“ ir 125 μs „High Speed ​​​​USB“, tačiau „High Speed“ yra sudėtingesnis standartas, todėl geriau jį ištirti atskirai.
UPD:
Gerą klausimą uždavė skaitytojai: o kaip su fragmentacija? Neradau jokių suskaidymo požymių USB 2.0 transakcijų lygiu ir žemiau, t.y. Sandoriai turi būti perduoti visos. Kai kuriais atvejais pervedimus galima ir reikia suskirstyti į kelias operacijas, ypač atsižvelgiant į izochroninius režimus. Ir pasikartosiu, kad kol kas už mus visą planavimą atsakingas šeimininkas (iš MK pusės turime mažiau galvoti).

Žiūrint į USB srautą

Geras iliustracijų pasirinkimas yra minėtos knygos USB Made Simple 5 skyriuje: www.usbmadesimple.co.uk/ums_5.htm

Štai vienas iš jų


Taigi operaciją visada inicijuoja pagrindinis kompiuteris su vienu pasirinktu įrenginio galutiniu tašku (be to specialus taškas su skaičiumi 0, viename įrenginyje jų gali būti iki 15 daugiau, pavyzdžiui, kombinuota klaviatūra su pele, termometras, „flash drive“, kavos virimo aparatas ir mygtukas iškviesti santechniką, kad užsisakytų picą).
Jei pagrindinis kompiuteris gauna duomenis iš įrenginio, pastarasis pats negali atidaryti operacijos, o gali tik laukti tinkamas momentas ir jame dalyvauti. Pagrindinis kompiuteris atidaro operaciją į įrenginį su paketu su PID = IN (Token group) ir garantuoja magistralės laisvę reikiamam laikui, įrenginys įmeta paketą iš duomenų grupės, priklausomai nuo operacijos tipo, kompiuteris gali patvirtinti sėkmės su trečiuoju paketu iš Handshake grupės (ACK, NAK, STALL, NYET), sandoris uždarytas.
Siųsdamas duomenis į įrenginį (PID = OUT, Token group), šeimininkas atidaro transakciją, išsiunčia duomenų paketą (Data), o priklausomai nuo režimo gali gauti ir Handshake paketą, patvirtinantį operacijos sėkmę.
Pasibaigus operacijai, viskas grįš į normalią būseną, įrenginys vėl lauks valdymo paketų iš pagrindinio kompiuterio.

USB perdavimo režimai STM32 USB FS pavyzdžiuose

Norint vienu laidų porą kopijuoti iš disko kartu su garso ir vaizdo srautu, pelės gestais ir didelės spartos osciloskopo signalu, yra skirtingi tipaižinutes ir transliacijas.
Tiesiog aukščiau aš ką tik aprašiau paprastą transliacijos kanalas(Stream Pipe) tarp pagrindinio kompiuterio ir galinio taško, kur paketai su užpildymu (duomenų grupės) neperneša jokios specialios ar valdymo informacijos į patį USB posistemį. Visiška korespondencijos laisvė, valdiklio biblioteka turi pateikti primityvus savavališko dydžio buferiui atsisiųsti iš MK atminties į pagrindinį kompiuterį arba atgal. Leiskite MK bibliotekai kartu su pagrindine tvarkykle tvarkyti paketų pjaustymą, persiuntimą ir „defragmentavimą“. STM32 tai yra USB_SIL_Write() ir USB_SIL_Read(), aprašyti UM0424. Jie yra pats logiškas abstrakcijos lygis. Prieglobos pusėje žr. atitinkamos tvarkyklės aprašymą (pavyzdžiui, FreeBSD tai yra ugen(4)).
Tačiau aš laikau šventvagyste naudoti sunkius išorinius įrenginius, tokius kaip USB, norint organizuoti paprastą srautinio perdavimo kanalą (klausimas: kas negerai su USART?). Bet, žinoma, būna visokių situacijų.
Bet kuriuo atveju, norint, kad USB posistemis apskritai atgytų ir įrenginys būtų aptiktas, reikia keistis valdymo operacijomis.

ATSISAKYMAS

Kiti pavyzdžiai bus paminėti iš tos pačios UM0424 bibliotekos, skirtos darbui su Full Speed ​​​​USB iš STMicroelectronics, tačiau jie yra skirti jų vietinėms demonstracinėms plokštėms. Paimkite pavyzdį iš autorės Raja, parodykite inžinerinį išprusimą pritaikydami projektus savo demonstracinei lentai.

Dėl programinės įrangos viskas aišku: tai ne pramoniniam naudojimui skirti pavyzdžiai, gali būti klaidų, kai kurios dalys (pavyzdžiui, nuorodų lentelė masinės atminties pavyzdyje) yra apsaugotos patentu ir jūs neturite teisės jų naudoti komerciniame projekte. Bet tai nieko, kinai tada sugeba parduoti USB produktus rinkoje, kuriems net nesivargina pakeisti bibliotekos VID ir PID.

Dėl geležies, kaip suprantu, reikia pradėti nuo kvarco. Turiu Chelyabinsk PinBoard II su 12 MHz kvarcu (visos bibliotekos skirtos 8 MHz), pakeičiau PLL daugiklį nuo 9 į 6 (nuoroda su paaiškinimais), kitaip MK įsibėgės iki 108 MHz, o ne 72 MHz, o USB neis į 72 MHz vietoj reikalingų 48 MHz. Taip pat galite sulėtinti MK greitį iki 48 MHz, pakeisdami USB magistralės daliklį iš pusantro į vieną. Specialistai nemėgsta naudoti vidinio HSI MK generatoriaus: dėl šildymo dažnis gali šiek tiek nukrypti, o pasekmes USB sunku numatyti. Na, žinoma, nepamirškite apie periferiją. Be SPI / SDIO „flash“ atminties, iš didelės atminties pavyzdžio galite sukurti tik /dev/null analogą, bet negalite jo suformatuoti :-)

Valdykite perdavimus ir pranešimų kanalus
Galvodamas apie USB, prisimenu seną gerą PPP protokolą su jo LCP, IPCP, CCP ir taip pat xzCP. Ypatingo tipo pranešimų mainai tarp pagrindinio kompiuterio ir galinio taško Nr. 0 yra vietinis x3CP atitikmuo.
Per valdymo perdavimus įrenginys inicijuojamas, gauna adresą, praneša pagrindiniam kompiuteriui apie save deskriptorių kalba (kad jis galėtų rasti ir suaktyvinti reikalingas vairuotojas). Be valdymo operacijų net ir paprastos „nevyks“ transliacija, jei įrenginys neatsako formoje, pagrindinis kompiuteris greitai išjungs prievadą: reikia laikytis protokolo.
Iš esmės protokolas nedraudžia jungti duomenų mainų prie valdymo taško Nr. 0, panašiai kaip režimas su pertrūkiais. Tuo pačiu pagalvokite apie tai: kaip atnaujinsite MK programinę-aparatinę įrangą, taip sakant, lauke? Ar turite pasiruošę programuotoją? Yra ir kitas sprendimas.
Pavyzdys: Įrenginio programinės įrangos atnaujinimas
Pertrauktos transliacijos
Ši veislė ( nutraukti perdavimą) skirtas apsikeitimui nedideliais sandoriais, panašiais į kontrolinius. Ne, įrenginys negali pertraukti pagrindinio kompiuterio, jis laukia apklausos, jų dažnis ir paketų dydžiai yra iš anksto nurodyti įrenginio apraše. Puikiai tinka visų tipų nuotolinio valdymo pultams, jutikliams, pelėms, šviesos diodams ir kitiems HID kavos virimo aparatams. Kanalas su pertraukimais kiekviename taške yra vienakryptis.
Pavyzdžiai: Pasirinktinis HID, Vairasvirtės pelė, Virtualus COM prievadas
Izochroninės transmisijos
Χρόνος graikų kalba reiškia „laikas“. Izochroninė transmisija ( izochroninis perkėlimas) – vietinės aukštosios technologijos, leidžiančios valdyti duomenų srautus realiuoju laiku. Jame yra garantuotas (bet nebūtinai platus) pralaidumas ir jokių patvirtinančių operacijų, panašiai kaip UDP su QoS. Sugedusi pakuotė? Tai buvo dievas Chronos, kuris pastūmė MK ant kojos. Nereikia bandyti išsiųsti siuntos dar kartą, kitaip Dievas nusimins. Tačiau mes tyliai tikriname kontrolines sumas iš Chronos. Izochroniniai perdavimai tinka garso ir vaizdo bei realaus laiko matavimo sistemoms, taip pat kitiems žaislams dvejopo naudojimo. Nors kai kurie iš jų gali. Įdomiau pakabinti kokį nors AVR, prijungiant jį prie mūsų ARM per USART arba SPI. Izochroninės operacijos yra susijusios su kadrų signalizavimu (prisiminkite SOF paketo žymėjimą).
Pavyzdys: USB balso garsiakalbis
Didelio bloko transmisijos
Ne, cemento maišų nenešime. Manau, kad visi išmoko visų rūšių USB diskų veikimo režimą. Pervedimai masinis perdavimas turi tikslą siųsti kuo daugiau duomenų ir kuo greičiau, visada perduodant sugedusius paketus, bet be garantijų dėl pralaidumo, prireikus atiduodant jį izochroniniam perdavimui (kaip TCP be QoS). Aš jau kalbėjau apie vidinę USB atmintinių struktūrą, dabar galite atsisiųsti ir paleisti veikiantį prototipą. Pats nebandžiau, bet SCSI komandų lentelė pavyzdžio aprašyme (kaip beje) yra gana simbolinė. Neradau jokių NAND atminties nusidėvėjimo valdymo algoritmo požymių :-)
PASTABA: vietomis taikoma STM patentinė apsauga.
Pavyzdys: Masinė saugykla

Kas liko neatskleista

Neturiu tikslo daryti dar vieno vadovėlio USB, jų užtenka ir be manęs, ir jie puikiai aprašyti: elektrinė dalis, protokolo detalės, darbas su šakotuvais, deskriptorių kalba ir HID abstrakcijos lygis, problemos su VID/ PID unikalumas, USB 3.0 ir daug kitų nuostabių USB magistralės savybių, kai kurios mums naudingos, o kai kurios nelabai. IT specialistams ypač rekomenduoju ekskursiją į tamsiąją pusę su priešo įrenginių apžvalga (flash drive su užmaskuota HID klaviatūra, kuri darys baisius dalykus).

Nuorodos

Tinkinto HID pavyzdžio pritaikymas laisva aplinka Em::Blocks ir biudžeto demonstracinė plokštė STM32F103C8T6, kurią pagamino LC-Tech Industrial Electronics ir IT žmonės. Tai savotiška inžinerija Yin ir Yang, kiekvienas iš mūsų turime abiejų dalį.

Pramoninės elektronikos inžinieriai turi puikių techninių žinių ir įgūdžių, kaire ranka užmerktomis akimis lituoja iki plauko plonus radijo komponentus (o tada jis veikia). Žiūrėti į elektroninė grandinė, beveik fiziškai pradeda jausti visas jo sroves su potencialais, jie taip pat dirba su maitinimo grandinėmis ir su (dideliais, greitais, pavojingais) pramoniniais gaminiais. MK programavimo metodas yra tinkamas: jis tiesiog turi išvesti reikiamus loginius lygius į tinkamas kojas tinkamu laiku, nesvarbu, kokiu būdu. Jie yra konservatyvūs technologijų atžvilgiu (nesikiškite - tai veikia), sunkieji MK periferiniai įrenginiai nėra ypač palankūs. Diskutuodami apie objektinį programavimą, informacijos saugumą, milžiniškus projektus su milijonu kodo eilučių ir visokias įmantrias grafines sąsajas, žmonės nusibosta. Vietoj į paketus orientuotos USB magistralės jie renkasi USART srautinio perdavimo režimą, patobulintą arba įprastu RS-232, arba žiauresniu RS-485 ( serijinė magistralė pramoniniams tikslams, iki 10 Mbit/s 15 m atstumu, iki 100 kbit/s 1200 m atstumu, iki 32 įrenginių).

IT specialistai išmano operacines sistemas, tinklo infrastruktūrą ir sudėtingas sąveikas; elitas puikiai išmano informacijos saugumą ir supranta visokius nematomus būdus įsiskverbti į kažkieno sistemą. Kai kurie žmonės labai myli kates (kaip jų nemyli? Tačiau aš nelaikau, neauginu ir negaminu :-). Daugelis žmonių mėgsta informacijos laisvę, kritikuoja korporacijas/vyriausybes ir minties galia nugali gamtos jėgas. Patologiškai tingūs, bet jie mėgsta naujas technologijas ir susuktus inžinerinius galvosūkius brangūs žaislai(pageidautina išspręsti programinės įrangos lygiu arba, kraštutiniais atvejais, trumpikliais). Santykiai su lituokliu saugomi: neklauskite IT specialisto, ar jam patinka lituoklis, gali nesuprasti; Geriau paklauskite, ar jam patinka lituoti elektronines grandines.

apie ką aš kalbu? Tik mes šį pasaulį matome kitaip... Juk Linux branduolį kūrė tie patys vaikinai, iš modulių C ir assembler intarpų konkrečioms platformoms, ir atrodė, kad jie apsieina be holivarų. Tikrai rimtą projektą matau kaip kelių branduolių sistemą, apjungiančią naujausius mikrovaldiklius su sunkiais periferiniais įrenginiais, tačiau neatmetu derinių su klasikiniais modeliais, tokiais kaip AVR: juose galima pakabinti kai kuriuos kritinius, greitai besisukančius technikos progreso ietigalius. Jei kodas buvo išbandytas metų metus, kodėl gi ne?

Pridėti žymes

2008 metų pabaigoje. Kaip ir galima tikėtis, naujas standartas padidino pralaidumą, nors padidėjimas nėra toks reikšmingas kaip 40 kartų padidėjęs greitis pereinant nuo USB 1.1 prie USB 2.0. Bet kokiu atveju 10 kartų padidintas pralaidumas yra sveikintinas. USB 3.0 palaiko maksimalus perdavimo greitis 5 Gbit/s. Pralaidumas beveik dvigubai didesnis už šiuolaikinį Serial ATA standartą (3 Gbit/s, atsižvelgiant į perteklinės informacijos perdavimą).

USB 3.0 logotipas

Kiekvienas entuziastas patvirtins, kad USB 2.0 sąsaja yra pagrindinė. kliūtis» šiuolaikiniai kompiuteriai ir nešiojamieji kompiuteriai, nes jo didžiausias „grynasis“ pralaidumas svyruoja nuo 30 iki 35 MB/s. Tačiau šiuolaikiniai turi 3,5 colio kietieji diskai staliniams kompiuteriams perdavimo greitis jau viršijo 100 MB/s (atsiranda ir nešiojamiesiems kompiuteriams skirtų 2,5 colių modelių, kurie artėja prie šio lygio). Didelės spartos kietojo kūno diskai sėkmingai peržengė 200 MB/s slenkstį. O 5 Gbit/s (arba 5120 Mbit/s) atitinka 640 MB/s.

Nemanome, kad artimiausioje ateityje kietieji diskai pasieks 600 MB/s greitį, tačiau naujos kartos SSD diskai šį skaičių gali viršyti vos po kelerių metų. Didėjantis pralaidumas tampa vis svarbesnis, nes didėja informacijos kiekis ir atitinkamai ilgėja laikas, kurio reikia atsarginei jos kopijai sukurti. Kuo greičiau veiks saugykla, tuo trumpesnis bus atsarginės kopijos laikas, tuo lengviau bus sukurti „langus“ atsarginių kopijų grafike.

USB 1.0 – 3.0 greičio palyginimo lentelė

Šiandien skaitmeninės vaizdo kameros gali įrašyti ir saugoti gigabaitus vaizdo duomenų. Didėja HD vaizdo kamerų dalis, todėl norint įrašyti didelius duomenų kiekius reikia didesnės ir greitesnės saugyklos. Jei naudojate USB 2.0, kelių dešimčių gigabaitų vaizdo duomenų perkėlimas į kompiuterį redagavimui užtruks daug laiko. USB įgyvendintojų forumas mano, kad pralaidumas išliks labai svarbus ir USB 3.0 per ateinančius penkerius metus pakaks visiems vartotojų įrenginiams.

8/10 bitų kodavimas

Siekiant užtikrinti patikimą duomenų perdavimą USB 3.0 sąsaja naudoja 8/10 bitų kodavimą, mums pažįstamą, pavyzdžiui, iš Serial ATA. Vienas baitas (8 bitai) perduodamas naudojant 10 bitų kodavimą, kuris pagerina perdavimo patikimumą pralaidumo sąskaita. Todėl perėjimas iš bitų į baitus atliekamas santykiu 10:1, o ne 8:1.

USB 1.x – 3.0 pralaidumo ir konkurentų palyginimas

Energijos taupymo režimai

tikrai, Pagrindinis tikslas sąsaja USB 3.0 yra padidinti turimą pralaidumą, tačiau naujasis standartas veiksmingai optimizuoja energijos suvartojimą. USB 2.0 sąsaja nuolat apklausia įrenginio prieinamumą, o tai sunaudoja energiją. Priešingai, USB 3.0 turi keturias ryšio būsenas, pavadintas U0-U3. Ryšio būsena U0 atitinka aktyvų duomenų perdavimą, o U3 įjungia įrenginį į „miego režimą“.

Jei ryšys neveikia, tada U1 būsenoje galimybė priimti ir perduoti duomenis bus išjungta. Būsena U2 žengia dar vieną žingsnį išjungdama vidinį laikrodį. Atitinkamai, prijungti įrenginiai gali pereiti į U1 būseną iš karto po duomenų perdavimo, o tai turėtų turėti didelių energijos suvartojimo pranašumų, palyginti su USB 2.0.

Didesnė srovė

Be skirtingų energijos suvartojimo būsenų, standartinis USB 3.0 skiriasi iš USB 2.0 ir didesnė palaikoma srovė. Jei USB 2.0 srovės slenkstis buvo 500 mA, tai naujo standarto atveju apribojimas buvo perkeltas į 900 mA. Ryšio pradžios srovė padidinta nuo 100 mA USB 2.0 iki 150 mA USB 3.0. Abu parametrai yra gana svarbūs nešiojamiesiems kietiesiems diskams, kuriems paprastai reikia šiek tiek didesnės srovės. Anksčiau problemą buvo galima išspręsti naudojant papildomą USB kištuką, maitinimą iš dviejų prievadų, bet naudojant tik vieną duomenims perduoti, nors tai ir pažeidė USB 2.0 specifikacijas.

Nauji laidai, jungtys, spalvų kodavimas

USB 3.0 standartas yra suderinamas su USB 2.0 t. y., atrodo, kad kištukai yra tokie patys kaip įprasti A tipo kištukai. USB 2.0 kontaktai lieka toje pačioje vietoje, tačiau dabar yra penki nauji kištukai, esantys giliai jungties viduje. Tai reiškia, kad turite iki galo įkišti USB 3.0 kištuką USB jungtis 3.0, kad įsitikintumėte, ar režimas USB veikimas 3.0, kuriam reikalingi papildomi kaiščiai. Kitaip gausi USB greitis 2.0. USB įgyvendintojų forumas rekomenduoja gamintojams naudoti Pantone 300C spalvų kodavimą jungties vidinėje pusėje.

Panaši situacija buvo ir su B tipo USB kištuku, nors skirtumai vizualiai labiau pastebimi. USB 3.0 kištuką galima atpažinti pagal penkis papildomus kaiščius.

USB 3.0 nenaudoja šviesolaidžio, nes tai per brangu masinei rinkai. Todėl turime seną gerą varinį kabelį. Tačiau dabar jis turės devynis, o ne keturis laidus. Duomenų perdavimas vykdomas keturiais iš penkių papildomų laidų diferencialiniu režimu (SDP-Shielded Differential Pair). Viena laidų pora atsakinga už informacijos priėmimą, kita – už perdavimą. Veikimo principas panašus į Serial ATA, kai įrenginiai gauna visą pralaidumą abiem kryptimis. Penktasis laidas yra „įžeminimas“.



 


Skaityti:



HTC Sync Manager: kaip naudoti, kur atsisiųsti, problemų sprendimas

HTC Sync Manager: kaip naudoti, kur atsisiųsti, problemų sprendimas

HTC Sync – tai įrankis, skirtas HTC išmaniesiems telefonams prijungti prie kompiuterio, keistis duomenimis ir sinchronizuoti duomenis tarp jų. Programa įdiegiama...

Xperia Z3 ir Xperia Z3 Compact: apžvalga ir palyginimas Žiniatinklio naršyklė yra programinė įranga, skirta informacijai internete pasiekti ir peržiūrėti

Xperia Z3 ir Xperia Z3 Compact: apžvalga ir palyginimas Žiniatinklio naršyklė yra programinė įranga, skirta informacijai internete pasiekti ir peržiūrėti

Rašyti šį meniu palyginimą paskatino toks dažnas klausimas, ką rinktis – Sony Xperia Z3 ar Xperia Z3 Compact? Dažniau...

Nauji Kyivstar tarifai Prisijungimas nepasiekiamas

Nauji Kyivstar tarifai Prisijungimas nepasiekiamas

„Kievtsar“ bendrovė savo abonentams siūlo prisijungti prie įvairių tarifų paketų pagal sutartį. Tarp daugybės šio privalumų...

Fly telefono internetas neveikia

Fly telefono internetas neveikia

Instrukcijos Išsiaiškinkite – ar jūsų telefono modelyje galima prisijungti prie interneto? Tai galite sužinoti techninių specifikacijų sąraše...

tiekimo vaizdas RSS