




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨工业大学工学硕士学位论文-目录摘要 IAbstract II第1章绪论 11.1数据传输的概述及分类 11.2无线数据传输系统的发展史 11.3无线数据传输系统的概述 21.4课题研究目的及意义 21.5本论文工作 3第2章系统分析与方案选择 42.1系统方案的选择及论证 42.2系统的总体组成 52.3系统的工作原理及功能 52.3.1系统的工作原理及组成 52.3.2系统功能 62.4本章小结 6第3章无线数据传输系统的硬件电路设计及调试 73.1键盘显示电路的设计与调试 73.1.1驱动电路的设计与原理 73.1.2外部电路的设计与调试 83.2发射接收模块的设计与调试 123.2.1芯片原理及电路设计 123.2.2外部电路的设计与调试 133.2.3无线收发模块的调试 183.3系统应用—温度实时采集系统的设计与调试 193.3.1芯片介绍 193.3.2电路设计及调试 203.4本章小结 21第4章无线数据传输系统的软件设计 224.1系统的整体设计 224.2键盘显示驱动程序 234.3nRF401发射接收模块的软件设计及应用 244.4系统应用—温度实时采集系统 294.5本章小结 30结论 31PAGEXLI---PAGEII--PAGE41--PAGE48-绪论数据传输的概述及分类数据传输一般由五部份组成:控制器、I/O板、操作站、通讯网络、编程软件。数据传输根据数据信号的传输模式和工作方式的不同可以分为下面几种方式。1.基带传输与频带传输:基带传输的特点是不需要调整解调处理,也即传输过程中信号的频谱没有发生变换。频带传输是在传输之前首先经过调制器,将基带信号变换成频带信号,然后在信道中传输,信号的频谱发生了搬移。无线数据传输就是频带传输的一个典型的实例,将基带信号调制到一个高频载波上传输。无线传输是不需要通过实体的物质介质的,它是通过空气、光束、电磁波、无直接接触的物质传播的传输方式。2.并行传输与串行传输:并行传输是指将数据符号编码后,在两条以上的并行通道上同时传输,而串行传输是指将数据编码按位或按码元依次在一条信道上传输。根据串行数据实现方式的不同,可以分为异步传输和同步传输。3.单工、半双工与全双工:单工通信只允许数据按指定的一个方向传输。半双工通信允许数据可以双向传输,但不能同时进行。全双工通信允许在两个方向上同时传输数据[1]。无线数据传输系统的发展史随着内容、接入技术、软件应用的发展,以及应用设备性能的不断提高、高数据速率低成本访问的实现,对运营商和消费者来说,无线数据传输的新产品、新技术将会更具吸引力。据专业人士分析,在近五年内,无线数据将呈现持续增长的态势,为那些有能力回应市场需求,以及有实力把新服务、新产品以光速推向市场的运营商们提供了企业创收和占领市场的契机。到目前为止无线数据传输已经广泛地运用在车辆监控、遥控、遥测、小型无线网络、无线抄表、门禁系统、小区传呼、工业数据采集系统、无线标签、身份识别、非接触RF智能卡、小型无线数据终端、安全防火系统、无线遥控系统、生物信号采集、水文气象监控、机器人控制、无线232数据通信、无线485/422数据通信、数字音频及数字图像传输等领域中[2]。无线数据传输系统的概述无线数据传输系统具有通信范围广,传输稳定可靠等特点。此类系统采用了大规模集成电路技术、单片机技术、网络数据传输技术、抗干扰技术和RS485、RS232通信技术。在线路的设计与元器件的选择上以较大的环境适应性为依据,确保了设备运行的可靠性。其具有体积小、重量轻、稳定性高、费用低廉、安装简单、抗干扰能力强等特点。无线终端适用于各种工业现场需要实现无线遥控、遥测及无线数据传输的各种场所。无线数据传输是指通过GSM和GPRS网络为企业客户提供无线传输通道,解决有线网络难以建设的地区或地点的数据传输问题,具有费用低廉和移动灵活的特点。无线数据传输特别适用于机器到机器的应用,如在遥感遥测等具有数据读取功能的终端上集成无线通信功能。此类终端可在定时或在被激活情况下通过无线传输通道与企业客户中心数据库进行数据交互[3]。课题研究目的及意义无线数据传输的系统是硬件和软件的有机结合,利用快速发展的网络技术,无线通信通信技术得到近距离的音频、视频信息。目前,无线数据传输的系统在许多领域有着重要作用,广泛应用于对分散场所实施远程监控及报警的领域中,同时还可用于可视化办公及现代企事业管理。无线数据传输制系统有着广泛的现实意义,如下就是实际生活中以无线数据传输技术为平台而设计的控制系统,具体有以下几大方面:1.无线远程抄表系统:用于将水、电、气三表的数据上传,下端接数据终端即水、电、气三表,方式如RS485、脉冲等。采用上位机主叫方式,模块CPU接到指令后,将各端口数据采用短信方式或数传方式回传;可以抄读多功能表的有功、无功、需量、功率、电压、电流等数据。2.数据的采集与实时传输系统:对各个领域或一些行业的系统进行实时监控,采集其相关的数据并进行无线数据传输,正广泛应用于:电压监测仪、配变负荷监测仪、水电厂运行设备智能巡检、电力城网自动化系统、移动通信基站监控、GPS定位、物流管理、银行POS机联网、城市供热等。3.水文、气象、环境监测系统:随着社会的发展,与人类关系密切的水文、气象、环境也得到了重视,然而要有利于防范就须加于监测,城市照明监控系统[4]。本论文工作1.设计一种基于89C52单片机和nRF401芯片的无线数据传输系统。设计硬件电路及PCB板。2.硬件电路主要完成智能控制、无线传输、数据采集、键盘显示,以及通讯功能。3.硬件电路的仿真与调试。用自制开发板进行硬件与软件的仿真,进行调试。使系统能够正确、稳定的完成数据传输采集、显示、通信,以及智能控制功能。4.连机调试、运行,确保系统能够稳定的、正确的运行,实现相关功能。系统分析与方案选择系统方案的选择及论证方案一:行思科技提供的无线数据采集传输系统方案,充分利用了公网资源——中国联通移动通讯网为数据通道,并结合自身在数据传输技术,提供一个切实可行、低运营成本的解决方案。此系统方案将数据采集前端的智能终端、传输网络及系统后台对数据的收管理、分析处理充分整合,功能强大,应用性强。可广泛用于电力、水利、公安、交通、安防等领域,极大提高提高生产、经营和管理自动化水平及经济效益。方案二:蓝牙数据传输解决方案,Thinx擅长为客户提供运用蓝牙技术进行智能认证与识别的解决方案,包括:智能化运输/物流系统中的海关、码头蓝牙解决方案;蓝牙智能交通解决方案;为具体客户量身定做的蓝牙门禁系统,可广泛应用于高速公路收费处,企业、商业、居民区出入口,停车场,高级酒店,港口和机场出入口,货车场和货物仓库,大型企业装配生产线等场所。方案三:超声波无线传输方案,由于超声波具有指向性强,能量消耗缓慢,在介质中传播的距离远的特点,所以利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,便于与单片机连用。方案四:使用红外线无线数据传输方案,就像用电视遥控器发送信号那样,利用红外线传输数据也可以将计算机以无线方式连接到其它临近的计算机或设备上。能非常准确地测出小车与障碍物的距离,但价格高,处理复杂,不符合我们的要求。方案五:低功耗长距离无线传输方案,Thinx无线数据传输广泛地运用在车辆监控、遥控、遥测、小型无线网络、无线抄表、门禁系统、小区传呼、工业数据采集系统、无线标签、身份识别、非接触RF智能卡、小型无线数据终端、安全防火系统、无线遥控系统、生物信号采集、水文气象监控、机器人控制、无线232数据通信、无线485/422数据通信、数字音频、数字图像传输等领域中。类似蓝牙的解决方案,相较蓝牙技术,经我们实际测试,的优势在于低功耗,可以使用电池供电,且建连速度要快很多,很多情况下亦可轻松建立连接传送数据。从各个方面来考虑,最后决定采用第五个方案。集成度比较高,实际问题上研究起来省去了很多不必要的麻烦,芯片内部集成的高频发射、高频接收、PLL合成、FSK调制、FSK解调、多频道切换等功能,我们可以通过软件将其实现的更好[5]。系统的总体组成整个无线传输系统由发射、接收两大模块组成,其中以单片机最小控制系统为核心、以芯片构成发射、接收模块为无线数据传输通道,附加键盘、显示模块,后续扩展口开发电路(无线数据采集系统),构成无线数据传输的监测系统。系统组成示意图如下图2-1、2-2所示:图2-1发射模块示意图图2-2接收模块示意图系统的工作原理及功能系统的工作原理及组成无线数据传输系统的智能无线测控终端为双向无线信号传输,用于实现远距离的无线遥控和遥测及数据传输,一个终端将输入的信号发送到远方的另一个终端上。同时远方终端返回一个是否正确接收的握手信号,如果对方接收正确则本次停止发送,如果对方接收不正确,则发送方继续发送,直至对方接收正确为止,以确保无线传输的可靠性。无线数据传输系统的组成:1.电源部分:提供系统工作电源。2.主控CPU部分(C51最小系统控制模块):实时读写管理模块的数据。3.数据发送部分:根据实际要求通过键盘或者设置要发送的数据,显示在显示板上,然后把数据发送给接受部分。4.数据接收部分:根据主控命令抄读终端数据并转发给主控CPU,数据显示在显示板上。5.DS1820温度测量模块:将采集到的温度值显示在显示板上,再由无线收发模块发送,另一无线收发模块接受显示。系统功能无线数据传输系统是一个全集成的、结构完整、功能完善;结合先进的计算机软、硬件技术,面向整个生产过程的过程控制系统。本系统功能如下:1.无线传输距离1m到1000m。2.系统性能指标好,自动化程度高。3.利用奇偶校验法判断误码,自动消除传输误码。4.实现了发送机和接收机之间数据传输的切换,并且误码率为零。5.同一模块既可以做发射机,又可以做接收机,可实现数据的半双工无线传送。6.发送的数据可以手动设置,也可以是系统采集的数据。可以方便的实现单片机与单片机之间点对点的无线通信。7.利用自制的接口程序进行数据收发。将文件打包成可识别的二进制码,可实现大批量其他类型文件的无线传输。8.系统模块还备有数据采集系统,在无线数据传输的基础上实现了无线数据采集;通过滤波处理得到比较准确的数据,即显示于显示屏上。9.外接指示灯,显示数据的传输状态。本章小结本章主要介绍无线数据传输系统的系统组成原理,整个无线传输系统由发射、接收两大模块组成,每一个模块都可以作为接收或是发射模块。其中以单片机最小控制系统为核心、以芯片构成发射、接收模块为无线数据传输通道,附加键盘、显示模块以及温度采集模块,进行了详细的方案论证和比选,为系统的软、硬件设计提供了有力的理论依据。无线数据传输系统的硬件电路设计及调试键盘显示电路的设计与调试驱动电路的设计与原理键盘、显示模块采用BC7281A芯片。1.芯片简介:BC7281A芯片是128段LED显示及64键键盘控制芯片,BC7281A各位可独立按不同的译码方式译码或不译码显示,译码方式显示时小数点不受译码影响,使用更方便;较之BC7281,BC7281A对16个显示位均可以独立地控制闪烁属性;BC7281A内部还具有一闪烁速度控制寄存器,使用者可随时改变闪烁频率;译码方式除了常用的BCD译码等2种方式外,还有专用于光柱(Bar)显示的光柱译码方式,只要送一个字节,就可以完成光柱显示的控制。128段被分成2个各自独立的64段光柱,可以分别控制。另外,128个显示段同时被分配了128个地址,利用段寻址功能可以独立地控制每一个段,便于使用独立的LED[6]。BC7281A具有以下特点:可驱动8位或16位数码管显示或64/128只独立LED;具有64键键盘接口内含去抖功能;具有2种键盘工作模式适应不同应用需求;独具光柱译码方式可独立控制两条64段光柱显示;段寻址功能便于控制独立LED;16位均可独立控制闪烁属性闪烁速度软件可调;段驱动极性及移位脉冲时序均可控可配合各种形式的驱动电路;键盘部分具有键值锁存功能;内部显示寄存器和控制寄存器的内容均可读出;2线高速串行接口。2.工作原理:整体示意图如图3-1所示。1)键盘矩阵:BC7281A最多可以连接个64按键,按8*8矩阵排列,矩阵的‘行’连接到BC7281A的位驱动DIG0-DIG7,矩阵的‘列’连接到第0-7位显示的段驱动移位寄存器的输出,为了防止对显示部分的影响,键盘矩阵与显示电路之间必须加入二极管和4.7K的隔离电阻。当使用BC7281A的键盘功能时,DIG0-DIG7上应加以100K的下拉电阻,且8根引脚必须都接入下拉电阻,即使所用到的键比较少时,也不能将其中未连接键盘的引脚上的下拉电阻省略。2)与MCU的接口:BC7281A与MCU之间通讯采用2线高速串行接口,二根连线分别是数据线DAT和同步时钟线CLK,其中DAT为双向数据传输线,BC7281A既用该线从MCU接收数据,也用该线向MCU发送数据。BC7281A的DAT引脚为漏极开路输出(OPENDRAIN)结构,使用时需要在该线上加一20K左右的上拉电阻。CLK引脚为串行接口的同步时钟,由MCU控制,下降沿有效。图3-1键盘显示电路外部电路的设计与调试该电路主要是实现键盘和显示两部分功能,利用BC7281A驱动芯片驱动16位数码管(在此系统里只用了8位数码管)显示该系统所需要的数据及符号,再驱动键盘,把各个键都给他附上相应的操作,这样就完成了对整个键盘显示的驱动。1.振荡电路:BC7281A采用外接的RC振荡电路为显示和键盘扫描提供时钟驱动,外接元件的典型参数为R=3.3K,C=20pF,见图3-2所示。在VCC=5V的情况下,振荡电路的典型振荡频率约为4.5MHz。BC7281A的CLK端为内部振荡电路的输出端,一般此脚悬空即可。在电路板布线时,振荡电路的元件应尽可能地靠近BC7281A芯片,并尽量使连线最短。2.复位电路:芯片的RST引脚为复位端。因为BC7281A的内部有上电复位电路,因此在一般情况下不需要特殊的复位电路,只需将RST引脚直接连接到VCC端就可以了。如果需要外部的复位电路,可以按照如下的接法。RST上的复位脉冲的最小宽度为20ms,复位电路中电阻R的阻值一般不要超过40K。另外的一种方法是直接由MCU控制BC7281A的复位。图3-2振荡电路BC7281A的复位过程大约需要25ms的时间,也即RST为高电平约25ms后,BC7281A才开始工作。见图3-3所示。图3-3复位电路3.与MCU接口电路:BC7281A与MCU的接口共需要三根线,数据线DAT,时钟线CLK和按键指示,其中CLK和引脚,分别为输入和输出引脚而DAT脚则为双向口,其内部为OPENDRAIN结构,需要外接一20K左右的上拉电阻,以使其能可靠地输出高电平。其接口电路见图3-4所示。图3-4与MCU的接口电路4.位驱动电路:DIG0-DIG7为位驱动输出,BC7281A适合连接共阳式的数码管,虽DIG0-DIG7本身具有一定的驱动能力,但为了保证足够的显示亮度,且不影响键盘部分的操作,应该另加以外部驱动电路。外部驱动电路比较简单,只需要8只NPN型三极管即可,三极管接成射极跟随器形式,因此基极无需限流电阻。如图3-5所示。图3-5位驱动电路5.段驱动电路:串入SRCLK端的电阻的作用在于与芯片的输入电容及电路的分布电容构成一个积分电路,从而对输入SRCLK的时钟产生一个微小延时,这样可以保证移位脉冲SRCLK迟于二级锁存脉冲RCLK到达,从而保证移位寄存器的内容在变化之前可靠地进入二级锁存器。电阻的阻值没有严格要求,并且不同厂家及不同型号的芯片对应的阻值范围也会有所不同,一般而言,这个范围是比较宽的,从几K到几十K都可以,20K的阻值可以适用于绝大多数芯片。如图3-6所示。6.按键电路:当按键少于8个时,可以将二极管省略。在键盘显示显示电路中所加的4.7K电阻和二极管都是为了防止由键盘引起的短路。如果没有电阻和二极管的保护,当同一行或同一列里面有两个按键同时按下时,会造成相应行或是相应列的短路,影响显示。而当按键数少于8个时,可以将所有按键集中到一行或是一列中,这样也就避免了想要的列之间或是行之间的短路,从热可以将保护电阻或是二极管省略。将按键集中到一列,如图3-7所示。图3-6段驱动电路图3-7按键电路发射接收模块的设计与调试芯片原理及电路设计发射接收芯片采用nRF401:1.芯片简介:其主要特性工作频率为国际通用的数据传输频段;FSK调制,抗干扰能力强,特别适合工业控制场合;在芯片内同时集成了高频发送、接收电路以及FSK调制和FSK解调功能,使用一块芯片就可以完成全部数据发送和接收工作;采用PLL频率合成技术,频率稳定性极好;灵敏度高,达到-105dBm;功耗小,接收状态250A,待机状态仅为8A;最大发射功率达+10dBm;低工作电压(2.7V),可满足低功耗设备的要求;具有多个频道,可方便地切换工作频率;工作速率最高可达20Kbit/s;仅外接一个晶体和几个阻容、电感元件,基本无需调试;因采用了低发射功率、高接收灵敏度的设计,使用无需申请许可证,开阔地的使用距离最远可达1000米(与具体使用环境及元件参数有关)。nRF401是北欧集成电路公司(NORDIC)的产品,是一个为433MHz频段设计的真正单片无线收发芯片,满足欧洲电信工业标准。它采用FSK调制解调技术,最高工作速率可以达到20Kbit/s,发射功率可以调整,最大发射功率是+10dBm。nRF401芯片集成了高频发射、高频接收、PLL合成、FSK调制、FSK解调、多频道切换等功能,具有性能优异、外围元件少、功耗低、无需进行初始化和配置、使用方便等特点,广泛应用于无线数据传输系统的产品设计中[7]。nRF401无线收发芯片的内部结构:内部结构可分为发射电路、接收电路、模式和低功耗控制逻辑电路及串行接口几部分。发射电路包含有:发射功率放大器(PA)、晶体振荡器(OSC)、锁相环(PLL)、压控振荡器(VCO)、混频器(MIXFR)等。接收电路包含有:低噪声接收放大器(LNA)、解调器(DEM)等电路。基准振荡器采用外接晶体振荡器,产生电路所需的基准频率。如图3-8所示。nRF401无线收发芯片具有20个引脚,如图3-9所示是其引脚排列。2.工作原理:nRF401与MCS的接口电路比较简单,外围元件很少,包括一个基准晶体及几个无源器件。图3-9中的L1电感需要用高Q高精度的贴片绕线高频电感(Q>45),在设计时我们充分考虑了这一点,并且通过反复实验,我们确定了其距离nRF401的最佳位置。此外为了确保性能,晶体X1我们采用高稳定晶体,电容元件选用高稳定贴片元件NPO高稳定电容。在接收模式中,nRF401被配置成传统的外差式接收机,所接收的射频调制的数字信号被低噪声效大器放大,经混频器变换成中频,放大、滤波后进入解调器,解调后变换成数字信号输出(DOUT端)。在发射模式中,数字信号经DIN端输入,经锁相环和压控振荡器处理后进入到发射功率放大器射频输出。由于采用了晶体振荡和PLL合成技木,频率稳定性极好;采用FSK调制和解调,抗干扰能力强。
nRF401的ANT1和ANT2引脚是接收时低噪声接收放大器LNA的输入,以及发送时发射功率放大器PA的输出。连接nRF401的天线可以以差分方式连接到nRF401,一个50Ω的单端天线也可以通过一个差分转换匹配网络连接到nRF401。图3-8nRF401内部结构图nRF401的PWR,TXE,CS,DOUT,DIN分别接单片机的P1.2,P1.3,P1.4,RXD,TXD。在设计时充分考虑到51机最小系统对nRF401电路的干扰,两部分彼此独立。此外,在保证功能完善的前提下,使其工作于最小工作模式,并配以手动复位电路,以保证程序的正确运行。从加电到发射模式过程中,为了避免开机时产生干扰和辐射,在上电过程中TXEN的输入脚必须保持为低,以便于频率合成器进入稳定工作状态。当由上电进入发射模式时,TXEN必须保持1ms以后才可以往DIN发送数据。外部电路的设计与调试在nRF401芯片使用时,设定好工作频率,进入正常工作状态后,通过单片机根据需要进行收发转换控制,发送/接收数据或进行状态转换。在实际的设计应用中,影响传输距离的主要因素[8]:在工作频率固定的前提下,影响工作距离的主要因素包括发射功率、发射天线增益、传播损耗、接收天线增益、接收机灵敏度等,通过加大发射功率,提高天线增益,提高接收机灵敏度均起到提高通信距离的作用。在影响无线通信距离的以上几个因素中,作为设计者可以控制的因素有:接收灵敏度;发射输出功率。图3-9nRF401引脚排列图作为设计者不能控制的因素,以下这些因素是由无线电波的特点所决定的,无法由设计者改变及选择:传输损耗;路径损耗;多径损耗;周围环境的吸收。传输损耗包括自由空间损耗和其他传输损耗,所谓自由空间传播系指天线周围为无限大真空时的电波传播,它是理想传播条件,自由空间传播损耗与距离和工作频率有关。下面的公式说明在自由空间下电波传播的损耗:Los是传播损耗,单位为dB;d是距离,单位是km;f是工作频率,单位是MHz。由上式可见,自由空间中电波传播损耗(亦称衰减)只与工作频率f和传播距离d有关,当f或d增大一倍时,[Los]将分别增加6dB。1.加大功率提高通信距离。在设计者可以控制的因素中,接收灵敏度、天线增益、发射功率都是可以作为提高通信距离的手段,通常设计者会考虑采用加大发射功率的方式来提高通信距离,但这不是一个好的办法。有的设计者考虑到加大发射功率可以提高通信距离,但是没有考虑到其他不理想的因素:加大功率后,带来高电流消耗由于功率放大器的转换效率较低,这对于便携设备是非常不利的;无线电噪声,由于加大功率会产生较大的谐波干扰和噪声,并会对通信造成其他影响,反而会影响通信距离。2.采用高增益天线提高通信距离。用高增益天线来提高距离具有以下优点:集成天线,体积较小;成本低于采用增加功放的方式;与其他方案相比非常简单;无需增加额外的功耗和增加外围元件。以下举例采用高增益天线与采用Loop低增益天线的通信距离对比:1)采用环形天线2)采用0dB增益天线这是理想状况下的传输距离,实际的应用中是会低于该值,这是因为无线通信要受到各种外界因素的影响,如大气、阻挡物、多径等造成的损耗,将上述损耗的参考值计入上式中,即可计算出近似通信距离。假定大气、遮挡等造成的损耗为25dB,可以计算得出通信距离为:d=1.7km。由此也可看出传播损耗对数据传输可靠性的影响是很大的。ANT1和ANT2是接收时LNA的输入,以及发送时功率放大器的输出。连接nRF401的天线是以差分方式连接到nRF401的。在天线端推荐的负载阻抗是400欧姆。图3-10就是一个典型的采用差分方式的原理图。射频功率放大器输出是两个开路输出三极管,配制成差分配对方式,功率放大器的VDD必须通过集电极负载,当采用差分环形天线时,VDD必须通过环形天线的中心输入[9]。一个的单端天线或测试仪器也可以通过一个差分转换匹配网络连接到nRF401,如图3-11所示。nRF401的天线接口设计为差分天线,以便于使用低成本的PCB天线。它要求非常少的外围元件(约10个),无需声表滤波器、变容管等昂贵的元件,只需要便宜且易于获得的4MHz晶体,收发天线合一。无需进行初始化和配置,不需要对数据进行曼彻斯特编码,有两个工作频宽,工作电压范围可以从,还具有待机模式,可以更省电和高效。图3-10发射接收接口电路原理图图3-11单端天线原理图环形天线:可以直接制作在印刷电路板上,占用体积小,制作简单,方便实现,在短距离传输中可靠好。3.与单片机共用一个晶振:nRF401可以与单片机共用一个晶振,如图3-12表示了这种应用的连接方式。需要注意从单片机引入的晶体走线不能离数据线或者控制线太近。图3-12与单片机共用一个晶振4.发射和接收频率问题:为了获得最好的RF性能,发射和接收频率误差不能超过(30KHz)。这就是要求晶体的稳定度不能低于,频率的差异会导致接收机灵敏度产生倍程的损失。5.PCB布局和去耦设计[9]:印刷电路板(PCB)的设计直接关系到射频性能,为了获得较好的RF性能,PCB设计至少需要两层板来实现,PCB分成射频电路和控制电路两部分布置。nRF401采用PCB天线,在天线的下面没有接地面。射频部分的电源与数字电路部分的电源分离。为了减少分布参数的影响,在PCB应该避免长的电源走线,所有元件地线,VDD连接线,VDD去耦电容必须离nRF401尽可能的近。nRF401应尽量使用单独的直流电源供电,也其他数字电路的电源分开。nRF401的电源必须经过很好的滤波,并且与数字电路供电分离,在离电源脚VDD尽可能近的地方用高性能的电容去耦,最好是一个小电容和一个大电容相并联。PCB板顶层和底层最好敷铜接地,把这两层的敷铜用较多的过孔紧密相连,再将VSS脚连接到敷铜面。所有开关信号和控制信号都不能经过PLL环路滤波器元件和VCO电感附近[10]。对nRF401的PCB布局来说,VCO电感的位置是非常重要的。VCO电感连线应与其他控制线保持一定的距离,应避免数字控制线从电感引脚之间经过。nRF401VCO电感位置的最佳设计是保证产生1.1V左右的PLL环路滤波器电压[11]。无线收发模块的调试硬件测试无线收发模块:将工作模式切换引脚TXEN设置为高电平,芯片处于发送状态。频段选择端CS=1,通过频谱分析仪可以观察到中心频率为434.3MHz的频谱,说明无线收发模块在频段434.3MHz正常工作。频段选择端CS=0,通过频谱分析仪可以观察到中心频率为433.9MHz的频谱,说明无线收发模块在频段433.9MHz正常工作。这样就测试了两个无线收发模块正常工作也发送状态。两个无线收发模块的频段选择端CS=0,模块一数据接收状态TXEN=1,模块二置为数据接收状态TXEN=0,在模块一的DIN引脚分别加发波和正弦波,用数字示波器观察模块二的DOUT引脚的输出波形,分别如图3-13、图3-14。通过图3-13、图3-14可知,发送不同的波形经过FSK调制解调得到的是不同的占空比的方波,由此来检测无线收发模块是否可以正常通信。图3-13CH1输入方波波形,CH2接收到的波形图3-14CH1输入正弦波波形,CH2接收到的波形系统应用—温度实时采集系统的设计与调试在无线数据传输系统的基础之上进行了简单的应用,此为温度实时采集系统的简单介绍。芯片介绍温度是非常重要的物理参数,热电偶和热敏电阻适合大多数高温测量,但设计人员必须为特定的应用选择恰当的传感器,热电偶的温度响应特性较好、成本较低、可测量较高的温度;热敏电阻具有较高的精度、较好的长期稳定性,工作温度范围:-200℃至850℃,经过适当的数据处理就可以传输、显示并记录其温度输出。因为热敏电阻的阻值和温度呈正比关系,设计人员只需将已知电流流过该电阻就可以得到与温度成正比的输出电压。根据已知的电阻-温度关系,就可以计算出被测温度值。而DS1820数字式温度传感器,与传统的热敏电阻有所不同的是它可以直接将被测温度转化成串行数字信号供微机处理,并且根据具体要求,通过简单的编程实现9位的温度读数[12]。DS1820的管脚如图3-15所示。图3-15DS1820管脚图DS1820的外围电路非常的简单,如图3-16所示。图3-16DS1820外围电路图电路设计及调试DS1820主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高数暂存器、用于存储用户设定的温度上下限值、触发器存储与控制逻辑、8位的循环冗余校验码发生器等7部分。它的内部框图如图3-17所示。图3-17DS1820的内部框图本章小结本章介绍了无线数据传输系统的硬件设计,其中重点阐述了键盘显示电路的工作原理,外围电路的设计和调试;nRF401发射接收模块的工作原理,外围电路的设计和调试以及系统的简单应用—温度采集系统。温度采集系统采用芯片DS1820,一个数字温度传感器,实现温度的采集和显示。无线数据传输系统的软件设计系统的整体设计整个系统流程以键盘显示控制为程序核心,在键盘显示驱动程序的基础上进行分支处理,设置工作模式,再进行相应的模式数据处理,在实现无线数据传输基本功能的基础上逐步扩展其他功能,系统整体流程图见图4-1所示[13]。图4-1系统整体流程图多种工作模式选择:既可以用键盘显示模块手动发送数据,在另一端键盘显示模块接收并显示数据,还可在PC机窗口中显示数据;又可以通过PC机键盘输入,传输数据到单片机,并显示在键盘显示模块上;同时在PC机发送模式下可以连续发送一个数据块,既实现了PC机之间的文件传输。键盘显示驱动程序严格按照BC7281A的工作时序进行程序的编写,见图4-2所示,键盘编程方式是键查询方式,对键盘进行初始化后,键盘就进入等待模式,处于键扫描状态,等待键按下,一直等到有键按下,键扫描才结束,并读键值,而后进行该键相应的数据处理,处理完后又回到键盘扫描状态,等待下一次键按下。图4-2BC7281A时序图键盘显示驱动程序流程图见图4-3所示:图4-3键盘显示驱动程序流程图nRF401发射接收模块的软件设计及应用1.发射接收模式选择:TXEN选择发射或者接收工作模式。TXEN=1时选择发射模式;TXEN=0时选择接收模式。2.频道选择:CS选择工作频道。CS=0时选择1频道();CS=1时选择2频道()。3.节能控制:PWRUP选择工作模式和待机模式。PWRUP=1选择正常工作模式;PWRUP=0选择待机模式。4.状态切换:nRF401共有3种工作状态,分别为待机状态、发送状态(TX)和接收状态(RX)。通过对外部引脚的设置,nRF401可以灵活地在几种模式之间转换。TX与RX切换的时序:当芯片由RX状态切换到TX状态时,需要工作模式切换引脚(TXEN)至少保持1ms的高电平,芯片能完成RX到TX切换的动作,由芯片的DIN引脚接收要发送的数据[14]。当芯片由TX状态切换到RX状态时,需要工作模式切换引脚(TXEN)至少保持3ms的高电平,芯片能完成TX到RX切换的动作,由芯片的DOUT引脚输出接收到的数据。TX与RX之间状态切换的时序如图4-4,图4-5。图4-4接收状态转换到发射状态时序图待机状态到TX或RX状态的时序:从待机状态至TX或RX状态的切换是由PWR_UP引脚控制。待机状态下,若TXEN引脚保持低电平,则将PWR_UP设为高电平2ms,后,DOUT引脚输出数据才有效,芯片进入RX状态。图4-5发送状态转换接收状态时序图若待机状态下TXEN始终保持高电平,则PWR_UP保持为高电平3ms后,DIN引脚输入有效,芯片进入TX状态。由待机状态切换至RX和TX状态的时序如图4-6,图4-7。图4-6待机状态到接收状态时序图图4-7待机状态到发送状态时序图芯片上电后切换至RX或TX状态的时序:芯片上电后,若TXEN始终保持低电平,则4ms后nRF401稳定处于数据接收状态,DIN引脚有效。若TXEN始终保持高电平状态,则5ms后,nRF401稳定处于数据发送状态,DOUT引脚输出数据有效。芯片上电后切换至两种状态的时序如图4-8,图4-9。图4-8上电后切换至发送状态时序图图4-9上电后切换至接收状态时序图在设计程序时,要注意各状态转换的时延。nRF401的通讯速率最高为20kbit/s,发送数据之前需将电路置于发射模式;接收模式转换为发射模式的转换时间至少为1ms;可以发送任意长度的数据;发射模式转换为接收模式的转换时间至少为3ms。在待机模式时,电路进入待机状态,电路不接收和发射数据。待机模式转换为发射模式的转换时间至少为4ms;待机模式转换为接收模式的转换时间至少为5.0ms。为了接发机之间达到同步设置了握手信号,确保握手信号正确,系统才开始接收有效数据包,并且包头数据在传输过程中容易丢失,所以在有效数据包之前发送任意字节,以防止丢失有效数据。误码的判断,接收端使用字节奇偶校验法,即把要校验的内容的每个字节按位节异或到一起,这样最后就可以得到一个校验字节,这其实相当于对待校验字节中的相应位声称奇偶校验位(如校验字节的第0位实际就是校验内容的第一个字节的第0位、第二个字节的第0位、……一直到最后一个字节的第0位组成的字串的偶校验位,校验字节的其他位也是一样的)。发送的数据进行字节奇偶校验并发送,检查接收到的数据,也进行字节奇偶校验,再把校验位进行比较,判断并返回发射端的值,有误码则不显示接收的数据,并且发射端自动重发,一直到校验正确,这样大大降低了误码传输,实现传输自动化,并且从外部硬件电路指示灯上可以看出数据是否传输正确[15]。程序流程图[15]见图4-10、4-11所示。图4-10发射程序流程图图4-11接收程序流程图系统应用—温度实时采集系统DS1820采用的是1-wire技术,即单总线技术。单总线只采用一根数据线,系统中的数据交换、控制都由这根线完成。单总线通常要求外借外接一个约为4.7K的上拉电阻,这样,当总线闲置时,其状态为高电平。主机与从机之间的通信可通过三个步骤完成,分别为初始化1-wire器件、识别1-wire器件和交换数据[16]。基本通信过程如下:1.主机通过拉低单总线至少480us产生Tx复位脉冲。2.由主机释放总线,并计入Rx接收模式。主机释放总线时,会产生一由低电平跳变为高电平的上升沿。3.单总线器件检测到上升沿后,延时15~60us。4.单总线器件通过拉低总线60~240us来产生应答脉冲。5.主机接收到从机的应答脉冲后,说明有单总线器件在线,然后主机就可以开始对从机进行ROM命令和功能命令操作。在编写程序时要注意,所有的读、写时序至少需要60us,且每两个独立的时序之间至少需要1us的恢复时间。在写时序时,主机将在拉低总线15us之内释放总线,并向单总线器件写1;若主机拉低总线后能保持至少60us的低电平,则向单总线器件写0。单总线器件仅在主机发出度时序时才向主机传输数据,所以,当主机向单总线器件发出度数据命令后,必须马上产生读时序,以便单总线器件能传输数据。DS1820操作的总体流程如图4-12所示[17]。图4-12DS1820操作的总体流程图本章小结本章介绍了无线数据传输系统的软件设计,本章主要介绍了系统单片机软件设计的思想和方法以及在软件设计中采用的软件算法。单片机软件实现了各种数据采集、处理、显示、传输、控制等功能,友好的人机界面,使得数据采集、数据传输及控制更直观、方便。结论本系统整体实现功能的指标:1.互换性及实用性:本设计的最大优点之一是它的互换性强,即可利用键盘设置工作模式,使某模块处于某种工作模式,另一模块处于与其相对应的工作模式下,进行数据传输;也可以通过设置工作模式,使这两模块的工作模式进行调换,同一模块在不同的数据传输中可以扮演不同的角色,既可以作发射模块亦可以作接收模块,实现半双工的数据传输;该设计硬件电路结构简单,通用性较强,外扩温度采集系统,可通过传感器测量各种物理量,实用性强。2.自动化程度高:一键触发式,自动完成误码检测,确保接收到正确数据。3.可靠性好:校验采用字节奇偶校验的方式,数据传输误码率小,程序自动校准误码,并且只接收正确数据并显示。4.不发送数据时,模块处于低功耗节电模式。5.该系统为点对点式无线数据传输系统模式,可扩展为无线测温系统、无线测量湿度系统、无线公交车报站系统等。综上所述,本文对无线数据传输系统及实际应用的关键技术进行了研究,获得了一定成果。但还有许多问题有待以后进一步研究,以下是系统的欠缺或可能的研究方向:1.系统的传输距离还受到很大的局限,远距离的无线通信还是无法用该系统实现。传输过程中遇到障碍物时,信号的衰减非常严重,所以发送功率还待有进一步的提高。2.传输速度也是其中一个问题,由于无线数据传输的误码率较高,通信协议就比较复杂,传输的数度就要受到很大的限制。但是其速度也已经足够用于语音通信,为将来的无限通信及管理设备方面的发展提供了可靠的前提基础,可用于楼宇之间的小型内部通信等等。附录C系统程序#include<reg51.h>#include<intrins.h>#define_RDY_0x06#define_BUSY_0x15#define_OK_0x00#define_SUCC_0x0f#define_ERR_0xf0#defineucharunsignedchar#defineuintunsignedint////////////////////////////////////voidinit_1(ucharbps);voiddelay_50();voidshake_hand();voidre_init();voidanswer_infor();voidsend_data();voidsend_401();voidre_init();voidwait_ans();voidre_hand();voidre_wait();voidreceive_401();//////////////////////////////////sbittxen=P1^3;sbitpwr=P1^2;sbitcs_401=P1^4;sbitP10=P1^0;sbitclk=P1^7;sbitdat=P1^5;sbitkey=P1^6;ucharpf;//////////////////////////////////////////////////ucharknm;bitflag,send_flag;ucharcodearr[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};ucharcodearray1[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};/////////////////////////////////////////////////////ucharcodebps1200[8]={0xc0,0xc0,0xa4,0xf9,0xff,0xff,0xff,0xff};ucharcodebps2400[8]={0xc0,0xc0,0x99,0xa4,0xff,0xff,0xff,0xff};ucharcodebps4800[8]={0xc0,0xc0,0x80,0x99,0xff,0xff,0xff,0xff};ucharcodebps9600[8]={0xc0,0xc0,0x82,0x90,0xff,0xff,0xff,0xff};ucharcodemod1[8]={0xce,0x8c,0x84,0xc6,0xc6,0x88,0xff,0xff};//接受状态ucharbtl=96;//波特率标志位ucharmod=1;ucharsend_buf[7];ucharrece_buf[7];////////////////////////uchar*buf=&send_buf[0];uchar*re_buf=&rece_buf[0];voiddelay();voidkey_scan();voidon_00();voidoff_00();voidadd(ucharcc);voidadd_1(ucharcc);voidon_off();voiddispdata_set();voidrun_right();voidinc();voidtrg()reentrant;///////////////////////////////////////////////////ucharbdatakf;sbitkey_onoff=kf^0;sbitkey_set=kf^1;sbitkey_right=kf^2;sbitkey_inc=kf^3;sbitkey_trg=kf^4;sbitkey_btl=kf^5;sbitkey_s=kf^6;sbitkey_mod=kf^7;////////////////////////////////////////////////////voiddisp_btl(ucharbt);voidmodel();voiddisp_mod(ucharmo);voidkey_process_4(ucharkv)reentrant;voidkey_process_3(ucharkv)reentrant;voidkey_process_2(ucharkv)reentrant;voidkey_process(ucharkv)reentrant;voidkey_process_5(ucharkv)reentrant;/////////////////////////////////////////////////////voiddelay();sbitgreen=P2^0;sbitred=P2^3;//////////////////////7281读写程序/////////////////////send_byte(ucharsend_byte)//向7281送数{ucharconter;clk=0;clk=1;do{clk=0;clk=1;}while(dat);clk=0;clk=1;//15us内再发一脉冲while(!dat);//等7281进入接受态for(conter=0;conter<8;conter++){if((send_byte&0x80)==0)//发送时高位在前{dat=0;}else{dat=1;}send_byte=send_byte*2;clk=0;clk=1; delay();}dat=1; delay();//指令间设置微延时}receive_byte()//7281接受数据从13H中取数{unsignedcharconter,in_byte;clk=0;clk=1;//发送一个单脉冲while(dat);//等待dat低电平响应clk=0;clk=1;//再发一脉冲等待接受数据for(conter=0;conter<8;conter++){delay();in_byte<<=1;if(dat){in_byte=in_byte|0x01;}clk=0;clk=1;} delay();return(in_byte);}write7281(ucharreg_add,ucharwrite_data){send_byte(reg_add);//先发地址,再发数据send_byte(write_data);}read7281(ucharreg_add){send_byte(reg_add|0x80);//发送读指令并使高位为"1"即读指令return(receive_byte());//接受数据并返回}voiddelay(){ uinttime,i; for(time=1;time>0;time--) { for(i=18;i>0;i--); }}/////////////////////////////////////////////////////////////////////7291键控显示//////////////////////////voidkey_scan(){while(key);knm=read7281(0x13);}voidundo(){}voiddisp_one() //显示{uchari;write7281(0x10,0xff);for(i=0;i<8;i++){write7281(i,0xbf);}}voiddisp_two()//显示accept{uchari;for(i=0;i<8;i++){write7281(i,mod1[i]);}}voidon_00()//开显示器时的状态0x00{uchari,dd;dd=0x00;for(i=0;i<8;i++){write7281(0x14,dd);dd+=0x10;} //0-7位显示0write7281(0x18,0x27); //第四位小数点亮write7281(0x10,0xff);flag=!flag;}voidoff_00()//当关掉显示器重新启动时应该初始态{write7281(0x16,0x00); //点亮显示段的个数位0write7281(0x10,0xff);flag=!flag;}voiddispdata_set() //键盘设置0x01{uchari,dd;write7281(0x10,0xef);//第四位闪烁for(i=0;i<8;i++){dd=read7281(i);if(dd==0xff)write7281(i,0xc0);//全部显示零elsebreak;}kf=0;//初始化键标值while(1){if(key_onoff==1||key_trg==1)break;else{kf=0;key_scan();key_process_3(knm);}}}voidtrg()reentrant //确定键0x04{uchari,dd;write7281(0x10,0xff);for(i=7;i>=0;i--){dd=read7281(i);if(dd==0xc0)write7281(i,0xff);elsebreak;}for(i=0;i<8;i++){send_buf[i]=read7281(i);}key_scan();switch(knm){case0x00:off_00();break;case0x01:dispdata_set();break; //键盘设置case0x04:trg();break; case0x06:send_401();break;//default:trg();}}voidadd(ucharcc) //闪烁位加{ucharde,j,i,kk;kk=cc<<4;de=read7281(cc);for(i=0;i<10;i++){if(de==arr[i]){if(i!=9){j=i+1;j=j|kk;write7281(0X14,j);}else{write7281(0x14,kk);}}}}voidadd_1(ucharcc) //第四位有小数点的闪烁位加{ucharde,j,i,kk;kk=cc<<4;de=read7281(cc);for(i=0;i<10;i++){if(de==array1[i]){if(i!=9){j=i+1;j=j|kk; write7281(0X14,j); } else { write7281(0x14,kk); } } }}voidinc(){ uchardd; dd=read7281(0x10); switch(dd)//找出闪烁位 { case0x7f:add(0x07);break; case0xbf:add(0x06);break; case0xdf:add(0x05);break; case0xef:add_1(0x04);break; case0xf7:add(0x03);break; case0xfb:add(0x02);break; case0xfd:add(0x01);break; case0xfe:add(0x00);break; }}voidrun_right() //右移0x02{ uchardd; dd=read7281(0x10); dd=dd/2+0x80;write7281(0x10,dd);if(dd==0xff){write7281(0x10,0x7f);}}voiddisp_btl(ucharbt) //显示波特率{uchari;switch(bt){ case12:for(i=0;i<8;i++){write7281(i,bps1200[i]);};break; case24:for(i=0;i<8;i++){write7281(i,bps2400[i]);};break; case48:for(i=0;i<8;i++){write7281(i,bps4800[i]);};break; case96:for(i=0;i<8;i++){write7281(i,bps9600[i]);};break;}}brate_add(){switch(btl){case12:btl=24;disp_btl(btl);break;case24:btl=48;disp_btl(btl);break;case48:btl=96;disp_btl(btl);break;case96:btl=12;disp_btl(btl);break;}key_scan();key_process_4(knm);}voidbaudrate()//波特率{disp_btl(btl);key_scan();key_process_4(knm);}voidkey_process(ucharkv)reentrant{write7281(0x11,0x70);//闪烁速度if(kv==0x00){on_off();}else{undo();}}voidon_off()//第一次按起始键flag为零则亮且继续等待按键{if(flag==0){ on_00(); key_scan();key_process_2(knm);} else{off_00();}}voidkey_process_2(ucharkv)reentrant//第二次按键如果为set则闪烁继续等待按键{//如果为onoff键则直接退出switch(kv)//只有12键有效{ case0x01:dispdata_set();break; case0x00:off_00();break; case0x05:baudrate();break; case0x07:disp_two();receive_401();break;{key_scan();key_process_2(knm);}}}voidkey_process_3(ucharkv)reentrant //{switch(kv){ case0x00:off_00();key_onoff=1;break; case0x01:dispdata_set();key_set=1;break; case0x02:run_right();key_right=1;break; case0x03:inc();key_inc=1;break; case0x04:trg();key_trg=1;break;case0x06:send_401();key_s=1;break;default:{ key_scan();key_process_3(knm);}}}voidkey_process_4(ucharkv)reentrant//设置波特率后按键{ switch(kv) { case0x00:off_00();break; case0x05:brate_add();break; case0x06:send_401();break; case0x07:disp_two();receive_401();break; default:{key_scan();key_process_4(knm);}break; }}voidkey_process_5(ucharkv)reentrant //设置模式键{ switch(kv) { case0x00:off_00();break; case0x05:brate_add();break; case0x06:send_401();disp_one();break; case0x07:disp_two();receive_401();break; default:{key_scan();key_process_5(knm);} }}//////////////////////通信部分/////////////////////////////////////发送////
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医药发货合同样本
- 出境合同标准文本
- 共享协议合同样本
- 包头定制门窗合同标准文本
- 出版三方合同样本
- 会计聘用合同样本样本
- 设备维修保养外包合同(2025版)
- 购书合同范本(2025版)
- 车辆汽车运输合同范本(2025版)
- 货物运输临时合同范本(2025版)
- 西门子S7-1500PLC技术及应用课件:S7-1500 PLC 的通信及其应用
- 怎样通知最快(说课稿)-2023-2024学年五年级下册数学人教版
- 酒驾复议申请书范本
- 《使用有毒物品作业场所劳动保护条例》新版解读:加强劳动保护预防职业危害
- 2025年山东银座集团股份有限公司招聘笔试参考题库含答案解析
- 2025年贵州高速投资集团有限公司招聘笔试参考题库含答案解析
- 产科妊娠期肝内胆汁淤积症护理查房课件
- 内镜室工作流程
- 《Hadoop技术原理》课件-11.Flume
- 血液标本采集(静脉采血)
- 水利水电建筑工程基础知识单选题100道及答案解析
评论
0/150
提交评论