毕业论文基于nRF24L01的远程温度检测系统设计_第1页
毕业论文基于nRF24L01的远程温度检测系统设计_第2页
毕业论文基于nRF24L01的远程温度检测系统设计_第3页
毕业论文基于nRF24L01的远程温度检测系统设计_第4页
毕业论文基于nRF24L01的远程温度检测系统设计_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

摘要温度检测在日常生活、工作和工程实践中具有重要的应用。随着生活水平的提高和科学技术的进步,无论是工业还是农业或者是日常生活中对温度检测的要求越来越高。不仅要做到低耗,还要求进行一定距离的传输。基于这点我们运用两片主控芯片,一个温度传感器,及数码管显示部分,解决了这个日常生活工作中的问题。出于低功耗本设计我们选择了以低功耗见长的430单片机中的F149系列作为主控芯片,工作场所的温度采集用到了温度采集芯片DS18B20来达到一定的准确度和精确度,最后采用nRF24L01模块对采集到的温度数据进行无线传输,从而打破传统温度操作受到距离限制的缺陷。在经过软硬件测试后,我们基本实现了用温度传感器采集温度,用nRF24L01进行一定距离传输后在接受端的数码管上显示出来的模型。传输距离>30m,温度范围达到0至125摄氏度,精度1摄氏度。关键词:msp430f149;nRF24L01;温度;无线传输ABSTRACTTemperaturemeasurementhaveimportantapplicationsindailylife,workandengineeringpractice.Withtheimprovementoflivingstandardsandtechnologicalprogress,whetherindustry,agricultureordailylifebecomeincreasinglydemandingoftemperaturedetection.Notonlytoachievelowpowerconsumption,butalsorequiresacertaindistancetransmission.Forthisreasonwesolvedtheproblemofdailylifeandworkusingtwocontrolchips,atemperaturesensor,andtheleddisplaypart.Forlow-powerdesignwehavechosenthelow-powermicrocontrollerknownfortheF149seriesof430asthemasterchip,temperatureacquisitionDS18B20hasusedtoachieveacertainaccuracyandprecision,FinallynRF24L01moduletemperaturedatacollectedbywirelesstransmission,thusbreakingthedistancelimitationsoftraditionaltemperatureoperation.Aftersoftwareandhardwaretesting,webasicallyrealizeourInitialtarget.Transmissiondistance>30m,temperaturerange0to125degrees,1degreeaccuracy.Keywords:msp430f149;nRF24L01;Temperature;Wireless目录第1章绪论11.1课题的背景与意义1国内外研究状况及相关领域中已有的研究成果2对设计任务的分析21.4预期结果31.5论文的结构安排3第2章主控芯片及编程环境的介绍52.1MSP430简介52.2IAR开发软件72.3本章小结8第3章硬件系统的设计与实现93.1温度采集模块93.1.1DS18B20的管脚配置和内部结构103.1.2单总线介绍113.1.3DS18B20的工作原理123.2无线收发模块143.2.1nRF24L01概述153.2.2引脚功能及描述163.2.3工作模式17工作原理173.2.5配置字193.3LED显示模块193.3.1数码管选择193.3.2驱动电路选择203.4主控制模块(Msp430f149最小系统)21下载电路21电源电路设计233.4.3复位电路25晶振电路253.5引脚分配263.5.1发射部分263.5.2接收部分273.6本章小结28第4章软件系统的设计与实现304.1分部分软件设计304.1.1温度检测30无线发射模块软件设计31无线接收模块软件设计32显示模块软件设计33软件的总体设计334.2.1发送部分33接收部分344.3本章小结35第5章系统的调试及实验结果365.1调试步骤36实验结果36本章小结38结论39参考文献41致谢42附录43第1章绪论1.1课题的背景与意义随着社会的进步和生产的需要,利用无线通信进行温度数据采集的方式应用已经渗透到生活各个方面。在工业现场,由于生产环境恶劣,工作人员不能长时间停留在现场观察设备是否运行正常,就需要采集数据并传输数据到一个环境相对好的操控室内,这样就会产生数据传输问题。由于厂房大、需要传输数据多,使用传统的有线数据传输方式就需要铺设很多很长的通讯线,浪费资源,占用空间,可操作性差,出现错误换线困难。而且,当数据采集点处于运动状态、所处的环境不允许或无法铺设电缆时,数据甚至无法传输,此时便需要利用无线传输的方式进行数据采集。在农业生产上,不论是温室大棚的温度监测,还是粮仓的管理,传统上都是采取分区取样的人工方法,工作量大,可靠性差。而且大棚和粮仓占地面积大,检测目标分散,测点较多,传统的方法已经不能满足当前农业发展的需要。当前的科技水平下,无线通信技术的发展使得温度采集测量精确,简便易行。在日常生活中,随着人们生活水平的提高,居住条件也逐渐变得智能化。如今很多家庭都会安装室内温度采集控制系统,其原理就是利用无线通信技术采集室内温度数据,并根据室内温度情况进行遥控通风等操作,自动调节室内温度湿度,可以更好地改善人们的居住环境。以上只是简单列举几个现实的例子,在现实生活中,这种无线温度采集系统已经被成功应用于工农业、环境监测、军事国防、机器人控制等许多重要领域,而且类似于这种温度采集系统的无线通信网络已经被广泛的应用到民用和军事领域。凡是布线繁杂或不允许布线的场合都希望能通过无线方案来解决。为此,需要设计相应的接口系统,控制这些射频芯片工作,完成可靠稳定的无线数据通信,这样的研究也变得更加有意义了[1]。国内外研究状况及相关领域中已有的研究成果在非授权频段上,目前已经云集了蓝牙、Wi-Fi、Zigbee等多个标准无线协议。,具有带宽高(2Mbps),双向传输,抗干扰性强,传输距离远(短距离无线技术范围),耗电少的优点,用于无线键鼠等室内场合。Nordic公司等公司已成功推出nRF24L01芯片,全球开发ISM频段免许可证使用。同时许多公司也相继推出基于nRF24L01的无线传输模块。模块是一款新型单片射频收发器件,工作于2.4GHz~2.5GHzISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA;接收时,工作电流只有mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。至此这种基于此频段的通信方式已日渐趋向成熟[2]。同样随着传感器及电子电路的发展,集成的温度检测器件的完善性及集成性也得到了大大的提高。类似美国DALLAS公司推出的数字测温芯片DS18B20层出不穷,国内外的研究在这方面的研究也趋近完善[3]。对设计任务的分析本系统的设计采用了工作于频段nRF24L01射频芯片,并有低功耗单片机MSP430F149控制实现短距离无线数据通信。该接口设计具有成本低、功耗低、传输速率高、软件设计简单以及通信稳定可靠等特点。整个系统有发送和接收二部分,通过nRF24L01无线数据通信收发模块来实现无线数据传输。发送部分以单片机MSP430F149为核心,使用温度转换芯片DS18B20实时采集温度并通过数码管显示。将采集的温度无线传送给接收部分,然后再在数码管上显示。本系统的核心控制芯片选用的是MSP430F149。单片机在各个技术领域中的迅猛发展,与单片机所构成的计算机应用系统的特点有关:(1)单片机构成的应用系统有较大的可靠性;(2)系统构建简洁、易行,能方便的实现系统功能;(3)由于构成的系统是一个计算机系统,相当多的功能由软件实现,故具有柔性特点和优异的性能价格比;对msp430f149可以制作两个最小系统(一个控制发送端,一个控制接受部分)最小系统包括电源电路,下载电路采用JTAG接口及主控芯片和一些基本外围电路。对于DS18B20的温度检测模块,硬件部分较简单,由于是单脚传输导致软件时序的时间精确度控制上要求比较高,要做到精确。数码管显示部分虽然较简单但是在调试过程有重要作用,是显示软硬件好使的必要条件,不可忽视。另外为了降低430的输出功率,采用锁存器对数码管进行驱动。无线收发模块采用挪威(Nordic)公司生产的nRF24L01及其外围电路组成,软件部分要熟悉内部的标志及控制寄存器以及数据通道,发射频率功率及收发模式等以利于编程。1.4预期结果采用MSP430F149单片机作为主控CPU,DS18B20作为温度采集模块,nRF24L01作为无线收发模块,加上LED显示模块构成系统。要求完成硬件模块的设计和电路板的制作。软件模块包括温度检测模块、无线发射模块、无线接收模块和显示模块。温度测量范围:0°C至125°C,传输距离>30m。1.5论文的结构安排本文基于本次毕业设计的过程与要求,将论文分为五章。具体内容如下:第1章绪论本章简单介绍了课题的研究背景、目的和意义,无线温度检测的国内外发展现状和相关领域中已有的研究结果,该设计的预期结果和意义。第2章主控芯片及编程环境的介绍本章介绍了本次毕业设计的主控芯片及相应的编程环境,让我们熟悉了整个系统的调试方法。第3章硬件系统的设计与实现本章介绍本课题硬件系统各部分电路的设计、实现,讲述了各模块的功能。第4章软件系统的设计与实现本章根据系统的总方案,设计出程序的总流程图,并利用C语言编写相应的程序。第5章系统的调试及实验结果本章根据已有的软硬件,进行调试,得到的相应成果。最后总结本论文,得出相关结论。第2章主控芯片及编程环境的介绍2.1MSP430简介MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低MSP430单片机功耗、具有精简指令集(RISC)的混合信号处理器(MixedSignalProcessor)。称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供“单片”解决方案。该系列单片机多应用于需要电池供电的便携式仪器仪表中[4]。MSP430单片机的特点:(1)处理能力强MSP430系列单片机是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址);简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令。这些特点保证了可编制出高效率的源程序。(2)运算速度快MSP430系列单片机能在25MHz晶体的驱动下,实现40ns的指令周期。16位的数据宽度、40ns的指令周期以及多功能的硬件乘法器(能实现乘加运算)相配合,能实现数字信号处理的某些算法(如FFT等)。(3)超低功耗MSP430单片机之所以有超低的功耗,是因为其在降低芯片的电源电压和灵活而可控的运行时钟方面都有其独到之处。首先,MSP430系列单片机的电源电压采用的是1.8-3.6V电压。因而可使其在1MHz的时钟条件下运行时,芯片的电流最低会在165μA左右,RAM保持模式下的最低功耗只有。其次,独特的时钟系统设计。在MSP430系列中有两个不同的时钟系统:基本时钟系统、锁频环(FLL和FLL+)时钟系统和DCO数字振荡器时钟系统。可以只使用一个晶体振荡器(32768Hz),也可以使用两个晶体振荡器。由系统时钟系统产生CPU和各功能所需的时钟。并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。由于系统运行时开启的功能模块不同,即采用不同的工作模式,芯片的功耗有着显著的不同。在系统中共有一种活动模式(AM)和五种低功耗模式(LPM0~LPM4)。在实时时钟模式下,可达2.5μA,在RAM保持模式下,最低可达0.1μA。(4)片内资源丰富MSP430系列单片机的各系列都集成了较丰富的片内外设。它们分别是看门狗(WDT)、模拟比较器A、定时器A0(Timer_A0)、定时器A1(Timer_A1)、定时器B0(Timer_B0)、UART、SPI、I2C、硬件乘法器、液晶驱动器、10位/12位ADC、16位Σ-ΔADC、DMA、I/O端口、基本定时器(BasicTimer)、实时时钟(RTC)和USB控制器等若干外围模块的不同组合。其中,看门狗可以使程序失控时迅速复位;模拟比较器进行模拟电压的比较,配合定时器,可设计出A/D转换器;16位定时器(Timer_A和Timer_B)具有捕获/比较功能,大量的捕获/比较寄存器,可用于事件计数、时序发生、PWM等;有的器件更具有可实现异步、同步及多址访问串行通信接口可方便的实现多机通信等应用;具有较多的I/O端口,P0、P1、P2端口能够接收外部上升沿或下降沿的中断输入;10/12位硬件A/D转换器有较高的转换速率,最高可达200kbps,能够满足大多数数据采集应用;能直接驱动液晶多达160段;实现两路的12位D/A转换;硬件I2C串行总线接口实现存储器串行扩展;以及为了增加数据传输速度,而采用的DMA模块。MSP430系列单片机的这些片内外设为系统的单片解决方案提供了极大的方便。另外,MSP430系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的低功耗状态时,中断唤醒只需5μs。(5)方便高效的开发环境MSP430系列有OPT型、FLASH型和ROM型三种类型的器件,这些器件的开发手段不同。对于OPT型和ROM型的器件是使用仿真器开发成功之后烧写或掩膜芯片;对于FLASH型则有十分方便的开发调试环境,因为器件片内有JTAG调试接口,还有可以电擦写的FLASH存储器,因此采用先下载程序到FLASH内,再在器件内通过软件控制程序的运行,由JTAG接口读取片内信息供设计者调试使用的方法进行开发。这种方式只需要一台PC机和一个JTAG调试器,而不需要仿真器和编程器。开发语言有汇编语言和C语言[5]。IAR开发软件IAREmbeddedWorkbench是一套高度精密且使用方便的嵌入式应用编程开发工具。在其集成开发环境(IDE)中包含了IAR的C/C++编译器,汇编工具,链接器,文本编辑器,工程管理器和C-SPY调试器。通过其内置的针对不同芯片的代码优化器,IAREmbeddedWorkbench可以为MSP430微控制器生成极为高效和可靠的代码。除了有这些可靠的技术之外,IARSystems还为您提供专业化的全球技术支持[6]。模块化和可扩展的集成开发环境(1)用于构建和调试嵌入式应用程序的无缝集成开发环境;(2)强大的工程管理器,允许同一工作区管理多个工程;(3)工程的层次化表示方法;(4)可停靠窗口和浮动窗口管理;(5)智能型源文件浏览器;(6)带有代码模板和支持多字节等丰富特色的编辑器;(7)可以在全局层次、源文件组层次、或者单个的源文件层次上进行配置;(8)灵活的工程编译,如批量编译,前/后编译或在编译过程中访问外部工具的客户定制编译;(9)集成了源代码控制系统的接口;(10)为多种芯片提供配套的现成的头文件,芯片描述文件和链接器命令文件;(11)为多种MSP-FET430工具提供现成代码和工程范例;高度优化的C/C++编译器(1)支持C,EC++和扩展EC++,并且包含有模板,名字空间和标准模板库(STL)等;(2)MISRAC检查器;(3)支持所有MSP430和MSP430X架构的芯片;(4)针对特定目标的嵌入式应用程序的语言扩展用于数据/函数定义和存储器及类型属性声明的扩展关键字使用Pragma指令控制编译器行为,比如用来分配内存在C源码中可直接访问的本征函数,从而执行低级处理器操作,例如MSP430省电模式;(5)通过专用实时库模块支持硬件乘法器外设模块;(6)位置无关代码;(7)32位和64位标准IEEE格式的浮点类型;(8)对代码的大小和执行速度多级优化,允许不同的转换形式,例如函数内联和循环展开等等;(9)高级的全局优化和特定优化相结合,可以生成最为紧凑和稳定的代码[7];2.3本章小结本章主要简要介绍了msp430单片机的软硬件系统和特点以及msp430的编程开发环境IAR的一些特点,为接下来的硬件设计及软件开发做了铺垫。第3章硬件系统的设计与实现温度检测在日常生活、工作和工程实践中经常用到,随着生活水平和科学技术的不断进步,对检测温度数据的精度要求也越来越苛刻,传统的温度测量装置很难满足现在的要求,本设计采用DS18B20作为温度采集元件,配合低功耗单片机的使用就可以很好地弥补传统上的不足。而且本文采用nRF24L01模块对采集到的温度数据进行无线传输,打破了传统操作中距离受限的问题,使测温操作更易实现。本设计采用MSP430F149作为主控CPU,外加DS18B20温度采集模块、nRF24L0l无线收发模块和数码显示模块组成整个系统,如图所示。图3.1系统总体架构图3.1温度采集模块该模块采用美国DALLAS公司推出的数字测温芯片DS18B20,该芯片具有体积小,多种封装形式,独特的单线接口等优点。测量范围从-55摄氏度到+125摄氏度,拥有可以选择的9到12位温度数据分辨率,可以工作在寄生电源模式,另外还可自定义温度告警设置。本系统中温度传感器输出脚I/O直接与单片机的相连,外接4.7KΩ的上拉电阻到电源,采用MSP430的电源供电[8]。DS18B20芯片封装如图所示。图3.2DS18B20芯片封装DS18B20的管脚配置和内部结构引脚定义:(1)DQ为单数据总线,是数字信号输入/输出端;(2)GND为电源地;(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。内部结构如图所示。图3.3DS18B20内部结构图(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。(2)

DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以℃/LSB形式表达,其中S为符号位。12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于即可得到实际温度。单总线介绍1-WIREBUS单总线是Maxim全资子公司Dallas的一项专有技术。与目前多数标准串行数据通信方式,如SPI/IIC/MICROWIRE不同,它采用单根信号线,既传输时钟,又传输数据,而且数据传输是双向的。它具有节省I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。DS18B20的工作原理DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。18B20共有三种形态的存储器资源,它们分别是(1)ROM只读存储器,用于存放DS18B20的ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共64位ROM。(2)RAM数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存的镜像。在上电复位时其值将被刷新。第5个字节则是用户第3个EEPROM的镜像。第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的CRC码。EEPROM非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。控制器对18B20操作流程:(1)复位:首先我们必须对DS18B20芯片进行复位,复位就是由控制器(单片机)给DS18B20单总线至少480μS的低电平信号。当18B20接到此复位信号后则会在15~60μS后回发一个芯片的存在脉冲。(2)存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在15~60μS后接收存在脉冲,存在脉冲为一个60~240uS的低电平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20间的数据通信。如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。(3)控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。其主要目的是为了分辨一条总线上挂接的多个器件并作处理。诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID号来区别,一般只挂接单个18B20芯片时可以跳过ROM指令(注意:此处指的跳过ROM指令并非不发送ROM指令,而是用特有的一条“跳过指令”)。(4)控制器发送存储器操作指令:在ROM指令发送给18B20之后,紧接着(不间断)就是发送存储器操作指令了。操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。存储器操作指令的功能是命令18B20作什么样的工作,是芯片控制的关键。(5)执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令则控制器(单片机)必须等待18B20执行其指令,一般转换时间为500uS。如执行数据读写指令则需要严格遵循18B20的读写时序来操作。数据的读写方法将有下文有详细介绍。当主机收到DSl8B20的响应信号后,便可以发出ROM操作命令之一,这些命令如下:SkipROM(跳跃ROM指令)这条指令使芯片不对ROM编码做出反应,在单总线的情况之下,为了节省时间则可以选用此指令。如果在多芯片挂接时使用此指令将会出现数据冲突,导致错误出现。ReadScratchpad(从RAM中读数据)此指令将从RAM中读数据,读地址从地址0开始,一直可以读到地址9,完成整个RAM数据的读出。芯片允许在读过程中用复位信号中止读取,即可以不读后面不需要的字节以减少读取时间。ConvertT(温度转换)收到此指令后芯片将进行一次温度转换,将转换的温度值放入RAM的第1、2地址。此后由于芯片忙于温度转换处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持500MS,来维持芯片工作。与DS18B20的所有通讯都是由一个单片机的复位脉冲和一个DS18B20的应答脉冲开始的。单片机先发一个复位脉冲,保持低电平时间最少480μs,最多不能超过960μs。然后,单片机释放总线,等待DS18B20的应答脉冲。DS18B20在接受到复位脉冲后等待15~60μs才发出应答脉冲。应答脉冲能保持60~240μs。单片机从发送完复位脉冲到再次控制总线至少要等待480μs。读时隙需15~60μs,且在2次独立的读时隙之间至少需要1μs的恢复时间。读时隙起始于单片机拉低总线至少1μs。DS18B20在读时隙开始15μs后开始采样总线电平。以单片机读取2B的数据为例。写时隙需要15~75μs,且在2次独立的写时隙之间至少需要1μs的恢复时间。写时隙起始于单片机拉低总线。3.2无线收发模块该模块由挪威(Nordic)公司生产的nRF24L01及其外围电路组成的。nRF24L01作为单片射频收发芯片,其工作于~世界通用ISM频段,工作电压为。可通过SPI写入数据,最高可达10Mbit/s,数据传输速率最快可达2Mbit/s,并且具有自动应答和自动再发射功能。芯片融进了增强式ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。该芯片功耗低,6dBm功率发射时,工作电流9mA,接收时工作电流只有12.3mA,可选择的掉电模式和空闲模式使其应用设计更为方便。模块中nRF24L01和MSP430F149通过MOSI、MISO和SCK组成SPI接口,单片机接的低频晶振工作,nRF24L01外接晶振为16MHz,由低速的单片机控制高速收发的射频芯片,结构如图所示[9]。图无线收发模块硬件结构图nRF24L01概述nRF24L01是一款新型单片射频收发器件,工作于2.4GHz~2.5GHzISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA;接收时,工作电流只有mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便[10]。nRF24L01主要特性如下:1、GFSK调制,硬件集成OSI链路层;2、具有自动应答和自动再发射功能;3、片内自动生成报头和CRC校验码;4、数据传输率为lMb/s或2Mb/s;5、SPI速率为0Mb/s~10Mb/s;6、125个频道与其他nRF24系列射频器件相兼容;7、QFN20引脚4mm×4mm封装;8、供电电压为1.9V~3.6V;引脚功能及描述nRF24L01的封装及引脚排列如图所示[11]。各引脚功能如所示。图nRF24L01封装图CE:使能发射或接收;CSN,SCK,MOSI,MISO:SPI引脚端,微处理器可通过此引脚配置nRF24L01:IRQ:中断标志位;VDD:电源输入端;VSS:电源地;XC2,XC1:晶体振荡器引脚;VDD_PA:为功率放大器供电,输出为1.8V;ANT1,ANT2:天线接口;IREF:参考电流输入;工作模式通过配置寄存器可将nRF24L01配置为发射、接收、空闲及掉电四种工作模式,如表所示。表nRF24L01工作模式模式PWR_UPPRIM_RXCEFIFO寄存器状态接收模式111-发射模式101数据在TX

FIFO

寄存器中发射模式101→0停留在发送模式,直至数据发送完待机模式2101TX_FIFO为空待机模式11-0无数据传输掉电0待机模式1主要用于降低电流损耗,在该模式下晶体振荡器仍然是工作的;待机模式2则是在当FIFO寄存器为空且CE=1时进入此模式;待机模式下,所有配置字仍然保留。在掉电模式下电流损耗最小,同时nRF24L01也不工作,但其所有配置寄存器的值仍然保留。3.工作原理发射数据时,首先将nRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX

FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX

FIFO中数据保留以便在次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。接收数据时,首先将nRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX

FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。在写寄存器之前一定要进入待机模式或掉电模式。表常用配置寄存器地址(H)寄存器名称功能00CONFIG设置24L01工作模式01EN_AA

设置接收通道及自动应答02EN_RXADDR使能接收通道地址03SETUP_AW设置地址宽度04SETUP_RETR设置自动重发数据时间和次数07STATUS状态寄存器,用来判定工作状态0A~0FRX_ADDR_P0~P5设置接收通道地址10TX_ADDR设置接收接点地址11~16RX_PW_P0~P5设置接收通道的有效数据宽度3.配置字SPI口为同步串行通信接口,最大传输速率为10Mb/s,传输时先传送低位字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。与SPI相关的指令共有8个,使用时这些控制指令由nRF24L01的MOSI输入。相应的状态和数据信息是从MISO输出给MCU。nRF24L0l所有的配置字都由配置寄存器定义,这些配置寄存器可通过SPI口访问。nRF24L01的配置寄存器共有25个,常用的配置寄存器如表所示。3.3LED显示模块3.3.1数码管选择温度数据显示是体现整个系统功能的部分,LED显示成本低廉,配置灵活,与单片机连接方便。LED显示块具有亮度高、结构简单、全天候的特点,因此在单片机应用系统中应用最广,本系统的显示采用的就是四位七段共阳极LED数码管作为显示部件。图3.6显示部分电路图3.驱动电路选择SL74HC573跟LS/AL573的管脚一样。器件的输入是和标准CMOS输出兼容的;加上拉电阻,他们能和LS/ALSTTL输出兼容。当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。1、输出能直接接到CMOS,NMOS和TTL接口上2、操作电压范围:2.0V~6.0V3、低输入电流:A4、CMOS器件的高噪声抵抗特性TTL电路的输入端是遵循TTL标准的,其需要的输入电流很小,74HC573的输入电流在电源电压为6V,输入电压为6V的情况下,其所需要的驱动电流仅仅为A。74HC573的每个输出引脚都有20mA的灌入电流,因此可以直接驱动LED,而输出电流可达到35mA(74HC573如图所示)。图3.774HC573引脚图3.4主控制模块(Msp430f149最小系统)本系统设计采用MSP430F149作为主控芯片,该芯片具有超低功耗的优点:活动模式280μA@1MHz,2.2V;待机模式1.1μA;掉电模式(RAM数据保持)0.1μA。并且有12位A/D转换器,带有内部参考源、采样保持、自动扫描特性等。串行通信时可软件选择UART/SPI模式,整个系统采用了3.3V供电,考虑到硬件系统的低功耗等特点,该硬件系统的电源部分采用TI公司的TPS76033芯片。为了使输出电源的纹波小,在输出部分采用了一个2.2uF和0.1μF的电容,另外在芯片的输入端也设置一个0.1pF的滤波电容,减小输入端受到的干扰。单片机最小系统,或称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对于MSP430系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。这里设计了MSP430最小系统中下载电路、电源电路、晶振电路、复位电路并介绍了各部分的功能[12]。3.下载电路本设计的下载端口选择了JTAG口JTAG(JointTestActionGroup;联合测试行动小组)是一种国际标准测试协议(兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。JTAG最初是用来对芯片进行测试的,JTAG的基本原理是在器件内部定义一个TAP(TestAccessPort;测试访问口)通过专用的JTAG测试工具对进行内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。现在,JTAG接口还常用于实现ISP(In-SystemProgrammable�在线编程),对FLASH等器件进行编程。JTAG编程方式是在线编程,传统生产流程中先对芯片进行预编程,再装到板上因此而改变,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。JTAG接口可对PSD芯片内部的所有部件进行编程。具有JTAG口的芯片都有如下JTAG引脚定义:TCK——测试时钟输入;TDI——测试数据输入,数据通过TDI输入JTAG口;TDO——测试数据输出,数据通过TDO从JTAG口输出;TMS——测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式;可选引脚TRST——测试复位,输入引脚,低电平有效;JTAG内部有一个状态机,称为TAP控制器。TAP控制器的状态机通过TCK和TMS进行状态的改变,实现数据和指令的输入。JTAG标准定义了一个串行的移位寄存器。寄存器的每一个单元分配给IC芯片的相应引脚,每一个独立的单元称为BSC(Boundary-ScanCell)边界扫描单元。这个串联的BSC在IC内部构成JTAG回路,所有的BSR(Boundary-ScanRegister)边界扫描寄存器通过JTAG测试激活,平时这些引脚保持正常的IC功能。以含JTAG接口的StrongARMSA1110为例,Flash为Intel28F128J3216MB容量。SA1110的JTAG的TCK、TDI、TMS、TDO分别接PC并口的2、3、4、11线上,通过程序将对JTAG口的控制指令和目标代码从PC的并口写入JTAG的BSR中。在设计PCB时,必须将SA1110的数据线和地址线及控制线与Flash的地线线、数据线和控制线相连。因SA1110的数据线、地址线及控制线的引脚上都有其相应BSC,只要用JTAG指令将数据、地址及控制信号送到其BSC中,就可通过BSC对应的引脚将信号送给Flash,实现对Flash的操作。通过TCK、TMS的设置,可将JTAG设置为接收指令或数据状态。JTAG常用指令如下:SAMPLE/PRELOAD——用此指令采样BSC内容或将数据写入BSC单元;EXTEST——当执行此指令时,BSC的内容通过引脚送到其连接的相应芯片的引脚,我们就是通过这种指令实现在线写Flash的;BYPASS——此指令将一个一位寄存器轩于BSC的移位回路中,即仅有一个一位寄存器处于TDI和TDO之间。在PCB电路设计好后,即可用程序先将对JTAG的控制指令,通过TDI送入JTAG控制器的指令寄存器中。再通过TDI将要写Flash的地址、数据及控制线信号入BSR中,并将数据锁存到BSC中,用EXTEST指令通过BSC将写入Flash。软件编程在线写Flash的程序用TurboC编写。程序使用PC的并行口,将程序通过含有JTAG的芯片写入Flash芯片。程序先对PC的并口初始化,对JTAG口复位和测试,并读Flash,判断是否加锁。如加锁,必须先解锁,方可进行操作。写Flash之前,必须对其先擦除。将JTAG芯片设置在EXTEST模式,通过PC的并口,将目标文件通过JTAG写入Flash,并在烧写完成后进行校验。图JTAG电路图3.电源电路设计供电电路采用USB接口。USB已经是一个业内标准了。电压是5~5.2V电流300mA~500mA接口靠两端的是正负极,中间两条是数据的正负极,只要你的设备不接触“数据线”电脑不会识别为移动设备。(业内的标准数据线是“红、白、绿、黑”分别是5V+、DAT-、DAT+、5V-、高档型外加屏蔽层)如果只用提供电源,只用两条引线,设计产品额定用电不超过5V,电流不超500mA即可。该型产品已经很多很成熟。Msp430的电压是,所以中间采用了稳压芯片AS1117。AS1117是一款低压差的线性稳压器,当输出1A电流时,输入输出的电压差典型值仅为。AS1117除了能提供多种固定电压版本外(Vout=,,,,5V),还提供可调端输出版本,该版本能提供的输出电压范围为。能(AS1117正常工作环境温度范围极宽,为-50℃~140℃),确保芯片和电源系统的稳定性。同时在产品生产中应用先进的修正技术,确保输出电压和参考源精度在±1%的精度范围内。AS1117的特点:1、包括三端可调输出和固定电压输出版本(固定电压包括,,,,5V等,其他电压规格可根据用户定制);2、最大输出电流为1A;3、输出电压精度高达±1%;4、稳定工作电压范围为高达15V;5、电压线性度为%;6、负载线性度为%;7、环境温度:TA的范围是-50℃~140℃;图电源电路图3.4.3复位电路为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位(复位电路如3.10所示)。图复位电路图3.晶振电路晶振电路MSP430系列单片机时钟模块包括数控振荡器(DCO)、高速晶体振荡器和低速晶体振荡器等3个时钟源。这是为了解决系统的快速处理数据要求和低功耗要求的矛盾,通过设计多个时钟源或为时钟设计各种不同工作模式,才能解决某些外围部件实时应用的时钟要求,如低频通信、LCD显示、定时器、计数器等。数字控制振荡器DCO已经集成在MSP430内部,在系统中只需设计高速晶体振荡器和低速晶体振荡器两部分电路。

低速晶体振荡器(LFXTl)满足了低功耗及使用32.768kHz晶振的要求。LFXTl振荡器默认工作在低频模式,即32.768kHz,也可以通过外接450kHz~8MHz的高速晶体振荡器或陶瓷谐振器工作在高频模式,在本电路中我们使用低频模式,晶振外接2个22pF的电容经过XIN和XOUT连接到MCU。

高速晶振也称为第二振荡器XT2,它为MSP430F149工作在高频模式时提供时钟,XT2最高可达8MHz。在系统中XT2采用4MHz的晶体,XT2外接2个22pF的电容经过XT2IN和XT2OUT连接到MCU[13](晶振电路如图3.11所示)。图晶振电路引脚分配.1发射部分发射部分选择的是430的P3口。温度传感器选择的是P4口(发射部分管脚分配如表3.3所示)。表发射部分管脚分配管脚名称分配引脚CECSNCLKMOSIMISOIRQVDDVCCGNDGNDDQ图3.12DS18B20电路图图3.13nRF24L01电路图.2接收部分数码管选择的是P2与P6口。P2口为段选,P6口为位选。无线接收选择P5口(接收部分管脚分配图如表所示,DS18B20电路图如图所示,nRF24L01电路图如图所示)。表接收部分管教分配图管脚名称分配引脚ABCDEFGAQCOM1COM2COM3COM4CECSNCLKMOSIMISOIRQVDDVCCGNDGND3.6本章小结本章主要是讲述了对于各个模块的电路设计,其中主要是温度检测模块、无线收发模块、数码管显示模块、430最小系统模块。详细的介绍了各主要部分所用芯片的工作原理和性能特点。最后本章还说明了各个模块的引脚分配。通过这一章的介绍,可以了解本系统详细的硬件设计方案。第4章软件系统的设计与实现分部分软件设计温度检测温度检测模块软件设计DS18B20的测温原理遵循严格的单总线协议,以确保通信数据的准确性,单片机通过时序来写入和读出DS18B20中的数据,包括初始化、读l、读0,写1、写0等操作。传感器复位后,接收应答信号,跳过读ROM中序列号后,启动温度转换,等待温度转换完毕后,保存数据。如此反复,完成所有操作,其流程图如图所示。图温度检测软件流程图无线发射模块软件设计首先进行初始化操作,初始化包括设置单片机I/O和SPI相关寄存器两部分其可以和nRF24L01通信。通过SPI总线配置射频芯片使其进入正确的工作模式。发射数据时,首先将nRF24L01配置为发射模式。接着把发送端待发射数据的目标地址TX—ADDR和数据TX—PLD写入nRF24L01缓冲区,延时后发射数据,其流程图如图4.2所示[14]。图无线发射软件流程图4.无线接收模块软件设计接收数据时,首先将nRF24L01配置为接收模式。接着延迟进入接收状态等待数据的到来。当接收方检测到有效地址和CRC时,就将数据包储存在接收堆栈中,同时状态寄存器中的中断标志位RX—DR置高,产生中断使IRQ引脚变为低电平,以便通知MCU去取数据,。图4.3无线接收软件流程图4.显示模块软件设计LED温度显示电路包含有4只LED,共阴极,显示采用逐位扫描的方式。为LED的显示代码输入,依次对应LED的a、b、c、d、e、f、g、dp,~为LED的位选输入,依次对应D3、D2、Dl、D0,其中D3为最高位。当P为低电平~为高电平时,LED显示的最高位被点亮,其余熄灭,依此类推,其流程图如图4.4所示。图显示部分软件流程图4.2软件的总体设计4.2.1发送部分发送部分的一个循环的总体思路是这样的先初始化DS18B20,从DS18B20读出温度(DS18B20采用默认的12位精度),将得到的温度值的反码转化成十进制,取温度数组的高两位(即整数部分)写入发送数据数组,然后初始化nRF24L01,将温度发送,其流程图如图4.5所示[15]。图发射部分总体流程图4.接收部分接收部分的总体思路是这样的,首先还是初始化nRF24L01,然后进入大循环判断状态寄存器是否有接收中断。如果有就从FIFO_buffer读入二进制数据,然后将数据转换成十进制在数码管上显示出来,其流程图如图4.6所示。图接收部分总体流程图4.3本章小结本章主要是讲解了系统子程序及总程序的设计思想,并分别介绍了各子模块的程序流程及最后总程序的流程,系统软件采用模块化编程思路,这样,在软件调试时,可以随时调用子模块程序,更有利于子模块调试。第5章系统的调试及实验结果5.1调试步骤步骤一完成硬件电路的焊接。步骤二首先先将其中一片430系统与四位共阴数码管相连显示,检验四位数码管显示没有问题。步骤三将其中一片430与四位数码管及温度传感器DS18B20相连,写入测量温度的程序。测试DS18B20部分硬件及软件部分好使。步骤四将nRF24L01的收发部分分别与两片430相连,写入发射一个常数的程序,检测收发模块及程序好使。步骤五将显示、收发、温度检测程序整合,检测系统是否能将发送端的温度值测量出来发送到接收端在数码管上显示出来。经实验要求及实验的目的,对系统进行了一些动态值的测量,具体结果如表所示:表数据测试表测试数据值发送端电流接收端电流9mA收发端电压发送端功率接收端功率收发距离>30m温度测试精度摄氏度从表中看出接收端与发射端都维持在低功耗,基本达到了设计的初衷。另外收发距离与温度测试精度也达到了设计的要求。如图就是无线温度检测系统发射端的发射端成品,发射端在接通电源的情况下会立即完成初始化,实时地发送温度数值。图发射部分成品如图就是无线温度测量检测系统的接受端成品。在开通电源的情况下对发射端的数据进行实时的接受,经MSP430处理后在数码管上显示。图5.2接收部分成品本章小结本章主要介绍了本系统的软硬件调试过程以及最后的实验成果。软硬件调试运用了分模块调试的方法,当每个模块都无误后再进行整合。我们最后对收发距离,测试精度,收发端功率等数据进行了测量以验证系统的性能。结论在老师的指导下,经过努力,本论文已经完成了预期的目标并且保存了完整的记录文档。相关工作总结如下:数据采集与处理是430单片机的常用领域,除了电信号以外,单片机还可以利用传感器实现对非电信号的采集。本设计介绍的数字温度计就是一个典型事例。本设计采用一种直接数字输入式的温度传感芯片DS18B20实现了单片机控制的数字温度计系统。基于DS18B20数字温度传感器构成的实时监控系统确实具有精度高、抗干扰能力强、电路简单等诸多优点,温度传感器得到电缆长度达到几十米都可以正常读取温度数据。相比之下,传统的温度检测系统采用热敏电阻等温度敏感元件,热敏电阻成本低,但需要后续信号调理、AD转换处理电路才能将温度信号转换成数字信号,不但电路复杂,而且热敏电阻的可靠性相对较差,测量温度的精度差,很难保证热敏电阻的一致性和线性,在应用中需要很好的解决引线误差补偿问题、共模干扰问题和放大电路零点漂移误差等技术问题。另外本设计使用nRF24L01无线传输模块完成了无线传输的过程。通过无线传输模块可以省去有线带来的布线麻烦,非常便于工作生活在此次设计过程中也遇到一些问题,比如,在单片机对于RF24L01高频模块的读写、操作等比较复杂,查找的资料也很难理解。还有就是DS18B20的时序也有一定难度。不过,通过这次的学习和实践,我学会了如何看待问题,解决问题。例如,调试无线收发时,数码管老显示乱码,而且一直跳跃不定,后来通过循环控制将接受的第一个数据显示出来才避免了乱码出现。又例如后来整合程序时,温度不正确,老是成不断上升趋势,后来检查程序后才发现是没有将温度的全局变量清零,导致每次循环累加。进入21世纪后,智能温度控制器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟温度控制器和网络温度控制器、研制单片测温控温系统等高科技的方向迅速发展。1.提高温度控制器测温精度和分辨力在20世纪90年代中期最早推出的智能温度控制器,采用的是8位A/D转换器,其测温精度较低,分辨力只能达到2°C。目前,国外已相继推出多种高精度、高分辨力的智能温度传感器,所用的是9~12位A/D转换器,分辨力一般可达0.5~0.0625°C。为了提高多通道智能温控器的转换速率,也有的芯片采用高速逐次逼近式A/D转换器。2.增加温度控制器测试功能新型智能温度控制器的测试功能也在不断增强。例如,采用DS1629型单线智能温度传感器增加了实时日历时钟(RTC),使其功能更加完善。DS1624还增加了存储功能,利用芯片内部256字节的E2PROM存储器,可存储用户的短信息。另外,智能温度控制器正从单通道向多通道的方向发展,这就为研制和开发多路温度测控系统创造了良好条件。智能温度控制器都具有多种工作模式可供选择,主要包括单次转换模式、连续转换模式、待机模式,有的还增加了低温极限扩展模式,操作非常简便。对某些智能温度控制器而言,主机(外部微处理器或单片机)还可通过相应的寄存器来设定其A/D转换速率,分辨力及最大转换时间。参考文献[1]北京教育科学研究院.无线电技术基础[M].北京:人民邮电出版社,2005.[2]李文忠,段朝玉.短距离无线数据通信[M].北京:北京航空航天大学出版社,2006.[3]李艳红,李海华.传感器原理及其应用[M].北京:北京理工大学出版社,2010.[4]傅扬烈.单片机原理与应用教程[M].北京:电子工业出版社,2002.[5]GuiyunTian.FoundationandApplicationofMicrocontroller[M].北京:高等教育出版社,2004.[6]胡大可.MSP430系列单片机C语言程序设计与开发[M].北京:北京航天航空大学出版社,2003.[7]谭浩强.C程序设计[M].北京:清华大学出版社,1999.[8]何希才,薛永毅.传感器及其应用实例[M].北京:机械工业出版社,2004.[9]Simon[M].北京:电子工业出版社,2006.[10]朱玉颖,蔡占辉.基于nRF24L01的远程温度检测系统设计[J].通信与信息处理,2010,29(5):56-58.[11]吉雷,章优仕,齐永龙.Protel99电子电路设计[M]成都:电子科技大学出版社,2000.[12]武庆生,仇梅.单片机原理与应用[M].成都:电子科技大学出版社,1998.[13]周航慈.单片机应用程序设计技术[M].北京:北京航空航天大学出版社,1991.[14]台湾欧姆龙股份有限公司FAPLAZA编著小组.OMRON传感器与温度控制器[M].北京:科学出版社,2011.[15]谭浩强.C程序设计北京[M].北京:清华大学出版社,1999.致谢经过半年的忙碌和工作,本次毕业设计已经接近尾声,作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计很难。在这里首先要感谢我的指导

温馨提示

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

评论

0/150

提交评论