基于蓝牙的无线数据采集系统设计毕业论文_第1页
基于蓝牙的无线数据采集系统设计毕业论文_第2页
基于蓝牙的无线数据采集系统设计毕业论文_第3页
基于蓝牙的无线数据采集系统设计毕业论文_第4页
基于蓝牙的无线数据采集系统设计毕业论文_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

基于蓝牙的无线数据采集系统设计毕业论文目录摘要 1第一章绪论 21.1课题研究相关背景 21.2课题研究的目的及意义 31.3蓝牙技术的发展状况 3第二章无线数据采集系统硬件设计 42.1系统的整体设计方案 42.2系统的整体结构 52.3系统的整体功能设计图 5第三章温度传感器模块 73.1温度传感器的分类及其型号 73.1.1接触式温度传感器 73.1.2非接触式温度传感器 73.1.3常见温度传感器 93.2温度传感器的选型 9第四章STM32F103处理器 124.1STM32处理器简介: 124.2STM32重要参数: 124.3STM32性能特点: 12第五章TFT彩色液晶显示屏 135.1TFTLCD介绍 135.2TFT特点 135.3驱动芯片 13第六章HC-05蓝牙模块 156.1HC-05蓝牙模块介绍 156.2蓝牙配置 15第七章无线数据采集系统软件设计 187.1数据采集部分软件设计与实现 187.2控制部分程序设计及实现 197.3系统的软件调试 20结论 24致谢 25参考文献 26附录 27

第一章绪论1.1课题研究相关背景蓝牙是一种支持设备短距离通信的无线电技术。可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换,蓝牙的标准是IEEE802.15,工作在2.4GHz频带,带宽为1Mb/s。蓝牙技术最初由电信巨头爱立信公司于1994年创制,当时是作为RS232数据线的替代方案。蓝牙可连接多个设备,克服了数据同步的难题。如今蓝牙由蓝牙技术联盟(BluetoothSpecialInterestGroup,简称SIG)管理。蓝牙技术联盟在全球拥有超过25,000家成员公司,它们分布在电信、计算机、网络、和消费电子等多重领域。蓝牙技术在低功耗和体积小方面有着其他技术无法比拟的优势,并且可以实现点对点、点对多点的连接,特别是用于便携式设备。数据采集系统是计算机、智能仪器与外界世界联系的桥梁,是获取信息的重要途径。数据采集技术是信息科技的重要分支,它不仅应用在智能仪器中,而且在现代工业生产、国防军事及科学研究等方面都得到广泛应用,无论是过程控制、状态检测,还是故障诊断、质量检测,都离不开数据采集系统。数据采集的任务,具体的说,就是采集传感器输出的模拟信号并转换成计算机能识别的数字信号,然后送入计算机或相应的信号处理系统,根据不同需要进行相应的计算和处理,得出所需要的数据。与此同时,将计算机得到的数据进行显示或打印,以便实现对某种物理量的监视,其中的一部分数据还将被控制生产过程中的计算机控制系统用来控制某些物理量。1.2课题研究的目的及意义随着微电子技术和集成电路的发展,微处理器、存储器和I/O接口技术的不断提高、体积越来越小、价格越来越低,使数据的采集器不断像智能化、集成化、小型化发展,信息采集技术是获得信息的主要手段,它广泛用于信号监测、信号处理、仪器仪表等领域。而传统的信息采集端和控制端是以有线的形式连接的,目前工业现场数据采集过程中,复杂的线缆给工作带来不便,甚至是事故发生的隐患,同时存在着线缆无法完成的任务,因此,采用无线的数据采集方式,利用更好的软件开发数据采集及分析系统显得尤为必要。蓝牙技术在低功耗和体积小方面有着其他技术无法比拟的优势,并且可以实现点对点、点对多点的连接,特别是用于便携式设备。本文正是将无线蓝牙技术和数据采集技术相结合,集成在一起组成数据采集与无线数据传输模块,设计出一种体积小、低功耗、安装维护方便的便携式产品,实现了蓝牙无线数据采集和传输,使之在工矿企业或在实验室都能得到广泛的应用。用无线产品代替有线产品将是科技发展的趋势,基于蓝牙技术的嵌入式监测与诊断系统的开发是自动化和智能化测控系统研究的热点领域。因此,这方面的研究具有较为重大的现实意义和广阔的应用前景。1.3蓝牙技术的发展状况自从1998年提出蓝牙技术以来,蓝牙技术的发展异常迅速。蓝牙Bluetooth作为一种新的短距离无线通信技术标准,受到全世界越来越多工业界生产厂家和研究机构的广泛关注。成立了世界蓝牙组织BluetoothSIG,采用技术标准公开的策略来推广蓝牙技术,现已发展成为一个相当大的工业界高新技术标准化组织,全球支持蓝牙技术的2000多家设备制造商都已经成为它的会员,一项公开的、全球统一的技术规范得到了工业界如此广泛的关注和支持在以往是罕见的。近年来,世界上一些权威的标准化组织,也都在关注蓝牙技术标准的制定和发展。例如,IEEE的标准化机构,也已经成立了802.15工作组,专门关注有关蓝牙技术标准的兼容和未来的发展等问题。IEEE802.15.1TG1就是讨论建立与蓝牙技术1.0版本相一致的标准;IEEE802.15.2TG2是探讨蓝牙如何与IEEE802.11b无线局域网技术共存的问题;而IEEE802.15.3TG3则是研究未来蓝牙技术向更高速率(如10-20Mbits/s)发展的问题。国内的一些生产厂家与研究部门也准备开始组织蓝牙技术产品的开发。由来自国家主管部门、企业界、学术界以及研究生产机构的领导、专家、教授等权威人士发起成立的中国蓝牙技术发展与应用论坛,吸引了众多关注蓝牙技术的各界人士,还组织国内各界与世界蓝牙组织SIG的代表,就双方所关注的问题进行了认真的讨论。并就双方今后进一步加强联系、共享蓝牙技术信息资源、共同促进蓝牙技术在中国的推广与应用等问题达成共识。蓝牙是取代数据电缆的短距离无线通信技术,可以支持物体与物体之间的通信,工作频段是全球开放的2.4GHz频段,可以同时进行数据和语音传输,传输速率可达到10Mb/s,使得在其范围内的各种信息化设备都能实现无缝资源共享。蓝牙技术的应用被认为非常广泛而且极具潜力。它可以应用于无线设备(如PDA、手机、智能电话、无绳电话)、图像处理设备(照相机、打印机、扫描仪)、安全产品(智能卡、身份识别、票据管理、安全检查)、消费娱乐(耳机、MP3、游戏)汽车产品(GPS、ABS、动力系统、安全气袋)、家用电器(电视机、电冰箱、电烤箱、微波炉、音响、录像机)、医疗健身、建筑、玩具等领域。蓝牙行业对于市场的持续增长感到欣慰,现在没有人再质疑它的生命力。2002年,400余种蓝牙产品的销量总共达到了3000万件;而2003年的数字是2002年的2倍。In-Stat/MDR公司预测,蓝牙市场的规模在2007年将膨胀到6亿件。爱立信技术授权公司的总裁MariaKhorsand表示:“在如此艰难的经济环境下,蓝牙是少数仍在增长的产品之一”第二章无线数据采集系统硬件设计2.1系统的整体设计方案根据课题的设计要求,提出系统设计的整体方案,其系统框图如图2.1所示。图2.1系统的整体设计方案整个系统由信号采集模块DS18B20、中心控制模块STM32、蓝牙模块HC-05及外围电路组成。信息采集模块是本设计系统的一个关键点,关系着采集信息的质量和精度。模拟信号的采集电路通常由跟随器、模拟开关、A/D转换器、缓冲器等部分组成。被采集的信号经由A/D转换成数字信号后存入存储器,电路的整个时序由逻辑控制模块协调控制。主控制模块由STM32及其外围电路构成。STM32是控制模块的核心部分,主要完成数据的存储、计算及其相应的逻辑控制,并实现与蓝牙模块的通信等重要任务。蓝牙模块主要负责数据的发送与接收,完成数据的无线通信。2.2系统的整体结构系统的整体机构如图2.2、2.3所示。图2.2系统整体结构图--采集模块部分图2.3系统整体结构图—控制模块部分2.3系统的整体功能设计图系统的硬件原理图如下图2.4和2.5所示。图2.4采集系统原理图图2.5控制系统原理图第三章温度传感器模块3.1温度传感器的分类及其型号温度传感器(temperaturetransducer)是指能感受温度并转换成可用输出信号的传感器。温度传感器是温度测量仪表的核心部分,品种繁多。按测量方式可分为接触式和非接触式两大类,按照传感器材料及电子元件特性分为热电阻和热电偶两类。3.1.1接触式温度传感器接触式温度传感器的检测部分与被测对象有良好的接触,又称温度计。温度计通过传导或对流达到热平衡,从而使温度计的示值能直接表示被测对象的温度。一般测量精度较高。在一定的测温范围内,温度计也可测量物体内部的温度分布。但对于运动体、小目标或热容量很小的对象则会产生较大的测量误差,常用的温度计有双金属温度计、玻璃液体温度计、压力式温度计、电阻温度计、热敏电阻和温差电偶等。它们广泛应用于工业、农业、商业等部门。在日常生活中人们也常常使用这些温度计。随着低温技术在国防工程、空间技术、冶金、电子、食品、医药和石油化工等部门的广泛应用和超导技术的研究,测量120K以下温度的低温温度计得到了发展,如低温气体温度计、蒸汽压温度计、声学温度计、顺磁盐温度计、量子温度计、低温热电阻和低温温差电偶等。低温温度计要求感温元件体积小、准确度高、复现性和稳定性好。利用多孔高硅氧玻璃渗碳烧结而成的渗碳玻璃热电阻就是低温温度计的一种感温元件,可用于测量1.6~300K范围内的温度。例如图3.1。图3.1温度传感器3.1.2非接触式温度传感器它的敏感元件与被测对象互不接触,又称非接触式测温仪表。这种仪表可用来测量运动物体、小目标和热容量小或温度变化迅速(瞬变)对象的表面温度,也可用于测量温度场的温度分布。最常用的非接触式测温仪表基于黑体辐射的基本定律,称为辐射测温仪表。辐射测温法包括亮度法(见光学高温计)、辐射法(见辐射高温计)和比色法(见比色温度计)。各类辐射测温方法只能测出对应的光度温度、辐射温度或比色温度。只有对黑体(吸收全部辐射并不反射光的物体)所测温度才是真实温度。如欲测定物体的真实温度,则必须进行材料表面发射率的修正。而材料表面发射率不仅取决于温度和波长,而且还与表面状态、涂膜和微观组织等有关,因此很难精确测量。在自动化生产中往往需要利用辐射测温法来测量或控制某些物体的表面温度,如冶金中的钢带轧制温度、轧辊温度、锻件温度和各种熔融金属在冶炼炉或坩埚中的温度。在这些具体情况下,物体表面发射率的测量是相当困难的。对于固体表面温度自动测量和控制,可以采用附加的反射镜使与被测表面一起组成黑体空腔。附加辐射的影响能提高被测表面的有效辐射和有效发射系数。利用有效发射系数通过仪表对实测温度进行相应的修正,最终可得到被测表面的真实温度。最为典型的附加反射镜是半球反射镜。球中心附近被测表面的漫射辐射能受半球镜反射回到表面而形成附加辐射,从而提高有效发射系数式中ε为材料表面发射率,ρ为反射镜的反射率。至于气体和液体介质真实温度的辐射测量,则可以用插入耐热材料管至一定深度以形成黑体空腔的方法。通过计算求出与介质达到热平衡后的圆筒空腔的有效发射系数。在自动测量和控制中就可以用此值对所测腔底温度(即介质温度)进行修正而得到介质的真实温度。非接触测温优点:测量上限不受感温元件耐温程度的限制,因而对最高可测温度原则上没有限制。对于1800℃以上的高温,主要采用非接触测温方法。随着红外技术的发展,辐射测温逐渐由可见光向红外线扩展,700℃以下直至常温都已采用,且分辨率很高。图3.2非接触式温度传感器举例3.1.3常见温度传感器(1)模拟式温度传感器:其原理是将驱动电路、信号处理电路以及必要的逻辑控制电路集成在单片IC上,具有实际尺寸小、使用方便、灵敏度高、线性度好、响应速度快等优点。常见模拟式温度传感器有LM3911、LM335、LM45、AD22103(电压输出型);AD590(电流输出型)等。LM135\235\335系列是美国国家半导体公司(NS)生产的一种高精度易校正的集成温度传感器,是电压输出型温度传感器,工作特性类似于齐纳稳压管。该系列器件灵敏度为10mV/K,具有小于1Ω的动态阻抗,工作电流范围从400μA到5mA,精度为1℃,LM135的温度范围为-55℃~+150℃,LM235的温度范围为-40℃~+125℃,LM335为-40℃~+100℃。封装形式有TO-46、TO-92、SO-8。该器件广泛应用于温度测量、温差测量以及温度补偿系统中。AD590是美国模拟器件公司的电流输出型温度传感器,供电电压范围为3~30V,可以承受44V正向电压和20V反向电压,测温范围为-55℃~+150℃,输出电流为223μA~423μA,输出电流变化1μA相当于温度变化1℃,最大非线性误差为±0.3℃,响应时间仅为20μs,重复性误差低至±0.05℃,功耗约为2mW,输出电流信号的传输距离可达到1km以上,作为一种高阻电流源,最高可达20MΩ,所以它不必考虑选择开关或CMOS多路转换器所引入的附加电阻造成的误差,适用于多点温度测量和远距离温度测量的控制。

(2)数字式温度传感器:其原理是将敏感元件、A/D转换单元、存储器等集成在一个芯片上,直接输出反应被测温度的数字信号,使用方便,但响应速度较慢(100ms数量级)。DS18B20是美国Dallas半导体公司生产的世界上第一片支持“一线总线”接口的数字式温度传感器,供电电压范围为3~5.5V,测温范围为-55℃~+125℃,可编程的9~12位分辨率,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,出厂设置默认为12位,在12位分辨率时最多在750ms内把温度值转换为数字。3.2温度传感器的选型DS18B20因为其将敏感元件、A/D转换单元、存储器等集成在一个芯片上,直接输出反应被测温度的数字信号,使用方便等优点符合本设计特点,所以选用DS18B20数字式温度传感器。DS18B20主要特征:•独特的单线接口仅需一个端口引脚进行通讯•简单的多点分布应用•无需外部器件•可通过数据线供电•零待机功耗•测温范围-55~+125℃,以0.5℃递增。华氏器件-67~+2570F,以0.90F递增•温度以9位数字量读出•温度数字量转换时间200ms(典型值)•用户可定义的非易失性温度报警设置•报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件•应用包括温度控制、工业系统、消费品、温度计或任何热感测系统DS18B20内部框图如图3.3图3.3DS18B20内部框图DS1820有三个主要数字部件:•64位激光ROM,•温度传感器,•非易失性温度报警触发器TH和TL。器件用如下方式从单线通讯线上汲取能量:在信号线处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。寄生电源有两个优点:•进行远距离测温时,无需本地电源供电;•可以在没有常规电源的情况下度ROM,要想使DS18B20能够进行精确的温度转换,I/O口必须在转化期间供电。DS1820通过一种片上温度测量技术来测量温度。图3.4示出了温度测量电路的方框图。图3.4测温电路方框图表3.1温度/数据关系表DS1820是这样测温的:用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55℃的一个值。如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55℃)的值增加,表明所测温度大于-55℃。第四章STM32F103处理器4.1STM32处理器简介:STM32处理器基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex-M3内核。按性能分成两个不同的系列:STM32F103“增强型”系列和STM32F101“基本型”系列。增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。STM32采用ARM公司的高性能Cortex-M3内核1.25DMips/MHz,而ARM7TDMI只有0.95DMips/MHz,一流的外设1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI,18MHz的I/O翻转速度,低功耗在72MHz时消耗36mA(所有外设处于工作状态),待机时下降到2μA,最大的集成度复位电路、低电压检测、调压器、精确的RC振荡器等简单的结构和易用的工具。4.2STM32重要参数:•2V-3.6V供电•容忍5V的I/O管脚•优异的安全时钟模式•带唤醒功能的低功耗模式•内部RC振荡器•内嵌复位电路•工作温度范围:•-40℃至+85℃或105℃4.3STM32性能特点:•Cortex-M3采用了哈佛结构,拥有多重总线,可以进行并行处理,因而提升了整体性能。•有完全基于硬件进行中断处理,最多可减少12个时钟周期数,在实际应用中可减少70%中断。•Cortex-M3在支持传统的JTAG基础上更采用了新型的单线调试(SingleWire)技术,专门拿出一个引脚来做调试,从而节约了大笔的调试工具费用。•Cortex.M3中还集成了大部分存储器控制器,这样工程师可以直接在MCU外连接Flash,降低了设计难度和应用障碍。•Cortex.M3处理器支持新型ARMThumb–2指令集,由于Thumb–2指令集融合了Thumb指令集和ARM指令集,使32位指令集的性能和16位指令集的代码密度取得了平衡。•Cortex.M3处理器支持两种处理器的操作模式,还支持两级特权操作,大大提高了系统的安全性和稳定性。•内部集成了硬件乘法器和除法器,在运算效率上大大提高。•最高72MHzCPU多达20K字节SRAM2x12位ADC温度传感PWM定时器CANUSB第五章TFT彩色液晶显示屏TFT液晶屏为每个像素都设有一个半导体开关,其加工工艺类似于大规模集成电路。由于每个像素都可以通过点脉冲直接控制,因而,每个节点都相对独立,并可以进行连续控制,这样的设计不仅提高了显示屏的反应速度,同时可以精确控制显示灰度,所以TFT液晶的色彩更逼真。5.1TFTLCD介绍TFT(ThinFilmTransistor)是指薄膜晶体管,意即每个液晶像素点都是由集成在像素点后面的薄膜晶体管来驱动,从而可以做到高速度、高亮度、高对比度显示屏幕信息,是目前最好的LCD彩色显示设备之一,其效果接近CRT显示器,是现在笔记本电脑和台式机上的主流显示设备。TFT的每个像素点都是由集成在自身上的TFT来控制,是有源像素点。因此,不但速度可以极大提高,而且对比度和亮度也大大提高了,同时分辨率也达到了很高水平。TFT-LCD液晶显示屏是薄膜晶体管型液晶显示屏,也就是“真彩”(TFT)。TFT液晶为每个像素都设有一个半导体开关,每个像素都可以通过点脉冲直接控制,因而每个节点都相对独立,并可以连续控制,不仅提高了显示屏的反应速度,同时可以精确控制显示色阶,所以TFT液晶的色彩更真。TFT为薄膜晶体管有源矩阵液晶显示器件。TFT液晶显示器在每个像素点上设计一个场效应开关管,这样就容易实现真彩色、高分辨率的液晶显示器件。现在的TFT型液晶一般都实现了18bit以上的彩色(218色),甚至达到24bit彩色;在分辨率上,实现VGA(640×480)、SVGA(800×600)、XGA(1024×768)、SXGA(1280×1024),甚至UXGA(1600×1200)都已成为现实。5.2TFT特点TFT的亮度好,对比度高,层次感强,颜色鲜艳。缺点是比较耗电,成本较高。TFT型的液晶显示器主要的构成包括:萤光管、导光板、偏光板、滤光板、玻璃基板、配向膜、液晶材料、薄模式晶体管等等。5.3驱动芯片 采用ST7793驱动芯片驱动,该芯片是一种万色单片机/驱动控制器、图形型液晶。它由720源线和432栅线驱动电路。该芯片能够直接连接到外部微处理器,并接受8位/9位/16位/18位并行接口、SPI和MDDI。显示数据可以存储在240x432x18位片上显示数据RAM。它可以执行显示数据RAM读/写操作与外部时钟,以尽量减少功耗。此外,由于用于驱动液晶的集成电源电路,能够使显示系统具有最少组件。5.3.1芯片特点•单片TFT-LCD控制器/驱动器与片上帧存储器显示器的RGB分辨率:240×432(H)×(V)•帧内存大小:240×432×18位=1866240位•液晶驱动输出电路源输出:240个RGB通道输出:432通道公共电极输出•显示颜色(颜色模式)彩色:262k,RGB=(666)最大,空闲模式下颜色:彩色,降低RGB=(111),空闲模式•用于各种显示数据输入格式的可编程像素颜色格式(颜色深度)16位/像素:RGB=(565)8位/像素:RGB=(666)•接口8080系列单片机的并行接口(8位,9位、16位和18位)16/18RGB接口(vsyncx,hsyncx,dotclk,启用,DB[17点])串行外设接口(SPI接口)垂直同步接口(8080系列单片机的接口+vsyncx)fmark接口(8080系列单片机的接口+fmark)MDDI(1型)•显示功能部分显示功能彩色显示功能垂直滚动功能•LC介质类型选项LC型-MVALC型-反射透射型液晶•芯片内建电路DC直流转换器非易失(NV)内存存储初始寄存器设置和出厂默认值(模块ID模块版本等)用于显示时钟产生的内部振荡器定时控制器•内置内存的LCD初始寄存器设置8位ID7位闪烁的调整•驱动算法点反转柱反演•宽电源电压范围-I/O电压(VDDI到DGND):1.65v~VDD对数字电路的电压(VDDDGND):2.5v~3.3v对模拟电路的电压(VDDA至AGND):2.5v~3.3v•片上电源系统源电压:+6.4~-4.2vVCOM水平:AGND门驱动器的高水平(VGH至AGND):+12.16v~+15.05v门驱动的低水平(VGL至AGND):-12.37v~-7.7v•齿轮装配优化布局•操作温度范围:−30ºC+85ºC•低功率消耗第六章HC-05蓝牙模块6.1HC-05蓝牙模块介绍蓝牙模块实物图如图6.1,蓝牙模块引脚图如图6.2 图6.1产品实物图图6.2引脚对应图HC-05蓝牙模块的特点:•采用CSR主流蓝牙芯片,蓝牙V2.0协议标准•输入电压:3.6V--6V,禁止超过7V•波特率为1200,2400,4800,9600,19200,38400,57600,115200用户可设置•带连接状态指示灯,LED快闪表示没有蓝牙连接;LED慢闪表示进入AT命令模式•板载3.3V稳压芯片,输入电压直流3.6V-6V;未配对时,电流约30mA(因LED灯闪烁,电流处于变化状态);配对成功后,电流大约10mA•用于GPS导航系统,水电煤气抄表系统,工业现场采控系统•可以与蓝牙笔记本电脑、电脑加蓝牙适配器等设备进行无缝连接•HC-05嵌入式蓝牙串口通讯模块(以下简称模块)具有两种工作模式:命令响应工作模式和自动连接工作模式,在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;当模块处于命令响应工作模式时能执行下述所有AT命令,用户可向模块发送各种AT指令,为模块设定控制参数或发布控制命令。通过控制模块外部引脚(PIO11)输入电平,可以实现模块工作状态的动态转换。6.2蓝牙配置6.2.1配置方法①连线方式:USB转TTL模块(下载器)与HC-05蓝牙模块的连接方法如下:蓝牙模块 USB转TTL模块RXD<>TXDTXD<>RXDVCC<>VCCGND<>GND注意:交叉连接②设置步骤 进入AT指令模式(所有AT指令都必须换行) 设置串口波特率115200,无校验位,无停止位 修改蓝牙名称、密码 设置蓝牙的主从模式(1主1从) 实现主从模块的绑定(两个模块实现透传)6.2.2操作实例①用杜邦线连接好USB转TTL模块(下载器)与HC-05蓝牙模块②进入AT指令模式 将下载器与电脑连接,(按住HC-05上的复位键,再接通电源,发现指示灯缓慢闪灭,表示进入AT指令模式),并且打开串口助手。设置波特率38400,数据位8位,停止位1位,无校验位,无流控制。 测试通讯 发送:AT(换行)返回:OK③设置蓝牙串口波特率115200,无校验位,1停止位指令:AT+UART=115200,0,0(换行)返回:OK设定好波特率后,可以通过查询指令,查看设置是否正确。查询波特率:指令:AT+UART?(换行)返回:+UART:115200,0,0OK表示设置正确④修改蓝牙名称及密码 修改名称指令:AT+NAME=HC-05CJ\r\n——设置模块设备名为:“HC-05CJ”返回:OK 修改密码指令:AT+PSWD=1335139返回:OK 查询密码指令:AT+PSWD?返回:+PSWD:1335139OK⑤设置蓝牙的主从模式指令:AT+ROLE=0(0—从,1—主)返回:OK⑥实现主、从模块的通讯绑定实现绑定的条件: 两个蓝牙模块必须设置成一个为主模块,一个为蓝牙从模块,密码必须一致,设定蓝牙连接模式(指定蓝牙地址连接模式),互相绑定对方地址。前两个条件通过①-⑥已经设置好,主要是后两个条件的设置。 设定蓝牙连接模式指令:AT+CMODE=0(0:指定蓝牙地址连接模式)返回:OK 互相绑定对方地址查询自身地址指令:AT+ADDR?返回:+ADDR:2015:04:097966OK绑定对方地址AT+BIND=98d3:32:7071f5返回:OK绑定好后,同样使用查询指令,查看是否绑定正确。使用同样的方法,实现主模块绑定从模块地址。所有操作完成后,主从模块就建立好了连接。对两个模块重新上电,观察指示灯会发现,主从迅速建立好了通信。

第七章无线数据采集系统软件设计最初单片机编程采用的是汇编语言,但是汇编语言冗长单调、易出BUG、代码不易维护、兼容性不好等缺点,近年来逐渐被C语言所取代。C语言兼容了多种高级语言的特点,并具备汇编语言的功能。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进、扩充和移植。鉴于C语言的优点本设计采用C语言编程,编程软件采用KeilMDK。本设计软件共分为以下两个部分:7.1数据采集部分软件设计与实现上电后进行蓝牙模块及串口初始化,接着进行DS18B20初始化,然后发送命令让DS18B20进行温度数据的采集转化,数据采集完成后,蓝牙模块主机开始搜索蓝牙模块从机,搜索到并连接成功后,将数据通过蓝牙传输到控制部分,程序流程图如下图7.1所示:图7.1采集部分程序流程图7.2控制部分程序设计及实现系统上电后设备首先进行初始化工作,包括串口、蓝牙模块和TFT-LCD等系统的初始化,然后显示开机画面,等待蓝牙主从设备的连接,待蓝牙连接后进行数据的接收转化,最终将数据显示在TFT-LCD上,具体程序流程图见图7.2所示:图7.2控制部分程序框图根据以上程序流程图,软件设计由以下子程序组成:单片机串口中断初始化、温度传感器初始化、蓝牙模块初始化、数据采集处理、数据发送、数据接收、数据显示和延时等。采用库函数开发的方法,分别调用个程序库,经过调试即可。程序见附录。7.3系统的软件调试本设计的采用KeilMDK软件进行编程设计,使用Jlink调试器运用Debug工具直接在线调试。调试过程中可以观看各寄存器中的值、各端口和RAM中的值、设置断点、单步运行等,因为加入了Jlink调试器可以把调试中过程在硬件上直接显示。为了程序正确实现目的,应该做好以下准备工作:•正确安装KeilMDK软件,及Jlink驱动。•在Keil中设置好各项参数,调试过程中不要放过任何细节,细心调试解决各种BUG。•正确设置Jlink调试界面,加载芯片Flash。以上准备就绪,运用Keil软件自带的Download将程序下载进单片机。图7.3Keil编程界面图7.4Jlink设置界面经过调试,基于蓝牙的无线数据采集系统终于完成。实物如下图7.5、7.6所示。7.5采集系统实物完成图7.6控制系统实物完成图

结论本设计目的在于设计一个利用蓝牙技术进行无线数据采集的系统。本设计由采集系统和控制系统两部分组成,其中采集系统主要由温度传感器、蓝牙主模块和STM32单片机组成,主要完成数据的采集、处理及发送等功能;控制系统由TFT彩色液晶显示器、蓝牙从模块和STM32单片机组成,主要完成数据的接收、显示和存储等功能,并向采集系统发送命令。到的数据经单片机处理,由蓝牙模块将数据传输给控制系统,由控制系统完成后续的相应处理工作,并将温度在彩晶上显示。经过最终验证经采集系统采集到的温度信息可以实时传送给控制系统,并且可以在液晶上实时显示,本设计可以达到目的。

致谢我的论文是在王老师的指导和帮助下完成的,在此,我要把最诚挚的谢意献给他,他严谨求实的治学态度、一丝不苟的工作作风、诲人不倦的学者风范、创造性的思维方法都极大地影响和教育了我,并成为我今后的学习和生活中宝贵的财富。学习期间老师为我创造了良好的学习环境,使我能够顺利地完成本科阶段的学业。在大学生活即将结束之际,谨对老师多年的辛勤培养和关心表示衷心的感谢,表达我深深的敬意。感谢给予我帮助的同学,在我困惑时,他们常带给我开拓性和建设性的意见,使我解决设计中的问题,完善设计。感谢关注我论文的所有老师和同学,在他们的帮助和支持下,我顺利完成我的论文工作,我在此对他们表示衷心的感谢。

参考文献[1]蒙博宇.STM32自学笔记.北京航空航天大学出版社.2012[2]洽汗•合孜尔.C语言程序设计(第二版).北京:中国铁道出版社,2008.[3]赵晓安.单片机原理及应用.天津:天津大学出版社,2001.[4]孙红军.基于无线数据采集系统的研究.仪器仪表学报,2007:12~17[5]李勇.基于蓝牙的智能数据采集系统的设计与实现:[硕士学位论文].武汉:华中科技大学,2008.[6]张鸣.基于蓝牙技术的嵌入式数据采集系统设计.长春工业大学学报,2007,28[4]:1~4[7]卢伟国.基于蓝牙的无线数据采集系统.电测与仪表,2002,39[441],26~29[8]任小洪.基于蓝牙技术的无线数据采集系统设计.测控技术,2009,28[1]:16~19[9]张超.基于蓝牙模块的嵌入式系统设计.电子与封装,2009,9[12]:20~22[10]李莉.基于蓝牙技术的温室环境监测系统设计.农业机械学报,2006,37[10]:97~100[2][11]STMicroelectronicsLtd.UM0427Usermanual:ARM–based32–bitMCUSTM32F101xxandSTM32F103xxfirmwarelibraryRev6,2008.[12]ARMLtd.Cortex–M3TechnicalReferenceManualRevr0p0,2006[13]STMicroelectronicsLtd.PM0042:TM32F10xxxFlashprogrammingRev7,2009

附录采集系统部分程序:include"public.h"#include"printf.h"#include"ds18b20.h"#include"systick.h"intmain(){ doubletemp; printf_init(); ds18b20_init(); while(1) { temp=readtemp(); printf("当前温度\r\n",temp); } }intfputc(intch,FILE*p){ USART_SendData(USART1,(u8)ch); while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET); returnch;}voidprintf_init() { GPIO_InitTypeDefGPIO_InitStructure; NVIC_InitTypeDefNVIC_InitStructure; USART_InitTypeDefUSART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1|RCC_APB2Periph_AFIO,ENABLE); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;//TX GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//RX GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA,&GPIO_InitStructure); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0; NVIC_InitStructure.NVIC_IRQChannelSubPriority=1; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure); USART_InitStructure.USART_BaudRate=115200; USART_InitStructure.USART_WordLength=USART_WordLength_8b; USART_InitStructure.USART_StopBits=USART_StopBits_1; USART_InitStructure.USART_Parity=USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx; USART_Init(USART1,&USART_InitStructure); USART_Cmd(USART1,ENABLE); USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); USART_ClearFlag(USART1,USART_FLAG_TC);}控制系统部分程序:#include"gui.h"#include"stm32f10x.h"#include"stm32f10x_usart.h"#include"misc.h"#include"stm32f10x_exti.h"#include"stm32f10x_tim.h"#include"stm32f10x_adc.h"#include"stm32f10x_bkp.h"#include"stm32f10x_rtc.h"#include"stm32f10x_iwdg.h"#include"stm32f10x_wwdg.h"#include"stm32f10x_fsmc.h"voiddelay(u32i){ while(i--);}typedefstruct{u16TFT_CMD;u16TFT_DATA;}TFT_TypeDef; #defineTFT_BASE((uint32_t)(0x6C000000|0x000007FE))#defineTFT((TFT_TypeDef*)TFT_BASE)#defineTFT_XMAX239 //ÉèÖÃTFTÆÁµÄ´óС#defineTFT_YMAX399#defineWHITE0xFFFF#defineBLACK0x0000#defineBLUE0x001F#defineRED0xF800#defineMAGENTA0xF81F#defineGREEN0x07E0#defineCYAN0x7FFF#defineYELLOW0xFFE0 voidTFT_WriteCmd(uint16_tcmd);voidTFT_WriteData(uint16_tdat);voidTFT_Init(void);voidTFT_SetWindow(uint16_txStart,uint16_tyStart,uint16_txEnd,uint16_tyEnd);voidTFT_ClearScreen(uint16_tcolor);voidTFT_GPIO_Config(void){ GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE |RCC_APB2Periph_GPIOG,ENABLE); GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_12; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; /*FSMC_A10(G12)ºÍRS£¨G0£©*/ GPIO_Init(GPIOG,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=(GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_4 |GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_8 |GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11 |GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14 |GPIO_Pin_15); GPIO_Init(GPIOD,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=(GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9 |GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12 |GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15); GPIO_Init(GPIOE,&GPIO_InitStructure);}voidTFT_FSMC_Config(void){ FSMC_NORSRAMInitTypeDefFSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDefFSMC_NORSRAMTiming; FSMC_NORSRAMTiming.FSMC_AddressSetupTime=0x02; FSMC_NORSRAMTiming.FSMC_AddressHoldTime=0x00; FSMC_NORSRAMTiming.FSMC_DataSetupTime=0x05; FSMC_NORSRAMTiming.FSMC_DataLatency=0x00; FSMC_NORSRAMTiming.FSMC_BusTurnAroundDuration=0x00; FSMC_NORSRAMTiming.FSMC_CLKDivision=0x01; FSMC_NORSRAMTiming.FSMC_AccessMode=FSMC_AccessMode_B; FSMC_NORSRAMInitStructure.FSMC_Bank=FSMC_Bank1_NORSRAM4; FSMC_NORSRAMInitStructure.FSMC_MemoryType=FSMC_MemoryType_SRAM; FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth=FSMC_MemoryDataWidth_16b; FSMC_NORSRAMInitStructure.FSMC_WriteOperation=FSMC_WriteOperation_Enable; FSMC_NORSRAMInitStructure.FSMC_ExtendedMode=FSMC_ExtendedMode_Enable; FSMC_NORSRAMInitStructure.FSMC_DataAddressMux=FSMC_DataAddressMux_Disable; FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct=&FSMC_NORSRAMTiming; FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct=&FSMC_NORSRAMTiming; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC,ENABLE); FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4,ENABLE); }voidTFT_WriteCmd(uint16_tcmd){ TFT->TFT_CMD=cmd>>8;TFT->TFT_CMD=cmd&0x00FF;}voidTFT_WriteData(u16dat){

温馨提示

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

评论

0/150

提交评论