这段时间又参与了一个新的小项目,简单概括为蓝牙、智能、家居吧,虽然时间有点紧,还是希望能把这一些东西记录下来。
####BLE 什么是BLE?参考这篇[文章](http://www.mianfeiwendang.com/doc/e5f0219633d14d7b2d6ac032)做如下总结。 中文名称为蓝牙低功耗。主要特点为低成本、超低功耗、短距离、标准接口和可互操作性强,并且工作在免许可的2.4GHz ISM射频段,需要支持蓝牙4.0(系统为Android4.3及以上)的主机设备才能与其连接。
目前生产BLE芯片的厂家主要有CSR、TI、Nodic和NXP(QN902x),各个厂家芯片对比如下图
从如上图对比可以看出,NXP的QN902x在功耗方面比CSR和TI更省电,在接收灵敏度和模式方面比Nodic的胜一筹,它的从设备相比其它几家可以连接的更多,共有8个,这也算是蓝牙4.0的一大特色吧,并且NXP的芯片已经过了MFI认证,直接能与苹果设备相连接,因为这种认证也是挺贵的。
因为BLE的低功耗、低成本及强大的处理能力,并且随着iPhone的设备支持蓝牙4.0,BLE的终端设备在我们的生活当中将会越来越多,在未来将会有爆发式增长。
QN902X是一款内核为M0的蓝牙BLE SOC芯片,其SDK对蓝牙BLE的profile都有实现,并提供源码,SDK也提供很多工具以便使用芯片,比如引脚配置,NVDS读写,串口USB Dongle(配合上位机可以调试各profile,没有手机也可以调试),ISP下载等,但QN902X不提供数据手册,所有的外设操作都以库的方式提供,SDK说明比较全面但全是英文的。
与NODRDIC的51822和TI的CC2540不同QN902X的架构是M0+ROM+FLASH+SRAM的方式,其中ROM放的是蓝牙协议和内部一个小的调度核,FLASH放的是用户程序和数据,RAM用于跑程序。其中ROM:96K,SRAM:64K,FLASH:64K/128K。因为QN902X程序是跑到SRAM中,所以它的深度睡眠电流比较大些。
####环境搭建 老生长谈,开发一款产品,第一步当然是搭建开发环境咯。
#####wine安装
由这里可知,keil不支持linux环境,所以必须自己想办法了。这是在linux环境下运行windows的程序,本身使用windows的请自动忽略这一步。具体请看官网/博文。
~ $ sudo add-apt-repository ppa:ubuntu-wine/ppa
~ $ sudo apt-get update
\# => 我的是64为的系统,所有安装64位版
~ $ sudo apt-get install wine1.8-amd64
\# => 配置
~ $ winecfg
\# => 中文路径:~/ .wine/drive_c/windows/Fonts/
~ $ winetricks corefonts
#####keil安装
首先得下载keil,可以自己去官网下载最新的,也可以直接点击mdk5.17下载地址,参考这篇博文并实践做如下记录。
\# => 进入下载目录安装
~ $ wine mdk473.exe
提示:卸载程序可以用wine uninstaller
安装完成后,会弹出来一个安装器件(pack installer)如下的界面,也就是说,你要用它来开发哪个芯片(此项目可以忽略,后面步骤导入DB)。

或者打开keil界面会看到如下图标 
要开发哪一款芯片,点击install即可,或者先网页端下载好在导入,具体参考上面提供的博文地址。
#####MCU DB库安装
下载Quintic最新的SDKQBlue1.3.7,安装:
~ $ wine QBlue-1.3.7.exe
会弹出窗口如下,点击安装即可,或者打开桌面QBlue里的QN9020DevDBforIDE工具安装。

#####keil使用
首先获取开源代码
~ $ cd
~ $ git clone [email]git@bitbucket.org[/email]:T-Firefly/fireble.git
桌面打开keil,假如我们希望开始proxr工程:
-
在keil的Project菜单中选择Open Project…
-
弹出文件选择框中,打开/home/xxx/fireble/BLE/prj_proxr/keil/proxr.uvproj工程文件(linux可能在z磁盘里)
-
配置DB如下,如果没发现库,请重启软件

-
编译代码,成功后如下,具体配置选项请参考这里

####参考文档 - [QN9020快速入门](http://www.nxp.com/documents/application_note/AN11664.pdf) - [QN902x周立功版](http://www.zlgmcu.com/NXP/Qn902x/pdf/QN902x_fast_um.pdf) - [防丢器项目](http://blog.csdn.net/q562359345) - [MDK-ARM PRO SET](http://www.myir-tech.com/faq.asp?nid=37) - [总有“一道菜”适合你——BLE](http://www.qiuzhi5.com/13/2015/1222/200559.html) - [【FireBLE试用体验】体验报告汇总](http://bbs.ickey.cn/index.php?app=group&ac=topic&id=56566)