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


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

    硬件抽象层文件目录

     

    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  ?????

  • 相关阅读:
    Android应用基础概念
    Sqlserver Rand
    sqlite3 锁
    上海盛大网络浩方在线招聘网站程序
    代码片段
    泛型类型的返回
    招 .Net 网站程序员, Flash 程序员
    ACS 20070412 TODO
    MSSQL 2005 分页分析及优化
    虚惊一场
  • 原文地址:https://www.cnblogs.com/retacn-yue/p/6194245.html
Copyright © 2020-2023  润新知