बिट बैंगिंग: Difference between revisions
(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: | ||
{{Confuse|बिट ट्वीड्लिंग }} | |||
{{Confuse| | |||
बिट बैंगिंग | [[कंप्यूटर इंजीनियरिंग]] और [[ विद्युत अभियन्त्रण |विद्युत अभियन्त्रण]] में, बिट बैंगिंग एक "कला का शब्द" है जो किसी भी [[डेटा ट्रांसमिशन|डेटा प्रसारण]] की विधि के लिए उपयोग की जाती है जिसमें सॉफ़्टवेयर विशेष हार्डवेयर के स्थान पर प्रेषित संकेतों को उत्पन्न करने या प्राप्त संकेतों को प्रोसेस करने के लिए उपयोग करता है। सॉफ्टवेयर सीधे [[जीपीआईओ]] (जैसे, एक [[ 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 | {{see also|I%C2%B2C#Example of bit-banging the I%C2%B2C master protocol|l1=I²C बस प्रोटोकॉल}} | ||
{{see also| | {{see also|सीरियल पेरिफेरल इंटरफ़ेस # बिट-बैंगिंग मास्टर प्रोटोकॉल का उदाहरण|l1=एसपीआई बस - एक साथ एक बाइट संचारित और प्राप्त करती है}} | ||
निम्नलिखित [[सी (प्रोग्रामिंग भाषा)]] कोड उदाहरण एक [[सीरियल पेरिफेरल इंटरफेस बस]] | निम्नलिखित [[सी (प्रोग्रामिंग भाषा)]] कोड उदाहरण एक [[सीरियल पेरिफेरल इंटरफेस बस]] पर डेटा का एक बाइट प्रसारित करता है। | ||
<syntaxhighlight lang="C"> | <syntaxhighlight lang="C"> | ||
Line 48: | Line 46: | ||
== विचार == | == विचार == | ||
बिट बैंगिंग का उपयोग करने या न करने का सवाल एक वजन, प्रदर्शन और विश्वसनीयता के बीच एक बदले हुए निर्णय है, और दूसरी ओर हार्डवेयर विकल्प की उपलब्धता पर निर्भर करता है। सॉफ़्टवेयर उत्पन्नित करने की प्रक्रिया, विशेष हार्डवेयर के समर्थन की समानता में, अधिक प्रोसेसिंग पावर का उपयोग करती है। माइक्रोकंट्रोलर अपना अधिकांश समय अन्य कार्यों की मूल्य पर, पिनों को और उनसे नमूने भेजने या प्राप्त करने में व्यतीत करता है। उत्पादित सिग्नल में सामान्यतः अधिक घबराहट या [[गड़बड़]]यां होती हैं, विशेषकर यदि प्रोसेसर संचार करते समय अन्य कार्यों को भी निष्पादित कर रहा हो। चूँकि , यदि बिट-बैंगिंग सॉफ़्टवेयर सिग्नल द्वारा बाधित-चालित है, तो यह सामान्य महत्व का हो सकता है, विशेष रूप से यदि 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: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-बिट आर्किटेक्चर
- तेज लोडर
- एकीकृत Woz मशीन (IWM)
- FTDI, USB से सीरियल कन्वर्टर चिप्स की एक श्रृंखला भी बिट बैंग मोड का समर्थन करती है
- 2MGUI (सिरियाको गार्सिया डी सेलिस द्वारा एक डॉस ड्राइवर सामान्य फ्लॉपी नियंत्रक तर्क को दरकिनार करते हुए गैर-मानक अल्ट्रा-उच्च क्षमता वाले फ्लॉपी डिस्क प्रारूपों का समर्थन करने के लिए बिट-बैंगिंग का उपयोग करता है, अमिगा फ्लॉपी के लिए एक समान कार्यक्रम विन्सेंट जोगुइन का डिस्क2एफडीआई है)
- आभासी मशीन (वीएम) (वास्तविक हार्डवेयर नियंत्रकों का अनुकरण करने वाले वर्चुअल डिवाइस ड्राइवरों को लागू करने में कभी-कभी बिट बैंगिंग जैसी प्रोग्रामिंग तकनीकों का उपयोग करना सम्मलित होता है)
- सॉफ्टवेयर-परिभाषित रेडियो (एसडीआर)
- मतदान (कंप्यूटर विज्ञान)
संदर्भ
- ↑ 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