silabs 21Q2 လုံခြုံသော BLE စက် လုံခြုံရေးဓာတ်ခွဲခန်း
BLE လုံခြုံရေးဓာတ်ခွဲခန်းလက်စွဲ
ဤဓာတ်ခွဲခန်းတွင်၊ ပိုမိုလုံခြုံသော BLE စက်ပစ္စည်းကို မည်သို့ဒီဇိုင်းထုတ်ရမည်ကို သင်တွေ့ရပါမည်။ ပြီးတာနဲ့ စတင်ပါမယ်။view stack အင်္ဂါရပ်အချို့ကိုအသုံးပြုနည်းနှင့် ပိုမိုလုံခြုံသောချိတ်ဆက်မှုများအတွက် နည်းပညာဆိုင်ရာ ယေဘုယျအကြံပြုချက်အချို့ကို ဆက်လက်လုပ်ဆောင်ပြီး နောက်ဆုံးတွင် စက်အရံများကို စစ်မှန်ကြောင်းခွဲခြားသတ်မှတ်ရန် BLE မှတစ်ဆင့် စက်ကိရိယာလက်မှတ်များကို မည်သို့အသုံးပြုရမည်ကို ကျွန်ုပ်တို့ မြင်တွေ့ရမည်ဖြစ်သည်။
စတင်အသုံးပြုခြင်း
ဘလူးတုသ် sampသင်တည်ဆောက်မည့် အက်ပ်လီကေးရှင်းသည် bootloader ဖြင့် အသုံးပြုရန် ရည်ရွယ်ပါသည်။ သင်သည် အသစ်စက်စက် EFR32MG21B နှင့် အလုပ်လုပ်ပါက၊ ၎င်းတွင် bootloader ရှိမည်မဟုတ်ပါ။ ပလပ်ဖောင်း\bootloader\s တွင်ကြိုတင်တည်ဆောက်ထားသော bootloader ကိုသင်တွေ့နိုင်သည်။ampသင့် SDK ၏ le-apps\bootloader-storage-internalsingle\efr32mg21a010f1024im32-brd4181a ဖိုင်တွဲ။
- soc-blank s ဖြင့် စတင်ပါ။ample အက်ပ်။ ဒီ sample အက်ပ်ကို ပုံစံပလိတ်တစ်ခုအဖြစ် အသုံးပြုပြီး BLE အပလီကေးရှင်းတိုင်းအတွက် ကောင်းမွန်သော အစမှတ်တစ်ခု ဖြစ်စေသည်။
- Simplicity Studio မှ Silicon Labs Project Wizard ကိုဖွင့်ပါ။ File menu --> အသစ်။
- BRD4181C ကို ရွေးပြီး 'နောက်တစ်ခု' ခလုတ်ကို နှိပ်ပါ။
- နည်းပညာအမျိုးအစားအောက်ရှိ 'Bluetooth (9)' အမှန်ခြစ်ကို နှိပ်ပါ။
- 'Bluetooth – SoC Empty' ကို မီးမောင်းထိုးပြပြီး Next ကိုနှိပ်ပါ။
- 'Finish' ခလုတ်ကိုနှိပ်ပါ။
- ကာကွယ်ထားသော နှင့် အကာအကွယ်မရှိသော လက္ခဏာများကို ကွဲပြားစွာ ဆက်ဆံပုံကို ကြည့်ရန် ယခုတွင် သင်သည် လက္ခဏာအချို့ကို ထည့်သွင်းနိုင်သည်။
- ပရောဂျက်၏ slcp ကိုဖွင့်ပါ။ file Project Explorer ဝင်းဒိုးတွင် ၎င်းကို နှစ်ချက်နှိပ်ပါ။
- 'ဆော့ဖ်ဝဲ အစိတ်အပိုင်းများ' တက်ဘ်ကို မီးမောင်းထိုးပြပြီး အောက်ဖော်ပြပါအတိုင်း GATT ဖွဲ့စည်းမှုတူးလ်ကို ဖွင့်ပါ။
gatt_configuration.btconf ကိုတင်သွင်းရန် အောက်တွင်ဖော်ပြထားသော သွင်းကုန်တူးလ်ကို အသုံးပြုပါ။ file ပေးထားသောပစ္စည်းများရှိ server folder မှ။
GATT ဒေတာဘေ့စ်တွင် ဒေတာအချို့ကို ကာကွယ်ထားပြီး အချို့သောဒေတာများဖြင့် 'လေ့ကျင့်ရေး' ဟုခေါ်သော စိတ်ကြိုက်ဝန်ဆောင်မှုတစ်ခု ရှိသည်။ ၎င်းသည် ကာကွယ်ထားသော လက္ခဏာနှင့် အကာအကွယ်မရှိသော လက္ခဏာကို ရယူရန် ကြိုးစားသောအခါတွင် ဖြစ်ပျက်သည့်အရာကို နှိုင်းယှဉ်နိုင်စေပါသည်။ ဤသည်မှာ အလွန်အခြေခံကျသော လုံခြုံရေးပါသော အမြန်နည်းလမ်းတစ်ခုဖြစ်သည်။
- အပလီကေးရှင်းတွင်ဖြစ်ပျက်နေသည်များကိုခြေရာခံရန် Simplicity Studio ရှိ ကွန်ဆိုးလ်သို့ ပရင့်ထုတ်ရန် နံပါတ်စဉ်အပေါက်ကို အသုံးပြုပါမည်။ ဤအစိတ်အပိုင်းများကို ရှာဖွေရန် အလွယ်ကူဆုံးနည်းလမ်းမှာ ပြထားသည့်အတိုင်း ဆော့ဖ်ဝဲ အစိတ်အပိုင်းများ ဒိုင်ယာလော့ဂ်တွင် ၎င်းတို့ကို ရှာဖွေခြင်းဖြင့် ဖြစ်သည်။
-
- IO Stream USART အစိတ်အပိုင်းကို ထည့်သွင်းပါ။
- IO Stream Retarget STDIO အစိတ်အပိုင်းကို ထည့်သွင်းပါ။
- Standard I/O အစိတ်အပိုင်းကို ထည့်သွင်းပါ။
- Log အစိတ်အပိုင်းကို ထည့်သွင်းပါ။
- Board Control အစိတ်အပိုင်းကိုဖွင့်ပြီး 'Virtual COM UART ကိုဖွင့်ပါ' ကိုဖွင့်ပါ။
- 'Debug Adapter' အကန့်ရှိ adapter ကို right-click နှိပ်ပြီး 'Launch Console' ကို ရွေးပါ။ 'Serial 1' တက်ဘ်ကို ရွေးပြီး ကွန်ဆိုးလ်ဝင်းဒိုး၏ စာသားဝင်ရောက်မှုအကွက်တွင် ကာဆာကို ထားရှိကာ ကွန်ဆိုးလ်ကို နိုးထရန် enter နှိပ်ပါ။
-
- ချိတ်ဆက်မှု လက်ကိုင်ကို သိမ်းဆည်းရန်အတွက် app.c တွင် တွေ့ရသော sl_bt_on_event() တွင် ဒေသဆိုင်ရာ ကိန်းရှင်တစ်ခုကို ဖန်တီးပါ။ stack မှ အဖြစ်အပျက်တစ်ခု ပေါ်လာတိုင်း ဤလုပ်ဆောင်ချက်ကို ခေါ်သောကြောင့် ကိန်းရှင်သည် တည်ငြိမ်နေရပါမည်။ ချိတ်ဆက်မှုလက်ကိုင်ကို နောက်ပိုင်းတွင် အသုံးပြုပါမည်။
ဓာတ်ခွဲခန်းအပိုင်း။
- ကျွန်ုပ်တို့ချိတ်ဆက်ထားသည့်အခါ၊ လုံခြုံရေးမုဒ်များ၊ စသည်တို့ကိုကြည့်ရှုရန် ဖြစ်ရပ်များအတွက် app_log() ထုတ်ပြန်ချက်အချို့ကို ထည့်သွင်းပါ။
-
- app_log.h ခေါင်းစီးကို ထည့်သွင်းပါ။ file
- sl_bt_evt_connection_opened – ပရင့်နှောင်ကြိုးလက်ကိုင်နှင့် ချိတ်ဆက်မှုလက်ကိုင်ကို သိမ်းဆည်းပါ။ ဘွန်းလက်ကိုင်သည် 0xFF ဖြစ်ပါက၊ ချိတ်ဆက်ထားသော စက်များကြားတွင် အနှောင်အဖွဲ့မရှိပါ။ ၎င်းသည် ဤကဲ့သို့ဖြစ်စေရန် ရှိပြီးသားဖြစ်ရပ်ကိုင်တွယ်သူကို မွမ်းမံပြင်ဆင်ပါ-
- sl_bt_evt_connection_parameters – လုံခြုံရေးမုဒ်။ လုံခြုံရေးမုဒ်ပြောင်းသည့်အခါတွင် သင်မြင်နိုင်စေရန် ၎င်းကို လုပ်ဆောင်ထားသည်။ လုံခြုံရေးမုဒ် 1၊ တန်ဖိုး 0 စသည်ဖြင့် စာရင်းကောက်သည့် လုံခြုံရေးမုဒ်များ၏ နံပါတ်ခြင်းတွင် ကွဲပြားမှုရှိပါသည်။ သင့်အပလီကေးရှင်းတွင် အောက်ပါဖြစ်ရပ်ကိုင်တွယ်သူကို ထည့်ပါ-
- sl_bt_evt_connection_closed_id။ ချိတ်ဆက်မှုလက်ကိုင်ကို အပ်ဒိတ်လုပ်ရန် ဤဖြစ်ရပ်ကိုင်တွယ်သူကို ပြုပြင်ထားသည်။ အသုံးပြုနေသောချိတ်ဆက်မှုမရှိကြောင်းညွှန်ပြရန် 0xFF တန်ဖိုးကိုအသုံးပြုသည်။ ချိတ်ဆက်မှုပိတ်ရသည့်အကြောင်းရင်းကို ပရင့်ထုတ်ရန် app_log() အမိန့်ကိုအသုံးပြုသည်၊၊ အခြေအနေကုဒ်များစာရင်းသည် ဤနေရာတွင်ဖြစ်သည်။ ၎င်းသည် ဤကဲ့သို့ဖြစ်စေရန် ရှိပြီးသားဖြစ်ရပ်ကိုင်တွယ်သူကို မွမ်းမံပြင်ဆင်ပါ-
- app_log.h ခေါင်းစီးကို ထည့်သွင်းပါ။ file
-
- ပရောဂျက်ကို တည်ဆောက်ပြီး flash လုပ်ပါ။ ဤအချိန်တွင် ကျွန်ုပ်တို့သည် s ကို run ပါမည်။ampGATT ဒေတာဘေ့စ်မှတပါး မည်သည့်ပြောင်းလဲမှုမှမရှိဘဲ ၎င်းသည် မည်သို့ပြုမူသည်ကို ကြည့်ရှုရန် le app။
- အောက်ပါအတိုင်း EFRConnect မိုဘိုင်းအက်ပ်ဖြင့် ချိတ်ဆက်ပါ။
-
- 'ဘလူးတုသ်ဘရောက်ဆာ' အိုင်ကွန်ကို နှိပ်ပါ။
- 'လေ့ကျင့်ရေး' အမည်ရှိ စက်ပေါ်ရှိ 'ချိတ်ဆက်' သင်္ကေတကို နှိပ်ပါ။
-
- အကာအကွယ်မဲ့ လက္ခဏာကို အောက်ပါအတိုင်း ဖတ်ပါ။
-
- UUID a815944e-da1e-9d2a- 02e2-a8d15e2430a0 ဖြင့် အမည်မသိဝန်ဆောင်မှုအောက်ရှိ 'နောက်ထပ်အချက်အလက်' လင့်ခ်ကို နှိပ်ပါ။
- 'Read' အိုင်ကွန်ကို နှိပ်ခြင်းဖြင့် အကာအကွယ်မရှိသော လက္ခဏာရပ်ကို ဖတ်ပါ။ ဤနေရာတွင် အံ့သြစရာမရှိပါ။ ဝိသေသကို မည်သည့်နည်းဖြင့်မျှ မကာကွယ်ထားသောကြောင့် ၎င်းကို လွင်ပြင်ဖြင့် ပေးပို့မည်ဖြစ်သည်။
-
- ယခု ကာကွယ်ထားသော လက္ခဏာ UUID d4261dbb-dcd0-daab-ec95-deec088d532b ကိုဖတ်ပါ။ သင့်မိုဘိုင်းလ်ဖုန်းသည် သင့်အား တွဲချိတ်ရန်နှင့် ချိတ်ဆက်ရန် တောင်းဆိုသင့်သည်၊ မက်ဆေ့ချ်သည် သင့်မိုဘိုင်း OS ပေါ်မူတည်၍ ကွဲပြားနိုင်သည်။ တွဲချိတ်ရန် တောင်းဆိုချက်ကို လက်ခံပြီးနောက်၊ ကွန်ဆိုးလ်တွင် အောက်ပါအတိုင်း မက်ဆေ့ချ်တစ်စောင် ပေးပို့သင့်သည်-
မှတ်ချက်: နောက်ဆက်တွဲ A သည် ဤစာအုပ်၏အဆုံးတွင် I/O စွမ်းရည်များနှင့် တွဲချိတ်ခြင်းနည်းလမ်းများကို ကိုးကားရန်အတွက် အကျဉ်းချုပ်ပါရှိပါသည်။ နောက်ဆက်တွဲ B သည် ဘလူးတုသ်လုံခြုံရေးမုဒ်များကို အကျဉ်းချုပ်ဖော်ပြသည်။
လုံခြုံရေးမန်နေဂျာ ဖွဲ့စည်းမှု
လုံခြုံရေးမန်နေဂျာသည် မည်သည့်လုံခြုံရေးအင်္ဂါရပ်များကို အသုံးပြုကြောင်း ဆုံးဖြတ်သည့် Bluetooth stack ၏ အစိတ်အပိုင်းဖြစ်သည်။ ဤအင်္ဂါရပ်များတွင် လူကြား-အလယ်အလတ် (MITM) ကာကွယ်ရေး၊ LE Secure ချိတ်ဆက်မှုများ (ECDH)၊ ချိတ်ဆက်မှုအတွက် အတည်ပြုချက်လိုအပ်ခြင်း စသည်တို့ ပါဝင်ပါသည်။ လုံခြုံရေးမန်နေဂျာသည် မည်သည့်နည်းလမ်းကို အသုံးပြုသည်ကို ဆုံးဖြတ်ရန် အသုံးပြုသည့် I/O စွမ်းရည်များကို စီမံပေးပါသည်။ /bonding (အကျဉ်းချုပ်အတွက် နောက်ဆက်တွဲ A ကိုကြည့်ပါ)။ ဤကဏ္ဍတွင် ရိုးရှင်းသော စနစ်ထည့်သွင်းမှုကို သင်တွေ့ရပါမည်။
- အလိုရှိသောဖွဲ့စည်းမှုဖြင့် SM ကို စနစ်ထည့်သွင်းပါ။ ဤဓာတ်ခွဲခန်းအတွက် ဟာ့ဒ်ဝဲသည် ကွန်ဆိုးလ်တွင် သော့တံကို ပြသရန် လွယ်ကူစေသည်။ သော့တံထည့်သွင်းခြင်းသည် MITM အကာအကွယ်ကို ဖွင့်ရန် လိုအပ်ချက်တစ်ခုဖြစ်သည်။ သင်၏ sl_bt_system_boot_id event handler သို့ အောက်ပါကုဒ်ကို ထည့်ပါ။ ၎င်းသည် အလယ်အလတ်မှ လူများကို သော့ခတ်ပြနိုင်သည့် စွမ်းရည်ရှိကြောင်း အဝေးထိန်းကိရိယာအား အသိပေးသည်၊ သို့သော် ဒါပါပဲ။
- ကွန်ဆိုးလ်တွင် သော့တံကိုပြသရန် အောက်တွင်ပြထားသည့်အတိုင်း ဖြစ်ရပ်ကိုင်တွယ်သူ လိုအပ်သည်-
- ချိတ်ဆက်မှုမုဒ်၊ အများဆုံးချိတ်ဆက်မှုအရေအတွက်၊ စသည်ဖြင့် သတ်မှတ်ပါ။ စတင်ရန် အောက်ပါကုဒ်ကို အသုံးပြုပါ-
တိုက်ခိုက်သူ၏ စက်ပစ္စည်းနှင့် ချိတ်ဆက်နိုင်မှုကို ကန့်သတ်ရန် ဤဆက်တင်များကို အသုံးပြုနိုင်သည်။ သင့်ထုတ်ကုန်တွင် အသုံးပြုသူတစ်ဦးသာရှိရန် လိုအပ်ပါက၊ သင်သည် အများဆုံးငွေချေးစာချုပ်များကို 1 သို့ ကန့်သတ်နိုင်သည်။ ဤခေါ်ဆိုမှုများကို ထည့်ရန်နေရာကောင်းမှာ sl_bt_system_boot_id event handler တွင်ဖြစ်သည်။ ကျန်ရှိသောဓာတ်ခွဲခန်းများကို ပိုမိုချောမွေ့စေရန်အတွက် ယခုအချိန်တွင် ချည်နှောင်ခြင်းကို ဖွင့်မည်မဟုတ်သော်လည်း နှောင်ကြိုးတစ်ခုသာခွင့်ပြုရန် ချိတ်ဆက်မှုမူဝါဒကို ကျွန်ုပ်တို့ချမှတ်ထားပါသည်။ အကိုးအကားအတွက်၊ ဤ API များအတွက် စာရွက်စာတမ်းများကို ဤနေရာနှင့် ဤနေရာတွင် တွေ့နိုင်သည်။
- sl_bt_evt_sm_bonded_id နှင့် sl_bt_evt_sm_bonding_failed_id အတွက် ပွဲကိုင်တွယ်သူများကို ထည့်ပါ။ ဤဖြစ်ရပ်များအတွက် အဓိကအသုံးပြုမှုသည် လောလောဆယ်တွင် သတင်းအချက်အလတ်ဖြစ်သော်လည်း နောက်ပိုင်းတွင် ဓာတ်ခွဲခန်းတွင် သင်လုပ်ဆောင်နိုင်စွမ်းကို ထည့်သွင်းမည်ဖြစ်သည်။
- ပစ်မှတ်ဘုတ်သို့တည်ဆောက်ပြီး flash လုပ်ပါ။ EFRConnect နှင့် ချိတ်ဆက်ပြီး ယခင်ကဲ့သို့ ကာကွယ်ထားသော လက္ခဏာများကို ဖတ်ပါ။ ဤတစ်ကြိမ်တွင်၊ ကွန်ဆိုးလ်ပေါ်တွင် သော့တံတစ်ခုကို သင်တွေ့ရပါမည်။ တောင်းဆိုလာသောအခါတွင် ဤသော့တံကို သင့်မိုဘိုင်းဖုန်းတွင် ထည့်သွင်းပါ။
- ချိတ်ဆက်မှု အတည်ပြုချက်ကို စမ်းကြည့်ပါ။ ဤအင်္ဂါရပ်သည် အသုံးပြုသူအား ချိတ်ဆက်ခြင်းတောင်းဆိုမှုများကို အတည်ပြုရန် လိုအပ်သည်။ ထိုသို့ပြုလုပ်ခြင်းဖြင့် မည်သည့်မျိုးတူစက်ပစ္စည်းများနှင့် ချိတ်ဆက်ထားသည့်အပလီကေးရှင်းကို ထိန်းချုပ်ပေးသည်။ ဖြစ်နိုင်ချေတစ်ခုမှာ အသုံးပြုသူအား နှောင်ကြိုးကိုခွင့်ပြုခြင်းမပြုမီ ခလုတ်တစ်ခုနှိပ်ရန် လိုအပ်သည်။
- သင့်မိုဘိုင်းဖုန်းရှိ ဘလူးတုသ်ဆက်တင်များကိုဖွင့်ပြီး EFR32 စက်ပစ္စည်းသို့ နှောင်ကြိုးကို ဖယ်ရှားပါ။ မိုဘိုင်းလ်ဖုန်း အကောင်အထည်ဖော်မှုများသည် ကွဲပြားသောကြောင့် ဤအဆင့်ကို မလိုအပ်နိုင်ပါ။ သင်၏ Bluetooth ဆက်တင်များတွင် 'လေ့ကျင့်ရေး' စက်ပစ္စည်းကို မတွေ့ပါက နောက်တစ်ဆင့်သို့ ဆက်သွားပါ။
- ဆော့ဖ်ဝဲ အစိတ်အပိုင်းများတွင် ရိုးရှင်းသော ခလုတ်ကိုင်တွယ်သူ၏ ဥပမာတစ်ခုကို ထည့်သွင်းပါ။
- ခေါင်းစဉ်ကို ထည့်သွင်းပါ။ file app.c တွင် sl_simple_button_instances.h
- sl_bt_evt_sm_bonding_confirm_id ဖြစ်ရပ်အတွက် ကိုင်တွယ်သူကို ထည့်ပါ။ ဤဖြစ်ရပ်ကိုင်တွယ်သူ၏ အဓိကအလုပ်မှာ အဝေးထိန်းကိရိယာတစ်ခုမှ ငွေချေးစာချုပ်အသစ်တစ်ခုတောင်းဆိုနေခြင်းဖြစ်ကြောင်း သုံးစွဲသူအား အသိပေးရန်ဖြစ်သည်။
- ခလုတ်တစ်ခုကို နှိပ်လိုက်ကြောင်း ညွှန်ပြသော Bluetooth stack သို့ အချက်ပြပေးပို့ရန် ရိုးရှင်းသော ခလုတ်ကိုင်တွယ်သူအတွက် ပြန်လည်ခေါ်ဆိုမှုလုပ်ဆောင်ချက်ကို ထည့်ပါ။ ၎င်းသည် ရိုးရိုးပြန်သွားသည့် မူရင်းပြန်ခေါ်မှုကို အစားထိုးသည်။
- ပြင်ပ အချက်ပြ ဖြစ်ရပ် ကိုင်တွယ်သူကို ထည့်ပါ။ ယခင်အဆင့်တွင်ကဲ့သို့ အချက်ပြမှုကို လက်ခံရရှိခြင်းအတွက် ဤဖြစ်ရပ်ကို ပေါ်လွင်စေပါသည်။ ချိတ်ဆက်မှုကို အတည်ပြုရန် ပြင်ပအချက်ပြဖြစ်ရပ်ကို အသုံးပြုပါမည်။
- ချိတ်ဆက်မှု အတည်ပြုချက် လိုအပ်ရန် ခေါ်ဆိုမှုကို sl_bt_sm_configure သို့ ပြောင်းပါ။
- ပြန်လည်တည်ဆောက်ပြီး flash ။
- EFRConnect နှင့် ချိတ်ဆက်ပြီး ယခင်ကဲ့သို့ ကာကွယ်ထားသော လက္ခဏာများကို ဖတ်ပါ။ ယခု သင်သည် အောက်ပါအတိုင်း ကွန်ဆိုးလ်တွင် မက်ဆေ့ချ်တစ်ခုကို တွေ့ရပါမည်။
ချိတ်ဆက်မှုကို အတည်ပြုရန် PB0 ကိုနှိပ်ပါ။ ယခု ကွန်ဆိုးလ်သည် ချိတ်ဆက်မှုအတွက် မိုဘိုင်းလ်ဖုန်းတွင် ထည့်သွင်းရမည့် သော့တံကို ပြသမည်ဖြစ်သည်။ ချိတ်ဆက်ခြင်းလုပ်ငန်းစဉ်ကို အပြီးသတ်ရန် သော့တံကိုထည့်ပါ။
ထိပ်ဖျား: stack က ကိုင်တွယ်မရတဲ့ အဖြစ်အပျက်တစ်ခုကို ပို့တဲ့အခါ စာတစ်စောင်ကို ပရင့်ထုတ်ဖို့ event handler မှာ မူရင်း case ကို သုံးပါ။ stack သည် သင့်အား အရေးကြီးသောအရာတစ်ခုကို ပြောပြရန် ကြိုးစားနေပေမည်။
အခြေခံများကိုကျော်လွန်
ဤအချိန်တွင် သင်သည် အာဗန်ကို ခံယူခဲ့ပြီtagကျွန်ုပ်တို့၏ stack ပေးဆောင်ရမည့် လုံခြုံရေးအင်္ဂါရပ်များထဲမှ e။ ယခု ကျွန်ုပ်တို့၏ ရည်မှန်းချက်အတိုင်း အင်္ဂါရပ်များကို ပညာရှိစွာ အသုံးပြုခြင်းဖြင့် အကောင်အထည်ဖော်မှုကို တိုးတက်စေကြပါစို့။ အောက်ပါအဆင့်များသည် စိတ်ကြိုက်ရွေးချယ်နိုင်ပြီး တစ်ခုနှင့်တစ်ခု အမှီအခိုကင်းသည်၊ သင်သည် အမူအကျင့်ကိုမြင်ရန် တစ်ခုချင်းစီပြီးနောက် flash နိုင်သည် သို့မဟုတ် ၎င်းတို့အားလုံးကို အတူတကွ စမ်းကြည့်ပါ။
- မအောင်မြင်သော ငွေချေးစာချုပ် ကြိုးပမ်းမှုများတွင် အဆက်ဖြတ်ပါ။ ဤသည်မှာ ခြိမ်းခြောက်မှုများကို ရှာဖွေရန် နေရာကောင်းဖြစ်သည်။ အဝေးထိန်းကိရိယာတွင် ကုဒ်ဝှက်ခြင်း/စစ်မှန်ကြောင်းအထောက်အထားပြသခြင်းကို မပံ့ပိုးနိုင်ပါ သို့မဟုတ် မှန်ကန်သောသော့များမရှိပါက၊ ၎င်းသည် ဟက်ကာဖြစ်နိုင်သည်။ ဒီတော့ ချိတ်ဆက်မှုကို ဖြတ်လိုက်ရအောင်။ sl_bt_sm_bonding_failed_id အစီအစဉ်တွင် sl_bt_connection_close() သို့ ခေါ်ဆိုမှုတစ်ခုကို ထည့်ကြည့်ပါ။ API ကို ဤနေရာတွင် မှတ်တမ်းတင်ထားပါသည်။
သော့တံမှားထည့်ခြင်းဖြင့် ဤအင်္ဂါရပ်ကို စမ်းသပ်နိုင်သည်။
- အချို့သောအချိန်များတွင်သာ ချည်နှောင်ခြင်းကို ခွင့်ပြုသည်။ ၎င်းသည် တိုက်ခိုက်သူသည် နှောင်ကြိုးဖွဲ့စည်းရမည့်အချိန်ကို ကန့်သတ်ထားပြီး 'ချိတ်ဆက်ထားသော ချိတ်ဆက်မှုများကိုသာ ခွင့်ပြုသည်' အင်္ဂါရပ်ကို အသုံးပြုရန် ဖြစ်နိုင်သည်။ ဒီဇိုင်နာသည် နှောင်ကြိုးမဲ့မုဒ်ကို မည်သို့ဖွင့်ရန် သို့မဟုတ် ပိတ်ရန် ရွေးချယ်နိုင်သည်။ ဤနေရာတွင် သရုပ်ပြခြင်းရည်ရွယ်ချက်အတွက်၊ ကျွန်ုပ်တို့သည် PB1 ဖြင့် 'ဆက်တင်မုဒ်' ကိုဖွင့်ပြီး စက္ကန့် 30 ကြာပြီးနောက် ၎င်းကို ပိတ်ရန် အချိန်တိုင်းကိရိယာကို အသုံးပြုပါမည်။
- ရိုးရှင်းသောခလုတ်အင်တာဖေ့စ်၏ဒုတိယဥပမာကိုထည့်သွင်းပါ။ ၎င်းသည် PB1 ကိုအသုံးပြုနိုင်မည်ဖြစ်သည်။
- ချိတ်ဆက်ခြင်းကိုဖွင့်/ပိတ်ရန် စစည်းသို့ မတူညီသောအချက်ပြမှုတစ်ခုပေးပို့ရန် ပြန်လည်ခေါ်ဆိုမှုကို ပြင်ဆင်ပါ။ ရလဒ်သည် ဤကဲ့သို့သောပုံသဏ္ဌာန်ရှိသင့်သည်-
- ဤအချက်ပြမှုအသစ်ကို ကိုင်တွယ်နိုင်စေရန် ပြင်ပအချက်ပြဖြစ်ရပ်ကိုင်တွယ်သူကို မွမ်းမံပါ။ ရလဒ်သည် ဤကဲ့သို့ ဖြစ်သင့်သည်-
- sl_bt_evt_system_soft_timer_id ဖြစ်ရပ်အတွက် ဖြစ်ရပ်ကိုင်တွယ်သူကို ထည့်ပါ။ စနစ်ထည့်သွင်းခြင်းမုဒ်ကို ပိတ်ရန် ၎င်းကို အသုံးပြုပါမည်။
- အောက်ဖော်ပြပါကုဒ်ကို နှောင်ကြိုးမဲ့မုဒ်ကို ဖွင့်ရန်နှင့် ချိတ်ဆက်မှုအားလုံးကို ခွင့်ပြုရန် သို့မဟုတ် နှောင်ကြိုးမဲ့မုဒ်ကို ပိတ်ရန်နှင့် ချိတ်ဆက်ထားသော စက်များမှ ချိတ်ဆက်မှုများကိုသာ ခွင့်ပြုနိုင်သည်-
- sl_bt_system_boot_id event handler တွင် အောက်ပါခေါ်ဆိုမှုကို ထည့်ပါ။
- ပရောဂျက်ကို တည်ဆောက်ပြီး စက်ပစ္စည်းသို့ ဖလက်ရှ်လုပ်ပါ။
- EFRConnect ဖြင့် စက်ပစ္စည်းသို့ ချိတ်ဆက်ကြည့်ပါ။ ချိတ်ဆက်မှုပျက်သင့်သည်။
- ယခု EFRConnect နှင့် မချိတ်ဆက်မီ PB1 ကို နှိပ်ကြည့်ပါ။ ယခုတစ်ကြိမ် ချိတ်ဆက်မှု အောင်မြင်မည်။ စက္ကန့် 30 ကြာပြီးနောက် စက်ပစ္စည်းသည် စနစ်ထည့်သွင်းမှုမုဒ်မှ ထွက်နေကြောင်း ညွှန်ပြသည့် ကွန်ဆိုးလ်တွင် မက်ဆေ့ချ်တစ်ခုကို သင်တွေ့ရပါမည်။ ဆိုလိုသည်မှာ နှောင်ကြိုးမဲ့မုဒ်ကို ယခု ပိတ်ထားသည်။
- ချိတ်ဆက်မှုဖွဲ့စည်းရာတွင် လုံခြုံရေးကို တိုးမြှင့်ပါ။ လုံခြုံရေးသည် ရွေးချယ်နိုင်သောကြောင့်၊ ကျွန်ုပ်တို့သည် GATT လက္ခဏာများကို အားကိုးမည့်အစား ကုဒ်ဝှက်ထားသောချိတ်ဆက်မှုကို အမြန်ဆုံးတောင်းဆိုသင့်သည်။ API ကို ဤနေရာတွင် မှတ်တမ်းတင်ထားသည်။ ဤ API ကိုခေါ်ဆိုရန် နေရာကောင်းမှာ sl_bt_evt_connection_opened_id event တွင်ဖြစ်သည်။ ချိတ်ဆက်မှုလက်ကိုင်ကို ချိတ်ဆက်မှုပုံစံပြောင်းပုံစံတွင် ရနိုင်ပါသည်။
လုံခြုံသောအထောက်အထား
ယခု ကျွန်ုပ်တို့တွင် ပိုမိုလုံခြုံသော ဘလူးတုသ်စက်ပစ္စည်းတစ်ခုရှိသဖြင့် အထောက်အထားစိစစ်ခြင်းအဆင့်ကို မြှင့်တင်ကြပါစို့။ ယခင်လေ့ကျင့်ရေးဓာတ်ခွဲခန်းများတွင် အမိန့်ပေးစာကြောင်းဖြင့် လုံခြုံသော ကိရိယာများ၏ လုံခြုံသောအထောက်အထားကို မည်သို့အတည်ပြုရမည်ကို သင်မြင်ပြီးဖြစ်သည်။ ဤကဏ္ဍတွင်၊ BLE စက်ပစ္စည်းတစ်ခုသည် ၎င်း၏လက်မှတ်ကွင်းဆက်ကို တောင်းဆိုပြီး စိန်ခေါ်မှုတစ်ခုပေးပို့ခြင်းဖြင့် အခြား BLE စက်ပစ္စည်း၏အထောက်အထားကို မည်သို့အတည်ပြုနိုင်သည်ကို ကျွန်ုပ်တို့ကြည့်ရှုပါမည်။ လုံခြုံသော ဆိုင်ခန်းအစိတ်အပိုင်းများအားလုံးသည် ၎င်းတို့၏ကိုယ်ပိုင်စက်ပစ္စည်းလက်မှတ်နှင့် အသုတ်လက်မှတ်ကို ကိုင်ဆောင်ထားသည်။ လက်မှတ်ကွင်းဆက်တစ်ခုလုံးကို စိစစ်အတည်ပြုနိုင်ရန် စက်ရုံနှင့် အရင်းလက်မှတ်များကို ကုဒ်နံပါတ်များကို ကုဒ်နံပါတ်ဖြင့် ဖောက်သည်အပလီကေးရှင်းတွင် ခက်ခက်ခဲခဲထည့်သွင်းထားသည်။ လုံခြုံသောအထောက်အထားဆိုင်ရာ အသေးစိတ်အချက်အလက်များအတွက် AN1268 သို့ ကိုးကားပါ။
- စက်ပစ္စည်း သက်သေခံလက်မှတ်ကို အောက်ပါအတိုင်း သိမ်းဆည်းရန်အတွက် ကမ္ဘာလုံးဆိုင်ရာ ကြားခံတစ်ခု သတ်မှတ်ပါ-
- JustWorks တွဲချိတ်ခြင်းကို အသုံးပြုရန်အတွက် လုံခြုံရေးမန်နေဂျာ ဖွဲ့စည်းမှုပုံစံကို သတ်မှတ်ပါ။ ချိတ်ဆက်မှုကို ကုဒ်ဝှက်ထားရန် ၎င်းကို လုပ်ဆောင်သည်။ လက်တွေ့တွင် MITM ကာကွယ်မှုကို အသုံးပြုသင့်သော်လည်း ဓာတ်ခွဲခန်းကို ရိုးရှင်းစေရန်အတွက် JustWorks ကို အသုံးပြုပါမည်။ ခေါ်ဆိုမှုကို sl_bt_sm_configure သို့ အောက်ပါအတိုင်း ပြန်ပြောင်းပါ။
ထို့အပြင်၊ system_boot event handler ရှိ setup_mode(true) သို့ ခေါ်ဆိုမှုကို မှတ်ချက်ပေးပါ။
- ပေးထားသောပစ္စည်းများမှ helpers.c ကိုဖွင့်ပြီး အကြောင်းအရာများကို app.c သို့ ကူးယူပါ။ ဤပြန်ခေါ်ခြင်းလုပ်ဆောင်ချက်များသည် လက်မှတ်များကို BLE မှတစ်ဆင့် ပေးပို့နိုင်စေရန်၊ လက်မှတ်ကွင်းဆက်ကို အတည်ပြုခြင်းနှင့် စိန်ခေါ်မှုကို ဖန်တီးခြင်း/အတည်ပြုခြင်းစသည့် အလုပ်များကို လုပ်ဆောင်ပါသည်။
- လက်မှတ်များကို အပိုင်းပိုင်းခွဲ၍ ပြန်လည်စုစည်းနိုင်စေရန် အများဆုံးလွှဲပြောင်းယူနစ် (MTU) အရွယ်အစားကို ဆုံးဖြတ်ရန် လိုအပ်ပါသည်။ ဤနေရာတွင် ဖော်ပြထားသည့်အတိုင်း MTU ကို သိမ်းဆည်းရန် ကမ္ဘာလုံးဆိုင်ရာ ကိန်းရှင်ကို သတ်မှတ်ပါ။
ထို့နောက် အောက်ဖော်ပြပါအတိုင်း GATT MTU ဖလှယ်သည့်ဖြစ်ရပ်အတွက် ပွဲကိုင်တွယ်သူတစ်ခုကို ထည့်ပါ။
- အသုံးပြုသူဒေတာကို ဖတ်ရှုနိုင်သည့် လက္ခဏာ သုံးခုရှိသည်။ ဤလက္ခဏာများကို စက်ပစ္စည်းလက်မှတ်၊ အသုတ်လက်မှတ်နှင့် စိန်ခေါ်မှုကို ဆက်သွယ်ရန်အတွက် အသုံးပြုပါသည်။ ဤအသုံးပြုသူဖတ်ရန် တောင်းဆိုချက်များကို ကိုင်တွယ်ရန် ပြန်ခေါ်သည့်လုပ်ဆောင်ချက်ကို အသုံးပြုပါသည်။ အောက်ဖော်ပြပါအတိုင်း ဤလုပ်ဆောင်ချက်ကိုခေါ်ဆိုရန် ကိုင်တွယ်သူအား ထည့်ပါ-
ဖုန်းခေါ်ဆိုမှုတွင် အဆင့် 2 မှ MTU ကို အပိုင်းပိုင်းခွဲကာ လိုအပ်သလို လက်မှတ်များကို ပေးပို့ပါ။ ၎င်းသည် လက်မှတ်ထိုးထားသောစိန်ခေါ်မှုကို ပေးပို့ခြင်းကိုလည်း ကိုင်တွယ်သည်။
- ဖောက်သည်သည် GATT လက္ခဏာများထဲမှ တစ်ခုကို ရေးသားခြင်းဖြင့် ဆာဗာမှ လက်မှတ်ထိုးရမည့် ကျပန်းနံပါတ်တစ်ခု စိန်ခေါ်မှုတစ်ခု ပေးပို့သည်။ ထို့ကြောင့်၊ အပလီကေးရှင်းတွင် အောက်ဖော်ပြပါအတိုင်း အသုံးပြုသူရေးရန် တောင်းဆိုမှုဖြစ်ရပ်အတွက် ကိုင်တွယ်ဖြေရှင်းသူရှိရန် လိုအပ်သည်-
- လုံခြုံသောအထောက်အထားပံ့ပိုးမှုထည့်ပါ။ fileပရောဂျက်သို့ s-
- ပရောဂျက်အတွက် ပံ့ပိုးပေးထားသည့် ပစ္စည်းများမှ app_se_manager_macro.h၊ app_se_manager_secure_identity.c နှင့် app_se_secure_identity.h။ ဒါတွေ files တွင် လက်မှတ်အရွယ်အစားရယူခြင်း၊ စက်ပစ္စည်း အများသူငှာသော့ရယူခြင်းနှင့် စိန်ခေါ်မှုတစ်ခုလက်မှတ်ထိုးခြင်းကဲ့သို့သော အလုပ်များအတွက် အထောက်အကူပေးသည့်လုပ်ဆောင်ချက်အချို့ပါရှိသည်။
- app.c တွင် app_se_manager_secure_identity.h ကို ထည့်သွင်းပါ။
- ပေးထားသောပစ္စည်းများမှ gatt_configuration-attest.btconf ကို တင်သွင်းပါ။ ဤ GATT ဒေတာဘေ့စ်သည် ကျွန်ုပ်တို့၏စက်ပစ္စည်း၏အထောက်အထားကိုအတည်ပြုရန်အသုံးပြုမည့် လက္ခဏာလေးရပ်ပါဝင်သည့် လုံခြုံသောသက်သေအထောက်အထားဟုခေါ်သည်။ ၎င်းတို့တွင် စက်လက်မှတ်၊ အစုလိုက်လက်မှတ်၊ စိန်ခေါ်မှုနှင့် တုံ့ပြန်မှုတို့ ပါဝင်သည်။
- ဂိတ်ဝကဲ့သို့သော စက်ပစ္စည်းကို အတုယူရန် အသုံးပြုသည့် ကလိုင်းယင့်အား တည်ဆောက်ရန် ပိုမိုရှုပ်ထွေးသောကြောင့် ပြီးပြည့်စုံသော ပရောဂျက်အဖြစ် ပံ့ပိုးပေးထားသည်။ ယေဘူယျအားဖြင့်၊ ဖောက်သည်၏ လုပ်ဆောင်ချက်သည် အောက်ပါအတိုင်းဖြစ်သည်။
- လုံခြုံသော သက်သေခံဝန်ဆောင်မှုကို ကြော်ငြာသည့် စက်ပစ္စည်းများအတွက် စကင်န်ဖတ်ပြီး ၎င်းတို့နှင့် ချိတ်ဆက်သည်။
- GATT ဒေတာဘေ့စ်ဝန်ဆောင်မှုများနှင့် ဝိသေသလက္ခဏာများကို ရှာဖွေပါ။
- စက်ပစ္စည်းနှင့် အသုတ်လက်မှတ်များကို ဖတ်ပြီး flash တွင်သိမ်းဆည်းထားသည့် စက်ရုံနှင့် root လက်မှတ်ကို အသုံးပြု၍ လက်မှတ်ကွင်းဆက်ကို စစ်ဆေးသည်။
- ဆာဗာသို့ ကျပန်းစိန်ခေါ်မှုတစ်ခု ပေးပို့သည်။
- စိန်ခေါ်မှုအတွက် တုံ့ပြန်မှုကို အတည်ပြုရန် ကြိုးပမ်းမှုများ။
- စိစစ်မှုတစ်ခုမအောင်မြင်ပါက ချိတ်ဆက်မှုကို ပိတ်ပါ။
- ဆာဗာပရောဂျက်ကို သင်၏ဆာဗာ WSTK / ရေဒီယိုဘုတ်တွင် တည်ဆောက်ပြီး flash လုပ်ပါ။
- ပေးထားသောပစ္စည်းများရှိ client ဖိုဒါမှ client ပရောဂျက်ကို တင်သွင်းပါ။ သင်၏ client WSTK/ ရေဒီယိုဘုတ်သို့ ကလိုင်းယင့်ပရောဂျက်ကို တည်ဆောက်ပြီး flash လုပ်ပါ။
- client WSTK တွင် reset ကိုနှိပ်ပြီး serial console ကိုဖွင့်ပါ။ ဖောက်သည်သည် ကျွန်ုပ်တို့၏ လုံခြုံသောအထောက်အထားဝန်ဆောင်မှုကို ကြော်ငြာသည့်ကိရိယာများအတွက် စကင်န်ဖတ်ပြီး ၎င်းကိုတွေ့ရှိသောအခါ ချိတ်ဆက်မည်ဖြစ်သည်။
- လက်မှတ်ကွင်းဆက်၏အတည်ပြုခြင်းနှင့်ပတ်သက်၍ အလိုရှိသောဝန်ဆောင်မှုနှင့် အခြေအနေပေးစာများပါရှိသော ဆာဗာကို တွေ့ရှိကြောင်း ညွှန်ပြရန်အတွက် သုံးစွဲသူသည် စာတိုအချို့ကို ပြသမည်ဖြစ်သည်။
- အတည်ပြုခြင်းအောင်မြင်သွားပါက၊ client သည် စိန်ခေါ်မှုတစ်ခုဟုခေါ်သော ကျပန်းနံပါတ်တစ်ခုထုတ်ပေးပြီး ၎င်းကိုဆာဗာသို့ပေးပို့မည်ဖြစ်သည်။ ဆာဗာသည် ၎င်း၏ လုံခြုံစွာသိမ်းထားသော ကိုယ်ပိုင်စက်ပစ္စည်းသော့ဖြင့် စိန်ခေါ်မှုကို လက်မှတ်ထိုးမည်ဖြစ်ပြီး၊ ၎င်းကို စိန်ခေါ်မှုတုံ့ပြန်မှုဟု ခေါ်သည်။ ထို့နောက် ကလိုင်းယင့်သည် လက်မှတ်ကို အတည်ပြုရန် ယခင်ရရှိထားသော စက်လက်မှတ်ရှိ အများသူငှာသော့ကို အသုံးပြုသည်။ ဆာဗာတွင် ၎င်းတွင်တောင်းဆိုထားသည့် သီးသန့်သော့အမှန်တကယ်ရှိကြောင်း အတည်ပြုရန် ၎င်းကိုလုပ်ဆောင်သည်။ စိန်ခေါ်မှုကို မှန်မှန်ကန်ကန် အတည်ပြုပါက၊ ထိုအကျိုးသက်ရောက်မှုအတွက် မက်ဆေ့ချ်တစ်ခု ပြသပါမည်။ မဟုတ်ပါက ချိတ်ဆက်မှုကို ပိတ်ထားပြီး အကြောင်းရင်းကို ရှင်းပြသည့် မက်ဆေ့ချ်ကို ပြသထားသည်။
- အတည်ပြုချက် အမှန်တကယ် အလုပ်လုပ်ကြောင်း အတည်ပြုရန် ယခု မမှန်ကန်သော လက်မှတ်တစ်စောင် ပေးပို့ပါ။ လက်မှတ်ဒေတာ သို့မဟုတ် စိန်ခေါ်မှုတုံ့ပြန်မှုကို ပျက်စီးစေရန် user_read_request_cb() ကို သင် ပြင်ဆင်နိုင်သည်။
နောက်ဆက်တွဲ A – I/O စွမ်းရည်များနှင့် တွဲချိတ်ခြင်းနည်းလမ်းများ 
နောက်ဆက်တွဲ B – လုံခြုံရေးမုဒ်များနှင့် အဆင့်များ
လုံခြုံရေးမုဒ် 1 သည် Silicon Labs ၏အတွဲတွင် Bluetooth Low Energy အတွက် ပံ့ပိုးပေးသည့် တစ်ခုတည်းသောမုဒ်ဖြစ်သည်။ အဆင့်များမှာ အောက်ပါအတိုင်းဖြစ်သည်။
- အဆင့် 1 တွင် လုံခြုံရေးမရှိပါ။
- အဆင့် 2 သည် ကုဒ်ဝှက်ခြင်းဖြင့် အထောက်အထားမခိုင်လုံသော တွဲချိတ်ခြင်း။
- အဆင့် 3 သည် ကုဒ်ဝှက်ခြင်းဖြင့် အစစ်အမှန်တွဲချိတ်ခြင်း
- အဆင့် 4 ခိုင်မာသောကုဒ်ဝှက်စနစ်ဖြင့် စစ်မှန်ကြောင်းသက်သေပြထားသော လုံခြုံသောချိတ်ဆက်မှုများ (ECDH သော့လဲလှယ်မှု)
စာရွက်စာတမ်းများ / အရင်းအမြစ်များ
![]() |
silabs 21Q2 လုံခြုံသော BLE စက် လုံခြုံရေးဓာတ်ခွဲခန်း [pdf] အသုံးပြုသူလက်စွဲ 21Q2 လုံခြုံသော BLE စက်ပစ္စည်း လုံခြုံရေးဓာတ်ခွဲခန်း၊ လုံခြုံသော BLE စက် လုံခြုံရေးဓာတ်ခွဲခန်း၊ လုံခြုံရေးဓာတ်ခွဲခန်း |