IR प्रोटोकॉल को डिकोड करने के लिए या संकेत के साथ मदद करें


10

कुछ समय पहले मैं एक सरल और सस्ता थोड़ा आईआर नियंत्रित खिलौना हेलीकाप्टर खरीदा (के रूप में ही इस एक - यह "डायमंड Gyro" या "डायमंड फोर्स" कहा जाता है)। मज़े के लिए, मैं इसे एक Arduino के माध्यम से नियंत्रित करने के लिए देख रहा हूं।

अपडेट: समझ गए प्रोटोकॉल; उत्तर देखो

दूसरों ने पहले से ही एक अलग आईआर खिलौना हेलीकॉप्टर को हैक करने और इसके आईआर प्रोटोकॉल को डिकोड करने पर अपने परिणाम साझा किए हैं । वास्तव में अच्छा है, लेकिन दुर्भाग्य से मेरा हेलीकाप्टर एक अलग प्रोटोकॉल का उपयोग करता है। एक कि मैं काफी समझ नहीं सकता। (मुझे यह जोड़ना चाहिए कि इलेक्ट्रॉनिक्स मेरे लिए विशुद्ध रूप से कभी-कभी शौक है, इसलिए मैंने कुछ स्पष्ट अनदेखी की हो सकती है)।

ऊपर दिए गए 2 लिंक की तरह, मैंने नियंत्रक को अलग कर दिया, एल ई डी को नियंत्रित करने वाला आईसी पिन स्थित (आईसी के निशान मिटा दिए गए हैं, वैसे), और एक तर्क विश्लेषक को झुका दिया।

बहुत सारे अच्छे डेटा मिले, लेकिन मैं अभी भी प्रोटोकॉल का पता नहीं लगा सकता। यह साइट एक महान संसाधन है, लेकिन सूचीबद्ध कोई भी प्रोटोकॉल फिट नहीं है। और मैंने जो कुछ भी पाया है वह उस संकेत को फिट करने के लिए प्रतीत होता है जिसे मैंने या तो पकड़ लिया है। मुझे कल्पना करना है, हालांकि, यह एक सरल, ऑफ-द-शेल्फ प्रोटोकॉल है, केवल इसलिए कि यह एक सस्ता सा खिलौना है।

इसलिए मुझे आपके द्वारा दिए गए किसी भी विचार की सराहना होगी। शायद मैं इसे गलत देख रहा हूं।
(छवि के नीचे और अधिक जानकारी)

चैनल ए से नमूने

सिग्नल / प्रोटोकॉल विशेषताओं

मैंने इसे 16MHz पर चैनल A के कंट्रोलर सेट के साथ कैप्चर किया; सटीक, समय-वार होना चाहिए। (ऐसे 3 IR चैनल हैं जिन्हें आप चुन सकते हैं, लेकिन दो अन्य चैनलों के उपयोग से विशेषताओं को नहीं बदला जा सकता है, केवल पैकेट के कुछ हिस्से हैं।) समय बहुत संगत है (+/- 10µ अधिकतम)। पैकेट को अलग-अलग अंतराल के साथ दोहराया जाता है, लेकिन कम से कम वे लगभग 100ms अलग हैं।

कैरियर: 38kHz @ 50% शुल्क-चक्र


कम : - छोटी: 285µs
- लंबी: 795 .s

उच्च:
- लघु: 275µs
- दीर्घ: 855 .s

हमेशा 17 उच्च पैकेट प्रति।

नियंत्रण / आदानों

हैली को 3 नियंत्रण मिले: "थ्रॉटल" (यानी लिफ्ट / रोटर गति), पिच (आगे / पीछे), और यव (रोटर अक्ष के चारों ओर घूमना) सभी को 2 अंगूठे के साथ नियंत्रित किया गया। इन सभी में किसी न किसी प्रकार की सीमा होती है (न कि केवल / बंद पर) और, जहाँ तक मैं बता सकता हूँ, सभी को एक पैकेट में प्रेषित किया जा रहा है। यदि कुछ और भेजा जा रहा है, तो बाएं / दाएं इनपुट केवल भेजे जाते हैं, इसलिए मैंने नमूना लेते समय अधिकतम थ्रॉटल लागू किया। अपने ही ट्रिगर पैकेट पर थ्रॉटल और पिच इनपुट भेजा जा रहा है, जैसे ही आप थम्बस्टिक्स को कुछ थ्रेशोल्ड / डेडबैंड पर पुश करते हैं ("मिनट" लेबल के नीचे ग्राफ में पहले पैकेट के लिए भेजा जाता है जब धीरे-धीरे अपने डेडबैंड के नियंत्रण को धक्का देते हैं)।

यह बायीं और दाईं ओर ट्रिमिंग के लिए भी बटन मिला है, क्योंकि हैली एक सटीक उपकरण नहीं है ( बिल्कुल भी ) और धीरे-धीरे घूमता है अन्यथा नहीं। दुर्भाग्य से बाएं / दाएं ट्रिम बटन को एक संकेत भेजने के लिए प्रतीत नहीं होता है जो प्रत्येक प्रेस के लिए कुछ बढ़ा / घटा रहा है (जो प्रोटोकॉल का पता लगाने के लिए आसान होगा); ऐसा लगता है कि यह केवल एकल कमांड है, हेलीकॉप्टर को बाएं / दाएं ट्रिम करने के लिए कह रहा है, और फिर वह इसे ट्रैक करता है।


सिर्फ़ सिग्नल के निशान का उपयोग क्यों न करें, आपको पहले से ही पैकेट को कच्चा लिखना है?
इग्नासियो वाज़केज़-अब्राम्स

@ IgnacioVazquez- अब्राम का मतलब है कि हेलीकॉप्टर में रिकॉर्ड किए गए सिग्नलों को फिर से देखना?
फ्लैम्बिनो

ज़रूर। ऐसा नहीं है कि हेलिकॉप्टर अंतर बता पाएगा ...
इग्नासियो वाज़केज़-अब्राम्स

@ इग्नासियोविजेक-अब्राम ट्रू लेकिन जहां तक ​​मैं बता सकता हूं, पैकेट में हैली के नियंत्रण के सभी 3 नियंत्रण (थ्रॉटल / पिच / जौ) शामिल हैं, कोई भी बस चालू / बंद नहीं है। पुनरावृत्ति करके बात को आगे बढ़ाने के लिए, मुझे हर एक विन्यास पर कब्जा करना होगा ... इसके अलावा मैं प्रोटोकॉल को समझना चाहता हूं
फ्लैम्बिनो

@ IgnacioVazquez- अब्राम उफ़, मैंने किसी तरह अपनी आखिरी टिप्पणी की। कहने का अर्थ है: "... पैकेट में सभी 3 नियंत्रण (थ्रॉटल / पिच / यव) शामिल हैं और उनमें से कोई भी बस चालू / बंद नहीं है"।
फ्लैम्बिनो

जवाबों:


8

मैं अपने प्रश्न का उत्तर देने की स्वतंत्रता ले रहा हूं क्योंकि मुझे इसका अधिकांश पता चल गया है और यह मेरे निष्कर्षों को साझा करने का एक अच्छा तरीका है। मुझे शुरू करने के लिए एक जगह देने और कुछ विचारों को आज़माने के लिए ओलिन लेट्रोप के लिए मेरा धन्यवाद, लेकिन अंततः, प्रोटोकॉल ओलिन के अनुमान से काफी अलग था, इसलिए मैंने इस उत्तर को पोस्ट किया।


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


मुझे यह पता लगाने के लिए कुछ अलग चीजों की कोशिश करनी थी, लेकिन मुझे पूरा विश्वास है कि मुझे यह मिल गया है। अजीब तरह से, मुझे इस प्रोटोकॉल के समान कहीं और कुछ भी नहीं मिला है, लेकिन यह बहुत ही सामान्य प्रोटोकॉल हो सकता है, जिसके बारे में मुझे अभी पता नहीं है।

वैसे भी, यहाँ मैं क्या पाया है:

प्रोटोकॉल / एन्कोडिंग

दोनों दालों और बीच में रिक्त स्थान का उपयोग डेटा को एन्कोड करने के लिए किया जाता है। एक लंबी पल्स / स्पेस बाइनरी एक (1) है, और एक छोटी पल्स / स्पेस बाइनरी जीरो (0) है। दालों को मानक उपभोक्ता अवरक्त 38kHz मॉड्यूलेशन @ 50% शुल्क-चक्र का उपयोग करके भेजा जाता है।

पल्स / स्पेस टाइमिंग मूल प्रश्न में हैं, लेकिन मैं उन्हें यहां पूर्णता के लिए दोहराऊंगा:

 Bit    Pulse     Space
-----+---------+---------
  0  |  275µs  |  285µs
  1  |  855µs  |  795µs

सभी µ 10µs अधिकतम।, ± 5 typs टाइप .. यह 16MHz पर एक लॉजिक विश्लेषक के साथ कैप्चर किए गए नमूनों पर आधारित है; मेरे पास एक आस्टसीलस्कप नहीं है, इसलिए मुझे सटीक प्रोफ़ाइल (यानी वृद्धि / गिरावट का समय) नहीं पता है।

पैकेट्स को तब तक दोहराया जाता है जब तक कि कंट्रोल इनपुट लागू नहीं हो जाते हैं और कम से कम 100ms के अंतर पर दिखाई देते हैं।

पैकेट ट्रांसमिशन एक "पल्स 1" प्रस्तावना के साथ शुरू होता है, जो कि निश्चित है और डेटा का हिस्सा नहीं है। निम्न स्थान पैकेट का पहला डेटा बिट एन्कोड करता है, और अंतिम पल्स अंतिम बिट को एन्कोड करता है।

प्रत्येक पैकेट 32 बिट लंबा है, और हर इनपुट में रिमोट कंट्रोल प्रदान कर सकता है। मानों को छोटे एंडियन के रूप में पढ़ा जाता है, अर्थात पहले MSB।

डेटा संरचना

नीचे व्यक्तिगत पैकेट की मूल संरचना है। पिछले 8 बिट्स ने मुझे भ्रमित कर दिया था, लेकिन अब इसका पता लगा लिया गया है (नीचे देखें)।

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
--+---------------------------+-----------+---+-------+-----------
 P|    Yaw    |   Throttle    |   Pitch   | T | Chan. |   Check

P: Preamble (always a pulse-1), T: Trim, Chan.: Channel

Bit    Length    Description (see note below)
-----------------------------------------------
0      1         Preamble. High 1
1-6    6         Yaw. Range 0-36 for left-right, 17 being neutral
7-14   8         Throttle. Range 0-134
15-20  6         Pitch. Range 0-38 for forward-back, 17 being neutral
21-22  2         Trim. Left = 1, right = 2, no trim = 0
23-26  4         Channel. A = 5, B = 2, C = 8
27-32  6         Check bits

नोट: रंग मुझे मिले उच्चतम रीडिंग पर आधारित हैं। प्रोटोकॉल बड़ी रेंज में सक्षम है - थ्रॉटल के लिए 255 तक, पिच / यॉ के लिए 63 - लेकिन लगभग आधे पर कैप।
पिच मूल्य 14-21 (समावेशी) से एक डेडबैंड है प्रतीत होता है; केवल ऊपर या नीचे का मान वास्तव में हेलीकाप्टर प्रतिक्रिया करता है। मुझे नहीं पता कि क्या यह यव के लिए समान है (यह बताना मुश्किल है, क्योंकि हेलीकॉप्टर वैसे भी अस्थिर है, और बस अपने आप ही थोड़ा स्पिन कर सकता है)।

यहाँ यह आलेखीय शब्दों में है (मूल प्रश्न में ग्राफ़िक की तुलना करें)

पैकेट संरचना

6 चेक बिट्स की गणना पूर्ववर्ती सभी मूल्यों को XOR'ing द्वारा की जाती है। प्रत्येक मान को 6 बिट्स के रूप में माना जाता है। इसका मतलब यह है कि 8-बिट थ्रॉटल वैल्यू के 2 एमएसबी को केवल अनदेखा किया जाता है। अर्थात

check = yaw ^ (throttle & 0x3F) ^ pitch ^ trim ^ channel

प्रैक्टिकल नोट्स

सिग्नल की टाइमिंग और मॉड्यूलेशन को सुपर सटीक होने की आवश्यकता नहीं है। यहां तक ​​कि मेरे Arduino का नॉट-ऑन-ऑल-सटीक टाइमिंग डोडी मॉड्यूलेशन के बावजूद ठीक काम करता है और वास्तविक रिमोट कंट्रोल की तुलना में पल्स / स्पेस ड्यूरेशन पर थोड़ा हिट और मिस करता है।

मेरा मानना ​​है - लेकिन परीक्षण नहीं किया है - कि हेलीकॉप्टर बस पहले सिग्नल के चैनल को खोजेगा। यदि इसे बहुत लंबे समय तक सिग्नल के बिना छोड़ दिया जाता है (कुछ सेकंड में), यह अपने "खोज" मोड पर वापस जाने के लिए प्रकट होता है, जब तक कि यह फिर से सिग्नल प्राप्त नहीं करता।

यदि थ्रोटल शून्य है तो हेलीकॉप्टर पिच और जबड़े के मूल्यों की अनदेखी करेगा।

रिमोट कंट्रोल पर बटन-प्रेस के अनुसार ट्रिम कमांड केवल एक बार भेजे जाते हैं। संभवतया ट्रिम मूल्य हेलीकॉप्टर के अपने नियंत्रक में केवल वेतन वृद्धि / घटाव है; यह ऐसा कुछ नहीं है जिस पर रिमोट कंट्रोल नज़र रखता है। इसलिए इसका कोई भी कार्यान्वयन संभवत: उस योजना से जुड़ा होना चाहिए, और केवल सामयिक ट्रिम छोड़ दिया / सही मूल्य भेजें, लेकिन अन्यथा पैकेट में शून्य ट्रिम मूल्य के लिए डिफ़ॉल्ट।

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

मूल रिमोट कंट्रोल के IR LED में> 900nm तरंग दैर्ध्य दिखाई देता है, लेकिन मुझे ~ 850nm LED के उपयोग से कोई समस्या नहीं है।

हेलीकॉप्टर का आईआर रिसीवर ठीक है, लेकिन सुपर संवेदनशील नहीं है, इसलिए आपका आईआर स्रोत जितना बेहतर होगा, उतना बेहतर होगा। रिमोट कंट्रोल श्रृंखला में 3 एलईडी का उपयोग करता है, तर्क द्वारा उपयोग किए गए 5V रेल के बजाय 9V रेल पर बैठा है। अपने वर्तमान ड्रॉ की बहुत सटीक जाँच नहीं की है, लेकिन मैं इसे 50mA हूँ।

नमूना डेटा

यहाँ किसी भी दिलचस्पी के लिए पैकेट का एक गुच्छा है (हाँ, मैंने एक डिकोडर को स्क्रिप्ट किया है; मैंने यह सब नहीं किया था)। चैनल ए पैकेट मूल प्रश्न में ग्राफ़ के समान कैप्चर से आता है।

Channel A                                                       
Yaw     Throttle  Pitch   Tr  Chan  Check     Description
-----------------------------------------------------------
000100  10000100  000000  00  0101  000101    Left Mid + Throttle
000000  10000110  010001  00  0101  010010    Left Max + Throttle 
100001  10000110  000000  00  0101  100010    Right Mid + Throttle 
100100  10000100  010001  00  0101  110100    Right Max + Throttle
010001  00000000  001011  00  0101  011111    Forward Min 
010001  00000000  000000  00  0101  010100    Forward Max 
010001  00000000  011000  00  0101  001100    Back Min 
010001  00000000  100101  00  0101  110001    Back Max
010001  00000000  010001  01  0101  010101    Left Trim 
010001  00000000  010001  10  0101  100101    Right Trim 
010001  00000011  010001  00  0101  000110    Throttle 01 (min)
010001  00010110  010001  00  0101  010011    Throttle 02
010001  00011111  010001  00  0101  011010    Throttle 03
010001  00101111  010001  00  0101  101010    Throttle 04
010001  00111110  010001  00  0101  111011    Throttle 05
010001  01010101  010001  00  0101  010000    Throttle 06
010001  01011111  010001  00  0101  011010    Throttle 07
010001  01101100  010001  00  0101  101001    Throttle 08
010001  01111010  010001  00  0101  111111    Throttle 09
010001  10000101  010001  00  0101  000000    Throttle 10 (max)

Channel B
Yaw     Throttle  Pitch   Tr  Chan  Check     Description
-----------------------------------------------------------
000000  10000110  010001  00  0010  010101    Left Max + Throttle 
100100  10000110  010001  00  0010  110001    Right Max + Throttle 
010001  00000000  001001  00  0010  011010    Forward Min 
010001  00000000  000000  00  0010  010011    Forward Max 
010001  00000000  010111  00  0010  000100    Back Min 
010001  00000000  100110  00  0010  110101    Back Max
010001  00000000  010001  01  0010  010010    Left Trim 
010001  00000000  010001  10  0010  100010    Right Trim 
010001  00000001  010001  00  0010  000011    Throttle Min 
010001  00110100  010001  00  0010  110110    Throttle Mid 
010001  01100111  010001  00  0010  100101    Throttle High 
010001  10001111  010001  00  0010  001101    Throttle Max 

Channel C
Yaw     Throttle  Pitch   Tr  Chan  Check     Description
-----------------------------------------------------------
000000  10000101  010001  00  1000  011100    Left Max + Throttle 
100100  10000101  010001  00  1000  111000    Right Max + Throttle 
010001  00000000  001010  00  1000  010011    Forward Min 
010001  00000000  000000  00  1000  011001    Forward Max 
010001  00000000  010111  00  1000  001110    Back Min 
010001  00000000  100110  00  1000  111111    Back Max
010001  00000000  010001  01  1000  011000    Left Trim 
010001  00000000  010001  10  1000  101000    Right Trim 
010001  00000001  010001  00  1000  001001    Throttle Min 
010001  00110100  010001  00  1000  111100    Throttle Mid 
010001  01100110  010001  00  1000  101110    Throttle High 
010001  10000101  010001  00  1000  001101    Throttle Max

जैसा कि ऊपर उल्लेख किया गया है, पिछले 8 बिट्स का पता लगाया गया है, लेकिन सिर्फ पोस्टर के लिए, यहां मेरे मूल विचार हैं। इसे पूरी तरह से अनदेखा करने के लिए स्वतंत्र महसूस करें, क्योंकि मैं अपने अनुमानों में बहुत गलत था।

अंतिम 8 बिट्स

पैकेट के अंतिम 8 बिट अभी भी रहस्य के एक बिट हैं।

23 से 26 तक के 4 बिट्स पूरी तरह से रिमोट कंट्रोल के चैनल सेटिंग से निर्धारित होते हैं। रिमोट कंट्रोल पर चैनल बदलने से किसी भी तरह से प्रोटोकॉल या मॉड्यूलेशन में बदलाव नहीं होता है; यह केवल उन 4 बिट्स को बदलता है।

लेकिन 4 बिट्स दोहरी है जो वास्तव में चैनल सेटिंग को एन्कोड करने के लिए आवश्यक है; केवल तीन चैनल हैं, इसलिए 2 बिट्स काफी हैं। इसलिए, ऊपर संरचना विवरण में, मैंने केवल पहले 2 बिट्स को "चैनल" के रूप में लेबल किया है, और अन्य दो को "एक्स" के रूप में लेबल किया गया है, लेकिन यह एक अनुमान है।

नीचे प्रत्येक चैनल सेटिंग के लिए प्रासंगिक बिट्स का एक नमूना है।

Chan.   Bits 23-26
-----+-------------
  A  |  0  1  0  1
  B  |  0  0  1  0
  C  |  1  0  0  0

असल में, चैनल सेटिंग को प्रसारित करने के लिए ज़रूरत से ज़्यादा 2 बिट्स हैं। हो सकता है कि बाद में अधिक चैनलों के लिए अनुमति देने के लिए प्रोटोकॉल को 4 बिट्स अलग रखा गया हो, या इसलिए प्रोटोकॉल का उपयोग पूरी तरह से अलग-अलग खिलौनों में किया जा सकता है, लेकिन मुझे बस यह नहीं पता है। बड़े मानों के लिए, प्रोटोकॉल अतिरिक्त बिट्स का उपयोग करता है जिन्हें बाहर छोड़ा जा सकता है (yaw / throttle / पिच प्रत्येक कम बिट के साथ मिल सकता है), लेकिन ट्रिम के लिए - जिसमें 3 राज्य भी हैं - केवल 2 बिट्स का उपयोग किया जाता है। तो किसी को शक हो सकता है कि चैनल भी सिर्फ 2 बिट्स का है, लेकिन इसके लिए अगले 2 को छोड़ दिया जाता है।

दूसरी संभावना यह है कि पैकेट का चेकसम 8 बिट लंबा है, जिसकी शुरुआत "एक्स बिट्स" से होती है, और - चेकसमिंग मैजिक के माध्यम से - वे बस किसी भी तरह हमेशा चैनल सेटिंग को दर्शाते हैं। लेकिन फिर से: मुझे नहीं पता।

और बोलना: मुझे पता नहीं है कि उन चेक बिट्स कैसे बनते हैं। मेरा मतलब है, वे बिट्स चेक कर रहे हैं , क्योंकि वे किसी भी नियंत्रण इनपुट के अनुरूप नहीं हैं, और यदि मैं उनके साथ फिडेल करता हूं तो हेलीकाप्टर जवाब नहीं देता है। मैं अनुमान लगा रहा हूं कि यह किसी तरह का सीआरसी है, लेकिन मैं इसका पता नहीं लगा पाया हूं। चेक 6-8 बिट लंबा है, इस पर निर्भर करता है कि आप "एक्स बिट्स" की व्याख्या कैसे करते हैं, इसलिए बहुत सारे तरीके हैं जो एक साथ रखे जा सकते हैं।


6

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

जाहिर है, हर संदेश एक शुरुआत के रूप में एक लंबी नाड़ी के साथ शुरू होता है। जो 16 डेटा बिट्स को छोड़ता है। संभवतः शुरुआती बिट्स में से कुछ एक ओपोड हैं, संभवतः चर लंबाई। अगर मैं ऐसा कर रहा था, तो कुछ समाप्त बिट्स एक चेकसम होगा। उन इंजीनियरों को चित्रित करें जिन्होंने फर्मवेयर लिखा था वे अपने लिए चीजों को सरल रखना चाहते थे, इसलिए आप यह मानकर शुरू कर सकते हैं कि वहां 8 डेटा बिट्स हैं। अब देखें कि क्या कोई संदेश समझ में आता है।

चलो एक लंबे 1 और एक छोटे से एक को बुलाते हैं। 0 यह चारों ओर का दूसरा तरीका हो सकता है, लेकिन हमें कहीं से शुरू करना होगा। स्ट्रिपिंग स्टार्ट बिट लीव्स:

1010001101011010 मिनट थ्रॉटल
1010011101011000 अधिकतम थ्रॉटल
1010000001011111 न्यूनतम फॉरवर्ड
1010000000011110 अधिकतम अग्रेषित
1010000011011101 अधिकतम वापस
1010000100011010 मिनट वापस
0000010101011100 अधिकतम बाएं + अधिकतम थ्रॉटल
0100010101011110 अधिकतम दायाँ + अधिकतम थ्रॉटल
1010000101111111 ट्रिम छोड़ दिया
1010000101011011 सही ट्रिम

कुछ चीजें सही दूर पॉप। स्पष्ट रूप से बिट 0 एक समता बिट है। अन्यथा 3 बिट्स फ़ील्ड <15:13>, 8 बिट डेटा मान <12: 5> और अन्य 4 बिट फ़ील्ड <4: 1> प्रतीत होता है।

ऐसा लगता है कि डेटा मूल्य को उच्च बिट ऑर्डर में कम भेजा जा रहा है, इसलिए यह संभवतः मेरे द्वारा दिखाए गए पूरे 16 बिट्स को फ़्लिप करने की व्याख्या करने के लिए अधिक समझ में आता है।

मुझे इस पर अधिक समय बिताने का मन नहीं है, लेकिन उम्मीद है कि इसने आपको एक शुरुआत दी है। मैं सूची को फिर से लिखने के द्वारा आगे बढ़ूंगा क्योंकि समता बिट से छीन ली गई, पूरी संख्या एलएसबी से एमएसबी में फ़्लिप हो गई, और प्रत्येक ग्रहण किए गए क्षेत्र को इसके और abutting क्षेत्र के बीच एक स्थान के साथ अलग से दिखाया गया। यह आपको अधिक पॉप आउट करने की अनुमति दे सकता है। यह भी ध्यान रखें कि हमारे पास प्रत्येक बिट का 1/0 अर्थ पीछे की ओर हो सकता है। शायद हर तरह से नई तालिका लिखें और देखें कि क्या कुछ अधिक समझ में आता है।


धन्यवाद, यह उत्कृष्ट है! मैं इस पर सही उतरूंगा, और देखूंगा कि मुझे क्या मिला। अन्य प्रोटोकॉल को देखने के बाद, मैंने यह सोचना शुरू कर दिया कि शायद रिक्त स्थान अप्रासंगिक थे, लेकिन चूंकि उनके पास दो बहुत ही सुसंगत समय थे, इसलिए मुझे यकीन नहीं था। मुझे लगा कि अगर वे महत्वपूर्ण नहीं थे तो वे और अधिक भिन्न होंगे। वैसे भी, मैं इसे आज़माऊँगा। धन्यवाद फिर से
Flambino

हुह ... जहाँ तक मैं बता सकता हूँ, रिक्त स्थान कर बात। मैंने थ्रॉटल पर ध्यान केंद्रित किया, और 10 अलग-अलग थ्रॉटल पदों पर कुछ और नमूनों पर कब्जा कर लिया। रिक्त स्थान को छोड़कर मुझे इस बात की परवाह किए बिना कि मैंने रूपांतरण कैसे किए, कोई सार्थक संख्या नहीं दी। लेकिन उन्हें लंबे समय तक = 1, लघु = 0 सहित 1 से 134 (थोड़ा अंत) से थ्रॉटल वैल्यू की एक चिकनी प्रगति मिलती है। अभी भी अन्य मापदंडों पर काम कर रहे हैं
फ्लैम्बिनो

मुझे प्रोटोकॉल लगभग पूरी तरह से मिल गया है, लेकिन अभी भी रहस्य का एक सा है। मेरे सवाल का एक टन सामान जोड़ा, अगर आप इस पर झूले लेना चाहते हैं। या तो, आप अब तक मदद के लिए धन्यवाद! मुझे सही दिशा में काम करने का मौका मिला।
फ्लैम्बिनो

@ फ़्लेम्बिनो: लगता है कि आप अच्छी तरह से आगे हैं जो मैंने शुरू किया था, जो ज्यादातर गलत अनुमानों में बदल गया था। मैंने आपके अपडेट किए गए प्रश्न को पढ़ा, लेकिन अभी भी यह नहीं समझ पाया कि वास्तव में रिक्त स्थान की लंबाई का उपयोग कैसे किया जाता है। क्या यह सिर्फ अनुमान था कि आपके द्वारा दिखाए गए सभी पैटर्न में वास्तव में 17 दालें थीं और यह आखिरी बार समानता को इंगित करने के लिए हुआ था यदि केवल दालों को 0 या 1 लिया जाता है?
ओलिन लेट्रोप

ईमानदारी से, यह मेरी ओर से ज्यादातर परीक्षण और त्रुटि थी। चूंकि रिक्त स्थान के लिए उपयोग किए जाने वाले 2 टाइमिंग पल्स टाइमिंग के समान सटीक हैं, मुझे लगा कि वे सार्थक हो सकते हैं। और, जब रिक्त स्थान की अनदेखी करने से उपयोगी बाइनरी डेटा नहीं मिला, तो मैंने केवल लंबी पल्स = 1 और लंबी स्पेस = 1 (और शॉर्ट स्पेस / पल्स = 0) ग्रहण की , जिसने मुझे तुरंत बहुत उपयोगी डेटा दिया। तो प्रस्तावना नाड़ी के बाद पहला स्थान पहला बिट (अधिकतम दायाँ + अधिकतम थ्रॉटल ग्राफ एक "स्पेस 1" को पहले बिट के रूप में दिखाता है) उसके बाद 16 दालों, बीच में 15 और रिक्त स्थान होते हैं; 32 बिट्स।
फ्लाम्बिनो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.