Nordic nRF5 SDK和softdevice簡介

本文介紹的內容:

1、SDK和Softdevice有什麼區別?

2、我們如何選擇SDK和Softdevice版本?

3、SoC,SDK和Softdevice是否存在版本兼容性問題?

4、我們如何瞭解SDK目錄結構?

5、SDK文檔在哪裡?

6、Softdevice用戶手冊在哪裡?

7、如何選擇一個SDK示例來開始我們的藍牙LE開發之旅?

Nordic當前具有兩個完全獨立的SDK:nRF5SDK和nRFConnectSDK。通常,建議使用nRF5SDK來開發nRF51/52產品,建議使用nRFConnectSDK來開發新產品,例如nRF91/nRF53。本文將介紹nRF5SDK。嚴格來說,nRF5SDK是產品zip文件。不同版本具有不同的產品包,如下所示。

Nordic nRF5 SDK和softdevice簡介

除了基本的nRF5SDK,Nordic還為某些垂直應用程序推出了一些定製的nRF5SDK。這些SDK和基本的nRF5SDK使用相同的軟件體系結構,相同的驅動程序和庫以及相同的編碼樣式。對於開發人員來說,如果他們熟悉nRF5SDK,他們還可以快速使用這些自定義的SDK。Nordic提供以下類型的量身定製的SDK:

1、用於Mesh的nRF5SDK用於開發藍牙Mesh應用。

下載:

https://www.nordicsemi.com/Software-and-tools/Software/nRF5-SDK-for-Mesh/Download#infotabs

2、用於Thread和ZigBee的nRF5SDK用於開發ZigBee或Thread應用程序。

下載:

https://www.nordicsemi.com/Software-and-tools/Software/nRF5-SDK-for-Thread-and-Zigbee/Download#infotabs

3、nRF5SDKHK用於開發AppleHomekit應用程序。請注意,在獲得Apple的官方授權後,您只能通過私有devzone票證獲得HomekitSDK。

4、Thingy:52SDK用於開發NordicThingy:52傳感器套件。

5、nRFreadySmartRemote3用於開發帶有語音命令的藍牙電視遙控器。

6、nRFreadyDesktop2用於開發藍牙或2.4G無線鍵盤和鼠標。從當地銷售處獲取SDK。

7、如果您的應用程序是上述六個垂直應用程序之一,建議您選擇自定義的SDK之一,否則,應始終選擇基本的nRF5SDK。本文僅涵蓋基本nRF5SDK的內容。它不會涉及其他定製的SDK。

1.nRF5SDK和softdevice概述

nRF5SDK是用於北歐nRF51/52系列SoC的軟件開發套件。Softdevice是北歐藍牙協議棧(在某些情況下加上ANT協議棧)的名稱。為了方便用戶,每個版本的nRF5SDK均與經過測試且可以正常工作的軟件設備一起發佈。請轉到<installfolder>\\components\\softdevice目錄,以查看此特定版本的SDK中支持的軟件設備類型和版本。/<installfolder>

nRF5SDK版本號類似於nRF51SDKv9.0.0,nRF51SDKv10.0.0,nRF5SDKv11.0.0,nRF5SDKv12.0.0...最新版本是nRF5SDKv16.0.0。SDK9/10僅支持nRF51系列芯片。SDK11/12支持nRF51和nRF52系列芯片,而SDK13/14/15/16僅支持nRF52系列芯片。順便說一下,每個版本都有針對Keil的設備系列軟件包的專用版本(或稱為nRFMDK)。如果需要安裝多個版本的nRF5SDK,則可以同時在PC上安裝不同版本的設備系列產品包。請按從低版本到高版本的順序安裝它們。如果不遵循它,可能會遇到編譯錯誤。如果是這樣,請首先完全卸載以前的設備系列軟件包,然後按從低到高的順序重新安裝所有軟件包。

通常,我們建議使用最新的SDK來開發您的應用程序。因為最新的SDK具有更多的功能,更多的兼容性和更高的可靠性。具體來說,建議nRF52系列使用nRF5SDKv16.0.0,而nRF51系列則建議使用nRF5SDKv12.3.0(SDK12.3.0已經是支持nRF51的SDK的最高版本)。但是,最新版本的SDK佔用了更多的閃存和RAM資源,這些資源是為更高級的應用程序設計的。為了充分利用某些資源受限的nRF5設備,舊版本的SDK也可以用於新客戶。老客戶經常問的一個問題是:我應該升級我的SDK嗎?這取決於您的需求和測試結果。只要您的代碼通過所有測試用例並且其性能穩定可靠,就無需升級SDK。換一種說法,如果要添加更新的SDK中引入的功能或發現一些舊的SDK中無法解決的問題,則需要升級SDK。請退回到<installfolder>\\documentation\\release_notes.txt以查看最新SDK的新功能。/<installfolder>

Softdevice命名規則一。Softdevice由兩個協議棧組成:藍牙LE和ANT。藍牙LE具有兩個角色:中央(或稱為主)和外圍(或稱為從)。因此,必須通過其命名來區分不同類型的Softdevice。Nordic使用Sxyz表示不同的軟件設備,其中

x–表示協議類型。1表示藍牙LE協議。2表示ANT協議。3表示藍牙LE和ANT協議的組合。

y–表示藍牙LE角色。1表示從屬角色。2表示主角色。3表示主角色和從角色的組合。

z–表示SoC系列。0表示nRF51系列。2或3表示nRF52系列。

示例說明如下所示

S130,表示支持中心角色和外圍角色的nRF51藍牙LE協議棧。

S112,表示僅支持從角色的nRF52藍牙LE協議棧。

S132,表示支持中心角色和外圍角色的nRF52藍牙LE協議棧。

S212,表示nRF52ANT協議棧

S332,表示nRF52結合了藍牙LE和ANT協議棧,並支持BLE主從角色。

Softdevice命名規則二。它繼承了規則一,但Softdevice編號的後兩位表示芯片型號。例如,S1 40表示此Softdevice只能在nRF528 40上運行。由於52840的閃存容量很大,因此無需為52840製作不同的Softdevice變體。一個S140足以支持BLE協議的所有功能,例如遠程,主從,多鏈路和廣告擴展。

Softdevice的版本號如1.0.0、2.0.0、3.0.0...。S110的最新版本是8.0.0。S130的最新版本是2.0.1。S132/S140/S112/S113的最新版本是7.0.1。

SDK和Softdevice兼容性。無需查看兼容性表。直接瀏覽SDK,並直接使用SDK中的本機軟件設備,它們已經過全面測試,可以直接與相關的SDK示例一起使用。例如,可以在以下文件夾中找到SDK15.2.0中的本機S132。

Nordic nRF5 SDK和softdevice簡介

在Nordic官方網站上下載SDK時,如果可能,它將自動綁定本機軟件設備或更高版本。如果在這種情況下建議使用更高版本,請使用此更高版本,而不是本機版本。以SDK15.2.0為例,本機版本為6.1.0,推薦版本為6.1.1。在這種情況下,請改用6.1.1。

Nordic nRF5 SDK和softdevice簡介

注意:有時Softdevice中會出現一些小錯誤。此時,Nordic將單獨發佈已修復錯誤的軟件設備。例如,nRF5SDKv15.2.0中包含的S140Softdevice版本為6.1.0。通常,直接使用此版本的Softdevice可以,但是此Softdevice的核心角色有一個小錯誤。因此,Nordic單獨發佈了6.1.1版本。用戶需要從官方網站單獨下載此版本的Softdevice。

SDK和芯片兼容性。如果您使用的是最新版本的Nordic芯片,則不會出現所謂的兼容性問題。您可以直接下載最新的SDK。如果不幸的是,您仍然有舊的修訂芯片庫存。在這種情況下,您可能需要使用某些舊版本的SDK。有關詳細信息,請參考兼容性列表。

由於最新的SDK服務於最新的芯片,因此存在兼容性表。並且最新的SDK假定已修復了早期版本的一些錯誤。因此,最新的SDK將不包含舊芯片修訂版的解決方法(或補丁),如果在舊版本上運行最新的SDK,則可能會導致一些問題。

2.nRF5SDK目錄結構的解釋

以SDK16.0.0為例,nRF5SDK的目錄結構如下:

Nordic nRF5 SDK和softdevice簡介

-components。該目錄包含Nordic開發的SDK源代碼。在產品開發過程中,最好不要修改此目錄中的任何文件!此規則也適用於驅動程序源代碼。組件目錄結構如下:

Nordic nRF5 SDK和softdevice簡介

-modules。Nordic有2套不同的芯片外設驅動器。SDK14和早期版本的SDK使用nrf_drv舊式外圍設備驅動程序。SDK15/16使用了新的nrfx外圍設備驅動程序(nRF5SDK和nRFConnectSDK中都使用了nrfx驅動程序)。在SDK15/16中,nrfx驅動程序源代碼在以下目錄中列出:

Nordic nRF5 SDK和softdevice簡介

SDK14或更早版本的驅動程序源代碼位於以下位置:

Nordic nRF5 SDK和softdevice簡介

- examplaes:該目錄包含豐富的應用程序示例,包括藍牙LE應用程序示例,外圍應用程序示例和DFU引導程序示例。通常,您可以在大多數情況下找到所需的示例。示例目錄結構如下所示。

Nordic nRF5 SDK和softdevice簡介

經常使用的兩個目錄是:\\ble_peripheral和\\peripheral。該\\ble_peripheral目錄包含許多藍牙LE從角色的實例,而\\peripheral包含有關如何使用外設的示例。該\\ble_peripheral目錄結構如下:

Nordic nRF5 SDK和softdevice簡介

所述\\peripheral目錄結構如下所示。許多開發人員問"在哪裡可以獲得SoC外圍設備驅動程序API的文檔",因為他們需要遵循文檔來開發應用程序。建議直接閱讀示例代碼,這樣效率更高。

Nordic nRF5 SDK和softdevice簡介

在nRF5SDK中經常看到不推薦使用的目錄和實驗目錄。它們的含義如下所示。

\\deprecated。該目錄的內容已被丟棄,將替換為新版本。為了與舊產品兼容,SDK仍然保留它們。例如,components\\drivers_nrf\\twi_master\\deprecated。如果您是新用戶,請不要使用\\deprecated目錄中的API。

\\experimental。一些新功能/新示例僅在很短的時間內發佈,因此尚未在市場上進行大規模測試。在這種情況下,Nordic將為這些新功能/新示例添加"實驗性"前綴,例如:examples\\ble_peripheral\\experimental\\ble_app_cli。裡面可能有錯誤。希望用戶執行足夠的測試以保證產品質量。換句話說,如果它通過了所有測試用例,則可以自由自信地使用它。

3.nRF5SDK和軟件設備文檔

無論是SDKAPI還是軟件設備API,建議您先檢查SDK提供的API描述。請注意,API描述通常放在頭文件中,而不是.c文件中。每個API都有有關參數,用法和提示的詳細說明。例如,可以在頭文件ble_gatts.h中找到sd_ble_gatts_hvxAPI描述:

Nordic nRF5 SDK和softdevice簡介

Softdevice有一個單獨的規範來描述其工作原理,資源使用,性能參數和Softdevice使用注意事項。建議每個開發人員都閱讀規範。

SDK包含在線和離線文檔。它們的內容是相同的。脫機文檔是通過在線文檔生成的,以方便網絡較差的用戶。您可以根據需要選擇其中之一。

Nordic nRF5 SDK和softdevice簡介

以SDK16.0.0在線幫助文檔為例,其主要界面如下。展開左側面板上的目錄,您會發現文檔目錄級別與SDK目錄級別一一對應。

Nordic nRF5 SDK和softdevice簡介

因此,如果對SDK有任何疑問,可以直接查看相應的聯機或脫機文檔的描述。例如,如果您想了解本示例的用途:<installfolder>\\examples\\peripheral\\spi,則。閱讀該文檔後,您將理解這是一個顯示如何使用SPI主設備的示例。/<installfolder>

4.選擇一個SDK示例開始您的BluetoothLE開發之旅

NordicnRF5SDK具有豐富的應用示例。您可以從以下示例之一開始開發 。所有示例均可在<installfolder>\\examples目錄中找到。。/<installfolder>

例如,<installfolder>\\examples\\ble_peripheral\\ble_app_uart, 通過查看描述,我們知道該示例使用藍牙作為直通通信媒體或將藍牙仿真為UART。如果您的應用程序就像藍牙UART通信一樣,則可以從此示例開始開發。/<installfolder>

Nordic nRF5 SDK和softdevice簡介

技術支持


分享到:


相關文章: