资源描述
石家庄铁道大学四方学院毕业设计利用无线 2401 模块组成的无线遥控系 统的设计 Design of Wireless Remote Controller with NRF2401摘 要本系统的目的是以单片机和无线 2401 模块为系统核心,设计基于单片机的无线遥控系统,进行无线数据传输。无线技术正以一种快速的速度进入许多产品中,它与有线相比主要有成本低,携带方便,省去有线布线的烦恼;特别适用于手持设备的通信、电池供电设备、遥控、遥测、小型无线网络、无线抄表、门禁系统等。本文主要是对 C 语言和单片机的一些基本知识、概念的应用学习和研究,以及STC89C52 芯片模块和 NRF2401 模块的开发设计。该设计的目的是设计一个无线遥控系统,可以在规定距离内传输数据。它是利用 STC89C52 单片机作为主控芯片,NRF2401 作为无线收发模块,设计了一种无线遥控系统。并且介绍了该无线遥控系统的四大模块,即 STC89C52 单片机模块、NRF2401 模块、键盘模块、数码管模块,同时给出了各个模块的方案选择理由以及硬件电路设计和软件设计的过程。经运行证明,利用 NRF2401 来完成这个无线遥控系统的设计的方案是可行的,系统稳定,易于控制,通信可靠。关键词:STC89C52NRF2401无线遥控系统 AbstractThe purpose of this system is based on single chip and NRF2401 modules for the core system,based on the single chip wireless remote control system, wireless data transmission. Wireless technology is taking a rapid speed into many products, it is main cable and low cost compared, convenient to carry, and save the cable wiring worry; Especially suitable for handheld devices communications, battery power supply equipments, remote control, remote sensing, small wireless network, wireless meter reading, access control system, etc.This paper is mainly to the C language and single chip microcomputer, and some basic knowledge of the concept of learning applications and research, and STC89C52 chip module and NRF2401 module of the design development, this is designed to design a wireless remote control system, can be in provisions in the distance data transmission. This system is the use of STC89C52 microcontroller as the main control chip, NRF2401 as a wireless transceiver module design a wireless remote control system. Introduces the wireless remote control system of the four modules, namely STC89C52 microcontroller module, NRF2401 module, keyboard module, digital tube module, and presents a scheme of each module, reasons for choice and hardware design and software design process.The operation proved that using NRF2401 to complete the wireless remote control system design scheme is feasible, and the system is stable, easy control, communication and reliable.Key words: STC89C52NRF2401 Wireless Remote Control System目录第 1 章绪论.11.1无线遥控系统研究的背景.11.2无线遥控系统的研究内容.11.3无线遥控系统的设计思想.21.4无线遥控系统的设计的意义.2第 2 章系统总体方案设计.32.1功能要求.32.2设计思路.32.3方案选择.32.3.1控制模块选择方案.32.3.2按键选择方案.42.3.3芯片选择方案.42.4总体设计框图.5第 3 章系统硬件设计.63.1概述.63.2主控模块.63.2.1STC89C52 芯片的简介.63.2.2主控模块电路原理.93.3NRF2401 芯片模块.93.3.1NRF2401 功能.93.3.2NRF2401 电路设计.103.3.3实际通信过程.113.4电压转换模块.123.4.1芯片简单描述.133.4.2主要参数.133.4.3应用范围.133.5LED 灯及数码管显示模块.133.5.1LED 及数码管简介.133.5.2LED 灯及数码管显示模块电路原理图.143.6按键控制模块.153.6.1按键控制模块电路原理图.15第 4 章系统软件设计.164.1NRF2401 芯片模块设计.164.1.1NRF2401 的固件编程的基本思路.16I4.1.2NRF2401 的发送接收设计.184.2键盘扫描模块设计.204.2.1键盘扫描.204.2.2键盘去抖.214.2.3键盘编码.214.2.4单片机对键盘的控制方式.214.3显示模块的设计.22第 5 章系统分析与调试.24第 6 章结论与展望.266.1无线遥控系统的设计的结论.266.2无线 2401 模块与蓝牙模块的对比.266.3展望.27参考文献.28致谢.29附录.30附录 A外文资料.30附录 B 硬件原理图 .37附录 C程序清单.38石家庄铁道大学四方学院毕业设计0第 1 章绪论1.1无线遥控系统研究的背景无线遥控技术发展只有几十年的历史,目前,在无线遥控领域,无线遥控模式是遥控的主要方式。本次研究的无线遥控系统,采用了 Nordic 公司的 NRF2401 无线收发一体芯片和蓝牙一样,同样工作在 2.4-2.5GHz 的 ISM 波段。NRF2401 的单价低于 3 美元,而且便于开发,产品上市时间短,应用广泛,包括无线鼠标、无线键盘、无线操纵杆、无缝接入、无线数据传输、汽车应用等。现代控制系统需要采集传感器所获取的数据,并将采集得到的数据传送到主机进行数据分析和处理。但是对着数据采集应用的范围不断拓展,在有些场合,如高腐蚀性环境、现场无法实现明线连接等许多条件下,采用传统的数据传输信道即通过有线连接传输采集已经不能满足需要,这时采用无线数据传输就显示出巨大的优势,无线数据传输不受地理环境、气候、时间等的限制,具有广阔的应用前景。1.2无线遥控系统的研究内容本文主要是对 C 语言和单片机的一些基本知识、概念的应用学习和研究,以及STC89C52 芯片模块和 NRF2401 模块的开发设计,该设计的目的是设计一个无线遥控系统,可以在规定距离内传输数据。为了使接收时分析方便,我们加了按键以及数码管,当按下某一按键时数码管显示相应的按键值。本设计的主要工作有以下几个方面:(1)整体方案的设计方案的选择要符合芯片功能的要求,既要保证操作简单符合人们平时的操作习惯,又要体现出本产品的特点,本文研究设计的无线遥控系统是采用 STC89C52 单片机和 NRF2401 芯片,用来实现无线遥控系统传输信息的功能。(2)程序流程图及软件设计一个程序要想实现其功能,不能没有次序而盲目下手,必须对其有一个全面的了解后画出流程框图,然后逐个模块的实现其功能,最终把模块之间合理的连接起来,构成完整程序。本设计的软件设计主要包括系统的初始化设计、延时子程序的设计、键盘扫描模块的设计、两个芯片之间通信的设计、按键设计模块和数码管的显示设计、以及把各个子模块组合成一个完整程序的设计等。整个系统程序采用模石家庄铁道大学四方学院毕业设计1块化结构设计程序相对比较优化易修改和调试系统软件的开发是用 C 语言设计的。(3)系统原理图及硬件调试实验本设计在进行硬件原理分析后,需要连接实物进行实际操作,检验自己的设计是否可以行得通。需要在 protel99SE 环境下画出硬件原理图并进行电气测试,检测无异议后进行硬件系统的调试实验,为了保证系统的可靠性分析查找,硬件的调试整个系统进行了模拟试验。1.3无线遥控系统的设计思想本文在设计的大前提下,简化系统设计,系统的工作原理是:首先用按键输入信号,送到单片机进行初步处理,对要传输的信号进行编码,然后利用 NRF2401 无线传输芯片通过无线方式将有效数据发送给接收端,而在接收端,将数据采集的部分简化为数码管的输人数据,并对数据进行简化编码,通过单片机的控制将数据发送到 NRF2401,再通过 PCB 天线将数据发送出去,然后通过数码管显示出接收的信息,从而验证与发送的信息是否相符。如需对系统扩充,只需在原电路的基础上加入相应的外围电路即可实现更高级的功能。作为数字控制通信系统,整个无线数据采集系统的设计部分分为硬件设计和软件设计两个方面。1.4无线遥控系统的设计的意义无线遥控系统作为一种新一代的信息传送方式,具有绕射和穿透特性,只要在有效工作范围之内,无线设备就可以不受角度、方向和障碍物的限制而自由使用。并且采用单片射频收发芯片 NRF2401,采用这种遥控芯片在遥控精度上将得到很大的提升,可以防止无线电波的相互干扰,抗干扰能力强。无线遥控系统是 NRF2401 通过 ShockBurstTM 收发模式进行无线数据发送,收发可靠,其外形尺寸小,需要的外围元器件也少,使用方便,因此,在工业控制、消费电子等各个领域都具有广阔的应用前景。由 NRF2401 组成的无线遥控系统,也在计算机外设、无线耳机、玩具、汽车电子、医疗器械、遥控和工业传感器中广泛应用,给人们的生活带来了极大的方便。石家庄铁道大学四方学院毕业设计2第 2 章系统总体方案设计2.1功能要求1、通过 STC89C52 芯片实现对按键的读取,将所对应的按键在数码管上显示;2、NRF2401 芯片完成无线通信模块,1117-3.3V 电源模块完成电压转换,实现信息在规定距离内的无线通信;3、采用 8 位共阴极的数码管,显示按键的值;4、采用独立按键,完成无线通信的发送部分。2.2设计思路电路总体上分为芯片控制部分和 NRF2401 芯片部分。以 STC89C52 单片机最小系统作为核心控制电路,控制独立键盘对数码管的显示,具体显示内容及方式由软件来完成。无线通信部分由 NRF2401 芯片来实现,它由一种无线收发一体芯片和蓝牙一样,同样工作在 2.4-2.5GHz 的 ISM 波段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。具体步骤是:对 STC89C52、NRF2401 芯片进行初始化,选择 NRF2401 的工作方式;设置按键的功能,并且具体锁定到键盘的某一按键上;在发送端按下不同的按键;在接收端,查看数码管显示的信息。2.3方案选择2.3.1控制模块选择方案方案一:采用 AT89C51 单片机进行控制,由于 AT89C51 不具备 ISP 功能,因此 Atmel 公司已经停产在市面上已经不常见,况且其 ROM 只有 4K 在系统将来升级方面没有潜力。方案二:采用 STC89C52 单片机进行控制,由于其性价比高,完全满足了本作品智能化的要求,它的内部程序存储空间达到 8K,使软件设计有足够的内部使用空间并且方便日后系统升级,使用方便,抗干扰性能提高。鉴于上述对比与分析,本设计采用方案二。石家庄铁道大学四方学院毕业设计32.3.2按键选择方案方案一:采用 STC89C52 的独立键盘,其独立键盘有 4 个按键,操作简单。方案二:采用 STC89C52 的矩阵键盘,其矩阵键盘具有 16 个按键,相对独立按键操作复杂。在本设计中因为需要的按键较少,所以采用独立按键,编程简单也易于系统的实现,而 4*4 矩阵键盘,编程麻烦,就本设计而言,用不到这么多的按键,就显得繁琐复杂了。鉴于上述对比与分析,本设计采用方案一。2.3.3芯片选择方案方案一:AT89C51 是美国 ATMEL 公司生产的低电压,高性能 CMOS 型 8 位单片机,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器(CPU)和 Flash 存储单元,功能强大。其片内的 4K 程序存储器是 Flash 工艺的,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护我们的劳动成果。再者,AT89C51 目前的售价比 8031 还低,市场供应也很充足。AT89C51 可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。只要程序长度小于 4K,四个 I/O 口全部提供给用户。可用 5V 电压编程,而且擦写时间仅需 l0ms。AT89C51 芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。P0 口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。方案二:STC89C51 系列单片机的指令系统和 AT89C51 系列的完全兼容,但实际操作起来却存在很多问题:(1)AT89C51 不带 ISP 下载,要用下载器才行,STC89C52 可以用 USB 转串口下载,下载软件可以到 STC 厂家网上去下。(2)STC 单片机执行指令的速度很快,大约是 AT 的 3-30 倍,尽管快是好事,但这样一来,在 AT 上好使的程序在 STC 上不一定好用,最典型的例子就是那些对时序有严格要求的模块,用 STC 时注意得加长延时,大约是 AT 的 1030 倍就差不多,这一点自己调试就知道了。 (3)STC 单片机对工作环境的要求比较低,电压低于 5 伏时仍然正常工作,甚至3 伏到 4 伏之间都还可以工作,然而这样的环境下 AT 肯定不行了,所以当一个系统用 STC 单片机好用,但用 AT 的单片机不工作时,直接查最小系统,看单片机的供石家庄铁道大学四方学院毕业设计4电是否正常。比较这两种方案,由于学过数字电路、单片机原理、C 语言程序设计,综合考虑单片机的各部分资源和作为学生能够获得的资源,经过对比此次设计要求,选择用 STC 系列芯片完成。而且学校也提供了相应的硬件操作平台,实际操作起来比较方便。鉴于上述对比与分析,本设计采用方案二。2.4总体设计框图按照系统功能的具体要求,在保证实现其功能的然础上,尽可能降低系统成本。总体设计方案围绕上述思想,初步确定系统的方案如图 2-1 所示:P2.0 P2.1 P2.2P2.7P1.0P1.7P3.0数码管段选数码管位选数码管显示NRF2401 芯片独立按键图 2-1系统初步方案 由图 2-1 可以看出,系统有 STC89C52 模块、数码管显示模块、独立键盘模块和 NRF2401 芯片模块组成。在方案设计中,遵循简洁至上的原则,因此所有的外围模块采用串行方式与微处理器模块接口。该设计以 STC89C52 系列单片机为控制核心,实现无线遥控系统的发送接收的基本功能。在设计系统时,为了更好地采用模块化设计法,分步的设计各个单元功能模块,系统的硬件部分可以分为键盘设定、单片机控制、数码管显示、NRF2401 电路设计 4 个部分。石家庄铁道大学四方学院毕业设计5第 3 章系统硬件设计3.1概述本次设计主要由 4 个模块构成,分别是主控模块、NRF2401 芯片模块、数码管显示模块、键盘控制模块,其中主控模块是此次毕业设计的核心模块,主要是指STC89C52 芯片,它控制整个系统的运行,利用其各个口分别控制其他模块,使其他模块能够成为一个整体,实现了功能的需要;NRF2401 模块主要指 NRF2401 芯片和 1117-3.3V 电源模块,用 NRF2401 模块来实现无线传输功能,1117-3.3V 电源模块是电压转换的,用来连接 NRF2401 芯片和单片机;而数码显示模块是整个系统的辅助模块,用来显示接收到的信息;按键控制模块则是用按键来控制该无线遥控系统的发送。3.2主控模块3.2.1STC89C52芯片的简介功能特性:STC89C52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。与工业 80C51 产品指令和引脚完全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU和在系统可编程 Flash,使得 STC89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案,其芯片引脚如图 3-1 所示。STC89C52 具有以下标准功能: 8K 字节 Flash,256 字节 RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。主要性能:与 MCS-51 单片机产品兼容、8K 字节在系统可编程 Flash 存储器、1000 次擦写周期、全静态操作:0Hz33Hz 、三级加密程序存储器 、32 个可编程I/O 口线 、三个 16 位定时器/计数器八个中断源、全双工 UART 串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。石家庄铁道大学四方学院毕业设计6图 3-1STC89C52 芯片管脚说明:VCC:供电电压。GND:接地。P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 Flash 编程时,P0 口作为原码输入口,当Flash 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 Flash 编程和校验时,P1 口作为第八位地址接收。P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 Flash 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输由于外部下拉为低电平,P3 口将输出电流(ILL) ,这是由于上拉的缘故。石家庄铁道大学四方学院毕业设计7P3 口也可作为 STC89C52 的一些特殊功能口,如表 3-1 所示:表 3-1 P3 口的第二功能 引脚 功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断 0)P3.3 /INT1(外部中断 1)P3.4 T0(记时器 0 外部输入)P3.5 T1(记时器 1 外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 Flash 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 Flash 编程期间,此引脚也用于施加12V 编程电源(VPP) 。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号石家庄铁道大学四方学院毕业设计8的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.2.2主控模块电路原理单片机主程序模块通过对键盘扫描程序信号的读取,再通过对应的地址,取出数码管显示编码。在这一过程中,对数码管编码是直接赋值,如图 3-2 所示:图 3-2STC89C52 模块电路原理图3.3NRF2401 芯片模块3.3.1NRF2401功能 NRF2401 的封装及引脚排列如图 3-3 所示,其有六个控制和数据信号,分别为CSN、SCK、MISO 、MOSI 、IRQ、CE 。CSN:芯片的片选线,CSN 为低电平芯片工作 SCK:芯片控制的时钟线(SPI 时钟)MISO:芯片控制数据线(Master input slave output) MOSI:芯片控制数据线(Master output slave input) IRQ:中断信号。无线通信过程中 MCU 主要是通过 IRQ 与 NRF2401 进行通信。 CE:芯片的模式控制线。在 CSN 为低的情况下,CE 协同 NRF2401 的石家庄铁道大学四方学院毕业设计9CONFIG 寄存器共同决定 NRF2401 的状态。图 3-3NRF2401 引脚排列图 3.3.2NRF2401 电路设计本次无线发送系统的设计采用 NRF2401 无线模块是由于 NRF2401 是单片射频收发芯片,工作于 2.42.5GHzISM 频段。工作电压为 1.93.6V,有多达 125 个频道可供选择。可通过 SPI 写入数据,最高可达 10Mb/s,数据传输率最快可达2Mb/s,并且有自动应答和自动再发射功能。和上一代 NRF2401 相比,NRF2401 数据传输率更快,数据写入速度更高,内嵌的功能更完备1。在本系统中用到的 NRF2401 所需电压为 1.93.6V,而我们的单片机的电压为5V,所以为了将二者联系在一起,必须将单片机的电压进行压降,就用到了电压转换模块:3.3V 电源模块,即 1117-3.3V 电源模块。 NRF2401 是由 NORDIC2出品的,工作在 2.4GHz2.5GHz 的 ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。输出功率频道选择和协议的设置可以通过 SPI 接口进行设置。几乎可以连接到各种单片机芯片,并完成无线数据传送工作。极低的电流消耗。当工作在发射模式下发射功率为 0dBm 时电流消耗11.3mA ,接收模式时为 12.3mA,掉电模式和待机模式下电流消耗更低。无线模块与 STC89C52 单片机3相连,P2 口为单片机输出口。P2.3 口与无线模块的 CE 相连,来选择无线模块的工作方式,RX 或是 TX;P2.7 与 SCK 相连使单片机可通过程序对 SPI 时钟进行控制;P2.5 连接 MISO,控制着 SPI 数据输出;P2.2连接 MOSI,控制着 SPI 数据的输入。P2.6 连接 CSN,SPI 片选信号进行选择。P3.3石家庄铁道大学四方学院毕业设计10与 IRQ 相连,控制着可屏蔽中断脚的端口的使用。考虑到 NRF2401 的工作电压在3.3V 左右,然而 STC98C52 单片机的工作电压为 5V 左右,所以必须在输入端接上。一个稳压管,以确保 NRF2401 在安全的工作环境下进行工作。其电路原理图如图 3-4 所示: 图 3-4NRF2401 电路原理图3.3.3实际通信过程 1、发射节点 CE 与 IRQ 信号 当把节点配置为发射节点以后,将传送的数据通过SPI_Write_Buf(WRITE_REG + RX_ADDR_P0,TX_ADDRESS,TX_ADR_WIDTH) 函数4送到发送 FIFO 缓冲区。CE 为高超过 10s,缓冲区中的数据通过无线向外发出。当发送节点收到接收节点发来的 ACK(表示接收节点成功收到信号)或是达到最大发射次数,IRQ 会变为低电平,同时 CONFIG 的相关标志位会置 1。清除标志位(向 CONFIG 的标志位写 1)以后,IRQ 又变为高电平。当 CE 置高后将近10msIRQ 才置低。IRQ 置低是由于达到最大发射次数(MAX_RT=1) ,出现该情况可石家庄铁道大学四方学院毕业设计11能是由于接收节点的配置与发射节点不符(例如发射接收频率不同,或者发射接收字节不等) ,或者根本就没有接收节点(例如接收节点就根本没上电) 。 2、SCK 与 IRQ 信号(发送成功) MOSI 信号在 SCK 的下降延送入 2401 节点。(配置一个寄存器需要两组 SCK信号,填充 N 字节的 BUFFER 需要 N+1 组 SCK 信号) 。 配置完信号以后,将 CE 置高,则 2401 开始发送(或接收)数据,当发送(或接收)完成以后(或是达到最大发射次数) ,IRQ 置低。单片机根据当时的状态进行相应的处理。 单片机在 IRQ 为低时对 2401 的处理过程。可以是读 FIFO(作为接收节点时) ,写 FIFO(作为发射节点时) ,或是 Reset2401(达到最大发射次数时) 。 SCK 的最后一个信号到 IRQ 置低大概需要 1ms,说明通信成功(说明 IRQ 不是 MAX_RT 引起的) 。 3、SCK 与 IRQ 信号(发送不成功) 当 SCK 信号到 IRQ 置低的时间间隔变为将近 10ms,表明通信不成功,IRQ 是由于达到最大发射次数引起的。 4、SCK、IRQ、CE 信号 发射端 CE,接收端 SCK,发射端 IRQ 发射节点在配置完成以后,CE 置高,发射节点 FIFO 中的数据发出;接收节点成功接收到数据,IRQ 置低;接收节点自动发射 ACK(在发射和接收节点都使能ACK) ,发射节点收到 ACK 后 IRQ 置低,表示发送成功。 不同通信环境可能造成发射节点的 IRQ 与接收节点的 IRQ 产生将对的相位变化。出现这种情况主要是由于不同的通信环境造成接收端发送的 ACK 信号要重发几次才能被发送端收到。 3.4电压转换模块在本系统中用到的 NRF2401 所需电压为 3.3V,而我们的单片机的电压为 5V,所以为了将二者联系在一起,必须将单片机的电压进行压降,就用到了我们的电压转换模块:3.3V 电源模块5 ,即 1117-3.3V 电源模块。下面简单介绍 1117-3.3V 电源模块。石家庄铁道大学四方学院毕业设计123.4.1芯片简单描述1117 是一个低压差电压调节器系列。其压差在 1.2V 输出,负载电流为 800mA时为 1.2V。它与国家半导体的工业标准器件 LM1117 有相同的管脚排列。1117 有可调电压的版本,通过 2 个外部电阻可实现 1.2513.8V 输出电压范围。另外还有 5个固定电压输出(1.8V、2.5V、2.85V、3.3V 和 5V)的型号。1117 提供电流限制和热保护。电路包含 1 个齐纳调节的带隙参考电压以确保输出电压的精度在1%以内。1117 系列具有 LLP、TO-263、SOT-223、TO-220 和 TO-252 D-PAK 封装。输出端需要一个至少 10F 的钽电容来改善瞬态响应和稳定性。3.4.2主要参数1、1.8V、2.5V、2.85V、3.3V、5V 和可调电压的型号; 2、节省空间的 SOT-223 和 LLP 封装; 3、电流限制和热保护功能 输出电流可达 800mA; 4、线性调整率:0.2% (Max)。3.4.3应用范围作为三端稳压管,1117 的应用相当广泛,一般对电源效率要求不高的地方,都有可能用到:充电器、一些电路板、电池充电器、电话、数据库、LED 显示器、卫星接收器。3.5LED 灯及数码管显示模块3.5.1LED 及数码管简介本次设计的显示电路采用 LED 及数码管6显示,如图 3-6 所示。LED(Light-Emitting Diode)是一种外加电压从而流过电流并发出可见光的器件。LED 是属于电流控制器件,使用时必须加限流电阻。LED 有单个 LED 和八段 LED 之分,也有共阴和共阳两种。常用的七段显示器的结构如图(如图 3-5(a)所示) 。发光二极管的阳极连在一起的称为共阳极显示器(如图 3-5(b)所示),阴极连在一起的称为共阴极显示器(如图 3-5(c)所示) 。1 位显示器由八个发光二极管组成,其中七个发光二极管ag 控制七个笔画的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段石家庄铁道大学四方学院毕业设计13显示器能显示的字符较少,字符的开头有些失真,但控制简单,使用方便。此外,要画出电路图,首先还要搞清楚他的引脚图的分布,在了解了正确的引脚图后才能进行正确的字型段码编码。才能显示出正确的数字来。图 3-5LED 灯及数码管3.5.2LED 灯及数码管显示模块电路原理图数码管显示模块核心是共阴极数码管,而 LED 灯显示模块的核心则是共阳极数码管,通过来自单片机 I/O 口的电平高低来点亮和熄灭数码管上的发光二极管,通过单片机送来的数码管显示编码可以在数码管上显示数字和字符,使应用人员可以很容易的理解按键按下所对应的显示信息。电路原理图如图 3-7 所示:图 3-6数码管显示电路原理图石家庄铁道大学四方学院毕业设计143.6按键控制模块3.6.1按键控制模块电路原理图当按键没按下时,CPU 对应的 I/O 接口由于内部有上拉电阻,其输入为高电平;当某键被按下后,对应的 I/O 接口变为低电平7。只要在程序中判断 I/O 接口的状态,即可知道哪个键处于闭合状态。按键功能模块电路原理图如图 3-7 所示:图 3-7按键功能模块电路原理图石家庄铁道大学四方学院毕业设计15第 4 章系统软件设计在对我们所要设计的课题有了整体的了解之后,需要先建立程序框架的流程图,对整个设计划分模块,逐个模块实现其功能,最终把各个子模块合理的连接起来,构成总的程序。主程序首先要对整个系统进行初始化,然后将指令传给芯片,设置按键功能,按下按键,看其对应的按键,完成预期的功能。系统的主流程图如图 4-1 所示: 系统初始化NRF2401 配置发送模式设置按键功能按键扫描开始数据采集将采集到的数据装入发射寄存器NRF2401 发送数据NRF2401 接收数据数码管显示结束NRF2401 配置接收模式是否按下YN图 4-1系统主流程图4.1NRF2401 芯片模块设计4.1.1NRF2401 的固件编程的基本思路 对于 NRF2401 的编程8主要是通过命令(WRITE_REG,READ_REG 等等) ,控制线 CE、CSN 以及中断信号 IRQ 共同完成的。对于发射节点,如果使能 ACK 与石家庄铁道大学四方学院毕业设计16IRQ 功能,则当通信成功以后(也就是发射节点收到了接收节点送回的 ACK 信号) ,IRQ 线会置低。对于接收节点,如果使能 ACK 与 IRQ 功能,则当通信成功以后,IRQ 线会置低。1、置 CSN 为低,使能芯片,配置芯片各个参数。 (过程见 Tx 与 Rx 的配置过程)配置参数在 Power Down 状态中完成。 2、如果是 Tx 模式,填充 Tx FIFO。 3、配置完成以后,通过 CE 与 CONFIG 中的 PWR_UP 与 PRIM_RX 参数确定 2401 要切换到的状态。 Tx Mode:PWR_UP=1;PRIM_RX=0;CE=1 (保持超过 10s 就可以) ;Rx Mode:PWR_UP=1;PRIM_RX=1;CE=1; 4、IRQ 引脚会在以下三种情况变低: Tx FIFO 发完,并且收到 ACK Rx FIFO 收到数据,达到最大重发次数,将 IRQ 接到外部中断输入引脚,通过中断程序进行处理。 (1)Tx 模式初始化过程: 1、写 Tx 节点的地址 TX_ADDR2、写 Rx 节点的地址(主要是为了使能 Auto Ack)RX_ADDR_P03、使能 Auto Ack EN_AA4、使能 PIPE0 EN_RXADDR5、配置自动重发次数 SETUP_RETR6、选择通信频率 RF_CH7、配置发射参数(低噪放大器增益、发射功率、无线速率) RF_SETUP8、选择通道 0 有效数据宽带 Rx_Pw_P09、配置 2401 的基本参数以及切换工作模式 CONFIG(2)Rx 模式初始化过程: 1、写 Rx 节点的地址 RX_ADDR_P0 2、使能 AUTO ACK EN_AA 3、使能 PIPE0 EN_RXADDR4、选择通信频率 RF_CH5、选择通道 0 有效数据宽度 Rx_Pw_P06、配置发射参数(低噪放大器增益、发射功率、无线速率)RF_SETUP7、配置 2401 的基本参数以及切换工作模式 CONFIG。石家庄铁道大学四方学院毕业设计174.1.2NRF2401 的发送接收设计无线收发器 NRF2401 有一个 144bit 的 ShockBurst9配置字,该配置字规定了无线收发器的接收地址、收发频率、发射功率、无线传输速率、无线收发模式、CRC校验和的长度以及有效数据的长度。该配置字使 NRF2401 能够处理射频协议。本设计中采用了 NRF2401 的收发方式,当 NRF2401 工作在收发方式时,其采用了先进的 ShockBurst 技术。其发送端流程如图 4-2 所示,并对其发送过程简述如下:a.配置寄存器位 PRIM_RX 为低。 b.当 MCU 有数据要发送时接收节点地址 TX_ADDR 和有效数据(TX_PLD)通过 SPI 接口写入 NRF2401 发送数据的长度以字节计数从 MCU10写入 TX FIFO。当CSN 为低时数据被不断的写入发送端。发送完数据后,将通道 0 设置为接收模式来接收应答信号,其接收地址(RX_ADDR_P0)与接收端地址(TX_ADDR)相同。 c.设置 CE 为高,启动发射 CE 高电平持续时间最小为 10s。 d.如果启动了自动应答模式,自动重发计数器不等于 0,ENAA_P0=1 无线芯片立即进入接收模式,如果在有效应答时间范围内收到应答信号,则认为数据成功发送到了接收端,此时状态寄存器的 TX_DS 位置高并把数据从 TX FIFO 中清除掉,如果在设定时间范围内没有接收到应答信号,则重新发送数据,如果自动重发计数器 ARC_CNT 溢出,超过了编程设定的值,则状态寄存器的 MAX_RT 位置高,不清除 TX FIFO 中的数据,当 MAX_RT11或 TX_DS 为高电平时,IRQ 引脚产生中断IRQ 中断通过写状态寄存器来复位。如果重发次数在达到设定的最大重发次数时还没有收到应答信号的话,在 MAX_RX 中断清除之前不会重发数据包,数据包丢失计数器(PLOS_CNT)在每次产生 MAX_RT 中断后加 1, 也就是说,重发计数器ARC_CNT 计算重发数据包次数,PLOS_CNT 计算在达到最大允许重发次数时仍没有发送成功的数据包个数。 e.如果 CE 置低系统进入待机模 I,如果不设置 CE 为低,则系统会发送 TX FIFO 寄存器中下一包数据,如果 TX FIFO 寄存器为空并 CE 为高则系统进入待机模式 II。 f.如果系统在待机模式 II,当 CE 置低后系统立即进入待机模式 I。石家庄铁道大学四方学院毕业设计18 N Y Y N N Y 图 4-2发送流程图其接收端流程图如图 4-3 所示,并对其接收端的过程简述如下: a.接收模式是通过设置寄存器中 PRIM_RX 位为高来选择的,准备接收数据的通道必须被使能 EN_RXADDR 寄存器,所有工作在增强型 ShockBurstTM 模式下的数据通道的自动应答功能是由(EN_AA 寄存器)来使能的,有效数据宽度是由 开始STC89C52 的初始化NRF2401 配置模式判断键盘是否有动作?数据采集将采集到的数据装入发射寄存器启动发射发射是否完成?按键处理子程序是否处理完成?返回石家庄铁道大学四方学院毕业设计19RX_PW_Px 寄存器来设置的。接收模式由设置 CE 为高来启动。b.130s 后 NRF2401 开始检测空中信息。接收到有效的数据包后,地址匹配CRC 检验正确,数据存储在 RX_FIFO 的同时,RX_DR 位置高,并产生中断状态寄存器中 RX_P_NO 位显示数据是由哪个通道接收到的。如果使能自动确认信号 则发送确认信号。MCU 设置 CE 脚为低,进入待机模式 I 低功耗模式。 c.MCU 将数据以合适的速率通过 SPI 口将数据读出。 d.芯片准备好进入发送模式、接收模式或掉电模式。 N Y Y N Y 图 4-3接收流程图4.2键盘扫描模块设计4.2.1键盘扫描开始串行通信初始化启动接收判断是否有数据更新?读取新接收到的数据将数据装入串口缓冲器等待发送判断发送是否结束?NRF2401 配置模式返回石家庄铁道大学四方学院毕业设计20扫描法有行扫描和列扫描两种,无论采用哪种,无论采用哪种,其效果是一样的,只是在程序中的处理方法上有所区别。一般在扫描法中分两步处理按键,首先 是判断有无键按下,如行线有一个为低,则有键按下;其次,当判断有键按下时,使列线依次变低,读行线,进而判断出具体哪个键被按下。4.2.2键盘去抖由于通常的按键所用的开关是机械开关,当开关闭合、断开时并不是马上稳定地接通和断开,而是在闭合与断开瞬间均伴随有一连串的抖动。为确保 CPU 对键的一次闭合仅做一次处理,必须要在程序或硬件上进行防抖处理。为节省硬件,通常在单片机系统中,一般不采用硬件方法消除键的抖动,而是用软件消抖方法。即检测键闭合后延时 5-10ms,让前延抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认真正有键按下。当检测到按键释放后,也要给 5-10ms 的延时,待后延抖动消失后才转入该键处理程序12。以下是具有消抖功能的键程序,只有按键按下再放开后才做一次键处理。4.2.3键盘编码 对于独立式按键键盘,由于按键数目较少,可根据实际情况灵活编码。4.2.4单片机对键盘的控制方式 在单片机应用系统设计13中,为了节省硬件,无论是采用独立式键盘还是采用矩阵式键盘,单片机对键盘的控制有以下 3 种方式。i 程序控制扫描方式。这种方式只有单片机空闲时,才可调用键盘扫描子程序,查询键盘的输入状态是否改变。ii 定时扫描方式。单片机对键盘的扫描14也可采用定时扫描方式,即单片机每隔一定的时间对键盘扫描一次。在这种方式中,通常采用单片机内部的定时器,产生 10ms 的定时中断,CPU 响应定时中断请求后对键盘进行扫描,以查询键盘是否有键按下。iii 中断扫描方式。虽然采用程序查询与定时对键盘的扫描方式时的程序编制简单,但一个单片机系统在运行时的大多数时间里键盘基本是不工作的。为了进一步提高 CPU 的工作效 率,可采用中断方式。当键盘有键动作时产生中断,CPU 响应键盘中断后,执行键盘中断程序,判别键盘按下键的键号,并做相应处理。 在本论文的设计系统中采用的是程序控制扫描方式。石家庄铁道大学四方学院毕业设计21键盘工作的流程图如图 4-4 所示: N Y N Y Y N图 4-4键盘工作流程图4.3显示模块的设计在接收端显示模块15是用数码管显示的,本系统用到八位数码管,来说明所要发送的数据。数码管部分是由 P2.0 口和 P2.1 口控制的。P2.0 连到数码管,P2.0 口也叫段码,即控制数码管显示的是什么字符,P2.0 口对应高电平是有效的;P2.1 口对应的输出端分别是 Y0Y7,P2.1 口也叫位码,即控制那个数码管显示,如P2.1=0,则 Y0=0;即选通第一个数码管。数码管流程图如图 4-5 所示:扫描整个键盘延时,去抖动是否真有键按下扫描第一行扫描第二行返回键值返回是否有键按下?是否有键按下?石家庄铁道大学四方学院毕业设计22开始初始化段选位选锁存字形代码锁存位选代码延时显示数据返回图 4-5数码管显示流程图将所有位的段选线的同名端连在一起,由 P2.0 控制,各个位的共阴极分别由P2.0 控制,实现各位形成段的分时选送。将字形代码送入字形锁存器锁存;再将需要显示的位置代码送入字位锁存器锁存,通过段选与位选确定显示数据位码、段码。为防止闪烁,进行延时,最终在数码管上显示出接收到的数据。石家庄铁道大学四方学院毕业设计23第 5 章系统分析与调试本设计是在 Keil C 环境16下开发的,Keil C 软件支持 C 语言的编程及调试,运用方便,是做 C 语言毕业设计者的首选。设计的首要任务是安装和学习使用这个软件,在简单的学习和了解 Keil C 后,我们便可在此环境下开始了对无线遥控系统的设计工作。在编译完 Keil C 后,再运用 STC_ISP_V480 软件烧录到开发板上,实现实物与程序的连接。在烧录前要对 STC_ISP_V480 进行一些必要的设置。第一步:设置 MCU Type 为 STC89C52RC;第二步:打开编写好并编译的程序文件,它是以.hex 为后缀的文件;第三步:选择对应的 COM 端口, (可在我的电脑的设备管理处查看 COM 选项) ;第四步:点击 Download/下载,等提示请给 MCU 上电时,打开开发板上的开关,它就自行烧录了。Keil C 程序运行如图 5-1 所示:图 5-1keil C 运行图石家庄铁道大学四方学院毕业设计24图 5-2程序烧录运行图在完成对程序的调试及烧录之后,还需要对其进行演示,把开发板与电脑连上,设置好对应的接口,完成供电及下载。按下按键,判断是否为抖动,若不为抖动,则执行按键按下的功能。石家庄铁道大学四方学院毕业设计25第 6 章结论与展望本系统以单片机为核心部件的控制系统,利用软件编程,最终基本上实现了各项要求。虽然系统还存在一些不足,我们尝试了很多改进的方法,虽然效果不理想,但是,我们还是从中学到了很多的解决问题的方法。经过近两个月的奋斗,从确定题目,到后来查找资料,理论学习,实验编程调试,这一切都使我的理论知识和动手能力有了很大的提高。了解了单片机的硬件结构和软件编程方法,对单片机的工作方式有了很大的认知。同时,对一些外围设备比如 NRF2401 芯片、1117-3.3V 电源模块、键盘等有了一定的了解。学会了对一项工程如何设计:首先,要分析需要设计的系统要实现什么功能,需要什么器件;然后,针对设计购买相应的硬件,选用硬件时不仅要选用经济的,更重要的是如何能更精确更方便的完成系统的要求;再次,对各个硬件的软件实现要弄清楚,如何更好的实现各个硬件的协调,更好的通过主控制器件实现硬件的功能。最后,通过各种测试与调试,让设计更好的完成系统要求。 但因为我们的水平有限,此设计中也存在一定的瑕疵。譬如说按键时人体热噪声会对按键的反应效果产生影响,有待于我们去改善。由于使用的是单片机作为核心的控制元件,配合其它器件,使本控制系统具有性能良好、电路简单、成本低的特点,如果能加上滤波装置,其效果会更加的良好。6.1无线遥控系统的设计的结论本文讲述了一个完整无线遥控系统的设计,采用了低功耗、传输速度快的NRF2401 芯片实现。详细设计了遥控系统的发送接收端的具体操作步骤,编写了相应的软件。应用效果表明该设计方案是可行的。6.2无线 2401 模块与蓝牙模块的对比NRF2401 系列的无线收发 IC 和蓝牙17一样都工作在 2.4GHz 自由频段,能够在全球无线市场畅通无阻。它支持多点间通信最高传输速率超过 1Mbit/s ,相对蓝牙具有更高的传输速度。NRF2401 采用 SoC 方法设计只有两个外围元件一个晶体和一个电阻、体积小、重量轻。对于尺寸敏感的消费类产品来说,具有先天优势。与石家庄铁道大学四方学院毕业设计26蓝牙不同,NRF2401 没有复杂的通信协议,完全对用户透明,同种产品之间可以自由通信,更重要的 NRF2401 比蓝牙产品更便宜,具有成本优势。目前,市场尚未出现非要蓝牙不可的应用需求,蓝牙的市场定位能够轻易的被其他更专业的产品所取代。NRF2401 可以应用在无线抄表、汽车控制、无线键盘、无线鼠标、遥控玩具等,不必考虑兼容性问题的多种场合。事实上蓝牙的兼容性也一直没有很好的解决,针对蓝牙的演示也总在兼容性方面出问题,另外蓝牙模块的体积和重量也限制了在诸如无线耳机等方面的应用,毕竟没有人愿意在耳朵上挂个重家伙。在一般的使用场合中,NRF2401 芯片的优势比较明显,一是使用简单传输距离远,二是在价格上很有竞争力。所以对于大多数应用而言,是足够用了。6.3展望无线遥控系统属于无线通信的一部分,无线通信技术,随着科技的进步,经济的迅猛发展也变得日趋成熟,应用也越来越广泛。无线通信领域各种技术的互补性日趋鲜明。这主要表现在不同的接入技术具有不同的覆盖范围,不同的适用区域,不同的技术特点,不同的接入速率。我国政府给企业配置更多的无线频率资源,推进了不同技术相关频谱的规划和应用工作。未来的无线通信将是一个综合的一体化的解决方案。各种无线技术都将在这个一体化的网络中发挥自己的作用,找到自己的天地,从而形成集固定无线手段于一体,各种接入方式综合发挥效用。总之,无线通信中期未来的发展趋势表现为:各种无线技术互补发展,各尽
展开阅读全文