毕业设计论文:多路无线遥控开关设计

毕业设计论文:多路无线遥控开关设计

ID:18571593

大小:2.31 MB

页数:46页

时间:2018-09-18

上传者:U-4969
毕业设计论文:多路无线遥控开关设计_第1页
毕业设计论文:多路无线遥控开关设计_第2页
毕业设计论文:多路无线遥控开关设计_第3页
毕业设计论文:多路无线遥控开关设计_第4页
毕业设计论文:多路无线遥控开关设计_第5页
资源描述:

《毕业设计论文:多路无线遥控开关设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

毕业设计(论文)说明书题目:多路无线遥控开关设计√题目类型:理论研究实验研究工程设计工程技术研究软件开发2010年6月31日 摘要无线射频技术作为本世纪最有发展前景的信息技术之一,已经得到业界的高度重视。该技术利用射频方式进行非接触双向通信,可以自动识别目标对象并获取相关数据,具有精度高、适应环境能力强、抗干扰强、操作快捷等许多优点。无线电遥控器是利用无线射频信号对远方的各种机构进行控制的遥控设备,本文针对拥有多种家用电器的现代化家庭,设计了一套能够控制多路用电器的无线遥控开关。这是一款基于CC1101通信模块的简单无线电遥控系统,该系统由发射模块和接收模块组成,以C8051F310单片机为核心,以单片机应用技术、无线收发技术为理论基础,实现数据的无线收发及状态的显示。该无线遥控开关电路可控制八路开关,可在中短距离(≤30米)内,无需对准用电器按一按遥控器按钮,即可实现多路遥控电源电路接通与断开的目的,不仅适用于一般家庭,而且也适合于各大宾馆、饭店、豪华别墅等场所使用。经过试验验证,该无线遥控开关操作方便,工作可靠,符合设计要求。研究成果对促进家居电器的智能化具有重要意义。关键词:C8051F310;CC1101;无线电;遥控IV AbstractRadiofrequencytechnologyasthiscentury'smostpromisingoneofinformationtechnology,hasbeenattachedgreatimportancetotheindustry.Thetechnologyusesradiofrequencytwo-waycommunicationapproachtonon-contact,automatictargetrecognitionandaccesstorelevantdata,highprecision,abilitytoadapttotheenvironment,stronganti-jamming,quickoperationandmanyotheradvantages.Radioremotecontrolistheuseofradiofrequencysignalstothedistantremotecontrolofvariousagenciesequipment,thispaperhasavarietyofmodernhomeappliances,designedtocontrolthemultipleuseofawirelessremotecontrolelectricalswitch.ThisisacommunicationmodulebasedonthesimpleCC1101radioremotecontrolsystem,thesystemconsistsoftransmittermoduleandreceivermodules,withC8051F310MCUcore,SCMapplications,wirelesstransceiverapplicationsbasedonthetheory,wirelesstransceiversfordataandstatusdisplay.Thewirelessremotecontrolswitchcircuitcancontroleight-wayswitch,intheshort-range(≤30m),donotalignwiththeelectricalclickthebuttonontheremotecontrol,amulti-channelremotecontrolcanbeconnectedanddisconnectedpowersupplycircuitpurposes,appliesnotonlytoordinaryfamilies,butalsoformajorhotel,hotel,luxuryvillasplacessuchastheuse.Afterexperimentalverification,convenientoperationofthewirelessremotecontrolswitch,Reliable,Meetthedesignrequirements.Researchonthepromotionofintelligenthomeappliancesisimportant.Keywords:C8051F310;CC1101;Radio;RemotecontrolIV 目录引言…………………………………………………………………………………………11设计任务分析…………………………………………………………………………11.1设计要求………………………………………………………………………………11.2课题研究背景和意义……………………………………………………………………11.3课题研究的内容和方案论证……………………………………………………………22无线遥控概述…………………………………………………………………………22.1无线电遥控技术…………………………………………………………………………22.2无线电遥控技术的发展…………………………………………………………………42.3无线电遥控器的应用……………………………………………………………………53硬件电路的设计……………………………………………………………………73.1C805lF310微控制器…………………………………………………………………73.2CC1101通信模块的设计……………………………………………………………103.2.1CC1101模块简介………………………………………………………………………103.2.2基于CC1101的射频电路PCB设计…………………………………………………123.3矩阵键盘的设计………………………………………………………………………143.4电源电路的设计…………………………………………………………………………153.5硬件电路的焊接………………………………………………………………………174电路模块的对接……………………………………………………………………184.1通信距离的测试………………………………………………………………………184.2无线通信模块的程序设计与实现………………………………………………………204.2.1CC1101的配置方式…………………………………………………………………204.2.2CC1101重要参数配置………………………………………………………………214.3单片机与CC1101的SPI接口……………………………………………………………225软件设计………………………………………………………………………………245.1软件设计相关技术………………………………………………………………………245.2CC1101无线收发程序设计……………………………………………………………256系统验证………………………………………………………………………………276.1发射和接收……………………………………………………………………………276.2电路调试………………………………………………………………………………297结论……………………………………………………………………………………32谢辞…………………………………………………………………………………………34参考文献…………………………………………………………………………………35IV 附录………………………………………………………………………………………36IV 第41页共41页引言近些年信息通信领域中,发展最快、应用最广的就是无线通信技术。而无线通信技术又有着集成化,低功耗,易操作的发展趋势。目前,一些只由微控制器和集成射频芯片构成的无线通信模块不断推出,这种微功率短距离无线数据传输技术在工业、民用等领域得到应用广泛。无线数据传输系统结构微功率短距离无线数据传输技术作为一种无线通信实用技术,一般使用单片射频收发芯片,加上微控制器和少量外围器件构成专用或通用无线通信模块,只要依据命令字进行操作即可实现基本的数据无线传输功能。一个简易无线传输系统可以由微控制器,单片射频收发芯片以及少量外围和显示设备等构成,本课题主要研究的是由C8051F310单片机最小系统和CC1101无线通信模块组合而成的多路无线遥控器。1设计任务分析1.1设计要求设计实现多路无线遥控开关,对室内范围内的受控对象进行无线遥控,通信利用无线射频芯片CC1101实现,工作频率433MHz,遥控距离10m以上。可以对家庭、办公室、商场、酒店、医院、仓库等场所的灯具照明控制和类似用途电器的控制,也可以实现隔墙遥控,在房间可遥控客厅的灯具等。要求与数据:(1)工作频率433MHz;(2)遥控路数不少于8;(3)遥控距离10m以上;(4)受控对象:灯具和家用电器。1.2课题研究背景和意义随着现代通信技术的飞速发展,近距离无线通信技术呈现出良好的发展势头。受到越来越多人的关注。因为在现实生活中存在着许多这样的应用情况,系统需要实时传输小量的突发信号,当然传统的无线通信技术虽然能够满足要求,但免不了存在成本高,体积大,功耗大的问题,这时成本小,体积小,功耗低的短距离无线通信技术就发挥了它的优势,尤其在传统无线通信系统难于或者不便于覆盖到的区域,短距离无线通信技术可以在近距离范围内实现相互通信或相关操作。无线数据传输系统已成为当今通信业乃至整个信息业的热点,广泛应用于无线遥控、报警、无线局域网、军事通信等范围,具有一定的实际应用价值。通常情况下,单片机在获取数据后,还需要将数据传送出去。有线数据传输依赖于有线的线路,例如采用有线的串、并行总线、I2C总线、CAN总线等。有线的线路具有成本比较高、维护不方便等缺点。无线数据传输是在有线数据传输41 第41页共41页的基础上发展起来的,而无线数据通信则是通过发射模块和接收模块来传送数据的,具有不占空间、成本低、可靠性高、维护方便及传输过程中的干扰小等优点,提高了传输过程中的可靠性。本系统是基于单片机的无线遥控器,它以高可靠性、高性价比,在工业控制以及无线智能家居领域得到了广泛的应用。1.3课题研究的内容和方案论证该设备由处理单元、发射模块、接收模块、外接电路等构成。当发射模块发出信号时,接收模块对应的开关就会执行相应的操作,以LED灯的亮灭来显示开关的状态。(1)处理单元:对比了51系列和C8051系列单片机的各项性能指标后,选择兼容性较好,性能稳定的C8051F310单片机作为处理单元,该单片机系统工作电压为2.7V~3.6V之间。(2)发射和接收装置:无线收发单元选用CC1101射频芯片。CC1101与单片机采用SPI接口连接,该芯片体积小,功耗低,数据速率支持1.2~500kbps的可编程控制,可以工作在915MHz、868MHz、433MHz、315MHz四个波段,在所有频段提供-30~10dBm输出功率。本文中CC1101工作在433MHz的频率上,采用FSK调制方式,数据速率为100kbps,信道间隔为200kHz。2无线遥控概述无线遥控器顾名思义,就是一种用来远程控制机器的装置。现代的遥控器,主要是由集成电路电板和用来产生不同讯息的按钮所组成。时至今日,无线遥控器已经在生活中得到了越来越多的应用,给人们带来了极大的便利。随着科技的进步无线遥控器也扩展到了许多种类,简单来说常见的有两种,一种是红外遥控模式,另一种是防盗报警设备、门窗遥控、汽车遥控等等常用的无线电遥控模式。两者各有不同的优势,应用的领域也有所区别,本课题要研究的是无线电遥控模式。2.1无线电遥控与红外遥控的对比无线电遥控器(RFRemoteControl)是利用无线电信号对远方的各种机构进行控制的遥控设备。常见的无线电41 第41页共41页发射接收模块常用的无线电遥控系统一般分发射和接收两个部分。发射部分一般分为两种类型,即遥控器与发射模块,遥控器和遥控模块是对于使用方式来说的,遥控器可以当一个整机来独立使用,对外引出线有接线桩头;而遥控模块在电路中当一个元件来使用,根据其引脚定义进行应用,使用遥控模块的优势在于可以和应用电路天衣无缝的连接、体积小、价格低、。接收部分一般来说也分为两种类型,即超外差与超再生接收方式,超再生解调电路也称超再生检波电路,它实际上是工作在间歇振荡状态下的再生检波电路。超外差式解调电路与超外差收音机相同,它是设置一本机振荡电路产生振荡信号,与接收到的载频信号混频后,得到中频信号,经中频放大和检波,解调出数据信号。由于载频频率是固定的,所以其电路要比收音机简单一些。超外差式的接收器稳定、灵敏度高、抗干扰能力也相对较好;超再生式的接收器体积小、价格便宜。红外遥控器(IRRemoteControl)是利用波长为0.76~1.5μm之间的近红外线来传送控制信号的遥控设备。红外遥控常用的载波频率为38kHz,这是由发射端所使用的455kHz晶振来决定的。常用的红外遥控系统一般分发射和接收两个部分。发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通发光二极管相同,只是颜色不同。接收部分的主要元件为红外接收二极管,一般有圆形和方形两种。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。红外遥控的特点是不影响周边环境、不干扰其它电器设备。由于其无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰;电路调试简单,只要按给定电路连接无误,一般不需任何调试即可投入工作;编解码容易,可进行多路遥控。因此,现在红外遥控在家用电器、室内近距离(小于10米)遥控中得到了广泛的应用。图2.1红外线遥控器图2.2无线电遥控器由于红外发光二极管的发射功率一般都较小(100mW左右),所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路,最近几年大多都采用成品红外接收头。红外遥控和无线遥控是对不同的载波来说的,红外遥控器是用红外线来传送控制信号的,它的特点是有方向性、不能有阻挡、距离一般不超过7米41 第41页共41页、不受电磁干扰,电视机遥控器就是红外遥控器;无线电遥控器是用无线电波来传送控制信号的,它的特点是无方向性、可以不“面对面”控制、距离远(可达数十米,甚至数公里)、容易受电磁干扰。在需要远距离穿透或者无方向性控制领域,比如工业控制等等,使用无线电遥控器较易解决,基于本课题的设计要求,所以选择无线电遥控。2.2无线电遥控技术的发展无线电遥控技术发展只有几十年的历史:本世纪20年代才刚刚出现无线电遥控的雏形。那时,人们试图将遥控技术应用于无人驾驶飞机和舰船上,但由于技术不够完善而未能成功。二次世界大战以后,无线电遥控技术发展迅速,并逐渐在军事、国防、工农业生产以及科学技术等方面得到广泛的应用。到现今,随着电子技术的飞速发展,新型大规模遥控集成电路的不断出现,使得遥控技术有了日新月异的发展。遥控装置的中心控制部件已从早期的分立元件、集成电路逐步发展到现在的单片微型计算机,智能化程度大大提高。近年来,遥控技术在工业生产、家用电器、安全保卫以及人们的日常生活中使用越来越广泛。在无线遥控领域,目前常用的遥控方式主要有超声波遥控、红外线遥控、无线电遥控等。由于无线电波是由发射点向四面八方传播,可以穿过阻挡物,而且可以传播到很远的距离,因此它的控制可以在很大区域和空间内实现,成为遥控的主要方式,在国防、军事、生产、建设和日常生活中有极广泛的应用。为此,在前人研究的基础上设计出了一种集成芯片无线电遥控多通道开关系统的设计方法。研究表明,采用该方法设计的遥控开关系统控制方便,适用于含有较多受控电器的场合,可实现多路多功能控制。图2.3传统机械开关图2.4无线遥控开关41 第41页共41页传统的机械式开关愈来愈满足不了人们追求完美生活的需求。随着生活水平的不断提高,科学技术的不断创新,智能型无线遥控技术取代传统的手动控制,已成为现代生活的一种时尚。运用无线遥控照明开关,在某一空间的任意位置,任意时刻,都可以随意调控电灯及其它电器,让我们真正感受到高科技带来的无穷魅力和便捷。无线遥控与红外遥控、声控相比较,具有无线遥控覆盖范围宽,控制距离远,穿透力强等特点,在诸如爆破遥控、工厂生产控制和一些地形地貌险要、操作人员难接近或不能接近的实际场合中,更显魅力,倍加令人注目。近些年来无线遥控技术在家庭生活和科学研究中也占很重要的地位,在汽车、摩托车防盗报警中,在门、窗、库房控制中,在儿童玩具中,在无线数据传输,无线定时控制中,无线遥控获得更加广泛的应用。  无线电遥控器是利用无线电信号对远方的各种机构进行控制的遥控设备。这些信号被远方的接收设备接收后,可以指令或驱动其它各种相应的机械或者电子设备,去完成各种操作,如闭合电路、移动手柄、开动电机,之后再由这些机械进行需要的操作。作为一种性能良好的遥控器种类,在车库门、电动门、道闸遥控控制,防盗报警器,工业控制以及无线智能家居领域得到了广泛的应用。  无线电遥控常用的载波频率为315mHz或者433mHz,遥控器使用的是国家规定的开放频段,在这一频段内,发射功率小于10mW、覆盖范围小于100m或不超过本单位范围的,可以不必经过“无线电管理委员会”审批而自由使用。我国的开放频段规定为315mHz和433mHz,本课题选用433mHz频段。  2.3无线电遥控器的应用  (1)工业行车:工业用行车是遥控系统应用最广泛的领域之一,以德国为例,占遥控系统每年产量的40%左右;特别是冶金、汽车制造、造纸厂、物料仓库等新增行车几乎全部配备工业无线遥控器;  (2)汽车吊、随车吊:通常,大型汽车吊遥控系统还配置了数据反馈装置,反馈装置可将运行参数(如负荷、起重臂长、负荷力矩、油温,压力,角度等)显示在发射系统显示屏上,操作人员可根据显示数据来监控吊车;  (3)混凝土泵车:混凝土泵车操作时因控制台距浇注作业面有几十米(甚至上百米),传统的操作方式需数人配合才能完成,由于效率低,限制了混凝土泵车的性能发挥;对于长距离、大排量的大型泵车,矛盾更为突出;采用工业无线遥控器可以最大地发挥整机的性能,泵车司机在工作地点驾车定位后,即可用携带遥控系统依次操作泵车的各个动作,如布料杆的左右回转,多级杆的变幅升降等。操作人员可携带发射系统,远离泵车控制台,直接站在软管喷口附近,控制布料杆的动作和混凝土泵的运作;  (4)矿山机械:对于矿井里能见度较低的场合下,可选用配有反馈装置的工业无线遥控器控制液压机械。即使在能见度较低、环境恶劣的地方,也可以方便控制重型凿岩机架钻孔作业。操作员可以选择最近的地点对位钻孔,而不必呆在距钻孔作业点十米以外的钻孔机的操作台上。无线电控制装置采用IP65保护标准完全适应在潮湿和含盐的环境中使用。大大增加了操作的安全性、舒适性和准确性,节约投资,提高了效率;41 第41页共41页  (5)专用机械如:炼钢厂清渣装载机,采用工业无线遥控器对装载机进行遥控改造,在不改变现有手动操作方式的前提下,百分之百模拟原履带装载机的机械动力性能和作业功能,达到无人驾驶完成清渣作业的目的。操作员带着轻巧的发射机,自由选择最佳的视觉位置,遥控的装载机在清渣作业中运行自如。遥控装载机的成功运用消除了以往环境恶劣,视线不清,高温落渣带来的事故隐患,使操作人员从恶劣的环境中解脱出来,提高了清渣作业效率、改善冶金工人的工作环境,降低工人的劳动强度;  (6)建筑塔吊:在欧洲、北美超过60%的建筑回转式塔吊采用无线遥控方式控制,不仅在设备制造时节省成本(无空中操作台),安全性和可靠性也得到充分保障,提高了施工效率;  (7)其它方面:随着工业无线遥控器技术的发展,在装载机、调车机车、液压机械和移动车辆港口装卸船机等设备中,工业无线遥控器都得到了广泛应用,市场前景极为广阔。图2.5工业行车图2.6建筑塔吊无线遥控距离的影响因素:(1)发射功率:发射功率大则距离远,但耗电大,容易产生干扰;(2)接收灵敏度:接收器的接收灵敏度提高,遥控距离增大,但容易受干扰造成误动或失控;(3)天线:采用直线型天线,并且相互平行,遥控距离远,但占据空间大,在使用中把天线拉长、拉直可增加遥控距离;(4)高度:天线越高,遥控距离越远,但受客观条件限制;(5)阻挡:目前使用的无线遥控器使用国家规定的UHF频段,其传播特性和光近似,直线传播,绕射较小,发射器和接收器之间如有墙壁阻挡将大大打折遥控距离,如果是钢筋混泥土的墙壁,由于导体对电波的吸收作用,影响更甚。3硬件电路的设计41 第41页共41页3.1C805lF310微控制器图3.1C8051F310原理框图C8051F310单片机具有体积小,重量轻,控制灵活方便,价格低廉等优点,通常配以简单的外围电路就可以构成一个完整的控制系统,C8051F310单片机采用射频SoC(片上系统)进行无线通讯设计,是开发低成本、低功耗无线通讯应用系统的理想方案。射频SoC(片上系统)的特点是:专门的设计,将全部的高频部分电路全部集成到了电路内部,从无线芯片片机到天线之间,只有简单的滤波电路,系统设计者完全不必进行任何高频电路设计;采用特殊设计,使无线芯片和微处理器和高频线路间,实现完美的配合,数字电路对高频通讯的影响减低到最小;将微处理器和无线芯片设计成一体,变成无线单片机,可以轻松完成无线通讯功能设计开发。C8051F31x系列MCU在CIP-51内核和外设方面有几项关键性的改进,提高了整体性能,更易于在最终应用中使用。扩展的中断系统向CIP-51提供14个中断源(标准8051只有7个中断源),允许大量的模拟和数字外设中断微控制器。一个中断驱动的系统需要较少的MCU干预,因而有更高的执行效率。在设计一个多任务实时系统时,这些增加的中断源是非常有用的。41 第41页共41页图3.2C8051F310实物图MCU有多达8个复位源:上电复位电路(POR)、一个片内VDD监视器(当电源电压低于VRST时强制复位)、一个看门狗定时器、一个时钟丢失检测器、一个由比较器0提供的电压检测器、一个软件强制复位、外部复位输入引脚和FLASH读/写错误保护复位。除了POR、复位输入引脚及FLASH操作错误这三个复位源之外,其他复位源都可以被软件禁止。在一次上电复位之后的MCU初始化期间,WDT可以被永久性使能。内部振荡器在出厂时已经被校准为24.5MHz±2%。器件内还集成了外部振荡器驱动电路,允许使用晶体、陶瓷谐振器、电容、RC或外部时钟源产生系统时钟。如果需要,时钟源可以在运行时切换到外部振荡器。外部振荡器在低功耗系统中是非常有用的,它允许MCU从一个低频率(节电)外部晶体源运行,当需要时再周期性地切换到高速(可达25MHz)的内部振荡器。图3.3片内时钟和复位电路41 第41页共41页8051兼容的无线单片机目前全世界共有4种,但主流的是chipcon公司的cc1010,Nordic公司的nRF24E1/nRF9E5。这三种无线单片机各有自己的特点,chipcon公司的cc1010有32kbyteFlash+2048+128SRAM,三通道A/D10位转换器,64线TQFP封装,传输通讯速度76.8kbit/s,片上具有:RTC/2UART/2PWM/SPI/26个I/O/DES加密电/看门狗电路等等,高频部分全部集成在芯片上,工作在300-1000mhz,最小的功率消耗仅0.2uA;小量价格在50人民币/每片左右。Nordic的nRF24E1工作在2.4GHZ,nRF9E5工作在433MHZ和868-930MHZ,虽然Nordic的无线单片机存储器较小,只有4K,但由于采用较好的电源管理方式最小的功率消耗仅2.0uA;,并采用快速的SHOCKBURST技术,传输通讯速度100kbit/s在国内购买,小量价格在40人民币/每片。图3.432脚LQFP封装和28脚MLP封装的比较C8051F3l0是完全集成的混合信号片上系统型MCU芯片。下面列出了一些主要特性,高速、流水线结构的8051兼容的CIP一51内核(可达25MIPS);全速、非侵入式的在系统调试接口(片内);带模拟多路器、真正10位200ksPs的25通道单端/差分ADC;高精度可编程的25MHz内部振荡器;16KB可在系统编程的FLASH存储器;片内RAM;硬件实现的SMBus/hC、增强型UART和增强型SPI串行接口;4个通用的16位定时器;具有5个捕捉/比较模块和看门狗定时器功能的可编程计数器/定时器阵列(PCA);片内上电复位、VDD监视器和温度传感器;片内电压比较器;29/25个端口阳(容许sv输入)。具有片内上电复位、VDD监视器、看门狗定时器和时钟振荡器的C8051F310是真正能独立工作的片上系统。FLASH存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051固件。用户软件对所有外设具有完全的控制,可以关闭41 第41页共41页任何一个或所有外设以节省功耗。片内SiliconLabs二线(C2)开发接口允许使用安装在最终应用系统上的产品MCU进行非侵入式(不占用片内资源)、全速、在系统调试。调试逻辑支持观察和修改存储器和寄存器,支持断点、单步、运行和停机命令。在使用CZ进行调试时,所有的模拟和数字外设都可全功能运行。两个CZ接口引脚可以与用户功能共享,使在系统调试功能不占用封装引脚。每种器件都可在工业温度范围(一45℃到+85℃)内用2.7v一3.6V的电压工作。端口ST和JTAG引脚都容许SV的输入信号电压。C8051F3l0采用32脚LQFP封装和28脚MLP封装。C805lF310使用SiliconLabs的专利CIP一51微控制器内核。CIP一51与MCS一slTM指集完全兼容,可以使用标准的汇编器和编译器进行软件开发。CIP一51采用流水线结构,与标准的8051结构相比指令执行速度有很大的提高。C805IF3lx系列MCU在CIP一51内核和外设方面有几项关键性的改进,提高了整体性能,更易于在最终应用中使用。扩展的中断系统向CIP一51提供14个中断源(标准8051只有7个中断源),允许大量的模拟和数字外设中断微控制器。一个中断驱动的系统需要较少的MCU干预,因而有更高的执行效率。在设计一个多任务实时系统时,这些增加的中断源是非常有用的。MCU有多达8个复位源:上电复位电路(POR)、一个片内VDD监视器(当电源电压低于呱ST时强制复位)、一个看门狗定时器、一个时钟丢失检测器、一个由比较器提供的电压检测器、一个软件强制复位、外部复位输入引脚和FLASH读/写错误保护复位。除了POR、复位输入引脚及FLASH操作错误这三个复位源之外,其他复位源都可以被软件禁止。内部振荡器在出厂时已经被校准为24.SMHz士2%。器件内还集成了外部振荡器驱动电路,允许使用晶体、陶瓷谐振器、电容、RC或外部时钟源产生系统时钟。如果需要,时钟源可以在运行时切换到外部振荡器。外部振荡器在低功耗系统中是非常有用的,它允许MCU从一个低频率(节电)外部晶体源运行,当需要时再周期性地切换到高速(可达25MHz)的内部振荡器。3.2CC1101通信模块的设计3.2.1CC1101模块简介图3.5CC1101芯片实物图41 第41页共41页图3.6CC1101内部结构简化框图芯片采用Chipcon公司的CC1101,是根据SmartRF技术以0.18μmCMOS工艺制成的一款低成本单片UHF收发器,具有功耗低、电压低、体积小、灵敏度高等特点。电路主要工作在315、433、868和915MHz的ISM和SRD(短距离设备)频率波段,也可以设置为300~348MHz、400~464MHz和800~928MHz的其它频率。CC1101集成了一个高度可配置的调制解调器,支持不同的调制格式,其数据传输率最高可达500kbps。通过开启集成在调制解调器上的前向误差校正选项,能使性能得到提升。CC1101在1.8~3.6V的低电压下工作,其灵敏度为-110dBm,在所有工作频率波段上,可编程输出功率为-30~10dBm。CC1101单片集成电路的内部结构简化框图如图3.6所示。图3.7MCU与CC1101接口电路示意图41 第41页共41页  图3.8无线通信模块电路原理图CC1101与一个微控制器和少数几个外接元件便可组成一个完整的无线数据收发系统,在本文无线遥控开关的设计中,使用MCU的P2口对CC1101进行控制和数据的传输,如图3.7所示。图3.8是基于CC1101的无线通信模块电路原理图。与LCM的电源接口设计一样,在CC1101的电源供电端加入一个三极管来控制CC1101与电源的连接,当P3.5输出高电平时,三极管截止,CC1101与电源断开;当P3.5输出低电平时,三极管导通,CC1101与电源连接。在不需要CC1101进行无线通信时将其关闭,需要时再打开,这样做的目的也是降低功耗,延长电池的使用寿命。3.2.2基于CC1101的射频电路PCB设计  基于CC1101的无线通信模块是无线遥控开关中比较重要的组成部分,它的好坏将直接影响到系统的各方面性能,其中PCB的设计是硬件设计的一个重点和难点,下面分四个方面介绍一下无线通信模块PCB的设计。  (1)无线通信模块PCB的布局设计  在对CC1101的PCB进行设计时,首先要考虑元件摆放布局问题,如图3.9所示。要使射频电路的输入端远离输出端,将强电信号和弱电信号分开,将数字信号电路和模拟信号电路分开,完成同一功能的电路应尽量安排在一定的范围之内,从而减小信号环路面积,各部分电路的滤波网络要就近连接,这样不仅可以减小辐射,还可以减少被干扰的几率,提高电路的抗干扰能力。41 第41页共41页  (2)无线通信模块PCB的布线设计在基本完成元器件的布局后,就要开始布线了。如图3.9所示,所有走线应远离PCB板的边框(2mm左右),以免PCB板制作时造成断线或有断线的隐患。电源线和地线要尽可能宽,这样可以减少环路电阻,在图3.9中电源线20mil,地线20mil,普通线10mil;同时,电源线、地线的走向和数据传输的方向一致,以提高抗干扰能力;所布信号线应尽可能短,各元器件间的连线越短越好,以减少分布参数和相互间的电磁干扰;对于不相容的信号线应尽量相互远离,而且尽量避免平行走线,在正反两面的信号线应相互垂直;布线时在需要拐角的地方应以135°角为宜,避免拐直角;焊接天线的PCB部分不要有地线,如图3.9所示右上角所示;布线时与焊盘直接相连的线条不宜太宽,走线应尽量离开不相连的元器件;过孔不宜太大且大小要一致,在图3.9中过孔外径大小为28mil,内径为16mil,过孔不宜在元器件上,且应尽量远离不相连的元器件,以免在生产中出现虚焊、连焊、短路等现象。图3.9无线通信模块的PCB示意图  (3)无线遥控开关的数字部分对射频电路的抗干扰设计  数字电路和射频电路单独工作,可能各自工作良好。但是,一旦将二者放在同一块电路板上,使用同一个电源一起工作时,整个系统就很可能不稳定。其主要原因是数字信号频繁在地(0V)和正电源(5V)之间摆动,而且周期特别短,常常是纳秒或微秒级。由于较大的振幅和较短的切换时间,使得这些数字信号包含大量且独立于切换频率的高频成分。如果不能使数字信号与射频信号很好地分离。微弱的射频信号可能遭到破坏,这样一来,无线设备工作性能就会恶化,甚至完全不能工作。41 第41页共41页  (4)电源部分对射频电路的抗干扰设计  射频电路对于电源噪声相当敏感,尤其是对毛刺电压和其他高频谐波。经过升压芯片MAX856的电压输出端存在着噪声,MCU和其它耗电量大的芯片会在每个内部时钟周期内,短时间突然吸入大部分电流,如果不在CC1101的电源供电端采取合适的电源去耦,必将引起电源线上的电压毛刺,这些电压毛刺到达射频部分的电源引脚后,会对无线部分造成影响,严重时可能导致无线通信工作失效。图3.10电源星形布线  为了解决电源对电路的干扰,本文从两个方面考虑的:一是采用电源星形布线法,如图3.10所示。让电路板上各模块具有各自的来自公共供电电源点的电源线路,在这种情况下,星形布线意味着电路的数字部分和射频部分应有各自的电源线路,以减少各部分电源之间的干扰。二是在靠近电源输入端加入去耦和旁路电容,如图3.11所示。在CC1101的电源供电端加入了1个47μF的去耦电容和3个旁路电容,去耦电容能够有效的去除电路之间的耦合效应,旁路电容能够去除高频噪声。在MCU和其它芯片的电源供电端也分别加入去耦和旁路电容,以减少电源噪声带来的影响。图3.11无线通信模块的电源滤波电路示意图3.3矩阵键盘的设计41 第41页共41页键盘是由若干个按键组成的开关矩阵,它是一种廉价的输入设备。一个键盘,通常包括有数字键(0一9),字母键(A一Z)以及一些功能键。操作人员可以通过键盘向计算机输入数据、地址、指令或其它控制命令,实现人机对话。用于计算机系统的键盘按其结构形式可分为两类:一类是编码键盘,即键盘上闭合键的识别由专用的硬件来实现;另一类是非编码键盘,即键盘上闭合键的识别由软件来识别。为了节省FO线,单片机系统中普遍使用非编码键盘,键盘接口应具备以下功能:键扫描功能即检测是否有键按下;产生相应的键代码(键值);消除按键抖动及多键按下。4x2的键盘结构中的列线通过电阻接十5v。当键盘上没有键闭合时,所有的行线和列线断开,列线都呈高电平。当键盘上某一个键闭合时,则该键所对应的列线与行线短路。此时列线的电平由行线的电位所决定。如果把列线接到微机的输入口,行线接到微机的输出口,在微机的控制下线都为高电平,则这行上没有键闭合,如果读出的列线状态不全为高电平,则为低电平的列线相交处的键处于闭合状态;如果这一行上没有闭合键,就使行线为低电平,检测该行线上有无闭合键,以此类推,直到最后一根列线都检测完。这种逐行逐列地检查键盘状态的过程就称为对键盘一次扫描。CPU对键盘扫描可以采取程序控制的随机方式,CPU空闲时扫描键盘。也可以采取定时控制方式,每隔一定的时间CPU就对键盘扫描一次。也可以采取中断方式,每当键盘上有键闭合时,向CPU请求中断,CPU响应中断后,对键盘扫描,以识别一个键处于闭合状态,并对该键输入信息做出相应处理。CPU对键盘上闭合键的键号确定,可根据行线和列线的状态计算求得,也可以根据行线和列线状态查表得。非编码键盘识别按键的方法有两种:一是行扫描法,二是线反转法。图3.124x2键盘3.4电源电路的设计  电源是各种电子设备不可缺少的组成部分,而便携式电子产品多采用电池供电,为了使电路性能稳定,往往还需要稳定电源,尤其是像本文设计的无线遥控开关包含射频电路时,其性能的优劣直接关系到无线遥控开关的技术参数及能否安全可靠地工作。目前电源的种类繁多,不同的电源都有特定的使用场合。在无线遥控开关的电源设计中,主要考虑使用线性稳压电源和开关电源,并根据这两种电源的特点设计了适合无线遥控开关的电源。41 第41页共41页  线性稳压电源因其内部调整管工作在线性范围而得名。线性稳压电源的优点是外围元件少、输出噪声小、静态电流小,价格也便宜。其最主要缺点是由于输入电压与输出电压之间的电压差(一般称为压差)大,造成调整管上的损耗大,转换效率较低。开关电源是由于器件中有一个工作在开关状态的晶体管(一般是MOSFET),开关管工作于饱和导通及截止两种状态,所以开关管的管耗小并且与输入电压大小无关,效率较高(一般可达80%~95%)。开关电源主要指DC-DC变换器,主要包括升压式(Vout>Vin)、降压式(VoutVin)三种类型。  无线遥控开关需要使用电池供电,电源输出电压需要3.3V,输出电流需要达到100mA以上,输出电压噪声要小以保证射频电路稳定工作。根据无线遥控开关电源的要求,本文设计了两种供电方案。(1)采用碱性电池串联,直接给电路供电。由于无线遥控开关的工作电压是3.3V,所以至少需要2节碱性电池串联才能满足要求。虽然这种方案成本低,电池电量的转换效率为100%,但是缺点却是致命。标称值为1.5V的新电池在刚开始使用时电压能都达到1.6~1.7V,这样2节电池串联能都得到3.3V以上的电压,通过实验发现,此时无线遥控开关能够正常工作,但随着工作时间的增长,电池电压的下降,无线遥控开关将不能正常工作,而此时每一节电池的电量并没有充分利用。另外,标称值为1.2V的充电电池就不适合无线遥控开关的使用了。  (2)采用4.5V电池,通过LM1117将其稳压到3.3V。通过实验发现,无线遥控开关在这种情况下能够正常工作。这种方案的优点是线性稳压芯片的价格便宜,输出电压纹波小;缺点是线性稳压芯片的效率很低,其余能量都转化为热能,间接地给无线遥控开关增加热噪声,甚至会对射频部分产生干扰。另外需要使用4.5V的组合电池,价格相对较高,但可靠性好。通过对以上两种方案的比较,虽然方案一能够使无线遥控开关正常工作,但综合考虑其性能都不及方案二,所以采用方案二来进行无线遥控开关的电源设计,选用LM1117芯片来降压。图3.13LM11173.3V实物图然后是电容和二极管的选择,选择滤波电容的主要依据是系统对电源纹波的要求,41 第41页共41页滤波电容的等效串电阻(ESR)是造成输出纹波的主要因素,而且也会影响到转换效率,应选用低ESR的电容。陶瓷电容和钽电解电容具有较低的ESR,也可选用低ESR的铝电解电容,但应尽量避免标准铝电解电容。容量一般在10~100μF,对于较重的负载应选取大一点的电容。较大容量的滤波电容有利于改善输出纹波和瞬态响应。二极管的作用是当功率开关管关闭时,为电感电流提供一条直流通路,故该二极管有时称续流二极管。续流二极管要求具有快的反应恢复时间和低的正向压降,因为反应恢复时间的存在会引起噪声,增加二极管本身和功率开关的功耗。二极管正向压降的大小直接影响二极管上的损耗的大小,这里使用了反响恢复时间短、正向压降低的IN4007。经过以上对电源输出电压的滤波处理后,电源输出端的尖脉冲得到了很好的处理,将电源输出端连接到芯片引脚供电端时再加上去耦和旁路电容,会得到更加平稳的电源。图3.16电源电路原理图3.5硬件电路的焊接对于整个无线遥控开关系统的设计开发来说,系统的调试和性能测试是非常关键的,它关系着整个系统能否正常工作。系统调试包括硬件和软件两个方面,调试过程是反复进行的,在调试过程中会遇到各种问题,根据这些问题需要对系统硬件和软件设计进行修改,这样边调试边修改最终达到预期的效果。无线遥控开关的硬件调试过程总体可以分为3个步骤:(1)在焊接器件之前,先用万用表等工具,根据硬件设计图仔细检查线路的正确性,元件安装是否符合要求。特别注意电源系统的检查,以防止电源的短路和极性错误。(2)器件焊接之后,重新检查硬件连接情况,检查是否存在错焊、虚焊等情况,否则上电后出现短路情况将芯片烧坏。(3)在硬件没有问题的前提下就可以进行程序的调试了,调试时先部分调试再整体调试,直到程序正常运行。在焊接时特别要注意C8051F310芯片的焊接,用烙铁焊接时要注意对烙铁41 第41页共41页的温度和焊接时间的控制,否则会出现C8051F310芯片损毁的情况。C8051F310芯片的引脚间距非常小,这给焊接时带来极大困难,极易造成虚焊现象,焊接后要对每个引脚仔细检查。4电路模块的对接4.1通信距离的测试  通信距离和功耗是无线通信模块两个重要的性能参数,根据本文的设计,制作了基于CC1101的无线通信模块,并对这两个重要性能参数进行实际测试,测试结果表明,本文制作的无线通信模块能够满足毕业设计的使用。  (1)通信距离测试  首先在理论上计算一下自由空间传播时的无线通信距离,所谓自由空间传播是指天线周围为无限大真空时的电波传播,它是理想传播条件。电波在自由空间传播时,其能量既不会被障碍物所吸收,也不会产生反射或散射。通信距离与发射功率、接收灵敏度和工作频率有关。在自由空间下电波传播的损耗为式中,[Lfs]是传输损耗,d是传输距离,f是工作频率。当无线通信模块的工作频率为433MHz,发射功率为0dBm(1mW),接收灵敏度为-93dBm(数据传输率为250kbps)时,计算在自由空间的传播距离。  由发射功率0dBm,接收灵敏度为-93dBm,则传输损耗为将Lfs=93dB,f=433MHz代入(4.1)式中,得到计算得出传输距离d=2.4km。  这是理想状况下的传输距离,在实际应用中,由于无线通信要受到各种外界因素的影响,如大气、阻挡物、多径效应等,这些不确定因素造成的损耗会使得通信距离与理论计算的传输距离相差很大。另外,在实际应用中,一个无线设备能达到的通信距离,很大程度上和天线的选取有关。天线的种类比较多,设计起来也比较复杂。目前市面上常见的天线有四分之一波长天线、PCB环形天线和弹簧螺旋型天线。四分之一波长天线是最简单的天线,如果无线通信模块的工作频率为433MHz,通过计算可以得出无线通信模块四分之一波长天线的长度大约为17厘米左右,这样的长度很明显不适合无线遥控开关的使用。PCB环形天线的成本较低,但方向性和有效性都不及弹簧螺旋型天线,如果无线遥控开关工作的空间很大,则无线模块将不能稳定可靠的工作。弹簧螺旋型天线在方向性和有效性上能够很好的满足无线遥控开关41 第41页共41页的要求,不足之处在于弹簧螺旋型天线的体积较大,需要占用更大的空间,为了减小弹簧螺旋型天线的占用空间,本文选用不带有塑胶保护的弹簧螺旋型天线。对于无线遥控开关产品来说,天线并不会裸露在外面,外面会有外壳的保护,这样在保证通信效果的前提下,节约了很多空间。  通过无线遥控开关控制器和无线遥控开关接收器来测试无线通信模块的通信距离。通过编写程序使无线遥控开关控制器按键发射数据,无线遥控开关接收器接收到数据并通过串口调试助手软件进行显示,逐步加大发射距离,直到接收不到数据为止。在无线通信模块工作频率为433MHz,发射功率为0dBm(1mW),无线数据传输速率为250kbps的条件下,经过多次测试,在室外空旷地带,本文制作的无线模块通信距离在30米左右;在室内实验室,本文制作的无线模块通信距离在20米左右。通过测试发现无线通信模块的通信距离并没有到达理论的传输距离,但这样的效果能基本满足毕业设计的使用。在软件上对CC1101进行重新配置,增加发射功率和降低无线数据传输速率可以得到更远的通信距离。  (2)无线通信模块的功耗对本文设计的基于CC1101的无线通信模块进行了耗电量测试,理论耗电量如表4-1所示。从表中可以看出,理想状态下工作频率对接收模式影响不大,对发送模式影响较大,工作频率越低功耗越低,所以选择较低的工作频率能够降低无线遥控开关的功耗。另外,由(3.1)式可知,在发射功率和接收灵敏度确定时,传播距离也和工作频率有关,工作频率越低传播距离越远,所以也应该选择较低的工作频率。CC1101支持4种工作频率,即315、433、868和915MHz,它们都属于ISM频段,不需要申请。从功耗和传输距离考虑,应该选择315MHz或者433MHz的工作频率,但是考虑到工作频率对天线的影响,工作频率越低天线越长,综合考虑这三方面的因素,最后选择433MHz这一工作频率。表4-1无线通信模块理论耗电量工作频率(MHz)发射功率(dBm)Tx理论值(mA)Rx理论值(mA)315+1027.014.5014.814.5433+1028.915.2015.515.2868+1030.715.1016.915.1915+1030.715.1016.715.14.2无线通信模块的程序设计与实现41 第41页共41页无线数据通信最重要的是如何保证系统通信的可靠性,减少通信冲突和降低误码率等问题,这也正是本文开发无线反馈系统的关键。4.2.1CC1101的配置方式CC1101具有14个命令寄存器(CommandStrobeRegisters),访问这些寄存器将会发起内部状态或模式的改变;有47个普通8位配置寄存器(ConfigurationRegisters),配置这些寄存器可以完成系统参数的选择;还有12个状态寄存器(StatusRegisters),读取这些寄存器可以获得CC1101的状态信息。CC1101通过4线SPI兼容接口(SI,SO,SCLK和CSn)配置,无线遥控开关CC1101的接口方式如图3.12所示,这个接口同时用作写和读缓存数据。SPI接口是一种同步串行通信接口,CSn是芯片选择管脚,当该管脚为低电平时,SPI接口可以通信,反之不能通信。SI和SO为数字传输管脚,SI用于数据输入,SO用于数据输出,SCLK为同步时钟,在时钟的上升沿数据被写入或读出。CC1101的SPI接口的读、写操作工作方式如图4.1所示。图4.1CC1101读写操作时序图在读或是写寄存器时,首先要在SI管脚写入寄存器地址字节。地址字节有8位,最高位为读写位,后七位为地址位。当执行写寄存器操作时,读写位为0;当执行读操作时,读写位为1。无论是读操作还是写操作,在地址字节被写入时,SO脚上输出一个芯片状态字节,状态字节包含关键状态信号,对MCU是很有用的。CC1101的TXFIFO(发射先进先出堆栈)和RXFIFO(接收先进先出堆栈)也可以用同样的读写方式进行访问,只是使用与配置寄存器不同的地址段加以区别。另外,CC1101的内部指令也是通过SPI接口传输的,这些指令用来关闭晶体振荡器,开启传输模式,状态转换和电磁波激活等,通过SI写入特定的字节使CC1101执行不同的命令。由于CC1101的寄存器比较多,为了提高程序的执行效率,编写了相应的函数来进行寄存器配置,函数名和功能如表4-2所示。表4-2无线通信模块函数和功能41 第41页共41页函数名称函数功能SpiWrite(BYTEtemp)执行SPI写操作BYTESpiRead()执行SPI读操作SpiWriteReg(BYTEaddr,BYTEvalue)执行SPI写寄存器操作BYTESpiReadReg(BYTEaddr)执行SPI读寄存器操作SpiStrobe(BYTEstrobe)执行SPI写命令寄存器操作BYTESpiReadStatus(BYTEaddr)执行SPI读状态寄存器操作SpiWriteBurstReg(BYTEaddr,BYTE*buffer,BYTEcount)执行SPIBurst模式写寄存器操SpiReadBurstReg(BYTEaddr,BYTE*buffer,BYTEcount)执行SPIBurst模式读寄存器操writeRFSettings()执行47个寄存器配置操作RfSendPacket(BYTE*txBuffer,,BYTEsize)执行发送一个数据包操作BYTERfReceivePacket(BYTE*rxBuffer,BYTE*lengt)执行接收一个数据包操4.2.2CC1101重要参数配置要使无线通信模块能够进行数据的无线传输,不仅要在硬件设计上有保障,还要对CC1101内部的47个普通8位配置寄存器(ConfigurationRegisters)进行正确的配置,由于寄存器比较多,在这一节只介绍3个重要的参数配置,其它寄存器的配置就不详细介绍了。(1)工作频率的设置根据CC1101数据手册可知,FREQ2、FREQ1和FREQ0三个寄存器负责工作频率控制。CC1101工作频率设定为433MHz,无线模块的晶振频率为26MHz,根据(4.1)式,可计算出三个寄存器的值。将所选工作频率和晶振频率这两个值代人(4.2)式中得FREQ[23:0]=1091426=0x10A762,即FREQ2=0x10,FREQ1=OxA7,FREQ0=0x62。(2)通信速率的设置根据CC1101数据手册可知,MDMCFG4寄存器中的DRATE_E位和MDMCFG3寄存器负责无线数据传输率。无线数据传输速率越高,传输时间越短,本文选择无线数据传输速率为250kbps,根据(4.3)式,可计算出MDMCFG4寄存器中的DRATE_E[3:0]位和寄存器MDMCFG3的值。由公式(4.2)推到DRATE_E和DRATE_M,得到41 第41页共41页将所选无线数据通信速率和晶振频率这两个值代入(4.4)式中,得到DRATE_E=13,即DRATE_E[3:0]=0x0D,再通过(4.5)计算得到DRATE_M=59,即MDMCFG3=0x3B。(3)数据包格式的设置CC1101支持多种数据包格式用户可以根据需要进行选择。本文通过设置MDMCFG1.NUM_PREAMBLE[2:0]=010,开启4个字节的前导位;MDMCFG2.SYNC__MODE[2:0]=011,开启32位的同步字节,接收时32位中需要有30位匹配;PKTCTRRL0.LENGTH_CONFIG[1:0]=01,可变长数据包同步字节后的第一个字节设置数据包长度;PKTLEN=0xFF,允许数据包最长为255;PKTCTRRL1.ADR_CHK[1:0]=10,开启地址检查,0x00为广播地址;PKTCTRRL0.CRC_EN=1,开启CRC校验;经过以上设置后数据包格式如图4.2所示。无线遥控开关的地址通过DEVICE_ADDR[7:0]寄存器来设置,最大地址为255。图4.2CC1101数据包格式4.3单片机与CC1101的SPI接口SPI(SerialPeripheralInterface)是一种串行同步通讯协议,由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换。SPI接口由SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟),CS(从使能信号)四种信号构成,CS决定了唯一的与主设备通信的从设备,如没有CS信号,则只能存在一个从设备,主设备通过产生移位时钟来发起通讯。通讯时,数据由SDO输出,SDI输入,数据在时钟的上升或下降沿由SDO输出,在紧接着的下降或上升沿由SDI读入,这样经过8/16次时钟的改变,完成8/16位数据的传输。在SPI传输中,数据是同步进行发送和接收的。数据传输的时钟基于来自主处理器的时钟脉冲。SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果41 第41页共41页CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设音时钟相位和极性应该一致。SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO;用于CPU与各种外围器件进行全双工、同步串行通讯。SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。CC1101通过4线SPI兼容接口(SI,SO,SCLK和CSn)配置。这个接口同时用作写和读缓存数据。本论文单片机用P2口与CC1101。在地址和数据转换期间,CSn脚(芯片选择,低电平有效)必须保持为低电平。如果在过程中CSn变为高电平,则转换取消。当CSn变低,在开始转换头字节之前,MCU必须等待,直到SO脚变低。这表明电压调制器已经稳定,晶体正在运作中。除非芯片处在SLEEP或XOFF状态,SO脚在CSn变低之后总会立即变低。读写时序图如图4.3所示,SPI接口定时要求如表4-3所示。表4-3SPI接口定时要求参数描述最小值最大值FSCLKSCLK频率100纳秒延迟之间插入地址字节和数据字节(单一存取)或地址和数据之间,数据字节之间(突发存取)。单一接入,地址和数据字节地之间不延迟突发存取,地址和数据之间,数据字节之间不延迟———10MHz9MHz6.5MHztsp,pdCSn低到SCLK的正边缘,功率降低模式下150us—TspCSn低到SCLK的正边缘,活动模式下20ns—Tch时钟高50ns—Tcl时钟低50ns—trise时钟上升时间—5nstfall时钟上升时间—5nsTsd向SCLK的正边缘建立数据单一存取突发存取55ns76ns——Thd在SCLK的正边缘之后保持数据20ns—TnsSCLK到CSn高时的负边缘20ns—41 第41页共41页图4.3配置寄存器读写时序图SPI接口上所有的处理都包含一个读/写位,一个突发访问位和一个6位地址的头字节一起作用。(1)CC1101配置寄存器位于SPI地址从0x00到0x2F之间。读/写位控制寄存器是读或者写。当对寄存器写时,每当一个待写入的数据字节传输到SI脚时,状态字节将被送至SO脚。通过在地址头设置突发位,连续地址的寄存器能高效地被访问。这个地址在内部计数器内设置起始地址。每增加一个新的字节(每8个时钟脉冲),计数器值增加1。突发访问,不管是读访问还是写访问,必须通过设置CSn为高来终止。(2)对0x30-0x3D间的地址来说,突发位用以在状态寄存器和命令滤波之间选择。状态寄存器只读。突发读取对状态寄存器是不可取的,故它们每次只能被读一个。命令滤波可被视为CC1101的单字节指令。通过命令滤波寄存器的选址,内部序列被启动。这些命令用来关闭晶体振荡器,开启传输模式和电磁波激活等。共有14个命令滤波。命令滤波寄存器的访问和一个寄存器的写操作一样,但没有数据被传输。就是说,只有R/W位(置为0),突发访问(置为0)和六个地址位(0x30和0x3D之间)被写。一个命令滤波可能在任何其他SPI访问之后,而不需要将CSn拉至高电平。命令滤波立即被执行,当CSn高时SPWD和SXOFF滤波是例外。(3)64字节TXFIFO和64字节RXFIFO通过0x3F被访问。当读/写位为0时,TXFIFO被访问,当读/写位为1时,RXFIFO被访问。TXFIFO是只写的,而RXFIFO是只读的。突发位用来决定FIFO访问是单字节还是突发访问。单字节访问方式期望地址的突发位为0及1数据字节。在数据字节之后等待一个新的地址,因此,CSn继续保持低。突发访问方式允许一地址字节,然后是连续的数据字节,直到通过设置CSn为高来关断访问。5软件设计5.1软件设计相关技术41 第41页共41页在单片机应用系统的开发中,软件的设计是最复杂和困难的,大部分情况下工作量都较大,特别是对那些控制系统比较复杂的情况。对于机电一体化的设计人员,往往需要同时考虑单片机的软硬件资源分配。在考虑一个应用工程项目时就需先分析该系统完成的任务,明确软硬件个承担哪些工作,有时,实际上这种情况很多,就是一些任务可用软件完成,也可以用硬件构成,还需考虑采用软件或硬件它们优势,一般均以最优的方案为首选。象虚定义各输入/输出(I/O)的功能、数据的传输交换形式、与外部设备接口及它们的地址分配、程序存储器和数据存储器的使用区域、主程序子程序使用的空间、显示(如有的话)等数据暂存区的选择、堆栈区的开辟等等因素。对于复杂的多任务实时控制系统,要处理的数据就非常庞大,同时又要求对多个控制对象进行实时控制,要求对各控制对象的实时数据进行快速的处理和响应,这对系统的实时性、“并行性”提出了更高的要求。这种情况下一般要求采用实在时地任务操作系统,并要求这个系统具备优良的实时控制能力。在单片机的软件设计中,任务很多,程序量很大,一般都需把程序分成若干个功能独立的模块,这也是软件设计中常用的方法,这也即俗称的“化整为零”的方法。理论和实践都证明,这种方法是行之有效的。这样可以分阶段地对单个模块进行设计和调试,一般情况下单个模块利用仿真工具即可将它们调试好,最后再将它们有机的联系起来,构成一个完整的控制程序,并对它们进行联合调试即可。程序编写时,首先需对用到的参数进行定义,和标号的定义一样,使用的字符必须易于理解,可以使用英文单词和汉语拼音的缩写形式,这对今后自己的辨读和排错都是有好处的。然后初始化各特殊功能寄存器的状态,中断口的地址区定义,数据存储区的安排,根据系统的具体情况,估算中断、子程序的使用情况,预留出堆栈区,和需要的数据缓存区,接下来就开始编写程序了。5.2CC1101无线收发程序设计通过对CC1101进行正确的参数配置,就能够实现数据的无线传输。无线通信模块接收到无线反馈控制器的命令,然后根据这些命令无线遥控开关进行复位、打包和数据包传输等操作,其无线收发程序流程如图5.1所示。当CC1101状态不正常时可以通过程序控制来复位芯片,复位的时序如图5.2所示。程序复位的操作顺序如下:(1)设置SCLK=1和SI=0,以避免引脚控制模式造成潜在的问题;(2)设置CSn为低,然后再拉高;(3)保持CSn为高至少40μs;(4)将CSn拉低,等待SO变低(CHIP_RDYn);(5)在SI上发送SRES命令;(6)当SO再次变低后,复位工作完成,CC1101处于IDLE状态。41 第41页共41页图5.1无线数据收发流程图无线通信模块的发射部分程序如下//CC1101发送一组数据//*****************************************************************************voidhalRfSendPacket(unsignedchar*txBuffer,unsignedcharsize){halSpiWriteReg(CCxxx0_TXFIFO,size);halSpiWriteBurstReg(CCxxx0_TXFIFO,txBuffer,size);//写入要发送的数据halSpiStrobe(CCxxx0_STX);//进入发送模式发送数据}//*****************************************************************************41 第41页共41页图5.2程序复位时序图SPI程序编写的的注意事项进行SPI寄存器初始化,按照你要进行的方式进行设置(DMA,中断,查询),然后就可以进行读写数据了,但是要注意,读数据的时候寄存器SPSTA1最低位是0的时候读完,SPI是主机的时候,状态积存器是1,SPI是从机的时候,状态寄存器是0,而且SPI寄存器一次只能传送8位数据。以下是通信模块接收数据的一部分程序及注解//CC1101接收一组数据,并放入缓冲区//*****************************************************************************if((halSpiReadStatus(CCxxx0_RXBYTES)&BYTES_IN_RXFIFO)){packetLength=halSpiReadReg(CCxxx0_RXFIFO);//读出第一个字节为该帧数据长度if(packetLength==length)//所要的有效数据长度小于等于接收到的数据包的长度{halSpiReadBurstReg(CCxxx0_RXFIFO,rxBuffer,packetLength);//读出接收的数据halSpiReadBurstReg(CCxxx0_RXFIFO,status,2);//读出CRC校验位if(status[1]&CRC_OK)//如果校验成功返回接收成功{halSpiStrobe(CCxxx0_SFRX);//接收之后刷新缓冲区return1;}}}//*****************************************************************************6系统验证6.1发射和接收要发射接收数据,首先要通过SPIO接口对CC1101进行初始化,包括一些最基本的收发确认设置、频段设置、地址设置等。41 第41页共41页图6.1发射模块流程图图6.2接收模块流程图41 第41页共41页在发射时,将CC1101设置在待机和SPIO编程状态,然后在进行射频寄存器的初始化设置后,给键盘赋初值,键盘有健按下时,单片机通过扫描键盘读出按键值,然后把该按键值打包等待发送,单片机发送数据时,单片机按照SPIO接口时序把要发送的数据写入CC1101,再初始化发射端的地址,且应当与接收端的地址相互匹配,发射端发射的数据有效宽度必须与接收端设置一致。然后把单片机设置为发送模式,并且完成数据打包,给数据进行编码、调制以及发送。发送完成后,相应的引脚被置低,CC1101回到待机模式。在接收时,初始化的设置同发射时基本一致,然后CC1101被设置为接收模式,不断地检测载波,等待接收数据,当检测到同频段的载波并且地址也匹配时,CC1101进行数据包的接收,并完成校验等相关工作。接着,将数据通过SPIO接口传输到单片机中,接收完成后CC1101继续进入待机状态。6.2电路调试单片机的程序设计调试分为两种,一种是使用软件模拟调试,意思就是用开发单片机程序的计算机去模拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的,但是软件调试存在一些问题,如计算机本身是多任务系统,划分执行时间片是由操作系统本身完成的,无法得到控制,这样就无法时时的模拟单片机的执行时序,也就是说,不可能像真正的单片机运行环境那样执行的指令在同样一个时间能完成(往往要完成的比单片机慢)。为了解决软件调试的问题,第二种是硬件调试,硬件调试其实也需要计算机软件的配合,大致过程是这样的:计算机软件把编译好的程序通过串行口、并行口或者USB口传输到硬件调试设备中(这个设备叫仿真器),仿真器仿真全部的单片机资源(所有的单片机接口,并且有真实的引脚输出),仿真器可以接入实际的电路中,然后与单片机一样执行。同时,仿真器也会返回单片机内部内存与时序等情况给计算机的辅助软件,这样就可以在软件里看到真实的执行情况。不仅如此,还可以通过计算机断的软件实现单步、全速、运行到光标的常规调试手段。串口通信(SerialCommunication),是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。主要工作集中在模块化程序的调试,在具体调试过程中需要借助于串行口调试助手来模拟无线遥控开关的工作流程。从网络中下一个串口调试助手,串口调试助手发送状态如图6.3所示。测试地点在学校东区的实验室,首先给电路通电,通过SPI接口把程序拷贝到C8051F310单片机上,然后用串口调试助手发送数据,点手动发送按钮(发送的内容是默认的一个网址),接收到的内容如图6.4所示,这样,两块无线通信板就能成功完成对接通信啦。41 第41页共41页图6.3串口调试助手发送图6.4串口调试助手接收41 第41页共41页在无线通信模块和无线反馈控制器调试成功后,对无线通信模块进行了误码率测试,如图6.5所示。测试条件为使用串行口COM1,波特率为19200,无校验位,数据位为8位,停止位为1位,测试地点为东区实验室,测试距离为20m,发送了17723个字节,错误字节为20个,误码率为1.28‰。图6.5无线通信模块误码率测试键盘调试安排在通信调试通过后,键盘调试就比较简单,完全可以借助于显示器,利用程序进行调试。利用开发装置对程序进行设置断点,通过断点可以检查程序在断点前后的键值变化,这样可知键盘工作是否正常。调试的结果如下,在常态下,开关为常开状态,每按下一次按键,相应的开关闭合或开启,开关的闭合和开启由LED灯的亮灭来显示。如表6-1表6-1按键对应的开关状态按下发射板上的按键接收板上的开关状态LED灯的显示按键11号开/闭LED1亮/灭按键22号开/闭LED2亮/灭按键33号开/闭LED3亮/灭按键44号开/闭LED4亮/灭按键55号开/闭LED5亮/灭按键66号开/闭LED6亮/灭按键77号开/闭LED7亮/灭按键88号开/闭LED8亮/灭41 第41页共41页7结论在本次毕业设计课题的研究中,我大有收获。首先在选择毕业设计课题时,我本着巩固所学理论知识,加强实际动手能力,增加对现代科技特别是通信方面的了解,圆满完成大学本科学业的想法,选了多路无线遥控开关的设计这一实际而又有挑战性的课题。经过四年学习的积累,在已经掌握相关专业方面知识及其它各方面知识的情况下,我认真严肃的完成了我的毕业设计。这次毕业设计历时至少3个月,从一开始的确定课题,到后来的资料查找、理论学习,再有就是近来的调试和测试过程,这一切都使我的理论知识和动手能力得到很大的加强,可以说是对电路知识的一次全面综合。在通信理论的学习和实际电路的识别、分析以及后来的测试过程中不可避免地遇到各种问题,这要求保持沉着冷静积极地思考,实在解决不了可以请教同学或指导老师。这次毕设还是对我的钻研精神,面对困难的心态,做事的毅力和耐心的考验。我在这个过程中深刻的感受到了做毕业设计的意义所在,和我一样真正投入了身心去做的人也一定会有同样的感触。为完成这次毕设,我复习巩固了所学的电子电路等课程知识,并自学了《C8051F系列单片机与短距离无线数据通信》、《SOC技术原理应用》等课程的部分知识内容,为深入认识当今无线通信的技术及发展,我在图书馆、互连网上查阅了大量的相关知识。在对无线遥控开关电路的分析与研究中,我对现在通信类设备的工业制造有了较实际的认识,并对部分流行的通信类芯片有了一定的了解。并且制作了一套无线遥控开关板,通过近三周的测试与调试后,测试了无线遥控开关的实际通信距离,得到了部分合理数据,并进行认真的分析,得出结论,基本完成了本次毕业设计任务。下面是几点小结:(1)本课题的重点、难点:①掌握无线遥控的工作原理,重点是无线遥控模块射频部分电路原理;②深入分析无线射频的工作原理,研究无线射频电路的设计;(2)本课题研究结论:通过理论的系统学习和实际电路的学习、研究,我系统的掌握了无线遥控开关的工作原理,特别是无线遥控射频接收部分电路原理;结合射频技术和现代通信科技的发展,我具体分析了无线遥控电路的设计。(3)本课题研究的不足及原因分析:这次毕业设计的完成中,主要任务都得到了比较好的完成,该无线遥控开关的研制工作中还存在不足之处有待于进一步研究,比如无线模块的通信距离较近,优化无线模块以达到更远的通信距离;以及对通信协议的优化,探索一种更合理、更高效的通信协议等都可以提高该无线遥控开关的工作效率。(4)对后续开发的展望:为了提高运用C8051F310单片机和射频收发器CC1101设计的无线遥控器的性能,对本系统的改进提出如下两点建议:41 第41页共41页①为了增加发射射频的最大功率,可以在CC1101电路后、天线前增加一个放大器;②选用其它速度更快的单片机,可以增加遥控器的读写速度,反应会更加敏捷;通过做本课题,我巩固并掌握了现代通信的基本理论知识,较为全面地应用了电子电路的知识,熟悉了现代通信科学技术的发展,深入地学习和分析了无线遥控器的射频接收电路,并掌握了其设计方法。这次毕业设计的完成为以后在电子产品硬件产品的设计开发打下了良好的基础,树立独立从事产品研发的信心,并在这种能力上得到了较为充分的锻炼。41 第41页共41页谢辞在本课题的研究及论文的写作过程中,得到了很多人的热心帮助和支持,在此对他们表示衷心的感谢。首先感谢导师王守华老师把我带进一个新领域——无线射频通信这个行业。在课题的研究过程中学习了很多新的知识,如C8051F310、CC1101、Protel、keil等。在王老师的精心指导和亲切关怀下,我的论文得以顺利地完成,导师渊博的专业理论知识,严谨的学术作风,精益求精的科学态度为我指明了方向,使我受益匪浅、终身难忘。尤其是导师勤奋的学习精神、正直的做人态度以及对工作忘我的投入和高瞻远瞩,都将是我永远的学习榜样。导师在学业上的对我的谆谆教导是永远伴随我的精神财富!值此论文完成之际,向尊敬的王老师致以最衷心的感谢!同时,向母校所有传授过我知识的老师们表示诚挚的谢意,各位老师的悉心讲授和指导,使我获得丰富的基础理论知识,为我做好课题打下了坚实的基础。在大学的四年中,我得到了许多同学的热情帮助,在此向他们表示衷心的感谢,他们的关心和帮助给我前进的动力,使我在学习过程中能够迎难而上,最终取得学业上的进步和成功。还要感谢远在家乡的父母和亲人,如果没有他们在物资上和精神上的支持,我不可能顺利完成学业,正是他们的鞭策,鼓励,理解和帮助,让我克服困难,不断进步。这是我勇往直前的精神动力。在此致以崇高的敬礼和谢意。再次向所有在我成长过程中关心帮助我的人们表示感谢!最后,衷心感谢在百忙之中评阅论文和参加论文答辩的各位专家。41 第41页共41页参考文献[1]李文仲,段朝玉.C8051F系列单片机与短距离无线数据通信[M].北京:北京航空航天大学出版社,2007[2]孙江宏,李良玉.Protel99电路设计与应用[M].北京:机械工业出版社,2006[3]阎石.数字电子技术基本教程[M].北京:清华大学出版社,2003[4]华成英.模拟电子技术基本教程[M].北京:清华大学出版社,2006[5]李建民.单片机原理与应用技术[M].西安:西安电子科技大学出版社,2006[6]郭兵.SOC技术原理应用[M].北京:清华大学出版社,2006[7]张迎新,雷文,姚静波.C8051F系列SOC单片机原理及应用[M].北京:国防工业出版社,2005[8]徐惠民,安德宁.单片微型计算机原理接口与应用[M].北京:北京邮电大学出版社,1996[9]李华.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,2003[10]郭永贞.数字电子技术[M].西安:西安电子科技大学出版社,2003[11]夏季强,沈德金.单片机实验与实践教程[M].北京:北京航空航天大学出版社,2001[12]赵晓安.MCS-51单片机原理及应用[M].天津:天津大学出版社,200141 第41页共41页附录1遥控发射电路原理图和PCB图41 第41页共41页2遥控接收电路原理图和PCB图41 第41页共41页3遥控发射部分的主程序/************************************************************************功能描述:ADC试验,利用C8051F310内部ADC转换器,把当前的P3.3的当前电压**值转换成ADC值从串口输出。***********************************************************************/#include//C8051F31X系列头文件。#include"CC1100.h"#include#include#include#defineP_Watchdog_Clear(volatileunsignedint*)0x7012#defineucharunsignedcharuchararrTx[4];ucharkey;inty;sbitSW1=P2^2;sbitSW2=P2^3;sbitSW3=P2^4;sbitSW4=P2^5;sbitSW5=P2^6;sbitSW6=P2^7;//**********************************************************************//函数名:voidPORT_Init(void)//功能描述:端口初始化。//**********************************************************************voidPORT_Init(void){P2MDOUT=0xff;//P2口全为输出。P1MDOUT=0xf3;P0MDOUT|=0x10;//TXD输出P0MDOUT&=~0x20;//RXD输入XBR0=0x01;//硬件UART。XBR1=0xC0;//弱上拉关,交叉开关使能。}//**********************************************************************//函数名:voidInternal_Crystal(void)//功能描述:设定内部时钟。//**********************************************************************voidInternal_Crystal(void){OSCICN=0x83;//内部振荡器允许,不分频最快频率CLKSEL=0x00;//使用内部振荡器。}voidDelay(unsignedintt)//默认状态,t=1时约3us{unsignedinti,j;for(i=0;i0;aaa--)41 第41页共41页for(bbb=0;bbb<200;bbb++);}unsignedcharTab[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};//LED灯的编码voidmain(void){intj;PCA0MD&=~0x40;//关闭看门狗。PORT_Init();//初始化I/O口。Internal_Crystal();//开启内部晶振Timer0_Init();//初始化定时器0。Init_CC1100();//初始化CC1100TMOD=0x20;//T1八位自动重装载T016定时CKCON=0x01;//T1使用系统时钟T1CLK=SYSCLK/12=480000HZTL1=0x60;//0x2b1200bps0x6119200bpsTH1=0x60;EA=1;TR1=1;TR0=1;arrTx[0]=0x40;//帧头。arrTx[1]=0xbb;//标致arrTx[3]=0x2A;//帧尾。/**********************************************************************//按键程序***********************************************************************/while(1){y=0;key=0;P2=0xFB;if(P2!=0xFB)//判断是否有按键按下{Delay(10000);//延时if(P2!=0xFB)//再判断是否有按键按下{if(P2==0xEB)key=1;elseif(P2==0xDB)key=2;elseif(P2==0xBB)key=3;elseif(P2==0x7B)key=4;y=1;}}P2=0xF7;if(P2!=0xF7)//判断是否有按键按下{if(P2!=0xF7)//再判断是否有按键按下{if(P2==0xE7)key=5;elseif(P2==0xD7)key=6;elseif(P2==0xB7)key=7;elseif(P2==0x77)key=8;41 第41页共41页y=1;}}if(y==1){arrTx[2]=key;//键盘值halRfSendPacket(arrTx,4);*P_Watchdog_Clear=0x01;}}}4遥控接收部分的主程序/************************************************************************功能描述:ADC试验,利用C8051F310内部ADC转换器,把当前的P2.2的当前电压**值转换成ADC值从串口输出。***********************************************************************/#include//C8051F31X系列头文件?#include"CC1100.h"#defineP_Watchdog_Clear(volatileunsignedint*)0x7012sbitLED1=P2^0;sbitLED2=P2^1;sbitLED3=P2^2;sbitLED4=P2^3;sbitLED5=P2^4;sbitLED6=P2^5;sbitLED7=P2^6;sbitLED8=P2^7;//**********************************************************************//函数名:voidPORT_Init(void)//功能描述:端口初始化。//**********************************************************************voidPORT_Init(void){P2MDOUT=0xff;//P2口全为输出。P1MDOUT=0xf3;P0MDOUT|=0x10;//TXD输出P0MDOUT&=~0x20;//RXD输入P3MDOUT=0xff;XBR0=0x01;//硬件UART。XBR1=0x40;//弱上拉关,交叉开关使能。}//**********************************************************************//函数名:voidInternal_Crystal(void)//功能描述:设定内部时钟。//**********************************************************************voidInternal_Crystal(void){OSCICN=0x83;//内部振荡器允许,不分频最快频率CLKSEL=0x00;//使用内部振荡器。}//**********************************************************************//延时程序//**********************************************************************voidys(){unsignedintaaa,bbb;for(aaa=200;aaa>0;aaa--)41 第41页共41页for(bbb=0;bbb<200;bbb++);}voidmain(void){unsignedchark;unsignedchararrRx[4];PCA0MD&=~0x40;//关闭看门狗。PORT_Init();//初始化I/O口。Internal_Crystal();//开启内部晶振。Init_CC1100();//初始化CC1100Timer0_Init();//初始化定时器0EA=1;TR0=1;while(1){while(halRfReceivePacket(arrRx,4)){if(arrRx[1]==0xbb);{if(arrRx[2]==0x01)LED1=!LED1;elseif(arrRx[2]==0x02)LED2=!LED2;elseif(arrRx[2]==0x03)LED3=!LED3;elseif(arrRx[2]==0x04)LED4=!LED4;elseif(arrRx[2]==0x05)LED5=!LED5;elseif(arrRx[2]==0x06)LED6=!LED6;elseif(arrRx[2]==0x07)LED7=!LED7;elseif(arrRx[2]==0x08)LED8=!LED8;ys();}}}}41

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭