chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

面向 Bluetooth Smart 應(yīng)用的低功耗無(wú)線(xiàn) MCU

電子設(shè)計(jì) ? 來(lái)源:網(wǎng)友電子設(shè)計(jì)發(fā)布 ? 作者:網(wǎng)友電子設(shè)計(jì)發(fā)布 ? 2021-12-29 14:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

CC2640 R2是德州儀器推出的一款面向 Bluetooth Smart 應(yīng)用的低功耗無(wú)線(xiàn) MCU。該芯片集成有Cortex M3內(nèi)核,可以運(yùn)行TI的BLE協(xié)議棧,具有功耗低,外設(shè)種類(lèi)豐富,射頻性能好等特點(diǎn)。與CC2640相比,R2版本的芯片將部分協(xié)議棧遷移到了片內(nèi)的ROM中,留給客戶(hù)的應(yīng)用程序更多的Flash空間。CC2640R2芯片架構(gòu)及核心特點(diǎn)如下圖1所示。

而CC2640R2F本身集成有可以支持藍(lán)牙5.0的PHY,TI協(xié)議棧支持部分藍(lán)牙5.0的協(xié)議,如High speed,Long Range等等。基于CC2640R2F可以實(shí)現(xiàn)很多炫酷的應(yīng)用。不過(guò)有時(shí)候,有些應(yīng)用并沒(méi)有按鍵或者屏幕等輸入設(shè)備,要求APP輸入密碼與BLE從機(jī)配對(duì)后方可讀取BLE設(shè)備的數(shù)據(jù),這篇文章就跟大家詳細(xì)聊聊如何用用戶(hù)自定義的密碼進(jìn)行配對(duì)。

本文所使用的軟硬件平臺(tái)如下:

IDE環(huán)境 IAR 8.11.2
藍(lán)牙協(xié)議棧版本 1_50_00_62
實(shí)驗(yàn)所用工程 .\examples\rtos\CC2640R2_LAUNCHXL\bleapps\hid_emu_kbd
硬件平臺(tái) LAUNCHXL-CC2640R2
手機(jī)Android版本 4.4.4
手機(jī)IOS版本 11.3.1

本文是以hid_emu_kbd例程為參考。其他工程比如SimpleBLEPeripheral或者其他,都可以參照這個(gè)來(lái)修改。HID設(shè)備對(duì)BLE來(lái)說(shuō)比較特殊,BLE的HID profile是規(guī)定HID設(shè)備必須配對(duì)和綁定的。

下圖是配對(duì)和綁定的基本流程。Initiator是連接中的主設(shè)備,responder是連接中的從設(shè)備。

BLE的配對(duì)與綁定則發(fā)生在連接之后。綁定是在配對(duì)之后發(fā)生的事,需不需要綁定取決于用戶(hù)在代碼里的設(shè)置。

上圖的phase 1和phase2是配對(duì)的過(guò)程。Phase 3是綁定的過(guò)程。要不要進(jìn)行phase 3,在phase 1發(fā)送配對(duì)請(qǐng)求的時(shí)候就已經(jīng)決定了,這個(gè)決定就是用戶(hù)在代碼里面的配置。

如果要用戶(hù)在配對(duì)過(guò)程中人為輸入密碼或進(jìn)行其他認(rèn)為操作,是在phase 2。而具體的誤認(rèn)為操作方式,也是在phase 1中決定,這個(gè)決定也是用戶(hù)在代碼里面的配置。其實(shí)phase 2能用到的配對(duì)有很多種方式,最簡(jiǎn)單的就是just works的方式,用大家都知道的000000作為配對(duì)密碼,這個(gè)方式很不安全,非常容易被破解。其實(shí)BLE到了4.2以上的版本,已經(jīng)有了用DH(Diffie–Hellman key exchange)方式交換密碼,這個(gè)方式已經(jīng)很安全,且密碼也是隨機(jī)產(chǎn)生的。

有些應(yīng)用場(chǎng)景可能需求比較特殊,產(chǎn)品需要自定義的配對(duì)密碼,所以要達(dá)到這個(gè)目的,就需要我們靈活配置配phase 1中的各個(gè)參數(shù),這也是這篇文章的目的。

我們繼續(xù)以hid_emu_kbd為例,BLE配對(duì)phase 1所需要的幾個(gè)重要參數(shù)的配置在hidemukbd.c里,如下:

第一個(gè)關(guān)鍵參數(shù)是PAIRING_MODE,配對(duì)是由GAPBOND_PAIRING_MODE_INITIATE一端發(fā)起的,可以是主機(jī),也可以是從機(jī)。本文中由手機(jī)(手機(jī))發(fā)起配對(duì)請(qǐng)求,從機(jī)(CC2640R2)則被動(dòng)等待,所以需要將宏定義配置為GAPBOND_PAIRING_MODE_WAIT_FOR_REQ。

第二個(gè)關(guān)鍵參數(shù)是MITM_MODE,MITM即Man In The Middle保護(hù),如果MITM為FALSE,則說(shuō)明不需要人參與中間,后面相應(yīng)的IO capabilities設(shè)置也會(huì)被忽略,但是為了使配對(duì)需要Passcode才能成功,必須要把MITM_MODE的宏定義設(shè)置為T(mén)RUE。

第三個(gè)關(guān)鍵參數(shù)是IO_CAPABILITIES,表示本機(jī)是否有輸入或者顯示的功能,比如GAPBOND_IO_CAP_DISPLAY_ONLY,表示可以將密碼顯示在屏幕上給操作人看,如果有I/O接口可以輸入密碼,也可以選擇GAPBOND_IO_CAP_KEYBOARD_ONLY。本文中將I/O capabilities的屬性設(shè)置為GAPBOND_IO_CAP_DISPLAY_ONLY,如下:

這樣做的目的就是告訴主機(jī),我這邊能顯示配對(duì)密碼,最終用戶(hù)作為MITM,需要在主機(jī)那邊(手機(jī)上)跳出的窗口里輸入我從機(jī)這邊顯示的配對(duì)密碼就行。到這一步,phase 2要用的配對(duì)的方式就確定好了。但是這樣設(shè)置的話(huà)從機(jī)這邊顯示的密碼是隨機(jī)產(chǎn)生的6位數(shù),并不是我們想要的自定義的固定6位數(shù)。

×注意,即使實(shí)際的從設(shè)備產(chǎn)品不帶顯示功能(沒(méi)屏幕),IO_CAPABILITIES配置成GAPBOND_IO_CAP_DISPLAY_ONLY,也是可以的,前提就是用自定義的固定6位數(shù)作為配對(duì)密碼,不然就會(huì)導(dǎo)致產(chǎn)生的6位隨機(jī)數(shù)沒(méi)地方顯示,就會(huì)無(wú)法完成配對(duì)。

接下來(lái)就來(lái)設(shè)置固定的6位數(shù)配對(duì)密碼來(lái)達(dá)到我們的目的。

CC2640R2的修改方式CC2541不同,CC2541可以參考這個(gè)帖子:https://e2echina.ti.com/question_answer/wireless_connectivity/bluetooth/f/103/t/112619

首先看一下哪里設(shè)置這個(gè)自定義配對(duì)密碼passcode的6位數(shù)。CC2640R2的這個(gè)Passcode隱藏的比較深,在bcomdef.h里,把宏定義改成你自己需要的密碼就可以了。這里設(shè)置成123412,注意這個(gè)密碼必須是6位。

那么這個(gè)默認(rèn)自定義passcode是怎么被用上的呢?

首先,就是要在初始化的時(shí)候注冊(cè)bond manager的回調(diào):

這個(gè)回調(diào)的HidDev_PasscodeCB()就是處理passcode請(qǐng)求的回調(diào)函數(shù)。

當(dāng)配對(duì)的phase 2被配置成前面提到的方式時(shí),配對(duì)過(guò)程會(huì)觸發(fā)passcode請(qǐng)求,就會(huì)調(diào)用HidDev_passcodeCB()。最終會(huì)觸發(fā)HidDev_processPasscodeEvt():

所以可以看到,只要其中pHidDevCB->passcodeCB這個(gè)回調(diào)為NULL,那么就會(huì)使用默認(rèn)自定義密碼,這樣就能達(dá)到目的。(如果這個(gè)回調(diào)不為NULL,那么就會(huì)調(diào)用這個(gè)回調(diào)來(lái)獲取密碼,那很有可能是應(yīng)用層用戶(hù)手動(dòng)輸入密碼或者其他方式。)

pHidDevCB這個(gè)回調(diào)是在應(yīng)用層用戶(hù)自己初始化的:

第三個(gè)回調(diào)函數(shù)就是passcodeCB,這個(gè)修改為NULL。

這個(gè)回調(diào)結(jié)構(gòu)體是在HidDev_Register()被調(diào)用,并初始化給pHidDevCB指針的。

修改完了,為了調(diào)試的方便,我們把斷開(kāi)連接后自動(dòng)廣播打開(kāi),在IAR開(kāi)發(fā)環(huán)境中,右擊工程 -> Options -> C/C++ Compiler -> Preprocessor中Define Symbols里,把AUTO_ADV的值改為T(mén)RUE。

如果是用iPhone作為主機(jī)的話(huà),有幾個(gè)連接參數(shù)要改一下,不然iOS會(huì)拒絕連接參數(shù)更新請(qǐng)求。

下面到了見(jiàn)證奇跡的時(shí)刻,拿出你的手機(jī),以iPhone為例,由于是HID的工程,可以用iPhone自帶的藍(lán)牙界面:(如果不是HID工程,iOS上的lightblue app或者TI的sensorTag app都能做演示)

搜索到設(shè)備:

點(diǎn)擊搜索到的HID Keyboard,這樣會(huì)發(fā)起連接請(qǐng)求,自動(dòng)跳出密碼框:

輸入正確的預(yù)設(shè)6位密碼123412并點(diǎn)擊配對(duì):

配對(duì)成功連接建立完成:

如果輸入密碼錯(cuò)誤,那么會(huì)連接建立失敗,重新回到最初界面:

為了加深理解,我們可以從空中抓包的log來(lái)看一下過(guò)程。下圖是配對(duì)成功后,連接進(jìn)行加密:

那么可以看到加密以后的數(shù)據(jù)就都是紅的,這是因?yàn)閟niffer沒(méi)法解析了,通過(guò)MITM方式配對(duì)是比較安全的模式。

那么如果iPhone上密碼輸入錯(cuò)誤,非指定密碼,CC2640R2就會(huì)直接回復(fù)Pairing Failed給iPhone:

iPhone就會(huì)立即斷開(kāi)連接:

最后,靈活運(yùn)用前面提到過(guò)的配對(duì)參數(shù)搭配,能達(dá)到不同的配對(duì)場(chǎng)景效果。我們這里只是舉了一個(gè)例子,讀者有興趣的話(huà)可以自己嘗試一下各種搭配,這樣對(duì)理解BLE的安全機(jī)制也會(huì)很有幫助。

審核編輯:何安

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    147

    文章

    18781

    瀏覽量

    392913
  • 嵌入式處理
    +關(guān)注

    關(guān)注

    0

    文章

    341

    瀏覽量

    10473
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    CC2540T:藍(lán)牙低功耗無(wú)線(xiàn)MCU的卓越之選

    CC2540T:藍(lán)牙低功耗無(wú)線(xiàn)MCU的卓越之選 在當(dāng)今的電子設(shè)備領(lǐng)域,藍(lán)牙低功耗技術(shù)憑借其低能耗、低成本和廣泛的應(yīng)用場(chǎng)景,成為了眾多產(chǎn)品的首選通信技術(shù)。德州儀器(TI)的CC2540T
    的頭像 發(fā)表于 01-05 16:30 ?233次閱讀

    CC2640 SimpleLink? Bluetooth? 無(wú)線(xiàn)MCU:特性、應(yīng)用與設(shè)計(jì)指南

    CC2640 SimpleLink? Bluetooth? 無(wú)線(xiàn)MCU:特性、應(yīng)用與設(shè)計(jì)指南 在當(dāng)今的物聯(lián)網(wǎng)時(shí)代,低功耗、高性能的無(wú)線(xiàn)微控制
    的頭像 發(fā)表于 01-05 15:20 ?228次閱讀

    深入解析CC2642R:低功耗藍(lán)牙無(wú)線(xiàn)MCU的卓越之選

    深入解析CC2642R:低功耗藍(lán)牙無(wú)線(xiàn)MCU的卓越之選 在當(dāng)今的電子領(lǐng)域,低功耗、高性能的無(wú)線(xiàn)微控制器(
    的頭像 發(fā)表于 01-05 11:40 ?355次閱讀

    探索K32W14x無(wú)線(xiàn)MCU低功耗與多協(xié)議的完美融合

    ,它集成了高性能藍(lán)牙低功耗Bluetooth Low Energy)和IEEE 802.15.4無(wú)線(xiàn)功能,為各種應(yīng)用提供了強(qiáng)大的支持。今天,我們就來(lái)深入了解一下這款MCU的特點(diǎn)和技術(shù)
    的頭像 發(fā)表于 12-24 17:20 ?492次閱讀

    CC2652P無(wú)線(xiàn)MCU低功耗多協(xié)議的理想之選

    CC2652P無(wú)線(xiàn)MCU低功耗多協(xié)議的理想之選 在當(dāng)今的物聯(lián)網(wǎng)(IoT)時(shí)代,無(wú)線(xiàn)通信技術(shù)的發(fā)展日新月異,對(duì)于微控制器(MCU)的要求也越
    的頭像 發(fā)表于 12-22 13:55 ?314次閱讀

    深入剖析CC2642R-Q1:藍(lán)牙低功耗無(wú)線(xiàn)MCU的卓越之選

    深入剖析CC2642R-Q1:藍(lán)牙低功耗無(wú)線(xiàn)MCU的卓越之選 在當(dāng)今的電子設(shè)備領(lǐng)域,無(wú)線(xiàn)通信技術(shù)的發(fā)展日新月異,低功耗、高性能的
    的頭像 發(fā)表于 12-22 11:25 ?1597次閱讀

    CC2640R2L:低功耗藍(lán)牙5.1無(wú)線(xiàn)MCU的卓越之選

    CC2640R2L:低功耗藍(lán)牙5.1無(wú)線(xiàn)MCU的卓越之選 在當(dāng)今的電子設(shè)計(jì)領(lǐng)域,低功耗、高性能的無(wú)線(xiàn)微控制器(
    的頭像 發(fā)表于 12-22 11:25 ?1462次閱讀

    深入解析CC2340R5 - Q1藍(lán)牙低功耗無(wú)線(xiàn)MCU:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)

    深入解析CC2340R5 - Q1藍(lán)牙低功耗無(wú)線(xiàn)MCU:特性、應(yīng)用與設(shè)計(jì)要點(diǎn) 在汽車(chē)電子和物聯(lián)網(wǎng)應(yīng)用蓬勃發(fā)展的時(shí)代,無(wú)線(xiàn)微控制器(MCU)的
    的頭像 發(fā)表于 12-22 10:00 ?564次閱讀

    AIROC? CYW20829:高性能藍(lán)牙低功耗MCU的卓越之選

    專(zhuān)為IoT應(yīng)用量身打造的MCU + 藍(lán)牙低功耗Bluetooth? LE)平臺(tái),憑借其出色的性能和豐富的功能,成為了眾多工程師的首選。今天,我們就來(lái)深入了解一下這款強(qiáng)大的芯片。 文件下載
    的頭像 發(fā)表于 12-19 16:20 ?282次閱讀

    什么是低功耗設(shè)計(jì),如何評(píng)估低功耗MCU性能?

    每一個(gè)細(xì)節(jié)來(lái)考慮降低功率消耗,從而盡可能地延長(zhǎng)電池使用時(shí)間。 因此,大部分芯片都會(huì)有低功耗模式。從MCU端來(lái)講,低功耗MCU性能一般有以下幾個(gè)參數(shù)指標(biāo)來(lái)衡量: ·
    發(fā)表于 12-12 07:43

    德州儀器CC27xx-Q1系列無(wú)線(xiàn)MCU正式通過(guò)Bluetooth SIG認(rèn)證

    德州儀器 (TI) CC27xx-Q1 系列無(wú)線(xiàn) MCU 正式通過(guò) Bluetooth SIG 認(rèn)證,成為業(yè)界首個(gè)獲得Bluetooth? 6.0信道探測(cè)認(rèn)證并量產(chǎn)出貨的車(chē)規(guī)級(jí)產(chǎn)品系列
    的頭像 發(fā)表于 10-27 16:54 ?7548次閱讀

    STM32WB09xE藍(lán)牙低功耗MCU技術(shù)解析

    STMicroelectronics STM32WB09 BLUETOOTH? 低功耗5.4 32位MCU嵌入最先進(jìn)的2.4GHz射頻無(wú)線(xiàn)電外設(shè),優(yōu)化用于實(shí)現(xiàn)超
    的頭像 發(fā)表于 10-20 09:29 ?517次閱讀
    STM32WB09xE藍(lán)牙<b class='flag-5'>低功耗</b><b class='flag-5'>MCU</b>技術(shù)解析

    TI芯品CC2745P10-Q1具有1MB閃存、HSM、APU、CAN-FD 和 +20dBm 的汽車(chē)級(jí)SimpleLink? 低功耗 Bluetooth6.0無(wú)線(xiàn)MCU

    TI芯品CC2745P10-Q1具有1MB閃存、HSM、APU、CAN-FD 和 +20dBm 的汽車(chē)級(jí)SimpleLink? 低功耗 Bluetooth6.0無(wú)線(xiàn)MCU
    的頭像 發(fā)表于 06-18 18:25 ?5087次閱讀
    TI芯品CC2745P10-Q1具有1MB閃存、HSM、APU、CAN-FD 和 +20dBm 的汽車(chē)級(jí)SimpleLink? <b class='flag-5'>低功耗</b> <b class='flag-5'>Bluetooth</b>6.0<b class='flag-5'>無(wú)線(xiàn)</b><b class='flag-5'>MCU</b>

    藍(lán)牙低功耗技術(shù)與其他無(wú)線(xiàn)技術(shù)的區(qū)別

    藍(lán)牙低功耗技術(shù)(以下簡(jiǎn)稱(chēng) “Bluetooth LE”)是一種在我們生活中用于多種用途的無(wú)線(xiàn)通信技術(shù)。
    的頭像 發(fā)表于 06-10 10:56 ?1766次閱讀
    藍(lán)牙<b class='flag-5'>低功耗</b>技術(shù)與其他<b class='flag-5'>無(wú)線(xiàn)</b>技術(shù)的區(qū)別

    低功耗藍(lán)牙和經(jīng)典藍(lán)牙,到底怎么選?

    Bluetooth Smart兩者又有什么區(qū)別?我的應(yīng)用到底該選經(jīng)典藍(lán)牙技術(shù)還是低功耗藍(lán)牙技術(shù)?這是很多剛接觸藍(lán)牙技術(shù)的人經(jīng)常碰到的問(wèn)題。 首先,在2010年以前,當(dāng)我們談?wù)撍{(lán)牙的時(shí)候,就是在說(shuō)經(jīng)典藍(lán)牙,因?yàn)?/div>
    的頭像 發(fā)表于 04-07 16:01 ?1413次閱讀
    <b class='flag-5'>低功耗</b>藍(lán)牙和經(jīng)典藍(lán)牙,到底怎么選?