BLE a karkashin na'urar microscope (ATTы GATTы…)

BLE a karkashin na'urar microscope (ATTы GATTы...)

BLE a karkashin na'urar microscope (ATTы GATTы…)

Kashi na 1, bayyani

An daɗe sosai tun lokacin da aka fitar da ƙayyadaddun bayanai na farko na Bluetooth 4.0. Kuma, kodayake batun BLE yana da ban sha'awa sosai, har yanzu yana kashe masu haɓakawa da yawa saboda sarkar sa. A cikin kasidu na da suka gabata, na fi duba mafi ƙanƙanta matakin, Link Layer da Physical Layer. Wannan ya ba mu damar guje wa yin amfani da irin wannan hadaddun ra'ayoyi masu rikitarwa kamar ƙa'idar Attribute Protocol (ATT) da Babban Siffar Sifa (GATT). Duk da haka, babu inda za a je, ba tare da fahimtar su ba, ba shi yiwuwa a samar da na'urori masu jituwa. A yau zan so in raba muku wannan ilimin. A cikin labarina zan dogara littafin rubutu don masu farawa daga gidan yanar gizon Nordic. Don haka mu fara.

Me ya sa komai ke da wuya?

A ra'ayi na, nan da nan ya bayyana a fili cewa sarrafa na'urori ta wayoyin hannu wani batu ne mai matukar alfanu kuma mai dorewa. Saboda haka, sun yanke shawarar tsara shi nan da nan kuma zuwa iyakar. Ta yadda masu kera na’urori daban-daban ba za su fito da nasu ka’idojin ba, wadanda a lokacin ba za su dace ba. Don haka wahala. Tuni a matakin farko, sun yi ƙoƙari su matse duk abin da zai yiwu a cikin ka'idar BLE. Kuma ba kome ko zai yi amfani daga baya ko a'a. Bugu da kari, sun ba da damar fadada jerin na'urorin don nan gaba.

Bari mu kalli hoton inda aka zana zane-zane na BLE. Ya ƙunshi yadudduka da yawa. Mafi ƙanƙanta, Layer na zahiri (PHY) shine ke da alhakin tashar rediyon na'urar. Link Layer (LL) ya ƙunshi gabaɗayan jerin bytes a cikin saƙon da aka watsa. A cikin kasidun da suka gabata mun yi nazari daidai wannan. Mai Gudanarwa Mai Gudanarwa (HCI) yarjejeniya ce ta musanya tsakanin BLE layers ko kwakwalwan kwamfuta idan an aiwatar da Mai Gudanarwa da Mai watsa shiri akan kwakwalwan kwamfuta daban-daban. Ikon Haɗin Haɗin Mahimmanci da Yarjejeniyar daidaitawa (L2CAP) yana da alhakin ƙirƙirar fakiti, tsarawa, sarrafa kuskure da haɗa fakiti. Tsaro Manager Protocol (SMP) yana da alhakin ɓoye fakiti. Bayanan Bayani na Gabaɗaya (GAP) shine ke da alhakin fara musayar bayanai tsakanin na'urori don tantance "Wane ne wane". Hakanan ya haɗa da dubawa da talla. A cikin wannan labarin zan mayar da hankali kan ragowar sassan biyu na yarjejeniya - GATT da ATT. GATT babban tsarin ATT ne, don haka suna da alaƙa da juna.

BLE a karkashin na'urar microscope (ATTы GATTы...)

Don sauƙaƙe labarin, Ina so in juya zuwa misali. Na ji shi a wani wuri kuma ina so in goyi bayansa. Yi la'akari da na'urar BLE azaman akwatunan littattafai tare da ɗakunan ajiya da yawa. Kowane shiryayye jigo ne daban. Misali, muna da rumfuna masu almarar kimiyya, lissafi, da encyclopedias. A kan kowane shiryayye akwai littattafai masu takamaiman batu. Kuma wasu littattafai ma suna da alamun takarda da rubutu. Bugu da kari, muna da ƙaramin kasida na duk littattafai. Idan kun tuna, ɗakunan karatu na makaranta kunkuntar akwati ne mai katunan takarda. Tare da wannan kwatankwacin, majalisa shine bayanin martabar na'urar mu. Shelves sabis ne, littattafai halaye ne, kuma kasidar tebur ce ta sifa. Alamomi a cikin littattafai sune masu bayyanawa, wanda zan yi magana game da su a gaba dalla-dalla.

Duk wanda ya ƙera na'urori ya san cewa ayyuka da yawa suna da nau'ikan lambobi iri ɗaya. Gaskiyar ita ce yawancin na'urori suna da ayyuka iri ɗaya. Misali, idan na'urorin suna da batura, to matsalar caji da saka idanu akan matakinsu zai kasance iri ɗaya. Haka ke ga na'urori masu auna firikwensin. A haƙiƙa, tsarin da ya dace da abu ga shirye-shirye "Yana ba da ikon ƙirƙirar abubuwa waɗanda ke haɗa kadarori da ɗabi'a cikin haɗin kai wanda za'a iya sake amfani da shi". A ra'ayi na, BLE yayi ƙoƙarin irin wannan hanya. Ƙungiya ta Musamman ta Bluetooth (SIG) ta haɓaka bayanan martaba. Na'urori daga masana'antun daban-daban waɗanda ke da bayanan martaba iri ɗaya yakamata suyi aiki tare da juna ba tare da wahala ba. Bayanan martaba, bi da bi, sun ƙunshi ayyuka, da sabis na halaye, waɗanda aka ƙara su da masu siffantawa. Gabaɗaya yana iya zama kamar haka:

BLE a karkashin na'urar microscope (ATTы GATTы...)

Misali, yi la'akari da zanen bayanin martaba na mai lura da yawan bugun zuciya (mundayen motsa jiki). Ya ƙunshi ayyuka biyu da halaye da yawa. Daga gare ta, matsayi na bayanin martaba ya bayyana nan da nan. Siffar wurin bincike tana sake saita jimillar kashe kuɗin kalori zuwa sifili.

1. Sabis ɗin bugun zuciya ya ƙunshi halaye guda uku (0x180D):
    a) Halin bugun zuciya na wajibi (0x2A37)
    b) Halin matsayi na firikwensin jiki na zaɓi (0x2A38)
    c) Halayen yanayi na wurin sarrafa bugun zuciya (0x2A39)
2. Sabis na kula da baturi (0x180F):
    a) Halin matakin cajin baturi na wajibi (0x2A19)

UUID

Domin mu sami dama ga abubuwan bayanan martaba na musamman (ayyuka, halaye da masu siffantawa), muna buƙatar ƙididdige su duka ko ta yaya. Don wannan dalili, an gabatar da ra'ayi kamar ID na Musamman na Duniya (UUID) ko Mai Gano Na Musamman na Duniya. Ana nuna UUID a maƙallan kowane layi. Kuma akwai wani peculiarity a nan. Don UUID, mun yanke shawarar amfani da lambar 16 da 128 a tsayi. Me yasa, kuna tambaya? A cikin ka'idar BLE, komai game da kiyaye makamashi ne. Saboda haka, girman 16-bit yana da ma'ana sosai. Yana da wuya a ƙirƙiri fiye da dubu 65 nan gaba. ayyuka na musamman da halaye. A halin yanzu, an riga an ƙidaya duk abin da za a iya ƙidaya (ku tuna inda wannan ya fito - "ya ƙidaya ku ma" :-)) Abubuwa masu ƙidaya. bayanan martaba, na ayyuka, halaye и masu bayyanawa za ku iya duba mahaɗin.

Duk da haka, ina tsammanin kowa yana tunawa da labarin tare da 4 bytes na adiresoshin IP akan Intanet. Da farko mun yi tunanin hakan ya isa, amma yanzu har yanzu ba za mu iya canzawa zuwa adireshin 6-byte ba. Don kar a maimaita wannan kuskuren kuma a ba da kyauta ga hannun masu wasa na DIYers, nan da nan SIG ya yanke shawarar gabatar da UUIDs 128-bit. Wannan da kaina yana tunatar da ni game da rukunin 433 MHz mara lasisi, wanda aka baiwa kowane nau'in Kulibins daga tashar rediyo. A cikin yanayinmu, an ƙirƙiri mai gano ayyuka da halaye 128-bit. Wannan yana nufin cewa mu, don ayyukanmu da na'urorinmu, za mu iya amfani da kusan kowace ƙima 128-bit. Duk iri ɗaya ne, yuwuwar fitowa da UUID iri ɗaya yana nufin sifili.

A zahiri, gajeriyar UUIDs 16-bit suna da haɓaka su zuwa ƙimar 128-bit. A cikin ƙayyadaddun bayanai, ana kiran wannan tsawo na Bluetooth Base UUID kuma yana da ƙimar 00000000-0000-1000-8000-00805F9B34FB. Idan, alal misali, sifa 16-bit UUID yana da darajar 0x1234, to, daidai 128-bit UUID zai sami darajar 00001234-0000-1000-8000-00805F9B34FB. Kuma ko da dabarar da ta dace an ba da ita:

                                128_bit_value = 16_bit_darajar * 2^96 + Bluetooth_Base_UUID

Ban san daga ina wannan lambar sihirin ta fito ba. Idan wani daga cikin masu karatu ya sani, bari su rubuta a cikin sharhi (Mai amfani da sunan barkwanci Sinopteek ya riga ya yi wannan. Dubi sharhi). Amma game da fitowa da UUIDs 128-bit, a ka'ida zaka iya amfani da na musamman janaretawa zai yi maka.

GATT da...

A gaskiya, to, jin dadi ya fara. Bari in tunatar da ku cewa ATT ya dogara ne akan dangantakar abokin ciniki da uwar garken. Yanzu muna kallon na'urar uwar garke. Ya ƙunshi bayanai kamar ƙimar firikwensin, yanayin sauya haske, bayanan wuri, da sauransu. Yanzu da aka ƙididdige duk “masu shiga faretin mu”, muna buƙatar sanya su ko ta yaya a cikin ƙwaƙwalwar na'urar. Don yin wannan, mun sanya su a cikin tebur da ake kira sifa mai sifa. Ku tuna da wannan da kyau. Wannan shine ainihin zuciyar BLE. Wannan shi ne abin da za mu yi la'akari da shi. Yanzu za mu kira kowane layi sifa. Wannan tebur yana cikin zurfi a cikin tari kuma, a matsayin mai mulkin, ba mu da damar kai tsaye zuwa gare shi. Mun fara shi kuma mu isa gare shi, amma abin da ke faruwa a ciki yana ɓoye daga gare mu a bayan hatimi bakwai.

Bari mu kalli hoton daga ƙayyadaddun bayanai, amma kafin wannan, Ina so in jawo hankali nan da nan zuwa ga rikicewar rikice-rikice a cikin sharuɗɗan, wato a cikin masu bayyanawa. Matsayin mai bayanin shine don cika bayanin sifa. Lokacin da ya zama dole don fadada iyawar sa, to ana amfani da masu siffantawa. Su ma sifofi ne, kuma kamar ayyuka da halaye, suna cikin teburin sifa. Za mu bincika su dalla-dalla a kashi na biyu na labarin. Koyaya, wasu lokuta masu siffantawa suna komawa zuwa lambar jere a cikin sifa. Dole ne a kiyaye wannan a zuciya. Don guje wa ruɗani, za mu yi amfani da kalmar “mai nuna alama” don waɗannan dalilai.
BLE a karkashin na'urar microscope (ATTы GATTы...)

Don haka sifa ita ce ƙima mai hankali wacce ke da abubuwan da ke tattare da ita:
1. Hannun sifa shine ma'aunin tebur wanda yayi daidai da sifa
2. Nau'in Siffar UUID ne da ke bayyana nau'insa
3. Ƙimar Siffar ita ce bayanan da aka lissafta ta hanyar ma'anar sifa
4. Izinin sifa wani ɓangare ne na sifa, izini, waɗanda ba za a iya karantawa ko rubuta su ta amfani da ka'idar sifa ba.

Yadda za a gane duk wannan? Ma'anar sifa ita ce, in mun gwada da magana, lambar sa a teburin mu.
Yana ba abokin ciniki damar yin la'akari da sifa a cikin buƙatun karantawa ko rubutawa. Za mu iya ƙidaya layukan mu (halayen) daga 0x0001 zuwa 0xFFFF. A cikin haɗin gwiwarmu da akwatin littafi, wannan shine lambar katin a cikin kundin takarda. Hakazalika, kamar yadda yake a cikin kasidar ɗakin karatu, ana tsara katunan a cikin ƙara yawan tsari. Dole ne adadin kowane layi na gaba ya fi na baya. Kamar a cikin ɗakin karatu, wani lokacin wasu katunan suna ɓacewa, don haka tare da mu, za a iya samun gibi a cikin lambar layi. An halatta wannan. Babban abu shine suna tafiya a hankali.

Nau'in sifa yana ƙayyade abin da sifa ke wakilta. Ta hanyar kwatanta da harshen C,
inda akwai boolean, masu canji na lambobi da kirtani, don haka yana nan. Ta nau'in sifa muna gane
abin da muke fama da shi da kuma yadda za mu ci gaba da aiki tare da wannan sifa. A ƙasa za mu kalli wasu takamaiman nau'ikan halaye. Misali, "Sanarwar sabis" (0x2800), "bayani na dabi'a" (0x2803), "bayani da bayanin" (0x2902).

Darajar sifa ita ce ainihin ma'anarsa, gafarta wa tautology. Idan nau'in sifa shine kirtani, to ƙimar sifa na iya zama, alal misali, taken "Hello World !!!". Idan nau'in sifa "bayanin sabis", to ƙimar sa sabis ɗin kanta. Kuma wani lokacin wannan bayani ne game da inda za a sami wasu halaye da kaddarorin su.

Izinin sifa yana ba uwar garken damar fahimtar ko an yarda da damar karatu ko rubuta.
Lura cewa waɗannan izini suna aiki ne kawai ga ƙimar sifa, kuma ba ga mai nuni ba, nau'in, ko filin izini da kanta. Wadancan. idan an yarda rikodin sifa, to, zamu iya canza, alal misali, layin "Hello Duniya !!!" zuwa layin "Barka da safiya". Amma ba za mu iya hana rubuta sabon layi ba ko canza nau'in sifa da sanya layin a matsayin "bayani na sabis". Lokacin da abokin ciniki ya tuntuɓi uwar garken, abokin ciniki yana buƙatar halayensa. Wannan yana bawa abokin ciniki damar sanin abin da uwar garken zai iya bayarwa. Ko da yake ba lallai ba ne a karanta da rubuta dabi'u.

Me yayi kama

Manufar GATT ita ce haɗa sifofi a cikin tebur na sifa tare cikin ƙayyadaddun tsari da ma'ana. Bari mu dubi bayanan bugun zuciya da ke ƙasa. Shagon hagu na wannan tebur na zaɓi ne. Kawai yana bayyana mana menene wannan layin (siffar). Duk sauran ginshiƙan sun riga sun saba mana.

BLE a karkashin na'urar microscope (ATTы GATTы...)

A saman kowane rukuni koyaushe muna da sifa ta sanarwar sabis. Nau'in sa koyaushe 0x2800 ne, kuma mai nuni ya dogara da halaye nawa ne riga a cikin tebur. Izininta koyaushe ana karantawa-kawai, ba tare da wani tabbaci ko izini ba. Za mu yi magana game da waɗannan ra'ayoyin kaɗan daga baya. Ƙimar wani UUID ne wanda ke gano menene sabis ɗin. A cikin Teburin, ƙimar ita ce 0x180D, wanda Bluetooth SIG ya ayyana azaman sabis ɗin bugun zuciya.

Bayan sanarwar sabis ɗin, ya zo da sanarwar halayen. Yayi kama da siga zuwa sanarwar sabis. UUID ɗin sa koyaushe 0x2803 ne, kuma izini koyaushe ana karantawa kawai ba tare da wani tabbaci ko izini ba. Mu kalli filin darajar Sifa, wanda ya haɗa da wasu bayanai. Koyaushe yana ƙunshi mai nuni, UUID, da saitin kaddarorin. Waɗannan abubuwa guda uku suna bayyana bayanin ƙimar sifa ta gaba. Mai nuni a zahiri yana nuna wurin ayyana ƙimar sifa a cikin sifa. UUID ya bayyana irin nau'in bayanai ko ƙimar da za mu iya tsammani. Misali, ƙimar zafin jiki, yanayin canjin haske, ko wata ƙima ta sabani. Kuma a ƙarshe kaddarorin, waɗanda ke bayyana yadda za a iya hulɗa da ƙimar halayyar.

Wani rami yana jiran mu a nan. Yana da alaƙa da izinin sifa da kaddarorin halaye. Bari mu kalli hoton kaddarorin filin bit daga ƙayyadaddun bayanai.

BLE a karkashin na'urar microscope (ATTы GATTы...)

Kamar yadda kake gani, akwai kuma filayen nan waɗanda ke ba da damar karatu da rubutu. Wataƙila kuna mamakin dalilin da yasa muka karanta/rubutu izini don sifa da dukiya
karanta/rubutu don ƙimar siffa? Shin bai kamata su kasance koyaushe ba? Gaskiyar ita ce kaddarorin don ƙimar halayen haƙiƙa shawarwari ne kawai ga abokin ciniki da aka yi amfani da shi a cikin matakan GATT da aikace-aikace. Waɗannan alamu ne kawai game da abin da abokin ciniki zai iya tsammanin daga sifa ta sifa. Bari mu dubi wannan dalla-dalla. Wadanne nau'ikan izini ne sifa ke da shi?

1. Izinin shiga:
     - karatu
     - rikodin
     - karanta da rubutu
2. Izinin tabbaci:
     - ana buƙatar tabbaci
     - babu wani tabbaci da ake bukata
3. Izinin izini:
     - izini da ake bukata
     - babu izini da ake buƙata

Babban bambanci tsakanin ƙudurin sifa da halayen halayen shi ne cewa tsohon yana amfani da sabobin, kuma na ƙarshe ga abokan ciniki. Ana iya ƙyale uwar garken ya karanta ƙimar sifa, amma yana iya buƙatar tabbaci ko izini. Sabili da haka, lokacin da abokin ciniki ya buƙaci kaddarorin halayen, za mu karɓi cewa an yarda da karatun. Amma idan muka yi ƙoƙari mu karanta, muna samun kuskure. Don haka, zamu iya magana cikin aminci game da fifikon izini akan kaddarorin. A gefen abokin ciniki, ba za mu iya samun ilimin abin da izini wani sifa yake da shi ba.

Bayani

Mu koma teburin mu. Bayan ayyana ƙimar sifa, za a iya bayyana sifa masu zuwa:
1. Sabbin ayyana halaye (sabis na iya samun halaye da yawa)
2. Sabuwar sanarwar sabis (akwai yawancin su a cikin tebur)
3. Bayyana abin hannu

A cikin yanayin yanayin ma'auni na zuciya, a cikin tebur ɗinmu, bayanin ƙimar ƙimar yana tare da bayyana ma'anar. Mai kwatanta sifa ce mai ƙarin bayani game da sifa. Akwai nau'ikan masu siffantawa da yawa. Za mu yi magana game da su dalla-dalla a kashi na biyu na wannan labarin. A yanzu, za mu taɓa Ƙwararrun Halayen Abokin Ciniki (CCCD) kawai. Yana da UUID daidai da 0x2902. Amfani da wannan bayanin, abokin ciniki yana da ikon kunna nuni ko sanarwa akan sabar. Bambanci tsakanin su kadan ne, amma har yanzu akwai. Sanarwa baya buƙatar tabbatar da karɓa daga abokin ciniki. Nuni yana buƙatar wannan, kodayake yana faruwa a matakin GATT, bai kai matakin aikace-aikacen ba. Me yasa haka, kuna tambaya? Kaico, ban san wannan ba. Bari in faɗi cewa ƙwararrun Nordic sun ba da shawarar amfani da sanarwa. Bugu da ƙari, bincika amincin fakitin (ta amfani da CRC) yana faruwa a lokuta biyu.

ƙarshe

A karshen labarin zan so in faɗi wannan. Tebur na ƙarshe yana da ɗan ruɗani. Duk da haka, na zabi shi saboda an ba da shi a ciki labarin, wanda na dogara dashi. A kashi na biyu na labarina, na yi niyyar zurfafa zurfafa cikin ƙayyadaddun BlueTooth 4.0. Ingantattun zane-zane da zane-zane suna jiran mu a can. A kashi na uku, Ina so in rarraba log ɗin da aka samu ta amfani da shirin Wireshark daga ɗaya daga cikin na'urorin kuma in ga "rayuwa" duk ka'idar da muke karantawa.

Ma'aikacin Rukunin Kamfanoni "Satellite Kaisar"
Pecherskikh Vladimir

source: www.habr.com

Add a comment