蓝牙透传的串行通信电路设计研究

时间:2022-09-16 11:16:51

蓝牙透传的串行通信电路设计研究

摘要:设计串行通信电路,实现手机蓝牙与基于51单片机的蓝牙模块之间的数据透传功能。该功能实现的过程是,手机上的数据经蓝牙透传无线通信方式发送至单片机开发板上,单片机将接收到的8位数据显示在单片机开发板的发光二极管(LED)上,同时将接收到的数据通过蓝牙模块发送至手机App客户端上,以确认发送数据的正确性。

关键词:蓝牙数据透传;串行异步通信;数据交互;51单片机

蓝牙技术是基于WPAN(wirelesspersonalareanetwork)的无线网络连接技术,可在固定设备与移动设备之间建立短程收发连接[1]。它属于一种短距离通信技术,应用前景良好。尤其在智能家具、智能穿戴设备的设计中,操作易行的蓝牙数据交互方式受到了消费者的青睐[2]。目前,基于MCS-51系列单片机的产品占有一部分市场,与其配套的各类开发系统和软件也在不断完善。本次研究将针对串行通信电路进行设计,拟实现基于STC89C52的蓝牙数据透传与串行通信功能。

1电路设计

系统涉及硬件部分和电路部分。其中,硬件部分包括手机用户端和51单片机开发板及蓝牙模块。电路部分为手机蓝牙与基于51单片机的蓝牙模块通信电路。其设计框图如图1所示。手机与蓝牙模块之间采用无线通信透传模式,最大通信距离为50m。蓝牙模块与开发板之间采用串口通信方式。

2蓝牙数据透传方式

2.1数据透传的概念。蓝牙透传即透明传输,是蓝牙模块的一种工作方式,一般应用于串口模块双向通信[3-4]。现有的蓝牙串口透传模块可供用户更好地开发蓝牙无线传输产品,其透传协议没有封装,不需要处理,也没有蓝牙底层协议栈操作要求。用户可以参考手册直接使用硬件提供的API(applicationprograminterface)接口来实现数据透传,而不需要更深入地了解蓝牙技术[5]。2.2蓝牙标准及参数配置。目前市面上的产品已经开始应用蓝牙5.0和蓝牙4.2技术。蓝牙技术主要应用于有较大数据吞吐量和抗干扰能力比较强的传输场合,如手机通讯设备和音频数据传输设备。JDY-10M透传模块基于蓝牙4.0标准,工作频段为2.4GHz范围,具有成本低、功耗小、尺寸小、信号强、数据传输稳定等特性。相比于之前的低版本模块,蓝牙4.0版本透传模块具有传输功耗更低、传输距离更远、传输稳定性更好的特点。低功耗蓝牙设计的作用,在于用深度睡眠状态来代替传统蓝牙的空闲状态。在深度睡眠状态下主机长时间处于超低功耗的循环状态,只在需要运作时由核心控制器来启动。因此,这样的设计可实现低功耗模式[5]。以上低成本、低功耗的优点,表明JDY-10M透传模块比较适用于DIY开发。AT指令集用于设置蓝牙模块参数,可将USB转TTL工具的VCC、GND、TX、RX等接口与蓝牙模块对应的管脚相连接。用PC机将蓝牙模块的传输模式设置为透传模式,其命令参数为:AT+CLAS-SA0(每条命令结尾+换行符)。因在单片机串行通信代码中选用的波特率为4800bps,故需将蓝牙模块串口通信波特率设置为4800bps,其命令参数为:AT+BAUD5。串口助手与蓝牙模块参数设置界面如图2所示,具体指令可参考JDY-10M组网模块中文手册。

3STC89C52单片机的串口通信设计

STC89C52单片机是51单片机的增强型,设计中使用STC89C52单片机作为接收终端。51单片机内部有一个全双工串行口[6-7],能同时接收和发送数据。SBUF寄存器包括2个物理结构相互独立的数据接收器、发送缓冲器,通过指令对SBUF寄存器的读写可同时发送和接收,对应的IO口为RXD(P3.0)、TXD(P3.1)。采用异步通信方式,在12MHz晶振频率下,配置通信波特率为4800bps,寄存器SMOD位为1,即寄存器PCON=0x80倍增。在方式2下,定时器T1的初值可自动重装载,定时更加准确,因此波特率发生器工作方式选择T1的方式2。串行通信工作方式选择波特率可变的方式1,即寄存器SCON=0x50。利用中断方式编程,串行中断函数的方式编程需设置允许接收,即REN=1。波特率按式(1)来计算:S=2SMOD32f12(256-X)(1)式中:S为波特率;f为晶振频率;X为定时器T1的初值。

4代码设计与实现

选用普中科技51单片机开发板作为数据接收的载体,将编写好的C代码HEX文件烧写在STC89C52中。主程序与中断服务程序流程如图3所示,对应的中断服务函数如下:voidUsart()interrupt4{unsignedcharreceive;receive=SBUF;//将接收SBUF接收到的数据传给变量receiveRI=0;//消除接收中断标志位数据P2=receive;//请收到的数据赋值给P2的LEDSBUF=receive;//将接收到的数据传给发送SBUFwhile(!TI);//等待发送完毕TI=0;//发送中断标志位清零,为下次发送作准备}通过串口调试助手,先将蓝牙模块配置设为数据透传模式,波特率为4800bps。然后,将蓝牙模块与MCS51单片机的对应管脚相连,进行硬件搭建。在搭建好的硬件上,通电,打开手机蓝牙测试App,搜索蓝牙模块,点击配对。这时,界面会显示蓝牙模块的MAC地址和状态已连接。选择十六进制发送,输入十六进制数55,点击发送。此时,可以在开发板上看到0x55在LED上的显示效果。同时,在App接收界面会收到单片机返回的十六进制数55,以确认发送数据的正确性。由此实现蓝牙数据透传和串口通信的功能,其实测效果如图4所示。

5调试及分析

设置蓝牙模块参数,默认波特率为115200,发送命令AT+BAUD,确认波特率为4800bps。当设置完成后,需要重启蓝牙模块。串行编程中,波特率是否需要倍增,可先将SMOD设为0,用式(1)计算后确定。当初值X得出小数X.5的形式时,就需要倍增,倍增后定时器的初值约等于整数;否则,单片机接收到的数据为误码,不能被LED正确显示,也不能被手机客户端正确接收。6结语针对STC89C52单片机进行串行通信电路设计,实现了蓝牙透传功能。本次设计中,可将手机上的数据经蓝牙透传无线通信方式发送至STC89C52单片机上,并通过LED显示接收到的8位数据;同时,单片机将串口接收到的数据通过蓝牙模块返回至手机App客户端上,以确认发送数据的正确性。

参考文献

[1]张凌,姚萌.蓝牙通信过程解析与研究[J].计算机应用研究,2002(9):146-150.

[2]汪振飞,刘军.基于蓝牙技术的单片机与计算机无线通信系统[J].科技创新导报,2007(35):11-12.

[3]王东波,秦会斌,董胜奎.基于MCS-51和蓝牙的家庭智能照明系统设计[J].无线互联科技,2013(7):199-200.

[4]张文海.基于物联网的智能家居安防系统设计[D].西安:西安电子科技大学,2015:1-5.

[5]马建仓,罗亚军,赵玉亭.蓝牙核心技术及应用[M].北京:科学出版社,2003:2-8.

[6]马忠梅,籍顺心,张凯,等.单片机的C语言应用程序设计[M].4版.北京:北京航空航天大学出版社,2007:193-197.

[7]邱春玲,李肃义,张春生,等.单片机与嵌入式系统基础[M].北京:机械工业出版社,2016:100-112.

作者:朱艳生 刘金亭 武文杰 陈旺 单位:1.重庆邮电大学移通学院通信与物联网工程学院 2.西华师范大学电子信息工程学院