0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何才能使用CC2541蓝牙模块与单片机进行串口通信

2oON_changxuemc 来源:未知 2019-10-04 11:49 次阅读

一、CC2541器件概述

CC2541是一款针对低能耗以及私有2.4GHz应用的功率优化的真正片载系统(SoC)解决方案。它使得使用低总体物料清单成本建立强健网络节点成为可能。CC2541将领先RF收发器的出色性能和一个业界标准的增强型8051MCU、系统内可编程闪存存储器、8kBRAM和很多其它功能强大的特性和外设组合在一起。CC2541非常适合应用于需要超低能耗的系统。这由多种不同的运行模式指定。运行模式间较短的转换时间进一步使低能耗变为可能

二、CC2541芯片的特性参数

CC2541是一款针对蓝牙低能耗以及私有2.4GHz应用的功率优化的真正片载系统(SoC)解决方案。它使得使用低总体物料清单成本建立强健网络节点成为可能。CC2541将领先RF收发器的出色性能和一个业界标准的增强型8051MCU、系统内可编程闪存存储器、8kBRAM和很多其它功能强大的特性和外设组合在一起。CC2541上CC2541非常适合应用于需要超低能耗的系统。这由多种不同的运行模式指定。运行模式间较短的转换时间进一步使低能耗变为可能。

如果CC2540上的USB未启用并且CC2541上的I2C/额外I/O未启用,那么CC2541与CC2540在6mmx6mm方形扁平无引脚(QFN)40封装内引脚兼容。与CC2540相比,CC2541提供更低RF流耗。CC2541没有CC2540所具有的USB接口,并在TX模式中提供较低的最大输出功率CC2541还增加了1个HWI2C接口。

CC2541与CC2533优化RF4CEIEEE802.15.4SoC引脚兼容。CC2541有2个不同的版本:分别具有128kB和256kB闪存的的CC2541F128/F256。

1、特性

(1)射频

–2.4GHz蓝牙符合低能耗规范和私有的RF片载系统

–支持250kbps,500kbps,1Mbps,2Mbps的制器内核数据速率–出色的链路预算,不使用外部前段而支持长距离应用–高达0dBm的可编程输出功率

–出色的接收器灵敏度(1Mbps时为-94dBm),可选择性,和阻挡性能

–适合于针对符合世界范围内的无线电频率调节系统:ETSIEN300328和EN3004402类(欧洲),FCCCFR4715部分(美国),和ARIBSTD-T66(日本)

(2)布局

–极少的外部组件–提供参考设计支持

–6mm&mes;6mm方形扁平无引脚(QFN)-40封装

–与CC2540引脚兼容(当不使用USB或者I2C时)(ADC

(3)低功率

–工作模式RX低至:17.9mA

–工作模式TX(0dBm):18.2mA–功率模式1(4μs唤醒):270μs–功率模式2(睡眠定时器打开):1μs–功率模式3(外部中断):0.5μs

(4)工作模式下TPS62730兼容低功率

–RX低至:14.7mA(3V电源)–TX(0dBm):14.3mA(3V电源)

(5)微控制器

–具有代码预取功能的高性能和低功率8051微控制器内核

–系统内可编程闪存,128或者256KB

–在所有功率模式下具有保持功能的8KBRAM

–支持硬件调试

–扩展基带自动化,包括自动确认和地址解码

–所有功率模式中对所有相关寄存器的保持

(6)外设

–功能强大的5通道直接内存访问(DMA

–通用定时器(1个16位,2个8位)

红外(IR)生成电路

–具有捕捉功能的32kHz睡眠定时器

–精确数字接收到的数字信号强度指示器(RSSI)支持

–电池监视器和温度感应器

–含8通道和可配置分辨率的12位模数转换器ADC)

–高级加密标准(AES)安全协处理器

–2个功能强大的支持几个串行协议的通用异步接收发器(UART

–23个通用I/O引脚(21&mes;4mA,2&mes;20mA)

–I2C接口

–2个具有LED驱动功能的I/O引脚

–安全装置定时器

–集成的高性能比较器(7)开发工具

–CC2541评估模块工具包(CC2541EMK)

–CC2541小型开发工具包(CC2541DK-MINI)

–SmartRF?软件

–提供IAR嵌入式Workbench?

2、软件特性

(1)符合针对单模式蓝牙低能耗(BLE)解决方案的符合蓝牙4.0协议的堆栈器

–完全功率优化堆栈,包括控制器和主机

–GAP-中心设备,外设,或者广播器(包括组合角色)

–属性协议(ATT)/通用属性配置文件(GATT)

–客户端和服务器

–L2CAP说明

(2)示例应用和配置文件

–针对GAP中心和外围作用的一般应用

–距离临近,加速计,简单关键字,和电池GATT服务

–BLE软件栈内支持更多应用

(3)多重配置选项

–单芯片配置,允许应用运行在CC2541上

–用于运行在一个外部微处理器接口

–BTool-用于评估、开发和测试的视窗(Windows)PC应用

3、应用范围

2.4GHz蓝牙低能耗系统

私有的2.4GHz系统

人机接口器件(键盘,鼠标,遥控)

体育和休闲设备1个HWI2C接口。

移动电话附件?消费类电子产品

4、含有TPS62730的CC2541

TPS62730是一款具有旁通模式的2MHz降压转换器

延长电池寿命高达20%

在所有工作模式下减少的电流

30nA旁通模式电流以支持低功率模式

RF性能并未改变

小型封装允许小型解决方案尺寸

CC2541可控

三、CC2541器件的用途

符合针对单模式蓝牙低能耗(BLE)解决方案的符合4.0协议的堆栈

完全功率优化堆栈,包括控制器和主机GAP-中心设备,外设,或者广播器(包括组合角色)属性协议(ATT)/通用属性配置文件(GATT)–客户端和服务器对称式对多重处理(SMP)-AES-128加密和解密L2CAP

示例应用和配置文件针对GAP中心和外围作用的一般应用距离临近,加速计,简单关键字,和电池GATT服务BLE软件栈内支持更多应用

多重配置选项单芯片配置,允许应用运行在CC2541上用于运行在一个外部微处理器上的网络处理器接口

BTool-用于评估、开发和测试的视窗(Windows)PC应用

四、基于单片机的蓝牙硬件接口设计 1、单片机C8051简介

微控制器(MCu)是蓝牙应用系统的核心,它的选择将直接影响到系统的性能。C8051F120是Cygnal公司的一种与8051兼容的高速SOC单片机,它具有高速CIP.51内核、灵活的I/O交叉开关、先进的时钟系统、JTAG系统调试接口以及多源复位系统它性能卓越,内核采用流水线结构,速度可达100MIPS,比普通的51快40倍,而且在资源丰富、体积小、功耗低、集成度高且调试方便。

下面列出了它的一些主要特性:

(1)高速、流水线结构的8051兼容的CIP.51内核;

(2)真正8位500ksps的ADC,带PGA和8通道模拟多路开关;

(3)2周期的16&TImes;16的乘法和累加引擎;

(4)8448(8K+256)字节的片内RAM

(5)可寻址64K字节地址空间的外部数据存储器接口;

(6)硬件实现的SPI、SMBus/12C和两个UART串行接El[10l;

(7)5个通用的16位定时器;

(8)具有6个捕捉/比较模块的可编程计数器/定时器阵列;

(9)FLASH存储器具有在系统中重新编程能力,可用于非易失性数据存储,并允许现场更新固件;

(10)片内JTAG调试电路允许非侵入式(不占用片内资源)、全速、在系统测试;

(11)可在工业温度范NI(.45“C一+85。c)N用2.7V~3.6V的电压工作。

(12)C8051F120为100脚TQFP封装。

2、单片机与蓝牙模块的连接

目前,最流行的HCI是通过通用异步收发器(UART)和通信串行总线(USB)连接的。其中UART通常更受青睐,因为其性能和数据吞吐率水平与USB接口相当,且传输协议较为简单,减少了软件开销,是一种更为经济高效的硬件解决方案。

①蓝牙模块电源线

蓝牙模块的电压管理器共有4个输入,分别是Vcc(12)、MASTER(28)、SW(27)和SW1(23)。Vcc提供电源电压,典型值是3.3V;MASTER(28)为UART提供一个独立的电源回路,可以与单片机逻辑接口相同,可以连接到Vcc;SW(27)信号控制内部电压稳压器导通或关断。将Vcc(12)、MASTER(28)、SW(27)和SW1(23)连接在一起使用时,不需要考虑蓝牙模块的加电顺序。

图1:蓝牙模块的外围电路

②数据线和信号线

单片机C8051F120具有两个UART,在此选用UART0。在编程时候可通过交叉开关设置,将UART0分配到两个管脚上,例如P3.1(TXD)和P3.0(RXD),分别与蓝牙模块的RXD和TXD相连。另外,单片机端需另外分配两个管脚,例如P1.2和P1.3,分别作为流量控制信号CTS和RTS,分别与蓝牙模块的RTS和CTS相连。若CTS为1则允许对方发送,若CTS为0则禁止对方发送。

图2:单片机的外围电路

③蓝牙模块天线

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

图3:CC2541与单片机的连接电路

五、软件设计

单片机通过UART控制蓝牙模块时,最底层的数据传输是通过UART实现的。因而需要实现单片机UART接口函数来完成最基本的字节级的数据发送和接收。UART即通用异步通信接收发送器,它是一种同步/异步传输的串行接口,工作在同步传输的为半双工方式,而工作在异步传输的为全双工方式。单片机的UART用一个SFR(且I]SBUF)的地址可以访问发送寄存器和接收寄存器,并允许在软件尚未读取前一个接收字节的情况下,开始接收第2个输入数据字节。C8051F120的UART工作模式有模式O、模式1、模式2、模式3共4种,其中模式0是同步半双工方式,其余全为异步全双工方式。

相关程序如下:

#include《ioCC2540.h》

#include《reg52.h》

#include《intrins.h》

unsignedchartmp;

unsignedintc=0;

sbitled1=P2^0;//指示灯0

sbitled2=P2^1;//指示灯1

sbitled3=P2^3;//指示灯3

voidinit();//串口初始化

voidsend(unsignedchara);//单字节发送函数

voidctrl();//接收处理函数

voidmain(){

init();while(1)

{

if(RI==1)//是否有数据到来

{

RI=0;

tmp=SBUF;//暂存接收到的数据

ctrl();

}

}

voidinit()//串口初始化

{

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开始工作,产生波特率

//发送标志位置1

TI=0;//接收标志位置0

RI=0;

EA=0;

ES=1;

led1=0;//初始化设置3个指示灯全亮

led2=0;

led3=0;

}

voidsend(unsignedchara)//单字节数据发送

{

//注意:若单片机TXD(P3.1)无上拉能力,必须在P3.1端接上拉电阻。本次测试需要接上拉电阻

TI=0;

SBUF=a;

while(TI==0);

TI=0;

if(c%2)//发送指示灯标志,每接收一次,此灯亮灭交替

led3=1;

else

led3=0;

c++;

}

voidctrl()//接收处理函数

{

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’://收到字符5,指示灯3亮

led3=0;

send(tmp);

break;

default://其他,灯全灭

led1=1;

led2=1;

led3=1;

send(tmp);

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5990

    文章

    43904

    浏览量

    619599
  • 串口通信
    +关注

    关注

    32

    文章

    1570

    浏览量

    54805
  • CC2541
    +关注

    关注

    6

    文章

    38

    浏览量

    29692
收藏 人收藏

    评论

    相关推荐

    CC2541蓝牙模块串口乱码解决方法

    CC2541蓝牙模块串口乱码解决方法在CC2541蓝牙模块
    发表于 04-14 10:53

    单片机蓝牙模块连接的原理图

    单片机STC89C52与cc2541低功耗4.0蓝牙串口模块连接的原理图 补充内容 (2016-11-24 20:24):
    发表于 11-23 20:59

    cc2541蓝牙模块单片机串口通信

    cc2541蓝牙模块单片机串口通信
    发表于 03-17 22:12

    请问使用CC2541 Keyfob板和上位串口通信串口该如何接?串口通信的API接口在哪里?

    本帖最后由 一只耳朵怪 于 2018-5-22 17:35 编辑 现在想用CC2541 DK-MINI Revision 1.0.4套件里的CC2541 Keyfob板和上位串口
    发表于 05-22 09:23

    cc2541串口通信与编译

    cc2541cc2541蓝牙模块单片机串口通信蓝牙
    发表于 08-29 17:45

    请问两块单片机怎么通过CC2541蓝牙模块进行通信

    请教关于两块单片机通过CC2541蓝牙模块进行通信的程序,通过AT指令怎么让他们建立连接??
    发表于 04-10 23:27

    CC2541收不到蓝牙模块发送的数据

    我现在CC2541开发板和蓝牙模块连接上了。CC2541开发板往蓝牙模块发送数据,
    发表于 09-02 09:05

    关于用CC2541连接蓝牙模块的问题

    我想请问,用CC2541连接蓝牙模块,是吧CC2541作为主机容易编程呢还是作为从容易
    发表于 10-19 07:29

    智能插座方案设计CC2541蓝牙BLE方案

    智能插座方案设计CC2541蓝牙BLE方案
    发表于 12-18 14:20 65次下载

    基于CC2541蓝牙模块单片机串口通信

    本文开始对CC2541的定义和特性参数进行了阐述,其次介绍了CC2541器件的用途,最后阐述了基于单片机蓝牙硬件接口设计及软件设计方法。
    发表于 03-09 14:00 3.1w次阅读
    基于<b class='flag-5'>CC2541</b><b class='flag-5'>蓝牙</b><b class='flag-5'>模块</b>与<b class='flag-5'>单片机</b>的<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    cc2541中文数据手册及cc2541蓝牙源程序

    本文详细介绍cc2541的中文资料,其中包括CC2541器件特性、引脚图及用途,另外还介绍了CC2541原理图和与单片机的连接电路,最后介绍了cc2
    发表于 05-02 17:09 2.6w次阅读
    <b class='flag-5'>cc2541</b>中文数据手册及<b class='flag-5'>cc2541</b><b class='flag-5'>蓝牙</b>源程序

    使用51单片机控制CC2541蓝牙透传模块进行无线通信的资料说明

    CC2541使用之前需要对它先进行配置:用USB转TTL一端连接电脑,另一端连cc2541,然后打开串口调试助手,通过该工具往 cc2541
    发表于 09-06 17:26 16次下载
    使用51<b class='flag-5'>单片机</b>控制<b class='flag-5'>CC2541</b><b class='flag-5'>蓝牙</b>透传<b class='flag-5'>模块</b><b class='flag-5'>进行</b>无线<b class='flag-5'>通信</b>的资料说明

    CC2541蓝牙模块芯片开发环境安装教程资料免费下载

    本文档的主要内容详细介绍的是CC2541蓝牙模块芯片开发环境安装教程资料免费下载。
    发表于 05-05 08:00 22次下载
    <b class='flag-5'>CC2541</b><b class='flag-5'>蓝牙</b><b class='flag-5'>模块</b>芯片开发环境安装教程资料免费下载

    关于CC2541蓝牙开发板的学习笔记

    关于CC2541蓝牙开发板的学习笔记
    发表于 11-30 10:06 28次下载
    关于<b class='flag-5'>CC2541</b><b class='flag-5'>蓝牙</b>开发板的学习笔记

    JOINSET卓英社TI CC2541 遥控器模块

    JOINSET卓英社TI CC2541 遥控器模块
    发表于 03-01 14:11 182次阅读
    JOINSET卓英社TI <b class='flag-5'>CC2541</b> 遥控器<b class='flag-5'>模块</b>