收藏 分销(赏)

基于蓝牙模块的智能家居网络设计-青岛理工大学毕业设计(论文.doc

上传人:胜**** 文档编号:2724436 上传时间:2024-06-04 格式:DOC 页数:30 大小:1.48MB
下载 相关 举报
基于蓝牙模块的智能家居网络设计-青岛理工大学毕业设计(论文.doc_第1页
第1页 / 共30页
基于蓝牙模块的智能家居网络设计-青岛理工大学毕业设计(论文.doc_第2页
第2页 / 共30页
基于蓝牙模块的智能家居网络设计-青岛理工大学毕业设计(论文.doc_第3页
第3页 / 共30页
基于蓝牙模块的智能家居网络设计-青岛理工大学毕业设计(论文.doc_第4页
第4页 / 共30页
基于蓝牙模块的智能家居网络设计-青岛理工大学毕业设计(论文.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、青岛理工大学毕业设计(论文)摘 要 随着科学技术的发展和人们生活水平的提高,人们越来越注重自己生活环境的舒适、安全与便利。近年来兴起的智能家居系统满足了人们的这种需求,它有效地在家居环境中组建家庭信息网络,将各种家电产品结合成一个有机整体,对家电设备进行集中或异地的智能化控制与管理,并且能够与外界进行信息交流。蓝牙技术作为一种无线数据与语音通信的开放性全球规范,可提供低功耗、短距离的无线空中接口,在各种固定与移动设备之间实现无线通信。在移动通信、无线数据采集、无线遥控与遥测、计算机网络及自动控制等多种领域,蓝牙技术都有着广泛的应用。应用设计的蓝牙软硬件接口,本文开发了一个基于蓝牙模块的智能家居

2、控制系统,在该系统中,上位机端通过USB控制蓝牙适配器,其发送的控制指令由下位机端蓝牙模块接收后传给单片机,并在单片机端编写了一个基本的蓝牙及模拟家电控制程序,从而实现了PC与模拟家电的无线控制功能。本文提供的蓝牙软硬件接口方案及数据传输模块,不仅可以用来进一步开发蓝牙高层协议,而且还可作为通用的接口函数和模块应用到多种无线场合。关键字:蓝牙技术;智能家居;蓝牙模块ABSTRACT With the development of science and technology, and the improvement of peoples living standards, people are

3、 paying more and more attention to the comfortablity, safety and convenience of their living environment. The emergence of smart home system in recent years, just meets the needs of people. It effectively constitutes appliances into a home information network and makes all kinds of appliances combin

4、ed into an organic whole. It can intelligently control appliances locally or remotely, and exchange information with the outside world.As a globally open wireless data and speech communication specification Bluetooth technology can provide low-power、short distance wireless air interface and implemen

5、t wireless communication between various fixed and mobile equipmentsBluetooth technology has a wide range of applications in mobile communications, wireless data collections, wireless remote control and sensing Computer network and automatic control and other areasUsing the bluetooth hardware and so

6、ftware interface designed,This paper developed an smart home furnishing control system based on Bluetooth moduleIn the system,The PC side is controlled by USB bluetooth adapterIts control instruction is received by the lower end of Bluetooth module which sent it to the micro controller. A basic blue

7、tooth and home appliance control simulation program was prepared in the MCU. So,the system can realize wireless control function of PC and simulation of electrical appliances .And then,data can be transmitted between the two partsAfter that,a further development which is file transmission is impleme

8、ntedKeywords: Bluetooth technology; smart home; Bluetooth moudule II目 录前 言1第一章 绪 论21.1 课题研究背景21.2 智能家居的发展状况21.3 未来智能家居的发展趋势31.4 研究的目的和意义31.5 课题研究的内容4第二章 蓝牙技术介绍52.1 蓝牙系统组成52.2 蓝牙协议栈62.3 蓝牙控制器接口(HCI)分析62.3.1 HCI概述62.3.2 HCI传输层72.3.3 HCI分组格式8第三章 设计方案及模块介绍103.1 蓝牙家居控制系统组成结构103.2 主要硬件模块介绍10第四章 系统硬件设计144.

9、1 下位机模块设计144.2PC机与蓝牙模块的连接164.3 单片机与家用电器的连接174.3系统电源模块原理图17第五章 系统软件设计195.1 单片机端软件设计195.2 PC端软件设计24第六章 系统测试与分析29结 论31致 谢32参考文献33附 录3430第三章 设计方案及模块介绍3.1 蓝牙家居控制系统组成结构基于蓝牙技术的智能家居系统,其硬件组成主要包括蓝牙模块、MCU、PC及受控设备等组成。总体构成如图3.1所示。结构框图中前半部分为中心控制部分,主要由PC机、蓝牙无线收发模块组成;后半部分为多个受控单元,主要由受控电器、单片机、蓝牙模块组成。在受控单元中,蓝牙模块和单片机之间

10、通过串口输入HCI指令实行数据通信。其工作过程是:PC机发送一条控制命令,通过串口发送给蓝牙模块,并由蓝牙模块发送出去,这条指令被多个蓝牙模块接收后由单片机进行识别,并作出相应的动作,最终完成对家电的控制。图3.1.家居控制系统总体设计框图在本设计中作为通信部分的蓝牙模块均采用的是ROK101008,单片机选用性价比较高的C8051F120.3.2 主要硬件模块介绍3.2.1 爱立信蓝牙模块ROK 101 008简介爱立信ROK 101008是爱立信(Ericsson)公司出品的适用于短距离通信的无线基带模块,它集成度高、功耗小、完全兼容蓝牙10B协议规范,可嵌入到任何需要蓝牙功能的设备中。它

11、同时支持数据和语音的传输,输出功率满足Class2的要求。它提供有UART、PCM接口,可方便地实现与主机之间的通信。它在UART接口上的最高传输速率为460Kbs,缺省波特率是576Kbs,可支持的波特率为300、600,900,1200、2400,4800,9600、19200,384001 57600,115200、230400,60800bits,并有一个128字节的FIFO队列111】。它采用压缩结构(3317X0365cm),金表层覆盖,外观图如图3.2所示。图3.2 爱立信ROK 101 008蓝牙模块外观图ROK 101008的系统结构图如图3.3所示。处于模块底层的是无线层(

12、Radio)和基带)县(Baseband),以硬件的形式存在;处于模块中上层的,是链路管理器(LM)和HCI,以固件的形式存在。图3.3爱立信ROK 101 008蓝牙模块系统结构图ROK 101008由基带控制器(Baseband)、快闪式存储器(Flash Memory)、无线电收发器(PBA 313012)、电压调节器(Voltage Regulation)、13MHz晶振(13MHz Crystal)共5部分组成,其内部结构框图如图3.4所示。图3.4 爱立信ROK 101 008蓝牙模块内部结构框图基带控$1J-器(Baseband):是一个以ARM7一Thumb为基础的的芯片,通过

13、接口控制无线电收发器的运行。ROK 101 008的基带控制器提供UART和PCM两种接口。快闪式存储器r(Flash Memory):闪存和基带控制器同时使用。无线电收发器(PBA 313012):PBA313 012是短距离微波无线电收发器,其天线滤波器、RX和TX不平衡变压器都集成在电路中,可作为嵌入式结构应用。电压调节器:(Voltage Regulation):Vcc典型值是33V,产生两个可调电压。13MHz晶振(13MHz Crystal):晶振提供频率为13MHz的内置时钟。爱立信ROK 101 008蓝牙模块芯片详细的引脚封装如图3.5所示。图3.5 爱立信监牙模块ROK 1

14、01 008芯片引脚封装图引脚号排列按照从左向右依次为A、B、C、R、T,其中每个字母代表一列,每列又按从下到上依次为1、2、3、4、5、6。常用的部分引脚的说明如表3.1所示:表3.1爱立信ROK 101 008蓝牙模块芯片部分引脚说明3.2.2 蓝牙适配器模块蓝牙适配器图片蓝牙(Bluetooth)是无线网络传输技术的一种,原本是用来取代红外的。与红外技术相比,蓝牙无需对准就能传输数据,传输距离小于10米(红外的传输距离在几米以内)。而在信号放大器的帮助下,通讯距离甚至可达100米左右。蓝牙技术非常适合耗电量低的数码设备相互分享数据,如手机、掌上电脑等。蓝牙规范中广为应用的成熟版本为1.1

15、、 2.0、 3.0、 4.0,带宽约1M-24Mbps(USB1.1接口的带宽为12Mbps,USB2.0接口的带宽为480Mbps,局域网带宽为10Mbps/100Mbps/1000Mbps,火线IEEE1394带宽为400Mbps。所以说,蓝牙非常适合于传送小的文件(10MB以下的图片、铃声、电子书、文稿等等),方便与速度兼得。目前最新版本是2.1+EDR版本。第四章 系统硬件设计4.1 下位机模块设计 4.1.1 单片机C8051F120简介微控制器(MCu)是蓝牙应用系统的核心,它的选择将直接影响到系统的性能。C8051F120是Cygnal公司的一种与8051兼容的高速SOC单片机

16、,它具有高速CIP51内核、灵活的IO交叉开关、先进的时钟系统、JTAG系统调试接口以及多源复位系统。它性能卓越,内核采用流水线结构,速度可达100MIPS,比普通的51快40倍,而且在资源丰富、体积小、功耗低、集成度高且调试方便。下面列出了它的一些主要特性:高速、流水线结构的8051兼容的CIP51内核;真正8位500ksps的ADC,带PGA和8通道模拟多路开关;2周期的1616的乘法和累加引擎;8448(8K+256)字节的片内RAM;可寻址64K字节地址空间的外部数据存储器接口;硬件实现的SPI、SMBus12C和两个UART串行接El10l;5个通用的16位定时器;具有6个捕捉比较模

17、块的可编程计数器定时器阵列;FLASH存储器具有在系统中重新编程能力,可用于非易失性数据存储,并允许现场更新固件;片内JTAG调试电路允许非侵入式(不占用片内资源)、全速、在系统测试;可在工业温度范NI(45C一+85。c)N用27V36V的电压工作。C8051F120为100脚TQFP封装。4.1.2 单片机与蓝牙模块的连接单片机与蓝牙模块的硬件连接比较简单, 其原理如图4.1所示:图4.1单片机C8051F120通过UART连接蓝牙模块示意图图中的、分别标出了连接中需要注意的3个地方。数据线和信号线单片机C8051F120具有两个UART,在此选用UART0。在编程时候可通过交叉开关设置,

18、将UART0分配到两个管脚上,例如P00(TXD)和P0I(RXD),分别与蓝牙模块的RXD(AS)和TXD(B5)相连,用于传输控制信号。另外,单片机端需另外分配两个管脚,例如P16和P17,分别作为流量控制信号CTS和RTS,分别与蓝牙模块的RTS(A6)和CTS(B6)相连。若CTS为1则允许对方发送,若CTS为0则禁止对方发送。蓝牙模块电源线蓝牙模块的电压管理器共有3个输入,分别是Vcc(C6)、Vcc_io(C4)和ON(C2)。Vcc提供电源电压,典型值是33V:Vet io为UART提供一个独立的电源回路,可以与单片机逻辑接口相同,可以连接到Vcc;ON信号控制内部电压稳压器导通

19、或关断。将Vcc、Vcc io和ON连接在一起使用时,不需要考虑蓝牙模块的加电顺序;否则,则要严格按照“GNDVetONVcc io”的顺序加电,断电时候顺序相反。在此处采用前者,将Vet、Vcc io和ON一起连接到33V的外部电源上。蓝牙模块天线蓝牙模块ANT管脚连接到50欧的天线,天线的电压驻波比小于2:1。在本课题的实验板的设计中,单片机和蓝牙模块是焊接在一个PCB板上的。由于蓝牙模块采用平面封装,而且引脚很密集,要想直接焊接到PCB板上很困难,而且天线也很难焊接上去。因而自行设计了一个辅助电路板,先将蓝牙模块焊接到此辅助电路板上,然后将要用到的蓝牙模块的部分引脚引出来,通过插座将蓝牙

20、模块连接到PCB板上,这样就使得蓝牙模块的装卸变得很方便。辅助电路板引出的管脚有GND地线、VCC33V、数据收发线RXD和TXD、流控线RTS和CTS、使能信号线EN、复位信号线RESET,其中BT EN即图46中的ON信号,实际应用中将它与VCC接在一起,其他的与单片机相连。图4.2所示。图4.2蓝牙模块ROKl01 008辅助电路板引出管脚图4.2 PC机与蓝牙模块的连接PC端硬件连接比较简单,将蓝牙USB适配器直接通过USB连接到PC上即可。如图4.3所示图4.3 PC端硬件结构图需要注意的是,插上适配器后,如果是在XP系统下,系统会自动装载蓝牙适配器驱动程序,因为在此是要开发自己的基

21、于HCI层的应用程序,而自动安装的驱动程序是针对高级应用开发的,覆盖了HCI层,因此需要将其卸载,安装针对特定适配器的硬件驱动程序。此处使用的蓝牙USB适配器是CSR Blue Core 04,安装CSR USB Driver 118,安装成功后可在“设备管理器“通用串行总线控制器中查找到“CSR Blue Core Bluetooth,如图4.3所示。图4.4 CSR Blue Core Bluetooth安装成功示意图4.3 单片机与家用电器的连接家用电器控制模块其主要功能是根据接收系统中心控制模块的命令,以控制电视机开关为例,将控制电视机开关的单片机引脚设定为p13,当该引脚为高电平时继

22、电器吸合,电视开,当为低电平时继电器断开,电视机关。电路图如图4.34.5 家电控制电路原理图C8051F120收到中心控制器发送的控制信号后P1.3引脚变为高电平,当光耦合器导通,呆滞继电器吸合,给信息插座通电,从而接通家用电器。当有警情是P1.4和P1.5变为高电平,单片机则通过TXD和RXD发送报警信号,当蓝牙模块输出到中心控制器。 在上述电路中电阻R1的选择至关重要,他影响着2N45开通与关闭的性能。R1较小时,可减小开关时间与开关损耗,R1较大时则相反。一般根据产品手册上提供的数据作为参考,在参考值(48欧姆)的1倍到10倍见选取,在这里选取5倍的参考值,即240欧姆。4.3 系统电

23、源模块原理图C8051F120微控制器的内核和I/O使用同一电源电压,只需单电源3.3V供电 。图4.4所示,输入9V直流电源,电感L1用于限制瞬态电流,经过C1、C2滤波,然后通过SPX1117M-3.3将电源稳压至3.3V,其输出用了一个4.7uf的电容来改善瞬态响应和稳定性。当正确连接电源后,LED发光作为电源工作指示灯.为了降低噪声和出错几率,我们用电感L2、L3将数字电源和模拟电源隔离。图4.6 3.3V供电原理图系统中有些外围器件的工作电压为5V,比如控制家电的部分,所以我们还需要5V稳压电路,如图4.5所示,其工作原理是输入9V的直流电源,经C8、C9滤波,然后通过LM78L05

24、将电源稳压至5V.图4.7 5V供电原理图 SPX1117M是Sipex公司生产的LDO芯片,其特点是输出电流最大,输出电压高,稳定性好。其输出蒂娜刘可达到800MA,输出电压的精度在+-1%以内还具有电流限制和热保护功能,被广泛用于手持设备、数字家电和工控领域第五章 系统软件设计系统的软件设计分为单片机端软件设计和PC端软件设计两大块。5.1 单片机端软件设计单片机端软件采用嵌入式C语言的编程,开发环境为Keil,在本设计中只需完成蓝牙基本数据传输即可。此部分软件包括初始化、蓝牙交互、处理数据三个部分。初始化包括系统初始化和蓝牙初始化。系统初始化包括系统时钟初始化、管脚分配、串口初始化、定时

25、器初始化等,蓝牙初始化是通过UART给蓝牙模块发送一系列初始化指令,蓝牙模块返回事件,交互完成一系列的复位、鉴权、读地址等初始化操作。蓝牙交互就是初始化完成后,若本地蓝牙作从设备,则等待远端蓝牙设备的建链请求,如果接受请求,则继续等待建链成功,获得一个连接句柄,从而即可进行数据交换;若本地蓝牙作主设备,则进行一系列主动查询、建链、发送数据、断链等操作。处理数据就是将有效数据转存到相应位置等一系列后续操作。需要注意的是,在程序的主循环中,需要实时判断串口接收缓冲区是否有数据,有数据则调用HCI状态机进行处理。程序流程如图51所示。图5.1单片机端蓝牙基本数据传输模块程序流程图系统时钟初始化用来设

26、置和启动系统时钟。在这里采用外部24M外部振荡器提供系统时钟。首先使能24M外部晶振并等待外部晶振就绪,然后利用PLL将其倍频为96M作为系统时钟。管脚分配用来将UART0的TX和RX分配到管脚p0O和p01,并将pO0设为输出模式、p01设为输入模式。串口初始化调用单片机UART接12函数uart_rest0、uart_init0实现,其中uart_initoqb涉及具体单片机寄存器的操作包括设置UART0工作模式、设置定时器、设置波特率等。定时器初始化部分实现对定时器1初始化和启动,定时间隔为lOms。在系统初始化完成之后,就需要开始对蓝牙设备进行操作。对蓝牙设备的操作需要构造一个蓝牙HC

27、I设备控制结构体hci dev。蓝牙设备操作的复杂性造成此结构体也相对复杂,具体如图5.2所示:UART控制结构体uart dev变量ud,唯一的标识一个串口连接。蓝牙HCI设备信息结构体hci dev info变量hdinfo,保存蓝牙地址、设备类型、缓冲区大小等。蓝牙HCI设备连接控制结构体hci dev con变量hd con,保存连接状态、连接句柄、远端地址、时隙等。蓝牙HCI设备设置结构体hci dev set变量hd set,保存用户设置信息,包括扫描允许、连接超时、鉴权允许、查询参数等。蓝牙HCI设备标志位结构体hcidev_ flags变量hd_ flags,标识查询和连接状态

28、。图5.2 蓝牙HCl控制结构体hcidev数据结构图因为此系统中只有一个单片机只与一个UART0相连的蓝牙模块,即蓝牙HCI设备是唯一的,因此此结构体应该定义为全局变量并且整个程序运行空间内只允许定义一个,为便于讨论,假设定义此变量为hd,即:蓝牙初始化包括蓝牙HCI复位、蓝牙参数设定和蓝牙一系列初始化指令的发送。蓝牙HCI复位主要完成对hd各项默认值的设置,包括将hdhdinfo中的acl_ num和acl一1en全置0,cmdnum置1,以防止蓝牙读缓冲区大小指令ReadBufferSize执行失败后得到未定义的值;将hdhdcon中的constatus的值赋为NOT CONNECTED

29、,将con handle的值设为1等等;蓝牙参数设定通过对hdhd set相应参数直接赋值实现,可根据具体需要进行不同的设置;蓝牙初始化指令的发送是蓝牙设备初始化的关键。在此可调用蓝牙HCI指令接口完成。至于具体需要哪些指令来进行初始化,可根据需要增减,但有一些指令是必备的。在此提供两个初始化指令集合initl和init2,其中bt init necessary为强制性、必备的指令集,bt_init_optional是非强制性、可选的指令集,见表51。调用HCI指令接口函数时需要传入相应参数列表结构体,结构体各项的参数值从已设定的hdhd set中提取。各指令之间最好是加25ms的延时,在保证

30、前一条指令执行成功后才发送下一条指令。指令包的流控由hdhd infocmd num控制。表5.1 初始化指令集在进入蓝牙基本数据传输实验项目之前,设置了一个标志位bt role,用户可选择本地蓝牙的角色即是作为主设备还是从设备进入实验。不管是作为主设备还是从设备,蓝牙初始化部分是相同的。 初始化完成以后,本地蓝牙作主设备时,首先要主动发起查询,查询到远端蓝牙设备之后,要主动发起连接,连接建立以后,数据可以在本地蓝牙和远端蓝牙之间进行传输,既可由本地蓝牙发往远端蓝牙,也可由远端蓝牙发往本地蓝牙。本地蓝牙作从设备时,循环等待远端蓝牙的连接请求,收到连接请求事件以后,通知用户决定是否接受此次连接请

31、求。若接受,则发送HCI Accept _Connection,若拒绝,则发送HCI_ reject_ connection_ request。单片机端和PC端之间的蓝牙连接建立完成后,就可以在两者之间进行数据的传输了。由于单片机端不支持数据输入,因而本系统采用PC端录入数据,向单片机端发送,单片机端接收到数据后。这就涉及到数据的检测和处理。HCI状态机在检测到ACL数据分组到来后经过一系列的处理,将实际所传数据存储在一个数据接收缓冲区里,主机对标志位data _ready_ flag的检测放在主循环ready程序中,从而保证数据能及时得到处理。单片机端作从设备时,若设置为自动回传打开,还可将

32、已接收数据回传给PC。单片机程序:以控制电视机开关为例:设定0X00表示关,0x01表示开Void bt_basic()display_interface(); 显示界面Uart_init(); 串口初始化 HCI_init(); Hci设备初始化Clear_data_rev_buf(); 清空接收数据缓冲区Hci_param_set(hd); 设置HCI设备参数TV_0n_off=P13; p13在电路连接时控制电视While(1) 如果UART接收缓冲区非空,则调用状态机处理。if(hci_buf_status!=HCI_BUF EMPTY) HCI_state();If( local_b

33、t_role) 若由PC机发送数据,单片机接收数据if ( event_evcode= CONNECTlON REQUEST) 蓝牙连接请求HCI Accept _Connection;hci_event_connection_request(eventparam); if(event_evcode= CONNECTION COMPI ETE)表示蓝牙设备已连接oder=Hci_rev_acl_ data(); 接收控制信息 Switch(oder)case 0x00 TV_on_off=0; 电视关Case 0x01 TV_on_off=1; 电视开 If(event_evcode=DISC

34、ONNECTION_COMP)hci_event_disconnection_complete(eventparam);断开连接5.2 PC端软件设计PC端采用面向对象的C+编程,在VC+60开发平台下实现了基于蓝牙HCI层通信的基本数据传输控制程序。PC端操作系统为XP,采用的蓝牙设备为蓝牙USB适配器,适配器内嵌蓝牙芯片为CSR(Cambridge Silicon Radio)公司的Blue Core 04。蓝牙USB适配器和PC之间通过USB接口进行连接和通信,因而数据的传输利用的是蓝牙HCI USB传输层。USB是由“通用串行总线实施论坛”组织公开发布推广的一种串行接口标准。蓝牙没有为

35、USB接口开发新的协议,而是使用已有的USB协议。在驱动程序方面,一方面,xP系统自身会提供底层的硬件驱动程序和简单的上层应用程序,在蓝牙USB适配器连接到PC之后,会自动装载;另一方面,不同的蓝牙芯片厂家会提供不同的蓝牙USB适配器的硬件驱动程序,便于技术人员进行针对特定应用的开发。由于XP系统自带的驱动直接面向应用,屏蔽了HCI层,所以在此处采用CSR公司提供的蓝牙USB驱动csrbc01inf,对应于此驱动附有一系列的控制字。安装好蓝牙USB适配器之后,在VC+60编程平台中,采用Windows API函数,结合驱动程序提供的一系列控制字,就可以实现对蓝牙USB适配器的访问。PC端基于H

36、CI USB传输层开发蓝牙通信的步骤和流程类似于上文中单片机基于蓝牙HCI UART层的开发,它们都遵循蓝牙HCI层的一般通信流程,区别就在于利用的HCI传输层不同。利用HCI USB传输层传输时,数据是通过USB端点来收发的,USB端点分为4大类,分别是控制端点、块端点、中断端点和同步端点。不同的端点实现不同的功能。控制端点用来配置和控制USB设备,在此处可用于主机(PC)向主机控制器(蓝牙USB适配器)发送HCI指令分组。块端点用来传送ACL数据分组。中断端点用来保证HCI事件分组的及时接收。同步端点用来传输SCO数据分组。由此可见,在采用USB传输层时,不同的HCl分组可由不同的端点类别

37、来区分,因而不需要再像HCI UART传输层那样在分组前面加分组指示器。软件流程图如图5.3所示图5.3 PC端蓝牙基本数据传输模块流程图程序的实现采用基于对话框的MFC编程。在程序中构造了一个USB Stack类负责对蓝牙USB适配器的控制,包括打开设备、发送HCI指令分组、收发ACL数据分组、接收HCI事件分组等。类内部对蓝牙USB适配器的访问通过Windows API函数配合CSR Blue Core控制字实现,具体的类的细节参照CSR公司提供的CSR USB Dongle开发文档(CSR USB Kernel)实现。在程序的整个生命周期中,定义一个USB Stack的全局变量m_bt标

38、识当前的蓝牙设备,如图5.4所示图5.4 USB Stack类定义表5.2 PC端的主要函数列表当只有一个蓝牙USB适配器连接到PC上时,适配器的访问路径默认为“.CSRO”,当插上第二个蓝牙USB适配器时,第二个适配器的访问路径默认为“.CSRl,以此类推。此处默认只连有一个适配器,则打开蓝牙设备时,调用m_ bt.open_ connection(“.CSR0”)完成蓝牙适配器的打开和两个后台线check hci event0和checkacldata(),此处采用多线程编程线程check hci event0和checkacldata()分别用于实时接收主控制器返回的HCI事件分组和AC

39、L事件分组蓝牙设备打开以后,要对蓝牙进行初始化。类似于单片机端对蓝牙模块的初始化操作,在此也可灵活选择初始化指令集和各初始化指令的参数,由于在此处只是实现一个基本的测试程序,所以对这些指令的参数的选择只是按一般的需要进行设置和取值,比如HCI_ Write_ Scan_ Enable指令的扫描允许参数直接设为0x03表示查询扫描和呼叫扫描同时允许,以下的指令参数的设定类似,不再赘述。指令分组也直接采用了十六进制数串集中发送出去,指令与指令之间采用了一定的延时以保证主机控制器指令缓冲区不会溢出,下面给出了蓝牙初始化指令集的代码示例(限于篇幅,下文中的查询、建立连接等操作不再给出代码,只作文字说明

40、)。初始化完成之后,PC会收到蓝牙返回的多个HCI事件,从中捕获读缓冲区大小事件和读本地蓝牙地址事件,解析出主机控制器指令缓冲区和数据缓冲区大小将其保存,解析出本地蓝牙地址将其保存并显示,然后就可以进行对周围蓝牙设备的查询。查询完成后,PC捕获蓝牙返回的查询结果事件,从中解析出查询到的远端蓝牙的地址,将其保存在m_bt.remotebdaddr6,根据获得的远端蓝牙地址,可发起建立连接请求,其中分组类型参数选用Ox0008,表示建立的连接为DMl类型。与远端蓝牙连接建立完成后,会返回建立连接完成事件,需要注意的是,若建立连接时当前在两端蓝牙设备之间已经存在连接,则只会返回最大时隙改变事件。因而

41、发送建立连接请求指令之后,要捕获返回的事件,若是连接建立完成事件或最大时隙改变事件且status参数为O,则表示建立连接成功,否则失败,要重新发起连接请求。连接建立成功之后,就可以进行数据的收发了。数据的传送是以ACL数据分组的格式进行的。首先要根据已建立连接的连接句柄和PB、BC标志组合ACL分组头,然后根据要发送数据的总长度获知ACL数据分组的长度和L2CAP分组的长度,再设定L2CAP CID,最后才是真正要发送的数据的写入,具体的格式在上文中已给出。在此处,构造一个ACL PKT结构体用于标识一个ACL数据分组。ACL数据分组组合完成后,动态分配一个数组p_aclpkt将组合完成的分组

42、复制。数据分组发前要检查当前主机控制器接收缓冲区是否还有空闲空间,有则允许发送,否则提示“缓冲区溢出”,待有缓冲区释放后再重新发送。此处要注意的是,分组的长度信息部分一定要正确无误,否则发出后不但不会被远端蓝牙设备接收,而且会导致当前连接断开。第六章 系统测试与分析在蓝牙数据传输系统中,PC端和单片机端可分别作为主或从设备。在此处,将PC作为主设备发起查询,单片机端作为从设备,PC向单片机发送控制指令。PC端的程序界面如图所示图6.1 蓝牙数据传输系统PC端界面程序的操作按照打开蓝牙设备、初始化蓝牙、查询附近蓝牙、建立连接、发送数据文件、断开连接、关闭蓝牙的顺序进行,由操作区的按钮触发实现。蓝

43、牙初始化完成后,在信息区会显示本地蓝牙地址,查询完成之后,在信息区会显示查询到的远端蓝牙地址,然后就可以发起建立连接。在建立连接指令中可通过参数设置不同的ACL分组类型,例如DMl、DM3等。不同的ACL分组类型对应不同的时隙,可得到不同的传输速率和最大传输距离阎。连接建立成功后信息区“蓝牙状态会显示连接已建立,方可发送数据和文件。在数据的收发过程中,在信息区还会显示发送计数、接收计数以及当前可发送的ACL包数目。在此系统中,PC端采用的是蓝牙USB适配器,采用规范为蓝牙11版本,默认传输速率是57600bps,最大支持传输速率是1Mbps;单片机端采用的是爱立信蓝牙模块ROK 101008,

44、采用规范为蓝牙10b版本,默认传输速率是57600bps,最大支持传输速率为720Kbps;而单片机端采用的是串口0与蓝牙模块通信,串口O的最大传输速率为115200bps。由此可见系统的通信瓶颈在于单片机的串口0,另外单片机的处理能力也很大程度上决定了系统的最终数据传输速率。为了方便起见,系统中单片机与蓝牙模块之间采用蓝牙HCI默认的波特率57600bps,在具体应用中,可通过特定的HCI指令进行波特率的重新设定。在数据的传送过程中,采用的流控方式为HCI的流控机制。具体流控的底层实现由蓝牙芯片内部的HCI固件完成,在程序中只需要通过特定的HCI指令进行控制即可。实验测试表明,此系统可以完成

45、基本的无线数据传输功能,具有一定的实际应用价值。当然,系统还存在着一定的问题,比如说,连接建立成功后,在数据传输的过程中,蓝牙无线链路的质量可能会受到传输距离以及其他信号干扰的影响,从而导致一定程度的误码率;由于没有考虑数据包加密、链接鉴权等安全机制,因而实际应用中通信的保密性比较差等等,这些问题都有待后续工作的解决和完善。结 论实用、简单、人性化智能家居控制系统的研究与设计,已成为一项涉及自动化、计算机、通信、建筑等多学科交叉研究课题。设计的系统旨在为人们提供一种舒适、安全、高效、快捷、智能、时尚的生活,本文的研究成果主要为:尽管在本课题中基本实现了智能家居控制器的基本功能,本系统还存在如下

46、几个方面有待改进、扩展,应作为下一步工作的研究重点: (1)由于家庭只能怪的电磁环境越来越复杂,各种干扰都会对智能家居控制系统造成一定的影响,因此还需要对智能家居控制系统的可靠性、安全性做进一步的测试和验证。 (2)只涉及到对智能家居控制系统的现场控制,在接下来的工作小红,需要研究如何通过互联网实现对智能家电进行远程控制。致 谢 本毕设是在导师夏欣老师的亲切关怀和悉心指导下完成的。衷心感谢夏老师在我大学学习生活上的照顾。他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。在此谨向夏老师致以诚挚的谢意和崇高的敬意。感谢在课题研究和完成学位论文中给予了指导和帮助的所有同学和

47、老师,在此表示真诚的感谢!最后,特别感谢理学院各位老师的辛勤培育,向所有给予关心、支持的亲人和朋友表示诚挚的谢意!参考文献1闰文婷基于蓝牙技术的数据传输的研究与实现【D】南京理上大学20042邓荣华,范赣军基于BlueCore2External蓝牙芯片的USB接口的设计和实现3吴雪琴基于蓝牙技术的计算机间通信【D】两北T业大学4杨战社基丁蓝牙技术的数据传输【D】西安科技人学5童长飞CS051F系列单片机开发与C语言编程【M】-J匕京J匕京航空航天大学出版社20056Bluetooth SIG Specification of the Bluetooth system 7Ericsson Microelectronics.ROK101008 Bluetooth Module Data Sheet.

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服