基于cc2540的蓝牙40模块与pc机通信设计毕业论文(编辑修改稿)内容摘要:

在图书仓库和中药仓库中,对温度也有类似的要求, 所以本设计的应用对 于这种 需要 十分有效的温度调节的环境有 广阔的市场前景。 又 如在医院的病房中, 病人的心率、血压、输液剩余量 等信息都是需要被医生或护士在第一时间 得知的信息。 而传统的 传感器模块加有线传输的方式在医院病房这种人员较多,且人员流动频繁的场所来说 ,显得很不方便也很不实用,消耗也十分大。 而本设计 所提出的 ,基于 CC2540 的蓝牙 模块恰好能解决上面所述的问题。 医 生和护士只需在办公室,就能从 PC 上 实时地 看到各个病人的情况, 并且能 准确地 去 了解病人的情况 ,做出相应的医疗方案和 应急措施 ,这对医生和病人来说都是 极大的 好处。 综上所述, 蓝牙 技术 将 把物联网又向前带了一大步,在未来的生产和生活当中,蓝牙 必将发挥其 不可忽视的作用,为 我们带来极大的便利与快乐。 4 2 开发环境 硬件环境 蓝牙芯片 CC2540 CC2540 集成了 射频收发器,是一款完全兼容 8051 内核的无线射频单片机,它完美的兼容了 蓝牙低功耗协议栈,非常适合蓝牙低功耗 的开发和 应用,它有 3 个不同的 存储器访问总线: 特殊功能寄存器( SFR); 数据( DATA); 代码 /外部数据( CODE/XDATA)。 CC2540 单片机使用单周期访问 SFR、 DATA 和住 SRAM。 当 CC2540 处于空闲模式时,任何的中断可以把 CC2540 恢复到主动模式。 某些中断还可以将 CC2540 从睡眠模式唤醒。 位于系统核心存储器交叉开关使用 SFR 总线将 CPU、 DMA 控制器与物理存储器和所有的外接设备连接起来。 CC2540 的 Flash 容量可以选择,有 128KB、 256KB,这就是 CC2540 单片机的在线可编程非易失性存储器,并且映 射到代码和外部数据存储器空间。 除了保存程序代码和常亮之外,非易失性存储器允许应用程序保存必要的数据,以保证这些数据在设备重启后可用。 图 21 是 CC2540 的内部结构图 5 图 21 CC2540 内部结构图 如图 21 所示, CC2540 的这些模块大致可以分为三类: CPU 和内存相关的模块;外设、时钟和电源管理相关的模块,以及无线电相关的模块。 CC2540EM 核心板。 CC2540 EM 是 TI 公司 官方 推出的,蓝牙 开发套件之一。 CC2540EM 核心板主要包括 CC2540 单片机、全尺寸倒 F 天线,晶振以及扩展 接口, CC2540EM 核心板如图22 所示 : 6 图 22 CC2540EM 开发板实物图 USBDongle 如图 23 所示,是 CC2540 USBDongle 的实物图。 它是作用是可以配合 TI PacketSniffer 软件实现 BLE 的无线抓包,另外可以配合 PC 端的 BTool 软件实现 PC 端的 BTool主机。 USBDongle 通过 USB接口与 PC 连接, 安装 TI的驱动程序,将 USBDongle模拟成串口,然后运行 BTool。 7 图 23 USBDongle 实物图 SmartRF04EB 如 图 24 所示, 是 SmartRF04EB 的实物图。 它是用来调试和下载软件到 EM 的仿真器。 它是 TI 第一代的 CC 系列仿真器,性价比高,支持 CC2540 和 CC2530,但不支持CC2541。 8 图 23 SmartRF04EB 实物图 软件环境 IAR IAR Embedded Wordbench(又称 EM)的 C 交叉编译器 是一款完整、稳定且容易使用的专业嵌入式应用开发工具 , IAR 对不同的微处理器提供统一 的用户界面,目前可以支持至少 35 种的 8 位、 16 位、 32 位的 MCU。 其特点如下:  完全兼容标准 C 语言。  内建相应芯片的程序 苏 荷和内部优化器。  高效浮点支持。  内存模式选择。 为了满足本设计的需求, 使用的 IAR 版本是。 蓝牙 BLE 协议栈 BLE 协议栈需要先自己安装, 里面存放的是协议栈源码 , TI 会陆续更新协议栈版本, 但是本设计为了配合 IAR 的版本,所以选择使用 版本的 BLE 协议栈。 协议栈文件夹下 有以下 几个目录 :  Accessories—— \Accessories\Drivers 里面存放的 是烧写了 HostTestRelease 程序的 CC2540 USBDongle 的 USB 转串口驱动 程序,很 多用户反 应说 USBDongle 9 插到 电脑上没有被识别 成串口号,这里就要注意, USBDongle 出厂时烧写的 是PacketSniffer 的 固 件 , 是 协 议 分 析 仪 , 叧 有 当 USBDdongle 烧写了 HostTestRelease 程序时才会表现为一个串口,此时 USBDongle 的 驱动 程序即在 Drivers 目录下。 \Accessories\HexFiles 里面存放的 是 TI 开发 板上的 预先 编译的 hex 文件。 \Accessories\BTool 以前 的 协议栈版本没有这个目录,这里存放 的 是 BTOOL 的 安装文件,不 过不需要手动 安装,因为刚才安装协议栈的时候已经 安装BTOOL。  Components—— 目录 Components 存放 的 是最终要 的 协议栈组件,包括底层 的BLE,还有 开发板 硬件层 hal,还有类似操作系统 的 osal。  Documents—— 目录 Documents 存放 的 是 TI 提供 的关于 协议栈和协议栈 demo 的 相关 介绍 和 开发文档 ,因 为该目录下 的 文件非常重要,虽然全部是英文,也需要查看 : 《 》协议栈 demo 操作指南,协议栈里所有 demo 的 说明都在这里。 《 TI_BLE_Software_Developer39。 》 BLE 协议栈指南, 介绍 BLE 和 TI的 BLE 协议栈。 《 》 BLE API 文档,协议栈里调用 的 API 函数 还有调用时序,均在此文档中。  Projects\ble—— 目录 Projects\ble, 最后一个,也是最重要 的 目 录,基于协议栈的demo 工程都在这里。 所有 的 协议栈 demo 都要放 到 Projects/ble 这个目录下编译运行,因为 IAR 程配置中使用 的 是相对路径,一旦 IAR 工程位置和整个协议栈源码 的 相对位置 发 生变化,就无法找 到 ble 的 其他组件,编译时会产生大量 的 无法找 到 文件 的错误 , 所有 程序 必须要放 到 这里来编译。 BTool BTool 是一款 TI 公司出品的, 与 CC2540 开发配套的 PC 端应用程序,通过使用主机控制接口 ( HCI) 命令的方式与蓝牙 BLE 外设通信。 Btool允许用户使用基本的 BLE集中器设备功能,例如发现蓝牙外设或广播设备、建立与外设的连接 、进行 GATT 应用数据的读写操作 、绑定服务等。 因此,可以在 PC 端使用 Btool 工具来进行蓝牙外设应用程序的开发调试。 10 Flash Programmer Flash Programmer 也是一款 TI 的官方软件, 与 SmartRF04EB 配合 使用 ,向 EM 开发板烧写 HEX 文件。 11 3 系统 硬件 设计 设计方法和工具 硬件系统的设计采用模块化的方法,即首先设计出 CC2540 核心板,再设计出其外围电路,之后整体调试。 系统设计工具软件采用 Altium Designer。 这是一款功能强大的电路设计软件,其原型为大家所熟知的 Protel,为广大的硬件设计者提供了完美的硬件开发系统,这套软件从原理图的绘制到电路的实际仿真, PCB 版图的设计等方面极大地便利了用户的自主开发。 系统框图 系统硬件框图包括 CC2540 核心板和外围电 路,整个系统传输过程如图 31 所示: 图 31 系统硬件框图 硬件电路图 CC2540 核心板硬件资源 CC2540EM 核心板主要包括 CC2540 单片机、全尺寸倒 F 天线,晶振以及扩展接口,CC2540EM 核心板如图 32 所示 : 12 图 32 CC2540 核心板 天线及巴伦匹配电路设计 CC2540 外部仅需几个简单的阻容网络 即实现复杂的 RF 前端。 这部分的电路 也叫做巴伦匹配电路,这部分的结果好坏对通信距离,系统 功耗都有较大的影响。 TI 已经提供了非常可靠的参考设计,所以本设计只需按照 TI 的参考设计来开发电路即可。 天线设计可以根据不同的应用来选择,既可以使用 PCB 天线,也可以使用 SMA 天线。 本设计采用的是 PCB 天线,天线及巴伦匹配 电路设计如图 33 所示。 13 图 33 天线及巴伦匹配 晶振电路设计 由于 CC2540 需要 2 个晶振, 32MHz 和 ,所以本设计安装要求设计了这 2个晶振电路 ,晶振电路接口如图 34 所示。 图 34 晶振电路 电源电路设计 TI 第一代 CC2540DK 开发套件中的 EM 开发板可以使用 USB 转 DC 电源从 USB接口上取电,另外也可以使用锂电池等供电,直接插在 BT1 上,电压输入范围为 到6V,电源管理电路如图 35 所示 14 图 35 电源管理电路 LED 电路设计 本设计采用与 TI 完全兼容的四色 LED,高电平驱动,另外 D4 和 S1 按键共用一个端口。 LED 和按键 S1 电路如图 36 所示。 图 36 LED 驱动和按键 S1 驱动电路 五向按键电路设计 协议栈另外一个非常重要的拓展电路就是五向按键,几乎每个协议栈 demo 都会用到五向按键来辅助操作。 五向按键的电路比较复杂,但是原理非常简单,当按键按下时首先产生一个高电平,触发一个 GPIO 中断,然后通过放大器 输出不同的电压值, 当 CC2540 接收到中断后开始去读五向按键 的电压,不同的方向按下产生的电压值不同,这样就实现了 joystick。 五向按键设计电路如图 37 所示。 15 图 37 五向按键电路图 LCD12864 电路设计 本设计采用小型的 12864 作为系统的显示系统,该 LCD 采用 SPI 接口。 LCD 电路设计如图 38 所示。 图 38 LCD 电路 复位电路设计 CC2540 内部集成了上电复位电路,为了方便程序调试,本设计 在板子 上加了一个按键用来在线复位,尤其当使用 UART 转串口时,直接断电会导致 PC 设备异常,这样复位按键就能够起到很好的系统复位功能。 复位电路如图 39 所示。 图 39 复位电路 下载调试电路设计 CC2540EM 开发板使用标准的 CCDebugger 调试接口,为了方便调试,特意将debugger 接口的 9 脚 和 2 脚短接,这样可以使用 CCDebugger 为 板子 供电。 下载调试电路如图 310 所示。 16 图 310 下载调试电路 17 4 系统软件设计 BLE 蓝牙协议栈 介绍 协议定义的是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据收发;协议栈是协议的具体实现形式,通俗的理解为用代码实现的函数库,以便于开发人员调用。 蓝牙 BLE 协议栈就是将各个层定义的协议栈都集合在一起,以函数的形式实现,并提供一些应用层 API,供用户调用。 值得注意的是,虽然协议是统一的,但是协议的具体实现形式是变化的,即不同的厂商提供的协议栈是。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。