登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 电子信息类 > 信息工程 > 正文

基于安卓的蓝牙键盘设计毕业论文

 2020-03-23 09:03  

摘 要

蓝牙技术因其具有短距离、开放性、低功耗、对人体安全影响不大等优点,常用于无线蓝牙键盘的设计。本课题设计一个用于安卓手机的蓝牙键盘,在安卓手机上使用蓝牙键盘,不仅不受传统连线的牵制,它还不占用手机的任何USB插口,使用它时手机仍然可与U盘、电源等外设相连接,同时用于文本编辑的速度得到提升。本次课题设计采用nRF51822芯片作为蓝牙的主控芯片,基于HID协议完成键盘与手机之间的连接,实现了蓝牙键盘控制安卓手机输入。本次蓝牙键盘设计的硬件部分采用nRF51822蓝牙芯片,键盘输入的编码信息通过蓝牙芯片的处理后传输到安卓手机端。软件部分采用nRF51822的SDK代码,选择Keil作为开发平台,同时安装nRFGo Studio用于向nRF51822芯片中烧写BLE蓝牙协议栈。使用Jlink调试器,并安装好驱动,用于连接电脑与蓝牙芯片之间进行烧录。本次设计是在BLE HID规范协议的基础之上,提出了硬件与软件解决方案,实现了蓝牙的应用。

关键词:蓝牙键盘;nRF51822蓝牙芯片;HID协议

Abstract

Bluetooth technology is often used in the design of wireless Bluetooth keyboard because of its advantages of short distance, openness, low power consumption and little impact on human security. This topic designs a Bluetooth keyboard for Android mobile phone, and uses a Bluetooth keyboard on a Android phone. It is not only unaffected by the traditional connection, but it does not occupy any USB socket of the mobile phone. It is still available when using it. It is connected with the U disk and power supply, and the speed of text editing is improved. This subject is designed to use the NRF51822 chip as the main control chip of Bluetooth. The connection between the keyboard and the mobile phone is completed based on the HID protocol, and the Bluetooth keyboard control Android mobile input is realized.The hardware part of the Bluetooth keyboard design uses nRF51822 Bluetooth chip. The encoding information of the keyboard input is transmitted to the Android mobile terminal after the processing of the Bluetooth chip. The software part uses the SDK code of nRF51822, selects Keil as the development platform, and installs the nRFGo Studio to write the BLE Bluetooth protocol stack to the nRF51822 chip and uses JlInk debugger and install the driver to burn between the computer and the Bluetooth chip.This design is based on the BLE HID specification protocol, proposes the hardware and software solution, realizes the application of Bluetooth.

Key Words:Bluetooth Keyboard ;nRF51822 Bluetooth Chip;hid Protocol

目录

摘 要 I

Abstract II

第1章 绪论 1

1.1课题的背景及意义 1

1.2蓝牙技术发展前景 1

1.3研究内容与研究计划 2

第2章 原理 3

2.1 蓝牙协议概述 3

2.2 BLE HID简介 5

第3章 硬件设计 9

3.1 总体方案设计 9

3.2 蓝牙芯片的选取 9

3.3 矩阵键盘设计 10

3.3.1键盘基础知识 10

3.3.2 矩阵键盘工作原理 10

3.4 键盘设计原理 11

3.5 nRF51822芯片原理 12

4 软件设计与调试 13

4.1蓝牙键盘设计总流程图 13

4.2系统初始化 14

4.2.1定时器初始化 14

4.2.2按键初始化 14

4.2.3协议栈初始化 15

4.3蓝牙芯片初始化 15

4.4按键扫描与消抖 16

4.4.1键盘扫描流程 16

4.4.2按键消抖 17

4.4.3报告描述符 18

4.5 调试 19

4.5.1烧录过程 19

4.5.2调试过程中遇到的问题 21

5总结与展望 22

参考文献 24

致谢 25

第1章 绪论

1.1课题的背景及意义

随着计算机网络和移动电话技术的不断发展。蓝牙技术作为一种新型的连接各种固定设备与移动数字化硬件设备的方法,在实际应用中逐渐取代了传统的电缆连接。目前安卓大屏幕的手机十分流行,不仅观看视频时舒服的多,甚至还用于文字编辑。当然用于后者时最好配有实体键盘[1]。传统的无线键盘虽然可用于手机的各种输入法、各种编辑软件,适用性非常强,但是必须手机的小USB口上通过OTG线插入无线键盘接收器,使得手机无法再与U盘、电源等外设相连[2]。最近在安卓手机上使用蓝牙键盘,不仅不受连线牵制,它还不占用手机的任何USB插口,使用它时手机仍然可与U盘、电源等外设相连接,同时用于文本编辑的速度得到提升[4]

蓝牙技术与NFC、wifi技术都是当下流行的无线通信技术,蓝牙技术在键盘、鼠标和智能穿戴等的应用中得到人们的认可[5]。蓝牙传输速率最大可达1Mbps,但在实际传输速率过程中只有721Kbps,其传输距离最大为10米,不过可以通过增加发射功率使其传输距离达到100米左右,这是目前技术所能达到的极限距离[3]。蓝牙技术拥有低功耗的特点,在消费电子产品的应用广泛,如PDA、电脑、手机等。蓝牙键盘无疑是我们打字时实用的使用工具[6]

目前蓝牙技术仍面临着其他技术带来的巨大挑战,比如NFC和WIFI技术[8,9]。NFC比蓝牙更方便,只需支持NFC的两个设备轻轻触碰一下就可以立即连接,特别适合点距离点对点传输,省去了蓝牙配对的麻烦,但也恰恰成为了NFC的缺点,只有达到4厘米左右的接触才可以实现连接,而蓝牙最大可达100米,所以NFC目前对蓝牙构不成很大的威胁[7]。NFC,WIFI最高250Mbps的传输速率,是蓝牙技术所不能达到的,这也是WIFI目前大量运用的一大原因。但蓝牙也有一项天然优势,那就是低能耗,这也是WIFI的最大弊端,因此它不适合于需要低能耗的设备,这样看来蓝牙的前景还是很乐观的,在短期看来,WIFI仍然作为蓝牙的补充而出现,蓝牙的主体地位不变[11]

1.2蓝牙技术发展前景

蓝牙技术目前在我国应用的领域主要是手机、PC等,在未来的市场上,除了这些蓝牙产品外,根据我国的各方面大发展情况,它在以下三个方面具有巨大潜力[12]。分别是,工业领域、现代电子医疗、智能穿戴等方面。近几年来,随着蓝牙技术的高速发展,为智能穿戴行业的发展提供了高的推动力[13]。蓝牙产品拥有体积小、成本低、功耗小等特点,能长期使用小电池供电,并为能够省电省流量的产品设备提供了完美解决方案,蓝牙可穿戴设备不仅能够与智能手机进行通信,还能够在蓝牙产品之间互相通讯,也可以与互联网进行通讯。可见,可穿戴设备的智能化设计、开发和管理对蓝牙技术的发展有着重大意义[15]

蓝牙技术现在已经趋于成熟,但是对于现在的蓝牙技术来说,在兼容性上还是有所欠缺。所以蓝牙技术在日后的优化过程中要着重优化兼容性,现在的蓝牙技术在移动设备,例如手机、平板电脑和笔记本电脑等等中比较兼容,在固定设备中例如台式电脑中也有一部分的可兼容性[6]。但是在现实生活中,还有很大一部分设备蓝牙技术没有兼容,尤其是汽车、加油站,火车站等人流密集处更应该让蓝牙技术实现兼容[14]。所以由此可以看出,这也是蓝牙技术未来应该实现优化的一个方向。当然实现技术性的同时,基本硬件的成本预算还要在一定的范围内,满足更多人的日常需求。

1.3研究内容与研究计划

本次设计需要设计一个用于安卓手机的蓝牙键盘,在熟悉蓝牙通信的基本原理及其相关协议的基础上,完成硬件设计与软件设计。实现键盘与手机通讯并能实现在安卓手机上进行文字输入的功能。蓝牙键盘硬件设计部分包括:蓝牙芯片的选用、矩阵键盘设计、蓝牙键盘设计原理、nRF51822芯片原理。软件设计部分包括:总流程设计、系统初始化、蓝牙芯片初始化、按键扫描过程、按键去抖。系统的基本结构图如图1.1所示。

图1.1 系统基本结构图

第2章 原理

2.1 蓝牙协议概述

蓝牙技术作为一种传输距离短、功耗低、对人体风险小的无线通信传输技术,可以与移动电话端、笔记本电脑、无线耳机、平板等众多具有无线通信功能的设备之间进行信息交换。通过蓝牙技术,能够方便快捷的与移动通信终端设备之间的数据交换,也可以成功地简化设备与因特网之间的数据传输,从而使通信过程变得更加快捷高效,为无线通信拓宽了道路。蓝牙采用的网络结构是分散式网络结构,采用短包技术和快跳频技术,蓝牙支持点对点通信和点对多点通信,蓝牙工作在全球通用的2.4GHz ISM频段。其数据速率通常为1Mbps。蓝牙技术采用时分双工传输实现全双工传输方案。

蓝牙的体系组成分为无线射频单元(Radio)、基带或链路控制单元(LinkController)和链路管理单元(LinkManager)。无线射频单元的功能是用来用于管理数据的发送和接收,具有短距离、低功耗的优点。蓝牙天线属于微带天线,具备重量轻、体积小的优点。基带或链路控制单元的功能是用来处理数字语音和射频信号之间的互相转化,还可以用于实现基带传输协议和其它的底层连接规程。链路管理单元用于管理蓝牙设备之间的通信,用于实现链路的建立、验证、链路配置等操作。

蓝牙协议栈的分层如图2.1所示,由图可以看出协议栈分为:物理层、链路层、逻辑链路控制与适配层、安全协议、属性协议、访问配置、属性配置、应用程序配置和服务,在实际的开发中我们需要关心的只有最上面的应用程序配置和服务层,其余的几层,芯片出厂时就已经封装好。

HOST

通用属性配置文件

通用访问配置文件

属性协议

安全协议

逻辑链路控制与适配层协议

Controller

链路层

物理层

图2.1蓝牙协议栈

 

通用访问配置文件( GAP)

通用访问配置文件是其他全部蓝牙配置文件的根本,它主要讲解了在蓝牙设备之间建立基带链路的通用方法。GAP讲解了一部分能够使用GAP配置文件和实施多个配置文件的设备调用它的通用的操作。通用访问配置文件确保了两个蓝牙设备之间可以通过蓝牙技术来进行信息的交换,来发现设备双方共同支持的应用程序。所有的蓝牙设备都需要与通用访问配置文件相符合。

服务发现应用配置文件( SDAP)

服务发现应用配置文件是一种服务功能,它主要是用来让应用程序利用SDP发现远程设备的功能。基于GAP的基础上,所有的蓝牙设备都具有自主连接其他拥有蓝牙功能的设备。所有的蓝牙设备能进行发送/接收SDP功能都能与其他蓝牙设备相连接,SDAP能使用GAP的部分功能。

串行端口配置文件( SPP)

串行端口配置文件可以使两个蓝牙设备相连接,并定义了他们之间连接的方式,通过设置虚拟串行端口来完成,SPP可以完成商品串行仿真,在依靠RFCOMM协议的基础上,SPP同样依赖于GAP,他的数据率最高可到达128Kb/s。

通用对象交换配置文件( GOEP)

通用对象交换配置文件可以用来发送对象从一个设备到另一个地方,在那里可以是任意的对象,如图片、名片、文本、文档,等。GOEP是一个概要文件,他定义了两个角色,进行客户机启动操作或者提供服务器推或拉对象,GOEP依赖于GAP的定义来建立应用程序信道和链路。

图2.2蓝牙Profile

如图2.2所示蓝牙profile的结构图,从图中可以看出,蓝牙设备由多个Profile组成,每一个Profile又由多个Service,一个Service中含有多个Characteristic,而每一个Characteristic由一个value和两个或多个Descriptor组成。

通用属性规范(GATT)—通用属性 (GATT) 定义了一种面向蓝牙 BLE 设备的分层数据结构。GATT 建立在属性协议 (ATT) 之上,ATT 使用 GATT 数据来定义两个蓝牙低耗能设备之间发送和接收标准消息的途径。通用属性配置文件 (GATT) 规程定义了服务、特征及其描述符被发现、继而用于允许蓝牙低耗能设备传输数据的标准途径。该配置文件以 GATT 功能为基础,描述了用例、角色和一般性能。GATT 服务器存储通过 ATT 传输的数据,并接收来自 GATT 客户端的 ATT 请求、命令和确认。GATT 服务器发送请求的响应结果,并在 GATT 服务器发生特定事件时向 GATT 客户端发送异步指示和通知。

1.profile  

Profile是用来实现一种功能或一种应用的连接设备,profile属于应用层协议,同时也是蓝牙协议的一个重要特性,蓝牙规范需要存在于所有的蓝牙产品中,但不是蓝牙产品都需要所有的蓝牙规范,一些标准的蓝牙规范由国际蓝牙组织来规定。

  1. service 

Service可以理解为服务。在一个ble 主机和设备中,每个服务都包含多个特征特征值,通过提供多个服务,例如电力信息服务、系统信息服务等,每个特征特征值都是ble communication的主题。例如,当前的功率是80,所以功率的特征特征值存储在奴隶的配置文件中,这样主机可以通过这个特性读取80%的电量。

3.characteristic

特征值与主从机之间的通信是通过特征来实现的,特征可以理解为标签,通过标签可以获取或写入所需要的内容。

4.UUID

UUID是一种分布式的ID生成方式。每一种profile对应着一个或多个UUID。每一种service和characteristic都需要一个唯一的UUID来标识。

现在低功耗蓝牙(BLE)连接都是建立在 GATT (Generic Attribute Profile) 协议之上。GATT 是一个在蓝牙连接之上的发送和接收很短的数据段的通用规范,这些很短的数据段被称为属性(Attribute)。

2.2 BLE HID简介

HID设备通常指一些人机交互设备,常见的有鼠标,键盘,遥控器,智能小车等。设备与机器相连接的方式一般分为有线连接和无线连接两种方式,显然,HID设备属于无线连接,不需要USB接口,但低功耗蓝牙是在USB技术的基础上才能得以实现的。

蓝牙HID设备支持三种报告形式:输入报告,输出报告,特征报告。

Input Reports,输入报告

在低功耗蓝牙协议中,输入报告用于低功耗蓝牙设备发送数据给低功耗蓝牙主机。但在USB协议中,输入报告通常采用中断输入端点来传输数据,有时也采用由主机端使用控制端点来控制传输请求以获取数据,也就是说,主机端首先发送一个获取报告的命令,等待设备端回复输入报告后,主机端回复是否成功获取数据。

Output Reports,输出报告

在低功耗蓝牙协议中,输出报告用于低功耗蓝牙设备发送数据给低功耗蓝牙主机。但在USB协议中,输出报告通常采用中断输入端点来传输数据,有时也采用由主机端使用控制端点来控制传输请求以获取数据,也就是说,主机端首先发送一个获取报告的命令,等待设备端回复输出报告后,主机端回复是否成功获取数据。

Feature Reports,特征报告

在低功耗蓝牙中有数据的双向通道,既可以用来发送,又可以用来接收数据,而在USB协议中,想要进行数据的双向传输,需要通过控制断点来完成。主机端给设备发送一个获取报告的数据,或者可以发送数据到设备端。

HID Report Modes

boot protocol和report protocol是接受和发送的report有两种协议。蓝牙HID协议 是描述 report 如何在蓝牙HID主机和蓝牙HID设备之间传输的协议。而 boot protocol 和 report protocol 描述的是发送 report 时如何组织,接收 report 时如何解析的协议。

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图