Bouchání bitů - Bit banging

V počítačové techniky a elektrotechniky , bit bušení je výraz pro jakýkoli způsob přenosu dat , která využívá software jako náhrada za vyhrazeného hardwaru pro generování vysílaných signálů nebo proces pro přijímané signály. Software přímo nastavuje a vzorkuje stavy GPIO (např. Piny na mikrokontroléru ) a je odpovědný za splnění všech požadavků na časování a postupnosti protokolů signálů. Na rozdíl od bitování bitů, vyhrazený hardware (např. UART , rozhraní SPI ) splňuje tyto požadavky a v případě potřeby poskytuje datovou vyrovnávací paměť, která uvolňuje požadavky na časování softwaru. Bitování bitů lze implementovat za velmi nízké náklady a běžně se používá ve vestavěných systémech .

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í příklad kódu jazyka C přenáší bajt dat na sběrnici SPI .

// transmit byte serially, MSB first
void send_8bit_serial_data(unsigned char data)
{
   int i;

   // select device (active low)
   output_low(SD_CS);

   // send bits 7..0
   for (i = 0; i < 8; i++)
   {
       // consider leftmost bit
       // set line high if bit is 1, low if bit is 0
       if (data & 0x80)
           output_high(SD_DI);
       else
           output_low(SD_DI);

       // pulse the clock state to indicate that bit value should be read
       output_low(SD_CLK);
       delay();
       output_high(SD_CLK);

       // shift byte left so next bit will be leftmost
       data <<= 1;
   }

   // deselect device
   output_high(SD_CS);
}

Úvahy

Otázka, zda nasadit bitové bitování či nikoli, je kompromis 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ávad , zvláště pokud procesor během komunikace provádí i jiné úkoly. Pokud je však software pro bitování bitů přerušován signálem, může to mít menší význam, zvláště pokud jsou k dispozici řídicí signály, jako jsou RTS, CTS nebo DCD . 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é

Reference

externí odkazy

Asynchronní sériové (RS-232)
I²C autobus
SPI autobus