BLE fo mhiocroscop (ATTы GATTы…)

BLE fo mhiocroscop (ATTы GATTы...)

BLE fo mhiocroscop (ATTы GATTы…)

Pàirt 1, geàrr-chunntas

Tha ùine mhòr air a dhol seachad mu thràth bho chaidh a’ chiad shònrachadh airson Bluetooth 4.0 fhoillseachadh. Agus, ged a tha cuspair BLE gu math inntinneach, tha e fhathast a 'cur dheth mòran luchd-leasachaidh air sgàth cho iom-fhillte' sa tha e. Anns na h-artaigilean a rinn mi roimhe, thug mi sùil sa mhòr-chuid air an ìre as ìsle, Link Layer agus Physical Layer. Leig seo leinn a bhith a’ seachnadh a bhith a’ cleachdadh bun-bheachdan iom-fhillte agus troimh-chèile ris a’ Phròtacal Feartan (ATT) agus am Pròifil Buadh Coitcheann (GATT). Ach, chan eil àite ri dhol, gun a bhith gan tuigsinn, tha e do-dhèanta innealan co-fhreagarrach a leasachadh. An-diugh bu mhath leam an t-eòlas seo a roinn leat. Anns an artaigil agam bidh mi an urra leabhar-teacs airson luchd-tòiseachaidh bhon làrach-lìn Nordic. Mar sin leig leinn tòiseachadh.

Carson a tha a h-uile dad cho duilich?

Nam bheachd-sa, bha e soilleir sa bhad gu bheil a bhith a’ riaghladh innealan tro fhònaichean sgairteil na chuspair gu math gealltanach agus maireannach. Mar sin, cho-dhùin iad structar a dhèanamh sa bhad agus chun na h-ìre as àirde. Gus nach bi luchd-saothrachaidh diofar innealan a ’tighinn suas leis na protocolaidhean aca fhèin, a bhios an uairsin neo-fhreagarrach. Mar sin an duilgheadas. A-cheana aig a’ chiad ìre, dh’ fheuch iad ris a h-uile càil a b’ urrainn a thoirt a-steach do phròtacal BLE. Agus chan eil e gu diofar am bi e feumail nas fhaide air adhart no nach eil. A bharrachd air an sin, thug iad seachad cothrom air liosta nan innealan a leudachadh airson an ama ri teachd.

Bheir sinn sùil air an dealbh far a bheil an diagram protocol BLE air a tharraing. Tha e air a dhèanamh suas de ghrunn fillidhean. Tha an ìre corporra as ìsle (PHY) an urra ri sianal rèidio an inneil. Tha Link Layer (LL) a’ toirt a-steach an t-sreath iomlan de bytes anns an teachdaireachd a chaidh a chraoladh. Ann an artaigilean roimhe rinn sinn sgrùdadh dìreach air seo. Tha eadar-aghaidh rianadair aoigheachd (HCI) na phròtacal iomlaid eadar sreathan BLE no chips ma thèid an Rianadair agus an Neach-aoigheachd a chuir an gnìomh air diofar chips. Tha uallach air Pròtacal Smachd agus Atharrachadh Ceangal Loidsigeach (L2CAP) airson cruthachadh phasgan, frèamadh, smachd mearachd agus co-chruinneachadh pacaid. Tha uallach air Protocol Manaidsear Tèarainteachd (SMP) airson pacaidean a chrioptachadh. Tha uallach air a’ Phròifil Ruigsinneachd Coitcheann (GAP) airson a’ chiad iomlaid dàta eadar innealan gus faighinn a-mach “Cò cò”. Tha e cuideachd a’ toirt a-steach sganadh agus sanasachd. San artaigil seo cuiridh mi fòcas air an dà phàirt a tha air fhàgail den phròtacal - GATT agus ATT. Tha GATT na àrd-structar de ATT, agus mar sin tha iad ceangailte gu dlùth.

BLE fo mhiocroscop (ATTы GATTы...)

Gus an sgeulachd a dhèanamh nas sìmplidhe, bu mhath leam tionndadh gu samhlachas. Chuala mi e an àiteigin agus bu mhath leam taic a thoirt dha. Smaoinich air inneal BLE mar bhùth leabhraichean le grunn sgeilpichean. Tha gach sgeilp na chuspair fa leth. Mar eisimpleir, tha sgeilpichean againn le ficsean saidheans, matamataig, agus leabhraichean mòr-eòlais. Air gach sgeilp tha leabhraichean le cuspair sònraichte. Agus tha eadhon comharran-leabhair pàipeir le notaichean aig cuid de leabhraichean. A bharrachd air an sin, tha catalog pàipear beag againn de na leabhraichean uile. Ma chuimhnicheas tu, tha leabharlannan sgoile na bhogsa cumhang le cairtean pàipeir. Leis an samhlachas seo, is e an caibineat ìomhaigh an inneal againn. Tha sgeilpichean nan seirbheisean, tha leabhraichean nam feartan, agus tha an catalog na chlàr buadhan. Tha comharran-leabhair ann an leabhraichean nan tuairisgeulan, air am bi mi cuideachd a’ bruidhinn nas fhaide air adhart nas mionaidiche.

Tha fios aig duine sam bith a tha air innealan a leasachadh gu bheil pìosan còd coltach ris aig mòran phròiseactan. Is e an fhìrinn gu bheil comas-gnìomh co-chosmhail aig mòran innealan. Mar eisimpleir, ma tha innealan air an cumhachd le bataraidhean, bidh an duilgheadas a thaobh cosgais agus sùil a chumail air an ìre aca mar an ceudna. Tha an aon rud a 'dol airson sensors. Gu fìrinneach, dòigh-obrach stèidhichte air cuspair a thaobh prògramadh “a’ toirt seachad comas nithean a chruthachadh a bhios a’ ceangal thogalaichean agus giùlain gu aonadh fèin-chumanta a ghabhas ath-chleachdadh an uairsin”. Nam bheachd-sa, dh’ fheuch BLE ri dòigh-obrach coltach ris. Chaidh pròifilean a leasachadh le Buidheann Ùidh Sònraichte Bluetooth (SIG). Bu chòir innealan bho luchd-saothrachaidh eadar-dhealaichte aig a bheil na h-aon phròifil obrachadh le chèile gun duilgheadas. Tha pròifilean, an uair sin, a’ gabhail a-steach seirbheisean, agus seirbheisean feartan, le taic bho thuairisgeulan. San fharsaingeachd is dòcha gum bi e a’ coimhead mar seo:

BLE fo mhiocroscop (ATTы GATTы...)

Mar eisimpleir, smaoinich air an diagram pròifil de sgrùdaiche ìre cridhe (bracelet fallaineachd). Tha e air a dhèanamh suas de dhà sheirbheis agus grunn fheartan. Bhon seo bidh an rangachd pròifil a’ fàs soilleir sa bhad. Bidh feart puing-seic ag ath-shuidheachadh a’ chunntais chaiteachais calorie iomlan gu neoni.

1. Tha an t-seirbheis ìre cridhe a 'toirt a-steach trì feartan (0x180D):
    a) Feart ìre cridhe èigneachail (0x2A37)
    b) Feart suidheachadh mothachaidh bodhaig roghainneil (0x2A38)
    c) Feartan cumhach puing smachd ìre cridhe (0x2A39)
2. Seirbheis cumail suas bataraidh (0x180F):
    a) Feart ìre cosgais bataraidh èigneachail (0x2A19)

UUID

Gus am faigh sinn cothrom gun samhail air eileamaidean ìomhaigh (seirbheisean, feartan agus tuairisgeulan), feumaidh sinn an àireamhachadh ann an dòigh air choireigin. Airson an adhbhair seo, thathas a’ toirt a-steach bun-bheachd leithid ID Uile-choitcheann gun samhail (UUID) no aithnichear gun samhail. Tha an UUID air a chomharrachadh eadar camagan gach loidhne. Agus tha aon rud sònraichte an seo. Airson UUID, chuir sinn romhainn còd 16 agus 128 pìosan de dh'fhaid a chleachdadh. Carson, tha thu a’ faighneachd? Ann am protocol BLE, tha a h-uile dad mu dheidhinn glèidhteachas lùtha. Mar sin, tha meud 16 pìosan gu math reusanta. Chan eil e coltach gun tèid còrr air 65 mìle a chruthachadh a dh’ aithghearr. seirbheisean agus feartan sònraichte. Aig an àm seo, tha a h-uile dad a dh’ fhaodadh iad a bhith air a chunntadh mar-thà (cuimhnich cò às a thàinig seo - “chunnt e thu cuideachd” :-)) Eileamaidean àireamhaichte pròifilean, seirbhisean, feartan и tuairisgeulan faodaidh tu coimhead air na ceanglaichean.

Ach, tha mi a’ smaoineachadh gu bheil cuimhne aig a h-uile duine air an sgeulachd le 4 bytes de sheòlaidhean IP air an eadar-lìn. An toiseach bha sinn den bheachd gu robh sin gu leòr, ach a-nis chan urrainn dhuinn fhathast gluasad gu seòladh 6-byte. Gus nach dèanadh iad ath-aithris air a’ mhearachd seo agus gun toireadh iad spionnadh an-asgaidh do làmhan spòrsail DIYers, cho-dhùin SIG sa bhad UUID 128-bit a thoirt a-steach. Tha seo gu pearsanta a’ cur nam chuimhne an còmhlan 433 MHz gun chead, a chaidh a thoirt do gach seòrsa Kulibins bhon t-sianal rèidio. Anns a’ chùis againn, chaidh aithnichear 128-bit de sheirbheisean is fheartan àiteach. Tha seo a’ ciallachadh gun urrainn dhuinn, airson ar seirbheisean agus innealan, cha mhòr luach 128-bit sam bith a chleachdadh. Leis an aon rud, tha an coltachd gun tig thu suas leis an aon UUID buailteach gu neoni.

Gu dearbh, tha leudachadh aig UUIDan goirid 16-bit gu luach 128-bit. Anns an t-sònrachadh, canar Bluetooth Base UUID ris an leudachadh seo agus tha an luach aige 00000000-0000-1000-8000-00805F9B34FB. Ma tha, mar eisimpleir, gu bheil luach 16x0 aig a’ fheart 1234-bit UUID, bidh an luach aig an UUID 128-bit co-ionann 00001234-0000-1000-8000-00805F9B34FB. Agus tha eadhon am foirmle co-fhreagarrach air a thoirt seachad:

                                128_bit_value = 16_bit_value * 2^ 96 + Bluetooth_Base_UUID

Chan eil fhios agam cò às a thàinig an àireamh draoidheil seo. Ma tha fios aig gin de na leughadairean, leig leotha sgrìobhadh anns na beachdan (Tha neach-cleachdaidh leis am far-ainm Sinopteek air seo a dhèanamh mu thràth. Faic na beachdan). A thaobh a bhith a’ tighinn suas le UUIDan 128-bit, ann am prionnsapal faodaidh tu inneal sònraichte a chleachdadh le gineadaircò a nì air do shon.

ATTy GATTy...

Gu dearbh, an uairsin tòisichidh an spòrs. Leig leam do chuimhneachadh gu bheil ATT stèidhichte air dàimh teachdaiche-frithealaidh. A-nis tha sinn a 'coimhead air inneal an fhrithealaiche. Tha fiosrachadh ann leithid luachan mothachaidh, inbhe suidse solais, dàta àite, msaa. A-nis gu bheil a h-uile “com-pàirtiche sa chaismeachd againn” air an àireamhachadh, feumaidh sinn dòigh air choireigin a chuir ann an cuimhne an inneil. Gus seo a dhèanamh, chuir sinn iad ann an clàr ris an canar clàr buadhan. Cuimhnich seo gu math. Is e seo fìor chridhe BLE. Seo na bhios sinn a’ beachdachadh tuilleadh. A-nis canaidh sinn feart air gach loidhne. Tha an clàr seo suidhichte gu domhainn anns a 'chruach agus, mar riaghailt, chan eil cothrom dìreach againn air. Tòisichidh sinn e agus gheibh sinn thuige, ach tha na thachras a-staigh falaichte bhuainn air cùl seachd ròin.

Bheir sinn sùil air an dealbh bhon t-sònrachadh, ach roimhe sin, bu mhath leam aire a tharraing sa bhad chun troimh-chèile a tha tric a thaobh, is e sin ann an tuairisgeulan. Is e dleastanas an tuairisgeul a bhith a’ cur ris an tuairisgeul air a’ charactar. Nuair a tha feum air na comasan aige a leudachadh, thathas a’ cleachdadh tuairisgeulan. Tha iad cuideachd nam feartan, agus dìreach mar sheirbheisean agus feartan, tha iad suidhichte anns a 'chlàr buadhan. Nì sinn sgrùdadh mionaideach orra san dàrna pàirt den artaigil. Ach, uaireannan bidh tuairisgeulan a’ toirt iomradh air àireamh na loidhne anns a’ chlàr buadhan. Feumar seo a chumail ann an cuimhne. Gus troimh-chèile a sheachnadh, cleachdaidh sinn am facal “putan feart” airson na h-adhbharan sin.
BLE fo mhiocroscop (ATTы GATTы...)

Mar sin tha feart na luach air leth aig a bheil na feartan a leanas co-cheangailte ris:
1. Is e Attribute Handle clàr-amais a' chlàir a fhreagras air an fheart
2. 'S e UUID a th' ann an Seòrsa Attribute a tha a' mìneachadh a sheòrsa
3. Is e Luach Buaidh an dàta a tha air a chlàr-amais leis a' phuing buadhach
4. Is e ceadan feart am pàirt de fheart, na ceadan, nach gabh leughadh no sgrìobhadh leis a’ phròtacal buadhan

Ciamar a thuigsinn seo uile? Is e an comharradh buadhan, an ìre mhath a’ bruidhinn, an àireamh anns a’ chlàr againn.
Leigidh e le neach-dèiligidh iomradh a thoirt air feart ann an iarrtasan leughaidh no sgrìobhaidh. Is urrainn dhuinn ar loidhnichean (buadhan) àireamhachadh bho 0x0001 gu 0xFFFF. Nar co-cheangal ris a’ bhùth leabhraichean, is e seo àireamh na cairt anns a’ chatalog pàipeir. San aon dòigh, mar ann an catalog an leabharlainn, tha cairtean air an cur ann an òrdugh àireamh a tha a’ sìor fhàs. Feumaidh an àireamh de gach loidhne às deidh sin a bhith nas motha na an tè roimhe. Dìreach mar anns an leabharlann, uaireannan thèid cuid de chairtean air chall, agus mar sin còmhla rinn, is dòcha gum bi beàrnan anns an àireamh loidhne. Tha seo ceadaichte. Is e am prìomh rud gu bheil iad a 'dol air adhart mean air mhean.

Bidh an seòrsa feart a’ dearbhadh dè tha am feart a’ riochdachadh. Le samhlachas ris a’ chànan C,
far a bheil caochlaidhean boolean, àireamhach agus sreangan, mar sin tha e an seo. A rèir an t-seòrsa feart a tha sinn ag aithneachadh
leis na tha sinn a’ dèiligeadh agus mar as urrainn dhuinn cumail oirnn ag obair leis a’ fheart seo. Gu h-ìosal bheir sinn sùil air cuid de sheòrsan sònraichte de bhuadhan. Mar eisimpleir, “dearbhadh seirbheis” (0x2800), “dearbhadh caractar” (0x2803), “foillseachadh tuairisgeul” (0x2902).

Is e luach feart a fhìor bhrìgh, thoir maitheanas don tautology. Mas e sreang a th’ anns an t-seòrsa buadhan, faodaidh luach an fheart a bhith, mar eisimpleir, an sluagh-ghairm “Hello World !!!”. Mas e “dearbhadh seirbheis” a th’ anns an t-seòrsa feart, is e an luach a th’ ann an t-seirbheis fhèin. Agus uaireannan is e seo fiosrachadh mu dheidhinn càite an lorgar buadhan eile agus na feartan aca.

Leigidh ceadan feart leis an fhrithealaiche tuigsinn a bheil cothrom leughaidh no sgrìobhaidh ceadaichte.
Thoir an aire nach eil na ceadan seo a’ buntainn ach ri luach buadhan, agus chan ann ris a’ phuing, an seòrsa no an raon cead fhèin. An fheadhainn sin. ma tha clàradh feart ceadaichte, is urrainn dhuinn atharrachadh, mar eisimpleir, an loidhne “Hello World !!!” ris an loidhne “Madainn mhath”. Ach chan urrainn dhuinn casg a chuir air loidhne ùr a sgrìobhadh no an seòrsa feart atharrachadh agus an loidhne ainmeachadh mar “dearbhadh seirbheis”. Nuair a chuireas neach-dèiligidh fios gu frithealaiche, bidh an neach-dèiligidh ag iarraidh a bhuadhan. Leigidh seo leis an neach-dèiligidh fios dè as urrainn don fhrithealaiche a thoirt seachad. Ged nach eil e riatanach na luachan a leughadh agus a sgrìobhadh.

Cò ris a tha e coltach

Is e bun-bheachd GATT buadhan a chuir còmhla ann an clàr buadhan còmhla ann an òrdugh sònraichte agus loidsigeach. Bheir sinn sùil nas mionaidiche air ìomhaigh ìre cridhe gu h-ìosal. Tha an colbh as fhaide air chlì den chlàr seo roghainneil. Tha e dìreach ag innse dhuinn dè a th’ anns an loidhne seo (feart). Tha a h-uile colbh eile eòlach oirnn mu thràth.

BLE fo mhiocroscop (ATTы GATTы...)

Aig mullach gach buidheann bidh feart dearbhaidh seirbheis againn an-còmhnaidh. Tha an seòrsa aige an-còmhnaidh 0x2800, agus tha am puing an urra ri cia mheud buadhan a tha sa chlàr mu thràth. Tha na ceadan aige an-còmhnaidh ri leughadh a-mhàin, gun dearbhadh no ùghdarras. Bruidhnidh sinn mu na bun-bheachdan sin beagan nas fhaide air adhart. Is e an luach UUID eile a chomharraicheas dè an t-seirbheis a th’ ann. Anns a 'Chlàr, is e an luach 0x180D, a tha air a mhìneachadh leis an Bluetooth SIG mar sheirbheis ìre cridhe.

Às deidh an t-seirbheis ainmeachadh, thig fios mun fheart. Tha e coltach ann an cruth ri dearbhadh seirbheis. Tha an UUID aige an-còmhnaidh 0x2803, agus tha na ceadan aige an-còmhnaidh ri leughadh a-mhàin às aonais dearbhadh no ùghdarras. Bheir sinn sùil air an raon Attribute Value, anns a bheil beagan dàta. Bidh puing ann an-còmhnaidh, UUID, agus seata de fheartan. Tha na trì eileamaidean seo a’ toirt cunntas air an dearbhadh a thàinig às a dhèidh air luach caractar. Tha am puing gu nàdarrach a’ comharrachadh far a bheil an dearbhadh luach caractar anns a’ chlàr buadhan. Tha an UUID a’ mìneachadh dè an seòrsa fiosrachaidh no luach ris am faod sinn a bhith an dùil. Mar eisimpleir, an luach teòthachd, staid an t-solais solais, no luach neo-riaghailteach eile. Agus mu dheireadh feartan, a tha ag innse mar a dh'fhaodar eadar-obrachadh le luach caractar.

Tha cnap eile a’ feitheamh oirnn an seo. Tha e co-cheangailte ri ceadan feartan agus feartan caractar. Bheir sinn sùil air an dealbh de na feartan bit field bhon t-sònrachadh.

BLE fo mhiocroscop (ATTы GATTы...)

Mar a chì thu, tha raointean an seo cuideachd a bheir seachad comasan leughaidh is sgrìobhaidh. Is dòcha gu bheil thu a’ faighneachd carson a tha sinn air ceadan a leughadh/sgrìobhadh airson buadhan agus seilbh
leughadh/sgrìobhadh airson luach caractar? Nach bu chòir dhaibh a bhith an-còmhnaidh mar an ceudna? Is e an fhìrinn nach eil anns na feartan airson luach caractar ach molaidhean airson an neach-dèiligidh a chleachdar ann an GATT agus sreathan tagraidh. Is e dìreach molaidhean a tha seo mu na dh’ fhaodadh dùil a bhith aig an neach-dèiligidh bhon fheart dearbhaidh caractar. Bheir sinn sùil nas mionaidiche air seo. Dè an seòrsa ceadan a tha aig feart?

1. Ceadan ruigsinneachd:
     - leughadh
     - clàr
     - a leughadh agus a sgrìobhadh
2. Cead dearbhaidh:
     - dearbhadh a dhìth
     - chan eil feum air dearbhadh
3. Cead ceadachaidh:
     - cead a dhìth
     - chan eil feum air cead

Is e am prìomh eadar-dhealachadh eadar fuasgladh buadhan agus feartan caractar gu bheil a’ chiad fhear a’ buntainn ri frithealaichean, agus an tè mu dheireadh a’ buntainn ri teachdaichean. Faodaidh gum bi cead aig an fhrithealaiche an luach caractar a leughadh, ach dh’ fhaodadh gum bi feum air dearbhadh no cead. Mar sin, nuair a dh ’iarras an neach-dèiligidh feartan a’ charactar, gheibh sinn gu bheil leughadh ceadaichte. Ach nuair a dh'fheuchas sinn ri leughadh, gheibh sinn mearachd. Mar sin, is urrainn dhuinn bruidhinn gu sàbhailte mu phrìomhachas ceadan thairis air togalaichean. Air taobh an neach-dèiligidh, chan urrainn dhuinn eòlas fhaighinn air na ceadan a tha aig feart.

Tuairisgeul

Tillidh sinn chun bhòrd againn. Às deidh luach feart ainmeachadh, tha e comasach na dearbhaidhean buadhan a leanas a dhearbhadh:
1. Dearbhadh ùr air feartan (faodaidh mòran fheartan a bhith aig seirbheis)
2. Dearbhadh seirbheis ùr (is dòcha gu bheil mòran dhiubh sa chlàr)
3. A 'cur an cèill làmh

A thaobh feart tomhais ìre cridhe, anns a’ chlàr againn, tha dearbhadh an luach caractar an cois foillseachadh an tuairisgeul. Tha tuairisgeul na fheart le fiosrachadh a bharrachd mu fheart. Tha grunn sheòrsaichean de thuairisgeulan ann. Bruidhnidh sinn mun deidhinn gu mionaideach san dàrna pàirt den artaigil seo. Airson a-nis, cha chuir sinn fios ach air an tuairisgeul rèiteachaidh caractar teachdaiche (CCCD). Tha UUID aige co-ionann ri 0x2902. A’ cleachdadh an tuairisgeul seo, tha comas aig a’ chliant comharradh no fios a chuir air an fhrithealaiche. Tha an diofar eadar iad beag, ach fhathast ann. Chan fheum fios dearbhadh fhaighinn bhon neach-dèiligidh. Tha feum air seo, ged a tha e a’ tachairt aig ìre GATT, gun a bhith a’ ruighinn ìre an tagraidh. Carson, tha thu a’ faighneachd? Och, chan eil fhios agam seo. Leig leam dìreach a ràdh gu bheil eòlaichean Lochlannach a 'moladh a bhith a' cleachdadh brathan. A bharrachd air an sin, bidh sgrùdadh air ionracas a ’phacaid (a’ cleachdadh CRC) anns gach cùis.

co-dhùnadh

Aig deireadh an artaigil bu mhath leam seo a ràdh. Tha an clàr mu dheireadh beagan troimh-chèile. Ach, thagh mi e oir tha e air a thoirt a-steach artaigilair a bheil mi an urra. Anns an dàrna pàirt den artaigil agam, tha mi an dùil sgrùdadh nas doimhne a dhèanamh air sònrachadh BlueTooth 4.0. Tha barrachd dhiagraman agus dealbhan ceart a’ feitheamh rinn an sin. Anns an treas pàirt, bu mhath leam an log a fhuaireadh a ’cleachdadh a’ phrògram Wireshark bho aon de na h-innealan a pharsadh agus “beò” fhaicinn a h-uile teòiridh a tha sinn a’ sgrùdadh.

Neach-obrach Buidheann nan Companaidhean "Satailteach Chaesar"
Pecherskikh Vladimir

Source: www.habr.com

Cuir beachd ann