Ùghdar: Torchiotbootcamp
Ceangal: https: //zhuananlan.zhuihu.com/p/339700391
Bho: Qura
1. Ro-ràdh
Tha lann-lann silico air a bhith a 'tabhann fuasgladh - fuasgladh NCP airson dealbhadh Geata ZigBeoe. Anns a 'ailtireachd seo, faodaidh an aoigh conaltradh leis an NCP tro eadar-aghaidh uart no spi. Mar as trice, thathas a 'cleachdadh uart oir tha e tòrr nas sìmplidh na SPI.
Tha Labs Silicon cuideachd air pròiseact sampaill a thoirt don phrògram aoigheachd, a tha na shampallZ3gatewayshost
. Bidh an sampall a 'ruith air siostam coltach ri Unix. Is dòcha gu bheil cuid de luchd-ceannach ag iarraidh sampall aoigheachd a dh 'fhaodas ruith air liosta, ach gu mì-fhortanach, chan eil sampall aoigheachd stèidhichte air RTOS ann airson an t-ùine. Feumaidh luchd-cleachdaidh am prògram aoigheachd fhèin a leasachadh stèidhichte air liostaichean.
Tha e cudromach tuigse a thoirt do phròtacal Gateway Urchel mus robh e a 'leasachadh prògram aoigheachd gnàthaichte. Dha na dà chuid NCP stèidhichte ann an Uearch, bidh an aoigh a 'cleachdadh an neach-brathaidh ezl a bhith a' conaltradh ris an NCP.Ezsptha e goirid airsonProtocol sreathach Emberznet, agus tha e air a mhìneachadh ann anUg100. Airson NCP stèidhichte air Urcher, tha protocol an ìre as ìsle air a bhuileachadh gus dàta Ezsp a ghiùlan gu earbsach thairis air uart, is e sin anLuaithreprotocol, goirid airsonAgain sreathach asyncronous. Airson tuilleadh fiosrachaidh mu luaithre, thoir sùil airUg101agusUg115.
Faodar an dàimh eadar Ezsp agus uinnseann a bhith air a nochdadh leis an diagram a leanas:
Faodar cruth dàta an Ezp agus an protocol uinnsith a nochdadh leis an diagram a leanas:
Air an duilleig seo, bheir sinn a-steach pròiseas airson a bhith a 'frèamadh dàta uart agus cuid de phrìomh fhlaidhean a tha air a chleachdadh gu tric ann an Geata Zigbee.
2. Framing
Faodar am pròiseas frèam coitcheann a nochdadh leis a 'chairt a leanas:
Anns a 'chairt seo, tha an dàta a' ciallachadh am frèam ezp. San fharsaingeachd, is e na pròiseasan leigheas: | no | Ceum | Iomradh |
|: - |::: - |::- | | |
| 1 | lìon am frèam ezp | UG100 |
| 2 | Tionndaidhean dàta | Earrann 4.3 de UG101 |
| 3 | Cuir an byte smachd agad | caibideil agus caibideil de UG101 |
| 4 | Obraich a-mach an CRC | Earrann 2.3 de UG101 |
| 5 | Stugte lìonadh | Earrann 4.2 de UG101 |
| 6 | Cuir a 'bhratach deiridh | Earrann 2.4 de Ug101 |
2.1. Lìon am frèam ezp
Chithear cruth am frèam Ezp Fameted ann an Chap 3 de UG100.
Faodaidh aire pàighidh a thoirt gu bheil an cruth seo ag atharrachadh nuair a bhios na h-ùrachadh SDK. Nuair a dh 'atharraicheas an cruth, bheir sinn àireamh dreach ùr dha. Is e an àireamh dreach ezsp as ùire 8 nuair a tha an artaigil seo sgrìobhte (Emberznet 6.8).
Mar a dh 'fhaodadh gum bi an cruth frèam ezp eadar-dhealaichte eadar dreachan eadar-dhealaichte, tha riatanas èigneachail gu bheil an aoigh agus ncpFeumaidhObraich leis an aon dreach EzSp. Rud eile, chan urrainn dhaibh conaltradh leis an aithnichear.
Gus sin a choileanadh, feumaidh a 'chiad àithne eadar an aoigh agus an NCP a bhith mar an àithne dreach. Ann am faclan eile, feumaidh an aoighean a bhith a 'leigeil às an dreach Ezsp den NCP ro chonaltradh sam bith eile. Ma tha an dreach ezsp eadar-dhealaichte le dreach Ezp den taobh aoigheachd, feumar an conaltradh a chuir a-steach.
Is e an riatanas mòintich air cùl seo gu bheil cruth an àithne an dreachNa atharraich gu bràth. Tha cruth àithne dreach EzSP coltach gu h-ìosal:
链接: https: //zhuananlan.zhhhuihu.com/p/339700391
来源: 知乎
著作权归作者所有. 商业转载请联系作者获得授权, 非商业转载请注明出处.
2.2. Air thuaiream dàta
Tha am pròiseas air thuaireamear mionaideach air a mhìneachadh ann an earrann 4.3 de UG101. Thèid am frèam ezp gu lèir a chuir air thuaiream. Tha an athar air thuaiream gu toirmeaste no an fhrèam ezp agus òrdugh mèirle-coise air thuaiream.
Gu h-ìosal tha an algorithm de bhith a 'gineadh an sreath ruith thuaiream pseudo.
- Rand0 = 0 × 42
- Ma tha bit 0 de randi 0, randi + 1 = Randi >> 1
- Ma tha bit 0 de randi 1, randi + 1 = (Randi >> 1) ^ 0xb8
2.3. Cuir ris an lonte smachd
Is e an Smachd Smachd a th 'ann an dàta aon byte, agus bu chòir a chur ri ceann na frèam. Tha an cruth air a nochdadh leis a 'chlàr gu h-ìosal:
Gu tur, tha 6 seòrsaichean de bytes smachd. Tha a 'chiad trì air an cleachdadh airson frèamaichean cumanta le dàta Ezp, a' toirt a-steach dàta, ACK agus Nak. Tha na trì mu dheireadh gan cleachdadh às aonais dàta cumanta Ezp, a 'toirt a-steach RST, RSTack agus Mearachd.
Tha cruth an RST, RSTack agus Mearachd air am mìneachadh ann an earrann 3.1 gu 3.3.
2.4. Obraich a-mach an CRC
Tha CRC 16-bit air a thomhas air bytes bhon bhriathran fo bhriathrachas gu deireadh an dàta. An corccitt àbhaisteach (G (x) = x16 + x5 + x5 + 1) air a thòiseachadh gu 0xffff. Tha am bròn as cudromaiche a 'dol roimhe le byte as cudromaiche (modh mòr-chàileachd).
2.5. Byte lìonadh
Mar a chaidh a mhìneachadh ann an Earrann 4.2 de UG101, tha cuid de luachan byte glèidhte air a chleachdadh airson adhbhar sònraichte. Gheibhear na luachan sin anns a 'chlàr a leanas:
Nuair a nochdas na luachan sin anns an fhrèam, thèid làimhseachadh sònraichte a dhèanamh air an dàta. - Cuir a-steach na byte teicheadh bho 0x7d air beulaibh an stòraidh Byte - dèan cùl ris a 'phuing sin de sin
Gu h-ìosal tha cuid de na h-eisimpleirean den algorithm seo:
2.6. Cuir am bratach deiridh ris
Is e an ceum mu dheireadh a bhith a 'cur a' bhratach deiridh 0x7e gu deireadh na frèam. Às deidh sin, faodar an dàta a chuir gu port uart.
3. Pròiseas dìmeas
Nuair a gheibhear dàta bhon Uearce, feumaidh sinn ach na ceumannan cùil a dhèanamh gus a dhì-cheadachadh.
4. Tùsan
Ùine a 'phuist: Gearran-08-2022