《基于蓝牙模块的智能家居网络设计38euml.docx》由会员分享,可在线阅读,更多相关《基于蓝牙模块的智能家居网络设计38euml.docx(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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)分析 2.3.1 HCI概述主机控制器接口(HCI)处于蓝牙协议栈的中间层,它提供了蓝牙主机访问蓝牙主机控制器的基带与链路控制器、链路管理器、状态寄存器等硬件的统一接口。蓝牙主机控制器(Bluctooth Host Controller)是蓝牙芯片的主要组成部分,其内部硬件结构如图22所示。链路控制器提供了蓝牙基带功能以及物理层协议的硬件和软件实现;CPU核提供了链路管理器和链路控制器的固件部分的运行环境,使得主
23、机控制器可独立于主机进行查询和过滤呼叫请求。图2.2蓝牙主机控制器内部硬件结构图硬件方面,主机控制器集成了无线电收发器、基带控制器、Flash存储器等部分,其中基带控制器大多是以ARM为基础的芯片,通过接口控制无线电收发器,提供物理接H(USBUARTPCM等)。蓝牙模块通过这些接口与主机上对应的接口相连接,构成蓝牙系统的硬件连接。HCI就是基于这些物理接口定义相应的传输层实现主机与主机控制器间的数据交换。两个蓝牙设备通过HCI层进行数据传输的过程如图2.3所示。图2.3蓝牙设备通过HCI层数据传输过程 2.3.2 HCI传输层HCI传输层是指在蓝牙主机与主机控制器间相连的物理接口,它介于主机
24、控制器驱动程序和主机控制器之间,主要目的是实现传输的透明性,即从蓝牙模块外看HCI看到的是HCI传输层,物理总线是屏蔽的,从而使得HCI固件能在不影响传输层的情况下升级。2.3.3 HCI分组格式HCI提供了蓝牙主机与蓝牙主机控制器交换信息的接口,这些信息以分组的形式进行交互。主机可以向主机控制器发送HCI指令分组、ACL数据分组和SCO数据分组;主机控制器可以向主机返回HCI事件分组、ACL数据分组和SCO数据分组。如图2.4所示即为各HCl分组的流向示意图。图2.4 HCl分组流向示意(1)HCI指令分组HCI指令分组用于从主机向主机控制器发送指令。HCI指令分组的格式如表2.1所示。表2
25、.1 HCI指令分组格式HCI指令分组由操作码,参数长度和指令参数列表组成。 (2)HCI事件分组主机向主机控制器发送指令分组以后,主机控制器就会返回相应的事件分组,其中携带有指令的执行情况以及相关联的信息。主机必须具有接收255字节的HCI事件分组的能力,其中还不包括HCI事件分组头。HCI事件分组的格式如表2.4所示。表2.2 HCI事件分组格式HCI事件分组由事件码、参数长度和事件参数列表组成事件码(Event Code)大小为1字节,用于唯一地标识事件的类型,取值范围为0x00-0xff。参数长度以字节度量。事件参数列表存放了与相对应的指令关联的返回事件参数,大小一般为8的倍数。(3)
26、HCI数据分组HCI数据分组用于在主机和主机控制器之间交换数据。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.
29、3所示。处于模块底层的是无线层(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
30、一Thumb为基础的的芯片,通过接口控制无线电收发器的运行。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所示。图
31、3.5 爱立信监牙模块ROK 101 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米左右。蓝牙技术非常适合耗电量低的数码设备相互分享数据,如手机、掌上电脑等。蓝牙
32、规范中广为应用的成熟版本为1.1、 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公司的一种
33、与8051兼容的高速SOC单片机,它具有高速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个通用的
34、16位定时器;具有6个捕捉比较模块的可编程计数器定时器阵列;FLASH存储器具有在系统中重新编程能力,可用于非易失性数据存储,并允许现场更新固件;片内JTAG调试电路允许非侵入式(不占用片内资源)、全速、在系统测试;可在工业温度范NI(45C一+85。c)N用27V36V的电压工作。C8051F120为100脚TQFP封装。4.1.2 单片机与蓝牙模块的连接单片机与蓝牙模块的硬件连接比较简单, 其原理如图4.1所示:图4.1单片机C8051F120通过UART连接蓝牙模块示意图图中的、分别标出了连接中需要注意的3个地方。数据线和信号线单片机C8051F120具有两个UART,在此选用UART0
35、。在编程时候可通过交叉开关设置,将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
36、;ON信号控制内部电压稳压器导通或关断。将Vcc、Vcc io和ON连接在一起使用时,不需要考虑蓝牙模块的加电顺序;否则,则要严格按照“GNDVetONVcc io”的顺序加电,断电时候顺序相反。在此处采用前者,将Vet、Vcc io和ON一起连接到33V的外部电源上。蓝牙模块天线蓝牙模块ANT管脚连接到50欧的天线,天线的电压驻波比小于2:1。在本课题的实验板的设计中,单片机和蓝牙模块是焊接在一个PCB板上的。由于蓝牙模块采用平面封装,而且引脚很密集,要想直接焊接到PCB板上很困难,而且天线也很难焊接上去。因而自行设计了一个辅助电路板,先将蓝牙模块焊接到此辅助电路板上,然后将要用到的蓝牙模块
37、的部分引脚引出来,通过插座将蓝牙模块连接到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系统下,系统会自动装载蓝牙适配器驱
38、动程序,因为在此是要开发自己的基于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 单片机与家用电器的连接家用电器控制模块其主要功能是根据接收系统中心控制模块的命令,以控制电视机开关为例,将控制电视机开关的单片机引脚设
39、定为p13,当该引脚为高电平时继电器吸合,电视开,当为低电平时继电器断开,电视机关。电路图如图4.34.5 家电控制电路原理图C8051F120收到中心控制器发送的控制信号后P1.3引脚变为高电平,当光耦合器导通,呆滞继电器吸合,给信息插座通电,从而接通家用电器。当有警情是P1.4和P1.5变为高电平,单片机则通过TXD和RXD发送报警信号,当蓝牙模块输出到中心控制器。 在上述电路中电阻R1的选择至关重要,他影响着2N45开通与关闭的性能。R1较小时,可减小开关时间与开关损耗,R1较大时则相反。一般根据产品手册上提供的数据作为参考,在参考值(48欧姆)的1倍到10倍见选取,在这里选取5倍的参考
40、值,即240欧姆。4.3 系统电源模块原理图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、
41、C9滤波,然后通过LM78L05将电源稳压至5V.图4.7 5V供电原理图 SPX1117M是Sipex公司生产的LDO芯片,其特点是输出电流最大,输出电压高,稳定性好。其输出蒂娜刘可达到800MA,输出电压的精度在+-1%以内还具有电流限制和热保护功能,被广泛用于手持设备、数字家电和工控领域第五章 系统软件设计系统的软件设计分为单片机端软件设计和PC端软件设计两大块。5.1 单片机端软件设计单片机端软件采用嵌入式C语言的编程,开发环境为Keil,在本设计中只需完成蓝牙基本数据传输即可。此部分软件包括初始化、蓝牙交互、处理数据三个部分。初始化包括系统初始化和蓝牙初始化。系统初始化包括系统时钟初
42、始化、管脚分配、串口初始化、定时器初始化等,蓝牙初始化是通过UART给蓝牙模块发送一系列初始化指令,蓝牙模块返回事件,交互完成一系列的复位、鉴权、读地址等初始化操作。蓝牙交互就是初始化完成后,若本地蓝牙作从设备,则等待远端蓝牙设备的建链请求,如果接受请求,则继续等待建链成功,获得一个连接句柄,从而即可进行数据交换;若本地蓝牙作主设备,则进行一系列主动查询、建链、发送数据、断链等操作。处理数据就是将有效数据转存到相应位置等一系列后续操作。需要注意的是,在程序的主循环中,需要实时判断串口接收缓冲区是否有数据,有数据则调用HCI状态机进行处理。程序流程如图51所示。图5.1单片机端蓝牙基本数据传输模
43、块程序流程图系统时钟初始化用来设置和启动系统时钟。在这里采用外部24M外部振荡器提供系统时钟。首先使能24M外部晶振并等待外部晶振就绪,然后利用PLL将其倍频为96M作为系统时钟。管脚分配用来将UART0的TX和RX分配到管脚p0O和p01,并将pO0设为输出模式、p01设为输入模式。串口初始化调用单片机UART接12函数uart_rest0、uart_init0实现,其中uart_initoqb涉及具体单片机寄存器的操作包括设置UART0工作模式、设置定时器、设置波特率等。定时器初始化部分实现对定时器1初始化和启动,定时间隔为lOms。在系统初始化完成之后,就需要开始对蓝牙设备进行操作。对蓝
44、牙设备的操作需要构造一个蓝牙HCI设备控制结构体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_
45、 flags,标识查询和连接状态。图5.2 蓝牙HCl控制结构体hcidev数据结构图因为此系统中只有一个单片机只与一个UART0相连的蓝牙模块,即蓝牙HCI设备是唯一的,因此此结构体应该定义为全局变量并且整个程序运行空间内只允许定义一个,为便于讨论,假设定义此变量为hd,即:蓝牙初始化包括蓝牙HCI复位、蓝牙参数设定和蓝牙一系列初始化指令的发送。蓝牙HCI复位主要完成对hd各项默认值的设置,包括将hdhdinfo中的acl_ num和acl一1en全置0,cmdnum置1,以防止蓝牙读缓冲区大小指令ReadBufferSize执行失败后得到未定义的值;将hdhdcon中的constatus的
46、值赋为NOT CONNECTED,将con handle的值设为1等等;蓝牙参数设定通过对hdhd set相应参数直接赋值实现,可根据具体需要进行不同的设置;蓝牙初始化指令的发送是蓝牙设备初始化的关键。在此可调用蓝牙HCI指令接口完成。至于具体需要哪些指令来进行初始化,可根据需要增减,但有一些指令是必备的。在此提供两个初始化指令集合initl和init2,其中bt init necessary为强制性、必备的指令集,bt_init_optional是非强制性、可选的指令集,见表51。调用HCI指令接口函数时需要传入相应参数列表结构体,结构体各项的参数值从已设定的hdhd set中提取。各指令之
47、间最好是加25ms的延时,在保证前一条指令执行成功后才发送下一条指令。指令包的流控由hdhd infocmd num控制。表5.1 初始化指令集在进入蓝牙基本数据传输实验项目之前,设置了一个标志位bt role,用户可选择本地蓝牙的角色即是作为主设备还是从设备进入实验。不管是作为主设备还是从设备,蓝牙初始化部分是相同的。 初始化完成以后,本地蓝牙作主设备时,首先要主动发起查询,查询到远端蓝牙设备之后,要主动发起连接,连接建立以后,数据可以在本地蓝牙和远端蓝牙之间进行传输,既可由本地蓝牙发往远端蓝牙,也可由远端蓝牙发往本地蓝牙。本地蓝牙作从设备时,循环等待远端蓝牙的连接请求,收到连接请求事件以后,通知用户决定是否接受此次连接请求。若接受,则发送HCI Accept _Connection,若拒绝,则发送HCI_ reject_ connection_ request。单片机端和PC端之间的蓝牙连接建立完成后,就可以在两者之间进行数据的传输了。由于单片机端不支持数据输入,因而本系统采用PC端录入数据,向单片机端发送,单片机端接收到数据后。这就涉及到数据的检测和处理。HCI状态机在检测到ACL数据分组到来后经过一系列的处理,将实际所传数据存储在一个数据接收缓冲区里,主机对标志