Mahitungod sa Zigbee EZSP UART

Awtor:TorchIoTBootCamp
Link: https://zhuanlan.zhihu.com/p/339700391
Gikan sa:Quora

1. Pasiuna

Ang Silicon Labs nagtanyag og host+NCP nga solusyon para sa Zigbee gateway design. Niini nga arkitektura, ang host makakomunikar sa NCP pinaagi sa UART o SPI interface. Kasagaran, ang UART ang gigamit kay mas simple kini kaysa SPI.

Ang Silicon Labs naghatag usab og sample nga proyekto para sa host program, nga mao ang sampleZ3GatewayHostAng sample nagdagan sa usa ka sistema nga sama sa Unix. Ang ubang mga kustomer mahimong gusto og host sample nga mahimong modagan sa usa ka RTOS, apan subo lang, walay RTOS based host sample sa pagkakaron. Ang mga tiggamit kinahanglan nga maghimo sa ilang kaugalingong host program base sa RTOS.

Importante nga masabtan ang UART gateway protocol sa dili pa maghimo og customized host program. Para sa UART based NCP ug SPI based NCP, ang host mogamit sa EZSP protocol aron makigkomunikar sa NCP.EZSPmubo para saProtokol sa Serye sa EmberZnet, ug kini gihubit saUG100Para sa UART-based NCP, usa ka lower layer protocol ang gipatuman aron madala ang datos sa EZSP nga kasaligan pinaagi sa UART, mao kana angABOprotokol, mubo alang saAsynchronous nga Serial HostPara sa dugang detalye bahin sa ASH, palihug tan-awa angUG101ugUG115.

Ang relasyon tali sa EZSP ug ASH mahimong iilustrar sa mosunod nga dayagram:

1

Ang pormat sa datos sa EZSP ug sa ASH protocol mahimong iilustrar sa mosunod nga dayagram:

2

Niini nga panid, atong ipaila ang proseso sa pag-frame sa UART data ug pipila ka key frames nga kanunay gigamit sa Zigbee gateway.

2. Pag-frame

Ang kinatibuk-ang proseso sa pag-frame mahimong iilustrar sa mosunod nga tsart:

3

Niini nga tsart, ang datos nagpasabot sa EZSP frame. Sa kinatibuk-an, ang mga proseso sa pag-frame mao ang: |Walay|Lakang|Reperensya|

|:-|:-|:-|

|1|Pun-a ang EZSP Frame|UG100|

|2|Pag-randomize sa Datos|Seksyon 4.3 sa UG101|

|3|Idugang ang Control Byte|Kapitulo 2 ug Kapitulo 3 sa UG101|

|4|Kalkulahin ang CRC|Seksyon 2.3 sa UG101|

|5|Pagpuno sa Byte|Seksyon 4.2 sa UG101|

|6|Idugang ang End Flag|Seksyon 2.4 sa UG101|

2.1. Pun-a ang EZSP Frame

Ang EZSP frame format gipakita sa Kapitulo 3 sa UG100.

4

Timan-i nga kini nga format mahimong mausab kung ang SDK mag-upgrade. Kung mausab ang format, hatagan namo kini og bag-ong numero sa bersyon. Ang pinakabag-o nga numero sa bersyon sa EZSP kay 8 sa dihang gisulat kini nga artikulo (EmberZnet 6.8).

Tungod kay ang EZSP frame format mahimong lahi tali sa lain-laing mga bersyon, adunay mandatory nga kinahanglanon nga ang host ug NCPKINAHANGLANmotrabaho sa samang bersyon sa EZSP. Kay kon dili, dili sila makakomunikar sama sa gilauman.

Aron makab-ot kana, ang unang sugo tali sa host ug sa NCP kinahanglan nga mao ang sugo sa bersyon. Sa ato pa, kinahanglan nga kuhaon sa host ang bersyon sa EZSP sa NCP sa dili pa ang bisan unsang ubang komunikasyon. Kung ang bersyon sa EZSP lahi sa bersyon sa EZSP sa host side, ang komunikasyon kinahanglan nga hunongon.

Ang gipasabot nga kinahanglanon luyo niini mao nga ang pormat sa sugo sa bersyon mahimoAYAW GAYUD MAUSABAng format sa sugo sa bersyon sa EZSP sama sa ubos:

5

Ang mga pagpasabot sa parameter field ug ang pormat sa version response makita sa Chap 4 sa UG100. Ang parameter field mao ang EZSP nga bersyon sa host program. Sa pagsulat niini nga artikulo, kini 8.
7
作者:TorchIoTBootCamp
链接:https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2.2. Pagka-randomize sa Datos

Ang detalyadong proseso sa randomization gihulagway sa seksyon 4.3 sa UG101. Ang tibuok EZSP frame i-randomize. Ang randomization mao ang pag-exclusive-OR sa EZSP frame ug usa ka pseudo-random sequence.

Sa ubos mao ang algorithm sa pagmugna sa pseudo-random sequence.

  • rand0 = 0×42
  • kon ang bit 0 sa randi kay 0, randi+1 = randi >> 1
  • kon ang bit 0 sa randi kay 1, randi+1 = (randi >> 1) ^ 0xB8

2.3. Idugang ang Control Byte

Ang control byte kay usa ka one-byte nga datos, ug kinahanglan idugang sa head sa frame. Ang format gipakita sa talaan sa ubos:

6

Sa kinatibuk-an, adunay 6 ka klase sa control byte. Ang unang tulo gigamit para sa mga komon nga frame nga adunay EZSP data, lakip ang DATA, ACK ug NAK. Ang katapusang tulo gigamit nga walay komon nga EZSP data, lakip ang RST, RSTACK ug ERROR.

Ang pormat sa RST, RSTACK ug ERROR gihulagway sa seksyon 3.1 hangtod 3.3.

2.4. Kalkulahin ang CRC

Ang 16-bit nga CRC gikalkulo sa mga byte gikan sa control byte hangtod sa katapusan sa datos. Ang standard nga CRCCCITT (g(x) = x16 + x12 + x5 + 1) gi-initialize sa 0xFFFF. Ang most significant byte nag-una sa least significant byte (big-endian mode).

2.5. Pagpuno sa Byte

Sama sa gihulagway sa seksyon 4.2 sa UG101, adunay pipila ka gireserba nga mga kantidad sa byte nga gigamit alang sa espesyal nga katuyoan. Kini nga mga kantidad makita sa mosunod nga talaan:

7

Kung kini nga mga kantidad makita sa frame, usa ka espesyal nga pagtratar ang himuon sa datos. – Isulod ang escape byte 0x7D sa atubangan sa gireserba nga byte – Baliha ang bit5 sa maong gireserba nga byte

Ania ang pipila ka mga ehemplo niini nga algorithm:

8

2.6. Idugang ang End Flag

Ang katapusang lakang mao ang pagdugang sa end flag 0x7E sa katapusan sa frame. Pagkahuman niana, ang datos mahimong ipadala sa UART port.

3. Proseso sa Pagtangtang sa mga Framing

Kung madawat ang datos gikan sa UART, kinahanglan lang natong buhaton ang baliktad nga mga lakang aron ma-decode kini.

4. Mga Reperensya


Oras sa pag-post: Pebrero-08-2022
Pakig-chat sa WhatsApp Online!