וועגן Zigbee EZSP UART

מחבר: TorchIoTBootCamp
לינק: https://zhuanlan.zhihu.com/p/339700391
פֿון: Quora

1. הקדמה

Silicon Labs האט געפֿינט אַ באַלעבאָס + NCP לייזונג פֿאַר Zigbee גייטוויי פּלאַן. אין דעם אַרקאַטעקטשער, דער באַלעבאָס קענען יבערגעבן מיט די NCP דורך UART אָדער SPI צובינד. רובֿ קאַמאַנלי, UART איז געניצט ווייַל עס איז פיל סימפּלער ווי SPI.

סיליציום לאַבס האט אויך צוגעשטעלט אַ מוסטער פּרויעקט פֿאַר דער באַלעבאָס פּראָגראַם, וואָס איז דער מוסטערZ3GatewayHost. דער מוסטער לויפט אויף אַ יוניקס-ווי סיסטעם. עטלעכע קאַסטאַמערז קען וועלן אַ באַלעבאָס מוסטער וואָס קענען לויפן אויף אַ RTOS, אָבער ליידער, עס איז קיין RTOS באזירט באַלעבאָס מוסטער פֿאַר די צייט. יוזערז דאַרפֿן צו אַנטוויקלען זייער אייגענע באַלעבאָס פּראָגראַם באזירט אויף RTOS.

עס איז וויכטיק צו פֿאַרשטיין די UART גייטוויי פּראָטאָקאָל איידער איר אַנטוויקלען אַ קאַסטאַמייזד באַלעבאָס פּראָגראַם. פֿאַר ביידע UART באזירט NCP און SPI באזירט NCP, דער באַלעבאָס ניצט די EZSP פּראָטאָקאָל צו יבערגעבן מיט די NCP.EZSPאיז קורץ פֿאַרEmberZnet סיריאַל פּראָטאָקאָל, און עס איז דיפיינד איןUG100. פֿאַר UART באזירט NCP, אַ נידעריקער שיכטע פּראָטאָקאָל איז ימפּלאַמענאַד צו פירן EZSP דאַטן רילייאַבלי איבער UART, דאָס איז דיאַשפּראָטאָקאָל, קורץ פֿאַראַסינטשראָנאָוס סיריאַל האָסט. פֿאַר מער דעטאַילס וועגן ASH, ביטע אָפּשיקן צוUG101אוןUG115.

די באַציונג צווישן EZSP און ASH קענען זיין ילאַסטרייטיד דורך די פאלגענדע דיאַגראַמע:

1

די דאַטן פֿאָרמאַט פון די EZSP און די ASH פּראָטאָקאָל קענען זיין ילאַסטרייטיד דורך די פאלגענדע דיאַגראַמע:

2

אין דעם בלאַט, מיר וועלן פאָרשטעלן דעם פּראָצעס פון פראַמינג די UART דאַטן און עטלעכע שליסל ראָמען וואָס זענען אָפט געניצט אין Zigbee גייטוויי.

2. פראַמעינג

דער גענעראַל פראַמעינג פּראָצעס קענען זיין ילאַסטרייטיד דורך די פאלגענדע טשאַרט:

3

אין דעם טשאַרט, די דאַטן מיטל די EZSP ראַם. אין אַלגעמיין, די פראַמינג פּראַסעסאַז זענען: |ניין|שריט|רעפֿערענץ|

|:-|:-|:-|

|1|פילן די EZSP ראַם|UG100|

|2|דאַטן ראַנדאָמיזאַטיאָן|אָפּטיילונג 4.3 פון UG101|

|3|לייג די קאָנטראָל בייטע|טשאַפּ2 און טשאַפּ3 פון UG101|

|4|אויסרעכענען די CRC|אָפּטיילונג 2.3 פון UG101|

|5|ביטע סטאַפינג|אָפּטיילונג 4.2 פון UG101|

|6|לייג דעם סוף פלאַג|אָפּטיילונג 2.4 פון UG101|

2.1. פּלאָמבירן די EZSP ראַם

די EZSP ראַם פֿאָרמאַט איז ילאַסטרייטיד אין טשאַפּ 3 פון UG100.

4

באַצאָלן ופמערקזאַמקייַט אַז דעם פֿאָרמאַט קען טוישן ווען די SDK אַפּגרייד. ווען די פֿאָרמאַט ענדערונגען, מיר געבן עס אַ נייַע ווערסיע נומער. די לעצטע EZSP ווערסיע נומער איז 8 ווען דער אַרטיקל איז געשריבן (EmberZnet 6.8).

ווי די EZSP ראַם פֿאָרמאַט קען זיין אַנדערש צווישן פאַרשידענע ווערסיעס, עס איז אַ מאַנדאַטאָרי פאָדערונג אַז דער באַלעבאָס און NCPמוזןאַרבעט מיט דער זעלביקער EZSP ווערסיע. אַנדערש, זיי קענען נישט יבערגעבן ווי דערוואַרט.

צו דערגרייכן דאָס, דער ערשטער באַפֿעל צווישן די באַלעבאָס און די NCP מוזן זיין די ווערסיע באַפֿעל. אין אנדערע ווערטער, דער באַלעבאָס מוזן צוריקקריגן די EZSP ווערסיע פון ​​די נקפּ איידער קיין אנדערע קאָמוניקאַציע. אויב די EZSP ווערסיע איז אַנדערש מיט די EZSP ווערסיע פון ​​​​די באַלעבאָס זייַט, די קאָמוניקאַציע מוזן זיין אַבאָרטיד.

די ימפּליסאַט פאָדערונג הינטער דעם איז אַז דער פֿאָרמאַט פון די ווערסיע באַפֿעל קענעןקיינמאָל טוישן. די EZSP ווערסיע באַפֿעלן פֿאָרמאַט איז ווי אונטן:

5

די דערקלערונגען פון דעם פּאַראַמעטער פעלד און די פֿאָרמאַט פון די ווערסיע ענטפער קענען זיין געפֿונען אין טשאַפּ 4 פון UG100. דער פּאַראַמעטער פעלד איז די EZSP ווערסיע פון ​​דער באַלעבאָס פּראָגראַם. ווען דער אַרטיקל איז געשריבן, עס איז 8.
7
דורך: TorchIoTBootCamp
链接: https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请泤昄净

2.2. דאַטאַ ראַנדאָמיזאַטיאָן

די דיטיילד ראַנדאַמיזיישאַן פּראָצעס איז דיסקרייבד אין אָפּטיילונג 4.3 פון UG101. די גאנצע EZSP ראַם וועט זיין ראַנדאַמייזד. די ראַנדאַמיזיישאַן איז צו ויסשליסיק-אָדער די EZSP ראַם און אַ פּסעוודאָ-ראַנדאָם סיקוואַנס.

ונטער איז דער אַלגערידאַם פון דזשענערייטינג די פּסעוודאָ-ראַנדאָם סיקוואַנס.

  • ראַנד0 = 0×42
  • אויב ביסל 0 פון ראַנדי איז 0, ראַנדי+1 = רנדי >> 1
  • אויב ביסל 0 פון ראַנדי איז 1, ראַנדי+1 = (ראַנדי >> 1) ^ 0קסב8

2.3. לייג די קאָנטראָל בייט

די קאָנטראָל ביטע איז אַ איין בייט דאַטן, און זאָל זיין מוסיף צו די קאָפּ פון די ראַם. דער פֿאָרמאַט איז ילאַסטרייטיד מיט די טיש אונטן:

6

אין אַלגעמיין, עס זענען 6 טייפּס פון קאָנטראָל ביטעס. די ערשטע דריי זענען געניצט פֿאַר פּראָסט ראָמען מיט EZSP דאַטן, אַרייַנגערעכנט DATA, ACK און NAK. די לעצטע דריי זענען געניצט אָן פּראָסט EZSP דאַטן, אַרייַנגערעכנט RST, RSTACK און ERROR.

די פֿאָרמאַט פון די RST, RSTACK און ERROR זענען דיסקרייבד אין אָפּטיילונג 3.1 צו 3.3.

2.4. רעכענען די CRC

א 16-ביסל CRC איז קאַלקיאַלייטיד אויף ביטעס פֿון די קאָנטראָל ביטע ביז דעם סוף פון די דאַטן. דער נאָרמאַל CRCCCITT (ג (רענטגענ) = קס16 + קס12 + קס5 + 1) איז יניטיאַלייזד צו 0xFFFF. די מערסט באַטייַטיק ביטע פּריסידז די קלענסטער באַטייטיק בייט (גרויס-ענדיאַן מאָדע).

2.5. ביטע סטאַפינג

ווי דיסקרייבד אין אָפּטיילונג 4.2 פון UG101, עס זענען עטלעכע רעזערווירט בייט וואַלועס געניצט פֿאַר ספּעציעל ציל. די וואַלועס קענען זיין געפֿונען אין די פאלגענדע טיש:

7

ווען די וואַלועס דערשייַנען אין די ראַם, אַ ספּעציעל באַהאַנדלונג וועט זיין דורכגעקאָכט צו די דאַטן. - אַרייַנלייגן די אַנטלויפן בייט 0x7D אין פראָנט פון די רעזערווירט ביטע - פאַרקערט די bit5 פון די רעזערווירט בייט

ונטער זענען עטלעכע ביישפילן פון דעם אַלגערידאַם:

8

2.6. לייג די סוף פלאַג

די לעצט שריט איז צו לייגן די סוף פאָן 0x7E צו די סוף פון די ראַם. נאָך דעם, די דאַטן קענען זיין געשיקט צו די UART פּאָרט.

3. דע-פראַמינג פּראָצעס

ווען דאַטן זענען באקומען פון די UART, מיר נאָר דאַרפֿן צו טאָן די פאַרקערט סטעפּס צו דעקאָדע עס.

4. רעפערענצן


פּאָסטן צייט: פעברואר 08-2022
ווהאַצאַפּפּ אָנליין שמועסן!