Bouchání bitů - Bit banging
![]() | tento článek potřebuje další citace pro ověření.Červenec 2014) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
v počítačové inženýrství a elektrotechnika, trochu bouchání je slang pro jakoukoli metodu přenos dat která využívá software jako náhradu za vyhrazený hardware pro generování přenášených signálů nebo zpracování přijatých signálů. Software přímo nastavuje a Vzorky státy GPIO (např. kolíky na a mikrokontrolér ) a je odpovědný za splnění všech požadavků na časování a postupnost protokolů signálů. Na rozdíl od bitování bitů, vyhrazený hardware (např. UART, SPI rozhraní ) splňuje tyto požadavky a v případě potřeby poskytuje a vyrovnávací paměť dat uvolnit požadavky na načasování softwaru. Bitování bitů lze implementovat za velmi nízkou cenu a běžně se používá v vestavěné systémy.[1]
Bitování bitů umožňuje zařízení implementovat různé protokoly s minimálními nebo žádnými změnami hardwaru. V některých případech je bitové bitování proveditelné novějšími a rychlejšími procesory, protože novější hardware funguje mnohem rychleji než hardware při vytváření standardních komunikačních protokolů.
Příklad kódu C.
Následující Jazyk C. příklad kódu přenáší bajt dat na SPI autobus.
// vysílat bajt sériově, nejprve MSBprázdnota send_8bit_serial_data(nepodepsaný char data){ int i; // vybrat zařízení (aktivní nízká) output_low(SD_CS); // odeslání bitů 7..0 pro (i = 0; i < 8; i++) { // zvažte bit zcela vlevo // nastavit linku vysoko, pokud je bit 1, nízkou, pokud je bit 0 -li (data & 0x80) output_high(SD_DI); jiný výstup_low(SD_DI); // pulsuje stav hodin, což znamená, že by měla být načtena bitová hodnota výstup_low(SD_CLK); zpoždění(); output_high(SD_CLK); // posunout bajt doleva, takže další bit bude úplně vlevo data <<= 1; } // zrušit výběr zařízení output_high(SD_CS);}
Úvahy
Otázka, zda nasadit bitové bitování či nikoli, je kompromisem mezi zátěží, výkonem a spolehlivostí na jedné straně a dostupností hardwarové alternativy na straně druhé. Proces softwarové emulace spotřebovává více výpočetního výkonu než podpora vyhrazeného hardwaru. Mikrokontrolér tráví většinu času odesíláním nebo přijímáním vzorků do a z kolíků na úkor jiných úkolů. Produkovaný signál má obvykle více chvění nebo závady, zvláště pokud procesor během komunikace provádí i jiné úkoly. Pokud je však bit-bitovací software přerušit - poháněno signálem, může to mít menší význam, zvláště pokud jsou řídicí signály jako RTS, CTS nebo DCD jsou dostupné. Implementace v softwaru může být řešením, když není k dispozici podpora konkrétního hardwaru nebo vyžaduje dražší mikrokontrolér.
Viz také
- Manipulace s bitem
- Bitový proud
- Bit twiddler (disambiguation)
- Bitová sériová architektura
- 1bitová architektura
- Integrovaný stroj Woz (IWM)
- FTDI, řada USB na sériové převodní čipy podporující také režim bit bang
- 2MGUI (ovladač DOS od Ciriaco García de Celis využívající bitování bitů k podpoře nestandardních formátů disket s ultravysokou kapacitou diskety "obcházející" normální logiku řadiče disket, podobný program pro diskety Amiga je Disk2FDI od Vincent Joguin)
- Virtuální stroj (VM) (implementace ovladačů virtuálních zařízení emulujících skutečné hardwarové řadiče někdy zahrnuje využití programovacích technik podobných bitování bitů)
- Softwarově definované rádio (SDR)
- Polling (počítačová věda)
Reference
- ^ Predko, Michael (2000). Programování a přizpůsobení mikrokontrolérů PICmicro (2. vyd.). McGraw-Hill Professional. str.10 –12. ISBN 978-0-07-136172-9.
externí odkazy
- Asynchronní sériové (RS-232)
- Poznámky k bit-asijskému asynchronnímu seriálu
- Bitování bitů pro asynchronní sériovou komunikaci
- Bitování bitů pro RS-232
- I²C autobus
- SPI autobus