Auctor:TorchIoTBootCamp
Link:https://zhuanlan.zhihu.com/p/339700391
Ex:Quora
1. Introductio
Silicon Labs solutionem "host+NCP" ad designandum portam Zigbee obtulit. In hac architectura, hospes cum NCP per interfaciem UART vel SPI communicare potest. Saepe UART adhibetur, quia multo simplicior est quam SPI.
Silicon Labs etiam exemplar propositi pro programmate hospite praebuit, quod est exemplum.Z3GatewayHost
Exemplum in systemate Unix simili currit. Quidam clientes exemplum hospitis quod in RTOS currere potest fortasse desiderant, sed infeliciter, nullum exemplum hospitis in RTOS fundatum in praesenti exstat. Usuarii suum proprium programma hospitis in RTOS fundatum evolvere debent.
Protocollum portae UART intellegere interest antequam programma hospitis personalizatum evolvatur. Tam pro NCP UART quam pro NCP SPI fundato, hospes protocollo EZSP utitur ad communicandum cum NCP.EZSPest brevis proProtocollum Seriale EmberZnet, et definitur inUG100Pro NCP fundato in UART, protocollum strati inferioris implementatur ad notitias EZSP fideliter per UART transportandas, quod est...CINISprotocollum, abbreviatio proHospes Serialis AsynchronusPlura de ASH scire cupientes videant.UG101etUG115.
Relatio inter EZSP et ASH hoc diagramma illustrari potest:
Forma datorum EZSP et protocolli ASH hoc diagramma illustrari potest:
In hac pagina, processum conformationis datorum UART et nonnullas structuras clavium quae saepe in porta Zigbee adhibentur, introducemus.
2. Formatio
Processus generalis structurae faciendae hac tabula illustrari potest:
In hac tabula, data significant structuram EZSP. In genere, processus structurae sunt: |Nullum|Gradus|Referentia|
|:-|:-|:-|
|1|Imple EZSP Frame|UG100|
|2|Randomizatione Datorum|Sectio 4.3 UG101|
|3|Adde octetum moderatorium|Caput 2 et Caput 3 UG101|
|4|CRC computa|Sectio 2.3 UG101|
|5|Byte Stuffing|Sectio 4.2 UG101|
|6|Vexillum Finis Adde|Sectio 2.4 UG101|
2.1. Imple Quadrum EZSP
Forma tramae EZSP in Capite tertio libri UG100 illustratur.
Cave ne hoc formatum mutetur cum SDK renovatur. Cum formatum mutatur, novum numerum versionis ei dabimus. Numerus versionis EZSP recentissimus est 8 cum hic articulus scribitur (EmberZnet 6.8).
Cum forma tramae EZSP inter versiones diversas differre possit, necesse est ut hospes et NCP...DEBETCum eadem versione EZSP operantur. Alioquin, ut expectatur, communicare non possunt.
Ad hoc assequendum, primum mandatum inter computatrum principale et NCP debet esse mandatum versionis. Aliis verbis, computatrum principale versionem EZSP computatri principalis ante quamlibet aliam communicationem recuperare debet. Si versio EZSP a versione EZSP partis computatri principalis differt, communicatio interrumpenda est.
Postulata huius postulatio est ut forma mandati versionis possitNUMQUAM MUTAForma mandati versionis EZSP infra se habet:
https://zhuanlan.zhihu.com/p/339700391
来源: 知乎
.
2.2. Randomizatio Datorum
Processus randomizationis accuratus in sectione 4.3 UG101 describitur. Totum schema EZSP randomizabitur. Randomizatio fit per operationem OR exclusivi inter schema EZSP et seriem pseudo-fortuitatam.
Infra est algorithmus generandi seriem pseudo-fortuitatam.
- rand0 = 0×42
- Si pars 0 functionis randi est 0, randi+1 = randi >> 1.
- Si pars 0 functionis randi est 1, randi+1 = (randi >> 1) ^ 0xB8
2.3. Adde Byte Moderationis
Octetum moderatorium (vel "control byte") est notitia unius octeti, et ad caput tramae addenda est. Forma in tabula infra illustratur:
Sex genera octetorum moderandorum in summa sunt. Tria prima ad communes imagines cum datis EZSP adhibentur, inter quae DATA, ACK et NAK. Tria ultima sine communibus datis EZSP adhibentur, inter quae RST, RSTACK et ERROR.
Forma RST, RSTACK et ERROR in sectionibus 3.1 ad 3.3 describitur.
2.4. CRC computa.
CRC sedecim-bitorum in octetis a octeto moderatorio usque ad finem datorum computatur. CRCCCITT normatum (g(x) = x16 + x12 + x5 + 1) ad 0xFFFF initiatur. Octetus maximi momenti octetum minimum momenti praecedit (modo big-endian).
2.5. Farcimen Byte
Ut in sectione 4.2 UG101 describitur, nonnulli valores octetorum reservati ad usum specialem adhibentur. Hi valores in tabula sequenti inveniri possunt:
Cum hi valores in quadro apparent, tractatio specialis datis adhibebitur. – Insere octetum evasionis 0x7D ante octetum reservatum – Inverte bit5 illius octeti reservati
Infra sunt exempla huius algorithmi:
2.6. Vexillum Finis Adde
Gradus ultimus est vexillum finale 0x7E ad finem tramae addere. Post hoc, data ad portum UART mitti possunt.
3. Processus Deframing
Cum data ab UART accepta sunt, tantum gradus inversos ad ea decodificanda facere debemus.
4. Referentiae
Tempus publicationis: VIII Februarii, MMXXII