Zigbee EZSP UART بابت

ليکڪ: TorchIoTBootCamp
لنڪ: https://zhuanlan.zhihu.com/p/339700391
پاران: Quora

1. تعارف

Silicon Labs Zigbee گيٽ وي ڊيزائن لاءِ ميزبان + NCP حل پيش ڪيو آهي. هن فن تعمير ۾، ميزبان NCP سان UART يا SPI انٽرفيس ذريعي رابطو ڪري سگهي ٿو. عام طور تي، UART استعمال ڪيو ويندو آهي جيئن ته اهو SPI کان گهڻو آسان آهي.

Silicon Labs پڻ مهيا ڪئي آهي هڪ نموني پروجيڪٽ ميزبان پروگرام لاء، جنهن جو نمونو آهيZ3GatewayHost. نموني هڪ يونڪس جهڙو سسٽم تي هلندو آهي. ڪجهه گراهڪ شايد هڪ ميزبان نموني چاهين ٿا جيڪو RTOS تي هلائي سگهي ٿو، پر بدقسمتي سان، هن وقت تائين RTOS تي ٻڌل ميزبان نموني موجود ناهي. صارفين کي RTOS جي بنياد تي پنهنجو ميزبان پروگرام ٺاهڻ جي ضرورت آهي.

اهو ضروري آهي ته سمجھڻ لاء UART گيٽ وي پروٽوڪول هڪ ڪسٽمائيز ميزبان پروگرام کي ترقي ڪرڻ کان اڳ. UART جي بنياد تي NCP ۽ SPI جي بنياد تي NCP لاء، ميزبان NCP سان ڳالھ ٻولھ ڪرڻ لاء EZSP پروٽوڪول استعمال ڪري ٿو.EZSPلاء مختصر آهيEmberZnet سيريل پروٽوڪول، ۽ ان ۾ وضاحت ڪئي وئي آهييو جي 100. UART جي بنياد تي NCP لاءِ، EZSP ڊيٽا کي UART مٿان معتبر طور تي کڻڻ لاءِ هيٺين پرت جو پروٽوڪول لاڳو ڪيو ويو آھي، اھو آھيايس ايڇپروٽوڪول، مختصر لاءAsynchronous سيريل ميزبان. ASH بابت وڌيڪ تفصيل لاء، مهرباني ڪري ڏسويو جي 101۽يو جي 115.

EZSP ۽ ASH جي وچ ۾ لاڳاپو ھيٺ ڏنل ڊراگرام ذريعي بيان ڪري سگھجي ٿو:

1

EZSP ۽ ASH پروٽوڪول جي ڊيٽا فارميٽ ھيٺ ڏنل ڊراگرام ذريعي بيان ڪري سگھجي ٿو:

2

هن صفحي ۾، اسان UART ڊيٽا کي فريم ڪرڻ جي عمل کي متعارف ڪنداسين ۽ ڪجهه اهم فريم جيڪي گهڻو ڪري Zigbee گيٽ وي ۾ استعمال ڪيا ويندا آهن.

2. فريم ڪرڻ

عام فريمنگ جي عمل کي هيٺ ڏنل چارٽ ذريعي بيان ڪري سگهجي ٿو:

3

ھن چارٽ ۾، ڊيٽا جو مطلب آھي EZSP فريم. عام طور تي، ٺاھڻ جا عمل آھن: | نه| قدم| حوالو|

|:-|:-|:-|

|1|EZSP فريم ڀريو|UG100|

|2|ڊيٽا رينڊمائيزيشن|سيڪشن 4.3 جو UG101|

|3|ڪنٽرول بائيٽ شامل ڪريو|Chap2 ۽ Chap3 جو UG101|

|4|سي آر سي جي حساب ڪريو|سيڪشن 2.3 جو UG101|

|5|بائيٽ اسٽفنگ|سيڪشن 4.2 جو UG101|

|6|آخر پرچم شامل ڪريو|سيڪشن 2.4 جو UG101|

2.1. EZSP فريم ڀريو

EZSP فريم فارميٽ UG100 جي باب 3 ۾ ڏيکاريل آهي.

4

ڌيان ڏيو ته هي فارميٽ تبديل ٿي سگھي ٿو جڏهن SDK اپڊيٽ ٿي. جڏهن فارميٽ تبديل ٿيندو، اسان ان کي هڪ نئون نسخو نمبر ڏينداسين. جديد EZSP ورجن نمبر 8 آهي جڏهن هي آرٽيڪل لکيو ويو آهي (EmberZnet 6.8).

جيئن ته EZSP فريم فارميٽ مختلف نسخن جي وچ ۾ مختلف ٿي سگهي ٿو، اتي هڪ لازمي گهربل آهي ته ميزبان ۽ NCPلازميساڳئي EZSP ورزن سان ڪم ڪريو. ٻي صورت ۾، اهي توقع سان گفتگو نٿا ڪري سگهن.

انهي کي حاصل ڪرڻ لاء، ميزبان ۽ اين سي پي جي وچ ۾ پهريون حڪم نسخو حڪم هجڻ گهرجي. ٻين لفظن ۾، ميزبان کي ڪنهن ٻئي رابطي کان اڳ NCP جو EZSP نسخو ٻيهر حاصل ڪرڻ گهرجي. جيڪڏهن EZSP نسخو ميزبان پاسي جي EZSP ورزن سان مختلف آهي، رابطي کي ختم ڪيو وڃي.

هن جي پويان لازمي گهربل اهو آهي ته نسخي جي حڪم جي فارميٽ ڪري سگهي ٿيڪڏهن به تبديل نه ڪريو. EZSP ورجن ڪمانڊ فارميٽ ھيٺ ڏنل آھي:

5

پيٽرول فيلڊ جي وضاحت ۽ نسخي جي جواب جي شڪل UG100 جي باب 4 ۾ ڳولهي سگهجي ٿي. پيٽرول فيلڊ ميزبان پروگرام جو EZSP نسخو آهي. جڏهن هي مضمون لکيو ويو آهي، اهو 8 آهي.
7
نالو: TorchIoTBootCamp
链接: https://zhuanlan.zhihu.com/p/339700391
来源: 知乎
著作权归作者所有。商业转载请联系作者获得授权،非商业转转请注明出处.

2.2. ڊيٽا بي ترتيب ڪرڻ

تفصيلي ترتيب ڏيڻ واري عمل کي UG101 جي سيڪشن 4.3 ۾ بيان ڪيو ويو آهي. سڄو EZSP فريم بي ترتيب ٿي ويندو. randomization is exclusive-OR the EZSP فريم ۽ هڪ pseudo-random sequence.

هيٺ ڏنل pseudo-random sequence پيدا ڪرڻ جو الگورتھم آهي.

  • rand0 = 0×42
  • جيڪڏهن رنڊي جو ساٽ 0 0 آهي، randi+1 = randi >> 1
  • جيڪڏهن رنڊي جو ساٽ 0 1 آهي، randi+1 = (Randi >> 1) ^ 0xB8

2.3. ڪنٽرول بائيٽ شامل ڪريو

ڪنٽرول بائيٽ هڪ هڪ بائيٽ ڊيٽا آهي، ۽ فريم جي سر ۾ شامل ڪيو وڃي. فارميٽ هيٺ ڏنل جدول سان بيان ڪيو ويو آهي:

6

مجموعي طور تي، 6 قسم جا ڪنٽرول بائيٽ آهن. پهرين ٽي EZSP ڊيٽا سان گڏ عام فريم لاء استعمال ڪيا ويا آهن، بشمول DATA، ACK ۽ NAK. آخري ٽي استعمال ڪيا ويا آهن بغير عام EZSP ڊيٽا، بشمول RST، RSTACK ۽ ERROR.

RST، RSTACK ۽ ERROR جي شڪل سيڪشن 3.1 کان 3.3 ۾ بيان ڪئي وئي آھي.

2.4. CRC حساب ڪريو

هڪ 16-bit CRC حساب ڪيو ويو بائيٽ تي ڪنٽرول بائيٽ کان ڊيٽا جي آخر تائين. معياري CRCCCITT (g(x) = x16 + x12 + x5 + 1) 0xFFFF تي شروع ڪيو ويو آهي. سڀ کان وڌيڪ اھم بائيٽ گھٽ ۾ گھٽ اھم بائيٽ کان اڳ آھي (وڏي-انڊين موڊ).

2.5. بائيٽ ڀرڻ

جيئن UG101 جي سيڪشن 4.2 ۾ بيان ڪيو ويو آهي، خاص مقصد لاءِ استعمال ٿيل ڪجهه مخصوص بائيٽ ويل آهن. اهي قدر هيٺ ڏنل جدول ۾ ڳولهي سگهجن ٿا:

7

جڏهن اهي قيمتون فريم ۾ ظاهر ٿيندا، ڊيٽا کي هڪ خاص علاج ڪيو ويندو. - محفوظ ٿيل بائيٽ جي سامهون فرار بائيٽ 0x7D داخل ڪريو - ان محفوظ ٿيل بائيٽ جي bit5 کي واپس ڪريو

هن الگورتھم جا ڪجهه مثال هيٺ ڏجن ٿا:

8

2.6. آخر پرچم شامل ڪريو

آخري مرحلو فريم جي آخر ۾ آخري پرچم 0x7E شامل ڪرڻ آھي. ان کان پوء، ڊيٽا UART بندرگاهه ڏانهن موڪلي سگھجي ٿو.

3. ڊي فريمنگ جو عمل

جڏهن ڊيٽا UART مان ملي ٿي، اسان کي صرف ان کي ڊيڪوڊ ڪرڻ لاءِ ريورس قدم کڻڻ گهرجن.

4. حوالا


پوسٽ ٽائيم: فيبروري-08-2022
WhatsApp آن لائن چيٽ!