摘 要:随着后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, 单片机技术开发.