Bit-buking
Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită pe 8 mai 2018; verificările necesită
5 modificări .
Bit-banging este o tehnologie pentru organizarea unei conexiuni seriale folosind emularea software în loc de un dispozitiv hardware specializat. Programul setează direct starea pinilor GPIO pe microcontroler (sau LPT pe computer), oferind astfel pe deplin caracteristicile semnalului dorit. Folosit de obicei în dispozitive ieftine. [1] [2]
Restricții
- Viteza dispozitivului emulat este limitată de timpul de configurare a pinului și de timpul de execuție a codului. Prin urmare, Bit-banging este folosit în general pentru a emula dispozitive cu viteză redusă sau versiuni de dispozitive cu viteză redusă.
- Este dificil să se garanteze timpul exact de execuție a codului, ceea ce poate crea probleme la implementarea protocoalelor sensibile la sincronizare
- Emularea software consumă resurse CPU
- Semnalul primit poate avea fluctuații ridicate , mai ales dacă procesorul îndeplinește alte sarcini decât comunicarea.
- Necesită potrivirea manuală a nivelurilor de semnal și a curenților [3] , fără de care este posibil să se deterioreze pinii GPIO sau al doilea dispozitiv care participă la protocol
Aplicație
Nucleul Linux are suport pentru emularea I²C prin GPIO [4] .
Folosind tehnica Bit-banging, puteți adăuga port serial [5] și suport I2C la dispozitivele PIC.
Uneori sunt implementați și programatori JTAG , cum ar fi pe dispozitivele Arduino . [6]
Există implementări ale celor mai simple dispozitive USB [7] pe pinii GPIO fără utilizarea de cipuri speciale care implementează stratul fizic (PHY).
Unele adaptoare USB la serial, cum ar fi FT232, permit operarea bitbang. [opt]
Unele controlere MMC/SD pot fi puse într-un mod în care emit 4-5 semnale de înaltă frecvență. De exemplu, folosind controlerul de la SoC Jz4720, a fost posibil să se creeze un semnal VGA [9] [10] .
Note
- ↑ Michael Predko. Programarea și personalizarea microcontrolerelor PICmicro . — al 2-lea. - McGraw-Hill Professional, 2000. - P. 10-12. - ISBN 978-0-07-136172-9 .
- ↑ Mike Szczys . Lovitură de biți printr-un adaptor de port paralel USB Arhivat la 30 decembrie 2013 la Wayback Machine . - 2013. - 21 februarie.
- ↑ Diferenţialul USB | Dr. Dobb . Data accesului: 30 decembrie 2013. Arhivat din original la 31 decembrie 2013. (nedefinit)
- ↑ Linux Kernel: cod sursă i2c-gpio.c (downlink) . Preluat la 15 mai 2011. Arhivat din original la 26 iulie 2013. (nedefinit)
- ↑ Copie arhivată (link nu este disponibil) . Data accesului: 30 decembrie 2013. Arhivat din original la 30 decembrie 2013. (nedefinit)
- ↑ Învățați JTAG scriind un programator care se întâlnește . Data accesului: 30 decembrie 2013. Arhivat din original la 30 decembrie 2013. (nedefinit)
- ↑ It's Alive: gazdă USB cu viteză maximă care se întâlnește cu biți pentru elice: scanlime . Data accesului: 30 decembrie 2013. Arhivat din original la 30 decembrie 2013. (nedefinit)
- ↑ Copie arhivată . Data accesului: 30 decembrie 2013. Arhivat din original la 31 decembrie 2013. (nedefinit)
- ↑ Universal Breakout Board - VGA . Data accesului: 1 ianuarie 2014. Arhivat din original pe 17 aprilie 2014. (nedefinit)
- ↑ Mike Szczys . Bătrânirea VGA dintr-un slot pentru card SD (10 mai 2011). Arhivat din original pe 2 ianuarie 2014. Preluat la 1 ianuarie 2014.
Link -uri