لیکوال: TorchIoTBootCamp
لینک: https://zhuanlan.zhihu.com/p/339700391
له خوا: Quora
۱. پېژندنه
سیلیکون لابراتوار د Zigbee ګیټ وے ډیزاین لپاره کوربه + NCP حل وړاندیز کړی. په دې جوړښت کې، کوربه کولی شي د UART یا SPI انٹرفیس له لارې د NCP سره اړیکه ونیسي. ډیری عموما، UART کارول کیږي ځکه چې دا د SPI په پرتله خورا ساده دی.
سیلیکون لابراتوار د کوربه برنامې لپاره نمونه پروژه هم چمتو کړې ، کوم چې نمونه دهZ3GatewayHost
. نمونه د یونیکس په څیر سیسټم کې پرمخ ځي. ځینې پیرودونکي ممکن د کوربه نمونه وغواړي کوم چې په RTOS کې پرمخ ځي، مګر له بده مرغه، د اوس وخت لپاره د RTOS پر بنسټ کوربه نمونه شتون نلري. کاروونکي باید د RTOS پراساس خپل کوربه برنامه رامینځته کړي.
دا مهمه ده چې د دودیز کوربه برنامې رامینځته کولو دمخه د UART ګیټ وے پروتوکول پوه شئ. د UART پر بنسټ NCP او SPI پر بنسټ NCP دواړو لپاره، کوربه د NCP سره د اړیکو لپاره د EZSP پروتوکول کاروي.EZSPلپاره لنډ دید EmberZnet سیریل پروتوکول، او دا په کې تعریف شویUG100. د UART پر بنسټ د NCP لپاره، د ټیټ پرت پروتوکول پلي کیږي ترڅو د EZSP ډیټا په UART کې په معتبره توګه انتقال کړي، دا دیASHپروتوکول، لپاره لنډغیر متناسب سریال کوربه. د ASH په اړه د نورو معلوماتو لپاره مهرباني وکړئ مراجعه وکړئUG101اوUG115.
د EZSP او ASH ترمنځ اړیکه د لاندې ډیاګرام لخوا روښانه کیدی شي:
د EZSP او ASH پروتوکول ډیټا فارمیټ د لاندې ډیاګرام لخوا توضیح کیدی شي:
په دې پاڼه کې، موږ به د UART ډیټا او ځینې کلیدي چوکاټونو د چوکاټ کولو پروسه معرفي کړو چې ډیری وختونه په Zigbee gateway کې کارول کیږي.
2. چوکاټ کول
د عمومي چوکاټ کولو پروسه په لاندې چارټ کې تشریح کیدی شي:
په دې چارټ کې، ډاټا د EZSP چوکاټ معنی لري. په عموم کې، د چوکاټ کولو پروسې دي: | نه | ګام | حواله |
|:-|:-|:-|
|1|د EZSP چوکاټ ډک کړئ|UG100|
|2|د معلوماتو بې ترتیب کول|د UG101 برخه 4.3|
|3
|4|د CRC محاسبه کړئ|د UG101 برخه 2.3|
|5|بایټ ډکول|د UG101 برخه 4.2|
|6|د پای بیرغ اضافه کړئ|د UG101 برخه 2.4|
2.1. د EZSP چوکاټ ډک کړئ
د EZSP چوکاټ بڼه د UG100 په 3 فصل کې ښودل شوې.
پام وکړئ چې دا بڼه ممکن بدلون ومومي کله چې SDK لوړ شي. کله چې بڼه بدله شي، موږ به دا د نوي نسخه شمیره ورکړو. د وروستي EZSP نسخه شمیره 8 ده کله چې دا مقاله لیکل کیږي (EmberZnet 6.8).
څرنګه چې د EZSP چوکاټ بڼه کیدای شي د مختلفو نسخو ترمنځ توپیر ولري، یو لازمي اړتیا شتون لري چې کوربه او NCPMUSTد ورته EZSP نسخه سره کار وکړئ. که نه نو، دوی نشي کولی د تمې سره سم اړیکه ونیسي.
د دې ترلاسه کولو لپاره، د کوربه او NCP ترمنځ لومړی کمانډ باید د نسخې قومانده وي. په بل عبارت، کوربه باید د نورو اړیکو دمخه د NCP EZSP نسخه بیرته ترلاسه کړي. که د EZSP نسخه د کوربه اړخ د EZSP نسخه سره توپیر ولري، اړیکه باید لغوه شي.
د دې تر شا ضمني اړتیا دا ده چې د نسخې کمانډ بڼه کولی شيهیڅکله بدلون مه کوئ. د EZSP نسخه کمانډ بڼه د لاندې په څیر ده:
链接: https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转转请注明出处.
2.2. د معلوماتو تصادفي کول
تفصیلي تصادفي پروسه د UG101 په 4.3 برخه کې تشریح شوې. د EZSP ټول چوکاټ به تصادفي شي. تصادفي کول ځانګړي - یا د EZSP چوکاټ او یو تصادفي ترتیب ته دی.
لاندې د سیډو - تصادفي ترتیب رامینځته کولو الګوریتم دی.
- rand0 = 0×42
- که د رانډي 0 بټ 0 وي، رانډي+1 = رانډي >> 1
- که د رانډي بټ 0 1 وي، رانډي + 1 = (رانډي >> 1) ^ 0xB8
2.3. د کنټرول بایټ اضافه کړئ
د کنټرول بایټ یو بایټ ډیټا دی، او باید د چوکاټ په سر کې اضافه شي. بڼه په لاندې جدول کې ښودل شوې ده:
په ټولیز ډول، د کنټرول 6 ډوله بایټونه شتون لري. لومړی درې د EZSP ډیټا سره د عام چوکاټونو لپاره کارول کیږي ، پشمول د ډیټا ، ACK او NAK. وروستي درې د عام EZSP ډیټا پرته کارول کیږي، په شمول RST، RSTACK او ERROR.
د RST، RSTACK او ERROR بڼه د 3.1 څخه تر 3.3 برخه کې تشریح شوي.
2.4. CRC محاسبه کړئ
A 16-bit CRC د کنټرول بایټ څخه د ډیټا تر پای پورې په بایټ کې محاسبه کیږي. معیاري CRCCCITT (g(x) = x16 + x12 + x5 + 1) 0xFFFF ته پیل شوی. ترټولو مهم بایټ د لږ مهم بایټ څخه مخکې دی (لوی انډین حالت).
2.5. د بایټ ډکول
لکه څنګه چې د UG101 په 4.2 برخه کې تشریح شوي، ځینې خوندي شوي بایټ ارزښتونه شتون لري چې د ځانګړي هدف لپاره کارول کیږي. دا ارزښتونه په لاندې جدول کې موندل کیدی شي:
کله چې دا ارزښتونه په چوکاټ کې راښکاره شي، ډاټا ته به یو ځانګړی درملنه ترسره شي. - د خوندي شوي بایټ مخې ته د فرار بایټ 0x7D دننه کړئ - د دې خوندي شوي بایټ بټ 5 بیرته راوګرځوئ
لاندې د دې الګوریتم ځینې مثالونه دي:
2.6. د پای بیرغ اضافه کړئ
وروستی ګام د چوکاټ پای ته د پای بیرغ 0x7E اضافه کول دي. له هغې وروسته، ډاټا د UART بندر ته لیږل کیدی شي.
3. د چوکاټ کولو پروسه
کله چې ډاټا د UART څخه ترلاسه کیږي، موږ یوازې د دې د کوډ کولو لپاره د بیرته راستنیدو مرحلې ته اړتیا لرو.
4. حوالې
د پوسټ وخت: فبروري 08-2022