تقسيم البت

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث

ضرب البت أو تقسيم البت (بالإنجليزية: Bit Banging)عبارة عن تقنية في التواصل التسلسلي Serial Communication تستخدم البرمجيات Software بدلا عن عتاد مستقل. حيث يقوم البرنامج بتجميع و أخذ عينات Samples عن حالة إبر التوصيل Pins على المتحكم المصغر Microcontroller, ويكون مسؤولاً عن كل بارامترات الإشارة: التوقيت, المستويات, التزامن, ..إلخ.

على عكس البرمجيات, يعالج العتاد المستقل ( كالمودم, UART, أو مسجلات الإزاحة) هذه البارامترات و توفر واجهة بيانات (مع تخزين buffering) في أنظمة أخرى, لذا فليست هناك ضرورة لتعديل الإشارة عن طرق البرمجيات. يتميز Bit Banging بسهولة تطبيقه بكلفة رخيصة جدا, ويتم استخدامه على سبيل المثال في الأنظمة المضمنة Embedded Systems.

على الرغم من اعتباره hack, إلا أنه يسمح باستخدام عدة بروتوكولات مختلفة على نفس الجهاز بدون أي تعديلات على العتاد المستخدم في أغلب الأحيان.

يوجد بعض المشاكل في استخدام bit banging, حيث تستهلك البرمجيات التي تقوم بالعملية مواد معالجة أكثر من العتاد المستقل. حيث يمضي المتحكم المصغر أغلب وقته بقراءة وإرسال العينات من و عن طريق إبر توصيله Pin, مستهلكا من وقت العمليات الأخرى. كما أنّ الإشارة المولدة عن طريقه لديها عادة jitter or glitches أكثر, خاصة إذا كان المعالج يقوم بمعالجة مهام أخرى غير التواصل. لكن في حال تم تطبيق برنامج bit-banging بأسلوب معالجة المقاطعات interrupt-driven, لا تعد هذه المشاكل ذات أهمية, خصوصاً إذا توفرت إشارات التحكم مثل RTS, CTS أو DCD.

مثال بلغة C[عدل]

 // transmit byte serially, MSB first
 void send_8bit_serial_data(unsigned char data)
 {
 	int i;
 	// select device
 	output_high(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 clock to indicate that bit value should be read
 		output_low(SD_CLK);
 		output_high(SD_CLK);
 		// shift byte left so next bit will be leftmost
 		data <<= 1;
 } 
 //  deselect device
 output_low(SD_CS);
 }

شاهد أيضا[عدل]

• تعديل البت bit

المراجع[عدل]

1. Michael Predko (2000). Programming and customizing PICmicro microcontrollers (2nd ed.). McGraw-Hill Professional. pp. 10–12. ISBN 978-0-07-136172-9.

روابط خارجية[عدل]

نقل تسلسلي غير متزامن Asynchronous Serial (RS-232)•