Bit-banging หมายถึงแนวคิดของการมีสัญญาณที่ออกไปหรือเข้าสู่อุปกรณ์ที่ถูกสร้าง / สุ่มตัวอย่างโดยซอฟต์แวร์มากกว่าฮาร์ดแวร์ เห็นได้ชัดว่าจำเป็นต้องใช้ฮาร์ดแวร์บางตัว แต่เมื่อใช้การกระแทกบิตฮาร์ดแวร์เพียงตัวเดียวสำหรับแต่ละเอาต์พุตคือสลักที่สามารถกำหนดหรือล้างได้อย่างชัดเจนโดยซอฟต์แวร์และฮาร์ดแวร์เฉพาะสำหรับอินพุตแต่ละตัวคืออินเทอร์เฟซเพื่อให้ซอฟต์แวร์ทดสอบว่าเป็นหรือไม่ สูงหรือต่ำ (และโดยทั่วไปแล้วจะดำเนินการสาขาที่มีเงื่อนไขสำหรับหนึ่งรัฐ แต่ไม่ใช่สาขาอื่น)
ความเร็วสูงสุดที่สามารถทำได้ด้วยการกัดบิตโดยทั่วไปจะเป็นเพียงเสี้ยวหนึ่งของสิ่งที่สามารถทำได้ด้วยฮาร์ดแวร์ที่สร้างขึ้นตามวัตถุประสงค์ แต่นอกเหนือจากข้อ จำกัด ที่กำหนดโดยความเร็วของโปรเซสเซอร์การกัดบิตนั้นมีความหลากหลายมากกว่าและอาจใช้ในสถานการณ์ ในกรณีที่ฮาร์ดแวร์ที่ใช้งานทั่วไปไม่เหมาะสมและฮาร์ดแวร์ที่มีวัตถุประสงค์พิเศษจะไม่คุ้มค่า
ตัวอย่างเช่นตัวควบคุมหลายตัวมีพอร์ต "SPI-style" ซึ่งทำงานเป็นหลักดังต่อไปนี้: เมื่อไบต์ถูกเขียนไปยังรีจิสเตอร์ที่แน่นอนฮาร์ดแวร์จะสร้างพัลส์สัญญาณนาฬิกาจำนวนหนึ่ง ขอบนำของพัลส์นาฬิกาแต่ละครั้งและสุ่มบิตข้อมูลขาเข้าบนขอบต่อท้าย โดยทั่วไปแล้วพอร์ตสไตล์ SPI ของคอนโทรลเลอร์จะช่วยให้สามารถกำหนดค่าคุณสมบัติได้หลากหลาย แต่ในบางกรณีอาจจำเป็นต้องเชื่อมต่อโปรเซสเซอร์กับอุปกรณ์ซึ่งทำสิ่งผิดปกติ อุปกรณ์อาจต้องการให้บิตข้อมูลประมวลผลเป็นทวีคูณนอกเหนือจากแปดหรืออาจต้องการข้อมูลนั้นทั้งเอาต์พุตและตัวอย่างบนขอบนาฬิกาเดียวกันหรืออาจมีข้อกำหนดอื่นที่ผิดปกติ หากฮาร์ดแวร์ตัวใดตัวหนึ่งในคอนโทรลเลอร์ใช้รองรับความต้องการที่แม่นยำ ดีมาก (บางแห่งมีจำนวนบิตที่กำหนดค่าได้การส่งและรับเวลาที่กำหนดแยกต่างหาก ฯลฯ ) หากไม่การใช้บิตการชนอาจมีประโยชน์ ขึ้นอยู่กับตัวควบคุมบิตกระแทกอินเทอร์เฟซ SPI-ish มักจะใช้เวลา 2-10 ครั้งตราบเท่าที่ปล่อยให้ฮาร์ดแวร์จัดการกับมัน แต่ถ้าข้อกำหนดไม่พอดีกับฮาร์ดแวร์ที่มีการแลกเปลี่ยนข้อมูลช้ากว่าอาจจะดีกว่า ไม่สามารถทำได้เลย
สิ่งหนึ่งที่สำคัญที่ต้องทราบด้วยการออกแบบบิตกระแทกคือมันเป็นสิ่งที่ง่ายที่สุดและแข็งแกร่งที่สุดในสถานการณ์ที่อุปกรณ์สื่อสารได้รับการรอคอยอยู่บนตัวควบคุมบิตกระแทกเพื่อสร้างเวลาของพวกเขาหรือที่ตัวควบคุมจะได้รับอนุญาต รอโดยไม่มีการรบกวนสำหรับเหตุการณ์ที่จะมาถึงและที่ที่จะสามารถทำทุกอย่างที่จำเป็นต้องทำกับเหตุการณ์นั้นก่อนที่กิจกรรมอื่น ๆ มาถึงที่จำเป็นต้องดำเนินการ อุปกรณ์เหล่านี้มีความแข็งแกร่งน้อยกว่ามากในสถานการณ์ที่อุปกรณ์จะต้องสามารถตอบสนองต่อสิ่งเร้าภายนอกภายในระยะเวลาอันสั้น แต่ไม่สามารถใช้อุปกรณ์ 100% ของพลังงานในการรับชมสิ่งเร้าดังกล่าว
ตัวอย่างเช่นสมมติว่าหนึ่งต้องการให้ตัวประมวลผลส่งข้อมูลสไตล์ UART ในอัตราที่สูงมากเมื่อเทียบกับความเร็วสัญญาณนาฬิกาของมัน (เช่น PIC ซึ่งกำลังรัน 8,192 คำสั่งต่อวินาทีที่ต้องการส่งออกข้อมูลที่ 1200 bps) หากไม่มีการขัดจังหวะการเปิดใช้งานการส่งสัญญาณดังกล่าวก็ไม่ยาก (นาฬิกาหนึ่งบิตทุก ๆ เจ็ดรอบคำสั่ง) หาก PIC ไม่ทำอะไรเลยนอกจากกำลังรอข้อมูลไบต์ 1200bps ที่เข้ามาก็สามารถดำเนินการวนรอบ 3 รอบเพื่อรอบิตเริ่มต้นจากนั้นดำเนินการนาฬิกาในข้อมูลในช่วงเวลาเจ็ดรอบ แน่นอนถ้า PIC มีไบต์ของข้อมูลพร้อมที่จะส่งเมื่อไบต์ขาเข้าของข้อมูลมาถึงเจ็ดรอบต่อบิตจะมีเวลาเพียงพอสำหรับ PIC ที่จะส่งไบต์ของข้อมูลพร้อมกันกับการอ่านไบต์ขาเข้า ในทำนองเดียวกันถ้าตอบกลับดังกล่าวจะมีการแก้ไขระยะเวลาที่สัมพันธ์กับการส่งต้นฉบับ ในทางตรงกันข้ามจะไม่มีทางที่ PICs จะจัดการความเร็วในการสื่อสารบิต - บอมในลักษณะที่อุปกรณ์ทั้งสองได้รับอนุญาตให้ส่งสัญญาณได้ตลอดเวลาที่เห็นสมควร (เมื่อเทียบกับการมีอุปกรณ์หนึ่งที่สามารถส่งสัญญาณเมื่อเห็น พอดีและทำสิ่งที่มันชอบเมื่อไม่ส่งสัญญาณและอุปกรณ์หนึ่งซึ่งจะต้องใช้เวลาส่วนใหญ่ในการทำอะไร แต่รอการส่งสัญญาณจากอุปกรณ์แรก)