SIE PIC USB
http://www.microchip.com/forums/m646353.aspx
Táto webová stránka vysvetľuje bus signalizáciu dobre
USB Made Simple, časť 3 - Tok dát
http://www.usbmadesimple.co.uk/ums_3.htm
USB špec definuje proces SIE v detailoch. Z tohto dôvodu vykonávania SIE pre stranu autobusu je (takmer) rovnaký medzi MCU USB. Ale rozhranie SIE na firmware (tj. Registry) je implementácia-presný.
Tu je stručné vysvetlenie, doplnok PIC listu.
Zjednodušene povedané, SIE má dve hlavné úlohy,
1) dekódovanie paketu a automatické reakciu na transakcie
2) Bus detekčné udalosť
1) dekódovanie balíček - transakčné odozva
tvary PHY USB prichádzajúce autobus signalizáciu pomocou 4x prevzorkovanie DPLL (pre plnú / nízku rýchlosť). NRZI dekódovanie a bit-unstuff je aplikovaná na prichádzajúce signalizácie. SIE detekuje synchronizačný kombinácie na začiatku každého paketu od signalizácie. Po SYNC vzore, pole PID (Packet ID) nasledovne. Ďalšie pole po PID závisieť na PID hodnoty. EOP uzatvára paket.
Týmto spôsobom, je paket dekódovaný SIE. Veľa chýb protokolu, vrátane CRC, sú kontrolované v tomto procese (UEIR).
Pri SIE kladie paket, je zakódovaný pomocou bit-plnkou a NRZI, predtým, než je paket odoslaný do zbernice.
Transakcia začína SETUP, von alebo dovnútra paket (pakety Token) pochádzajúcich z hostiteľa. Jeden alebo dva pakety nasledovať token paket v transakcii. Načasovanie týchto paketov v rámci transakcie je tesne zviazané USB špec. Preto SIE automaticky reaguje na tokenu paketov podľa stavu koncových bodov, ktorá je stanovená firmware vopred. Inými slovami, transakcia je kompletne spracovaná SIE.
a) SETUP transakcie
po tom, čo videl SETUP a Data0 paket od hostiteľa,
- Ak je SETUP alebo DATA0 paket poškodený, SIE nedáva žiadnu odozvu hostiteľa.
- Ak je adresa zariadenia Setup paket nezodpovedá k tomuto jeden (UADDR), SIE ignoruje tento paket.
- Ak je východiskový koncový bod nie je povolený (UEP0.EPCONDIS, .EPOUTEN .EPINEN), SIE nedáva žiadnu odozvu hostiteľa (chyba protokolu).
- Ak je východiskový koncový bod nie je vyzbrojený (BD0STAT.UOWN pre EP0 Out), SIE vráti žiadna odpoveď hostiteľa. To je spec porušenie. Firmware by mal zvládnuť tento koncový bod, takže nedochádza táto nehoda.
- Ak je koncový bod vyzbrojený, ACK paket je poslaný SIE. Údaje SETUP 8 bytov je uložená do vyrovnávacej pamäte, určený BD0ADRH: BD0ADRL, BD0CNT pre EP0 OUT. A SIE upozorní firmware dokončení transakcie (UOWN, UIR.TRNIF, UCON.PKTDIS). Kým firmware kvapky PKTDIS trochu, všetky koncové body návrate NAK na transakcie in / out.
b) OUT transakcie
po tom, čo videl OUT a paket DATA od hostiteľa,
- Ak je OUT alebo DATA paket poškodený, SIE nedáva žiadnu odozvu hostiteľa.
- Ak je adresa zariadenia podľa OUT paket nezodpovedá k tomuto jeden (UADDR), SIE ignoruje tento paket.
- Ak je cieľový koncový bod nie je povolený (UEPn.EPOUTEN), SIE nedáva žiadnu odozvu hostiteľa (chyba protokolu).
- Ak je koncový bod nie je ozbrojený (BDnSTAT.UOWN pre EPN Out), SIE vráti NAK paket hostiť. Firmware je o ničom.
- V prípade, že koncový bod je ozbrojený, ACK paket je odoslaný SIE, pre riadiace / prerušenie / Bulk koncový bod (UEPn.EPHSHK). Dáta sa ukladajú do vyrovnávacej pamäte, určený BDnADRH: BDnADRL, BDnCNT pre ESH OUT. A to oznámi firmware dokončenie transakcie (UOWN a UIR.TRNIF). Pre ISOC koncového bodu, žiadna ACK je kladený by SIE. SIE upozorní firmware na konci paketu DATA.
- Ak je ZABLOK.MOTOR bit povolený (BDnSTAT.BSTALL), stajne paket je odoslaný k hostiteľovi. Firmware je upozornený (UEPn.EPSTALL, UIR.STALLIF)
c) v transakcii
po tom, čo videl paket od hostiteľa,
- Ak je paket v poškodený, SIE nedáva žiadnu odozvu hostiteľa.
- Ak je adresa zariadenia v pakete nezodpovedá k tomuto jeden (UADDR), SIE ignoruje tento paket.
- Ak je cieľový koncový bod nie je povolený (UEPn.EPINEN), SIE nedáva žiadnu odozvu hostiteľa (chyba protokolu).
- V prípade, že koncový bod nie je ozbrojený (BDnSTAT.UOWN), SIE vráti NAK paket hostiť. Firmware je o ničom.
- Ak je koncový bod vyzbrojený, dátový paket je poslaný SIE. Údaje sú posielané z vyrovnávacej pamäte, určené BDnADRH: BDnADRL, BDnCNT pre ESH IN. Pre ovládanie / prerušenie / Bulk koncový bod, SIE očakáva ACK paket od hostiteľa. Pri SIE dostane ACK paket úspešne, oznámi to firmware dokončenie transakcie (UOWN a UIR.TRNIF). Pre ISOC koncového bodu, nie ACK pochádza z hostiteľa. SIE upozorní na konci výstupe dátový paket.
- Ak je ZABLOK.MOTOR bit povolený (BDnSTAT.BSTALL), stajne paket je odoslaný k hostiteľovi. Firmware je upozornený (UEPn.EPSTALL, UIR.STALLIF)
Vo vyššie uvedenom vysvetlenie, nedotkol som sa do dátového prepínať, aby to jednoduché.
Pre dátový prepínač, pozri BDnSTAT.DTS a DTSEN PIC listu.
Tiež nájdete v nasledujúcich častiach USB 2.0 spec
8.5.2 Hromadné transakcie
8.5.3 kontrolu transferov
8.5.4 prerušenia Transakcia
8,6 dát Toggle synchronizácia a Opakovať
2) detekcia autobusov udalosť
Tieto zbernice udalosti sú monitorované SIE
SIE upozorní firmware týchto udalostí pri detekcii.
- Resetovanie Bus (UIR.URSTIF)
- Suspend a Resume (UIR.IDLEIF, .ACTVIF)
Tiež SIE môže dať diaľkovou signalizáciou Wakeup na vyžiadanie firmware (UCON.RESUME).
Tsuneo