बिट बैंगिंग

From Vigyanwiki

कंप्यूटर इंजीनियरिंग और विद्युत अभियन्त्रण में, बिट बैंगिंग एक "कला का शब्द" है जो किसी भी डेटा प्रसारण की विधि के लिए उपयोग की जाती है जिसमें सॉफ़्टवेयर विशेष हार्डवेयर के स्थान पर प्रेषित संकेतों को उत्पन्न करने या प्राप्त संकेतों को प्रोसेस करने के लिए उपयोग करता है। सॉफ्टवेयर सीधे जीपीआईओ (जैसे, एक माइक्रोकंट्रोलर पर पिन) के स्थितियों को सेट और नमूनाकरण (सिग्नल प्रोसेसिंग) करता है, और संकेतों के सभी टाइमिंग आवश्यकताओं और प्रोटोकॉल क्रमबद्धता का जिम्मा सॉफ़्टवेयर को होता है। बिट बैंगिंग के विपरीत, समर्पित हार्डवेयर (जैसे, UART, क्रमानुसार बाह्य इंटरफ़ेस, I²C) इन आवश्यकताओं को पूरा करता है और, यदि आवश्यक हो, तो सॉफ़्टवेयर समय की आवश्यकताओं को शिथिल करने के लिए डेटा बफर प्रदान करता है। बिट बैंगिंग को बहुत कम लागत पर लागू किया जा सकता है, और सामान्यतः कुछ अंतः स्थापित प्रणालियाँ में इसका उपयोग किया जाता है।[1]

बिट बैंगिंग एक उपकरण को न्यूनतम या कोई हार्डवेयर परिवर्तन के साथ विभिन्न प्रोटोकॉल को लागू करने की अनुमति देता है। कुछ स्थितियों में, नए, तेज़ प्रोसेसर्स द्वारा बिट बैंगिंग को संभव बनाया जाता है क्योंकि नवीनतम हार्डवेयर आपसी संचार प्रोटोकॉलों को बनाए जाने के समय की हार्डवेयर की समानता में बहुत तेज़ी से काम करता है।

सी कोड उदाहरण

निम्नलिखित सी (प्रोग्रामिंग भाषा) कोड उदाहरण एक सीरियल पेरिफेरल इंटरफेस बस पर डेटा का एक बाइट प्रसारित करता है।

// 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);
}


विचार

बिट बैंगिंग का उपयोग करने या न करने का सवाल एक वजन, प्रदर्शन और विश्वसनीयता के बीच एक बदले हुए निर्णय है, और दूसरी ओर हार्डवेयर विकल्प की उपलब्धता पर निर्भर करता है। सॉफ़्टवेयर उत्पन्नित करने की प्रक्रिया, विशेष हार्डवेयर के समर्थन की समानता में, अधिक प्रोसेसिंग पावर का उपयोग करती है। माइक्रोकंट्रोलर अपना अधिकांश समय अन्य कार्यों की मूल्य पर, पिनों को और उनसे नमूने भेजने या प्राप्त करने में व्यतीत करता है। उत्पादित सिग्नल में सामान्यतः अधिक घबराहट या गड़बड़यां होती हैं, विशेषकर यदि प्रोसेसर संचार करते समय अन्य कार्यों को भी निष्पादित कर रहा हो। चूँकि , यदि बिट-बैंगिंग सॉफ़्टवेयर सिग्नल द्वारा बाधित-चालित है, तो यह सामान्य महत्व का हो सकता है, विशेष रूप से यदि RTS, CTS या DCD डेटा वाहक का पता लगाना जैसे नियंत्रण संकेत उपलब्ध हैं। विशिष्ट हार्डवेयर समर्थन उपलब्ध नहीं होने या अधिक महंगे माइक्रोकंट्रोलर की आवश्यकता होने पर सॉफ़्टवेयर में कार्यान्वयन एक समाधान हो सकता है।

यह भी देखें

संदर्भ

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


बाहरी संबंध

Asynchronous serial (RS-232)
I²C bus
SPI bus