Mahitungod sa Zigbee EZSP UART

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

1. Pasiuna

Ang Silicon Labs nagtanyag usa ka host + NCP nga solusyon alang sa disenyo sa gateway sa Zigbee. Niini nga arkitektura, ang host mahimong makigkomunikar sa NCP pinaagi sa UART o SPI interface. Kasagaran, gigamit ang UART tungod kay mas simple kini kaysa SPI.

Naghatag usab ang Silicon Labs og sample nga proyekto alang sa host program, nga mao ang sampleZ3GatewayHost. Ang sample nagdagan sa usa ka sistema nga sama sa Unix. Ang ubang mga kustomer tingali gusto sa usa ka host sample nga mahimong modagan sa usa ka RTOS, apan sa kasubo, walay RTOS base host sample sa pagkakaron. Ang mga tiggamit kinahanglan nga maghimo sa ilang kaugalingon nga host program base sa RTOS.

Importante nga masabtan ang UART gateway protocol sa dili pa mag-develop og customized host program. Para sa NCP base sa UART ug NCP base sa SPI, gigamit sa host ang protocol sa EZSP aron makigkomunikar sa NCP.EZSPmubo alang saEmberZnet Serial Protocol, ug kini gihubit saUG100. Alang sa NCP nga nakabase sa UART, usa ka ubos nga layer nga protocol ang gipatuman aron madala ang datos sa EZSP nga kasaligan sa UART, kana angABOprotocol, mubo alang saAsynchronous nga Serial Host. Para sa dugang nga mga detalye bahin sa ASH, palihog tan-awa angUG101ugUG115.

Ang relasyon tali sa EZSP ug ASH mahimong mahulagway sa mosunod nga diagram:

1

Ang pormat sa datos sa EZSP ug ang ASH protocol mahimong mahulagway sa mosunod nga diagram:

2

Niini nga panid, among ipaila ang proseso sa pag-frame sa datos sa UART ug pipila ka yawe nga mga frame nga kanunay gigamit sa ganghaan sa Zigbee.

2. Pag-frame

Ang kinatibuk-ang proseso sa pag-frame mahimong mahulagway 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: |Wala|Lakang|Reference|

|:-|:-|:-|

|1|Ipuno ang EZSP Frame|UG100|

|2|Data Randomization|Seksyon 4.3 sa UG101|

|3|Idugang ang Control Byte|Chap2 ug Chap3 sa UG101|

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

|5|Byte Stuffing|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 gihulagway sa Chap 3 sa UG100.

4

Hatagi'g pagtagad nga kini nga format mahimong mausab kung ang SDK mag-upgrade. Kung mausab ang format, hatagan namon kini og bag-ong numero sa bersyon. Ang pinakabag-o nga numero sa bersyon sa EZSP mao ang 8 kung gisulat kini nga artikulo (EmberZnet 6.8).

Tungod kay ang EZSP frame format mahimong lahi tali sa lain-laing mga bersyon, adunay usa ka mandatory nga kinahanglanon nga ang host ug NCPKINAHANGLANpagtrabaho uban sa sama nga EZSP nga bersyon. Kung dili, dili sila makakomunikar sama sa gipaabut.

Aron makab-ot kana, ang unang sugo tali sa host ug sa NCP kinahanglang ang version command. Sa laing pagkasulti, ang host kinahanglan nga ibalik ang EZSP nga bersyon sa NCP sa wala pa ang bisan unsang ubang komunikasyon. Kung ang EZSP nga bersyon lahi sa EZSP nga bersyon sa host side, ang komunikasyon kinahanglan nga ipahunong.

Ang implicit nga kinahanglanon luyo niini mao nga ang format sa version command mahimoAYAW NA MAGBAG-O. Ang EZSP version command format sama sa ubos:

5

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

2.2. Randomization sa datos

Ang detalyado nga proseso sa randomization gihulagway sa seksyon 4.3 sa UG101. Ang tibuok EZSP frame mahimong randomized. Ang randomization kay exclusive-OR sa EZSP frame ug pseudo-random sequence.

Sa ubos mao ang algorithm sa pagmugna sa pseudo-random nga han-ay.

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

2.3. Idugang ang Control Byte

Ang control byte kay usa ka byte data, ug kinahanglang idugang sa ulo sa frame. Ang pormat gihulagway sa lamesa sa ubos:

6

Sa kinatibuk-an, adunay 6 ka matang sa control bytes. Ang unang tulo gigamit alang sa komon nga mga frame nga adunay EZSP data, lakip ang DATA, ACK ug NAK. Ang kataposang tulo gigamit nga walay komon nga datos sa EZSP, 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 usa ka 16-bit nga CRC gikalkula sa mga byte gikan sa control byte hangtod sa katapusan sa datos. Ang standard nga CRCCCITT (g(x) = x16 + x12 + x5 + 1) gisugdan sa 0xFFFF. Ang labing hinungdanon nga byte nag-una sa labing gamay nga hinungdanon nga byte (big-endian mode).

2.5. Pagpuno sa Byte

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

7

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

Sa ubos mao ang pipila ka mga pananglitan 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 pantalan sa UART.

3. De-framing nga Proseso

Kung madawat ang datos gikan sa UART, kinahanglan ra naton buhaton ang mga reverse nga lakang aron ma-decode kini.

4. Mga pakisayran


Oras sa pag-post: Peb-08-2022
WhatsApp Online nga Chat!