Údar: TorchIoTBootCamp
Nasc: https://zhuanlan.zhihu.com/p/339700391
Ó: Quora
1. Réamhrá
Tá réiteach óstach+NCP curtha ar fáil ag Silicon Labs le haghaidh dearadh geata Zigbee. Sa ailtireacht seo, is féidir leis an óstach cumarsáid a dhéanamh leis an NCP trí chomhéadan UART nó SPI. Is minic a úsáidtear UART mar go bhfuil sé i bhfad níos simplí ná SPI.
Chuir Silicon Labs tionscadal samplach ar fáil don chlár óstach freisin, arb é an sampla éZ3GatewayHost
Ritheann an sampla ar chóras cosúil le Unix. B’fhéidir go mbeadh sampla óstach ar féidir leis rith ar RTOS ag teastáil ó roinnt custaiméirí, ach ar an drochuair, níl aon sampla óstach bunaithe ar RTOS ann faoi láthair. Caithfidh úsáideoirí a gclár óstach féin a fhorbairt bunaithe ar RTOS.
Tá sé tábhachtach prótacal geata UART a thuiscint sula bhforbraítear clár óstach saincheaptha. I gcás NCP bunaithe ar UART agus NCP bunaithe ar SPI araon, úsáideann an t-óstach an prótacal EZSP chun cumarsáid a dhéanamh leis an NCP.EZSPis gearr doPrótacal Sraitheach EmberZnet, agus tá sé sainmhínithe iUG100I gcás NCP bunaithe ar UART, cuirtear prótacal ciseal íochtarach i bhfeidhm chun sonraí EZSP a iompar go hiontaofa thar UART, sin é anASHprótacal, giorrúchán doÓstach Sraitheach AsincrónachLe haghaidh tuilleadh sonraí faoi ASH, féach le do thoil arUG101agusUG115.
Is féidir an gaol idir EZSP agus ASH a léiriú leis an léaráid seo a leanas:
Is féidir formáid sonraí an EZSP agus phrótacal ASH a léiriú leis an léaráid seo a leanas:
Ar an leathanach seo, cuirfimid i láthair an próiseas chun sonraí UART a fhrámú agus roinnt frámaí eochair a úsáidtear go minic i ngeata Zigbee.
2. Frámaíocht
Is féidir an próiseas frámaithe ginearálta a léiriú leis an gcairt seo a leanas:
Sa chairt seo, ciallaíonn na sonraí fráma EZSP. Go ginearálta, is iad seo a leanas na próisis frámaithe: |Gan|Céim|Tagairt|
|:-|:-|:-|
|1|Líon Fráma EZSP|UG100|
|2|Randamú Sonraí|Roinn 4.3 de UG101|
|3|Cuir an Beart Rialaithe leis|Caibidil 2 agus Caibidil 3 de UG101|
|4|Ríomh an CRC|Alt 2.3 de UG101|
|5|Líonadh Beart|Alt 4.2 de UG101|
|6|Cuir an Bratach Deiridh leis|Alt 2.4 de UG101|
2.1. Líon Fráma EZSP
Léirítear formáid fráma EZSP i gCaibidil 3 de UG100.
Tabhair faoi deara go bhféadfadh an fhormáid seo athrú nuair a dhéantar uasghrádú ar an SDK. Nuair a athraíonn an fhormáid, tabharfaimid uimhir leagain nua di. Is é 8 an uimhir leagain is déanaí de EZSP nuair a scríobhadh an t-alt seo (EmberZnet 6.8).
Ós rud é go bhféadfadh formáid fráma EZSP a bheith difriúil idir leaganacha éagsúla, tá ceanglas éigeantach ann go gcaithfidh an t-óstach agus an NCPNÍ MÓRoibríonn siad leis an leagan céanna de EZSP. Seachas sin, ní féidir leo cumarsáid a dhéanamh mar a bhíothas ag súil leis.
Chun é sin a bhaint amach, ní mór don chéad ordú idir an t-óstach agus an NCP a bheith ina ordú leagan. Is é sin le rá, ní mór don óstach leagan EZSP an NCP a aisghabháil roimh aon chumarsáid eile. Má tá leagan an EZSP difriúil le leagan EZSP thaobh an óstaigh, ní mór an chumarsáid a chur ar ceal.
Is é an riachtanas intuigthe atá taobh thiar de seo ná gur féidir formáid an ordaithe leagan a úsáidNÁ ATHRAIGH CHOÍCHESeo a leanas formáid ordaithe leagan EZSP:
suíomh: https://zhuanlan.zhihu.com/p/339700391
ainm: 知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明。
2.2. Randamú Sonraí
Déantar cur síos mionsonraithe ar an bpróiseas randamaithe i roinn 4.3 de UG101. Déanfar fráma iomlán an EZSP a randamú. Is é an randamú ná fráma an EZSP a eisiach NÓ agus seicheamh bréag-randamach a dhéanamh.
Seo thíos an algartam chun an seicheamh bréag-randamach a ghiniúint.
- rand0 = 0×42
- más ionann giotán 0 de randi agus 0, randi+1 = randi >> 1
- más ionann giotán 0 de randi agus 1, randi+1 = (randi >> 1) ^ 0xB8
2.3. Cuir an Beart Rialaithe leis
Is sonraí aon-bheart amháin é an beart rialaithe, agus ba chóir é a chur le ceann an fhráma. Léirítear an fhormáid leis an tábla thíos:
San iomlán, tá 6 chineál beart rialaithe ann. Úsáidtear na chéad trí cinn le haghaidh frámaí coitianta le sonraí EZSP, lena n-áirítear DATA, ACK agus NAK. Úsáidtear na trí cinn dheireanacha gan sonraí EZSP coitianta, lena n-áirítear RST, RSTACK agus ERROR.
Déantar cur síos ar fhormáid an RST, an RSTACK agus an ERROR i roinn 3.1 go 3.3.
2.4. Ríomh an CRC
Ríomhtar CRC 16-giotán ar na beart ón mbeart rialaithe go dtí deireadh na sonraí. Déantar an CRCCCITT caighdeánach (g(x) = x16 + x12 + x5 + 1) a thosú go 0xFFFF. Tagann an beart is suntasaí roimh an mbeart is lú suntas (mód mór-endian).
2.5. Líonadh Beart
Mar a thuairiscítear i roinn 4.2 de UG101, tá roinnt luachanna beart curtha in áirithe a úsáidtear chun críocha speisialta. Is féidir na luachanna seo a fháil sa tábla seo a leanas:
Nuair a thaispeántar na luachanna seo sa fhráma, déanfar cóireáil speisialta ar na sonraí. – Cuir an beart éalaithe 0x7D os comhair an bheart atá curtha in áirithe – Cuir giotán5 an bheart atá curtha in áirithe sin ar ais
Seo a leanas roinnt samplaí den algartam seo:
2.6. Cuir an Bratach Deiridh leis
Is é an chéim dheireanach ná an bratach deiridh 0x7E a chur le deireadh an fhráma. Ina dhiaidh sin, is féidir na sonraí a sheoladh chuig an gcalafort UART.
3. Próiseas Dífhrámaithe
Nuair a fhaightear sonraí ón UART, ní gá dúinn ach na céimeanna droim ar ais a dhéanamh chun iad a dhíchódú.
4. Tagairtí
Am an phoist: 8 Feabhra 2022