ble学习笔记十-------------ble协义栈之硬件抽象层

来源:互联网 发布:画图软件在线使用 编辑:程序博客网 时间:2024/05/22 23:59

------------------------硬件抽象层

硬件抽象层文件目录

 

 

HAL-Common 协议栈 mac和驱动中使用到的相关配置文件

     Hal_drivers.c包含所有驱动初始化和事件处理机制,主要有以下四个函数

void Hal_Init( uint8 task_id ) osalTaskAdd调用,osal中注册HAL驱动

void HalDriverInit (void)  main调用,初始化硬件驱动

uint16 Hal_ProcessEvent( uint8 task_id, uint16 events ) 处理hal相关的驱动事件

void Hal_ProcessPoll ()

 

HAL-Include 包含 hal驱动和hal相关的头文件

 

 

 

硬件抽象层驱动编译

 

可以在工程选项中设置需要编译的驱动,

Option-->c/c++compiler->preprocessor选项中设置,如下图

 

 

 

用户自定义驱动

步骤如下:

HAL目录下的include目录下添加头文件

驱动的实现文件添加到target->>cc2540eb-->>drivers目录下

target->>cc2540eb-->>config目录下的hal_board_cfg.h中修改硬件驱动配置

 

 

 

 

配置文件层

分为以下两部分:

GAP角色/安全配置文件

GATT配置文件

 

 

通用访问配置文件GAP

分为以下四种角色:

广播者  不可连接的广播设备

观测者  扫描广播,但不发起建立连接

外部设备 可连接的设备 可在单链路层中作为主机

集中器 扫描广播设备并发起连接 在单链路层或多链路层作为主机

       一个集中器可以连接三个外设

 

 

:默认的示例只支持外设角色,

可以在编译时添加peripheralBroadcaster.hperipheralBroadcaster.c文件

排除peripheral.hperipheral.c

 

 

 

集中器向外部设备发起链接请求,所需参数

边接间隔 两个连接事件之间的时间间隔

从机延迟 设置从机可以跳过若干个连接事件

管理超时 两个成功连接事件之间的最大允许间隔

 

 

 

通用属性配置文件(GATT)

两个设备应用数据的通信就是通过该层实现

建立连接后,设备的两种角色

GATT服务器  为客户端提供数据服务

GATT客户端  从服务器读写应用数据

 

一个gatt服务器中可以包含一个或多个GATT服务,simpleBLEPeripheral应用中有三个服务

强制GAP服务   设备和访问信息

强制GATT服务  gatt服务器的信息

SimpleGATTProfile服务  应用数据信息

 

特性(characteristics) 是服务用到的值,gatt服务器上的属性值保存在表中,每个属性都含有以下属性:

句柄在表中的地址

类型数据代表的事务,UUID

权限: GATT客户端对属性的访问权限

 

 

使用GAPGATT堆栈API  ?????

2 0
原创粉丝点击