झिग्बी ईझेडएसपी यूएआरटी बद्दल

लेखक: टॉर्चआयओटीबूटकॅम्प
लिंक: https://zhuanlan.zhihu.com/p/339700391
प्रेषक: क्वोरा

१. परिचय

सिलिकॉन लॅब्सने झिग्बी गेटवे डिझाइनसाठी होस्ट+एनसीपी सोल्यूशन ऑफर केले आहे. या आर्किटेक्चरमध्ये, होस्ट यूएआरटी किंवा एसपीआय इंटरफेसद्वारे एनसीपीशी संवाद साधू शकतो. सामान्यतः, यूएआरटी वापरला जातो कारण तो एसपीआयपेक्षा खूपच सोपा आहे.

सिलिकॉन लॅब्सने होस्ट प्रोग्रामसाठी एक नमुना प्रकल्प देखील प्रदान केला आहे, जो नमुना आहेझेड३गेटवेहोस्ट. हा नमुना युनिक्ससारख्या प्रणालीवर चालतो. काही ग्राहकांना RTOS वर चालणारा होस्ट नमुना हवा असेल, परंतु दुर्दैवाने, सध्या RTOS वर आधारित कोणताही होस्ट नमुना उपलब्ध नाही. वापरकर्त्यांना RTOS वर आधारित त्यांचा स्वतःचा होस्ट प्रोग्राम विकसित करावा लागेल.

कस्टमाइज्ड होस्ट प्रोग्राम विकसित करण्यापूर्वी UART गेटवे प्रोटोकॉल समजून घेणे महत्वाचे आहे. UART आधारित NCP आणि SPI आधारित NCP दोन्हीसाठी, होस्ट NCP शी संवाद साधण्यासाठी EZSP प्रोटोकॉल वापरतो.ईझेडएसपीसाठी संक्षिप्त आहेएम्बरझेनेट सिरीयल प्रोटोकॉल, आणि ते मध्ये परिभाषित केले आहेUG100 बद्दल. UART आधारित NCP साठी, UART वर EZSP डेटा विश्वसनीयरित्या वाहून नेण्यासाठी एक लोअर लेयर प्रोटोकॉल लागू केला जातो, तो म्हणजेराखप्रोटोकॉल, ज्याचा संक्षिप्त अर्थअसिंक्रोनस सिरीयल होस्ट. ASH बद्दल अधिक माहितीसाठी, कृपया पहाUG101 साठी चौकशी सबमिट करा, आम्ही तुमच्याशी २४ तासांत संपर्क करू.आणिUG115 साठी चौकशी सबमिट करा, आम्ही तुमच्याशी २४ तासांत संपर्क करू..

EZSP आणि ASH मधील संबंध खालील आकृतीद्वारे स्पष्ट करता येतो:

१

EZSP आणि ASH प्रोटोकॉलचे डेटा स्वरूप खालील आकृतीद्वारे स्पष्ट केले जाऊ शकते:

२

या पानावर, आपण UART डेटा फ्रेम करण्याची प्रक्रिया आणि झिग्बी गेटवेमध्ये वारंवार वापरल्या जाणाऱ्या काही की फ्रेम्सची ओळख करून देऊ.

२. फ्रेमिंग

सामान्य फ्रेमिंग प्रक्रिया खालील चार्टद्वारे स्पष्ट केली जाऊ शकते:

३

या चार्टमध्ये, डेटा म्हणजे EZSP फ्रेम. सर्वसाधारणपणे, फ्रेमिंग प्रक्रिया आहेत: |नाही|पायरी|संदर्भ|

|:-|:-|:-|

|१|EZSP फ्रेम भरा|UG100|

|२|डेटा रँडमायझेशन|UG101 चा कलम ४.३|

|3|UG101| चा कंट्रोल बाइट|चॅप2 आणि चॅप3 जोडा.

|४|CRC मोजा|UG101 चा कलम २.३|

|५|बाइट स्टफिंग|UG101 चा कलम ४.२|

|6|एंड फ्लॅग जोडा|UG101 चा कलम 2.4|

२.१. EZSP फ्रेम भरा

EZSP फ्रेम फॉरमॅट UG100 च्या प्रकरण 3 मध्ये दर्शविला आहे.

४

SDK अपग्रेड झाल्यावर हे फॉरमॅट बदलू शकते हे लक्षात ठेवा. जेव्हा फॉरमॅट बदलेल तेव्हा आम्ही त्याला एक नवीन आवृत्ती क्रमांक देऊ. हा लेख लिहिला जात असताना नवीनतम EZSP आवृत्ती क्रमांक 8 आहे (EmberZnet 6.8).

वेगवेगळ्या आवृत्त्यांमध्ये EZSP फ्रेम फॉरमॅट वेगवेगळा असू शकतो, म्हणून होस्ट आणि NCP ची अनिवार्य आवश्यकता आहेहे करावेच लागेलत्याच EZSP आवृत्तीसह काम करा. अन्यथा, ते अपेक्षेप्रमाणे संवाद साधू शकत नाहीत.

ते साध्य करण्यासाठी, होस्ट आणि एनसीपीमधील पहिली कमांड व्हर्जन कमांड असणे आवश्यक आहे. दुसऱ्या शब्दांत, होस्टने इतर कोणत्याही संप्रेषणापूर्वी एनसीपीची ईझेडएसपी आवृत्ती पुनर्प्राप्त करणे आवश्यक आहे. जर ईझेडएसपी आवृत्ती होस्ट बाजूच्या ईझेडएसपी आवृत्तीपेक्षा वेगळी असेल, तर संप्रेषण रद्द करणे आवश्यक आहे.

यामागील अंतर्निहित आवश्यकता अशी आहे की आवृत्ती कमांडचे स्वरूप हे करू शकतेकधीही बदलू नका. EZSP आवृत्ती कमांड फॉरमॅट खालीलप्रमाणे आहे:

५

पॅरामीटर फील्डचे स्पष्टीकरण आणि आवृत्ती प्रतिसादाचे स्वरूप UG100 च्या प्रकरण 4 मध्ये आढळू शकते. पॅरामीटर फील्ड हे होस्ट प्रोग्रामचे EZSP आवृत्ती आहे. जेव्हा हा लेख लिहिला जातो तेव्हा ते 8 आहे.
७
उदाहरण: टॉर्चआयओटीबूटकॅम्प
链接: https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转转请注明出处.

२.२. डेटा रँडमायझेशन

UG101 च्या कलम 4.3 मध्ये तपशीलवार रँडमायझेशन प्रक्रियेचे वर्णन केले आहे. संपूर्ण EZSP फ्रेम रँडमायझेशन केली जाईल. रँडमायझेशन EZSP फ्रेम आणि एक छद्म-यादृच्छिक क्रम वगळून केले जाईल.

खाली स्यूडो-रँडम सीक्वेन्स जनरेट करण्याचे अल्गोरिथम आहे.

  • रँड० = ०×४२
  • जर रँडीचा बिट 0 0 असेल, तर रँडी+1 = रँडी >> १
  • जर रँडीचा बिट ० १ असेल, तर रँडी+१ = (रँडी >> १) ^ ०xB८

२.३. कंट्रोल बाइट जोडा

कंट्रोल बाइट हा एक बाइट डेटा आहे आणि तो फ्रेमच्या शीर्षस्थानी जोडला पाहिजे. खालील तक्त्यासह स्वरूप स्पष्ट केले आहे:

६

एकूण, ६ प्रकारचे नियंत्रण बाइट्स आहेत. पहिले तीन EZSP डेटा असलेल्या सामान्य फ्रेम्ससाठी वापरले जातात, ज्यामध्ये DATA, ACK आणि NAK यांचा समावेश आहे. शेवटचे तीन सामान्य EZSP डेटाशिवाय वापरले जातात, ज्यामध्ये RST, RSTACK आणि ERROR यांचा समावेश आहे.

RST, RSTACK आणि ERROR चे स्वरूप विभाग 3.1 ते 3.3 मध्ये वर्णन केले आहे.

२.४. CRC ची गणना करा

१६-बिट CRC ची गणना कंट्रोल बाइटपासून डेटाच्या शेवटपर्यंतच्या बाइट्सवर केली जाते. मानक CRCCCITT (g(x) = x16 + x12 + x5 + 1) 0xFFFF मध्ये सुरू केले जाते. सर्वात लक्षणीय बाइट सर्वात कमी लक्षणीय बाइट (बिग-एंडियन मोड) च्या आधी येते.

२.५. बाइट स्टफिंग

UG101 च्या विभाग 4.2 मध्ये वर्णन केल्याप्रमाणे, विशेष उद्देशासाठी वापरल्या जाणाऱ्या काही राखीव बाइट मूल्ये आहेत. ही मूल्ये खालील तक्त्यामध्ये आढळू शकतात:

७

जेव्हा ही मूल्ये फ्रेममध्ये दिसतात, तेव्हा डेटावर एक विशेष उपचार केले जातील. – राखीव बाइटच्या समोर एस्केप बाइट 0x7D घाला – त्या राखीव बाइटचा बिट5 उलट करा.

या अल्गोरिदमची काही उदाहरणे खाली दिली आहेत:

८

२.६. एंड फ्लॅग जोडा

शेवटची पायरी म्हणजे फ्रेमच्या शेवटी 0x7E हा शेवटचा ध्वज जोडणे. त्यानंतर, डेटा UART पोर्टवर पाठवता येतो.

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

जेव्हा UART कडून डेटा प्राप्त होतो, तेव्हा तो डीकोड करण्यासाठी आपल्याला उलटे चरण करावे लागतात.

४. संदर्भ


पोस्ट वेळ: फेब्रुवारी-०८-२०२२
व्हॉट्सअॅप ऑनलाइन गप्पा!