बिट बैंगिंग: Difference between revisions

From Vigyanwiki
(Created page with "{{ref improve|date=July 2014}} {{Confuse|Bit twiddling}} {{Use dmy dates|date=December 2021|cs1-dates=y}} {{Use list-defined references|date=December 2021}} कंप्य...")
 
No edit summary
 
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{ref improve|date=July 2014}}
{{Confuse|बिट  ट्वीड्लिंग }}
{{Confuse|Bit twiddling}}
{{Use dmy dates|date=December 2021|cs1-dates=y}}
{{Use list-defined references|date=December 2021}}
[[कंप्यूटर इंजीनियरिंग]] और [[ विद्युत अभियन्त्रण ]] में, बिट बैंगिंग [[डेटा ट्रांसमिशन]] के किसी भी तरीके के लिए कला का एक शब्द है जो प्रेषित सिग्नल उत्पन्न करने या सिग्नल प्राप्त करने के लिए समर्पित हार्डवेयर के विकल्प के रूप में सॉफ़्टवेयर को नियोजित करता है। सॉफ्टवेयर सीधे [[जीपीआईओ]] (जैसे, एक [[ microcontroller ]] पर पिन) के राज्यों को सेट और [[ नमूनाकरण (सिग्नल प्रोसेसिंग) ]] करता है, और सिग्नल की सभी समय आवश्यकताओं और प्रोटोकॉल अनुक्रमण को पूरा करने के लिए जिम्मेदार है। बिट बैंगिंग के विपरीत, समर्पित हार्डवेयर (जैसे, [[UART]], [[क्रमानुसार बाह्य इंटरफ़ेस]], I²C) इन आवश्यकताओं को पूरा करता है और, यदि आवश्यक हो, तो सॉफ़्टवेयर समय की आवश्यकताओं को शिथिल करने के लिए [[डेटा बफर]] प्रदान करता है। बिट बैंगिंग को बहुत कम लागत पर लागू किया जा सकता है, और आमतौर पर कुछ [[ अंतः स्थापित प्रणालियाँ ]] में इसका उपयोग किया जाता है।<ref name="Predko_2000"/>


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


== सी कोड उदाहरण ==
== सी कोड उदाहरण ==
{{see also|I%C2%B2C#Example of bit-banging the I%C2%B2C master protocol|l1=I²C bus protocol}}
{{see also|I%C2%B2C#Example of bit-banging the I%C2%B2C master protocol|l1=I²C बस  प्रोटोकॉल}}
{{see also|Serial Peripheral Interface#Example of bit-banging the master protocol|l1=SPI bus - simultaneously transmit and receive a byte}}
{{see also|सीरियल पेरिफेरल इंटरफ़ेस # बिट-बैंगिंग मास्टर प्रोटोकॉल का उदाहरण|l1=एसपीआई बस - एक साथ एक बाइट संचारित और प्राप्त करती है}}


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


<syntaxhighlight lang="C">
<syntaxhighlight lang="C">
Line 48: Line 46:


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


== यह भी देखें ==
== यह भी देखें ==
Line 60: Line 58:
* [[FTDI]], USB से सीरियल कन्वर्टर चिप्स की एक श्रृंखला भी बिट बैंग मोड का समर्थन करती है
* [[FTDI]], USB से सीरियल कन्वर्टर चिप्स की एक श्रृंखला भी बिट बैंग मोड का समर्थन करती है
* [[2MGUI]] (सिरियाको गार्सिया डी सेलिस द्वारा एक डॉस ड्राइवर सामान्य फ्लॉपी नियंत्रक तर्क को दरकिनार करते हुए गैर-मानक अल्ट्रा-उच्च क्षमता वाले फ्लॉपी डिस्क प्रारूपों का समर्थन करने के लिए बिट-बैंगिंग का उपयोग करता है, अमिगा फ्लॉपी के लिए एक समान कार्यक्रम विन्सेंट जोगुइन का डिस्क2एफडीआई है)
* [[2MGUI]] (सिरियाको गार्सिया डी सेलिस द्वारा एक डॉस ड्राइवर सामान्य फ्लॉपी नियंत्रक तर्क को दरकिनार करते हुए गैर-मानक अल्ट्रा-उच्च क्षमता वाले फ्लॉपी डिस्क प्रारूपों का समर्थन करने के लिए बिट-बैंगिंग का उपयोग करता है, अमिगा फ्लॉपी के लिए एक समान कार्यक्रम विन्सेंट जोगुइन का डिस्क2एफडीआई है)
* [[ आभासी मशीन ]] (वीएम) (वास्तविक हार्डवेयर नियंत्रकों का अनुकरण करने वाले वर्चुअल डिवाइस ड्राइवरों को लागू करने में कभी-कभी बिट बैंगिंग जैसी प्रोग्रामिंग तकनीकों का उपयोग करना शामिल होता है)
* [[ आभासी मशीन | आभासी मशीन]] (वीएम) (वास्तविक हार्डवेयर नियंत्रकों का अनुकरण करने वाले वर्चुअल डिवाइस ड्राइवरों को लागू करने में कभी-कभी बिट बैंगिंग जैसी प्रोग्रामिंग तकनीकों का उपयोग करना सम्मलित होता है)
* [[सॉफ्टवेयर-परिभाषित रेडियो]] (एसडीआर)
* [[सॉफ्टवेयर-परिभाषित रेडियो]] (एसडीआर)
* [[मतदान (कंप्यूटर विज्ञान)]]
* [[मतदान (कंप्यूटर विज्ञान)]]
Line 81: Line 79:
;SPI bus
;SPI bus
* [https://web.archive.org/web/20120823060749/http://www.maxim-ic.com/app-notes/index.mvp/id/3524 Efficient bit-banged SPI for 8051 microcontroller]
* [https://web.archive.org/web/20120823060749/http://www.maxim-ic.com/app-notes/index.mvp/id/3524 Efficient bit-banged SPI for 8051 microcontroller]
[[Category: डेटा ट्रांसमिशन]] [[Category: संकेत आगे बढ़ाना]] [[Category: डिजिटल सर्किट]] [[Category: अंतः स्थापित प्रणालियाँ]]


[[Category: Machine Translated Page]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:Created On 02/05/2023]]
[[Category:Created On 02/05/2023]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Templates Vigyan Ready]]
[[Category:अंतः स्थापित प्रणालियाँ]]
[[Category:डिजिटल सर्किट]]
[[Category:डेटा ट्रांसमिशन]]
[[Category:संकेत आगे बढ़ाना]]

Latest revision as of 16:26, 24 May 2023

कंप्यूटर इंजीनियरिंग और विद्युत अभियन्त्रण में, बिट बैंगिंग एक "कला का शब्द" है जो किसी भी डेटा प्रसारण की विधि के लिए उपयोग की जाती है जिसमें सॉफ़्टवेयर विशेष हार्डवेयर के स्थान पर प्रेषित संकेतों को उत्पन्न करने या प्राप्त संकेतों को प्रोसेस करने के लिए उपयोग करता है। सॉफ्टवेयर सीधे जीपीआईओ (जैसे, एक माइक्रोकंट्रोलर पर पिन) के स्थितियों को सेट और नमूनाकरण (सिग्नल प्रोसेसिंग) करता है, और संकेतों के सभी टाइमिंग आवश्यकताओं और प्रोटोकॉल क्रमबद्धता का जिम्मा सॉफ़्टवेयर को होता है। बिट बैंगिंग के विपरीत, समर्पित हार्डवेयर (जैसे, 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