zoukankan      html  css  js  c++  java
  • ble学习笔记八---------ble协议栈之简介

    协议栈分为两部分:控制器和主机

     

    Phy 物理层 1mbps自适应跳频的GFSK射频 工作免于许可证的2.4GHz

    LL链路层 控制设备的射频状态

          设备的五种状态:

               等待

               广播 不需要建立链接就可以发送数据

               扫描

               初始化

               链接

    主机控制接口层为主机和控制器之间提供标准通信接口

    逻辑链路控制及自适应协议层为上层提供数据封装服务

    安全管理层定义配对和密钥分配方式,为协议栈其他层与另一设备之间的安全链接和数据交换

                提供服务

    属性协议层允许设备向另一设备展示一块特定的数据

    通用属性配置文件层定义使用了ATT的服务框架和配置文件(profiles)

                         数据通信是通过GATT子程序处理

    通用访问配置文件层直接与应用程序和配置文件通信的接口

    应用开发配置:

     单一设备控制器 主机 配置文件(profiles) 应用程序在一片cc2540上实现

     网络处理器控制器和主机部分在cc2540上执行应用程序和Profiles在另一设备上执行

    Ble协议栈的执行流程

    操作系统抽象层(OSAL  Operating System Abstraction layer)

    资源(resource) 任务所占用的实体

    共享资源(shared resource) 至少被两个任务所使用的资源

    任务(task) 一个线程,在任务的执行过程中,cpu完全属于该任务

    多任务运行(muti-task running) cpu可以使用任务调度策略将多个任务进行调度

    内核(kernel) 负责管理各个任务

                    为每个任务分配cpu时间

                    任务调度,

                    任务间的通信

        互斥(mutual exclusion) 多任务间通信,常用方法是共享数据,但必需保证写操作的唯一性,

                             避免晶振和数据不同步

                             保护共享资源的方法:

                                 关中断(经常使用)

    使用测试并置位指令

    禁止任务切换

    使用信号量

         消息队列(Message Queue): 任务间消息传递,包含任务间同步的信息(通过指针)

    Osal主要提供如下功能:

    任务注册

    任务间同步互斥

    中断处理

    存储器分配和管理

    提供定时器功能

  • 相关阅读:
    MySQL数据类型2
    MySQL数据类型1
    powerdesigner使用之——从“概念模型”到“物理模型”
    javascript中click和onclick的区别
    eclipse将javaSE项目导出成可执行jar包
    配置SQLServer,允许远程连接
    VirtualBox虚拟机中安装XP系统
    fastjson 的使用总结
    idea前端页面不刷新----springboot
    后台可以用layui快速开发
  • 原文地址:https://www.cnblogs.com/retacn-yue/p/6194247.html
Copyright © 2011-2022 走看看