- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于蓝牙技术平台智能总线开关软件设计
基于蓝牙技术平台智能总线开关软件设计
【摘要】蓝牙技术功耗低、抗信号衰落,减少同频干扰,保证传输可靠性等特点,使其在应用于总线开关控制系统实现无线控制中具有广阔的发展前景及重要的应用价值。本文采用单片机AT89C51作为处理器,蓝牙模块ROK101 007作为短距离通信工具,以此来达到无线控制总线开关的目的;并在Windows XP系统下,通过在Keil uVision2平台上编写基于C51的C代码,实现基于蓝牙技术平台的智能总线开关的软件设计,并提供部分程序代码。
【关键词】蓝牙;AT89C51;上位机;下位机
1.引言
蓝牙技术是爱立信移动通信公司在1994年提出的,用以解决移动电话与它的外围配件的连接问题,现已逐渐发展成一种短距离无线链路的概念。蓝牙技术已越来越多地嵌入到高档产品中,如PDA、移动电话,无线电话、台式计算机、笔记本、MP3播放器、数码相机等。针对蓝牙技术功耗低,抗信号衰落,减少同频干扰,保证传输的可靠性等的特点,其应用于总线开关控制系统实现无线控制将成为一种趋势,且具有广阔的发展前景和重要的应用价值。蓝牙技术大多用于网络连接和语音设备,而在工业控制领域中的应用相对较少,因此本文旨在通过单片机控制蓝牙模块实现对智能总线开关的控制。
2.设计原理
利用单片机AT89C51作为主机,通过其串口及UART协议与蓝牙模块ROK101 007进行数据传输。在传输数据时,首先把主机的波特率设定为蓝牙模块对应值,结合UART协议对蓝牙模块进行数据传输,蓝牙模块响应主机的指令,并返回响应的事件处理结果。通过主机的控制指令,在上位机与下位机的蓝牙模块之间建立一个链路,至此上位机与下位机可以通过蓝牙模块之间的无线通信进行数据传输,并实现对总线开关的远程智能控制(图1)。
3.硬件组成
上、下位机处理器都采用单片机AT89C51,无线传输部分采用Ericsson公司的蓝牙模块ROK101 007,编程软件采用Keil uVision2编程工具,编写基于C51的C语言代码,并将其固化在AT89C51单片机中。
采用UART传输层进行通信,波特率由定时器T1设定,采用方式1工作,大小为9600bit/s。下位机的开关状态由LED显示,采用8路LED,并通过继电器来作为外围硬件开关电路。
由于单片机与蓝牙模块在同一块PCB上,为此单片机与蓝牙模块采用二线制连接,蓝牙模块与AT89C51串口之间采用蓝牙模块提供的UART传输层接口实现通信,需要外接电路实现电平转换,由于蓝牙模块需3.3V供电,因此这里选用采用电平转换器件MAX232进行电源转换。另外,为了将5V输入电压转换为3.3V电压,选用电源稳压芯片LT1117-3.3为蓝牙模块供电。
4.程序设计
本设计主要功能实现可分为两个部分:一部分是上位机,通过读P1.0~P1.3口的电平状态,发送总线开关控制命令,利用外部中断INT1来控制是否发送总线开关控制命令;另一部分是下位机,用来接收上位机传送的命令,并实现控制与命令相对的总线开关状态的功能。
4.1 蓝牙点对点通讯
本文采用单片机的串行通信机制,并通过通用异步接收器/发送器(UART)来实现对蓝牙模块的初始化。蓝牙模块的初始化包括蓝牙模块的复位、读缓存、写使能、写使能鉴权、设置事件滤波器、读蓝牙地址、建立ACL数据链路等。图2简要的给出了本课题中上、下位机连接流程图。
4.2 上位机的软件实现
(1)上位机软件总体框架的设计
上位机采用AT89C51,并利用其P1.0- P1.2端口作为命令控制器,其各端口电平状态代表控制指令。当命令准备好后,通过外部中断INT1触发主机发送命令,在初始化蓝牙模块以及建立连接的基础上,通过蓝牙模块把指令传送给远端下位机。
软件的实现是在Windows XP系统下,利用Keil uVision2开发工具实现的,其编程语言是基于C51的C语言,上位机系统的控制流程如图3所示。
(2)上位机数据传输的软件设计
要进行数据传输首先要打开蓝牙设备,对蓝牙设备进行参数配置,包括流量控制、读取本地蓝牙设备的名字以及本地蓝牙设备地址BD_ADDR等等。接着就开始建立连接等。在发起建立ACL连接的请求后,如果对方同意建立连接并且连接成功,那么将会获取ACL连接的句柄,有了这个句柄,就可以发送ACL数据,实现通信,具体流程如图4所示。
4.3 下位机的软件实现
(1)下位机软件总体框架的设计
下位机在设定好串口以及初始化蓝牙模块后,即可接收来自上位机的控制命令,达到控制相应的总线开关的目的。综合考虑开发周期及研制经费问题,本文采用AT89C51作为下位机,继电器作为总线开关控制器,用二极管代表总线的开关状态。由于上位机采
文档评论(0)