Overview
This SDK provides the Host Test application. This allows an application processor to create a full featured BLE piconet in any roles. This requires knowledge of the BLE protocol and the TI BLE-Stack and it's related HCI commands.
There is a need to provide a simplified version of this network processor to quickly and easily create a BLE device, without advanced knowledge of the TI BLE stack or BLE protocol. This version, Simple Network Processor, is limited in term of number of supported features and flexibility. Future versions of SNP will have additional features and flexibility.
For fully featured network processor, the current ‘Host Test’ network processor needs to be used.
Introduction
In this document, the term Application Processor or AP references the MCU that will drive the network processor. The term NP (and SNP) references the Network Processor (or the simple network processor).
In order to simplify, some limitations needed to be applied, and some configuration parameters needed to be frozen.
The SNP is configured to act only as a peripheral and broadcaster GAP roles. This implies that the device can only advertise, accept/reject connection, but not discover devices or initiate a connection. Check the software developer's guide for more information.
For the first version, the SNP will not support security, privacy features (but still be able to be connected another private device) and only public address will be used.
The SNP will embed a GATT server to manage all wanted services and their characteristics. Characteristics values for a service are managed by the AP for this version. Future versions may enable a hybrid mode where some characteristic values can be managed by the AP or the NP. The NP will provide predefine services where the characteristic are manage entirely by the NP (like Device Information Service). The number of predefined service will grow in future release.
The transport layer protocol is not based on the HCI protocol has defined in the BT core specification. It is based on the TI universal NPI framework. HCI command can be encapsulated in a NPI frame if HCI commands need to be sent to the NP (not all HCI commands will be available).
List of functionalities
The AP is can command the NP to do the following:
Advertisement:
- Start advertisement with specific type and specific data (connectable, non-connectable, broadcast), with specific behavior (interval, duration, auto restart after connection or disconnection)
- Update advertisement data (for connected mode and non-connected mode).
- Update scanning response data.
Connection:
- Disconnect.
- Event when connected/disconnected.
- Update connection parameter update.
- Event generated when GAP state change.
GAP Role profile management:
- Peripheral role entirely managed by the NP.
- Advertisement role managed by the NP.
- Single connection.
- MTU size managed and pre-defined by the NP (if MTU size change, an indication will be send to the AP). Default MTU size is 27 (per spec), maximum is 251.
Services:
- All services are managed by GATT server in the NP.
- Some Services are automatically define at startup:
- GAP and GATT service
- Device info service.
- Other services are defined/declare by the AP at startup, along with their characteristics.
- Services cannot be updated/added/modified once they have been created.
- Services cannot be updated/added/modified once the device has started.
- Once service and characteristics are added and registered, the service handles range is return.
- CCCD needs to be managed by the AP. The AP is responsible to remember which client has enable notification and/or indication, and send them accordingly.
- The AP has to manage characteristic value itself:
- An event is generated when a GATT client performs a READ on a characteristic. The AP is responsible to send the response in less than 30s. The event contains which characteristic handle is being access.
- An event is generated when a GATT client performs a WRITE on a characteristic. The AP is responsible to send the response in less than 30s.
- A notification or indication on a characteristic is done by the AP.
Profiles:
- Profiles linked to predefined services are managed by the NP: -GAT_GATT service -Device info service
- access to the characteristic value of those service is done through some specific API
- All other profiles need to be managed by the AP.
version 1.0 limitation:
- No NV storage.
- No direct advertisement.
- ATT_MTU_SIZE is set to have a maximum size of 251 Bytes.
- ATT read multiple requests is not supported (ATT_READ_MULTI_REQ).
- Filtering (white list, etc.) is not supported.
- The NP is built with GATT_NO_SERVICE_CHANGED enable, meaning service cannot be change/added/modified once the device has started.
- L2CAP is not enabled.
- GAP bond manager is not enabled.
- Only 4.0 LL option are enabled. (4.1 options are disabled).
- User description attributes are read only (cannot be write/updated remotely by GATT client).