Otè : Tortoyotbootcamp
Link : https: //zhuanlan.zhihu.com/p/339700391
Soti nan : Quora
1. Entwodiksyon
Laboratwa Silisyòm te ofri yon lame+solisyon NCP pou konsepsyon pòtay zigbee. Nan achitekti sa a, lame a ka kominike ak NCP a nan koòdone UART oswa SPI. Pi souvan, UART yo itilize kòm li a pi senpl pase SPI.
Laboratwa Silisyòm te bay tou yon pwojè echantiyon pou pwogram lame a, ki se echantiyon anZ3gatewayhost
. Echantiyon an kouri sou yon sistèm UNIX ki tankou. Kèk kliyan ka vle yon echantiyon lame ki ka kouri sou yon RTOs, men malerezman, pa gen okenn RTO ki baze sou echantiyon lame pou tan an ke yo te. Itilizatè yo bezwen devlope pwòp pwogram lame yo ki baze sou RTO yo.
Li enpòtan yo konprann pwotokòl la Gateway UART anvan devlope yon pwogram lame Customized. Pou tou de UART ki baze sou NCP ak SPI ki baze sou NCP, lame a sèvi ak pwotokòl la EZSP yo kominike avèk NCP la.EZSPse kout pouEmberznet pwotokòl seri, epi li defini nanUG100. Pou UART ki baze sou NCP, se yon pwotokòl kouch pi ba aplike yo pote done EZSP fiable sou UART, ki nan laSannpwotokòl, kout pouAsenkron lame seri. Pou plis detay sou sann, tanpri al gadeUG101akUG115.
Relasyon ki genyen ant EZSP ak sann ka ilistre pa dyagram ki anba la a:
Fòma done a nan EZSP a ak pwotokòl la sann ka ilistre pa dyagram ki anba la a:
Nan paj sa a, nou pral prezante pwosesis la nan ankadre done yo UART ak kèk ankadreman kle ki yo souvan yo itilize nan Zigbee Gateway.
2. ankadreman
Ka pwosesis la ankadreman jeneral dwe ilistre pa tablo ki anba la a:
Nan tablo sa a, done yo vle di ankadreman an EZSP. An jeneral, pwosesis ankadre yo se: | Non | Etap | Referans |
|:-|:-|:-|
| 1 | Ranpli ankadreman an EZSP | UG100 |
| 2 | Done Randomization | Seksyon 4.3 nan UG101 |
| 3 | Ajoute byte kontwòl la | Chap2 ak Chap3 nan UG101 |
| 4 | Kalkile CRC | Seksyon 2.3 nan UG101 |
| 5 | Byte fars | Seksyon 4.2 nan UG101 |
| 6 | Ajoute drapo a fen | Seksyon 2.4 nan UG101 |
2.1. Ranpli ankadreman an EZSP
Se fòma nan ankadreman EZSP ilistre nan chap 3 nan UG100.
Prete atansyon ke fòma sa a ka chanje lè amelyorasyon yo SDK. Lè fòma a chanje, nou pral ba li yon nimewo vèsyon nouvo. Dènye nimewo a vèsyon EZSP se 8 lè se atik sa a ekri (Emberznet 6.8).
Kòm fòma nan ankadreman EZSP ka diferan ant vèsyon diferan, gen yon kondisyon obligatwa ki lame a ak NCPFòkTravay avèk menm vèsyon EZSP a. Sinon, yo pa ka kominike kòm espere.
Pou reyalize sa, premye lòd ant lame a ak NCP a dwe lòd vèsyon an. Nan lòt mo, lame a dwe retrive vèsyon an EZSP nan NCP a anvan nenpòt ki lòt kominikasyon. Si vèsyon an EZSP se diferan ak vèsyon an EZSP nan bò a lame, yo dwe kominikasyon an dwe abandonn.
Kondisyon an enplisit dèyè sa a se ke fòma a nan lòd la vèsyon kapabPa janm chanje. Fòma lòd EZSP vèsyon an se tankou anba a:
链接 : https: //zhuanlan.zhihu.com/p/339700391
来源 : 知乎
著作权归作者所有。商业转载请联系作者获得授权 , 非商业转载请注明出处。
2.2. Done randomizasyon
Pwosesis detaye randomizasyon an dekri nan Seksyon 4.3 nan UG101. Ap ankadreman an tout EZSP dwe randomized. Randomizasyon an se eksklizif-oswa ankadreman an EZSP ak yon sekans pseudo-o aza.
Anba la a se algorithm nan génération sekans lan pseudo-o aza.
- rand0 = 0 × 42
- Si ti jan 0 nan Randi se 0, Randi+1 = Randi >> 1
- Si ti jan 0 nan randi se 1, randi+1 = (randi >> 1) ^ 0xb8
2.3. Ajoute multiple kontwòl la
Byte nan kontwòl se yon done yon sèl multiple, epi yo ta dwe ajoute nan tèt la nan ankadreman an. Se fòma a ilistre ak tablo ki anba a:
Totalman, gen 6 kalite bytes kontwòl. Premye twa yo te itilize pou ankadreman komen ak done EZSP, ki gen ladan done, ACK ak NAK. Dènye twa yo te itilize san yo pa done komen EZSP, ki gen ladan RST, RSTACK ak erè.
Fòma a nan RST a, RSTACK ak erè yo dekri nan Seksyon 3.1 a 3.3.
2.4. Kalkile CRC la
Yon CRC 16-ti jan kalkile sou bytes soti nan byte a kontwòl jouk nan fen done yo. CRCCCITT estanda a (G (x) = x16 + x12 + x5 + 1) inisyalize a 0xffff. Byte ki pi enpòtan an presedan pi piti a siyifikatif byte (gwo-endyen mòd).
2.5. Byte fars
Jan sa dekri nan Seksyon 4.2 nan UG101, gen kèk valè multiple rezève yo itilize pou bi espesyal. Valè sa yo ka jwenn nan tablo ki anba la a:
Lè valè sa yo parèt nan ankadreman an, yo pral fè yon tretman espesyal nan done yo. - Mete chape nan byte 0x7d devan byte a rezève - ranvèse Bit5 a nan ki byte rezève
Anba a gen kèk egzanp nan algorithm sa a:
2.6. Ajoute drapo a fen
Etap final la se ajoute fen drapo 0x7E a nan fen ankadreman an. Apre sa, done yo ka voye nan pò UART la.
3. De-ankadre pwosesis
Lè done yo te resevwa nan men UART a, nou jis bezwen fè etap sa yo ranvèse dekode li.
4. Referans
Post tan: Feb-08-2022