nRF401单片射频集成电路是Nordic公司研制的单片UHF单片射频集成电路,内部集成了性能优异的镜像频率抑制电路,工作在433MHzISM(Industrial,Scientific and Medical)频段。它采用FSK调制解调技术,抗干扰能力强,并采用PLL频率合成技术,频率稳定性好,发射功率最大可达10dBm,接收灵敏度最大为-105dBm,数据传输速率可达20Kbps,上作电压在+3--5V之间。nRF401单片射频集成电路所需外围元件较少,并可自接连接单片机串口。因其成本低,一致性好等特点,本设计采用nRF401单片射频集成电路来设计无线数据传输模块。
在接收模式中,nRF401单片射频集成电路被配置成传统的外差式接收机,所接收的射频调制的数字信号被低噪声放大器放大,经混频器变换成中频,放大、滤波后进人解调器,解调后变换成数字信号输出(DOUT端)。在发射模式中,数字信号经DIN端输人,经锁相环和压控振荡器处理后进人到发射功率放大器射频输出。南于采用了晶体振荡和PLL合成技木,频率稳定性极好,采用FSK调制和解调,抗干扰能力强。本文在设计的大前提下,简化系统设计,在接收端,将数据采集的部分简化为键盘的输人数据,并对数据进行简化编码,通过单片机的控制将数据发送到NRF401,再通过PCB天线将数据发送出去,而接收端将数据接收之后单片机将数据传送到ISD1420芯片上,发出声音,此部分是简化原来的电脑接收数据分析的部分。如需对系统扩充,只需在原电路的基础上加入相应的外围电路即可实现更高级的功能。作为数字控制通信系统,整个无线数据采集系统的设计分为硬件设计和软件设计两个方面。
1 系统的硬件设计
系统的硬件设计围绕发挥处理器功能进行,主要是外围通信控制电路设计问题。
1.1 系统总体工作原理及硬件模块化设计
系统的工作原理是:首先用按键输人信号,送到单片机进行初步处理,对要传输的信号进行编码,然后利用NRF401无线数据传输芯片通过无线方式将有效数据发送给接收端,接收端在接收到有效数据后用单片机并行口将数据送入ISD1420,继而ISD1420通过对信号的处理发出声音。系统为了满足安全可靠,有足够抗干扰能力,经济合理,方便使用的设计要求,采用了模块化设计思想。采用模块化设计可以使系统结构清晰,不仅容易设计也容易管理和修改,方便系统测试和调试,有助于提高系统的可靠性和可修改性,同时,模块化设计也有助于系统开发的组织管理。基于上述模块化思想,现将系统分为以下3个模块:
1)数据采集编码模块;
2)无线通信模块;
3)ISD语音芯片发音模块。
1.2 数据采集编码模块部分的硬件设计
数据采集编码模块在单片机的控制下主要完成对键盘输出的现场信号进行接收编码,然后通过串口发送到NRF401芯片上发射。
1.2.1 单片机的选取
本测控系统对数据采集模块控制以及与NRF401收发芯片的接口选用单片机AT89C51完成。Atmel公司的AT89C51单片机,是一种低功耗、高性能的、片内含有4KB Flash ROM的8位CMOS单片机,其输出指令与MCS-51兼容,工作电压范围为2.7-6V,8位数据总线。
1.2.2 串行口应用
系统中,AT89C51串行口工作于方式3,即一帧11位的异步通信格式:1位起始位,8位数据位“低位在前”,1位可编程数据位,1位停止位。发送前,由软件设置第9位数据(TB8)作奇偶校验位,将要发送的数据写入SBUF,启动发送过程。串行口能自动把TB8取出,装入到第9位数据的位置,再逐一发送出去。接收时,置SCON中的REN为1,允许接收。当检测到RXD (P3.0)端有“1”到“0”的跳变(起始位)时,开始接收9位数据,送人移位寄存器((9位)。当满足RI=0且SM2=0或接收到的9位数据为1时,前8位数据送入SBUF,第9位数据送入SCON中的RB8}置RI为1;否则,这次接收无效,不置位RI。串口方式3的波特率由定时器T1的溢出率与SMOD值同时决定:方式3波特率=T1溢出率//n,当SMOD=O时,n=32;SMOD=1时,n=16。T1溢出率取决于T1的计数速率(计数速率二fosc/12)和 预置的初值。
定时器T1用作波特率发生器,工作于模式2(自动重装初值),设TH1和TL1定时计数初值为x,则每过“28-X”个机器周期,T1就会发生一次溢出。
1.2.3 无线通信模块的硬件设计
系统的无线通信模块是用单片机控制无线收发芯片NRF401进行无线数据传输,NRF401是一个为433MHz的ISM频段设计的真正单片UHF无线收发芯片,它采用了FSK调制解调技术。NRF401最高工作速率能达到20k,发射功率可以调整,最大发射功率是10dBm。其性能显著,特点是所需要的外围器件少而且设计比较方便,在该芯片内集成了高频发射、高频接收、PLL合成、FSK调制/解调、参量放大、功率放大、频道切换等功能。本系统的无线通信模块在单片机的控制下分为发送和接收两部分,其中发送部分是由单片机在采得数据以后通过单片机串行口送到模块由模块发送,而接收部分是由模块接收到数据以后,由单片机控制通过通用串行总线发送给计算机。
1.2.4 天线的设计
天线接口设计为差分天线,以便于使用低成本的PCB天线,NRF401还具有待机模式,这样可以更好的省电和高效。NRF401的工作电压范围可以在2.7-5V。
天线对无线传输设备的性能有着很大的影响,系统中,ANTI和ANT2是NRF401接收时的输入,以及发送时功率输出器的输出。连接到nRF401的天线是以差分的方式连接的,在天线端的负载阻抗是400Ω。
图1为应用差分天线方式的设计图。功率放大器的输出是两个开路输出三极管,配置成差分配对方式,功率放大器的VDD必须通过集电极负载。由于采用差分环型天线,VDD必须通过环型开线的中心输人。调整图中RF偏压电阻R3可以调节输出发射功率,其最大可达10dbm。
1.2.5 发射和接收频率的问题
为了获得最好的RF性能,发射和接收频率都不能超过70*10-6(30kHz),这就要求晶体的稳定度不低于±35*10-6,频率的差异将会导致接收机灵敏度产生12dB/频程的损失。例如一个20 *10-6 的频率精度和在温度范围内±25*10-6 稳定度的晶体,最大的频率误差将会超过±45*10-6。如果发射机和接收机工作在不同的温度环境,在最差的情况下两边的误差将会超过90*10-6,其结果将会导致接收机灵敏度下降将近5dB。
1.2.6 NRF401外围电路设计
本系统的无线通信模块在单片机的控制下分为与发送和接收两部分,其中发送部分是由单片机在采得数据以后通过单片机串行口送到模块由模块发送,而接收部分是由模块接收到数据以后,由单片机控制通过通用串行总线发送给计算机。这两部分的连接示意图如图2所示。 图2无线通信模块发送部分示意图无线接收模块部分NRF401和AT89C51的连线与发射端是相同的。
1.2.7 ISD语音芯片发音模块
ISD1420系列内置了若干操作模式,可用最少的外围器件实现最多的功能。操作模式也由地址端控制;当A7和A6都为1时,其它地址端置高就选择某个(或某几个)模式。因为操作模式和直接寻址互相排斥。操作模式可由微控制器,也可由硬件实现。使用操作模式有两点注意:1)所有操作最初都是从0地址,即存储空间的起始端开始。后续操作根据所选用的模式可从其它的地址开始。此外,A4模式中,当电路由录转为放时地址计数器复位为0,而由放转为录则不复位。2)当控制信号(/PLAYL、/PLAYE或/REC)变低,同时A6和A7为高时,执行操作模式。这种操作模式一直有效,除非控制信号再次由高变低,芯片重新锁存当前的地址/模式端电平,然后执行相应操作见表1。
A0(信息检索)一快速跳过信息而不必知道其确切的地址。控制端每输入一个低脉冲,内部地址计数器就跳到下一条信息。此模式仅用于放音,通常与A4同时使用A1(EOM删除),使分段信息变为一条信息,仅在信息最后留一个EOM标志。此模式完成后,录入的所有信息就作为一条连续的信息。A3(信息循环)一循环重放位于存储空间起始处的那条信息。一条信息可以完全占满存储空间,那么循环就从头至尾进行。给/PLAYE发低脉冲后循环开始,给/PLAYL发低脉冲后循环结束。A4(连续寻址)一正常操作中,重放遇到WOM标志时,地址计数器会复位。A4模式禁止地址计数器复位,使得信息可连续录入或重放。当芯片既非录音又非放音时,将A4短暂拉低可使地址计数器复位为0。A2、A5末用。
放音时,根据需播放的语音内容,找到相应的语音段起始地址,并通过口线送出。再将P/R端设为高电平,PD端设为低电平,并让/CE端产生一负脉冲启动放音,这时单片机只需等待ISD1420的信息结束信号,即/EOM 的产生。信号为一负脉冲,在负脉冲的上升沿,该段语音才播放结束,所以单片机必须要检测到/EOM 的上升沿才能播放第二段,否则播放的语音就不连续,而且会产生啪啪声,这一点在编制软件时一定要注意。下面给出了录取5段语音信息的录音程序和对这5段语音进行组合播放的源程序(均可直接拷贝使用)。播放时,可根据实际情况组合回放。实际需要时,可对该程序进行扩充。
2 系统的软件设计
本系统的软件设计分为两大部分,即无线发射部分控制软件设计和无线接收部分控制软件设计。
2.1 无线发射部分控制软件设计。
系统无线发射部分控制软件设计包括数据采集、数据编码、单片机串行传输、软件监控4个软件设计部分。其中数据采集的软件设计是控制转换现场信号为数字信号并进行数据的初步处理。数据编码软件设计是为了降低数据传输误码率,采用CRC循环编码设计。单片机串行传输软件设计是实现单片机串口对NRF401芯片传输数据。
2.2 数据采集的软件设计
数据采集的软件设计实现的功能主要是键盘数据采集到单片机的数据进行初步处理。囚为除了键盘输入,没有其他输入外设,所以可以采用扫描的方法进行键盘信号输入,接线方法选择线反转法。接收方的最终结果是在接收端接收到数据后发出相应的声音,类似与按1键就发音:“当前按键1”,因为发音芯片是按照发音段将发音“1”,“2”, ,“当前按键”分别储存到ISD1420芯片当中去的,所以要把相应的发音数据段段号与发射按键编码对应起来,在不考虑无线信道与编码的相匹配的前提下,将发音的数据段段号直接赋值成为按键的编码大大减轻了发送端与接收端的软件设计难度。
单片机串行传输的软件设计因为在NRF401没有接收发射数据的时候,从这块芯片上面发射的是一些随机的数据,所以在发射的过程中在软件设计中加入了起始帧,目的是来告知接收芯片什么时候接收到的是真正的按键数据。经过查询资料可知,数据帧中出现ffh,aah,55h的几率较低,故数据帧加入大小为3帧的起始帧,分别是ffh,aah,55h。最终发射程序(略)。
2.3 无线接收部分控制软件设计
无线接收部分控制软件设计包括单片机串行接收软件设计、单片机与计算机通信软件设计、计算机应用软件设计3部分。
2.3.1 单片机串行接收的软件设计
单片机串行接收软件设计是控制单片机串口接收无线接收模块收到的数据,然后将该数据传输到单片机内部处理。这部分软件设计开始时先将RI清零,配置NRF401芯片为接收状态,然后再等待数据的接收,在接收时先接收数据块长度字节,然后再一帧帧地接收,数据接收后进行数据校验,如果数据校验错误,就进行错误处理,否则程序返回。
2.3.2 单片机与计算机串口通信软件设计
这部分程序完成单片机与计算机数据的通信,单片机设置波特率为9600bit,8位数据位,1位起始位。采用中断方式传送和接收数据。T1设置为工作方式2,串行口设置为工作方式3。程序开始时要先保护现场以免中断程序影响系统正在使用的寄存器值,然后设置串口通信的波特率以及数据存储指针,这时就等待中断准备传送数据到计算机,数据发送也是先发送数据块长度,然后再发送数据,当整个数据发送完毕则中断返回,继续执行系统的其它程序。
2.3.3 最终接收数据发声程序
在数据接收时先验证是否是起始的那3帧,如果是,再将其中的数据提取出来,发送到ISD1420芯片上控制发声。接收端程序(略)。