Awdur:TorchIoTBootCamp
Dolen: https://zhuanlan.zhihu.com/p/339700391
Oddi wrth:Quora
1. Cyflwyniad
Mae Silicon Labs wedi cynnig datrysiad gwesteiwr+NCP ar gyfer dylunio porth Zigbee. Yn y bensaernïaeth hon, gall y gwesteiwr gyfathrebu â'r NCP trwy ryngwyneb UART neu SPI. Yn fwyaf cyffredin, defnyddir UART gan ei fod yn llawer symlach na SPI.
Mae Silicon Labs hefyd wedi darparu prosiect sampl ar gyfer y rhaglen gynnal, sef y samplZ3GatewayHost
Mae'r sampl yn rhedeg ar system debyg i Unix. Efallai y bydd rhai cwsmeriaid eisiau sampl gwesteiwr a all redeg ar RTOS, ond yn anffodus, nid oes sampl gwesteiwr sy'n seiliedig ar RTOS ar gael ar hyn o bryd. Mae angen i ddefnyddwyr ddatblygu eu rhaglen westeiwr eu hunain yn seiliedig ar RTOS.
Mae'n bwysig deall y protocol porth UART cyn datblygu rhaglen westeiwr wedi'i haddasu. Ar gyfer NCP sy'n seiliedig ar UART ac NCP sy'n seiliedig ar SPI, mae'r gwesteiwr yn defnyddio'r protocol EZSP i gyfathrebu â'r NCP.EZSPyn fyr amProtocol Cyfresol EmberZnet, ac mae wedi'i ddiffinio ynUG100Ar gyfer NCP sy'n seiliedig ar UART, gweithredir protocol haen is i gario data EZSP yn ddibynadwy dros UART, dyna'rASHprotocol, talfyriad amGwesteiwr Cyfresol AsynchronaiddAm fwy o fanylion am ASH, cyfeiriwch atUG101aUG115.
Gellir dangos y berthynas rhwng EZSP ac ASH gan y diagram canlynol:
Gellir dangos fformat data'r EZSP a'r protocol ASH gan y diagram canlynol:
Ar y dudalen hon, byddwn yn cyflwyno'r broses o fframio'r data UART a rhai fframiau allweddol a ddefnyddir yn aml ym mhorth Zigbee.
2. Fframio
Gellir darlunio'r broses fframio gyffredinol gan y siart ganlynol:
Yn y siart hon, mae'r data yn golygu'r ffrâm EZSP. Yn gyffredinol, y prosesau fframio yw: |Dim|Cam|Cyfeirnod|
|:-|:-|:-|
|1|Llenwch y Ffrâm EZSP|UG100|
|2|Hap-ddosbarthu Data|Adran 4.3 o UG101|
|3|Ychwanegu'r Beit Rheoli|Pennod 2 a Phennod 3 o UG101|
|4|Cyfrifwch y CRC|Adran 2.3 o UG101|
|5|Stwffian Beit|Adran 4.2 o UG101|
|6|Ychwanegu'r Faner Diwedd|Adran 2.4 o UG101|
2.1. Llenwch y Ffrâm EZSP
Mae fformat ffrâm EZSP wedi'i ddangos ym Mhennod 3 o UG100.
Rhowch sylw y gallai'r fformat hwn newid pan fydd yr SDK yn uwchraddio. Pan fydd y fformat yn newid, byddwn yn rhoi rhif fersiwn newydd iddo. Rhif fersiwn diweddaraf yr EZSP yw 8 pan ysgrifennwyd yr erthygl hon (EmberZnet 6.8).
Gan y gall fformat ffrâm EZSP fod yn wahanol rhwng gwahanol fersiynau, mae gofyniad gorfodol bod y gwesteiwr a'r NCPRHAIDgweithio gyda'r un fersiwn EZSP. Fel arall, ni allant gyfathrebu fel y disgwylir.
I gyflawni hynny, rhaid i'r gorchymyn cyntaf rhwng y gwesteiwr a'r NCP fod yn orchymyn fersiwn. Mewn geiriau eraill, rhaid i'r gwesteiwr adfer fersiwn EZSP o'r NCP cyn unrhyw gyfathrebu arall. Os yw'r fersiwn EZSP yn wahanol i fersiwn EZSP ochr y gwesteiwr, rhaid rhoi'r gorau i'r cyfathrebu.
Y gofyniad ymhlyg y tu ôl i hyn yw y gall fformat y gorchymyn fersiwnPEIDIWCH BYTH Â NEWIDMae fformat gorchymyn fersiwn EZSP fel a ganlyn:
cyfeiriad: https://zhuanlan.zhihu.com/p/339700391
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明。
2.2. Hap-ddosbarthu Data
Disgrifir y broses fanwl o hap-ddosbarthu yn adran 4.3 o UG101. Bydd y ffrâm EZSP gyfan yn cael ei hap-ddosbarthu. Y hap-ddosbarthu yw i eithrio'r ffrâm EZSP yn NEU a dilyniant ffug-ar hap.
Isod mae'r algorithm ar gyfer cynhyrchu'r dilyniant ffug-ar hap.
- rand0 = 0×42
- os yw bit 0 o randi yn 0, randi+1 = randi >> 1
- os yw bit 0 o randi yn 1, randi+1 = (randi >> 1) ^ 0xB8
2.3. Ychwanegu'r Beit Rheoli
Mae'r beit rheoli yn ddata un beit, a dylid ei ychwanegu at ben y ffrâm. Dangosir y fformat gyda'r tabl isod:
Mae 6 math o beit rheoli i gyd. Defnyddir y tri cyntaf ar gyfer fframiau cyffredin gyda data EZSP, gan gynnwys DATA, ACK a NAK. Defnyddir y tri olaf heb ddata EZSP cyffredin, gan gynnwys RST, RSTACK ac ERROR.
Disgrifir fformat yr RST, RSTACK a ERROR yn adran 3.1 i 3.3.
2.4. Cyfrifwch y CRC
Cyfrifir CRC 16-bit ar feitiau o'r beit rheoli hyd at ddiwedd y data. Mae'r CRCCCITT safonol (g(x) = x16 + x12 + x5 + 1) wedi'i gychwyn i 0xFFFF. Mae'r beit mwyaf arwyddocaol yn dod o flaen y beit lleiaf arwyddocaol (modd big-endian).
2.5. Stwffin Beitiau
Fel y disgrifiwyd yn adran 4.2 o UG101, mae rhai gwerthoedd beit wedi'u cadw a ddefnyddir at ddibenion arbennig. Gellir dod o hyd i'r gwerthoedd hyn yn y tabl canlynol:
Pan fydd y gwerthoedd hyn yn ymddangos yn y ffrâm, bydd triniaeth arbennig yn cael ei gwneud i'r data. – Mewnosodwch y beit dianc 0x7D o flaen y beit a gedwir – Gwrthdroi bit5 y beit a gedwir hwnnw
Isod mae rhai enghreifftiau o'r algorithm hwn:
2.6. Ychwanegu'r Faner Diwedd
Y cam olaf yw ychwanegu'r faner diwedd 0x7E at ddiwedd y ffrâm. Ar ôl hynny, gellir anfon y data i'r porthladd UART.
3. Proses Dad-fframio
Pan dderbynnir data o'r UART, does ond angen i ni wneud y camau gwrthdro i'w ddadgodio.
4. Cyfeiriadau
Amser postio: Chwefror-08-2022