基于ARM的无线蓝牙通讯模块的设计

2015-05-30 10:48周小仨
软件工程 2015年2期
关键词:无线通讯蓝牙嵌入式

摘 要:随着后PC时代的到来,嵌入式ARM技术日益成熟,人们对电子产品性能的要求越来越高,移动便携成为电子消费品的主题,其中蓝牙技术就是众多解决方案中一个有效的选择,本文旨在将蓝牙技术与嵌入式ARM结合起来,设计一款基于嵌入式ARM系统的蓝牙通讯模块。

关键词:蓝牙;嵌入式;ARM;无线通讯

中图分类号:F416.6 文献标识码:A

1 引言(Introduction)

“Bluetooth”蓝牙一词原来是一位丹麦国王的名字,他在10世纪时,统一了当时的瑞典、芬兰和丹麦。后来用他的名字来给一种新的技术标准命名,意思将各种不同的技术标准统一起来。这种新的技术主要使用高速跳频与时分多址等通信技术,在一定的距离低成的把若干台数字化设备,包括各种便携移动设备、固定通信设备、PC机及其终端设备、数字系统,如数码照相机、数码摄像机等,还包括智能家器、自动化设备呈网状链接起来。Bluetooth成为网络中各种外设接口的一种桥梁,取消了设备之间实在的连线,以无线连接来取代[1]。

这种技术的替代对象主要有红外线传输和RS232串口线传输,红外线接口的传输需电子装置在视线之内的距离,而以RS232串口线连接的设备的缺点是需要线缆和和传输速度低,蓝牙技术的发展,方便了各种移动设备的互联。

Bluetooth现成为整个无线通信领域的重要分支,它不仅仅是一个芯片,而是一个近距无线网络,在包括智能手机、掌上电脑、无线耳机、便携PC、各种外设之间进行无线信息传输,现今由Bluetooth构成的无线网络已在移动通信领域到处存在。

Bluetooth应用高速跳频和时分多址等通信技术,能在近距离内较方便地将几台数字化设备呈网状链接起来,可应用于智能手机、PC机、掌上电脑、打印机、游戏机数码相机、MP3等,还可视频、语音、图像、文字、文件同步传输,还可简化白板记录仪、投影机等操作。蓝牙模块连接图如图1所示。

图1 连接图

Fig.1 Connection diagram

2 蓝牙技术的规范及特点(Specifications and

characteristics of bluetooth technology)

Bluetooth的技术标准是IEEE802.15,工作频带为2.4GHz,1MB/s的带宽。采用时分多址实现全双工方式通信,基带协议组合了电路交换和分组交换。每个跳频频率发送一组同步数据,每个时隙分配给某个分组,利用扩频技术可扩展为五个时隙。Bluetooth支持三个并发的同步话音通道或一个异步数据通道,还可一个同时传送异步数据和同步话音的通道。64kB/s的同步话音提供给每个话音通道,异步通道的传输速率可达为721kB/s,非对称的反向应答连接速率为57.6kB/s,对称连接速率为432.6kB/s。

根据发射功率大小,Bluetooth有三种传输距离等级:第一种约为100m;第二等级为10m左右;第三等级为2—3m。其正常的工作范围是10m半径内。有效范围内能进行多台设备间的互联。Bluetooth的特点有:利用跳频技术,数据包短,减缓信号衰减。链路稳定,使用快速跳频和前向纠错方案,有效减少同频干扰和远距离传输时的随机噪声影响。使用2.4GHz频段,无须许可。同时进行数据、音频、视频信号的传输。采用FM调制方式,可减低复杂性[2]。蓝牙模块部分电路原理图如图2所示。

图2 电路原理图

Fig.2 Circuit diagram

3 蓝牙匹配规则及使用注意(Using bluetooth

matching rules and notice)

Bluetooth标准开放性无线接入方式的一种,在使用前需要了解和遵循标准技术规则。不同蓝牙设备在进行通讯前,需要将其匹配在一起,从而确保一个设备发出的数据仅会被许可的其它设备接受。

Bluetooth将设备分为主从两种。其主设备的特点主要有,主设备有输入端口。进行匹配时,可通过输入端口输入随机的匹配密码将不同设备匹配。如蓝牙智能手机、有蓝牙模块的个人电脑等都为主设备。

从设备的特点主要有,从设备多半没有输入端口。所以从设备往往在出厂时,在芯片中,烧写了一个6位或4位数字的匹配密码。例如蓝牙耳机等都是从设备。各种主设备之间,以及主设备与从设备之间,都是可互相匹配的,但是从设备与从设备是不能匹配的。如蓝牙PC与蓝牙智能手机可匹配,蓝牙PC也可以与蓝牙耳机匹配,而蓝牙耳机与蓝压耳机不能匹配[3]。

蓝牙主设备,依据其类型不同,可匹配一个或多个其他设备。如一部蓝牙移动电话,一般最多匹配七个蓝牙设备。但是一台蓝牙个人电脑,却可以匹配十多个或数十个蓝牙设备。在同一时间,Bluetooth设备之间只支持点对点传输。

4 具体实现步骤(The specific implementation steps)

(1)首先修改模块的参数,运行chmod命令进行修改,模块波特率默认值为38400,主模块和从模块分别与核心控制模块ARM处理器连接好。

(2)实现接收功能,主函数为BlueToothreceive

int main(int argc, char *argv[])

{ int i=0; bsp_init(); unsigned char buf[100]; int recv_count; rs485_open();

printf("test BlueTooth (38400)...\r\n");

while(1) { recv_count = read(fd_rs485,buf,60); buf[recv_count] = '\0'; printf("data num=%d\n",recv_count);

for(i=0;i

int bsp_init(void) { open_port_device(); return 0; }

(3)实现发送功能,主函数为BlueToothsend

int main(int argc, char *argv[])

{ int i; bsp_init();char buf[14]="0123456789abcd"; int recv_count;

rs485_open(); printf("test BlueTooth (38400)...\r\n");

while(1) { write(fd_rs485,buf,14);for(i=0;i<14;i++) { printf("%c",*(buf+i)); }

printf("\n"); mmdelay(3000);} return 0;} int bsp_init(void) { open_port_device();

return 0; }

(4)分别调试蓝牙的主从模块,其中一片ARM处理模块烧写发送程序,另一片ARM处理模块烧写接收程序。

(5)运行相应程序,在超级终端下可以看到一个ARM处理模块一直在发送数据,另一个ARM处理模块一直在接收从蓝牙模块发过来的数据。

(6)模块参数的修改参照蓝牙模块命令集。

5 结论(Conclusion)

以上为笔者在进行嵌入式ARM开发实践过程中总结出来的,由于能力有限,诸多细节不够完善,如未能实现多蓝牙模块的多点通讯,未能将蓝牙模块驱动程序加载到Linux内核中运行,不足之处难免,希望得到读者朋友的批评指正。

参考文献(References)

[1] 吴作鹏.蓝牙迎来第二春[N].计算机世界,2004(04).

[2] 季岩.关于蓝牙技术的研究—基于蓝牙的Adhoc网络散列

网形成协议的研究[D].江南大学,2008(07).

[3] 蒋喜焰.基于无线蓝牙通信的智能家居系统的研究与实现

[D].华东师范大学,2009(04).

作者简介:

周小仨(1980-),男,硕士,讲师.研究领域:嵌入式,EDA,

单片机技术开发.

猜你喜欢
无线通讯蓝牙嵌入式
蓝牙音箱的直线之美
基于无线通讯的远程无线切割分离装置控制系统
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
搭建基于Qt的嵌入式开发平台
基于NRF无线通讯技术的自组网互助教学系统研究与开发
紧急:蓝牙指尖陀螺自燃!安全隐患频出
嵌入式软PLC在电镀生产流程控制系统中的应用
成焊机组与飞焊车之间串行无线通讯研究与应用
Altera加入嵌入式视觉联盟