首頁 > 評測 > 藍牙之秘——PSoC 6 BLE Pioneer Kit評測系列之二

藍牙之秘——PSoC 6 BLE Pioneer Kit評測系列之二

PSoC6   BLE   先鋒套件   Cypress   低功耗   無線   
  • 作者:SATURN
  • 來源:21ic
  • [導讀]
  • PSoC 6號稱專為物聯(lián)網(wǎng)而生,自然少不了互聯(lián)與低功耗方面的特性。本文就來一探究竟。

PSoC 6號稱專為物聯(lián)網(wǎng)而生,自然少不了互聯(lián)與低功耗方面的特性,F(xiàn)有的互聯(lián)技術中,大多還是以WiFi及BLE為主,我們都知道WiFi是耗電大戶,但是WiFi可以直接接入現(xiàn)有的網(wǎng)絡中,BLE雖則能實現(xiàn)低功耗傳輸,但是并不能直接接入現(xiàn)有的互聯(lián)網(wǎng)中。比較而言,二者各有千秋,各有自己適用的場景。

PSoC 6 BLE Pioneer Kit提供的互聯(lián)技術是BLE,低功耗毫無壓力,只是聯(lián)網(wǎng)時需要結(jié)合手機、平板等移動終端或者IoT網(wǎng)關才能實現(xiàn)真正的接入互聯(lián)網(wǎng),在當今的應用場景中,也不是大問題。

image1.png

PSoC 6內(nèi)置雙核,包括一顆Cortex-M4內(nèi)核及一顆Cortex-M0+內(nèi)核。M4作為主處理器,最高運行主頻達150MHz,可實現(xiàn)單指令周期乘法運算,主要完成大量的數(shù)據(jù)處理及計算,在低功耗方面,該內(nèi)核能實現(xiàn)低至22-uA/MHz的功耗;M0+內(nèi)核作為輔助內(nèi)核,最高運行主頻也高達100MHz,電流消耗低至15‑µA/MHz。

BLE并不稀奇,PSoC 6上值得稀罕的東西是該BLE是最新的BLE 5。雖然也有人稱之為BLE 5.0,不過按照Bluetooth SIG的說法,就是BLE 5,而非5.0。BLE 5是全新的標準,并不只是BLE 4.2的簡單改進。為了讓用戶更好的進行BLE相關的調(diào)試,PSoC 6 BLE Pioneer Kit套件內(nèi)還提供了一個BLE USB DONGLE,基于BLE 4.2,結(jié)合CySmart程序,可以清楚的了解BLE通信過程中發(fā)生的各種事件。

打開PSoC Creator 4.2,咦,有新狀況。

image2.png

原來是license過期了,得重新申請一個,沒有l(wèi)icense,就沒法繼續(xù)用設計工具了。只是這個上面顯示還是PSoC3!

image3.png

重新申請一個吧,記得填上自己的EMAIL,否則這個license code會發(fā)到別人家里去了。

image4.png

用新申請的license code重新激活,現(xiàn)在終于OK了。

Cypress為PSoC 6開發(fā)套件提供了大量的例程,新手可以參考這些例程來入門,老鳥們也可以以此為參照,迅速建立自己的產(chǎn)品模型。在PSoC Creator里查找例程,如下

image5.png

這個例程除了使用了BLE功能,也使用了墨水屏來顯示一些指令提示,用來研究用正好。選擇好示例工程后,PSoC 6 Creator會將所有必要的文件復制到當前工作區(qū)里,以獨立的工程形式呈現(xiàn)給用戶。值得稱贊的是除了工程文件外,還有完整的PDF文檔供用戶參考,

示例提供的頂層設計參考如下

image6.png

這里包括一個BLE組件,一個GPIO中斷組件,一個MCWDT組件。其中BLE用來實現(xiàn)與其它設備的BLE通信功能,GPIO中斷組件用來開始BLE廣播,MCWDT組件則用來控制狀態(tài)LED燈,顯示BLE的當前工作狀態(tài)。

雙擊BLE組件,彈出BLE設計窗口

image7.png

General選項卡里設置的主要內(nèi)容是GAP Role,這里是作為Peripheral,供其它設備來連接并使用藍牙來控制及讀取相關數(shù)據(jù)。

image8.png

這個選項卡定義服務及特性,也就是GATT設置,每個服務都有自己特定的GUID,這是一個128位的數(shù)值,用來唯一區(qū)分每個服務及特性,實際上這里定義了3個服務,即滑動觸摸、RGB三色LED及觸摸按鈕,其中觸摸相關的信息會使用Notify的方式推送給Central,RGB LED則是用來顯示用戶發(fā)送的命令后實際執(zhí)行的效果。

image9.png

這里設置的的GAP參數(shù),包括設備名,廣播參數(shù)的設置等,大部分使用默認值就好。

看上去很簡單,然而實際上并沒有這么簡單,下面來說說具體設計自己的BLE通信時至少要注意哪幾個問題。

第一個問題是UUID的選擇,如果是自己設計BLE服務,需要使用UUID工具生成自己的UUID值,如果是在LINUX系統(tǒng)下,可以直接使用UUID命令即可,當然WINDOWS下也有不少工具軟件可以用來生成UUID。

第二個問題,在設計具體的服務和特性時,要根據(jù)實際情況指定服務及特性的一些參數(shù),如下

image10.png

例如這里的LED控制部分,需要指定特性的一些屬性,如讀/寫/通知等。另外也要指定屬性值的長度及類型,例如這里的RGB控制屬性就是一個4字節(jié)長度的無符號8位整形數(shù)組。

另外還有一個問題是字節(jié)的順序,即大端還是小端的問題,當然如果只關心數(shù)據(jù)的RAW形式,倒是不要花太多的心思來了解這個問題。

為什么沒有看到EINK的模塊,這只是一個接口而已,通過代碼來實現(xiàn)了,跟設計半毛錢關系也沒有。

接下來生成代碼,編譯,下載到評估套件上,開始體驗BLE。

BLE通信過程是不可見的,所以得借助特定的工具來查看這個通信過程,像NORDIC的nRF Connect之類的就行。前面介紹了,評估套件里包含一個BLE USB DONGLE,可以直接在PC上進行調(diào)試。

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評論