Derbarê Zigbee EZSP UART de

Nivîskar: TorchIoTBootCamp
Girêdana:https://zhuanlan.zhihu.com/p/339700391
Ji: Quora

1. Destpêk

Silicon Labs ji bo sêwirana dergeha Zigbee çareseriyek host+NCP pêşkêş kiriye. Di vê mîmariyê de, host dikare bi rêya navrûya UART an SPI bi NCP re têkilî dayne. Bi gelemperî, UART tê bikar anîn ji ber ku ew ji SPI pir hêsantir e.

Silicon Labs ji bo bernameya mêvandar projeyek nimûne peyda kiriye, ku ew nimûne yeZ3GatewayHostNimûne li ser pergaleke mîna Unix dixebite. Dibe ku hin xerîdar nimûneyek mêvandar bixwazin ku dikare li ser RTOS-ê bixebite, lê mixabin, niha nimûneyek mêvandar a li ser bingeha RTOS-ê tune. Bikarhêner hewce ne ku bernameya xwe ya mêvandariyê li ser bingeha RTOS-ê pêşve bibin.

Berî pêşxistina bernameyek mêvandar a xwerû, girîng e ku meriv protokola deriyê UART fam bike. Hem ji bo NCP-ya li ser bingeha UART û hem jî ji bo NCP-ya li ser bingeha SPI, mêvandar protokola EZSP bikar tîne da ku bi NCP-ê re têkilî dayne.EZSPkurt e ji boProtokola Rêzikî ya EmberZnet, û ew diUG100Ji bo NCP-ya li ser bingeha UART-ê, protokolek qata jêrîn tê bicîh kirin da ku daneyên EZSP-ê bi pêbawerî li ser UART-ê veguhezîne, ew eXWELÎprotokol, kurtenavê ji boHostê Rêzikî yê AsenkronJi bo bêtir agahdarî li ser ASH, ji kerema xwe liUG101ûUG115.

Têkiliya di navbera EZSP û ASH de dikare bi diyagrama jêrîn were nîşandan:

1

Formata daneyê ya EZSP û protokola ASH dikare bi diyagrama jêrîn were nîşandan:

2

Di vê rûpelê de, em ê pêvajoya çarçovekirina daneyên UART û hin çarçoveyên sereke yên ku bi gelemperî di deriyê Zigbee de têne bikar anîn bidin nasîn.

2. Çarçovekirin

Pêvajoya giştî ya sazkirinê dikare bi nexşeya jêrîn were xuyang kirin: +

3

Di vê nexşeyê de, dane tê wateya çarçoveya EZSP. Bi gelemperî, pêvajoyên çarçovekirinê ev in: |Na|Gav|Referans|

|:-|:-|:-|

|1|Çarçoveya EZSP tijî bike|UG100|

|2|Rasthatîkirina Daneyan|Beşa 4.3 ya UG101|

|3|Bayta Kontrolê|Beşa2 û Beşa3 ya UG101 lê zêde bike|

|4|CRC-ê hesab bike|Beşa 2.3 ya UG101|

|5|Tagirtina Bi Baytê|Beşa 4.2 ji UG101|

|6|Ala Dawî lê zêde bike|Beşa 2.4 ji UG101|

2.1. Çarçoveya EZSP tijî bike

Formata çarçoveya EZSP di Beşa 3-an a UG100-ê de tê nîşandan.

4

Bala xwe bidinê ku ev format dibe ku dema SDK were nûvekirin biguhere. Dema ku format biguhere, em ê hejmareke guhertoya nû bidinê. Hejmara guhertoya herî dawî ya EZSP dema ku ev gotar tê nivîsandin 8 e (EmberZnet 6.8).

Ji ber ku formata çarçoveya EZSP dikare di navbera guhertoyên cûda de cûda be, şertek mecbûrî heye ku mêvandar û NCPMECBÛRMAYINbi heman guhertoya EZSP re dixebitin. Wekî din, ew nikarin wekî ku tê hêvîkirin danûstandinê bikin.

Ji bo vê yekê, divê fermana yekem a di navbera mêvandar û NCP de fermana version be. Bi gotineke din, divê mêvandar berî her ragihandinek din guhertoya EZSP ya NCP-ê vegerîne. Ger guhertoya EZSP ji guhertoya EZSP ya aliyê mêvandar cuda be, divê ragihandin were betalkirin.

Pêwîstiya nepenî ya li pişt vê ew e ku formata fermana versionê dikareQET NEGUHERÎNEFormata fermana guhertoya EZSP wekî li jêr e:

5

Şirovekirinên qada parametreyê û formata bersiva guhertoyê di Beşa 4-an a UG100-ê de têne dîtin. Qada parametreyê guhertoya EZSP-ê ya bernameya mêvandar e. Dema ku ev gotar tê nivîsandin, ew 8 e.
7
Nav: TorchIoTBootCamp
链接:https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出

2.2. Rasthatîkirina Daneyan

Pêvajoya rasthatinî ya bi hûrgilî di beşa 4.3 ya UG101 de hatiye ravekirin. Tevahiya çarçoveya EZSP dê bi awayekî rasthatî were hilbijartin. Rasthatinîkirin ji bo veqetandina-AN-ya çarçoveya EZSP û rêzek pseudo-rasthatî ye.

Li jêr algorîtmaya çêkirina rêza pseudo-random e.

  • rand0 = 0×42
  • eger bita 0 a randi 0 be, randi+1 = randi >> 1
  • eger bita 0 ya randi 1 be, randi+1 = (randi >> 1) ^ 0xB8

2.3. Kontrola Byte zêde bike

Bîteya kontrolê daneyek yek byte ye, û divê li serê çarçoveyê were zêdekirin. Format bi tabloya jêrîn tê nîşandan:

6

Bi tevahî, 6 cure bytên kontrolê hene. Sê yên pêşîn ji bo çarçoveyên hevpar ên bi daneyên EZSP re têne bikar anîn, di nav de DATA, ACK û NAK. Sê yên dawîn bêyî daneyên EZSP yên hevpar têne bikar anîn, di nav de RST, RSTACK û ERROR.

Formatên RST, RSTACK û ERROR di beşên 3.1 heta 3.3 de têne ravekirin.

2.4. CRC-ê hesab bike

CRC-ya 16-bitî li ser baytan ji baytê kontrolê heta dawiya daneyê tê hesibandin. CRCCCITT-ya standard (g(x) = x16 + x12 + x5 + 1) wekî 0xFFFF tê destpêkirin. Baytê herî girîng li pêşiya baytê herî kêm girîng tê (moda big-endian).

2.5. Dagirtina bi baytê

Wekî ku di beşa 4.2 ya UG101 de hatiye vegotin, hin nirxên byte yên veqetandî hene ku ji bo armancên taybetî têne bikar anîn. Ev nirx dikarin di tabloya jêrîn de werin dîtin:

7

Dema ku ev nirx di çarçoveyê de xuya dibin, dê muameleyek taybetî bi daneyan re were kirin. - Bîteya escape 0x7D li pêşiya byte-a rezervkirî bicîh bikin - Bit5-a wê byte-a rezervkirî berevajî bikin

Li jêr çend mînakên vê algorîtmayê hene:

8

2.6. Ala Dawî lê zêde bike

Gava dawî ew e ku ala dawî 0x7E li dawiya çarçoveyê were zêdekirin. Piştî vê yekê, daneyên dikarin ji porta UART re werin şandin.

3. Pêvajoya Çarçovekirinê

Dema ku daneyên ji UART-ê têne wergirtin, em tenê hewce ne ku gavên berevajî bikin da ku wê deşîfre bikin.

4. Çavkanî


Dema weşandinê: Sibat-08-2022
Sohbeta Serhêl a WhatsAppê!