1-तार डिवाइस का अनुकरण करना


10

मैं जो करना चाहता हूं वह बना रहा हूं एटीटी आईसी 1-तार बस पर दास बन जाता है, अपने विशिष्ट कार्यों के लिए एस / एन और कमांड सूची के साथ।

अगर मैं जानना चाहता हूं कि क्या मैं एक गुलाम के रूप में डेटा भेजने के लिए arduino साइट से एक वायर लाइब्रेरी का उपयोग कर सकता हूं ।

उदाहरण के लिए, आपके पास कई प्रकार के सेंसर के साथ एक कमरे में एक दास हो सकता है जो अनुरोध की गई जानकारी पर मास्टर को रिपोर्ट करेगा, या मास्टर इसे अंधा जैसे कुछ को नियंत्रित करने के लिए कह सकता है।

प्रश्न क्या मुझे बस लाइन की निगरानी करनी होगी और मास्टर से अनुरोध का जवाब देना होगा और यह भी ध्यान रखना चाहिए कि एक सामान्य सेंसर डेटा भेजेगा? मुझे सबसे अच्छी कार्यक्षमता प्राप्त करने के लिए दास को किस आवृत्ति पर चलाना चाहिए?

मैं नोट के रूप में परजीवी शक्ति का उपयोग नहीं करूंगा।



@ गेरबेन - मैंने खोज से पहले पाया था। इसके माध्यम से स्किम्ड। लेकिन मैं चिंतित था क्योंकि कुछ त्रुटियां थीं, हालांकि हल किया गया था, मुझे विश्वसनीयता नहीं पता है। इसके अलावा कस्टम दासों का उपयोग करके दुश्मन के डिजाइन एक आम बात की तरह प्रतीत नहीं होते, इसलिए ऊपर प्रश्न।
आरएसएम

ऐसा लगता है कि पुस्तकालय इसका समर्थन करता है। यहाँ एक पुस्तकालय विशेष रूप से इसके लिए है जो मुझे लगता है। गति लगभग 15kbps लगती है। मुझे लगता है कि सीपीयू की गति वास्तव में मायने नहीं रखती है, लेकिन यह पुस्तकालय पर निर्भर करता है। यदि यह बैटरी चालित नहीं है, तो बस इसे 8mhz या 16mhz पर चलाएं, और यह ठीक होना चाहिए।
गेरबेन

@ गेरबेन मैं लाइब्रेरी का परीक्षण करूंगा कि यह कैसे चलता है। एक चीज जो मुझे अभी भी नहीं मिली है, वह यह है कि कुछ चीजों के लिए एक तार दास का उपयोग न करना इतना असामान्य क्यों है?
RSM

@ आरएसएम आपको इस लाइब्रेरी की जांच करनी चाहिए github.com/MarkusLange/OneWireSlave
Ryu_hayabusa

जवाबों:


3

जहाँ तक मुझे पता है, आपके प्रश्न में जुड़ा 1-तार पुस्तकालय केवल एक स्वामी के रूप में कार्य करने की अनुमति देता है, दास नहीं।

मैंने अभी-अभी एक Arduino बोर्ड को 1-वायर स्लेव में बदलने के लिए एक लाइब्रेरी जारी की है, यहाँ: https://github.com/neuoy/OneWireArduinoSlave (संपादित करें: यहाँ स्थानांतरित किया गया https://gitea.youb.fr/yen/OneWireArduinoSlave )। मैं इसे अपने कस्टम होम ऑटोमेशन सिस्टम में उपयोग करता हूं, और यह मेरे सेटअप (1-वायर मास्टर, एक DS9490R, USB के माध्यम से एक लैपटॉप से ​​जुड़ा है, और अरडिनो, जो एक Arduino Uno है) को भी शक्ति प्रदान करता है। लाइब्रेरी निम्न स्तर के विवरणों को संभालती है: मेल खाती है, बाइट भेजती है और प्राप्त करती है (जो वास्तव में सही पाने के लिए काफी कठिन है, ज्यादातर तर्क विश्लेषण के बिना असंभव है)। बाकी आप पर निर्भर करता है।

यह पूरी तरह से व्यवधानों के साथ लागू किया जाता है, सभी संचार पृष्ठभूमि में किए जाते हैं, आप अन्य कोड को सामान्य रूप से, समानांतर में निष्पादित कर सकते हैं, और कॉलबैक द्वारा अधिसूचित किए जाते हैं जब बाइट प्राप्त होते हैं आदि। मास्टर को बाइट भेजना भी अतुल्यकालिक है।

मुझे यह भी पता है कि कम से कम एक अन्य पुस्तकालय मौजूद है, https://github.com/MarkusLange/OneWireSlave , जैसा कि ऊपर Ryu_hayabusa द्वारा टिप्पणी की गई है। यह मेरे लिए काम नहीं करता था (यदि यह मेरे हार्डवेयर सेटअप के कारण या किसी अन्य कारण से नहीं पता है), लेकिन यह निश्चित रूप से दूसरों के लिए काम करता है, इसलिए एक कोशिश के लायक भी है। ऐसा लगता है कि यह पुस्तकालय व्यवधान के साथ लागू नहीं किया गया है, इसलिए मास्टर गतिविधि की प्रतीक्षा करते समय आपका कार्यक्रम अवरुद्ध है (जो कि बहुत सारे परिदृश्यों में पूरी तरह से स्वीकार्य है)।


रिपॉजिटरी लगता है कि gitea.youb.fr/youen/OneWireArduinoSlave में
जोनास बर्लिन

1
@JonasBerlin वास्तव में, मैंने रिपॉजिटरी को स्थानांतरित कर दिया है (बस उसी को प्रतिबिंबित करने के लिए उत्तर संपादित किया है)। मैं पुराने लिंक को केवल एक बैकअप के रूप में छोड़ देता हूं, और अन्य लोगों के लिए GitHub पर कांटे खोजने के लिए एक संदर्भ के रूप में।
13

क्या मुद्दों की नकल की जानी चाहिए?
जोनास बर्लिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.