您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于nRF24L01的无线通信模块设计报告正文
第1页1前言本次我们三人小组设计的是无线通信模块,根据设计要求我们选择了无线收发模块nRF24L01、单片机STC89C52、LCD1602和键盘模块等作为本次设计的硬件需求。首先我们与老师一起讨论了一些设计的相关事宜和设计思路。接下来我们一起画好了模拟电路图,在老师的帮助下我们对电路图进行了补充和完善。完成这些基本工作后,在老师和同学的帮助下我们买回了自己所需的元器件。接着我们变分工完成了元器件的焊接连接和程序的编写,然后便是模块的上电调试,设计的答辩和设计报告的完善。我们本次之所以会选择无线通信模块的设计,是我们觉得无线通信技术是现代社会中一门很重要的技术,我们掌握好了这门技术对以后我们的工作生活都有很大的帮助。我们本次设计的无线通信模块虽然只是我们的一次小小的体验,但我们都知道无线通信在我们现在所处的信息时代是多么的重要,如今我们生活的方方面面无不与无线通信息息相关。我们所熟悉的手机、电脑、电视等等都与无线通信有着直接的联系。甚至在某些高端领域方面无线通信技术能反映一个国家的科技水平和综合国力。我们国家的无线通信技术虽然在世界上排在了前面的位置,但与一些发达国家相比我们任然有很大差距,如太空中有差不多80%的通信卫星是美国的。当然我们本次设计的无线通信模块只是很基础的无线通信模块,我们所达到的效果就是两个模块间能相互发送一些简单的字符和数字。第2页2总体方案设计本次设计我们考虑用C语言和汇编去实现模块的无线通信功能,但我们编写程序时发现汇编语言较难写且可读性差,因此我们选择了用C语言作为本次的软件实现。要实现无线通信功能,我们选择了小巧轻便的无线收发模块nRF24L01。在单片机方面考虑到52系列优于51系列且很好购买,我们选择了STC89C52单片机。在液晶显示上,我们只要求能显示一些简单的数字和字母,我们选择了LCD1602。键盘输入方面我们选择的是4×4矩阵键盘。以上各模块的功能信息在后面都有更为具体的介绍。图2.1无线通信模块框图第3页3单元模块设计3.1nRF24L01的简单介绍nRF24L01是NORDIC公司最近生产的一款无线通信通信芯片,采用FSK调制,内部集成NORDIC自己的EnhancedShortBurst协议。可以实现点对点或是1对6的无线通信。无线通信速度可以达到2M(bps)。NORDIC公司提供通信模块的GERBER文件,可以直接加工生产。嵌入式工程师或是单片机爱好者只需要为单片机系统预留5个GPIO,1个中断输入引脚,就可以很容易实现无线通信的功能,非常适合用来为MCU系统构建无线通信功能。2.4GHz全球开放ISM频段,最大0dBm发射功率,免许可证使用支持六路通道的数据接收低工作电压:1.9V~3.6V低电压工作高速率:2Mbps,由于空中传输时间很短,极大的降低了无线传输中的碰撞现象(软件设置1Mbps或者2Mbps的空中传输速率)多频点:125频点,满足多点通信和跳频通信需要超小型:内置2.4GHz天线,体积小巧,15×29mm(包括天线)低功耗:当工作在应答模式通信时,快速的空中传输及启动时间,极大的降低了电流消耗。低应用成本:nRF24L01集成了所有与RF协议相关的高速信号处理部分,比如:自动重发丢失数据包和自动产生应答信号等,nRF24L01的SPI接口可以利用单片机的硬件SPI口连接或用单片机I/O口进行模拟,内部有FIFO可以与各种高低速微处理器接口,便于使用低成本单片机。便于开发:由于链路层完全集成在模块上,非常便于开发。自动重发功能,自动检测和重发丢失的数据包,重发时间及自动存储未收到应答信号的数据包自动应答功能,在收到有效数据后,模块自动发送应答信号,无须另行编程载波检测—固定频率检测内置硬件CRC检错和点对多点通信地址控制数据包传输错误计数器及载波检测功能可用于跳频设置可同时设置六路接收通道地址,可有选择性的打开接收通道标准插针Dip2.54MM间距接口,便于嵌入式应用。第4页nRF24L01功能框图图3.1nRF24L01功能框图Fig.1nRF24L01BLOCKDIAGRAMnRF24L01的框图如Fig.1所示,从单片机控制的角度来看,我们只需要关注Fig.1右面的六个控制和数据信号,分别为CSN、SCK、MISO、MOSI、IRQ、CE。CSN:芯片的片选线,CSN为低电平芯片工作。SCK:芯片控制的时钟线(SPI时钟)MISO:芯片控制数据线(Masterinputslaveoutput)MOSI:芯片控制数据线(Masteroutputslaveinput)IRQ:中断信号。无线通信过程中MCU主要是通过IRQ与nRF24L01进行通信。CE:芯片的模式控制线。在CSN为低的情况下,CE协同nRF24L01的CONFIG寄存器共同决定nRF24L01的状态(参照nRF24L01的状态机)。图3.2nRF24L01实物图第5页nRF24L01的引脚级说明图3.3nRF24L01的引脚级说明说明:(1)VCC脚接电压范围为1.9V~3.6V之间,不能在这个区间之外,超过3.6V将会烧毁模块。推荐电压3.3V左右。(2)除电源VCC和接地端,其余脚都可以直接和普通的5V单片机IO口直接相连,无需电平转换。当然对3V左右的单片机更加适用了。(3)硬件上面没有SPI的单片机也可以控制本模块,用普通单片机IO口模拟SPI不需要单片机真正的串口介入,只需要普通的单片机IO口就可以了,当然用串口也可以了3.2STC89C52的简单介绍STC89C52是一个低电压,高性能cmos8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,STC89C52单片机在电子行业中有着广泛的应用。其主要特性功能:1、兼容MCS51指令系统2、8k可反复擦写(大于1000次)FlashROM;3、32个双向I/O口;4、256×8bit内部RAM;5、3个16位可编程定时/计数器中断;6、时钟频率0-24MHz;7、2个串行中断,可编程UART串行通道;8、2个外部中断源,共8个中断源;9、2个读写中断口线,3级加密位;10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。第6页STC89C52的引脚图图3.4STC89C52的引脚图3.3LCD1602的简单介绍LCD1602是工业字符型液晶,能够同时显示16×02即32个字符。(16列2行)1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5×7或者5×11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。图3.5LCD1602实物图第7页LCD1602的引脚图图3.6LCD1602的引脚图3.4其它的器件当然我们本次设计还用到了一些其他的元器件,包括键盘、连接导线、排针、发光二极管、电阻、电容等等。3.5各单元模块的联系键盘输入是人机交换的接口其主要功能是设置nRF24L01的工作模式和实现键盘输入字符、数字等。单片机是主控模块实现数据的储存、处理,将各模块联系起来协调各模块的工作。LCD1602主要功能就是显示作用,将键盘输入或接收到的信息显示出来。第8页4软件设计我们搭建好硬件电路并确认无误后,进行了软件设计。本次无线通信模块设计我们选择了用C语言实现其功能,我们在PC机KeiluVision4下编写调试了C程序并将C程序下载到STC89C52单片机里进行了运行调试。图5.1软件实现的流程图第9页5系统调试在调试环境中我们首先检查了我们焊接的硬件电路是否有问题,如有无短路,有无虚焊等。确认硬件电路完善无误后。我们再次对程序进行了检查与调试,都发现没有问题后,我们对模块进行了上电并将程序下载进去运行调试。一开始我们发现并没有达到预期的效果,发现键盘输入与发送的字符数字不匹配,接搜端也无法搜到相应的信号。经过我们的仔细检查和思考后,我们发现程序中定义的端口与硬件电路的端口没有意义对应,程序的一些其他地方也并不是很完善,我们又对程序进行了改进,对程序的改进过程中,有时会遇到修改程序后会出现错误,这是若去一行一行的运行调试程序就会很麻烦和花去大量的时间。这时就要认真检查思考程序出错在哪里,几个人一起检查就加快了效率,节约了大量时间,直到调试达到了我们所预期的效果。5.1主要问题及分析开始时我们想到的是在ISIS里画好原理图并仿真,但在ISIS上面我们没有找到我们想要的元器件,因此我们只能直接去调试硬件电路。首先我们设计好程序并确认无误后再将程序下载到单片机里进行硬件调试,结果我们发现LCD1602无显示,经过仔细的检查思考后,我们发现我们所写的程序与单片机和液晶屏的引脚并不是一一对应的,经过对程序和硬件电路的修改后液晶屏终于有了显示。虽然液晶屏有了显示,但我们的键盘输入,发送与接收还是存在问题。考虑到时间有限我们将原来的矩阵键盘输入改为了较简单的单一键盘输入,这样我们解决的键盘输入问题。经过反复的调试修改后,我们的无线通信模块终于达到的预期的效果。5.2调试工具此次调试过程中,我们主要用到了KeiluVision4、STC-ISP.exe、AltiumDesigner。KeiluVision4是用来编写程序,并编译成HEX文件,以便下载到单片机中。当有了HEX文件之后,要将此文件下载到单片机中,不可缺少的工具就是STC-ISP.exe。通过它,可以对单片机内部的程序进行反复修改。AltiumDesigner是用来查看电路原理图,并有绘制原理图的功能,在实际调试过程中,应当将软件与硬件相结合,所以电路图的研究不可缺少。第10页6系统功能、指标参数6.1系统能实现的功能本次我们三人小组所做的无线通信模块主要能实现两个模块间的一些简单通信,实现两个模块间一些简单字符、数字的发送与接收。我们先对键盘输入进行一些定义,如定义键盘输入为一些字符或数字,但我们按相应的建后就输入相应的字符或数字,输入完成后,我们在按发送键,预先输入的信息便发送了出去,接送的也会收到相应的信息。6.2系统指标参数测试在系统指标参数的测试中,我们首先测试了两个无线收发模块间能传输的范围,经过我们多次的改变两个模块的距离后,我们发现两个模块能传输的最大距离约为10米,在穿透效果的测试中,我们发现两个模块间可以穿过一壁普通的墙,当两个模块间隔有两面及两面以上的普通墙时,两个模块间就很难传输信号了。我们试图测试模块的抗电磁干扰能力的测试是,我们发现很找到一个精确的量来描述,我们大致得出在较弱和频率与我们用的nRF24L01的频率相差较大时的干扰不明显,但当电磁干扰较强很干扰波频率接近nRF24L01的频率时的干扰较为强烈。6.3系统的指标功能及参数分析nRF24L01的无线速率达到2Mbit/s,SPI接口速率为0~8Mbit/s,具自动应答机制,极大地降低丢包率,完全满足了我们本次设计的需求。将nRF24L01配置成增强型ShockBurst模式,使得双向链接协议执行更为简易有效。发送方要求终端设备在接收数据后有应答信号,以便发送方检测有无数据丢失。一旦数据丢失则通过重新发送功能将丢失的数据恢复。单片机内部EEPROM应用子程序进行扇区的擦除、写入以及读出功能,实现系统信息的读取保存。nRF24L01在外置天线时传输距离可以到达25m,我们本次没有使用外置天线,传输的距离约为10m,一切都满足我们本次设计的需求。第11页7结论本次智能测控应用系统设计,我们三人小组成功的的完成了无线通信模块的设计与制作。虽然我们在模块的设计、制作、调试过程中也遇到了不少困难,但在老师和同学的细心指导帮助之下和我们自己的努力,最终还是达到了预期的效果,
本文标题:基于nRF24L01的无线通信模块设计报告正文
链接地址:https://www.777doc.com/doc-4608865 .html