基于NRF24Z1的数字无线话筒设计

更新时间:2023-10-17 11:28:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第 I 页

基于nRF24Z1的数字无线话筒设计

摘 要

无线数字音频传输技术是指利用无线电波作为数据传输的媒介,一切以数字化音频为处理对象的操作技术。它是利用将语音信息调制到载波频率上发射,实现发送端与接收端的通信。其涉及到模拟电子技术、信息技术、以及网络技术等多个学科领域。也通过无线音频传输系统,简单控制远端设备的运行情况以及实现两端之间的语音传输。随着无线音频技术越来越成熟,越来越多的公共场合如大型会议室、教室等程系统采用了此技术。与有线音频传输相比,无线音频传输具有成本低、安装简便、便于移动等优点。

本次所设计的数字无线话筒以低成本、设计结构简单为目标,对目前的射频芯片、音频芯片和微控制器进行筛选比较,以低功耗为首选,给出基于nRF24Z1数字无线话筒的硬件结构及软件实现方法。

关键词:nRF24Z1 ,短距离通信,无线传输,数字音频

第 II 页

design of the digital wireless microphones Based on nRF24Z1

Author:Wu Zong Ling Tutor:Wang Zhao Ping

Abstract

Wireless digital audio transmission technology is the use of radio as a medium for data transmission, all in digital audio technology to deal with object manipulation. It is the use of the voice message to the carrier frequency modulated transmitter, the transmitter and receiver to achieve communication. It relates to the analog electronics, information technology, and network technology and other disciplines. Also through wireless audio transmission system, a simple remote control operation of devices and the realization of voice transmission between the two ends. As wireless audio technology becomes more mature, more and more public places such as large meeting rooms, classrooms and other process system using this technique. Compared with wired audio transmission, wireless audio transmission with low cost, easy to install, easy to move and so on.

The digital wireless microphone designed is for low cost, simple design goal of the current radio frequency chips, audio chips and microcontrollers were screened compared to the preferred low power consumption is given based on digital wireless microphone hardware nRF24Z1 Structure and software implementation. .

Keywords: nRF24Z1 Short-distance communication Wireless Digital Audio

第 III 页

目 录

1.绪 论........................................................................................................................... 1

1.1 研究课题的现状与前景................................................................................. 1 1.2 此次课题研究的内容..................................................................................... 1 2.短距离无线语音传输系统简介................................................................................. 3

2.1 短距离无线语音传输系统原理..................................................................... 3 2.2研究短距离无线语音传输的意义.................................................................. 3 3.NRF24Z1芯片功能结构 ........................................................................................... 4

3.1无线音频系统.................................................................................................. 4 3.2音频发射器(ATX) ..................................................................................... 4

3.2.1音频输入接口....................................................................................... 5 3.2.2控制接口............................................................................................... 5 3.2.3直接数据输入引脚............................................................................... 5 3.2.4中断输出............................................................................................... 6 3.3 音频接收器(ARX) .................................................................................... 6

3.3.1音频输出接口....................................................................................... 7 3.3.2音频控制接口....................................................................................... 7 3.4 nRF24Z1音频数据传输射频协议 ................................................................. 7 4 基于NRF24Z1数字无线话筒设计 ....................................................................... 10

4.1数字无线话筒系统分析及设计.................................................................... 10 4.2 发射模块设计............................................................................................... 10

4.2.1 发射模块电路设计............................................................................ 10 4.2.2 发射模块主程序设计........................................................................ 12 4.2.3 发射模块部分控制程序设计............................................................ 12 4.3 接收模块设计............................................................................................... 13

4.3.1 接收模块电路设计............................................................................ 13

第 IV 页

4.3.2 接收模块主程序设计........................................................................ 14 4.3.3 接收模块控制部分设计.................................................................... 15 4.4系统调试及性能测试.................................................................................... 15

4.4.1硬件调试............................................................................................. 15 4.4.2软件调试............................................................................................. 16 4.4.3性能测试............................................................................................. 16 4.4.4测试结果............................................................................................. 16

结 论............................................................................................................................ 18 致 谢............................................................................................................................ 19 参考文献...................................................................................................................... 19 附录.............................................................................................................................. 20

附录A.................................................................................................................. 21 附录B .................................................................................................................. 26

第 1 页

1.绪 论

随着计算机网络通信技术的迅猛发展,无线音频传输技术应运而生,其应用也越来越被各行各业所接受。其设备安装方便、灵活性强、性价比高等特性使得更多行业的系统采用无线传输方式,建立发送端与接收端之间的连接。

目前无线音频传输系统己经引起了学术界和工业界的高度重视,成为计算机科学领域、工业通信领域一个活跃的研究分支,被认为是对最近几年内产生巨大影响力的技术之一。无线音频传输系统具有双重功效,既能实现语音传输又能实现简单的控制作业,而且具有无线传输的可移动性,无线连接,远程传输等其自身的优势。随之应运而生的无线音频传输设备有很多,而且技术已经比较成熟,相信在未来几年内,在短距离无线音频传输领域有很大发展空间。 1.1 研究课题的现状与前景

伴随着无线通信技术的飞速发展,生活当中人们对无线音频传输技术的要求越来越高。人们注意到在同一幢楼内或在相距咫尺的地方,同样也需要无线通信。而短距离无线音频传输技术可以满足人们对低价位、低功耗、可替代电缆的无线数据和语音链路的需求。

目前,无线音频传输技术以其快捷方便,可以移动等特性,也受到人们的高度关注,得以快速发展。当然,人们对于它的要求也越来越高,积极跟踪分析各种无线通信技术具有紧迫的现实意义,本课题就是在这样的背景下提出来的。短距离无线音频通信系统彻底摆脱了电线的束缚,在指挥调度、安全保卫、多媒体教学、休闲娱乐等诸多领域有着广阔的市场前景。此系统的特点是其综合了语音处理和无线通信等技术,体积小,功耗低,有着较高的语音质量和较低的成本以及较远的传输距离。 1.2 此次课题研究的内容

当前,随着居住和办公环境空间的增长,音频的布线在大型会议室、教室等场所越来越难以实现,成本越来越高,迫切需要无线传输高质量的音频。

所以本系统使用了专用的ISM音频无线收发芯片 nRF24Z1。nRF24Z1提供了标准的工业音频接口以及数字音频接口,使得音频的传输成本大大降低,而且

第 2 页

通信速率高达4Mbps,实际数据传输率为1.536Mbps,保证了48kbps采样率16bit采样的音频无损、抗干扰传输,最大限度的抑制了噪声的干扰。实际上nRF24Z1还提供了控制信息(如音量、平衡、显示等)双向传输的功能,是一个实用、性能、成本相结合的数字音频芯片。

本次课题就是利用nRF24Z1芯片设计数字无线话筒,实现芯片各种结构功能,进而实现短距离的无线数据传输。在设计过程中,研究了短距离无线传输的工作原理及实现方法、对方案论述的可行性,详细介绍了所设计数字无线话筒中各模块的组成、原理及具体的电路及软件流程,最后完成了对数字无线话筒的硬件和软件设计、对软硬件的调试和系统性能测试。

第 3 页

2.短距离无线语音传输系统简介

2.1 短距离无线语音传输系统原理

短距离无线传输系统系统总体可以分为CPU主控模块、音频 CODEC模块、无线射频模块和AES数字音频接收模块四部分。工作在数据发送状态时,先由拾音设备将模拟音频信号送给设计应用芯片,进行A/D转换,经48k采样,16bit量化后得到数据率为768kbps的单声道高保真语音信号数据流。数据流再经由CPU串口高速传送到其内部 RAM,由CPU进行以下一系列处理:首先将数据打包、加帧头、加校验码和填充数据以构成传输帧,而后将数据发送至无线传输模块,以1Mbps的数据率,在 2.4GHz的频段上以GFSK方式调制后进行无线发射。工作在数据接收状态时,CPU首先从无线传输模块接收到的数据流中寻找帧头,在固定帧间隔处连续找到三次帧头来确认双方建立帧同步。同步确立后CPU把数据和帧同步信号传送给内部完成去帧头、解包和校验的工作。最终把接收到的数据流发给主芯片,回放出清晰的语音。 2.2研究短距离无线语音传输的意义

当前,固定区域以及模糊不清的语音通信通信已经不能满足人们日常生活的需求,而是希望能在指定的区域内随时随地进行清晰的语音交流,特别是对短距离内的高质量的无线语音通信更为迫切。在这种状况下,对短距离无线音频传输技术进行研究更能体现其研究的价值。建立无线音频传输系统的模型对其进行分析,给出系统的结构流程图,在此基础上进行开发设计相对应的无线语音产品具有很高的市场潜力和发展空间。鉴于这种情况,对目前的射频芯片、音频芯片和微控制器进行筛选比较,以低功耗为首选。以低成本、结构设计简单为目标,选择合适的芯片,给出最佳的设计方案。

本课题研究基于nRF24Z1射频芯片为核心的数字音频传输系统的硬件、软件构是研究短距离无线传输实际意义的体现。

第 4 页

3.nRF24Z1芯片功能结构

3.1无线音频系统

nRF24Z1能够以高达1.54Mbit/s的速率处理音频流,音频数据的输入/输出、射频协议和射频连接等工作由片内的硬件完成。图3.1所示为使用nRF24Z1的无线音频系统的结构框图,在该系统中,只需使用简单的或低速的微控制器即可完成系统的控制,微控制器通常通过串行口或并行口控制一些简单的任务,如音量调节等。

图3.1 使用nRF24Z1的无线音频系统框图

由图3.1可见,音频数据的传输是由一对nRF24Z1实现的。nRF24Z1的初始配置由微控制器通过SPI或I2S接口进行控制。在接收端,外围电路DAC的控制可以由发送端的nRF24Z1通过控制信道进行控制。如果设计中没有使用微控制器,则配置数据可以通过片外的EEPROM/FLASH存储器进行加载。

在无线音频处理系统中,音频数据的流向总是从声源(如Mic)到声宿(如扬声器)。本系统中,在声源端使用nRF24Z1进行音频数据的发送,在声宿端使用nRF24Z1进行音频数据的接收。鉴于上述的收发差异性,nRF24Z1可能通过MODE引脚设置其工作于发射器模式或接收器模式,这两种模式下,nRF24Z1片内工作的模块和I/O引脚功能都有很大差异。 3.2音频发射器(ATX)

nRF24Z1在射频连接的音源一方使用时,MODE引脚接高电平,使nRF24Z1成为一个ATX,其片内功能结构如图3.2所示。音频数据输入由I2S接

第 5 页

图3.2 nRF24Z1作为ATX时片内功能结构框图

口或S/PDIF接担。 3.2.1音频输入接口

I2S接口由CLK、DATA和WS三个引脚组成外接A/D转换器,采样支持32、44.1、48ksps,16或24位格式的音频数据,MCLK引脚提供基础采样频率的256倍作为A/D的系统时钟频率;S/PDIF接口只有 SPDIO一个引脚,采样支持32、44.1、48ksps,16位、20位或24位格式的音频数据。 3.2.2控制接口

作为ATX时,一般外接MCU控制nRF24Z1,ATX与ARX的配置和控制数据可以通过I2C从接口或SPI从接口提供,并可从ARX读回状态信息。SSEL引脚为低电平时,选用SPI从接口(SCSN、SSCK、SMISO和SMOSI);SSEL引脚为高电平时,选用I2C从接口(SSCL、SSDA)。如果不外接MCU,也可使用SPI主接口(MCSN、MMISO、MMOSI和MSCK)或 I2C主接口(MSDA、MSCL)外挂EEPROM/Flash存储器,nRF24Z1在上电或复位时,可从存储器读取默认的配置数据。

3.2.3直接数据输入引脚

第 6 页

ATX有通用输入引脚 DD0、DD1、DD2(当SSEL=1时)。此时,ARX的DO2、DO1和DO0三个引脚的信号为DD2、DD1和DD0引脚的镜像,使ARX在没有MCU时也能实现一些控制(如音量开关等)。 3.2.4中断输出

当nRF24Z1检测到没有音频输入或射频连接断开时,其可以通过 IRQ引脚给微控制器提供中断信号,此时,微控制器可以通过控制接口读取nRF24Z1的状态信息。

3.3 音频接收器(ARX)

nRF24Z1在射频连接的音源一方使用时,MODE引脚接低电平,使nRF24Z1成为一个ARX,其片内功能结构如图3.3所示。此时,I2S接口或S/PDIF接口用作音频数据或其他实时数据的输出接口。射频连接建立后,用户可以通过音频发射器控制音频接收器的SPI接口或标准2线接口。这个特性使音频发射器能够对音频接收器的DAC和放大器实现遥控。射频连接建立后,通过ATX控制ARX的SPI主接口或I2C主接口,从而对ARX的D/A转换器和音频放大器实现射频遥控。而且ARX还监视输入DI[3:0]引脚,如有变化,就把引脚的变化送回ATX,或者使ARX从睡眠状态中回到工作状态。ARX的DO[2:0]受ATX的DI [2:0]控制,可驱动LED指示灯或者其他标准的CMOS器件;而DO3可编程为8位分辨率的PWM输出。

图3.3 nRF24Z1作为音频接收器时的功能结构图

3.3.1音频输出接口

第 7 页

音频接收器的IS接口支持8、11.025、12、16、22.05、24、32和48kHz多种接口速率,音频数据为16位格式。在音频接收器模式下,MCLK引脚给外部DAC(数模转换器)256Hz的输出频率。音频接收器的S/PDIF接口支持32、44.1和48kHz三种采样速率,音频数据可以采用16位或24位三种格式。 3.3.2音频控制接口

可以在SPI接口外挂EEPROM/FLASH存储器,nRF24Z1在上电或复位时,从存储器读取默认的配置数据。如果没有外挂存储器,芯片将使用其自身的默认值。在音频接收器的配置中,SPI接口可以工作于1MHz或0.5MHz的速率。当音频接收器与音频发射器建立了射频连接之后,用户可以通过音频发射器来控制音频接收器的SPI接口。

在重新启动时,音频接收器的SPI接口工作于100kHz的速率,之后,用户可以通过音频发射器配置其工作于100kHz、400kHz或1MHz。 3.4 nRF24Z1音频数据传输射频协议

nRF24Z1芯片的射频工作方式是采用GFSK(高斯频率偏移键控),而且为保证通信低误码率,芯片还采用了QoS(服务质量)策略。该策略包括双向通信机制和应答策略(时分双工)、数据完整性策略和CRC检错、射频搜索连接和掉线搜索重连接策略、自适应跳频策略。

(1) 双向通信机制和应答策略

双向通信机制和应答策略如图3.4所示。ATX到ARX的通信为实时和重发的音频信道,而ARX与ATX的双向通信则是控制信道。控制信道的信息包括确认信息、寄存器信息以及引脚状态信息等。

2

图3.4 nRF24Z1双向通道

(2) 数据完整性策略和CRC检错

第 8 页

数据完整性策略和CRC检错完全通过硬件实现,用户只需配置射频协议的ATX和ARX的地址。发送和返回的数据包以数据帧为单位,其帧格式如图3.5所示。

图3.5 nRF24Z1发送和返回数据帧格式

图中,P(引导码)在数据帧的开头,作为数据流同步使用;ADDR(接收端地址)为片内寄存器 ADDR0~ADDR4;ID(数据包标识码),其取值为0~63;C(音频压缩标识位),1位,表示本帧音频数据是否压缩;ACK表示ARX返回ARX所接收到的音频数据情况;DATA是控制或寄存器数据,作为收发双方传输的工作数据;AUDIO DATA为实时和重发的音频数据,一帧采样16组立体声数据,每组32位;CRC检测本帧数据是否有错。ARX接收数据时,nRF24Z1先接收一帧数据包,分别验证引导码、ARX地址和校验码正确后,就返回表示接收正确(ARX工作状态装在DATA)的确认码,然后读出DATA数据,根据DATA数据完成ARX的任务,再根据C的标识决定本帧音频数据是否解压缩,最后按标识码ID把音频数据排队通过IS接口发送出去。反之,放弃本帧数据,返回有错误(ARX的工作状态和错误内容装在DATA)的确认码,要求重发。其中,PKT1,PKT2,…,PKT8为实时音频数据;X1,X2,…,XN为重发的音频数据。

(3)射频连接初始化

2

在射频连接建立之前,音频发射器在所有可用的频道上,反复地向音频接

收器发送搜索信息包,在每个频道上搜索一段时间,以使音频接收器能够接收和处理搜索信息。与此同时,音频接收器也在所有可用的频道上监听信息,每个频道监听一段时间,一旦监听到来自音频发射器的搜索信息包,音频接收器发送应

第 9 页

答信息,音频接收器和音频发射器都锁定该频道,以准备通信。nRF24Z1的这种连接方式有助于防止干扰,减少与在2.4G频段上工作的其它射频设备之间的通信碰撞。

(3)自适应跳频策略

为了提高射频通信的抗干扰性和可靠性,nRF24Z1支持自适应跳频通信。nRF24Z1具有38个自适应通信的工作频率,各个频率分别由跳频寄存器CH0~CH37控制。在跳频时,nRF24Z1根据跳频寄存器中的内容,按顺序改变工作频率,也就是说,当CH0的频率受到干扰而无法进行射频连接时,nRF24Z1会使用CH1进行连接,如果CH1受到干扰,则使用CH2,依次类推。因此,在跳频通信之前,各个跳频寄存器要通过外部EEPROM或微控制器进行初始化。如果想CH0对应于频率2420MHz,则只需在CH0寄存器中写入20,如果想CH0对应于频率2440MHz,则只需在CH0寄存器中写入40,这样,在跳频通信时,芯片就能够按顺序跳频到相应的频道。

第 10 页

4 基于nRF24Z1数字无线话筒设计

4.1数字无线话筒系统分析及设计

无线话筒发射端为可携带的便携式话筒,主要由无线数字音频 nRF24Z1、A/D转换器、MCU 等组成。当nRF24Z1作为发射端时,其MODE引脚必须接到高电平,I2S接口作数字音频输入接口。无线话筒输入的主信号源选用有良好声学性能、贴片电容式硅麦克风,通过前置放大,作为A/D主要的模拟音频信号源;另外可自带CD机等其他任何标准的立体声音源作为另一组模拟音频信号源。MCU除了通过 IC兼容接口控制nRF24Z1和A/D转换器外,还处理Play(放音/静音/睡眠)、Micup(话筒增益增大)、Micdown(话筒增益减小)按键和指示灯的工作提示。无线话筒接收端为固定式接收端,由无线数字音频nRF24Z1、CPU、D/A转换器和音频功率放大电路组成。当nRF24Z1用作音频接收器时,MODE引脚必须为低电平,I2S接口作数据音频输出接口。设计系统流程如4.1所示。

发送端单片机 无线射频芯片 2

麦克风 扬声器 接收端单片机 无线射频芯片 图4.1 无线话筒系统设计流程总框图

4.2 发射模块设计 4.2.1 发射模块电路设计

无线发射模块主要包括电源供电部分、声音信号的模数转换部分、载波发射部分、MCU控制部分,另外在整个电路的印制板设计中还要考虑抗干扰能力。

当nRF24Zl作为音频的发射器时,须将MODE引脚置为高电平,在本设计中将MODE引脚接VDD,使nRF2421成为一个ATX,其片内功能结构如图4.2

第 11 页

所示。12S接口或S/PDIF接口可以用作音频数据的输入接口,12S接口由CLK、DATA和WS三个引脚组成,S/PDIF接口只需要SPDIO一个引脚,在声源与nRF2421距离比较近时推荐使用12S接口,反之推荐使用S/PDIF接口。其电路图如4.2图所示,

图4.2 发射模块电路总框图

nRF24Z1的时钟选择外接16M晶振,晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。一般的晶振振荡电路都是在一个反相放大器的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,请注意一般IC的引脚都有等效输入电容,这个不能忽略。一般的晶振的负载电容为15p或12.5p,如果考虑元件引脚的等效输入电容,则两个22p的电容构成晶振馈电阻,是为了保证反相器输入端的工作点电压在VDD/2,这样在振荡信号反馈在输入端时,能保证反相器工作在适当的工作区。虽然去掉该电阻时,振荡电路仍工作了,但是如果从示波器看振荡波形就会不一致了,而且可能会造成振荡电路因工作点不合适而停振,所以千万不要省略此电阻。该电阻是为了使本来为逻辑反相器的器件工作在线性区,以获得增益,在饱和区是没有增益的,而没有增益是无法振荡的。如果用芯片中的反相器来做振荡,必须外

第 12 页

接这个电阻,对于CMOS而言可以是lM以上,对于TTL则比较复杂,视不同类型而定。

4.2.2 发射模块主程序设计

先编写初始化程序,设置单片机的初始状态,再写A/D转换程序,将模拟信号转换为数字信号。然后,编写时序,从寄存器中读出数据,发送给无线传输芯片,无线传输芯片便会自动将TX FIFO寄存器中的数据依次发送出去。发射程序流程图如图4.3所示。

开始 初始化 A/D转换 N 转换是否完成 发送到nRF24Z1 N 是否发送完毕 Y 返回 图4.3 发射程序流程图

4.2.3 发射模块部分控制程序设计

无线音频传输系统的接收和发送控制有以下三种情况:

(1)无线接收模块始终处于工作状态,不时地试着建立连接。当发射模块开机或者在睡眠状态下有键按下而将其唤醒时,收、发模块间建立连接。

(2)无线发射模块始终处于工作状态,不时地试着建立连接。当接收模块开机或者在睡眠状态下有键按下而将其唤醒时,收、发模块间建立连接。

第 13 页

(3)无线收、发模块始终处于工作状态,不时地试着建立连接。

对以上三种方案进行比较,第一种方案发射模块的功耗较小,第二种方案接收模块功耗较小,第三种方案功耗最大。虽然本设计的主要问题是解决发射端功耗过大的问题,但是由于设计采用微功耗收发芯片,发射端在工作环境下电流消耗约为30mA,当由两节230mA的电池供电时可连续工作10小时;再者,为了防止突然间的间断而使系统进入睡眠状态,最终选择方案三。由于接收端是固定的,可以通过直流电源进行供电。发射模块控制程序流程的设计思路为:当发射端电源开关闭合时,发射端试着与接收模块建立连接;当连接建立后,收、发模块间进行数据传输。

图4.4 发射部分控制程序流程图

4.3 接收模块设计 4.3.1 接收模块电路设计

为了简化设计思路,本设计方案中在接收部分nRF24Zl还是工作于从模式,其初始化及控制由外部的单片机完成。接收模块的射频部分,当nRF24Z1作为音频的接收器时,需将MODE引脚置为低电平,在该设计中将MODE引脚接VDD,使nRF24Z1成为一个ARX,其他部分与发射模块基本相同。nRF24Zl作为接收模块时电路图如4.5所示

第 14 页

图4.5 接收模块电路图

4.3.2 接收模块主程序设计

写编写程序,设置单片机寄存器的初始状态,以及接收芯片的初始状态,然后编写接收程序,将接收芯片寄存器中的数据读出来,通过串口,传送给微控制器。程序流程图如4.6图所示:

图4.6 接收程序流程图

4.3.3 接收模块控制部分设计

第 15 页

图4.7 接收部分控制程序流程图

接收部分的控制流程如图4.7所示,当发射模块上电后,ST89C51单片机首先完成自身的初始化配置,禁止不用的输入输出口,配置12C总线接口,使其为主模式。接下来单片机通过12C总线接口配置数模转换芯片,配置其为睡眠模式以降低能耗。最后通过12C总线完成nRF24Z1的初始化配置。当接收模块收到发射模块的请求时,将与发射模块进行连接。当连接成功时,将首先配置工作模式,然后将收到的12S音频序列通过ST89C51进行数模转换,最终音频信号将由耳机接口输出。如果收发模块连接不成功时,则退出进入睡眠模式。此时在l/10的时间段里,收、发模块试着进行连接,如果连接成功则退出失眠模式。 4.4系统调试及性能测试

硬件调试主要包括电源调试、控制电路的调试、ADC转换、DAC转换及无线收发部分的调试。为了防止人为的错误,系统在绘制PCB板时,分成了nRF24Z1模块(nRF24Z1模块在收发电路中是相同的)、模数转换与控制模块、数模转换与控制模块三个部分。采用模块化的结构,可以对硬件分开调试,比较方便。 4.4.1硬件调试

硬件调试主要是对电源、主结构线路连接、麦克风和扬声器的调试,这个在

第 16 页

性能测试之前做到调试完成无任何问题,在软件调试之前本人已完成硬件调试, 实物如下图:

4.4.2软件调试

由于本设计中发送模块为了降低工作电压,模数转换芯片选择ST89C51,其采用28引脚的QFN封装,所以在焊接的时候难免虚焊或者造成短路。调试ST89C51时,可以让单片机通过12C总线对ST89C51的寄存器进行配置,如果配置成功则单片机的某一引脚置高电平,这样就可以测试其是否正常。其中nRF24Z1的调试是整个系统中最为关键的部分,nRF24Z1调试成功的关键在于控制字及数据的写入,因为nRF24Z1工作时需要严格的时序,如果时序不正确,nRF24Zl就不能正常工作。调试nRF24Z1与ST89C51的调试相类是,也是让单片机通过12C总线对ST89C51的寄存器进行配置,看是否成功。 4.4.3性能测试

短距离无线音频传输系统的性能测试,主要由传输速率、误码率、最大传输距离这三个方面来评价。由于本系统传输的是音频数据,而无线音频传输系统在不同发射功率下的传输距离是不同的,为了在满足通信距离的条件下降低系统功耗,就要降低其的发射功率。所以首先测试在不同发射功率下的传输距离。

再者,由于本设计的另一个主要目的是为了解决目前短距离无线音频传输系统功耗过高的问题,所以本系统的功耗是一个重要的性能指标。 4.4.4测试结果

TWDR=0xFF; } //主函数 int main(void){ char booterror=0;

第 27 页

char debounce=l; //按键检测 char buttons:

char powermode; //nRF24Z1的启动,停止 char muted=0:

mcu_init( ); //初始化MCU

mcu_2w_master_init( ); //IIC总线使能,配置nRF24Z1 volume =0xFF; //默认音量 mcu_zlint_enable( ); //开MCU中断 adc_init( ); //初始化ADC

adc_sleep(); //ADC睡眠为降低能耗 while(booterror==0) //如果ATX活动,保持检测链接 {

while((mcu_z1int_active( ))&&(booterror==0) {

if(zl_haslink()) //如果链接成功 booterror=l; }

if(booterror==0)

mcu_wait_ms(320); //进行下_次链接 )

booterror=0;

if(z1_fnagready(LINKCSTATE)==OKAY) {

z1_setprivateadr( );

zl_setflag(LINKCSTATE); mcu_waiLms(32); } else {

booterror=1; }

if(booterror=0){

if(z1_haslink( )==0){ booterror=1; } }

第 28 页

if(booterror==0){ //如果没有错误检测到 if(dac_init( )!=OKAY){ //试着初始化DAC booterror=1: //如果失败,停止导入 } }

if(booterror==0){ //如果没有错误检测到, if(dac_sleep( )!=OKAY){ //将DAC设为睡眠模式 booterror=1; //如果失败,停止导入 } }

powermode=PMODE_POWERDOWN; //nRF24Z1当前工作 zl_singlewrite(RXMOD,zl_singreread(RXMOD)|0x80); //ARX唤醒 z1_singlewrite(TXMOD,z1_singleread(TXMOD)|0x40); //ATX使能 //检测按键

while(booterror==0){

if(powermode==PMODE_AWAKE) //音频流模式 mcu_waite_ms(64);

switch(buttons){

第 29 页

case BTN_VOLDN: //音量减小按键 dac_Volume_down( ); //调用音量减小函数 break;

case BTN_VOLUP; //音量增加按键 dac_Volume_up( ); break;

default: break; } } return 0;

} //int main( )

//调用音量增加函数 //无按键

第 22 页

} ∥向nRF24Z1寄存器中写入1个字节 void zl_singlewrite(char adr,char data) {

mcu_2W_write(Z12WDEVADR,adr,data); }

//nRF24Zl链接测试 char z1_haslink(Void) {

char counter=4; while(counter!=0){

if(zl_singleread(LNKSTA)!=LINKPRESENT) //标志位没有准备好

return 0; //有标志位,但是要进行再次测试 else

Mcu_wait_ms(5); }

return 1; //连接测试成功 }

//等待链接建立

char z1_haslink_wait(Void) {

char temp=LINKFINDCOUNTER; while(temp!=0){

if(zl_haslink()){ //是否建立链接 return l: }

else{ //没有,等待再次测试建立链接 temp;

mcu_wait_ms(LINKFINDPERIOD); }

} return 0; } ;

//ATX开始重新建立1个链接 void z1_force_relink(Void) {

第 23 页

//配置LNKMOD[4]寄存器,触发重新链接 zl_singlewrite(LNKMOD,0xl0); }

#ifdef Z1ALTERADDRESS

//私有地址的设置是在RX和TX建立连接后,设置地址和跳频寄存器 Void z1_setpriVateadr(Void) {

z1_sing1ewrite(ADDR_0,mcu_randombyte()); z1_singlewrite(ADDR_1,mcu_randombyte()); zl_singlewrite(ADDR_2,mcu_randombyte()); zl_singlewrite(ADDR_3,mcu_randombyte()); zI_singlewrite(ADDR_4,mcu_randombyte()); }

//初始地址寄存器设置 Void z1_setinitialadr(Void) {

zl_singlewrite(ADDR_0,0x98); z1_singlewrite(ADDR_1,0x38); z1_singlewrite(ADDR_3,0xA2); zl_singlewrite(ADDR_4,0x34); zl_singlewrite(ADDR_4,0x85); }

#endif //Z1ALTERADDRESS

第 24 页

#ifdef Z1INTERRUPT //测试中断函数 char zl_jntstatus(Void) {

char temp=z1_singleread(INTSTA); if((temp&INT_LBROKEN)!=00x0) Return INT_LBROKEN; else if((temp&INT_LQUAL)!=00x0) return INT_LQUAL;

else if((temp&INT_RTRANS)!=00x0) return INT_RTRANS;

else if((temp&INT_RINPUT)!=00x0) return INT_RINPUT;

else if((temp&INT_LERROR)!=00x0) return INT_LERROR;

else if((temp&INT_WAKE)!=0x00) return INT_WAKE; else

return INT_VOID; }

//nRF24Z1中断控制 void z1_intinit(char interrupts) {

zl_singlewrite(INTCF,interrupts); mcu_wait_ms(2); if((interrupts&INT_LUQUL)!==0x00) zl_singlewrite(LNKWTH,0x00); if((interrupts&INT_LERROR)!==0x00) zl_singlewrite(LNKWTH,0xFF);

//中断使能 //等待中断

//由于低品质连接而中断 //不要置中断标志位 //由于连接错误而中断 //不置中断标志位

}

//nRF24Z1中断禁止函数 void z1_intdeactivate(Void) {

第 25 页

zl_singlewrite(INTCF,0x00); //nRF24Z1所有中断禁止 }

#ifdef //Z1INTERRUPT

第 26 页

附录B

控制部分代码:

void mcu_init(void) //单片机初始化程序 {

DDRC=0x0A;

ACSR=0xF0; //关闭模拟比较器 //关闭定时/计数器0、2和芯片的 char temp=0b01100001; Temp!=0b00000100; Temp!=0b00000010; PRR=temp;

mcu_wait_ms(96); //等待nRF24Z1初始化及置位 }

//微处理器12C接口设置 void mcu_2w_master_init(void) {

#ifdef MCU_3686

TWBR=0x0C; //SCL速率为92.5kbps, #endif

#ifdef MCU_8000 TWBR=0x24; #endif

#ifdef MCU_1000 TWBR=0x05: #endif TWSR=0;

TWAR=0xAA; //2线地址 TWCR=(1<

本文来源:https://www.bwwdw.com/article/9mvf.html

Top