uy - Internet
USB avtobus protokoli. USB interfeysi asoslari USB 2.0 protokoli tavsifi
  • Mini-B ulagichi ECN: Xabarnoma 2000 yil oktyabr oyida chiqarilgan.
  • Errata, 2000 yil dekabridan beri: Xabarnoma 2000 yil dekabrda chiqarilgan.
  • Yuqoriga/pastga tortiladigan rezistorlar ECN
  • Errata, 2002 yil may oyidan beri: 2002 yil may oyida chiqarilgan xabar.
  • Interfeys uyushmalari ECN: Xabarnoma 2003 yil may oyida chiqarilgan.
    • Bir nechta interfeyslarni bitta qurilma funktsiyasi bilan bog'lash imkonini beradigan yangi standartlar qo'shildi.
  • Dumaloq pah ECN: 2003 yil oktyabr oyida e'lon qilingan xabar.
  • Unicode ECN: 2005 yil fevral oyida chiqarilgan xabar.
    • Ushbu ECN satrlar UTF-16LE yordamida kodlanganligini bildiradi.
  • Chiplararo USB qo'shimchasi: 2006 yil mart oyida chiqarilgan xabar.
  • On-The-Go qo'shimchasi 1.3: 2006 yil dekabrda chiqarilgan xabar.
    • USB On-The-Go ikkita USB qurilmasiga alohida USB xostsiz bir-biri bilan muloqot qilish imkonini beradi. Amalda, qurilmalardan biri ikkinchisi uchun xost vazifasini bajaradi.

USB OTG

USB 3.0

USB 3.0 rivojlanishning yakuniy bosqichida. Quyidagi kompaniyalar USB 3.0 ni ishlab chiqmoqda: Microsoft, Texas Instruments, NXP Semiconductors. USB 3.0 spetsifikatsiyasida yangilangan standartning ulagichlari va kabellari USB 2.0 bilan jismoniy va funksional jihatdan mos keladi. USB kabeli 2.0 to'rt qatorni o'z ichiga oladi - ma'lumotlarni qabul qilish/uzatish uchun juftlik, quvvat uchun va yana biri yerga ulash uchun. Bunga qo'shimcha ravishda, USB 3.0 beshta yangi liniyani qo'shadi (natijada ancha qalinroq kabel), lekin yangi pinlar boshqa pin qatorida eskilariga parallel ravishda joylashgan. Endi siz kabelning standartning bir yoki boshqa versiyasiga tegishli ekanligini osongina aniqlashingiz mumkin, shunchaki uning ulagichiga qarab. USB 3.0 spetsifikatsiyasi maksimal uzatish tezligini 4,8 Gbit / s ga oshiradi - bu USB 2.0 taqdim eta oladigan 480 Mbit / s dan yuqoriroq. USB 3.0 nafaqat yuqori ma'lumotlarni uzatish tezligi, balki 500 mA dan 900 mA gacha ko'tarilgan oqimga ham ega. Bundan buyon foydalanuvchi bir hubdan nafaqat ancha ko‘p sonli qurilmalarni quvvatlantirishi mumkin, balki Uskuna, ilgari alohida quvvat manbalari bilan ta'minlangan, ulardan xalos bo'ladi.


Bu erda GND - periferik qurilmalarni quvvatlantirish uchun "xo'jalik" sxemasi, VBus +5 V, shuningdek, quvvat manbai zanjirlari uchun. Ma'lumotlar D+ va D- simlari orqali differensial ravishda uzatiladi (0 va 1 holatlari (rasmiy hujjatlar terminologiyasida mos ravishda diff0 va diff1) 0,2 V dan ortiq chiziqlar orasidagi potentsial farq bilan belgilanadi va ulardan birida bo'lishi sharti bilan. chiziqlar (diff1 da diff0 va D+ bo'lsa) GNDga nisbatan potentsial 2,8 V dan yuqori. Differensial uzatish usuli asosiy hisoblanadi, lekin yagona emas (masalan, ishga tushirish vaqtida qurilma bu haqda xabar beradi. 1,5 kOhm rezistor orqali V_BUS ga liniya ma'lumotlaridan birini tortib, qurilma tomonidan qo'llab-quvvatlanadigan rejim (To'liq tezlik yoki past tezlik) haqida xosting (past tezlik rejimi uchun D− va to'liq tezlik uchun D+) Yuqori tezlik rejimida ishlaydigan qurilmalar ushbu bosqichda to'liq tezlik rejimidagi qurilmalar kabi ishlaydi).Shuningdek, ba'zida simlar atrofida himoya qilish uchun tolali o'rash mavjud. jismoniy zarar. .

USB 3.0 turi B ulagichi

USB 3.0 ulagichi A turi

USB 3.0 kabellari va ulagichlari

USB ning kamchiliklari

Garchi USB 2.0 480 Mbit/s (60 MB/s) eng yuqori o'tkazish qobiliyatiga ega bo'lsa-da, amalda eng yuqori o'tkazuvchanlikka yaqin hech narsaga erishib bo'lmaydi. Bu ma'lumotlarni uzatish uchun so'rov va uzatishning haqiqiy boshlanishi o'rtasidagi USB avtobusidagi juda katta kechikishlar bilan izohlanadi. Misol uchun, FireWire avtobusi, garchi u USB 2.0 dan 80 Mbit / s kamroq bo'lgan 400 Mbit / s pastroq cho'qqiga ega bo'lsa-da, aslida qattiq disklar va boshqa saqlash qurilmalari bilan ma'lumot almashish uchun katta o'tkazish imkonini beradi.

USB va FireWire/1394

Protokol USB xotira, bu buyruqlarni uzatish usulidir

Bundan tashqari, USB xotira eski operatsion tizimlarda (asl Windows 98) qo'llab-quvvatlanmaydi va drayverlarni o'rnatish talab qilinadi. Ularda SBP-2 ham qo'llab-quvvatlandi. Bundan tashqari, eski operatsion tizimlarda (Windows 2000) USB saqlash protokoli kesilgan shaklda amalga oshirildi, bu ulangan kompyuterda CD/DVD yozish funksiyasidan foydalanishga imkon bermadi. USB drayveri,SBP-2 hech qachon bunday cheklovlarga ega bo'lmagan.

USB avtobusi qat'iy yo'naltirilgan, shuning uchun 2 ta kompyuter yoki 2 ta periferik qurilmani ulash uchun qo'shimcha uskunalar kerak bo'ladi. Ba'zi ishlab chiqaruvchilar printer va skaner yoki kamera va printerni ulashni qo'llab-quvvatlaydi, ammo bu ilovalar juda ishlab chiqaruvchiga xosdir va standartlashtirilmagan. 1394/FireWire avtobusi bu kamchilikka tobe emas (siz 2 ta video kamerani ulashingiz mumkin).

Biroq, Apple litsenziyalash siyosati, shuningdek, apparatning ancha murakkabligi tufayli 1394 kamroq tarqalgan. anakartlar eski kompyuterlarda 1394 ta kontroller mavjud emas. Qo'shimcha qurilmalarga kelsak, 1394-ni qo'llab-quvvatlash odatda tashqi qattiq disklar va CD/DVD disklari uchun videokameralar va korpuslardan boshqa hech narsada topilmaydi.

Shuningdek qarang

  • FireWire
  • TransferJet

Manbalar

Havolalar

  • USB News (Nemis)

Xost va qurilma o'rtasida ma'lumotlar almashinuvini ta'minlaydi. Protokol darajasida uzatish va oqimni boshqarishning ishonchliligi va ishonchliligini ta'minlash kabi vazifalar hal qilinadi. USB avtobusidagi barcha trafik tranzaksiyalar orqali uzatiladi, har bir tranzaksiyada faqat xost va manzilli qurilma (uning oxirgi nuqtasi) o'rtasida almashish mumkin.

USB qurilmalari bilan barcha tranzaktsiyalar (almashinuvlar) ikki yoki uchta paketdan iborat; tranzaktsiyalardagi paketlarning odatiy ketma-ketligi 2-rasmda ko'rsatilgan. 1. Har bir tranzaksiya tranzaksiya token paketini yuboruvchi xost boshqaruvchisi tomonidan rejalashtiriladi va boshlanadi. Tranzaksiya tokeni uzatish turi va yoʻnalishini, tanlangan USB qurilmasining manzilini va oxirgi nuqta raqamini tavsiflaydi. Marker bilan murojaat qilingan qurilma uning manzilini taniydi va almashishga tayyorlanadi. Token tomonidan aniqlangan ma'lumotlar manbai ma'lumotlar paketini uzatadi. Shu nuqtada, izoxron o'tkazmalari bilan bog'liq tranzaktsiyalar yakunlanadi - paket qabul qilinganligi haqida tasdiq yo'q. Boshqa turdagi uzatishlar uchun ma'lumotlarni kafolatlangan etkazib berishni ta'minlaydigan tasdiqlash mexanizmi mavjud. Paket formatlari rasmda ko'rsatilgan. 2, paket turlari jadvalda keltirilgan. Barcha paketli maydonlarda, CRC maydonidan tashqari, ma'lumotlar birinchi navbatda eng kam muhim bit uzatiladi (eng kam ahamiyatli bit vaqt diagrammalarida chapda ko'rsatilgan). Paket Sinxronizatsiya ketma-ketligidan boshlanadi va terminator - EOP bilan tugaydi. Paket turi PID maydoni bilan belgilanadi. Qolgan maydonlarning maqsadi quyida tushuntiriladi. Sinxronlash va EOP maydonlarining uzunligi FS/LS da uzatishlar uchun belgilanadi; yuqori tezlikda uzatish uchun Sinxronlash maydoni 32 bitli intervalgacha va EOP 8 ga uzaytiriladi (SOF paketlarida EOP maydoni 40 bit uzunlikda). ).

Qabul qilingan barcha paketlar xatolar uchun tekshiriladi, chunki qabul qilingan paket formatlari va ba'zi konventsiyalar quyidagilarga imkon beradi:

  • paket sinxronizatsiya ketma-ketligidan boshlanadi, undan keyin PID (paket identifikatori). Identifikatordan keyin uning teskari nusxasi - Tekshirish. Ikki nusxadagi nomuvofiqlik xato belgisi hisoblanadi;
  • Paketning tanasi (paketning barcha maydonlari, PID va EOP atributidan tashqari) CRC kodi bilan himoyalangan: marker paketlari uchun 5-bit, maʼlumotlar paketlari uchun 16-bit. Kutilgan qiymatga mos kelmaydigan CRC xato deb hisoblanadi;
  • paket maxsus EOP signali bilan tugaydi; Agar paketda butun son bo'lmagan baytlar bo'lsa, u xato deb hisoblanadi. Noto'g'ri EOP, hatto bayt chegarasida ham, bu vaziyatda deyarli muqarrar CRC xatosi tufayli paketni olishga ruxsat bermaydi;
  • paketli ma'lumotlar fizik qatlamga (avtobusga) bit to'ldirish yordamida uzatiladi (oltita bir bitdan keyin nol qo'yiladi), bu monotonik signal paytida bit sinxronizatsiyasining yo'qolishini oldini oladi. Ketma-ket oltitadan ortiq bitta bitni qabul qilish xato deb hisoblanadi (HS da - ramkaning oxiri belgisi).

Paketdagi ushbu xatolarning birortasining aniqlanishi qabul qiluvchining uni noto'g'ri deb hisoblashiga olib keladi. Na qurilma, na xost boshqaruvchisi xatolik bilan qabul qilingan paketlarga javob bermaydi. Izoxron uzatishda yaroqsiz paketli ma'lumotlar shunchaki e'tiborga olinmasligi kerak (u yo'qoladi); Boshqa turdagi uzatmalar uchun ishonchli etkazib berishni ta'minlash vositalari qo'llaniladi.

Tengdoshning paketga javob bermasligini aniqlash uchun har bir qurilmada bir muncha vaqt o'tgandan keyin javobni kutishni to'xtatadigan vaqt hisoblagichi mavjud. USB-ning avtobusga qaytish vaqti bo'yicha cheklov mavjud: ishlab chiqarilgan paketning EOP tugashidan javob paketining boshlanishigacha bo'lgan vaqt. Yakuniy qurilma (va xost boshqaruvchisi) uchun ko'rilgan EOP oxiridan paketning boshlanishigacha maksimal javob kechikishi (javob vaqti) normallashtiriladi. Hublar uchun paketlarni uzatish kechikishi normallashtiriladi, kabellar uchun signal tarqalishining kechikishi normallashtiriladi. Vaqt tugash hisoblagichi to'g'ri avtobus konfiguratsiyasi uchun mumkin bo'lgan maksimal kechikishni hisobga olishi kerak: 5 tagacha oraliq markaz, har bir kabel 5 metrgacha. Bit oraliqlarida (bt) ifodalangan ruxsat etilgan kutish vaqti tezligiga bog'liq:

  • FS/LS tezligi uchun bitta kabel segmenti tomonidan kiritilgan kechikish bit oralig'iga (bt) nisbatan kichikdir. Bunga asoslanib, USB 1.0 ruxsat etilgan kechikishlarni hisoblash uchun quyidagi modeldan foydalanadi. Har bir kabel segmenti uchun 30 ns ruxsat etilgan kechikish va markaz uchun 40 ns ajratilgan. Shunday qilib, kabellari bilan beshta oraliq hub ikki marta aylanish jarayonida 700 ns kechikishni keltirib chiqaradi, bu FS bo'yicha taxminan 8,5 bt ga to'g'ri keladi. FS qurilmasi uchun javob kechikishi 6,5 bt dan oshmasligi kerak (va uning kabelini hisobga olgan holda - 7,5 bt). Bunga asoslanib, spetsifikatsiya FS dagi transmitterlardan 16-18 bt gacha bo'lgan vaqt hisoblagichidan foydalanishni talab qiladi;
  • HS tezligida kabel segmentidagi kechikish bit oralig'idan ancha katta va USB 2.0 da hisoblash modeli biroz farq qiladi. Bu erda har bir kabel segmenti uchun 26 ns, markaz uchun esa 4 ns plyus 36 bt ajratilgan. Shunday qilib, 6 ta kabel segmentidan ikki marta (2 × 6 × 26 = 312 ns ≈ 150 bt) va beshta hubdan (2 × 5 × 4 = 40 ns ≈ 19 bt plus 2 × 5 × 36 = 360 bt) o'tish 529 tagacha vaqtni oladi. bt. Qurilmaning javob kechikishi 192 bt gacha qabul qilinadi va kabellar va markazlarni hisobga olgan holda umumiy kechikish 721 bt gacha bo'ladi. Shunga asoslanib, spetsifikatsiya HS dagi transmitterlardan 736-816 bt vaqt tugash hisoblagichidan foydalanishni talab qiladi.

Xost boshqaruvchisi barcha qurilmalarning har bir so'nggi nuqtasi bilan bog'langan o'z xato hisoblagichiga ega bo'lib, har bir tranzaksiya rejalashtirilganda nolga qaytariladi. Ushbu hisoblagich barcha protokol xatolarini (shu jumladan, vaqt tugashi xatolarini) hisoblaydi va agar xatolar soni chegaradan (3) oshib ketgan bo'lsa, u holda ushbu oxirgi nuqtaga ega kanal to'xtatiladi va uning egasi (qurilma drayveri yoki USBD) xabardor qilinadi. Eshik chegarasi oshib ketmaguncha, xost mijoz dasturiy ta'minotini ogohlantirmasdan, tranzaktsiyalarni qayta urinib ko'rish orqali izoxron bo'lmagan o'tkazmalar uchun xatolarni hal qiladi. Izoxron uzatishlar takrorlanmaydi, mezbon xatolar haqida darhol xabar beradi.

Qo'l siqish paketlari tasdiqlash, oqimni boshqarish va xato signalizatsiyasi uchun ishlatiladi. Ushbu paketlardan xost boshqaruvchisi qurilmaga faqat ma'lumotlar paketining xatosiz qabul qilinishini tasdiqlovchi ACK paketini yuborishi mumkin. Qurilma uy egasiga javob berish uchun quyidagi qoʻl siqish paketlaridan foydalanadi:

ACK - chiqish yoki nazorat operatsiyasining muvaffaqiyatli yakunlanganligini tasdiqlash (ijobiy);
NAK - salbiy tasdiqlash, qurilma ushbu tranzaktsiyani amalga oshirishga tayyor emasligining belgisidir (xostga uzatish uchun ma'lumot yo'q, qabul qilish uchun buferda bo'sh joy yo'q, nazorat operatsiyasi tugallanmagan). Bu odatiy javob bo'lib, uni keyinroq tranzaktsiyani takrorlashga majbur bo'lgan xost boshqaruvchisidan boshqa hech kim bilmaydi. Kirish tranzaksiyalarida, agar ular tayyor bo'lmasa, qurilma ma'lumotlar paketi o'rniga NAK javobini beradi;
STALL - bu jiddiy xato xabari bo'lib, maxsus dasturiy ta'minot aralashuvisiz ushbu oxirgi nuqta bilan ishlash imkonsiz bo'lib qoladi. Bu javob ushbu nuqta bilan keyingi tranzaktsiyalarni bekor qiladigan USBD drayveriga ham, dasturiy ta'minot aralashuvi nuqtani blokdan chiqarishi kutilayotgan mijoz drayveriga ham yuboriladi. Nazorat tranzaksiyalarida (Control) STALL javobi so‘rovni bajarib bo‘lmasligini bildiradi; Nuqtani blokdan chiqarish shart emas.

Agar qurilma tayyor bo'lmasa, faqat NAK bilan javob berish qobiliyatiga tayanadigan chiqish oqimini boshqarish avtobus o'tkazish qobiliyatidan juda samarasiz foydalanish hisoblanadi: qurilma tayyor emasligini ta'minlash uchun katta ma'lumotlar paketi avtobusda isrof qilinadi. USB 2.0 da bu muammo Ping protokoli yordamida Bulk-OUT va Control tranzaksiyalarida oldini oladi. Xost qurilmaga PING prob tokenini yuborish orqali paketning maksimal hajmini olishga tayyorligini so'rashi mumkin. Qurilma ushbu tokenga ACK (agar tayyor bo'lsa) yoki NAK (agar maksimal paket hajmini ololmasa) bilan javob berishi mumkin. Salbiy javob xostni keyinroq qayta urinib ko'rishga majbur qiladi, ijobiy javob esa chiqish tranzaktsiyasini amalga oshirishga imkon beradi. Sinovga ijobiy javob bergandan so'ng, pul o'tkazmasini olish uchun qurilmaning javoblari yanada xilma-xildir:

  • ACK muvaffaqiyatli qabul qilish va keyingi to'liq o'lchamli paketni qabul qilishga tayyorlikni anglatadi;
  • NYET muvaffaqiyatli qabul qilishni anglatadi, lekin keyingi paketga tayyor emas;
  • NAK - bu kutilmagan javob (bu sinovning muvaffaqiyatiga zid keladi), lekin agar qurilma to'satdan vaqtincha ishlamay qolsa, bu mumkin.

Oxirgi nuqta identifikatorlaridagi yuqori tezlikdagi qurilma NAK jo‘natishlarining mumkin bo‘lgan intensivligi haqida xabar beradi: Ommaviy va Nazorat so‘nggi nuqtalari uchun bInterval maydoni bir NAK uchun mikrofreymlar sonini ko‘rsatadi (0 degani, qurilma hech qachon chiqish tranzaksiyasiga NAK bilan javob bermaydi).

Massiv, uzilish va boshqaruv uzatishlar ishonchli ma’lumotlarni yetkazib berishni ta’minlaydi. Paketni muvaffaqiyatli qabul qilgandan so'ng, ma'lumot qabul qiluvchisi tasdiqnoma - ACK tasdiq paketini yuboradi. Agar ma'lumot qabul qiluvchisi xatolikni aniqlasa, paket e'tiborga olinmaydi va unga javob yuborilmaydi. Ma'lumotlar manbai keyingi paket qabul qiluvchidan ACK qabul qilganda muvaffaqiyatli uzatilgan deb hisoblaydi. Agar tasdiqlash kelmasa, keyingi tranzaksiyada manba bir xil paketni yuborishni takrorlaydi. Biroq, tasdiqlash paketi shovqin tufayli yo'qolishi mumkin; shuning uchun bu holda qabul qiluvchi tomonidan paketning takroriy yuborilishi ma'lumotlarning keyingi qismi sifatida qabul qilinmaydi, ma'lumotlar paketlari raqamlanadi. Raqamlash moduli 2 (1-bitli raqam): paketlar juft (DATA0 identifikatori bilan) va toq (DATA1) ga bo'linadi. Har bir so'nggi nuqta uchun (izoxrondan tashqari) xost va qurilma o'tish bitlariga ega, ularning dastlabki holati u yoki bu tarzda mos keladi. IN va OUT tranzaksiyalari ushbu bitlarning joriy holatiga mos keladigan DATA0 yoki DATA1 identifikatorlari bilan ma'lumotlar paketlarini uzatadi va kutadi. Ma'lumotni qabul qiluvchi kutilgan identifikator bilan ma'lumot xatosiz qabul qilingan taqdirda o'z bitini almashtiradi, ma'lumotlar manbai tasdiqlashni olgandan keyin o'zgaradi. Agar qabul qiluvchi kutilmagan identifikatorga ega xatosiz paketni qabul qilsa, u ACK yuboradi, lekin paketdagi ma'lumotlarni e'tiborsiz qoldiradi, chunki paket allaqachon olingan ma'lumotlarni qayta uzatishdir.

uchun tranzaktsiyalar har xil turlari uzatishlar o'tkazish qobiliyati, javob vaqti, etkazib berish ishonchliligi va kirish va chiqishning sinxronizatsiyasi kafolati yoki kafolatlanmaganligi sababli protokol farqlariga ega. Ushbu xususiyatlarga qarab, tranzaktsiyalar yuqorida tavsiflangan u yoki bu protokol mexanizmlaridan foydalanadi. E'tibor bering, uzatish xatosini aniqlash barcha tranzaktsiyalarda ishlaydi, shuning uchun xatolik bilan olingan ma'lumotlar har doim e'tiborga olinmaydi. Joriy tranzaksiyada qaysi protokol mexanizmlari qo'llanilishi xost boshqaruvchisi (oldindan olingan so'nggi nuqta identifikatori asosida) va ushbu oxirgi nuqta amalga oshirilgan USB qurilmasi tomonidan "ma'lum".

Isoxron operatsiyalari kafolatlangan valyuta kurslarini ta'minlaydi, ammo ishonchli etkazib berishni ta'minlamaydi. Shu sababli, protokolda hech qanday tasdiq yo'q, chunki paketlarni takrorlash ma'lumotlarni etkazib berish rejalarini muvaffaqiyatsizlikka olib keladi. Tasdiqlashga asoslangan oqim nazorati mavjud emas - qurilma izoxron so'nggi nuqta deskriptorida e'lon qilingan trafik tezligini saqlab turishi kerak.

Izoxron chiqish tranzaktsiyalari xost boshqaruvchisi tomonidan yuborilgan ikkita paketdan, OUT tokenidan va DATA ma'lumotlar paketidan iborat. Kirish tranzaktsiyasida xost IN tokenini yuboradi, unga qurilma ma'lumotlar paketi bilan javob beradi, ehtimol ma'lumotlar maydonining uzunligi nolga teng (agar tayyor ma'lumot bo'lmasa). Qurilmaning boshqa har qanday javobi (shuningdek, "jim") uy egasi tomonidan ushbu kanalni to'xtatishga olib keladigan xato sifatida qabul qilinadi.

Izoxron almashishda ishonchlilik (xatolari bo'lgan paketlarni tashlab yuborish) va ma'lumotlar yaxlitligi (paketning etishmayotganligi faktini aniqlash) nazorati mavjud. Butunlikni nazorat qilish kursning qat'iy determinizmiga asoslanadi - uning deskriptoriga muvofiq, nuqta 2bInterval-1 mikrofreymlar davri bilan operatsiyani kutadi. Oddiy izoxron so'nggi nuqta uchun har bir mikrofreym uchun faqat bitta tranzaktsiyani amalga oshirish mumkin va paketni qabul qilishdagi xatolik kutilgan mikrofreymda qabul qilingan ma'lumotlarning olinmasligiga olib keladi. Shunday qilib, paketlarni raqamlash (Toggle Bit switch) talab qilinmaydi. To'liq tezlikda ishlaydigan qurilmalar va xost kontrollerlari faqat DATA01 tipidagi paketlarni yuborishlari kerak. Keng polosali izoxron so'nggi nuqtalar (USB 2.0) uchun har bir mikrofreymda uchtagacha ma'lumot paketini uzatish mumkin. Ushbu paketlarning har biri yo'qolishi mumkin va bu vaziyatni aniqlash uchun mikrofreym ichida paketlarni raqamlash talab qilinadi. Ushbu raqamlash uchun ma'lumotlar paketlarining ikkita yangi turi joriy etildi: DATA2 va MDATA. Paket turlarining xilma-xilligi, raqamlashdan tashqari, sizning aloqa hamkoringizni ma'lum bir mikrofreym uchun rejalaringiz haqida xabardor qilish imkonini beradi. IN tranzaksiyalarida qurilma paket identifikatori orqali bir xil mikrofreymda yana qancha paket chiqarmoqchi ekanligini ko'rsatadi, bu esa xostga keraksiz kiritish urinishlaridan qochish imkonini beradi. Shunday qilib, agar bitta paket mikrofreymda uzatilsa, u DATA0 bo'ladi; agar ikkita bo'lsa, ketma-ketlik DATA1, DATA0 bo'ladi; uchta - DATA2, DATA1, DATA0. OUT tranzaksiyalari mikrofreymdagi oxirgi bo'lmagan paketni chiqarish uchun MDATA (Ko'proq ma'lumot) paketidan foydalanadi va oxirgi paket identifikatori undan oldin qancha paket uzatilganligini ko'rsatadi. Shunday qilib, bitta chiqish tranzaksiyasi bilan DATA0 paketi ishlatiladi, ikkitasi - MDATA, DATA1 ketma-ketligi, uchtasi - MDATA, MDATA, DATA2. Mikrofreymdagi oxirgisidan tashqari barcha tranzaksiyalar maksimal paket hajmidan foydalanishi kerak. E'tibor bering, boshqa tranzaktsiyalar mikrofreymdagi keng polosali tranzaktsiyalar o'rtasida o'rnatilishi mumkin.

Interfeys USB (Universal Serial Bus - Universal Serial Interface) periferik qurilmalarni shaxsiy kompyuterga ulash uchun mo'ljallangan. Periferik qurilmalar bilan uchta tezlikda ma'lumot almashish imkonini beradi (spetsifikatsiya USB 2.0):

  • Past tezlik ( Past tezlik- LS) - 1,5 Mbit/s;
  • To'liq tezlik ( To'liq tezlik- FS) - 12 Mbit/s;
  • Yuqori tezlik ( Yuqori tezlik- HS) - 480 Mbit/s.
Periferik qurilmalarni ulash uchun 4 simli kabel ishlatiladi: +5 V quvvat manbai, signal simlari D+ Va D-, umumiy sim.
USB interfeysi ulanadi mezbon (mezbon) va qurilmalar. Uy egasi ichkarida shaxsiy kompyuter va butun interfeysning ishlashini nazorat qiladi. Biri uchun USB port bir nechta qurilmalarni ulash mumkin edi, qo'llash markazlar (markaz- boshqa qurilmalarning interfeysiga ulanishni ta'minlovchi qurilma). Ildiz uyasi (ildiz markazi) kompyuter ichida joylashgan va bevosita xostga ulangan. USB interfeysi maxsus atamadan foydalanadi "funktsiya" - bu ma'lum bir funktsiyani bajaradigan mantiqiy to'liq qurilma. USB interfeysi topologiyasi 7 darajadan iborat ( daraja): birinchi daraja xost va ildiz markazini, oxirgi daraja esa faqat funktsiyalarni o'z ichiga oladi. Hub va bir yoki bir nechta funktsiyalarni o'z ichiga olgan qurilma chaqiriladi kompozitsion (aralash qurilma).
Yuqori darajadagi hubga ulanadigan markaz yoki funksiya porti yuqori oqim porti deb ataladi ( yuqori oqim porti) va pastki darajadagi hub yoki funksiyaga ulanadigan markaz porti quyi oqim porti deb ataladi ( quyi oqim porti).
Interfeys orqali barcha ma'lumotlarni uzatish xost tomonidan boshlanadi. Ma'lumotlar paketlar shaklida uzatiladi. USB interfeysi bir necha turdagi paketlardan foydalanadi:
  • belgi to'plami (token paketi) ma'lumotlarni uzatish turi va yo'nalishini, qurilma manzilini va oxirgi nuqtaning seriya raqamini tavsiflaydi (CT USB qurilmasining manzilli qismidir); Xususiyat paketlari bir necha turga ega: IN, OUT, SOF, SOZLASH; O'RNATISH;
  • ma'lumotlar paketi (ma'lumotlar paketi) uzatilgan ma'lumotlarni o'z ichiga oladi;
  • tasdiqlash paketi (qo'l siqish to'plami) ma'lumotlarni uzatish natijalari haqida xabar berish uchun mo'ljallangan; Mos keladigan paketlarning bir nechta turlari mavjud: ACK, N.A.K., TO'XTIRISH.
Shunday qilib, har bir tranzaksiya uch bosqichdan iborat: atribut paketini uzatish bosqichi, ma'lumotlarni uzatish bosqichi va muzokaralar bosqichi.
USB interfeysi axborot uzatishning bir necha turlaridan foydalanadi.
  • Yo'naltirishni nazorat qilish (uzatishni nazorat qilish) qurilma konfiguratsiyasi, shuningdek, boshqa qurilmaga xos boʻlgan qurilmalar uchun ishlatiladi maxsus qurilma maqsadlar.
  • Striming (ommaviy uzatish) nisbatan katta hajmdagi axborotni uzatish uchun ishlatiladi.
  • Yo‘naltirishni to‘xtatish (takroriy uzatish) nisbatan kichik hajmdagi axborotni uzatish uchun ishlatiladi, buning uchun uni o'z vaqtida uzatish muhimdir. U boshqa turdagi transferlarga nisbatan cheklangan muddatga va yuqoriroq ustuvorlikka ega.
  • Izoxron uzatish (izoxron uzatish) real vaqtda oqim deb ham ataladi. Bunday uzatishda uzatiladigan ma'lumotlar uni yaratish, uzatish va qabul qilish vaqtida real vaqt shkalasini talab qiladi.

Oqimli transferlar ma'lumotni uzatish va qayta so'rash vaqtida xatolarni aniqlash orqali xost va funksiya o'rtasida kafolatlangan xatosiz ma'lumotlarni uzatish bilan tavsiflanadi.
Xost funktsiyadan ma'lumot olishga tayyor bo'lganda, u funktsiyaga bayroq paketini yuboradi IN- plastik to'rva. Bunga javoban, ma'lumotlarni uzatish bosqichidagi funksiya xostga ma'lumotlar paketini uzatadi yoki agar buni qila olmasa, uzatadi. N.A.K.- yoki TO'XTIRISH- plastik to'rva. N.A.K.-paket funksiya ma'lumotlarni uzatishga vaqtincha tayyor emasligi haqida xabar beradi va TO'XTIRISH- paket xost aralashuvi zarurligini bildiradi. Agar xost ma'lumotlarni muvaffaqiyatli qabul qilsa, u muzokaralar bosqichida funktsiyalarni yuboradi ACK
Xost ma'lumotlarni uzatishga tayyor bo'lganda, u funktsiyalarni yuboradi OUT-ma'lumotlar paketi bilan birga kelgan paket. Agar funktsiya ma'lumotlarni muvaffaqiyatli qabul qilsa, u xostga yuboradi ACK-paket, aks holda yuboriladi NAK- yoki TO'XTIRISH- plastik to'rva.
O'tkazmalarni nazorat qilish kamida ikki bosqichni o'z ichiga oladi: O'rnatish bosqichi Va holat bosqichi. Ularning orasida ham bo'lishi mumkin ma'lumotlarni uzatish bosqichi. O'rnatish bosqichi bajarish uchun ishlatiladi SETUP tranzaksiyalari, uning davomida ma'lumot KTni boshqarish funktsiyasiga yuboriladi. SETUP tranzaksiya o'z ichiga oladi SOZLASH; O'RNATISH- plastik to'rva , ma'lumotlar paketi va muvofiqlashtirish paketi. Agar ma'lumotlar paketi funktsiya tomonidan muvaffaqiyatli qabul qilinsa, u xostga yuboriladi ACK- plastik to'rva. Aks holda, tranzaksiya yakunlanadi.
IN ma'lumotlarni uzatish bosqichlari nazorat o'tkazmalari bir yoki bir nechtasini o'z ichiga oladi IN- yoki OUT- uzatish printsipi oqimli o'tkazmalar bilan bir xil bo'lgan operatsiyalar. Ma'lumotlarni uzatish bosqichidagi barcha operatsiyalar bir yo'nalishda amalga oshirilishi kerak.
IN holat bosqichi oxirgi tranzaksiya amalga oshiriladi, bu esa oqimli o'tkazmalardagi kabi printsiplardan foydalanadi. Ushbu tranzaktsiyaning yo'nalishi ma'lumotlarni uzatish bosqichida qo'llaniladiganga qarama-qarshidir. Holat bosqichi SETUP bosqichi va ma'lumotlarni uzatish bosqichining natijasi haqida xabar berish uchun ishlatiladi. Holat ma'lumotlari har doim funktsiyadan xostga uzatiladi. Da nazorat yozuvi (Yozish uzatishni boshqarish) holat ma'lumotlari tranzaktsiyaning holat bosqichining ma'lumotlarni uzatish bosqichida uzatiladi. Da o'qishni nazorat qilish (O'qish uzatishni boshqarish) holat ma'lumotlari oldingi ma'lumotlarni uzatish bosqichida xost nol uzunlikdagi ma'lumotlar paketini yuborganidan so'ng, tranzaktsiyaning holat bo'yicha muzokaralar bosqichida qaytariladi.
O'tkazmalarni to'xtatish o'z ichiga olishi mumkin IN- yoki OUT- yo'naltirish. Qabul qilinganda IN-packet funktsiyasi ma'lumotlar bilan paketni qaytarishi mumkin, N.A.K.-paket yoki TO'XTIRISH- plastik to'rva. Agar funktsiya uzilishni talab qiladigan ma'lumotga ega bo'lmasa, u holda ma'lumotlarni uzatish bosqichida funksiya qaytadi N.A.K.- plastik to'rva. Agar uzilish bilan KT ning ishlashi to'xtatilgan bo'lsa, u holda funktsiya qaytadi TO'XTIRISH- plastik to'rva. Agar uzilish kerak bo'lsa, funktsiya ma'lumotlarni uzatish bosqichida kerakli ma'lumotlarni qaytaradi. Agar xost ma'lumotlarni muvaffaqiyatli qabul qilsa, u yuboradi ACK- plastik to'rva. Aks holda, muzokaralar paketi uy egasi tomonidan yuborilmaydi.
Izoxron operatsiyalar o'z ichiga oladi xususiyatlarni uzatish bosqichi Va ma'lumotlarni uzatish bosqichi, lekin yo'q muvofiqlashtirish bosqichlari. Xost yuboradi IN- yoki OUT-belgi, shundan so'ng KT ma'lumotlarini uzatish bosqichida (uchun IN-belgi) yoki xost (uchun OUT-belgi) ma'lumotlarni yuboradi. Izoxron tranzaktsiyalar xatolik yuz bergan taqdirda, solishtirish bosqichini va ma'lumotlarni qayta uzatishni qo'llab-quvvatlamaydi.

USB interfeysi murakkab ma'lumot almashish protokolini amalga oshirishi sababli, USB interfeysli interfeys qurilmasi protokolni qo'llab-quvvatlaydigan mikroprotsessor blokini talab qiladi. Shuning uchun interfeys qurilmasini ishlab chiqishda asosiy variant almashinuv protokolini qo'llab-quvvatlaydigan mikrokontrollerdan foydalanishdir. Hozirgi vaqtda barcha yirik mikrokontroller ishlab chiqaruvchilari USB blokini o'z ichiga olgan mahsulotlarni ishlab chiqaradilar.

Kompaniya ishlab chiqaruvchisi Ism Tavsif

Atmel
AT43301 Umumiy quyi oqim quvvatini boshqarish bilan LS/FS hub 1-4 kontrolleri.
AT43312A LS/FS uyasi 1-4 nazorat moslamasi, quyi oqimning individual quvvat nazorati bilan.
AT43320A AVR yadrosiga asoslangan mikrokontroller. LS/FS rejimlarida ishlaydigan 4 ta tashqi quyi oqim portlari, 512 bayt operativ xotira, 32x8 umumiy maqsadli registrlar, 32 dasturlashtiriladigan pinlar, ketma-ket va SPI interfeyslari bilan o'rnatilgan USB funksiyasi va hubga ega. Funktsiyada 8 baytlik FIFO buferlari bo'lgan 3 ta CT mavjud. Hubning quyi oqim portlari individual quvvat boshqaruviga ega.
AT43321 AVR yadrosidagi klaviatura boshqaruvchisi. LS/FS rejimlarida ishlaydigan 4 ta tashqi quyi oqim portlari, 512 bayt operativ xotira, 16 KB ROM, 32x8 umumiy maqsadli registrlar, 20 ta dasturlashtiriladigan chiqishlar, ketma-ket va SPI interfeyslari bilan o'rnatilgan USB funksiyasi va hubga ega. Funktsiyada 3 KT mavjud. Hubning quyi oqim portlari individual quvvat boshqaruviga ega.
AT43324

AVR yadrosiga asoslangan mikrokontroller. LS/FS rejimlarida ishlaydigan 2 ta tashqi quyi oqim portlari, 512 bayt operativ xotira, 16 KB ROM, 32x8 umumiy maqsadli registrlar, 34 ta dasturlashtiriladigan chiqishlar bilan o‘rnatilgan USB funksiyasi va hubga ega. Klaviatura matritsasi 18x8 o'lchamga ega bo'lishi mumkin. Tekshirish moslamasida LEDlarni ulash uchun 4 ta chiqish mavjud. Funktsiyada 3 KT mavjud. Hubning quyi oqim portlari individual quvvat boshqaruviga ega.

AT43355 AVR yadrosiga asoslangan mikrokontroller. LS/FS rejimlarida ishlaydigan, 1 KB RAM, 24 KB ROM, 32x8 umumiy maqsadli registrlar, 27 dasturlashtiriladigan pin, ketma-ket va SPI interfeyslari, 12-kanalli 10-bitli ADC bilan ishlaydigan o'rnatilgan USB funksiyasi va 2 ta tashqi quyi oqim portlari bilan hubga ega. . Funktsiyada 64/64/8 bayt FIFO buferlari bilan 1 ta nazorat KT va 3 ta dasturlashtiriladigan CT mavjud.
Fairchild Semiconductor USB100 Manipulyator boshqaruvchisi (sichqoncha, trekbol, joystik). 2D/3D sichqonchani, uchta potansiyometrli joystikni, 16 tugmachali belkurakni qo'llab-quvvatlaydi.

Intel
8x931Ax MSC-51 arxitekturali mikrokontroller. Unda LS/FS rejimlarida ishlaydigan o‘rnatilgan USB funksiyasi, 256 bayt operativ xotira, 0/8 kbayt ROM, 8x4 umumiy maqsadli registrlar, 32 ta programlanadigan pin, ketma-ket interfeys, klaviaturani boshqarish interfeysi mavjud. Funktsiyada FIFO buferlari 8/16/8 bayt bo'lgan 3 ta CT mavjud.
8x931Hx MSC-51 arxitekturali mikrokontroller. O‘rnatilgan USB funksiyasi va LS/FS rejimlarida ishlaydigan 4 ta tashqi quyi oqim portiga ega hub, 256 bayt operativ xotira, 0/8 kbayt ROM, 8x4 umumiy maqsadli registrlar, 32 ta dasturlashtiriladigan chiqishlar, ketma-ket interfeys, klaviatura boshqaruvi mavjud. interfeys. Funktsiyada FIFO buferlari 8/16/8 bayt bo'lgan 3 ta CT mavjud.
8x930Ax MSC-251 arxitekturali mikrokontroller. U LS/FS rejimlarida ishlaydigan o'rnatilgan USB funksiyasiga, 1024 bayt operativ xotiraga, 0/8/16 kbayt ROMga, 40 ta umumiy maqsadli registrlarga, 32 ta dasturlashtiriladigan chiqishlarga, ketma-ket interfeysga ega. Funktsiyada FIFO buferlari 16/1024(256)/16(32)/16(32)/(32)/(16) baytga ega 4(6) CT mavjud.
8x930Hx MSC-251 arxitekturali mikrokontroller. O‘rnatilgan USB funksiyasi va LS/FS rejimlarida ishlaydigan 4 ta tashqi quyi oqim portiga ega hub, 1024 bayt operativ xotira, 0/8/16 kB ROM, 40 umumiy maqsadli registr, 32 dasturlashtiriladigan chiqish, ketma-ket interfeys. Funktsiyada FIFO buferlari 16/1024/16/16 bayt bo'lgan 4 ta CT mavjud.

Mikrochip
PIC16C745 PIC arxitekturali mikrokontroller. Unda LS rejimida ishlaydigan o'rnatilgan USB funksiyasi, 256 bayt operativ xotira, 14336 bayt ROM, 22 dasturlashtiriladigan pin, ketma-ket interfeys, 5 kanalli 8 bitli ADC mavjud.
PIC16C765 PIC arxitekturali mikrokontroller. Unda LS rejimida ishlaydigan o'rnatilgan USB funksiyasi, 256 bayt operativ xotira, 14336 bayt ROM, 33 dasturlashtiriladigan pin, ketma-ket interfeys, 8 kanalli 8 bitli ADC mavjud.
PIC18F2450 PIC arxitekturali mikrokontroller. U LS/FS rejimida ishlaydigan o'rnatilgan USB funksiyasiga, 1536 bayt operativ xotiraga, 16384 bayt ROMga, 19 dasturlashtiriladigan pinga, ketma-ket va SPI interfeyslariga, 5 kanalli 10 bitli ADCga ega. Funktsiyada 8 KT mavjud.
PIC18F2550 PIC arxitekturali mikrokontroller. U LS/FS rejimida ishlaydigan o'rnatilgan USB funksiyasiga, 1536 bayt operativ xotiraga, 32768 bayt ROMga, 19 dasturlashtiriladigan pinga, ketma-ket, CAN va SPI interfeyslariga, 5 kanalli 10 bitli ADCga ega. Funktsiyada 8 KT mavjud.
PIC18F4450 PIC arxitekturali mikrokontroller. U LS/FS rejimida ishlaydigan o'rnatilgan USB funksiyasiga, 1536 bayt operativ xotiraga, 16384 bayt ROMga, 34 dasturlashtiriladigan chiqishlarga, ketma-ket, CAN va SPI interfeyslariga, 8 kanalli 10 bitli ADCga ega. Funktsiyada 8 KT mavjud.
PIC18F4550 PIC arxitekturali mikrokontroller. U LS/FS rejimida ishlaydigan o'rnatilgan USB funksiyasiga, 1536 bayt operativ xotiraga, 32768 bayt ROMga, 34 dasturlashtiriladigan chiqishlarga, ketma-ket, CAN va SPI interfeyslariga, 8 kanalli 10 bitli ADCga ega. Funktsiyada 8 KT mavjud.
Texas asboblari TUSB2036 LS/FS uyasi 1-3 nazorat moslamasi quyi oqimning individual quvvat nazorati bilan.
  • Oʻquv qoʻllanma

OSI tarmoq modelining universal seriyali avtobusga tasvirlangan proyeksiyasi.

USB to'plamining uchta "e'tiborga loyiq" darajasi

Meni ko'pincha Internetda topish mumkin bo'lgan USB stekining ko'rinishi qoniqtirmadi:

Juda foydali USB stack emas


Avtobus darajasi, mantiqiy, funksional... Bular, albatta, ajoyib abstraktsiyalar, lekin ular xost uchun haydovchi yoki amaliy dastur yaratmoqchi bo'lganlar uchun ko'proq. Mikrokontroller tomonida men shablonli chekli holat mashinasini kutaman, uning tugunlarida biz odatda foydali kodimizni joylashtiramiz va dastlab u janrning barcha qonunlariga ko'ra muvaffaqiyatsiz bo'ladi. Yoki xostdagi dasturiy ta'minot noto'g'ri bo'ladi. Yoki haydovchi. Har holda, kimdir muvaffaqiyatsizlikka uchraydi. MK kutubxonalarini darhol aniqlash ham mumkin emas. Shunday qilib, men analizator bilan USB avtobusidagi trafikka qarayman, bu erda notanish tilda sodir bo'layotgan voqealar uchta ajoyib darajada umuman mos kelmaydi. Qiziq, gripp isitmasi tufayli boshimda shunday dissonans bormi?

Agar o'quvchi shunga o'xshash his-tuyg'ularni boshdan kechirgan bo'lsa, men sevgan 7 qatlamli OSI modeliga asoslangan holda to'satdan menga haddan tashqari qizib ketgan miyamda aniq ko'rinadigan USB to'plamining muqobil tasavvurini taklif qilaman. Men o'zimni besh daraja bilan chekladim:

Men barcha dasturiy ta'minot va kutubxonalar allaqachon yaratilgan yoki ushbu model asosida ishlab chiqilishi kerak deb aytmoqchi emasman. Muhandislik sabablariga ko'ra, darajali kod juda aralashtiriladi. Ammo men USB shinasi bilan tanishishni boshlayotganlarga, qurilma almashinuvi protokollari va domen terminologiyasini tushunishni, tayyor misollar, kutubxonalarga yaqinroq bo'lishni va ularni yaxshiroq boshqarishga yordam bermoqchiman. Ushbu model MK-ga yuklash uchun emas, balki sizning yorqin ongingizga, aziz do'stlaringizga. Va keyin sizning oltin qo'llaringiz hamma narsani o'zi qiladi, menda shubha yo'q :)

Xo'sh, keling, xatolarni ko'rsangiz, tuzating. Bu qoralama versiya va agar biror joyda shunga o'xshash narsa allaqachon chizilgan bo'lsa, kechirim so'rayman, uni topa olmadim, shuning uchun uni o'zim qildim. O'ylaymanki, rasm qochib ketmaydi, lekin bu orada men nega birinchi navbatda ushbu nashrni boshlaganimni hurmatli ommaga tushuntiraman.

90-yillardan yana bir esdalik

90-yillarning oxirida, talaba sifatida talaba sifatida ishlaganimda, birinchi xatoimni boshqa birovning kodidan chiqarib tashladim. Bu FreeBSD uchun pppd edi, biz keyin uni modem puliga o'rnatdik. Motorola modemlari uzilishda qolib ketdi, hech kim o'ta olmadi, liniya behuda yo'qoldi va PPP saqlab qolish orqali qolgan yagona usul negadir buggy edi. O'shanda men negadir pppd talab qilingan to'rtta o'rniga oltita LCP javob baytini kutayotganini bildim. O'shanda o'zimni juda aqldan ozgandek his qildim bug silkituvchi 90-yillardan :-) PPP ning bunga nima aloqasi bor? Bu USB-ga o'xshaydi: paket va nuqtadan nuqtaga. To'g'ri, USB 2.0 dan farqli o'laroq, u to'liq dupleksdir.


Biz xohlaymizmi yoki yo'qmi, mikrokontrollerlarning evolyutsiyasi to'xtab qolmasligi aniq. Yo'q, yo'q va u nashrlarda paydo bo'ladi (http://habrahabr.ru/post/208026/, http://habrahabr.ru/post/233391/) "og'ir tashqi qurilmalar" - MK ichiga o'rnatilgan USB avtobus ilovalari, tahlil misollari bilan, HID yordamida va hokazo. Biz RaJa muallifiga hurmat ko'rsatishimiz kerak: STSW-STM32121 (UM0424) standart kutubxonasida keltirilgan sakkizta misoldan u qandaydir tarzda eng foydalisini tanladi (Custom HID), uni bepul Em::Blocks muhitiga o'tkazdi, tushunarli tilda taqdim etdi va biroz bezatib berdi , bravo! Bu menga ko'p vaqtni tejaydi.

Kutubxonaga qanday borish mumkin?

Muallif tomonidan GitHub-da e'lon qilingan Em::Blocks uchun RHIDDemo loyihasini qabul qilib, men uni Keil-ga ko'chirishni boshladim (mening FTDI-ga asoslangan CoLink tuzatuvchisi; kimdir menga Em::Blocks uchun Coocox plaginini aytib beradi). Ammo men tushuna olmadim: agar sayt 2011 yildagi 3.5.0 ni joylashtirgan bo'lsa, muallif 2012 yildagi SPL 3.6.1 ni qayerdan olgan? Men juda zerikarli topshiriqni boshdan kechirdim, bu meni hayratda qoldirdi... to'g'ridan-to'g'ri USB FS 4.0.0 kutubxonasining bir qismi sifatida Keil uchun tayyor Custom HID loyihasiga. Ko'z oldida yotadi, supurgi ostidagi sichqon kabi. Ha mayli. Ammo men nihoyat STMicroelectronics relizlariga yaqinlashdim, STSW-STM32121 (UM0424) USB FS kutubxonasining tavsifini topdim va ishlab chiquvchining meni aqldan ozdirishga urinishlarini to'xtatdim. Ayting-chi, 2011-yildagi SPL 3.5.0 to‘plamiga 2009-yildagi vintage CMSIS 1.30-ni qo‘yish, 2012-yildagi yangi SPL 3.6.1-ni USB-FS 4.0.0-da 2013-yilda yashirish (2012-yildan CMSIS 3.0.1-ni qo‘yish) normalmi? u erda ham), ular 2014 yilda chiqarilgan CMSIS 3.30 ning joriy versiyasiga ega bo'lishiga qaramay? Aytgancha, STM32F10X uchun SPL 3.6.x da bufer toshib ketish signallari bilan bog'liq USART bilan bir nechta xatolar tuzatildi. Rahmat, hech bo'lmaganda ular reliz yozuvlarini qoldirishdi ...

HID va SNMP

Shunday qilib, STM32F103C8T6 ni qabul qilib, men USB HID mavzusini biroz o'rganishga qaror qildim, USB HID abstraktsiyasi barcha turdagi sensorlar, sensorlar va boshqa PWM tomonidan boshqariladigan quvvat drayverlari kontseptsiyasiga juda mos keladi. Bu qandaydir tarzda menga SNMPni eslatdi, faqat juda soddalashtirilgan shaklda: HID deskriptorlari SNMP MIB rolini o'ynaydi. Qurilma xost tomonidan ishga tushirilganda: “Salom, xost! Men qahva qaynatuvchiman. Menda [boshlash] tugmasi, [qaymoq], [shakar] boshqaruvlari, [kofe qolgan], [suv qolgan], [shakar qolgan], [qaymoq qolgan]. Haydovchilarni torting, tugmani bosing, qahva ichamiz." Sizga hech narsani eslatmayaptimi? SNMP dialogiga misol: “Xo'sh, salom, 100 000 dollarlik dasturiy ta'minotga ega boshqaruv stantsiyasi. Va menda 200 000 dollarga almashtiriladigan shassi bor va menda har biri 100 000 dollarga yana 4 ta modul bor; har birida nomaqbul tezlikda yana 16 ta port mavjud va bu erda barcha funktsiyalarni ro'yxatga olishning iloji yo'q ... har bir element uchun alohida so'rang; oh, ha, protsessor yuki falonchi, xotira falonchi...” Va yana o'nlab sahifalar xuddi shu ruhda.

Menga HID g'oyasi yoqdi. Lekin men Windows-ni o'quv vazifalarini miltillovchi LEDlar (haqiqiy UNIX muhitiga!) tark etishim bilanoq, u barcha yopiq yoriqlardan o'tib keta boshladi va o'zimni qandaydir nochor cho'loq kabi his qildim. Loyihani disk raskadrovka qilishda men instinktiv ravishda tcpdump-ni qo'lga oldim (bu shunday deyiladi: usbdump(8) yoki usbmon), lekin men faqat notanish tildagi xabarlarni ko'rdim.

Ma'lum bo'ldi: USB shinasi haqida fundamental bilimlar etishmasligi. Agar OSI modeli va har qanday tajribali IT mutaxassisi TCP/IP stekini orqa miya darajasida, shunchaki zarurat tufayli tushunadi, keyin USB bilan vaziyat boshqacha. Bu tushunarli: u erda siz xuddi shu tcpdump orqali trafikni josuslik qilishingiz va apparat va dasturiy ta'minotni sozlashingiz mumkin (kerak), lekin bu erda u butunlay ulanadi va o'ynaydi va siz drayverni yoki proshivkani yangilash (yoki OTni qayta o'rnatish) orqali biror narsani tuzatishingiz mumkin. Lekin biz bu yerga faqat yaxshi proshivka yaratish uchun yig'ilganmiz, to'g'rimi? Internetdagi ba'zi USB tavsiflarini o'qib chiqqandan so'ng, hujjatlar qanchalik chalkash bo'lishi mumkinligiga hayron bo'ldim. Hattoki, ular ataylab tumanni yoyib, g‘unchadagi raqobatdan xalos bo‘lish orqali bizni yo‘ldan ozdirmoqchi bo‘lgandek his qildim. Men bu holatga qo'shilmayman!

Yana bir ajoyib sxema

Internetda men boshqa rasmga duch keldim (u BMP formatida edi, hazil emas):

Avvaliga optimistik ko'rinadi. Nihoyat, stack demontaj qilinadi. Biroq, ramkalar yomon belgilangan: men ularni vertikal nuqtali chiziqlar bilan chizardim va EOF bu shunchaki pauza, hech qanday ma'lumot uzatilmaydi. Ammo biz kontekstni o'qiy boshlaymiz va muallifning asl niyatini tushunishni yo'qotamiz (bizni chalkashtirib yuborish uchun):

USB avtobus interfeysi xost boshqaruvchisi hosil qiladi xodimlar;
Xodimlar NRZI usuli yordamida ketma-ket bit uzatish orqali uzatiladi.
Va yana bir:
har ramka eng yuqori ustuvorlikdan iborat posilkalar, uning tarkibi xost haydovchisi tomonidan tuzilgan;
har biri efirga uzatish bir yoki bir nechta operatsiyalardan iborat bo'lsa;
har bir bitimdan iborat paketlar;
har plastik to'rva paket identifikatori, ma'lumotlar (agar mavjud bo'lsa) va nazorat summasidan iborat.

Hamma narsa to'g'ri chizilganga o'xshaydi, lekin siz o'qiganingiz sayin savollar ko'payib bormoqda. Avtobusda uzatiladigan minimal ma'lumotlar strukturasi ramka yoki paketmi? Umuman olganda, biz yuqoridan pastga qarashimiz kerakmi yoki aksincha? Va NRZI usuli yordamida nima kodlangan - ramkalar, paketlar yoki avtobusdagi butun bit oqimi? Bitimlar posilkadan, pul o'tkazmasidan yoki, ehtimol, qimmatbaho posilkadan iboratmi?
Nega qila olmaysiz: xost paketlarni tranzaktsiyalarga guruhlaydi va ularni joriy avtobus o'tkazish qobiliyatiga asoslangan vaqt uchun muhim ma'lumotlarga (video, audio) ustunlik berish uchun ramkalar deb ataladigan vaqt bo'laklariga taqsimlaydimi? Ha, USB-da paketlarni uzatishni rejalashtirish bilan bog'liq nuanslar bor, men ularga hali tegmayman.

USB to'plami haqidagi tasavvurim

Men hubda (hurray, tarjima) eslatib o'tilgan NutShell-dagi USB-ni, shuningdek, USB Made Simple-ni yaxshi hujjat deb hisoblayman. Ularga asoslanib, men USB stekining versiyasini yig'dim, uni yana chizaman.

Jismoniy qatlam
Jismoniy darajada, differensial o'tkazgichlarning elektr rejimlari to'plami (tuproq bilan birga) bit to'ldirish bilan NRZI usuli yordamida bit oqimi kodlangan holatlarni belgilash uchun ishlatiladi: bu erda ketma-ket oltita "1" dan keyin ( Xo'sh, men uzatmoqchi edim, aytaylik, 0xffff) "0" qabul qiluvchi uzoq vaqt davomida bir holatda qolib ketmasligi uchun kiritilgan; Qabul qiluvchi A Hech qanday "0" qo'yilmagan va ma'lumot sifatida hisoblanmaydi; bu chastotalarni yaxshiroq avtomatik sozlash uchun kodlashda juda keng tarqalgan usul. Tuproq bilan bir juft sim kamida to'rtta statik holatni yaratishga imkon beradi (ular J, K, SE0, SE1 deb nomlanadi). USB 2.0 da SE1 ishlatilmaydi va qolgan uchtasi qo'shimcha ravishda dinamikada (soatlar va o'tishlar bilan) yana bir nechta boshqaruv belgilarini (paket chegaralari, qayta o'rnatish, ulash/o'chirish, quvvatni tejash/chiqish) uzatish uchun ijro etiladi. USB Made Simple, 3-qism - Ma'lumotlar oqimida yaxshi rasmlar mavjud.
Bular. Natijada, ma'lumotlar nol va birliklar, shuningdek, barcha turdagi nazorat belgilari shaklida uzatiladi, shuning uchun oddiy ma'lumotlar paketlarini bu butun elektrodinamik oshxonadan tayyorlash mumkin.
(o'quvchilarning iltimosiga binoan qo'shilgan)
To'plam darajasi
Paket darajasida manzilsiz paketlar xost va qurilma o'rtasida uzatiladi (yarim dupleks liniyadagi bir juft qurilma manzilsiz ishlashi mumkin). Paket qabul qiluvchining soatini sinxronlashtirish uchun SYNC markeridan, baytlar ketma-ketligidan va EOP belgisidan iborat. Paketning uzunligi o'zgaruvchan, lekin orqali kelishiladi yuqori darajalar stack. Birinchi bayt paket identifikatori (PID) deb ataladi, shovqinga qarshi immunitet uchun oddiy ortiqcha formatga ega va keyingi darajadagi mashinaga (paketlardan tranzaktsiyalarni yig'ish uchun) uzatish uchun javob beradi. To'ldirilgan paketlar (bir PID baytdan ortiq) nazorat summasi bilan ta'minlanadi (paket turiga qarab qisqa CRC5 yoki uzun CRC16). Protokol analizatori hech bo'lmaganda bizga paketlarni ko'rsatishi kerak.
Tranzaksiya darajasi
dan keyingi bosqichda paketlar ketmoqdalar operatsiyalar. Tranzaktsiya - bu (yarim dupleks rejimida) xost so'nggi nuqta bilan almashinadigan va faqat bittasi bilan qat'iy ravishda ketma-ket keladigan kichik paketlar to'plami (To'liq tezlikda USB 1, 2 yoki 3). Tranzaktsiyani faqat xost ochishi juda muhim, bu USB-ning o'ziga xos xususiyati (MK proshivkasida biz uchun kamroq qiyinchilik mavjud). Tranzaksiya darajasida biz gapirishimiz mumkin kanal(quvur) xost va qurilmaning so'nggi nuqtalaridan biri o'rtasida, lekin men qasddan OSI modelidagi "Data Link" atamasidan qochyapman. Protokol analizatori hech bo'lmaganda tranzaktsiyalarni dekodlashi kerak.
Vites darajasi
Tranzaktsiyalar ustiga biz transferlar qatlamini joylashtiramiz. USB-da ularning to'rt turi mavjud: 0-sonli so'nggi nuqta bilan boshqaruv uzatish, uzilishli uzatish, izoxron uzatish va ommaviy uzatish. Oxirgi uchtasi oqim kanallarining variantlari (oqim trubkasi), ular haqida keyinroq bir necha so'z aytaman. Bu daraja ham yaxshi protokol analizatorini ko'rsatishi kerak.
Ilova qatlami
Stackning yuqori qismida, odatdagidek, dastur qatlami joylashgan. Bu erda nima sodir bo'ladi: xost tomonidan qurilmaning manzilini belgilash, qurilmaga o'zi haqida deskriptorlar tilida aytib berish, konfiguratsiyani tanlash uchun xost buyruqlari (uzatishlarni boshqarish), HID qurilmalari bilan ma'lumotlarni almashish (misollarda men topdim. hozirgacha uzilishlar bilan uzatish, men boshqaruvni sinab ko'rmoqchiman, printerda chop etish va skanerlash, USB xotiraga kirish (katta blok), naushniklar va veb-kameralar orqali aloqa (izoxron) va boshqa ko'plab ajoyib narsalar.
Yakuniy teginish
Darajani bir soniya pastga tushirib, shuni qo'shishimiz mumkinki, xost vaqti-vaqti bilan bir xil Start of Frame (SOF) paketlarini avtobusga tashlab, vaqtni teng oraliqlarga ajratadi, lekin tranzaktsiyalarning o'zini buzmaslik uchun. Shuning uchun SOF paketlarini mustaqil tranzaktsiyalar deb hisoblash mumkin. USB ramkasini OSI modelining ma'lumotlar havolasi qatlami uchun omonim bilan aralashtirib yubormaslik kerak. Audio CD-ning ramkalarini (ramkalarini) eslab qolish yaxshiroqdir, bu shunchaki vaqt miqdori: xost SOF paketlari bilan avtobusga "belgilaydi", shunda ulangan qurilmalar ushbu nomda ishtirok etishni oldindan rejalashtirishadi. izoxron uzatishlar, real vaqtda ma'lumotlar oqimini boshqarish. Xo'sh, yoki shunga o'xshash: tranzaktsiyalar guruhlari mezbon tomonidan ramkalar deb ataladigan vaqt oralig'ida rejalashtiriladi. Kadr to'liq tezlikda 1 ms va yuqori tezlikda USB da 125 mksni tashkil qiladi, ammo yuqori tezlik yanada murakkab standartdir, uni alohida o'rganish yaxshiroqdir.
UPD:
O'quvchilar tomonidan yaxshi savol berildi: parchalanish haqida nima deyish mumkin? Men USB 2.0 da tranzaksiya darajasida va undan pastda parchalanish belgilarini topmadim, ya'ni. Bitimlar to'liq uzatilishi kerak. Ba'zi hollarda, o'tkazmalar, ayniqsa, izoxron rejimlarni hisobga olgan holda, bir nechta operatsiyalarga bo'linishi mumkin va bo'lishi kerak. Va takror aytamanki, hozircha uy egasi biz uchun barcha rejalashtirish uchun javobgardir (MK tomonida biz kamroq o'ylashimiz kerak).

USB trafigiga qarash

Tasvirlarning yaxshi tanlovi zikr etilgan USB Made Simple kitobining 5-bobida keltirilgan: www.usbmadesimple.co.uk/ums_5.htm

Mana ulardan biri


Shunday qilib, tranzaktsiya har doim xost tomonidan qurilmada tanlangan bitta so'nggi nuqtaga qarshi boshlanadi (bundan tashqari maxsus nuqta 0 raqami bilan bitta qurilmada ulardan 15 tagacha bo'lishi mumkin, masalan, sichqoncha, termometr, flesh-disk, qahva qaynatgich va pitsa buyurtma qilish uchun chilangarni chaqirish tugmasi bilan kombinatsiyalangan klaviatura).
Agar xost qurilmadan ma'lumot olsa, ikkinchisi tranzaktsiyani o'zi ocholmaydi, faqat kutishi mumkin to'g'ri daqiqa va unda ishtirok eting. Xost qurilmaga PID = IN (Token guruhi) paketi bilan tranzaktsiyani ochadi va kerakli vaqt davomida avtobus erkinligini kafolatlaydi, qurilma tranzaktsiya turiga qarab ma'lumotlar guruhidan paketni tashlaydi, xost tasdiqlashi mumkin “Handshake” guruhidan uchinchi paket (ACK, NAK, STALL, NYET) bilan muvaffaqiyatga erishdi, tranzaksiya yopildi.
Qurilmaga ma'lumotlarni yuborishda (PID = OUT, Token guruhi) xost tranzaktsiyani ochadi, ma'lumotlar paketini (Data) yuboradi va rejimga qarab, tranzaktsiyaning muvaffaqiyatliligini tasdiqlovchi Handshake paketini ham olishi mumkin.
Tranzaksiya oxirida hamma narsa normal holatga qaytadi, qurilma yana xostdan nazorat paketlarini kutadi.

STM32 USB FS misollarida USB uzatish rejimlari

Diskdan audio-video oqim, sichqoncha ishoralari va yuqori tezlikdagi osiloskop signali bilan bir vaqtda nusxa olish uchun bir juft simdan foydalanish uchun quyidagilar mavjud. har xil turlari xabarlar va eshittirishlar.
Yuqorida men oddiy narsani tasvirlab berdim oqim kanali(Oqim trubkasi) xost va oxirgi nuqta o'rtasida, bu erda to'ldirilgan paketlar (Ma'lumotlar guruhlari) USB quyi tizimining o'ziga hech qanday maxsus yoki nazorat ma'lumotlarini olib o'tmaydi. To'liq yozishma erkinligi, kontroller kutubxonasi MK xotirasidan ixtiyoriy o'lchamdagi buferni xostga yoki orqaga yuklab olish uchun primitivlarni ta'minlashi kerak. MK kutubxonasiga xost drayveri bilan birgalikda paketlarni kesish, yo'naltirish va "defragmentatsiya" ga ruxsat bering. STM32 da bu USB_SIL_Write() va USB_SIL_Read(), UM0424 da tasvirlangan. Ular mavhumlikning juda mantiqiy darajasidir. Xost tomonida tegishli drayverning tavsifiga qarang (masalan, FreeBSD da ugen(4)).
Biroq, oddiy oqim kanalini tashkil qilish uchun USB kabi og'ir tashqi qurilmalardan foydalanishni kufr deb bilaman (savol: USARTda nima noto'g'ri?). Lekin, albatta, har xil holatlar mavjud.
Qanday bo'lmasin, USB quyi tizimi umuman hayotga kirishi va qurilma aniqlanishi uchun nazorat operatsiyalari almashinuvi talab qilinadi.

Ogohlantirish

Qo'shimcha misollar STMicroelectronics-dan to'liq tezlikda USB bilan ishlash uchun xuddi shu UM0424 kutubxonasidan keltiriladi, ammo ular o'zlarining mahalliy demo platalari uchun mo'ljallangan. Muallif Rajadan misol oling, loyihalarni demo taxtangizga moslashtirishda muhandislik bilimlarini ko'rsating.

Dasturiy ta'minot haqida hamma narsa aniq: bu sanoatda foydalanish uchun mo'ljallanmagan misollar, xatolar bo'lishi mumkin, ba'zi qismlar (masalan, Ommaviy saqlash misolidagi havola jadvali) patent bilan himoyalangan va siz ulardan foydalanish huquqiga ega emassiz. tijorat loyihasida. Lekin bu hech narsa emas, keyin xitoyliklar USB mahsulotlarini bozorda sotishga muvaffaq bo'lishadi, buning uchun ular VID va PID kutubxonasini o'zgartirishni ham bezovta qilmaydi.

Temir uchun, men tushunganimdek, siz kvartsdan boshlashingiz kerak. Menda 12 MGts kvartsli Chelyabinsk PinBoard II bor (barcha kutubxonalar 8 MGts uchun mo'ljallangan), men PLL multiplikatorini 9 dan 6 ga o'zgartirdim (tushuntirishlar bilan havola), aks holda MK 72 MGts o'rniga 108 MGts ga tezlashadi va USB zarur 48 MGts o'rniga 72 MGts ga chiqmaydi. Shuningdek, USB avtobus ajratgichni bir yarimdan birga o'zgartirib, MK tezligini 48 MGts ga sekinlashtirishingiz mumkin. Mutaxassislar HSI MK ning ichki generatoridan foydalanishni yoqtirmaydilar: issiqlik tufayli chastota biroz siljishi mumkin va USB uchun oqibatlarini oldindan aytish qiyin. Albatta, periferiya haqida unutmang. SPI/SDIO flesh-xotirasisiz, Ommaviy saqlash misolidan siz faqat /dev/null analogini yaratishingiz mumkin, lekin uni formatlay olmaysiz :-)

Uzatish va xabar kanallarini boshqarish
USB haqida o'ylab, LCP, IPCP, CCP va xzCP bilan eski yaxshi PPP protokolini eslayman. Xost va № 0 oxirgi nuqta o'rtasida maxsus turdagi xabarlar almashinuvi x3CP ning mahalliy ekvivalenti hisoblanadi.
Boshqaruv uzatishlar orqali qurilma ishga tushiriladi, manzil oladi va xostga o'zi haqida deskriptorlar tilida aytib beradi (kerakli drayverni topib, faollashtirishi uchun). Nazorat operatsiyalarisiz, hatto oddiy operatsiyalar ham "ketmaydi". oqim, agar qurilma shaklda javob bermasa, xost portni tezda o'chirib qo'yadi: protokolga rioya qilish kerak.
Asosan, protokol uzilishlar bilan rejimga o'xshash 0-sonli nazorat nuqtasiga ma'lumotlar almashinuvini ulashni taqiqlamaydi. Shu bilan birga, bu haqda o'ylab ko'ring: MK proshivkasini, aytganda, dalada qanday yangilaysiz? Sizda dasturchi tayyormi? Yana bir yechim bor.
Misol: Qurilma proshivkasini yangilash
Uzilgan uzatmalar
Bu xilma-xillik ( uzatishni to'xtatish) nazorat operatsiyalariga o'xshash kichik operatsiyalarni almashtirish uchun mo'ljallangan. Yo'q, qurilma xostni to'xtata olmaydi, u so'rovni kutadi, ularning chastotasi va paket o'lchamlari qurilma identifikatorida oldindan ko'rsatilgan. Har qanday masofadan boshqarish pultlari, sensorlar, sichqonlar, LEDlar va boshqa HID qahva qaynatgichlar uchun juda mos keladi. Har bir nuqtada uzilishlar bo'lgan kanal bir tomonlama.
Misollar: Maxsus HID, Joystik sichqoncha, Virtual COM porti
Izoxron uzatishlar
Krós yunoncha "vaqt" degan ma'noni anglatadi. Izoxron uzatish ( izoxron uzatish) - real vaqtda ma'lumotlar oqimini boshqarish imkonini beruvchi mahalliy yuqori texnologiya. U kafolatlangan (lekin keng emas) tarmoqli kengligi va tasdiqlovchi tranzaktsiyalarga ega emas, xuddi QoS bilan UDP kabi. Buzilgan paketmi? MKni oyog'iga itarib yuborgan xudo Xronos edi. Paketni qayta yuborishga urinib ko'rishning hojati yo'q, aks holda Xudo xafa bo'ladi. Biroq, biz nazorat summalarini Chronosdan jimgina tekshiramiz. Isoxronous transferlar audio-video va real vaqtda o'lchash tizimlari, shuningdek, boshqa o'yinchoqlar uchun yaxshi ikki tomonlama foydalanish. Garchi ulardan ba'zilari bo'lishi mumkin. USART yoki SPI orqali ARM-ga ulab, qandaydir AVR-ni osib qo'yish qiziqroq. Kadr signalizatsiyasida izoxron operatsiyalar ishtirok etadi (SOF paketining belgilanishini eslang).
Misol: USB ovozli karnay
Katta blokli uzatmalar
Yo'q, biz tsement qoplarini olib ketmaymiz. O'ylaymanki, har bir kishi USB-disklarning barcha turlarining ishlash rejimini o'rgangan. Transferlar ommaviy uzatish Maqsadni iloji boricha tezroq va har doim buzilgan paketlarni uzatish bilan, lekin tarmoqli kengligi bo'yicha kafolatlarsiz, agar kerak bo'lsa, uni izoxronli uzatishga berish (QoS holda TCPda bo'lgani kabi). Men allaqachon USB flesh-disklarning ichki tuzilishi haqida gapirgan edim, endi siz ishlaydigan prototipni yuklab olishingiz va ishga tushirishingiz mumkin. Men buni o'zim sinab ko'rmadim, lekin misol tavsifidagi SCSI buyruqlar jadvali (aytmoqchi) juda ramziy. NAND xotirasi uchun eskirishni boshqarish algoritmining belgilarini topmadim :-)
QAYD: STM patent muhofazasi joylarda qo'llaniladi.
Misol: Ommaviy saqlash

Nimasi oshkor etilmagan

USB-da boshqa darslik yaratish maqsadim yo'q, ular mensiz yetarlicha va ular yaxshi tasvirlangan: elektr qismi, protokol tafsilotlari, hublar bilan ishlash, deskriptor tili va HID abstraktsiya darajasi, VID/ bilan bog'liq muammolar. PID o'ziga xosligi, USB 3.0 va USB avtobusining boshqa ko'plab ajoyib xususiyatlari, ba'zilari biz uchun foydali, ba'zilari esa unchalik foydali emas. IT-mutaxassislari uchun men, ayniqsa, dushman qurilmalari (dahshatli ishlarni qiladigan yashirin HID klaviaturasi bo'lgan flesh-disk) bilan qorong'u tomonga ekskursiya qilishni tavsiya qilaman.

Havolalar

Maxsus HID misolini moslashtirish erkin muhit Em::Bloklar va LC-Tech Industrial Electronics tomonidan ishlab chiqarilgan STM32F103C8T6 byudjetli demo taxtasi va IT odamlari. Bu Yin va Yang muhandisligining bir turi, har birimiz ikkalamizning ulushiga egamiz.

Sanoat elektronikasi muhandislari apparat bo'yicha mukammal bilim va ko'nikmalarga ega, ular sochlari yupqa radio komponentlarini chap qo'llari bilan ko'zlarini yumib lehimlaydilar (va keyin u ishlaydi). Ga qarash elektron sxema, deyarli jismonan uning barcha oqimlarini potentsial bilan his qila boshlaydi, ular ham quvvat davrlari va (katta, tez, xavfli) sanoat mahsulotlari bilan ishlaydi. MKni dasturlashning yondashuvi o'rinli: u kerakli mantiqiy darajalarni kerakli vaqtda to'g'ri oyoqlarga chiqarishi kerak, bu muhim emas. Ular texnologiyada konservativdir (aralashmang - u ishlaydi), og'ir MK tashqi qurilmalari ayniqsa yoqmaydi. Ob'ektga yo'naltirilgan dasturlash, axborot xavfsizligi, millionlab kodli ulkan loyihalar va har xil chiroyli grafik interfeyslarni muhokama qilishda odamlar zerikadi. Paketga yo'naltirilgan USB shinasi o'rniga ular odatiy RS-232 yoki yanada shafqatsiz RS-485 (sanoat ilovalari uchun seriyali avtobus, 15 m da 10 Mbit / s gacha, 100 kbit / s gacha) bilan takomillashtirilgan USART oqim rejimini afzal ko'radilar. 1200 m, 32 tagacha qurilma).

IT-mutaxassislari operatsion tizimlar, tarmoq infratuzilmasi va murakkab o'zaro ta'sirlar haqida tushunchaga ega bo'lib, elita axborot xavfsizligini yaxshi biladi va boshqa birovning tizimiga kirishning barcha ko'rinmas usullarini tushunadi. Ba'zi odamlar mushuklarni chindan ham yaxshi ko'radilar (qanday qilib ularni sevmaslik mumkin? Men, lekin saqlamayman, ko'paytirmayman yoki pishirmayman :-). Ko'p odamlar axborot erkinligini yaxshi ko'radilar, korporatsiyalarni/hukumatlarni tanqid qiladilar va tabiat kuchlarini fikr kuchi bilan yengadilar. Patologik jihatdan dangasa, lekin ular yangi texnologiyalar va o'ralgan muhandislik jumboqlarini yaxshi ko'radilar qimmat o'yinchoqlar(afzal dasturiy ta'minot darajasida yoki o'ta og'ir holatlarda jumperlar bilan hal qilinadi). Lehimlash temir bilan munosabatlar himoyalangan: IT mutaxassisidan lehim temirni yoqtirishini so'ramang, u noto'g'ri tushunishi mumkin; U elektron sxemalarni lehimlashni yaxshi ko'radimi, deb so'rang.

Men nima haqida gapiryapman? Biz bu dunyoni shunchaki boshqacha ko'ramiz... Axir, Linux yadrosi C tilidagi modullardan va ma'lum platformalar uchun assembler qo'shimchalaridan boshlab xuddi shu yigitlar tomonidan yaratilgan va ular go'yo holivarlarsiz ishlagandek edi. Men haqiqatan ham jiddiy loyihani eng yangi mikrokontrollerlarni og‘ir tashqi qurilmalar bilan birlashtirgan ko‘p yadroli tizim sifatida ko‘raman, lekin men AVR kabi klassik modellar bilan kombinatsiyani istisno qilmayman: ulardan texnik taraqqiyotning muhim, tez aylanadigan nayzalarini osib qo‘yish uchun foydalanish mumkin. Agar kod yillar davomida sinovdan o'tgan bo'lsa, unda nima uchun emas?

Teglar qo'shing

2008 yil oxirida. Siz kutganingizdek, yangi standart USB 1.1 dan USB 2.0 ga o'tishda tezlikni 40 baravar oshirish kabi o'sish unchalik muhim bo'lmasa-da, o'tkazish qobiliyati oshdi. Har holda, o'tkazish qobiliyatining 10 baravar oshishi ma'qul. USB 3.0 qo'llab-quvvatlaydi maksimal uzatish tezligi 5 Gbit/s. O‘tkazish qobiliyati zamonaviy Serial ATA standartidan deyarli ikki baravar yuqori (3 Gbit/s, ortiqcha ma’lumotlarni uzatishni hisobga olgan holda).

USB 3.0 logotipi

Har bir ishqiboz USB 2.0 interfeysi zamonaviy kompyuterlar va noutbuklarning asosiy muammosi ekanligini tasdiqlaydi, chunki uning eng yuqori "aniq" o'tkazuvchanligi 30 dan 35 MB / s gacha. Ammo zamonaviylarida 3,5 dyuym bor. qattiq disklar ish stoli kompyuterlari uchun uzatish tezligi allaqachon 100 MB/s dan oshdi (noutbuklar uchun 2,5 dyuymli modellar ham paydo bo'lib, bu darajaga yaqinlashmoqda). Yuqori tezlikdagi qattiq holatdagi drayvlar 200 MB/s chegarasidan muvaffaqiyatli oshib ketdi. Va 5 Gbit / s (yoki 5120 Mbit / s) 640 MB / s ga to'g'ri keladi.

Qattiq disklar yaqin kelajakda 600 MB/s tezlikka erisha olmaydi, deb o‘ylaymiz, ammo keyingi avlod SSD-lar bir necha yil ichida bu raqamdan oshib ketishi mumkin. O'tkazish qobiliyatini oshirish tobora muhim ahamiyat kasb etadi, chunki ma'lumotlar miqdori ortib boradi va shunga mos ravishda ularni zaxiralash vaqti ortadi. Saqlash qanchalik tez ishlaydi, zahiralash vaqti qanchalik qisqa bo'lsa, zaxira jadvalida "derazalar" yaratish osonroq bo'ladi.

USB 1.0 - 3.0 tezligini taqqoslash jadvali

Raqamli videokameralar bugungi kunda gigabayt video ma'lumotlarni yozib olishi va saqlashi mumkin. HD video kameralarning ulushi ortib bormoqda va ular katta hajmdagi ma'lumotlarni yozib olish uchun kattaroq va tezroq saqlashni talab qiladi. Agar siz USB 2.0 dan foydalansangiz, tahrirlash uchun bir necha o'nlab gigabaytlik video ma'lumotlarni kompyuterga o'tkazish ancha vaqt talab etadi. USB Implementers Forum o'tkazish qobiliyati printsipial jihatdan muhim bo'lib qoladi, deb hisoblaydi va USB 3.0 keyingi besh yil ichida barcha iste'molchi qurilmalari uchun etarli bo'ladi.

8/10 bit kodlash

Ishonchli ma'lumotlarni uzatishni ta'minlash uchun USB 3.0 interfeysi bizga tanish bo'lgan 8/10 bitli kodlashdan foydalanadi, masalan, Serial ATA'dan. Bir bayt (8 bit) 10 bitli kodlash yordamida uzatiladi, bu esa o'tkazish qobiliyati hisobiga uzatish ishonchliligini oshiradi. Shuning uchun bitdan baytga o'tish 8:1 o'rniga 10:1 nisbatda amalga oshiriladi.

USB 1.x – 3.0 tarmoqli kengligi va raqobatchilarni solishtirish

Quvvatni tejash rejimlari

Albatta, asosiy maqsad interfeys USB 3.0 mavjud tarmoqli kengligini oshirishdan iborat, ammo, yangi standart samarali energiya sarfini optimallashtiradi. USB 2.0 interfeysi doimiy ravishda quvvat sarflaydigan qurilma mavjudligini so'raydi. Aksincha, USB 3.0 to'rtta ulanish holatiga ega, ular U0-U3 deb nomlanadi. U0 holati faol ma'lumotlarni uzatishga mos keladi va U3 qurilmani "uyqu" holatiga qo'yadi.

Agar ulanish bo'sh bo'lsa, U1 holatida ma'lumotlarni qabul qilish va uzatish imkoniyati o'chiriladi. U2 holati ichki soatni o'chirib, bir qadam oldinga boradi. Shunga ko'ra, ulangan qurilmalar ma'lumotlar uzatish tugagandan so'ng darhol U1 holatiga o'tishi mumkin, bu USB 2.0 bilan solishtirganda sezilarli quvvat sarfi afzalliklarini ta'minlashi kutilmoqda.

Yuqori oqim

Turli xil quvvat iste'moli holatlariga qo'shimcha ravishda, standart USB 3.0 boshqacha USB 2.0 dan va yuqori qo'llab-quvvatlanadigan oqim. Agar USB 2.0 500 mA oqim chegarasini ta'minlagan bo'lsa, yangi standartda cheklov 900 mA ga o'tkazildi. Ulanishni boshlash oqimi USB 2.0 uchun 100 mA dan USB 3.0 uchun 150 mA ga oshirildi. Ikkala parametr ham ko'chma qattiq disklar uchun juda muhim, ular odatda biroz yuqori oqimlarni talab qiladi. Ilgari, muammoni qo'shimcha USB vilkasidan foydalanib, ikkita portdan quvvat olish orqali hal qilish mumkin edi, lekin bu USB 2.0 spetsifikatsiyalarini buzgan bo'lsa ham, ma'lumotlarni uzatish uchun faqat bittasini ishlatish mumkin edi.

Yangi kabellar, ulagichlar, ranglarni kodlash

USB 3.0 standarti USB 2.0 bilan orqaga qarab mos keladi, ya'ni vilkalar oddiy A toifali vilkalar bilan bir xil ko'rinadi.USB 2.0 pinlari o'sha joyda qoladi, lekin ulagichning chuqurligida joylashgan beshta yangi pin mavjud. Bu rejimni ta'minlash uchun USB 3.0 vilkasini USB 3.0 portiga to'liq kiritishingiz kerakligini anglatadi. USB bilan ishlash 3.0, bu qo'shimcha pinlarni talab qiladi. Aks holda siz USB 2.0 tezligini olasiz. USB Implementers Forum ishlab chiqaruvchilarga ulagichning ichki qismida Pantone 300C rang kodlashidan foydalanishni tavsiya qiladi.

Vaziyat USB turi B vilkasi uchun xuddi shunday edi, garchi farqlar vizual ravishda sezilarli bo'lsa ham. USB 3.0 vilkasini beshta qo'shimcha pin yordamida aniqlash mumkin.

USB 3.0 tolali optikadan foydalanmaydi, chunki u ommaviy bozor uchun juda qimmat. Shuning uchun, bizda yaxshi eski mis kabel bor. Biroq, endi u to'rtta emas, to'qqizta simga ega bo'ladi. Ma'lumot uzatish differensial rejimda besh qo'shimcha simning to'rttasi orqali amalga oshiriladi (SDP - Himoyalangan differentsial juftlik). Bir juft sim ma'lumotni qabul qilish, ikkinchisi uzatish uchun javobgardir. Ishlash printsipi Serial ATA ga o'xshaydi, qurilmalar har ikki yo'nalishda ham to'liq tarmoqli kengligi oladi. Beshinchi sim - "tuproq".



 


O'qing:



Eng yaxshi simsiz minigarnituralar reytingi

Eng yaxshi simsiz minigarnituralar reytingi

Universal quloqlarni arzon sotib olish mumkinmi? 3000 rubl - bunday pulga yuqori sifatli eshitish vositalarini sotib olish mumkinmi? Ma'lum bo'lishicha, ha. Va nutq ...

Mobil qurilmaning asosiy kamerasi odatda tananing orqa tomonida joylashgan bo'lib, fotosuratlar va videolarni olish uchun ishlatiladi

Mobil qurilmaning asosiy kamerasi odatda tananing orqa tomonida joylashgan bo'lib, fotosuratlar va videolarni olish uchun ishlatiladi

Yaxshilangan xarakteristikalar va yuqori avtonomiyaga ega planshetning yangilangan versiyasi.Acer smartfonlariga kamdan-kam tashrif buyuradi...

Raqamingizni saqlab qolgan holda boshqa operatorga qanday o'tish mumkin

Raqamingizni saqlab qolgan holda boshqa operatorga qanday o'tish mumkin

Rossiyada 1 dekabrdan boshlab abonent boshqa uyali aloqa operatoriga o‘tganda telefon raqamini saqlab qolish to‘g‘risidagi qonun kuchga kirdi. Biroq, ma'lum bo'lishicha, ...

phabletni ko'rib chiqish, qimmat, lekin juda malakali

phabletni ko'rib chiqish, qimmat, lekin juda malakali

Qimmatbaho, lekin juda malakali fablet sharhi 20.03.2015 Men dunyodagi etiksiz yagona poyabzalchiman, o'z smartfonimsiz smartfon sharhlovchisiman....

tasma tasviri RSS