(完整版)基于51单片机的无线数据收发系统设计(带电路图和代码)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 引言
伴随着短距离、低功率无线数据传输技术的成熟,无线数据传输被越来越多地应用到新的领域。
与有线通信方式相比,无线通信以其不需铺设明线,使用便捷等一系列优点,在现代通信领域占重要地位。
但以往的无线产品存在范围和方向上的局限。
例如,一些无线产品在使用时,无法将信息反馈给控制者;还有一些无线产品不能很好地显示参数或状态信息,如果能在系统中增加一块小型液晶显示电路,产品不仅能向用户显示其状态或状态的改变,而且可以大大降低成本。
正如人们所发现的,只要建立双向无线通信-双工通信并且选择成本低的收发芯片,就会出现许多新应用。
本次设计主要是利用无线收发电路,加上单片机控制与液晶显示制成一套完整的数据收发系统。
考虑到目前市场上的一些需求,设计的主要要求是方案成本低,体积小,低功耗,集成度高,尽量无需调外部元件,传输时间短,接口简单。
nRF401是国外最新推出的单片无线收发一体芯片,它在一个20脚的芯片中包括了高频发射、高频接收、PLL合成、FSK调制、多频道切换等功能,并且外围元件少,便于设计生产,功耗极低,集成度高,是目前集成度较高的无线数传产品,它为低速率低成本的无线技术提出了解决方案。
2 无线数据收发系统
2.1 系统组成
无线数据传输系统有点对点,点对多点和多点对多点三种。
本系统由于实际应用的需要,接收器和数据终端之间的数据传输通过nRF401进行,构成点对点无线数据传输系统。
整个系统中,两数据终端之间的无线通信采用433MHz的频段作为载波频率,收发通过串口通信。
无线数据收发系统可以分为无线收发控制电路、单片机控制电路、显示电路和按键电路四部分组成,系统原理如图2-1所示:
图2-1 无线数据收发系统原理图
2.2 实现过程
当我们需要发送数据时,使用按键来输入所需发送的信息。
按键与单片机AT89S52的P3.2-P3.5口相接,单片机的 P1.0口控制信息的发送与接收,并且TXD 端与收发器输入端相连,通过TXD将数据传入收发器,收发器接收到数据后,通过FSK调制,将信号发送出去;接收端的收发器通过解调,将载波信号转换为数字信号,完成信息传输过程;收发器的输出端通过RXD端将数字信号输入到单片机;单片机将数据传送到显示器,这样就完成了一次数据发送与接收并显示的过程。
本系统采用的是半双工传送方式。
所谓半双工就是通信的双方均具有发送和接收信息的能力,信道也具有双向传输性能,但是,通信的任何一方都不能同时既发送信息又接收信息,即在指定的时刻,只能沿某一个方向传送信息。
所以上述实现过程只介绍了由一方传送到另一方的过程,而相反方向与其原理相同。
无线数据收发系统的电路图见附录3。
3 收发部分原理与设计
nRF401是一种基于短程无线通信技术的芯片。
收发部分采用nRF401芯片,其引脚DIN与单片机的TXD相连,需要发射的数字信号通过DIN输入;引脚DOUT与单片机的RXD相连,解调出来的信号经过DOUT输出进入单片机。
3.1 无线收发芯片nRF401介绍[1]
3.1.1 主要引脚功能
图3-1 nRF401引脚图
(1) 9脚及10脚分别是DIN输入数字信号和DOUT输出数字信号均为标准的逻辑电平信号,需要发射的数字信号通过DIN输入,解调出来的信号经过DOUT输出。
(2) 12脚为通道选择,FREQ =“0”为通道#1(433.92MHz),FREQ =“1”为通道#2(434.33MHz)。
(3) 18脚为电源开关,PWR_UP =“1”为工作模式,PWR_UP =“0”为待机模式。
(4) 19脚TXEN:高电平允许发送数据,低电平允许接收数据。
(5) ANT1、ANT2:天线接入端。
3.1.2 内部结构与工作原理
nRF401无线收发芯片的结构框图如图3-2所示:芯片内包含有发射功率放大器(PA)、低噪声接收放大器(LNA),晶体振荡器(OSC),锁相环(PLL),压控振荡器(VCO),混频器(MIXER)等电路[2]。
图3-2 内部结构方框图
在接收模式中,RF输入信号被低噪声放大器(LNA)放大,经由混频器(MIXER)变换,这个被变换的信号在送入解调器(DEM)之前被放大和滤波,经解调器解调,解调后的数字信号在DOUT端输出。
在发射模式中,压控振荡器(VCO)的输出信号是直接送入到功率放大器(PA),DIN端输入的数字信号被频移键控后馈送到功率放大器输出。
由于采用了晶体振荡器和PLL合成技术,频率稳定性极好。
3.1.3 特点
nRF401是一个单片RF收发芯片,工作频率为国际通用的数传频率433MHz;具有FSK调制和解调能力,抗干扰能力强,特别适合工业控制应用;采用PLL频率合成技术,频率稳定性好;最大发射功率达+10dBm,数据速率可达20kb/s;具有2个信号通道,适合需要多信道工作的特殊场合;工作电压在+3~5V之间,最低工作电压为2.7V;它还提供进一步降低电流消耗的待机模式,接收待机状态仅为8μA;仅需外接一个晶体和几个阻容、电感元件,即可构成一个完整的射频收发器。
nRF401接收机使用频移键控(FSK)调制方式,改善了噪声环境下的系统性能。
与幅移键控(ASK)方式相比,这种方式的通信范围更广,特别是在附近有类似设备工作的场合。
3.2 FSK调制[3]
本系统中的nRF401是具备FSK调制的无线收发芯片。
所谓FSK调制,就是频移键控,又称数字频率调制,是数字通信调制方式的一种,由于其方法简单、易于实现、抗噪声和抗衰落性能较强以及解调不须恢复本地载波等优点而在现代数字通信系统的低、中速数据传输中得到广泛得应用。
3.2.1 产生原理
频率键控法就是利用矩形脉冲序列控制的开关电路,对于两个不同的独立频率源进行选通。
它有两个独立的振荡器,数字基带信号控制开关,选择不同频率的高频振荡信号实现FSK调制。
图3-3为频率键控法原理框图。
1
01
0信号
FS K 21
f 2
f 1
f 2
f 调频器
模拟)
(FSK 2t e )
(t s 振荡器
)
(二进信息NRZ 倒相
振荡器
门
相加
门
2f 1
f )
(b )
(a )
(FSK 2t e
图3-3 频率键控法原理框图
以二进制数字频率调制为例,当数字信号为“1”时,正脉冲是控制门 1 接通,门 2 断开,输出频率 f1 ;数字信号为“0”时,门 1 断开,门 2 接通,输出频率 f2 。
如果产生 f1,f2 的两个震荡器是互相独立的,则输出 2FSK 信号的相位是不连续的。
震荡器的频率 f1,f2 可以直接是所需的载频,也可以是低频范围通过混频、倍频方式搬移到载频范围。
3.2.2 FSK 信号波形图
已调信号的时域表达式为
()⎩⎨
⎧="0"cos "
1"cos 212t A t A t e FSK ωω
图3-4 2FSK 信号的波形
3.3 时序参数
nRF401有3种工作模式:接收模式(RX )、发射模式(TX )和等待模式(Standby )。
工作模式可由2个引脚设定,分别是TXEN 和PWR_UP 。
因此通过单片机控制nRF401的工作模式,使其在接收、发射、等待任一种状态之间转换。
(1) TX ↔RX 之间的切换
当从RX →TX 模式时,数据输入脚(DIN )必须保持为高至少1ms 才能发送数据,时序如图3-5(a )。
当从TX →RX 模式时,数据输出脚(DOUT )至少3ms 以后有数据输出,如图3-5(b )。
(3.1)
图3-5 TX 与RX 转换的时序图
(2) Standby →RX 、Standby →TX 的切换
从待机模式到接收模式,当PWR_UP 输入设成1时,经过t SR 时间后,DOUT 脚输出数据才有效。
对nRF401来说,t SR 最长的时间是3ms ,如图(a )。
从待机模式到发射模式,所需稳定的最大时间是t ST ,如(b )。
图3-6 Standby →RX 、Standby →TX 的时序图
(3) Power Up →TX 、Power Up →RX 的切换
从上电到发射模式过程中,为了避免开机时产生干扰和辐射,在上电过程中TXEN 的输入脚必须保持为低,以便于频率合成器进入稳定工作状态。
当由上电进入发射模式时,TXEN 必须保持1ms 以后才可以往DIN 发送数据。
从上电到接收模式过程中,芯片将不会接收数据,DOUT 也不会有数据输出,直到电压稳定达到2.7V 以上,并且至少保持5ms 。
0 Std. by to TX
Std. by to RX VDD VDD PWR-UP PWR-UP
T XEN
DOUT
DIN
ms ms
2 4 2 0 4
2 0 DOUT
TXEN PWR-UP VDD TX to RX ms 4 2 0 DIN
TXEN PWR-UP VDD RX to TX RX to TX 4
(a)
ms
(b)
(a)
(b)
TXEN
图3-7 Power Up →TX 、Power Up →RX 时序图
3.4 应用电路设计
3.4.1 电路组成
nRF401无线收发芯片的应用电路[5],如图3-8所示:
22pF
C122pF
C2820pF
C315nF
C4 2.2uF
C522nF
C61nF
C7100pF
C8100pF C9 3.3pF
C105.6pF
C114M
X1
1M R14.7K
R222K
R3DN DOUT
TXEN PWR_UP
FREQ
+3V
XC11VDD 2VCC 3FILT14VCO15VCO26VSS 7VDD 8DIN 9DOUT 10
RF_PWR
11
FREQ 12VDD 13VSS 14ANT215ANT116VSS 17PWR_UP
18TXEN 19XC220nRF401
U1JQ4
*
图3-8 nRF401的433Mhz 应用电路 (1) 输入输出
当nRF401是接收模式时,ANT1和ANT2引脚端提供射频输入到低噪声放大器(LNA );当nRF401为发射模式时,从功率放大器提供射频输出到天线。
(2) PLL 环路滤波器
PLL 环路滤波器,是一个单端二阶滤波器,滤波器元件参数值:C3=820pF ,C4=15nF ,R2=4.7k Ω (3) VCO 电感
芯片的VCO 电路需要外接一个VCO 电感,这个电感是非常关键的,需要一个高质量的片式电感,Q 值大于45,最大误差±2%。
VDD=0 to RX
VDD=0 to TX
VDD PWR-UP
T XEN
DOUT
(b)
ms
6
4 2
0 ms 4
2 0 (a)
DIN
T XEN PWR-UP
VDD
(4) 晶振电路
晶体振荡器需要外接晶振,晶振的特性要求是:并联谐振频率f=4MHz ,并联等效电容C 0<5pF ,晶振等效串联电阻R ESR <150Ω,全部负载电容,包括印制板电容C L <14pF 。
负载电容C L 如下式所示:
(3.2)
式中222PCB C C C +='和111PCB C C C +=', 1PCB C 和2PCB C 是电路板的寄生电容。
(5) RF 输出功率
连接在RF_PWR 端和VSS 之间的电阻R3可以设置输出功率,最大发射功率可以调整到+10dBm 。
3.4.2 印刷电路板设计
(1) nRF401电路的PCB 板设计过程[9]
利用 Protel DXP 软件设计制作nRF401无线收发电路部分,按本论文中的图3-8所示。
① 在Protel DXP 软件中按照设计电路制作连接电路,并封装电路。
制作PCB 板,设置布局范围,加载网络表和元件库,自动布局并做好调整电路,自动布线过程,最后调整整个电路板,将其实现 3D 功能。
② 查看模拟的 PCB 板后,实现制作[10]。
首先生成报表和网络表,设置电路图中已有的仿真模型的器件。
在Protel DXP 软件中运行电路仿真。
并观察记录有关电路仿真过程中的波形图。
再进行对电路板 1:1的打印。
最后,将加工成形的 PCB 电路板打孔,并焊接元器件,实现nRF401应用电路,检测并调试其电路使之正常工作。
nRF401应用电路印刷电路板,如下图所示:
图3-9 应用电路印制电路板图
2121'
+''
⨯'=C C C C C L
(2) PCB板设计要求
印刷电路板(PCB)的设计直接关系到射频性能,为了获得较好的RF性能,PCB 设计至少需要两层板来实现,PCB分成射频电路和控制电路两部分布置。
nRF401采用PCB天线,在天线的下面没有接地层。
射频部分的电源与数字电路部分的电源分离。
为了减少分布参数的影响,在PCB应该避免长的电源走线,所有元件地线,VDD连接线必须离nRF401尽可能的近。
nRF401的电源必须经过很好的滤波,并且与数字电路供电分离,在离电源脚VDD尽可能近的地方用高性能的电容去耦。
PCB板顶层和底层最好敷铜接地,把这两层的敷铜用较多的过孔紧密相连,再将VSS脚连接到敷铜面。
所有开关信号和控制信号都不能经过PLL环路滤波器元件和VCO电感附近。
4 控制部分原理
控制电路主要组成部分为单片机AT89S52,通过AT89S52与nRF401进行串行通信,并用其控制nRF401的TXEN端,来调整收发状态。
AT89S52还控制液晶屏的显示和按键等一些工作。
4.1 AT89S52功能介绍
AT89S52是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,片内含8k bytes的可重复编程的Flash存储器和256 bytes的随机存取数据存储器(RAM),3个16位可编程定时计数器,1个全双工串行通信口,器件采用ATMEL 公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统。
AT89S52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
4.1.1 内部结构
AT89S52单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时器/计数器、并行I/O口、串行I/O口和中断系统等几大单元以及数据总线、地址总线和控制总线三大总线构成。
图4-1为单片机内部结构框图[13]。
(1) 中央处理器
中央处理器(CPU)是整个单片机的核心部件,能处理8位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
(2) 程序存储器
AT89S52共有8KB个E2PROM,用于存放用户程序,原始数据或表格。
(3) 数据存储器(RAM)
AT89S52内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
P~P P~P
图4-1内部结构框图
(4) 并行输入输出口
AT89S52共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。
(5) 串行输入输出口
AT89S52内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
(6) 定时/计数器
AT89S52有三个16位的可编程定时/计数器,以实现定时或计数功能,并以其定时或计数结果对单片机进行控制。
(7) 中断系统
AT89S52具备较完善的中断功能,有两个外中断、三个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有两级的优先级别选择。
4.1.2 引脚功能
图4-2 AT89S52芯片引脚图
(1) 电源和晶振
VCC:供电电压。
GND:接地。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
(2) I/O口
① P0口
P0口的字节地址为80H,位地址为80H~87H。
P0口既可以作为通用I/O口使用,也可以作为单片机系统的地址/数据线使用。
当作为输出口使用时,由于输出电路是漏极开路,必须外接上拉电阻才能有高电平输出。
② P1口
P1口的字节地址为90H,位地址为90H~97H。
P1口只能作为通用I/O口使用。
当作为输出口使用时,已能对外提供推拉电流负载,外电路无需再接上拉电阻;当作为输入口使用时,应先向其锁存器写入“1”,使输出驱动电路的FET截止。
③ P2口
P2口的字节地址为0A0H,位地址为0A0H~0A7H。
P2口用于为系统提供高位地址,但只作为地址线使用而不作为数据线使用。
此外,P2口也可作为通用I/O口使用。
④ P3口
P3口的字节地址为0B0H,位地址为0B0H~0B7H。
P3口可以作为通用I/O口使用,但在实际应用中它的第二功能信号更为重要。
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(外部数据存储器读选通)
(3) 4根控制线
① RST:复位信号。
保持RST脚两个机器周期以上的高电平,就可以完成CPU系统复位操作,使系统的一些单元内容回到规定值。
② /PSEN:外部程序存储器读选通信号。
在读外部ROM时,/PSEN有效(低电平),以实现外部ROM单元的读操作。
③/EA/VPP:访问程序存储器控制信号。
当/EA信号为低电平时,对ROM的读操作限定在外部程序存储器;而当/EA为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。
④ALE/PROG:地址锁存控制信号。
在系统扩展时,ALE用于控制P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。
此外由于ALE是以六分之一晶振频率的固定频率输出的正脉冲,因此也可作为外部时钟或外部定时脉冲使用。
4.2 串口通信
通信主要有两种方式:并行通信和串行通信。
并行通信是在传送数据过程中每个字节的各位同时进行传送的通信方式,而串行通信[14]是指每个字节的各位分别进行传送的通信方式。
4.2.1 串口通信方式
AT89S52串行口可设置四种工作方式,可有8位、10位和11位帧格式。
本系统中,AT89S52采用串行口工作于方式1,即每帧10位的异步通信格式:1位起始位,8位数据位(低位在前),1位停止位。
当SM0=0,SM1=1时,串行口选择方式1。
其帧格式为:
图4-3 帧格式图
4.2.2 串行通信控制寄存器
(1) 串行控制寄存器(SCON)
SCON的地址为98H,用于选择串行口的工作方式和指示串行口的工作状态。
各位含义如下:
① SM0、SM1:串行口工作方式选择位。
② SM2:多机通信选择位。
③ REN :串行口允许接收位。
‘1’时允许接收,‘0’时禁止接收。
④ TI : 串行口发送中断标志位。
在方式1中,于发送停止位之前,由硬件置位。
因此TI=1,表示帧发送结束。
⑤ RI : 串行口接收中断标志位。
在方式1中,当接收到停止位时,该位由硬件置位。
RI=1,表示帧接收结束。
(2) 串行数据缓冲器(SBUF)
串行数据缓冲器SBUF 的地址为99 H ,用来存放需发送和接收的数据,它由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器,它们占用同一地址(99H )。
当执行写SBUF 指令时,数据写入到串行口发送缓冲器中,读SBUF 就是读串行口接收缓冲器。
(3) 电源控制寄存器(PCON)
PCON 的地址为87H ,该寄存器的最高位(SMOD )是串行口波特率的倍增位,当SMOD=1时,串行口波特率加倍。
系统复位时,SMOD=0。
(4) 中断允许寄存器(IE )
在IE 中,ES 位为串行中断允许控制位。
ES=0时禁止串行中断,ES=1时允许串行中断。
4.2.3 数据发送与接收 (1) 数据发送
在不发送数据时,TXD 端保持高电平。
当执行写SBUF 的指令时,便启动一次发送过程;发送数据时,先发送一个起始位,该位通知接收端开始接收,也使发送和接收过程同步。
接下来发送8位数据,先发送低位,最后发送的是高电平的停止位。
(2) 数据接收
REN=1,CPU 允许串行口接收数据,接收数据开始于检测到RXD (P3.0)端发生一个“1”到“0”的跳变。
先接收起始位,然后依次将采样RXD 端并将数据移入移位寄存器中。
若满足条件RI=0且SM2=0或接收到停止位,则将前8位数据送入SBUF 并置位RI ;如果上述条件不满足,则数据丢失。
(3) 波特率的设定
串口方式1的波特率是可变的,由定时器T1的溢出率决定:
其中,SMOD 为PCON 寄存器最高位的值。
溢出率
定时器波特率1322T SMOD
⨯
=
溢出率为溢出周期的倒数,假定计数初值为X ,则计数溢出周期为
其中,fosc 为晶振频率。
则波特率计算公式为:
由波特率算出计数初值,以便进行定时器的初始化。
初值X 确定如下:
5 显示部分
HY-12864
[12]是使用HD61202作为列驱动器,同时使用HD61203作为行驱动器的液晶模块,共有两片HD61202和一片HD61203。
由于HD61203不与MPU 发生联系,只要提供电源就能产生行驱动信号和各种同步信号,比较简单,所以不做介绍。
HD61202是一种带有列驱动输出的液晶显示控制器,它可与行驱动器HD61203配合使用,组成液晶显示驱动控制系统。
5.1 HD61202功能简介
5.1.1 特点
(1) 内藏64×64=4096位显示RAM ,RAM 中每位数据对应LCD 屏上一个点的亮、暗状态;
(2) HD61202是列驱动器,具有64路列驱动输出; (3) HD61202的占空比为1/32--1/64。
5.1.2 引脚功能
CS1,CS2:芯片片选端,CS1和CS2低电平选通;
E :读写使能信号,在E 下降沿,数据被锁存(写)入HD61202;在E 高电平期间,数据被读出;
R/W: 读写选择信号,R/W=1为读选通,R/W=0为写选通;
RS :数据、指令选择信号,RS=1为数据操作,RS=0为写指令或读状态; DB0-DB7:数据总线;
RST :复位信号,复位信号有效时,关闭液晶显示,使显示起始行为0,RST 可跟MPU 相连,由MPU 控制;也可直接接VDD ,使之不起作用。
)256(12
X fosc -⨯=溢出周期()X fosc SMOD -⨯⨯=25612322波特率波特率⨯⨯-
=3842256SMOD
fosc X
5.2 HD61202的指令系统
(1) 显示开/关指令
当DBO=1时,LCD显示RAM中的内容;DBO=0时,关闭显示。
该指令设置了对应液晶屏最上一行的显示RAM的行号,有规律的改变显示起始行,可以使LCD实现显示滚屏的效果。
显示RAM共64行,分8页,每页8行。
(4) 地址(Y Address)设置指令
设置了页地址和列地址,就唯一确定了显示RAM中的一个单元,这样MPU就可以用读、写指令读出该单元中的内容或向该单元写进一个字节数据。
该指令用来查询HD61202的状态,各参量含义如下:
BUSY: 1-内部在工作 0-正常状态
ON/OFF:1-显示关闭 0-显示打开
REST: 1-复位状态 0-正常状态
在BUSY和REST状态时,除读状态指令外,其它指令均不对HD61202产生作用。
在对HD61202操作之前要查询BUSY状态,以确定是否可以对HD61202进行操作。
(7) 读数据指令
读、写数据指令每执行完一次读、写操作,列地址就自动增1,必须注意进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据。
5.3 显示电路
在AT89S52的P3.6和P3.7口接入四-二输入与非门芯片74LS00来控制显示器的读写使能信号端;显示器的8根数据总线接在AT89S52的P0口,实现数据传输;在显示器的V0口接一电位器,由于液晶的对比度会随着温度的变化而相应变化,所以加电位器可以调节液晶的对比度。
图5-1 收发系统显示电路
6 软件设计
无线数据传输主要由无线数据收发器、AT89S52单片机、显示器和按键组成,收发器与AT89S52间用串行口通信。
整个系统的各个部分都是服务于无线数据传输这个目的。
所以,在整个系统的软件设计中,无线数据的传输是最为重要的。
这里使用汇编语言编写单片机控制程序。
控制系统CPU采用AT89S52单片机,nRF401芯片发射/接收模式由程序控制,当有控制发送的按键按下时,nRF401为发射状态,其余的时候nRF401始终处于接收状态。
DOUT、DIN分别和单片机的RXD和TXD端相连,作为发射和接收时的数据传输。
TXEN和P1.0端相连,由单片机的P1.0端对其发射还是接收进行程序控制。
6.1 主程序流程图
当单片机上电开始执行之后,对液晶和单片机寄存器进行初始化,同时设置串口控制字及波特率,接着进入键盘扫描程序和接收程序。
若有某个按键按下,则执行相应的键盘子程序;若单片机判断接收到数据,则开始进行CRC校验[14],如果数据正确就通过液晶显示传送的信息。
主程序流程图见图6-1。
图6-1 主程序流程图
6.2 液晶显示子程序流程图
液晶显示模块HY-12864内有一个忙标志位ACC.7,它反映了控制器HD61202内部运行时序状态。
当ACC.7=1时,表示内部操作正在运行,不能接受外部数据;当ACC.7=0时,表示已准备好接收,可以随时接收单片机发来的数据和命令,这是HY-12864向单片机发出的唯一联络信号。
液晶显示子程序流程图见图6-2。
图6-2 液晶显示子程序流程图
6.3 数据收发子程序流程图
单片机AT89S52控制nRF401的收发状态、完成编解码等工作。
nRF401芯片“PWR-UP”端接高电平,“FREQ”端接低电平,分别表示系统在上电后始终处于“正常工作模式”和“工作频道为通道1”。
单片机AT89S52控制nRF401,使其一直为接收状态。
当按键4按下时,AT89S52接收到输入的低电平信号,从脚送出高电平至P1.0脚,使nRF401进入发射状态。
数据收发子程序流程图见图6-3。
图6-3 数据收发子程序流程图
6.4 键盘子程序流程图
下图为键盘子程序流程图,此流程图的含义是:当有按键按下时,程序开始进行判断是哪个按键按下,判断完毕后则转向相应的键处理子程序,进行字符的输入或命令的处理,并通过按键4把要发送的数据进行CRC校验编码,再把编码后的数据发送出去。
图6-4 键盘子程序流程图
7 测试结果及分析
7.1 硬件电路测试
本设计中将控制模块和无线射频模式分开设计,控制模块通过一只单排7脚的接口控制射频模块,测试的步骤如下:
(1) 将控制模块和无线射频模块焊好,检查确认无虚焊、粘焊;
(2) 先对控制模块上电进行测试,主要是测试控制模块的串口能否收发数据,测试方法是将控制模块的串口与PC机的串口通过RS232标准相连接,并将串口的程序写到AT89S52上,然后用串口测试软件测试,如果串口能收发数据,便可开始对无线射频模块进行测试;
(3) 将无线收发模块与控制模块连接起来,上电进行测试,按照程序,上电时处于接收状态,看是否与程序吻合;
(4) 确认射频模块上电处于接收状态后,可测试nRF401的第4管脚是否为1.1V左右,如果是,则说明VCO电感设计合理,否则要重新设计PCB板,此外,nRF401在没有数据接收时,仍会自动从DOUT发送随机数据,使用万用表进行测试时,该引脚电压应为2.5V左右。
7.2 系统测试
7.2.1 测试方法
(1) 首先让电路正常工作,把接收器放在一定的位置,将发射器从远处逐渐靠近接收器,可测到传送的最远距离。
(2) 在距离接收器一定的距离时,间隔一段时间就发送数据信息,可测出接收器的接收灵敏度。
(3) 比较发射器和接收器的数据显示是否相同,以测试传输数据的正确性。
7.2.2 功能测试及分析
由于无线通信环境的不确定性,各种环境下的传输效果是不尽相同的,路径损耗、建筑物影响、人体影响、外界干扰、多径现象和周围环境的吸收等都会对传输的距离产生一定的影响,只能在一个给定的条件下进行测试和评估。
因此,分别选择了不同的试验场地来进行实验。
(1) 当建筑物很多的时候,数传模块两端均离地面 1.5m(2.0m)高时,能够达到的最佳通信距离为5~10m;接收灵敏度为2~3秒;当发送端发送MESSAGE时,接收端能准确显示MESSAGE这段英文字符。
(2) 在空旷场地,数传模块两端均离地面1.5m高时,最远的通信距离能够达到50m;接收灵敏度为3~5秒;当发送端发送字母A时,接收端能准确显示。
但测试中的通信距离与数据手册上的说明相差较大,原因可能源于调谐天线。
在实验中发现,当有人员走动或其它信号出现的时候,通信的距离会变得不稳定,这是由于天线是一个辐射器件,任何环境的改变都会影响天线的性能。