
BLE tlas'a microscope (ATTы GATTы…)
Karolo ea 1, kakaretso
Ho se ho fetile nako e telele ho tloha ha tlhaloso ea pele ea Bluetooth 4.0 e lokolloa. Mme, leha sehlooho sa BLE se khahla haholo, se ntse se beha bahlahisi ba bangata ka lebaka la ho rarahana ha sona. Lihloohong tsa ka tse fetileng, ke ne ke shebile haholo-holo boemong bo tlaase ka ho fetisisa, Lera la Khokahano le Lera la 'mele. Sena se ile sa re lumella ho qoba ho sebelisa likhopolo tse rarahaneng le tse ferekanyang tse kang Attribute Protocol (ATT) le General Attribute Profile (GATT). Leha ho le joalo, ha ho na moo u ka eang teng, ntle le ho li utloisisa, ho ke ke ha khoneha ho hlahisa lisebelisoa tse lumellanang. Kajeno ke rata ho arolelana tsebo ena le uena. Sehloohong sa ka ke tla itšetleha ka bakeng sa ba qalang ho tsoa webosaeteng ea Nordic. Kahoo a re qaleng.
Ke hobane'ng ha lintho tsohle li le thata hakaale?
Ka maikutlo a ka, hang-hang ho ile ha hlaka hore ho laola lisebelisoa ka li-smartphone ke taba e tšepisang haholo le e tšoarellang nako e telele. Ka hona, ba ile ba etsa qeto ea ho e hlophisa hang-hang le ho ea holimo. E le hore baetsi ba lisebelisoa tse fapaneng ba se ke ba tla le liprothokholo tsa bona, tse tla be li sa lumellane. Kahoo bothata. E se e le sethaleng sa pele, ba lekile ho hatella ntho e 'ngoe le e' ngoe e ka khonehang ho protocol ea BLE. 'Me ha ho tsotellehe hore na e tla ba molemo hamorao kapa che. Ho phaella moo, ba ile ba fana ka monyetla oa ho atolosa lenane la lisebelisoa bakeng sa bokamoso.
Ha re shebeng setšoantšo moo setšoantšo sa protocol sa BLE se toroiloeng. E na le lihlopha tse 'maloa. Sebaka se tlase, sa 'mele (PHY) se ikarabella bakeng sa kanale ea radio ea sesebelisoa. Link Layer(LL) e na le tatellano eohle ea li-byte molaetsa o fetisitsoeng. Lihloohong tse fetileng re ithutile sena hantle. Host Controller Interface (HCI) ke protocol ea phapanyetsano pakeng tsa likarolo tsa BLE kapa li-chips haeba Controller le Host li kenngoa ts'ebetsong ho li-chips tse fapaneng. Logical Link Control and Adaptation Protocol (L2CAP) e ikarabella bakeng sa ho theha liphutheloana, ho etsa foreimi, taolo ea liphoso le kopano ea pakete. Ts'ireletso ea Ts'ireletso ea Ts'ireletso (SMP) e ikarabella bakeng sa ho boloka lipakete. The General Access Profile (GAP) e ikarabella bakeng sa phapanyetsano ea pele ea data pakeng tsa lisebelisoa ho fumana hore na "Ke mang". E boetse e kenyelletsa ho hlahloba le ho bapatsa. Sehloohong sena ke tla lebisa tlhokomelo likarolong tse peli tse setseng tsa protocol - GATT le ATT. GATT ke superstructure ea ATT, kahoo li hokahane haufi-ufi.

Ho nolofatsa pale, ke rata ho bua ka papiso. Ke e utloile kae-kae 'me ke rata ho e tšehetsa. Nahana ka sesebelisoa sa BLE e le mokotla oa libuka o nang le lishelefo tse 'maloa. Shelofo ka 'ngoe ke sehlooho se arohaneng. Ka mohlala, re na le lishelefo tse nang le libuka tsa saense tse iqapetsoeng, lipalo le li-encyclopedia. Shelofong ka 'ngoe ho na le libuka tse nang le sehlooho se itseng. 'Me libuka tse ling li bile li na le li-bookmark tsa pampiri tse nang le lintlha. Ho phaella moo, re na le lethathamo le lenyenyane la pampiri la libuka tsohle. Haeba u hopola, lilaeborari tsa sekolo ke lebokose le moqotetsane le nang le likarete tsa pampiri. Ka papiso ena, khabinete ke boemo ba sesebelisoa sa rona. Liraka ke lits'ebeletso, libuka ke litšoaneleho, 'me lethathamo la libuka ke tafole ea litšobotsi. Li-bookmark libukeng ke litlhaloso, tseo ke tla bua ka tsona hamorao ka botlalo.
Mang kapa mang ea entseng lisebelisoa oa tseba hore merero e mengata e na le likarolo tse tšoanang tsa khoutu. 'Nete ke hore lisebelisoa tse ngata li na le ts'ebetso e tšoanang. Ka mohlala, haeba lisebelisoa li tsamaisoa ke libeteri, joale bothata ba ho tjhaja le ho shebella boemo ba bona bo tla tšoana. Ho joalo le ka li-sensor. Ha e le hantle, mokhoa o shebaneng le lintho tsa ho etsa mananeo "E fana ka bokhoni ba ho theha lintho tse kopanyang thepa le boitšoaro ho ba bonngoe bo ikemetseng bo ka sebelisoang hape". Ka maikutlo a ka, BLE e lekile mokhoa o tšoanang. Litaba li entsoe ke Bluetooth Special Interest Group (SIG). Lisebelisoa tse tsoang ho bahlahisi ba fapaneng ba nang le li-profile tse tšoanang li lokela ho sebetsa hammoho ntle le bothata. Profiles, ka lehlakoreng le leng, li na le lits'ebeletso, le lits'ebeletso tsa litšobotsi, tse tlatselletsoang ke litlhaloso. Ka kakaretso, e ka shebahala tjena:

Ka mohlala, nahana ka setšoantšo sa profil ea mochine oa ho otla ha pelo (sefaha sa boikoetliso). E na le litšebeletso tse peli le litšobotsi tse 'maloa. Ho tloha ho eona, boemo ba boemo ba boemo bo bonahala hang-hang. Sebopeho sa sebaka sa tlhahlobo se beha kakaretso ea litšenyehelo tsa khalori ho zero.
1. Tšebeletso ea ho otla ha pelo e kenyelletsa litšobotsi tse tharo (0x180D):
a) Sebopeho sa sekhahla sa pelo se tlamang (0x2A37)
b) Boikhethelo ba sebopeho sa sensor ea 'mele (0x2A38)
c) Litšobotsi tsa maemo a sebaka sa taolo ea sekhahla sa pelo (0x2A39)
2. Ts'ebeletso ea tlhokomelo ea betri (0x180F):
a) Boemo bo tlamang ba ho tjhaja betri (0x2A19)
UUID
E le hore re khone ho fihlella likarolo tsa profil ka mokhoa o ikhethileng (litšebeletso, litšobotsi le litlhaloso), re hloka ho li bala kaofela ka tsela e itseng. Bakeng sa sena, ho hlahisoa mohopolo o kang Universally Unique ID (UUID) kapa Universally Unique Identifier. UUID e bonts'itsoe ka har'a masakaneng a mola o mong le o mong. 'Me ho na le peculiarity e le' ngoe mona. Bakeng sa UUID, re nkile qeto ea ho sebelisa khoutu ea 16 le 128 bits ka bolelele. Hobaneng, o botsa? Ho protocol ea BLE, ntho e 'ngoe le e' ngoe e mabapi le ho boloka matla. Ka hona, boholo ba li-bits tse 16 bo utloahala. Ho ke ke ha etsahala hore ho tla bōptjoa tse fetang likete tse 65 haufinyane. litšebeletso le litšobotsi tse ikhethang. Hajoale, ntho e 'ngoe le e 'ngoe eo ba ka beng ba e baliloe (hopola hore na sena se tsoa hokae - "le uena o u bale" :-)) , , и u ka sheba lihokelo.
Leha ho le joalo, ke nahana hore bohle ba hopola pale e nang le li-byte tse 4 tsa liaterese tsa IP ho Internet. Qalong re ne re nahana hore ho lekane, empa joale re ntse re sa khone ho fetohela atereseng ea 6-byte. E le hore u se ke ua pheta phoso ena le ho fana ka bolokolohi ho matsoho a bapalang a DIYers, SIG hang-hang e ile ea etsa qeto ea ho hlahisa li-UUID tsa 128-bit. Sena ka bonna se nkhopotsa sehlopha sa 433 MHz se sa ngolisoang, se ileng sa fuoa mefuta eohle ea Kulibins ho tloha seteisheneng sa seea-le-moea. Tabeng ea rona, sekhetho sa 128-bit sa lits'ebeletso le litšobotsi se ile sa lema. Sena se bolela hore rona, bakeng sa lits'ebeletso le lisebelisoa tsa rona, re ka sebelisa boleng bofe kapa bofe ba 128-bit. Leha ho le joalo, monyetla oa ho tla le UUID e tšoanang o batla o fihla ho zero.
Ebile, li-UUID tse khutšoane tsa 16-bit li na le katoloso ea tsona ho boleng ba 128-bit. Ka litlhaloso, katoloso ena e bitsoa Bluetooth Base UUID mme e na le boleng ba 00000000-0000-1000-8000-00805F9B34FB. Haeba, ka mohlala, tšobotsi ea 16-bit UUID e na le boleng ba 0x1234, joale 128-bit UUID e lekanang e tla ba le boleng 00001234-0000-1000-8000-00805F9B34FB. Mme le foromo e lumellanang e fanoe:
128_bit_value = 16_bit_value * 2^96 + Bluetooth_Base_UUID
Ha ke tsebe hore na nomoro ena ea boselamose e tsoa hokae. Haeba mang kapa mang oa babali a tseba, ba lumelle hore ba ngole litlhaloso (Mosebelisi ea nang le lebitso la bosoasoi la Sinopteek o se a entse sena. Sheba litlhaloso). Ha e le ho tla le li-UUID tsa 128-bit, ha e le hantle u ka sebelisa e khethehileng ke mang ya tla o etsetsa yona.
ATTY GATT...
Ha e le hantle, joale monate oa qala. E re ke u hopotse hore ATT e thehiloe kamanong ea bareki le seva. Hona joale re shebile sesebelisoa sa seva. E na le tlhahisoleseling joalo ka boleng ba sensor, boemo ba switch switch, data ea sebaka, jj. Kaha joale "barupeluoa bohle ba parade ea rona" ba baloa, re hloka ho ba beha mohopolong oa sesebelisoa. Ho etsa sena, re li beha tafoleng e bitsoang "tafole ea litšobotsi". Hopola sena hantle. Ena ke eona pelo ea BLE. Sena ke seo re tla se hlahloba ka ho eketsehileng. Joale re tla bitsa mola o mong le o mong tšobotsi. Tafole ena e tebile ka har'a stack mme, joalo ka molao, ha re na phihlello e tobileng ho eona. Re e qala ebe rea e fumana, empa se etsahalang ka hare se ipatile ho rona ka mor'a litiiso tse supileng.
A re shebeng setšoantšo ho tloha ho tlhaloso, empa pele ho moo, ke rata ho lebisa tlhokomelo hang-hang ho pherekano e tloaelehileng ka mantsoe, e leng ka litlhaloso. Tiro ya motlhalosi ke go tlatsa tlhaloso ya semelo. Ha ho hlokahala ho atolosa bokhoni ba eona, joale ho sebelisoa litlhaloso. Hape ke litšoaneleho, 'me joalo ka litšebeletso le litšoaneleho, li teng tafoleng ea litšobotsi. Re tla li hlahloba ka ho qaqileng karolong ea bobeli ea sehlooho sena. Leha ho le joalo, ka linako tse ling litlhaloso li bua ka nomoro ea mola ka har'a tafole ea litšobotsi. Sena se tlameha ho hopoloa. Ho qoba pherekano, re tla sebelisa lentsoe "ts'ebetso ea sesupo" molemong ona.

Kahoo tšobotsi ke boleng bo ikhethileng bo nang le thepa e latelang e amanang le eona:
1. Attribute Handle ke index ea tafole e tsamaellanang le tšobotsi
2. Mofuta oa Tšobotsi ke UUID e hlalosang mofuta oa eona
3. Boleng ba Boleng ke lintlha tse bonts'itsoeng ke sesupa sa boleng
4. Litumello tsa Botho ke karolo ea tšobotsi, litumello tse ke keng tsa ho baloa kapa ho ngoloa ho sebelisoa melaoana ea semelo.
Joang ho utloisisa see sohle? Pontšo ea tšobotsi ke, ha re bua, palo ea eona tafoleng ea rona.
E lumella moreki ho supa tšobotsi ho likopo tsa ho bala kapa ho ngola. Re ka bala mela ea rona (litšoaneleho) ho tloha 0x0001 ho isa 0xFFFF. Kamanong ea rona le mokotla oa libuka, ena ke nomoro ea karete lethathamong la pampiri. Ka ho tšoanang, joaloka lethathamong la libuka tsa libuka, likarete li hlophisoa ka tatellano e ntseng e eketseha ea palo. Palo ea mola o mong le o mong o latelang e tlameha ho ba kholo ho feta o fetileng. Joalo ka laebraring, ka linako tse ling likarete tse ling lia lahleha, kahoo le rona, ho ka ba le likheo meleng ea linomoro. Sena se lumelletsoe. Ntho e ka sehloohong ke hore ba tsamaee butle-butle.
Mofuta oa semelo o etsa qeto ea hore na tšobotsi e emela eng. Ka papiso le puo ea C,
moo ho nang le boolean, mefuta e fapaneng ea linomoro le likhoele, kahoo e teng mona. Ka tšobotsi ea mofuta oo re o hlokomelang
seo re sebetsanang le sona le hore na re ka tsoela pele joang ho sebetsa ka tšobotsi ena. Ka tlase re tla sheba mefuta e itseng ea litšoaneleho. Mohlala, "ts'ebeletso declaration" (0x2800), "characteristic declaration" (0x2803), "descriptor declaration" (0x2902).
Boleng ba tšobotsi ke moelelo oa eona oa sebele, tšoarela tautology. Haeba mofuta oa tšobotsi ke khoele, joale boleng ba boleng bo ka ba, ka mohlala, lepetjo "Hello World !!!". Haeba mofuta oa tšobotsi ke "phatlalatso ea tšebeletso", joale boleng ba eona ke tšebeletso ka boeona. 'Me ka linako tse ling sena ke tlhahisoleseling mabapi le moo u ka fumanang litšobotsi tse ling le thepa ea tsona.
Litumello tsa tšobotsi li lumella seva ho utloisisa hore na ho bala kapa ho ngola ho lumelletsoe.
Hlokomela hore litumello tsena li sebetsa feela ho boleng ba semelo, eseng ho pointer, mofuta, kapa sebaka sa tumello ka bosona. Tseo. haeba ho rekota tšobotsi ho lumelloa, re ka fetola, mohlala, mola "Hello World !!!" ho ea moleng "Dumelang". Empa re ke ke ra thibela ho ngola mola o mocha kapa ho fetola mofuta oa litšoaneleho le ho khetha mohala e le "phatlalatso ea litšebeletso". Ha moreki a ikopanya le seva, moreki o kopa litšobotsi tsa eona. Sena se nolofalletsa moreki ho tseba hore na seva e ka fana ka eng. Le hoja ho sa hlokahale ho bala le ho ngola litekanyetso.
E shebahala joang
Khopolo ea GATT ke ho kopanya litšoaneleho tafoleng ea litšobotsi hammoho ka tatellano e hlakileng le e utloahalang. Ha re shebisiseng boemo ba ho otla ha pelo ka tlase. Karolo e ka ho le letšehali ea tafole ena ke khetho. E re hlalosetsa feela hore na mola (semelo) ona ke eng. Litšiea tse ling kaofela re se re li tloaetse.

Ka holimo ho sehlopha ka seng re lula re e-na le tšobotsi ea phatlalatso ea tšebeletso. Mofuta oa eona o lula o le 0x2800, 'me pointer e itšetlehile ka hore na ke litšobotsi tse kae tse seng li le teng tafoleng. Litumello tsa eona li lula li baloa feela, ntle le netefatso kapa tumello. Re tla bua ka likhopolo tsena hamorao. Boleng ke UUID e 'ngoe e khethollang hore na tšebeletso ke eng. Ho Tafole, boleng ke 0x180D, e hlalosoang ke Bluetooth SIG e le tšebeletso ea ho otla ha pelo.
Ka mor'a phatlalatso ea tšebeletso, ho tla phatlalatso ea tšobotsi. E tšoana ka sebopeho le phatlalatso ea tšebeletso. UUID ea eona e lula e le 0x2803, 'me litumello tsa eona li lula li baloa feela ntle le netefatso kapa tumello. Ha re shebeng karolo ea Boleng ba Boleng, e kenyelletsang lintlha tse ling. E lula e na le pointer, UUID, le sete ea thepa. Lintlha tsena tse tharo li hlalosa phatlalatso e latelang ea boleng ba tšobotsi. Pointer ka tlhaho e supa sebaka sa phatlalatso ea boleng lethathamong la litšoaneleho. UUID e hlalosa mofuta oa tlhahisoleseling kapa boleng boo re ka bo lebellang. Mohlala, boleng ba mocheso, boemo ba switch ea lebone, kapa boleng bo bong bo ikhethileng. 'Me qetellong thepa, e hlalosang hore na boleng ba tšobotsi bo ka sebelisana joang le bona.
Leraba le leng le re emetse mona. E amahanngoa le tumello ea litšoaneleho le litšobotsi tse ikhethang. Ha re shebeng sets'oants'o sa thepa ea "bit field" ho tsoa ho litlhaloso.

Joalokaha u bona, ho boetse ho na le libaka tse fanang ka bokhoni ba ho bala le ho ngola. U kanna oa ipotsa hore na hobaneng re na le tumello ea ho bala / ho ngola bakeng sa semelo le thepa
bala/ngola bakeng sa boleng ba sebopeho? Na ha lia lokela ho tšoana kamehla? 'Nete ke hore thepa ea boleng ba sebopeho ha e le hantle ke likhothaletso feela bakeng sa moreki ea sebelisitsoeng ho GATT le likarolo tsa kopo. Tsena ke malebela feela mabapi le seo moreki a ka se lebellang ho tsoa ho tšobotsi ea phatlalatso. A re shebeng taba ena ka botlalo. Ke mefuta efe ea tumello eo tšobotsi e nang le eona?
1. Litumello tsa ho kena:
- ho bala
- rekoto
- bala le ho ngola
2. Tumello ea netefatso:
- netefatso ea hlokahala
- ha ho netefatso e hlokahalang
3. Tumello ea tumello:
- tumello ea hlokahala
- ha ho na tumello e hlokahalang
Phapang e kholo lipakeng tsa tharollo ea semelo le litšobotsi ke hore ea pele e sebetsa ho li-server, 'me ea morao-rao e sebetsa ho bareki. Seva e kanna ea lumelloa ho bala boleng ba sebopeho, empa e ka hloka netefatso kapa tumello. Ka hona, ha mofani a kopa thepa ea tšobotsi, re tla fumana hore ho bala ho lumelloa. Empa ha re leka ho bala, re fumana phoso. Ka hona, re ka bua ka mokhoa o sireletsehileng ka bohlokoa ba tumello ho feta thepa. Ka lehlakoreng la bareki, re ke ke ra fumana tsebo ea hore na semelo se na le tumello efe.
Mohlalosi
Ha re khutleleng tafoleng ea rona. Ka mor'a ho phatlalatsa boleng ba tšobotsi, liphatlalatso tse latelang tsa tšobotsi li ka khoneha:
1. Phatlalatso e ncha ea litšobotsi (tšebeletso e ka ba le litšobotsi tse ngata)
2. Phatlalatso e ncha ea tšebeletso (ho ka ba le tse ngata tsa tsona tafoleng)
3. Ho phatlalatsa ho tšoara
Tabeng ea tšobotsi ea tekanyo ea lebelo la pelo, tafoleng ea rona, phatlalatso ea boleng ba tšobotsi e tsamaisana le phatlalatso ea tlhaloso. Mohlalosi ke semelo se nang le tlhahisoleseding e eketsehileng mabapi le sebopeho. Ho na le mefuta e mengata ea litlhaloso. Re tla bua ka bona ka ho qaqileng karolong ea bobeli ea sehlooho sena. Hajoale, re tla ama feela Tlhaloso ea Sebopeho sa Client Characteristic Configuration (CCCD). E na le UUID e lekanang le 0x2902. Ka ho sebelisa tlhaloso ena, mofani o na le bokhoni ba ho lumella pontšo kapa tsebiso ho seva. Phapang pakeng tsa bona e nyenyane, empa e ntse e le teng. Tsebiso ha e hloke netefatso ea rasiti ho tsoa ho moreki. Pontšo e hloka sena, le hoja e etsahala boemong ba GATT, e sa fihle boemong ba kopo. Ke hobane'ng ha u botsa? Oho, ha ke tsebe sena. E re feela ke re litsebi tsa Nordic li khothaletsa ho sebelisa litsebiso. Ho feta moo, ho hlahloba botšepehi ba sephutheloana (ho sebelisa CRC) ho etsahala maemong ao ka bobeli.
fihlela qeto e
Qetellong ea sehlooho ke rata ho bua sena. Tafole ea ho qetela e batla e ferekanya. Leha ho le joalo, ke e khethile hobane e fanoe , eo ke itšetlehileng ka eona. Karolong ea bobeli ea sengoloa sa ka, ke ikemiselitse ho tebela ka botebo ho litlhaloso tsa BlueTooth 4.0. Litšoantšo le litšoantšo tse nepahetseng li re emetse moo. Karolong ea boraro, ke rata ho hlalosa lethathamo le fumanoeng ke sebelisa lenaneo la Wireshark ho tsoa ho e 'ngoe ea lisebelisoa le ho bona "phela" khopolo-taba eohle eo re ithutang eona.
Mosebeletsi oa Sehlopha sa Likhamphani
Pecherskikh Vladimir
Source: www.habr.com
