基于单片机控制的蓝牙数据传输系统的设计1 引言蓝牙作为一种支持设备短距离通信的无线电技术,可以在众多设备之间进行无线信息交换。
蓝牙技术设计一系列软硬件技术、方法和理论,包括:无线通信与网络技术,软件工程及软件可靠性理论,协议测试技术,规范描述语言,嵌入式实时操作系统,跨平台开发和用户界面图形化技术,软硬件接口技术,高集成芯片技术等[1]。
由于蓝牙体积小,功耗低,其应用已经不再局限于计算机外设,几乎可以被集成在任何型号的数字设备中,特别是在那些对传输速率要求不高的小型移动设备和便携设备中应用广泛。
随着现代化数字技术的发展,我们的生活中,各种设备与计算机之间的无线数据交换已经非常频繁,特别在工业现场控制和数据采集场合中,单片机与计算机的无线通信尤为突出。
本文基于这一问题,提出了一种由单片机控制的蓝牙无线通信系统方案,主要是实现了由单片机控制蓝牙系统,与接入蓝牙网络的其他设备,如:移动电话、PDA、以及其他具有蓝牙功能的无线通信设备进行通信。
2 蓝牙协议栈概述2.1 蓝牙技术的协议标准和协议规范蓝牙无线通信的协议标准是由SIG制定的,它规定了蓝牙应用产品应遵循的标准和需要达到的要求。
目前颁布的蓝牙规范有1.0、1.1、2.0、2.1等几个版本[2]。
蓝牙技术规范抱愧和信息一和应用框架两个部分。
协议规范部分定义了蓝牙的各层同学那些以,应用框架指出了如何采用这些协议实现具体的应用产品。
协议栈由上至下可分为3个部分:传输协议、中介协议和应用协议。
传输协议负责蓝牙设备间的相互位置确认,以及建立和管理蓝牙设备间的物理和逻辑链路,包括LMP、L2CAP、HCI;中介协议为高层应用协议或程序在蓝牙逻辑链路上工作提供了支持,为应用层提供了各种标准接口,包括:RFCOMM、SDP、IrDA、PPP、TCP/IP、UDP、TSC和AT指令集等;应用协议是指那些位于蓝牙协议栈之上的应用软甲和其中涉及的协议,包括开发驱动和其他蓝牙应用程序等。
2.2 蓝牙技术的核心协议蓝牙技术的核心协议分为四个部分,如下:(1)基带协议(Baseband)基带和链路控制层确保网络内部蓝牙设备单元之间由射频构成的物理连接。
(2)连接管理协议(LMP)负责蓝牙网络内各设备之间连接的建立。
(3)逻辑链路控制和适配协议(L2CAP)是一个为高层传输层和应用层协议屏蔽基带协议的适配协议,为高层应用传输提供了更加有效和更有利于实现的数据分组格式。
(4)服务发现协议(SDP)发现服务在蓝牙技术框架中起到了至关重要的作用,它是所有用户模式的基础,是为实现网络中蓝牙设备之间相互查询及访问提供的服务。
在蓝牙系统中,客户只有通过服务发现协议,才能获得设备信息、服务信息以及服务特征,从而在设备单元之间建立不同的SDP 层连接[3]。
2.3 HCI协议HCI(Host Controller Interface)协议,即主机控制接口协议,属于蓝牙协议栈的一部分,是蓝牙规范定义的一个符合标准的接口,它适用于蓝牙通讯模块的硬件部分。
此定义描述了位于HCI驱动程序(主机的一部分,也即蓝牙通讯模块的使用者)和主机控制器固件(蓝牙通讯模块本身的一部分)之间的接口。
HCI固件通过访问基带命令、硬件状态寄存器、控制寄存器以及时间寄存器实现对蓝牙硬件的HCI指令。
HCI传输层是蓝牙主机与蓝牙主控制器之间的物理接口。
目前,蓝牙HCI传输层的物理接口由通用串行总线(USB)、串行端口(RS232)、通用异步收发器(UART)和个人计算机存储卡[4]。
本系统采用UART方式在蓝牙设备和主控制器之间传输数据。
UART传输层发目标在于可以在同一PCB电路板上两UART之间的串行接口上使用蓝牙HCI协议。
UART 传输层假定UART通信不存在线路故障,图1为UART传输层。
图1 UART传输层UART传输层采用了RS232的接口参数配置,如表1:表1 RS232接口参数配置其中,RTS/CTS流控制用于防止临时UART缓冲区溢出,当CTS为1时,允许蓝牙主机/主机控制器发送,当CTS为0时,禁止蓝牙主机/主机控制器发送。
流完成响应时间则定义了从设置RTS为0到字节流真正结束时的最大时间。
UART信号线采取置空调制解调器模式,RS232信号处于连接状态,即本地TXD连接到远端RXD,本地RTS连接到远端CTS,反之亦然。
UART传输层同时具备纠错功能。
如果当蓝牙主机与主机控制器在RS232通信上失去同步,则必须复位。
RS232通信失去同步意味着已检测到HCI分组指示器或者HCI分组长度超出了范围。
如果蓝牙主机与主机控制器在UART通信失去同步,那么主控制器将发送硬件故障时间,以将同步错误告诉蓝牙主机。
主控制器需要从蓝牙主机接受一个RESET指令以执行抚慰,从而实现重新同步[5]。
3系统设计方案通过对蓝牙协议的研究,采用蓝牙模块与主控制器(单片机)相连接的模式,向单片机写入AT指令,通过UART传输层控制蓝牙模块,从而达到自动连接以及自动收发数据功能,如图2所示。
图2 硬件系统设计方案该方案主要完成以下几个指标:(1)自动完成处在蓝牙网络中的蓝牙设备的连接。
该模式针对事先配对好的两个不同地址,但硬件完全相同的蓝牙-单片机设备。
一旦该配对设备进入到可通信距离,可通过事先写进单片机的程序,由单片机控制蓝牙模块,完成配对设备的自动连接。
(2)在单片机上加载外挂FLASH,可将欲传文件或者数据通过单片机下载存储在FLASH 当中,当蓝牙设备连接后进行自动传输,不重复发送。
(3)可搜索在可通信范围内所有同型设备或者其他具备蓝牙功能的通信设备。
搜索模式可分为自动搜索和手动搜索。
搜索结果以“设备地址+设备类型+信号强度”方式显示,搜索后,可选择具体设备进行连接、通信。
(4)可实现两种接收方式:一种是蓝牙设备与PC机等智能终端相连,由智能终端完成接收数据的工作;另一种模式是蓝牙设备无需连接任何终端或接收机,直接将接收到的数据保存在外设FLASH当中,这种模式省去了接收终端部分,使设备简洁,便携,可在任意时刻无需通知和触发任何按键,完成自动接收。
系统由两部分构成:一部分是嵌入了蓝牙HCI协议的蓝牙模块,另一部分是由单片机加载FLASH芯片的控制/存储模块。
4 系统的硬件构成系统由单片机通过串口对蓝牙模块进行控制,完成对蓝牙模块的指令配置和数据的收发处理,如图3所示。
图3 蓝牙系统的硬件构成4.1 芯片选择(1)主机控制器(单片机)芯片的选择从实现整个系统要求的角度出发,系统控制主芯片选择C8051F020。
C8051F020是完全集成的混合信号系统级MCU芯片,具有与8051 兼容的CIP-51 内核和硬件实现的SPI、SMBus/ I2C 和两个UART 串行接口,即可满足系统设计要求,同时可简化电路设计,增强系统抗干扰能力。
C8051F340处理芯片与普通单片机相比较,具有扩展芯片少,连线简单,资源多,运算速度快,编程简单,易于升级维护等优点,并且在可靠性和稳定性上也可以得到保证。
(2)蓝牙模块的选择蓝牙模块选用的HWW-S1800是由深圳恒皓威公司生产,采用世界领先的蓝牙芯片供应商CSR公司的BlueCore4芯片,标准class1蓝牙2.0版本规范设计,具有信号灵敏度高、通信距离远,简单易用等特点,可通过AT指令查看或者设置控制参数,满足无线串口通信远距离传输的要求。
该型号蓝牙模块支持所有蓝牙协议,采用spp串口通信模式,实现通用串行接口与蓝牙数据传输之间的相互转换;具有多从(SLAVE)实体结构,最多可同时与7个具有SPP协议的远程蓝牙主(MASTER)设备;通过AT指令,可为模块设置控制参数或发布控制命令;支持各种标准波特率,并支持硬件流传输控制,最高串口波特率为1382400bps;通信频段为蓝牙标准2.4GHz,搭载外置蓝牙天线,在空旷、无遮挡地带,点对点理论传输最大距离可达1800米。
HWW-S1800蓝牙模块主要包括三个部分:基带控制器、蓝牙传输适配器和工作在全球通用标准的2.4GHz ISM频段的射频模块。
其中传输适配器通过加入额外的功率放大器后,可使得蓝牙模块的通信范围扩大,在理想传输条件下,最大值可达到1800米。
(3)FLASH芯片的选择FLASH芯片选择Atmel公司生产的AT45DB161D-SU。
该FLASH存储器的存储容量为16 Mbit,电源电压范围为2.7V~3.6V,最大工作电流为15 mA。
4.2 主控制模块与蓝牙模块的连接作为主控制器单片机使用22.1184MHz的晶振,单片机与蓝牙模块间的通信波特率为38400bps,与PC机等智能终端的通信波特率为115200bps。
单片机在整个系统中起到了主机控制器的作用,它和蓝牙模块之间的数据通信需要通过主机控制器接口(HCI)实现。
HCI由两部分组成:一部分是用来连接蓝牙模块和搭载了FLASH的主控制器,另一部分是实现命令接口的软件。
5 结语通过对蓝牙协议体系的深入研究,特别是对蓝牙核心协议及蓝牙HCI协议的分析,本文提出了一套基于单片机控制的远距离蓝牙数据传输系统的设计方案,以期待为低成本、远距离传输的蓝牙便携产品开发提供思路。
本文设计的基于单片机控制的蓝牙传输系统实现了在配对状态下两个不同地址并且相互绑定的同型设备之间的自动连接和通信的功能,并在收发设备两端对等层开发了文件传输协议,实现了文件自动传输。
在此基础上,该系统的功能可拓展为点对多点,或者实现组网自动通信以及数据转发。
此系统实现了蓝牙模块与单片机之间的HCI,具有一定的规范性,也可以作为通用模块,为实现蓝牙产品开发提供参考案例。
参考文献[1]朱刚,谈振辉,周贤伟蓝牙技术原理与协议[M] 北京:北方交通大学出版社,清华大学出版社,2002: 1[2]金纯,肖玲娜,罗纬,聂增丽超低功耗(ULP)蓝牙技术规范解析[M] 北京国防工业出版社,2010:8[3]朱刚,谈振辉,周贤伟蓝牙技术原理与协议[M] 北京:北方交通大学出版社,清华大学出版社,2002: 6[4]钱志鸿,杨帆,周求湛蓝牙技术原理、开发与应用[M] 北京:北京航空航天大学出版社,2006: 94[5]金纯,林今朝,万宝红蓝牙协议及其源代码分析[M] 北京:国防工业出版社,2006:126-127。