silabs 21Q2 yakachengeteka BLE mudziyo Chengetedza Lab
BLE Chengetedzo Lab Manual
Mune iyi lab, iwe uchaona maitiro ekugadzira yakachengeteka zvakanyanya BLE mudziyo. Tichatanga nepamusoroview ye mashandisiro ezvimwe zvezvimiro zve stack uye kuenderera kune rimwe zano rakawanda nezve matekiniki ekuwedzera akachengeteka kubatanidza uye pakupedzisira tichaona mashandisiro ezvitupa zvemudziyo pamusoro peBLE kuona peripheral seyechokwadi.
Kutanga
Iyo Bluetooth sample application yauchange uchivaka pairi inotarisirwa kushandiswa nebootloader. Kana iwe uri kushanda nemhando nyowani EFR32MG21B, haizove nebootloader. Iwe unogona kuwana pre-yakavakwa bootloader mupuratifomu\bootloader\sample-apps\bootloader-storage-internalsingle\efr32mg21a010f1024im32-brd4181a folda yeSDK yako.
- Tanga ne-soc-empty sample app. Izvi sample app inoshandiswa se template uye inoita yakanaka yekutangira chero yeBLE application.
- Vhura iyo Silicon Labs Project Wizard kubva kuSiplicity Studio File menyu -> itsva.
- Sarudza iyo BRD4181C uye tinya bhatani 'rinotevera'.
- Dzvanya iyo 'Bluetooth (9)' cheki bhokisi pasi pemhando yetekinoroji.
- Simbisa 'Bluetooth - SoC Empty' wobva wadzvanya inotevera.
- Tinya bhatani rekuti 'Pedzisa'.
- Iye zvino unogona kuwedzera mamwe maitiro kuti uone kuti hunhu hwakachengetedzwa uye husina kudzivirirwa hunoitwa sei zvakasiyana.
- Vhura iyo slcp yeprojekiti file nekudzvanya kaviri muProjekti Explorer hwindo
- Simbisa iyo 'SOFTWARE COMPONENTS' tab uye vhura iyo GATT yekumisikidza chishandiso sezvakaratidzwa pazasi:
Uye shandisa mudziyo wekunze unoratidzwa pazasi kuunza kunze gatt_configuration.btconf file kubva kune server folda mune zvakapihwa zvinhu.
Iyo GATT dhatabhesi ine tsika sevhisi, inonzi 'Kudzidzisa', ine imwe data yakachengetedzwa uye imwe isina. Izvi zvinokutendera kuti uenzanise zvinoitika kana uchiedza kuwana yakadzivirirwa hunhu vs isina kudzivirirwa. Iyi inzira inokurumidza kugadzira mudziyo une chengetedzo yakanyanya.
- Tichashandisa serial port kudhinda kune iyo console muSiplicity Studio kutevedzera zviri kuitika mukushandisa. Nzira iri nyore yekutsvaga zvikamu izvi ndeyekutsvaga mu SOFTWARE COMPONENTS dialog sezvakaratidzwa:
-
- Isa iyo IO Stream UART chikamu
- Isa iyo IO Stream Retarget STDIO chikamu
- Isa iyo Standard I/O chikamu
- Isa chikamu cheLog
- Vhura iyo Board Control chikamu uye wobatidza iyo 'Enable Virtual COM UART'
- Tinya-kurudyi adapta mu 'Debug adapters' uye sarudza 'Launch Console'. Sarudza 'Serial 1' tebhu uye isa chitubu mundima yekupinda mameseji yehwindo rekoni uye tinya pinda kuti umutse koni.
-
- Gadzira shanduko yemunharaunda mu sl_bt_on_event(), inowanikwa muapp.c, yekuchengetedza mubato wekubatanidza. Musiyano unofanirwa kuve wakamira sezvo basa iri richidanwa pese kana chiitiko chinosimudzwa nestack uye isu tinoda kuti kukosha kurambe kuripo. Iyo yekubatanidza mubato ichashandiswa munguva inotevera
chikamu cherabhoritari.
- Isa mamwe app_log() zvirevo zvezviitiko kuti uone kana takabatana, nzira dzekuchengetedza, nezvimwe
-
- Sanganisira iyo app_log.h musoro file
- sl_bt_evt_connection_opened - dhinda bhondi mubato uye chengetedza yekubatanidza mubato. Kana iyo bond mubato iri 0xFF, hapana bond pakati pemidziyo yakabatana iripo. Shandura iyo iripo yekubata chiitiko kuti iite senge ichi:
- sl_bt_evt_connection_parameters - kuchengetedza mode. Izvi zvinoitwa kuitira kuti iwe uone kana iyo yekuchengetedza modhi yachinja. Pane mutsauko mukuverengera kwenzira dzekuchengetedza uko kuchengetedza modhi 1, inoverengerwa kukosha 0, nezvimwe. Wedzera inotevera chiitiko chibatiso kuchishandiso chako:
- sl_bt_evt_connection_closed_id. Mubati wechiitiko uyu wakagadziridzwa kuti uvandudze mubato wekubatanidza. Kukosha 0xFF kunoshandiswa kuratidza kuti hapana chinongedzo chinoshanda. Iyo app_log () murairo unoshandiswa kudhinda chikonzero chekuti kubatana kuvharwe, rondedzero yemakodhi emamiriro ari pano. Shandura iyo iripo yekubata chiitiko kuti iite senge ichi:
- Sanganisira iyo app_log.h musoro file
-
- Vaka uye vhenekera purojekiti. Panguva ino, tichamhanya sample app kuti uone maitiro ayo pasina shanduko, kunze kweGATT dhatabhesi.
- Batanidza neEFRConnect mobile app sezvinotevera:
-
- Tinya iyo 'Bluetooth Browser' icon.
- Tinya iyo 'Batanidza' icon pane mudziyo unonzi 'Kudzidzisa'.
-
- Verenga maitiro asina kudzivirirwa sezvinotevera:
-
- Tinya chinongedzo che'More Info' pasi pesevhisi isingazivikanwe ine UUID a815944e-da1e-9d2a- 02e2-a8d15e2430a0.
- Verenga chimiro chisina kudzivirirwa, UUID f9e91a44-ca91-4aba-1c33-fd43ca270b4c nekudzvanya chiratidzo che'Verenga'. Hapana mashura apa. Sezvo hunhu husina kudzivirirwa munzira ipi neipi, huchatumirwa muzvinyorwa.
-
- Zvino verenga chimiro chakachengetedzwa, UUID d4261dbb-dcd0-daab-ec95-deec088d532b. Nharembozha yako inofanirwa kukukurudzira kuti ubatanidze uye ubatanidze, meseji inogona kusiyana zvichienderana nenharembozha yako OS. Mushure mekugamuchira chikumbiro chekubatanidza, iwe unofanirwa meseji pane iyo console sezvinotevera:
Cherechedza: Appendikisi A iri kumagumo ebhuku rino ine pfupiso yezvaanogona kuita uye nzira dzekubatanidza dzekutarisa. Appendikisi B inopfupisa nzira dzekuchengetedza dzeBluetooth.
Security Manager Configuration
Iyo yekuchengetedza maneja chikamu cheiyo Bluetooth stack inosarudza kuti ndeapi maficha ekuchengetedza anoshandiswa. Aya maficha anosanganisira man-in-the-middle (MITM) kudzivirira, LE Secure connections (aka ECDH), inoda kusimbiswa kwekubatana, nezvimwewo. Mutariri wekuchengetedza anobatawo maitiro eI / O anoshandiswa kuona kuti ndeipi nzira inoshandiswa pakubatanidza. / kubatana (ona Appendikisi A kuti uwane pfupiso). Muchikamu chino iwe uchaona nyore setup.
- Gadzirisa SM negadziriro yaunoda. Iyo hardware yelabhu iyi inoita kuti zvive nyore kuratidza passkey pane console. Passkey yekupinda chinhu chinodiwa kugonesa MITM kuchengetedzwa. Wedzera iyo inotevera kodhi kune yako sl_bt_system_boot_id chiitiko chekubata. Izvi zvinogonesa murume-pakati-uye inozivisa mudziyo uri kure kuti isu tinokwanisa kuratidza passkey, asi ndizvo chete.
- Kuti uratidze passkey pane koni, muiti wechiitiko anodiwa sezvinoratidzwa pazasi:
- Seta iyo bonding modhi, max nhamba yezvisungo, nezvimwe. Shandisa inotevera kodhi kuti utange:
Aya marongero anogona kushandiswa kudzikamisa kugona kweanorwisa kubatana nemudziyo wako. Kana chigadzirwa chako chichingoda kuva nemushandisi mumwe chete, saka iwe unogona kudzikamisa zvisungo zvakakura kusvika 1. Nzvimbo yakanaka yekuwedzera iyi mafoni iri mu sl_bt_system_boot_id chiitiko chekubata. Hatisi kuzogonesa bonding panguva ino kuita kuti iyo lab yese ifambe zvakanaka asi isu tinoseta mutemo webhondi kubvumidza bond rimwe chete. Kuti utaure, zvinyorwa zveaya maAPI anowanikwa pano uye pano.
- Wedzera zvibatiso zvezviitiko zve sl_bt_evt_sm_bonded_id uye sl_bt_evt_sm_bonding_failed_id. Iko kushandiswa kukuru kwezviitiko izvi kunodzidzisa parizvino asi gare gare mulabhu iwe unowedzera mashandiro.
- Vaka uye penya kune bhodhi rakanangwa. Batanidza neEFRConnect uye uverenge hunhu hwakachengetedzwa sepakutanga. Panguva ino, iwe uchaona passkey inoratidzwa pane console. Pinda iyi passkey parunhare mbozha kana wakumbirwa.
- Edza kusimbisa bonding. Ichi chinopa mushandisi kugona kuda kuti zvikumbiro zvekubatanidza zvisimbiswe. Kuita izvi kunopa iyo application kutonga pamusoro pekuti ndedzipi zvishandiso zvevezera zvinobatana nazvo. Imwe nzira ndeyekuda kuti mushandisi adzvanye bhatani asati abvumidza bond.
- Vhura marongero eBluetooth mufoni yako uye bvisa chisungo kune EFR32 mudziyo. Kuitwa kwenharembozha kunosiyana saka danho iri rinogona kunge risiri madikanwa. Kana iwe usingaone iyo 'Kudzidzisa' mudziyo mune yako Bluetooth marongero, ingoenderera kune inotevera nhanho.
- Muzvikamu zvesoftware, isa imwe muenzaniso weiyo yakapfava bhatani mubati.
- Batanidza musoro file sl_simple_button_instances.h muapp.c
- Wedzera mubati wechiitiko che sl_bt_evt_sm_bonding_confirm_id. Basa guru remuiti wechiitiko uyu nderekuzivisa mushandisi kuti mudziyo uri kure urikukumbira bond nyowani.
- Wedzera basa rekufona rekare rebhatani rinobata kuti utumire chiratidzo kune iyo Bluetooth stack inoratidza kuti bhatani rakadzvanywa. Izvi zvinodarika iyo default callback iyo inongodzoka.
- Wedzera chekunze chibatiso chiitiko. Chiitiko ichi chinosimudzwa mukupindura kugamuchira chiratidzo, senge padanho rekutanga. Chiitiko chekunze chechiratidzo chichashandiswa kusimbisa kubatana.
- Shandura kufona kuti sl_bt_sm_configure kuda bonding simbiso senge
- Vakazve uye penya.
- Batanidza neEFRConnect uye uverenge hunhu hwakachengetedzwa sepakutanga. Iye zvino iwe uchaona meseji pane iyo console seinotevera:
Dzvanya PB0 kuti usimbise kubatana. Iye zvino koni icharatidza kiyi yekupfuura kuti iiswe panhare mbozha yekubatanidza. Pinda paskey kuti upedze iyo yekubatanidza maitiro.
Zano: Shandisa iyo yakasarudzika kesi mumubati wechiitiko kudhinda meseji kana stack ichitumira chiitiko chisina kubatwa. Iyo stack inogona kunge iri kuedza kukuudza chimwe chinhu chakakosha.
Beyond the Basics
Panguva ino, watora advantage yezvekuchengetedza maficha ayo stack yedu inofanira kupa. Zvino ngatinatsidzei kuita kuburikidza nekushandisa zvine hungwaru zvinhu zvatiinazvo. Matanho anotevera ndeekusarudza uye akazvimirira kubva kune mumwe nemumwe, unogona kuvaka uye kupenya mushure meimwe neimwe kuti uone maitiro kana kuedza iwo ese pamwechete.
- Dimbura pakuedza kwebhondi zvakundikana. Iyi inzvimbo yakanaka yekuona kutyisidzira. Kana iyo iri kure mudziyo isingatsigire encryption / authentication kana isina makiyi chaiwo, inogona kunge iri hacker. Saka, ngatiparadze kubatana. Edza kuwedzera runhare ku sl_bt_connection_close() mu sl_bt_sm_bonding_failed_id chiitiko. Iyo API yakanyorwa pano.
Unogona kuyedza chimiro ichi nekuisa iyo isiriyo passkey.
- Kungobvumira kubatana pane dzimwe nguva. Izvi zvinoganhura nguva yekuti anorwisa agadzire bond uye zvinoita kuti zvikwanise kushandisa 'chete bvumira mabonded connections'. Mugadziri anogona kusarudza nzira yekugonesa kana kudzima bondable mode. Nezvinangwa zvekuratidzira pano, tichagonesa 'setup mode' nePB1 uye toshandisa timer kuidzima mushure memasekondi makumi matatu.
- Isa yechipiri muenzaniso weiyo yakapusa bhatani interface. Izvi zvinogonesa kushandiswa kwePB1.
- Shandura kufona kuti utumire chiratidzo chakasiyana kune stack kuti ugone / kudzima bonding. Mhedzisiro yacho inofanira kutaridzika seizvi:
- Shandura chibatiso chechiitiko chekunze kuitira kuti chibate chiratidzo chitsva ichi. Mhedzisiro yacho inofanirwa kuita seizvi:
- Wedzera muiti wechiitiko che sl_bt_evt_system_soft_timer_id chiitiko. Izvi zvichashandiswa kudzima setup mode.
- Iyo inotevera kodhi inogona kushandiswa kugonesa bondable modhi uye kubvumira zvese zvinongedzo kana kudzima bondable modhi uye inongobvumira kubatana kubva kune yakasungwa michina:
- Wedzera iyo inotevera kufona mune sl_bt_system_boot_id chiitiko chibatiso
- Vaka purojekiti uye vhenekera kune mudziyo.
- Edza kubatanidza kune mudziyo neEFRConnect. Kubatana kunofanira kukundikana.
- Zvino edza kudzvanya PB1 usati wabatana neEFRConnect. Panguva ino kubatana kuchabudirira. Mushure memasekondi makumi matatu iwe uchaona meseji pane iyo console inoratidza kuti mudziyo uri kubuda setup mode. Izvi zvinoreva kuti bondable mode yava kuremara.
- Wedzera kuchengetedzeka pakugadzira chinongedzo. Sezvo kuchengetedzeka kuri kwesarudzo, tinofanira kukumbira kubatana kwakavanzika nekukurumidza pane kuvimba neGATT maitiro. Iyo API yakanyorwa pano. Nzvimbo yakanaka yekudaidza iyi API iri mune sl_bt_evt_connection_opened_id chiitiko.Mubati wekubatanidza unowanikwa mune yekubatanidza chinja.
Secure Identity
Iye zvino zvatine mudziyo wakachengeteka weBluetooth, regai tivandudze nhanho yechokwadi. Iwe wakatoona maitiro ekuona yakachengeteka kuzivikanwa kwevault zvishandiso nemutsara wekuraira mune yapfuura kudzidziswa labs. Muchikamu chino, tichaona kuti imwe mudziyo weBLE ungasimbisa sei kuzivikanwa kwechimwe chishandiso cheBLE nekukumbira cheni yechitupa uye kutumira dambudziko. Zvese zvakachengeteka zvikamu zvevault zvinobata yavo chitupa chemudziyo uye batch chitupa. Iyo fekitori uye midzi zvitupa zvakaomesesa kodhi mukati memutengi application kuti igone kuonesa cheti yeseti cheti. Tarisa kune AN1268 kuti uwane rumwe ruzivo nezve yakachengeteka chitupa.
- Tsanangura buffer yepasi rose yekuchengetedza siginecha yechiratidzo chemudziyo sepazasi:
- Gadzirisa maneja wekuchengetedza kuti ushandise JustWorks pairing. Izvi zvinoitirwa kuti chinongedzo chive encrypted. Mukuita, kudzivirira kweMITM kunofanirwa kushandiswa asi kuchengetedza lab iri nyore, isu tichashandisa JustWorks. Chinja kufona ku sl_bt_sm_configure kudzokera kune zvinotevera:
Zvakare, taura kufona kune setup_mode(yechokwadi) mune system_boot chiitiko chinobata.
- Vhura helpers.c kubva pane zvakapihwa uye kopira zviri mukati muapp.c. Aya mabasa ekufona anoita mabasa akadai sekugovanisa zvitupa kuti zvitumirwe pamusoro peBLE, kuonesa cheni yechitupa, uye kugadzira/kuonesa dambudziko.
- Izvo zvinodikanwa kuti uone iyo yakakura yekuchinjisa unit (MTU) saizi kuitira kuti zvitupa zvigove zvakakamurwa uye kubatanidzwazve. Tsanangura shanduko yepasi rose kuchengetedza MTU sezvakaratidzwa pano:
Wobva wawedzera chibatiso chechiitiko cheGATT MTU chakatsinhaniswa chiitiko sezvakaratidzwa pazasi:
- Pane zvinhu zvitatu zvemushandisi data zvinogona kuverengwa. Aya maitiro anoshandiswa kutaurira chitupa chemudziyo, batch chitupa uye dambudziko. A callback function inoshandiswa kubata izvi mushandisi kuverenga zvikumbiro. Wedzera mubati kuti ufonere basa iri sezvinoratidzwa pazasi:
Iyo callback inoshandisa MTU kubva padanho #2 kuenda kuchikamu uye kutumira zvitupa sezvinodiwa. Inobatawo kutumira dambudziko rakasainwa.
- Mutengi anotumira dambudziko, nhamba isina kurongeka inosainwa neseva, nekunyora imwe yemaitiro eGATT. Nechikonzero ichi, chishandiso chinoda kuve nemubati wemushandisi wekunyora chikumbiro chiitiko sepazasi:
- Wedzera yakachengeteka chitupa rutsigiro files kune purojekiti:
- app_se_manager_macro.h, app_se_manager_secure_identity.c uye app_se_secure_identity.h kubva pane zvakapihwa kuchirongwa. Izvi files ine mamwe mabasa emubatsiri emabasa akadai sekuwana saizi yechitupa, kuwana kiyi yeruzhinji uye kusaina dambudziko.
- Sanganisira app_se_manager_secure_identity.h muapp.c.
- Pinza iyo yakapihwa gatt_configuration-attest.btconf kubva pane zvakapihwa. Iyi dhatabhesi yeGATT inodaidzwa kuti safe attestation iyo inosanganisira maitiro mana ayo achashandiswa kuratidza kuzivikanwa kwemudziyo wedu. Izvi zvinosanganisira chitupa chemudziyo, batch chitupa, dambudziko uye mhinduro.
- Mutengi, uyo anoshandiswa kutevedzera mudziyo wakaita segedhi, anopihwa sepurojekiti yakakwana sezvo yakanyanya kuoma kuvaka. Kazhinji, kushanda kwemutengi kunotevera:
- Masikirwo emidziyo inoshambadza iyo yakachengeteka yekupupurira sevhisi uye inobatana navo.
- Inoona iyo GATT dhatabhesi masevhisi uye maitiro.
- Inoverenga mudziyo uye batch zvitupa uye inosimbisa cheni yechitupa ichishandisa fekitori uye midzi chitupa chayakachengeta muflash.
- Inotumira dambudziko risingaite kune server.
- Kuedza kuona mhinduro kune dambudziko.
- Inovhara kubatanidza kana imwe ongororo yatadza.
- Vaka uye vhenekera sevha purojekiti kune yako server WSTK / radioboard.
- Ngenisa purojekiti yemutengi kubva kune mutengi folda mune zvakapihwa zvinhu. Vaka uye vhenekera purojekiti yemutengi kune wako mutengi WSTK/redhiyo.
- Dzvanya reset pane mutengi WSTK uye vhura iyo serial console. Mutengi anotanga kupenengura zvishandiso zvinoshambadza yedu yakachengeteka chitupa sevhisi uye inobatana kana yawana imwe.
- Mutengi anozoratidza mamwe mameseji kuratidza kuti yawana sevha ine sevhisi yaidiwa uye mamiriro mameseji nezve kusimbiswa kwechitupa chetani.
- Kana iyo verification ikapfuura, mutengi anoburitsa nhamba isina kujairika, inonzi dambudziko, uye itumire kune server. Sevha inosaina dambudziko nekiyi yayo yakachengetedzwa yakavanzika mudziyo uye siginecha kudzoka kumutengi, iyi inonzi mhinduro yekunetsa. Mutengi anobva ashandisa kiyi yeruzhinji mune yakambotambirwa chitupa chemudziyo kuratidza siginicha. Izvi zvinoitirwa kusimbisa kuti sevha ine kiyi yakavanzika yayaiti inayo. Kana dambudziko rikasimbiswa nenzira kwayo, meseji inoratidzwa kune izvo; kana zvisina kudaro, kubatana kwakavharwa, uye meseji inoratidzwa ichitsanangura chikonzero nei.
- Zvino tumira chitupa chisiricho kuti uone kuti ongororo yacho inoshanda chaizvo. Unogona kugadzirisa user_read_request_cb() kukanganisa data retifiketi kana mhinduro yekunetsa.
Appendix A - I / O Kugona uye Pairing Nzira 
Appendix B - Dziviriro Modes uye Mazinga
Chengetedzo modhi 1 ndiyo chete modhi inotsigirwa yeBluetooth Low Energy muSilicon Labs 'stack. Malevel acho ndeaya:
- Level 1 hapana chengetedzo
- Level 2 isina authenticated pairing ne encryption
- Level 3 yakatendeseka kubatanidza ne encryption
- Level 4 yakasimbiswa yakachengeteka yakabatana ine yakasimba encryption (ECDH kiyi kuchinjanisa)
Zvinyorwa / Zvishandiso
![]() |
silabs 21Q2 yakachengeteka BLE mudziyo Chengetedza Lab [pdf] User Manual 21Q2 yakachengeteka BLE mudziyo Chengetedza Lab, yakachengeteka BLE mudziyo Chengetedza Lab, Chengetedzo Lab |