基于CC2541蓝牙模块与单片机的串口通信_第1页
基于CC2541蓝牙模块与单片机的串口通信_第2页
基于CC2541蓝牙模块与单片机的串口通信_第3页
基于CC2541蓝牙模块与单片机的串口通信_第4页
基于CC2541蓝牙模块与单片机的串口通信_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计:基于CC2541蓝牙模块与单片机的串口通信基于CC2541蓝牙模块与单片机的串口通信摘要蓝牙技术作为一种无线数据与语音通信的开放性全球规范,可提供低功耗、短距离的无线空中接口,在各种固定与移动设备之间实现无线通信.在移动通信、无线数据采集、无线遥控与遥测、计算机网络及自动控制等多种领域,蓝牙技术都有着广泛的应用。蓝牙协议规范具有多个层次,完整的蓝牙协议栈的开发是一项很复杂的工程,而在大多数嵌入式应用中,只是需要实现基本的无线数据传输功能,并不需要实现全部的蓝牙协议栈.针对此类应用,若是能提供一套实用的蓝牙无线接口、实现一个通用的无线数据传输模块,就可以比较有效地缩短开发周期,降低开发

2、成本。蓝牙通讯最初设计初衷是方便移动电话(手机)与配件之间进行低成本、低功耗无线通信连接,现在已经成为IEEE802。15标准,得到全球上万家厂商支持。本文通过对美国德州仪器半导体公司(TI)开发的CC2541蓝牙模块与51单片机搭建电路实现无线通信技术。 BLE(Bluetooth Low Energy),蓝牙 4。0 标准里的一个子集,蓝牙 4。0 分为两部分,一个是能够兼容传统蓝牙的高速部分,另外就是这里的 BLE, 的两大显著特点:BLE功耗低,速率低。所以你就别打算用 BLE 来做音频传输或者文件传输了,目前 BLE最大的传输速率只能达到 45K 字节/每秒。BLE 协议栈,蓝牙 4

3、。0 里的 BLE,只是一个协议规范,而 BLE 协议栈则是该协议的代码实现。蓝牙组织 SIG,只负责制定协议,而协议如何实现,则需要各个芯片公司完成。可以这样理解,BLE 协议栈是芯片公司预先编好的源码或者库。关键词:蓝牙 单片机 通信 BLE4.01 绪论1. 背景介绍蓝牙技术的最初倡导者是五家世界著名的计算机和通信公司:爱立信Ericsson、国际商用机器IBM、英特尔Intel、诺基亚NoMa和东芝Toshiba。1998年5月,以爱立信为首,此五家IT巨人共同提出了一种近距离无线数字通信的技术标准,目标是实现最高传输速率可达1Mbs(有效传输速率为720Kbs),最大传输距离为10m

4、的无线通信技术,即蓝牙技术,并成立了国际化组织蓝牙SIG(SpecialInterest Group),致力于蓝牙规范的制定和蓝牙技术在全球范围内的推广。蓝牙通信有很多优点,首先是低功耗,以BLE 4.0为例,一节钮扣电池在静态工作状态可以支持一年;其次是低成本,TI公司的CC2540蓝牙SOC方案芯片出售价仅1美元,可以让人们低廉使用蓝牙技术;再次是开放性,2.4GHz的频段全球开放,没有政府监管;最后是适合时代潮流,现在是手机的时代,蓝牙技术本来就为它而生。蓝牙4.0协议是2010年6月由SIG(Special Interest Group)发布的最新标准,它有2种模式:BLE(Bluet

5、ooth low energy)只能与4。0协议设备通信,适应节能且仅收发少量数据的设备(如家用电子);BR/EDR(Basic Rate / Enhanced Data Rate),向下兼容(能与3。0/2。1/2。0通信),适应收发数据较多的设备(如耳机).目前,苹果公司的iPhone 4S、iPhone 5、miniPad和iPad 3;小米手机2;三星公司的Galaxy SIII和Note II;HTC ONE系列等移动设备都支持蓝牙4。0CC2540/CC2541,美国德州仪器半导体公司(简称 TI)的 BLE 芯片,TI 实现的 BLE协议栈同样是 ble 协议的代码实现,这些 B

6、LE 代码正是运行在 CC2540/CC2541 芯片上,简单的说 CC254x 就是一颗带有蓝牙功能的 51 单片机,其他单片机有的资源,例如定时器,UART,SPI,ADC,GPIO,USB(CC2540 专有),I2C(CC2541 专有)等等,CC254x 也都有,而 BLE 协议栈也就是一些复杂一点的 C 语言源码2. 硬件设备CC254x 的应用非常广,三种金典应用:1 串口透传,2 穿戴式设备,3PC上的 BLE 适配器,这样就对应了三种设备,带有带串口的 SmartRF 开发板(用来开发大部分的应用),带有三轴加速度计的 Keyfob 防丢器开发板(用来开发穿戴式设备),最后是

7、CC2540USBdongle,可以直接插在 USB 口上(开发 BLE 适配器或者虚拟串口等应用)。而且TI 的 BLE 协议栈例程,也是建立在这三种设备上。2。1 SmartRF 开发板SmartRF 开发板兼容 TI 官方的 SmartRF05EB 开发板,TI 的 BLE 协议栈里提供的大部分例程,均基于该开发板创建,我们除了升级了 LCD 为 12864 外,其余完全兼容,TI 协议栈例程可以直接在我们的 SmartRF 上运行,这一点非常重要,因为 TI 经常有版本更新或者新的例程出来。2。2 Keyfob 开发板Keyfob 开发板带有一个三轴加速度计和一个蜂鸣器,除了可以开发防

8、丢器外,还有更多的想象空间:计步器、运动检测等等。和 SmartRF 开发板一样,采用的也是底板分离的设计,核心板和 SmartRF 相同(Keyfob默认发 CC2541 核心板,CC2541 版本的 keyfob 资源更多)。Keyfob 的反面有一个型号为 CR2032 的纽扣电池座。我们采用的电池座和 TI 的 Sensortag开发板的质量一样,厚实、耐用。2。3 CCDebugger 仿真器CC254x 不支持串口下载,所以只能通过 CC-Debugger 烧写,除了烧写功能,也可以在 IAR 开发软件里,通过CCDebugger 连接芯片在线调试你开发的程序,单步运行、打断点等,

9、所以又叫仿真器。TI 官方开发板配套使用的全部是 CCDebugger 仿真器3. 软件环境IAR for 8051 开发环境,Flash Programmer 固件烧写软件2 CC2541芯片的特性参数CC2541 是一款针对蓝牙低能耗以及私有2.4GHz 应用的功率优化的真正片载系统(SoC) 解决方案.它使得使用低总体物料清单成本建立强健网络节点成为可能。CC2541 将领先RF 收发器的出色性能和一个业界标准的增强型8051 MCU、系统内可编程闪存存储器、8kBRAM 和很多其它功能强大的特性和外设组合在一起。CC2541 上CC2541 非常适合应用于需要超低能耗的系统.这由多种不

10、同的运行模式指定。运行模式间较短的转换时间进一步使低能耗变为可能.如果 CC2540 上的 USB 未启用并且 CC2541 上的I2C/ 额外I/O 未启用,那么CC2541 与CC2540 在6mm x 6mm 方形扁平无引脚(QFN) 40 封装内引脚兼容。与CC2540 相比,CC2541 提供更低RF 流耗.CC2541 没有CC2540 所具有的USB 接口,并在TX模式中提供较低的最大输出功率CC2541 还增加了1 个HW I2C 接口。CC2541 与CC2533 优化RF4CE IEEE 802.15。4 SoC引脚兼容.CC2541 有2 个不同的版本:分别具有128kB

11、 和256kB 闪存的的CC2541F128/F256.1特性(1)射频 2。4GHz蓝牙符合低能耗规范和私有的RF 片载系统 支持250kbps,500kbps,1Mbps,2Mbps 的制器内核数据速率 出色的链路预算,不使用外部前段而支持长距离应用 高达0dBm 的可编程输出功率 出色的接收器灵敏度(1Mbps 时为- 94dBm),可选择性,和阻挡性能 适合于针对符合世界范围内的无线电频率调节系统:ETSI EN 300 328 和 EN 300 440 2 类 (欧洲),FCC CFR47 15 部分(美国),和ARIB STD-T66(日本)(2)布局 极少的外部组件 提供参考设计

12、 支持 6mm × 6mm 方形扁平无引脚 (QFN)-40 封装 与 CC2540 引脚兼容 (当不使用 USB 或者 I2C 时) (ADC)(3)低功率 工作模式 RX 低至:17。9mA 工作模式 TX (0 dBm):18.2mA 功率模式 1(4s 唤醒):270s 功率模式2(睡眠定时器打开):1s 功率模式3(外部中断):0。5s(4)工作模式下TPS62730兼容低功率 RX 低至:14。7mA(3V 电源) TX (0 dBm):14.3 mA(3V 电源)(5)微控制器 具有代码预取功能的高性能和低功率8051 微控制器内核 系统内可编程闪存,128 或者256

13、 KB 在所有功率模式下具有保持功能的8KB RAM 支持硬件调试 扩展基带自动化,包括自动确认和地址解码 所有功率模式中对所有相关寄存器的保持(6)外设 功能强大的 5 通道直接内存访问 (DMA) 通用定时器(1 个 16 位,2 个 8 位) 红外(IR) 生成电路 具有捕捉功能的32kHz 睡眠定时器 精确数字接收到的数字信号强度指示器(RSSI)支持 电池监视器和温度感应器 含 8 通道和可配置分辨率的 12 位模数转换器(ADC) 高级加密标准 (AES) 安全协处理器 2 个功能强大的支持几个串行协议的通用异步接收发器 (UART) 23 个通用 I/O 引脚(21 ×

14、 4mA,2 × 20mA) I2C 接口 2 个具有LED 驱动功能的I/O 引脚 安全装置定时器 集成的高性能比较器(7)开发工具 CC2541 评估模块工具包 (CC2541EMK) CC2541 小型开发工具包 (CC2541DK-MINI) SmartRF 软件 提供IAR 嵌入式Workbench2.软件特性(1)符合针对单模式蓝牙低能耗(BLE) 解决方案的符合蓝牙4.0 协议的堆栈器 完全功率优化堆栈,包括控制器和主机 GAP 中心设备,外设,或者广播器(包括组合角色) 属性协议(ATT) / 通用属性配置文件(GATT) 客户端和服务器 L2CAP 说明(2)示例应

15、用和配置文件 针对GAP 中心和外围作用的一般应用 距离临近,加速计,简单关键字,和电池GATT 服务 BLE 软件栈内支持更多应用(3)多重配置选项 单芯片配置,允许应用运行在CC2541 上 用于运行在一个外部微处理器接口 BTool - 用于评估、开发和测试的视窗(Windows) PC 应用 3.应用范围 2。4GHz蓝牙低能耗系统 私有的2。4 GHz 系统 人机接口器件(键盘,鼠标,遥控) 体育和休闲设备1 个HW I2C 接口。 移动电话附件 消费类电子产品4。含有TPS62730的CC2541 TPS62730是一款具有旁通模式的2MHz 降压转换器 延长电池寿命高达20% 在

16、所有工作模式下减少的电流 30nA 旁通模式电流以支持低功率模式 RF 性能并未改变 小型封装允许小型解决方案尺寸 CC2541 可控3 基于单片机的蓝牙硬件接口设计1。单片机C8051简介微控制器(MCu)是蓝牙应用系统的核心,它的选择将直接影响到系统的性能。C8051F120是Cygnal公司的一种与8051兼容的高速SOC单片机,它具有高速CIP51内核、灵活的IO交叉开关、先进的时钟系统、JTAG系统调试接口以及多源复位系统它性能卓越,内核采用流水线结构,速度可达100MIPS,比普通的51快40倍,而且在资源丰富、体积小、功耗低、集成度高且调试方便.下面列出了它的一些主要特性:(1)

17、高速、流水线结构的8051兼容的CIP51内核;(2)真正8位500ksps的ADC,带PGA和8通道模拟多路开关;(3)2周期的16×16的乘法和累加引擎;(4)8448(8K+256)字节的片内RAM;(5)可寻址64K字节地址空间的外部数据存储器接口;(6)硬件实现的SPI、SMBus12C和两个UART串行接El10l;(7)5个通用的16位定时器;(8)具有6个捕捉比较模块的可编程计数器定时器阵列;(9)FLASH存储器具有在系统中重新编程能力,可用于非易失性数据存储,并允许现场更新固件;(10)片内JTAG调试电路允许非侵入式(不占用片内资源)、全速、在系统测试;(11)

18、可在工业温度范NI(45"C一+85.c)N用27V36V的电压工作.(12)C8051F120为100脚TQFP封装.2。单片机与蓝牙模块的连接目前,最流行的HCI是通过通用异步收发器(UART)和通信串行总线(USB)连接的.其中UART通常更受青睐,因为其性能和数据吞吐率水平与USB接口相当,且传输协议较为简单,减少了软件开销,是一种更为经济高效的硬件解决方案。蓝牙模块电源线蓝牙模块的电压管理器共有4个输入,分别是Vcc(12)、MASTER(28)、SW(27)和SW1(23).Vcc提供电源电压,典型值是33V;MASTER(28)为UART提供一个独立的电源回路,可以与单

19、片机逻辑接口相同,可以连接到Vcc;SW(27)信号控制内部电压稳压器导通或关断。将Vcc(12)、MASTER(28)、SW(27)和SW1(23)连接在一起使用时,不需要考虑蓝牙模块的加电顺序。 图1:蓝牙模块的外围电路数据线和信号线单片机C8051F120具有两个UART,在此选用UART0。在编程时候可通过交叉开关设置,将UART0分配到两个管脚上,例如P3。1(TXD)和P3.0(RXD),分别与蓝牙模块的RXD和TXD相连。另外,单片机端需另外分配两个管脚,例如P12和P13,分别作为流量控制信号CTS和RTS,分别与蓝牙模块的RTS和CTS相连。若CTS为1则允许对方发送,若CT

20、S为0则禁止对方发送. 图2:单片机的外围电路蓝牙模块天线蓝牙模块ANT管脚连接到50欧的天线,天线的电压驻波比小于2:1。在本课题的实验板的设计中,单片机和蓝牙模块是焊接在一个PCB板上的。由于蓝牙模块采用平面封装,而且引脚很密集,要想直接焊接到PCB板上很困难,而且天线也很难焊接上去.因而自行设计了一个辅助电路板,先将蓝牙模块焊接到此辅助电路板上,然后将要用到的蓝牙模块的部分引脚引出来,通过插座将蓝牙模块连接到PCB板上,这样就使得蓝牙模块的装卸变得很方便.辅助电路板引出的管脚有GND地线、VCC33V、数据收发线RXD和TXD、流控线RTS和CTS、使能信号线EN、复位信号线RESET,

21、其中BT EN即图3中的ON信号,实际应用中将它与VCC接在一起,其他的与单片机相连。 图3:CC2541与单片机的连接电路4 软件设计单片机通过UART控制蓝牙模块时,最底层的数据传输是通过UART实现的。因而需要实现单片机UART接口函数来完成最基本的字节级的数据发送和接收。UART即通用异步通信接收发送器,它是一种同步异步传输的串行接口,工作在同步传输的为半双工方式,而工作在异步传输的为全双工方式。单片机的UART用一个SFR(且ISBUF)的地址可以访问发送寄存器和接收寄存器,并允许在软件尚未读取前一个接收字节的情况下,开始接收第2个输入数据字节。C8051F120的UART工作模式有

22、模式O、模式1、模式2、模式3共4种,其中模式0是同步半双工方式,其余全为异步全双工方式。相关程序如下:include ioCC2540.hinclude reg52.h#include intrins。hunsigned char tmp;unsigned int c=0;sbit led1=P20; /指示灯0sbit led2=P21; /指示灯1sbit led3=P23; /指示灯3void init(); /串口初始化void send(unsigned char a); /单字节发送函数void ctrl(); /接收处理函数void main() init(); while(1

23、) if(RI=1) /是否有数据到来 RI = 0; tmp = SBUF; /暂存接收到的数据 ctrl(); void init() /串口初始化 ES=0; /关中断 SCON = 0x50; / REN=1允许串行接受状态,串口工作模式1,10 /位UART(1位起始位,8位数据位,1位停止位, /无奇偶校验),波特可变 TMOD = 0x20; /定时器1工作于方式2,8位自动重载模式,用 /于产生波特率 TH1=TL1=0xFD; /波特率9600 (本次测试采用晶振为11.0592) PCON &= 0x7f; /波特率不倍增 TR1 = 1; /定时器1开始工作,产生

24、波特率 /发送标志位置1 TI=0; /接收标志位置0 RI=0; EA=0; ES=1; led1=0; /初始化设置3个指示灯全亮 led2=0; led3=0;void send(unsigned char a) /单字节数据发送 /注意:若单片机TXD(P3。1)无上拉能力,必须在P3。1端接上拉电阻.本次测试需要接上拉电阻 TI=0; SBUF=a; while(TI=0); TI=0; if(c2) /发送指示灯标志,每接收一次,此灯亮灭交替 led3=1; else led3=0; c+; void ctrl() /接收处理函数 switch(tmp) case '1': led1=1; /收到字符1,指示灯0灭 send(tmp); break; case 2: /收到字符2,指示灯1灭 led2=1; send(tmp); break; case '3': /收到字符3,指示灯0、1亮 led1=0; led2=0; send(tmp); break; case '4: /收到字符4,指示灯0、1灭 led1=1; led2=1; send(tmp); break; case 5'

温馨提示

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

评论

0/150

提交评论