USB növləri və standartları. USB interfeysi: interfeys cihazlarının təsviri və əsasları USB 2.0 təsviri

10.09.2021

hamıya salam. Bəzən insanlar USB 3.0-ın USB 2.0-dan nə ilə fərqləndiyini bilməklə maraqlanır, bəzən onlar kompüterlərində USB konnektorunun hansı versiyası və ya növü olduğunu, USB 1.0-ın hansı dinozavr olduğunu və s. anlamaq istəyirlər. Gəlin bu mövzunu bir az da dərindən araşdıraq.

USB standartı 90-cı illərin ortalarında ortaya çıxdı. Deşifrə edilib USB bu necə - Universal seriya avtobusu. Bu standart periferik qurğular və kompüter arasında rabitə üçün xüsusi olaraq hazırlanmışdır və hazırda bütün rabitə interfeysləri arasında lider mövqe tutur. Bu təəccüblü deyil. İndiki vaxtda hər hansı bir cihazı USB konnektoru olmadan təsəvvür etmək çətindir, baxmayaraq ki, bu bağlayıcılar tipinə görə fərqlənir.

USB konnektorların növləri

Bu gün kifayət qədər var çox sayda USB konnektorlarının növləri. Bəziləri daha çox yayılmışdır, bəziləri daha azdır. Hər halda, gəlin onlara nəzər salaq.

USBtip-A– USB konnektorlarının ən çox yayılmış növlərindən biridir. Ola bilsin ki, siz onu öz evinizdə, blokda görmüsünüz şarj cihazı və daha çox. Bir çox istifadəsi var. Onun köməyi ilə siz siçanları və klaviaturaları kompüterə (və ya digər cihaza), fləş disklərə, xarici sürücülər, smartfonlar və s. Fikir versəniz bu siyahını uzun müddət davam etdirmək olar.

USBtip-B– birləşdirici əsasən printeri və ya digər periferik cihazları kompüterə qoşmaq üçün istifadə olunur. USB tip-A-dan daha az yayılmışdır.

Mini USBüzərində çox yayılmışdı mobil cihazlar ah Micro USB-in yaranmasından əvvəl. Hal-hazırda bu, çox nadirdir, lakin hələ də bəzi köhnə cihazlarda tapa bilərsiniz. Portativ audio dinamikimdə Mini USB konnektoru batareyanı doldurmaq üçün elektrik alır. Mən bu dinamiki təxminən 5 il əvvəl almışam (davamlı olduğu ortaya çıxdı).

Mikro USB indi smartfonlarda istifadə olunur və mobil telefonlar demək olar ki, bütün istehsalçılar. Bu USB konnektoru mobil cihazlar arasında inanılmaz populyarlıq qazandı. Bununla belə, USB Type-C tədricən öz yerini tutur.

USB Version 1.0 – Arxeoloji Qazıntılar

USB standartının ulu babasıdır USB 1.0 1995-ci ilin soyuq noyabrında anadan olub. Amma o, bir az tez doğulub və o qədər də populyarlıq qazanmayıb. Ancaq üç il sonra doğulan kiçik qardaşı USB 1.1 daha canlı bir nümunə idi və kifayət qədər diqqəti cəlb edə bildi.

Texniki hissəyə gəlincə, məlumat ötürmə sürəti kiçik idi, lakin o dövrün standartlarına görə bu sürət kifayət qədər idi. Sürət 12 Mbit/s-ə qədər idi və bu, yüksək ötürmə rejimində idi.

USB 2.0 və USB 3.0 konnektorları arasındakı fərqlər

USB 2.0 və USB 3.0 iki tamamilə müasir USB standartıdır və indi hər yerdə kompüter və noutbuklarda istifadə olunur. USB 3.0, əlbəttə ki, daha yeni və daha sürətlidir, həm də tamdır geriyə uyğun USB 2.0 cihazları ilə. Lakin bu halda sürət USB 2.0 standartına uyğun olaraq maksimum sürətlə məhdudlaşacaq.

Teorik olaraq, USB 3.0 ötürmə sürətləri USB 2.0-dan təxminən 10 dəfə yüksəkdir (5 Gbit/s 480 Mbit/s). Amma praktikada cihazlar arasında məlumat mübadiləsinin sürəti çox vaxt cihazların özləri tərəfindən məhdudlaşdırılır. Ümumiyyətlə, USB 3.0 hələ də qalib gəlir.

Texniki fərqlər

USB 2.0 və USB 3.0 standartları geriyə uyğun olsa da, bəzi texniki fərqlərə malikdir. USB 2.0-da 4 pin var - 2-si cihazları gücləndirmək üçün, 2-si isə məlumat ötürmək üçün. Bu 4 pin USB 3.0 standartında saxlanılıb. Ancaq bunlardan başqa, lazım olan daha 4 əlaqə əlavə edildi yüksək sürət məlumatların ötürülməsi və cihazların daha sürətli doldurulması. Yeri gəlmişkən, USB 3.0 1 Amperə qədər cərəyanla işləyə bilər.

Nəticədə, USB 3.0 standart kabeli qalınlaşdı və onun uzunluğu indi 3 metrdən çox deyil (USB 2.0-də maksimum uzunluq 5 metrə çatdı). Ancaq bir splitter vasitəsilə bir neçə smartfonu bir konnektora bağlasanız belə, smartfonunuzu çox daha sürətli doldura bilərsiniz.

Təbii ki, istehsalçılar vizual fərqlərə diqqət yetirdilər. Onun hansı USB standartlarını dəstəklədiyini görmək üçün anakart qablaşdırmasını axtarmaq lazım deyil. Bunu etmək üçün kompüterinizin parametrlərinə və ya cihaz menecerinizə daxil olmaq lazım deyil. Sadəcə konnektorunuzun rənginə baxın. USB 3.0 konnektoru demək olar ki, həmişə mavi olur. Çox nadir hallarda qırmızı da olur. USB 2.0 demək olar ki, həmişə qara olsa da.

Beləliklə, indi bir qısa baxışla siz laptopunuzda USB 2.0 və ya USB 3.0 olub olmadığını müəyyən edə bilərsiniz.

Bu, yəqin ki, USB 2.0-nin USB 3.0-dan necə fərqləndiyi ilə bağlı söhbətin sonu olacaq.

Nəticə

Bu məqalədən nə öyrəndik? Həmin USB məlumat ötürmə sürəti ilə fərqlənən məlumat ötürmə standartlarına bölünür. Həm də USB-nin çoxlu sayda bağlayıcı növləri var.

Və məqalədə qeyd etməyi unutduğum ən maraqlı şey, bağlayıcıların növlərini aşağıdakı kimi birləşdirə bilməsidir. Siz tam ölçülü USB tipli A konnektoru və tam ölçülü tapa bilərsiniz USB tip B, eyni zamanda (lakin nadir) mikro USB tip-A və mikro USB tip-B (çox geniş yayılmış) var. USB type-A USB 2.0 protokolundan istifadə etməklə və ya bəlkə də USB 3.0 protokolundan istifadə etməklə işləyə bilər. Ümumiyyətlə, istəsən, çaş-baş qala bilərsən.

Və hansı bağlayıcıların özünüz üçün seçmək daha yaxşı olduğu sualından narahatsınızsa? noutbuk usb 2.0 və ya USB 3.0, onda heç narahat olmayın. İndi belədir müasir noutbuklar və kompüterlər hər iki növ USB ilə təchiz edilmişdir. Məsələn, mənim laptopumda iki USB 2.0 konnektoru və bir USB 3.0 konnektoru var. Və hər üç bağlayıcı USB tip-A-dır.

Onlar budur - USB!

Axıra kimi oxumusan?

Bu məqalə faydalı oldu?

Həqiqətən yox

Tam olaraq nəyi bəyənmədiniz? Məqalə natamam idi, yoxsa yalan?
Şərhlərdə yazın və biz təkmilləşdirməyə söz veririk!

Yüksək sürətli siqnal bit sürəti - 12 Mb/s - Yüksək sürətli siqnal bit sürəti üçün maksimum kabel uzunluğu - 5 m - Aşağı sürətli siqnal bit sürəti - 1,5 Mb/s - Aşağı sürətli siqnal bit sürəti üçün maksimum kabel uzunluğu - 3 m - Maksimum qoşulmuş qurğular (çoxlaşdırıcılar daxil olmaqla) - 127 - Müxtəlif ötürmə sürətlərinə malik cihazları birləşdirmək mümkündür - İstifadəçinin SCSI üçün terminatorlar kimi əlavə elementləri quraşdırmasına ehtiyac yoxdur - Periferik qurğular üçün təchizatı gərginliyi - 5 V - Hər cihaz üçün maksimum cərəyan sərfi - 500 mA

USB 1.1 və 2.0 konnektor naqilləri

USB siqnalları qorunan dörd telli kabelin iki teli üzərindən ötürülür.

Budur :

GND- periferik cihazları enerji ilə təmin etmək üçün "case" sxemi V AVTOBUS- Avtobusun enerji təchizatı sxemləri üçün də +5V D+ məlumatların ötürülməsi üçün nəzərdə tutulmuşdur

Təkər D- məlumat almaq üçün.

Usb 2.0-ın çatışmazlıqları

Baxmayaraq ki maksimum sürət USB 2.0 məlumat ötürülməsi 480 Mbit/s (60 MB/s) təşkil edir, real həyatda belə sürətlərə nail olmaq qeyri-realdır (praktikada ~33,5 MB/s). Bu, məlumatların ötürülməsi üçün sorğu ilə köçürmənin faktiki başlanması arasında USB avtobusunda böyük gecikmələrlə bağlıdır. Məsələn, FireWire, USB 2.0-dan 80 Mbps (10 MB/s) az olan 400 Mbit/s aşağı pik ötürmə qabiliyyətinə malik olsa da, əslində, sabit disklər və digər məlumat saxlama cihazları ilə məlumat mübadiləsi üçün daha çox ötürmə qabiliyyətinə imkan verir. Bununla əlaqədar olaraq, müxtəlif mobil sürücülər uzun müddət USB 2.0-ın qeyri-kafi praktiki bant genişliyi ilə məhdudlaşır.

USB 3.0-ın ən əhəmiyyətli üstünlüyü onun daha yüksək sürətidir (5 Gbps-ə qədər), bu da köhnə portdan 10 dəfə sürətlidir. Yeni interfeys enerjiyə qənaəti yaxşılaşdırıb. Bu, istifadə edilmədikdə sürücüyə yuxu rejiminə keçməyə imkan verir. Eyni zamanda ikitərəfli məlumat ötürülməsini həyata keçirmək mümkündür. Bir neçə cihazı bir porta birləşdirsəniz (portu ayırsanız) bu, daha yüksək sürət verəcəkdir. Siz hubdan istifadə edərək filial edə bilərsiniz (hub bir portdan 3-6 porta şaxələnən cihazdır). İndi hubı USB 3.0 portuna qoşsanız və bir neçə cihazı (məsələn, fləş diskləri) huba qoşsanız və eyni vaxtda məlumat ötürsəniz, sürətin USB ilə olduğundan daha yüksək olacağını görəcəksiniz. 2.0 interfeysi. Bir artı və mənfi ola biləcək bir xüsusiyyət var. USB 3.0 interfeysi cərəyanı 900 mA-a qədər artırıb, USB 2.0 isə 500 mA cərəyanla işləyir. Bu, USB 3.0 üçün uyğunlaşdırılmış cihazlar üçün bir artı olacaq, lakin kiçik bir mənfi cəhət ondan ibarətdir ki, telefon kimi daha zəif cihazları doldurarkən risk ola bilər. Yeni interfeysin fiziki çatışmazlığı kabel ölçüsüdür. Yüksək sürəti qorumaq üçün kabel USB 2.0 ilə müqayisədə daha qalın və uzunluğu qısalmışdır (3 metrdən çox ola bilməz). Fərqli USB interfeysləri olan cihazların olacağını qeyd etmək vacibdir yaxşıdır və problem olmamalıdır. Ancaq USB 3.0-ı köhnə porta qoşsanız və ya köhnə interfeys kabelini yeni porta qoşsanız, sürətin artacağını düşünməyin. Məlumat ötürmə sürəti ən zəif portun sürətinə bərabər olacaq.

  • Dərslik

Universal Serial Bus üzərində OSI şəbəkə modelinin təsvirli proyeksiyası.

USB yığınının üç "əlamətdar" səviyyəsi

İnternetdə ən çox tapıla bilən USB yığınının görünüşü məni qane etmədi:

Çox faydalı USB yığını deyil


Avtobus səviyyəsi, məntiqi, funksional... Bunlar təbii ki, gözəl abstraksiyalardır, lakin onlar daha çox host üçün sürücü və ya proqram təminatı hazırlamağa hazırlaşanlar üçündür. Mikrokontroller tərəfində mən şablon sonlu dövlət maşını gözləyirəm, onun qovşaqlarına adətən faydalı kodumuzu yerləşdiririk və o, janrın bütün qanunlarına uyğun olaraq əvvəlcə uğursuz olacaq. Və ya hostun proqram təminatı səhv olacaq. Və ya sürücü. Hər halda, kimsə uğursuz olacaq. MK kitabxanalarını dərhal anlamaq da mümkün deyil. Və beləliklə mən analizatorla USB avtobusundakı trafikə baxıram, burada üç gözəl səviyyəli tanış olmayan bir dildə baş verən hadisələr heç də uyğun gəlmir. Görəsən, qrip qızdırmasına görə başımda belə dissonans yaranıb?

Oxucuda oxşar hisslər olubsa, sevimli 7 qatlı OSI modelinə əsaslanaraq, həddindən artıq qızmış beynimdə birdən mənə aydın görünən USB yığınının alternativ görüntüsünü təklif edirəm. Özümü beş səviyyə ilə məhdudlaşdırdım:

Demək istəmirəm ki, bütün proqram təminatı və kitabxanalar artıq hazırlanıb və ya bu model əsasında hazırlanmalıdır. Mühəndislik səbəblərinə görə səviyyələri olan kod çox qarışıq olacaq. Ancaq USB avtobusu ilə tanışlığa başlayanlara, cihaz mübadiləsi protokollarını və mövzu sahəsinin terminologiyasını başa düşmək istəyənlərə yaxınlaşmağa kömək etmək istəyirəm. hazır nümunələr, kitabxanalar və daha yaxşı naviqasiya. Bu model MK-ya yükləmək üçün deyil, sizin parlaq zehniniz üçün nəzərdə tutulub, əziz dostlar. Və sonra qızıl əlləriniz hər şeyi özləri edəcək, şübhəm yoxdur :)

Beləliklə, gedək, səhvlər görürsünüzsə, düzəldin. Bu qaralama versiyadır və əgər hardasa belə bir şey artıq çəkilibsə, üzr istəyirəm, tapa bilmədim, ona görə də özüm düzəltdim. Düşünürəm ki, şəkil qaçmayacaq, amma indi hörmətli ictimaiyyətə ilk növbədə bu nəşrə niyə başladığımı izah edəcəyəm.

90-cı illərdən başqa bir flashback

Mən ilk səhvimi başqasının kodundan 90-cı illərin sonunda, tələbə kimi işləyərkən sildim. Bu, FreeBSD üçün pppd idi, sonra onu modem hovuzuna quraşdırdıq. Motorola modemləri bağlı vəziyyətdə qaldı, heç kim keçə bilmədi, xətt boşa çıxdı və PPP-nin canlı saxlanması ilə qalan yeganə üsul nədənsə səhv idi. O zaman bildim ki, nədənsə pppd tələb olunan dörd əvəzinə altı LCP cavab baytını gözləyir. Onda özümü çox dəli hiss etdim bug shaker 90-cı illərdən :-) PPP-nin bununla nə əlaqəsi var? Bu, USB-yə bənzəyir: paket və nöqtədən nöqtəyə. Düzdür, USB 2.0-dan fərqli olaraq tam dupleksdir.


İstəsək də, istəməsək də, mikrokontrollerlərin təkamülü açıq şəkildə dayanmayacaq. Xeyr, yox və o, nəşrlərdə görünəcək (http://habrahabr.ru/post/208026/, http://habrahabr.ru/post/233391/) "ağır ətraf qurğular" - MK-da quraşdırılmış USB avtobus tətbiqləri, təhlil nümunələri ilə, HID-dən istifadə etməklə və s. Verilən səkkiz nümunədən RaJa müəllifinə hörmətlə yanaşmalıyıq standart kitabxana STSW-STM32121 (UM0424) və birtəhər ən faydalı olanı (Xüsusi HID) seçdi, onu pulsuz Em::Blocks mühitinə köçürdü, qeyd edildi aydın dildə, bir az bəzədib, bravo! Bu mənə çox vaxt qənaət etdi.

Kitabxanaya necə getmək olar?

Müəllif tərəfindən lütfən GitHub-da yerləşdirilən Em::Blocks üçün RHIDDemo layihəsini aldıqdan sonra onu Keil-ə köçürməyə başladım (FTDI əsaslı CoLink sazlayıcım; kimsə mənə Em::Blocks üçün Coocox plaginini desin). Ancaq mən başa düşə bilmədim: əgər sayt 2011-ci ildən 3.5.0-ı yerləşdiribsə, müəllif 2012-ci ildən SPL 3.6.1-i haradan alıb? Mən olduqca darıxdırıcı bir axtarışdan keçdim, bu da məni təəccübləndirdi... birbaşa USB FS 4.0.0 kitabxanasının bir hissəsi kimi Keil üçün hazır Xüsusi HID layihəsinə gətirib çıxardı. Süpürgə altında siçan kimi göz qabağında yatır. Oh yaxşı. Amma nəhayət STMicroelectronics buraxılışlarına çatdım, STSW-STM32121 (UM0424) USB FS kitabxanasının təsvirini tapdım və tərtibatçının məni dəli etmək cəhdlərini dayandırdım. Mənə deyin, 2011-ci ildə buraxılmış SPL 3.5.0 dəstinə 2009-cu ildən vintage CMSIS 1.30-u yerləşdirmək, 2012-ci ildə buraxılmış yeni SPL 3.6.1-i 2013-cü ildə buraxılmış USB-FS 4.0.0-da gizlətmək normaldırmı (CMSIS 3.0.0. 1-dən 2012-ci ildə də orada), göndərmələrinə baxmayaraq cari versiya CMSIS 3.30 buraxılışı 2014? Yeri gəlmişkən, STM32F10X üçün SPL 3.6.x-də bufer daşması siqnalları ilə bağlı USART ilə bir neçə səhv düzəldildi. Sağ olun, heç olmasa buraxılış qeydlərini qoyublar...

HID vs SNMP

Beləliklə, STM32F103C8T6-nı götürərək, USB HID mövzusunu bir az araşdırmaq qərarına gəldim, USB HID abstraksiya hər cür sensorlar, sensorlar və digər PWM ilə idarə olunan güc sürücülərinin konsepsiyasına çox yaxşı uyğun gəlir. Nədənsə bu, mənə SNMP-ni xatırlatdı, yalnız çox sadələşdirilmiş formada: HID deskriptorları SNMP MIB rolunu oynayır. Cihaz ev sahibi tərəfindən işə salındıqda: “Salam, ev sahibi! Mən qəhvə hazırlayanam. Məndə [başlat] düyməsi, [qaymaq], [şəkər] idarələri, [qalan qəhvə], [su qalır], [şəkər qalır], [qaymaq qalır]. Sürücüləri qaldırın, düyməni basın, bir az qəhvə içək." Sizə heç nəyi xatırlatmır? SNMP dialoqunun nümunəsi: “Yaxşı, salam, 100.000 dollara proqram təminatı olan idarəetmə stansiyası. Və mənim 200.000 dollara keçid şassim var və onun hər biri 100.000 dollara daha 4 modulum var; hər birində nalayiq sürətlə daha 16 port var və burada bütün funksiyaları sadalamaq sadəcə mümkün deyil... hər bir element üçün ayrıca soruşun; ah, bəli, prosessor yükü filan, yaddaş filan...” Və eyni ruhda başqa onlarla səhifə.

HID ideyasını bəyəndim. Ancaq Windows-u yanıb-sönən LED-lərin təhsil tapşırıqlarından kənara çıxan kimi (həqiqi UNIX mühitlərinə doğru!), o, bütün möhürlənməmiş çatlardan sızmağa başladı və özümü bir növ aciz axsaq kimi hiss etdim. Layihəni sazlayarkən, mən instinktiv olaraq bir növ tcpdump (bu belə adlanır: usbdump(8) və ya usbmon) tutdum, lakin mən yalnız tanımadığı dildə mesajlar gördüm.

Aydın oldu: USB avtobusu haqqında fundamental bilik çatışmazlığı var. Hər hansı bir təcrübəli İT mütəxəssisi OSI modelini və TCP/IP yığınını onurğa beyni səviyyəsində sadəcə olaraq zərurətdən başa düşürsə, USB ilə vəziyyət fərqlidir. Bu başa düşüləndir: orada eyni tcpdump vasitəsilə trafikə casusluq edə bilərsiniz (lazımdır) və aparat və proqram təminatını konfiqurasiya edə bilərsiniz, lakin burada o, tamamilə qoşub istifadə edir və siz sürücünü və ya mikroproqramı yeniləməklə (və ya ƏS-ni yenidən quraşdırmaqla) nəyisə düzəldə bilərsiniz. Ancaq biz buraya sadəcə yaxşı proqram təminatı yaratmaq üçün toplaşmışıq, elə deyilmi? Bəzi USB təsvirlərini onlayn oxuduqdan sonra sənədlərin nə qədər qarışıq ola biləcəyinə təəccübləndim. Hətta məndə belə bir hiss var idi ki, onlar qəsdən duman yaymaqla, qönçədəki rəqabətdən qurtulmaqla bizi yoldan çıxarmaq istəyirlər. Mən bu vəziyyətlə razı deyiləm!

Başqa bir möhtəşəm sxem

İnternetdə başqa bir illüstrasiya ilə qarşılaşdım (bu, BMP formatında idi, zarafat deyil):

Əvvəlcə optimist görünür. Nəhayət, yığın sökülür. Bununla belə, çərçivələr zəif işarələnib: mən onları şaquli nöqtəli xətlərlə çəkərdim və EOF sadəcə fasilədir, heç bir məlumat əslində ötürülmür. Ancaq konteksti oxumağa başlayırıq və müəllifin əsl niyyətini başa düşmürük (bizi çaşdırmaq üçün):

USB avtobus interfeysi host nəzarətçisi yaradır kadr;
Kadrlar NRZI metodundan istifadə edərək seriyalı bit ötürülməsi ilə ötürülür.
Və burada başqa:
hər çərçivəən yüksək prioritetdən ibarətdir bağlamalar, tərkibini aparıcı sürücü təşkil edir;
hər biri yayım bir və ya bir neçə əməliyyatdan ibarətdir;
hər bir əməliyyat ibarətdir paketlər;
hər plastik torba paket identifikatorundan, verilənlərdən (əgər varsa) və yoxlama məbləğindən ibarətdir.

Deyəsən hər şey düzgün çəkilib, amma oxuduqca suallar daha çox olur. Avtobusda ötürülən minimum məlumat strukturu çərçivə və ya paketdir? Ümumiyyətlə, yuxarıdan aşağıya baxmalıyıq, yoxsa əksinə? Və NRZI metodundan istifadə edərək kodlaşdırılan nədir - çərçivələr, paketlər və ya avtobusdakı bütün bit axını? Əməliyyatlar bağlama, köçürmə və ya bəlkə də bir növ qiymətli bağlamadan ibarətdir?
Niyə edə bilməzsiniz: host paketləri əməliyyatlara qruplaşdırır və onları cari avtobus ötürmə qabiliyyətinə əsaslanaraq vaxt baxımından kritik məlumatlara (video, audio) üstünlük vermək üçün çərçivələr adlanan vaxt dilimlərinə paylayırmı? Bəli, USB-də paket köçürmələrinin planlaşdırılması ilə bağlı nüanslar var, mən hələ onlara toxunmuram.

USB yığını ilə bağlı baxışım

Mən hubda qeyd olunan NutShell-dəki USB-ni (hurray, tərcümə), eləcə də USB Made Simple-ni yaxşı sənədləşdirmə hesab edirəm. Onlara əsaslanaraq, USB yığınının versiyasını yığdım, onu yenidən çəkəcəyəm.

Fiziki təbəqə
Fiziki səviyyədə, diferensial cüt keçiricinin (yerlə birlikdə) elektrik rejimləri dəsti bit doldurulması ilə NRZI metodundan istifadə edərək bit axınının kodlandığı vəziyyətləri təyin etmək üçün istifadə olunur: burada altı ardıcıl "1"dən sonra ( yaxşı, ötürmək istədim, deyək ki, 0xffff) “0” qəbuledicinin uzun müddət bir vəziyyətdə qalmaması üçün daxil edilmişdir; Qəbuledici A Daxil edilmiş “0” yoxdur və bu, tezliklərin daha yaxşı avtomatik tənzimlənməsi üçün kodlaşdırmada kifayət qədər geniş yayılmış texnikadır; Torpaqla birlikdə bir cüt tel ən azı dörd statik vəziyyət yaratmağa imkan verir (onlar J, K, SE0, SE1 olaraq təyin olunur). USB 2.0-da SE1 istifadə edilmir və qalan üçü əlavə olaraq bir neçə nəzarət simvolunu (paket sərhədləri, sıfırlama, qoşulma/ayrılma, enerjiyə qənaət/çıxış) ötürmək üçün dinamikada (saatlar və keçidlərlə) ifa olunur. USB Made Simple, Part 3 - Data Flow-da yaxşı təsvirlər var.
Bunlar. Nəticədə, məlumatlar sıfırlar və birlər, üstəgəl bütün növ nəzarət simvolları şəklində ötürülür ki, bu elektrodinamik mətbəxdən normal məlumat paketləri hazırlana bilsin.
(oxucuların xahişi ilə əlavə edilmişdir)
Dəstə səviyyəsi
Paket səviyyəsində ünvansız paketlər host və cihaz arasında ötürülür (yarım dupleks xəttdə olan bir cüt cihaz ünvansız edə bilər). Paket qəbuledicinin saatını, bayt ardıcıllığını və EOP simvolunu sinxronlaşdırmaq üçün SYNC markerindən ibarətdir. Paketin uzunluğu dəyişkəndir, lakin yığının yuxarı səviyyələri vasitəsilə razılaşdırılır. Birinci bayt Paket İdentifikatoru (PID) adlanır, səs-küydən qorunmaq üçün sadə lazımsız formata malikdir və növbəti səviyyəli maşına (paketlərdən əməliyyatların yığılması üçün) qidalanma üçün uyğundur. İçliyi olan paketlər (bir PID baytdan çox) yoxlama məbləği ilə təmin edilir (paketin növündən asılı olaraq qısa CRC5 və ya uzun CRC16). Protokol analizatoru ən azı bizə paketləri göstərməlidir.
Əməliyyat səviyyəsi
Növbəti səviyyədə paketlər gedirlər əməliyyatlar. Tranzaksiya, bir-birinin ardınca ciddi şəkildə izlənilən, (yarım dupleks rejimində) ev sahibinin son nöqtə ilə mübadilə edən kiçik paketlər toplusudur (Tam Sürətli USB 1, 2 və ya 3-də). Əməliyyatı yalnız ev sahibinin açması çox vacibdir; bu, USB xüsusiyyətidir (MK proqram təminatında bizim üçün daha az çətinlik var). Əməliyyat səviyyəsində biz danışa bilərik kanal(boru) host və cihazın son nöqtələrindən biri arasında, lakin mən qəsdən OSI modelindən "Data Link" terminindən qaçıram. Protokol analizatoru ən azı əməliyyatları deşifrə etməlidir.
Ötürücü səviyyəsi
Tranzaksiyaların üzərinə köçürmə qatını yerləşdirəcəyik. USB-də onların dörd növü var: 0 nömrəli son nöqtə ilə idarəetmə köçürmələri, kəsilmə köçürmələri, izoxron köçürmələr və toplu köçürmələr. Son üçü axın kanallarının variantlarıdır (axın borusu), onlar haqqında daha sonra bir neçə söz deyəcəyəm. Bu səviyyə də yaxşı bir protokol analizatorunu göstərməlidir.
Tətbiq təbəqəsi
Stackin yuxarı hissəsində, həmişə olduğu kimi, tətbiq təbəqəsi var. Burada baş verənlər: cihazın ünvanını host tərəfindən təyin etmək, cihaza özü haqqında deskriptorlar dilində məlumat vermək, konfiqurasiya seçmək üçün host əmrləri (nəzarət ötürülməsi), HID cihazları ilə məlumat mübadiləsi (nümunələrdə tapdım. bu günə qədər fasilələrlə ötürmə, mən nəzarəti sınamaq istəyirəm, printerdə çap və skan etmək, USB yaddaşa giriş (böyük blok), qulaqlıqlar və veb-kameralar vasitəsilə əlaqə (izoxron) və bir çox başqa gözəl şeylər.
Son toxunuş
Səviyyələri bir saniyə aşağı ataraq əlavə edə bilərik ki, ev sahibi vaxtaşırı eyni Start of Frame (SOF) paketlərini avtobusun üzərinə atır, vaxtı bərabər intervallara bölür, lakin tranzaksiyaların özləri pozulmayacaq şəkildə. Buna görə də, SOF paketləri müstəqil əməliyyatlar hesab edilə bilər. USB çərçivəsi OSI modelinin məlumat bağlantısı qatının omonimi ilə qarışdırılmamalıdır. Audio CD-nin çərçivələrini (çərçivələrini) xatırlamaq daha yaxşıdır, bu sadəcə bir zamandır: ev sahibi SOF paketləri ilə avtobusa "gənə verir" ki, qoşulmuş qurğular sözdə iştirak etməyi əvvəlcədən planlaşdırsınlar. izoxron ötürülmələr, məlumat axınlarını real vaxtda idarə etmək. Yaxşı və ya buna bənzər: əməliyyat qrupları ev sahibi tərəfindən çərçivələr adlanan vaxt intervallarında planlaşdırılır. Tam Sürətdə çərçivə 1ms və Yüksək Sürətli USB-də 125µs-dir, lakin Yüksək Sürət daha mürəkkəb bir standartdır və ayrı-ayrılıqda ən yaxşı şəkildə öyrənilir.
UPD:
Oxucular tərəfindən yaxşı bir sual verildi: parçalanma haqqında nə demək olar? USB 2.0-də əməliyyat səviyyəsində və aşağıda heç bir parçalanma əlaməti tapmadım, yəni. Əməliyyatların tam şəkildə ötürülməsi nəzərdə tutulur. Bəzi hallarda köçürmələr, xüsusən də izoxron rejimlər nəzərə alınmaqla, bir neçə əməliyyata bölünə bilər və edilməlidir. Yenə də deyirəm ki, hələlik ev sahibi bizim üçün bütün planlaşdırmalara cavabdehdir (MK tərəfində biz daha az düşünməliyik).

USB trafikinə baxırıq

İllüstrasiyaların yaxşı seçimi qeyd olunan USB Made Simple kitabında, 5-ci fəsildə verilmişdir: www.usbmadesimple.co.uk/ums_5.htm

Onlardan biri budur


Beləliklə, əməliyyat həmişə cihazda seçilmiş bir son nöqtə ilə əlaqəli olaraq ev sahibi tərəfindən başlayır (0 nömrəli xüsusi nöqtəyə əlavə olaraq, bir cihazda onlardan 15-ə qədər ola bilər, məsələn, birləşdirilmiş klaviatura ilə birləşdirilmiş klaviatura. siçan, termometr, fləş sürücü, qəhvə dəmləyən və santexnika sifarişi üçün zəng düyməsi).
Ev sahibi cihazdan məlumat alırsa, sonuncu özü əməliyyatı aça bilməz, ancaq gözləyə bilər doğru an və orada iştirak edin. Host cihazı PID = IN (Token qrupu) paketi ilə əməliyyat açır və tələb olunan müddət ərzində avtobus azadlığına zəmanət verir, cihaz əməliyyatın növündən asılı olaraq Data qrupundan paketi atır, host təsdiq edə bilər. Handshake qrupundan üçüncü paket (ACK, NAK, STALL, NYET) ilə uğur qazanır, əməliyyat bağlanır.
Cihaza məlumat göndərərkən (PID = OUT, Token qrupu) host əməliyyatı açır, məlumat paketi (Data) göndərir və rejimdən asılı olaraq, əməliyyatın müvəffəqiyyətini təsdiqləyən Handshake paketini də ala bilər.
Əməliyyatın sonunda hər şey normala dönəcək, cihaz yenidən hostdan nəzarət paketlərini gözləyəcək.

STM32 USB FS nümunələrində USB ötürmə rejimləri

Audio-video axını, siçan jestləri və yüksək sürətli osiloskop siqnalı ilə eyni vaxtda diskdən kopyalamaq üçün bir cüt naqildən istifadə etmək üçün müxtəlif növlər mesajlar və yayımlar.
Yuxarıda yalnız sadə təsvir etdim axın kanalı Doldurulmuş paketlərin (Məlumat qrupları) USB altsisteminin özünə heç bir xüsusi və ya nəzarət məlumatı daşımadığı host və son nöqtə arasında (Axın Borusu). Yazışmaların tam azadlığı, nəzarətçi kitabxanası MK yaddaşından ixtiyari ölçülü buferi hosta və ya arxaya yükləmək üçün primitivləri təmin etməlidir. MK kitabxanasına host sürücüsü ilə birlikdə paketlərə kəsmə, yönləndirmə və "defraqmentasiya" ilə məşğul olsun. STM32-də bunlar UM0424-də təsvir edilən USB_SIL_Write() və USB_SIL_Read()-dir. Onlar abstraksiyanın çox məntiqi səviyyəsidir. Host tərəfində müvafiq sürücünün təsvirinə baxın (məsələn, FreeBSD-də bu ugen(4)-dir).
Bununla belə, sadə axın kanalı təşkil etmək üçün USB kimi ağır periferiya qurğularından istifadə etməyi küfr hesab edirəm (sual olunur: USART-da nə səhvdir?). Ancaq təbii ki, hər cür vəziyyət var.
Hər halda, USB alt sisteminin ümumiyyətlə canlanması və cihazın aşkarlanması üçün nəzarət əməliyyatlarının mübadiləsi tələb olunur.

MƏDDƏT

STMicroelectronics-dən Tam Sürətli USB ilə işləmək üçün eyni UM0424 kitabxanasından əlavə nümunələr qeyd olunacaq, lakin onlar yerli demo lövhələri üçün nəzərdə tutulub. Müəllif Rajadan nümunə götürün, layihələri demo boardunuza uyğunlaşdırmaqda mühəndislik fərasətini göstərin.

Proqram təminatı ilə bağlı hər şey aydındır: bunlar sənaye istifadəsi üçün olmayan nümunələrdir, səhvlər ola bilər, bəzi hissələr (məsələn, Kütləvi yaddaş nümunəsindəki link cədvəli) patentlə qorunur və sizin onlardan istifadə etmək hüququnuz yoxdur. kommersiya layihəsində. Ancaq bu heç bir şey deyil, çinlilər daha sonra VID və PID kitabxanasını dəyişdirməkdən belə çəkinmədikləri USB məhsullarını bazarda satmağı bacarırlar.

Dəmir üçün, mənim başa düşdüyüm kimi, kvarsdan başlamaq lazımdır. Məndə 12 MHz kvars olan Chelyabinsk PinBoard II var (bütün kitabxanalar 8 MHz üçün nəzərdə tutulmuşdur), PLL çarpanını 9-dan 6-a dəyişdirdim (izahlarla əlaqə), əks halda MK 72 MHz əvəzinə 108 MHz-ə qədər sürətlənəcək və USB tələb olunan 48 MHz əvəzinə 72 MHz-ə getməyəcək. Siz həmçinin USB avtobus bölücüsünü bir yarımdan birə dəyişdirərək MK sürətini 48 MHz-ə endirə bilərsiniz. Mütəxəssislər HSI MK-nın daxili generatorundan istifadə etməyi sevmirlər: istilik səbəbindən tezlik bir qədər sürüşə bilər və USB-nin nəticələrini proqnozlaşdırmaq çətindir. Əlbəttə ki, periferiyanı unutma. SPI/SDIO fləş yaddaşı olmadan, Kütləvi yaddaş nümunəsindən yalnız /dev/null analoqunu yarada bilərsiniz, lakin onu formatlaya bilməzsiniz :-)

Ötürmələri və mesaj kanallarını idarə edin
USB haqqında düşünərkən LCP, IPCP, CCP və həmçinin xzCP ilə köhnə PPP protokolunu xatırlayıram. Host və 0 saylı son nöqtə arasında xüsusi tipli mesajların mübadiləsi x3CP-nin yerli ekvivalentidir.
İdarəetmə ötürülmələri vasitəsilə cihaz işə salınır, ünvan alır, hosta özü haqqında deskriptorların dilində danışır (belə ki, o, tapıb aktivləşdirə bilsin. tələb olunan sürücü). Nəzarət əməliyyatları olmadan sadə axın işləməyəcək, əgər cihaz formada cavab vermirsə, host tez bir zamanda portu bağlayacaq: protokola əməl edilməlidir.
Prinsipcə, protokol asılmağı qadağan etmir nəzarət nöqtəsi№ 0 və kəsilmə rejiminə bənzər məlumat mübadiləsi. Eyni zamanda, bu barədə düşünün: MK mikroproqramını, belə deyək, sahədə necə yeniləyəcəksiniz? Proqramçı hazırsınız? Başqa bir həll yolu var.
Misal: Cihazın proqram təminatının təkmilləşdirilməsi
Kəsilmiş ötürmələr
Bu müxtəliflik ( köçürməni dayandırmaq) nəzarət əməliyyatlarına bənzər kiçik əməliyyatların mübadiləsi üçün nəzərdə tutulub. Xeyr, cihaz hostun işini kəsə bilməz, səsverməni gözləyir, onların tezliyi və paket ölçüləri əvvəlcədən cihazın deskriptorunda müəyyən edilir. Hər növ uzaqdan idarəetmə, sensorlar, siçanlar, LEDlər və digər HID qəhvə dəmləyiciləri üçün yaxşı uyğundur. Hər nöqtədə fasilələr olan kanal bir istiqamətlidir.
Nümunələr: Fərdi HID, Joystick siçanı, Virtual COM portu
İzoxron ötürmələr
Χρόνος yunan dilində "zaman" deməkdir. İzoxron ötürülmə ( izoxron köçürmə) - real vaxt rejimində məlumat axınlarını idarə etməyə imkan verən yerli yüksək texnologiya. O, zəmanətli (lakin mütləq geniş deyil) bant genişliyi və QoS ilə UDP kimi təsdiqləyici əməliyyatlara malik deyil. Sınıq paket? MK-nı ayağına itələyən tanrı Xronos idi. Paketi yenidən göndərməyə cəhd etməyə ehtiyac yoxdur, əks halda Allah üzüləcək. Bununla belə, yoxlama məbləğlərini Chronos-dan sakitcə yoxlayırıq. İzoxron köçürmələr audio-video və real vaxt ölçmə sistemləri, eləcə də digər oyuncaqlar üçün yaxşıdır ikili istifadə. Baxmayaraq ki, bəziləri ola bilər. USART və ya SPI vasitəsilə ARM-ə qoşularaq bir növ AVR-ni bağlamaq daha maraqlıdır. İzoxron əməliyyatlar çərçivə siqnalizasiyasında iştirak edir (SOF paketinin işarələnməsini xatırlayın).
Misal: USB səs dinamiki
Böyük bloklu ötürücülər
Xeyr, biz sement torbaları daşımayacağıq. Düşünürəm ki, hər kəs müxtəlif iş rejimini öyrənib USB sürücüləri. Transferlər toplu köçürmə hər zaman pozulmuş paketlərin ötürülməsi ilə, lakin bant genişliyinə zəmanət olmadan məlumatları mümkün qədər tez və mümkün qədər tez göndərmək məqsədi var, lazım olduqda onu izoxron ötürmələrə verir (QoS olmadan TCP-də olduğu kimi). HAQQINDA daxili quruluş Mən artıq USB flash sürücülər haqqında danışdım, indi işləyən prototipi yükləyə və işlədə bilərsiniz. Mən bunu özüm sınamamışam, amma nümunə təsvirindəki SCSI əmrləri cədvəli (yeri gəlmişkən) olduqca simvolikdir. NAND yaddaşı üçün aşınma idarəetmə alqoritminin heç bir əlaməti tapmadım :-)
QEYD: STM patent mühafizəsi yerlərdə tətbiq edilir.
Misal: Kütləvi saxlama

Açılmamış nə qalıb

USB-də başqa dərslik hazırlamaq məqsədim yoxdur, mənsiz də kifayət qədər var və onlar yaxşı təsvir olunub: elektrik hissəsi, protokol detalları, hublarla işləmə, deskriptor dili və HID abstraksiya səviyyəsi, VID/ ilə problemlər PID unikallığı, USB 3.0 və USB avtobusun bir çox digər gözəl xüsusiyyətləri, həm bizim üçün faydalıdır, həm də çox deyil. İT mütəxəssisləri üçün xüsusilə düşmən cihazlarının icmalı ilə qaranlıq tərəfə ekskursiya etməyi məsləhət görürəm (dəhşətli işlər görəcək maskalanmış HID klaviaturası olan bir flash sürücü).

Bağlantılar

Xüsusi HID nümunəsinin pulsuz Em::Blocks mühitinə və LC-Tech Industrial Electronics tərəfindən istehsal olunan STM32F103C8T6 büdcə demo lövhəsinə uyğunlaşdırılması. İT adamları. Bu bir növ mühəndislik Yin və Yangdır, hər birimizin hər ikisindən bir payı var.

Sənaye elektronikası mühəndisləri aparat sahəsində mükəmməl bilik və bacarıqlara malikdirlər, onlar saç kimi nazik radio komponentlərini sol əlləri ilə gözləri ilə lehimləyirlər (sonra işləyir). Baxır elektron dövrə, demək olar ki, fiziki olaraq bütün cərəyanlarını potensiallarla hiss etməyə başlayır, onlar da güc sxemləri ilə və (böyük, sürətli, təhlükəli) sənaye məhsulları ilə işləyirlər. MK-nın proqramlaşdırılmasına yanaşma uyğundur: o, sadəcə olaraq lazımi məntiqi səviyyələri lazımi vaxtda düzgün ayaqlara çıxarmalıdır, hansı şəkildə olmasının əhəmiyyəti yoxdur. Texnologiyada mühafizəkardırlar (müdaxilə etməyin - işləyir), ağır MK periferiyaları xüsusilə üstünlük təşkil etmir. Obyekt yönümlü proqramlaşdırmanı müzakirə edərkən, informasiya təhlükəsizliyi, milyonlarla kod sətirləri və hər cür gözəl qrafik interfeysləri olan nəhəng layihələr cansıxıcı olur. Paket yönümlü USB avtobusu əvəzinə onlar adi RS-232 və ya daha qəddar RS-485 (sənaye proqramları üçün seriya avtobusu, 15 m-də 10 Mbit/s, 100-ə qədər) ilə təkmilləşdirilmiş USART axın rejiminə üstünlük verirlər. 1200 m-də kBit/s, 32 cihaza qədər).

İT insanları anlamaq üçün yetişdirilir əməliyyat sistemləri, şəbəkə infrastrukturu və mürəkkəb qarşılıqlı əlaqələr, elita informasiya təhlükəsizliyini yaxşı bilir və başqasının sisteminə nüfuz etmək üçün hər cür görünməz yolları başa düşür. Bəzi insanlar həqiqətən pişikləri sevirlər (sən onları necə sevməyə bilərsən? Ancaq mən saxlamıram, yetişdirmirəm və bişirmirəm :-). Bir çox insanlar məlumat azadlığını, korporasiyaları/hökumətləri tənqid etməyi və təbiət qüvvələrini düşüncə gücü ilə məğlub etməyi sevirlər. Onlar patoloji cəhətdən tənbəldirlər, lakin onlar yeni texnologiyalar və bahalı oyuncaqlar ilə bükülmüş mühəndislik bulmacalarını sevirlər (tercihen proqram səviyyəsində həll olunur və ya həddindən artıq hallarda jumpers). Bir lehimləmə dəmiri ilə münasibətlər qorunur: İT mütəxəssisindən lehimləmə dəmirini bəyəndiyini soruşmayın, səhv başa düşə bilər; Elektron sxemləri lehimləməyi sevdiyini soruşmaq daha yaxşıdır.

Mən nədən danışıram? Biz bu dünyaya başqa cür baxırıq... Axı Linux nüvəsi Eyni uşaqlar onu C modullarından və xüsusi platformalar üçün assembler əlavələrindən kəsdilər və sanki bayramlar olmadan keçindilər. Mən həqiqətən ciddi layihəni ən son mikrokontrollerləri ağır periferik qurğularla birləşdirən çoxnüvəli sistem kimi görürəm, lakin AVR kimi klassik modellərlə kombinasiyaları istisna etmirəm: onlardan texniki tərəqqinin bəzi kritik, sürətlə fırlanan nizə ucluqlarını asmaq üçün istifadə etmək olar. Əgər kod illərdir sınaqdan keçirilirsə, niyə də olmasın?

Teqlər əlavə edin

USB (Universal seriya avtobusu- "universal seriya avtobusu") - serial interfeys orta və aşağı sürətli periferik cihazlar üçün məlumat ötürülməsi.Qoşulmaq üçün 4 telli kabel istifadə olunur, iki naqil məlumatların qəbulu və ötürülməsi üçün, 2 naqil isə periferik cihazı gücləndirmək üçün istifadə olunur. Daxili xətlər sayəsində USB enerji təchizatıöz enerji təchizatı olmadan periferik cihazları birləşdirməyə imkan verir.

Əsaslar

USB kabel 4 mis keçiricidən - bükülmüş cütdə 2 güc keçiricisi və 2 məlumat ötürücüdən və torpaqlanmış örgüdən (ekran) ibarətdir.

USB kabellər“cihaza” və “ev sahibinə” fiziki cəhətdən fərqli məsləhətlərə malikdir. Mümkün USB tətbiqi kabelsiz cihazlar, gövdəyə quraşdırılmış “host” ucu ilə. Kabelin daimi olaraq cihaza inteqrasiyası da mümkündür(məsələn, USB klaviatura, Veb kamera, USB siçan), baxmayaraq ki, standart tam və yüksək sürətli cihazlar üçün bunu qadağan edir.

USB avtobus ciddi yönümlüdür, yəni “master cihaz” anlayışına malikdir (aparıcı, USB nəzarətçi kimi də tanınır, adətən cənub körpüsünün çipinə quraşdırılır. ana plata) və "periferik cihazlar".

Cihazlar avtobusdan +5 V güc ala bilər, lakin tələb oluna bilər xarici mənbə qidalanma. Gözləmə rejimi avtobusdan verilən əmr əsasında cihazlar və bölücülər üçün də dəstəklənir, gözləmə rejimində enerjini saxlayarkən əsas gücü çıxarır və avtobusdan verilən əmr əsasında onu işə salır.

USB dəstəkləyirCihazların isti qoşulması və ayrılması. Bu, siqnal olanlara nisbətən topraklama kontaktı keçiricisinin uzunluğunun artması səbəbindən mümkündür. Bağlandıqda USB konnektoru ilk bağlayanlardır torpaqlama kontaktları, iki cihazın korpuslarının potensialları bərabər olur və siqnal keçiricilərinin sonrakı birləşdirilməsi, qurğular üç fazalı elektrik şəbəkəsinin müxtəlif fazalarından qidalansa belə, həddindən artıq gərginliyə səbəb olmur.

Məntiqi səviyyədə USB cihazı məlumatların qəbulu və ötürülməsi üçün əməliyyatları dəstəkləyir. Hər bir əməliyyatın hər bir paketində bir nömrə var son nöqtə cihazda. Cihaz qoşulduqda, OS nüvəsindəki sürücülər cihazdan son nöqtələrin siyahısını oxuyur və cihazdakı hər bir son nöqtə ilə əlaqə saxlamaq üçün nəzarət məlumat strukturları yaradır. ƏS nüvəsindəki son nöqtələrin və məlumat strukturlarının toplanması adlanır boru.

Son nöqtələr və buna görə də kanallar 4 sinifdən birinə aiddir:

1) axın (toplu),

2) menecer (nəzarət),

3) izoxron (izox),

4) fasilə.

Siçan kimi aşağı sürətli cihazlar ola bilməz izoxron və axın kanalları.

Nəzarət kanalı cihazla qısa sual-cavab paketlərinin mübadiləsi üçün nəzərdə tutulmuşdur. Hər hansı bir cihazda 0 nəzarət kanalı var ki, bu da imkan verir proqram təminatı OS oxudu qısa məlumat sürücünü seçmək üçün istifadə edilən istehsalçı və model kodları və digər son nöqtələrin siyahısı daxil olmaqla cihaz haqqında.

Kanalı kəsin qısa paketləri hər iki istiqamətdə, cavab/təsdiq almadan, lakin çatdırılma müddətinə zəmanətlə çatdırmağa imkan verir - paket N millisaniyədən gec olmayaraq çatdırılacaq. Məsələn, giriş cihazlarında (klaviaturalar, siçanlar və ya joysticklər) istifadə olunur.

İzoxron kanal sizə paketləri çatdırılma zəmanəti olmadan və cavablar/təsdiqlər olmadan, lakin avtobus müddətində N paketin zəmanətli çatdırılma sürəti ilə (aşağı və tam sürət üçün 1 KHz, yüksək sürət üçün 8 KHz) çatdırmağa imkan verir. Audio və video məlumatların ötürülməsi üçün istifadə olunur.

Axın kanalı hər bir paketin çatdırılmasına zəmanət verir, cihazın istəksizliyi (buferin daşması və ya az olması) səbəbindən məlumat ötürülməsinin avtomatik dayandırılmasını dəstəkləyir, lakin çatdırılma sürətinə və gecikməsinə zəmanət vermir. Məsələn, printerlərdə və skanerlərdə istifadə olunur.

Avtobus vaxtı dövrlərə bölünür, dövrün əvvəlində nəzarətçi “dövrün başlanğıcı” paketini bütün avtobusa ötürür. Daha sonra dövr ərzində kəsmə paketləri, daha sonra dövr ərzində qalan vaxt üçün tələb olunan miqdarda izoxron paketlər, nəhayət, axın paketləri ötürülür.

Avtobusun aktiv tərəfi həmişə nəzarətçidir, məlumat paketinin cihazdan nəzarətçiyə ötürülməsi nəzarətçinin qısa sualı və məlumatları ehtiva edən cihazdan uzun cavab kimi həyata keçirilir. Hər bir avtobus dövrü üçün paketin hərəkət cədvəli bunun üçün bir çox nəzarətçinin istifadə etdiyi nəzarətçi aparatı və sürücü proqramı ilə birlikdə yaradılır; Birbaşa Yaddaş Girişi DMA (Birbaşa Yaddaş Girişi) - qurğular arasında və ya cihazla əsas yaddaş arasında, iştirakı olmadan məlumat mübadiləsi rejimi Mərkəzi prosessor(CPU). Nəticədə, məlumatların CPU-ya geri və irəli göndərilmədiyi üçün ötürmə sürəti artır.

Son nöqtə üçün paket ölçüsü cihazın son nöqtə cədvəlində quraşdırılmış sabitdir və dəyişdirilə bilməz. O, USB standartı tərəfindən dəstəklənənlər arasından cihaz tərtibatçısı tərəfindən seçilir.


Spesifikasiyalar

USB imkanları:

Yüksək ötürmə sürəti (tam sürətli siqnal bit sürəti) - 12 Mb/s
- Yüksək ötürmə sürəti üçün maksimum kabel uzunluğu - 5 m
- Aşağı sürətli siqnal bit sürəti - 1,5 Mb/s
- Aşağı ötürmə sürəti üçün maksimum kabel uzunluğu - 3 m
- Maksimum qoşulmuş qurğular (çoxaltıcılar daxil olmaqla) - 127
- Müxtəlif ötürmə sürətlərinə malik cihazları birləşdirmək mümkündür
- İstifadəçinin SCSI terminatorları kimi əlavə elementləri quraşdırmasına ehtiyac yoxdur
- Periferik qurğular üçün təchizatı gərginliyi - 5 V
- Bir cihaz üçün maksimum cərəyan istehlakı - 500 mA

USB 1.1 və 2.0 konnektor naqilləri

USB siqnalları qorunan dörd telli kabelin iki teli üzərindən ötürülür.

Budur :

GND- periferik cihazları enerji ilə təmin etmək üçün "case" sxemi
V AVTOBUS- Enerji təchizatı sxemləri üçün də +5V
Təkər D+ məlumatların ötürülməsi üçün nəzərdə tutulmuşdur

Təkər D- məlumat almaq üçün.

USB 2.0-ın çatışmazlıqları

Maksimum ötürmə sürətinə baxmayaraq USB məlumatları 2.0 480 Mbit/s (60 MB/s) təşkil edir, real həyatda belə sürətlərə nail olmaq qeyri-realdır (praktikada ~33,5 MB/s). Bu, məlumatların ötürülməsi üçün sorğu ilə köçürmənin faktiki başlanması arasında USB avtobusunda böyük gecikmələrlə bağlıdır. Məsələn, FireWire, USB 2.0-dan 80 Mbps (10 MB/s) az olan 400 Mbit/s aşağı pik ötürmə qabiliyyətinə malik olsa da, əslində daha çox məlumat ötürmə qabiliyyətinə imkan verir. sabit disklər və digər məlumat saxlama cihazları. Bununla əlaqədar olaraq, müxtəlif mobil sürücülər uzun müddət USB 2.0-ın qeyri-kafi praktiki bant genişliyi ilə məhdudlaşır.

Host və cihaz arasında məlumat mübadiləsini təmin edir. Protokol səviyyəsində ötürülmənin etibarlılığının və etibarlılığının təmin edilməsi və axınlara nəzarət kimi vəzifələr həll edilir. USB avtobusunda bütün trafik hər bir əməliyyatda əməliyyatlar vasitəsilə ötürülür, mübadilə yalnız host və ünvanlanmış cihaz (onun son nöqtəsi) arasında mümkündür.

USB cihazları ilə bütün əməliyyatlar (mübadilələr) iki və ya üç paketdən ibarətdir. 1. Hər bir tranzaksiya əməliyyat nişanı paketini göndərən host nəzarətçisi tərəfindən planlaşdırılır və başlanır. Əməliyyat nişanı köçürmənin növünü və istiqamətini, seçilmiş USB cihazının ünvanını və son nöqtə nömrəsini təsvir edir. Markerin ünvanladığı cihaz onun ünvanını tanıyır və mübadilə üçün hazırlanır. Token tərəfindən müəyyən edilmiş məlumat mənbəyi məlumat paketini ötürür. Bu nöqtədə izoxron köçürmələrlə bağlı əməliyyatlar tamamlanır - paket qəbzinin təsdiqi yoxdur. Digər ötürmə növləri üçün məlumatların zəmanətli çatdırılmasını təmin edən təsdiqləmə mexanizmi mövcuddur. Paket formatları Şəkildə göstərilmişdir. 2, paket növləri cədvəldə verilmişdir. CRC sahəsi istisna olmaqla, bütün paket sahələrində məlumat əvvəlcə ən az əhəmiyyətli bit ötürülür (ən az əhəmiyyətli bit zamanlama diaqramlarında solda göstərilir). Paket Sinxronizasiya ardıcıllığı ilə başlayır və terminator - EOP ilə bitir. Paket növü PID sahəsi ilə müəyyən edilir. Qalan sahələrin məqsədi aşağıda izah edilir. Sinxronizasiya və EOP sahələrinin uzunluğu yüksək sürətli ötürmələr üçün FS/LS-də ötürmələr üçün müəyyən edilir, Sinxronizasiya sahəsi 32 bit intervallara, EOP isə 8-ə qədər genişləndirilir (SOF paketlərində EOP sahəsi 40 bitdir; ).

Qəbul edilmiş paket formatları və müəyyən konvensiyalar imkan verdiyi üçün bütün qəbul edilmiş paketlər səhvlər üçün yoxlanılır:

  • paket PID (Paket İdentifikatoru) ilə izlənilən sinxronizasiya ardıcıllığı ilə başlayır. İdentifikatordan sonra onun tərs nüsxəsi gəlir - Check. İki nüsxə arasında uyğunsuzluq səhv əlaməti hesab olunur;
  • paketin gövdəsi (PID və EOP atributundan başqa paketin bütün sahələri) CRC kodu ilə qorunur: marker paketləri üçün 5 bit, məlumat paketləri üçün 16 bit. Gözlənilən dəyərə uyğun gəlməyən CRC xəta hesab edilir;
  • paket xüsusi EOP siqnalı ilə bitir; Paketdə tam olmayan sayda bayt varsa, o, səhv hesab olunur. Saxta EOP, hətta bayt sərhədində belə, bu vəziyyətdə demək olar ki, qaçınılmaz CRC xətası səbəbindən paketin qəbuluna imkan verməyəcək;
  • paket verilənləri monoton siqnal zamanı bit sinxronizasiyasının itirilməsinin qarşısını alan bit doldurulması (altı bir bitdən sonra sıfır daxil edilir) istifadə edərək fiziki təbəqəyə (avtobusa) ötürülür. Ardıcıl olaraq altıdan çox bir bit qəbul etmək səhv hesab olunur (HS-də - çərçivənin sonunun əlaməti).

Paketdə bu səhvlərdən hər hansı birinin aşkarlanması alıcının onu etibarsız hesab etməsinə səbəb olur. Nə cihaz, nə də host nəzarətçisi xəta ilə alınan paketlərə cavab vermir. İzoxron ötürülmədə etibarsız paket məlumatı sadəcə nəzərə alınmamalıdır (o itirilir); Digər ötürmə növləri üçün etibarlı çatdırılmanı təmin edən vasitələrdən istifadə olunur.

Həmyaşıdın bir paketə cavab verməməsini aşkar etmək üçün hər bir cihazda bir müddət keçdikdən sonra cavab gözləməyi dayandıran vaxt aşımı sayğacı var. USB-də avtobusun gediş-gəliş vaxtı məhdudiyyəti var: yaradılan paketin EOP-unun sonundan cavab paketinin başlanğıcına qədər olan vaxt. Son cihaz (və ana nəzarətçi) üçün görünən EOP-un sonundan paketin başlanğıcının tətbiqinə qədər maksimum cavab gecikməsi (cavab vaxtı) normallaşdırılır. Qovşaqlar üçün paket ötürülməsinin gecikməsi kabellər üçün normallaşdırılır, siqnalın yayılması gecikməsi normallaşdırılır. Taymout sayğacı etibarlı avtobus konfiqurasiyası üçün mümkün olan maksimum gecikməni nəzərə almalıdır: 5 aralıq qovşaq, hər bir kabel 5 metrə qədər. Bit intervalları (bt) ilə ifadə edilən icazə verilən fasilə dəyəri sürətdən asılıdır:

  • FS/LS sürətləri üçün bir kabel seqmentinin təqdim etdiyi gecikmə bit intervalı (bt) ilə müqayisədə kiçikdir. Buna əsaslanaraq, USB 1.0 icazə verilən gecikmələri hesablamaq üçün aşağıdakı modeldən istifadə edir. Hər bir kabel seqmenti üçün 30 ns, hub üçün isə 40 ns icazə verilən gecikmə ayrılmışdır. Beləliklə, kabelləri ilə beş aralıq hub ikiqat inqilab zamanı 700 ns gecikmə təqdim edir ki, bu da FS-də təxminən 8,5 bt-a uyğundur. FS cihazı üçün cavab gecikməsi 6,5 bt-dan çox olmamalıdır (və onun kabelini nəzərə alaraq - 7,5 bt). Buna əsaslanaraq, spesifikasiya FS-də ötürücülərdən 16-18 bt vaxt aşımı sayğacından istifadə etməyi tələb edir;
  • HS sürətində kabel seqmentindəki gecikmə bit intervalından çox böyükdür və USB 2.0-da hesablama modeli bir qədər fərqlidir. Burada hər bir kabel seqmenti üçün 26 ns, hub üçün isə 4 ns plus 36 bt ayrılmışdır. Beləliklə, 6 kabel seqmentindən iki dəfə (2×6×26 = 312 ns ≈ 150 bt) və beş hubdan (2×5×4 = 40 ns ≈ 19 bt plus 2×5×36 = 360 bt) keçmək 529-a qədər vaxt aparır. bt. Cihazın cavab gecikməsi 192 bt-a qədər məqbuldur və kabellər və hublar nəzərə alınmaqla ümumi gecikmə 721 bt-a qədər olacaqdır. Buna əsaslanaraq, spesifikasiya HS-də olan ötürücülərdən 736-816 bt-lik fasilə sayğacından istifadə etməyi tələb edir.

Əsas nəzarətçinin bütün cihazların hər bir son nöqtəsi ilə əlaqəli öz səhv sayğacı var, hər bir əməliyyat planlaşdırıldıqda sıfıra sıfırlanır. Bu sayğac bütün protokol xətalarını (o cümlədən, vaxt aşımı xətalarını) hesablayır və əgər xətaların sayı həddi (3) keçərsə, bu son nöqtəsi olan kanal dayandırılır və onun sahibinə (cihaz drayveri və ya USBD) məlumat verilir. Həddi keçənə qədər, host müştəri proqramını xəbərdar etmədən əməliyyatları təkrar cəhd etməklə qeyri-izoxron köçürmələr üçün səhvləri idarə edir. İzoxron köçürmələr təkrarlanmır, ev sahibi səhvləri dərhal bildirir.

Əl sıxma paketləri etiraf, axına nəzarət və xəta siqnalı üçün istifadə olunur. Bu paketlərdən host nəzarətçisi yalnız məlumat paketinin səhvsiz qəbulunu təsdiq edən ACK paketini cihaza göndərə bilər. Cihaz hosta cavab vermək üçün aşağıdakı əl sıxma paketlərindən istifadə edir:

ACK - çıxış və ya nəzarət əməliyyatının uğurla başa çatmasının təsdiqi (müsbət);
NAK - mənfi təsdiq, cihazın bu əməliyyatı yerinə yetirməyə hazır olmadığına işarədir (host-a ötürmək üçün məlumat yoxdur, qəbul üçün buferdə yer yoxdur, nəzarət əməliyyatı tamamlanmayıb). Bu, əməliyyatı daha sonra təkrarlamaq məcburiyyətində qalan host nəzarətçisindən başqa heç kimin bilməyəcəyi normal cavabdır. Daxiletmə əməliyyatlarında cihaz hazır olmadıqda məlumat paketi əvəzinə NAK cavabı verir;
STALL ciddi xəta mesajıdır ki, xüsusi proqram müdaxiləsi olmadan bu son nöqtə ilə işləmək qeyri-mümkün olur. Bu cavab həm bu nöqtə ilə sonrakı əməliyyatları ləğv edən USBD sürücüsünə, həm də proqram müdaxiləsinin nöqtəni blokdan çıxarması gözlənilən müştəri sürücüsünə ötürülür. Nəzarət əməliyyatlarında (Control) STALL cavabı icra olunmayan deməkdir bu tələbdən; Nöqtənin blokdan çıxarılması tələb olunmur.

Cihaz hazır deyilsə, yalnız NAK ilə cavab vermək qabiliyyətinə əsaslanan çıxış axınına nəzarət avtobusun ötürmə qabiliyyətinin çox səmərəsiz istifadəsidir: cihazın hazır olmadığını təmin etmək üçün böyük bir məlumat paketi avtobusa sərf olunur. USB 2.0 Ping Protokolundan istifadə edərək Bulk-OUT və Control əməliyyatlarında bu problemin qarşısını alır. Ev sahibi cihazın maksimum paket ölçüsünü qəbul etməyə hazır olub-olmamasını ona PING zondu nişanı göndərməklə sorğulaya bilər. Cihaz bu işarəyə ACK (əgər hazırdırsa) və ya NAK (maksimum paket ölçüsünü ala bilmirsə) ilə cavab verə bilər. Mənfi cavab ev sahibini daha sonra yenidən cəhd etməyə məcbur edəcək, müsbət cavab ona çıxış əməliyyatını həyata keçirməyə imkan verəcək. Testə müsbət cavab verildikdən sonra geri çəkilmə əməliyyatına cihazın cavabları daha müxtəlifdir:

  • ACK uğurlu qəbul və növbəti tam ölçülü paketi qəbul etməyə hazır olmaq deməkdir;
  • NYET uğurlu qəbul deməkdir, lakin növbəti paketə hazır deyil;
  • NAK gözlənilməz cavabdır (sınağın müvəffəqiyyəti ilə ziddiyyət təşkil edir), lakin cihaz birdən müvəqqəti olaraq əlçatmaz olarsa mümkündür.

Son nöqtə deskriptorlarındakı yüksək sürətli cihaz NAK göndərmələrinin mümkün intensivliyini bildirir: Toplu və Nəzarət son nöqtələri üçün bInterval sahəsi hər NAK-a mikro kadrların sayını göstərir (0 o deməkdir ki, cihaz çıxış əməliyyatına heç vaxt NAK ilə cavab verməyəcək).

Massiv, kəsmə və nəzarət ötürmələri məlumatların etibarlı çatdırılmasını təmin edir. Paketi uğurla qəbul etdikdən sonra məlumat qəbuledicisi bildiriş göndərir - ACK təsdiq paketi. Məlumat qəbuledicisi xəta aşkar edərsə, paket nəzərə alınmır və ona cavab göndərilmir. Məlumat mənbəyi qəbuledicidən ACK aldıqda növbəti paketin uğurla ötürüldüyünü hesab edir. Təsdiq gəlmirsə, növbəti tranzaksiyada mənbə eyni paketin göndərilməsini təkrarlayır. Bununla belə, qəbuletmə paketi müdaxilə səbəbindən itirilə bilər; belə ki, bu halda alıcı tərəfindən paketin təkrar göndərilməsi verilənlərin növbəti hissəsi kimi qəbul edilməməsi üçün məlumat paketləri nömrələnir. Nömrələmə modulu 2-dir (1-bit nömrə): paketlər cüt (DATA0 identifikatoru ilə) və tək (DATA1) bölünür. Hər bir son nöqtə üçün (izoxron istisna olmaqla) host və cihazda keçid bitləri var, onların ilkin vəziyyətləri bu və ya digər şəkildə uyğundur. IN və OUT əməliyyatları bu bitlərin cari vəziyyətinə uyğun gələn DATA0 və ya DATA1 identifikatorları ilə məlumat paketlərini ötürür və gözləyir. Məlumat qəbuledicisi gözlənilən identifikatorla məlumatın səhvsiz qəbulu zamanı öz bitini dəyişdirir, məlumat mənbəyi təsdiqi aldıqdan sonra dəyişir. Qəbuledici gözlənilməz ID ilə səhvsiz bir paket alırsa, o, ACK göndərir, lakin paketdəki məlumatlara məhəl qoymur, çünki paket artıq qəbul edilmiş məlumatların təkrar ötürülməsidir.

üçün əməliyyatlar müxtəlif növlərötürmələr ötürmə qabiliyyətinə, cavab müddətinə, çatdırılma etibarlılığına və giriş və çıxışın sinxronizasiyasına zəmanət və ya zəmanət verilməməsinə görə protokol fərqlərinə malikdir. Bu xüsusiyyətlərdən asılı olaraq, əməliyyatlar yuxarıda təsvir edilən bu və ya digər protokol mexanizmlərindən istifadə edir. Nəzərə alın ki, ötürmə xətasının aşkarlanması bütün əməliyyatlarda işləyir, ona görə də səhvlə alınan məlumatlar həmişə nəzərə alınmır. Cari tranzaksiyada hansı protokol mexanizmlərinin istifadə olunduğu həm host nəzarətçisi (əvvəllər qəbul edilmiş son nöqtə deskriptoru əsasında), həm də bu son nöqtənin həyata keçirildiyi USB cihazı tərəfindən “məlumdur”.

İzoxron əməliyyatlar zəmanətli valyuta məzənnələrini təmin edir, lakin etibarlı çatdırılma təmin etmir. Bu səbəbdən protokolda heç bir təsdiq yoxdur, çünki paket təkrarı məlumatların çatdırılması planlarının uğursuzluğuna səbəb olacaq. Heç bir təsdiqə əsaslanan axın nəzarəti yoxdur - cihaz izoxron son nöqtə deskriptorunda elan edilmiş trafik sürətini saxlamalıdır.

İzoxron çıxış əməliyyatları ana nəzarətçi tərəfindən göndərilən iki paketdən, OUT işarəsindən və tokendən ibarətdir data DATA. Giriş əməliyyatında ev sahibi IN işarəsini göndərir, buna cihaz məlumat paketi ilə cavab verir, ola bilsin ki, məlumat sahəsinin uzunluğu sıfırdır (əgər hazır məlumat yoxdursa). Cihazdan gələn hər hansı digər cavab (həmçinin “susmaq”) ev sahibi tərəfindən bu kanalın dayanmasına səbəb olan xəta kimi qəbul edilir.

İzoxron mübadilə ilə etibarlılığa (səhvləri olan paketlərin atılması) və məlumatların bütövlüyünə (itkin paket faktının aşkarlanması) nəzarət var. Dürüstlüyə nəzarət valyuta məzənnəsinin ciddi determinizminə əsaslanır - onun deskriptoruna uyğun olaraq, nöqtə 2bInterval-1 mikrokadrları dövrü ilə əməliyyat gözləyir. Tipik izoxron son nöqtə üçün hər mikroçərçivə üçün yalnız bir əməliyyat mümkündür və paketin qəbulu zamanı yaranan xəta onun gözlənilən mikroçərçivəsində qəbul edilmiş məlumatların alınmaması ilə nəticələnir. Beləliklə, paketin nömrələnməsi (Toggle Bit switch) tələb olunmur. Tam sürətli cihazlar və host nəzarətçiləri yalnız DATA01 tipli paketləri göndərməlidirlər. Genişzolaqlı izoxron son nöqtələr (USB 2.0) üçün hər mikroçərçivədə üçə qədər məlumat paketi ötürülə bilər. Bu paketlərdən hər hansı biri itirilə bilər və bu vəziyyətin aşkarlanması mikroçərçivə daxilində paketlərin nömrələnməsini tələb edir. Bu nömrələmə üçün iki yeni məlumat paketi növü təqdim edilmişdir: DATA2 və MDATA. Paket növlərinin müxtəlifliyi, nömrələmə ilə yanaşı, həm də müəyyən bir mikroçərçivə üçün planlarınız haqqında ünsiyyət tərəfdaşınızı məlumatlandırmanıza imkan verir. IN əməliyyatlarında cihaz paket identifikatoru ilə eyni mikroçərçivədə daha neçə paket buraxmaq niyyətində olduğunu göstərir ki, bu da hosta lazımsız daxiletmə cəhdlərinin qarşısını almağa imkan verir. Beləliklə, əgər bir paket mikroçərçivədə ötürülürsə, o zaman DATA0 olacaq; ikidirsə, ardıcıllıq DATA1, DATA0 olacaq; üç - DATA2, DATA1, DATA0. OUT əməliyyatları son olmayan paketi mikro çərçivədə çıxarmaq üçün MDATA (Daha çox məlumat) paketindən istifadə edir və sonuncu paket identifikatoru ondan əvvəl neçə paketin ötürüldüyünü göstərir. Beləliklə, bir çıxış əməliyyatı ilə DATA0 paketi istifadə olunur, ikisi ilə - MDATA, DATA1 ardıcıllığı, üçü ilə - MDATA, MDATA, DATA2. Mikroçərçivədəki sonuncu əməliyyatdan başqa bütün əməliyyatlar maksimum paket ölçüsündən istifadə etməlidir. Diqqət yetirin ki, digər əməliyyatlar mikro çərçivədə genişzolaqlı əməliyyatlar arasında sıxışdırıla bilər.