ज़िगबी ईज़ीएसपी यूएआरटी के बारे में

लेखक:TorchIoTBootCamp
लिंक:https://zhuanlan.zhihu.com/p/339700391
से:Quora

1 परिचय

सिलिकॉन लैब्स ने ज़िग्बी गेटवे डिज़ाइन के लिए होस्ट+एनसीपी समाधान की पेशकश की है।इस आर्किटेक्चर में, होस्ट UART या SPI इंटरफ़ेस के माध्यम से NCP के साथ संचार कर सकता है।आमतौर पर, यूएआरटी का उपयोग किया जाता है क्योंकि यह एसपीआई की तुलना में बहुत सरल है।

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

अनुकूलित होस्ट प्रोग्राम विकसित करने से पहले यूएआरटी गेटवे प्रोटोकॉल को समझना महत्वपूर्ण है।UART आधारित NCP और SPI आधारित NCP दोनों के लिए, होस्ट NCP के साथ संचार करने के लिए EZSP प्रोटोकॉल का उपयोग करता है।ईज़ीएसपीके लिए संक्षिप्त हैएम्बरज़नेट सीरियल प्रोटोकॉल, और इसे इसमें परिभाषित किया गया हैयूजी100.यूएआरटी आधारित एनसीपी के लिए, ईज़ीएसपी डेटा को यूएआरटी पर विश्वसनीय रूप से ले जाने के लिए एक निचली परत प्रोटोकॉल लागू किया गया है, यही हैराखप्रोटोकॉल, संक्षिप्त रूप मेंअतुल्यकालिक सीरियल होस्ट.एएसएच के बारे में अधिक जानकारी के लिए कृपया देखेंयूजी101औरयूजी115.

EZSP और ASH के बीच संबंध को निम्नलिखित चित्र द्वारा दर्शाया जा सकता है:

1

EZSP और ASH प्रोटोकॉल के डेटा प्रारूप को निम्नलिखित चित्र द्वारा चित्रित किया जा सकता है:

2

इस पृष्ठ में, हम यूएआरटी डेटा और कुछ मुख्य फ़्रेमों को फ़्रेम करने की प्रक्रिया का परिचय देंगे जो अक्सर ज़िग्बी गेटवे में उपयोग किए जाते हैं।

2. फ़्रेमिंग

सामान्य फ़्रेमिंग प्रक्रिया को निम्नलिखित चार्ट द्वारा चित्रित किया जा सकता है:

3

इस चार्ट में, डेटा का अर्थ EZSP फ़्रेम है।सामान्य तौर पर, फ़्रेमिंग प्रक्रियाएँ हैं: |नहीं|चरण|संदर्भ|

|:-|:-|:-|

|1|ईजेडएसपी फ्रेम भरें|यूजी100|

|2|डेटा रैंडमाइजेशन|यूजी101 की धारा 4.3|

|3|यूजी101 का कंट्रोल बाइट|चैप2 और चैप3 जोड़ें|

|4|सीआरसी की गणना करें|यूजी101 की धारा 2.3|

|5|बाइट स्टफिंग|यूजी101 की धारा 4.2|

|6|अंतिम ध्वज जोड़ें|यूजी101 की धारा 2.4|

2.1.EZSP फ़्रेम भरें

EZSP फ़्रेम प्रारूप को UG100 के अध्याय 3 में दर्शाया गया है।

4

ध्यान दें कि एसडीके अपग्रेड होने पर यह प्रारूप बदल सकता है।जब प्रारूप बदल जाएगा, तो हम इसे एक नया संस्करण नंबर देंगे।जब यह लेख लिखा गया तो नवीनतम EZSP संस्करण संख्या 8 थी (एम्बरज़नेट 6.8)।

चूँकि EZSP फ्रेम प्रारूप विभिन्न संस्करणों के बीच भिन्न हो सकता है, इसलिए होस्ट और NCP की अनिवार्य आवश्यकता हैअवश्यसमान EZSP संस्करण के साथ कार्य करें।अन्यथा, वे अपेक्षा के अनुरूप संवाद नहीं कर पाएंगे।

इसे प्राप्त करने के लिए, होस्ट और NCP के बीच पहला कमांड संस्करण कमांड होना चाहिए।दूसरे शब्दों में, होस्ट को किसी भी अन्य संचार से पहले NCP का EZSP संस्करण पुनः प्राप्त करना होगा।यदि EZSP संस्करण होस्ट पक्ष के EZSP संस्करण से भिन्न है, तो संचार निरस्त कर दिया जाना चाहिए।

इसके पीछे अंतर्निहित आवश्यकता यह है कि संस्करण कमांड का प्रारूप तैयार किया जा सकेकभी मत बदलो.EZSP संस्करण कमांड प्रारूप नीचे जैसा है:

5

पैरामीटर फ़ील्ड की व्याख्या और संस्करण प्रतिक्रिया का प्रारूप यूजी100 के अध्याय 4 में पाया जा सकता है।पैरामीटर फ़ील्ड होस्ट प्रोग्राम का EZSP संस्करण है।जब यह लेख लिखा गया तो 8 बज रहे थे।
7
उदाहरण: TorchIoTBootCamp
स्रोत: https://zhuanlan.zhihu.com/p/339700391
उत्तर: ठीक है
इस लेख में, हमने पाया है कि यह एक अच्छा विचार है।

2.2.डेटा रैंडमाइजेशन

विस्तृत यादृच्छिकीकरण प्रक्रिया यूजी101 के खंड 4.3 में वर्णित है।संपूर्ण EZSP फ़्रेम को यादृच्छिक किया जाएगा.रैंडमाइजेशन एक्सक्लूसिव-या ईजेडएसपी फ्रेम और एक छद्म-यादृच्छिक अनुक्रम है।

छद्म-यादृच्छिक अनुक्रम उत्पन्न करने का एल्गोरिदम नीचे दिया गया है।

  • रैंड0 = 0×42
  • यदि रैंडी का बिट 0 0 है, तो रैंडी+1 = रैंडी >> 1
  • यदि रंडी का बिट 0 1 है, तो रंडी+1 = (रंडी >> 1) ^ 0xB8

2.3.कंट्रोल बाइट जोड़ें

नियंत्रण बाइट एक बाइट डेटा है, और इसे फ़्रेम के शीर्ष पर जोड़ा जाना चाहिए।प्रारूप को नीचे दी गई तालिका से दर्शाया गया है:

6

कुल मिलाकर, नियंत्रण बाइट्स 6 प्रकार के होते हैं।पहले तीन का उपयोग EZSP डेटा वाले सामान्य फ़्रेमों के लिए किया जाता है, जिनमें DATA, ACK और NAK शामिल हैं।अंतिम तीन का उपयोग सामान्य EZSP डेटा के बिना किया जाता है, जिसमें RST, RSTACK और ERROR शामिल हैं।

RST, RSTACK और ERROR का प्रारूप अनुभाग 3.1 से 3.3 में वर्णित है।

2.4.सीआरसी की गणना करें

16-बिट सीआरसी की गणना नियंत्रण बाइट से डेटा के अंत तक बाइट्स पर की जाती है।मानक CRCCCITT (g(x) = x16 + x12 + x5 + 1) को 0xFFFF से प्रारंभ किया गया है।सबसे महत्वपूर्ण बाइट सबसे कम महत्वपूर्ण बाइट (बिग-एंडियन मोड) से पहले आती है।

2.5.बाइट स्टफिंग

जैसा कि यूजी101 की धारा 4.2 में वर्णित है, विशेष प्रयोजन के लिए उपयोग किए जाने वाले कुछ आरक्षित बाइट मान हैं।ये मान निम्न तालिका में पाए जा सकते हैं:

7

जब ये मान फ़्रेम में दिखाई देंगे, तो डेटा पर एक विशेष उपचार किया जाएगा।- आरक्षित बाइट के सामने एस्केप बाइट 0x7D डालें - उस आरक्षित बाइट के बिट5 को उल्टा करें

इस एल्गोरिथम के कुछ उदाहरण नीचे दिए गए हैं:

8

2.6.अंतिम ध्वज जोड़ें

अंतिम चरण फ़्रेम के अंत में अंतिम ध्वज 0x7E जोड़ना है।उसके बाद, डेटा को UART पोर्ट पर भेजा जा सकता है।

3. डी-फ़्रेमिंग प्रक्रिया

जब यूएआरटी से डेटा प्राप्त होता है, तो हमें इसे डिकोड करने के लिए बस विपरीत चरण करने की आवश्यकता होती है।

4. सन्दर्भ


पोस्ट करने का समय: फरवरी-08-2022
व्हाट्सएप ऑनलाइन चैट!