Zigbee EzSP UART- ի մասին

Հեղինակ, Torchiotbootcamp
Հղում, https: //zhuanlan.zhihu.com/p/339700391
Քուորա

1. Ներածություն

Silicon Labs- ը առաջարկել է հյուրընկալող + NCP լուծում ZigBee Gateway Design- ի համար: Այս ճարտարապետության մեջ հյուրընկալողը կարող է հաղորդակցվել NCP- ի հետ UART- ի կամ SPI ինտերֆեյսի միջոցով: Առավել հաճախ, UART- ն օգտագործվում է, քանի որ այն շատ ավելի պարզ է, քան SPI- ն:

Սիլիկոնային լաբորատորիաներն ապահովել են նաեւ հյուրընկալող ծրագրի նմուշը, որը նմուշն էZ3gatewayhostՄի շարք Նմուշը վազում է Unix- ի նման համակարգի վրա: Որոշ հաճախորդներ կարող են ցանկանալ հյուրընկալող նմուշ, որը կարող է վազել RTO- ների վրա, բայց, ցավոք, առայժմ չկա RTOS հիմնված հյուրընկալող նմուշ: Օգտագործողները պետք է զարգացնեն իրենց սեփական հյուրընկալող ծրագիրը `հիմնված RTO- ի վրա:

Կարեւոր է հասկանալ UART Gateway արձանագրությունը `նախքան հարմարեցված հյուրընկալող ծրագիր մշակելը: Թե UART- ի NCP- ի եւ SPI- ի վրա հիմնված NCP- ի համար հյուրընկալողը օգտագործում է EZSP արձանագրություն, NCP- ի հետ շփվելու համար:EZSPԿարճ էEMBERZNET սերիական արձանագրություն, եւ այն սահմանվում էUG100Մի շարք UART- ի վրա հիմնված NCP- ի համար ավելի ցածր շերտի արձանագրություն է իրականացվում EZSP- ի տվյալները, որոնք հուսալիորեն են UART- ի նկատմամբ, դա էՄոխիրԱրձանագրություն, կարճԱսինխրոն սերիական հաղորդավարՄի շարք Մոխրի մասին լրացուցիչ մանրամասների համար դիմեքUG101մի քանազորUG115.

EZSP- ի եւ Ash- ի միջեւ կապը կարող է նկարազարդվել հետեւյալ դիագրամով.

1

EZSP- ի եւ մոխրի արձանագրության տվյալների ձեւաչափը կարող է նկարազարդվել հետեւյալ դիագրամով.

2

Այս էջում մենք կներկայացնենք UART- ի տվյալները եւ որոշ հիմնական շրջանակներ կազմելու գործընթացը, որոնք հաճախ օգտագործվում են Զիգբե դարպասում:

2-ը: Շրջանակ

Ընդհանուր շրջանակի գործընթացը կարող է նկարազարդվել հետեւյալ աղյուսակով.

Գրքույկ

Այս աղյուսակում տվյալները նշանակում են EZSP շրջանակ: Ընդհանուր առմամբ, շրջանակի գործընթացներն են. | Ոչ | Քայլ | Տեղեկանք |

|: - |: - |

| 1 | լրացրեք EZSP շրջանակը | UG100 |

| 2 | տվյալների պատահականացում | UG101 բաժինը 4.3 |

| 3 | Ավելացնել հսկիչ բայթ | Lap2 եւ Chap3 - ի UG101 |

| 4 | Հաշվարկեք CRC | Բաժին 2.3-ը UG101 |

| 5 | բայթ լցոնումը | UG101 բաժինը 4.2 |

| 6 | Ավելացնել վերջի դրոշ | Բաժին 2.4-ը UG101 |

2.1. Լրացրեք EZSP շրջանակը

EZSP շրջանակի ձեւաչափը պատկերված է UG100 գլից 3-րդ մասում:

Երեք

Ուշադրություն դարձրեք, որ այս ձեւաչափը կարող է փոխվել, երբ SDK- ն արդիականացվի: Երբ ձեւաչափը փոխվում է, մենք դա կտանք նոր վարկածի համար: EZSP- ի վերջին համարը 8 է, երբ այս հոդվածը գրված է (Emberznet 6.8):

Քանի որ EZSP շրջանակի ձեւաչափը կարող է տարբեր լինել տարբեր վարկածների միջեւ, կա պարտադիր պահանջ, որը հյուրընկալողի եւ NCP- ն էՊետք էԱշխատեք նույն EZSP տարբերակի հետ: Հակառակ դեպքում նրանք չեն կարող հաղորդակցվել ինչպես եւ սպասվում է:

Դրան հասնելու համար հյուրընկալողի եւ NCP- ի միջեւ առաջին հրամանը պետք է լինի վարկածի հրամանը: Այլ կերպ ասած, հյուրընկալողը պետք է դաստիարակվի NCP- ի EZSP տարբերակը նախքան ցանկացած այլ հաղորդակցություն: Եթե ​​EZSP- ի վարկածը տարբեր է հյուրընկալող կողմի EZSP տարբերակով, հաղորդակցությունը պետք է դադարեցվի:

Դրա հետեւում ենթադրյալ պահանջն այն է, որ վարկածի հրամանի ձեւաչափը կարող էԵրբեք մի փոխեքՄի շարք EZSP տարբերակի հրամանի ձեւաչափը նման է հետեւյալին.

5

Պարամետրերի դաշտի բացատրությունները եւ վարկածի պատասխանի ձեւաչափը կարելի է գտնել UG100- ի 4-րդ մասում: Պարամետրերի դաշտը հյուրընկալող ծրագրի EZSP տարբերակն է: Երբ այս հոդվածը գրված է, 8-ն է:
Հա
作者: Torchiotbootcamp
链接: https: //zhuanlan.zhihu.com/p/339700391
来源:
著作权归作者所有. 商业转载请联系作者获得授权, 非商业转载请注明出处:

2.2. Տվյալների պատահականացում

Պատահականության մանրամասն գործընթացը նկարագրված է UG101 բաժնում: EZSP- ի ամբողջ շրջանակը պատահականորեն կլինի: Պատահականությունը բացառիկ կամ EZSP շրջանակի եւ կեղծ պատահական հաջորդականության է:

Ստորեւ բերված է կեղծ պատահական հաջորդականությունը ստեղծելու ալգորիթմը:

  • rand0 = 0 × 42
  • Եթե ​​Randi- ի բիտը 0 է, Randi + 1 = Randi >> 1
  • Եթե ​​Randi- ի բիտը 1 է, Randi + 1 = (Randi >> 1) ^ 0XB8

2.3. Ավելացնել կառավարման բայթ

Վերահսկիչ բայթը մեկ բայթային տվյալ է, եւ պետք է ավելացվի շրջանակի գլխին: Ձեւաչափը պատկերված է ստորեւ բերված աղյուսակից.

6 տարեկան

Ընդհանուր առմամբ, կա 6 տեսակի վերահսկիչ բայթ: Առաջին երեքն օգտագործվում են EZSP տվյալների, ներառյալ տվյալների, ACK- ի եւ NAK- ի ընդհանուր շրջանակների համար: Վերջին երեքը օգտագործվում են առանց EZSP- ի ընդհանուր տվյալների, ներառյալ RST, RSTACK- ը եւ սխալը:

RST, RSTack- ի եւ սխալի ձեւաչափը նկարագրված է 3.1-ից 3.3 բաժնում:

2.4. Հաշվարկել CRC- ն

16-բիթանոց CRC- ն հաշվարկվում է բայթերի վրա հսկիչ բայթից մինչեւ տվյալների ավարտը: Ստանդարտ Crcccitt (G (x) = x16 + x12 + x5 + 1) նախաստորագրվում է 0xffff: Ամենակարեւոր բայթը նախորդում է նվազագույն նշանակալի բայթը (մեծ-էնդիան ռեժիմ):

2.5. Բայթ լցոնում

Ինչպես նկարագրված է UG101- ի 4.2-րդ բաժնում, կան որոշ վերապահված բայթ արժեքներ, որոնք օգտագործվում են հատուկ նպատակով: Այս արժեքները կարելի է գտնել հետեւյալ աղյուսակում.

Հա

Երբ այդ արժեքները հայտնվում են շրջանակում, տվյալները պետք է կատարվեն հատուկ բուժում: - Տեղադրեք Escape Byte 0x7D- ը վերապահված բայթի դիմաց. Հակադարձեք այդ վերապահված բայթի բիտը

Ստորեւ ներկայացված են այս ալգորիթմի որոշ օրինակներ.

Հա

2.6. Ավելացնել վերջի դրոշը

Վերջնական քայլը վերջի վերջը 0x7e ավելացնելն է `շրջանակի ավարտին: Դրանից հետո տվյալները կարող են ուղարկվել UART նավահանգիստ:

3. Դեպի ձեւակերպում

Երբ տվյալները ստացվում են UART- ից, մենք պարզապես պետք է կատարենք հակառակ քայլերը `այն վերծանելու համար:

4. Հղումներ


Փոստի ժամանակ, FEB-08-2022
Whatsapp առցանց զրուցարան: