基于蓝牙模块的智能家居网络设计

上传人:wan****21 文档编号:166830104 上传时间:2022-11-01 格式:DOC 页数:38 大小:1.71MB
收藏 版权申诉 举报 下载
基于蓝牙模块的智能家居网络设计_第1页
第1页 / 共38页
基于蓝牙模块的智能家居网络设计_第2页
第2页 / 共38页
基于蓝牙模块的智能家居网络设计_第3页
第3页 / 共38页
资源描述:

《基于蓝牙模块的智能家居网络设计》由会员分享,可在线阅读,更多相关《基于蓝牙模块的智能家居网络设计(38页珍藏版)》请在装配图网上搜索。

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

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

3、nd 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 combined into an org

4、anic 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 implement wireless com

5、munication 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 software interfa

6、ce 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 bluetooth and home

7、 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 implementedKeywords:

8、Bluetooth technology; smart home; Bluetooth moudule 目 录前 言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.1 下位机模块设计144.2PC

9、机与蓝牙模块的连接164.3 单片机与家用电器的连接174.3系统电源模块原理图17第五章 系统软件设计195.1 单片机端软件设计195.2 PC端软件设计24第六章 系统测试与分析29结 论31致 谢32参考文献33附 录34前 言随着科学技术的发展和人们生活水平的提高,人们越来越注重自己生活环境的舒适、安全与便利。近年来兴起的智能家居系统满足了人们的这种需求,它有效地在家居环境中组建家庭信息网络,将各种家电产品结合成一个有机整体,对家电设备进行集中或异地的智能化控制与管理,并且能够与外界进行信息交流。首先,在研究蓝牙 SPP 应用模型和我国家庭控制子网通信协议规范的基础上,经过比较当前各

10、种家庭内部组网技术的优劣,选择了基于蓝牙协议的家庭控制子网的实现方案。该方案使用蓝牙 SPP 模型来承载通用设备控制协议,降低了家庭控制子网组网过程中的难度,符合实际应用场景。其次,研究并提出了智能家居系统实现过程中处于核心地位的智能家居控制器的软硬件设计方案。在硬件方面,选用 Samsung 公司具有较高性价比的 ARM9 芯片 S3C2410 作为其 CPU,完成了智能家居控制器的电源、显示、输入、存储以及无线蓝牙和 GPRS 的模块的电路设计;在软件方面,成功地将 U-boot、嵌入式 Linux 内核和蓝牙协议栈 BlueZ 移植到了智能家居控制器目标板上,并在 Linux 内核中为系

11、统各个硬件模块添加了相应的驱动程序。最后,对蓝牙模块进行了测试,实现了蓝牙的点对点通信,并且为系统开发了部分常用的界面。对研究工作做了总结,列出了所实现的研究成果以及有待实现的智能家居控制系统的功能。第一章 绪 论1.1 课题研究背景智能家居,或称智能住宅,在英文中常用 Smart Home、Intelligent home,与此含义相近的还有家庭自动化(Home Automation)、电子家庭(Electronic Home、E-home)、数字家园(Digital family)、网络家居(Network Home),智能建筑(Intelligent Building)。智能家居是以住宅

12、为平台,兼备建筑、网络通讯、信息家电、设备自动化,集系统、结构、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境。智能家居是在家庭产品自动化、智能化的基础上,通过网络按拟人化的要求而实现的。智能家居可以定义为一个过程或者一个系统,利用先进的计算机技术、网络通讯技术、综合布线技术、无线技术、将与家居生活有关的各种子系统,有机地结合在一起。与普通家居相比,由原来的被动静止结构转变为具有能动智能的工具,提供全方位的信息交换功能,帮助家庭与外部保持信息交流畅通。智能家居强调人的主观能动性,要求重视人与居住环境的协调,能够随心所欲地控制室内居住环境。1.2 智能家居的发展状况智能家居从上世纪八十

13、年代兴起于日本和欧美,九十年代末引入中国,目前美国有7000万家庭依靠智能家庭网络设备生活。近年来,以美国微软公司及摩托罗拉公司等为首的一批国际知名企业先后进入智能家庭网络的研究及开发领域,分辨开发了“梦幻之家”、“家庭主任”、“居所之门”等家庭智能设备,3COM公司研发出家用无线网关等网络产品,并与Microsoft 联手开发通用式即插即用的家庭网络系统。该系统方便地连接家电与网络,可以高速传输文字、语音、视听等咨询。这套产品也适用于小型办公室。国内厂商也在进行智能化家庭网络产品的研发和生产,一大批大型IT企业利用自身在资金与技术等方面的优势,在低端市场上已占据了相当重要的地位。清华同方在智

14、能化家庭网络领域与建设部智能化专家委员会共同设立了智能住宅开放实验室,还取得了著名综合布线厂商西蒙、百通全线产品在中国的总代理资格。北京德达创先科技集团先后开发了LDM-2000,智能家居控制器、HomeNet网络化综合管理系统,并开通了中国智能建筑服务网络提供智能化建筑的在线咨询与在线技术支持该网站已成为国内建筑化领域的权威网站。1.3 未来智能家居的发展趋势如何使家居环境变得便利、舒适、人性化、智能化,真正提高人们的生活品质,才是智能家居系统的发展方向,其发展趋势主要有以下几个方面:(1) 向个性化方向发展 人们可以根据自己的需要和喜好,选择不同的功能,智能家居发展将不断满足人们要求个性化

15、的需求。(2) 向系统高度集成化方向发展 信息家电控制功能、呼叫对讲功能、自动化管理功能、安防监控功能、设备自检功能等多种功能将被集成在一起,统一调度,从而降低成本。随着科学技术的不断发展,系统的集成度将越来越高。(3) 向网络化方向发展 网络化是计算机、通讯、电子和物联网等多种技术发展的必然趋势,也是智能家居智能化的一个重要体现。(4) 向绿色环保方向发展 环保是全球的要求,智能家居如何利用现有技术减少功耗、降低对社区和家庭的环境污染,提高生活环境的质量,是智能化的一个重要目标。1.4 研究的目的和意义随着经济的发展和后 PC、物联网时代的到来,人们对自身居住环境的要求在不断地提高,智能化家

16、居将逐渐成为中国家居市场的主流。目前,在上海、北京、广州、深圳等经济比较发达的地区都已经建立了一批智能型住宅小区,并且正飞速地向其他地区辐射。智能家居将大大改变人们的日常生活和工作方式,带动传统家电制造业、房屋智能化装修、社区信息服务、以及房地产业等相关产业的蓬勃发展。家居智能化、建筑信息化以及相关技术产品正在得到飞速地发展,智能化家居将很快将会走入人们的生活。建设部已将智能化住宅小区列为国家重点发展方向,智能化小区包括了智能家居的设计,智能家居建设是智能小区建设的一部分。目前,国家已经投入了大量的财力和人力在设计和开发符合中国国情的智能家居,因此嵌入式智能家居项目的应用前景非常广阔的。但是,

17、由于智能家居市场的发展还处于初级阶段,智能家居的中的信息设备之间的通信还不是很规范。为此早在 2005 年,国家已经制定出了家庭网络系统体系结构及参考模型家庭控制子网通信协议规范、家庭控制子网通信协议规范等规范来推动和管理中国智能家居市场的健康地发展。智能家居控制器是智能家居的核心器件,人们只需一个控制器就可以控制家中的所有电器设备。本文主要研究了智能家居网络的组建,智能家居控制器的设计,这是智能家居实现过程中的重要内容,具有广泛的现实意义,为将来的智能家居提供了一种可行的设计方案。1.5 课题研究的内容主要通过使各种各样的智能家电都遵守蓝牙协议构建家庭控制子网,在完成智能家居控制器硬件与软件

18、设计的基础上,将控制器应用到了网络化的智能家居系统中。课题研究主要内容具体如下:(1)通信协议的选择 分析家庭内部网络的体系结构,对当前智能家居组网协议进行研究和比较,选定了一个符合家庭内部组网具体要求的通信协议。(2)智能家居控制器硬件的设计 首先,根据对智能家居控制器的具体要求例如功耗、成本、体积等,为其选择一个性价比比较高的 CPU;然后,分别对其余各个功能模块进行硬件电路的设计与调试。(3)智能家居控制器软件的设计。给出软件流程框图,包括运行在单片机和PC机上程序,本论文中均采用C语言进行编写第二章 蓝牙技术介绍2.1 蓝牙系统组成典型的蓝牙系统可分为5个单元,即无线射频单元、链路控制

19、单元、链路管理单元、蓝牙协议软件单元和主机应用软件单元。(1)无线射频单元蓝牙是以无线LAN的IEEE80211标准技术为基础的,使用24GHz ISM全球通自由波段。蓝牙天线属于微带天线,空中接口建立在天线电平为0dBm基础上,遵从FCC(Federal Communications Commission,美国联邦通信委员会)有关OdBm电平的ISM频段的标准。由于采用扩频技术,发射功率可以达到100mW。系统最大跳频速率为1600跳秒,在2402GHz和2480GHz之间,采用79个间隔为1MHz的频点来实现【31。系统设计通信距离为10cm10m,如增大发射功率,其距离可长达100m。(

20、2)链路控制单元蓝牙的链路控制单元,又称基带单元,包括3个集成芯片:连接控制器、基带处理器以及射频传输接收器,此外还使用了35个单独调谐元件。综述链路控制单元描述了基带链路控制器的数字信号处理规范。基带链路控制器负责处理基带协议和其它一些低层常规协议。链路控制单元的主要功能包括:建立物理链路及网络连接,包括面向连接的同步链路SCO(Synchronous Connection Oriented)链路、 异步链路ACL(Asynchronous Connectionless)链路及匹克网;差错控制;在物理层提供验证和加密,其中验证基于“请求响应”运算法则实现,为用户建立一个个人的信任域,而加密则

21、用来保护连接中的个人信息。(3)链路管理单元链路管理器LM(Link Manager)软件模块设计了链路的数据设置、鉴权、链路硬件配置和其它一些协议。链路管理器能够发现其它蓝牙设备的链路管理器,并通过链路管理协议LMP(Link Mallager Protoc01)建立通信联系。链路管理器提供诸如发送和接收数据、设备号请求、链路地址查询、建立连接、鉴权、链路模式协商和建立、设备模式的切换等功能。2.2 蓝牙协议栈蓝牙协议栈体系结构为分层结构,具体如图21所示。图2.1蓝牙协议栈体系结构 蓝牙技术规范的目的是使符合该规范的各种应用之间能够实现互操作15J。互操作的远端设备需要使用相同的协议栈,不

22、同的应用需要不同的协议栈。并不是任何应用都必须使用全部协议,而是可以只使用其中的一层或多层。但是,所有的应用都要使用蓝牙技术规范中的数据链路层和物理层。2.3 蓝牙控制器接口(HCI)分析 HCI概述主机控制器接口(HCI)处于蓝牙协议栈的中间层,它提供了蓝牙主机访问蓝牙主机控制器的基带与链路控制器、链路管理器、状态寄存器等硬件的统一接口。蓝牙主机控制器(Bluctooth Host Controller)是蓝牙芯片的主要组成部分,其内部硬件结构如图22所示。链路控制器提供了蓝牙基带功能以及物理层协议的硬件和软件实现;CPU核提供了链路管理器和链路控制器的固件部分的运行环境,使得主机控制器可独

23、立于主机进行查询和过滤呼叫请求。图2.2蓝牙主机控制器内部硬件结构图硬件方面,主机控制器集成了无线电收发器、基带控制器、Flash存储器等部分,其中基带控制器大多是以ARM为基础的芯片,通过接口控制无线电收发器,提供物理接H(USBUARTPCM等)。蓝牙模块通过这些接口与主机上对应的接口相连接,构成蓝牙系统的硬件连接。HCI就是基于这些物理接口定义相应的传输层实现主机与主机控制器间的数据交换。两个蓝牙设备通过HCI层进行数据传输的过程如图2.3所示。图2.3蓝牙设备通过HCI层数据传输过程 HCI传输层HCI传输层是指在蓝牙主机与主机控制器间相连的物理接口,它介于主机控制器驱动程序和主机控制

24、器之间,主要目的是实现传输的透明性,即从蓝牙模块外看HCI看到的是HCI传输层,物理总线是屏蔽的,从而使得HCI固件能在不影响传输层的情况下升级。 HCI分组格式HCI提供了蓝牙主机与蓝牙主机控制器交换信息的接口,这些信息以分组的形式进行交互。主机可以向主机控制器发送HCI指令分组、ACL数据分组和SCO数据分组;主机控制器可以向主机返回HCI事件分组、ACL数据分组和SCO数据分组。如图2.4所示即为各HCl分组的流向示意图。图2.4 HCl分组流向示意(1)HCI指令分组HCI指令分组用于从主机向主机控制器发送指令。HCI指令分组的格式如表2.1所示。表2.1 HCI指令分组格式HCI指令

25、分组由操作码,参数长度和指令参数列表组成。 (2)HCI事件分组主机向主机控制器发送指令分组以后,主机控制器就会返回相应的事件分组,其中携带有指令的执行情况以及相关联的信息。主机必须具有接收255字节的HCI事件分组的能力,其中还不包括HCI事件分组头。HCI事件分组的格式如表2.4所示。表2.2 HCI事件分组格式HCI事件分组由事件码、参数长度和事件参数列表组成事件码(Event Code)大小为1字节,用于唯一地标识事件的类型,取值范围为0x00-0xff。参数长度以字节度量。事件参数列表存放了与相对应的指令关联的返回事件参数,大小一般为8的倍数。(3)HCI数据分组HCI数据分组用于在

26、主机和主机控制器之间交换数据。HCI数据分组分为ACL数据分组和SCO数据分组两类,各自有不同的格式,在此只讨论ACL数据分组格式。HCI ACL数据分组用于在主机与主机控制器间进行异步链路的数据交换,它的分组格式如表2.5所示。表2.3 HCIACL数据分组格式第三章 设计方案及模块介绍3.1 蓝牙家居控制系统组成结构基于蓝牙技术的智能家居系统,其硬件组成主要包括蓝牙模块、MCU、PC及受控设备等组成。总体构成如图3.1所示。结构框图中前半部分为中心控制部分,主要由PC机、蓝牙无线收发模块组成;后半部分为多个受控单元,主要由受控电器、单片机、蓝牙模块组成。在受控单元中,蓝牙模块和单片机之间通

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

28、时支持数据和语音的传输,输出功率满足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所示。处于模块底层的是无线层(R

29、adio)和基带)县(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为基础的的芯片,通过接

30、口控制无线电收发器的运行。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 10

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

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

33、核、灵活的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个捕捉比较模块的可编程计数器定时器阵

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

35、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信号控制内部电压稳压器导通或关断。将Vcc、Vcc io和O

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

37、牙模块的装卸变得很方便。辅助电路板引出的管脚有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系统下,系统会自动装载蓝牙适配器驱动程序,因为在此是要开发自己的基于HCI层的应用程序,而自动安装的

38、驱动程序是针对高级应用开发的,覆盖了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,当该引脚为高电平时继电器吸合,电视开,当为低电平时继电

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

40、制器的内核和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将电源稳压至5V.图4.7 5V供

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

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

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

44、牙设备操作的复杂性造成此结构体也相对复杂,具体如图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,标识查询和连接状态。图5.2 蓝牙HCl控制结构体h

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

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

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

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

49、以控制电视机开关为例:设定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_bt_role) 若由PC机发送数据

50、,单片机接收数据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=DISCONNECTION_COMP)hc

51、i_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是由“通用串行总线实施论坛”组织公开发布推广的一种串行接口标准。蓝牙没有为USB接口开发新的协议,而是使用已

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

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

54、RT传输层那样在分组前面加分组指示器。软件流程图如图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标识当前的蓝牙设备,如图5.4所示图

55、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事件分组和ACL事件分组蓝牙设备打开以后,要对蓝

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

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

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

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

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

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

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

63、步工作的研究重点: (1)由于家庭只能怪的电磁环境越来越复杂,各种干扰都会对智能家居控制系统造成一定的影响,因此还需要对智能家居控制系统的可靠性、安全性做进一步的测试和验证。 (2)只涉及到对智能家居控制系统的现场控制,在接下来的工作小红,需要研究如何通过互联网实现对智能家电进行远程控制。致 谢 本毕设是在导师夏欣老师的亲切关怀和悉心指导下完成的。衷心感谢夏老师在我大学学习生活上的照顾。他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。在此谨向夏老师致以诚挚的谢意和崇高的敬意。感谢在课题研究和完成学位论文中给予了指导和帮助的所有同学和老师,在此表示真诚的感谢!最后,特别感谢理学院各位老师的辛勤培育,向所有给予关心、支持的亲人和朋友表示诚挚的谢意!参考文献1闰文婷基于蓝牙技术的数据传输的研究与实现【D】南京理上大学20042邓荣华,范赣军基于BlueCore2External蓝

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!