天天看點

S110 Soft Device 學習

一、簡介

 相容藍牙4.0協定低功耗單模協定棧。資料鍊路層;L2CAP、AT、SM;GATT、GAP;補充nrf51的SDK包括藍牙規範和應用執行個體。

 為了增強魯棒性和安全性,記憶體中協定棧和應用程式獨立存儲。異步的事件驅動,可以應用任何的RTOS。

S110 是BLE的外設協定棧,它內建了低功耗的控制器和主機,提供完整靈活的API。S110是一個預編譯和連結成二進制的BLE協定棧,API是标準的C語言。

S110 Soft Device 學習
S110 Soft Device 學習

主機和控制器嵌入在S110 SoftDevice 支援裝置和廣播,API建立在GATT、GAP、L2CAP之上,S110實作了标準的藍牙規範。

NRF51的SDK實作了藍牙協定棧的服務和配置。L2CAP 最大27個資料,廣播模式下最大37個位元組。

  1.1射頻通知(Radio Notification)

射頻通知是可配置的(ACTIVE,INACTIVE),當射頻要使用的時候來自S110的信号通知應用程式。通知信号發送到中斷。如果使能了ACTIVE信号在射頻事件開始之前被發送,INACTIVE信号在射頻事件(Radio Event)之後被發送,這些信号用來同步應用邏輯和發送資料包。比如當射頻打開的時候ACTIVE信号用來關閉外設來降低尖端電流或者射頻事件觸發傳感器資料。

S110 Soft Device 學習

ACTIVE,INACTIVE使用了同一個軟體中斷,需要應用程式管理,如果ACTIVE INACTIVE都使能了,在INACTIVE 信号之前總有一個ACTIVE信号。

  1.2 Bootloader

S110 支援bootloader,bootloader用使用整個協定棧API的權限。SotfDevice 架構支援bootloader,通過把應用代碼區(R1)分割成兩個部分,上邊的是bootloader下邊的是應用程式。上半區的起始位址是bootloader的基位址,通過UICR.BOOTLOADER寄存器設定。

S110 Soft Device 學習

複位後,SoftDevice 檢查UICR.BOOTLOADER寄存器,如果寄存器是空的(0xFFFFFFFF),SotfDevice認為沒有bootloader。然後中斷進入應用程式。如果BOOTLOADER寄存器設定了一個位址(不是0xFFFFFFF),SotfDevice認為bootloader向量表在這個位址定位,中斷把向量表拷貝到這個位置,bootloader複位後應用程式開始。

從bootloader執行然後到應用程式執行,bootloader首先調用sd_softdevice_foward_to_application() SOC函數,觸發中斷跳轉到應用程式。bootloader從Application Vector Talbe 得到應用程式複位中斷函數的位址。

S110 Soft Device 學習

二、S110 需要的配置

       S110用到的片上資源包括系統時鐘、外設時鐘、存儲器,使能或禁止S110,系統配置可能不一樣。

  2.1 存儲器映射和使用

S110 Soft Device 學習
S110 Soft Device 學習

  2.2、應用信号—軟體中斷

S110使用軟體中斷用來通知應用程式事件的發生。

S110 Soft Device 學習

  2.3、可程式設計的外設互動(PPI)

S110被使能,有些PPI信道群組是受限制的,下表列出了S110和應用程式對信道群組的配置設定。S110使能,所有的PPI信道群組都可以被應用程式使用。

S110 Soft Device 學習

  2.4 SVC配置設定

S110 Soft Device 學習

  2.5、中斷延遲

中斷從S110傳到應用程式有個延遲,延遲大小如下表。

S110 Soft Device 學習
S110 Soft Device 學習

  2.6、帶寬

S110 Soft Device 學習

  2.7、廣播事件

S110 Soft Device 學習