Bit-çarpması, bir cihazdan çıkan veya bir cihaza giren sinyallerin donanımdan ziyade yazılım tarafından üretildiğini / örneklendiğini gösterir. Açıkçası, bazı donanımlar gereklidir, ancak bit-banging kullanılırken, her çıktı için tek donanım açıkça yazılım tarafından ayarlanabilen veya silinebilen bir mandaldır ve her giriş için tek donanım, yazılımın olup olmadığını test etmesine izin verecek bir arayüzdür. yüksek veya düşük (ve genellikle bir durum için diğerini değil koşullu bir dalı uygular).
Bit çarpması ile elde edilebilecek maksimum hız genellikle amaca yönelik donanım ile elde edilebileceklerin bir kısmı olacaktır, ancak işlemci hızının getirdiği sınırlamalar dışında, bit çarpması çok daha yönlüdür ve durumlarda kullanılabilir Genel amaçlı donanımın çok uygun olmadığı ve özel amaçlı donanımın uygun maliyetli olmadığı durumlarda.
Örneğin, birçok kontrol cihazında esasen aşağıdaki gibi davranan bir "SPI tarzı" bağlantı noktası bulunur: belirli bir sicile bir bayt yazıldığında, donanım, bir veri bitini zaman aşımına uğratan bir miktar saat atımı (tipik olarak sekiz) üretecektir. Her saat darbesinin ön kenarı ve sondaki kenardan gelen bir veri bitini örnekleme. Genel olarak, denetleyicilerin SPI tarzı bağlantı noktaları çeşitli özelliklerin yapılandırılmasını sağlar, ancak bazı durumlarda bir işlemciyi olağandışı bir şey yapan bir cihazla arabirim oluşturmak gerekebilir. Bir cihaz, veri bitlerinin sekiz haricindeki katlarda işlenmesini gerektirebilir veya verinin aynı saat kenarında hem çıktısını almasını hem de örneklenmesini gerektirebilir veya olağan dışı bir gereksinime sahip olabilir. Kumandadaki bir donanımın kullandığı donanım, birinin kesin gereksinimlerini destekleyebilirse, great (bazıları yapılandırılabilir sayıda bit, ayrı ayrı konfigüre edilebilir aktarım ve zamanlama vb. sağlar). Değilse, bit-vuruş yardımcı olabilir. Denetleyiciye bağlı olarak, bir SPI-ish arabiriminin bit-bitmesi, genellikle donanımın ele almasına izin verdiği sürece 2-10 kat alır, ancak gereksinimler donanıma uygun değilse, veri alışverişinin daha yavaş yapılması daha iyi olabilir. hiç yapamamak.
Bit-çarptılmış tasarımlarla dikkat edilmesi gereken önemli bir nokta, iletişim kurulan cihazların tüm zamanlamalarını oluşturmak için bit-çarpma kontrolöründe beklediği veya kontrolörün izin vereceği yerde olması gereken durumlarda en basit ve en sağlam olmalarıdır. dikkatin dağılmadan, bir etkinliğin gerçekleşmesi için beklemek, başka bir etkinlik gerçekleşmeden önce, bu etkinlikle yapması gereken her şeyi yapabileceği yeri beklemek. Bir cihazın nispeten kısa bir zaman dilimi içinde dış uyaranlara tepki vermesi gerekebileceği durumlarda çok daha az dayanıklıdır, ancak bu uyaranları izlemek için enerjisinin% 100'ünü uygulayamaz.
Örneğin, bir işlemcinin, saat hızına göre çok yüksek bir hızda seri olarak UART tarzı verileri seri olarak iletmesini istediğini varsayalım (örneğin, saniyede 8,192 komut çalıştıran bir PIC 1200 bps'de veri vermek istiyor). Kesinti etkin değilse, bu aktarım zor değildir (her yedi komut işleminde bir bit saat). Bir PIC, gelen bir 1200bps veri baytını beklemekten başka bir şey yapmıyorsa, başlangıç bitini bekleyen 3-döngülü bir döngüyü yürütebilir ve ardından yedi-döngü aralıklarında verilerde zamana geçebilir. Aslında, eğer bir PIC gelen bir veri baytı geldiğinde göndermeye hazır bir veri baytına sahipse, bit başına yedi döngü PIC'nin gelen baytı okumakla aynı anda veri baytını göndermesi için yeterli bir zaman olacaktır. Aynı şekilde,eğer böyle bir cevap orijinal iletime göre sabit zamanlamaya sahipse . Öte yandan, bit-bang iletişimini hızlandıran PIC'lerin her iki cihazın da uygun gördüğü herhangi bir zamanda iletilmesine izin verecek şekilde (bu göründüğünde iletebilecek bir cihazın olmasına karşı) izin verilecek şekilde idare edilemezdi. sığdırmak ve ne zaman iletmek istemediysen onu yap, ve zamanının çoğunu ilk cihazdan iletimi beklemek dışında hiçbir şey yapmadan geçirmek zorunda kalacak bir cihaz).