Zigbee Ezsp Uart-i buruz

Egilea: TorchiotBootCamp
Lotura: https: //zhuanlan.zhihu.com/p/339700391
Noiztik: Quora

1. Sarrera

Silizioko laborategiek ostalari + NCP irtenbidea eskaini die ZigBee Gateway Design. Arkitektura horretan, ostalariak NCParekin komunikatu ahal izango ditu UART edo SPI interfazearen bidez. Gehienetan, UART SPIa baino askoz sinpleagoa da.

Silizioko laborategiek ere lagina da ostalariaren programarako lagin proiektua, hau da laginaZ3GatewayHost. Lagina Unix moduko sistema batean exekutatzen da. Bezero batzuek RTO batean exekutatu dezaketen ostalariaren lagina nahi dute, baina zoritxarrez, ez dago oraingoz RTOS oinarritutako ostalariaren laginik. Erabiltzaileek RTOen oinarritutako ostalari programa garatu behar dute.

Garrantzitsua da UART atebide protokoloa ulertzea, ostalari programa pertsonalizatua garatu aurretik. UART oinarritutako NCP eta SPI oinarritutako NCPrentzat, ostalariak EZSP protokoloa erabiltzen du NCPrekin komunikatzeko.Ezesplaburra daEmberznet serieko protokoloaeta eta bertan definitzen daUg100. UART-en oinarritutako NCPrentzat, beheko geruza protokoloa ezartzen da Ezsp datuak UART fidagarritasunez eramateko, hori daErrautsprotokoloa, motzaSerie ostalari asinkronikoa. Errautsari buruzko xehetasun gehiago lortzeko, ikusiUG101etaUG115.

Ezsp eta errautsaren arteko erlazioa hurrengo diagrama bidez ilustratu daiteke:

1

Ezsp eta errauts protokoloaren datuen formatua honako diagrama hau ilustratu daiteke:

2

Orrialde honetan, UART datuak eta ZigBee Gateway-n maiz erabiltzen diren funtsezko marko batzuk aurkeztuko ditugu.

2. MARKOA

Esparru-prozesu orokorra honako taula hau ilustratu daiteke:

3

Grafiko honetan, datuek Ezsp markoa esan nahi dute. Oro har, markoaren prozesuak hauek dira: | Ez | urratsa | Erreferentzia |

|: - |: - | |: - |

| 1 | Bete ezsp markoa | UG100 |

| 2 | Datuen ausazkoa | UG101 4.3 atala |

| 3 | Gehitu kontrolaren byte | Chap2 eta UG101 Chap3 |

| 4 | kalkulatu CRC | 2.3 atala UG101 |

| 5 | Byte betegarriak | UG101 4.2 atala |

| 6 | Gehitu amaierako bandera | UG101 atala 2.4 atala |

2.1 Bete ezsp markoa

Ezsp markoaren formatua UG100 3. kapitalean ilustratzen da.

4

Arreta ezazu formatu hau aldatu daitekeela SDK bertsio berritzaileak. Formatua aldatzen denean, bertsio zenbaki berri bat emango diogu. Ezsp bertsioaren azken zenbakia 8 da artikulu hau idatzita dagoenean (emberznet 6,8).

Ezsp markoaren formatua bertsio desberdinen artean desberdina izan daitekeenez, ostalaria eta NCP derrigorrezko baldintza bat dagoBehar izanlan egin Ezsp bertsio berarekin. Bestela, ezin dute espero bezala komunikatu.

Hori lortzeko, ostalariaren eta NCPren arteko lehen komandoa bertsio komandoa izan behar da. Beste modu batera esanda, ostalariak NCPren Ezsp bertsioa berriro egin behar du beste edozein komunikazioren aurretik. Ezsp bertsioa Ezberdina bada ostalariaren alde ezsp bertsioarekin, komunikazioa bertan behera utzi behar da.

Horren atzean dagoen baldintza inplizitua da bertsioaren komandoaren formatua ahal delaInoiz aldatu. Ezsp bertsioaren komando formatua behean dago:

Plu

Parametroaren eremuaren azalpenak eta bertsioaren erantzunaren formatua UG100 4. kapitalean aurki daitezke. Parametroaren eremua ostalariaren programaren ezsp bertsioa da. Artikulu hau idatzita dagoenean, 8 da.
7
作者: TorchiotBootCamp
链接: https: //zhuanlan.zhihu.com/p/339700391
来源: 知乎
著作权归作者所有. 商业转载请联系作者获得授权, 非商业转载请注明出处.

2.2. Datuen ausazkoak

Ausazko prozesu zehatza UG101 4.3 atalean deskribatzen da. Ezsp marko osoa ausazkoa izango da. Ausazkoa esklusiboa da edo ezsp markoa eta sekuentzia sasi-ausazkoa.

Jarraian, sasi-ausazko sekuentzia sortzeko algoritmoa dago.

  • rand0 = 0 × 42
  • Randi 0 bit bada 0, randi + 1 = randi >> 1
  • Bit 0 randi 1, Randi + 1 = (Randi >> 1) ^ 0xb8

2.3. Gehitu kontrol byte

Kontrol byte byte datu bat da, eta markoaren buruan gehitu behar da. Formatua beheko taularekin ilustratzen da:

Eta

Guztiz, 6 kontrol mota daude. Lehenengo hirurak Ezsp datuekin marko arruntetarako erabiltzen dira, datuak, ACK eta Nak barne. Azken hirurak ezsp datu arruntik gabe erabiltzen dira, RST, rstack eta akatsak barne.

RST formatua, rstack eta errorearen formatua 3.1 eta 3.3 atalean deskribatzen dira.

2.4. Kalkulatu CRC

16 biteko CRC batek kontrol byte-ko byteetan kalkulatzen du datuen amaiera arte. CRCCCITT (G (X) = X16 + X12 + X5 + 1) 0xffff-era hasita dago. Byte esanguratsuenak byte esanguratsuena (endiano moduko modua) da.

2.5. Byte beteak

UG101 4.2 atalean deskribatu den bezala, helburu berezietarako erabilitako byte balio batzuk daude. Balio hauek hurrengo taulan aurki daitezke:

7

Balio horiek markoan agertzen direnean, tratamendu berezi bat egingo da datuei. - Sartu Ihes byte 0x7d erreserbatutako byte aurrean - alderantzizko byte horren bit5

Jarraian, algoritmo honen adibide batzuk daude:

Eta

2.6. Gehitu amaierako bandera

Azken urratsa amaierako bandera 0x7e markoaren amaieran gehitzea da. Horren ondoren, datuak UART portuari bidali zaizkio.

3. DE-FRAMING prozesua

Uartetik datuak jasotzen direnean, alderantzizko urratsak egin behar ditugu deskodetzeko.

4. Erreferentziak


Ordua: otsailak 08-2022
Whatsapp lineako txata!