admin管理员组

文章数量:1538621

2024年6月9日发(作者:)

蓝牙设计

1. 问:什么是蓝牙通信?

答:蓝牙通讯最初设计初衷是方便移动电话(手机)与配件之间进行低成本、低功耗无线通信连接,

现在已经成为IEEE802.15标准,得到全球上万家厂商支持。

2. 问:如果从事蓝牙开发有没有前途?

答:严格地说,这不是一个技术问题,而是一个世界观问题。什么是前途?如果单纯是金钱,从事技

术是不太可能暴富的(注意比尔.盖茨是个技术商人);如果想用你所能改善世界,这是可能的,毕竟蓝牙

的主要用途是民用。附带说一句,考虑赚钱和改变世界是中国和西方人世界观的主要差别。

3. 问:蓝牙有什么优势?

答:首先是低功耗,以BLE 4.0为例,一节钮扣电池在静态工作状态可以支持一年;其次是低成本,

TI公司的CC2540蓝牙SOC方案芯片出售价仅1美元,可以让人们低廉使用蓝牙技术;再次是开放性,

2.4GHz的频段全球开放,没有政府监管;最后是适合时代潮流,现在是手机的时代,蓝牙技术本来就为它

而生。

4. 问:蓝牙4.0协议和BLE是什么?

答:蓝牙4.0协议是2010年6月由SIG(Special Interest Group)发布的最新标准,它有2种模式:

BLE(Bluetooth low energy)只能与4.0协议设备通信,适应节能且仅收发少量数据的设备(如家用电子);

BR/EDR(Basic Rate / Enhanced Data Rate),向下兼容(能与3.0/2.1/2.0通信),适应收发数据较多的

设备(如耳机)。

5. 问:目前支持蓝牙4.0的移动设备有哪些?

答:苹果公司的iPhone 4S、iPhone 5、miniPad和iPad 3;小米手机2;三星公司的Galaxy SIII和

Note II;HTC ONE系列。

6. 问:如何开始蓝牙4.0的开发呢?

答:概括地讲至少以下三方面的准备吧。硬件方面,需要购买TI公司蓝牙迷你套件,包括蓝牙USB

电子狗和KeyFob以及CC Debugger传真器;软件方面,安装IAR for 8051,TI公司BTool软件;技术知

识,《CC2540/41 BLE Software Developer’s Guide 1.3》和《CC2540/41 User’s Guide》。

7. 问:刚开始接触蓝牙如何快速上手?

答:理论联系实践是比较好的学习方法,建议先学习《CC2540/41 BLE Software Developer’s Guide 1.3》,

然后将SimpleBLEPerepheral工程导入IAR for 8051,结合电子狗和BTool,调试蓝牙通讯中的广播/连接/

绑定/访问。光看书不动手,空虚;不看书光动手,浅薄。

8. 问:IAR调试CC2540时程序导入到了芯片的Flash中了吗?

答:确实。CC2540是SOC(System On Chip)芯片,它的内核就是8051,它需要从ROM中取指令,

从RAM中取数据来运行。仿真时,CC Debugger会把程序导入芯片Flash中,再执行仿真。

9. 问:当IAR调试中出现警告“缺少断点,无法运行到main()”?

答:出现这个错误的原因是,IAR for 8051最多只能设置3个断点,如果设置过多,当程序下载后,

将出现些调试警告。解决的方法很简单,去掉一些断点,再重新载入程序。

10. 问:为什么IAR调试时有很多变量无法查看它的值?

答:主要的原因是IAR编译器设置了优化功能,函数中的自动变量以及一些静态函数都被优化过了,

所以没有生成对应的调试信息,无法查看和设置断点。解决的方法是关闭编译器的优化功能,右键点击工

程的Options -> C/C++ Compiler -> Optimizations中的Level设置为None。

11. 问:蓝牙协议分层很多且比较复杂,该如何掌握呢?

答:蓝牙协议从应用层到物理层一共分了8层,看上去比较复杂且API函数很多。首先不必要知道每

一层的具体实现,掌握与应用紧密关联GAP/GATT(或者GAP Role和GATT Profiles)层就可以满足大部分

设计需要;每一层的软件都是通过OSAL来调用的,因此需要了解OSAL的基本原理:任务/事件/消息/定

时器/动态分配内存;最后把蓝牙通讯过程理解,将有助于开发。

12. 问:OSAL是一个操作系统吗?

答:OSAL(Operating System Abstraction Layer)操作系统抽象层,它不是一个真正的操作系统(它

没有Context Switch上下文切换功能),但它巧妙地组织各任务,支持任务优先级,任务之间可以通过事

件和消息来通信,为任务提供软定时器和动态内存分配。要避免的陷阱是,应用任务的单个函数运行时间

不能太长(如操作大批量数据的Flash写),否则它无法及时调度高优先级的LL(Link Layer)任务而导致

蓝牙通信中断。

13. 问:蓝牙节点是如何组成微微网的呢?

答:蓝牙节点组网中,只能存在一个主节点(Central)和多个从节点(Peripheral),从节点是发出信

号者,主节点是扫描且发起连接者。

14. 问:主节点和从节点通信的过程是怎样的呢?

答:当从节点发出广告信号(包括设备地址和设备名称之类的附加信息);主节点收到此广告信号后,

向从节点发出扫描请求;当从节点回应扫描时,就完成了设备发现过程。

接着主节点向从节点发出连接请求(包括连接时隙、从节点待机次数、连接超时值),从节点回应连

接,就完成了建立连接。

为了安全起见,一些数据的访问需要认证,它的完成是这样的:一方(可以是主节点,也可以是从节

点)向另一方索要6位数字的密码,之后,两个节点彼此交换安全密钥用于加密和认证,此过程称为配对。

认证的过程比较繁琐,BLE协议支持两节点保存认证的安全密钥(一般是非易失性存储器中),以便

于两节点下次连接后快速认证,这就是绑定技术。

本文标签: 蓝牙节点设备任务连接