• 蓝牙PSKEY的调整


    BlueCore

    CMOS单芯片方案  在2002年,英国的Cambridge Silicon Radio公司(简称CSR)推出了名为BlueCore(蓝牙核心)的真正的CMOS单芯片方案(高频组件+基带控制器),并成功地把其后继版本BlueCore 2-External芯片的价格降至5美元以下。最终,促使了蓝牙产品的起飞。

    Bluecore内部有些配置寄存器,称为PSKEY,这些寄存器不可随意更改,因其事关重大,稍有不慎改动便会造成运行的不稳定或无法工作,Bluecore的初始化便是从读取这些寄存器配置器件开始的,比如UART的使用方式就有RAW,BCSP,H4,H5几种协议方式,只有RAW这种方式才是可以当正常串口使用的,其他的都有自己特定的传输协议,比如HOST Interface可以选择为USB、UART、NONE等,一旦设置为USB,那么程序中对UART的所有操作都是无效的。

    这些都是比较简单的PSKEY,稍微有些头脑的人都是可以很容易理解的,但还有一些PSKEY是决定蓝牙传输特性的,就不是那么容易理解的了,除非对蓝牙机制了解得比较透彻,比如ACL链路数据缓冲区的大小设置,这个设置大了容易造成运行时内存不够而死机,小了对传输时间有影响,再比如是否支持AFH,支持则建立连接后采用AFH机制,在有干扰的情况下通信特性会好些,再比如是否可以测量RSSI,这是判断好信道坏信道的一种方式,测量周期是多少,这个周期一到,接收端便会停止正常接收而专对各个信道进行测量评估,限制值是多少,可以判断这个信道是好的还是坏的,等等这些都是事关重大而且不好调整的,所以一般采用CSR已经调好的默认值,最好不要修改或者修改前考虑下后果再或者在CSR的建议下修改,否则无异于自杀式行为。

    在这里强调一下,不要以自己的逻辑来改这些PSKEY,蓝牙特性首先遵从于协议机制,然后才会遵从你的逻辑,如果对蓝牙的各种协议不是很了解,不要认为逻辑上这么改是没问题的,因为你的逻辑说不定就违反了哪个协议。所以不要说什么逻辑上应该可以这些话,一定要有这样的观点:你的逻辑相比于蓝牙协议是不堪一击的。

    由于这些PSKEY事关重大,所以对于Bluecore来说是不可访问的,对应用程序来说是即不能读也不能写,比如Bluecore无法知道自己设备的蓝牙地址是多少。那么怎么调整它们呢?因为有的是必须调整的,比如必须禁止低功耗模式否则会对UART通信有影响,方式只有一个:HOST+相应协议。

    这些对Bluecore本身不可见的PSKEY是要通过HOST以特定的传输方式及协议(如BCSP、USB、SPI)来读写的,即对外部主机是可见的,这样便可以在调试或生产过程中通过主机端进行设置,而且生产完后对这些PSKEY值的访问接口就不存在了,改不了了,从而保证了产品运行期间的安全可靠性。

     

  • 相关阅读:
    解决Extjs分页工具条Ext.PagingToolbar无法换页问题 子曰
    使用“动软代码生成器”需要注意的问题 子曰
    格式化extjs DateField 的值 子曰
    构造extjs两级联动comBox 子曰
    SQLServer数据库设计表和字段(转) 子曰
    extjs 中取值的方式 子曰
    extjs中的控件无法正常显示 子曰
    extjs表单中的下拉框(comobobox)手动添加空选项 子曰
    C++基础学习笔记
    dhl:弹出div层,可关闭可移动
  • 原文地址:https://www.cnblogs.com/liang123/p/6325666.html
Copyright © 2020-2023  润新知