2022年2022年蓝牙通讯程序设计 .pdf
《2022年2022年蓝牙通讯程序设计 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年蓝牙通讯程序设计 .pdf(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 通信原理课程设计课题:蓝牙通信程序设计学号:084221033 姓名:名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 16 页 -2 蓝牙通信程序设计目录蓝牙通信程序设计.2目录 .21.引言:.3课题背景及意义.32.蓝牙技术与蓝牙系统结构简介:.32.1 蓝牙技术简介.32.2 蓝牙协议(HCI)介绍.32.3 蓝牙系统结构简介.52.4 MT1020A 基带控制器和PH2401无线收发器介绍.53.USB蓝牙适配器介绍.74.Visual Stdio 2008环境下的PDA Windows应用程序设计.84.1 MT1020A 端的软件设计.84.1.1初始化.84.1
2、.2 蓝牙交互.84.1.3 处理数据.94.2 PDA 端的软件设计.114.2.1配置资源参数.114.2.2 打开串口资源.124.2.3 PDA 通信读写操作.134.2.4关闭串口.144.3 PC 端的软件设计.144.3.1 驱动程序流程图.144.3.2 蓝牙适配器驱动程序接口函数的调用.155.VS 2008环境下 Windows 应用程序的封装与PDA上应用程序的安装和调试.16 6.结束语 .16 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 16 页 -3 1.引言:课题背景及意义随着微电子技术、通信技术和计算机技术的发展,计算机发展已经进入移动时代。以
3、掌上电脑(PDA)为代表的移动式计算系统已日益普及。特别是工业高度发展的今天,对工业现场的通信与数据实时处理要求越来越高。在环境恶劣与布线不便的工业场所,设备间无线通讯与 PDA辅助处理成了工业现场的最佳选择。蓝牙是一种低成本、高可靠性的无线传输技术,蓝牙通信是实现PDA与工业接入点通信的首要环节。蓝牙技术是用微波无线通信技术取代数据电缆来完成点对点或点对多点短距离通信的一种新型无线通信技术。而蓝牙芯片则是蓝牙技术的基础和关键。2.蓝牙技术与蓝牙系统结构简介:2.1 蓝牙技术简介蓝牙是一种支持设备短距离通信(一般10m 内)的 无线电 技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关
4、外设等众多设备之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信 终端设备之间的通信,也能够成功地简化设备与因特网Internet 之间的通信,从而数据传输变得更加迅速高效,为无线通信 拓宽道路。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段。其数据速率为1Mbps。采用时分双工传输方案实现全双工传输。截止2009 年 4 月,蓝牙共有五个版本V1.1/1.2/2.0/2.1/3.0。以通讯距离来在不同版本可再分为Class A(1)/Class B(2)。蓝牙2.2 蓝牙协议(HCI)介绍蓝牙
5、SIG 开发了蓝牙协议规范,已发布版本包括1.0,1.0b,1.1 和 2.0。蓝牙协议规范允许开发人员开发基于可互操作的无线模块和数据通信协议的交互式服务和应用,目的是使符合该规范的各种应用之间能够实现互操作。蓝牙协议栈体系结构如图1 所示。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 16 页 -4 蓝牙 1.0 标准由两个文件组成。一个是核心部分(FoundationCore),它规定的是设计标准。另一个叫协议子集部分(FoundationProfile),它规定的是运作性准则。蓝牙协议可以分为4 层,即核心协议层、电缆替代协议层、电话控制协议层和采纳的其它协议层。由于篇
6、幅的限制,本文只介绍核心协议。蓝牙的核心协议包括基带(baseband)、链路管理(LMP)、逻辑链路控制与适应协议(SDP)等四部分。基带层:蓝牙采用跳频扩频技术,每秒 1600 跳,从时间域看即每个时隙长度是625s,即每个时隙从79 个信道中选择一个。蓝牙既支持电路型数据,也支持分组型数据;既支持点对点连接,也支持点对多点连接。在一个微微网络(Pieconet)中,一个单元作为主节点,其他作为从节点,最多可以有7 个从节点;但是允许有更多从节点与主节点保持在Park 状态。从节点对信道的接入由主节点控制。微微网络在覆盖上可以有重叠:每个网络有各自的跳频方案,一个网络的主节点可以同时作为另
7、一个网络的从节点;一个从节点可以属于多个网络。主节点向从节点发送数据只能占用偶时隙,反之从节点只能在奇时隙才能向主节点发送数据。一个分组(Packet,实际上更习惯的说法是帧,因为在基带层其地位类似于OSI的第 2 层、部分涉及物理层,分组的确切用法在第3 层,但是蓝牙基带层规范中采用Packet术语)的传送最多可以占用5 个时隙,在一个分组的传送期内,维持初始时隙所占用的信道而不再跳频。链路管理(LMP)负责蓝牙组件间连接的建立。通过连接的发起、交换、核实,进行身份鉴权和加密等安全方面的任务;通过协商确定基带数据分组大小;它还控制无线单元名师资料总结-精品资料欢迎下载-名师精心整理-第 4
8、页,共 16 页 -5 的电源模式和工作周期,以及微微网内蓝牙组件的连接状态。逻辑链路控制与适应协议(L2CAP)位于基带协议层之上,属于数据链路层,是一个为高层传输和应用层协议屏蔽基带协议的适配协议。其完成数据的拆装、基带与高协议间的适配,并通过协议复用、分用及重组操作为高层提供数据业务和分类提取,它允许高层协议和应用接收或发送长过64K 字节的 L2CAP 数据包。业务搜寻协议(SDP)是极其重要的部分,它是所使用模式的基础。通过SDH,可以查询设备信息、业务及业务特征,并在查询之后建立两个或多个蓝牙设备间的连接。SDP支持 3 种查询方式:按业务类别搜寻、按业务属性搜寻和业务浏览(bro
9、wsing)。2.3 蓝牙系统结构简介MT1020基带控制器和PH2401无线收发器分别由MITEL公司和 PHILSAR公司提供,两者配合可构成完整的低功耗的蓝牙模块,提供高至HCI(主机控制接口)层的功能。它们在蓝牙系统中的位置如图2 所示。MT1020基带控制器负责蓝牙基带部分的功能,完成基带以及链路的管理,包括对 SCO(同步)和 ACL(异步)连接方式的支持、差错控制、物理层的认证与加密、链路管理等;PH2401实现数据的无线接收和发送;虚线以上部分由用户根据不同的应用需求来实现,分为用户主机端和用户PDA端。特别值得一提的是,在该蓝牙模块解决方案中,即将推出的改进型基带控制器MT1
10、020B可提供20K 的用户ROM,使用户可以利用其内嵌的低功耗、高性能的32 位ARM7TDMI 内核,从而简化用户设计,实现最低楞耗、最高集成度的蓝牙产品。2.4 MT1020A 基带控制器和PH2401无线收发器介绍工业现场接入点通过传感器将信号传入MT1020A中再经 PH2401无线收发器将信号发射给上位机处理,本章主要介绍基带控制器与无线收发器的结构与原理。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 16 页 -6 2.4.1 MT1020A 基带控制器的结构与原理MT1020A是 MITEL公司推出的低成本、微功耗蓝牙基带控制器芯片。它和其它的无线收发器一起可以
11、构成一个完整的低功耗小于蓝牙技术系统。MT1020A采用 CMOS 工艺制作,是低功耗无线通信应用系统中理想的蓝牙基带微处理器件。它的引脚排列如图3 所示:MT1020A采用 1111 球形焊珠阵列121 脚 SSBGA 封装形式。图3 为其引脚排列图。MT1020由嵌入式微处理器和蓝牙基带外设组成,如图 4 示。在该芯片中,系统内部时钟可以低至5MHz、内核供电电压为2V、硬件解码、支持 DMA 传输,所有这些使得该芯片具有超低功耗。MT1020A的基带外围电路主要由主机接口、总线接口、蓝牙链路控制器、12kB 缓冲RAM、队列管理器、音频编解码器以及音频和其它通信接口电路功能块组成。该部分
12、可用最小的软硬件开销完成各种重要的蓝牙系统操作。基带外围电路中的总线接口主要用于完成微处理器与基带外围电路之间的各种通信,而外围电路内部各部分之间的数据传输则使用外围电路中的BT 总线来完成。键路控制器用来完成与外部无线收发器之间的通信,以实现数据发送时的装配、加同步字、帧头和CRC 校验名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 16 页 -7 以及数字接收时的解码和检错等。缓冲 RAM 是专门存储蓝牙数据包和变量的存储器,容量为12kB。队列管理器可实现缓冲RAM 与链路控制器以及主机接口与音频或其它通信接口之间的 DMA 传输。音频解码器是一个全双工的解码器,内含麦克风
13、放大器和耳机驱动器,其中的数字转换器可进行线性PCM、A 律 PCM、律 PCM 和 CVSD 间的相互转换。2.4.2 PH2401无线收发器与嵌入式控制内核功能介绍PH2401 单片无线收发器用砷化镓工艺制造,具有高集成度、超低功耗、体积小等优点,专门优化用于2.4GHz 无线个人系统,完全兼容蓝牙规范“Bluetoooth V1.0”。它工作于2.4GHz 的 ISM频段,以每秒 1600 次的速度在79 个频道(2.402GHz-2.408GHz)上快速跳频,最大位传输速率可达1Mbit/s。PH2401 采用调制指数为0.3 的高斯频移键控制(GFSK)调制方式,信道带宽为1MHz,
14、频偏在 140kHz-175kHz 之间,满足蓝牙 2 级和 3 级操作,送功率可在-10dBm-+2dBm之间编程设定,发射范围为10-100m。接收器由RF-IF 下变频器、自动增益控制(AGC)、滤波器、双通道模/数转换器及调制器组成。基带控制器通过串行总线与PH2401接口。通过对其内部寄存器的读写实现跳频、调谐等其它控制。工业现场,MT1020A和 PH2401所组成的蓝牙系统框图如图5 所示:蓝牙系统的具体接线:本文用该芯片的串行异步收发器1,也就是 E3(U1txd):UART1数据发送端,和F3(U1rxd):UART1 数据接收端与工业现场接入点的传感器信号或控制仪表相连;用
15、蓝牙外围电路的无线接口J6(Ri_spi_misod):(无线电串行接口数据输入)L6(Ri_spi_misod):(无线电串行接口数据输出)与PH1024 无线收发器相连;用C11(Gpio):通用 I/O 口,D9(Gpio):通用 I/O 口,D10(Gpio):通用 I/O口,E8(Gpio_):通用I/O 口或芯片USB唤醒输出引脚,这四个通用I/O 端口连接一个液晶显示屏,以显示接收到的数据。其它再具体的接线本文限于篇幅不再赘述。3.USB蓝牙适配器介绍名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 16 页 -8 蓝牙 USB 适配器采用CSR BlueCore 0
16、4,可去市场购买,价格大概在三十到四十元左右,用时先向PC 机里面装相应的驱动程序,再将USB适配器插入PC 机的USB接口中即可与MT1020A端和 PDA端进行通信。至此工业现场通信的三方通信硬件平台的搭建已基本完成,三方通信框图如图6 所示:蓝牙适配器图片4.Visual Stdio 2008环境下的PDA Windows应用程序设计4.1 MT1020A 端的软件设计单片机端的软件在Keil 平台下进行嵌入式C 编程实现,传输层采用UART,单片机通过UART 控制蓝牙模块。软件包括初始化,蓝牙交互,处理数据三个模块。4.1.1初始化初始化包括系统初始化和蓝牙初始化。系统初始化包括CP
17、U 时钟初始化,管脚分配,串口初始化等,蓝牙初始化是通过UART 给蓝牙模块发送一系列初始化命令,蓝牙模块返回事件,交互完成一系列的复位,鉴权,读地址等初始化操作。初始化程序主函数如下:main.c main()主函数sys_init()系统初始化,包括设置看门狗,初始化时钟,键盘及液晶,配置端口bt_init()蓝牙初始化uart.c uart_init()串口 0 初始化,包括设工作方式,开中断,设波特率,开定时器1 限于篇幅,具体主程序的编写不再赘述。4.1.2 蓝牙交互名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 16 页 -9 通信就是初始化完成后若本地蓝牙作从设备,
18、则等待远端蓝牙设备的建链请求,如果接受请求,则继续等待建链成功,获得一个连接句柄,从而进行数据交换,若本地蓝牙作主设备,则通过一系列主动查询,建链,发送数据,断链等操作处理数据就是将数据显示在与单片机相连的LCD 上等一系列后续操作。程序流程图如图8 示。系统初始化蓝牙初始化搜索附近是否有蓝牙设备是否有请求连接是否作主设备请求连接连接是否通过建立ACL连接连接建立是否成功连接建立是否成功接受连接NNNYYY是否有断连请求是否有发送数据请求是否有接收数据取出数据处理数据发送ACL数据断开连接YNNNYYNNYNYY蓝牙交互部分的程序主函数如下:bt_inquiry()搜索附近蓝牙设备bt_cre
19、ate_connection(.)与指定蓝牙设备建立连接bt_send_acl_data(.)发送 ACL 数据bt_disconnection(.)与指定蓝牙设备断开连接4.1.3 处理数据数据结构方面,程序按照 HCI 规范构造了HCI 指令分组cmd_pkt,HCI 事件分组event_pkt 和 HCIACL 数据分组acl_pkt 的数据结构,并设计了用于标识当前蓝牙设备的hci_device 结构体,包括蓝牙设备配置信息hci_info,蓝牙连接信息hci_con 和用于存储返回分组信息的接收缓冲区hci_buf1000,具体如图9 所示。U16 opcodeU8 lenU8 pa
20、ram256Cmd_pktU16 evcodeU8 lenU8 param256Event_pktU16 hdrU8 lenU8*data Acl_pktHci_info hiHci_con hcU8 hci_buf1000Hci_deveiceu8localu16conu16pageroleu16scanu8stateU16c_handleu8remote软件采用前后台的方式实现,前台运行主程序,后台定时循环调用HCI 状态机。HCI 状态机是一个子程序,用来专门处理蓝牙模块返回的HCI 事件分组和HCI 数据分组。状态机名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 16 页
21、 -10 通过分析HCI 事件分组来决定相应操作,获取相关信息,通过分析HCI 数据分组,来接收实际传输数据并存储到接收缓冲区。具体的HCI 状态机的处理流程如图10 所示:IDLE_STATEACL_HDR_STATEACL_HDR_STATEEVENT_DATA_STATEEVEN_DADT_STATESCO_HDT_STATESCO_DADT_STATEELSEACL_PKT取连接句柄处理ACL 数据EVT_PKT读元器件码和参数长度读元器件参数处理事件处理 SCO 数据SCO_PKT取连接句柄HCI 状态机初始状态置为IDLE_STATE,根据 HCI UART 传输层格式规范,按字段
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年蓝牙通讯程序设计 2022 蓝牙 通讯 程序设计
限制150内