Bit-banking
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 8. maj 2018; checks kræver
5 redigeringer .
Bit-banging er en teknologi til at organisere en seriel forbindelse ved hjælp af softwareemulering i stedet for en specialiseret hardwareenhed. Programmet indstiller direkte tilstanden af GPIO - benene på mikrocontrolleren (eller LPT på computeren), og giver således fuldt ud de ønskede signalkarakteristika. Bruges normalt i billige enheder. [1] [2]
Begrænsninger
- Hastigheden af den emulerede enhed er begrænset af pin-opsætningstid og kodeudførelsestid. Derfor bruges Bit-banging generelt til at efterligne lavhastighedsenheder eller lavhastighedsversioner af enheder.
- Det er svært at garantere den nøjagtige udførelsestid for koden, hvilket kan skabe problemer ved implementering af synkroniseringsfølsomme protokoller
- Softwareemulering bruger CPU-ressourcer
- Det modtagne signal kan have høj jitter , især hvis processoren udfører andre opgaver end kommunikation.
- Kræver manuel tilpasning af signalniveauer og strømme [3] , uden hvilken det er muligt at beskadige GPIO-benene eller den anden enhed, der deltager i protokollen
Ansøgning
Linux -kernen understøtter I²C - emulering via GPIO [4] .
Ved at bruge Bit-banging-teknikken kan du tilføje seriel port [5] og I2C-understøttelse til PIC-enheder.
Nogle gange er JTAG- programmører også implementeret , såsom på Arduino -enheder . [6]
Der er implementeringer af de enkleste USB -enheder [7] på GPIO-ben uden brug af specielle chips, der implementerer det fysiske lag (PHY).
Nogle USB-til-serie-adaptere, såsom FT232, tillader bitbang-drift. [otte]
Nogle MMC/SD-controllere kan sættes i en tilstand, hvor de udsender 4-5 højfrekvente signaler. For eksempel ved hjælp af controlleren fra Jz4720 SoC var det muligt at skabe et VGA -signal [9] [10] .
Noter
- ↑ Michael Predko. Programmering og tilpasning af PICmicro mikrocontrollere . — 2. - McGraw-Hill Professional, 2000. - S. 10-12. - ISBN 978-0-07-136172-9 .
- ↑ Mike Szczys . Bit banking gennem en USB parallel port adapter Arkiveret 30. december 2013 på Wayback Machine . - 2013. - 21. februar.
- ↑ USB-differentialet | Dr Dobbs . Dato for adgang: 30. december 2013. Arkiveret fra originalen 31. december 2013. (ubestemt)
- ↑ Linux Kernel: i2c-gpio.c kildekode (downlink) . Hentet 15. maj 2011. Arkiveret fra originalen 26. juli 2013. (ubestemt)
- ↑ Arkiveret kopi (link ikke tilgængeligt) . Dato for adgang: 30. december 2013. Arkiveret fra originalen 30. december 2013. (ubestemt)
- ↑ Lær JTAG ved at skrive en bidende programmør . Dato for adgang: 30. december 2013. Arkiveret fra originalen 30. december 2013. (ubestemt)
- ↑ It's Alive: Bit-banking fuldhastigheds USB-vært til propellen: scanlime . Dato for adgang: 30. december 2013. Arkiveret fra originalen 30. december 2013. (ubestemt)
- ↑ Arkiveret kopi . Dato for adgang: 30. december 2013. Arkiveret fra originalen 31. december 2013. (ubestemt)
- ↑ Universal Breakout Board - VGA . Dato for adgang: 1. januar 2014. Arkiveret fra originalen 17. april 2014. (ubestemt)
- ↑ Mike Szczys . Bit banging VGA fra en SD-kortplads (10. maj 2011). Arkiveret fra originalen den 2. januar 2014. Hentet 1. januar 2014.
Links