Údar:TorchIoTBootCamp
Nasc: https://zhuanlan.zhihu.com/p/339700391
Ó: Quora
1. Réamhrá
Tá réiteach ósta+NCP curtha ar fáil ag Silicon Labs do dhearadh geata Zigbee. San ailtireacht seo, is féidir leis an ósta cumarsáid a dhéanamh leis an NCP trí chomhéadan UART nó SPI. Go coitianta, úsáidtear UART mar tá sé i bhfad níos simplí ná SPI.
Chuir Silicon Labs tionscadal samplach ar fáil freisin don chlár óstach, arb é an sampla éZ3GatewayHost
. Ritheann an sampla ar chóras atá cosúil le Unix. D'fhéadfadh go mbeadh sampla óstaigh ag teastáil ó roinnt custaiméirí ar féidir a reáchtáil ar RTOS, ach ar an drochuair, níl aon sampla óstaigh bunaithe ar RTOS ann faoi láthair. Ní mór d’úsáideoirí a gclár óstach féin a fhorbairt bunaithe ar RTOS.
Tá sé tábhachtach prótacal geata UART a thuiscint sula ndéantar clár óstach saincheaptha a fhorbairt. I gcás NCP atá bunaithe ar UART agus NCP atá bunaithe ar SPI, úsáideann an t-óstach prótacal EZSP chun cumarsáid a dhéanamh leis an NCP.EZSPis gearr le haghaidhPrótacal Srathach EmberZnet, agus sainmhínítear é iUG100. Maidir le NCP bunaithe ar UART, cuirtear prótacal ciseal níos ísle i bhfeidhm chun sonraí EZSP a iompar go hiontaofa thar UART, sin anASHprótacal, gearr le haghaidhÓstach Srathach Asincrónach. Le haghaidh tuilleadh sonraí faoi ASH, féach le do thoilUG101agusUG115.
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 an phrótacail ASH a léiriú leis an léaráid seo a leanas:
Sa leathanach seo, tabharfaimid isteach an próiseas chun sonraí UART a chumadh agus roinnt eochairfhrámaí a úsáidtear go minic i gheata 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: |Níl|Céim|Tagairt|
|:-|:-|:-|
|1|Líon an Fráma EZSP|UG100|
|2|Ranachán Sonraí|Roinn 4.3 de UG101|
|3|Cuir an Beart Rialaithe leis|Caibidil 2 agus Caibidil 3 de UG101|
|4|Ríomh an CRC|Roinn 2.3 de UG101|
|5|Líonú Beart|Roinn 4.2 de UG101|
|6|Cuir an Brat Deiridh leis|Roinn 2.4 de UG101|
2.1. Líon isteach an Fráma EZSP
Léirítear formáid fráma EZSP i gCaibidil 3 de UG100.
Tabhair aird go bhféadfadh an fhormáid seo athrú nuair a uasghrádaíonn an SDK. Nuair a athraíonn an fhormáid, tabharfaimid uimhir leagain nua dó. Is é 8 an uimhir leagain EZSP is déanaí nuair a scríobhtar an t-alt seo (EmberZnet 6.8).
Toisc go bhféadfadh formáid fhráma EZSP a bheith difriúil idir leaganacha éagsúla, tá ceanglas éigeantach ann go ndéanfadh an t-óstach agus an NCPNÍ MÓRoibriú leis an leagan EZSP céanna. 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 gurb é an chéad ordú idir an t-óstach agus an NCP an t-ordú leagan. I bhfocail eile, ní mór don óstach an leagan EZSP den NCP a aisghabháil roimh aon chumarsáid eile. Má tá an leagan EZSP difriúil leis an leagan EZSP den taobh óstaigh, ní mór deireadh a chur leis an gcumarsáid.
Is é an riachtanas intuigthe taobh thiar de seo gur féidir formáid an ordaithe leaganNÁ ATHRÚ. Tá formáid ordú leagan EZSP mar seo thíos:
suíomh: https://zhuanlan.zhihu.com/p/339700391
ainm: 知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明。
2.2. Randomization Sonraí
Tá cur síos ar an bpróiseas randamaithe mionsonraithe i gcuid 4.3 de UG101. Déanfar an fráma EZSP iomlán a randamach. Is é an randamú go eisiach-NÓ an fráma EZSP agus seicheamh bréagach-randamach.
Anseo thíos tá an t-algartam chun an seicheamh bréige randamach a ghiniúint.
- rand0 = 0×42
- má tá 0 giotán 0 randi, randi+1 = randi >> 1
- má tá 1 giotán 0 randi, randi+1 = (randi >> 1) ^ 0xB8
2.3. Cuir an Beart Rialaithe leis
Is é an beart rialaithe ná sonraí beart amháin, agus ba chóir é a chur le ceann an fhráma. Léirítear an fhormáid leis an tábla thíos:
Go hiomlá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 SONRAÍ, ACK agus NAK. Úsáidtear na trí cinn dheireanacha gan sonraí coitianta EZSP, lena n-áirítear RST, RSTACK agus ERROR.
Déantar cur síos ar fhormáid an RST, RSTACK agus ERROR i gcuid 3.1 go 3.3.
2.4. Ríomh an CRC
Ríomhtar CRC 16-giotán ar bhearta ón mbeart rialaithe go dtí deireadh na sonraí. Tá an CRCCCITT caighdeánach (g(x) = x16 + x12 + x5 + 1) tosaithe go 0xFFFF. Téann an beart is suntasaí roimh an mbeart is lú suntas (modh mór-cheann).
2.5. Líonadh Beart
Mar a thuairiscítear i gcuid 4.2 de UG101, tá roinnt luachanna beart forchoimeádta a úsáidtear chun críche speisialta. Tá na luachanna seo le fáil sa tábla seo a leanas:
Nuair a bheidh na luachanna seo le feiceáil sa fhráma, cuirfear cóir speisialta ar na sonraí. – Cuir isteach an beart éalaithe 0x7D os comhair an bhirt fhorchoimeádta - Cuir siar giotán 5 den bheart in áirithe sin
Seo thíos roinnt samplaí den algartam seo:
2.6. Cuir an Brat Deiridh leis
Is é an chéim dheireanach ná an bratach deiridh 0x7E a chur le deireadh an fhráma. Tar éis 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íl le déanamh againn ach na céimeanna droim ar ais a dhéanamh chun é a dhíchódú.
4. Tagairtí
Am poist: Feb-08-2022